- •1. Общие положения
- •1.2. Когда и зачем нужно защищать информацию?
- •1.3. Язык сообщения
- •1.4. Тайнопись
- •1.5. Коды и их назначение
- •1.6. Криптография и криптоанализ
- •1.7. Основной объект криптографии
- •1.8. Что такое ключ
- •1.9. Атака на шифр. Стойкость шифра
- •1.10. Сложность вскрытия шифра
- •1.11. Принцип Кирхгофа
- •2. Древняя история криптографии
- •3. Современная криптография
- •3.1. Классификация криптографических систем
- •3.2. Основные классы симметричных криптосистем
- •3.3. Шифр замены
- •3.4. Шифр перестановки
- •3.5. Шифр Энигмы
- •4. Блочные шифры
- •4.1. Общие сведения о блочных шифрах
- •4.2. Сеть Фейштеля
- •4.3. Шифр взбивания. Стандарт des
- •4.3.1. Описание алгоритма
- •4.3.2. Анализ эффективности алгоритма
- •4.4. Отечественный стандарт шифрования данных
- •4.4.1. Режим простой замены
- •4.4.2. Режим гаммирования
- •4.4.3. Режим гаммирования с обратной связью
- •4.5. Режимы применения блочных шифров
- •5. Новый криптостандарт блочного шифрования сша
- •5.1. Общие сведения о конкурсе aes
- •5.1.1. Финалист aes – шифр mars
- •5.1.2. Финалист aes – шифр rc6
- •5.1.3. Финалист aes – шифр Serpent
- •5.1.4. Финалист aes – шифр TwoFish
- •5.2. Победитель aes – шифр Rijndael
- •6. Поточные шифры
- •6.1. Регистры сдвига с обратной связью
- •6.2. Шифр a5
- •6.3. Шифр rc4
- •6.4. Шифр seal
- •7. Асимметричные криптосистемы
- •7.1. Общие сведения об асимметричных криптоалгоритмах
- •7.2. Односторонние функции и функции-ловушки
- •7.3. Алгоритм rsa
- •Длина ключа
- •Применение rsa
- •7.4. Криптосистема Эль-Гамаля
- •7.5. Алгоритм Диффи-Хелмана
- •7.6. Механизм распространения открытых ключей
- •7.6.1. Обмен ключами по алгоритму Диффи-Хеллмана
- •8. Сравнительная характеристика шифров
- •9. Электронные цифровые подписи
- •9.1. Постановка задачи
- •9.2. Алгоритмы электронной цифровой подписи
- •9.2.1. Цифровые подписи, основанные на асимметричных криптосистемах
- •9.2.2. Стандарт цифровой подписи dss
- •9.2.3. Стандарт цифровой подписи гост р 34.10-94
- •9.3. Цифровые подписи, основанные на симметричных криптосистемах
- •9.4. Функции хэширования
- •9.4.1. Функция хэширования sha
- •9.4.2. Функция хэширования гост р 34.11-94
- •9.4.3. Функция хэширования md5
- •Библиографический список
- •Оглавление
4.4.2. Режим гаммирования
Зашифрование открытых данных в режиме гаммирования. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования, показана на рис.3.12. Открытые данные разбивают на 64-разрядные блоки
T0(1), T0(2), …, T0(i), …, T0(m),
Где - i-й 64-разрядный блок открытых данных, i = 1…m, m определяется объемом шифруемых данных.
Эти блоки поочередно зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 в сумматоре CM5 с гаммой шифра Гш, которая вырабатывается блоками по 64 бита, т.е.
Гш=(Гш(1), Гш(2), …, Гш(i), Гш(m)),
где Гш(i) - i-й 64-разрядный блок, i = 1…m.
Число двоичных разрядов в блоке T0(m) может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока Гш(m) отбрасывается.
Уравнение зашифрования данных в режиме гаммирования имеет вид
Tш(i)= T0(m) Гш(i),
где Гш(i)=A(Yi-1 * C2, Zi-1 *`C1), i=1…m; Tш(i) - i-й блок 64-разрядного блока зашифрованного текста; A(∙) - функция зашифрования в режиме простой замены; С1, С2 – 32-разрядные двоичные константы; Yi, Zi - 32-разрядные двоичные последовательности.
Величины Yi, Zi определяются итерационно по мере формирования гаммы Гш следующим образом:
где
- синхропосылка (64-разрядная двоичная
последовательность),
Рассмотрим реализацию процедуры зашифрования в режиме гаммирования. В накопители N6 и N5 заранее записаны 32-разрядные двоичные константы С1 и С2, имеющие следующие значения (в шестнадцатеричной форме):
C1=01010104(16), C2=01010101(16).
В КЗУ вводится 256 бит ключа; в накопители N1 и N2 - 64-разрядная двоичная последовательность (синхропосылка)
Синхропосылка является исходным заполнением накопителей N1 и N2 для последовательной выработки m блоков гаммы шифра.
Исходное
заполнение накопителя N1:
исходное заполнение накопителя N2:
Исходное заполнение N1 и N2 (синхропосылка ) зашифровывается в режиме простой замены. Результат зашифрования
переписывается в 32-разрядные накопители N3 и N4 так, что заполнение N1 переписывается в N3, а заполнение N2 - в N4.
Заполнение накопителя N4 суммируют по модулю (232-1) в сумматоре CM4 с 32-разрядной константой С1 из накопителя N6. Результат записывается в N4. Заполнение накопителя N3 суммируется по модулю 232 в сумматоре СМ3 с 32-разрядной константой С2 из накопителя N5. Результат записывается в N3. Заполнение N3 переписывают в N1, а заполнение N4 - в N2, при этом заполнения N3, N4 сохраняются. Заполнение накопителей N1 и N2 зашифровывается в режиме простой замены.
Полученное
в результате зашифрования заполнение
накопителей N1,
N2
образует первый 64-разрядный блок гаммы
шифра
,
который суммируют поразрядно по модулю
2 в сумматоре CM5
с первым 64-разрядным блоком открытых
данных
.
В результате суммирования по модулю 2 значений Гш(1) и T0(1) получают первый 64-разрядный блок зашифрованных данных:
где
Для получения следующего 64-разрядного блока гаммы шифра Гш(2) заполнение N4 суммируется по модулю в сумматоре с константой из . Результат записывается в . Заполнение суммируется по модулю (232-1) в сумматоре СМ4 с константой С2 из N5. Результат записывается в N3. Новое заполнение N3 переписывают в N1, а новое заполнение N4 - в N2, при этом заполнения N3 и N4 сохраняют. Заполнения N1, N2 зашифровывают в режиме простой замены.
Полученное в результате зашифрования заполнение накопителей N1 и N2 образует 64-разрядный блок гаммы шифра Гш(2), который суммируется поразрядно по модулю 2 в сумматоре CM5 со вторым блоком открытых данных T0(2):
Аналогично вырабатываются блоки гаммы шифра Гш(3), Гш(4), …, Гш(m) и зашифровываются блоки открытых данных T0(3), T0(4), …, T0(m).
В канал связи или память ЭВМ передаются синхропосылка и блоки зашифрованных данных
Tш(1), Tш(2), …, Tш(m).
Расшифрование в режиме гаммирования. При расшифровке криптосхема имеет тот же вид, что и при зашифровании (см.рис.3.12).
Уравнение расшифрования:
Следует отметить, что расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с зашифрованными данными.
Рассмотрим реализацию процедуры расшифрования. В КЗУ вводят 256 бит ключа, с помощью которого осуществляется зашифрование данных T0(1), T0(2), …, T0(m). В накопители N1 и N2 вводится синхропосылка, и осуществляется процесс выработки m блоков гаммы шифра Гш(1), Гш(2), …, Гш(m). Блоки зашифрованных данных Tш(1), Tш(2), …, Tш(m) суммируются поразрядно по модулю 2 в сумматоре CM5 с блоками гаммы шифра Гш(1), Гш(2), …, Гш(m). В результате получаются блоки открытых данных
(1), T0(2), …, T0(m);
при этом T0(m) может содержать меньше 64 разрядов.
