Zpět na domů

Kvantová hrubá síla v kryptoanalýze

Článek rozebírá kvantovou verzi útoku hrubou silou na šifrování s využitím algoritmu Groverů. Jsou popsány podmínky úspěchu na základě entropie plaintext'u, implementace orákulu a pseudokód. Aktuální pro hodnocení odolnosti symetrických šifr k kvantovým hrozbám.

Kvanta lámou klíče: algoritmus Groverů v akci
Advertisement 728x90

Kvantový útok hrubou silou na šifrování

Útok metodou úplného prohledání klíčového prostoru se používá, když je množina možných otevřených textů výrazně menší než celý prostor symbolů. Útočník zachytí šifrovaný text od Alice k Bobovi a implementuje dvě funkce: DECRYPT(key, ciphertext) pro dešifrování a ISPLAINTEXT(text) pro ověření, zda text patří do množiny povolených textů. Pokud je šifrování blokové, DECRYPT pracuje po blocích a ISPLAINTEXT akumuluje výsledky.

Pseudokód útoku je jednoduchý:

for each key
    text = DECRYPT(key, ciphertext)
    if ISPLAINTEXT(text) == 0 then return (key,text)
end for

Kritéria ISPLAINTEXT využívají statistiku symbolů, kombinace nebo heuristiky bez databází – kontroly frekvence, entropie nebo jazykové vzory.

Google AdInline article slot

Teorie informace pro odhad úspěšnosti

Pro monoalfabetickou šifru odhadujeme pravděpodobnost falešného poplachu:

  • LENGTH(plaintext) – délka v bitech
  • LENGTH(key) – délka klíče v bitech
  • LENGTH(ciphertext) – délka šifrovaného textu v bitech
  • ENTROPY(plaintext) – Shannonova entropie otevřeného textu

Podmínky:

  • LENGTH(plaintext) ≤ LENGTH(ciphertext)
  • Pravděpodobnost falešného průchodu: 2^-(LENGTH(plaintext) - ENTROPY(plaintext))
  • Pokud LENGTH(plaintext) - ENTROPY(plaintext) > LENGTH(key), klíč je jednoznačně určen

Pro algoritmy zachovávající délku: při LENGTH(ciphertext) - ENTROPY(plaintext) ≥ LENGTH(key) útok garantovaně najde klíč.

Google AdInline article slot

Kvantový přístup k prohledávání

Kvantové výpočty se opírají o superpozici a provázanost qubitů. Registr z N provázaných qubitů je ekvivalentní 2^N klasických stavů. Aritmetiku (sčítání, násobení, posuny) realizují kvantová hradla – transformace unitárních operátorů.

Libovolnou klasickou funkci nad registrem klíčů převedeme na unitární U(K), kde K je superpozice všech klíčů.

Groverův algoritmus pro hledání klíče

Kroky kvantového útoku:

Google AdInline article slot
  • Inicializujeme registr K délky LENGTH(key) v rovnoměrné superpozici všech klíčů: |K⟩ = (1/√2^{LENGTH(key)}) Σ |key⟩
  • Aplikujeme orákulum U(K) = DECRYPT(K, ciphertext), poté ISPLAINTEXT(U(K)): fáze se invertuje pro stavy s ISPLAINTEXT == 0
  • Zesílíme amplitudu cílového stavu Groverovým algoritmem: π/4 * √2^{LENGTH(key)} iterací s difúzními operátory a orákulem
  • Změříme registr K – kolaps do správného klíče s pravděpodobností ~1

Orákulum vyžaduje implementaci DECRYPT a ISPLAINTEXT jako reverzibilních kvantových obvodů. Pro blokové šifry – po blocích s pomocnými qubity.

// Pseudokód kvantového obvodu (styl Q#)
operation BruteForce(keyReg : Qubit[], ciphertext : String) : (Int, String) {
    // Apply H to all qubits for superposition
    ApplyToEach(H, keyReg);
    // Oracle: phase flip if ISPLAINTEXT(DECRYPT(keyReg, ciphertext)) == 0
    Oracle(keyReg, ciphertext);
    // Grover iterations
    for iter in 0 .. GroverIterations() - 1 {
        GroverDiffusion(keyReg);
        Oracle(keyReg, ciphertext);
    }
    // Measure
    let key = MeasureKey(keyReg);
    return (0, DECRYPT(key, ciphertext));
}

Kvadratické zrychlení: O(√2^{LENGTH(key)}) místo O(2^{LENGTH(key)}).

Co je důležité

  • Klasika vs. kvantum: Prohledání klíčů 128 bitů na CPU – 10^38 operací; na kvantovém počítači – 10^19.
  • Podmínka úspěchu: Redundance otevřeného textu (LENGTH - ENTROPY) > LENGTH(key)/2 pro praktický útok.
  • Omezení: Šum v NISQ-systémech vyžaduje korekci chyb; orákulum DECRYPT je složité pro AES-podobné šifry.
  • Post-kvantová kryptografie: Přechod na mřížkové, hashovací schémata je nezbytný.
  • Praxe: Simulátory Q# / Cirq demonstrují na 20bitových klíčích.

— Editorial Team

Advertisement 728x90

Číst dál