Основные этапы развития криптографических систем. Современные алгоритмы шифрования

Стойкость системы шифрования, классификация систем шифрования по стойкости. Виды атак на систему шифрования.

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

Атаки нарушителя

1. Криптоанализ ведется, только на основе, перехваченных криптограмм;

2.Криптоанализ ведется на основе, перехваченных криптограмм и соответствующих им открытых сообщений.

3.Криптоанализ ведется на основе выбираемого противником открытого сообщения;

Классы систем шифрования

· Безусловно стойкие или идеальные, совершенные

· Вычислительностойкие

Безусловно стойкие (идеальные) системы шифрования

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

Лучшим способом дешифрования криптограммы БССШ является угадывание

одного из возможных сообщений источника Математически условие АССШ можетбыть записано в виде:

Условная вероятность того, что сообщение M i было зашифровано криптограммой E j ;

– априорная (при неизвестной криптограмме) вероятность присутствия сообщения M i .

Вычислительно стойкие системы шифрования

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

Время криптоанализа определяется:

1. Сложностью алгоритма дешифрования;

2. Быстродействием вычислительных устройств,

осуществляющих дешифрование

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

Основные подходы к криптоанализу:

1. Тотальный перебор ключей

2. Анализ статистических особенностей криптограмм

3. Линейный криптоанализ

4. Дифференциальный криптоанализ

Быстродействие вычислительных устройств 10 10 - 10 12 операций/с

Быстродействие ЭВМ увеличивается в 4 раза каждые 3 года

Шифр замены, его свойства.

Шифр простой замены, простой подстановочный шифр, моноалфавитный шифр - класс методов шифрования, которые сводятся к созданию по определённому алгоритму таблицы шифрования, в которой для каждой буквы открытого текста существует единственная сопоставленная ей буква шифр-текста. Само шифрование заключается в замене букв согласно таблице. Для расшифровки достаточно иметь ту же таблицу, либо знать алгоритм, по которой она генерируется.

Шифром колонной замены называется шифр с алфавитом открытых сообщений Z m, совпадающим с алфавитом шифрованных сообщений и ключевым множеством K.

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

Свойства шифра замены.

1. Если все замены в таблице замен равновероятны и взаимонезависимы, то система шифрования, использующая данный способ, будет безусловно стойкой.

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

3. При шифровании методом замены не происходит размножение ошибок, возникающих в канале связи из-за помех.

4. Перекрытие шифра, т е. шифрование одной и той же таблицей разных сообщений, не приводит к простому и однозначному дешифрованию, как в способе гаммирования. Однако стойкость способа снижается, т. к. повторяющиеся замены дают возможность проведения криптоанализа на основе частот повторения букв криптограммы.
10). Блоковый шифр, схема Файстеля, свойства блокового шифра

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

Согласно принципу Керхгоффа, алгоритмы шифрова­ния и дешифрования полностью известны криптоаналитику. Неизвестен лишь ключ, который используется как для шифрования, так и для дешифро­вания. Одинаковые блоки сообщений Мi и Мj всегда преобразуются в оди­наковые блоки криптограмм Ei и Ej . Если это свойство является нежела­тельным, то используют другую модификацию того же самого блокового алгоритма шифрования

Принципы построения блоковых шифров состоят в том, что в алгоритме блокового шифра необхо­димо использовать:

а) подстановки (нелинейные преобразования коротких частей (под­ блоков блокового шифра);

б) перестановки символов в блоках;

в) итерирование операций (а) и (б) (т. е. многократное повторение их с разными ключами).

Схема Файстеля.

Для упрощения процедур шифрования и дешифрования используется схема Файстеля, основанная на следующих принципах:

а) каждый текущий блок делится на две равные части - левую Li и правую Ri, где i - параметр итерации (раунда);

б) способ формирования следующих «половинок» блоков из предыду­щих, определяется, как показано на рис. 3.3, где ki - ключ i-гo раунда.

Представим это преобразование в аналитической форме:

L i = R i-1 , R i =L i-l + f(R i-1 , k i),

где f( ) - нелинейная функция от двух аргументов, в которой нелинейность определяется, например, таблицей.

Особености схемы Фейстеля:

1) Обратимость процедуры шифрования оказывается возможной, когда функция /( ) в схеме не обязательно является обратимой.

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


Характеристики шифра АЕS

1.Может работать быстрее, чем обычный блочный шифр;

2.Может быть реализован на смарт-карте, используя небольшой РАМ и имея небольшое число циклов;

3. Преобразование раунда допускает параллельное выполнение;

4. Не использует арифметических операций, поэтому тип архитектуры процессора не имеет значения;

5. Может быть использован для вычисления МАС-кода и хэш-функции.

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

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

Первое преобразование данного алгоритма выполняется как вычисление обратного элемента в поле GF() по модулю неприводимого полинома + + + х +1, что обеспечивает доказуемую устойчивость шифра по отношению к линейному и дифференциальному криптоанализу, при этом нулевой элемент поля сохраняется без преобразования (рис. 3.16).

Следующее преобразование состоит в умножении каждой клетки квадрата, представленной в виде двоичного вектор-столбца ( , ) , на фиксированную матрицу и добавлении также фиксированного вектор-столбца, причем все операции здесь выполняются в поле GF{2}:

Используемая в этом преобразовании матрица и вектор-столбец сохраняются одинаковыми на всех раундах и не зависят от ключа.

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

В качестве очередного преобразования используется побайтовый циклический сдвиг массива сообщений на различное количество байт (клеток), показанный на рис. 3.17.

Следующее преобразование называется перемешиванием столбцов. На этом шаге каждый С-й столбец квадратной матрицы представляется как 4-мерный вектор над полем GF(), и далее производится умножение в этом поле, заданном неприводимым полиномом + + + х +1, на определенную матрицу с элементами из этого же поля:

где элементы, показанные в этой матрице, задаются как элементы поля GF() (т. е. как двоичные последовательности длины 8), что иллюстрируется следующим примером:

Наконец производится сложение с раундовыми ключами, которое выполняется просто как побитное сложение всех элементов последнего квадрата с 128 элементами раундового ключа по модулю 2. После завершения одного раунда все описанные выше операции повторяются с использованием других раундовых ключей. Раундовые ключи вырабатываются из единственного секретного ключа длиной 128, 192 или 256 бит (в зависимости от выбранного режима ифрования) при помощи специальных преобразований, включающих в себя циклические сдвиги и расширения. Количество раундов шифра зависит от выбранного режима его работы и изменяется в пределах от 10 до 14.

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

Особенности шифра AES

1) AES ориентирован в основном на реализацию с 8-разрядными процессорами;

2) все раундовые преобразования выполняются в конечных полях, что допускает простую реализацию на различных платформах.

Стойкость шифра AES

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

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

Скорость шифрования AES

При программной реализации данный алгоритм наиболее эффективно реализуется на 8- и 32-разрядных платформах. Для типичных ПК скорость шифрования может составлять порядка 1 Мбайт/с - 500 кбайт/с. При аппаратной реализации высокие скорости шифрования (порядка 100 Мбайт/с и выше) потребуют увеличения аппаратных ресурсов и, следовательно, увеличения габаритов устройства.

Стойкость шифра A5/1

При разработке этого шифра предполагалось, что он будет иметь высокую

стойкость, так как количество его ключей достаточно велико, однако

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

Показали, что у этого шифра есть слабые стороны. Одна из них состоит

в том, что ЛРР, входящие в состав шифратора, имеют малые длины, и поэтому

они подвержены некоторым модификациям статистических атак, а также

атакам на основе обменных соотношений между требуемым объемом памяти

и временем анализа.

В конечном итоге исследования, которые проводились начиная с

2000 г. (т. е. почти сразу после введения этого стандарта), показали, что данный

шифр может быть «взломан» с использованием обычного ПК в реальном

22.Возведение в степень, нахождение дискретного логарифма

Возведение в степень по модулю - это вычисление остатка от деления натурального числа b (основание), возведенного в степень e (показатель степени), на натуральное число m (модуль).
. Быстрый способ возведения Д.Кнута.

Представим показатель степени в двоичном виде;

Каждую единице заменим парой букв КУ (квадрат+умножение);

Каждый ноль заменим буквой К (квадрат);

В образовавшейся последовательности вычеркнем первую пару КУ;

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

Пример: 3 37 (mod7)

37 = 100101 = КУКККУККУ= КККУККУ

3®3 2 (mod7)=2®2 2 (mod7)=4®4 2 (mod7)=2®2×3(mod7)=6®6 2 (mod7)= 1®1 2 (mod7)= 1®1×3(mod7)=3

Сложность вычислений для операции возведения в степень: N@O(2logx).

Сложность вычислений для операции дискретного логарифмирования: N@O((n) 1/2).

Нахождение дискретного логарифма методом «встречи посредине»

Строим базу данных размера O((n) 1/2) вида a z (modn) для случайных чисел zÎ и сортируем ее.

Для случайных чисел b, таких что НОД(b,n-1)=1 вычисляем y b (modn) и сравниваем с числами базы данных.

С большой вероятностью после нескольких попыток получаем

a z (modn)= y b (modn)

4. Возводим обе части в степень b -1 , получим a z · b-1 (modn)= y (modn). Откуда следует

Этот метод имеет сложость N t @O((n) 1/2 logn), N v @O((n) 1/2)
Возвести в степень по модулю довольно легко, даже при больших входных значениях. А вот вычисление дискретного логарифма, то есть нахождение показателя степениe при заданных b , c и m , намного сложнее. Такое одностороннее поведение функции делает её кандидатом для использования в криптографических алгоритмах.

КС Эль-Гамаля.

Это некоторая модификация КС РША, стойкость которой не связана непосредственно с проблемой факторизации. Она широко используется в стандартах цифровой подписи и допускает естественное обобщение на случай КС, построенных на основе использования эллиптических кривых, что будет рассмотрено далее.

Генерирование ключей .

Пользователь А проделывает следующие операции для генерирования ключей:

1)генерирует простое число p и примитивный элемент ɑ∈GF(p);

2) выбирает случайное число а такое, что 1<= a<= p-2, и вычисляет число ɑ^a;

3) в качестве открытого ключа выбирает набор: (p, ɑ, ɑ^amodp), а в качестве закрытого ключа – число а.

Шифрование .

Пользователь В выполняет следующие шаги для шифрования сообщения М, предназначенного пользователю А:

1) Получает открытый ключ А;

2) Представляет сообщение М в виде цепочки чисел Мi, каждое из которых не превосходит р-1;

3) Выбирает случайное число k такое, что 1<=k<=p-2;

4) Вычисляет ɣ=(ɑ^k)mod p, б=Мi((ɑ^a)^k) mod p;

5) Посылает криптограмму C=(ɣ,б) пользователю А.

Дешифрование

Пользователь А выполняет следующие шаги для дешифрования сообщения, полученного от пользователя В:

1) используя свой закрытый ключ, вычисляет (ɣ^(-a ))mod p

2) восстанавливает сообщение Mi=(ɣ^(-a))*б mod p

Действительно, ɣ^(-a )*б =(ɑ^(-a k))*Mi*(ɑ^(a k))=Mi mod p

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

Преимущество КС Эль-Гамаля состоит также и в том, что тогда все пользователи в сети могут выбирать одинаковые ɑ и р , что невозможно для КС РША. Кроме того, как будет показано далее, эта схема может быть естественным образом распространена на случай эллиптических кривых.

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

Стойкость КС Эль-Гамаля

Проблема восстановления сообщения М по заданным p , ɑ, ɑ^a, б , ɣ при неизвестном а эквивалентна решению задачи Диффи-Хеллман.

Ясно также, что если будет решена проблема нахождения дискретного логарифма, то криптосистема Эль-Гамаля будет вскрыта. При выборе р с разрядностью 768 бит (для повышенной стойкости-до 1024 бит), стойкость КС Эль-Гамаля будет такой же, как и у КС РША при выборе в последней тех же параметров для модуля.

Важно отметить, что для шифрования различных сообщений Мi, Мj необходимо использовать различные значения чисел k, поскольку в противоположном случае б1/б2=Мi/Мj, и тогда сообщение Мj может быть легко найдено, если известно сообщение Мi.


Генерирование ключей.

Случайно выбираются два простых числа p и q. Находится

модуль N=pq. Находится функция Эйлера φ (N)= (p-1)(q-1).

Выбираем число e такое, что НОД(e, φ (N))=1.

Находим d, как обратный элемент к e, de=1(mod φ (N)).

Объявляем d=SK, (e,N)=PK. PK сообщается всем

корреспондентам.

Шифрование .

Корр. А передает зашифрованное сообщение корр.В

(использует открытый ключ корр. В)

Расшифрование.

Корр. В расшифровывает принятую криптограмму от

корр.А,используя свой секретный ключ.

Атаки.

1. Система РША может быть вскрыта, если удастся найти p и q, т. е. факторизовать N.

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

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

Так, например ln n = 200, если, то число операций будет приблизительно равно 1,37 ∙ 10 14 .

При увеличении числа разрядов n до 1000 и более время факторизации становится совершенно необозримым.

2. Другой естественной атакой на КС РША является дискретное логарифмирование. Эта атака (при известном сообщении) выполняется следующим образом: d = log E M mod N. Однако задача дискретного логарифмирования по модулю многоразрядных чисел также относится к трудным в математике, и оказывается, что она имеет почти такую же сложность, как и задача факторизации.

3. Циклическая атака. Будем последовательно возводить полученную криптограмму в степень равную значению открытого ключа т.е. (((((E e) e)…..) e .

Если при некотором шаге окажется, что E i =E, то это означает,

что E i-1 =m. Доказывается, что данная атака не лучше атаки факторизации N.

4. Отсутствие шифрования. Этот случай возможен, если в результате шифрования получаем открытое сообщение, т. е. M e mod n = M. Такое условие должно выполниться хотя бы для одного из сообщений, например, для сообщений M = 0, 1, n – 1 . На самом деле таких сообщений, которые вообще! не шифруются, существует в точности . Их число всегда не менее 9. Однако при случайном выборе q и p доля таких сообщений будет ничтожно мала и они почти никогда не встретятся на практике.

5. Атака при малом объеме возможных сообщений

Предположим, что количество сообщений ограничено значениями M1 , M2 ,… , Mr , где r обозримо. (Это могут быть, например, различные команды – вперед, назад, влево, вправо и т. п.). Тогда сообщение может быть легко расшифровано.

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

Способ борьбы с такой атакой – это «подсаливание» сообщений (т. е. присоединение к ним небольших цепочек бит, полученных с использованием чисто случайного датчика).

ВИДЫ

Простая ЭП – подпись, которая путем использования кодов, паролей или иных средств подтверждает факт формирования ЭП определенным лицом.

· Неквалифицированная:
Получена в результате криптографического преобразования информации с использованием ключа ЭП;

Позволяет определить лицо, подписавшее документ;

Позволяет обнаружить факт внесения изменений в ЭД;

Создается с использованием средств ЭП;

· Квалифицированная:
Соответствует всем признакам неквалифицированной ЭП;

Ключ проверки ЭП указан в квалифицированном сертификате.

Для создания и проверки ЭП используются средства ЭП, получившие подтверждение соответствия в соответствии с законом об ЭП.

Схема ЭП РША.

Пусть имеется некоторое сообщение М и некоторым пользователем А сгенерирована пара открытый/закрытый ключ для системы РША, т. е. числа e A ,n A ; d A . Тогда сообщение М разбивается на блоки, каждый из которых может быть представлен целым числом, не превосходящим n А. Для каждого из таких сообщений-цифр М формируется ЦП S по следующему правилу: S = М dA mod(n A). Далее ЦП присоединяется к сообщению, образуя так называемое подписанное сообщение, т. е. пару M,S . Для верификации ЦП поль­зователь должен получить открытый ключ А, а также «подписанное» (но возможно фальсифицированное) сообщение М, S и вычислить Ṁ =S eA mod(e A). Далее он сравнивает Ṁ с М и при их совпадении полага­ет, что сообщение М действительно подписано А, в противном случае от­вергает его, как подделку или искажение.


Схема ЭП Эль-Гамаля.

ЭП - Электронная подпись (ЦП – Цифровая Подпись)

ЭП (ЦП) - это некоторые дополнительные данные, присоединяемые к основ­ ному сообщению, которые формируются зависящими как от сообщения, так и от секретного ключа автора сообщения. Для проверки подлинности сообщения (называемой иначе процедурой верификации) используется открытый ключ автора сообщения, который может быть доступен любому пользователю.

Генерирование ключей:

1) генерируется большое простое число р и примитивный элемент а над конечным полем GF(p);

2) генерируется число x : 1 ;

3) вычисляется у = а x mod(р) ;

4) выбирается открытый ключ верификации ЦП: (р, а, у ) и секретный ключ создания ЦП: x .

Формирование ЦП

Если пользователь А хочет подписать сообщение m, представленное в виде числа, принадлежащего Zp , то он выполняет следующие операции:

1) генерирует секретное число k : 1 ≤ k ≤ р – 2; gcd(k , р - l) = 1, где gcd – это НОД

2) вычисляет r = a k mod(р);

3) вычисляет k -1 mod(p - 1);

4) вычисляет s = k -l (m - xr )mod(p - l);

5) Формирует ЦП S к сообщению m как пару чисел S = (r, t).

Проверка (верификация) ЦП

Для того чтобы проверить подпись S, созданную А под сообщением M, любой пользователь выполняет следующие шаги:

1) получает открытый ключ А: (р, а, у) ;

2)проверяет, что 1 ≤ r ≤ р - 1 , и если это не выполняется, то отвер­гает ЦП;

3) рассчитывает V 1 = y r r s mod(р) ;

4) рассчитывает V 2 = а m mod(р);

5) принимает ЦП как правильную при условии, что V 1 = V 2

Стойкость ЦП на основе КС Эль-Гамаля

1) Злоумышленник может попытаться подделать подпись к своему сооб­щению М следующим образом: сгенерировать случайное число к, вычислить r = а k mod(р), а затем попытаться найти s = k - l (m - xr )mod(p - l).

Однако для выполнения последней операции ему необходимо знать a, которое при соответствующем выборе параметров ЦП вычислить невозможно.

3) Стоит отметить, что если не выполнен шаг 2 алгоритма ве­рификации ЦП , то злоумышленник может правильно подписать любое сооб­щение по своему выбору при условии, что в его распоряжении имеется какое-либо другое сообщение с правильной ЦП. Таким образом, при выборе модуля р , который в двоичном представлении имеет длину порядка 768 бит, обеспечивается хорошая стойкость ЦП, а для обеспечения долговременной стойкости целесообразно увеличить ее до 1024 бит.


Требования к криптографическим ХФ

1.Однонаправленность, когда при известном хеше h вычислительно неосуществимо (то есть требует нереализуемо большого числа операций) нахождение хотя бы одного значения x , для которого, то есть h(x) оказывается однонаправленной функцией (ОНФ).

2.Слабая коллизионная стойкость, когда для заданных x, h(x)=h вычислительно неосуществимо найти такое другое x’ значение, которое удовлетворяет уравнению h(x’)=h.

3.Сильная коллизионная стойкость, когда вычислительно неосуществимо найти такую пару аргументов x, x’ , для которых выполняется соотношение h(x)=h(x’).

Исправление уязвимости

Деннинг и Сакко предложили использовать метки времени в сообщениях для предотвращения атак, подобных рассмотренной выше. Обозначим такую метку буквой t. Рассмотрим вариант исправления уязвимости:

Компоненты PKI

· Сертификационный центр (Certificate Authority (CA)) - часть системы открытых ключей, которая выпускает сертификат для подтверждения прав пользователей или систем обратившихся с запросом. Она создает сертификат и подписывает его, используя частный ключ. Благодаря своей функции по созданию сертификатов, сертификационный центр является центральной частью PKI.

· Хранилище сертификатов (Certificate Repository) . Хранилище действующих сертификатов и списка аннулированных (Certificate Revocation Lists (CRLs)). Приложения проверяют пригодность сертификата и уровень доступа предоставляемый им, сверяя с образцом содержащимся в хранилище.

· Сервер восстановления ключей (Key Recovery Server) - сервер, осуществляющий автоматическое восстановление ключей, если данный сервис установлен.

· PKI-готовые приложения (PKI-Enabled Application) - приложения, которые могут использовать средства PKI для обеспечения безопасности. PKI управляет цифровыми сертификатами и ключами, используемыми для шифрования информации, содержащейся на web-серверах, при использовании электронной почты, при обмене сообщениями, при просмотре Интернет-страниц и пересылке данных. Некоторые приложения изначально могут использовать PKI, а другие требуют внесения изменений программистами.

· Регистрационный центр (Registration Authority) - модуль отвечающий за регистрацию пользователей и принятие запросов на сертификат.

· Сервер безопасности (Security Server) - сервер, который обеспечивает управление доступом пользователей, цифровыми сертификатами и надежными взаимосвязями в среде PKI. Сервер безопасности централизованно управляет всеми пользователями, сертификатами, связями с сертификационным центром, отчетами и проверяет список аннулированных сертификатов.

Функции PKI

· Регистрация (Registration) - процесс сбора информации о пользователе и проверки ее подлинности, которая затем используется при регистрации пользователя, в соответствии с правилами безопасности.

· Выдача сертификата (Certificate Issuance) . Как только CA подписал сертификат он выдается просителю и/или отправляется в хранилище сертификатов. СА проставляет на сертификатах срок действия, требуя таким образом периодического возобновления сертификата.

· Аннулирование сертификата (Certificate Revocation) . Сертификат может стать недействительным до окончания срока действия в силу различных причин: пользователь уволился из компании, сменил имя или если его частный ключ был скомпрометирован. При этих обстоятельствах СА аннулирует сертификат, занося его серийный номер в СRL.

· Восстановление ключа (Key Recovery) . Дополнительная функция PKI позволяет восстанавливать данные или сообщения в случае утери ключа.

· Управление работой (Lifecycle Management) - постоянная поддержка сертификатов в PKI, включающая обновление, восстановление и архивирование ключей. Эти функции выполняются периодически, а не в ответ на специальные запросы. Автоматизированное управление ключами наиболее важная функция для больших PKI. Ручное управление ключами может ограничить масштабируемость PKI.

Основные определения

· Certificate Revocation Lists (CRLs) - списоканнулированныхсертификатов. Аннулирование может быть вызвано сменой места работы, кражей частного ключа или другими причинами. Приложения, работающие с PKI, могут сверять сертификаты пользователей со списком CRL, прежде чем предоставить доступ в соответствии с этим сертификатом.

· Цифровойсертификат (Digital Certificate/X.509 Certificate) . Структура данных, применяющаяся для связывания определенного модуля с определенным открытым ключом. Цифровые сертификаты используются для подтверждения подлинности пользователей, приложений и сервисов, и для контроля доступа (авторизации). Цифровые сертификаты издаются и распределяются СА.

· Цифровой конверт (Digital Envelope) . Метод использования шифрования с открытым ключом для безопасного распространения секретных ключей использующихся при симметричном шифровании и для посылки зашифрованных сообщений. Значительно сокращается проблема распространения ключей связанная с симметричным шифрованием.

· Цифровая подпись (Digital Signature) . Метод использования шифрования с открытым ключом для обеспечения целостности данных и невозможности отказа от посылки. Зашифрованный блок информации после расшифровки получателем, идентифицирует отправителя и подтверждает сохранность данных. Например: документ "сжат", HASH зашифрован с помощью частного ключа отправителя и приложен к документу (по сути, это означает приложить "отпечаток пальца" этого документа). Получатель использует открытый ключ для расшифровки полученного сообщения до состояния "выжимки", которая затем сравнивается с "выжимкой" полученной после "сжатия" присланного документа. Если обе "выжимки" не совпали, то это означает, что документ был изменен или поврежден в процессе пересылки.

· Шифрование с открытым ключом (Public Key Cryptography) . Есть два основных типа шифрования: с открытым ключом и с секретным (симметричным) ключом. При шифровании с открытым ключом используется пара ключей: открытый, т.е. свободно доступный, и соответствующий ему частный ключ, известный только конкретному пользователю, приложению или сервису, которые владеют этим ключом. Эта пара ключей связана таким образом, что зашифрованное частным ключом, может быть расшифровано только открытым ключом и наоборот.

· Симметричноешифрование (Shared Secret Cryptography) . Есть два основных типа шифрования: с открытым ключом и с секретным (симметричным) ключом. При симметричном шифровании получатель и отправитель используют один и тот же ключ для шифрования и расшифровки. Это означает, что множество пользователей должны иметь одинаковые ключи. Очевидно, что до получения ключа пользователем шифрование невозможно, при этом распространение ключа по сети не является безопасным. Другие же способы распространения, такие как специальный курьер, дорогие и медленные.

· Алгоритм RSA - первая шифровальная система с открытым ключом, названная в честь ее изобретателей: Ronald Rivest, Adi Shamir и Leonard Adleman.

· Смарт-карта. Устройство похожее на кредитную карточку со встроенной памятью и процессором, используемое для защищенного хранения ключей и сертификатов пользователя а также другой информации (как правило, социального и медицинского назначения).

· Digital Credentials. В рамках технологии PKI, стандарт ISO/TS 17090-1 определяет этот термин как криптографически защищенный объект, который может содержать индивидуальные ключи пользователя, сертификаты индивидуальных ключей, сертификаты Центров Сертификации PKI-структуры пользователя, список доверенных ЦС, а также другие параметры, относящиеся к домену пользователя - идентификатор пользователя, наименования применяемых криптографических алгоритмов, значения стартовых величин и т.д.. Credentials могут размещаться на аппаратных или программных носителях.

Принцип работы

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

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

Математической моделью системы шифрования/дешифрования дискретных сообщений называется пара функций

,
,

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


Голландский криптограф А. Керкхофс (1835 – 1903) предположил, что секретность шифров должна основываться только на секретности ключа, а не на секретности алгоритма шифрования, который, в конце концов, может оказаться известным противнику.

Если ключ шифрования равен ключу дешифрования, т.е.

= =,

то система называется симметричной (одноключевой ). Для ее работы в пункты шифрования и дешифрования должны быть секретным образом доставлены одинаковые ключи.

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

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

Существуют два основных класса стойкости криптосистем:

    Идеально (безусловно) стойкие илисовершенные криптосистемы, для которых стойкость к криптоанализу (дешифрованию) без знания ключа не зависит от вычислительной мощности оппонента. Их называюттеоретически недешифруемыми (ТНДШ) системами.

    Вычислительно стойкие криптосистемы, у которых стойкость к криптоанализу зависит от мощности вычислительной системы оппонента.

  1. Критосистема RSA

Для шифрования выбирают целое число N =p q , гдеp иq – два больших простых числа. Сообщение M представляется одним из чисел

M {2,3,...,N –1}.

Формулы, описывающие шифрование/дешифрование, имеют следующий вид:

,
,

где K – открытый ключ шифрования,k – закрытый ключ дешифрования.

Из этих двух соотношений следует равенство

,

которое в обычной арифметике выполняется, если kK = 1, а в модульной арифметике и при

kK = 1 + l (N ), (*)

где l – целое. Действительно с помощью теоремы Эйлера проверяем

,

если M иN – взаимно простые числа.

Рассмотренные соотношения указывают путь формирования ключей. Вначале выбирают очень большие случайные простые числа p иq с мало отличающимся числом разрядов так, чтобы произведение N = pq имело не менее 768 бит (по данным 2001 года). Вычиcляют функцию Эйлера

(N ) = (p –1)(q –1).

Равенство (*) эквивалентно

K k = 1 mod (N ),

откуда следует, что оба ключа взаимно обратные по модулю (N ).

Открытый ключ K выбирают, соблюдая необходимые условия:

K < (N ), НОД(K , (N )) = 1.

Закрытый ключ k вычисляют

k = K 1 mod (N ),

с помощью алгоритма Евклида. Завершив подготовительные работы, открытый ключ K и модульN помещают в открытый справочник, приняв меры, гарантирующие невозможность подмены. Числаp и q хранят в секрете.

Отметим, что условие взаимной простоты чисел M и N , невыполнение которого делает невозможным декодирование, не создает серьезных ограничений. Во-первых, среди чисел меньшихN доля чисел взаимно простых сN равна (p –1)(q –1)/(pq ), т.е. неотличима от единицы, а, во-вторых, условие легко обеспечивается несущественной модификацией сообщения. Также степеньM K не должна быть меньшеN . При невыполнении этого условия криптограмма имеет вид

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

Очевидно, что в рассмотренных соотношениях числа K иk равноправны, т.е. ключи можно поменять местами, и использоватьk как открытый ключ шифрования, аK как закрытый ключ дешифрования.

Таким образом, оба ключа RSA задаются парами целых чисел: (K , N ) и (k , N ).

Когда авторы R. Rivest,A.Shamir,L. Adleman(Ривест, Шамир, Адлеман) в 1977 году предложили криптосистемуRSA, они зашифровали фразу “ItsallGreektome”, представленную в цифровой форме. Были опубликованы значенияM , K , N с указанием, что 129 десятичных разрядовN получены при умножении 64- и 65-разрядных чиселp иq . ФакторизацияN и вскрытие криптограммы были выполнены примерно за 220 дней лишь в 1994 году после предварительной теоретической подготовки. В работе принимало участие 600 добровольцев и 1600 компьютеров, объединенных в сеть с помощью Интернет.

Стойкость системы с открытым ключом, и в частности RSA, зависит от выбора ее параметров. Если выбратьlog 2 N = 200 бит, то для факторизации потребуется примерно 2,710 11 операций, что на персональном компьютере займет несколько дней. Если выбратьlog 2 N = 664 бит, то для факторизации потребуется 1210 23 операций. При скорости выполнения 10 6 операций в секунду на факторизацию уйдет несколько миллиардов лет.

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

Реализация шифраRSAотработана как в программном, так и в аппаратном варианте. ИспользуетсяRSAи для шифрования в смарт-картах. В программном варианте скорость шифрования имеет порядок 1 кбит/с, в аппаратном – 1050 кбит/с.

Сравнительно низкая скорость шифрования и дешифрования по сравнению с симметричными, блоковыми или потоковыми системами, является недостатком всех асимметричных систем шифрования, в том числе RSA.

  1. Цифровая подпись

Обычной «бумажной» подписью традиционно заверяется подлинность документа. Стойкость подписи, т.е. невозможность ее подделки посторонними лицами, обеспечивается двумя основными условиями: во-первых, ее уникальностью, основанной на индивидуальных особенностях почерка, а во-вторых, физической целостностью бумажного документа, на котором произведена подпись. При этом подпись не может быть подделана даже тем лицом, которое проверяет ее подлинность.

Однако при передаче документов по компьютерным сетям воспользоваться данными условиями невозможно, в том числе и при передаче факсимильных сообщений (ФАКС), поскольку они допускают простую подделку.

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

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

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

    каждый пользователь сети, законный или незаконный, может проверить истинность цифровой подписи;

    подписавший не может отказаться от сообщения, заверенного его цифровой подписью;

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

Чтобы удовлетворить всем перечисленным требованиям цифровая подпись, в отличие от «бумажной», должна зависеть от всех бит сообщения и изменяться даже при изменении одного бита подписанного сообщения. Для реализации цифровой подписи на основе симметричных криптосистем необходимо участие доверенного лица – арбитра. Реализация цифровой подписи без арбитра возможна только на основе использования асимметричных систем.

Существуют различные виды цифровой подписи, основанные на криптосистемах с открытым ключом. Рассмотрим реализацию ЦП на основе криптосистемы RSA.

В этом случае пользователь A , подписывающий сообщениеM , генерирует пару ключейk A ,K A и сообщает пользователям сети значенияK A иN . Далее пользовательA создает контрольную группу

,

которая и будет цифровой подписью (рис. 17). Контрольная группа приписывается к сообщению и передается вместе с ним.

Легко убедиться, что в данном случае все четыре требования к цифровой подписи, сформулированные ранее, выполняются, если шифр RSAвыбран достаточно стойким.

Однако рассмотренная система выработки цифровой подписи имеет два существенных недостатка:

    возникает значительная избыточность за счет приписывания контрольной группы, длина которой равна длине сообщения, что требует удвоения объема памяти, времени передачи и т.п.;

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

Сергей Панасенко ,
начальник отдела разработки программного обеспечения фирмы «Анкад»,
[email protected]

Основные понятия

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

С = Ek1(M)

M" = Dk2(C),

где M (message) - открытая информация (в литературе по защите информации часто носит название "исходный текст");
C (cipher text) - полученный в результате зашифрования шифртекст (или криптограмма);
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над исходным текстом;
k1 (key) - параметр функции E, называемый ключом зашифрования;
M" - информация, полученная в результате расшифрования;
D (decryption) - функция расшифрования, выполняющая обратные зашифрованию криптографические преобразования над шифртекстом;
k2 - ключ, с помощью которого выполняется расшифрование информации.

Понятие "ключ" в стандарте ГОСТ 28147-89 (алгоритм симметричного шифрования) определено следующим образом: "конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований". Иными словами, ключ представляет собой уникальный элемент, с помощью которого можно изменять результаты работы алгоритма шифрования: один и тот же исходный текст при использовании различных ключей будет зашифрован по-разному.

Для того, чтобы результат расшифрования совпал с исходным сообщением (т. е. чтобы M" = M), необходимо одновременное выполнение двух условий. Во-первых, функция расшифрования D должна соответствовать функции зашифрования E. Во-вторых, ключ расшифрования k2 должен соответствовать ключу зашифрования k1.

Если для зашифрования использовался криптостойкий алгоритм шифрования, то при отсутствии правильного ключа k2 получить M" = M невозможно. Криптостойкость - основная характеристика алгоритмов шифрования и указывает прежде всего на степень сложности получения исходного текста из зашифрованного без ключа k2.

Алгоритмы шифрования можно разделить на две категории: симметричного и асимметричного шифрования. Для первых соотношение ключей зашифрования и расшифрования определяется как k1 = k2 = k (т. е. функции E и D используют один и тот же ключ шифрования). При асимметричном шифровании ключ зашифрования k1 вычисляется по ключу k2 таким образом, что обратное преобразование невозможно, например, по формуле k1 = ak2 mod p (a и p - параметры используемого алгоритма).

Симметричное шифрование

Свою историю алгоритмы симметричного шифрования ведут с древности: именно этим способом сокрытия информации пользовался римский император Гай Юлий Цезарь в I веке до н. э., а изобретенный им алгоритм известен как "криптосистема Цезаря".

В настоящее время наиболее известен алгоритм симметричного шифрования DES (Data Encryption Standard), разработанный в 1977 г. До недавнего времени он был "стандартом США", поскольку правительство этой страны рекомендовало применять его для реализации различных систем шифрования данных. Несмотря на то, что изначально DES планировалось использовать не более 10-15 лет, попытки его замены начались только в 1997 г.

Мы не будем рассматривать DES подробно (почти во всех книгах из списка дополнительных материалов есть его подробнейшее описание), а обратимся к более современным алгоритмам шифрования. Стоит только отметить, что основная причина изменения стандарта шифрования - его относительно слабая криптостойкость, причина которой в том, что длина ключа DES составляет всего 56 значащих бит. Известно, что любой криптостойкий алгоритм можно взломать, перебрав все возможные варианты ключей шифрования (так называемый метод грубой силы - brute force attack). Легко подсчитать, что кластер из 1 млн процессоров, каждый из которых вычисляет 1 млн ключей в секунду, проверит 256 вариантов ключей DES почти за 20 ч. А поскольку по нынешним меркам такие вычислительные мощности вполне реальны, ясно, что 56-бит ключ слишком короток и алгоритм DES необходимо заменить на более "сильный".

Сегодня все шире используются два современных криптостойких алгоритма шифрования: отечественный стандарт ГОСТ 28147-89 и новый криптостандарт США - AES (Advanced Encryption Standard).

Стандарт ГОСТ 28147-89

Алгоритм, определяемый ГОСТ 28147-89 (рис. 1), имеет длину ключа шифрования 256 бит. Он шифрует информацию блоками по 64 бит (такие алгоритмы называются блочными), которые затем разбиваются на два субблока по 32 бит (N1 и N2). Субблок N1 обрабатывается определенным образом, после чего его значение складывается со значением субблока N2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR - "исключающее или"), а затем субблоки меняются местами. Данное преобразование выполняется определенное число раз ("раундов"): 16 или 32 в зависимости от режима работы алгоритма. В каждом раунде выполняются две операции.

Первая - наложение ключа. Содержимое субблока N1 складывается по модулю 2 с 32-бит частью ключа Kx. Полный ключ шифрования представляется в виде конкатенации 32-бит подключей: K0, K1, K2, K3, K4, K5, K6, K7. В процессе шифрования используется один из этих подключей - в зависимости от номера раунда и режима работы алгоритма.

Вторая операция - табличная замена. После наложения ключа субблок N1 разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены (Substitution box - S-box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция. В таблицу записываются выходные значения блоков. Блок данных определенной размерности (в нашем случае - 4-бит) имеет свое числовое представление, которое определяет номер выходного значения. Например, если S-box имеет вид 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 и на вход пришел 4-бит блок "0100" (значение 4), то, согласно таблице, выходное значение будет равно 15, т. е. "1111" (0 а 4, 1 а 11, 2 а 2 ...).

Алгоритм, определяемый ГОСТ 28147-89, предусматривает четыре режима работы: простой замены, гаммирования, гаммирования с обратной связью и генерации имитоприставок. В них используется одно и то же описанное выше шифрующее преобразование, но, поскольку назначение режимов различно, осуществляется это преобразование в каждом из них по-разному.

В режиме простой замены для зашифрования каждого 64-бит блока информации выполняются 32 описанных выше раунда. При этом 32-бит подключи используются в следующей последовательности:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 и т. д. - в раундах с 1-го по 24-й;

K7, K6, K5, K4, K3, K2, K1, K0 - в раундах с 25-го по 32-й.

Расшифрование в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

K0, K1, K2, K3, K4, K5, K6, K7 - в раундах с 1-го по 8-й;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 и т. д. - в раундах с 9-го по 32-й.

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

В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра - это специальная последовательность, которая получается в результате определенных операций с регистрами N1 и N2 (см. рис. 1).

1. В регистры N1 и N2 записывается их начальное заполнение - 64-бит величина, называемая синхропосылкой.

2. Выполняется зашифрование содержимого регистров N1 и N2 (в данном случае - синхропосылки) в режиме простой замены.

3. Содержимое регистра N1 складывается по модулю (232 - 1) с константой C1 = 224 + 216 + 28 + 24, а результат сложения записывается в регистр N1.

4. Содержимое регистра N2 складывается по модулю 232 с константой C2 = 224 + 216 + 28 + 1, а результат сложения записывается в регистр N2.

5. Содержимое регистров N1 и N2 подается на выход в качестве 64-бит блока гаммы шифра (в данном случае N1 и N2 образуют первый блок гаммы).

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

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

Зашифрование и расшифрование в режиме гаммирования

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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не секретна, однако есть системы, где синхропосылка - такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.

В режиме гаммирования с обратной связью для заполнения регистров N1 и N2, начиная со 2-го блока, используется не предыдущий блок гаммы, а результат зашифрования предыдущего блока открытого текста (рис. 2). Первый же блок в данном режиме генерируется полностью аналогично предыдущему.

Рис. 2. Выработка гаммы шифра в режиме гаммирования с обратной связью.

Рассматривая режим генерации имитоприставок , следует определить понятие предмета генерации. Имитоприставка - это криптографическая контрольная сумма, вычисляемая с использованием ключа шифрования и предназначенная для проверки целостности сообщений. При генерации имитоприставки выполняются следующие операции: первый 64-бит блок массива информации, для которого вычисляется имитоприставка, записывается в регистры N1 и N2 и зашифровывается в сокращенном режиме простой замены (выполняются первые 16 раундов из 32). Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в N1 и N2.

Цикл повторяется до последнего блока информации. Получившееся в результате этих преобразований 64-бит содержимое регистров N1 и N2 или его часть и называется имитоприставкой. Размер имитоприставки выбирается, исходя из требуемой достоверности сообщений: при длине имитоприставки r бит вероятность, что изменение сообщения останется незамеченным, равна 2-r.Чаще всего используется 32-бит имитоприставка, т. е. половина содержимого регистров. Этого достаточно, поскольку, как любая контрольная сумма, имитоприставка предназначена прежде всего для защиты от случайных искажений информации. Для защиты же от преднамеренной модификации данных применяются другие криптографические методы - в первую очередь электронная цифровая подпись.

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

Алгоритм ГОСТ 28147-89 считается очень сильным алгоритмом - в настоящее время для его раскрытия не предложено более эффективных методов, чем упомянутый выше метод "грубой силы". Его высокая стойкость достигается в первую очередь за счет большой длины ключа - 256 бит. При использовании секретной синхропосылки эффективная длина ключа увеличивается до 320 бит, а засекречивание таблицы замен прибавляет дополнительные биты. Кроме того, криптостойкость зависит от количества раундов преобразований, которых по ГОСТ 28147-89 должно быть 32 (полный эффект рассеивания входных данных достигается уже после 8 раундов).

Стандарт AES

В отличие от алгоритма ГОСТ 28147-89, который долгое время оставался секретным, американский стандарт шифрования AES, призванный заменить DES, выбирался на открытом конкурсе, где все заинтересованные организации и частные лица могли изучать и комментировать алгоритмы-претенденты.

Конкурс на замену DES был объявлен в 1997 г. Национальным институтом стандартов и технологий США (NIST - National Institute of Standards and Technology). На конкурс было представлено 15 алгоритмов-претендентов, разработанных как известными в области криптографии организациями (RSA Security, Counterpane и т. д.), так и частными лицами. Итоги конкурса были подведены в октябре 2000 г.: победителем был объявлен алгоритм Rijndael, разработанный двумя криптографами из Бельгии, Винсентом Риджменом (Vincent Rijmen) и Джоан Даймен (Joan Daemen).

Алгоритм Rijndael не похож на большинство известных алгоритмов симметричного шифрования, структура которых носит название "сеть Фейстеля" и аналогична российскому ГОСТ 28147-89. Особенность сети Фейстеля состоит в том, что входное значение разбивается на два и более субблоков, часть из которых в каждом раунде обрабатывается по определенному закону, после чего накладывается на необрабатываемые субблоки (см. рис. 1).

В отличие от отечественного стандарта шифрования, алгоритм Rijndael представляет блок данных в виде двухмерного байтового массива размером 4X4, 4X6 или 4X8 (допускается использование нескольких фиксированных размеров шифруемого блока информации). Все операции выполняются с отдельными байтами массива, а также с независимыми столбцами и строками.

Алгоритм Rijndael выполняет четыре преобразования: BS (ByteSub) - табличная замена каждого байта массива (рис. 3); SR (ShiftRow) - сдвиг строк массива (рис. 4). При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4X4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта. Далее идет MC (MixColumn) - операция над независимыми столбцами массива (рис. 5), когда каждый столбец по определенному правилу умножается на фиксированную матрицу c(x). И, наконец, AK (AddRoundKey) - добавление ключа. Каждый бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который, в свою очередь, определенным образом вычисляется из ключа шифрования (рис. 6).


Рис. 3. Операция BS.

Рис. 4. Операция SR.

Рис. 5. Операция MC.

Количество раундов шифрования (R) в алгоритме Rijndael переменное (10, 12 или 14 раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).

Расшифрование выполняется с помощью следующих обратных операций. Выполняется обращение таблицы и табличная замена на инверсной таблице (относительно применяемой при зашифровании). Обратная операция к SR - это циклический сдвиг строк вправо, а не влево. Обратная операция для MC - умножение по тем же правилам на другую матрицу d(x), удовлетворяющую условию: c(x) * d(x) = 1. Добавление ключа AK является обратным самому себе, поскольку в нем используется только операция XOR. Эти обратные операции применяются при расшифровании в последовательности, обратной той, что использовалась при зашифровании.

Rijndael стал новым стандартом шифрования данных благодаря целому ряду преимуществ перед другими алгоритмами. Прежде всего он обеспечивает высокую скорость шифрования на всех платформах: как при программной, так и при аппаратной реализации. Его отличают несравнимо лучшие возможности распараллеливания вычислений по сравнению с другими алгоритмами, представленными на конкурс. Кроме того, требования к ресурсам для его работы минимальны, что важно при его использовании в устройствах, обладающих ограниченными вычислительными возможностями.

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

Асимметричное шифрование

Алгоритмы асимметричного шифрования, как уже отмечалось, используют два ключа: k1 - ключ зашифрования, или открытый, и k2 - ключ расшифрования, или секретный. Открытый ключ вычисляется из секретного: k1 = f(k2).

Асимметричные алгоритмы шифрования основаны на применении однонаправленных функций. Согласно определению, функция y = f(x) является однонаправленной, если: ее легко вычислить для всех возможных вариантов x и для большинства возможных значений y достаточно сложно вычислить такое значение x, при котором y = f(x).

Примером однонаправленной функции может служить умножение двух больших чисел: N = P*Q. Само по себе такое умножение - простая операция. Однако обратная функция (разложение N на два больших множителя), называемая факторизацией, по современным временным оценкам представляет собой достаточно сложную математическую задачу. Например, разложение на множители N размерностью 664 бит при P ? Q потребует выполнения примерно 1023 операций, а для обратного вычисления х для модульной экспоненты y = ax mod p при известных a, p и y (при такой же размерности a и p) нужно выполнить примерно 1026 операций. Последний из приведенных примеров носит название - "Проблема дискретного логарифма" (DLP - Discrete Logarithm Problem), и такого рода функции часто используются в алгоритмах асимметричного шифрования, а также в алгоритмах, используемых для создания электронной цифровой подписи.

Еще один важный класс функций, используемых в асимметричном шифровании, - однонаправленные функции с потайным ходом. Их определение гласит, что функция является однонаправленной с потайным ходом, если она является однонаправленной и существует возможность эффективного вычисления обратной функции x = f-1(y), т. е. если известен "потайной ход" (некое секретное число, в применении к алгоритмам асимметричного шифрования - значение секретного ключа).

Однонаправленные функции с потайным ходом используются в широко распространенном алгоритме асимметричного шифрования RSA.

Алгоритм RSA

Разработанный в 1978 г. тремя авторами (Rivest, Shamir, Adleman), он получил свое название по первым буквам фамилий разработчиков. Надежность алгоритма основывается на сложности факторизации больших чисел и вычисления дискретных логарифмов. Основной параметр алгоритма RSA - модуль системы N, по которому проводятся все вычисления в системе, а N = P*Q (P и Q - секретные случайные простые большие числа, обычно одинаковой размерности).

Секретный ключ k2 выбирается случайным образом и должен соответствовать следующим условиям:

1

где НОД - наибольший общий делитель, т. е. k1 должен быть взаимно простым со значением функции Эйлера F(N), причем последнее равно количеству положительных целых чисел в диапазоне от 1 до N, взаимно простых с N, и вычисляется как F(N) = (P - 1)*(Q - 1) .

Открытый ключ k1 вычисляется из соотношения (k2*k1) = 1 mod F(N) , и для этого используется обобщенный алгоритм Евклида (алгоритм вычисления наибольшего общего делителя). Зашифрование блока данных M по алгоритму RSA выполняется следующим образом: C = M[в степени k1] mod N . Заметим, что, поскольку в реальной криптосистеме с использованием RSA число k1 весьма велико (в настоящее время его размерность может доходить до 2048 бит), прямое вычисление M[в степени k1] нереально. Для его получения применяется комбинация многократного возведения M в квадрат с перемножением результатов.

Обращение данной функции при больших размерностях неосуществимо; иными словами, невозможно найти M по известным C, N и k1. Однако, имея секретный ключ k2, при помощи несложных преобразований можно вычислить M = Ck2 mod N. Очевидно, что, помимо собственно секретного ключа, необходимо обеспечивать секретность параметров P и Q. Если злоумышленник добудет их значения, то сможет вычислить и секретный ключ k2.

Какое шифрование лучше?

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

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

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

Дополнительные источники информации

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

  1. Брассар Ж. "Современная криптология".
  2. Петров А. А. "Компьютерная безопасность: криптографические методы защиты".
  3. Романец Ю. В., Тимофеев П. А., Шаньгин В. Ф. "Защита информации в современных компьютерных системах".
  4. Соколов А. В., Шаньгин В. Ф. "Защита информации в распределенных корпоративных сетях и системах".

Полное описание алгоритмов шифрования можно найти в следующих документах:

  1. ГОСТ 28147-89. Система обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. - М.: Госстандарт СССР, 1989.
  2. Алгоритм AES: http://www.nist.gov/ae .
  3. Алгоритм RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1 .

Модели криптографических систем

Шифротекст - результат операции шифрования. Часто также используется вместо термина «криптограмма», хотя последний подчёркивает сам факт передачи сообщения, а не шифрования.

Процесс применения операции шифрования к шифротексту называется перешифровкой.

Свойства шифротекста

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

· Свойство однозначности шифрования:

· Из цепных равенств следует

(из свойства однозначности расшифрования)

(из принципа независимости открытого текста от ключа и свойства однозначности шифрования)тогда

это равенство используется для вывода формулы расстояния единственности.

· Для абсолютно надёжной криптосистемы

То есть

Использование для криптоанализа

Шеннон в статье 1949 года «Теория связи в секретных системах» показал, что для некоторого случайного шифра теоретически возможно (используя неограниченные ресурсы) найти исходный открытый текст, если известно букв шифротекста, где - энтропия ключа шифра, r - избыточность открытого текста (в том числе с учётом контрольных сумм и т. д.), N - объём используемого алфавита.

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

В целом, шифрование состоит из двух составляющих - зашифрование и расшифрование.

С помощью шифрования обеспечиваются три состояния безопасности информации:

· Конфиденциальность: шифрование используется для скрытия информации от неавторизованных пользователей при передаче или при хранении.

· Целостность: шифрование используется для предотвращения изменения информации при передаче или хранении.

· Идентифицируемость: шифрование используется для аутентификации источника информации и предотвращения отказа отправителя информации от того факта, что данные были отправлены именно им.

Зашифрование и расшифрование

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

· Шифрующая функция:

· Расшифровывающая функция:

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

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

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

· Важной характеристикой шифрующей функции E является ее криптостойкость . Косвенной оценкой криптостойкости является оценка взаимной информации между открытым текстом и шифротекстом, которая должна стремиться к нулю.

Криптостойкость шифра

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

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

Абсолютно стойкие системы

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

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

Требования к абсолютно стойким системам шифрования:

· Ключ генерируется для каждого сообщения (каждый ключ используется один раз).

· Ключ статистически надёжен (то есть вероятности появления каждого из возможных символов равны, символы в ключевой последовательности независимы и случайны).

· Длина ключа равна или больше длины сообщения.

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

· Шифрующая система должна создаваться с исключительно глубоким знанием структуры используемого языка передачи сообщений



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

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

Криптографическая система с открытым ключом (или асимметричное шифрование, асимметричный шифр) - система шифрования и/или электронной подписи (ЭП), при которой открытый ключ передаётся по открытому (то есть незащищённому, доступному для наблюдения) каналу и используется для проверки ЭП и для шифрования сообщения. Для генерации ЭП и для расшифровки сообщения используется закрытый ключ. Криптографические системы с открытым ключом в настоящее время широко применяются в различных сетевых протоколах, в частности, в протоколах TLS и его предшественнике SSL (лежащих в основе HTTPS), в SSH. Также используется в PGP, S/MIME.

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

10.3.1. Системы шифрования

Среди криптографических систем, обеспечивающих сохранение информации в тайне, наибольшее распространение получили системы шифрования информации. Рассмотрим обобщенную модель системы шифрования представленную на рис. 10.6.

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

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

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

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

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

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

Известно , что максимальная степень защищенности информации от чтения достигается, если произвольные передаваемые сообщения и наблюдаемые нарушителем соответствующие им криптограммы статистически независимы:

.

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

Основной характеристикой шифра является криптостойкость, которая обычно определяется интервалом времени, необходимым для раскрытия шифра. К шифрам, используемым для криптографической защиты информации, предъявляется ряд требований:

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

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

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

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

Шифрование гаммированием заключается в том, что символы исходного текста складываются с символами некоторой псевдослучайной последовательности, именуемой гаммой шифра. Примером может служить, поразрядное сложение сообщения и гаммы при формировании криптограммы . На приеме необходимо генерировать такую же псевдослучайную последовательность () тогда дешифрование будет осуществляться на основе следующего преобразования: . Стойкость шифрования определяется в основном длиной (периодом) неповторяющейся части гаммы шифра. Поскольку с помощью ЭВМ можно генерировать гамму шифра очень большой длины, то данный способ является одним из основных для шифрования информации в автоматизированных системах.