Warning: Missing argument 2 for wpdb::prepare(), called in /home/stromber/public_html/kryptoblog/wp-content/plugins/wp-super-edit/wp-super-edit.core.class.php on line 109 and defined in /home/stromber/public_html/kryptoblog/wp-includes/wp-db.php on line 1222
sidoattacker » Kryptoblog

Posts Tagged ‘sidoattacker’

Informationsläckage i register

August 30th, 2008

Ström-, spänning- och effektbaserade sidoattacker på digitala hårdvaruimplementationer har tidigare fokuserat på logikdelen av implementationen. Ett exempel är attacker mot implementationer där det i algoritmen förekommer en multiplikator.

Antalet bitomslag i en multiplikator varierar väldigt mycket beroende på vilka operander som används. Denna varians ger i sin tur upphov till mätbara varianser på strömförbrukningen. Ett exempel på den här typen av attack beskrivs i artikeln DPA on n-Bit Sized Boolean and Arithmetic Operations and Its Application to IDEA, RC6, and the HMAC-Construction.

En av mina sommarläsningsartiklar var Information Leakage of Flip-Flops in DPA-Resistant Logic Styles och i den presenteras en sidoattack mot de register i en hårdvaruimplementation som används för att lagra interntillståndet. Författarna till artikeln skriver i sammanfatttningen att:


We show that many of the proposed side-channel resistant logic styles still employ flip-flops that leak data-dependent information. Furthermore, we apply simple models for the leakage of masked flip-flops to design a new attack on circuits implemented using masked logic styles.

Contrary to previous attacks on masked logic styles, our attack does not predict the mask bit and does not need detailed knowledge about the attacked device, e.g., the circuit layout. Moreover, our attack works even if all the load capacitances of the complementary logic signals are perfectly balanced and even if the PRNG is ideally unbiased.

Finally, after performing the attack on DRSL, MDPL, and iMDPL circuits we show that single-bit masks do not influence the exploitability of the revealed leakage of the masked flip-flops.

Med andra ord visar artikeln att även om implementationen innehåller olika typer av mekanismer för att skydda logikdelen mot siodoattacker läcker implementationen ändå information via registren.

En flanktriggad D-vippa. Kallas även (D-register eller bara register då det är den absolut vanligaste typen av register som används.

Uppbyggnaden av en D-vippa.
En D-vippa byggd med NAND-grindar.

Artikeln visar att den grundläggande struktur som alla processleverantörer (de företag som erbjuder kretstillverkning) har i sina cellbibliotek för en D-registret regerar olika när den läser in (sample) och låser (hold) ett nytt värde dels beroende på om det är en etta eller en nolla, och beroende på vilket värde (noll eller ett) som redan låg i registret.

Artikeln använder dessa skillnader i registren för att ta fram två olika attackmetoder och applicerar dessa på testkonstruktioner som är skyddade med tidigare publicerade metoder mot sidoattacker. Att döma av artikeln fungerar metoderna för att plocka ut information. Författarnas slutsats är att:


Since most of the prior analysis of side-channel resistant logic styles focused on the combinational logic, so did the research to improve those logic styles. We think it is time to switch the focus of research to find methods for designing side-channel resistant flip-flops with a decent area and power consumption and a low impact on the operation frequency.

One possible approach could be combining semi-custom design for combinational logic with full-custom flip-flop design.

Jag håller inte riktigt med om att en bra lösning kan baseras på full-custom-register, det skalar på tok för dåligt. Även om full-custom-delen begränsas till de delar i konstruktionen där säkerhetsfunktioner implementeras blir det snabbt väldigt mycket mer arbete. Dessutom skulle det bli lättare att identifiera säkerhetsimplementationen på kretsytan, detta då full-custom-logik har ett distinkt utseende.

Jag tror att artikeln skall tas som utgångspunkt för att ta reda på hur register i cellbibliotek görs immuna mot den här typen av informationsläckage.

En intressant fråga är hur man som konstruktör skall göra när man har än mindre kontroll över regsistrens fysiska uppbyggnad än med cellbaserad kretsteknik. Mer specifikt i FPGA:er. Går det exempelvis använda par eller grupper av register för att skapa sidoattackresistenta register?

Jag såg att det precis publicerades en ny artikel på IACR som beskriver en metod för att skydda implementationer av RSA mot sidoattacker. Jag gissar att den metod som presenteras i artikeln inte är skyddad mot registerattacken. Det finns i alla fall ingen referens till registerattacken.