Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методы и средства передачи данных в автоматизированных системах. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
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. Основная цель, которая преследовалась при создании этого шифра – создать шифр, устойчивый к дифференциальному крипто­анализу.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]