3. Наконец, можно сделать движение барабанов хаотичным по случайной последовательности, тоже вырабатываемой по ключу.
Число ключей такого шифра. Пусть длина периода программного генератора случайных чисел равна 2**24. Восемь барабанов, генерируемые с помощью этого генератора, дадут вместе 2**192 вариантов ключа, а если учесть еще варианты псевдослучайной последовательности, управляющей движением барабанов, то получится внушительная цифра в 2**216 вариантов ключа. Таким образом, довольно просто получить устойчивый шифр даже при использовании программного генератора случайных чисел с периодом малой для криптографии длины.
'----------имитация Энигмы
DEFINT I-N: DEFSTR S
CLS : RANDOM12E 231
DIM s(4, 32) AS STRING * 1
ns = 4
ss = "ААААААААААААААААААААААААААААА'
PRINT ss
'-----------ШИФРОВАНИЕ
x = RND(-231)
FOR i=0 TO ns
FOR j=0 TO 32:set(i,j) = CHR$(j):NEXT
FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):
NEXT
NEXT
s=""
FOR i = 1 TO LEN(ss) 'шифрование символа
k=ASC (MID$ (ss ,i ,1)): IF k>32 THEN k=k-128
FOR j = 0 TO ns:k=ASC(set(j, k)):NEXT
IF k < 32 THEN k = k+ 128
PRINT CHR$ (k); : s = s + CHR$ (k)
k = ns * RND 'поворот колес
FOR j=0 TO 31:SWAP s(k,j),s(k,j+1):NEXT
FOR j=0 TO 32
s(k,j)=CHR$((ASC(set(k, j)) + 32) MOD 33)
NEXT
NEXT
'----------РАСШИФРОВЫВАНИЕ
x = RND(-231)
FOR i=0 TO ns
FOR j=0 TO 32:s(i,j)=CHR$(j):NEXT
FOR j=0 TO 32:SWAP s(i,j),s(i,32*RND):NEXT
FOR j=0 TO 32
IF ASC (set (i, j)) < 64 THEN
m =j:n=ASC(s(i, j))
DO
k=ASC(s(i,n)):s(i,n)=CHR$(m OR 64)
m=n: n=k
LOOP UNTIL m = j
END IF
NEXT j
FOR j=0 TO 32
s(i,j)=CHR$(ASC(s(i,j)) AND 63)
NEXT
NEXT i
ss = s
FOR i = 1 TO LEN(ss)
k=ASC(MID$(ss,i ,1)): IF k>32 THEN k=k-128
FOR j=ns TO 0 STEP -1
k=ASC(s(j,k))
NEXT
IF k<32 THEN k=k+128
PRINT CHR$ (k) ;
k = ns * RND 'поворот колес
FOR j = 0 TO 31: SWAP s(k,j),s(k,j+1):NEXT
FOR j = 0 TO 32
s(k,j)=CHR$((ASC(s(k,j))+32) MOD 33)
NEXT
NEXT i
END
для упрощения текста программы ключ задается лишь из 3 бит числом 231 и используются лишь 5 барабанов.
Гаммирование
Суть метода состоит в том, что ключ к декодированию байта вычисляется на основе предыдущего байта. При этом сам ключ может модифицироваться от байта к байту. Алгоритм кодирования следующий :
1) вводим ключ;
2) производим с байтом файла одно из действий из множества {+,-,} (с игнорированием переноса);
3) полученный байт является ключом к следующему байту файла ;
4) пока не дошли до конца файла, повторяем п.3.
Декодирование производится по аналогичному алгоритму.
Из простейших процедур, имитирующих случайные числа, наиболее употребляем так называемый конгруэнтный способ, приписываемый Д.Х. Лемеру:
G(n+1)=KGn+C MOD M
В нем каждое последующее псевдослучайное число G(n+1) получается из предыдущего Gn умножением его на К, сложением с С и взятием остатка от деления на М. Весь фокус здесь в том, чтобы подобрать хорошие значения К, С и М. Например, выбрав закон генерации последовательности G(N+1) = Ent (sqr(2)*Gn) на IBM PC при формате представления чисел с плавающей запятой IEEE в 4 байта, получим псевдослучайные ряды, обязательно заканчивающиеся циклами с периодами длиной всего лишь 1225 и 147 в зависимости от начального заполнения. Разумнее вычисления вести в целых числах. Для них было установлено, что при С=0 и М=2**N наибольший период М/4 достигается при K=3+8*i или K=5+8*i и нечетном начальном числе. При достаточно больших К ряд производит впечатление случайного.
Конгруэнтные датчики ПСЧ для гаммирования
Одним из хороших конгруэнтных генераторов является линейный конгруэнтный датчик ПСЧ. Он вырабатывает последовательности псевдослучайных чисел T(i), описываемые соотношением
T(i+1) = (A*T(i)+C) mod m,
где А и С - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ.
Такой датчик ПСЧ генерирует псевдослучайные числа с определенным периодом повторения, зависящим от выбранных значений А и С. Значение m обычно устанавливается равным 2n , где n - длина машинного слова в битах. Датчик имеет максимальный период М до того, как генерируемая последовательность начнет повторяться. По причине, отмеченной ранее, необходимо выбирать числа А и С такие, чтобы период М был максимальным. Как показано Д. Кнутом, линейный конгруэнтный датчик ПСЧ имеет максимальную длину М тогда и только тогда, когда С - нечетное, и А mod 4 = 1.
Целочисленные последовательности
Интересный класс генераторов случайных чисел неоднократно предлагался многими специалистами целочисленной арифметике, в частности Джорджем Марсалиа и Арифом Зейманом. Генераторы этого типа основаны на использовании последовательностей Фибоначчи. Классический пример такой последовательности {0, 1, 1, 2, 3, 5, 8, 13, 21, 34...}. За исключением первых двух ее членов, каждый последующий член равен сумме двух предшествующих. Если брать только последнюю цифру каждого числа в последовательности, то получится последовательность чисел {0, 1, 1, 2, 5, 8, 3, 1, 4, 5, 9, 4...} Если эта последовательность применяется для начального заполнения массива большой длины, то, используя этот массив, можно создать генератор случайных чисел Фибоначчи с запаздыванием, где складываются не соседние, а удаленные числа. Марсалиа и Зейман предложили ввести в схему Фибоначчи "бит переноса", который может иметь начальное значение 0 или 1. Построенный на этой основе генератор "сложения с переносом" приобретает интересные свойства, на их основании можно создавать последовательности, период которых значительно больше, чем у применяемых в настоящее время конгруэнтных генераторов.
Датчики М-последовательностей
М-последовательности также популярны, благодаря относительной легкости их реализации.
М-последовательности представляют собой линейные рекуррентные последовательности максимального периода, формируемые k-разрядными генераторами на основе регистров сдвига. На каждом такте поступивший бит сдвигает k предыдущих и к нему добавляется их сумма по модулю 2. Вытесняемый бит добавляется к гамме.
Строго это можно представить в виде следующих отношений:
r1:=r0 r2:=r1 ... rk-1:=rk-2
r0:=a0 r1 Е a1 r2 Е ... Е ak-2 rk-1
Гi:=rk-
Здесь r0 r1 ... rk-1 - k однобитных регистров, a0 a1 ... ak-1 - коэффициенты неприводимого двоичного полинома степени k-1. Гi - i-е значение выходной гаммы.
Период М-последовательности исходя из ее свойств равен 2k-1.
Другим важным свойством М-последовательности является объем ансамбля, т.е. количество различных М-последовательностей для заданного k. Эта характеристика приведена в таблице:
k | Объем ансамбля |
5 | 6 |
6 | 8 |
7 | 18 |
8 | 16 |
9 | 48 |
10 | 60 |
16 | 2048 |
Этот метод похож на метод гаммирования, но к нему добавляется еще модификация ключа. В данном случае ключ модифицируется по случайному закону по формуле
где С mod 4 = 1,
N+1 - максимальное псевдослучайное число этого ряда,
- ключ для предыдущей итерации;
Ki- ключ для новой итерации.
Метод цепочечного гаммированияМетод аналогичен методу гаммирования, но ключ изменяется по-другому. Суть метода: имеется последовательность ключей (например, 16). Каждый ключ содержит в себе 12 разрядов ключевого числа для кодирования и 4 разряда для указания следующего ключа в цепочке. После использования ключа берем новый по адресу, указанному в текущем ключе.
Список литературы
1. Гатчин Ю.А., Коробейников А.Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002. - 29 с.
2. Главная редакция физико-математической литературы, 1974. 324с.
3. Иванов М.А. Криптографические методы защиты информации в компьютерных системах и сетях. – М.: КУДИЦ-ОБРАЗ, 2001, - 368 с.
4. Кон П. Универсальная алгебра. - М.: Мир. - 1968. 351 с
5. Коробейников А. Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002. 41 с
6. Левин Максим. Криптография. Руководство пользователя. - М.: Познавательная книга плюс, 2001, - 320 с.
7. Левин М. Криптография. Руководство пользователя. - М.: Познавательная книга плюс, 2001, - 320 с.
8. Молдовян А.А., Молдовян Н.А., Советов Б.Я. Криптография. – СПб.: Издательство "Лань", 2001, - 224 с.
9. Панасенко С.П. Алгоритмы шифрования. Специальный справочник BHV-Санкт-Петербург, 2009. – 576с.
10. Смирнов В.И. Курс высшей математики, том III, часть I – М:. Наука,
11. Чмора А.Л. Современная прикладная криптография. 2-е изд. – М.: Гелиос, АРВ, 2002. – 256 с. ил.
... » использовались раньше, а в наши дни они заложены практически в любой, даже самой сложной программе шифрования. Каждый из рассмотренных методов реализует собственный способ криптографической защиты информации и имеет собственные достоинства и недостатки, но их общей важнейшей характеристикой является стойкость. Под этим понимается минимальный объем зашифрованного текста, статистическим анализом ...
... . Так как система с открытыми ключами позволяет распределять ключи и в симметричных системах, можно объединить в системе передачи защищенной информации асимметричный и симметричный алгоритмы шифрования. С помощью первого рассылать ключи, вторым же - собственно шифровать передаваемую информацию Обмен информацией можно осуществлять следующим образом: · получатель вычисляет открытый и ...
... ; - длина обрабатываемого блока; - сложность аппаратной/программной реализации; - сложность преобразования. В данном курсовом проекте предлагается программная реализация алгоритма шифровании DES (режим ЕСВ). 1. Описание алгоритма Стандарт шифрования данных DES опубликован в 1977 г. Национальным бюро стандартом США. Стандарт DES предназначен для защиты от несанкционированного доступа к ...
... середины» – минимальные потери производительных мощностей при максимально высоком уровне защиты информации. Обоснование отказа от аппаратной составляющей. Жёсткой необходимости отказа от аппаратного обеспечения криптографической защиты нет, однако необходимости её использовать нет по следующим причинам: 1. Размеры сети не столь обширны, так что огромных вычислений, направленных на ...
0 комментариев