Kryptoanalýza šifry PRESENT pomocí rekonfigurovatelného hardware COPACOBANA Jan Pospíšil, pospij17@fit.cvut.cz, Martin Novotný, novotnym@fit.cvut.cz Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze 24. listopadu 2011 Moderní elektronické součástky, Brno
COPACOBANA Cost-Optimized Parallel COde Breaker výpočetní server - paralelní pole HW: Christian-Albrechts University Kiel, Německo SW: Ruhr-University Bochum, Německo další vývoj a prodej: SciEngines GmbH, Německo (nyní RIVYERA s 256 Spartan 6)
Schéma Fig. 1. Architecture of COPACOBANA Host PC Module 1 Module 20 64 64 LAN Controller Card 2 2 Slot Select Chip Select Address Read/Write Address Decoder Data 64 5 6 1 1 Address Decoder
Co umí prolomit šifry DES, Hitag-2, GSM komunikaci DES: cca 65 mld. kĺıčů / sekundu všech 2 56 kĺıčů za 13 dnů pomoci při prolomení KeeLoq zvládat dobře paralelizovatelný problém zvládat problém bez náročné komunikace používat hrubou (výpočetní) sílu
Naše verze paralelní pole 120 (Spartan-3 1000) 64 bitová datová sběrnice ethernet rozhraní PC komunikační knihovna v Javě
Lightweight šifry malá spotřeba malá plocha čipu využití např. pro RFID, dálkové ovladače např. KeeLoq, Hitag, Mifare, PRESENT většina dnes komerčně používaných má známé slabiny!
Šifra PRESENT symetrická bloková, 64 bitů data, 80 (128) bitů kĺıč 31 rund, SPN generateroundkeys() (substitution-permutation for i = 1 to 31 do network) addroundkey(state,k i) sboxlayer(state) player(state) akademická end foršifra, CHES 2007 addroundkey(state,k (Německo, Dánsko, Francie) 32) HW optimální implementace plaintext sboxlayer player. sboxlayer player ciphertext addroundkey addroundkey Fig. 1. A top-level algorithmic description of present. key register update. update
Útoky hrubou silou známe otevřený a šifrový text a hledáme kĺıč využívají velkou výpočetní sílu není nutné pochopení a analýza principu šifry primárně nehledají chyby ani slabá místa základní typy brute-force - vše vypočítáme lookup table - vše známe kompromis: TMTO - time-memory trade-off
P 0 64 TMTO 2 fáze - pamět čas offline - předpočítání dat (nutno uložit) online - samotný útok (nutno spočítat) řetězce základní metoda, Hellman 1980 stejná modifikační funkce Rainbow Tables různá modifikační funkce v každém kroku složitější online fáze, ale méně přístupů do paměti K DES C i-1 modification K DES i encrypting encrypting C i modification K i-1 i+1 function function 56 unit 64 56 unit 64 56
Provedené práce měření parametrů COPACOBANy simulační model implementace 3 designů ve VHDL brute-force Rainbow Tables offline fáze Rainbow Tables online fáze napsání ovládacího programu v Javě
Architektura COPACOBANA PC Java program LAN řadič VHDL návrh VHDL návrh VHDL návrh VHDL návrh v každém stejný návrh - podprostory řešení komunikaci inicializuje PC řízení celého útoku v PC - distribuce práce
PRESENT jádro v 31 rund + buffer pipeline 32 maximální frekvence: 227 MHz 2 jednotky v 29 Gbit/s Xilinx ISE pro syntézu i PAR testbench ve VHDL, verifikace v ModelSim
Brute-force návrh 2 jádra PRESENT v přidělen podprostor řešení OT kĺıče generovány čítačem čítač klíč PRESENT výsledek porovnán se známým šifrovým textem šifrový text =? pipeline zpoždění (šifra, komparátor)
Rainbow Tables návrh Offline začátek PRESENT modifikační funkce FIFO OT krok 2 jádra PRESENT v přidělen podprostor řešení - začátky řetezců výsledky střádány ve FIFO a vyčítány PC (tvorba tabulky)
Rainbow Tables návrh Online OT PRESENT modifikační funkce FIFO první krok ŠT krok jen 1 PRESENT jádro v přidělen podprostor řešení - počáteční kroky výsledky střádány ve FIFO a vyčítány PC (hledání v tabulce)
Implementační výsledky Brute-force využití : 87% maximální frekvence: 105 MHz pracovní frekvence: 100 MHz rychlost na celé COPACOBANě: 24 mld. kĺıčů / sekundu doba výpočtu všech kĺıčů: 1,6 mil. let
Implementační výsledky Rainbow Tables - offline (délka řetězce 2 27 kroků) využití : 86% maximální frekvence: 105 MHz pracovní frekvence: 100 MHz rychlost na celé COPACOBANě: 179 řetězců / sekundu doba výpočtu všech řetězců: 1,6 mil. let objem vygenerovaných dat: 128 PB
Implementační výsledky Rainbow Tables - online (délka řetězce 2 27 kroků) využití : 51% maximální frekvence: 105 MHz pracovní frekvence: 100 MHz doba nalezení kĺıče: 9 dnů počet přístupů do tabulky (vyhledávání): 134 mil.
Výsledky - Rainbow Tables Objem dat a doba online fáze v závislosti na logaritmu délky řetězce 1e+015 50 CLW ideal 1e+010 40 Time log [years] 100000 1 normal mode 30 29 1e-005 burst mode 22 20 1e-005 1 100000 1e+010 1e+015 Memory log [GB]
Závěr Zanalyzovali jsme stroj COPACOBANA a změřili charakteristiky jeho komunikačních kanálů. Implementovali jsme útok hrubou silou brute-force a úspěšně jej odzkoušeli na HW. Implementovali jsme TMTO útok Rainbow Tables a úspěšně jej odzkoušeli na HW. Zhodnotili jsme možnosti implementovaných útoků a vyvodili z nich, že šifru PRESENT lze považovat za bezpečnou vzhledem k těmto útokům.