Вопрос
Какое минимальное количество битов необходимо для представления одного символа зашифрованного текста.
например, если бы я хотел зашифровать букву «а», сколько бит мне потребовалось бы.(предположим, что существует множество отдельно зашифрованных символов, использующих один и тот же ключ.)
Прав ли я, думая, что это будет размер ключа.например 256 бит?
Решение
Боюсь, все ответы, которые вы получили до сих пор, совершенно неверны!Кажется, я не могу им ответить, но спросите, нужна ли вам дополнительная информация о том, почему они неправы.Вот правильный ответ:
Около 80 бит.
Вам понадобится несколько битов для «nonce» (иногда называемого IV).При шифровании вы объединяете ключ, открытый текст и одноразовый номер для создания зашифрованного текста, и вы никогда не должны использовать один и тот же одноразовый номер дважды.Итак, насколько большим должен быть nonce, зависит от того, как часто вы планируете использовать один и тот же ключ;если вы не будете использовать ключ более 256 раз, вы можете использовать 8-битный одноразовый номер.Обратите внимание, что только шифрующая сторона должна гарантировать, что она не использует одноразовый номер дважды;дешифрующей стороне нужно позаботиться только о том, чтобы предотвратить атаки повторного воспроизведения.
Для полезной нагрузки вам понадобится 8 бит, поскольку именно столько бит у вас есть в открытом тексте.
Наконец, вам понадобится около 64 бит для тега аутентификации.При такой длине злоумышленнику приходится в среднем попробовать минимум 2^63 фиктивных сообщения, прежде чем одно из них будет принято удаленной стороной.Не думайте, что без тега аутентификации можно обойтись;это важно для безопасности всего режима.
Объедините их, используя AES в режиме цепочки, например EAX или GCM, и вы получите 80 бит зашифрованного текста.
Размер ключа не имеет значения.
Другие советы
Хотя вопрос несколько размыт, в первую очередь он будет зависеть от того, используете ли вы поточный шифр или блочный шифр.
Для потокового шифра вы получите то же количество бит, что и ввели, поэтому двоичный логарифм размера вашего входного алфавита будет иметь смысл.Блочный шифр требует входных блоков фиксированного размера, поэтому вы можете дополнить букву «а» нулями и зашифровать ее, эффективно имея минимальный размер блока, как вы уже предлагали.
Вы можете иметь то же количество бит, что и открытый текст, если используете одноразовый блокнот.
Трудно ответить.Вам определенно следует сначала прочитать некоторые основы.Вы можете «зашифровать» «а» с помощью одного бита (стиль кодирования Хаффмана), и, конечно, вы также можете использовать больше битов.Число вроде 256 бит без какого-либо контекста бессмысленно.
Вот кое-что для начала:Теория информации -- особенно.ознакомьтесь с основополагающей статьей ШеннонОдноразовый блокнот -- печально известная безопасная, но непрактичная схема шифрования.Кодирование Хаффмана -- не шифрование, но демонстрирует вышеуказанный пункт