1. ПРАКТИЧЕСКАЯ
КРИПТОГРАФИЯ
Старший преподаватель кафедры Информационной безопасности и
теории управления Ульяновского государственного университета
Правительство Ульяновской области
ОГБУ «Электронный Ульяновск»
Заместитель директора
Клочков Андрей Евгеньевич
a.e.klochkov@ya.ru
2. Термины
• Криптогра́фия (от др.-греч. κρυπτός — скрытый и γράφω — пишу)
— наука о методах обеспечения конфиденциальности
(невозможности прочтения информации посторонним) и
аутентичности (целостности и подлинности авторства, а также
невозможности отказа от авторства) информации.
• Изначально криптография изучала методы шифрования
информации — обратимого преобразования открытого
(исходного) текста на основе секретного алгоритма или ключа в
шифрованный текст (шифротекст). Традиционная криптография
образует раздел симметричных криптосистем, в которых
зашифрование и расшифрование проводится с использованием
одного и того же секретного ключа.
• Помимо этого раздела современная криптография включает в
себя асимметричные криптосистемы, системы электронной
цифровой подписи (ЭЦП), хеш-функции, управление ключами,
получение скрытой информации, квантовую криптографию.
3. История
• Первый период (приблизительно с 3-го тысячелетия
до н. э.) характеризуется господством
моноалфавитных шифров (основной принцип —
замена алфавита исходного текста другим алфавитом
через замену букв другими буквами или символами).
5. История
• Второй период (хронологические рамки — с IX века на Ближнем
Востоке (Ал-Кинди) и с XV века в Европе (Леон Баттиста Альберти)
— до начала XX века) ознаменовался введением в обиход
полиалфавитных шифров.
• Суть полиалфавитного шифра заключается в циклическом
применении нескольких моноалфавитных шифров к определённому
числу букв шифруемого текста. Например, пусть у нас имеется
некоторое сообщение x1 , x2 , x3 , ….. xn , …… x2n , ….., которое надо
зашифровать. При использовании полиалфавитного шифра имеется
несколько моноалфавитных шифров (например, n штук). И в нашем
случае к первой букве применяется первый моноалфавитный шифр,
ко второй букве — второй, к третьей — третий….. к n-ой букве — n-й,
а к n+1 опять первый, ну и так далее. Таким образом, получаётся
довольно-таки сложная последовательность, которую уже не так
просто вскрыть, как один моноалфавитный шифр. Самым важным
эффектом, достигаемым при использовании полиалфавитного
шифра, является маскировка частот появления тех или иных букв в
тексте, на основании которой обычно очень легко вскрываются
моноалфавитные шифры.
6. Шифр Виженера
• Шифр Виженера состоит из
последовательности нескольких
шифров Цезаря с различными
значениями сдвига. Для
зашифровывания может
использоваться таблица алфавитов,
называемая tabula recta или
квадрат (таблица) Виженера.
Применительно к латинскому
алфавиту таблица Виженера
составляется из строк по 26
символов, причём каждая
следующая строка сдвигается на
несколько позиций. Таким образом,
в таблице получается 26 различных
шифров Цезаря. На каждом этапе
шифрования используются
различные алфавиты, выбираемые
в зависимости от символа
ключевого слова. Например,
предположим, что исходный текст
имеет вид:
7. Пример
• Исходный текст:
• ATTACKATDAWN
• Человек, посылающий
сообщение, записывает
ключевое слово
(«LEMON») циклически до
тех пор, пока его длина не
будет соответствовать
длине исходного текста:
• LEMONLEMONLE
• Исходный текст:
ATTACKATDAWN
• Ключ:
LEMONLEMONLE
• Зашифрованный текст:
LXFOPVEFRNHR
8. История
• Третий период (с начала и до середины XX века)
характеризуется внедрением электромеханических
устройств в работу шифровальщиков. При этом
продолжалось использование полиалфавитных
шифров.
9. Шифровальная машина «Энигма»
• Первоначальное состояние шифровального ключа Энигмы включает следующие параметры:
• Расположение роторов: выбор роторов и их расположение.
• Первоначальные позиции роторов: выбранные оператором, различные для каждого сообщения.
• Настройка колец: позиция алфавитного кольца, совпадающая с роторной схемой.
• Настройки штепселей: соединения штепселей на коммутационной панели.
• Энигма была разработана таким образом, чтобы безопасность сохранялась даже в тех случаях, когда шпиону
известны роторные схемы, хотя на практике настройки хранятся в секрете. С неизвестной схемой общее количество
возможных конфигураций может быть порядка 10114 (около 380 бит), с известной схемой соединений и других
операционных настроек этот показатель снижается до 1023 (76 бит). Пользователи Энигмы были уверены в её
безопасности из-за большого количества возможных вариантов. Нереальным было даже начать подбирать возможную
конфигурацию.
10. История
• Четвертый период — с середины до 70-х годов XX
века — период перехода к математической
криптографии. В работе Шеннона появляются строгие
математические определения количества
информации, передачи данных, энтропии, функций
шифрования. Обязательным этапом создания шифра
считается изучение его уязвимости к различным
известным атакам — линейному и
дифференциальному криптоанализам. Однако, до
1975 года криптография оставалась «классической»,
или же, более корректно, криптографией с секретным
ключом.
11. Информационная Энтропия
• Информацио́нная энтропи́я — мера
неопределённости или непредсказуемости
информации, неопределённость появления какого-
либо символа первичного алфавита. При отсутствии
информационных потерь численно равна количеству
информации на символ передаваемого сообщения.
• Например, в последовательности букв, составляющих
какое-либо предложение на русском языке, разные
буквы появляются с разной частотой, поэтому
неопределённость появления для некоторых букв
меньше, чем для других.
13. История
• Современный период развития криптографии (с конца
1970-х годов по настоящее время) отличается
зарождением и развитием нового направления —
криптография с открытым ключом. Её появление
знаменуется не только новыми техническими
возможностями, но и сравнительно широким
распространением криптографии для использования
частными лицами (в предыдущие эпохи
использование криптографии было исключительной
прерогативой государства). Правовое регулирование
использования криптографии частными лицами в
разных странах сильно различается — от разрешения
до полного запрета.
14. Современная криптография
• Для современной криптографии характерно
использование открытых алгоритмов шифрования,
предполагающих использование вычислительных
средств. Известно более десятка проверенных
алгоритмов шифрования, которые при использовании
ключа достаточной длины и корректной реализации
алгоритма криптографически стойки.
Распространенные алгоритмы:
• симметричные DES, AES, ГОСТ 28147-89, Camellia, Twofish,
Blowfish, IDEA, RC4 и др.;
• асимметричные RSA и Elgamal (Эль-Гамаль);
• хэш-функций MD4, MD5, MD6, SHA-1, SHA-2, ГОСТ Р 34.11-94
(ГОСТ Р 34.11-2012 «Стрибог»).
16. Ассиметричные шифры
• Идея криптографии с открытым ключом очень тесно
связана с идеей односторонних функций, то есть таких
функций f(x), что по известному x довольно просто
найти значение f(x), тогда как определение x из f(x)
невозможно за разумный срок.
• Но сама односторонняя функция бесполезна в
применении: ею можно зашифровать сообщение, но
расшифровать нельзя. Поэтому криптография с
открытым ключом использует односторонние функции
с лазейкой. Лазейка — это некий секрет, который
помогает расшифровать. То есть существует такой y,
что зная f(x) и y, можно вычислить x.
19. Хеширование
• Хеширование (иногда «хэширование», англ. hashing)
— преобразование по детерминированному алгоритму
входного массива данных произвольной длины в
выходную битовую строку фиксированной длины.
Такие преобразования также называются хеш-
функциями или функциями свёртки, а их результаты
называют хешем, хеш-кодом или сводкой сообщения
(англ. message digest).
• Криптографической хеш-функцией называется всякая
хеш-функция, являющаяся криптостойкой, то есть,
удовлетворяющая ряду требований специфичных для
криптографических приложений.
21. Электронная подпись
• Электро́нная по́дпись (ЭП), Электро́нная цифровая
по́дпись (ЭЦП) — реквизит электронного документа,
полученный в результате криптографического
преобразования информации с использованием
закрытого ключа подписи и позволяющий установить
отсутствие искажения информации в электронном
документе с момента формирования подписи и
проверить принадлежность подписи владельцу
сертификата ключа подписи.
23. Удостоверяющий центр,
Центр сертификации
• В криптографии центр сертификации или удостоверяющий
центр (англ. Certification authority, CA) — сторона (отдел,
организация), чья честность неоспорима, а открытый ключ
широко известен. Задача центра сертификации —
подтверждать подлинность ключей шифрования с
помощью сертификатов электронной подписи.
• Технически центр сертификации реализован как компонент
глобальной службы каталогов, отвечающий за управление
криптографическими ключами пользователей. Открытые
ключи и другая информация о пользователях хранится
удостоверяющими центрами в виде цифровых
сертификатов, чаще всего в стандарте X.509
24. УЦ, ЦС
• Открытые ключи и другая информация о пользователях
хранится центрами сертификации в виде цифровых
сертификатов, имеющих следующую структуру:
• серийный номер сертификата;
• объектный идентификатор алгоритма электронной подписи;
• имя удостоверяющего центра;
• срок действия сертификата;
• имя владельца сертификата (имя пользователя, которому
принадлежит сертификат);
• открытые ключи владельца сертификата (ключей может быть
несколько);
• объектные идентификаторы алгоритмов, ассоциированных с
открытыми ключами владельца сертификата;
• электронная подпись, сгенерированная с использованием
секретного ключа удостоверяющего центра (подписывается
результат хэширования всей информации, хранящейся в
сертификате).
26. Генераторы псевдослучайных чисел
• Генератор псевдослучайных чисел (ГПСЧ, англ.
Pseudorandom number generator, PRNG) — алгоритм,
порождающий последовательность чисел, элементы
которой почти независимы друг от друга и
подчиняются заданному распределению (обычно
равномерному).
• Современная информатика широко использует
псевдослучайные числа в самых разных приложениях
— от метода Монте-Карло и имитационного
моделирования до криптографии. При этом от
качества используемых ГПСЧ напрямую зависит
качество получаемых результатов.
27. Источники случайных чисел
• Источники настоящих случайных чисел найти трудно. Физические шумы,
такие как детекторы событий ионизирующей радиации, дробовой шум в
резисторе или космическое излучение могут быть такими источниками.
Однако применяются такие устройства в приложениях сетевой безопасности
редко. Сложности также вызывают грубые атаки на подобные устройства.
• Криптографические приложения используют для генерации случайных чисел
особенные алгоритмы. Эти алгоритмы заранее определены и,
следовательно, генерируют последовательность чисел, которая
теоретически не может быть статистически случайной. В то же время, если
выбрать хороший алгоритм, полученная численная последовательность
будет проходить большинство тестов на случайность. Такие числа называют
псевдослучайными числами.
• Альтернативным решением является создание набора из большого
количества случайных чисел и опубликование его в некотором словаре,
называемом «одноразовым блокнотом». Тем не менее, и такие наборы
обеспечивают очень ограниченный источник чисел по сравнению с тем
количеством, которое требуется приложениям сетевой безопасности. Хотя
данные наборы действительно обеспечивают статистическую случайность,
они недостаточно безопасны, так как злоумышленник может получить копию
словаря.
28. Тестирование случайных
последовательностей
• Генераторы случайных и псевдослучайных чисел являются
связующим звеном в обеспечении информационной
безопасности. В некотором смысле это жизненно важные
строительные блоки криптографических алгоритмов и
протоколов. Поскольку такие генераторы применяются во многих
криптографических задачах, например формирование случайных
параметров и ключей систем шифрования, то требования,
предъявляемые к ним, оказываются достаточно высокими.
• В частности, одним из критериев абсолютно произвольной
двоичной последовательности, получаемой на выходе
генератора, является невозможность её предсказания в
отсутствие какой-либо информации о данных, подаваемых на
вход генератора. Поэтому на практике статистические тесты
проводят для проверки случайного характера бинарной
последовательности, формируемой генератором случайных или
псевдослучайных чисел. Что в свою очередь позволяет выявить
генераторы, заранее удовлетворяющие требованиям конкретной
криптографической задачи.