Криптографические алгоритмы защиты информации: попытка анализа
Справка БТ:
Гамма шифра - псевдослучайная двоичная последовательность, вырабатываемая по заданному алгоритму для зашифровывания открытых данных и расшифровывания зашифрованных данных.
Дешифрование - процесс преобразования закрытых данных в открытые при неизвестных ключе и алгоритме.
Зашифровывание - преобразование по криптографическому алгоритму открытого текста или данных к виду, не позволяющему осуществить несанкционированное ознакомление с ними без знания секретной переменной алгоритма - криптографического ключа.
Криптостойкость - характеристика шифра, определяющая его стойкость к дешифрованию.
Расшифровывание - преобразование по криптографическому алгоритму зашифрованного текста в открытый с использованием известного криптографического ключа.
Шифрование - процесс зашифровывания или расшифровывания.
Проблема защиты информации все больше привлекает внимание специалистов, связанных с информационными технологиями. Проблема эта многогранна и решается комплексно, с использованием множества мер и способов. Поэтому здесь мы хотели бы остановиться только на одном подходе, который в последнее время особенно на слуху в связи с тем, что он быстро развивается и позволяет достичь наивысшего уровня защищенности информации. Речь идет о криптографической защите. В настоящей статье мы не ставим цель глубоко проанализировать данный вопрос. Основная наша задача - дать обзор существующих алгоритмов криптографической защиты информации и помочь потенциальным разработчикам и пользователям информационных систем в выборе правильного решения.
Немного теории
Как известно, одним из ключевых вопросов обеспечения безопасности информации, хранимой и обрабатываемой в информационных системах, а также передаваемой по линиям связи (для простоты далее по тексту будем говорить просто об информации), является защита ее от несанкционированного доступа. Для защиты информации применяются различные меры и способы, начиная с организационно-режимных и кончая применением сложных программно-аппаратных комплексов.
Одним из путей решения проблемы защиты информации, а точнее - решения небольшой части вопросов из всего спектра мер защиты, является криптографическое преобразование информации, или шифрование.
В случае применения шифрования легальный пользователь получает доступ к закрытым данным только путем их расшифровывания. Получение доступа к зашифрованным данным полностью теряет смысл, если алгоритм и способы осуществления шифрования неизвестны.
Надежность различных алгоритмов шифрования может существенно разниться, различается и степень надежности систем криптографической защиты, построенных на основе этих алгоритмов. Их работа определяется специальным уникальным числом или последовательностью битов, которую называют ключом шифрования. При этом в серьезных системах криптографической защиты информации предусматривается специальная ключевая служба, которая должна гарантировать надежность создания, передачи, смены и физического распределения ключей.
Любая криптографическая система шифрования надежна лишь настолько, насколько полно она отвечает следующим требованиям:
невозможность ее раскрытия даже при известном тексте, а в случае раскрытия сообщения - гарантия безопасности сообщений, которые были переданы ранее, и тех, которые будут переданы в дальнейшем;
достаточно большое число вариантов шифрования, не позволяющее раскрыть истинное содержание информации даже с использованием современных вычислительных средств;
высокая сложность шифра, не позволяющая раскрыть его с применением различных математических методов;
гарантированная надежность хранения ключа и алгоритма шифрования, а также самих шифровальных устройств.
Однако использование систем криптографической защиты, построенных на основе стойких алгоритмов, само по себе еще не гарантирует надежной защиты. Наряду с разработкой и использованием таких алгоритмов необходимо использование надежных протоколов (правил), регламентирующих использование этих алгоритмов и способных обеспечить заданную криптостойкость.
Основные криптографические алгоритмы
Современная криптография знает два типа криптографических алгоритмов: классические алгоритмы, основанные на использовании закрытых, секретных ключей, и новые алгоритмы с открытым ключом, в которых используются один открытый и один закрытый ключ (эти алгоритмы называются также асимметричными). Кроме того, существует возможность шифрования информации и более простым способом - с использованием генератора псевдослучайных чисел.
Использование генератора псевдослучайных чисел
Самый простой способ зашифровывания заключается в генерации гаммы шифра с помощью генератора псевдослучайных чисел при определенном ключе и наложении полученной гаммы на открытые данные обратимым способом.
Стойкость шифрования с помощью генератора псевдослучайных чисел зависит как от характеристик генератора, так и - причем в большей степени - от алгоритма получения гаммы.
Этот метод криптографической защиты реализуется достаточно легко и обеспечивает довольно высокую скорость шифрования, однако недостаточно стоек к дешифрованию и поэтому неприменим для таких серьезных информационных систем, каковыми являются банковские системы.
Классические алгоритмы шифрования
Для классической криптографии характерно использование одной секретной единицы - ключа, который позволяет отправителю зашифровать сообщение, а получателю расшифровать его. В случае шифрования данных, хранимых на магнитных или иных носителях информации, ключ позволяет зашифровать информацию при записи на носитель и расшифровать при чтении с него.
На сегодня реализовано довольно много различных алгоритмов криптографической защиты информации. Среди них можно назвать алгоритмы DES, Rainbow (США); FEAL-4 и FEAL-8 (Япония); B-Crypt (Великобритания); алгоритм шифрования по ГОСТ (Россия) и ряд других, реализованных зарубежными и отечественными поставщиками программных и аппаратных средств защиты. Рассмотрим основные из них, наиболее широко применяемые в зарубежной и отечественной практике.
Шифрование по стандарту DES
Алгоритм, изложенный в стандарте DES (Data Encryption Standard), наиболее распространен и широко применяется для шифрования данных в США. Этот алгоритм был разработан фирмой IBM для собственных целей. Однако после проверки Агентством Национальной Безопасности (АНБ) США он был рекомендован к применению в качестве федерального стандарта шифрования. Этот стандарт используется многими негосударственными финансовыми институтами, в том числе банками и службами обращения денег. Лишь некоторые данные, методы защиты которых определяются специальными актами, не защищаются стандартом DES.
Алгоритм DES не является закрытым и был опубликован для широкого ознакомления, что позволяет пользователям свободно применять его для своих целей.
При шифровании применяется 64-разрядный ключ. Для шифрования используются только 56 разрядов ключа, а остальные восемь разрядов являются контрольными.
Алгоритм DES достаточно надежен. Он обладает большой гибкостью при реализации различных приложений обработки данных, так как каждый блок данных шифруется независимо от других. Это позволяет расшифровывать отдельные блоки зашифрованных сообщений или структуры данных, а следовательно, открывает возможность независимой передачи блоков данных или произвольного доступа к зашифрованным данным. Алгоритм может реализовываться как программным, так и аппаратным способами. Существенный недостаток этого алгоритма - малая длина ключа.
Российский стандарт шифрования данных ГОСТ
Алгоритм шифрования, определяемый российским стандартом ГОСТ , является единым алгоритмом криптографической защиты данных для крупных информационных систем, локальных вычислительных сетей и автономных компьютеров.
Этот алгоритм может реализовываться как аппаратным, так и программным способами, удовлетворяет всем криптографическим требованиям, сложившимся в мировой практике, и, как следствие, позволяет осуществлять криптографическую защиту любой информации, независимо от степени ее секретности.
В алгоритме ГОСТ , в отличие от алгоритма DES, используется 256-разрядный ключ, представляемый в виде восьми 32-разрядных чисел. Расшифровываются данные с помощью того же ключа, посредством которого они были зашифрованы.
Алгоритм ГОСТ полностью удовлетворяет всем требованиям криптографии и обладает теми же достоинствами, что и другие алгоритмы (например DES), но лишен их недостатков. Он позволяет обнаруживать как случайные, так и умышленные модификации зашифрованной информации. Крупный недостаток этого алгоритма - большая сложность его программной реализации и очень низкая скорость работы.
Асимметричные криптосхемы
Наиболее перспективными системами криптографической защиты данных сегодня считаются асимметричные криптосистемы, называемые также системами с открытым ключом. Их суть состоит в том, что ключ, используемый для зашифровывания, отличен от ключа расшифровывания. При этом ключ зашифровывания не секретен и может быть известен всем пользователям системы. Однако расшифровывание с помощью известного ключа зашифровывания невозможно. Для расшифровывания используется специальный, секретный ключ. При этом знание открытого ключа не позволяет определить ключ секретный. Таким образом, расшифровать сообщение может только его получатель, владеющий этим секретным ключом.
Суть криптографических систем с открытым ключом сводится к тому, что в них используются так называемые необратимые функции (иногда их называют односторонними или однонаправленными), которые характеризуются следующим свойством: для данного исходного значения с помощью некоторой известной функции довольно легко вычислить результат, но рассчитать по этому результату исходное значение чрезвычайно сложно.
Известно несколько криптосистем с открытым ключом, например схема Т. Эль-Гамаля (T. El Gamal), в которой используется идея криптосистемы, предложенная У. Диффи (W. Diffie) и (M. E. Hellman), криптосистема RSA и др. Наиболее разработана на сегодня система RSA, предложенная еще в 1978 г. Алгоритм RSA назван по первым буквам фамилий его авторов: (R. L. Rivest), А. Шамира (A. Shamir) и Л. Адлемана (L. Adleman). RSA - это система коллективного пользования, в которой каждый из пользователей имеет свои ключи зашифровывания и расшифровывания данных, причем секретен только ключ расшифровывания.
Специалисты считают, что системы с открытым ключом больше подходят для шифрования передаваемых данных, чем для защиты данных, хранимых на носителях информации. Существует еще одна область применения этого алгоритма - цифровые подписи, подтверждающие подлинность передаваемых документов и сообщений. О них мы поговорим ниже.
Асимметричные криптосистемы наиболее перспективны, так как в них не используется передача ключей другим пользователям и они легко реализуются как аппаратным, так и программным способами. Однако системы типа RSA работают приблизительно в тысячу раз медленнее, чем классические, и требуют длины ключа порядка бит. Поэтому все их достоинства сводятся на нет чрезвычайно низкой скоростью их работы. Кроме того, для ряда функций уже найдены алгоритмы инвертирования, т. е. доказано, что они не являются необратимыми. Для функций, используемых в системе RSA, такие алгоритмы не найдены, но нет и строгого доказательства необратимости используемых функций.
Немного о цифровой подписи
В последнее время в связи с переходом на безбумажную технологию в системах передачи и обработки информации все чаще возникает вопрос о замене рукописной подписи, подтверждающей подлинность того или иного документа, ее электронным аналогом - электронной цифровой подписью (ЭЦП). Ею могут скрепляться всевозможные электронные документы, начиная с различных сообщений и кончая контрактами. ЭЦП может применяться также для контроля доступа к особо важной информации.
К ЭЦП предъявляются два основных требования:
высокая сложность фальсификации;
легкость проверки.
Для реализации ЭЦП можно использовать как классические криптографические алгоритмы, так и асимметричные, причем именно последние обладают всеми свойствами, необходимыми для ЭЦП.
Однако в отношении ЭЦП не все так гладко, как может показаться на первый взгляд. Дело в том, что ЭЦП чрезвычайно подвержена действию "троянских коней" - обобщенного класса программ с преднамеренно заложенными в них потенциально опасными последствиями, активизирующимися при определенных условиях. Например, в момент считывания файла, в котором находится подготовленный к подписи документ, эти программы могут изменить имя подписывающего лица, дату, какие-либо данные (например сумму в платежных документах) и т. п.
Практика использования систем автоматизированного финансового документооборота показала, что программная реализация ЭЦП наиболее подвержена действию "троянских" программ, позволяющих проводить заведомо ложные финансовые документы, а также вмешиваться в порядок разрешения споров по факту применения ЭЦП. Поэтому при выборе системы ЭЦП предпочтение безусловно должно быть отдано ее аппаратной реализации, обеспечивающей надежную защиту информации от несанкционированного доступа, выработку криптографических ключей и ЭЦП.
Подробное описание принципов организации системы цифровой подписи выходит за рамки данной статьи. Отметим лишь, что Центральным Банком РФ был разработан свой вариант стандарта на алгоритм ЭЦП и что в настоящее время в России действуют два стандарта, относящихся к ЭЦП: ГОСТ Р 34.10-94 и ГОСТ Р 34.11-94.
Заключение
Из всего изложенного следует, что надежная криптографическая система должна удовлетворять таким требованиям:
процедуры зашифровывания и расшифровывания должны быть "прозрачны" для пользователя;
дешифрование закрытой информации должно быть максимально затруднено;
содержание передаваемой информации не должно сказываться на эффективности криптографического алгоритма;
надежность криптозащиты не должна зависеть от содержания в секрете самого алгоритма шифрования (примерами этого являются как алгоритм DES, так и алгоритм ГОСТ ).
Необходимо отметить также следующий момент. На сегодня сложилось мнение, что создать криптографический алгоритм легко, и такие алгоритмы реализуются многими независимыми программистами и фирмами. Однако реально оценить стойкость этих алгоритмов нельзя, поскольку большинство их создателей не желает их раскрывать, ссылаясь на коммерческую тайну, а это не дает возможности провести криптоанализ таких алгоритмов. Не стоит рассчитывать, что стойкость этих алгоритмов выше, чем у тех, которые были опубликованы. Мнение специалистов, в том числе и зарубежных, по данному вопросу однозначно: надежнее иметь дело с создателями, не имеющими от пользователей никаких секретов и стремящимися донести до них все сведения о том, как работает их алгоритм и какие средства используются при его программно-технической реализации, чем с теми, кто по каким-то причинам скрывают эту информацию.
http://users. /~batmanb/box/1/78.shtml
Классификация криптоалгоритмов (Andrey Belyaev)
Сама криптография не является высшей ступенью классификации смежных с ней дисциплин. Наоборот, криптография совместно с криптоанализом (целью которого является противостояние методам криптографии) составляют комплексную науку – криптологию.
Необходимо отметить, что в русскоязычных текстах по данному предмету встречаются различные употребления основных терминов, таких как "криптография", "тайнопись" и некоторых других. Более того, и по классификации криптоалгоритмов можно встретить различные мнения. В связи с этим автор не претендует на то, что его вариант использования подобных терминов является единственно верным.
В отношении криптоалгоритмов существует несколько схем классификации, каждая из которых основана на группе характерных признаков. Таким образом, один и тот же алгоритм "проходит" сразу по нескольким схемам, оказываясь в каждой из них в какой-либо из подгрупп.
Основной схемой классификации всех криптоалгоритмов является следующая:
Тайнопись.
Отправитель и получатель производят над сообщением преобразования, известные только им двоим. Сторонним лицам неизвестен сам алгоритм шифрования. Некоторые специалисты считают, что тайнопись не является криптографией вообще, и автор находит это совершенно справедливым.
Криптография с ключом.
Алгоритм воздействия на передаваемые данные известен всем сторонним лицам, но он зависит от некоторого параметра – "ключа", которым обладают только отправитель и получатель.
Симметричные криптоалгоритмы.
Для зашифровки и расшифровки сообщения используется один и тот же блок информации (ключ).
Асимметричные криптоалгоритмы.
Алгоритм таков, что для зашифровки сообщения используется один ("открытый") ключ, известный всем желающим, а для расшифровки – другой ("закрытый"), существующий только у получателя.
Весь дальнейший материал будет посвящен криптографии с ключом, так как большинство специалистов именно по отношению к этим криптоалгоритмам используют термин криптография, что вполне оправдано. Так, например, любой криптоалгоритм с ключом можно превратить в тайнопись, просто "зашив" в исходном коде программы некоторый фиксированный ключ. Обратное же преобразование практически невозможно.
В зависимости от характера воздействий, производимых над данными, алгоритмы подразделяются на:
Перестановочные
Блоки информации (байты, биты, более крупные единицы) не изменяются сами по себе, но изменяется их порядок следования, что делает информацию недоступной стороннему наблюдателю.
Подстановочные
Сами блоки информации изменяются по законам криптоалгоритма. Подавляющее большинство современных алгоритмов принадлежит этой группе.
Заметьте: любые криптографические преобразования не увеличивают объем информации, а лишь изменяют ее представление. Поэтому, если программа шифрования значительно (более, чем на длину заголовка) увеличивает объем выходного файла, то в ее основе лежит неоптимальный, а возможно и вообще некорректный криптоалгоритм. Уменьшение объема закодированного файла возможно только при наличии встроенного алгоритма архивации в криптосистеме и при условии сжимаемости информации (так, например, архивы, музыкальные файлы формата MP3, видеоизображения формата JPEG сжиматься более чем на 2-4% не будут).
В зависимости от размера блока информации криптоалгоритмы делятся на:
Потоковые шифры.
Единицей кодирования является один бит. Результат кодирования не зависит от прошедшего ранее входного потока. Схема применяется в системах передачи потоков информации, то есть в тех случаях, когда передача информации начинается и заканчивается в произвольные моменты времени и может случайно прерываться. Наиболее распространенными предствателями поточных шифров являются скремблеры.
Блочные шифры
Единицей кодирования является блок из нескольких байтов (в настоящее время 4-32). Результат кодирования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов.
http://users. /~batmanb/box/1/51.shtml
5. Криптография как средство защиты
Всемирная кампания за свободу криптографии
Коалиция правозащитных организаций планеты, занимающихся гражданскими свободами в Internet, призвала к снятию всех ограничений на экспорт криптографических средств, практикуемых правительствами разных стран. Участники кампании разослали заявление в 33 страны, подписавшие Вассенарское соглашение (о контроле за продажей вооружений и технологий двойного назначения). Это заявление призывает к исключению из Соглашения криптографических средств.
Многие правительства расценивают криптографию как один из видов оружия, считая, что свободный доступ к криптографическим средствам оказывает помощь террористам и преступникам. Участники глобальной кампании GILC имеют диаметрально противоположное мнение - подобные ограничения способствуют уязвимости информационной структуры, от которой все больше зависит общество, следовательно, ограничения на криптографию порождают среду для преступности и терроризма.
В Вассенарском соглашении декларируется, что оно не мешает транзакциям добропорядочных граждан. Правозащитники утверждают, что, ограничивая свободную торговлю программами с криптографией, правительства сдерживают развитие электронной коммерции и безопасных коммуникаций. Источник: InfoArt News Agency
Криптохамелеон
Компании Hewlett-Packard и Wave Systems объявили о создании чипа для защиты информации, который позволяет регулировать уровень сложности используемых средств криптографии. Чип получил название Embassy (Embedded Application Security System - встроенная система защиты приложений), устанавливается на материнской плате непосредственно ее производителем и обеспечивает защиту электронной коммерции, деловой переписки и т. п. Будучи программируемым устройством, Embassy может быть настроен на стандарты шифрования, принятые в разных странах, и работает с большинством популярных современных криптосхем. А. Агамов, *****@***ru
Крипто-диск
Компания "ЭЛиПС" объявила о выпуске продукта под названием "Крипто-диск", предназначенного для защиты данных, хранящихся на жестком диске, по ГОСТ , регламентирующему криптоалгоритмы. Аппаратный модуль, монтируемый на корпусе винчестера, "на лету" шифрует и дешифрует трафик шины IDE. Все программное обеспечение хранится в ПЗУ "Крипто-диска", и для работы с "чудо-диском" не требуется никаких дополнительных драйверов. Благодаря аппаратному шифрованию на уровне IDE-интерфейса устройство работает под управлением любой операционной системы и не требует от пользователя особой квалификации.
Зашифрованный винчестер может использоваться наряду с обычными жесткими дисками. В "Крипто-диске" реализован аппаратный ускоритель специальных функций, выполненный на программируемых матрицах Xilinx, благодаря которому при обращении к диску практически не возникает задержки. В качестве идентификатора, то есть основного элемента системы защиты, в системе "Крипто-диск" выступает цифровой ключ, хранимый на антиударной, водонепроницаемой "таблетке" Touch Memory. Ключ вводится непосредственно в устройство через специальное гнездо. Уполномоченный пользователь при изготовлении ключей имеет возможность сгенерировать необходимое число копий, раздать их доверенным лицам или просто запереть в сейфе на случай утери оригинала. На случай хищения злоумышленником каждый 256-битный ключ защищен паролем. Пароль вводится в устройство до загрузки операционной системы, поэтому возможность просмотра его программой-сканером исключается.
Установив диск, пользователь генерирует ключ и защищает его паролем. Далее необходимо разбить диск на логические разделы и отформатировать. Эти операции необходимо проделать при загруженном ключе, так как шифрованию подвергается вся информация, попадающая в регистр данных диска. При последующих включениях достаточно прикоснуться к считывателю таблеткой, ввести пароль - и операционная система будет считать, что она имеет дело с обычным IDE-диском. В случае отказа платы шифратора информацию с жесткого диска можно восстановить, подключив диск напрямую к IDE-контроллеру и воспользовавшись ключевой дискетой и специально разработанной низкоуровневой утилитой. С. Баричев, *****@***ru


