Смекни!
smekni.com

Изучение криптографических методов подстановки (замены) (стр. 3 из 4)

Шифр Гронсфельда

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

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

Таблица 7 – Пример использования шифра Гронсфельда

Сообщение В О С Т О Ч Н Ы Й Э К С П Р Е С С
Ключ 2 7 1 8 2 7 1 8 2 7 1 8 2 7 1 8 2
Шифртекст Д Х Т Ь Р Ю О Г Л Д Л Щ С Ч Ж Щ У

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

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

Аффинная система подстановок Цезаря

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

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

Определим в такой системе преобразование Еa,b: ZmZm:

Еa,b(x)= ax+b mod m,

где в качестве ключа k= (a, b) используется пара целых чисел, удовлетворяющих условиям 0 a,b < m, и НОД(а,m)=1.

В данном преобразовании буква, соответствующая числу x в открытом тексте, заменяется на букву шифртекста, соответствующую числовому значению y =(ax +b) modm (например m=26 в латинском алфавите).

Следует заметить, что преобразование Еa,b(x) является взаимнооднозначным отображением на множестве Zm только в том случае, если НОД(а,m)=1, т.е. а и m должны быть взаимно простыми числами.

Это условие взаимной простоты необходимо для обеспечения инъективности отображения Еa,b(x) = ax+b mod m. Если оно не выполняется, возможна ситуация, когда две разные буквы отображаются в одну (возникает неоднозначность расшифрования), а некоторые буквы отсутствуют в шифртексте, так как никакие буквы в них не отображаются.

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

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

Криптосистема Хилла и её частный случай шифр Плэйфеpа

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

Алгебраический метод, обобщающий аффинную подстановку Цезаря для шифрования n-грамм, был сформулирован Лестером С.Хиллом.

Шифрование ведется путем выполнения умножения вектора на матрицу. Матрица является ключом шифрования. Открытый текст разбивается на n-граммы - блоки длиной n, равной размерности матрицы и каждая n-грамма х = (х0, х1, х2, … , хn-1) рассматривается как вектор.

Ключевая матрица Т размером п×п вида Т={ti,j}, i,j = 0,1, … ,n-1 задает отображение, являющееся линейным преобразованием:

Т: Zm,nZm,n,Т: ху; у=Тх,

где

.

Для расшифрования шифртекста необходимо выполнить обратное преобразование:

х = Т-1 у.

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

Т Т-1 = Т-1 Т = I, где I - единичная матрица.

Доказано, что для этого необходимо, чтобы определитель матрицы det Т, не делился на любое простое р, которое делит m.

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

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

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

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

Следует отметить, что при блочном шифровании открытые данные разбивают на блоки Т0(i) одинаковой длины, обычно по 64 бита. Гамма шифра вырабатывается в виде последовательности блоков γi аналогичной длины.

Уравнение зашифрования можно записать в виде

ci = γimi , i=1,…,M,

где ci - i-ый блок шифртекста; γi - i-ый блок гаммы шифра; mi - i-ый блок открытого текста; М - количество блоков открытого текста.

Процесс дешифрования сводится к повторной генерации гаммы шифра и наложению этой гаммы на зашифрованные данные. Уравнение расшифрования имеет вид

mi = γi  ci, i=1,…,M.

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

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

γi+1 = (аγi+ b)modm,

где а и b – константы; γ0 - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ.

Такой датчик генерирует псевдослучайные числа с определенным периодом повторения, зависящим от выбранных значений а и b. Необходимо выбирать числа a и b такие, чтобы период был максимальным. Как показано Д. Кнутом, это возможно тогда и только тогда, когда b - нечетное и взаимно простое с m, и величина а mod 4 = 1. По другим рекомендациям b - взаимно простое с m, и а нечетное.

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

Ri= ( Si+ G ) mod (k–1),

где Ri, Si, G — символы соответственно зашифрованного, исходного текста и гаммы.

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

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

Таблица 8 - Пример шифрования гаммированием

Шифруемый текст Б У Д Ь …
010010 100000 110010 100000
Знаки гаммы 7 1 8 2 …
000111 000001 001000 000010
Шифрованный текст 010101 1000001 111010 100010

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