Традиционные шифры с 8 (или 16 ) бит, а это означает, что число символов становится в 8 (или 16 ) раз больше. Смешивание большего числа символов увеличивает безопасность.
Эта глава обеспечивает необходимую основу для изучения современных блочных и
Современный n -битовый блок исходного текста или расшифровывает n -битовый блок зашифрованного текста. Алгоритм шифрования или дешифрования используют k -битовый ключ. Алгоритм дешифрования должен быть инверсией алгоритма шифрования, и оба в работе используют один и тот же ключ засекречивания так, чтобы Боб мог восстановить сообщение, передаваемое Алисой. Рисунок 7.1 показывает общую идею шифрования и дешифрования в современном блочном шифре.
(рис 7.1) Современный блочный шифрЕсли сообщение имеет размер меньше, чем n бит, нужно добавить заполнение, чтобы создать этот n -разрядный блок; если сообщение имеет больше, чем n бит, оно должно быть разделено на n -разрядные блоки, и в случае необходимости нужно добавить к последнему блоку соответствующее заполнение. Общие значения для n обычно 64, 128, 256 или 512 битов.
Пример 7.1
Сколько дополнительных битов нужно добавить к сообщению 100 символов, если для кодирования используется ASCII по 8 битов и блочный шифр принимает блоки 64 бита?
Решение
Закодировать 100 символов, используя ASCII по 8 битов. Это сообщение содержит 800 бит. Исходный текст должен делиться без остатка на 64. Если | M | и | — длина сообщения и длина заполнения, то
| M | + |
Это означает, что к сообщению нужно добавить 32 бита заполнения (например, нулей). Текст тогда будет состоять из 832 битов или тринадцати 64 -разрядных блоков. Заметим, что только последний блок содержит заполнение.
Современный
Если шифр спроектирован как шифр подстановки, значения бита 1 или 0 в исходном тексте могут быть заменены либо на 0, либо на 1. Это означает, что исходный текст и зашифрованный текст могут иметь различное число единиц. Блок исходного текста на 64 бита, который содержит 12 нулей и 52 единицы, может быть представлен в зашифрованном тексте 34 нулями и 30 единицами. Если шифр спроектирован как шифр перестановки (транспозиции), биты только меняют порядок следования (перемещаются), сохраняя то же самое число символов в исходном и зашифрованном текстах. В любом случае, число возможных n -битовых исходных текстов или зашифрованных текстов равно 2n, потому что каждый из n битов, использованных в блоке, может иметь одно из двух значений — 0 или 1.
Современные
Пример 7.2
Предположим, что мы имеем n = 64. Если есть 10 единиц в зашифрованном тексте, сколько испытаний типа "проб и ошибок" должна сделать Ева, чтобы получить исходный текст перехваченного зашифрованного текста в каждом из следующих случаев?
a. Шифр спроектирован как шифр подстановки.
b. Шифр спроектирован как шифр транспозиции.
Решение
a. В первом случае (подстановка) Ева понятия не имеет, сколько единиц находится в исходном тексте. Ева должна попробовать все возможные 264 блока по 64 бита, чтобы найти один, который имеет смысл. Если бы Ева могла пробовать 1 миллиард блоков в секунду, и тогда ей потребовалось бы сотни лет, прежде чем эта работа могла бы принести успех.
b. Во втором случае (перестановка) Ева знает, что в исходном тексте есть точно 10 единиц, потому что транспозиция не изменяет числа единиц (или нулей) в зашифрованном тексте. Ева может начать атаку исчерпывающего поиска, используя только те 64 -битовые блоки, которые имеют точно 10 единиц. Есть только (64!) / [(10!) (54!)] = 151 473 214 816 из 264 слов по 64 бита, которые имеют точно 10 единиц. Ева может проверить всех их меньше чем за 3 минуты, если она может провести 1 миллиард испытаний в секунду.
Как мы увидим в следующих лекциях, нам надо знать, является ли современный
Хотя полноразмерные ключевые шифры практически не используются, мы сначала обсудим их, чтобы сделать более понятным обсуждение шифров с ключом частичного размера.
Полноразмерные ключевые блочные шифры транспозиции. Такой ключевой шифр перемещает биты, не изменяя их значения, так что может быть смоделирован как перестановка n -мерного объекта с множеством n! таблиц перестановки, в которых ключ определяет, какая таблица используется Алисой и Бобом. Мы должны иметь n!
Пример 7.3
Покажите модели и множество таблиц перестановки для 3 бита, где размер блока — 3 бита.
Решение
Множество таблиц перестановки имеет 3! = 6 элементов, как показано на рис. 7.2. Ключ должен быть длиной $$\left\lceil {{{\log }_2}n!} \right\rceil$$ = 3 бита. Заметим, что хотя ключ на 3 бита может выбрать 23 = 8 различных отображений, мы используем только 6 из них.
(рис 7.2) Блочный шифр транспозиции в виде перестановки Полноразмерные ключевые блочные шифры подстановки.Такие шифры не перемещают биты — они заменяют биты. На первый взгляд кажется, что полноразмерный ключевой шифр подстановки не может быть смоделирован как перестановка. Однако мы можем применить модель перестановки для шифра подстановки, если сможем декодировать n -разрядного целого числа в строку 2n -бит с единственной единицей 1 и 2n–1 нулями. Позиция единственной единицы указывает значение целого числа в упорядоченной последовательности позиций строки от 0 до 2n – 1. Поскольку новая входная информация имеет всегда единственную единицу, шифр может быть смоделирован как перестановка 2n! объектов.
Пример 7.4
Покажите модель и множество таблиц перестановки для шифра подстановки блока на 3 бита.
Решение
Три входных исходных текста могут быть обозначены целыми числами от 0 до 7. Это может быть закодировано как строка, содержащая 8 битов с единственной единицей. Например, комбинация 000 может быть закодирована как 00000001 (первая единица справа); комбинация 101 может быть закодирована как 00100000 (шестая единица справа). Рисунок 7.3 показывает модель и множество таблиц перестановки. Заметим, что число элементов в закодированном множестве намного больше, чем число элементов в шифре транспозиции (8! = 40 320). Ключ — также намного более длинный $$\left\lceil {{{\log }_2}40320} \right\rceil = 16$$ бит. Хотя ключ на 16 битов может определить 65 536 различных отображений, используются только 40 320.
(рис 7.3) Блочный шифр подстановки моделируется как шифр перестановки n -разрядный шифр транспозиции или блочный шифр подстановки. Они могут быть смоделированы как шифры перестановки, но размеры их ключа различны:
для шифра транспозиции ключ длиной — .Групповая перестановка. Факт, что полноразмерная ключевая транспозиция или шифр подстановки/перестановки показывает, что если шифрование (или дешифрование) использует больше чем одну любую комбинацию из этих шифров, результат эквивалентен операции групповой перестановки. Как уже обсуждалось в лекциях 5-6, две или больше каскадных перестановки могут всегда быть заменены единственной перестановкой. Это означает, что бесполезно иметь $${2^{{2^{70}}}}$$ больше чем один каскад полноразмерных ключевых шифров, потому что эффект тот же самый, как и при наличии единственного шага.
Фактические шифры не могут использовать полноразмерные ключи, потому что размер ключа становится несуразно большим, особенно для 64 -разрядный 56 битов, что является очень маленьким фрагментом полноразмерного ключа. Это означает, что 256 отображений из приблизительно $${2^{{2^{70}}}}$$ возможных отображений.
Группа перестановки. Зададим себе вопрос: можно ли установить, что многоступенчатая транспозиция с
Частичный ключевой шифр – это группа, если это — подгруппа соответствующего размера ключа шифра. Другими словами, если полноразмерный ключевой шифр — это группа G = <M, o>, где М. — множество отображений и (o) — композиция операций, то шифр с ключом частичного размера должен представлять H = <N, o>, где N — подмножество М с теми же самыми операциями.
Например, было доказано, что многоступенчатый 56 -битовым ключом не является группой, потому что подгруппа с 256 отображениями не может быть создана из группы с 264! отображениями.
Хотя использование отдельно шифра без ключа фактически бесполезно, возможно их применение в качестве компонентов ключевых шифров,
Шифр транспозиции без ключа. Шифры без ключа (или с фиксированным ключом) можно рассматривать как шифр транспозиции, реализованный в аппаратных средствах. Фиксированный ключ (единственное правило перестановки) может быть представлен как таблица в случае реализации шифра в программном обеспечении. Следующая часть этой лекции обсуждает шифры транспозиции без ключа, названные P-блоками, которые используются как стандартные блоки современных
Шифры подстановки без ключа.Такой шифр без ключа (или с фиксированным ключом) можно представить себе как заранее определенное отображение входной информации к выходной. Отображение может быть представлено как таблица, как S -блоками, которые применяются как стандартные блоки современных
Современные P -блоками), модулей подстановки (называемых S -блоками) и некоторыми другими модулями (обсуждается кратко).
P -блок (блок перестановки) подобен традиционному шифру транспозиции символов. Он перемещает биты. В современных P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия, что и показано на рис. 7.4.
(рис 7.4) Три типа P-блоков Рисунок 7.4 показывает прямой P -блок $$5 \times 5$$, P -блок сжатия $$5 \times 3$$ и P -блок расширения $$3 \times 5$$. Рассмотрим каждый из них более подробно.
Прямые P-блоки.Прямой P -блок с n входами и n выходами – это перестановка
с n! возможными отображениями.
Пример 7.5
Рисунок 7.5 показывает все 6 возможных отображений P -блока $$3 \times 3$$.
(рис 7.5) Возможные отображения P-блока 3x3Хотя P -блок может использовать ключ, чтобы определить одно из n! отображений, обычно P -блоки – без применения ключа, то есть отображение задано заранее. Если P -блок задан заранее и замонтирован в аппаратных средствах или если он реализован в программном обеспечении, таблицы перестановок задают правило отображения. Во втором случае входы в таблице указывают в позиции, в которых указаны позиции выходов. Таблица 7.1 дает пример таблицы перестановок, когда n равно 64.
| 58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 | 60 | 52 | 44 | 36 | 28 | 20 | 12 | 04 |
| 62 | 54 | 46 | 38 | 30 | 22 | 14 | 06 | 64 | 56 | 48 | 40 | 32 | 24 | 16 | 08 |
| 57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 | 59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
| 61 | 53 | 45 | 37 | 29 | 21 | 13 | 05 | 63 | 55 | 47 | 39 | 31 | 23 | 15 | 07 |
Таблица 7.1 имеет 64 табличных входа, которые фиксируют соответствие 64 информационным входам. Позиция (индекс) входа соответствует выходу. Например, первый табличный вход содержит номер 58. Это означает, что первый выход будет соответствовать 58 -му входу. Поскольку последний табличный вход — 7, это означает, что, 64 -й выход будет соответствовать седьмому информационному входу, и так далее.
Пример 7.6
Составьте таблицу перестановки для прямого P -блока 8 x 8, которая перемещает два средних бита (биты 4 и 5 ) во входном слове к двум крайним битам (биты 1 и 8 ) выходного слова. Относительные позиции других битов не изменяются.
Решение
Нам надо создать прямой P -блок с таблицей [4 1 2 3 6 7 8 5]. Относительные позиции бит 1, 2, 3, 6, 7 и 8 не меняются, но первый информационный выход связан с четвертым информационным входом, восьмой информационный выход — с пятым информационным входом.
P-блоки сжатия. P -блок сжатия – это P -блок с n входами и m выходами, где m <n. Некоторые из информационных входов блокированы и не связаны с выходом (см. рисунок 7.4). P -блоки сжатия, используемые в современных P -блока сжатия имеет m табличных входов, но в содержании каждого табличного входа – от 1 до n, и некоторые из них могут отсутствовать (те информационные входы, которые блокированы). Таблица 7.2 показывает пример таблицы перестановки для P -блока сжатия $$32 \times 24$$. Обратите внимание, что входы 7, 8, 9, 16, 23, 24 и 25 блокированы.
| 01 | 02 | 03 | 21 | 22 | 26 | 27 | 28 | 29 | 13 | 14 | 17 |
| 18 | 19 | 20 | 04 | 05 | 06 | 10 | 11 | 12 | 30 | 31 | 32 |
P -блоки сжатия используются, когда мы должны переставить биты и в то же время уменьшить число битов для следующей ступени.
P-блок расширения — P -блок с n входами и m выходами, где m> n. Некоторые из входов связаны больше чем с одним выходом (см. рис. 7.4). P -блоки расширения, используемые в современных P -блока расширения имеет m табличных входов, но m – n входов (те входы, которые связаны больше чем с одним информационным выходом). Таблица 7.3 показывает пример таблицы перестановки для P -блока расширения 12 16. Обратите внимание, что каждый из 1, 3, 9 и 12 соединен с двумя выходами.
| 01 | 09 | 10 | 11 | 12 | 01 | 02 | 03 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 12 |
P -блоки расширения используются, когда мы должны переставить биты и то же время увеличить число битов для следующего каскада шифрования.
Обратимость.Прямой P -блок является обратимым. Это означает, что мы можем использовать прямой P -битовый шифр и дешифровать его. Таблицы перестановки, однако, должны быть обратимыми по отношению друг к другу. В лекциях 5-6 мы видели, как можно получить обратную таблицу перестановки.
Пример 7.7
Рисунок 7.6 показывает, как изменить таблицу перестановки в случае одномерной таблицы.
(рис 7.6) Изменение таблицы перестановки P -блоки сжатия и расширения P -блоках сжатия вход может быть отброшен в процессе шифрования; алгоритм дешифрования не имеет ключа, чтобы восстановить отброшенный бит. В P -блоке расширения вход в процессе шифрования может быть отображен более чем в один
(рис 7.7) P-блоки сжатия и расширения как необратимые компоненты Рисунок 7.7 также показывает, что P -блок сжатия не является обратным шифром P -блока расширения и наоборот. Это означает, что если мы используем P -блок сжатия для шифрования, мы не сможем использовать P -блок расширения для дешифрования и наоборот. Однако, как будет показано позже в этой лекции, есть шифры, которые применяют P -блоки сжатия или расширения для шифрования; но их эффективность хуже, чем у некоторых других способов.
P -блок является обратимым, а P -блоки сжатия и расширения — нет.S-блок (блок подстановки) можно представить себе как миниатюрный шифр подстановки. Этот блок может иметь различное число входов и выходов. Другими словами, вход к S -блоку может быть n -битовым словом, а выход может быть m разрядным словом, где m и n — не обязательно одинаковые числа. Хотя S -блок может быть ключевым или без ключа, современные S -блоки без ключей, где отображение от информационных входов к информационным выходам заранее определено.
S -блок — m x n модуль подстановки, где m и n не обязательно равны.Линейный и нелинейный S-блоки. В S -блоке с n входами и m выходами мы обозначим входы x0, x1,…., xn и выходы y1 ,..., ym. Соотношения между входами и выходами могут быть представлены как система уравнений
y1 = f1 (x1,x2,…,xn)
y2 = f2 (x1,x2,…,xn)
….
ym = fm (x1,x2,…,xn)
В линейном S-блоке вышеупомянутые соотношения могут быть выражены как
$$y_{1} = a_{1,1}x_{1} \oplus a_{1,2}x_{2} \oplus \dots \oplus a_{1,n}x_{n} \\ y_{2} = a_{2,1}x_{1} \oplus a_{2,2}x_{2} \oplus \dots \oplus a_{2,n}x_{n} \\ \dots \\ y_{m} = a_{m,1}x_{1} \oplus a_{m,2}x_{2} \oplus \dots \oplus a_{m,n}x_{n}$$В нелинейном S-блоке мы не можем всегда задать для каждого выхода указанные выше соотношения.
Пример 7.8
В S -блоке с тремя входами и двумя выходами мы имеем
S -блок линеен, потому что a1,1 = a1,2 = a1,3 = a2,1=1 и a2 ,2 = a2 ,3 = 0. Эти соотношения могут быть представлены матрицами, как показано ниже:
Пример 7.9
В S -блоке с тремя входами и двумя выходами мы имеем
y1 = (x1)3 + x2 y2 = (x1) + x1x2 + x3
где умножение и сложение проводится в GF(2). S -блок нелинеен, потому что нет линейных соотношений между входами и выходами.
Пример 7.10
Следующая таблица определяет отношения между входами/выходами для S -блока размера $$3 \times 2$$. Крайний левый бит входа определяет строку; два самых правых бита входа определяют столбец. Два бита выхода – это значение на пересечении секции выбранной строки и столбца.

Обратимость. S -блоки — шифры подстановки, в которых отношения между входом и выходом определены таблицей или математическим соотношением. S -блок может быть или может не быть обратимым. В обратимом S -блоке число входных битов должно быть равным числу бит выхода.
Пример 7.11
Рисунок 7.8 показывает пример обратимого S -блока. Одна из таблиц используется в алгоритме шифрования; другая таблица — в алгоритме дешифрования. В каждой таблице крайний левый бит входа определяет строку; следующие два бита определяют столбец. Выход — это значение на пересечении строки и столбца.
Например, если вход к левому блоку — 001, выход — 101. Вход 101 в правой
таблице дает выход 001. Это показывает, что эти две таблицы позволяют получить обратный результат по отношению друг к другу.
Важный компонент в большинстве блоков шифрования — операция ИСКЛЮЧАЮЩЕЕ ИЛИ: Как мы уже обсуждали в лекции 7, операции сложения и вычитания в GF(2n) выполняется с помощью одной и той же операции, называемой ИСКЛЮЧАЮЩЕЕ ИЛИ или ( XOR ):
(рис 7.8) Таблицы S-блока для примера 7.11Свойства. Пять свойств операции ИСКЛЮЧАЮЩЕЕ ИЛИ в поле GF(2n) делают эту операцию очень удобной для использования в блочном шифре.
1. Замкнутость. Это свойство гарантирует, что в результате этой операции два n -битовых слова дают другое n -битовое слово.
2. Ассоциативность. Это свойство позволяет нам использовать больше чем одно ИСКЛЮЧАЮЩЕЕ ИЛИ, которые можно вычислять в любом порядке.
$$x \oplus (y \oplus z) \leftrightarrow (x \oplus y) \oplus z$$3. Коммутативность. Это свойство позволяет нам менять местами операторы (
4. Существование нулевого (тождественного) элемента. Нулевой элемент для операции ИСКЛЮЧАЮЩЕЕ ИЛИ – слово, которое состоит из всех нулей, или (00... 0). Это подразумевает, что существует слово с нейтральными элементами, которое при проведении операции не изменяет слово.
$$x \oplus (00….00) = x$$
Мы используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.
5. Существование инверсии. В поле GF(2n) каждое слово есть аддитивная инверсия самого себя. Это подразумевает, что проведение операции ИСКЛЮЧАЮЩЕЕ ИЛИ слова с самим собой приводит к нулевому элементу:
$$x \oplus x = (00\dots 0)$$
Мы также используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.
Дополнение. 0 -вой бит меняет на 1 (единичный) бит; 1 (единичный) бит меняет на 0 -вой бит. Нас интересует операции с дополнением относительно операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Если $$\bar x$$ — дополнение "x", тогда верны следующие два соотношения:
$$x \oplus \bar x = (11 \ldots 1)$$ и $$x \oplus (11 \ldots 1) = \bar x$$
Мы также используем эти свойства позже в этой лекции, когда будем обсуждать безопасность некоторых шифров.
Инверсия. Инверсия компонента в шифре имеет смысл, если компонент представляет одноместную операцию (один вход и один выход). Например, P -блок без ключа или S -блок без ключа могут быть обратимыми, потому что они имеют один вход и один выход. Операция ИСКЛЮЧАЮЩЕЕ ИЛИ —
(рис 7.9) Обратимость операции ИСКЛЮЧАЮЩЕЕ ИЛИ На рисунке 7.9 свойство аддитивной инверсии подразумевает, что
$$y = x \oplus k x = k \oplus y$$Мы используем это свойство, когда позже в этой лекции будем обсуждать структуру
Другой компонент, применяемый в некоторых современных n -битовом слове на k позиции влево; крайние левые k -биты удаляются слева и становятся самыми правыми битами. Круговая операция правого сдвига сдвигает каждый бит в n -битовом слове на k позиций вправо; самые правые k -биты справа удаляются и становятся крайними левыми битами. Рисунок 7.10 показывает и левые и правые операции в случае, где n = 8 и k = 3.
Циклическая k устанавливается и задается заранее.
Обратимость. Циклическая операция левого сдвига – инверсия операции правого сдвига. Если одна из них используется для шифрования, другая может применяться для дешифрования.
Свойства.
Первая — это смещение по модулю n. Другими словами, если k = 0 или k = n, никакого смещения не происходит. Если k является большим, чем n, тогда входная информация сдвинута на k mod n бит. Второе свойство,
(рис 7.10) Циклический сдвига 8 битового слова налево или направо
Операция замены — специальный случай операции циклического сдвига, где k = n/2 означает, что эта операция возможна, только если n — четный номер. Поскольку сдвиг влево n/2 — то же самое, что сдвиг n/2 вправо, эта операция является обратимой. Операция замены для шифрования может быть полностью раскрыта операцией замены для дешифрации. Рисунок 7.11 иллюстрируетт операцию замены для слова на 8 битов.
(рис 7.11) Операция замена в 8 битовом а слове Две других операции, применяемые в некоторых n -битовое слово в середине, создавая два слова равной длины. Объединение связывает два слова равной длины, чтобы создать n -битовое слово. Эти две операции инверсны друг другу и могут использоваться как пара, чтобы уравновесить друг друга. Если одна используется для шифрования, то другая — для дешифрования. Рисунок 7.12 показывает эти две операции для случая n = 8.
Шеннон ввел понятие составные шифры. Составной шифр – комплекс, который объединяет подстановку, перестановку и другие компоненты, рассмотренные в предыдущих разделах.
(рис 7.12) Операции разбиение и объединения с 8 - битовым словом Идея Шеннона в представлении составного шифра должна была дать возможность блочным шифрам иметь две важных свойства: рассеяние и перемешивание. Рассеивание должно скрыть отношения между зашифрованным текстом и исходным текстом. Это собьет с толку противника, который использует статистику зашифрованного текста, чтобы найти исходный текст. Рассеивание подразумевает, что каждый символ (символ или бит) в зашифрованном тексте зависит от одного или всех символов в исходном тексте. Другими словами, если единственный символ в исходном тексте изменен, несколько или все символы в зашифрованном тексте будут также изменены.
Идея относительно перемешивания — в том, что оно должно скрыть отношения между зашифрованным текстом и ключом. Это собьет с толку противника, который стремится использовать зашифрованный текст, чтобы найти ключ. Другими словами, если единственный бит в ключе изменен, все биты в зашифрованном тексте будут также изменены.
Распыление и перемешивание могут быть достигнуты использованием повторения составных шифров, где каждая итерация — комбинация S -блоков, P -блоков и других компонентов. Каждая итерация называется раундом.N -раундном шифре, чтобы создать зашифрованный текст, исходный текст шифруется N раз; соответственно, зашифрованный текст расшифровывается N раз. Текст, созданный на промежуточных уровнях (между двумя раундами), называется средним текстом.Рисунок 7.13 показывает простой составной шифр с двумя раундами. На практике составные шифры имеют больше чем два раунда. На рис. 7.13 в каждом раунде проводятся три преобразования:
а. 8 -битовый текст смешивается с ключом, чтобы сделать символы текста равновероятными (скрыть биты, используя ключ) — "отбелить" текст (whiting).
Это обычно делается с помощью операции ИСКЛЮЧАЮЩЕЕ ИЛИ слова на 8 битов с ключом на 8 битов.
б. Выходы "отбеливателя" разбиты на четыре группы по 2 бита и подаются в четыре S -блока. Значения битов изменяются в соответствии с построением S -блоков в этом преобразовании.
c. Выходы S -блоков поступают в P -блок, при этом биты переставлены так, чтобы в следующем раунде результат каждого блока поступил на различные входы.
(рис 7.13) Составнной шифр, состоящий из двух раундов Рассеивание, которое показано на упрощенном рис. 7.13 как составной шифр, используя комбинацию S -блоков и P -блоков, может гарантировать рассеивание.
а. В первом раунде бит 8, после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующими битами ключа K1, изменяет два бита (биты 7 и 8 ) через S -блок 4. Бит 7 переставлен и становится битом 2 ; бит 8 переставлен и становится битом 4. После первого раунда бит 8 изменяет биты 2 и 4. Во втором раунде бит 2 после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующими битами ключа K2 изменяет два бита (биты 1 и 2 ) через S -блок 1. Бит 1 – переставлен и становится битом 6 ; бит 2 переставлен и становится битом 1. Бит 4 после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующим битом в K2 изменяет биты 3 и 4. Бит 3 остается, бит 4 переставлен и становится битом 7. После второго раунда из 8 бит изменены биты 1, 3, 6 и 7.
b. Прохождение этих шагов в другом направлении (от зашифрованного текста до исходного текста) показывает, что каждый бит в зашифрованном тексте изменяет исходный текст на несколько битов.
Перемешивание. На рисунке 7.14 показано, как изменение единственного бита в исходном тексте вызывает изменение многих битов в зашифрованном тексте. Рисунок 7.14 также доказывает нам, что свойство перемешивания может быть получено с помощью составного шифра. Четыре бита зашифрованного текста, биты 1, 3, 6 и 7 преобразованы с помощью трех битов в ключах (бит 8 в K1 и битах 2 и 4 в K2 ). Прохождение в обратном направлении показывает, что каждый бит ключа в каждом раунде затрагивает несколько битов в зашифрованном тексте. Отношения между битами зашифрованного текста и ключевыми битами показаны в затененных прямоугольниках.
(рис 7.14) Рассеивание и перемешивание в блочном шифре Практические шифры. Чтобы улучшить рассеивание и перемешивание, практические шифры используют крупные блоки данных, больше S -блоков и больше раундов. Очевидно, что некоторое увеличение числа раундов при использовании большого числа S -блоков может создать лучший шифр, в котором зашифрованный текст выглядит все более как случайное n -битовое слово. Таким образом, отношения между зашифрованным текстом и исходным текстом будут полностью скрыты (рассеяны). Увеличение числа раундов увеличивает число ключей раундов, что лучше скрывает отношения между зашифрованным текстом и ключом.
Современные
Файстель проектировал очень интеллектуальный и интересный шифр, который использовался в течение многих десятилетий. Шифр Файстеля может иметь три типа компонентов: самообратимый, обратимый и
Шифр Файстеля содержит в блоках все
Первая идея. Чтобы лучше понять шифр Файстеля, давайте посмотрим, как мы можем использовать один и тот же
(рис 7.15) Первая идея в разработке шифра Файстеля В шифровании ключ поступает на вход необратимой функции f (K), которая является одним из слагаемых оператора ИСКЛЮЧАЮЩЕГО ИЛИ с исходным текстом. Результат становится зашифрованным текстом. Мы будем называть комбинацию функции и операции ИСКЛЮЧАЮЩЕЕ ИЛИ смесителем (из-за отсутствия другого названия). Смеситель играет важную роль в более поздних вариантах шифра Файстеля.
Поскольку ключ один и тот же в шифровании и дешифровании, мы можем доказать, что два алгоритма инверсны друг другу. Другими словами, если C2 = C1 (любое изменение в зашифрованном тексте в течение передачи), то P2 = P1.
Обратите внимание, что использовались два свойства операции ИСКЛЮЧАЮЩЕЕ ИЛИ (существование инверсии и существование нулевого кода).
Уравнения, показанные выше, доказывают, что хотя смеситель имеет неконвертируемый элемент, сам смеситель является самоконвертируемым.
Пример 7.12
Это тривиальный пример. Имеется исходный текст и зашифрованный текст, каждый 4 бита длиной, и ключ 3 бита длиной. Предположим, что функция извлекает первый и третий биты ключа, интерпретирует биты как десятичный номер, находит квадрат этого числа и интерпретирует результат как 4 -битовую двоичную последовательность.
Покажите результаты шифрования и дешифрования, если первоначальный исходный текст — 0111, и ключ — 101.
Решение
Функция извлекает первые и третьи биты ключа и получается в результате 11 в двоичном виде или 3 в десятичном отображении. Результат возведения во вторую степень (квадрат) — 9, в двоичном отображении 1001.
Функция f (101) = 1001 является неконвертируемой, но операция ИСКЛЮЧАЮЩЕЕ ИЛИ позволяет нам использовать функцию и в алгоритмах дешифрования, и в шифровании. Другими словами, функция является неконвертируемой, но смеситель будет самоконвертируемым.
Усовершенствование. Попробуем улучшить нашу первую идею, чтобы приблизиться к шифру Файстеля. Мы знаем, что должны применить вход к неконвертируемому элементу (функции), но мы не будем использовать только ключ. Мы задействуем также вход к функции, чтобы применить ее для шифрования части исходного текста и дешифрования части зашифрованного текста. Ключ может использоваться как второй вход к функции. Этим способом наша функция становится сложным элементом с некоторыми неключевыми элементами и некоторыми ключевыми элементами. Чтобы достичь цели, разделим исходный текст и зашифрованный текст на два блока равной длины – левый ( L ) и правый ( R ). Правый блок вводится в функцию, а левый блок складывается с помощью операции ИСКЛЮЧАЮЩЕЕ ИЛИ с выходом функции. Мы должны запомнить, что входы к функции должны точно совпадать в шифровании и дешифровании. Это означает, что правая секция исходного текста до шифрования и правая секция зашифрованного текста после дешифрования будут совпадать. Другими словами, секция должна войти в шифрование и выйти из дешифрования неизмененной. Рисунок 7.16 иллюстрирует идею.
(рис 7.16) Усовершенствование предыдущей схемы Файстеля Алгоритмы шифрование и дешифрования инверсны друг другу. Предположим, что L3 = L2 и R3 = R2 (в зашифрованном тексте в течение передачи не произошло изменений).
Исходный текст, используемый в алгоритме шифрования, — это текст, правильно восстановленный алгоритмом дешифрования.
Окончательный вариант. Предыдущее усовершенствование имеет один недостаток: правая половина исходного текста никогда не изменяется. Ева может немедленно найти правую половину исходного текста, разбивая на части зашифрованный текст и распаковывая его правую половину. Проект нуждается в дальнейших шагах усовершенствования.
Первое: увеличим
(рис 7.17) Окончательный вариант шифра Файстеля с двумя раундами Обратите внимание, что есть два ключа раундов: K1 и K2. Ключи используются в обратном порядке в шифровании и дешифровании.
Поскольку два смесителя инверсны друг другу и устройства замены инверсны друг другу, очевидно, что шифрование и дешифрование также инверсны друг другу. Однако мы можем доказать этот факт, используя отношения между левыми и правыми секциями в каждом шифре. Другими словами, если L6 = L1 и R6 = R1, предположим, что L4 = L3 и R4 = R3 (шифрованный текст не изменился при передаче). Вначале докажем это для промежуточного текста:
Тогда просто доказать равенство для двух блоков исходного текста.
$$L_{6} = R_{5} \oplus f(L_{5}, K_{1}) = R_{2} \oplus f(L_{2}, K_{1}) = L_{1} \oplus f(R_{1}, K_{1}) \oplus f(R_{1}, K_{1}) = L_{1} \\ R_{6} = L_{5} = L_{2} = R_{1}$$Шифр не-Файстеля использует только обратимые компоненты. Компонент в исходном тексте имеет соответствующий компонент в шифре. Например, S -блоки должны иметь равное число входов и выходов, чтобы быть совместимыми. Не позволяется никакое сжатие или расширение P -блоков, потому что они станут необратимыми. В шифре не-Файстеля нет потребности делить исходный текст на две половины, как мы видели в шифрах Файстеля.
Рисунок 7.13 можно рассматривать как графическую иллюстрацию принципа шифра не-Файстеля, потому что единственные компоненты в каждом раунде — самообратимые операции ИСКЛЮЧАЮЩЕЕ ИЛИ, S -блоки $$2 \times 2$$, которые могут спроектированы, чтобы быть обратимыми, и прямые P -блоки, которые обратимы, если использована соответствующая таблица перестановки. Поскольку каждый компонент является обратимым, то можно показать, что и каждый раунд является обратимым. Мы только должны применять ключи раундов в обратном порядке. Шифрование использует ключи раундов K1 и K2. Алгоритм дешифрования должен пользоваться ключами раундов K2 и K1.
Атаки традиционных шифров могут также использоваться для современных
Идею относительно дифференциального криптоанализа предложили Эли Бихам и Ади Шамир. Это — атака с выборкой исходного текста. Ева может каким-либо образом получить доступ к компьютеру Алисы и завладеть выборочно частью исходного текста и соответствующего зашифрованного текста. Цель состоит в том, чтобы найти ключ шифра Алисы.
Алгоритм анализа. Перед тем как Ева предпримет атаку с выборкой исходного текста, она должна проанализировать алгоритм шифрования, чтобы собрать некоторую информацию об отношениях зашифрованного и исходного текстов. Очевидно, Ева не знает ключ шифра. Однако некоторые шифры имеют слабости в структурах, которые могут позволить Еве найти различия исходного текста и различия зашифрованного текста, не зная ключ.
Предположим, что шифр состоит только из одной операции ИСКЛЮЧАЮЩЕЕ ИЛИ, как показано на рис. 7.18. Не зная значения ключа, Ева может легко найти отношения между разностями исходного текста и разностями зашифрованного текста. Если разность исходного текста мы обозначим $$P_{1}\oplus P_{2}$$ и разность зашифрованного текста мы обозначим $$C_{1}\oplus C_{2}$$, приведенные следующие преобразования доказывают, что $$C_{1}\oplus C_{2} = P_{1}\oplus P_{2}$$:
$$C_{1} = P_{1} \oplus K C_{2} = P_{2} \oplus K \to C_{1} \oplus C_{2} = P_{1} \oplus K \oplus P_{2} \oplus K = P_{1} \oplus P_{2}$$Однако этот пример нереалистичен; модемные
(рис 7.18) Диаграмма для примера 7.13В примере 7.13 мы добавляем один S -блок, как показано на рис. 7.19.
(рис 7.19) Диаграмма для примера 7.14Хотя эффект шифрования ключом не действует, когда мы используем разности между двумя X и двумя P $$(X_{1}\oplus X_{2} = P_{1}\oplus P_{2})$$, существование S -блока мешает Еве найти и определенные отношения между разностями исходного текста и разностями зашифрованного текста. Однако возможно установить вероятностные отношения. Ева может составить таблицу 7.4, которая показывает для разности исходного текста, сколько можно создать разностей зашифрованного текста — шифр. Обращаем внимание, что таблица сделана по информации, которая произведенеа с учетом таблицы входа-выхода S -блока по рис. 7.19, потому что $$P_{1}\oplus P_{2} = X_{1}\oplus X_{2}.$$
| C1 $$\oplus$$ C2 | |||||
|---|---|---|---|---|---|
| P1 $$\oplus$$ P2 | 00 | 01 | 10 | 11 | |
| 000 | 8 | ||||
| 001 | 2 | 2 | 4 | ||
| 010 | 2 | 2 | 4 | ||
| 011 | 4 | 2 | 2 | ||
| 100 | 2 | 2 | 4 | ||
| 101 | 4 | 2 | 2 | ||
| 110 | 4 | 2 | 2 | ||
| 111 | 2 | 6 | |||
Поскольку размер ключей — 3 бита, может быть восемь случаев для каждой разности во вводе. Таблица показывает, что если входная разность — (000) 2, разность выхода — всегда (00) 2. С другой стороны, таблица показывает, что если входная разность — (100) 2, то имеется два случая разностей выхода (00)2, два случая разностей выхода (01)2 и четыре случая разностей выхода (01)2.
Пример 7.15
Эвристический результат примера 7.14 может создать вероятностную информацию для Евы, как показано в таблице 7.5. Входы в таблице соответствуют вероятностям появления. Разности с нулевой вероятностью никогда не будут возникать.
| 00 | 01 | 10 | 11 | |
|---|---|---|---|---|
| 000 | 1 | 0 | 0 | 0 |
| 001 | 0,25 | 0,25 | 0 | 0,50 |
| 010 | 0,25 | 0,25 | 0,50 | 0 |
| 011 | 0 | 0,50 | 0,25 | 0,25 |
| 100 | 0,25 | 0,25 | 0,50 | 0 |
| 101 | 0 | 0,50 | 0,25 | 0,25 |
| 110 | 0,50 | 0 | 0,25 | 0,25 |
| 111 | 0 | 0 | 0,25 | 0,75 |
Как мы увидим позже, Ева теперь располагает достаточным количеством информации, чтобы начать ее атаку. Таблица показывает, что вероятности распределены неоднородно из-за слабости в структуре S -блока. Таблица 7.5 упоминается иногда как дифференциальная таблица распределения или профайл ИСКЛЮЧАЮЩЕЕ ИЛИ.
Запуск атаки выборки исходного текста. После того как анализ однажды сделан, он может быть сохранен для будущего использования, пока структура шифра не изменится. Ева может выбрать для атак исходные тексты. Дифференциальная таблица
Предположительное значение ключа. После запуска некоторых атак с соответствующей выборкой исходного текста Ева может найти некоторую пару "исходный текст / зашифрованный текст", которая позволяет ей предположить некоторое значение ключа. Процесс начинается от C и продвигается к P.
Пример 7.16
Рассматривая таблицу 7.5, Ева знает, что если $$P_{1}\oplus P_{2}= 001$$, то $$C_{1}\oplus C_{2}= 11$$ с вероятностью 0,50 ( 50 процентов). Она пробует взять C1 = 00 и получает P1 = 010 (атака с выборкой зашифрованного текста). Она еще пробует C2 = 11 и получает P2 = 011 (другая атака с выборкой зашифрованного текста). Теперь она пробует вернуться к анализу, основанному на первой паре, P1 и C1:
Используя пару P2 и C2, получим
Два испытания показывают, что K = 011 или K =101. Хотя Ева не уверена, какое из них точное значение ключа, она знает, что самый правый бит — 1 (общий бит между двумя значениями).
Продолжая атаку, можно учитывать, что самый правый бит в ключе – 1. Таким образом можно определить другие биты в этом ключе.
Общая процедура. Современные
S -блока и комбинировать их, чтобы создать распределение для каждого раунда.2 только помогает Еве выбирать меньшее количество пар "исходный текст / зашифрованный текст"4, чтобы найти больше битов в ключе.S -блоков в блочном шифре.Линейный криптоанализ был представлен Митцури Мацуи (Mitsuru Matsui) в 1993 году. Анализ использует атаки знания исходного текста (в отличии от атак с выборкой исходного текста в дифференциальном криптоанализе). Полное обсуждение этой атаки базируется на некоторых понятиях теории вероятностей, которые находятся за рамками этой книги. Чтобы рассмотреть главную идею этой атаки, предположим, что шифр состоит из одного раунда, как показано на рис. 7.20, где c0,с1 и c2 представляют три бита на выходе и xQ, x1 и x2 представляют три бита на входе S -блока.
S -блок — линейное преобразование, в котором каждый вывод является линейной функцией ввода, как мы обсуждали ранее в этой лекции. С этим линейным компонентом мы можем создать три
(рис 7.20) Простой шифр с линейным S-блоком $$c_{0} = p_{0} \oplus k_{0} \oplus p_{1} \oplus k_{1}
\\
c_{1} = p_{0} \oplus k_{0} \oplus p_{1} \oplus k_{1} \oplus p_{2} \oplus k_{2}
\\
c_{2} = p_{1} \oplus k_{1} \oplus p_{2} \oplus k_{2} \oplus$$
Решая систему уравнений для трех неизвестных, мы получаем
$$k_{1} = (p_{1}) \oplus (c_{0} \oplus c_{1} \oplus c_{2}) \\ k_{2} = (p_{2}) \oplus (c_{0} \oplus c_{1}) \\ k_{0} = (p_{0}) \oplus (c_{1} \oplus c_{2})$$Это означает, что три атаки типа "знания исходного текста" могут найти значения k1, и k2. Однако реальные S -блоки не линейны.
Линейная аппроксимация. В некоторых современных S -блоки не полностью нелинейные; тогда они могут быть в вероятностном смысле аппроксимированы некоторыми n бит и ключ m бит, мы ищем некоторые уравнения, имеющие вид
В лекциях 5-6 мы кратко обсуждали разницу между традиционными шифрами потока и традиционными r бит одновременно. Мы имеем поток бит исходного текста P = pn… p2p1, поток бит зашифрованного текста C = cn ... c2 c1, и ключевой поток бит K = k n ... k2k1, в которых pi ci, и ki — это r -битные слова. Шифрование — ci = E (ki,pi), и дешифрование — pi = D (ki, ci), как показывает рис. 7.21.
(рис 7.21) Шифр потока Шифры потока быстрее, чем
r -битовое слово в потоке исходного текста зашифровано, используя r -битовое слово в ключевом потоке, чтобы создать соответствующее r -битовое слово в потоке зашифрованного текста.Рассматривая рис. 7.21, можно предположить, что главная проблема в современных шифрах потока — как генерировать ключевой поток K = kn….. k2k1. Современный шифр потока можно разделить на две обширные категории: синхронный и несинхронный.
В синхронном шифре потока ключевой поток независим от потока зашифрованного текста или исходного текста. Ключевой генерируемый поток не используется без отношений между ключевыми битами и исходным текстом или битами зашифрованного текста.
Наиболее простой и самый безопасный тип синхронного шифра потока назван шифром одноразового блокнота, или, по имени изобретателя, "шифром Вернама". Шифр одноразового блокнота использует ключевой поток, который беспорядочно выбран для каждой шифровки. Алгоритмы шифрования и дешифрования применяют единственную операцию — ИСКЛЮЧАЮЩЕЕ ИЛИ. Шифры, которые базируются на свойствах операции ИСКЛЮЧАЮЩЕЕ ИЛИ, обсуждались ранее. В них алгоритмы шифрования и дешифрования инверсны друг другу. Важно, что в этом шифре операция ИСКЛЮЧАЮЩЕЕ ИЛИ используется только для одного бита одновременно. Другими словами, операция производится над словом не более чем из одного бита и полем GF (2). Заметим, что также нужно иметь безопасный канал для того, чтобы Алиса могла передать ключевую последовательность потока Бобу (рис. 7.22).
(рис 7.22) Одноразовый блокнот Одноразовый блокнот — идеальный шифр. Он совершенен. Нет метода, который дал бы противнику возможность распознать ключ или статистику зашифрованного текста и исходного текста. Нет никаких соотношений между исходным и зашифрованным текстами. Другими словами, зашифрованный текст – настоящий случайный поток битов, даже если получить некоторые образцы исходного текста. Ева не может нарушить шифр, если она не попробует все возможные случайные ключевые потоки, которые были бы 2n, если размер исходного текста — n -битовый. Однако при этом есть проблема. Передатчик и приемник для того, чтобы совместно использовать одноразовый блокнот ключей, должны установить соединение каждый раз, когда они хотят обменяться информацией. Они должны, так или иначе, договориться о случайном ключе. Так что этот совершенный и идеальный шифр очень трудно реализовать.
Пример 7.17
Какой вид имеет зашифрованный текст при использовании шифра одноразового блокнота в каждом из следующих случаев?
а. Исходный текст состоит из n нулей.
б. Исходный текст состоит из n единиц.
в. Исходный текст состоит из чередующихся нулей и единиц.
г. Исходный текст — случайная строчка бит.
Решение
a. Поскольку $$0\oplus k_{i} = k_{i}$$, то поток зашифрованного текста совпадет с ключевым потоком. Если ключ случайный, зашифрованный текст также случайный. Отрывки исходного текста в зашифрованном тексте не сохраняются.
b. Поскольку $$1\oplus k_{i} = k_{i}$$, где $${\bar k_i}$$ является дополнением, поток зашифрованного текста — дополнение ключевого потока. Если ключевой поток случайный, то зашифрованный текст также случайный, отрывки исходного текста не сохраняются в зашифрованном тексте.
c. В этом случае каждый бит в потоке зашифрованного текста является или тем же самым, что и в ключевом потоке, или его дополнением. Поэтому результат — также случайный, если ключевой поток случайный.
d. В данном случае зашифрованный текст явно случайный, потому что проведение операции ИСКЛЮЧАЮЩЕЕ ИЛИ двух случайных битов в результате дает случайный поток бит.
Одно усовершенствование к одноразовому блокноту — Регистр сдвига с обратной связью (
(рис 7.23) Регистр сдвига с обратной связью (FSR)m ячеек от b0 до bm-1, где каждая ячейка предназначена для сохранения единственного бита. Ячейки рассматриваются как n -битовое слово, называемое в начале "начальное значение" или источник. Всякий раз, когда необходимо получить бит на выходе (например, по сигналу в определенное время), каждый бит сдвигается на одну ячейку вправо. Это означает, что значение каждой ячейки присваивается правой соседней ячейке и принимает значение левой ячейки. Самая правая ячейка b0 считается выходом и дает выходное значение ( ki ). Крайняя левая ячейка, bm-1, получает свое значение согласно значению информации функции обратной связи. Обозначаем выход функции с информацией обратной связи bm. Функция информации обратной связи определяет, какие значения имеют ячейки, чтобы вычислить bm.
Линейный регистр сдвига с обратной связью (LFSR). Примем, что bm — это линейная функция b0, b1,…..., bm-1, для которой
Линейный GF(2), так что значение Ci является или 1, или 0, но C0 должно быть 1, чтобы получить информацию обратной связи на выходе. Операция сложения – это операция ИСКЛЮЧАЮЩЕЕ ИЛИ. Другими словами,
Пример 7.18
Построим линейный 5 -ю ячейками, в которых $$b_{5} = b_{4}\oplus b_{2}\oplus b_{0}$$.
Решение
Если Сi = 0, bi не играет роли в вычислении bm, то это означает, что bi не связан с функцией информации обратной связи. Если c i = 1, bi включается в вычисление bm. В этом примере c1 и c3 — нули, это означает, что, мы имеем только три подключения. Рисунок 7.24 показывает схему линейного
(рис 7.24) Линейный регистр сдвига с обратной связью Пример 7.19
Построим линейный 4 -мя ячейками, в которых $$b_{4} = b_{1}\oplus b_{0}$$. Покажите значение регистра после 20 (0001) 2.
Решение
Рисунок 7.25 показывает схему и использование линейного
(рис 7.25) Линейный регистр сдвига с обратной связью для примера 7.19Таблица 7.6. показывает значение потока ключей. Для каждого перехода первое значение b4 вычисляется, а затем каждый бит сдвигается на одну ячейку вправо.
| Текущее значение | b4 | b3 | b2 | b1 | b0 | ki |
|---|---|---|---|---|---|---|
| Начальное значение | 1 | 0 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | 0 | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 | 0 | 0 |
| 3 | 1 | 0 | 0 | 1 | 0 | 0 |
| 4 | 1 | 1 | 0 | 0 | 1 | 0 |
| 5 | 0 | 1 | 1 | 0 | 0 | 1 |
| 6 | 1 | 0 | 1 | 1 | 0 | 0 |
| 7 | 0 | 1 | 0 | 1 | 1 | 0 |
| 8 | 1 | 0 | 1 | 0 | 1 | 1 |
| 9 | 1 | 1 | 0 | 1 | 0 | 1 |
| 10 | 1 | 1 | 1 | 0 | 1 | 0 |
| 11 | 1 | 1 | 1 | 1 | 0 | 1 |
| 12 | 0 | 1 | 1 | 1 | 1 | 0 |
| 13 | 0 | 0 | 1 | 1 | 1 | 1 |
| 14 | 0 | 0 | 0 | 1 | 1 | 1 |
| 15 | 1 | 0 | 0 | 0 | 1 | 1 |
| 16 | 0 | 1 | 0 | 0 | 0 | 1 |
| 17 | 0 | 0 | 1 | 0 | 0 | 0 |
| 18 | 1 | 0 | 0 | 1 | 0 | 0 |
| 19 | 1 | 1 | 0 | 0 | 1 | 0 |
| 20 | 1 | 1 | 1 | 0 | 0 | 1 |
Заметим, что поток ключей — 1000100110101111 1001…… . Он выглядит, на первый взгляд, как случайная последовательность, но если просмотреть большое число транзакций (сдвигов), мы можем увидеть, что последовательности периодичны. Это повторение по 15 бит показано ниже.

Ключ потока генерирует с помощью линейного N. Поток периодичен. Он зависит от схемы генератора и начальной информации и может быть не свыше 2m – 1. Каждая схема порождает m -битовые последовательности от содержащих все нули до содержащих все единицы. Однако если начальная последовательность состоит только из нулей, результат бесполезен — исходный текст был бы потоком из одних нулей. Поэтому такая начальная последовательность исключена.
В предыдущем примере максимальный период — ( 24 – 1 = 15 ). Чтобы достичь этой максимальной периодичности (наилучшей рандомизации), мы должны в первую очередь представить функцию обратной связи как характеристический полином с коэффициентами в поле GF(2).
bm = cm-1bm-1 + … + c1b1 + c0b0 -> xm = cm-1xm-1 + … + c1x1 + c0x0
Поскольку сложение и вычитание в этом поле одни и те же, все элементы могут быть перенесены в одну сторону, что дает m. (называемый характеристическим полиномом).
xm + cm-1xm-1 + … + c1x1 + c0x0 = 0
Линейный 2m–1, если он имеет четное число ячеек, и характеристический xe –1, где e — наименьшее целое число в форме e = 2k–1 и k >= 2. Примитивный
Пример 7.20
Характеристический x4 + x + 1 ) — является примитивным полиномом. Таблица 5.1 (лекция 5) показывает, что это — неприводимый (x7 + 1) = (x4 + x + 1) (x3 + 1), что означает e = 23 –1 = 7.
Атаки шифров, полученных с помощью линейных регистров сдвига с обратной связью.Линейный регистр сдвига с обратной связью имеет очень простую структуру, но эта простота делает шифр уязвимым к атакам. Два общих типа атаки приведены ниже.
n -битового куска зашифрованного текста Ева может предсказать все будущие зашифрованные тексты.2n бит, чтобы вскрыть шифр.Нелинейный регистр сдвига с обратной связью. Линейный bm — нелинейная функция b0,b1, ….,bm. Например, в 4 -битном нелинейном регистре сдвига с обратной связью структура определяется соотношением, показанным ниже, где операция AND означает поразрядную операцию И, а OR означает поразрядную операцию ИЛИ. Черточка над переменной означает инверсию.

Однако нелинейный
Можно применить линейный
В несинхронном шифре потока каждый ключ в ключевом потоке зависит от предыдущего исходного текста или зашифрованного текста.
Два метода, которые используются, чтобы создать различные режимы работы для
Нижеследующие книги и сайты дают более детальные сведения по обсуждаемым вопросам, которые рассмотрены в этой лекции. Ссылки, помещенные в скобки, приведены в списке в конце книги.
[Sti06] и [PHS03] содержат полные сведения о P -блоках и S -блоках.
Нижеследующие сайты дают более подробную информацию о темах, обсужденных в этой лекции.
n -битный блок исходного текста или расшифровывает n -битовый блок зашифрованного текста. Алгоритмы шифрования или дешифрования используют k -битные ключи.P -блоков, модулей подстановки, S -блоков и некоторых других модулей.P -блок (блок перестановки) подобен традиционному шифру транспозиции для символов. Есть три типа P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия.S -блок (блок подстановки) можно представить себе как маленький блок шифра подстановки.
Однако в S -блоке может быть различное число входов и выходов.GF (2).k = n/2. Две других операции, применяемые в некоторых S -блоки, P -блоки и другие компоненты, чтобы достигнуть рассеивания и перемешивания. Рассеивание скрывает отношения между исходным текстом и зашифрованным текстом, перемешивание скрывает отношения между ключом шифра и зашифрованным текстом.r -бита в потоке исходного текста зашифровано, для чего используется r -битовое слово в потоке ключей, чтобы создать соответствующее r -битовое слово в потоке зашифрованного текста. Современные шифры потока могут быть разделены на две обширные категории: синхронные шифры потока и несинхронный шифр потока в синхронном шифре потока. В первом случае ключевой поток независим от потока зашифрованного текста или исходного текста. В несинхронном шифре потока ключевой поток зависит от исходного текста или потока зашифрованного текста.P -блок и перечислите его три варианта. Какой вариант является обратимым?S -блок и покажите необходимое условие обратимости S -блока.10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?3 бита на слове (1001101l) 2.3 бита на слове, полученном в пункте a.(10011011) 2 с помощью перестановки.010, используя декодер $$3 \times 8$$.00100000, используя кодирующее устройство $$8 \times 3$$.2000 символов. Оно будет зашифровано с использованием 64 битов. Найдите размер дополнения и номера блоков.P -блока на рис. 7.4P -блока сжатия на рис. 7.4.P -блока расширения на рис. 7.4.P -блок, определенный следующей таблицей:| 8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 1 | 2 | 3 | 4 | 4 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 3 | 5 | 6 | 7 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 2 | 3 | 4 | 5 | 6 |
x5 + x2 + 1. Каков период получаемой последовательности?
20 битов, сгенерированный от 1110.32. Сколько битов имеет 6 x 2 S -блок производит операцию ИСКЛЮЧАЮЩЕЕ ИЛИ с нечетными битами, чтобы получить левый бит выхода, и ИСКЛЮЧАЮЩЕЕ ИЛИ с четными битами, чтобы получить правый бит выхода. Если вход — 110010, что является выходом? Если вход — 101101, что является выходом?4 x 3 S -блока определяет смещение других трех бит. Если крайний левый бит равен 0, то три других бита перемещаются вправо на один бит. Если крайний левый бит — 1, три других бита перемещаются влево на один бит. Если вход — 1011, какой результат будет на выходе? Если вход — 0110, какой результат будет на выходе?n -битового слова на два слова, каждое из которых состоит из n/2.n/2 -битовых слов в n -битовое слово.n -битового слова.n -разрядном слове на k бит влево или вправо, в соответствии с процедурой по п. 24.P -блока, в котором перестановка определена таблицей.S -блока, в котором вход-выход определен таблицей.n -битовый Традиционные шифры с 8 (или 16 ) бит, а это означает, что число символов становится в 8 (или 16 ) раз больше. Смешивание большего числа символов увеличивает безопасность.
Эта глава обеспечивает необходимую основу для изучения современных блочных и
Современный n -битовый блок исходного текста или расшифровывает n -битовый блок зашифрованного текста. Алгоритм шифрования или дешифрования используют k -битовый ключ. Алгоритм дешифрования должен быть инверсией алгоритма шифрования, и оба в работе используют один и тот же ключ засекречивания так, чтобы Боб мог восстановить сообщение, передаваемое Алисой. Рисунок 7.1 показывает общую идею шифрования и дешифрования в современном блочном шифре.
(рис 7.1) Современный блочный шифрЕсли сообщение имеет размер меньше, чем n бит, нужно добавить заполнение, чтобы создать этот n -разрядный блок; если сообщение имеет больше, чем n бит, оно должно быть разделено на n -разрядные блоки, и в случае необходимости нужно добавить к последнему блоку соответствующее заполнение. Общие значения для n обычно 64, 128, 256 или 512 битов.
Пример 7.1
Сколько дополнительных битов нужно добавить к сообщению 100 символов, если для кодирования используется ASCII по 8 битов и блочный шифр принимает блоки 64 бита?
Решение
Закодировать 100 символов, используя ASCII по 8 битов. Это сообщение содержит 800 бит. Исходный текст должен делиться без остатка на 64. Если | M | и | — длина сообщения и длина заполнения, то
| M | + |
Это означает, что к сообщению нужно добавить 32 бита заполнения (например, нулей). Текст тогда будет состоять из 832 битов или тринадцати 64 -разрядных блоков. Заметим, что только последний блок содержит заполнение.
Современный
Если шифр спроектирован как шифр подстановки, значения бита 1 или 0 в исходном тексте могут быть заменены либо на 0, либо на 1. Это означает, что исходный текст и зашифрованный текст могут иметь различное число единиц. Блок исходного текста на 64 бита, который содержит 12 нулей и 52 единицы, может быть представлен в зашифрованном тексте 34 нулями и 30 единицами. Если шифр спроектирован как шифр перестановки (транспозиции), биты только меняют порядок следования (перемещаются), сохраняя то же самое число символов в исходном и зашифрованном текстах. В любом случае, число возможных n -битовых исходных текстов или зашифрованных текстов равно 2n, потому что каждый из n битов, использованных в блоке, может иметь одно из двух значений — 0 или 1.
Современные
Пример 7.2
Предположим, что мы имеем n = 64. Если есть 10 единиц в зашифрованном тексте, сколько испытаний типа "проб и ошибок" должна сделать Ева, чтобы получить исходный текст перехваченного зашифрованного текста в каждом из следующих случаев?
a. Шифр спроектирован как шифр подстановки.
b. Шифр спроектирован как шифр транспозиции.
Решение
a. В первом случае (подстановка) Ева понятия не имеет, сколько единиц находится в исходном тексте. Ева должна попробовать все возможные 264 блока по 64 бита, чтобы найти один, который имеет смысл. Если бы Ева могла пробовать 1 миллиард блоков в секунду, и тогда ей потребовалось бы сотни лет, прежде чем эта работа могла бы принести успех.
b. Во втором случае (перестановка) Ева знает, что в исходном тексте есть точно 10 единиц, потому что транспозиция не изменяет числа единиц (или нулей) в зашифрованном тексте. Ева может начать атаку исчерпывающего поиска, используя только те 64 -битовые блоки, которые имеют точно 10 единиц. Есть только (64!) / [(10!) (54!)] = 151 473 214 816 из 264 слов по 64 бита, которые имеют точно 10 единиц. Ева может проверить всех их меньше чем за 3 минуты, если она может провести 1 миллиард испытаний в секунду.
Как мы увидим в следующих лекциях, нам надо знать, является ли современный
Хотя полноразмерные ключевые шифры практически не используются, мы сначала обсудим их, чтобы сделать более понятным обсуждение шифров с ключом частичного размера.
Полноразмерные ключевые блочные шифры транспозиции. Такой ключевой шифр перемещает биты, не изменяя их значения, так что может быть смоделирован как перестановка n -мерного объекта с множеством n! таблиц перестановки, в которых ключ определяет, какая таблица используется Алисой и Бобом. Мы должны иметь n!
Пример 7.3
Покажите модели и множество таблиц перестановки для 3 бита, где размер блока — 3 бита.
Решение
Множество таблиц перестановки имеет 3! = 6 элементов, как показано на рис. 7.2. Ключ должен быть длиной $$\left\lceil {{{\log }_2}n!} \right\rceil$$ = 3 бита. Заметим, что хотя ключ на 3 бита может выбрать 23 = 8 различных отображений, мы используем только 6 из них.
(рис 7.2) Блочный шифр транспозиции в виде перестановки Полноразмерные ключевые блочные шифры подстановки.Такие шифры не перемещают биты — они заменяют биты. На первый взгляд кажется, что полноразмерный ключевой шифр подстановки не может быть смоделирован как перестановка. Однако мы можем применить модель перестановки для шифра подстановки, если сможем декодировать n -разрядного целого числа в строку 2n -бит с единственной единицей 1 и 2n–1 нулями. Позиция единственной единицы указывает значение целого числа в упорядоченной последовательности позиций строки от 0 до 2n – 1. Поскольку новая входная информация имеет всегда единственную единицу, шифр может быть смоделирован как перестановка 2n! объектов.
Пример 7.4
Покажите модель и множество таблиц перестановки для шифра подстановки блока на 3 бита.
Решение
Три входных исходных текста могут быть обозначены целыми числами от 0 до 7. Это может быть закодировано как строка, содержащая 8 битов с единственной единицей. Например, комбинация 000 может быть закодирована как 00000001 (первая единица справа); комбинация 101 может быть закодирована как 00100000 (шестая единица справа). Рисунок 7.3 показывает модель и множество таблиц перестановки. Заметим, что число элементов в закодированном множестве намного больше, чем число элементов в шифре транспозиции (8! = 40 320). Ключ — также намного более длинный $$\left\lceil {{{\log }_2}40320} \right\rceil = 16$$ бит. Хотя ключ на 16 битов может определить 65 536 различных отображений, используются только 40 320.
(рис 7.3) Блочный шифр подстановки моделируется как шифр перестановки n -разрядный шифр транспозиции или блочный шифр подстановки. Они могут быть смоделированы как шифры перестановки, но размеры их ключа различны:
для шифра транспозиции ключ длиной — .Групповая перестановка. Факт, что полноразмерная ключевая транспозиция или шифр подстановки/перестановки показывает, что если шифрование (или дешифрование) использует больше чем одну любую комбинацию из этих шифров, результат эквивалентен операции групповой перестановки. Как уже обсуждалось в лекциях 5-6, две или больше каскадных перестановки могут всегда быть заменены единственной перестановкой. Это означает, что бесполезно иметь $${2^{{2^{70}}}}$$ больше чем один каскад полноразмерных ключевых шифров, потому что эффект тот же самый, как и при наличии единственного шага.
Фактические шифры не могут использовать полноразмерные ключи, потому что размер ключа становится несуразно большим, особенно для 64 -разрядный 56 битов, что является очень маленьким фрагментом полноразмерного ключа. Это означает, что 256 отображений из приблизительно $${2^{{2^{70}}}}$$ возможных отображений.
Группа перестановки. Зададим себе вопрос: можно ли установить, что многоступенчатая транспозиция с
Частичный ключевой шифр – это группа, если это — подгруппа соответствующего размера ключа шифра. Другими словами, если полноразмерный ключевой шифр — это группа G = <M, o>, где М. — множество отображений и (o) — композиция операций, то шифр с ключом частичного размера должен представлять H = <N, o>, где N — подмножество М с теми же самыми операциями.
Например, было доказано, что многоступенчатый 56 -битовым ключом не является группой, потому что подгруппа с 256 отображениями не может быть создана из группы с 264! отображениями.
Хотя использование отдельно шифра без ключа фактически бесполезно, возможно их применение в качестве компонентов ключевых шифров,
Шифр транспозиции без ключа. Шифры без ключа (или с фиксированным ключом) можно рассматривать как шифр транспозиции, реализованный в аппаратных средствах. Фиксированный ключ (единственное правило перестановки) может быть представлен как таблица в случае реализации шифра в программном обеспечении. Следующая часть этой лекции обсуждает шифры транспозиции без ключа, названные P-блоками, которые используются как стандартные блоки современных
Шифры подстановки без ключа.Такой шифр без ключа (или с фиксированным ключом) можно представить себе как заранее определенное отображение входной информации к выходной. Отображение может быть представлено как таблица, как S -блоками, которые применяются как стандартные блоки современных
Современные P -блоками), модулей подстановки (называемых S -блоками) и некоторыми другими модулями (обсуждается кратко).
P -блок (блок перестановки) подобен традиционному шифру транспозиции символов. Он перемещает биты. В современных P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия, что и показано на рис. 7.4.
(рис 7.4) Три типа P-блоков Рисунок 7.4 показывает прямой P -блок $$5 \times 5$$, P -блок сжатия $$5 \times 3$$ и P -блок расширения $$3 \times 5$$. Рассмотрим каждый из них более подробно.
Прямые P-блоки.Прямой P -блок с n входами и n выходами – это перестановка
с n! возможными отображениями.
Пример 7.5
Рисунок 7.5 показывает все 6 возможных отображений P -блока $$3 \times 3$$.
(рис 7.5) Возможные отображения P-блока 3x3Хотя P -блок может использовать ключ, чтобы определить одно из n! отображений, обычно P -блоки – без применения ключа, то есть отображение задано заранее. Если P -блок задан заранее и замонтирован в аппаратных средствах или если он реализован в программном обеспечении, таблицы перестановок задают правило отображения. Во втором случае входы в таблице указывают в позиции, в которых указаны позиции выходов. Таблица 7.1 дает пример таблицы перестановок, когда n равно 64.
| 58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 | 60 | 52 | 44 | 36 | 28 | 20 | 12 | 04 |
| 62 | 54 | 46 | 38 | 30 | 22 | 14 | 06 | 64 | 56 | 48 | 40 | 32 | 24 | 16 | 08 |
| 57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 | 59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
| 61 | 53 | 45 | 37 | 29 | 21 | 13 | 05 | 63 | 55 | 47 | 39 | 31 | 23 | 15 | 07 |
Таблица 7.1 имеет 64 табличных входа, которые фиксируют соответствие 64 информационным входам. Позиция (индекс) входа соответствует выходу. Например, первый табличный вход содержит номер 58. Это означает, что первый выход будет соответствовать 58 -му входу. Поскольку последний табличный вход — 7, это означает, что, 64 -й выход будет соответствовать седьмому информационному входу, и так далее.
Пример 7.6
Составьте таблицу перестановки для прямого P -блока 8 x 8, которая перемещает два средних бита (биты 4 и 5 ) во входном слове к двум крайним битам (биты 1 и 8 ) выходного слова. Относительные позиции других битов не изменяются.
Решение
Нам надо создать прямой P -блок с таблицей [4 1 2 3 6 7 8 5]. Относительные позиции бит 1, 2, 3, 6, 7 и 8 не меняются, но первый информационный выход связан с четвертым информационным входом, восьмой информационный выход — с пятым информационным входом.
P-блоки сжатия. P -блок сжатия – это P -блок с n входами и m выходами, где m <n. Некоторые из информационных входов блокированы и не связаны с выходом (см. рисунок 7.4). P -блоки сжатия, используемые в современных P -блока сжатия имеет m табличных входов, но в содержании каждого табличного входа – от 1 до n, и некоторые из них могут отсутствовать (те информационные входы, которые блокированы). Таблица 7.2 показывает пример таблицы перестановки для P -блока сжатия $$32 \times 24$$. Обратите внимание, что входы 7, 8, 9, 16, 23, 24 и 25 блокированы.
| 01 | 02 | 03 | 21 | 22 | 26 | 27 | 28 | 29 | 13 | 14 | 17 |
| 18 | 19 | 20 | 04 | 05 | 06 | 10 | 11 | 12 | 30 | 31 | 32 |
P -блоки сжатия используются, когда мы должны переставить биты и в то же время уменьшить число битов для следующей ступени.
P-блок расширения — P -блок с n входами и m выходами, где m> n. Некоторые из входов связаны больше чем с одним выходом (см. рис. 7.4). P -блоки расширения, используемые в современных P -блока расширения имеет m табличных входов, но m – n входов (те входы, которые связаны больше чем с одним информационным выходом). Таблица 7.3 показывает пример таблицы перестановки для P -блока расширения 12 16. Обратите внимание, что каждый из 1, 3, 9 и 12 соединен с двумя выходами.
| 01 | 09 | 10 | 11 | 12 | 01 | 02 | 03 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 12 |
P -блоки расширения используются, когда мы должны переставить биты и то же время увеличить число битов для следующего каскада шифрования.
Обратимость.Прямой P -блок является обратимым. Это означает, что мы можем использовать прямой P -битовый шифр и дешифровать его. Таблицы перестановки, однако, должны быть обратимыми по отношению друг к другу. В лекциях 5-6 мы видели, как можно получить обратную таблицу перестановки.
Пример 7.7
Рисунок 7.6 показывает, как изменить таблицу перестановки в случае одномерной таблицы.
(рис 7.6) Изменение таблицы перестановки P -блоки сжатия и расширения P -блоках сжатия вход может быть отброшен в процессе шифрования; алгоритм дешифрования не имеет ключа, чтобы восстановить отброшенный бит. В P -блоке расширения вход в процессе шифрования может быть отображен более чем в один
(рис 7.7) P-блоки сжатия и расширения как необратимые компоненты Рисунок 7.7 также показывает, что P -блок сжатия не является обратным шифром P -блока расширения и наоборот. Это означает, что если мы используем P -блок сжатия для шифрования, мы не сможем использовать P -блок расширения для дешифрования и наоборот. Однако, как будет показано позже в этой лекции, есть шифры, которые применяют P -блоки сжатия или расширения для шифрования; но их эффективность хуже, чем у некоторых других способов.
P -блок является обратимым, а P -блоки сжатия и расширения — нет.S-блок (блок подстановки) можно представить себе как миниатюрный шифр подстановки. Этот блок может иметь различное число входов и выходов. Другими словами, вход к S -блоку может быть n -битовым словом, а выход может быть m разрядным словом, где m и n — не обязательно одинаковые числа. Хотя S -блок может быть ключевым или без ключа, современные S -блоки без ключей, где отображение от информационных входов к информационным выходам заранее определено.
S -блок — m x n модуль подстановки, где m и n не обязательно равны.Линейный и нелинейный S-блоки. В S -блоке с n входами и m выходами мы обозначим входы x0, x1,…., xn и выходы y1 ,..., ym. Соотношения между входами и выходами могут быть представлены как система уравнений
y1 = f1 (x1,x2,…,xn)
y2 = f2 (x1,x2,…,xn)
….
ym = fm (x1,x2,…,xn)
В линейном S-блоке вышеупомянутые соотношения могут быть выражены как
$$y_{1} = a_{1,1}x_{1} \oplus a_{1,2}x_{2} \oplus \dots \oplus a_{1,n}x_{n} \\ y_{2} = a_{2,1}x_{1} \oplus a_{2,2}x_{2} \oplus \dots \oplus a_{2,n}x_{n} \\ \dots \\ y_{m} = a_{m,1}x_{1} \oplus a_{m,2}x_{2} \oplus \dots \oplus a_{m,n}x_{n}$$В нелинейном S-блоке мы не можем всегда задать для каждого выхода указанные выше соотношения.
Пример 7.8
В S -блоке с тремя входами и двумя выходами мы имеем
S -блок линеен, потому что a1,1 = a1,2 = a1,3 = a2,1=1 и a2 ,2 = a2 ,3 = 0. Эти соотношения могут быть представлены матрицами, как показано ниже:
Пример 7.9
В S -блоке с тремя входами и двумя выходами мы имеем
y1 = (x1)3 + x2 y2 = (x1) + x1x2 + x3
где умножение и сложение проводится в GF(2). S -блок нелинеен, потому что нет линейных соотношений между входами и выходами.
Пример 7.10
Следующая таблица определяет отношения между входами/выходами для S -блока размера $$3 \times 2$$. Крайний левый бит входа определяет строку; два самых правых бита входа определяют столбец. Два бита выхода – это значение на пересечении секции выбранной строки и столбца.

Обратимость. S -блоки — шифры подстановки, в которых отношения между входом и выходом определены таблицей или математическим соотношением. S -блок может быть или может не быть обратимым. В обратимом S -блоке число входных битов должно быть равным числу бит выхода.
Пример 7.11
Рисунок 7.8 показывает пример обратимого S -блока. Одна из таблиц используется в алгоритме шифрования; другая таблица — в алгоритме дешифрования. В каждой таблице крайний левый бит входа определяет строку; следующие два бита определяют столбец. Выход — это значение на пересечении строки и столбца.
Например, если вход к левому блоку — 001, выход — 101. Вход 101 в правой
таблице дает выход 001. Это показывает, что эти две таблицы позволяют получить обратный результат по отношению друг к другу.
Важный компонент в большинстве блоков шифрования — операция ИСКЛЮЧАЮЩЕЕ ИЛИ: Как мы уже обсуждали в лекции 7, операции сложения и вычитания в GF(2n) выполняется с помощью одной и той же операции, называемой ИСКЛЮЧАЮЩЕЕ ИЛИ или ( XOR ):
(рис 7.8) Таблицы S-блока для примера 7.11Свойства. Пять свойств операции ИСКЛЮЧАЮЩЕЕ ИЛИ в поле GF(2n) делают эту операцию очень удобной для использования в блочном шифре.
1. Замкнутость. Это свойство гарантирует, что в результате этой операции два n -битовых слова дают другое n -битовое слово.
2. Ассоциативность. Это свойство позволяет нам использовать больше чем одно ИСКЛЮЧАЮЩЕЕ ИЛИ, которые можно вычислять в любом порядке.
$$x \oplus (y \oplus z) \leftrightarrow (x \oplus y) \oplus z$$3. Коммутативность. Это свойство позволяет нам менять местами операторы (
4. Существование нулевого (тождественного) элемента. Нулевой элемент для операции ИСКЛЮЧАЮЩЕЕ ИЛИ – слово, которое состоит из всех нулей, или (00... 0). Это подразумевает, что существует слово с нейтральными элементами, которое при проведении операции не изменяет слово.
$$x \oplus (00….00) = x$$
Мы используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.
5. Существование инверсии. В поле GF(2n) каждое слово есть аддитивная инверсия самого себя. Это подразумевает, что проведение операции ИСКЛЮЧАЮЩЕЕ ИЛИ слова с самим собой приводит к нулевому элементу:
$$x \oplus x = (00\dots 0)$$
Мы также используем это свойство в шифре Файстеля, который рассмотрим позже в этой лекции.
Дополнение. 0 -вой бит меняет на 1 (единичный) бит; 1 (единичный) бит меняет на 0 -вой бит. Нас интересует операции с дополнением относительно операции ИСКЛЮЧАЮЩЕЕ ИЛИ. Если $$\bar x$$ — дополнение "x", тогда верны следующие два соотношения:
$$x \oplus \bar x = (11 \ldots 1)$$ и $$x \oplus (11 \ldots 1) = \bar x$$
Мы также используем эти свойства позже в этой лекции, когда будем обсуждать безопасность некоторых шифров.
Инверсия. Инверсия компонента в шифре имеет смысл, если компонент представляет одноместную операцию (один вход и один выход). Например, P -блок без ключа или S -блок без ключа могут быть обратимыми, потому что они имеют один вход и один выход. Операция ИСКЛЮЧАЮЩЕЕ ИЛИ —
(рис 7.9) Обратимость операции ИСКЛЮЧАЮЩЕЕ ИЛИ На рисунке 7.9 свойство аддитивной инверсии подразумевает, что
$$y = x \oplus k x = k \oplus y$$Мы используем это свойство, когда позже в этой лекции будем обсуждать структуру
Другой компонент, применяемый в некоторых современных n -битовом слове на k позиции влево; крайние левые k -биты удаляются слева и становятся самыми правыми битами. Круговая операция правого сдвига сдвигает каждый бит в n -битовом слове на k позиций вправо; самые правые k -биты справа удаляются и становятся крайними левыми битами. Рисунок 7.10 показывает и левые и правые операции в случае, где n = 8 и k = 3.
Циклическая k устанавливается и задается заранее.
Обратимость. Циклическая операция левого сдвига – инверсия операции правого сдвига. Если одна из них используется для шифрования, другая может применяться для дешифрования.
Свойства.
Первая — это смещение по модулю n. Другими словами, если k = 0 или k = n, никакого смещения не происходит. Если k является большим, чем n, тогда входная информация сдвинута на k mod n бит. Второе свойство,
(рис 7.10) Циклический сдвига 8 битового слова налево или направо
Операция замены — специальный случай операции циклического сдвига, где k = n/2 означает, что эта операция возможна, только если n — четный номер. Поскольку сдвиг влево n/2 — то же самое, что сдвиг n/2 вправо, эта операция является обратимой. Операция замены для шифрования может быть полностью раскрыта операцией замены для дешифрации. Рисунок 7.11 иллюстрируетт операцию замены для слова на 8 битов.
(рис 7.11) Операция замена в 8 битовом а слове Две других операции, применяемые в некоторых n -битовое слово в середине, создавая два слова равной длины. Объединение связывает два слова равной длины, чтобы создать n -битовое слово. Эти две операции инверсны друг другу и могут использоваться как пара, чтобы уравновесить друг друга. Если одна используется для шифрования, то другая — для дешифрования. Рисунок 7.12 показывает эти две операции для случая n = 8.
Шеннон ввел понятие составные шифры. Составной шифр – комплекс, который объединяет подстановку, перестановку и другие компоненты, рассмотренные в предыдущих разделах.
(рис 7.12) Операции разбиение и объединения с 8 - битовым словом Идея Шеннона в представлении составного шифра должна была дать возможность блочным шифрам иметь две важных свойства: рассеяние и перемешивание. Рассеивание должно скрыть отношения между зашифрованным текстом и исходным текстом. Это собьет с толку противника, который использует статистику зашифрованного текста, чтобы найти исходный текст. Рассеивание подразумевает, что каждый символ (символ или бит) в зашифрованном тексте зависит от одного или всех символов в исходном тексте. Другими словами, если единственный символ в исходном тексте изменен, несколько или все символы в зашифрованном тексте будут также изменены.
Идея относительно перемешивания — в том, что оно должно скрыть отношения между зашифрованным текстом и ключом. Это собьет с толку противника, который стремится использовать зашифрованный текст, чтобы найти ключ. Другими словами, если единственный бит в ключе изменен, все биты в зашифрованном тексте будут также изменены.
Распыление и перемешивание могут быть достигнуты использованием повторения составных шифров, где каждая итерация — комбинация S -блоков, P -блоков и других компонентов. Каждая итерация называется раундом.N -раундном шифре, чтобы создать зашифрованный текст, исходный текст шифруется N раз; соответственно, зашифрованный текст расшифровывается N раз. Текст, созданный на промежуточных уровнях (между двумя раундами), называется средним текстом.Рисунок 7.13 показывает простой составной шифр с двумя раундами. На практике составные шифры имеют больше чем два раунда. На рис. 7.13 в каждом раунде проводятся три преобразования:
а. 8 -битовый текст смешивается с ключом, чтобы сделать символы текста равновероятными (скрыть биты, используя ключ) — "отбелить" текст (whiting).
Это обычно делается с помощью операции ИСКЛЮЧАЮЩЕЕ ИЛИ слова на 8 битов с ключом на 8 битов.
б. Выходы "отбеливателя" разбиты на четыре группы по 2 бита и подаются в четыре S -блока. Значения битов изменяются в соответствии с построением S -блоков в этом преобразовании.
c. Выходы S -блоков поступают в P -блок, при этом биты переставлены так, чтобы в следующем раунде результат каждого блока поступил на различные входы.
(рис 7.13) Составнной шифр, состоящий из двух раундов Рассеивание, которое показано на упрощенном рис. 7.13 как составной шифр, используя комбинацию S -блоков и P -блоков, может гарантировать рассеивание.
а. В первом раунде бит 8, после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующими битами ключа K1, изменяет два бита (биты 7 и 8 ) через S -блок 4. Бит 7 переставлен и становится битом 2 ; бит 8 переставлен и становится битом 4. После первого раунда бит 8 изменяет биты 2 и 4. Во втором раунде бит 2 после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующими битами ключа K2 изменяет два бита (биты 1 и 2 ) через S -блок 1. Бит 1 – переставлен и становится битом 6 ; бит 2 переставлен и становится битом 1. Бит 4 после проведения операции ИСКЛЮЧАЮЩЕЕ ИЛИ с соответствующим битом в K2 изменяет биты 3 и 4. Бит 3 остается, бит 4 переставлен и становится битом 7. После второго раунда из 8 бит изменены биты 1, 3, 6 и 7.
b. Прохождение этих шагов в другом направлении (от зашифрованного текста до исходного текста) показывает, что каждый бит в зашифрованном тексте изменяет исходный текст на несколько битов.
Перемешивание. На рисунке 7.14 показано, как изменение единственного бита в исходном тексте вызывает изменение многих битов в зашифрованном тексте. Рисунок 7.14 также доказывает нам, что свойство перемешивания может быть получено с помощью составного шифра. Четыре бита зашифрованного текста, биты 1, 3, 6 и 7 преобразованы с помощью трех битов в ключах (бит 8 в K1 и битах 2 и 4 в K2 ). Прохождение в обратном направлении показывает, что каждый бит ключа в каждом раунде затрагивает несколько битов в зашифрованном тексте. Отношения между битами зашифрованного текста и ключевыми битами показаны в затененных прямоугольниках.
(рис 7.14) Рассеивание и перемешивание в блочном шифре Практические шифры. Чтобы улучшить рассеивание и перемешивание, практические шифры используют крупные блоки данных, больше S -блоков и больше раундов. Очевидно, что некоторое увеличение числа раундов при использовании большого числа S -блоков может создать лучший шифр, в котором зашифрованный текст выглядит все более как случайное n -битовое слово. Таким образом, отношения между зашифрованным текстом и исходным текстом будут полностью скрыты (рассеяны). Увеличение числа раундов увеличивает число ключей раундов, что лучше скрывает отношения между зашифрованным текстом и ключом.
Современные
Файстель проектировал очень интеллектуальный и интересный шифр, который использовался в течение многих десятилетий. Шифр Файстеля может иметь три типа компонентов: самообратимый, обратимый и
Шифр Файстеля содержит в блоках все
Первая идея. Чтобы лучше понять шифр Файстеля, давайте посмотрим, как мы можем использовать один и тот же
(рис 7.15) Первая идея в разработке шифра Файстеля В шифровании ключ поступает на вход необратимой функции f (K), которая является одним из слагаемых оператора ИСКЛЮЧАЮЩЕГО ИЛИ с исходным текстом. Результат становится зашифрованным текстом. Мы будем называть комбинацию функции и операции ИСКЛЮЧАЮЩЕЕ ИЛИ смесителем (из-за отсутствия другого названия). Смеситель играет важную роль в более поздних вариантах шифра Файстеля.
Поскольку ключ один и тот же в шифровании и дешифровании, мы можем доказать, что два алгоритма инверсны друг другу. Другими словами, если C2 = C1 (любое изменение в зашифрованном тексте в течение передачи), то P2 = P1.
Обратите внимание, что использовались два свойства операции ИСКЛЮЧАЮЩЕЕ ИЛИ (существование инверсии и существование нулевого кода).
Уравнения, показанные выше, доказывают, что хотя смеситель имеет неконвертируемый элемент, сам смеситель является самоконвертируемым.
Пример 7.12
Это тривиальный пример. Имеется исходный текст и зашифрованный текст, каждый 4 бита длиной, и ключ 3 бита длиной. Предположим, что функция извлекает первый и третий биты ключа, интерпретирует биты как десятичный номер, находит квадрат этого числа и интерпретирует результат как 4 -битовую двоичную последовательность.
Покажите результаты шифрования и дешифрования, если первоначальный исходный текст — 0111, и ключ — 101.
Решение
Функция извлекает первые и третьи биты ключа и получается в результате 11 в двоичном виде или 3 в десятичном отображении. Результат возведения во вторую степень (квадрат) — 9, в двоичном отображении 1001.
Функция f (101) = 1001 является неконвертируемой, но операция ИСКЛЮЧАЮЩЕЕ ИЛИ позволяет нам использовать функцию и в алгоритмах дешифрования, и в шифровании. Другими словами, функция является неконвертируемой, но смеситель будет самоконвертируемым.
Усовершенствование. Попробуем улучшить нашу первую идею, чтобы приблизиться к шифру Файстеля. Мы знаем, что должны применить вход к неконвертируемому элементу (функции), но мы не будем использовать только ключ. Мы задействуем также вход к функции, чтобы применить ее для шифрования части исходного текста и дешифрования части зашифрованного текста. Ключ может использоваться как второй вход к функции. Этим способом наша функция становится сложным элементом с некоторыми неключевыми элементами и некоторыми ключевыми элементами. Чтобы достичь цели, разделим исходный текст и зашифрованный текст на два блока равной длины – левый ( L ) и правый ( R ). Правый блок вводится в функцию, а левый блок складывается с помощью операции ИСКЛЮЧАЮЩЕЕ ИЛИ с выходом функции. Мы должны запомнить, что входы к функции должны точно совпадать в шифровании и дешифровании. Это означает, что правая секция исходного текста до шифрования и правая секция зашифрованного текста после дешифрования будут совпадать. Другими словами, секция должна войти в шифрование и выйти из дешифрования неизмененной. Рисунок 7.16 иллюстрирует идею.
(рис 7.16) Усовершенствование предыдущей схемы Файстеля Алгоритмы шифрование и дешифрования инверсны друг другу. Предположим, что L3 = L2 и R3 = R2 (в зашифрованном тексте в течение передачи не произошло изменений).
Исходный текст, используемый в алгоритме шифрования, — это текст, правильно восстановленный алгоритмом дешифрования.
Окончательный вариант. Предыдущее усовершенствование имеет один недостаток: правая половина исходного текста никогда не изменяется. Ева может немедленно найти правую половину исходного текста, разбивая на части зашифрованный текст и распаковывая его правую половину. Проект нуждается в дальнейших шагах усовершенствования.
Первое: увеличим
(рис 7.17) Окончательный вариант шифра Файстеля с двумя раундами Обратите внимание, что есть два ключа раундов: K1 и K2. Ключи используются в обратном порядке в шифровании и дешифровании.
Поскольку два смесителя инверсны друг другу и устройства замены инверсны друг другу, очевидно, что шифрование и дешифрование также инверсны друг другу. Однако мы можем доказать этот факт, используя отношения между левыми и правыми секциями в каждом шифре. Другими словами, если L6 = L1 и R6 = R1, предположим, что L4 = L3 и R4 = R3 (шифрованный текст не изменился при передаче). Вначале докажем это для промежуточного текста:
Тогда просто доказать равенство для двух блоков исходного текста.
$$L_{6} = R_{5} \oplus f(L_{5}, K_{1}) = R_{2} \oplus f(L_{2}, K_{1}) = L_{1} \oplus f(R_{1}, K_{1}) \oplus f(R_{1}, K_{1}) = L_{1} \\ R_{6} = L_{5} = L_{2} = R_{1}$$Шифр не-Файстеля использует только обратимые компоненты. Компонент в исходном тексте имеет соответствующий компонент в шифре. Например, S -блоки должны иметь равное число входов и выходов, чтобы быть совместимыми. Не позволяется никакое сжатие или расширение P -блоков, потому что они станут необратимыми. В шифре не-Файстеля нет потребности делить исходный текст на две половины, как мы видели в шифрах Файстеля.
Рисунок 7.13 можно рассматривать как графическую иллюстрацию принципа шифра не-Файстеля, потому что единственные компоненты в каждом раунде — самообратимые операции ИСКЛЮЧАЮЩЕЕ ИЛИ, S -блоки $$2 \times 2$$, которые могут спроектированы, чтобы быть обратимыми, и прямые P -блоки, которые обратимы, если использована соответствующая таблица перестановки. Поскольку каждый компонент является обратимым, то можно показать, что и каждый раунд является обратимым. Мы только должны применять ключи раундов в обратном порядке. Шифрование использует ключи раундов K1 и K2. Алгоритм дешифрования должен пользоваться ключами раундов K2 и K1.
Атаки традиционных шифров могут также использоваться для современных
Идею относительно дифференциального криптоанализа предложили Эли Бихам и Ади Шамир. Это — атака с выборкой исходного текста. Ева может каким-либо образом получить доступ к компьютеру Алисы и завладеть выборочно частью исходного текста и соответствующего зашифрованного текста. Цель состоит в том, чтобы найти ключ шифра Алисы.
Алгоритм анализа. Перед тем как Ева предпримет атаку с выборкой исходного текста, она должна проанализировать алгоритм шифрования, чтобы собрать некоторую информацию об отношениях зашифрованного и исходного текстов. Очевидно, Ева не знает ключ шифра. Однако некоторые шифры имеют слабости в структурах, которые могут позволить Еве найти различия исходного текста и различия зашифрованного текста, не зная ключ.
Предположим, что шифр состоит только из одной операции ИСКЛЮЧАЮЩЕЕ ИЛИ, как показано на рис. 7.18. Не зная значения ключа, Ева может легко найти отношения между разностями исходного текста и разностями зашифрованного текста. Если разность исходного текста мы обозначим $$P_{1}\oplus P_{2}$$ и разность зашифрованного текста мы обозначим $$C_{1}\oplus C_{2}$$, приведенные следующие преобразования доказывают, что $$C_{1}\oplus C_{2} = P_{1}\oplus P_{2}$$:
$$C_{1} = P_{1} \oplus K C_{2} = P_{2} \oplus K \to C_{1} \oplus C_{2} = P_{1} \oplus K \oplus P_{2} \oplus K = P_{1} \oplus P_{2}$$Однако этот пример нереалистичен; модемные
(рис 7.18) Диаграмма для примера 7.13В примере 7.13 мы добавляем один S -блок, как показано на рис. 7.19.
(рис 7.19) Диаграмма для примера 7.14Хотя эффект шифрования ключом не действует, когда мы используем разности между двумя X и двумя P $$(X_{1}\oplus X_{2} = P_{1}\oplus P_{2})$$, существование S -блока мешает Еве найти и определенные отношения между разностями исходного текста и разностями зашифрованного текста. Однако возможно установить вероятностные отношения. Ева может составить таблицу 7.4, которая показывает для разности исходного текста, сколько можно создать разностей зашифрованного текста — шифр. Обращаем внимание, что таблица сделана по информации, которая произведенеа с учетом таблицы входа-выхода S -блока по рис. 7.19, потому что $$P_{1}\oplus P_{2} = X_{1}\oplus X_{2}.$$
| C1 $$\oplus$$ C2 | |||||
|---|---|---|---|---|---|
| P1 $$\oplus$$ P2 | 00 | 01 | 10 | 11 | |
| 000 | 8 | ||||
| 001 | 2 | 2 | 4 | ||
| 010 | 2 | 2 | 4 | ||
| 011 | 4 | 2 | 2 | ||
| 100 | 2 | 2 | 4 | ||
| 101 | 4 | 2 | 2 | ||
| 110 | 4 | 2 | 2 | ||
| 111 | 2 | 6 | |||
Поскольку размер ключей — 3 бита, может быть восемь случаев для каждой разности во вводе. Таблица показывает, что если входная разность — (000) 2, разность выхода — всегда (00) 2. С другой стороны, таблица показывает, что если входная разность — (100) 2, то имеется два случая разностей выхода (00)2, два случая разностей выхода (01)2 и четыре случая разностей выхода (01)2.
Пример 7.15
Эвристический результат примера 7.14 может создать вероятностную информацию для Евы, как показано в таблице 7.5. Входы в таблице соответствуют вероятностям появления. Разности с нулевой вероятностью никогда не будут возникать.
| 00 | 01 | 10 | 11 | |
|---|---|---|---|---|
| 000 | 1 | 0 | 0 | 0 |
| 001 | 0,25 | 0,25 | 0 | 0,50 |
| 010 | 0,25 | 0,25 | 0,50 | 0 |
| 011 | 0 | 0,50 | 0,25 | 0,25 |
| 100 | 0,25 | 0,25 | 0,50 | 0 |
| 101 | 0 | 0,50 | 0,25 | 0,25 |
| 110 | 0,50 | 0 | 0,25 | 0,25 |
| 111 | 0 | 0 | 0,25 | 0,75 |
Как мы увидим позже, Ева теперь располагает достаточным количеством информации, чтобы начать ее атаку. Таблица показывает, что вероятности распределены неоднородно из-за слабости в структуре S -блока. Таблица 7.5 упоминается иногда как дифференциальная таблица распределения или профайл ИСКЛЮЧАЮЩЕЕ ИЛИ.
Запуск атаки выборки исходного текста. После того как анализ однажды сделан, он может быть сохранен для будущего использования, пока структура шифра не изменится. Ева может выбрать для атак исходные тексты. Дифференциальная таблица
Предположительное значение ключа. После запуска некоторых атак с соответствующей выборкой исходного текста Ева может найти некоторую пару "исходный текст / зашифрованный текст", которая позволяет ей предположить некоторое значение ключа. Процесс начинается от C и продвигается к P.
Пример 7.16
Рассматривая таблицу 7.5, Ева знает, что если $$P_{1}\oplus P_{2}= 001$$, то $$C_{1}\oplus C_{2}= 11$$ с вероятностью 0,50 ( 50 процентов). Она пробует взять C1 = 00 и получает P1 = 010 (атака с выборкой зашифрованного текста). Она еще пробует C2 = 11 и получает P2 = 011 (другая атака с выборкой зашифрованного текста). Теперь она пробует вернуться к анализу, основанному на первой паре, P1 и C1:
Используя пару P2 и C2, получим
Два испытания показывают, что K = 011 или K =101. Хотя Ева не уверена, какое из них точное значение ключа, она знает, что самый правый бит — 1 (общий бит между двумя значениями).
Продолжая атаку, можно учитывать, что самый правый бит в ключе – 1. Таким образом можно определить другие биты в этом ключе.
Общая процедура. Современные
S -блока и комбинировать их, чтобы создать распределение для каждого раунда.2 только помогает Еве выбирать меньшее количество пар "исходный текст / зашифрованный текст"4, чтобы найти больше битов в ключе.S -блоков в блочном шифре.Линейный криптоанализ был представлен Митцури Мацуи (Mitsuru Matsui) в 1993 году. Анализ использует атаки знания исходного текста (в отличии от атак с выборкой исходного текста в дифференциальном криптоанализе). Полное обсуждение этой атаки базируется на некоторых понятиях теории вероятностей, которые находятся за рамками этой книги. Чтобы рассмотреть главную идею этой атаки, предположим, что шифр состоит из одного раунда, как показано на рис. 7.20, где c0,с1 и c2 представляют три бита на выходе и xQ, x1 и x2 представляют три бита на входе S -блока.
S -блок — линейное преобразование, в котором каждый вывод является линейной функцией ввода, как мы обсуждали ранее в этой лекции. С этим линейным компонентом мы можем создать три
(рис 7.20) Простой шифр с линейным S-блоком $$c_{0} = p_{0} \oplus k_{0} \oplus p_{1} \oplus k_{1}
\\
c_{1} = p_{0} \oplus k_{0} \oplus p_{1} \oplus k_{1} \oplus p_{2} \oplus k_{2}
\\
c_{2} = p_{1} \oplus k_{1} \oplus p_{2} \oplus k_{2} \oplus$$
Решая систему уравнений для трех неизвестных, мы получаем
$$k_{1} = (p_{1}) \oplus (c_{0} \oplus c_{1} \oplus c_{2}) \\ k_{2} = (p_{2}) \oplus (c_{0} \oplus c_{1}) \\ k_{0} = (p_{0}) \oplus (c_{1} \oplus c_{2})$$Это означает, что три атаки типа "знания исходного текста" могут найти значения k1, и k2. Однако реальные S -блоки не линейны.
Линейная аппроксимация. В некоторых современных S -блоки не полностью нелинейные; тогда они могут быть в вероятностном смысле аппроксимированы некоторыми n бит и ключ m бит, мы ищем некоторые уравнения, имеющие вид
В лекциях 5-6 мы кратко обсуждали разницу между традиционными шифрами потока и традиционными r бит одновременно. Мы имеем поток бит исходного текста P = pn… p2p1, поток бит зашифрованного текста C = cn ... c2 c1, и ключевой поток бит K = k n ... k2k1, в которых pi ci, и ki — это r -битные слова. Шифрование — ci = E (ki,pi), и дешифрование — pi = D (ki, ci), как показывает рис. 7.21.
(рис 7.21) Шифр потока Шифры потока быстрее, чем
r -битовое слово в потоке исходного текста зашифровано, используя r -битовое слово в ключевом потоке, чтобы создать соответствующее r -битовое слово в потоке зашифрованного текста.Рассматривая рис. 7.21, можно предположить, что главная проблема в современных шифрах потока — как генерировать ключевой поток K = kn….. k2k1. Современный шифр потока можно разделить на две обширные категории: синхронный и несинхронный.
В синхронном шифре потока ключевой поток независим от потока зашифрованного текста или исходного текста. Ключевой генерируемый поток не используется без отношений между ключевыми битами и исходным текстом или битами зашифрованного текста.
Наиболее простой и самый безопасный тип синхронного шифра потока назван шифром одноразового блокнота, или, по имени изобретателя, "шифром Вернама". Шифр одноразового блокнота использует ключевой поток, который беспорядочно выбран для каждой шифровки. Алгоритмы шифрования и дешифрования применяют единственную операцию — ИСКЛЮЧАЮЩЕЕ ИЛИ. Шифры, которые базируются на свойствах операции ИСКЛЮЧАЮЩЕЕ ИЛИ, обсуждались ранее. В них алгоритмы шифрования и дешифрования инверсны друг другу. Важно, что в этом шифре операция ИСКЛЮЧАЮЩЕЕ ИЛИ используется только для одного бита одновременно. Другими словами, операция производится над словом не более чем из одного бита и полем GF (2). Заметим, что также нужно иметь безопасный канал для того, чтобы Алиса могла передать ключевую последовательность потока Бобу (рис. 7.22).
(рис 7.22) Одноразовый блокнот Одноразовый блокнот — идеальный шифр. Он совершенен. Нет метода, который дал бы противнику возможность распознать ключ или статистику зашифрованного текста и исходного текста. Нет никаких соотношений между исходным и зашифрованным текстами. Другими словами, зашифрованный текст – настоящий случайный поток битов, даже если получить некоторые образцы исходного текста. Ева не может нарушить шифр, если она не попробует все возможные случайные ключевые потоки, которые были бы 2n, если размер исходного текста — n -битовый. Однако при этом есть проблема. Передатчик и приемник для того, чтобы совместно использовать одноразовый блокнот ключей, должны установить соединение каждый раз, когда они хотят обменяться информацией. Они должны, так или иначе, договориться о случайном ключе. Так что этот совершенный и идеальный шифр очень трудно реализовать.
Пример 7.17
Какой вид имеет зашифрованный текст при использовании шифра одноразового блокнота в каждом из следующих случаев?
а. Исходный текст состоит из n нулей.
б. Исходный текст состоит из n единиц.
в. Исходный текст состоит из чередующихся нулей и единиц.
г. Исходный текст — случайная строчка бит.
Решение
a. Поскольку $$0\oplus k_{i} = k_{i}$$, то поток зашифрованного текста совпадет с ключевым потоком. Если ключ случайный, зашифрованный текст также случайный. Отрывки исходного текста в зашифрованном тексте не сохраняются.
b. Поскольку $$1\oplus k_{i} = k_{i}$$, где $${\bar k_i}$$ является дополнением, поток зашифрованного текста — дополнение ключевого потока. Если ключевой поток случайный, то зашифрованный текст также случайный, отрывки исходного текста не сохраняются в зашифрованном тексте.
c. В этом случае каждый бит в потоке зашифрованного текста является или тем же самым, что и в ключевом потоке, или его дополнением. Поэтому результат — также случайный, если ключевой поток случайный.
d. В данном случае зашифрованный текст явно случайный, потому что проведение операции ИСКЛЮЧАЮЩЕЕ ИЛИ двух случайных битов в результате дает случайный поток бит.
Одно усовершенствование к одноразовому блокноту — Регистр сдвига с обратной связью (
(рис 7.23) Регистр сдвига с обратной связью (FSR)m ячеек от b0 до bm-1, где каждая ячейка предназначена для сохранения единственного бита. Ячейки рассматриваются как n -битовое слово, называемое в начале "начальное значение" или источник. Всякий раз, когда необходимо получить бит на выходе (например, по сигналу в определенное время), каждый бит сдвигается на одну ячейку вправо. Это означает, что значение каждой ячейки присваивается правой соседней ячейке и принимает значение левой ячейки. Самая правая ячейка b0 считается выходом и дает выходное значение ( ki ). Крайняя левая ячейка, bm-1, получает свое значение согласно значению информации функции обратной связи. Обозначаем выход функции с информацией обратной связи bm. Функция информации обратной связи определяет, какие значения имеют ячейки, чтобы вычислить bm.
Линейный регистр сдвига с обратной связью (LFSR). Примем, что bm — это линейная функция b0, b1,…..., bm-1, для которой
Линейный GF(2), так что значение Ci является или 1, или 0, но C0 должно быть 1, чтобы получить информацию обратной связи на выходе. Операция сложения – это операция ИСКЛЮЧАЮЩЕЕ ИЛИ. Другими словами,
Пример 7.18
Построим линейный 5 -ю ячейками, в которых $$b_{5} = b_{4}\oplus b_{2}\oplus b_{0}$$.
Решение
Если Сi = 0, bi не играет роли в вычислении bm, то это означает, что bi не связан с функцией информации обратной связи. Если c i = 1, bi включается в вычисление bm. В этом примере c1 и c3 — нули, это означает, что, мы имеем только три подключения. Рисунок 7.24 показывает схему линейного
(рис 7.24) Линейный регистр сдвига с обратной связью Пример 7.19
Построим линейный 4 -мя ячейками, в которых $$b_{4} = b_{1}\oplus b_{0}$$. Покажите значение регистра после 20 (0001) 2.
Решение
Рисунок 7.25 показывает схему и использование линейного
(рис 7.25) Линейный регистр сдвига с обратной связью для примера 7.19Таблица 7.6. показывает значение потока ключей. Для каждого перехода первое значение b4 вычисляется, а затем каждый бит сдвигается на одну ячейку вправо.
| Текущее значение | b4 | b3 | b2 | b1 | b0 | ki |
|---|---|---|---|---|---|---|
| Начальное значение | 1 | 0 | 0 | 0 | 1 | |
| 1 | 0 | 1 | 0 | 0 | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 | 0 | 0 |
| 3 | 1 | 0 | 0 | 1 | 0 | 0 |
| 4 | 1 | 1 | 0 | 0 | 1 | 0 |
| 5 | 0 | 1 | 1 | 0 | 0 | 1 |
| 6 | 1 | 0 | 1 | 1 | 0 | 0 |
| 7 | 0 | 1 | 0 | 1 | 1 | 0 |
| 8 | 1 | 0 | 1 | 0 | 1 | 1 |
| 9 | 1 | 1 | 0 | 1 | 0 | 1 |
| 10 | 1 | 1 | 1 | 0 | 1 | 0 |
| 11 | 1 | 1 | 1 | 1 | 0 | 1 |
| 12 | 0 | 1 | 1 | 1 | 1 | 0 |
| 13 | 0 | 0 | 1 | 1 | 1 | 1 |
| 14 | 0 | 0 | 0 | 1 | 1 | 1 |
| 15 | 1 | 0 | 0 | 0 | 1 | 1 |
| 16 | 0 | 1 | 0 | 0 | 0 | 1 |
| 17 | 0 | 0 | 1 | 0 | 0 | 0 |
| 18 | 1 | 0 | 0 | 1 | 0 | 0 |
| 19 | 1 | 1 | 0 | 0 | 1 | 0 |
| 20 | 1 | 1 | 1 | 0 | 0 | 1 |
Заметим, что поток ключей — 1000100110101111 1001…… . Он выглядит, на первый взгляд, как случайная последовательность, но если просмотреть большое число транзакций (сдвигов), мы можем увидеть, что последовательности периодичны. Это повторение по 15 бит показано ниже.

Ключ потока генерирует с помощью линейного N. Поток периодичен. Он зависит от схемы генератора и начальной информации и может быть не свыше 2m – 1. Каждая схема порождает m -битовые последовательности от содержащих все нули до содержащих все единицы. Однако если начальная последовательность состоит только из нулей, результат бесполезен — исходный текст был бы потоком из одних нулей. Поэтому такая начальная последовательность исключена.
В предыдущем примере максимальный период — ( 24 – 1 = 15 ). Чтобы достичь этой максимальной периодичности (наилучшей рандомизации), мы должны в первую очередь представить функцию обратной связи как характеристический полином с коэффициентами в поле GF(2).
bm = cm-1bm-1 + … + c1b1 + c0b0 -> xm = cm-1xm-1 + … + c1x1 + c0x0
Поскольку сложение и вычитание в этом поле одни и те же, все элементы могут быть перенесены в одну сторону, что дает m. (называемый характеристическим полиномом).
xm + cm-1xm-1 + … + c1x1 + c0x0 = 0
Линейный 2m–1, если он имеет четное число ячеек, и характеристический xe –1, где e — наименьшее целое число в форме e = 2k–1 и k >= 2. Примитивный
Пример 7.20
Характеристический x4 + x + 1 ) — является примитивным полиномом. Таблица 5.1 (лекция 5) показывает, что это — неприводимый (x7 + 1) = (x4 + x + 1) (x3 + 1), что означает e = 23 –1 = 7.
Атаки шифров, полученных с помощью линейных регистров сдвига с обратной связью.Линейный регистр сдвига с обратной связью имеет очень простую структуру, но эта простота делает шифр уязвимым к атакам. Два общих типа атаки приведены ниже.
n -битового куска зашифрованного текста Ева может предсказать все будущие зашифрованные тексты.2n бит, чтобы вскрыть шифр.Нелинейный регистр сдвига с обратной связью. Линейный bm — нелинейная функция b0,b1, ….,bm. Например, в 4 -битном нелинейном регистре сдвига с обратной связью структура определяется соотношением, показанным ниже, где операция AND означает поразрядную операцию И, а OR означает поразрядную операцию ИЛИ. Черточка над переменной означает инверсию.

Однако нелинейный
Можно применить линейный
В несинхронном шифре потока каждый ключ в ключевом потоке зависит от предыдущего исходного текста или зашифрованного текста.
Два метода, которые используются, чтобы создать различные режимы работы для
Нижеследующие книги и сайты дают более детальные сведения по обсуждаемым вопросам, которые рассмотрены в этой лекции. Ссылки, помещенные в скобки, приведены в списке в конце книги.
[Sti06] и [PHS03] содержат полные сведения о P -блоках и S -блоках.
Нижеследующие сайты дают более подробную информацию о темах, обсужденных в этой лекции.
n -битный блок исходного текста или расшифровывает n -битовый блок зашифрованного текста. Алгоритмы шифрования или дешифрования используют k -битные ключи.P -блоков, модулей подстановки, S -блоков и некоторых других модулей.P -блок (блок перестановки) подобен традиционному шифру транспозиции для символов. Есть три типа P -блоков: прямые P -блоки, P -блоки расширения и P -блоки сжатия.S -блок (блок подстановки) можно представить себе как маленький блок шифра подстановки.
Однако в S -блоке может быть различное число входов и выходов.GF (2).k = n/2. Две других операции, применяемые в некоторых S -блоки, P -блоки и другие компоненты, чтобы достигнуть рассеивания и перемешивания. Рассеивание скрывает отношения между исходным текстом и зашифрованным текстом, перемешивание скрывает отношения между ключом шифра и зашифрованным текстом.r -бита в потоке исходного текста зашифровано, для чего используется r -битовое слово в потоке ключей, чтобы создать соответствующее r -битовое слово в потоке зашифрованного текста. Современные шифры потока могут быть разделены на две обширные категории: синхронные шифры потока и несинхронный шифр потока в синхронном шифре потока. В первом случае ключевой поток независим от потока зашифрованного текста или исходного текста. В несинхронном шифре потока ключевой поток зависит от исходного текста или потока зашифрованного текста.P -блок и перечислите его три варианта. Какой вариант является обратимым?S -блок и покажите необходимое условие обратимости S -блока.10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?10 входов и 10 выходов. Каков порядок группы перестановки? Каков размер ключевой последовательности?3 бита на слове (1001101l) 2.3 бита на слове, полученном в пункте a.(10011011) 2 с помощью перестановки.010, используя декодер $$3 \times 8$$.00100000, используя кодирующее устройство $$8 \times 3$$.2000 символов. Оно будет зашифровано с использованием 64 битов. Найдите размер дополнения и номера блоков.P -блока на рис. 7.4P -блока сжатия на рис. 7.4.P -блока расширения на рис. 7.4.P -блок, определенный следующей таблицей:| 8 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 1 | 2 | 3 | 4 | 4 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 3 | 5 | 6 | 7 |
P -блок со следующей таблицей перестановки прямым P -блоком, P -блоком сжатия или P -блоком расширения.| 1 | 2 | 3 | 4 | 5 | 6 |
x5 + x2 + 1. Каков период получаемой последовательности?
20 битов, сгенерированный от 1110.32. Сколько битов имеет 6 x 2 S -блок производит операцию ИСКЛЮЧАЮЩЕЕ ИЛИ с нечетными битами, чтобы получить левый бит выхода, и ИСКЛЮЧАЮЩЕЕ ИЛИ с четными битами, чтобы получить правый бит выхода. Если вход — 110010, что является выходом? Если вход — 101101, что является выходом?4 x 3 S -блока определяет смещение других трех бит. Если крайний левый бит равен 0, то три других бита перемещаются вправо на один бит. Если крайний левый бит — 1, три других бита перемещаются влево на один бит. Если вход — 1011, какой результат будет на выходе? Если вход — 0110, какой результат будет на выходе?n -битового слова на два слова, каждое из которых состоит из n/2.n/2 -битовых слов в n -битовое слово.n -битового слова.n -разрядном слове на k бит влево или вправо, в соответствии с процедурой по п. 24.P -блока, в котором перестановка определена таблицей.S -блока, в котором вход-выход определен таблицей.n -битовый Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.