Cryptology Academy · Oppitunti

RSA-avainten luominen vaihe vaiheelta

Luokaa p, q, n, e ja d sekä ymmärtäkää kunkin parametrin tehtävä

Oppitunti 2/413 vaihetta

RSA-avainten luominen vaihe vaiheelta 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

Tässä oppitunnissa luomme RSA-avainparin alusta alkaen ja käymme läpi kaikki matemaattiset vaiheet alkulukujen valinnasta avaimen parametreihin.

Vaihe 1: Valitkaa kaksi suurta alkulukua

Valitkaa suuret satunnaiset alkuluvut p ja q. Tuotantokäytössä: p,q ≥ 2^1023 (2048-bittiselle RSA:lle). Havainnollistamista varten: p=61, q=53.

Vaihe 2: Laskekaa moduuli

n = p × q = 61 × 53 = 3233. Moduuli n on julkinen osa. RSA-2048 käyttää arvoa n ≈ 2^2048. Suurten arvojen n tekijöihin jakaminen on laskennallisesti käytännössä mahdotonta.

Vaihe 3: Laskekaa phi-funktio

φ(n) = (p-1)(q-1) = 60 × 52 = 3120. Tämä pidetään salassa avainten luomisen jälkeen. Yhdessä tekijöihin jaon kanssa sen avulla voidaan laskea yksityinen avain.

Vaihe 4: Valitkaa julkinen eksponentti e

Valitkaa e siten, että 1 < e < φ(n) ja GCD(e, φ(n)) = 1. Vakiovalinta: e = 65537 (0x10001). Se on alkuluku, sen Hamming-paino on pieni (mikä nopeuttaa salausta), ja sitä tuetaan laajasti.

Vaihe 5: Laskekaa yksityinen eksponentti d

d = e^(-1) mod φ(n): etsikää d siten, että e×d ≡ 1 (mod 3120). Kun e=17 ja φ=3120: d=2753 (tarkistus: 17×2753 = 46801 = 15×3120 + 1 ✓). Python: d = pow(e, -1, phi_n)

Avainpari

Julkinen avain: (e=17, n=3233) — jaettavissa Yksityinen avain: (d=2753, n=3233) — salainen Jakakaa (e, n) vapaasti. Suojatkaa d:tä äärimmäisen huolellisesti. Älkää koskaan paljastako arvoja p, q tai φ(n) avainten luomisen jälkeen.

Avainten koot käytännössä

RSA-1024: vanhentunut vuodesta 2010 lähtien. RSA-2048: suositeltu vähimmäiskoko. RSA-4096: korkea turvallisuustaso, mutta neljä kertaa hitaampi. Useimmissa TLS-varmenteissa käytetään RSA-2048:aa tai ECDSA-256:ta (vastaava turvallisuustaso, mutta huomattavasti nopeampi).

CRT-optimointi

Kiinalainen jäännöslause (CRT) nopeuttaa RSA-salauksen purkamista noin nelinkertaisesti. Tallentakaa yksityinen avain muodossa (p, q, dp, dq, qInv) pelkän d:n sijaan. Laskekaa tulokset erikseen moduloiden p:llä ja q:lla ja yhdistäkää ne lopuksi.

Avainten luominen Pythonissa

from cryptography.hazmat.primitives.asymmetric import rsa private_key = rsa.generate_private_key( public_exponent=65537, key_size=2048 ) public_key = private_key.public_key()

Avainten serialisointi

from cryptography.hazmat.primitives import serialization pem = private_key.private_bytes( serialization.Encoding.PEM, serialization.PrivateFormat.PKCS8, serialization.BestAvailableEncryption(b'passphrase') )

Pikatarkistus

RSA-avaimia luotaessa arvoilla p=7 ja q=11: mikä on n:n oikea arvo?

Kertaus

Osaatte nyt luoda RSA-avaimia alusta alkaen. Seuraavaksi käytämme näitä avaimia viestien salaamiseen ja salauksen purkamiseen modulaarisen potenssilaskennan avulla.
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 ”RSA-avainten luominen vaihe vaiheelta” ilmainen?

Kyllä – oppitunnin ”RSA-avainten luominen vaihe vaiheelta” 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 ”RSA-avainten luominen vaihe vaiheelta”?

Luokaa p, q, n, e ja d sekä ymmärtäkää kunkin parametrin tehtävä 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 ”RSA-avainten luominen vaihe vaiheelta”-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. Julkisen avaimen kryptografian käsitteet
  2. RSA-avainten luominen vaihe vaiheelta
  3. RSA-salauksen ja salauksen purkamisen matematiikka
  4. RSA:n käytännön käyttötapaukset ja avainkoot
← Takaisin: Cryptology Academy