Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
Blokk kódoló üzemmódok
Smidla József
Rendszer- és Számítástudományi Tanszék
Pannon Egyetem
2012. 3. 6.
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 1 / 17
Tartalom
1 Elektronikus kódkönyv (EBC)
2 Titkosított blokkok láncolása (CBC)
3 Kimenet visszacsatolása (OFB)
4 Kódolt üzenet visszacsatolása (CFB)
5 Számláló mód (CTR)
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 2 / 17
Elektronikus kódkönyv
Electronic Code Book mode (EBC)X : kódolatlan szövegY : kódolt szövegK : kulcsY = Ek(X )
X = Dk(Y )
Bemenet feldarabolása blokkokraBlokkokat egymástól függetlenül kódoljuk ugyanazzal a kulccsal
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 3 / 17
Banki átutalás
Az A bankból pénzt utalunk B bankba, az utalást az alábbi üzenettelvégezzük el:
Tegyük fel, hogy
A blokkok egyenként 16 bájtosak, és AES-el kódoljuk őket
A bankok egy hétig minden üzenethez ugyanazt a 256 bites AESkulcsot használják
Mi viszont piszok gyorsan meg szeretnénk gazdagodni
Az egyes blokkokat nem tudjuk visszafejteni, ám erre nem is lesz szükség...Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 4 / 17
Banki átutalás
1 Bankszámlát nyitunk A és B banknál2 Többször 1 $-os összegeket utalunk az A bankbeli számlánkról a B-be3 Észrevesszük, hogy 5 blokk van4 Lementjük az 1., 3. és 4. blokk tartalmát5 Elfogunk minden más üzenetet6 Ha az elfogott üzenet 1. és 3. blokkja megegyezik azzal, amit mi
eltároltunk, akkor kicseréljük a 4. blokkot a lementett blokkra, majdaz üzenetet tovább küldjük
7 Ha elég gazdagok leszünk, meneküljünk egy olyan országba, ahonnannem adnak ki minket
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 5 / 17
Kép kódolása EBC módban
Eredeti kép: AES-el kódolt kép:
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 6 / 17
Előnyök és hátrányok
Előnyök
Egyszerű
Nagy adatmennyiség kódolása egyszerűen párhuzamosítható
Ha az üzenet átvitele során egy blokk sérül, akkor a dekódoláskor iscsak egy blokkot kapunk vissza hibásan
Hátrányok
DETERMINISZTIKUS!Lényegében egy behelyettesítő kódolót kapunk, amiről tudjuk, hogygyenge
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 7 / 17
Titkosított blokkok láncolása
Cipher Block Chaining mode (CBC)
IV: Inicializáló vektor, mindkét oldalon azonos, véletlenszerűen adjukmeg
Első blokk: Y1 = Ek(IV ⊕ X1)dekódolás−−−−−−−→ X1 = Dk(Y1)⊕ IV
Következő blokkok:
Yi = Ek(Yi−1 ⊕ Xi)dekódolás−−−−−−−→ Xi = Dk(Yi )⊕ Yi−1
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 8 / 17
Kép kódolása CBC módban
Eredeti kép: AES-el kódolt kép:
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 9 / 17
Titkosított blokk láncolása
A kommunikáló feleknek a kulcs mellett IV-ben is meg kell egyezniük
IV-t szimmetrikus kódolóval is meg lehet osztani egymással
A módszer nemdeterminisztikus kimenetet eredményez
Bankos példa
Ha minden üzenetnél más IV-t használnak, nem fedezhetünk felmintákat a kódolt üzenetekbenHa ugyanazt az IV-t használják, akkor:
1 Elfogjuk az üzeneteket2 Kicseréljük a 4. blokkot (azaz az azonosítót), majd az üzenetet tovább
küldjük3 A vevő oldalon visszafejtik az üzenetet4 A 4. és 5. blokk véletlenszerű értéket vesz fel5 Valószínűleg senki nem fog véletlenszerű mennyiségű pénzt kapni a
számlájára
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 10 / 17
Kimenet visszacsatolása
Output Feedback mode (OFB)
Inicializáló vektor használataElső blokk:
S1 = Ek(IV ),Y1 = X1 ⊕ S1dekódolás−−−−−−−→ S1 = Ek(IV ),X1 = Y1 ⊕ S1
Következő blokkok:
Si = Ek(Si−1),Yi = Xi ⊕ Si
dekódolás−−−−−−−→ Si = Ek(Si−1),Xi = Yi ⊕ Si
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 11 / 17
Kimenet visszacsatolása (OFB)
A kódoló kimenete független a titkosítandó szövegtőlLényegében egy folyam titkosítót kapunkA kulcs folyamot akár előre is kiszámolhatjukHa az üzenet átvitelekor 1 bit hiba történik, akkor a vevő oldalon iscsak 1 bit hiba keletkezikA vevő oldalon is kódolót kell használni, hogy ugyanazt akulcsfolyamot állítsuk elő, mint az adó oldalon
Ne ismételjük a kulcs folyamot!
1 Titkosítsuk P1 és P2 szöveget ugyanazon K kulcsfolyammal:C1 = P1 ⊕ K ,C2 = P2 ⊕ K
2 A támadó elfogja C1-et és C2-t, majd XOR-olja őket:C1 ⊕ C2 = (P1 ⊕ K )⊕ (P2 ⊕ K ) = P1 ⊕ P2
3 Ha ismerjük P1-et vagy P2-t, akkor a másik egy XOR művelettelmegkapható
4 Egyébként P1 ⊕ P2 gyakoriságelemzéssel egyszerűen megfejthetőSmidla József (RSZT) Blokk kódolók 2012. 3. 6. 12 / 17
Kódolt üzenet visszacsatolása
Cipher Feedback mode (CFB) Output Feedback mode (OFB)
Inicializáló vektor használata
Első blokk: Y1 = X1 ⊕ Ek(IV )dekódolás−−−−−−−→ X1 = Y1 ⊕ Ek(IV )
Következő blokkok:
Yi = Xi ⊕ Ek(Yi−1)dekódolás−−−−−−−→ Xi = Yi ⊕ Ek(Yi−1)
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 13 / 17
Kódolt üzenet visszacsatolása
1 Tegyük fel, hogy muszáj a blokkméretnél kisebb méretű üzeneteket iselküldeni
2 Kiegészítsük blokkméretre 0 karakterekkel? → Feleslegesen megnő atovábbítandó üzenet mérete
3 Xi legyen a blokkméretnél rövidebb4 A kódoló bemenetét egy shift-regiszterben tároljuk, ez kezdetben
IV -vel egyezik meg5 A kódoló kimenetének bal oldalát XOR-oljuk Xi -vel
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 14 / 17
Kódolt üzenet visszacsatolása
6 A kapott Yi hossza Xi -vel egyezik, ezt visszatöltjük a shift-regiszterbe7 A vevő oldalon a kapott Yi -t dekódoljuk a kódoló kimenetének bal
oldalával, megkapjuk Xi -t8 Yi -t itt is betöltjük a shift-regiszterbe9 Ha Yi az átvitel során sérül, akkor amíg a shift-regiszterben van, addig
hibásan dekódolt Xi -ket kapunk
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 15 / 17
Számláló mód
Counter mode (CTR)
Az inicializáló vektor mellett van 1-1 számlálónk a kódolónál (CTRe)és a dekódolónál (CTRd )Kezdetben CTRe = CTRd
Kódolás: Yi = Xi ⊕ Ek(IV |CTRe), majd CTRe-t 1-el növeljükDekódolás: Xi = Yi ⊕ Ek(IV |CTRd), majd CTRd -t 1-el növeljük
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 16 / 17
Számláló mód
Tegyük fel, hogy egy fájlt titkosítunk
Szeretnénk közvetlen módon elérni a fájl egy adott rekordját
A CBC, OFB és CFB módokban az i kódolt blokkra hatással van azösszes megelőző blokk, vagy kulcs folyam
CBC, OFB és CFB esetén ezért a fájl elejéről kell olvasni, míg el nemjutunk a kívánt pozícióig
ECB viszont gyenge
A CTR módban az i . kódolt blokkra nincs hatással a többi blokk
CTR módban közvetlenül dekódolhatjuk az i . blokkot
Ha két fájlt azonos kulccsal és IV -vel kódolunk, ugyanaz a problémalép fel, mint az OFB-nél
Smidla József (RSZT) Blokk kódolók 2012. 3. 6. 17 / 17