Вы находитесь на странице: 1из 6

Криптографическая стойкость (или криптостойкость) — способность криптографического

алгоритма противостоять криптоанализу. Стойким считается алгоритм, успешная атака на


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

 Поэтому стойкость конкретного шифра оценивается только путем всевозможных


попыток его вскрытия и зависит от квалификации криптоаналитиков , атакующих
шифр. Последнюю процедуру иногда называют проверкой стойкости.

В криптографии различают три типа стойкости:  вычислительная стойкость – когда имеется


потенциальная возможность вскрыть шифр, но при выбранных в шифры параметрах и ключах на
современном этапе розвития криптоанализа у противника не хватит вычислительных ресурсов и
времени для вскрытия. Если алгоритм вскрытия шифра на современных мощных компьютерах
должен выполнить 80  2 операций, то шифр называют вычислительно стойким. Никакой
реальный шифр нельзя обоснованно считать вычислительно защищенным, поскольку мы не
знаем, как доказать оптимальность найденного метода взлома. Не являются вычислительно
стойкими: шифры сдвига, замены, Виженера. К вычислительно стойким шифрам относятся DES,
AES, RSA, шифр Эль-Гамаля (изучим позже).  информацийно-теоретическая стойкость (или
абсолютную стойкость), когда криптоаналитик не может раскрыть криптосистему ни теоретически,
ни практически, даже имея бесконечно большие вычислительные ресурсы. Доказательства
стойкости в такой модели выводятся из теории информации;  доказуемая стойкость, при которой
доказательство стойкости криптосистеми сводят к решению определенной трудно решаемой
математической проблемы, положенной в основу алгоритму. Например, криптосистема RSA
стойка, если модуль алгоритму n нельзя факторизовать.

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

Совершенно секретные шифры

Существует ли Совершенно секретный шифр? Каким образом он должен быть построен? И какие
условия необходимо обеспечить? Все эти вопросы привели к понятию совершенных или теоретически
стойких криптосистем.

Вопрос о теоретической стойкости шифров впервые был исследован К. Шенноном в его


фундаментальной публикации 1949 г., в которой, используя вероятностную модель шифра, он впервые
сформулировал понятие совершенно стойкого шифра и показал, что он существует, на примере шифра
Вернама, называемого также одноразовым блокнотом. Данный шифр предложил еще в 1917 г.
американский инженер из компании AT&T Джилберт Вернам для шифрования телеграфных сообщений.
Алгоритм шифрования Вернама заключался в том, что представленная в двоичном коде
последовательность открытого текста побитово складывалась с ключом - случайной двоичной
последовательностью.

Теория информации

К.Шеннон является основателем Теории информации. В своей работе "Математическая теория связи"


К. Шеннон, используя статистический подход к определению количества информации (в котором оценка
информации определяется с точки зрения меры неопределенности, снимаемой при получении
информации), показал, что количество информации удобно измерять с помощью энтропии.

Энтропия H(X)— мера неопределённости случайной величины X, выражаемая следующей формулой

где   обозначает вероятность того, что случайная величина X примет значение a.


Это означает, что с вероятностью   X может быть описана  битами информации.

Модель Шеннона

Симметричные криптосистемы использовались более двух тысяч лет (вспомните шифр Цезаря), однако
формальное математическое описание таких систем было дано Клодом Шенноном только в 1949 году.
Подход Шеннона превратил криптографию из искусства в науку, так как появилась возможность
доказывать защищенность информации при помощи шифра. Однако реализация последовательности
независимых и равновероятных случайных величин оказалась непростой задачей. Кроме того, объем
ключа в совершенном шифре совпадает с объемом сообщения, что затрудняет выполнение условия
секретности ключа.

По К. Шеннону, шифрование должно использовать следующие принципы:


 Рассеивание (Diffusion) — распространение влияния одного знака открытого текста на более,
чем один знак шифртекста, а также распространение влияния одного элемента ключа на более,
чем один знак шифртекста.

 Перемешивание, усложнение, запутывание (Confusion) — свойство шифрующего


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

Эти два общих принципа конструирования криптосистемы – очень общие и неформальные. Шеннон
также описал более специфичные принципы конструирования. Первый заключается в том, чтобы свести
проблему обеспечения секретности системы к одной из известных вычислительно сложных задач. Этот
принцип часто используется при создании криптосистем с открытым ключом, но не используется для
криптосистем с секретным ключом. Второй принцип Шеннона заключается в том, чтобы сделать
систему устойчивой ко всем известным атакам, и это до сих пор лучший из известных принципов
построения криптосистем с секретным ключом.

В описании криптосистемы, данном Шенноном, отправитель А (часто называемый Алисой) хочет


отправить сообщение m получателю В (которого называют Бобом). Сообщение называется открытым
текстом и берется из конечного набора открытых текстов М. Конечно, Алиса может отправить более
одного сообщения.

Из-за того, что канал связи не защищен (противник, называемый Евой, также имеет доступ к каналу),

Алиса применяет алгоритм шифрования   к тексту m. Результат называют шифртекстом, он


является элементом набора шифртекстов С. Алиса передает Бобу шифртекст C, который будет

перехвачен Евой. Очевидно, что функция шифрования   должна быть биективным отображением,
иначе Боб не сможет восстановить открытый текст m по шифртексту с с помощью функции
расшифрования  . По формуле  (c)=m.

Так как той же самой криптосистемой хотят воспользоваться другие люди, а Алиса и Боб не хотят

использовать одно и то же отображение   в течение долгого времени из соображений безопасности,


функцию зашифрования они берут из большого набора Е функций биективного отображения М в С. По
этой причине функции зашифрования и расшифрования имеют метку k. Эта метка k называется ключом

и берется из так называемого ключевого пространства K. Набором Е={ |kЄK} и описывается


криптосистема.

Очевидно, что Алиса и Боб должны использовать один и тот же ключ k. Чтобы установить общий ключ,
они используют защищенный канал, линию связи, которая не прослушивается. Одним из способов
выбора общего ключа является предварительная договоренность, другой заключается в том, что один
из участников отправляет ключ другому при помощи некоторого связного. Сегодня для этой цели часто
используется криптография с открытым ключом.
Обычно одна и та же криптосистема Е может использоваться в течение долгого времени большим
количеством людей, поэтому нужно допустить, что эта криптосистема известна также криптоаналитику.
Конфиденциальность данных должна обеспечиваться частой сменой ключа.

Часто бывает так, что М=С, в этом случае хотелось бы, чтобы пары открытый текст-шифртекст при
зашифровании на разных ключах были постоянными. В таком случае шифртекст не давал бы никакой
информации об открытом тексте (см. теорию информации).

Противник, прослушивающий канал, по которому идет передача данных, может быть двух типов:

 Пассивный (прослушивающий): криптоаналитик пытается вычислить открытый текст m (а еще


лучше – ключ k) по шифртексту.

 Активный (взламывающий): криптоаналитик пытается активно воздействовать на


передаваемые данные. Например, пытается изменить передаваемый шифртекст.

Чтобы не позволить противнику понять, как легитимные участники передачи данных выработали свой
общий ключ, нужно выполнять следующие условия:

Условие 1. Все ключи должны быть равновероятными и всегда выбираться из ключевого пространства
случайным образом.

Часто предполагают, что все детали используемого отправителем и получателем криптоалгоритма


известны противнику, кроме конкретного значения секретного ключа.

Условие 2 (известное, как условие Керкхоффса). Противник знает все детали алгоритмов
зашифрования и расшифрования, кроме конкретного значения секретного ключа.

Также на основе этой теории были предложены схемы с замещением-перестановкой

Теоремы Шеннона

Теорема 1 (К. Шеннон). Для любых ε >0 и δ >0 можно найти такое n, что для любого n >   
последовательности из V распадаются на два непересекающихся класса В и   так, что

Пусть 0 < ε < 1, - произвольное малое число. Пусть все последовательности длины n расположены в
порядке убывания вероятностей их появления. Как отмечалось выше, множество открытых сообщений
моделируется начальным участком таких последовательностей. Обозначим через β(ε) - число наиболее
вероятных последовательностей таких, что сумма их вероятностей ≥ 1-ε, а сумма вероятностей любого
набора из (β(ε) - 1) этих последовательностей < 1-ε. Следующая теорема показывает, что при n→ ∞
множество последовательностей, составляющих в нашей модели открытый текст, не зависит от ε.

Теорема 2 (К. Шеннон).Для любого ε >0

Подходы к оценке стойкости шифров

В криптографии разработаны два базовых подхода в оценке стойкости шифров. Основы первого


подхода (совершенная секретность) К. Шеннон изложил в своей работе в 1948 г.

Другой подход к определению стойкости берет начало в той же работе Шеннона и


называется практической стойкостью или сложностный подход к стойкости.

Первый подход к оценке стойкости шифров


В криптографии разработаны два базовых подхода в оценке стойкости шифров. Основы первого
подхода (совершенная секретность) К. Шеннон изложил в своей работе в 1948 г. Рассмотрим этот
подход. К. Шеннон предложил следующую модель обращения с параметрами, описывающую
шифрование и действия противника. Пусть

- множества открытых сообщений и возможных шифртекстов. Открытый текст для передачи в


шифрованном виде выбирается случайно в соответствии с распределением

Тогда при решении задачи вскрытия x по известному у противник может вычислить апостериорные

вероятности сообщений, которые могли быть посланы  , s=1,...,n. Если


задача дешифрования решена и открытый текст найден, то апостериорное распределение вырождено:

 при s ≠ i .

Таким образом в апостериорных вероятностях {Р(х|у), x ∈X} отображаются даже частичные сведения об


открытом тексте, полученном при перехвате криптограммы. Шеннон определил совершенную
секретность (стойкость) шифра условием: апостериорные распределения на открытых текстах при
любом у∈Y совпадают с априорным распределением на Х, т.е. Р(х|у) = Р(х) для любых x ∈X, у ∈Y.

Следующим шагом в теоретическом подходе к оценке стойкости шифров послужила оценка числа
открытых текстов, которые мы можем получить, применяя все возможные способы преобразования
имеющихся шифр текстов при неизвестном заранее ключе. Смысл этого подхода поясним на примере,
не связанном с криптографией.
Cложностный подход к стойкости
Другой подход к определению стойкости берет начало в той же работе Шеннона и называется
практической стойкостью или сложностный подход к стойкости. Рассмотрим выражение Т(х, k) = у как
уравнение относительно х и k. Тогда решение этого уравнения предполагает существование алгоритма,
для которого в математике определено понятие сложности. Сложность характеризуется двумя
параметрами: число операций для вычисления результата (трудоемкость алгоритма) и объем
необходимой памяти.

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