230 likes | 797 Views
Rinktiniai informacijos saugos skyriai. 3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija. Paskaitos tikslai. Šioje temoje nagrinėjami klausimai: Perstatų šifrai Keitinių šifrai Vienos abėcėlės keitinių šifrai ir jų kriptoanalizė Daugelio abėcėlių keitinių šifrai
E N D
Rinktiniai informacijos saugos skyriai 3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija
Paskaitos tikslai Šioje temoje nagrinėjami klausimai: Perstatų šifrai Keitinių šifrai Vienos abėcėlės keitinių šifrai ir jų kriptoanalizė Daugelio abėcėlių keitinių šifrai Vigenère šifras ir jo kriptoanalizė
Klasikinė kriptografija Buvo naudojami du pagrindiniai šifravimo būdai: • Perstatų šifrai (Transposition): • sukeičia vietomis raides pagal kokią nors taisyklę, • lieka tos pačios raidės, tik išdėstytos kita eilės tvarka. • Keitinių šifrai (Substitution): • pakeičia kiekvieną raidę kita raide, • išlaiko raidžių eilės tvarką, bet pakeičia jų tapatybę.
Perstatų šifrai • Kaip užrašyti ir saugoti perstatų šifro raktą?
Perstatų šifrų pavyzdžiai (1): Skytalė Skytalė - pirmasis istorijoje žinomas šifravimo įrenginys, kartu ir šifras. Naudotas Spartoje antikos laikais.
Perstatų šifrų pavyzdžiai (2): Geležinkelio tvorelės šifras (Rail Fence cipher)
Perstatų šifrų pavyzdžiai (3): Fleissnerio kvadratų šifras XVIII amžiuje naudoto Fleissnerio kvadratų šifro šablonas [Sta07]
Keitinių šifrai: Cezario šifras (Caesar Cipher) • Tai seniausias žinomas keitinių šifras. • Pirmas patvirtintas šifro naudojimas kariniams tikslams. • Naudotas Romos karvedžio Julijaus Cezario. • Pakeičia kiekvieną raidę raide, stovinčia abėcėlėje trimis pozicijomis toliau: • 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 • Pavyzdys: • susitikime po paskaitos • VXVLWLNLPH SR SDVNDLWRV
Keitinių šifrai: Postūmio šifras (Shift Cipher) • Tai Cezario šifro apibendrinimas. • Veikimas. Perstumti abėcėlėje ne per 3 raides, kaip Cezario šifro atveju, o per K raidžių, kur K yra šifro raktas, 0 < K < N (čia N yra abėcėlės raidžių skaičius). • Kriptoanalizė. Ar gali kriptoanalitikas rasti raktą K? • TAIP! Brutalios jėgos ataka. Per maža raktų aibė!
Vienos abėcėlės keitinių šifrai (Monoalphabetic Substitution Ciphers) (1) • Raktai: visi abėcėlės = {A, B, C, …, Z} keitiniai. • Šifravimas raktu : • kiekviena pradinio teksto raidė X pakeičiama į (X). • Dešifravimas raktu : • kiekviena šifruoto teksto raidė Y pakeičiama į -1(Y). • Pavyzdys: 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 =B A D C Z H W Y G O Q X S V T R N M S K J I P F E U TAIPKBGR
Vienos abėcėlės keitinių šifrai (2) • Brutalios jėgos ataka neįgyvendinama be šiuolaikinių kompiuterių, nes, pavyzdžiui, jei abėcėlėje yra N=26 raidės, tai skirtingų raktų yra 26! 4×1026. • Dominuoja slapto rašto mene pirmąjį mūsų eros tūkstantmetį. • Tada daugelio laikytas neįveikiamu.
Vienos abėcėlės keitinių šifrų kriptoanalizė (1) • Kiekviena kalba pasižymi tam tikromis charakteristikomis: raidžių dažniu, dviejų ar daugiau raidžių grupių dažniu. • Vienos abėcėlės keitinių šifrai išlaiko šias charakteristikas. • Todėl vienos abėcėlės keitinių šifrai yra įveikiami dažnių analizės ataka.
Lietuvių kalbos raidžių dažniai Anita Juškevičienė. Kompiuterio klaviatūros matematinis modelis. Magistro baigiamasis darbas, VU MIF, 2009.
Vienos abėcėlės keitinių šifrų kriptoanalizė (2) • Skaičiuojami raidžių ir jų grupių pasirodymai šifruotame tekste, norint gauti jų dažnio įverčius. • Gauti įverčiai lyginami su žinomomis kalbos charakteristikomis. • Šifruoto teksto raidės pakeičiamos galimomis pradinio teksto raidėmis.
Daugelio abėcėlių keitinių šifrai (Polyalphabetic Substitution Ciphers) • Vienos abėcėlės keitinių šifrai yra įveikiami dažnių analizės ataka. • Stipresnio šifro idėja (apie 1466 metus pasiūlyta Leono Batistos Alberti): • Naudoti šifravimui daug abėcėlių ir jas keisti šifravimo metu. • Šią idėją į patogų praktiškai naudoti šifrą išvystė Vigenère (paskelbė 1586 metais).
Vigenère šifras (1) • Šifras naudojasi čia parodyta lentele. • Pradinio teksto raidė perstumiama ne per fiksuotą skaičių raidžių abėcėlėje, kaip buvo Cezario šifro atveju, o per kintamą skaičių, priklausantį nuo šifro rakto. • Šifro raktas užrašomas žodžiu, kurio raidės ir parodo, per kiek perstumti pradinio teksto raides abėcėlėje.
Vigenère šifras (2) • Pavyzdys. • Pradinis tekstas: K R I P T O G R A F I J A • Raktas: R A K T A S R A K T A S R • Šifruotas tekstas: B R S I T G X R K Y I B R • Vigenère šifras paslepia raidžių pasirodymo kalboje dažnius: kiekviena šifruoto teksto raidė gali būti gauta iš kelių pradinio teksto raidžių. Todėl pasidaro sunkiau panaudoti dažnių analizės ataką. • Vigenère šifru užšifruotas pranešimas faktiškai yra sudarytas iš tiek postūmio šifru užšifruotų pranešimų, kiek rakte yra raidžių.
Vigenère šifro kriptoanalizė • Pagrindinė problema yra rasti rakto ilgį. Tarkime, pavyko tai padaryti. Tada dešifruoti galima taip: • Padalinti šifruotą pranešimą į tiek postūmio šifru užšifruotų pranešimų, koks yra rakto ilgis. • Naudojant dažnių analizės ataką, rasti tų postūmio šifrų raktus ir dešifruoti pranešimus. • Rakto ilgiui rasti galima pasinaudoti 1863 metais Kasiski pasiūlyta idėja: jei pradiniame tekste kartojasi koks nors fragmentas (raidžių grupė), ir jis bus užšifruotas tuo pačiu rakto fragmentu, tai šifruotame tekste atitinkami fragmentai irgi kartosis. Todėl šifre reikia ieškoti pasikartojančių fragmentų.
Vigenère šifro kriptoanalizė: rakto ilgio radimas (1) • Ieškoti pasikartojančių fragmentų ir skaičiuoti atstumus tarp jų pradžių. Pavyzdžiui, jei šifruotas tekstas yra DFVNDFJNDVFMDKVNDSJKF, atstumas tarp pasikartojančių fragmentų VND yra 12. Daryti tai kiekvienam pasikartojančiam fragmentui. • Rasti visų tų atstumų daliklius. Jei koks nors skaičius yra visų atstumų daliklis, greičiausiai tai ir bus rakto ilgis. Aišku, pasikartojančių fragmentų gali pasitaikyti ir netyčia, bet didesnė tikimybė, kad tai pasikartojantis pradinio teksto fragmentas, kuris buvo užšifruotas tuo pačiu rakto fragmentu. Kadangi rakto fragmentai kartojasi kas rakto ilgio kartotiniai, tai pirmame žingsnyje rasti atstumai su didele tikimybe bus rakto ilgio kartotiniai.
Vigenère šifro kriptoanalizė: rakto ilgio radimas (2) Pavyzdys. • Moonsunstarsmoonsunsmooth • Raktas: alfa • MZTNSFSSTLWSMZTNSFSSMZTTHSWW • Atstumai tarp pasikartojančių fragmentų: • MZT – 12, 8 • SFS – 12 • Rakto ilgis dalo 8 ir 12, todėl tai 2 arba 4.
Literatūra • [Gol05] D. Gollmann, Computer Security, 2nd edition, John Wiley & Sons, 2005. • [PP07] Charles Pfleeger, Shari Lawrence Pfleeger. Security in Computing, Fourth Edition. Prentice Hall, 2007. • [Ske07] G. Skersys. Diskrečioji matematika. Mokymo priemonė, Vilnius, 2007, http://www.mif.vu.lt/~skersys/09r/dm/konsp.htm (V dalies 5 skyrius „Kriptografija“). • [Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007.