Cryptology Academy · Oppitunti

Lohkosalainmenetelmien perusteet ja täyttö

Ymmärtäkää lohkokoko, PKCS7-täyttö ja salaimen rakenne.

Oppitunti 1/413 vaihetta

Lohkosalainmenetelmien perusteet ja täyttö on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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

Lohkosalaimet salaavat kiinteän kokoisia lohkoja. Kun selkoteksti ei täytä kokonaista lohkoa, tarvitaan täyttöä. Tässä oppitunnissa opitte lohkosalainten rakenteen, täyttömenetelmät ja niiden merkityksen.

Lohkokoon kertaus

AES käyttää 128-bittisiä (16 tavun) lohkoja. DES käytti 64-bittisiä (8 tavun) lohkoja. Jos selkoteksti on täsmälleen 16 tavua pitkä, se muodostaa yhden lohkon. 17 tavua vaatii kaksi lohkoa.

Miksi täyttöä tarvitaan

Jos selkoteksti on 20 tavua pitkä, toinen lohko sisältää vain 4 tavua. Salaus tarvitsee täyden 16 tavun lohkon. Jäljelle jäävät 12 tavua täytetään määritellyllä ja palautettavalla menetelmällä.

PKCS#7-täyttö

PKCS#7 täyttää N tavulla, joista jokaisen arvo on N: - Tarvitaan 3 tavua → lisätään: 03 03 03 - Tarvitaan 12 tavua → lisätään: 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C - Tarvitaan 0 tavua → lisätään kokonainen 16 tavun lohko: 10×16

Täyttäkää aina yksi kokonainen lohko

Jos selkoteksti on täsmälleen 16 tavua pitkä, PKCS#7 lisää kokonaisen ylimääräisen lohkon, jonka arvo on 0x10×16. Näin vastaanottaja tietää aina, mihin täyttö päättyy: viimeisen tavun arvo kertoo poistettavien tavujen määrän.

PKCS#7 Pythonissa

def pkcs7_pad(data: bytes, block_size: int = 16) -> bytes: n = block_size - (len(data) % block_size) return data + bytes([n] * n) def pkcs7_unpad(data: bytes) -> bytes: n = data[-1] return data[:-n]

Täyttöoraakkelihyökkäykset

Jos palvelin paljastaa, onko täyttö kelvollinen salauksen purkamisen jälkeen (virheilmoituksen tai ajoituksen avulla), hyökkääjä voi purkaa salatekstin tavu kerrallaan tuntematta avainta. Tämä rikkoi ASP.NET ViewStaten vuonna 2010.

Nollatäyttö ja ANSI X.923

Nollatäyttö: täytetään 0x00-tavuilla (tulkinnanvaraista — alkuperäiset tiedot voivat päättyä nolliin). ANSI X.923: täytetään nollilla, viimeinen tavu = määrä. ISO 7816-4: ensimmäinen täyttötavu = 0x80, loput = 0x00. PKCS#7 on yksiselitteinen ja suositeltava.

Bittitason täyttö (CTS)

Ciphertext Stealing (CTS) välttää täytön kokonaan: se järjestää kaksi viimeistä lohkoa uudelleen käsitelläkseen osittaisen lohkon syötteen. Sitä käytetään levyn salauksessa (Kerberosissa ja joissakin AES-toteutuksissa).

Lohkokoon vaikutus turvallisuuteen

64-bittisillä lohkoilla (DES, 3DES, Blowfish) syntyy syntymäpäiväparadoksin mukainen törmäys 2^32 lohkon jälkeen (noin 32 Gt). Selaimet poistivat 3DES:n käytöstä TLS:ssä, kun SWEET32-hyökkäys osoitti tämän riskin vuonna 2016. AES:n 128-bittiset lohkot vaativat 2^64 lohkoa, joten ne ovat käytännössä turvallisia.

Täytöttömät tilat

AES-CTR ja AES-GCM eivät tarvitse täyttöä: ne käyttävät lohkosalainta avainvirran tuottamiseen ja XOR-operaatiota minkä tahansa pituiselle syötteelle. Lohkoraja on vain sisäisen toteutuksen yksityiskohta.

Pikatarkistus

Kun PKCS#7:ää käytetään 16 tavun lohkoilla, mitä täyttöä lisätään 13 tavun viestiin?

Kertaus

Lohkosalainten täyttö on nyt hallussa! Seuraavaksi vertailemme ECB- ja CBC-tiloja — aloitamme kuuluisasta ECB-pingviinihyökkäyksestä.
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 ”Lohkosalainmenetelmien perusteet ja täyttö” ilmainen?

Kyllä – oppitunnin ”Lohkosalainmenetelmien perusteet ja täyttö” 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 ”Lohkosalainmenetelmien perusteet ja täyttö”?

Ymmärtäkää lohkokoko, PKCS7-täyttö ja salaimen rakenne. 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 1/4.

Kuinka kauan ”Lohkosalainmenetelmien perusteet ja täyttö”-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