- •Информационная безопасность Криптографические методы защиты информации
- •Содержание
- •Глава 1. Основы криптографии……………………………………….5
- •Глава 2. Обзор криптографических методов…………………………9
- •Глава 3. Электронная цифровая подпись…………………………...45
- •Глава 4. Проблемы и перспективы криптографических систем ..83
- •Глава 1.
- •1.1. Терминология
- •1.2. Требования к криптосистемам
- •Классификация криптографических методов
- •Глава 2 обзор криптографических методов
- •2.1. Симметричные системы шифрования
- •2.1.1. Блочные шифры
- •Симметричные блочные шифры
- •Методы перестановки
- •Методы замены (подстановки)
- •Шифрование методом простой замены
- •Оценки вероятностей появления букв русского языка и пробела
- •Механизм шифрования заменой
- •Ключ шифрования
- •Механизм дешифрования
- •Механизм шифрования методом Цезаря
- •2.1.2. Потоковые шифры
- •Методы гаммирования
- •Лабораторная работа. Простейшие криптографические системы
- •Асимметричные системы шифрования
- •2.3.1. Алгоритм rsa
- •Полная таблица зашифрования
- •2.4. Сравнение симметричных и асимметричных систем шифрования
- •2.5. Лабораторная работа. Асимметричные методы шифрования данных
- •Глава 3. Электронная цифровая подпись
- •Проверка подлинности информации
- •3.1.1. Подпись документов при помощи симметричных криптосистем
- •3.1.2. Подпись документов при помощи криптосистем с открытыми ключами
- •3.2. Стандарты.
- •3.3. Атаки на цифровую подпись
- •3.4. Пакет pgp
- •3.5. Pgp: концепция безопасности и уязвимые места
- •Асимметричные криптографические алгоритмы
- •3.6. Лабораторная работа. Программные средства защиты
- •3.7. Лабораторная работа. Способы защиты электронной почты
- •Глава 4. Проблемы и перспективы криптографических систем
- •4.1. Шифрование больших сообщений и потоков данных
- •4.2. Использование блуждающих ключей
- •4.3. Шифрование, кодирование и сжатие информации
- •Виды преобразований
- •4.4. Реализация алгоритмов шифрования
- •Библиографический список
- •Информационная безопасность криптографические методы защиты информации
Полная таблица зашифрования
А |
Б |
В |
Г |
Д |
Е |
Ж |
3 |
И |
И |
К |
Л |
М |
Н |
О |
П |
|
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
|
00 |
01 |
29 |
09 |
16 |
14 |
30 |
28 |
02 |
15 |
10 |
11 |
12 |
07 |
20 |
27 |
|
Р |
С |
Т |
У |
Ф |
X |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
|
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
25 |
08 |
06 |
13 |
26 |
21 |
22 |
23 |
18 |
31 |
05 |
03 |
19 |
17 |
24 |
04 |
32 |
Из этой таблицы зашифрования легко получить таблицу расшифрования (табл. 2.11), отсортировав столбцы таблицы 2.10 по последней строке.
Таблица 2.11
Таблица дешифрования
00 |
01 |
02 |
03 |
04 |
05 |
06 |
07 |
08 |
09 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
00 |
01 |
08 |
27 |
31 |
26 |
18 |
13 |
17 |
03 |
10 |
11 |
12 |
19 |
05 |
09 |
04 |
А |
Б |
И |
Ы |
Я |
Ъ |
Т |
Н |
С |
Г |
К |
Л |
М |
У |
Е |
И |
Д |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
|
29 |
24 |
28 |
14 |
21 |
22 |
23 |
30 |
16 |
20 |
15 |
07 |
02 |
06 |
25 |
32 |
|
Э |
Ш |
Ь |
О |
X |
Ц |
Ч |
Ю |
Р |
Ф |
П |
3 |
В |
Ж |
Щ |
|
|
Сложность составления такой таблицы дешифрования пропорциональна количеству различных блоков, которые могут встретиться в шифруемом сообщении. Поэтому, для того чтобы шифр, основанный на криптосистеме RSA, не допускал дешифрование при неизвестном ключе, необходимо (но не достаточно) выполнение следующих двух условий. Во-первых, должно быть большим число п, которое ограничивает максимальный размер блока, а следовательно, и количество различных блоков. Во-вторых, шифруемые сообщения должны быть достаточно разнообразны. Недопустимо использование системы RSA (а также других криптосистем с открытым ключом) в случае, если сообщения являются комбинацией относительно небольшого количества стандартных фраз. При выполнении указанных выше требований невозможно будет также дешифрование на основе анализа частоты встречаемости и взаимного расположения различных блоков шифрованного сообщения.
Возможность описанной выше атаки служит дополнительным аргументом в пользу того, чтобы системы с открытым ключом применять не для шифрования непосредственно сообщений, а только для передачи секретного ключа, на котором сообщение шифруется с помощью обычной системы шифрования с симметричным ключом.
Другим известным приемом дешифрования системы RSA является метод дешифрования итерациями, заключающийся в повторном шифровании до тех пор, пока вновь не будет получен открытый текст.
Доказано, что вероятность успешной атаки методом дешифрования итерациями маловероятна, если p-1 и q-1 имеют большие простые сомножители p' и q' и, в свою очередь, р'-1 и q'-1 также имеют большие простые сомножители.
Рассмотрим теперь "лобовой метод" вскрытия системы RSA, который заключается в нахождении числа d, мультипликативного обратного e по модулю (р-1)(q-1). Это легко сделать, если известны числа p и q. Следовательно, решив задачу разложения на сомножители целого числа п, можно дешифровать систему RSA. Для того чтобы усложнить задачу разложения п на простые сомножители, числа р и q должны выбираться случайным образом и иметь достаточно большие значения. Кроме того, числа р и q не должны быть "слишком близкими" друг к другу.
Покажем, каким образом можно использовать близость значений р и q. Без ограничения общности можно считать, что p>q. Для величин x=(p+q)/2 и y=(p-q)/2 справедливо соотношение
x2 –у2 = п. (2.5)
Для
того чтобы найти разложение n
на
простые сомножители, достаточно
подобрать целые числа х
и
у,
удовлетворяющие
соотношению (2.5). Данное уравнение в
нашем случае имеет единственное решение,
так как (х+у)(х-у)=п,
а
п
единственным
образом раскладывается на простые
сомножители. Перебирая в порядке
возрастания варианты х
>
,
легко найти это решение, так как x=(p+q)/2
будет
близким к
при
условии, что р
и
q
близки.
В итоге находим:
р=х+у,
q=x-y.
Рассмотрим еще один пример. Пусть n=pq = 851. Воспользуемся описанным выше способом, чтобы разложить n на простые сомножители р и q. Так как ≈29.17, берем х=30, вычисляем 302 - 851 = 49 и с первой попытки находим решение уравнения (2.5): х=30, у=7. Отсюда p=30+7=37, q=30 - 7=23.
Кроме указанных выше ограничений на выбор р, q, e и d к данным параметрам предъявляются и другие требования, влияющие на стойкость криптосистемы RSA. Более подробно эти требования изложены в [20].
Далее в учебном пособии объясняется, каким образом можно использовать криптосистему RSA для построения системы цифровой подписи.
В этом случае параметры р, q, e и d должен вырабатывать не получатель, а отправитель сообщений (придерживаясь ранее введенных обозначений, будем считать, что e является ключом зашифрования, a d -расшифрования). Чтобы подписать сообщение М, отправитель вычисляет P=(Me)mod n. Получатель, имея М и Р, вычисляет Рd ≡ М(mod n) и убеждается таким образом в подлинности документа.
Пример. Пусть р=3, q=11, n=33, e=7 и d=3. Отправитель сообщения M="02" вычисляет цифровую подпись 29=(27)mod 33 и посылает получателю пару "02, 29". Чтобы проверить подлинность сообщения "02", получателю достаточно убедиться в том, что 2=(293)mod 33.
Для приведенного алгоритма цифровой подписи противник может использовать следующий способ атаки: взять произвольное Р1 и вычислить сообщение М1=(P1) mod n, имеющее цифровую подпись Р1. Однако при таком способе атаки он не сможет предвидеть полученное значение М1. Скорее всего, сообщение М1, будет совершенно не похоже на открытый текст и, следовательно, противник не сможет ввести получателя в заблуждение. Данная атака представляет реальную опасность в случае передачи каких-либо числовых данных, для которых допустимы все возможные значения подписываемых блоков (или, по крайней мере, существенная доля). Использование хорошей хеш-функции не позволит осуществить данный способ подделки сообщений, так как противник не сможет подобрать текст, имеющий подписанный им хеш-код.
