Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Методы и средства передачи данных в автоматизированных системах. Учебное пособие
.pdf
5.5. Криптографические протоколы безопасной связи SSL, TLS
161
«Пустой» сертификат – это сертификат, содержащий фиктивную ин-
формацию. В основном такой сертификат применяется в качестве временного решения для настройки SSL, проверки его функциональности и совместимости среды, где он будет использоваться.
Практически любой сертификат имеет некоторое количество парамет-
ров или полей. Часть из них является обязательной, а часть – дополнительной. В общем случае в сертификате содержится следующая информация:
1) полное и уникальное имя владельца сертификата;
2) открытый ключ владельца;
3) дата выдачи ssl сертификата;
4) дата окончания сертификата;
5) полное уникальное имя центра сертификации;
6) цифровая подпись издателя.
Далее мы перейдем к методам шифрования данных, которые приме-
няются в различных ситуациях как на стороне клиентов, так и на стороне
серверов в автоматизированных и информационных системах.

Глава 5. Защита передачи данных в компьютерных сетях
162
ГЛАВА 6
ШИФРОВАНИЕ ДАННЫХ
В данной главе будут рассмотрены различные алгоритмы шифрования, которые часто применяются в современных автоматизированных и информационных системах и лежат в основе многих современных технологий.
В частности, мы рассмотрим базовый алгоритм асимметричного
шифрования, методы создания и использования цифровой подписи, а также
рассмотрим некоторые криптографические алгоритмы без ключей, с одним
ключом и с двумя ключами, которые часто применяются на практике в АС
и ИС [7, 8].
6.1. Алгоритм асимметричного шифрования RSA
Первым алгоритмом шифрования мы рассмотрим классический алгоритм RSA, работающий на базе понятия сложности факторизации больших чисел.
Алгоритм RSA своим названием обязан трем основным авторам, а
точнее их фамилиям: Rivest, Shamir и Adleman. Это известный криптографический алгоритм, относящийся к классу алгоритмов с открытым ключом.
Примечательно то, что криптосистема RSA стала первой системой
которую успешно стали применять как для шифрования, так и для цифровой подписи.
Подобная идея алгоритма приписывается Уитфилду Диффи и Мартину Хеллману, которые опубликовали эту концепцию в 1976 г. Они также
ввели цифровые подписи и попытались применить теорию чисел. В их формулировке использовался секретный ключ с общим доступом, созданный
путем экспоненциализации некоторого числа по модулю простого числа.
Однако они оставили открытой проблему реализации односторонней функции, возможно, потому что сложность факторизации в то время не была
хорошо изучена.
Ривест, Шамир и Адлеман, являясь сотрудниками Массачусетского
технологического института в течение года предпринимали несколько попыток создать одностороннюю функцию, которую было бы трудно инвертировать.

6.1. Алгоритм асимметричного шифрования RSA
163
Ривест и Шамир, будучи учеными, предложили множество потенци-
альных функций, а Адлеман, будучи математиком, отвечал за поиск их слабых мест. Они опробовали множество подходов, включая «ранцевый» и
«перестановочные полиномы».
Какое-то время они думали, что то, чего они хотели достичь, невозможно из-за противоречивых требований. В апреле 1977 г. к ним пришла
идея об оригинальной односторонней функции. Примечательно то, что сам
алгоритм был разработан примерно в течение одних суток.
Клиффорд Кокс, английский математик, работавший в британской
разведывательной службе Government Communications Headquarters
(GCHQ), описал эквивалентную систему во внутреннем документе в
1973 г. Однако, учитывая относительно дорогие компьютеры, необходимые для ее реализации в то время, она считалась в основном курьезом и,
насколько известно, так и не была применена. Однако его открытие было
раскрыто только в 1997 г. из-за его сверхсекретного засекречивания.
В августе 1977 г. в журнале Scientific American с разрешения Рональда Ривеста впервые появилось первое описание криптосистемы RSA.
Если говорить более конкретно, читателям было предложено дешифровать
английскую фразу, зашифрованную описанным алгоритмом (рис. 22):
Рис. 22. Зашифрованная RSA фраза
В качестве открытого ключа системы были использованы числа
n = 1143816...6879541, т.е. 129 десятичных знаков (RSA-129), 425 бита. За
расшифровку была обещана награда всего в 100 долларов США. По тогдашнему заявлению Ривеста, для факторизации числа вручную потребовалось бы более 40 квадриллионов лет, так как персональных ЭВМ тогда
еще не было в наличии, и они не использовались для решения «математических задач гражданского характера».

Глава 6. Шифрование данных
164
Однако примерно через 15 лет, 3 сентября 1993 г. было объявлено о
запуске специального проекта распределённых вычислений с координацией через электронную почту. Целью этого проекта было нахождение
сомножителей числа для дешифрования RSA-129.
В течение полугода более 600 участников из 20 стран направляли
процессорное время своих 1600 машин на решение задачи.
В результате были найдены простые множители и расшифровано исходное сообщение, которое представляет собой фразу «THE MAGIC
WORDS ARE SQUEAMISH OSSIFRAGE», т.е. «Волшебные слова ‒ это
брезгливый ягнятник»). Полученную награду победители пожертвовали
в фонд свободного программного обеспечения.
Заявка на патент RSA была подана 14 декабря 1977 г., а в качестве
владельца был указан MIT (Массачусетский технологический институт).
Патент № 4405829 был выдан 20 сентября 1983 года. Его срок действия истек 21 сентября 2000 г.
В 1982 г. авторы алгоритма, Ривест, Шамир и Адлеман создали компанию RSA Data Security и шифр RSA стал упоминаться в некоторых стандартах наряду с шифром симметричным DES. Это обеспечило широкую
известность методов шифрования в зарождавшейся тогда сети Интернет.
Далее RSA начинает использоваться министерством обороны США,
публикуется стандарт PKCS1, регламентирующий цифровую подпись. Затем уже была разработана защищенная система правительственной связи
Великобритании и так далее.
Криптографические системы с открытым ключом используют так
называемые односторонние функции, которые обладают следующим свойством:
1) если известно Х то вычислить F(X) достаточно просто;
2) если известна функция Y = F(X), то для вычисления Х нет простого
и эффективного пути.
Под односторонней функцией понимается практическая невозможность вычислить обратное значение этой функции, зная ее результат, даже
используя современные вычислительные средства.
Здесь следует сделать примечание, что речь о невозможности что-то
вычислить идет в отношении классических ЭВМ или даже Супер-ЭВМ.
Поэтому появление квантовых вычислителей, которые, по утверждениям

6.1. Алгоритм асимметричного шифрования RSA
165
ученых, способны решать такие задачи чуть ли не мгновенно, повергает
криптографов в ужас и ставит под сомнение всю современную криптографию, хотя квантовые вычисления пока не вышли за пределы лабораторий
и бытовых «квантовых компьютеров» пока нет.
В основу любой криптографической системы с открытым ключом,
основанной на применении RSA, положена высочайшая сложность задачи
факторизации произведения двух больших простых чисел.
Для шифрования используется простая операция: возведение в степень по модулю некоторого большого числа.
Для дешифрования необходимо уметь вычислять функцию Эйлера от данного большого числа, а для вычисления функции Эйлера необходимо знать разложение числа на простые множители.
В криптографической системе с открытым ключом каждый участник
располагает как открытым ключом или public key, так и закрытым ключом
или private key.
В криптографической системе RSA каждый ключ состоит из пары
целых чисел.
Каждый участник создаёт свой открытый и закрытый ключ самостоятельно при помощи специального генерирующего программного
обеспечения.
Закрытый ключ, естественно, каждый из них держит в секрете и
даже в защищенном хранилище, а открытые ключи можно спокойно передавать другим лицам, отправлять посредством открытых каналов или даже
публиковать их.
Открытые и закрытые ключи в RSA образуют так называемую «согласованную пару» в том смысле, что они являются взаимно обратными,
как это показано на рис. 23 ниже.
Рис. 23. Алгоритм создания открытого и секретного ключей
В криптосистеме RSA-ключи генерируются следующим образом.

Глава 6. Шифрование данных
166
Выбираются два случайных числа, являющиеся простыми: p и q. Эти
числа имеют заданный фиксированный размер, например 1 024 или
4 096 бит.
1) Вычисляется произведение этих чисел, называемое модулем:
.
2) Вычисляется функция Эйлера от числа n:
.
3) Выбирается некоторое целое число, взаимно простое со значением
функции .
4) Число называется открытой экспонентой.
5) В качестве берутся простые числа, которые содержат небольшое
количество логических единиц в своем бинарном представлении, так как в
таком случае время возведения в степень будет меньше.
6) Вычисляется число , которое является мультипликативно обрат-
ным к числу по модулю
такое, что
. При этом
число называется секретной эксонентой.
7) Пара
публикуется открыто в качестве публичного ключа.
8) Пара считается закрытым ключом и держится в секрете.
Схема шифрования объясняется достаточно просто на примере двух
абонентов А (Алиса) и Б (Боб). Следует учесть, что обычно шифрование
также описывается на примере создания именно сеансового ключа для обмена данными.
При помощи такого сеансового ключа участники обмена (т.е. А и Б),
шифруют свои сообщения в симметричной системе. После завершения сеанса связи ключ уничтожается.
Алгоритм шифрования сеансового ключа выглядит следующим об-
разом (рис. 24).
Фактически, здесь работает следующий алгоритм:
1) Шифрование:
a. Берется открытый, заранее сгенерированный ключ А:
.
b. Задается случайный сеансовый ключ .
c. Сеансовый ключ шифруется с использованием открытого
ключа А: .
d. Сообщение шифруется при помощи сеансового ключа сим-
метричным алгоритмом: .

6.2. Цифровая подпись
167
Рис. 24. Схема шифрования сеансового ключа
2) Расшифровка:
a. Принимается зашифрованный сеансовый ключ Б (с).
b. Берется закрытый ключ .
c. Применяется закрытый ключ для расшифрования сеансового
ключа: .
d. Расшифровывается сообщение при помощи сеансового
ключа симметричным алгоритмом: .
В случае, когда сеансовый ключ больше, чем модуль N, сеансовый
ключ разбивают на блоки нужной длины (в случае необходимости дополняют нулями) и шифруют каждый блок.
6.2. Цифровая подпись
Система RSA может использоваться не только для шифрования, но
и для цифровой подписи.
Поскольку цифровая подпись служит для того, чтобы обеспечивать
однозначную идентификацию и аутентификацию автора сообщения, то она
считается цифровым аналогом «ручной» подписи человека и позволяет верифицировать документы в электронном пространстве.
Важное отличие цифровой подписи от «ручной» заключается в том,
что её можно автоматически проверить и без «почерковедческой» экспертизы. Проверить такую подпись может каждый, кто имеет доступ к открытому ключу её автора.

Глава 6. Шифрование данных
168
Заметим, что подписанное сообщение не зашифровано, но содер-
жит идентификатор автора, поставившего цифровую подпись. Оно пересылается в исходном виде и его содержимое не защищено от нарушения конфиденциальности.
Проблема решается путём совместного применения представленных
выше схем шифрования и цифровой подписи. Если говорить конкретнее,
то автор сначала должен подписать собственное сообщение, а затем ‒ зашифровать получившуюся в результате пару данных (сообщение и подпись) с помощью открытого ключа, принадлежащего получателю.
Получатель в свою очередь расшифровывает полученное сообщение
с помощью своего секретного ключа.
Подчеркнем, что алгоритм RSA здесь приведен для примера и рас-
крыт вследствие того, что он широко применяется как часть защищенных
методов передачи данных в распределенных системах.
Существует также множество алгоритмов шифрования, но их рассмотрение не входит в данный методических комплекс, поэтому мы просто
перечислим их и определим сферу применения в автоматизированных и
информационных системах.
Мы можем привести здесь классификацию алгоритмов шифрования,
показанную на рисунке ниже.
Проведем краткий анализ этих алгоритмов и определим их место
применения для защиты данных в автоматизированных и информационных
системах (рис. 25).
Рис. 25. Классификация алгоритмов шифрования

6.3. Криптографические алгоритмы без ключей
169
На самом деле их созданы десятки, если не сотни, поэтому мы при-
ведем здесь информацию о тех немногих шифрах, кто хоть как-то связан с
темой данного учебного пособия.
6.3. Криптографические алгоритмы без ключей
md2/4/5/6
MD2 ‒ криптографическая хеш-функция, разработанная Рональдом
Ривестом в 1989 г., и описанная в RFC 1319. На входе сообщение произвольный длины. Размер хеша – 128 бит. Алгоритм MD5 является развитием
предыдущих версий и представляет собой тоже 128-битный алгоритм хеширования, но предназначен для создания «отпечатков» или дайджестов
сообщения произвольной длины и последующей проверки их подлинности.
Широко применялся для проверки целостности информации и хранения хешей паролей.
Tiger
Криптографическая хеш-функция, разработанная Росом Андерсоном и Эли Бихамом в 1995 г. Tiger был предназначен для особенно быстрого выполнения на 64-разрядных компьютерах. Tiger не имеет патентных
ограничений, может использоваться свободно как с эталонной реализацией, так и с её модификациями. Размер значения хеша ‒ 192 бита, имеет
версии, совместимые с SHA-1 (Tiger/160) и с MD4, MD5, RIPEMD, Snefru
(Tiger/128).
Sha-1/2/3
Алгоритм криптографического хеширования. Описан в RFC 3174.
Для входного сообщения произвольной длины (максимум 22^64-1 бит, что
примерно равно 2 эксабайта) алгоритм генерирует 160-битное хеш-значение, называемое также дайджестом сообщения. Используется во многих
криптографических приложениях и протоколах. SHA-3 – это алгоритм хеширования переменной разрядности, более известный как Keccak.
Haval
Криптографическая хеш-функция, разработанная Yuliang Zheng,
Josef Pieprzyk и Jennifer Seberry в 1992 г. Для произвольного входного сообщения функция генерирует хеш-значение, называемое дайджестом

Глава 6. Шифрование данных
170
сообщения, которое может иметь длину 128, 160, 192, 224 или 256 бит. Количество итераций ‒ переменное, от 3 до 5. Количество раундов на каждой
итерации ‒ 32. Является модификацией MD5.
6.4. Криптографические алгоритмы с одним ключом
DES
Алгоритм для симметричного шифрования, разработанный фирмой
IBM и утверждённый правительством США в 1977 г. как официальный
стандарт (FIPS 46-3). Размер блока для DES равен 64 бита. В основе алгоритма лежит сеть Фейстеля с 16-ю циклами (раундами) и ключом, имеющим длину 56 бит.
Алгоритм использует комбинацию нелинейных (S-блоки) и линей-
ных (перестановки E, IP, IP-1) преобразований.
Rijndael
Также известен как Advanced Encryption Standart – симметричный
алгоритм блочного шифрования. Размер одного блока. 128 бит, ключи
128/192/256, принят стандартом правительством США по результатам конкурса AES.
Пришел на смену алгоритму DES. Спецификация была опублико-
вана 26 ноября 2001 г., а 26 мая 2002 г. был объявлен стандартом шифрования. По состоянию на 2009 г. является одним из самых распространенных
алгоритмов симметричного шифрования.
Интересный факт, 128 ключ обеспечивает 340 андециллионов (или
ундециллионов) возможных комбинаций, т.е. .
MMB-шифр
От англ. modular multiplication-based block cipher ‒ модульный блоч-
ный шифр, использующий умножение) ‒ блочный алгоритм шифрования,
основанный на операции умножения в конечной группе. Представляет собой блочный шифр, разработанный Йоан Дайменом в 1993 г. как улучшение шифра IDEA. Основная цель, которая преследовалась при создании
этого шифра – создать шифр, устойчивый к дифференциальному криптоанализу.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
