cybersecurity

A posztkvantum kriptográfia szállítása Pythonba

Forrás: blog.trailofbits.com 5 perc olvasás

Megosztás

A posztkvantum kriptográfia szállítása Pythonba

Összefoglalót olvas. A teljes tartalom itt érhető el: blog.trailofbits.com.

A posztkvantum-kriptográfia most már csak egy pip telepítésnyire van az egész Python ökoszisztéma számára. A Sovereign Tech Agency támogatásával megvalósítottuk az ML-KEM, a NIST által szabványosított kulcsmegosztási primitív, és az ML-DSA, a NIST által szabványosított digitális aláírás primitív támogatását a pyca/cryptography keretében. 2026. június 22-én a Fehér Ház utasította az Egyesült Államok kormányát, hogy gyorsítsa fel az átállást a posztkvantum-kriptográfiára. Az utasítás szerint a nagyteljesítményű kvantumszámítógépek, különösen ellenséges kezekben, fenyegetést jelentenek a széles körben használt kriptográfiai rendszerekre, és a támadók már most is gyűjthetik a titkosított adatokat, hogy később visszafejthessék őket. Konkrét migrációs határidőket is meghatároz: a magas értékű és nagy hatású szövetségi rendszereknek 2030. december 31-ig posztkvantum kulcsmegosztást kell használniuk, a posztkvantum digitális aláírásokat pedig 2031. december 31-ig. És még ha nem is érdekel a kvantum ellenállás, ez nem probléma, mivel a kvantum ellenállás nem a posztkvantum kripto fő előnye. Ez az átállás nem történhet meg csupán a politikai szinten. Minden olyan alkalmazás, amely csomagokat ír alá, érvényesít tanúsítványokat, biztonságos csatornákat hoz létre vagy védi a hosszú élettartamú titkokat, a kriptográfiai könyvtáraktól függ. Ha ezek a könyvtárak nem kínálnak posztkvantum algoritmusokat, a szoftver stack nem tud migrálni. Szinte minden Python program, amely kriptográfiával foglalkozik, a pyca/cryptography-n keresztül megy. Jelenleg a tizenegyedik legletöltöttebb csomag a PyPI-n, amely az elmúlt hónapban 1,2 milliárd letöltést produkált. A pyca/cryptography csomag kezeli az Ansible, Certbot (a Let’s Encrypt kliens), Apache Airflow, paramiko (a Python-alapú SSH kliens) és sok más projekt kriptográfiai műveleteit. Ha a pyca/cryptography nem szállít posztkvantum primitíveket, a Python ökoszisztéma nem tudja elkezdeni a migrálást. Posztkvantum támogatás most már egy pip telepítésnyire van A cryptography>=48 verziótól a posztkvantum algoritmusok támogatása már csak egy pip telepítésnyire van. A 48. verzió tartalmazza az ML-KEM és ML-DSA Rust kötéseinket, a cross binding API-t és tesztjeit, valamint az AWS-LC támogatását kriptográfiai háttérként. Tartalmazza a pyca/cryptography karbantartóinak munkáját is, hogy támogassa a többi kriptográfiai hátteret. Sajnos ez nem elegendő egy posztkvantum migrációs beépített cserehez. Ezeknek a primitíveknek különböző méret-, teljesítmény- és integrációs kompromisszumai vannak, mint a klasszikus algoritmusoknak, amelyeket helyettesítenek. PQ algoritmus kompromisszumok A posztkvantum primitívek megtartják a biztonsági szintet, de megváltoztatják az adatok méretét az átvitelnél. A nyilvános kulcsok, aláírások és titkosított üzenetek gyakran 1–2 nagyságrenddel nagyobbak, mint a klasszikus értékek, amelyeket helyettesítenek. A műveletek is bonyolultabbak, és ezért lassabbak, de modern hardveren még mindig észlelhetetlenek a normál használat során, és valószínűleg gyorsabbak lesznek a jobb hardverek és algoritmusok révén. Az aláírások esetében itt van, hogyan hasonlít a klasszikus primitív (Ed25519) a posztkvantum megfelelőjéhez (ML-DSA-65): Algoritmus Nyilvános kulcs Privát kulcs Kimenet Ed25519 32 B 32 B 64 B sig ML-DSA-65 1,952 B 32 B 3,309 B sig És a kulcscsere és titkosítás esetében itt van, hogyan hasonlít az X25519 a posztkvantum megfelelőjéhez (ML-KEM-768): Algoritmus Nyilvános kulcs Privát kulcs Kimenet X25519 32 B 32 B 32 B megosztott ML-KEM-768 1,184 B 64 B 1,088 B titkos szöveg Ha fenntart egy protokollt vagy vezetékformát, amely hardcode-olja az Ed25519 méretű aláírásokat vagy az X25519 méretű nyilvános kulcsokat, akkor a posztkvantum migráció több mint egy primitív cserét igényel. A környező mezők, hosszúsági előírások és darabolási feltételezések méretét is növelni kell. Az ML-DSA (FIPS 204) használata: Kvantumellenálló aláírások Az ML-DSA egy hálózati alapú aláírási séma, amely helyettesíti az RSA, ECDSA és Ed25519 algoritmusokat. A Python API tükrözi a meglévő aszimmetrikus primitíveket: a cryptography.hazmat.primitives.asymmetric import mldsa private_key = mldsa.MLDSA65PrivateKey.generate() public_key = private_key.public_key() signature = private_key.sign(b"üzenet") public_key.verify(signature, b"üzenet") # InvalidSignature kivételt dob hiba esetén Az ML-KEM (FIPS 203) használata: Kulcs-encapsuláció a posztkvantum korszak számára Az ML-KEM egy kulcs-encapsulációs mechanizmus (KEM), amely megosztott titkok létrehozására szolgál. Az építkezés azonban eltérő. Az ML-KEM egy kulcs-encapsulációs mechanizmus, nem Diffie-Hellman csere. Ahelyett hogy mindkét fél kulcsrészeket kombinálna közös titok kinyerésére, az egyik fél encapsulál egy friss közös titkot a vevő nyilvános kulcsához, és a vevő dekapszulálja a megfelelő privát kulccsal. Ezek a műveletek lehetővé teszik, hogy mindkét fél közös titkot cseréljen, de alapvetően eltérnek a Diffie-Hellman-módszertől, és ellenállnak a kvantum-faktorizálási támadásoknak. a cryptography.hazmat.primitives.asymmetric import mlkem # A vevő generál egy kulcspárt és közzéteszi a nyilvános kulcsot. private_key = mlkem.MLKEM768PrivateKey.generate() public_key = private_key.public_key() # A küldő encapsulál egy friss közös titkot a nyilvános kulcshoz. shared_secret_sender, ciphertext = public_key.encapsulate() # A vevő dekapszulázza ugyanazt a közös titkot a titkos szövegből. shared_secret_receiver = private_key.decapsulate(ciphertext) assert shared_secret_sender == shared_secret_receiver Az út előtt: SLH-DSA és protokoll integráció Két terület még folyamatban van: egy harmadik NIST szabvány és e primitívek valós protokollokba való integrálásának munkája. SLH-DSA Az SLH-DSA (FIPS 205) a NIST hash-alapú digitális aláírási szabványa. Az ML-DSA-hoz hasonlóan e klasszikus aláírási sémák, mint az RSA, ECDSA és Ed25519 helyettesítésére szolgál. Kompromisszuma eltérő: az SLH-DSA nagyon nagy aláírásokat és lassú aláírást kínál, de kizárólag a hash funkciók biztonsági tulajdonságaira támaszkodik, amelyeket évtizedek óta tanulmányoznak. Ez konzervatív megoldás, ha a jövőbeli kriptanálisok gyengítik a rács-alapú aláírásokat. Az SLH-DSA nem támogatott a pyca/cryptography 48-ban, de elkezdtük a munkát rajta. Posztkvantum a protokollokban A primitívek az alapok, de a posztkvantum migráció csak akkor lesz teljes, ha a protokollok a posztkvantum ellenálló algoritmusokat használják. Valószínűleg nem fog PQ algoritmusokat közvetlenül használni olyan eszközökben, mint a Certbot vagy az Ansible, amíg a közös protokollok nem bővülnek e támogatással. Bár a meglévő megvalósítások helyettesítésére jól megtervezettek, az algoritmusok módosítása óvatos fejlesztést, tesztelést és ellenőrzést igényel. Aktívan dolgozunk azon, hogy segítsük a karbantartókat a PQ algoritmusok alkalmazásokba való integrálásában. Köszönetnyilvánítás Ez a munka a Sovereign Tech Agency által finanszírozott, amelynek küldetése a nyilvános digitális rendszerek által használt nyílt forráskódú infrastruktúra támogatása. Tartozunk továbbá a pyca/cryptography karbantartóinak, Paul Kehrernek és Alex Gaynornak, akik folyamatos visszajelzést és áttekintést nyújtottak a fejlesztési folyamat során, és továbbra is irányítják ezt a kritikus nyílt forráskódú szoftvert.

A teljes cikk az eredeti weboldalon

Külső link: blog.trailofbits.com

Kapcsolódó cikkek