Второе дыхание криптографии
Место криптографии в современных информационно-вычислительных системах
Защита данных во время их передачи
Защита данных во время хранения
Критерии оценки надежности шифра
Испокон веков людям приходится скрывать важную информацию от чужих любопытных глаз. На протяжении тысячелетий человечество изобретало изощренные методы тайнописи, и, надо признаться, преуспело в этом: многие хитроумные приспособления и машины долгие годы верой и правдой служили правителям и властям, купцам и промышленникам, обеспечивая им конфиденциальность переписки и архива.
XX веке электронно-вычислительные машины позволили криптографии перейти из области искусства в область науки. Желающие защитить свои секреты получили для этого такие возможности, о которых не смели прежде и мечтать, а в распоряжении злоумышленников оказались невероятно хитрые приспособления для проникновения в чужие тайны. Баланс на поле информационной войны сохранился, но само противостояние продолжилось уже на новом витке развития криптография обрела второе дыхание.
Место криптографии в современных информационно-вычислительных системах
уществует два основных способа защиты секретов. Во-первых, можно попытаться скрыть сам факт существования секрета: нет секрета нет и желающих его узнать. Основной прием, используемый для достижения этой цели, стеганография, то есть передача тайной информации под видом общедоступной. Прежде для этих целей использовались тексты (письма, книги, газетные статьи), определенные буквы или слова которых и составляли текст секретного послания. Теперь, в условиях всеобщей компьютеризации, наиболее распространенный стеганографический материал это графические, звуковые и другие мультимедийные данные, формат которых позволяет замещать наименее значимую часть исходной информации на любую произвольную (собственно, на тот самый секрет, который требуется спрятать). При этом главное правило формулируется так: все произведенные преобразования не должны быть заметны невооруженным глазом или ухом.
Второй способ основан на прямо противоположном принципе: мы ни от кого не скрываем, что передаем или храним важную секретную информацию и не предпринимаем никаких действий для предотвращения доступа к ней посторонних лиц, но информация при этом передается или хранится в таком виде, что понять ее истинный смысл могут только посвященные. Сделать это и позволяет криптография. Секретные данные шифруются с помощью определенного алгоритма, и, чтобы прочитать их, сначала потребуется их расшифровать. Избирательность доступа к информации обеспечивается тем, что шифрование и расшифровка производятся с использованием некой ключевой информации, которой обладают только те, кому разрешен доступ к секретным данным.
Приведем пример. В переполненной людьми комнате вы звоните по телефону своему другу и громко говорите: «Срочно продавай те акции, о которых мы говорили на прошлой неделе у меня в офисе». Ваше сообщение стало достоянием всех, кто находился с вами в комнате, а также тех, кому они смогут это рассказать, но подлинный смысл послания смогут понять лишь те, кто обладает ключевой информацией знанием того, об акциях какой именно компании шел разговор в вашем офисе, то есть только вы и ваш друг.
Конечно, это не совсем шифрование алгоритм преобразования слишком прост: замещение одной фразы на другую. В действительности существует великое множество хитроумных шифров, а современные вычислительные средства позволили применять в криптографии такие алгоритмы, которые прежде не использовались из-за большой трудоемкости необходимых вычислений.
Можно выделить две большие области применения криптографии: защита данных во время их передачи и защита данных во время их хранения. Каждая из них предъявляет к криптографии свои требования и обусловливает особенности реализации конкретных решений.
Защита данных во время их передачи
При защите передаваемой информации предполагается наличие передающей и принимающей сторон, а также некоего канала связи. При этом секретная информация шифруется на передающем узле и расшифровывается на принимающем, а злоумышленники, перехватывающие ее в канале связи, не имеют возможности произвести расшифровку, так как не обладают ключевой информацией (ключами). Проблема распределения ключей легальным абонентам является одним из самых уязвимых мест при шифровании данных с целью их передачи по каналам связи.
Все криптографические алгоритмы обычно разделяют на симметричные и асимметричные. Симметричные алгоритмы предполагают, что данные будут зашифровываться и расшифровываться на одних и тех же ключах, то есть и передающая, и принимающая стороны обладают одинаковой ключевой информацией. Доставить эту информацию абонентам нужно тайно, и сделать это можно двумя способами:
- ключи доставляются физически (в виде электронных ключей, пластиковых карточек, паролей, которые администратор сообщает лично, и т.п.);
- ключи передаются по каналу связи в зашифрованном виде (предполагается, что до этого абоненты уже располагали некой ключевой информацией).
Проблема распределения ключей усложняется тем, что для повышения стойкости шифрования необходимо как можно чаще производить их смену, а это делает расходы на физическую доставку чрезмерными и, следовательно, всю систему неэффективной с точки зрения соотношения «цена/качество». Поэтому на практике обычно используются комбинированные модели: абонентам физически доставляются долговременные ключи, с их помощью шифруются и передаются так называемые сеансовые ключи и уже на их основе шифруется секретная информация.
Асимметричные алгоритмы (алгоритмы с открытым ключом) появились сравнительно недавно и произвели настоящую революцию в криптографии. Такой алгоритм состоит из двух частей: ключа для шифрования и ключа для расшифровки; при этом, зная ключ шифрования, практически невозможно вычислить ключ расшифровки. Модель асимметричного шифрования выглядит следующим образом: абонент A генерирует пару ключей, делает ключ шифрования открытым (доступным всем желающим), а ключ расшифровки оставляет секретным. Абонент B, желая отправить сообщение абоненту A, шифрует его на открытом ключе абонента A и отправляет в канал связи. Абонент A, получив сообщение, расшифровывает его на своем секретном ключе. Главная опасность при использовании алгоритмов с открытым ключом состоит в возможности подмены злоумышленником легального открытого ключа, после чего он получает возможность читать перехваченные шифрованные сообщения. Для защиты от подобной атаки были разработаны специальные методы подтверждения истинности открытого ключа (сертификация).
Другим недостатком асимметричных шифров является их низкая производительность и высокие требования к вычислительным ресурсам, что при постоянно растущих скоростях передачи данных в современных компьютерных сетях становится критичным. Выходом из ситуации стало совместное использование традиционных симметричных и новых асимметричных криптосистем: данные шифруются симметричным алгоритмом, а ключи для шифрования закрываются асимметричным алгоритмом и высылаются партнеру по каналу связи в самом начале сеанса.
Отметим, что шифры классифицируют не только по принципу распределения ключей, но и по способу шифрования. Первый класс блочные алгоритмы. Они основываются на классических шифрах подстановки (символы или байты исходного текста по таблице подстановок заменяются другими) и перестановки (знаки исходного текста по таблице перестановок меняются местами), и применяют их к блокам данных фиксированного размера в определенной последовательности. Секретный ключ используется в блочных алгоритмах для получения таблиц подстановок и перестановок.
Второй класс шифров поточные. Они берут свое начало от шифра Шеннона, который является теоретически абсолютно стойким. Принцип его предельно прост: берется случайная равновероятная последовательность знаков того же алфавита, что и алфавит исходного сообщения, с длиной, которая равна длине шифруемого текста, и посимвольно прибавляется к нему по модулю длины алфавита. После этого шифрующая последовательность (гамма) должна быть уничтожена. На принимающем конце, имея такую же последовательность, расшифровывают сообщение и также уничтожают гамму. После этого дешифровать перехваченное сообщение аналитическими способами злоумышленник не в силах. Принципиальным моментом здесь является одноразовое использование шифропоследовательности. Гамма в этом шифре фактически является секретным ключом.
Повсеместному использованию шифра Шеннона препятствует высокая стоимость выработки достаточного количества знаков гаммы и доставки ее абонентам. Преодолеть эти препятствия и призваны поточные шифры. Длина ключа в них обычно фиксирована и значительно меньше длины исходного текста. Ключ используется как начальные данные для алгоритма, вырабатывающего псевдослучайную последовательность с очень большим периодом, и эта последовательность уже накладывается на исходный текст вышеописанным способом. Такие алгоритмы называют еще шифрами гаммирования.
Главное отличие поточных шифров от блочных состоит в том, что вырабатываемая ими гамма может посылаться в канал передачи данных непрерывно, не давая противнику возможности вычленить из такого потока содержательные сообщения, что также осложняет работу по взлому шифра. Кроме того, поточные шифры обычно значительно превосходят по скорости работы блочные алгоритмы, сопоставимые по стойкости.
Защита данных во время хранения
Защищать информацию, хранящуюся в архиве, не менее важно. Это связано с опасностью несанкционированного доступа злоумышленников к компьютерам или к внешним носителям информации.
В отличие от защиты передаваемых данных, при шифровании хранимой информации отпадает необходимость в распределении ключей: и шифрование, и расшифровку, как правило, производит одно и то же лицо. Именно по этой причине для криптографической защиты хранимой информации не используются медленные асимметричные алгоритмы.
Задачу криптографической защиты хранимых данных нужно рассматривать в двух различных ракурсах: закрытие полностью всей информации на компьютере и выборочное шифрование только особо ценной информации на жестких дисках или на внешних носителях. Первая задача отличается особыми требованиями, которые она предъявляет к криптосистемам с точки зрения скорости их работы: шифрование и расшифровка должны производиться на лету, то есть практически незаметно для пользователя компьютера.
Критерии оценки надежности шифра
акие же требования предъявляются сегодня к криптографическим алгоритмам? Надежность, устойчивость к попыткам взлома это главное, чего ждут от нового шифра. Однако все, что человек закрыл, человеком может быть и открыто. Таким образом, никто и никогда не даст стопроцентную гарантию, что ваша информация не попадет в чужие руки. Если даже для вскрытия шифра теоретически требуются миллионы лет, всегда остается вероятность, что его взломают за час.
Существует множество возможных стратегий атак на криптоалгоритмы, масса подходов к взлому шифров того или иного типа. Одни из них направлены на получение из шифрованной информации открытой, другие на вскрытие ключей шифрования для того, чтобы впоследствии просто расшифровывать с их помощью добытую информацию.
В криптографии принято считать, что злоумышленник (или криптоаналитик, как принято называть человека, изучающего возможность вскрытия шифра) может располагать всей информацией об алгоритме шифрования, устройстве специальной аппаратуры и иметь на руках шифрованный материал (криптограмму). Единственное, что ему не должно быть известно, это секретный ключ. В такой ситуации самым простым методом вскрытия шифра является полный последовательный перебор всех вариантов ключей, расшифровка на каждом из них имеющейся криптограммы и анализ полученных результатов. Это самая медленная, но и самая надежная из всех возможных атак, причем применима она практически ко всем традиционным алгоритмам шифрования. Защитить шифр от вскрытия методом тотального перебора можно лишь одним способом: довести количество возможных ключей до того предела, когда для проверки всех их потребуется затратить неприемлемо много времени. Если в качестве ключа шифрования используется трехзначное неотрицательное число, то существует 1000 возможных вариантов ключа, а если под ключ отводится 30 десятичных разрядов, то количество вариантов увеличивается до внушительного числа 1030. Современные вычислительные мощности вполне приспособлены для работы с такими числами.
Таким образом, длина секретного ключа является одним из важнейших критериев оценки надежности шифра. Помимо «силового» решения проблемы метода тотального перебора ключей, существует множество аналитических подходов к вскрытию криптографических алгоритмов, использующих заложенные в них слабости. Некоторые из этих подходов позволяют вообще избежать перебора вариантов ключей, большинство же просто сужают круг поиска истинной ключевой информации, и увеличение длины ключа также может защитить от подобных атак.
Обратной стороной медали является скорость шифрования: чем длиннее используемый ключ или чем сложнее применяемый алгоритм, тем выше требования к вычислительным ресурсам. Жертвовать временем всегда неприятно, а иногда, как в случае с шифрованием сквозного канала связи, просто невозможно. Отсюда проистекает второе требование к шифрам скорость работы.
И наконец, последнее условие, которому должен удовлетворять современный криптографический алгоритм, простота реализации как в программном, так и в аппаратном вариантах.
О стандартах
се технологии, применяемые в информационно-вычислительных системах, регулируются множеством стандартов и соглашений, выработанных компаниями, группами компаний или независимыми организациями. Не стала исключением и криптография.
Пожалуй, первым стандартизованным криптографическим алгоритмом стал DES национальный стандарт шифрования коммерческой информации в США, разработанный фирмой IBM и принятый еще в 1977 году. DES симметричный блочный алгоритм с секретным ключом длиной 56 бит. В качестве официального стандарта этот шифр прослужил Соединенным Штатам вплоть до 2000 года, пережив за это время периоды сверхпопулярности и яростной критики. Алгоритм DES был включен в состав многих коммерческих программных продуктов, получил распространение по всему миру и лег в основу большей части последующих разработок в области блочных шифров.
Главным объектом нападок стала недостаточная надежность шифрования DES: за 25 лет существования стандарта вычислительные средства совершили огромный скачок в развитии, сделав возможным вскрытие этого шифра, что неоднократно было доказано на практике. Пытаясь повысить стойкость алгоритма без существенной его переработки, криптографы предложили новую его версию Triple DES (3DES). В этой криптосхеме предусматривается трехкратное применение DES с разными ключами, в результате чего длина ключа увеличивается до 168 бит, что существенно повышает надежность шифрования. Именно этот алгоритм нередко применяется в новых версиях программ, использовавших ранее обычный DES.
В 2000 году в США был объявлен конкурс на лучший криптоалгоритм, победитель которого должен был стать новым стандартом страны на коммерческое шифрование AES. Этот стандарт призван сменить устаревший DES и стать, как гласит рекламный слоган, стандартом шифрования XXI века, и это утверждение, учитывая четвертьвековую историю DES, не является просто громкой фразой. Пройдя многоуровневый отбор и преодолев жесточайшую конкуренцию со стороны американских информационных гигантов, победителем в конкурсе стал шифр, разработанный европейскими криптографами, алгоритм Rijndael.
Отечественным аналогом DES является ГОСТ 28147-89. Этот шифр был разработан в 70-х годах в КГБ СССР и имел гриф «совершенно секретно». С течением времени гриф снижался, и в 1989 году этот алгоритм стал применяться «для служебного пользования»; этот гриф, как известно, не является секретным, что дало возможность провести шифр через процедуру стандартизации. В начале 90-х годов гриф был окончательно снят, а сам алгоритм признан уже не советским, а российским стандартом.
Преимущества перед DES наш алгоритм имел существенные. Во-первых, в ГОСТ используются ключи длиной 128 бит, что позволяет ему до сих пор оставаться достаточно надежным для коммерческого использования. Во-вторых, этот алгоритм создавался с расчетом на то, чтобы в равной степени эффективно реализовываться как аппаратно, так и программно. Это позволило при большей надежности иметь и серьезное преимущество в скорости работы перед американским стандартом. Все эти плюсы стали залогом долголетия отечественного алгоритма и позволили ему пережить заморский аналог.
Наиболее распространенным в мире симметричным поточным шифром является RC4. Он был разработан в 1989 году и запатентован; его алгоритм был объявлен коммерческой тайной и передавался под подписку о неразглашении после приобретения лицензии. Этот шифр включили в состав своих программных продуктов многие крупные софтверные компании. В 1996 году криптосхема шифра RC4 была анонимно опубликована в Интернете, после чего стала активно исследоваться на предмет слабостей и возможных подходов к вскрытию, но с тех пор не было найдено ни одного серьезного просчета разработчиков, который бы позволил, при корректной реализации алгоритма, эффективно его взламывать.
Одним из первых алгоритмов шифрования с открытым ключом стал шифр RSA. Этот алгоритм оказался настолько гибким и эффективным, что стал стандартом де-факто в асимметричной криптографии. Именно этот шифр используется практически во всех программах, где нужно применить алгоритм с открытым ключом. Стойкость шифра зависит от длины ключа, и, если, пожертвовав скоростью, применить ключевую последовательность достаточного размера, можно добиться любой требуемой надежности.
Криптографическая практика
ак же воплощаются в жизнь все вышеописанные алгоритмы и стандарты? Золотым правилом при проектировании криптосхем является возможность эффективной и недорогой их реализации в виде программ или устройств.
Аппаратные шифраторы отличаются высокой скоростью и надежностью и выполняются, как правило, в виде электронных плат. Такие устройства применяются обычно для шифрования сетевого трафика или монтируются во внешние накопители, обеспечивая конфиденциальность хранимой на них информации. Кроме непосредственно шифраторов, в виде самостоятельных устройств часто выполняются хранилища ключевой информации это всевозможные электронные ключи, пластиковые электронные карты, «магнитные таблетки» и ставшие популярными в последнее время USB-брелоки.
Программная реализация обеспечивает большую гибкость и существенную экономию средств по сравнению с аппаратной. Все программы, использующие криптографические алгоритмы, можно разделить на специализированные пакеты, основная задача которых заключается именно в обеспечении конфиденциальности секретной информации, и на программы, функция шифрования в которых лишь одна из набора предоставляемых услуг.
Говоря о первой категории программного обеспечения, нельзя не упомянуть о таком замечательном во многих отношениях продукте, как система PGP компании Network Associates. Эта программа защищает хранимые файлы и сообщения электронной почты, использует целый ряд лучших криптографических алгоритмов и не зависит от американских правительственных структур, которые нередко оказывают давление на разработчиков криптографического программного обеспечения с целью умышленного снижения стойкости шифрования. Благодаря перечисленным достоинствам PGP сейчас наиболее популярный продукт в своем классе.
Нередко пользователю оказывается более удобным использовать для сохранения в тайне своих секретов не громоздкие специализированные программы, а привычные приложения, которыми он постоянно пользуется в повседневной работе, лишь дополненные функциями шифрования. Такие возможности предоставляют все серьезные офисные пакеты (текстовые редакторы, электронные таблицы и т.д.), приложения электронной почты, файловые менеджеры. Криптографические функции закладываются даже во многие операционные системы. Такой подход избавляет конечного пользователя от необходимости изучать новые программы и создает видимость того, что дополнительный сервис по обеспечению конфиденциальности он получает бесплатно.
Третье дыхание?
аука и техника не стоят на месте, спираль прогресса совершает свои витки все быстрее, и вот уже криптография стоит на пороге новой революции. Если прошлый прорыв был обусловлен появлением ЭВМ и глобальных компьютерных сетей, то сейчас мы ожидаем появления принципиально новых технологий, из которых наиболее перспективными для криптографии являются разработки в области квантовых процессов. Еще 10-15 лет назад они казались научной фантастикой, туманной перспективой, но вот в последнее время в прессе начали появляться сообщения, что первые опытные образцы уже воплощаются «в металле».
Одним из поистине революционных достижений в исследовании квантовых процессов стала так называемая квантовая криптография. Это способ передачи секретной информации по оптическим каналам, согласно которому данные кодируются одиночными фотонами. На этом уровне в силу вступают законы квантовой механики, благодаря действию которых злоумышленник не в состоянии прослушать канал, не внеся при этом серьезных искажений в передаваемую информацию. По уровню этих искажений легальные абоненты всегда могут однозначно зафиксировать факт взлома. Такая технология очень удобна для передачи секретных ключей для традиционных алгоритмов шифрования. Передающая сторона генерирует ключ и отправляет его по квантовому каналу принимающей стороне. Если в процессе передачи обнаруживается факт вмешательства третьих лиц, переданный ключ уничтожается, генерируется новый и вновь посылается в канал. Эти действия повторяются до тех пор, пока стороны не убедятся в абсолютной конфиденциальности передачи.
Квантовые каналы созданы и проходят испытания в исследовательских лабораториях многих стран мира, а в Соединенных Штатах даже введен в эксплуатацию первый оптический канал связи, работающий по принципу квантовой криптографии. Остается еще немало проблем, связанных с этой технологией. Одна из них низкая скорость передачи данных, но работы продолжаются, и в скором времени такие системы связи получат широкое распространение.
Другая важнейшая разработка в этой области квантовый компьютер. Это вычислительная машина, основанная на принципах квантовой логики, главным преимуществом которой перед традиционными компьютерами является естественный параллелизм вычислительных процессов. Благодаря этому свойству квантовые компьютеры смогут радикально ускорить решение многих задач, в том числе задач вскрытия практически всех традиционных шифров и в первую очередь алгоритмов с открытым ключом.
Работы в этой области продвинулись не так далеко, как с квантовыми каналами связи. Пока такие вычислители существуют лишь как опытные образцы в ведущих научных институтах мира, да и мощности их сейчас хватает только для того, чтобы умножить пять на три и уверено ответить, что результат равен пятнадцати. Но когда ученым удастся преодолеть ряд принципиальных проблем и появится квантовый компьютер достаточной вычислительной мощности все используемые сейчас системы шифрования устареют в одночасье.
Криптография всегда была первым потребителем информационных технологий, и можно с уверенностью сказать, что именно в этой области скорее, чем где бы то ни было, новые разработки получат практическое применение. Желающие надежно скрыть информацию получат в свое распоряжение принципиально новые средства для этого, надежность шифров возрастет на порядки. Не будем забывать, однако, что для каждого замка с секретом в конце концов всегда найдется хитроумная отмычка; злоумышленники, жаждущие проникнуть в чужие тайны, рано или поздно получат доступ к новым технологиям и применят их в своих интересах. Великая битва за информацию непременно продолжится.