В. Столлингс - Операционные системы (1114679), страница 158
Текст из файла (страница 158)
ШиФрование е открытым ключом Шифрование с открытым ключом, предложенное в 1976 году Дифф (ВИйе) и Хеллманом (Не11тап), является первым воистину революционны достижением в шифровании на протяжении нескольких тысяч лет. Напри мер, в основе алгоритмов с открытым ключом лежат не простые операции битами, а математические функции. Еще важнее то, что криптография с от крытым ключом является асимметричной и в ней используются два о е, ных ключа, а не один, как в симметричном стандартном шифровании.
И, пользование двух ключей приводит к глубоким последствиям, имеющим о ношение к конфиденциальности, распределению ключей и аутентификации, Перед тем как продолжить, следует упомянуть несколько распростр, венных неправильных представлений о шифровании с открытым ключоь Одно из них заключается в том, что шифрование с открытым ключом явл~ ется более надежным по отношению к криптоанализу„чем стандартное ши1 рование.
Фактически безопасность любой схемы шифрования зависит с длины ключа и вычислительных мощностей, участвующих во взломе шифр. В принципе нет никакой причины, по которой тот или другой вид шифров, ния мог бы считаться более устойчивым к криптоанализу. Второе заблужд< ние заключается в том, что в связи с универсальностью шифрования с о.. крытым ключом стандартное шифрование устарело. Напротив, из-за накла~ ных вычислительных расходов, которыми сопровождаются современны схемы шифрования с открытым ключом, в ближайшем будущем не предо дится снижения роли стандартного шифрования.
Наконец, создается ложнс впечатление, что при использовании шифрования с открытым ключом рщ пределение ключей является тривиальным по сравнению с довольно грс моздким процессом подтверждения установления связи, использующимся центрах распространения ключей для стандартного шифрования.
В схеме шифрования с открытым ключом имеется шесть составляющи (рис. 15.14). э Открытый текст (р1а)п$ех$). Это сообщение или данные, которые подаютс на вход алгоритма шифрования. е Алгоритм шифрования (епсгурИоп а1аогй)пп). Алгоритм шифрования вь полняет различные преобразования открытого текста. ° Открытый и закрытый ключ (рпЫ1с апй рг(чаФе Йеу). Это пара ключей, ш добранных таким образом, что если один из них используется для шифре вания, то второй используется для дешифровки. То, какие преобразовани выполняет алгоритм шифрования, зависит от поступающего на его вход о~ крытого или закрытого ключа.
Зашифрованный текст (с1рЬегйех1). Это зашифрованное сообщение, кс торое получается на выходе. Каким оно получится — зависит от откры того текста и ключа. Из одного и того же первоначального сообщения зашифрованного с помощью разных ключей, получаются два различны зашифрованных текста. Алгоритм дешифровки (оесгур$1оп а1догй)оп). На вход этого алгоритма пс дается зашифрованный текст и соответствующий ключ, а в результате ег выполнения получается первоначальный открытый текст. Процесс работает (производит на выходе правильный открытый текст независимо от порядка, в котором применяется пара ключей. Как можно до гадаться по названию ключей, открытый ключ предоставляется другим дл открытого пользования, в то время как закрытый ключ известен только ег владельцу.
'Часть 7. Безопасность 1 лава 15. Безопасность тый Алисы Расшифрованный Алгойитм Дешифровки текст (обратный алгоритму кодирования( Незашифрованный Алгоритм шифровании (например, ВЗА( Передача зашифрованного текст Расшифрованный АлгоРитм ДешифРовки текст (обратный алгоритму кодировании( Неаашифроаанный текст АлгоРитм шифРованив (например, йоА( ' 15 Безопаеносгь б( Подпись Рис. 15.14. Шифрование с открытым ключам Пусть, например, Боб хочет отправить Алисе частное сообщение.
Предпо ложим, что у него есть открытый ключ Алисы и что у Алисы есть соответс вующий закрытый ключ (рис. 15.14,и). С помощью открытого ключа Алисы кодирует сообщение, которое он в зашифрованном виде пересылает Алисе. П . лучив это зашифрованное сообщение, Алиса дешифрует его с помощью сво закрытого ключа. Никто, кроме Алисы, не сможет зто сделать, так как только нее есть копия закрытого ключа. Как видно на рис. 15.14,б, шифрование с открытым ключом можно испол . зовать и по-другому. Предположим, что Боб хочет отправить сообщение Алисе, не так важно, чтобы сообщение хранилось в секрете, он хочет, чтобы Ал мяевалась, что сообщение пришло действительно от него.
В этом случае Б 1 руст сообщение с помощью своего закрытого ключа. Когда Алиса пол~ ци,т -. ифрозанный текст, она обнаружит, что может его расшифровать с помощьк ттого ключа Боба. Это послужит для нее доказательством, что сообщение б тло зашифровано Бобом, потому что больше ни у кого нет его закрытого ключа , никто другой не смог бы создать зашифрованный текст, который расшифровы. доя бы с помощью открытого ключа Боба. универсальный криптографический алгоритм с открытым ключом основан на паре ключей, Одитт из них применяется для шифрования, а другой, который отличается от первого (хотя и связан с ним), применяется для дешифровки.
Кроме того, и добные алгоритмы обладают следующими важными характеристиками. е Если известен алгоритм шифрования и ключ, применяющийся для шифро вания, то раскрытие ключа для дешифровки требует неоправданно высоких затрат вычислительных ресурсов. и Для шифрования может быть использован один из пары подходящих друг к другу ключей. При этом для дешифровки применяется другой ключ из этой пары. В процессе работы выполняются такие основные шаги. 1. Каждый пользователь создает пару ключей, которые предназначены для шифрования и дешифровки сообщений. 2. Каждый пользователь помещает один из двух ключей в открытый реестр или другие открытые для других Файлы. Этот ключ является открытым.
Дополняющий ключ хранится в секрете, Как видно из рис. 15.14,а, каждый пользователь поддерживает коллекцию открытых ключей, полученных от других пользователей. 3. Если Бобу нужно отправить Алисе частное сообщение, он шифрует это сообщение с помощью открытого ключа Алисы.
4. Получив сообщение, Алиса дешифрует его с помощью своего закрытого ключа. Никто другой из получателей не может расшифровать это сообщение, потому что тольио Алиса знает свой закрытый ключ. При таком подходе все участники имеют доступ к открытым ключам, а закрытые ключи генерируются каждым из них отдельно, и поэтому их Распространять нельзя. до тех пор, пока пользователь защищает свой ключ от других. его в ходятцие сообщения — в безопасности. Пользователь в лтобой момент времени может поменять свой закрытый ключ и опубликовать соответствующий ему открытый ключ, заменив им старый открытый ключ. Ключ, который применяется в стандартном шифровании, обычно называется ется секретным ключом (эесге1 (сеу). два ключа, использующиеся при шить Фровании с открытым ключом, называются открытым ключом (рцЫ1с (сеу) и У) и закрытым ключом (рг(ча1е Йеу).
Закрытый ключ должен неизменно хранить Р ниться в секрете, но он называется не секретным, а закрытым ключом, чтобы е ьт его не путали с секретным ключом, применяющимся в стандартном шифровании. Алгоритм Риаеста-Шамира-Адлемана (рлъ еаза-Яипиг-А61етпап — КЯА) Одна из первых схем шифрования с открытым ключом была разработана в 77 году сотрудниками Массачусетского технологического института Роном Рнтом ~йоп Вюеа1), Ади Шамиром (АЖ ЗЬаппг) и Леном Адлеманом (реп А61е,и). О тех пор схема ЙЯА доминирует и является единственным широко при~иным и применяющимся подходом к шифрованию с открытым ключом. Ал~итм ВЯА представляет собой шифр, в котором и открытый и зашифрованный ~ст представлен целыми числами в интервале от О до и - 1 с Фиксированным При шифровании применяются арифметические операции над абсолютными ачениями чисел. Надежность алгоритма основана ыа сложности разложения сел на простые множители.
ПРИЛОЖЕНИЕ Протокол ТСР/1 Р А.1. Необходимость архитектуры протоколов А.2. Архитектура протоколов ТСР/1Р Уровни протокола ТСР/1Р ПРотокол ТСР/1Р Приложение А начале этого приложения вводится понятие многоуровневой архитектуры про- 1 токолов. Затем исследуется самая важная архитектура такого типа — набор 1 протоколов ТСР/1Р. Протоколы ТСР/1Р— это основная концепция в 1пгегпе1, рэл служит каркасом для разработки всевозможных стандартон, предназначендля обмена информацией между компьютерами.