Šifra ChaCha

  • Proudová šifra
  • Cíl zvýšení rozptylu v jedné rundě při zachování nebo vylepšení výkonu (oproti Salsa20)
  • Inicializace
    • 128b konstanta
    • 256b klíč
    • 64b čítač
    • 64b náhodná nonce
    • uloženy do 4x4 matice 32b slov

../Attachments/Pasted image 20230314150648.png

  • Počet operací u Salsa20 i ChaCha je stejný, ale ChaCha jinými operacemi zajistí větší rozptyl
  • 2 z rotací jsou násobky 8 ( a ) - optimalizace na některých architekturách, včetně x86

../Attachments/Pasted image 20230610174303.png

  • Liché rundy - aplikují se na sloupce
    • QR ( 0, 4, 8, 12 ) - sloupec 1
    • QR ( 1, 5, 9, 13 ) - sloupec 2
    • QR ( 2, 6, 10, 14 ) - sloupec 3
    • QR ( 3, 7, 11, 15 ) - sloupec 4
  • Sudé rundy - aplikují se na diagonály
    • QR ( 0, 5, 10, 15 ) - diagonála 1 (hlavní)
    • QR ( 1, 6, 11, 12 ) - diagonála 2
    • QR ( 2, 7, 8, 13 ) - diagonála 3
    • QR ( 3, 4, 9, 14 ) - diagonála 4

Zajímavosti

  • Je základem hashovací funkce BLAKE
  • Google vybral ChaCha20 pro ověřování zpráv a šifrování používané v protokolu QUIC (HTTP/3) a v OpenSSH
  • Nahrazuje AES v systémech, kde CPU nemá akceleraci AES (mobilní zařízení, ARM procesory)

Další materiály


Vytvořeno: 7. 8. 2024, 13:25
Poslední aktualizace: 7. 8. 2024, 13:25