17
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

Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 2: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 3: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 4: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 5: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 6: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 7: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 8: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 9: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 10: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 11: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 12: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 13: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 14: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 15: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 16: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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

Page 17: Blokk k dol zemm dok - smidla.husmidla.hu/sites/slides/itsec/blockmodes_nopause.pdfMi viszont piszok gyorsan meg szeretnénk gazdagodni Az egyes blokkokat nem tudjuk visszafejteni,

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