01 uvod u kriptografiju.pptrti.etf.bg.ac.rs/rti/ir4zp/materijali/vezbe/arhiva/01... ·...
TRANSCRIPT
1/31
ЗАШТИТА ПОДАТАКА
Симетрични алгоритми заштите
увод у криптографију
2/31
Преглед
• Биће објашњено:
– класични криптографски алгоритми
– моноалфабетски алгоритми замене
– криптоанализа коришћењем фреквенције
појављивања слова
– Playfair алгоритми
– полиалфабетски алгоритми
– транспозициони алгоритми
– продукциони алгоритми, ротор машине
– стеганографија
3/31
Класични алгоритми замене
• су они у којима се слова или обичан
текст мењају другим словима,
бројевима или симболима
• или, уколико обичан текст посматрамо
као низ битова, онда су ово алгоритми у
којима се шаблони битова обичног
текста, мењају са шаблонима (pattern)
битова шифрованог текста
4/31
Цезар (Caesar) алгоритам
• најранији алгоритам замене за који се зна
• направио га је Јулије Цезар
• прва употреба била је у војне сврхе
• свако слово се мења са словом које је 3 места испред
• пример:meet me after the toga party
PHHW PH DIWHU WKH WRJD SDUWB
5/31
Цезар (Caesar) алгоритам
• алгоритам трансформације се дефинише као:a b c d e f g h i j k l m n o p q r s t u v w x y z
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
• математички, ако сваком слову доделимо одговарајући бројa b c d e f g h i j k l m
0 1 2 3 4 5 6 7 8 9 10 11 12
n o p q r s t u v w x y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
• тада уопштени Цезаров алгоритам добијамо као:C = E(к,p) = (p + k) mod (26),
p = D(к,C) = (C – k) mod (26),
где је C-шифровани знак, p-оригинални знак, а к-померај (3 у оригиналу)
6/31
Криптоанализа Цезар алгоритма
• постоји само 26 могућности пресликавања слова– A се мапира у A,B,C,...,Z
• могуће је разбити алгоритам заменом свих могућности
• дакле коришћењем brute force добије се решење
• за задати шифровани текст, само се испробају све замене које постоје
• потребно је препознати када се дошло до оригиналне поруке
• нпр. покушајте са "PHHW PH DIWHU WKH WRJD SDUWB "
7/31
Криптоанализа Цезар алгоритма
8/31
Моноалфабетски алгоритам
• уместо да само померамо слова, можемо да их измешамо насумично
• сада свако слово обичног текста, води до неког различитог насумично изабраног слова шифрованог текста
• самим тим имамо кључ дужине 26, односно 26! могућих кључева
Plain: abcdefghijklmnopqrstuvwxyz
Cipher: DKVQFIBJWPESCXHTMYAUOLRGZN
Plaintext: ifwewishtoreplaceletters
Ciphertext: WIRFRWAJUHYFTSDVFSFUUFYA
9/31
Моноалфабетски алгоритам
• дакле, имамо 26! = 4 x 1026 кључева
• сада бисмо могли рећи да имамо
прилично сигуран алгоритам
• то би било погрешно. Зашто?
• проблем настаје у карактеристикама
језика
10/31
Редудантности језика и криптоанализа
• у људским језицима има доста редудантности
• слова се не користе са једнаком вероватноћом
• у Енглеском језику e је убедљиво најчешће коришћено слово, а th најчешћи пар слова
• затим T,R,N,I,O,A,S • нека друга слово, међутим, користе се ретко• као Z,J,K,Q,X • могуће је направити табелу фреквенције коришћења слова
11/31
Фреквенција коришћења енглеских слова
12/31
Употреба у криптоанализи
• кључни концепт је у томе што моноалфабетски алгоритми замене не мењају релативну фреквенцију употребе слова
• израчунавање фреквенције слова у шифрованом тексту
• поређење добијених вредности са познатим вредностима
• добијање одређених делова кључа на основу упоређивања
13/31
Пример криптоанализе
• неки шифровани текст:UZQSOVUOHXMOPVGPOZPEVSGZWSZOPFPESXUDBMETSXAIZ
VUEPHZHMDZSHZOWSFPAPPDTSVPQUZWYMXUZUHSX
EPYEPOPDZSZUFPOMBZWPFUPZHMDJUDTMOHMQ
• израчунавамо релативне фреквенције (броји се појава сваког слова и дели са укупним бројем слова)
• претпостављамо да су P & Z заправо e и t
• затим да је ZW заправо th и добијамо да је ZWP заправо the
• настављајући са упоређивањем добићемо:it was disclosed yesterday that several informal but
direct contacts have been made with political
representatives of the viet cong in moscow
14/31
Playfair алгоритам
• чак ни велики број кључева у моноалфабетском алгоритму не пружа довољну сигурност
• један приступ у побољшању безбедности, био је да се шифрира више слова заједно
• Playfair алгоритам је пример таквог приступа
• измишљен је 1854. године
15/31
Playfair алгоритам
• користи се 5X5 матрица слова базирана на кључној речи
• матрица се прво попуњава словима из кључа (без дупликата)
• остатак матрице попуњава се осталим словима
• нпр. коришћењем кључне речи MONARCHY
16/31
Шифровање и дешифровање
• шифрују се по 2 слова обичног текста:1. ако се у пару налазе иста слова убацује се
додатно слово да их раздвоји, нпр. "balloon" као"ba lx lo on"
2. ако се обадва слова налазе у истом реду у матрици, свако се замењује са следећим у реду (слово са краја реда замењује се оним са почетка), нпр. “ar" као "RM"
3. ако се обадва слова налазе у истој колони у матрици, свако се замењује са словом које се налази испод њега (слово са дна матрице замењује се оним из те колоне са врха матрице), нпр. “mu" као "CM"
4. у супротном свако слово се замењује са словом из истог реда и из колоне у којој се налази његов парњак, нпр. “hs" као "BP", “ea" као "IM" или "JM"
17/31
Сигурност Playfair алгоритма
• много побољшана у односу на
моноалфабетски алгоритам
• може се дешифровати, јер још увек
садржи доста велик део обичног текста
18/31
Полиалфабетски алгоритми
• други приступ за побољшање сигурности је да се користе вишеструко шифрирани алфабети
• метод је назван полиалфабетски алгоритми замене
• чини криптоанализу тежом, јер има више азбука за дешифровање и фреквенција појављивања слова је изједначенија
• користи се кључ да се одабере који алфабет се користи за шифрирање ког слова
• користи се сваки алфабет по реду
• понавља се од почетка када се стигне до краја кључа
19/31
Vigenère алгоритам
• најједноставнији полиалфабетски алгоритам замене је Vigenère алгоритам
• ефикасно примењује вишеструко caesar алгоритам
• кључ је дугачак неколико слова K = k1 k2 ... kd
• i-то слово специфицира i-ту азбуку за коришчење
• алфабети се користе наизменично• понавља се од почетка након d слова у поруци
20/31
Vigenère алгоритам
21/31
Пример
• ако је кључна реч deceptive
key:
deceptivedeceptivedeceptive
plaintext:
wearediscoveredsaveyourself
ciphertext:ZICVTWQNGRZGVTWAVZHCQYGL
MGJ
22/31
Сигурност Vigenère алгоритма
• постоји више могућности замене за
једно слово обичног текста
• самим тим фреквенције појављивања
слова су поремећене
• али не и начисто изгубљене
• проблем је и периодично понављање у
кључној речи
23/31
Autokey алгоритам
• идеално је имати кључ исте дужине као порука
• Vigenère је предложио autokeyалгоритам
• користи се део поруке да се надовеже на основу кључне речи како би се избегло понављање
• нпр. за кључ deceptivekey: deceptivewearediscoveredsav
plaintext: wearediscoveredsaveyourself
ciphertext:ZICVTWQNGKZEIIGASXSTSLVVWLA
24/31
One-Time Pad алгоритам
• уколико се користи заиста случајан
кључ, дужине као порука, тада је
алгоритам сигуран
• назива се One-Time pad алгоритам
• немогуће га је открити с обзиром да
шифрирана порука не носи никакве
статистичке податке у себи
• проблем је сигурна дистрибуција кључа
25/31
Транспозициони алгоритми
• сакривају поруку тако што испремештају
редослед слова
• без мењања слова
• имају идентичну фреквенцију
коришћења слова као и оригинална
порука
26/31
Rail Fence алгоритам
• исписује се порука дијагонално у
неколико редова
• крајња шифра се пише ред по ред
• нпр. за:m e m a t r h t g p r y
e t e f e t e o a a t
• добијемо шифруMEMATRHTGPRYETEFETEOAAT
27/31
Row Transposition алгоритам
• комплекснији од претходног
• исписује се порука у неколико редова
• колоне се реорганизују по неком кључу и добија се шифраKey: 4 3 1 2 5 6 7
Plaintext: a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
Ciphertext: TTNAAPTMTSUOAODWCOIXKNLYPETZ
28/31
Продукциони алгоритми
• алгоритми базирани на замени или транспозицији нису довољно сигурни због језичких карактеристика
• зато се користи више алгоритама узастопно да би се учинили сигурнијим, али: – два алгоритма замене, чине комплекснију замену
– два транспозиције, комплекснију транспозицију
– али алгоритам замене, праћен алгоритмом транспозиције чини нову, много компликованију шифру
• ово је мост између класичних и модерних шифри
29/31
Ротор машине
• пре модерних шифара, ротор машине су биле најпопуларније продукционе шифре
• коришћене у Другом светском рату– German Enigma, Allied Hagelin, Japanese Purple
• правиле су јако комплексне шифре базиране на алгоритму замене
• коришћен је низ цилиндара од којих је сваки давао по једну замену, и они су ротирали након енкрипције сваког слова
• са 3 цилиндра било је 263=17576 могућности
30/31
Ротор машине
31/31
Стеганографија
• алтернатива за шифрирање
• сакрива постојање поруке
– користи се само подскуп слова/речи у дужој
поруци на неки начин означеној
– користи се невидљиво мастило
– сакривање поруке у некој сличици или звуку
• има мане
– велика порука да се сакрије релативно мали број
бита