- •Основы информационной безопасности и введение в современную криптологию
- •8 Глава 129
- •Предисловие
- •Введение
- •Формальная криптография;
- •Математическая криптография;
- •1. Криптографические системы «докомпьютерной эры» и проблемы современной криптографии
- •1.1 Криптография древнего мира. Шифр Цезаря и его криптостойкость
- •1.2 Шифр Атбаш и его модификации
- •1.3 Тарабарская грамота как аналог шифра Атбаш
- •1.4 Шифр Плейфера
- •1.5 Шифр adfgvx
- •1.6 Шифр Виженера
- •1.7 Формальная криптография
- •1.8 Математическая криптография
- •1.9 Современная компьютерная криптография и ее основные проблемы
- •2 Режимы шифрования для симметричных алгоритмов.
- •2.1 Режимы простой замены (электронная кодовая книга ecb)
- •2.2 Режим сцепления блоков (Cipher Block Chaining (cbc))
- •2.2 Режимы гаммирования
- •2.3 Режим гаммирования с обратной связью
- •Функции шифрования симметричных криптосистем
- •3.1 Стандарт шифрования данных des. Data Encryption Standard
- •3.2 Преобразования Сетью Фейстеля
- •3.3 Режимы работы алгоритма des
- •3.4.1Алгоритм гост – 28147-89
- •3.4.2Ключи в кзу
- •3.4.3В блоке подстановки k
- •3.5.1Описание алгоритма
- •4.Глава
- •4.1Хэш - функция
- •4.2Коллизия
- •4.4Пример простого хеширования
- •4.3Современные виды хеширования
- •5.Глава Элементы алгебры и теории чисел
- •5.1Быстрое возведение в степень.
- •5.2Нахождение простого числа
- •5.3Метод Шермана — Лемана
- •5.3Метод Раббина-Миллера
- •5.4Нахождение обратного элемента по модулю
- •5.5Теорема ферма, Эйлера
- •5.6Алгоритм Эвклида
- •5.7Расширенный алгоритм Эвклида
- •5.8 Китайская теорема об остатках
- •5.11 Нахождение с помощью расширенного алгоритма Евклида
- •5.11Квадратичные вычеты
- •5.11Нахождение генераторов
- •6. Глава
- •6.1 Алгоритм Диффи – Хеллмана
- •6.2Описание алгоритма
- •6.3Алгоритм Диффи — Хеллмана с тремя и более участниками
- •6.7Криптографическая стойкость
- •6.8Rsa алгоритм
- •6.10Алгоритм шифрования rsa
- •6.11Алгоритм подписи rsa
- •7.16Эль-Гамаля
- •6.13История dsa
- •6.14Алгоритм цифровой подписи dsa
- •6.15 Алгоритм цифровой подписи гост р 3410-94
- •7.1Эллиптическая кривая
- •7.2 Эллиптические кривые в криптографии
- •7.3 Метрика операций на эк
- •7.3.1Сложение различных точек
- •7.3.2Удвоение
- •7.7Порядок эллиптической кривой
- •7.6Теорема Хассе
- •7.5 Порядок точки на эллиптической кривой
- •7.8Порядок точки на эллиптической кривой (Теория, можешь не читат)
- •7.9Криптография на эллиптических кривых
- •7.10Пример эллиптической кривой над конечным полем.
- •7.11Кратные точки.
- •7.12Безопасность криптографии с использованием эллиптических кривых.
- •7.13Алгоритм Диффи-Хелмана на эллиптической кривой
- •7.14Алгоритм dsa на эллиптической кривой
- •7.14.1Алгоритм эцп на основе эллиптических кривых (ecdsa)
- •7.15Алгоритм Эль-Гамала на эллиптической кривой
- •Литература
- •8 Глава
- •8.1Криптоанализ
- •8.2Классический криптоанализ.
- •8.3 Современный криптоанализ
- •8.4Универсальные методы криптоанализа.
- •8.4.1Метод полного перебора
- •8.4.2Атака по ключам
- •8.4.3Частотный анализ
- •8.4.4Метод "встречи посередине"
- •8.4.5Криптоанализ симметричных шифров
- •8.4.6Дифференциальный криптоанализ
- •8.4.7Дифференциальный анализ на основе сбоев.
- •8.4.8Дифференциальный метод криптоанализа des.
- •8.4.9Линейный криптоанализ .
- •8.4.10Криптоанализ асимметричных шифров
- •8.4.11Метод безключевого чтения rsa.
- •8.4.12Криптоанализ хеш-функций
- •8.4.13Криптоанализ по побочным каналам
- •8.5Нанотехнологии в криптоанализе
3.4.3В блоке подстановки k
Блок подстановки содержит в себе таблицу замены размерностью 16x8, которая является долговременным ключом. Блок подстановки К состоит из восьми узлов замены , с памятью на 64 бита каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на восемь последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим собой таблицу из шестнадцати строк, содержащих по четыре бита заполнения в строке. Строки таблицы определяют, грубо говоря, что требуется заменить (число от 0 до 15 в шестнадцатиричной системе счисления). Столбцы же указывают, на что заменять. Входной вектор определяет адрес строки в таблице, заполнение данной строки является выходящим вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный вектор.
Ключи
как в КЗУ, так и в блоке
,
являются секретными, и требуются меры
по недопущению их компрометации.
При сложении и циклическом сдвиге двоичных векторов старшими разрядами считаются разряды накопителей с большими номерами.
При перезаписи информации содержимое -го разряда одного накопителя (сумматора) переписывается в p-й разряд другого накопителя (сумматора).
Значение
постоянной заполнения
(константа) накопителя
приведено в таблице 1.
Таблица 1
Разряд накопителя N6 |
32 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
Значение разряда |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Разряд накопителя N6 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
Значение разряда |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
||||||||||||||||
Значение
постоянной заполнения
(константа) накопителя
приведено в таблице 2.
Таблица 2
Разряд накопителя N5 |
32 |
31 |
30 |
29 |
28 |
27 |
26 |
25 |
24 |
23 |
22 |
21 |
20 |
19 |
18 |
17 |
Значение разряда |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Разряд накопителя N5 |
16 |
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
Значение разряда |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
Режимы работы
Напоследок хочется отметить, что ГОСТ 28147-89 работает в 4-х режимах.
Режим простой замены.
Режим гаммирования.
Режим гаммирования с обратной связью.
Режим выработки имитовставки.
2 из 4 режимов приведены выше, а режим имитоставки Этот режим не является в общепринятом смысле режимом шифрования. При работе в режиме выработки имитовставки создаётся некоторый дополнительный блок, зависящий от всего текста и ключевых данных. Данный блок используется для проверки того, что в шифротекст случайно или преднамеренно не были внесены искажения. Это особенно важно для шифрования в режиме гаммирования, где злоумышленник может изменить конкретные биты, даже не зная ключа; однако и при работе в других режимах вероятные искажения нельзя обнаружить, если в передаваемых данных нет избыточной информации.
3.5Blowfish http://habrahabr.ru/post/140394/
Blowfish — криптографический алгоритм, реализующий блочное симметричное шифрование. Этот алгоритм был разработан Брюсом Шнайером в 1993 году. Представляет собой сеть Фейстеля. Выполнен на простых и быстрых операциях: XOR, подстановка, сложение. Является незапатентованным и свободно распространяемым.
До появления Blowfish существовавшие алгоритмы были либо запатентованными, либо ненадёжными, а некоторые и вовсе держались в секрете (например, Skipjack). Алгоритм был разработан в 1993 году Брюсом Шнайером в качестве быстрой и свободной альтернативы устаревшему DES и запатентованному IDEA. По заявлению автора, критерии проектирования Blowfish были:
скорость (шифрование на 32-битных процессорах происходит за 26 тактов);
простота (за счёт использования простых операций, уменьшающих вероятность ошибки реализации алгоритма);
компактность;
настраиваемая стойкость.
