Криптография

1 Теоретические основы криптографии

1.1. Секретность (понятие, структура, система).

1.1.1. Секретные системы.

1.1.2. Способы изображения систем.

1.1.3. Примеры секретных систем.

1.1.4. Оценка секретных систем.

1.1.5. Алгебра секретных систем.

1.1.6. Чистые и смешанные шифры.

1.1.7. Подобные системы.

1.2. Стойкие шифры секретных систем

1.2.1. Криптоатаки

1.2.2. Теоретическая стойкость шифров.

1.2.2.1. Математическая модель шифра

1.2.2.2. Шифры, совершенные по К.Шеннону

1.2.2.3. Имитостойкие совершенные шифры.

1.2.3. Линейные блочные шифры.

1.2.4. Обобщения теоремы Шеннона.

1.2.4.1. Вероятностные распределения

1.2.4.2. Шифры, стойкие к атакам на

1.2.4.3. Имитостойкие U(L)-стойкие шифры.

1.2.5. Понятие совершенного шифра для других криптоатак

1.2.6. Свойства U(L)- и S(L)- стойких шифров.

1.2.7. Построение O(L)- и M(L)-стойких шифров.

1.3. Числовые алгоритмы используемые в теории криптографии

1.3.1. Оценка сложности арифметических операций

1.3.1.1. Свойства функций оценки сложности

1.3.1.2. Сложность арифметических операций с целыми числами

1.3.1.3. Сложность алгоритма Евклида

1.3.1.4. Сложность операций в кольце вычетов

1.3.1.5. Использование модульной арифметики

1.3.1.6. Вычисления с многочленами

1.3.1.7. Дискретное преобразование Фурье

1.3.2. Элементы теории чисел

1.3.2.1. Непрерывные дроби и их свойства.

1.3.2.2. Квадратичные вычеты

1.3.2.3. Теорема Чебышева о распределении простых чисел

1.3.3. Арифметические алгоритмы

1.3.3.1. Проверка простоты

1.3.3.1.1. Решето Эратосфена

1.3.3.1.2. Критерий Вильсона

1.3.3.1.3. Тест на основе малой теоремы Ферма.

1.3.3.1.4. Свойства чисел Кармайкла.

1.3.3.1.5. Тест Соловея—Штрассена.

1.3.3.1.6. Тест Рабина—Миллера.

1.3.3.1.7. Полиномиальный тест распознавания простоты

1.3.3.2. Построение больших простых чисел

1.3.3.2.1. Критерий Люка

1.3.3.2.2. Теорема Поклингтона

1.3.3.2.3. Теорема Диемитко

1.3.3.2.4. Метод Маурера

1.3.3.2.5. Метод Михалеску

1.3.3.2.6. (n + 1)-методы

1.3.3.2.7. Числа Мерсенна

1.3.3.3. Алгоритмы факторизации целых чисел

1.3.3.3.1. Метод Полларда

1.3.3.3.2. Алгоритм Полларда—Штрассена.

1.3.3.3.3. Факторизация Ферма

1.3.3.3.4. Алгоритм Диксона

1.3.3.3.5. Алгоритм Брилхарта—Моррисона

1.3.3.3.6. Метод квадратичного решета

1.3.3.3.7. (р-1) – метод факторизации Полларда

2 Прикладная криптография

2.1. Криптографические протоколы

2.1.1. Основные понятия

2.1.1.1. Терминология

2.1.1.2. Стеганография

2.1.1.3. Подстановочные и перестановочные шифры

2.1.1.4. Простое XOR

2.1.1.5. Одноразовые блокноты

2.1.1.6. Компьютерные алгоритмы

2.1.1.7. Большие числа

2.1.2. Элементы протоколов

2.1.2.1. Введение в протоколы

2.1.2.2. Передача информации с использованием симметричной криптографии

2.1.2.3. Однонаправленные функции

2.1.2.4. Однонаправленные хэш-функции

2.1.2.5. Передача информации с использованием криптографии с открытыми ключами

2.1.2.6. Цифровые подписи

2.1.2.7. Цифровые подписи и шифрование

2.1.2.8. Генерация случайных и псевдослучайных последовательностей

2.1.3. Основные протоколы

2.1.3.1. Обмен ключами

2.1.3.2. Удостоверение подлинности

2.1.3.3. Удостоверение подлинности и обмен ключами

2.1.3.4. Формальный анализ протоколов проверки подлинности и обмена ключами

2.1.3.5. Криптография с несколькими открытыми ключами

2.1.3.6. Разделение секрета

2.1.3.7. Совместное использование секрета

2.1.3.8. Криптографическая защита баз данных

2.1.4. Промежуточные протоколы

2.1.4.1. Службы меток времени

2.1.4.2. Подсознательный канал

2.1.4.3. Неотрицаемые цифровые подписи

2.1.4.4. Подписи уполномоченного свидетеля

2.1.4.5. Подписи по доверенности

2.1.4.6. Групповые подписи

2.1.4.7. Подписи с обнаружением подделки

2.1.4.8. Вычисления с зашифрованными данными

2.1.4.9. Вручение битов

2.1.4.10. Подбрасывание "честной" монеты

2.1.4.11. Мысленный покер

2.1.4.12. Однонаправленные сумматоры

2.1.4.13. Раскрытие секретов "все или ничего"

2.1.4.14. Условное вручение ключей

2.1.5. Развитые протоколы

2.1.5.1. Доказательства с нулевым знанием

2.1.5.2. Использование доказательства с нулевым знанием для идентификации

2.1.5.3. Слепые подписи

2.1.5.4. Личностная криптография с открытыми ключами

2.1.5.5. Рассеянная передача

2.1.5.6. Рассеянные подписи

2.1.5.7. Одновременная подпись контракта

2.1.5.8. Электронная почта с подтверждением

2.1.5.9. Одновременный обмен секретами

2.1.6. Эзотерические протоколы

2.1.6.1. Безопасные выборы

2.1.6.2. Безопасные вычисления с несколькими участниками

2.1.6.3. Анонимная широковещательная передача сообщений

2.1.6.4. Электронные наличные

2.2. Ключи

2.2.1. Длина ключа

2.2.1.1. Длина симметричного ключа

2.2.1.2. Длина открытого ключа

2.2.1.3. Сравнение длин симметричных и открытых ключей

2.2.1.4. Вскрытие в день рождения против однонаправленных хэш-функций

2.2.1.5. Каков должны быть длина ключа?

2.2.1.6. Caveat emptor

2.2.2. Управление ключами

2.2.2.1. Генерация ключей

2.2.2.2. Нелинейные пространства ключей

2.2.2.3. Передача ключей

2.2.2.4. Проверка ключей

2.2.2.5. Использование ключей

2.2.2.6. Обновление ключей

2.2.2.7. Хранение ключей

2.2.2.8. Резервные ключи

2.2.2.9. Скомпрометированные ключи

2.2.2.10. Время жизни ключей

2.2.2.11. Разрушение ключей

2.2.2.12. Управление открытыми ключами

2.3. Криптографические алгоритмы шифрования

2.3.1. Типы алгоритмов и криптографические режимы

2.3.1.1. Режим электронной шифровальной книги

2.3.1.2. Повтор блока

2.3.1.3. Режим сцепления блоков шифра

2.3.1.4. Потоковые шифры

2.3.1.5. Самосинхронизирующиеся потоковые шифры

2.3.1.6. Режим обратной связи по шифру

2.3.1.7. Синхронные потоковые шифры

2.3.1.8. Режим выходной обратной связи

2.3.1.9. Режим счетчика

2.3.1.10. Другие режимы блочных шифров

2.3.1.11. Выбор режима шифра

2.3.1.12. Прослаивание

2.3.1.13. Блочные шифры против потоковых шифров

2.3.2. Симметричные криптоалгоритмы

2.3.2.1. Блочные шифры

2.3.2.1.1. Распространенные блочные шифры

2.3.2.1.1.1. DES

2.3.2.1.1.1.1. Введение

2.3.2.1.1.1.2. Описание DES

2.3.2.1.1.1.3. Безопасность DES

2.3.2.1.1.1.4. Дифференциальный и линейный криптоанализ

2.3.2.1.1.1.5. Реальные критерии проектирования

2.3.2.1.1.1.6. Варианты DES

2.3.2.1.1.1.7. Насколько безопасен сегодня DES?

2.3.2.1.1.2. LUCIFER

2.3.2.1.1.3. MADRYGA

2.3.2.1.1.4. NewDES

2.3.2.1.1.5. FEAL

2.3.2.1.1.6. REDOC

2.3.2.1.1.7. LOKI

2.3.2.1.1.8. KHUFU и KHAFRE

2.3.2.1.1.9. RC2

2.3.2.1.1.10. IDEA

2.3.2.1.1.11. MMB

2.3.2.1.1.12. CA-1.1

2.3.2.1.1.13. SKIPJACK

2.3.2.1.1.14. ГОСТ

2.3.2.1.1.15. CAST

2.3.2.1.1.16. BLOWFISH

2.3.2.1.1.17. SAFER

2.3.2.1.1.18. 3-WAY

2.3.2.1.1.19. CRAB

2.3.2.1.1.20. SXAL8/MBAL

2.3.2.1.1.21. RC5

2.3.2.1.1.22. Другие блочные алгоритмы

2.3.2.1.1.23. Теория проектирования блочного шифра

2.3.2.1.1.24. Использование однонаправленных хэш-функций

2.3.2.1.1.25. Выбор блочного алгоритма

2.3.2.1.2. Объединение блочных шифров

2.3.2.1.2.1. Двойное шифрование

2.3.2.1.2.2. Тройное шифрование

2.3.2.1.2.3. Удвоение длины блока

2.3.2.1.2.4. Другие схемы многократного шифрования

2.3.2.1.2.5. Уменьшение длины ключа в CDMF

2.3.2.1.2.6. Отбеливание

2.3.2.1.2.7. Многократное последовательное использование блочных алгоритмов

2.3.2.1.2.8. Объединение нескольких блочных алгоритмов

2.3.2.2. Потоковые шифры

2.3.2.2.1. Линейные конгруэнтные генераторы

2.3.2.2.2. Сдвиговые регистры с линейной обратной связью

2.3.2.2.3. Проектирование и анализ потоковых шифров

2.3.2.2.4. Потоковые шифры на базе LFSR

2.3.2.2.5. A5

2.3.2.2.6. Hughes XPD/KPD

2.3.2.2.7. Nanoteq

2.3.2.2.8. Rambutan

2.3.2.2.9. Аддитивные генераторы

2.3.2.2.10. Gifford

2.3.2.2.11. Алгоритм M

2.3.2.2.12. PKZIP

2.3.2.2.13. RC4

2.3.2.2.14. SEAL

2.3.2.2.15. WAKE

2.3.2.2.16. Сдвиговые регистры с обратной связью по переносу

2.3.2.2.17. Потоковые шифры, использующие FCSR

2.3.2.2.18. Сдвиговые регистры с нелинейной обратной связью

2.3.2.2.19. Другие потоковые шифры

2.3.2.2.20. Системно-теоретический подход к проектированию потоковых шифров

2.3.2.2.21. Сложностно-теоретический подход к проектированию потоковых шифров

2.3.2.2.22. Другие подходы к проектированию потоковых шифров

2.3.2.2.23. Шифры с каскадом нескольких потоков

2.3.2.2.24. Выбор потокового шифра

2.3.2.2.25. Генерация нескольких потоков из одного генератора псевдослучайной последовательности

2.3.2.2.26. Генераторы реальных случайных последовательностей

2.3.2.3. Одноправленные хэш-функции

2.3.2.3.1. Основы

2.3.2.3.2. Snefru

2.3.2.3.3. N-хэш

2.3.2.3.4. MD4

2.3.2.3.5. MD5

2.3.2.3.6. MD2

2.3.2.3.7. Алгоритм безопасного хэширования (Secure Hash Algorithm, SHA)

2.3.2.3.8. RIPE-MD

2.3.2.3.9. HAVAL

2.3.2.3.10. Другие однонаправленные хэш-функции

2.3.2.3.11. Однонаправленные хэш-функции, использующие симметричные блочные алгоритмы

2.3.2.3.12. Использование алгоритмов с открытым ключом

2.3.2.3.13. Выбор однонаправленной хэш-функции

2.3.2.3.14. Коды проверки подлинности сообщения

2.3.3. Ассиметричные криптоалгоритмы

2.3.3.1. Идея открытых ключей

2.3.3.1.1. Некоторые улицы являются односторонними

2.3.3.1.2. Как реализовать идею

2.3.3.1.3. Очевидные преимущества открытых ключей

2.3.3.2. Рюкзачные системы

2.3.3.2.1. Строим секретную лазейку

2.3.3.2.2. Как искать секретную лазейку

2.3.3.2.3. Теория достижимости

2.3.3.2.4. Новая попытка скрыть лазейку

2.3.3.2.5. Плотные рюкзаки

2.3.3.3. Криптосистема RSA

2.3.3.3.1. Легальный мир

2.3.3.3.2. Нападение и защита

2.3.3.3.3. Проверка чисел на простоту

2.3.3.3.4. Криптоанализ и факторизация

2.3.3.3.5. Частичная информация в RSA

2.3.3.3.6. Дискретные логарифмы и ключевой обмен

2.3.3.4. Другие основы криптосистем

2.3.3.4.1.1. Возведение в степень в квадратичных полях

2.3.3.4.1.2. Итерация морфизмов

2.3.3.4.1.3. Автоматы и теория формальных языков

2.3.3.4.1.4. Теория кодирования

2.3.3.5. Алгоритмы цифровой подписи с открытым ключом

2.3.3.5.1. Алгоритм цифровой подписи (DIGITAL SIGNATURE ALGORITHM, DSA)

2.3.3.5.2. Варианты DSA

2.3.3.5.3. Алгоритм цифровой подписи ГОСТ

2.3.3.5.4. Схемы цифровой подписи с использованием дискретных логарифмов

2.3.3.5.5. ONG-SCHNORR-SHAMIR

2.3.3.5.6. ESIGN

2.3.3.5.7. Клеточные автоматы

2.3.3.5.8. Другие алгоритмы с открытым ключом

2.3.3.6. Схемы идентификации

2.3.3.6.1. FEIGE-FIAT-SHAMIR

2.3.3.6.2. GUILLOU-QUISQUATER

2.3.3.6.3. SCHNORR

2.3.3.6.4. Преобразование схем идентификации в схемы подписи

2.3.3.7. Алгоритмы обмена ключами

2.3.3.7.1. DIFFIE-HELLMAN

2.3.3.7.2. Протокол "точка-точка"

2.3.3.7.3. Трехпроходный протокол Шамира

2.3.3.7.4. COMSET

2.3.3.7.5. Обмен зашифрованными ключами

2.3.3.7.6. Защишенные переговоры о ключе

2.3.3.7.7. Распределение ключа для конференции и секретная широковещательная передача

2.3.3.8. Специальные алгоритмы для протоколов

2.3.3.8.1. Криптография с несколькими открытыми ключами

2.3.3.8.2. Алгоритмы разделения секрета

2.3.3.8.3. Подсознательный канал

2.3.3.8.4. Неотрицаемые цифровые подписи

2.3.3.8.5. Подписи, подтверждаемые доверенным лицом

2.3.3.8.6. Вычисления с зашифрованными данными

2.3.3.8.7. Бросание "честной" монеты

2.3.3.8.8. Однонаправленные сумматоры

2.3.3.8.9. Раскрытие секретов "все или ничего"

2.3.3.8.10. Честные и отказоустойчивые криптосистемы

2.3.3.8.11. ZERO-KNOWLEDGE PROOFS OF KNOWLEDGE

2.3.3.8.12. Слепые подписи

2.3.3.8.13. Передача с забыванием

2.3.3.8.14. Безопасные вычисления с несколькими участниками

2.3.3.8.15. Вероятностное шифрование

2.3.3.8.16. Квантовая криптография