Общая характеристика современных стандартов
Шифрования
Алгоритмов шифрования существует великое множество, мы рассмотрим лишь самые популярные из них, получившие статус стандартов. Это DES (Data Encryption Standard), RSA (алгоритм Rivest-Shamir-Adleman), PGP, наш отечественный ГОСТ 28147-89 (который в иностранной литературе чаще называется просто GOST) и другие. Причем современные шифры ‑ это не только собственно алгоритмы шифрования, а криптографические системы, где определены также возможные типы и параметры ключей, способы организации работы с ключами и зашифрованными сообщениями, правила определения подлинности и целостности сообщений и т.п. Основа каждого стандарта ‑ определенные математические построения, знать которые не обязательно. Гораздо важнее знать особенности и область применения того или иного стандарта.
В основе любой криптографической системы лежат алгоритм шифрования, протокол взаимодействия участвующих сторон и процедура управления ключами.
Протокол ‑ это последовательность шагов, которые предпринимают стороны для совместного решения задачи. Все шаги следуют в порядке строгой очередности, и ни один из них не может быть сделан прежде, чем закончится предыдущий. Кроме того, любой протокол подразумевает участие, по крайней мере, двух сторон. В одиночку можно, например, смешать и выпить коктейль, но к протоколу это не имеет никакого отношения. Поэтому придется угостить кого-нибудь сделанным коктейлем, чтобы его приготовление и дегустация стали настоящим протоколом. И наконец, протокол обязательно предназначен для достижения какой-то цели.
Протоколы имеют и другие отличительные черты:
· каждый участник протокола должен быть заранее оповещен о шагах, которые ему предстоит предпринять;
· все участники протокола должны следовать его правилам добровольно, без принуждения;
· необходимо, чтобы протокол допускал только однозначное толкование, а его шаги были совершенно четко определены и не допускали возможности их неправильного понимания;
· протокол должен содержать описание реакции его участников на любые ситуации, возникающие в ходе реализации этого протокола, иными словами, недопустимым является положение, когда для возникшей ситуации протоколом не определено соответствующее действие.
Криптографическим протоколом называется такой, в основе которого лежит набор правил и процедур, определяющих использование криптоалгоритма и ключей шифрования. Однако целью криптографического протокола зачастую является не только сохранение информации в тайне от посторонних. Участники криптографического протокола могут быть близкими друзьями, у которых нет друг от друга секретов, а могут являться настолько непримиримыми врагами, что каждый из них отказывается сообщить другому, какое сегодня число. Тем не менее, им может понадобиться поставить подписи под совместным договором или удостоверить свою личность. В данном случае нужна криптография, чтобы предотвратить или обнаружить подслушивание посторонними лицами, не являющимися участниками протокола, а также не допустить мошенничества. Поэтому часто требуется, чтобы криптографический протокол обеспечивал следующее: его участники могут сделать или узнать больше того, что определено протоколом.
Остановимся на рассмотрении характеристик стандартов шифрования, наиболее часто используемых в компьютерных системах.
Популярный алгоритм шифрования данных DES применяется правительством США как стандарт с 1977 года. Для шифрования алгоритм использует 64-битный ключ, блок данных из 64-и бит и 16-и проходов (циклов). Этот алгоритм достаточно быстр и эффективен. Однако в изначальном виде этот стандарт недостаточно криптоустойчив, т. к. прямые атаки с перебором ключей занимают, при сегодняшнем уровне технологий, разумный срок. Поэтому в настоящее время используются всевозможные его модификации, такие как 3-DES и каскадный 3-DES.
За счет внесения дополнительных изменений в алгоритм (таких, например, как введение дополнительных избыточных ключей или обратной связи) эти модификации стали гораздо более устойчивы к прямым атакам. Главным же недостатком этой системы является то, что она использует так называемые симметричные ключи: для шифрования и дешифрации сообщения используется один и тот же секретный ключ. Поэтому необходимым условием успешного использования этой системы является наличие секретного защищенного канала для передачи ключа. Если злоумышленник перехватит ключ для шифрования, то он легко может при помощи этого же ключа осуществить расшифровку секретного сообщения. Если же защищенный канал передачи существует, то вполне разумно тогда передать и само сообщение по этому же каналу, не прибегая к процедуре шифрования.
Государственный стандарт ГОСТ 28147-89 был утвержден в 1989 году как средство обеспечения безопасности, являющееся стандартом для государственных учреждений. Хотя он и не является основным криптосредством защищенных линий правительственной связи, однако это единственный более-менее открытый стандарт такого рода для исследования и использования самым широким кругом людей. Несмотря на то что в России ГОСТ играл ту же роль, что и DES в США, этот стандарт стал употребляться и в других странах. Например, алгоритм шифрования популярного архиватора ARJ построен как раз на использовании алгоритмов ГОСТ.
ГОСТ очень схож с DES. В нем так же используются 64-битные блоки. Тем не менее есть и ряд различий, например, в ГОСТ совершается 32 прохода вместо 16-и, ключ гораздо длиннее и состоит из 256 бит и т. д. В общем, среди специалистов принято считать, что он по своим характеристикам превосходит DES. Однако в настоящее время и его расшифровка лежит в пределах современных технологий. И точно так же ему присущи все недостатки алгоритмов, использующих симметричные ключи.
Сегодня популярен стандарт шифрования RSA. Во многом это произошло благодаря распространенности в Internet программы PGP (Pretty Good Privacy) Филиппа Зиммермана. RSA ‑ это алгоритм несимметричного шифрования, стойкость которого зависит от сложности факторизации больших целых чисел. В настоящее время алгоритм взлома RSA не разработан математически, а за счет использования очень длинных ключей и некоторой медленности всего алгоритма перебор за разумное время попросту невозможен.
В несимметричных алгоритмах используются два разных ключа: один известен всем, а другой держится в тайне. Обычно для шифрования и расшифровки используются оба ключа. Но данные, зашифрованные одним ключом, можно расшифровать только с помощью другого ключа. Это обстоятельство делает RSA очень удобным для использования в электронной переписке. Открытый ключ делается общедоступным (его попросту можно вставлять в реквизиты вашего письма). Каждый может зашифровать сообщение и послать его вам. А расшифровать сообщение, даже зная открытый ключ, невозможно. Для этого надо знать второй, закрытый ключ, который есть только у отправителя. Однако и здесь существуют свои трудности:
· в случае утраты секретного ключа придется уведомлять всех владельцев открытой половины о смене ключей;
· трудно убедиться в подлинности присланного вам открытого ключа.
Кроме того, отправителя легко подделать. Для того чтобы убедиться в подлинности ключа, порой используют целую «цепочку доверия», где каждый последующий передающий на 100% уверен в подлинности ключа (вследствие давнего знакомства, близости расположения к отправителю или в силу других причин), подтверждает эту подлинность своей подписью и пересылает ключ дальше.
Однако следует разделять собственно алгоритм RSA и другие продукты лаборатории RSA Data Security. Например, существует еще алгоритм RC5 – быстрый блочный шифр, который имеет размер блока 32, 64 или 128 бит, ключ длиной от 0 до 2048 бит, от 0 до 255 проходов.