<< Предыдущая

стр. 9
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

шифрования, относят и некоторые другие операции. Так, например, крип-
тографические хэш-функции (cryptographic hash-functions) применяются для
вычисления значения хэша (hash value), называемого еще дайджестом сооб-
щения (message digest). Также существуют криптографические генераторы
псевдослучайных чисел (random number generator).


5.4. Криптографические примитивы

5.4.1. Алгоритмы шифрования
Основная задача криптографии — обеспечение секретности — реализуется
при помощи алгоритмов шифрования. Эти алгоритмы, по определению, яв-
ляются обратимыми, т. к. в противном случае восстановить зашифрованные
данные будет не всегда возможно.
Любой алгоритм шифрования, называемый также шифром, представляет
собой две связанных математических функции, используемых для прямого и
обратного преобразования информации (зашифрования и расшифрования).
В'некоторых алгоритмах зашифрование и расшифрование могут выполнять-
ся одной и той же функцией.
Раньше защита, обеспечиваемая шифром, часто основывалась на секретно-
сти самого алгоритма шифрования. Криптографические алгоритмы, тре-
бующие сохранения в тайне последовательности преобразования данных,
называются ограниченными и в настоящее время практически не находят
применения — использование такого алгоритма большим количеством уча-
стников информационного обмена затрудняет обеспечение его секретности.
А если один из членов рабочей группы, защищавшей внутреннюю инфор-
мацию ограниченным алгоритмом, решает покинуть группу, то всем остав-
шимся участникам придется, во избежание возможной утечки информации,
переходить на использование другого алгоритма.
Еще одна проблема, связанная с применением ограниченных алгоритмов,
заключается в том, что каждая группа пользователей должна применять свой
уникальный, никому больше не известный алгоритм. Следовательно, алго-
ритм должен быть разработан внутри этой группы. А для разработки хоро-
шего алгоритма шифрования необходимы весьма глубокие познания в крип-
тографии, которые есть далеко не у каждого человека.
В современных шифрах применяют другой подход, определяемый принци-
пом Керкхоффса (Kerckhoffs). Согласно этому принципу в криптосистеме
Глава 5. Базовые понятия 53_

используется сменный элемент, называемый ключом, и секретность шифра
обеспечивается секретностью ключа шифрования, а не секретностью алго-
ритма. Таким образом, открытое опубликование всех деталей реализации
криптографического алгоритма не должно снижать надежность шифра, если
ключ шифрования сохраняется в секрете. Кроме того, смена ключа выпол-
няется гораздо проще, чем смена алгоритма, особенно если шифрование
реализовано аппаратно.
Хороший алгоритм шифрования имеет следующие статистические характе-
ристики:
• отсутствие статистической зависимости между открытым текстом и шифр-
текстом;
О шифртекст по статистическим характеристикам не отличим от истинно
случайной последовательности;
• изменение любого бита в ключе шифрования при неизменном открытом
тексте приводит к изменению примерно 50% бит шифртекста (для сим-
метричных алгоритмов);
О изменение любого бита в блоке открытого текста при неизменном ключе
шифрования приводит к изменению примерно 50% бит шифртекста (для
блочных алгоритмов).

5.4.2. Криптографические хэш-функции
Криптографические хэш-функции призваны преобразовать входную после-
довательность произвольного размера в выходное значение фиксированной
длины. Термин "хэш-функция" используется также для обозначения функ-
ции отображения при доступе к хэш-таблицам — структурам данных, ис-
пользуемых во многих алгоритмах. У таких функций много свойств, делаю-
щих их схожими с криптографическими хэш-функциями, но это разные
вещи, и ни в коем случае не стоит путать хэш-функции для хэш-таблиц
с криптографическими хэш-функциями. В этой книге рассказывается толь-
ко о криптографических хэш-функциях.
Криптографические хэш-функции применяются в криптографии повсемест-
но: в протоколах аутентификации, цифровой подписи, в генераторах псев-
дослучайных последовательностей и т. д.
Хорошая хэш-функция равномерно и случайно отображает множество всех
возможных входных сообщений во множество результирующих хэшей.
Криптографическая хэш-функция должны быть однонаправленной. То есть,
зная значения хэша, злоумышленник не должен иметь эффективной воз-
можности найти исходное сообщение. Более того, не должно быть эффек-
тивного способа найти любое сообщение, вычисление хэш-функции от ко-
54 Часть II. Несколько слов о криптологии

торого даст требуемое значение хэша (хотя таких сообщений бесконечно
много, т. к. количество разных выходных значений определяется размером
хэша, а множество входных сообщений безгранично).
Также хорошая криптографическая хэш-функция не должна позволять зло-
умышленнику подобрать два сообщения, для которых значения хэшей будут
совпадать.

5.4.3. Криптографические генераторы
псевдослучайных чисел
Случайные числа требуются в криптографии очень часто. Симметричный
ключ шифрования должен выбираться случайным образом. При генерации
ключей для асимметричной криптосистемы необходимо иметь достаточно
большой объем случайных данных. Корректная реализация асимметричных
криптоалгоритмов, например RSA, требует добавлять к каждой порции от-
крытого текста несколько случайных байт.
Однако в компьютере, в общем случае, нет хорошего источника случайно-
сти, способного выдавать значительные объемы истинно случайных данных.
Поэтому в криптографии находят широкое применение генераторы псевдо-
случайных чисел.
Псевдослучайные данные совсем не то же самое, что истинно случайные.
Генератор псевдослучайных чисел использует детерминированный ачгоритм
и выдает последовательность значений, зависящую от начального значения
(seed value), загруженного в генератор. Зная начальное значение, легко по-
вторить последовательность, выдаваемую генератором.
Большинство языков программирования содержат функции для генерации
псевдослучайных чисел. Но эти функции в подавляющем большинстве не
удовлетворяют жестким требованиям, которые предъявляет криптография
к генераторам псевдослучайных чисел:
• последовательность, выдаваемая алгоритмом генерации псевдослучайных
чисел, должна иметь как можно больший период;
• зная любой фрагмент последовательности, выдаваемой генератором, зло-
умышленник не должен иметь эффективной возможности найти началь-
ное значение, загруженное в генератор;
О зная любой фрагмент последовательности, выдаваемой генератором, зло-
умышленник не должен иметь возможности получить достоверную ин-
формацию о предыдущих или последующих элементах последовательности.
Такие функции генерации псевдослучайных чисел, как, например, rand из
стандартной библиотеки языка С, не удовлетворяют ни одному из перечне-
Глава 5. Базовые понятия 55

ленных требований. Поэтому не стоит пользоваться для защиты информа-
ции генераторами, встроенными в языки программирования, если достовер-
но не известна их криптографическая стойкость.


5.5. Модели основных
криптоаналитических атак
При поиске ключа, необходимого для расшифровки перехваченного сооб-
щения, в распоряжении криптоаналитика всегда находится метод полного
перебора ключевого пространства. Поэтому объем ключевого пространства,
используемого в криптосистеме, должен быть настолько велик, чтобы
в ближайшем (или отдаленном, в зависимости от ценности зашифрованной
информации) будущем полный перебор не успел бы завершиться.
Хороший алгоритм шифрования должно быть невозможно вскрыть более
эффективным методом, чем полный перебор ключевого пространства.
При оценке стойкости того или иного алгоритма шифрования рассматривают
несколько наиболее распространенных моделей криптоаналитических атак.


5.5.1. Атака на основе только шифртекста
При выполнении этой атаки криптоаналитику доступно некоторое количе-
ство шифртекстов, являющихся результатом применения одного алгоритма
шифрования.
Задача криптоаналитика заключается в том, чтобы найти как можно больше
открытых текстов, соответствующих имеющимся шифртекстам, а еще луч-
ше — определить ключ, использованный при зашифровании.
Входные данные для атаки на основе только шифртекста могут быть полу-
чены простым перехватом зашифрованных сообщений, что при передаче по
открытым каналам связи сравнительно легко реализуемо.
Данная атака является самой слабой и неудобной для криптоаналитика.

5.5.2. Атака на основе открытого текста
При выполнении этой атаки криптоаналитик имеет доступ не только
• к шифртекстам, но и к соответствующим им открытым текстам.
Задача криптоаналитика сводится к нахождению ключа шифрования, ис-
пользованного для имеющихся пар текстов, или построению алгорит-
ма, позволяющего расшифровывать любые сообщения, зашифрованные на
этом ключе.
56 Часть II. Несколько слов о криптологии

Открытые тексты, необходимые для данной атаки, могут быть получены из
разных источников. Например, если известно, что передается зашифрован-
ный файл с определенным именем, то по расширению часто можно сделать
предположение о содержимом определенных фрагментов файла, например
заголовка.
Данная атака сильнее, чем атака на основе только шифртекста.

5.5.3. Атака на основе подобранного
открытого текста
В данном случае в распоряжении криптоаналитика также есть некоторое
число шифртекстов и соответствующих им открытых текстов. Но, кроме
того, криптоаналитик имеет возможность выбрать несколько произвольных
открытых текстов и получить соответствующие им шифртексты.
Задача криптоаналитика точно такая же, что и при атаке на основе откры-
того текста: определить использованный ключ шифрования или найти иной
способ расшифровывать сообщения, зашифрованные на том же ключе.
Получить шифртекст, соответствующий заданному открытому тексту, ино-
гда можно, например, создав поддельное незашифрованное сообщение от
имени одного из пользователей, обычно использующих шифрование. При
совпадении некоторых факторов на такое сообщение может быть создан за-
шифрованный ответ, цитирующий исходное сообщение.
У криптоаначитика при реализации атаки на основе подобранного открытого
текста появляется возможность выбирать блоки открытого текста, что может,
в свою очередь, дать дополнительную информацию о ключе шифрования.

5.5.4. Атака на основе адаптивно подобранного
открытого текста
Этот вариант является расширением атаки на основе подобранного откры-
того текста. Отличие заключается в том, что, получив шифртекст, соответст-
вующий выбранному открытому тексту, криптоаналитик может принять ре-
шение, какой открытый текст он хочет зашифровать в следующий раз.
Атака на основе адаптивно подобранного открытого текста может приме-
няться, когда у криптоаналитика есть доступ к шифрующему устройству
(например к смарт-карте), реализующему определенный алгоритм шифро-
вания по ключу, недоступному для считывания.
Адаптивность (обратная связь) данной атаки дает преимущество перед про-
стой атакой на основе подобранного открытого текста, где все открытые
тексты выбирались до начала атаки.
Глава 5. Базовые понятия 57


5.6. Анализ стойкости
криптографических примитивов
Несмотря на многовековую историю криптографии и криптоанализа, до сих
пор не существует математического аппарата, позволяющего доказать, что
ключ шифрования определенного алгоритма невозможно найти более эф-
фективно, чем полным перебором ключевого пространства. Скорее всего,
такой математический аппарат не будет разработан и в обозримом будущем.
Однако прежде чем использовать любой криптографический алгоритм, не-
обходимо получить подтверждение его надежности.
Алгоритмы шифрования с открытым ключом, как правило, позволяют све-
сти задачу взлома шифра к хорошо известной математической проблеме,
такой как разложение большого числа на простые сомножители или вычис-
ление дискретного логарифма в конечном поле. Пока математическая про-
блема не имеет эффективного решения, алгоритм будет оставаться стойким.
Как только эффективное решение будет найдено, стойкость всех крипто-
графических алгоритмов и протоколов, использующих данную математиче-
скую проблему, резко снизится. Так что разработчикам и пользователям
криптосистем, основанных на математической проблеме, остается лишь на-
деяться, что эффективное решение не существует или никогда не будет най-
дено. К их счастью, значительных предпосылок к близкому прорыву в этих
областях математики пока нет.
Для симметричной криптографии автор алгоритма может привести сообра-
жения, которыми он руководствоватся при разработке шифра, но этого явно
недостаточно. Требуется некая процедура, если не гарантирующая стой-
кость, то хотя бы дающая высокую степень уверенности, что алгоритм не
будет взломан злоумышленником.
На настоящий момент основным методом проверки криптографической
стойкости алгоритмов является экспертная оценка. Новый алгоритм откры-
то публикуется, и все желающие получают возможность попытаться найти
в нем слабые места. Если кому-то из криптоаналитиков удается обнаружить
серьезные недостатки, алгоритм отправляется в мусорную корзину. Если же
на протяжении значительного периода времени (обычно нескольких лет)
никому не удалось отыскать уязвимости в алгоритме, то он может занять
почетное место среди других алгоритмов, рекомендуемых к применению на
практике. Именно так проводятся сейчас конкурсы на выбор алгоритма для
национального стандарта шифрования.
Проверить надежность нового алгоритма без привлечения криптографиче-
ской общественности под силу разве что таким организациям, как АНБ.
А любой другой разработчик, желающий сохранить алгоритм в тайне, может
Часть II. Несколько слов о криптологии

оказаться в ситуации, когда через некоторое время используемый алгоритм
перестает быть секретным и вскоре появляется эффективный метод его
вскрытия. Именно поэтому современная криптография, в большинстве слу-
чаев, является открытой — вероятность взлома хорошо исследованного ал-
горитма значительно ниже, чем алгоритма, державшегося долгое время
в секрете.

Алгоритм шифрования А5
В качестве наглядного примера опасности, связанной с засекречиванием дета-
лей реализации алгоритмов шифрования, можно привести историю поточного
шифра А5, применяемого для шифрования сеансов телефонной связи между
трубкой абонента и базовой станцией в европейской системе мобильной циф-
ровой связи GSM (Group Special Mobile).

Шифр А5 был разработан в 1989 году и существует в двух версиях: А5/1 —
"сильная" версия шифра, разрешенная к применению только в некоторых стра-
нах, и А5/2 — "ослабленная" версия, разрешенная к свободному применению.
В 1989 году широкая публикация алгоритмов не была распространенным под-
ходом, и детали построения А5 оказались засекречены.

Но как бы строго ни контролировались коммерческие секреты, широкое рас-
пространение продукции рано или поздно приводит к утечкам информации.
В случае с GSM утечки начались в начале 90-х годов. Британская телефонная
компания передала всю документацию Брэдфордскому университету, не по-
требовав от него подписать соглашение о неразглашении. Часть информации
попала в Интернет, а к 1994 году основные детали алгоритма А5 стали обще-
доступны. В конце концов, кембриджские ученые Майк Роз (Mike Roe) и Росс Ан-
i дерсон (Ross Anderson) опубликовали в Интернете примерную схему алгоритма.

<< Предыдущая

стр. 9
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>