3. kriptografija ir kriptografijos protokolai: klasikinė ...skersys/16p/riss/konsp/03 -...

23
Rinktiniai informacijos saugos skyriai 3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija

Upload: others

Post on 01-Feb-2020

18 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Rinktiniai informacijos saugos skyriai

3. Kriptografija ir kriptografijos protokolai: Klasikinė kriptografija

Page 2: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

2

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ė

Page 3: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

3

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ę.

Page 4: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

4

Perstatų šifrai

Kaip užrašyti ir saugoti perstatų šifro raktą?

Page 5: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

5

Perstatų šifrų pavyzdžiai (1): Skytalė [Sta10]

Skytalė - pirmasis istorijoje žinomas šifravimo įrenginys, kartu ir šifras. Naudotas Spartoje antikos laikais.

Page 6: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Perstatų šifrų pavyzdžiai (2): Lentelės šifras [Sta10]

6

Page 7: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

7

Perstatų šifrų pavyzdžiai (3): Geležinkelio tvorelės šifras (Rail Fence cipher) [Sta10]

Page 8: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Perstatų šifrų pavyzdžiai (4): Fleissnerio kvadratų šifras

XVIII amžiuje naudoto Fleissnerio kvadratų šifro šablonas [Sta07]

8

Page 9: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

9

Perstatų šifrų pavyzdžiai (5): Kiti būdai [Sta10]

Page 10: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

10

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

Page 11: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

11

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! Perrinkimo ataka. Per maža raktų aibė!

Page 12: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

12

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

TAIP KBGR

Page 13: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

13

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.

Page 14: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

14

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.

Page 15: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Lietuvių kalbos raidžių dažniai

Anita Juškevičienė. Kompiuterio klaviatūros matematinis modelis. Magistro baigiamasis darbas, VU MIF, 2009.

15

Page 16: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

16

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.

Page 17: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Pavyzdžiai Polibijaus kodas (angl. Polybius Square Cipher)

http://www.cryptool-online.org/index.php?option=com_content&view=article&id=70&Itemid=80&lang=en http://practicalcryptography.com/ciphers/polybius-square-cipher/ https://en.wikipedia.org/wiki/Polybius_square

Dellastelio skėlimo pusiau šifras (angl. Bifid cipher) (1895) http://rumkin.com/tools/cipher/bifid.php http://www.cryptool-online.org/index.php?option=com_content&view=article&id=72&Itemid=82&lang=en http://practicalcryptography.com/ciphers/bifid-cipher/

Hayhaneno šifras (angl. The VIC Cipher) (1953) http://www.quadibloc.com/crypto/pp1324.htm https://en.wikipedia.org/wiki/VIC_cipher

Playfairo šifras (angl. Playfair Cipher) http://www.quadibloc.com/crypto/pp1321.htm http://rumkin.com/tools/cipher/playfair.php http://www.cryptool-online.org/index.php?option=com_content&view=article&id=74&Itemid=84&lang=en

Trijų kvadratų šifras (angl. Tri-Square Cipher) http://www.apprendre-en-ligne.net/crypto/subst/3carres.html http://www.cryptogram.org/cdb/aca.info/aca.and.you/chap08.html#TRISQU

Page 18: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

18

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).

Page 19: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

19

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.

Page 20: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

20

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ą.

Page 21: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

21

Vigenère šifro kriptoanalizė

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ų.

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ų.

Page 22: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

Vigenère šifro kriptoanalizė: rakto ilgio radimas

Pavyzdys. Šifruokime, naudodami raktą KAS (rakto ilgis yra 3): Pradinis tekstas: GERI VYRAI GEROJ GIRIOJ Raktas: KASK ASKAS KASKA SKASKA Šifruotas tekstas: QEJS VQBAA QEJYJ YSRAYJ

Šifruotame tekste yra pasikartojančių fragmentų, tarp kurių atstumai tokie: QEJ – 9, YJ – 6, JY – 2.

Didelė tikimybė, kad fragmentai kartojasi todėl, kad tas pats pradinio teksto fragmentas buvo užšifruotas tuo pačiu rakto fragmentu (taip ir buvo fragmentų QEJ ir YJ atveju). Atstumas tarp tokių fragmentų bus rakto ilgio kartotinis. Rakto ilgį rasime nagrinėdami tokių atstumų daliklius. Šiuo atveju tai 6 ir 9, todėl rakto ilgis galėtų būti 3 (taip ir yra).

Gali būti ir netyčinių pasikartojančių fragmentų (šiuo atveju fragmentas JY). Reikia atlikti atstumų tarp pasikartojančių fragmentų daliklių statistinę analizę. Kuris daliklis dalo daugiausiai atstumų, tas greičiausiai ir bus rakto ilgis.

Page 23: 3. Kriptografija ir kriptografijos protokolai: Klasikinė ...skersys/16p/riss/konsp/03 - Kriptografija2 - Klasikine.pdf · 3 Klasikinė kriptografija Buvo naudojami du pagrindiniai

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.

[Ske13] G. Skersys. Diskrečioji matematika. Mokymo priemonė, Vilnius, 2013 (V dalies 5 skyrius „Kriptografija“), http://www.mif.vu.lt/~skersys/15r/dm/konsp.htm

[Sta07] V. Stakėnas. Kodai ir šifrai. TEV, Vilnius, 2007. [Sta10] V. Stakėnas. Kriptologijos paskaitos. Skaidrės,

2010, http://www.mif.vu.lt/~vilius/Skaidres.zip