на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Шифрование и дешифрование данных при помощи симметричных криптографических алгоритмов
p align="left">Вариант системы подстановок Вижинера при m=2 называется системой Вернама (1917г).

В то время ключ k=(k0 ,k1 ,...,kк-1) записывался на бумажной ленте. Каждая буква исходного текста в алфавите, расширенном некоторыми дополнительными знаками, сначала переводилась с использованием кода Бодо в пятибитовый символ. К исходному тексту Бодо добавлялся ключ (по модулю 2). Старинный телетайп фирмы AT&T со считывающим устройством Вернама и оборудованием для шифрования, использовался корпусом связи армии США.

Очень распространена плохая с точки зрения секретности практика использовать слово или фразу в качестве ключа для того, чтобы k=(k0 ,k1 ,...,kк-1) было легко запомнить. В ИС для обеспечения безопасности информации это недопустимо. Для получения ключей должны использоваться программные или аппаратные средства случайной генерации ключей.

Пример. Преобразование текста с помощью подстановки Вижинера (r=4)

Исходный текст (ИТ1):

НЕ_СЛЕДУЕТ_ВЫБИРАТЬ_НЕСЛУЧАЙНЫЙ_КЛЮЧ

Ключ: КЛЮЧ

Разобьем исходный текст на блоки по 4 символа:

НЕ_С ЛЕДУ ЕТ_В ЫБИР АТЬ_ НЕСЛ УЧАЙ НЫЙ_ КЛЮЧ

и наложим на них ключ (используя таблицу Вижинера):

H+К=Ч, Е+Л=Р и т.д.

Получаем зашифрованный (ЗТ1) текст:

ЧРЭЗ ХРБЙ ПЭЭЩ ДМЕЖ КЭЩЦ ЧРОБ ЭБЮ_ ЧЕЖЦ ФЦЫН

Можно выдвинуть и обобщенную систему Вижинера. ЕЕ можно сформулировать не только при помощи подстановки Цезаря.

Пусть x - подмножество симметрической группы SYM(Zm).

Определение. r-многоалфавитный ключ шифрования есть r-набор p = (p0, p1, ..., pr-1) с элементами в x.

Обобщенная система Вижинера преобразует исходный текст (x0, x1 ,..., xn-1) в шифрованный текст (y0 ,y1 ,...,yn-1) при помощи ключа p = (p0, p1, ..., pr-1) по правилу VIGk : (x0 ,x1 ,...,xn-1) ® (y0 ,y1 ,...,yn-1) = (p0(х0), p1(х1), ..., pn-1(xn-1)), где используется условие pi = pi mod r .

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

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

Шифры Бофора

Используют формулы:

Yi=CKi(xi)=(Ki-Xi) (mod m) или

Yi=CKi(xi)=(Xi-Ki) (mod m) i=0...n-1

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

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

Шифр с автоключом

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

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

Шифр машины Энигма

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

Пять барабанов могли обеспечить лишь около ста миллионов ключей, что позволяло их за день перебрать на ЭВМ. Если использовать не 25 латинских символов, а 256 кодов ASCII и увеличить число барабанов, то сложность раскалывания шифра существенно возрастет.

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

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

Число ключей такого шифра. Пусть длина периода программного генератора случайных чисел равна 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

PRINT

'----------РАСШИФРОВЫВАНИЕ

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 с. ил.

Страницы: 1, 2, 3



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.