280 likes | 417 Views
Криптология. Въведение lec1. 1. Въведение 1.1. Какво е криптология? Думата криптология е производна на две гръцки думи: kryptos , което означава «скрит» ; logos - «дума». Криптологията обхваща две компетен - ции (умения) - скриване и решаване:
E N D
Криптология. Въведение lec1 1. Въведение 1.1.Какво е криптология? Думата криптология е производна на две гръцки думи: kryptos, което означава «скрит» ; logos - «дума». Криптологията обхваща две компетен-ции (умения) - скриване и решаване: Частта на скриването в криптологията се нарича криптография-cryptogaphia означава секретност в писането (тайнопис); Решаващата част от криптологията се нарича криптоанализ.
1.2.Стеганография За разлика от криптологията, която не се занимава със скриването на изпращаното съобщение, стеганографията има за цел да скрива дори съществуването на едно съобщение. He must have had a special trick, said Robert K. Merton, for he Wrote such an amazing quantity of material that his friends were Simply astonished at his prodigious output of long manuscripts, the contents of which were remarkable and fascinating, from the first simple lines, over fluently written pages where word after word flowed relentlessly onward, where ideas tumbled in a riot of colorful and creative imagery, to ends that stopped abruptly, each script more curiously charming than its predecessors, each line more whimsically apposite, yet unexpected, than the lines on which it built, ever onward, striving toward a resolution in a wonderland of playful verbosity. Fuller could write page after page so fluently as to excite the envy of any writers less gifted and creative than he. At last, one day, he revealed his secret, then died a few days later. He collected a group of acolytes and filled their glasses, then wrote some words on a sheet of paper, in flowing script. He invited his friends to puzzle a while over the words and departed. One companion took a pen and told the rest to watch. Fuller returned to find the page filled with words of no less charm than those that graced his own writings. Thus the secret was revealed, and Fuller got drunk. He died, yet still a space remains in the library for his collected works.
1.3. Кратко за употребяваната терминология CIPHERTEXT Криптирана форма на понятен / открит / явен текст (PLAINTEXT)CODEЕдно невариантно правило за замяна част от инфор-мация с друг обект, който не е необходимо да бъде от същия вид (например ASCII) CRYPTANALYSISНаука (и изкуство) за възстановяване на информация от шифри без знание / познаване за ключа CRYPTOGRAPHYНаука за шифриране и дешифриране на съобщения в секретни кодове и шифри CRYPTOSYSTEMСистема за криптиране на информация DECRYPTION Процес на обръщане на шифър в разбираем текст ENCRYPTION Процес на преобразуване на явен / разбираем текст в шифър KEY Секретна информация позната само на предавателя и получателя, която се употребява за да се защити познат текст MONOALPHABETIC SUBSTITUTIONМетод за криптиране, при който една буква в разбираемия текст е винаги заменена с една буква в шифрования текст (ciphertext) PLAINTEXT Първоначална (източник) информация, която трябва да се защити POLYALPHABETIC SUBSTITUTIONМетод за криптиране, при който една буква от явния текст не винаги се заменя с буква в шифрования текст
1.4. Шифри и кодове Шифърът (шифроването) е метод за скриване, който замества всяка буква с друга буква, число или символ. Кодирането е метод за скриване или заместване на думи или фрази с кодови думи и кодови числа (или кодови групи). AExceptionally high achievement B High achievement C Average achievement D Minimum passing grade F Failure Februar 13605 fest 13732 finanzielle 13850 folgender 13918 Frieden 17142 Friedenschluss 17149 führung 17166 Ganz geheim 17214 Gebeit 17388 geheim 4377 Gemeinsame 4458 Забележка: Думатаcipher е различна от арабскатаsifr, което означава нищо.
1.5. Кратка история на криптографията и криптоанализа - Ранни криптографски системи: • Scytale; • Aeneas Tacticus (4 век преди н.е.) - On the Defence of Fortifications; • Polybius - Polybius checkerboard; • ал-Калка-шанди (1412г.) - Subh al-a’sha; • Gabriele de Lavinde отParma (1379г.)- ръководство по криптография; • Leon Battista Alberti (1470г.)- Trattati in cifra; • Blaise de Vigernère (1586г.) – таблица. - Криптографията през време на Втората световна война; - Криптографията в модерния век
2. Основни понятия в криптологията Теорията на кодирането не се занимава само със скриването на съобщенията, нои със: • точното предаване на съобщенията; • Развиване на техники за откриване и дори безпристрастно коригиране на грешки по време на предаването. 2.1. Криптографските системи са главно групирани съгласно три факта за тях: • Математическите операции, които променят явния текст в шифрован, употребявайки ключ; • Произвеждане на блок или поток от шифри; • Типът на употребената ключова система - единичен или два ключа. Криптосистема се нарича наредена петорка от вида (P, C, K, E, D), за която са изпълнено следното: 1. P е крайно множество от възможни открити текстове (съобщения М); 2. С е крайно множество от възможни криптирани текстове (съобщения); 3. К - пространство на ключовете; 4. E и D са множества съответно от криптиращи и декриптиращи правила, като за всяко к є К съществува криптиращо правило ек є Е и съответно декриптиращо правило dk є D. Правилата ek: P -> C и dk: C-> P трябва да са взаимно обратни функции, т.е. dk(ek(x)) = x за всеки открит текст x є P. В частност за всяка криптираща функция ek(x) трябва да има x1≠x2 , ek(x1) ≠ ek(x2) (в противен случай при x1≠x2иek(x1) = ek(x2) = y, получателят на y не може да установи кое е оригиналното съобщение x1 или x2 ).
2.2. Терминология • Подател и приемник • Съобщение, кодиране (шифриране) и дешифриране Шифротекстътсе означава сС. Това е също двоична данна: понякога със същият размер М, понякога с по-дълъг. Функцията на криптиране Е, оперира над М за да се произведе С.Или с математическото означение: E(M) = C В обратния процес, функцията на дешифриране Dработи надСза да произведеМ: D(C) = M D(E(M)) = M • Конфиденциалност • Достоверност • Цялостност • Отхвърляне • Криптографски примитиви и критерии за оценката им: - ниво на секретност; - функционалност; - методи на работа; - представяне; - простота на прилагане.
Класификация на криптографските примитиви
2.3. Алгоритми и ключове Един криптогафски алгоритъм, също наричан шифър, е математическа функция употребявана за шифриране и дешифриране. (Най-общо има две функции: една за шифриране и друга за дешифриране.) • Ограничен алгоритъм Модерната криптография решава този проблем с ключ, означен с К. Последователността от възможните стойности за ключ се нарича ключово пространство(keyspace). Операциите за шифриране и дешифриране употребяват този ключ, т.е. те са свързани с ключа - отбелязва се с индекса к, така функциите стават: • При употреба на един ключ: EK(M) = C DK(C) = M DK(EK(M)) = M • При употреба на два ключа: EK1(M) = C DK2(C) = M DK2(EK1 (M)) = M
Видове алгоритми • Симетрични алгоритми Шифрирането и дешифрирането в симетричните алгоритми се означава с: EK(M) = C DK(C) = M 1. Потокови алгоритми или потокови шифри Потоковият ключ се генерира по два начина: • Независимо от явния текст и шифрования текст - синхронен потоков шифър; • В зависимост от данната и нейното криптиране – само синхронизиращ се. 2. Блокови алгоритми или блоковишифри • Алгоритми с публичен ключ (асиметрични алгоритми) Шифрирането, употребяващо публичен ключК се отбелязва като: EK(M) = C Независимо от публичния ключ и различието на частния ключ, дешифрирането кореспондиращо с частния ключ се означава чрез: DK(C) = M
Опростена схема на класификация на алгоритмите
2.4. Секретност на алгоритмите Категории за разбиване на алгоритми: • Тотално разбиване. Криптоанализаторът намира ключаK, така че DK(C)=P. • Глобална дедукция. Криптоанализаторът намира един алтернативен алгоритъм A, еквивалентен на DK(C), без да знае K. • Локална дедукция. Криптоанализаторът намира явен текст за подслушан (заловен) шифрован текст. • Информационна дедукция. Криптоанализаторът добива някаква информация за ключа или явния текст. Тази информация може да бъде няколко бита от ключа, някаква информация за формата на явния текст и т.н. Един алгоритъм е безусловно секретен, ако без значение колко е шифрования текст, криптоанализаторът няма достатъчно информация за да разкрие явния текст. Сложността на една атака може да се измери по различни начини: • Сложност на данната. Стойността на данната се изисква като вход към атаката. • Сложност на обработката. Времето необходимо за да се изпълни атаката. Това често се нарича работен фактор. • Изисквания за съхраняване. Капацитетът на паметта необходима за да се направи атаката.
Компютърни алгоритми(известни) • DES(DataEncryptionStandard) е най-популярния алгоритъм - симетричен алгоритъм; един и същи ключ се използва за шифриране и дешифриране. • RSA (наречен на създателите си—Rivest, Shamir и Adleman) - алгоритъм за публичен ключ. Използва се за шифриране и цифров подпис. • DSA (DigitalSignatureAlgorithm, употребява се като част от стандарта за цифров подпис) - алгоритъм за публичен ключ. Не се използва за шифриране, а само за цифров подпис.
2.5. Криптоанализ Криптоанализът е наука за откриване на явния текст на съобщението без достъп до ключа. Загубата на един ключ в некриптоаналитичен смисъл се нарича компромис. Един криптоаналитичен опит се нарича атака. Има четири общи типа на криптоанализаторски атаки при допускане, че крип-тоанализаторът има пълно знание за употребения алгоритъм за шифриране: 1.Атака само на шифрования текст. Дадено:C1 = Ek(P1), C2 = Ek(P2),...Ci = Ek(in-) Извежда се:Или P1 , P2 ,...Pi ; k; или един алгоритъм за получаването на Pi+1 от Ci+1 = Ek(Pi+1) 2.Атака на известен явен текст. Дадено:P1, C1 = Ek(P1), P2, C2 = Ek(P2),... Pi, Ci = Ek(Pi ) Извежда се:Или k, или един алгоритъм за да се получи Pi+1 от Ci+1 = Ek(Pi+1) 3.Атака на избран явен текст. Дадено:P1, C1 = Ek(P1), P2, C2 = Ek(P2),... Pi, Ci = Ek(Pi ), където се избират P1, P2,...Pi Да се изведе:Или k, или един алгоритъм за да се получи Pi+1 от Ci+1 = Ek(Pi+1)
Продължение 4. Адаптивна атака на избран явен текст. 5. Атака на избран шифрован текст Дадено:C1, P1 = Dk(C1), C2, P2 = Dk(C2),...Ci, Pi= Dk(Ci) Да се изведе:k 6.Атака на избран ключ. 7. Атака от криптоанализаторите на гумения маркуч. Заключение на Керкхофс: Ако силата на твоята нова криптосистема разчита на факта, че хакерът не знае работата на алгоритъма ти си погубен. Ако вярваш, че пазейки секрета на алгоритмите подобряваш секретността на своята криптосистема повече от позволеното на академичната общност да я анализира, ти грешиш. И ако мислиш, че някой иска да деасемблира твоя код и по обратен начин твоя алгоритъм, ти си наивен.
3.Криптография с един ключ3.1. Заместващи и преместващи шифри. • Заместващи шифри Шифърът със заместване е шифър, в който елементите на явния текст (обикновено букви или числа) са заместени с други символи или групи от символи. Действителният ред на елементите от явния текст не е променен. Пример за заместване (субституция) е следния ключ: Plaintextletters:abcdefghijklmnopqrstuvwxyz Ciphertextletters:YNROTKMCPBDVXZALEWUSFQJHGI Субституционният шифър се дефинира при P = C =Z26и К множеството от всички пермутации на 26-те символа 0, 1, ..., 25. За фиксирана пермутация π є К се дефинират криптиращите и декриптиращите функции съответно по следните правила: eπ(x) = π(x), xє Z26 dπ (y) = π-1 (y), yє Z26 , където π-1е обратната пермутация на π. Пример: Нека πе “случайна” пермутация, която размества буквите от английската азбука по следния начин: т.е., eπ (a) = X, eπ(b) = N, и т.н. Обратната пермутация π-1 се получава като се разменят местата на двата реда и горният се подреди лексикографски:
Продължение В класическата криптография има четири типа заместващи шифри: • Прост заместващ шифър или монобуквен шифър е един шифър, в който всеки знак се замества с кореспондиращ знак в шифрования текст. Криптограмите във вестниците са прости заместващи шифри; • Хомофонен заместващ шифър е един шифър, в който един знак на явния текст може да се замени с различни знаци в шифрования текст. Например „А” може да кореспондира с 5,13,25, или 56, „В” – 7,19,31 или 42 и т.н.; • Полиграмен заместващ шифър е един шифър, в който блок от знаци се шифроват в групи. Например “ABA” кореспондира с “RTQ”, а “ABB” – с “SLL” и т.н.; • Полибуквен заместващ шифър е един шифър, в който е направен многократно прост заместващ шифър. Например пет пъти е приложен прост заместващ шифър. Caesar cipher ROT13е също заместващ шифър. В този шифър “A” е заместено с “N,” “B” - с “O” и т.н. всяка буква се ротира 13 пъти. Шифрирайки файла два пъти с ROT13 се връща оригиналния текст. P = ROT13 (ROT13 (P)) Транслиращият шифър се базира на модулната аритметика. Нека а и b са цели числа, и m е цяло положително число. Тогава a ≡ b (modm), ако m дели b – a. Изразът a ≡ b (modm) се чете по следния начин “а е сходно на bпо модулm”. Числото m се нарича модул. Ако се разделят a и b на m, се получават целочислени частно и остатък, като остатъка е между 0 и m-1, т.е. a = q1m + r1 и b = q2m + r2, където 0 ≤ r1 ≤ m- 1 и 0 ≤ r2 ≤ m - 1. Вижда се, че a ≡ b (modm) когато r1 = r2. Записът amodm(без скоби) се използва за означаване на остатъка от делението на a и m, т.е. r1. Тогава a ≡ b (modm), когато a (modm) = b (modm).
Продължение Транслиращият шифър над Z26(за английската азбука, съставена от 26 букви) се дефинира по следния начин: Нека P = C = K =Z26. За някое k, 0 ≤ k ≤ 25, се дефинират криптиращите и дикриптиращите функции съответно по следните правила: ek(x) = x + k (mod 26) , xє Z26 dk(y) = y - k (mod 26) , yє Z26 • Афинен шифър (обобщен транслиращ шифър) Афинният шифър е едно от обобщенията на транслиращия шифър. При него P = C =Z26 за английската азбука иP = C =Z30 - за българската, като К = {(a,b) є Z26 × Z26 : gcd(a, 26) = 1} ( => a = 1 или aи 26 са взаимно прости числа). За всяка двойка k = (a,b) є К седефинират ek(x) = ax + b (mod 26) , xє Z26 dk(y) = a -1 (y – b) (mod 26) , yє Z26
Полиграмни заместващи шифриPlayfair cipher - Charles WheatstoneДа се шифрира"Merchant Taylors’ School":Plaintext: ME RC HA NT TA YL OR SZ SC HO OL Ciphertext: SC OF LM BI SB AR PU BX ME OV RH Най-общо това може да се запише при Р=С=К=Z26m, къдетоmе естествено число. За ключ (k1, k2,..., km) правилата за шифриране и дешифриране саek (x1 ,x2 ,…,xm)= (x1+k1, x2+k2,…,xm+km)dk (y1 ,y2 ,…,ym)= (y1-k1, y2-k2,…,ym-km)
Blaise de VigenèrePlaintext: MERCHANT TAYLORS SCHOOLKey: DONTSTAN DALONED ONTSTACiphertext: PSEVZTNG WAJZBVV GPAGHL
Разместващи шифри Разместващите шифри пренареждат буквите на явния текст без да променят буквите. Има три прости разместващи шифри: 1. Да се напише текстът в обратен ред: President Hoover ordered Secretary of State Stimson to close the cipher bureau. UAERUB REHPIC EHT ESOLC OT NOSMITS ETATS FO YRATERCES DEREDRO REVOOH TNEDISERP 2. Шифър на оградено скриване - пишещиятредува буквитеот явното съобщение по редове и след това чете ред по ред: Явно съобщение: Most ciphers employ a key Подредени букви: mscpesmlyky o t i h r e p o a e Шифрирано съобщение: MSCPESMLYKY OTIHREPOAE M R H N T Y O S C O L E C A T A L R S H O Което се чете като:MRHNTYOSCOLECATALRSHO. 3. Геометрични модели могат да бъдат взети от явния текст и изрязани от него. След това съобщението се шифрира по определен начин. Например: Съобщение:Usually the plaintext is in the native tongue of the communicator. usuallythep laintextisi nthenativet ongueofthec ommunicator Съобщението се шифрова в блокове по 5 букви чрез четене надолу по колони. ULNOO SATNM UIHGM ANEUU LTNEN LEAOI YXTFC TTITA HIVHT ESEEO PITCR
Маршрутни шифри Шифри с двойна транспозиция с ключови думи, базиращи се на матрици; • Умножаващи шифри наречени още делящи системи (фрактиращи) -Прави се една субституция от символите в явния текст с множество символи (обикновено двойки, в който случай шифърът се нарича билитерален шифър) в шифротекста; -Супер криптиране чрез транспозиция. Ключова дума "Subject" Plaintext: M E R C H A N T T A Y L O R S Ciphertext:FG AV GF AX DX DD FV DA DA DD VA FF FX GF AA За транспозицията нова ключова дума “Cipher” Крайният шифър е: FAFDFGDDFAVXAAFGXVDXADDVGFDAFA
4. Просто XOR XOR е операция изключващо ИЛИ: ‘^’ в C или ⊕ в математическите означения. Тя работи над битове: 0 ⊕ 0 = 0 0 ⊕ 1 = 1 1 ⊕ 0 = 1 1 ⊕ 1 = 0 Също може да се отбележи: a ⊕ a = 0 a ⊕ b ⊕ b = a При симетричен алгоритъм явният текст се подлага на XOR с ключ за да генерира шифрования текст. Когато се приложи XOR на получената стойност, т.е. двукратно е приложена операция XOR над Р, се реставрира оригиналния текст – шифрирането и дешифрирането използват едни и същи програми: P ⊕ K = C C ⊕ K = P
5. Падове Например, ако съобщението е ONETIMEPAD и ключовата последователност на пада е TBFRGFARFM. Тогава шифрования текст е IPKLPSFHGQ, защото O + T mod 26 = I N + B mod 26 = P E + F mod 26 = K и т.н.