Рейтинг:2

Что такое выходной символ?

флаг in

Я читаю «Понимание криптографии» Кристофа Паара и Яна Пельцла. В главе 2 (потоковые шифры). В разделе рассказывается о «Создание ключевых потоков из PRNG».

Они предполагают PRNG на основе линейного конгруэнтного генератора:

$$S_0 = семя $$ $$S_{i+1} \эквив AS_i + B\mod m, i=0,1,...$$

где мы выбираем m равным 100 битам и $ S_i,A,B \in \{0,1,...,m-1\}. $ Обратите внимание, что это PRNG может иметь отличные статистические свойства, если мы тщательно выберем параметры. Модуль m является частью схемы шифрования и общеизвестен. Секрет key содержит значения (A,B) и, возможно, начальное значение S0, каждое из которых имеет длину 100. Это дает нам длину ключа 200 бит, что более чем достаточно для защиты от атака грубой силы. Поскольку это поточный шифр, Алиса может зашифровать:

$$y_i \экв x_i + s_i \mod 2 $$

куда $s_i$ биты двоичного представления PRNG выходные символы $S_j$

Но Оскар может легко начать атаку. Предположим, он знает первые 300 битов открытый текст (это всего 300/8=37,5 байт), например, информация о заголовке файла, или он угадывает часть открытого текста. Поскольку он точно знает зашифрованный текст, теперь он может вычислить первые 300 бит ключевого потока как:

$$s_i \эквив y_i + x_i \mod m , i = 1,2,...,300$$

Эти 300 бит сразу дают первые три выходные символы ГПСЧ:$S_1 = (s_1,...,s_{100}), S_2 = (s_{101},...,s_{200})$ и $S_3 = (s_{201},...,s_{300}).$

(выделено мной)

Мои вопросы:

  • Что такое выходной символ?
  • как мы определяем выходные символы (количество бит и т. д.)
Рейтинг:2
флаг vn

Что такое выходной символ?

Выходной символ является базовой «единицей» вывода PRNG. Сам ключевой поток состоит из целого числа символов. Если PRNG выводит биты (например, LFSR), то символ представляет собой один бит.Если PRNG выводит октеты (например, RC4), то символ представляет собой целое число в диапазоне $[0,255]$.

как мы определяем выходные символы (количество бит и т. д.)

Если у вас есть $n$ возможные символы, то один символ описывается $\log_2(n)$ биты. Как правило, количество выходных символов для PRNG является степенью двойки. Это может быть не всегда так. Если PRNG выводит буквенно-цифровые символы с 26 различными возможностями, то каждый символ будет содержать $\log_2(26) \около 4,7$ биты информации. Вероятно, было бы лучше представить такой символ как целое число в диапазоне $[0,26]$ а не представлять его как дробное число битов.

В примере PRNG в вопросе указан символ $S_i \in \{0,1,\dots m-1\}$ и дополнительно указано $м=100$. Это означает, что символ для этого PRNG представляет собой 100-битное значение, хотя его также можно представить как одно целое число в диапазоне $[0,2^{100})$.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.