шифрование одного символа - PullRequest
2 голосов
/ 30 марта 2010

Какое минимальное количество битов необходимо для представления одного символа зашифрованного текста.

например, если бы я хотел зашифровать букву «а», сколько бит мне потребовалось бы. (предположим, что существует много одинаково зашифрованных символов, использующих один и тот же ключ.)

Правильно ли я думаю, что это будет размер ключа. например, 256 бит?

Ответы [ 4 ]

3 голосов
/ 30 марта 2010

Хотя вопрос несколько нечеткий, в первую очередь это будет зависеть от того, используете ли вы потоковый шифр или блочный шифр.

Для потокового шифра вы получите то же количество битов, которое вы вставили, - так что двоичный логарифм размера входного алфавита будет иметь смысл. Для блочного шифра требуются входные блоки фиксированного размера, так что вы можете заполнить ваше «а» нулями и зашифровать его, фактически имея минимальный размер блока, как вы уже предложили.

1 голос
/ 30 марта 2010

Сложно ответить. Вы должны обязательно прочитать некоторые основы. Вы можете «зашифровать» «a» одним битом (стиль кодирования Хаффмана), и, конечно, вы также можете использовать больше бит. Число вроде 256 бит без контекста не имеет смысла.

Вот кое-что, с чего можно начать: Теория информации - особенно. посмотрите оригинальную статью Шеннона One Time Pad - печально известная, но непрактичная схема шифрования Кодировка Хаффмана - не шифрование, но демонстрирует вышеуказанную точку

1 голос
/ 30 марта 2010

Если вы используете одноразовый пэд, у вас может быть столько же битов, сколько у открытого текста.

0 голосов
/ 31 марта 2010

Боюсь, что все ответы, которые вы получили до сих пор, совершенно неверны! Кажется, я не могу ответить на них, но спрашиваю, нужно ли вам больше информации о том, почему они не правы. Вот правильный ответ:

Около 80 бит.

Вам нужно несколько битов для "nonce" (иногда называемого IV). Когда вы шифруете, вы комбинируете ключ, открытый текст и одноразовый номер для создания зашифрованного текста, и вы никогда не должны использовать один и тот же одноразовый номер дважды. Поэтому насколько большим должен быть одноразовый номер, зависит от того, как часто вы планируете использовать один и тот же ключ; если вы не будете использовать ключ более 256 раз, вы можете использовать 8-битный одноразовый номер. Обратите внимание, что только сторона шифрования должна гарантировать, что она не использует одноразовый номер дважды; сторона расшифровки должна заботиться только о том, чтобы не допустить повторных атак.

Вам нужно 8 бит для полезной нагрузки, так как именно столько бит открытого текста у вас есть.

Наконец, вам нужно около 64 бит для тега аутентификации. При этом злоумышленник должен в среднем попробовать 2 ^ 63 поддельных сообщений минимум, прежде чем они получат одно сообщение, принятое удаленным концом. Не думайте, что вы можете обойтись без тега аутентификации; это важно для безопасности всего режима.

Соедините их, используя AES в режиме цепочки, например EAX или GCM, и вы получите 80 бит зашифрованного текста.

Размер ключа не учитывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...