Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
комплекс ИБ новый для публикации в ИНТЕРНЕТ .doc
Скачиваний:
649
Добавлен:
10.02.2015
Размер:
6.19 Mб
Скачать

7.1.3. Аналитические методы шифрования

Для шифрования информации могут использоваться аналитические преобразования. Наибольшее распространение получили методы шифрования, основанные на использовании матричной алгебры. Зашифрование k-го блока исходной информации, представленного в виде вектора Bk= ||bj||, осуществляется путем перемножения матрицы-ключа А = ||aij|| и вектора Bk. В результате перемножения получается блок шифртекста в виде вектора Ck= ||ci|| , где элементы вектора Ckопределяются по формуле:

Расшифрование информации осуществляется путем последовательного перемножения векторов Ckи матрицы A-1, обратной матрице A.

Пример шифрования информации с использованием алгебры матриц.

Пусть необходимо зашифровать и расшифровать слово

Т0 = < ЗАБАВА> с помощью матрицы-ключа А:

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

Шаг 1. Определяется числовой эквивалент исходного слова как последовательность соответствующих порядковых номеров букв слов Тэ:

Tэ= <8, 1, 2, 1, 3, 1>

Шаг 2. Умножение матрицы А на векторы В1= {8, 1, 2} и В2= {1, 3, 1}:

;

Шаг 3. Зашифрованное слово записывается в виде последовательности чисел Т1 = <28, 35, 67, 21, 26, 38>.

Расшифрование слова осуществляется следующим образом.

Шаг 1. Вычисляется определитель |А| = -115.

Шаг 2. Определяется присоединенная матрица А*, каждый элемент которой является алгебраическим дополнением элемента матрицы А

.

Шаг 3. Получается транспонированная матрица АT

Шаг 4. Вычисляется обратная матрица А-1по формуле:

А-1= АТ/|А|.

В результате вычислений обратная матрица имеет вид:

Шаг 5. Определяются векторы B1и B2:

B1= A-1*C1; B2= A-1*C2.

,

Шаг 6. Числовой эквивалент расшифрованного слова

Тэ= <8, 1, 2, 1, 3, 1> заменяется символами, в результате чего получается исходное слово Т0= <ЗАБАВА>.

7.1.4. Аддитивные методы шифрования

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

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

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

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

Среди конгруэнтных генераторов ПСЧ выделяется своей простотой и эффективностью линейный генератор, вырабатывающий псевдослучайную последовательность чисел Т(i) в соответствии с соотношением

Т(i+1) = (а * Т(i) + с) mod m,

где а и с - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа.

Период повторения такого датчика ПСЧ зависит от величин а и с. Значение m обычно принимается равным 2s, где s - длина слова ЭВМ в битах. Период повторения последовательности генерируемых чисел будет максимальным тогда и только тогда, когда с - нечетное число и а (mod 4) = 1 : Такой генератор может быть сравнительно легко создан как аппаратными средствами, так и программно.

Шифр гаммирования

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

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

Можно сформулировать 3 основных требования к криптографически стойкому генератору псевдослучайной последовательности или гаммы:

1. Период гаммы должен быть достаточно большим для шифрования сообщений различной длины.

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

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

Режим гаммирования ГОСТ 28147-89

Схема реализации режима гаммирования приведена на рисунке 1.9.

Открытые данные, разбитые на 64-разрядные блоки T0(i)зашифровываются в режиме гаммирования путем поразрядного суммирования по модулю 2 в сумматоре СМ5с гаммой шифра Гш(i), которая вырабатывается блоками по 64 бита. Число двоичных разрядов в блоке Т0(M), где М определяется объемом шифруемых даных может быть меньше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока Гш(M)отбрасывается.

В КЗУ вводятся 256 бит ключа. В накопители N1, N2вводится 64-разрядная двоичная последовательность (синхропосылка) S=(S1,S2,...,S64), являющаяся исходным заполнением этих накопителей для последующей выработки М блоков гаммы шифра. Синхропосылка вводится в N1и N2так, что значение S1вводится в 1-ый разряд N1, значение S33- в 1-ый разряд N2, S64- в 32-й разряд N2.

Исходное заполнение накопителей N1и N2(синхропосылка S) зашифровывается в режиме простой замены (нижняя часть рисунка). Результат зашифрования A(S)=(Y0,Z0) переписывается в 32-разрядные накопители N3и N4так, что заполнение N1переписывается в N3, а N2 - в N4.

Заполнение накопителя N4суммируется по модулю (232-1) в сумматоре СМ4с 32-разрядной константой С1из накопителя N6, результат записывается в N4.

Заполнение накопителя N3суммируется по модулю 232в сумматоре СМ3с 32- разрядной константой С2из накопителя N5, результат записывается в N3.

Заполнение N3переписывается в N1, а заполнение N4 - в N2. При этом заполнение N3, N4сохраняется.

Заполнение N1и N2зашифровывается в режиме простой замены. Полученное в результате в N1, N2зашифрование образует первый 64-рарядный блок гаммы шифра Гш(1), который суммируется в СМ5с первым 64- разрядным блоком открытых данных Т0(1).

В результате получается 64 - разрядный блок зашифрования данных Гш(1).

Для получения следующего 64-разрядного блока гаммы шифра Гш(2)заполнение N4 суммируется по модулю (232-1) в СМ4. С константой С1из N6, заполнение N3суммируется по модулю 232в сумматоре СМ3с С2 (в N5). Новое заполнение N3переписывается в N1, а новое заполнение N4переписывается в N2., при этом заполнение N3,N4сохраняется.

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

Аналогично вырабатываются блоки гаммы шифра Гш(3), ... , Гш(М)и зашифровываются блоки открытых данных Т0(3), ..., Т0(М).

В канал связи (или память ЭВМ) передается синхропосылка S и блоки зашифрованных данных Тш(1), Тш(2), ..., Тш(М).

Уравнение зашифрования имеет вид:

Tш(i)= A(Yi-1 C2, Zi-1 C1)T0(i)= Гш(i) T0(i),

Где - суммирование по модулю 232,

- суммирование по модулю 232-1,

- суммирование по модулю 2,

Yi- содержимое накопителя N3после зашифрования i-го блока открытых данных T0(i);

Zi- содержимое накопителя N4после зашифрования i-го блока открытых данных T0(i).

(Y0, Z0) = A(S).

Рис.1.9 Режим гаммирования ГОСТ 28147-89

Открытое распределение ключей. Схема Диффи-Хеллмана

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

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

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

- ограничение круга лиц, допущенных к работе с ключами;

- регламентация рассылки, хранения и уничтожения ключей;

- регламентация порядка смены ключей;

- применение технических мер защиты ключевой информации от несан­кционированного доступа.

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

Понятие односторонней функции было введено в теоретическом исследовании о защите входа в вычислительные системы . Функция f(x) называется односторонней (one-way function), если для всех x из ее области определения легко вычислить y=f(x), но нахождение по заданному y0такого x0, для которого f(x0)=y0,вычислительно неосуществимо, то есть требуется настолько огромный объем вычислений, что за них просто и не стоит браться.

Однако существование односторонних функций не доказано. В качестве приближения была предложена Гиллом Дж. целочисленная показательная функция f(x)=ax(mod n), где основание a и показатель степени x принадлежат интервалу (1,n-1), а умножение ведется по модулю n (3*4 mod 10=2; 7*8mod 9=2). Функция вычисляется достаточно эффективно по схеме Горнера. Если представление числа x в двоичной форме имеет вид

xk-12k-1+ xk-22k-2+ ...+ x121+ x020,

то

y=f(x) =ax modn= ((...(axk-1)2*axk-2)2*...*ax1)2*ax0 modn.

Операция, обратная к этой, известна как операция вычисления дискретного логарифма:по заданным y, a и n найти такое целое x, что aх( mod n) = y. До настоящего времени не найдено достаточно эффективных алгоритмов решения этой задачи.

Американские криптологи Диффи и Хеллман (Diffi W., Hellman M.E. New direction in criptography. IEEE Trans. Inf. Theory, v. IT-22, 1976) предложили схему распространения (рассылки) ключей для секретной связи на основе односторонней показательной функции. Ее суть состоит в следующем.

В протоколе обмена секретными ключами предполагается, что все пользователи знают некоторые числа nиa(1< a < n). Для выработки общего секретного ключа пользователи A и B должны проделать следующую процедуру:

1. Определить секретные ключи пользователей КАи КВ.

Для этого каждый пользователь независимо выбирает случайные числа из интервала (1,..., n-1).

2. Вычислить открытые ключи пользователей YAи YB.

Для этого каждый использует одностороннюю показательную функцию Y=akmod n со своим секретным ключом.

3. Обменяться ключами YAи YBпо открытому каналу связи.

4. Независимо определить общий секретный ключ К.

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

A: YBKA(mod n) = [aKB ]KA mod n = aKA*KB mod n = K.

B: YAKB(mod n) = [aKA ]KB mod n = aKB*KA mod n = K.

Здесь каждый имеет показатель степени, а основание получает от партнера

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