Шифрування і дешифрування даних за допомогою симетричних криптографічних алгоритмів

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Тема:
«Шифрування і дешифрування даних за допомогою симетричних криптографічних алгоритмів »

Алгоритми шифрування і дешифрування даних широко застосовуються в комп'ютерній техніці в системах приховування конфіденційної і комерційної інформації від не коректного використання сторонніми особами. Головним принципом у них є умова, що передавач і приймач заздалегідь знають алгоритм шифрування, а також ключ до повідомлення, без яких інформація являє собою всього лише набір символів, що не мають сенсу.
Класичним прикладом таких алгоритмів є симетричні криптографічні алгоритми, перераховані нижче:
Підстановки:
· Підстановка Цезаря
· Квадрат Полібія.
· "Тюремний шифр"
· Шифр ​​Плейфера
· Подвійний квадрат

· Метод перейменування

· Метод псевдовипадковою інверсії

· Шифром Гронсфельда
· Система шифрування Вижинера

· Шифр ​​Бофора

· Шифр ​​з автоключом.
· Шифр ​​машини Енігма
Гаммирование:
· Шифр ​​гамування за Лемеру
· Конгруентні датчики ПСЧ для гамування
· Цілочисельні датчики (ряд Фібоначчі) для гамування
· Датчики М-послідовностей для гамування

· Метод псевдовипадкового гамування

· Метод цепочечной гамування

Перестановки:

· Проста перестановка

· Одиночна перестановка по ключу

· Подвійна перестановка
· Подвійна перестановка стовпців і рядків
· Перестановка "Магічний квадрат"

· Метод "сплутаною шини"

· Багатомірна перестановка
· Шифр ​​збивання.
Розглянемо приклади деяких з них нижче.

 

Проста перестановка

Проста перестановка без ключа - один з найпростіших методів шифрування. Повідомлення записується в таблицю по стовпцях. Після того, як відкритий текст записаний колонками, для утворення шифровки він зчитується по рядках. Для використання цього шифру відправнику і одержувачу потрібно домовитися про спільне ключі у вигляді розміру таблиці. Об'єднання літер у групи не входить в ключ шифру і використовується лише для зручності запису несмислового тексту.

 

Одиночна перестановка по ключу

Більш практичний метод шифрування, званий одиночної перестановкою по ключу дуже схожий на попередній. Він відрізняється лише тим, що колонки таблиці переставляються за ключовим словом, фразою або набору чисел довжиною в рядок таблиці.

Подвійна перестановка
Для додаткової скритності можна повторно шифрувати повідомлення, яке вже було зашифровано. Цей спосіб відомий під назвою подвійна перестановка. Для цього розмір другої таблиці підбирають так, щоб довжини її рядків і стовпців були інші, ніж у першій таблиці. Краще всього, якщо вони будуть взаємно простими. Крім того, в першій таблиці можна переставляти стовпці, а в другій рядка. Нарешті, можна заповнювати таблицю зигзагом, змійкою, по спіралі або якимось іншим способом. Такі способи заповнення таблиці якщо і не посилюють стійкість шифру, то роблять процес шифрування набагато більш цікавим.
Подвійна перестановка стовпців і рядків
Крім одиночних перестановок використовувалися ще подвійні перестановки стовпців і рядків таблиці з повідомленням. При цьому перестановки визначалися окремо для стовпців і окремо для рядків. У таблицю вписувався текст і переставлялися стовпці, а потім рядка. При розшифровці порядок перестановок був зворотній.
Перестановка "Магічний квадрат"
Магічними квадратами називаються квадратні таблиці з вписаними в їхні клітини послідовними натуральними числами від 1, які дають у сумі по кожному стовпцю, кожному рядку і кожній діагоналі одне і те ж число. Подібні квадрати широко застосовувалися для вписування шіфруемого тексту за наведеною у них нумерації. Якщо потім виписати вміст таблиці по рядках, то виходила шифровка перестановкою букв. На перший погляд здається, ніби магічних квадратів дуже мало. Тим не менш, їх число дуже швидко зростає із збільшенням розміру квадрата. Так, існує лише один магічний квадрат розміром 3 х 3, якщо не брати до уваги його повороти. Магічних квадратів 4 х 4 налічується вже 880, а число магічних квадратів розміром 5 х 5 близько 250000. Тому магічні квадрати великих розмірів могли бути хорошою основою для надійної системи шифрування того часу, тому що ручний перебір всіх варіантів ключа для цього шифру був немислимий.
У квадрат розміром 4 на 4 вписувалися числа від 1 до 16. Його магія полягала в тому, що сума чисел по рядках, стовпцях і повним діагоналях дорівнювала одному і тому ж числу - 34. Вперше ці квадрати з'явилися в Китаї, де їм і була приписана деяка "магічна сіпа".
PRIVATE16
3
2
13
5
10
11
8
9
6
7
12
4
15
14
1
Шифрування за магічного квадрату вироблялося наступним чином. Наприклад, потрібно зашифрувати фразу: "Приїжджаю сьогодні". Літери цієї фрази вписуються послідовно в квадрат згідно записаним в них числах, а в порожні клітини ставиться крапка.
PRIVATE16.
3 І
2 Р
13 Д
5 З
10 Е
11 Г
8 Ю
9 З
6 Ж
7 А
12 Про
4 Е
15 Я
14 Н
1 П
Після цього шифрований текст записується в рядок:
БІРДЗЕГЮСЖАОЕЯНП
При розшифровуванні текст вписується в квадрат, і відкритий текст читається в послідовності чисел "магічного квадрата"
Програма повинна генерувати «магічні квадрати» і по ключу вибирати необхідний. Розмір квадрата більше ніж 3х3.

Метод "сплутаною шини"

Ключем є трехбайтовая послідовність. Цей ключ розбивається на 8 зон по 3 біти, кожна зона зберігає адресу цього біта в новому байті (див. рис)
Байт 1 Байт 2 Байт 3
\ S
Біт1 Біт2 Бит3 Бит4 Бит5 Біт6 Біт7 Біт8
Для зручності реалізації і для збільшення швидкодії методу можна використовувати масив масок замість зрушень байт.
Багатовимірна перестановка
У 1991 р . В. М. Кузьмч запропонував схему перестановки, заснованої на кубику Рубика. Відповідно до цієї схеми відкритий текст записується в осередки граней куба по рядках. Після здійснення заданого числа заданих поворотів верств куба зчитування шифртекста здійснюється за стовпчиків. Складність розшифрування в цьому випадку визначається кількістю осередків на гранях куба і складністю виконаних поворотів шарів. Перестановка, заснована на кубику Рубіка, отримала назву об'ємної (багатовимірної) перестановки.
У 1992 - 1994 р . Р. ідея застосування об'ємної перестановки для шифрування відкритого тексту отримала подальший розвиток. Удосконалена схема перестановок за принципом кубика Рубіка, в якій поряд з відкритим текстом перестановці піддаються і функціональні елементи самого алгоритму шифрування, лягла в основу секретної системи "Рубікон". Як прообразів просторових багатовимірних структур, на підставі об'ємних перетворень яких здійснюються перестановки, в системі "Рубікон" використовуються тривимірні куб і тетраедр. Іншою особливістю системи "Рубікон" є генерація оригінальній версії алгоритму і ключа криптографічних перетворень на підставі деякого секретного параметра (пароля). Це забезпечує як додаткові труднощі для криптоаналізу перехоплених повідомлень порушником (невизначеність застосованого алгоритму), так і можливість апріорного завдання необхідної криптостійкості. Крипостійкість даної системи визначається довжиною ключа, криптостійкість окремих функціональних елементів алгоритму криптографічних перетворень, а також кількістю таких перетворень.
Шифр збивання
Результат шифрування можна відчутно поліпшити, якщо замість перестановки використовувати лінійне перетворення: s = L * t
де L - невироджена матриця випадкового лінійного перетворення біт, або, що те ж саме, детермінант L не дорівнює нулю. І хоча розшифрування в цьому випадку доведеться здійснювати рішенням систем лінійних рівнянь, але кожен біт шифрування починає вже залежатиме від кожного біта тексту. Шифри на основі цього перетворення називають скрамблерамі або збивач. На жаль, частка невироджених матриць із збільшенням їх розміру стрімко зменшується. Детермінант матриці L, як і її елементи, може бути дорівнює або 0, або 1. Якщо det (L) = 0, то матриця виродилися.
для матриці, складеної з квадратних підматриць А, В, С і D, маємо:
| А В |
| | = Det (A) det (B)-det (C)-det (D)
| CD |
Для того, щоб матриця L була невиродженої, випадкової і при расшифровании не потрібно було робити багато обчислень, американськими криптографами був запропонований алгоритм, що ліг в основу стандартного криптографічного перетворення DES. Суть його одного кроку можна описати наступною схемою. Вхідний блок даних ділиться навпіл на ліву L 'і праву R' частини. Після цього формується вихідний масив так, що його ліва частина L "представлена ​​правою частиною R 'вхідного, а права R" формується як сума L' і R 'операцією XOR. Далі, вихідний масив шифрується перестановкою із заміною. Можна переконатися, що всі проведені операції можуть бути звернені і розшифрування здійснюється за число операцій, лінійно залежне від розміру блоку. У той же самий час, після кількох таких збивання можна вважати, що кожен біт вихідного блоку шифрування може залежати від кожного біта повідомлення. Зі збільшенням числа збивання псування єдиного біта в шифровці робить нечітаемой половину тексту, що зумовлено побайтовой перестановкою. Якби перестановка була побітова, то весь текст від помилки в єдиному бите перестав би читатися.
'------ Програма шифрування збиванням
DEFINT IN: DEFSTR S
RANDOMIZE 231
CLS: LOCATE 1, 1
Lot = 5
s $ = ""
FOR i = 1 TO 64: s $ = s $ + CHR $ (65 +25 * RND): NEXT
PRINT s $; "- text": sav = s $
s $ = ""
FOR i = 1 TO 192: s $ = s $ + CHR $ (255 * RND): NEXT
'--------------------- Шифрування
FOR i = 0 TO Lot
sc = MID $ (ss, 1 + I * 32,32)
l = 2 ^ i: sl = "": r = ""
FOR j = 1 TO 32
kg = ASC (MID $ (sc, j, 1))
kl = ASC (MID $ (s $, j, 1))
kr = ASC (MID $ (s $, j +32,1))
sl = sl + CHR $ (kl XOR kr)
sr = sr + CHR $ (kr XOR kg)
NEXT
s $ = sr + RIGHT $ (sl, l) + LEFT $ (sl ,32-l)
NEXT
'---------------------- Псування біта
ss = CHR $ (ASC (s $) XOR 4) + RIGHT $ (s $, 63)
'----------------- Друк шифровки
FOR i = 1 TO 64
k = ASC (MID $ (s $, i, 1))
DEF SEG = 47114: POKE 2 * i-2, k: DEF SEG
NEXT
LOCATE 2, 65: PRINT "- code"
'--------------- Розшифрування
FOR i = Lot TO 0 STEP -1
sc = MID $ (s $, 1 + i * 32, 32): l = 2 ^ i
s $ = RIGHT $ (s $, 32 - l) + MID $ (s $, 33, l) + LEFT $ (s $, 32)
sl = "": sr = ""
FOR j = 1 TO 32
kg = ASC (MID $ (sc, j, 1))
kl = ASC (MID $ (ss, j, 1))
kr = ASC (MID $ (ss, j +32, 1))
sl = sl + CHR $ (kl XOR kr XOR kg)
sr = sr + CHR $ (kr XOR kg)
NEXT
ss = sl + sr
NEXT
FOR i = 1 TO 64
k = ASC (MID $ (s $, i, 1))
DEF SEG = 47124: POKE 2 * i-2, k: DEF SEG
NEXT
LOCATE 3, 65: PRINT "- text"
n = 0
FOR i = 1 TO 64
IF MID $ (s $, i, 1) = MID $ (sav, i, 1) THEN
LOCATE 4, i: PRINT "+";: n = n + I
ELSE
LOCATE 4, i: PRINT "-";
END IF
NEXT
LOCATE 6, 1: PRINT 64 - n; "errors"
END
Шифр Цезаря
Підстановка Цезаря є найпростішим варіантом підстановки. Вона належить до групи моноалфавитной підстановок.
При моноалфавитной заміні кожної букви алфавіту відкритого тексту ставиться у відповідність одна буква шифртекста з цього ж алфавіту.
Визначення. Підмножина C m = {C k: 0SYMBOL 163 \ f "Symbol" \ s 14Ј k <m} симетричної групи SYM (Z m), що містить m підстановок C k: jSYMBOL 174 \ f "Symbol" \ s 14 ® (j + k ) (mod m), 0SYMBOL 163 \ f "Symbol" \ s 14Ј k <m, називається підстановкою Цезаря.
Підстановки наведені у Табл. 1. Стрілка (SYMBOL 224 \ f "Wingdings" \ s 14а) означає, що літера в повідомленні (ліворуч) шифрується за допомогою C 3 в букву шифрованого тексту (праворуч).
Визначення. Системою Цезаря називається моноалфавитной підстановка, перетворююча n-граму вихідного тексту (x0, x1, .., xn-1) у n-граму шифрованого тексту (y0, y1 ,..., yn-1) відповідно до правила
y i = C k (x i), 0SYMBOL 163 \ f "Symbol" \ s 14Јi <n.
Наприклад, ВИШЛІТЕ_НОВИЕ_УКАЗАНІЯ допомогою підстановки C 3 перетвориться в еюиолхіврсеюівцнгкгрлб.
Таблиця 1.
АSYMBOL 224 \ f "Wingdings" \ s 14аг
ЙSYMBOL 224 \ f "Wingdings" \ s 14ам
ТSYMBOL 224 \ f "Wingdings" \ s 14ах
ИSYMBOL 224 \ f "Wingdings" \ s 14аю
БSYMBOL 224 \ f "Wingdings" \ s 14ад
КSYMBOL 224 \ f "Wingdings" \ s 14ан
УSYMBOL 224 \ f "Wingdings" \ s 14ац
ЬSYMBOL 224 \ f "Wingdings" \ s чотирнадцятий
ВSYMBOL 224 \ f "Wingdings" \ s 14ае
ЛSYMBOL 224 \ f "Wingdings" \ s 14ао
ФSYMBOL 224 \ f "Wingdings" \ s 14ач
ЕSYMBOL 224 \ f "Wingdings" \ s 14а_
ГSYMBOL 224 \ f "Wingdings" \ s 14аж
МSYMBOL 224 \ f "Wingdings" \ s 14ап
ХSYMBOL 224 \ f "Wingdings" \ s 14аш
ЮSYMBOL 224 \ f "Wingdings" \ s 14аа
ДSYMBOL 224 \ f "Wingdings" \ s 14аз
НSYMBOL 224 \ f "Wingdings" \ s 14ар
ЦSYMBOL 224 \ f "Wingdings" \ s 14ащ
ЯSYMBOL 224 \ f "Wingdings" \ s 14аб
ЕSYMBOL 224 \ f "Wingdings" \ s 14аі
ОSYMBOL 224 \ f "Wingdings" \ s 14ас
ЧSYMBOL 224 \ f "Wingdings" \ s 14а'
_SYMBOL 224 \ f "Wingdings" \ s 14ав
ЖSYMBOL 224 \ f "Wingdings" \ s 14ай
ПSYMBOL 224 \ f "Wingdings" \ s 14ат
ШSYMBOL 224 \ f "Wingdings" \ s 14аи
ЗSYMBOL 224 \ f "Wingdings" \ s 14ак
РSYMBOL 224 \ f "Wingdings" \ s 14ау
ЩSYMBOL 224 \ f "Wingdings" \ s 14аь
ІSYMBOL 224 \ f "Wingdings" \ s 14ал
СSYMBOL 224 \ f "Wingdings" \ s 14аф
'SYMBOL 224 \ f "Wingdings" \ s 14ае

Основним недоліком розглянутого методу є те, що статистичні властивості відкритого тексту (частоти повторення букв) зберігаються в шифртекст.
При своїй простоті система легко вразлива. Якщо зловмисник має
1) шифрований і відповідний вихідний текст або
2) шифрований текст обраного зловмисником вихідного тексту, то визначення ключа і дешифрування вихідного тексту тривіальними.
Квадрат Полібія
Стосовно до сучасного латинському алфавіту з 26 букв шифрування з цього квадрату полягало в наступному. У квадрат розміром 5x6 клітин виписуються всі букви алфавіту, при цьому літери I, J не розрізняються (J ототожнюється з буквою I);
PRIVATEA
B
C
D
E
A
A
B
C
D
E
D
F
G
H
I
K
C
L
M
N
O
P
D
Q
R
S
T
U
E
V
W
X
Y
Z
Шіфруемих буква замінялася на координати квадрата, в якому вона записана. Так, B замінялася на AB, F на BA, R на DB і т.д. При расшифровании кожна така пара визначала відповідну букву повідомлення. Ключем такого шифру було розташування літер в таблиці наприклад 5x5. Початкове розташування літер має визначатися ключем.

"Тюремний шифр"
У дещо зміненому вигляді шифр Полібія отримав своєрідну назву "тюремний шифр". Для його використання потрібно тільки знати природний порядок розташування літер алфавіту (як у зазначеному вище прикладі для англійської мови). Сторони квадрата позначаються не літерами (ABCDE), а числами (12345). Число 3, наприклад, передається шляхом потрійного стуку. При передачі літери спочатку "отстукивает число, відповідне рядку, в якій знаходиться буква, а потім номер відповідного стовпця. Наприклад, літера" F "передається подвійним стуком (другий рядок) і потім одинарним (перший стовпець).
Відзначимо, що при довільному розташуванні букв в квадраті виникає одне утруднення: або потрібно пам'ятати відправнику і одержувачу повідомлення довільного порядок проходження букв в таблиці (ключ шифру), що взагалі кажучи важко, або мати при собі запис цих букв. У другому випадку з'являється небезпека ознайомлення з ключем сторонніх осіб. Тому в ряді випадків ключ складається таким чином. Береться якийсь "ключове слово", яке легко запам'ятати, наприклад, "CRYPTOLOGY", видаляють з нього повтори букв (отримують "CRYPTOLOG") і записують його в початкових клітинах квадрата. У залишилися клітини записуються інші літери алфавіту в природному порядку.
ABCDEACRYPTBOLGABCDEF HIEUVWXZ
У такому шифрі ключем є вказане "ключове слово" ("пароль").
Шифр Плейфера (біграм)
Більш ефективні узагальнення підстановки Цезаря - шифр Хілла і шифр Плейфера. Вони засновані на підстановці не окремих символів, а 2-грам (шифр Плейфера) або n-грам (n-грамою називається послідовність з n символів алфавіту.) (Шифр Хілла). При більш високій криптостійкості вони значно складніше для реалізації і вимагають досить великої кількості ключової інформації.
Найбільш відомий шифр біграм називається Playfair. Він застосовувався Великобританією в Першу світову війну. Опишемо його на прикладі тієї ж самої таблиці. Відкритий текст розбивався на пари літер (біграм) і текст шифровки будувався з нього за такими двом дуже простим правилам.
1. Якщо обидві літери біграм вихідного тексту належали одній колонці таблиці, то літерами шифру вважалися літери, які лежали під ними. Так біграм УН давала текст шифровки ВЧ. Якщо літера відкритого тексту перебувала в нижньому ряду, то для шифру бралася відповідна літера з верхнього ряду і біграм ОЯ давала шифр ШБ. (Біграм з однієї букви або пари однакових букв теж підпорядковувалася цьому правилу й текст ЇЇ давав шифр ІІ).
2. Якщо обидві літери біграм вихідного тексту належали одному рядку таблиці, то літерами шифру вважалися літери, які лежали праворуч від них. Так біграм ІВ давала текст шифровки КГ. Якщо літера відкритого тексту знаходилася в правій колонці, то для шифру бралася відповідна літера з лівої колонки і біграм ОМ давала шифр ДН.
Якщо обидві літери біграм відкритого тексту лежали в різних рядах і колонках, то замість них бралися такі дві літери, щоб вся четвірка їх представляла прямокутник. При цьому послідовність літер у шифрі була дзеркальною вихідної парі.

Подвійний квадрат

Шифровка біграм, яку називають подвійний квадрат, відкрив новий етап в криптографії. Подвійний квадрат використовує відразу дві таблиці, розташовані по горизонталі, а шифрування йде біграм, як у шифрі Playfair. Ці, здавалося б і не настільки вже значні зміни призвели до появи на світ нової криптографічного системи ручного шифрування. Є дві таблиці з випадково розташованими в них алфавітами. Для шифрування повідомлення розбивають на біграм. Перша літера біграм знаходиться в лівій таблиці, а друга у правій. Потім, подумки в таблиці будується прямокутник так, щоб букви біграм лежали в його протилежних вершинах. Інші дві вершини цього прямокутника дають букви шифровки.
Метод перейменування
Суть методу - створюється таблиця з 256 елементів з неоднаковими значеннями (за випадковим законом). Кожен байт замінюється елементом цієї таблиці з індексом рівним байту. Після цього таблиця вписується в тіло файлу, а адреса таблиці у файлі є ключем. Таким чином довжина файлу збільшується на 256 байт. Декодування здійснюється в зворотному порядку.
Шифр Гронсфельда
Шифри складної заміни називають Многоалфавитная, так як для шифрування кожного символу вихідного повідомлення застосовується свій шифр простої заміни. Шифр Гронсфельда теж Многоалфавитная шифр - у ньому 10 варіантів заміни.
Складається в модифікації шифру Цезаря числовим ключем. Для цього під повідомленням пишуть ключ. Якщо ключ коротше повідомлення, то його повторюють циклічно. Шифровку отримують ніби в шифрі Цезаря, але відраховуючи необов'язково тільки третю букву в алфавітному порядку, а ту, яка зрушена на відповідну цифру ключа. Шифр Гронсфелвда має масу модифікацій, що претендують на його покращення, від курйозних, на зразок запису тексту шифровки літерами іншого алфавіту, до неабияких, як подвійне шифрування різними ключами.
Крім цих шифрів, найчастіше використовувався з ІКТ, що полягає в заміні кожної букви повідомлення на відповідну їй букву шифру. Такий шифр, популярний серед школярів, є простим кодом і розтин його можливе при довжині шифровки всього в 20-30 букв, а при довжинах тексту понад 100 символів являє собою дуже просту, але дуже захоплюючу задачу.
АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
А АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
Б _АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
У Я_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ
Г ЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ
.......
Я ВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ
_ БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А
Кожен рядок у таблиці відповідає одному шифру заміни начебто шифру Юлія Цезаря для алфавіту, доповненого пропуском. При шифруванні повідомлення його виписують в рядок, а під ним ключ. Якщо ключ виявився коротшим повідомлення, то його циклічно повторюють. Шифровку отримують, знаходячи символ у колонці таблиці по букві тексту і рядку, що відповідає букві ключа. Цей дуже розповсюджений вид шифру зберігся до наших днів.
У комп'ютері така операція відповідає додаванню кодів ASCII символів повідомлення і ключа по деякому модулю. Здається, що якщо таблиця буде складнішою, ніж циклічне зсув рядків, то шифр стане надійніше. Це дійсно так, якщо її змінювати частіше, наприклад, від слова до слова. Але складання таких таблиць, що представляють собою латинські квадрати, де будь-яка буква зустрічається в рядку або стовпці один раз, занадто багато роботи і його варто робити лише на ЕОМ. Для ручного ж Многоалфавитная шифру покладаються лише на довжину і складність ключа, використовуючи наведену таблицю, яку можна не тримати в таємниці, а це спрощує шифрування та розшифрування.
Системи шифрування Вижинера
Почнемо з кінцевої послідовності ключа
k = (k 0, k 1 ,..., k n),
яка називається ключем користувача, і продовжимо її до нескінченної послідовності, повторюючи ланцюжок. Таким чином, отримаємо робочий ключ
k = (k 0, k 1 ,..., k n), k j = k (j mod r, 0 SYMBOL 163 \ f "Symbol" \ s 14Ј j <SYMBOL 165 \ f "Symbol" \ s 14Ґ.
Наприклад, при r = SYMBOL 165 \ f "Symbol" \ s 14Ґ і ключі користувача 15 8 2 10 11 4 18 робочий ключ буде періодичною послідовністю:
15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18 ...
Визначення. Підстановка Вижинера VIGk визначається як
VI G k: (x 0, x 1, ..., x n-1) SYMBOL 174 \ f "Symbol" \ s 14 ® (y 0, y 1, ..., y n-1) = (x 0 + k, x 1 + k,. .., x n-1 + k).
Таким чином:
1) вихідний текст x ділиться на r фрагментів
x i = (x i, x i + r, ..., x i + r (n-1)), 0 SYMBOL 163 \ f "Symbol" \ s 14Ј i <r;
2) i-й фрагмент вихідного тексту x i шифрується за допомогою підстановки Цезаря Ck:
(X i, x i + r, ..., x i + r (n-1)) SYMBOL 174 \ f "Symbol" \ s 14 ® (y i, y i + r, ..., y i + r (n- 1)),
Варіант системи підстановок Вижинера при 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-набір SYMBOL 112 \ f "Symbol" \ s 14p = (SYMBOL 112 \ f "Symbol" \ s 14p0, SYMBOL 112 \ f "Symbol" \ s 14p1, ..., SYMBOL 112 \ f "Symbol" \ s 14pr-1) з елементами в x.
Узагальнена система Вижинера перетворює вихідний текст (x0, x1 ,..., xn-1) у шифрований текст (y0, y1 ,..., yn-1) за допомогою ключа SYMBOL 112 \ f "Symbol" \ s 14p = ( SYMBOL 112 \ f "Symbol" \ s 14p0, SYMBOL 112 \ f "Symbol" \ s 14p1, ..., SYMBOL 112 \ f "Symbol" \ s 14pr-1) за правилом VIGk: (x0, x1, .. ., xn-1) SYMBOL 174 \ f "Symbol" \ s 14 ® (y0, y1 ,..., yn-1) = (SYMBOL 112 \ f "Symbol" \ s 14p0 (х0), SYMBOL 112 \ f "Symbol" \ s 14p1 (х1), ..., SYMBOL 112 \ f "Symbol" \ s 14pn-1 (xn-1)), де використовується умова SYMBOL 112 \ f "Symbol" \ s 14pi = SYMBOL 112 \ f "Symbol" \ s 14pi mod r.
Слід визнати, що і Многоалфавитная підстановки в принципі доступні криптоаналітичних дослідженню. Крипостійкість Многоалфавитная систем різко зменшується із зменшенням довжини ключа.
Проте така система як шифр Вижинера допускає нескладну апаратну або програмну реалізацію і при досить великій довжині ключа може бути використаний в сучасних ІС.
Шифри Бофора
Використовують формули:
Y i = C K i (x i) = (K i-Xi) (mod m) або
Y i = C K i (x i) = (Xi-Ki) (mod m) i = 0 ... n-1
Гомофоніческая заміна одному символу відкритого тексту ставить у відповідність кілька символів шифртекста. Цей метод застосовується для спотворення статистичних властивостей шифртекста.
Таким чином, при гомофоніческой заміні кожна літера відкритого тексту замінюється по черзі цифрами відповідного стовпця.
Шифр з автоключом
При розгляді цих видів шифрів стає очевидним, що чим більше довжина ключа (наприклад, в шифрі Віженера), тим краще шифр. Суттєвого поліпшення властивостей шифртекста можна досягти при використанні шифрів з автоключом.
Шифр, в якому сам відкритий текст або получающаяся криптограма використовуються в якості "ключа", називається шифром з автоключом. Шифрування в цьому випадку починається з ключа, званого первинним, і продовжується за допомогою відкритого тексту або криптограми, зміщеною на довжину первинного ключа.
Шифр машини Енігма
При моделюванні шифру машини Енігма на ЕОМ можна досягти гарної стійкості при порівняльній простоті програми. Нагадаємо, що ця машина представляла собою ряд обертаються на одній осі барабанів з електричними контактами, що забезпечують безліч варіантів простої заміни, визначається поточним становищем барабанів. У ранніх моделях було 5 барабанів, які перед початком роботи встановлювалися по кодовому слову, а в ході шифрування вони поверталися при кодуванні чергового символу як в лічильнику електроенергії. Таким чином, виходив ключ свідомо більш довгий, ніж текст повідомлення. Слабкість шифру:
1. П'ять барабанів могли забезпечити лише близько ста мільйонів ключів, що дозволяло їх за день перебрати на ЕОМ. Якщо використовувати не 25 латинських символів, а 256 кодів ASCII і збільшити число барабанів, то складність розколювання шифру істотно зросте.
2. Набір барабанів був обмежений і змінювався ред-ко, що викликало полювання англійців за їх екземплярами в підводних човнах. ЕОМ може для кожної шифровки використовувати індивідуальні барабани, що генеруються за словом, а це знову-таки різко ускладнює розкриття шифру.
3. Нарешті, можна зробити рух барабанів хаотичним за випадковою послідовності, теж вироблюваної по ключу.
Число ключів такого шифру. Нехай довжина періоду програмного генератора випадкових чисел дорівнює 2 ** 24. Вісім барабанів, що генеруються за допомогою цього генератора, дадуть разом 2 ** 192 варіантів ключа, а якщо врахувати ще варіанти псевдовипадковою послідовності, що управляє рухом барабанів, то вийде значна цифра в 2 ** 216 варіантів ключа. Таким чином, досить просто отримати стійкий шифр навіть при використанні програмного генератора випадкових чисел з періодом малої для криптографії довжини.
'---------- Імітація Енігми
DEFINT IN: 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. Витісняється біт додається до гами.
Строго це можна представити у вигляді наступних відносин:
r 1: = r 0 r 2: = r 1 ... r k-1: = r k-2
r 0: = a 0 r 1 SYMBOL 197 \ f "Symbol" \ s 14Е a 1 r 2 SYMBOL 197 \ f "Symbol" \ s 14Е ... SYMBOL 197 \ f "Symbol" \ s 14Е a k-2 r k-1
Г i: = r k-
Тут r 0 r 1 ... r k-1 - k однобітних регістрів, a 0 a 1 ... a k-1 - коефіцієнти неприводимого двійкового полінома ступеня k-1. Г i - i-е значення вихідної гами.
Період М-послідовності виходячи з її властивостей дорівнює 2 k -1.
Іншою важливою властивістю М-послідовності є обсяг ансамблю, тобто кількість різних М-послідовностей для заданого k. Ця характеристика наведена в таблиці:
PRIVATE 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 с. мул.
Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Диплом
97.4кб. | скачати


Схожі роботи:
Захист персональних даних за допомогою алгоритмів шифрування
Використання сучасних симетричних DES і асиметричних алгоритмів шифрування RSA
Шифрування та дешифрування тексту
Аналіз алгоритмів нечисельних обробки даних
Аналіз медико-біологічних даних за допомогою Microsoft Excel і СПП STADIA 62
Геоморфологічна дешифрування
Вивчення криптографічних методів підстановки заміни
Розробка імовірнісної моделі криптографічних протоколів
Аналітичне дешифрування космічних знімків
© Усі права захищені
написати до нас