Cryptology Academy · Oppitunti

ECB ja CBC: kuviot ja IV-arvot

Havainnollistakaa ECB-pingviinihyökkäys ja se, miksi CBC:ssä on käytettävä satunnaista IV-arvoa.

Oppitunti 2/413 vaihetta

ECB ja CBC: kuviot ja IV-arvot on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

ECB ja CBC ovat kaksi lohkosalainten toimintatilaa. ECB on tunnetusti turvaton, koska se vuotaa tietoa rakenteesta. CBC satunnaisen IV:n kanssa on huomattavasti vahvempi. Tutustutaan molempiin perusteellisesti.

ECB-tila: Electronic Codebook

ECB salaa jokaisen lohkon itsenäisesti: Ci = AES(K, Pi). Sama selkotekstilohko tuottaa aina saman salatekstilohkon. Yhden viestin sisällä tai eri viestien välillä samanlaiset lohkot ovat identtisiä, jos sisältö täsmää.

ECB-pingviini

”ECB-pingviini” on klassinen havainnollistus: Tux-Linux-pingviinin PNG-kuva salataan AES-ECB:llä. Tulos näyttää edelleen pingviiniltä, koska samanväriset alueet salaavat samanlaisiksi kuvioiksi.

ECB:n haavoittuvuus: lohkojen uudelleenjärjestäminen

ECB-tilassa hyökkääjä voi järjestää salatekstilohkot uudelleen tuntematta avainta: - Lohkot ovat toisistaan riippumattomia - Lohkojen järjestyksen muuttaminen → puretun selkotekstin järjestyksen muuttaminen - Lohkojen monistaminen → sisällön monistaminen - Lohkojen poistaminen → sisällön poistaminen

CBC-tila: Cipher Block Chaining

CBC tekee XOR-operaation jokaisen selkotekstilohkon ja edellisen salatekstilohkon välillä ennen salausta: C0 = AES(K, P0 XOR IV) Ci = AES(K, Pi XOR C(i-1)) Sama selkoteksti eri kohdissa → erilainen salateksti.

Alustusvektori (IV)

IV toimii ensimmäisen lohkon C(-1)-arvona. Sen on oltava: - satunnainen ja yksilöllinen jokaiselle viestille - ei-salainen (lähetetään salatekstin mukana) - sitä ei saa koskaan käyttää uudelleen saman avaimen kanssa Ennustettava IV rikkoo CBC:n turvallisuuden.

CBC:n salauksen purku

Pi = AES_Dec(K, Ci) XOR C(i-1) P0 = AES_Dec(K, C0) XOR IV Huomautus: lohkon i salauksen purkuun tarvitaan vain Ci ja C(i-1). Lohkot voidaan purkaa rinnakkain (toisin kuin salauksessa).

CBC:n bittien kääntämishyökkäys

Lohkon Ci bitin i kääntäminen aiheuttaa: (1) sotketun lohkon Pi, (2) ennustettavan bitin i kääntymisen lohkossa P(i+1). Ilman todennusta hyökkääjä voi muuttaa tiettyjä selkotekstin bittejä tietäen, missä ne sijaitsevat.

BEAST-hyökkäys TLS 1.0:aa vastaan (2011)

BEAST hyödynsi TLS 1.0:n tapaa käyttää CBC:tä ennustettavien IV-arvojen kanssa. Yhden tietueen viimeistä lohkoa käytettiin seuraavan tietueen IV:nä. Rizzo ja Duong osoittivat hyökkäyksen, mikä pakotti selaimet siirtymään TLS 1.1:een tai uudempaan.

Miksi CBC vaatii todennuksen

CBC-salaus ilman MAC-arvoa mahdollistaa bittien kääntämis- ja täyttöoraakkelihyökkäykset. Yhdistäkää CBC aina HMAC:iin (Encrypt-then-MAC) tai vaihtakaa AES-GCM:ään (AEAD sisäänrakennettuna).

CBC käytännössä Pythonissa

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes import os iv = os.urandom(16) key = os.urandom(32) cipher = Cipher(algorithms.AES(key), modes.CBC(iv)) enc = cipher.encryptor() ciphertext = enc.update(padded_plaintext) + enc.finalize()

Pikatarkistus

Miksi ECB-tila vuotaa tietoa selkotekstin rakenteesta?

Kertaus

ECB on vaarallinen, CBC on parempi mutta tarvitsee todennuksen. Seuraavaksi tutustumme CTR-tilaan — AES:n muuttamiseen virtasalaukseksi.
Aloita maksutta

Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
67
Oppitunnit
261

Usein kysytyt kysymykset

Onko oppitunti ”ECB ja CBC: kuviot ja IV-arvot” ilmainen?

Kyllä – oppitunnin ”ECB ja CBC: kuviot ja IV-arvot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”ECB ja CBC: kuviot ja IV-arvot”?

Havainnollistakaa ECB-pingviinihyökkäys ja se, miksi CBC:ssä on käytettävä satunnaista IV-arvoa. Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”ECB ja CBC: kuviot ja IV-arvot”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?

Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Lohkosalainmenetelmien perusteet ja täyttö
  2. ECB ja CBC: kuviot ja IV-arvot
  3. CTR-tila ja lohkosalaimen toiminta suoratoistosalaimena
  4. GCM ja todennettu salaus
← Takaisin: Cryptology Academy