
- •230100 «Информатика
- •Лекция 1. Основные понятия
- •1.1 Терминология
- •1.2 Стеганография
- •Лекция 2. Докомпьютерные шифры
- •2.1 Подстановочные и перестановочные шифры
- •1.4 Простое xor
- •1.5 Одноразовые блокноты
- •Лекция 3. Криптографические протоколы
- •1 Введение в протоколы
- •2.2 Передача информации с использованием симметричной криптографии
- •2.3 Однонаправленные функции
- •2.4 Однонаправленные хэш-функции
- •2.5 Передача информации с использованием криптографии с открытыми ключами
- •Лекция 4. Цифровые подписи
- •1. Подпись документа с использованием симметричных криптосистем и посредника
- •2.7 Цифровые подписи и шифрование
- •2.8. Генерация случайных и псевдослучайных последовательностей
- •Лекция 5. Основные протоколы
- •1 Обмен ключами
- •Лекция 6. Алгоритмы аутентификации пользователей (Удостоверение подлинности)
- •3.3 Удостоверение подлинности и обмен ключами
- •3.4 Формальный анализ протоколов проверки подлинности и обмена ключами
- •Лекция 7. Цифровые подписи.
- •1. Неотрицаемые цифровые подписи
- •4.4 Подписи уполномоченного свидетеля
- •4.5 Подписи по доверенности
- •4.6 Групповые подписи
- •4.7 Подписи с обнаружением подделки
- •Лекция 8. Длина ключа
- •1 Длина симметричного ключа
- •7.2 Длина открытого ключа
- •7.3 Сравнение длин симметричных и открытых ключей
- •7.4 Вскрытие в день рождения против однонаправленных хэш-функций
- •7.5 Каков должны быть длина ключа?
- •Лекция 9. Управление ключами
- •1 Генерация ключей
- •8.2 Нелинейные пространства ключей
- •8.3 Передача ключей
- •8.4 Проверка ключей
- •8.5 Использование ключей
- •8.6 Обновление ключей
- •8.7 Хранение ключей
- •8.8 Резервные ключи
- •8.9 Скомпрометированные ключи
- •8.10 Время жизни ключей
- •8.11 Разрушение ключей
- •8.12 Управление открытыми ключами
- •Лекция 10. Типы алгоритмов и криптографические режимы
- •9.1 Режим электронной шифровальной книги
- •9.2 Повтор блока
- •9.3 Режим сцепления блоков шифра
- •9.4 Потоковые шифры
- •9.5 Самосинхронизирующиеся потоковые шифры
- •9.6 Режим обратной связи по шифру
- •9.7 Синхронные потоковые шифры
- •9.8 Режим выходной обратной связи
- •9.9 Режим счетчика
- •9.10 Другие режимы блочных шифров
- •Лекции 12. Математические основы
- •11.1 Теория информации
- •Энтропия и неопределенность
- •Норма языка
- •Безопасность криптосистемы
- •Расстояние уникальности
- •Практическое использование теории информации
- •Путаница и диффузия
- •11.2 Теория сложности
- •Сложность алгоритмов
- •Сложность проблем
- •11.3 Теория чисел
- •Арифметика вычетов
- •Простые числа
- •Наибольший общий делитель
- •Обратные значения по модулю
- •Решение для коэффициентов
- •Малая теорема Ферма
- •Функция Эйлера
- •Китайская теорема об остатках
- •Квадратичные вычеты
- •Символ Лежандра
- •Символ Якоби
- •Целые числа Блюма
- •Генераторы
- •Вычисление в поле Галуа
- •11.4 Разложение на множители
- •Квадратные корни по модулю п
- •11.5 Генерация простого числа
- •Практические соображения
- •Сильные простые числа
- •11.6 Дискретные логарифмы в конечном поле
- •Вычисление дискретных логарифмов в конечной группе
- •Лекция 13. Стандарт шифрования данных des (Data Encryption Standard)
- •12.1 Введение
- •Разработка стандарта
- •Принятие стандарта
- •Проверка и сертификация оборудования des
- •12.2 Описание des
- •Начальная перестановка
- •Преобразования ключа
- •Перестановка с расширением
- •Подстановка с помощью s-блоков
- •Перестановка с помощью р-блоков
- •Заключительная перестановка
- •Дешифрирование des
- •Режимы des
- •Аппаратные и программные реализации des
- •15.1 Двойное шифрование
- •15.3 Удвоение длины блока
- •15.4 Другие схемы многократного шифрования
- •15.5 Уменьшение длины ключа в cdmf
- •15.6 Отбеливание
- •15.7 Многократное последовательное использование блочных алгоритмов
- •15.8 Объединение нескольких блочных алгоритмов
- •16.1 Линейные конгруэнтные генераторы
- •Константы для линейных конгруэнтных генераторов
- •16.2 Сдвиговые регистры с линейной обратной связью
- •16.3 Проектирование и анализ потоковых шифров
- •16.4 Потоковые шифры на базе lfsr
- •18.1 Основы
- •18.7 Алгоритм безопасного хэширования (Secure Hash Algorithm, sha)
- •Лекция 17. Алгоритмы с открытыми ключами
- •19.2 Алгоритмы рюкзака
- •Иностранные патенты на алгоритм рюкзака Меркла-Хеллмана
- •Шифрование rsa
- •Скорости rsa для различных длин модулей при 8-битовом открытом ключе (на sparc II)
- •Лекция 19. Безопасность вычислительных сетей Атакуемые сетевые компоненты
- •Уровни сетевых атак согласно модели osi
Шифрование rsa
Открытый ключ:
п произведение двух простых чисел р и q (p и q должны храниться в секрете)
е число, взаимно простое с (p-1)(q-1)
Закрытый ключ:
d e-1mod ((p-1)(q-1))
Шифрование:
с = me mod n
Дешифрирование:
т = cd mod n
Точно также сообщение может быть зашифровано с помощью d, а зашифровано с помощью е, возможен любой выбор. Я уберегу вас от теории чисел, доказывающей, почему этот алгоритм работает. В большинстве книг по криптографии этот вопрос подробно рассмотрен.
Короткий пример возможно поможет пояснить работу алгоритма. Если р = 47 и q = 71, то
п=рq = 3337
Ключ е не должен иметь общих множителей
(p-1)(q-1)= 46*70 =3220
Выберем (случайно) е равным 79. В этом случае d= 79"1 mod 3220 = 1019
При вычислении этого числа использован расширенный алгоритм Эвклида (см. раздел 11.3). Опубликуем е и п, сохранив в секрете d. Отбросим p и д. Для шифрования сообщения
m = 6882326879666683
сначала разделим его на маленькие блоки. Для нашего случая подойдут трехбуквенные блоки. Сообщение разбивается на шесть блоков тi;
т1 = 688
т2 = 232
т3 = 687
т4 = 966
т5 = 668
т6 = 003
Первый блок шифруется как 68879 mod 3337 = 1570 = с1
Выполняя те же операции для последующих блоков, создает шифротекст сообщения:
с = 1570 2756 2091 2276 2423 158
Для дешифрирование нужно выполнить такое же возведение в степень, используя ключ дешифрирования 1019:
15701019 mod 3337 = 688 = т1
Аналогично восстанавливается оставшаяся часть сообщения.
Аппаратные реализации RSA
Существует много публикаций, затрагивающих тему аппаратных реализаций RSA [1314, 1474, 1456, 1316, 1485, 874, 1222, 87, 1410, 1409, 1343, 998, 367, 1429, 523, 772]. Хорошими обзорными статьями служат [258, 872]. Шифрование RSA выполняется многими микросхемами [1310, 252, 1101, 1317, 874, 69, 737, 594, 1275, 1563, 509, 1223]. Частичный список доступных в настоящее время микросхем RSA, взятый из [150, 258], приведен в 16th. He все из них доступны в свободной продаже.
Табл. 19-3. Существующие микросхемы RSA
Компания |
Тактовая частота |
Скорость |
Тактовые циклы |
Технология |
Битов на |
Количество |
|
|
передачи в Бодах |
для шифрования |
|
микросхему |
транзисторов |
|
|
на 512 бит |
512 бит |
|
|
|
Alpha Techn. |
25 МГц |
13К |
0.98 М |
2 микрона |
1024 |
180000 |
AT&T |
15 МГц |
19К |
0.4 М |
1.5 микрона |
298 |
100000 |
British Telecom |
10 МГц |
5.IK |
1 М |
2.5 микрона |
256 |
---- |
Business Sim. Ltd. |
5 МГц |
3.8К |
0.67 М |
Вентильная матрица |
32 |
---- |
CalmosSyst-Inc. |
20 МГц |
2.8К |
0.36 М |
2 микрона |
593 |
95000 |
CNET |
25 МГц |
5.3К |
2.3 М |
1 микрон |
1024 |
100000 |
Cryptech |
14 МГц |
17К |
0.4 М |
Вентильная матрица |
120 |
33000 |
Cylink |
30 МГц |
6.8К |
1.2М |
1.5 микрона |
1024 |
150000 |
GEC Marconi |
25 МГц |
10.2К |
0.67 М |
1.4 микрона |
512 |
160000 |
Pijnenburg |
25 МГц |
50К |
0.256 М |
1 микрон |
1024 |
400000 |
Sandia |
8 МГц |
ЮК |
0.4 М |
2 микрона |
272 |
86000 |
Siemens |
5 МГц |
8.5К |
0.03 М |
1 микрон |
512 |
60000 |
Скорость RSA
Аппаратно RSA примерно в 1000 раз медленнее DES. Скорость работы самой быстрой СБИС-реализации RSA с 512-битовым модулем - 64 килобита в секунду [258]. Существуют также микросхемы, которые выполняют 1024-битовое шифрование RSA. В настоящее время разрабатываются микросхемы, которые, используя 512-битовый модуль, приблизятся к рубежу 1 Мбит/с. Возможно, они появятся в 1995 году. Производители также применяют RSA в интеллектуальных карточках, но эти реализации медленнее.
Программно DES примерно в 100 раз быстрее RSA. Эти числа могут незначительно измениться при изменении технологии, но RSA никогда не достигнет скорости симметричных алгоритмов. В 15-й приведены примеры скоростей программного шифрования RSA [918].
Табл. 19-4.