Система шифрования Вижнера
Она подобна системе шифрования цезаря, о которой ключ подстановки меняется от буквы к букве. Таблица Вижнера для Шифрования использует 2 входа:
1. Верхнюю строку подчеркнутых символов, используемую для считывания очередной буквы исходного текста.
2. Крайний левый столбец, который является ключом.
|
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
0 |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
1 |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
2 |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
3 |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
4 |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
5 |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
6 |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
7 |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
8 |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
9 |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
10 |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
11 |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
12 |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
13 |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
14 |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
15 |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
16 |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
17 |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
18 |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
19 |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
20 |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
21 |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
22 |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
23 |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
24 |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
25 |
щ |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
26 |
ъ |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
27 |
ы |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
28 |
ь |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
29 |
э |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
30 |
ю |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
31 |
я |
а |
б |
в |
г |
д |
е |
ж |
з |
и |
й |
к |
л |
м |
н |
о |
п |
р |
с |
т |
у |
ф |
х |
ц |
ч |
ш |
щ |
ъ |
ы |
ь |
э |
ю |
Аффинная система подстановок Цезаря
В этой системе применяется одновременно операции сложения и умножения по модулю m над элементами множества Zm. В этой системе преобразования осуществляются следующим образом: E(t)=at+b(mod(m)), где a и b – целые числа, которые находятся в диапазоне 0≤a,b<m, НОД (a,m)=1, t – номер буквы исходного алфавита.
Система цезаря с ключевым словом
Система цезаря с ключевым словом является одноалфавитной системой подстановки. Особенностью этой системы является использование ключевого слова для смещения и изменения порядка следования символов алфавита. Выбирают некоторое число k, которое больше, либо равно нуля и строго меньше m, где m – количество элементов в алфавите. Затем выбирают ключевое слово или фразу, в котором желательно, чтобы не повторялись одни те же буквы. Записываем исходный алфавит, затем под буквами алфавита записываем ключевое слово, начиная с позиции k. Затем дописываем алфавит оставшимися буквами.
Шифрование методом Плейфейра
Ключевое слово: ЕЖИК.
Е |
Ж |
И |
К |
А |
Б |
В |
Г |
Д |
З |
Й |
Л |
М |
Н |
О |
П |
Р |
С |
Т |
У |
Ф |
Х |
Ц |
Ч |
Ш |
Щ |
Ъ |
Ы |
Ь |
Э |
Ю |
Я |
В 1987 году стандарт DES.
Стандарт DES предназначен для защиты от несанкционированного доступа важной, но несекретной информации.
Зашифрованные сообщения с помощью одного пакета программ можно расшифровать используя другой любой другой пакет программ соответствующий стандарту DES.
Относительная простота алгоритма обеспечивает высокую скорость обработки от 2 до 8 мегабайт/с.
Достаточная высокая стойкость алгоритма.
Алгоритм DES использует комбинацию подстановок и перестановок.
DES разбивается на блоки 64 биты, в котором значащими являются 56 битов, а остальные 8 бит предназначен контроля четности и других нужд.
Дешифрование является обратной шифрованию DES и выполняется путем повторения шифрования в обратном порядке.
Общая схема алгоритма шифрования DES следующая.
Где ИТ – исходный текст, НТ – начальная перестановка, Ш – шифрование, К – ключ, КП – конечная перестановка, ШТ – шифрованный текст.
Процесс шифрования заключается в начальной перестановке 64 битового блока, 16 циклов шифрования
Пусть из файла исходного текста считаны
58 |
50 |
42 |
34 |
26 |
18 |
10 |
2 |
60 |
52 |
44 |
36 |
28 |
20 |
12 |
4 |
62 |
54 |
46 |
38 |
|
|
|
6 |
|
|
48 |
|
|
|
|
8 |
|
|
41 |
|
|
|
|
1 |
|
|
43 |
|
|
|
|
3 |
|
|
45 |
|
|
|
|
5 |
|
|
47 |
|
|
|
|
7 |
ГОСТ 28147-89 от 1989 года
В Российской Федерации установлен единый стандарт криптографического преобразования текста для информационных систем. Он носит обязательный характер для государственных органов, организаций, предприятий, банковских и иных учреждений связаный с информационной безопасностью государства. Данный стандарт формировался с учетом мирового опыта и в частности были приняты во внимание недостатки и не реализованные возможности алгоритма DES, поэтому использования стандарта ГОСТ предпочтительнее.
Алгоритм шифрования построен с использованием сети Фейстела . В этом алгоритме будем использовать следующие операции сложения.
А + В - это побитовое сложение по модулю 2.
А [+] B – это побитовое сложение в 2 в степени 32.
А {+} B – это сложение 2 в степени 32 -1
Алгоритм криптографического преобразования предусматривает несколько режимов работы:
Режим простой замены
Режим гаммирования
Режим гаммирования с обратной связью
Во всех режимах используется ключ W длиной 256 бит, представляемый в виде 8 32-разрядных чисел.
W=x7x6x5x4x3x2x1x0
Для расшифрования используется тот же ключ но процесс расшифрования является инверсным по отношению к исходному.
Базовым режимом работы алгоритма является режим простой замены. Пусть открытые текст разбит на блоки по 64 бита в каждом, который обозначен как To. Затем блок То разбивается на 2 последовательности Вo и Ao по 32-бита. Далее выполняются итерационные процессы шифрования, которые можно описать следующими формулами.
От i=1..24
Ai=RK(Ai-1[+] X(i-1)(mod*8))+Bi-1
Bi=Ai-1
I=25..31
Ai=RK(Ai-1[+] X(32-i)+Bi-1
Bi=Ai-1
Здесь I обозначает номер итерации. Функция шифрования включает 2 операции над 32 разрядным аргументом KR. 1-ая операция является подстановкой. Блок подстановки K состоит из 8 узлов замены с памятью по 64 бита каждой.
Поступающий на 8 последовательно идущих 4 разрядных векторов, каждый из которых преобразуется в 4 разрядный вектор с соответствующим узлом замены, представляющим из себя таблицу из 16 чисел в диапазоне от 0 до 15.
Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем полученные 4-ех разрядные векторы вновь последовательно объединяются в 32 разрядные выходной.
ГОСТ 28147-89 в явном виде не указывает таблицы подстановок.
2 операция - это циклический сдвиг 32 разрядного вектора в результате подстановки в K на 11 шагов влево.
64 разрядный блок зашифрованных данных, который обозначен Tш представляется в виде
Тш=А32*В32.
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.
Общая схема режима простой замены:
Рис. В мобильнике
А для расшифровки другой ключ(секретный).Поэтому такие системы называются ассиметричными. Секретный ключ в таких системах не возможно восстановить по ключу шифрования. Общая схема ассиметричных криптосистем, следующая:
Рис 1.1
Где А - это отправитель,B – это получатель, M – исходное сообщение, c – зашифрованное сообщение, Eb – блок шифрования, Db – блок дешифрования, Ny – начальная установка, Gk – генератор установки, kb – секретный ключ, Kb – открытый ключ, Nk – незащищенный канал связи, П – противник.
Генератор ключей целесообразно располагать на стороне получателя, чтобы не передавать не секретный ключ по незащищенному каналу связи.
Характерные особенности ассиметричных криптосистем:
1)Открытый ключ K могут быть отправлены по незащищенному каналу связи n.е. будут известны противнику. Алгоритм шифрования и расшифрования является открытым таким образом защита информации в ассиметричной криптосистемы основана на секретности открытого ключа.
Диффи и Хеллман сформулировали требования выполнение которых обеспечивает безопасность ассиметричной криптосистемы:
Вычисление пары Kb и kb получателем B на основе начальных установок должно быть простым.
Отправитель A, зная открытый ключ и сообщение M может легко вычислить криптограмму.
Получатель B используя секретный ключ Kb и криптограмму C может легко восстановить исходное сообщение.
Противник зная открытый ключ Kb при попытки вычислить секретный ключ kb наталкивается на преодолимую вычислительную проблему.
Противник, зная открытый ключ Kb и криптограмму C при попытки вычислить исходное сообщение наталкиваемся на непреодолимую вычислительную проблему.
Криптосистема шифрования данных RSA.
Алгоритм RSA предложили в 1978 году 3 автора: Райвест, Шамир, Адлемен.
Алгоритм получил название по первым буквам фамилий его авторов.
Алгоритм RSA стал первым полноценным алгоритмам с открытым ключом, который может работать как в режиме шифрования так и в режиме электронной цифровой подписи.
В криптосистеме RSA открытый ключ Kb, kb, M, C принадлежат множеству целых чисел.
Zn={0,1,…,N-1}, где N – это модуль
N=P*Q, где P и Q – 2 простых больших случайных числа.
Для обеспечения максимальной безопасности выбирают P и Q равной длины и хранят в секрете.
Множество Zn с операциями сложения и умножения по модулю N образуют арфиметику по модулю N.
Отркрытый ключ Kb выбирают случайным образом так чтобы выполнялись следующие условия:
1<Kb<=¥(N).
НОД (Kb, ¥(N))=1
¥(N)=(P-1)(Q-1), где ¥(N) – это функция Эйлера
Функция Эйлера ¥(N) указывает количество положительных целых чисел от 1 до N, которые взаимнопростые с N.
Далее Используя расширенный алгоритм Эвклида вычисляем секретный ключ
kb*Kb=1(mod ¥(N))
Или kb=Kb(mod (P-1)(Q-1))
Замечание
Из вышенаписанного следует, что секретный ключ kb и N должны быть взаимнопростыми.
Шифрования сообщения можно описать следующих образом:
C=Ekb(M)=Eb(M)=
Обращение к функции
Eb(M)=
,
т.е. получение N по известным
значениям практически не осуществимо
при N=
.
Однако имея секретный ключ можно легко восстановить секретное сообщение.
M=
Процедура шифрования и расшифрования RSA.
Последовательность действий, которые должен выполнить получатель B:
Пользователь B выбирает 2 произвольно больших ключа P и Q.
Пользователь B вычисляет значение mod N=P*Q.
Пользователь B вычисляет функцию Эйлера и выбирает случайным образом открытый ключ Kb с учетом выполнения условий 1<Kb<=¥(N); НОД (Kb, ¥(N))=1
Получает открытый ключ по формуле Эвклида
Пользователь B пересылает пользователю A пару чисел, т.е. (N,Kb); Дальше происходят действия пользователя A
Пользователь A разбивает исходный открытый текст M на блоки, каждый из которых может быть представлен в виде чисел.
Пользователь A шифрует текст в виде последовательности чисел Ci=
C1,C2,… -
буквы
Пользователь B
расшифровывает криптограмму по формуле:
Mi=
Примечание:
Чтобы алгоритм RSA имел практическую ценность необходимо иметь возможность без существенных затрат генерировать большие простые числа, уметь оперативно вычислять значения открытого и секретного ключей.
Пример:
В примере для простоты будем использовать маленькие числа.
Шифруем: САВ.
P=3, Q=11
N=33
¥(N)=(3-1)(11-1)=20
Kb=7
kb=3
Представим шифруемое сообщение как последовательность целых чисел в диапазоне от 0..32
А-1 М1=3
В-2 М2=1
С-3 М3=2
Ci=
C1=9
C2=1
C3=29
Шифр Эльгмеля
Простое число P и большое целое число G, при чем G<P.
Могут быть распространены среди группы пользователей. Затем выбираем случайное целое число X<P. Число X является секретным ключом и должно храниться в секрете.
Далее вычисляют Y=G( в степени x) mod P.
Y – открытый ключ.
Далее чтобы зашифровать сообщение M выбирают случайное число K такое что :
1<K<P-1.
НОД(K,P-1)=1
Затем вычисляют числа :
a=G( в степени K) mod P
b=Y( в степени K) M mod P
Пара чисел А и Б являются шифром текста.
Примечание:
Длина шифра текста в 2-ое больше длины исходного открытого текста M.
Для того чтобы расшифровать шифр текст А и Б .
M=b/a(в степени X) mod P.
