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 1292
NIST AHS » Kryptoblog

Posts Tagged ‘NIST AHS’

Lite SHA-3-nyheter

November 18th, 2008

NIST meddelade för några dagar sedan att de fått in 64 kandidater och att det kommer att dröja till i början av december innan NIST presenterar vilka kandidaterna är. Även om antalet kandidater är mindre än de minst 80 kandidater Bruce Schneier gissade på är det väldigt många.

Även om inte NIST publicerat listan med kandidater finns det en Wikisida kallad The SHA-3 Zoo som listar 28 stycken av kandidaterna inklusive länkar till artikel, webbplatser samt kandidaternas status vad gäller attacker. För attacker och kryptanalysresultat har redan börjat dyka upp.

På den maillista som NIST satt upp är det sedan en tid tillbaka en relativt hög aktivitet med postningar av resultat och diskussioner av hur dessa skall tolkas. Bland annat var några så ivriga att få in ett resultat att de publicerade en attack på kandidaten EnRUPT som är sämre än uttömande sökning. När de sedan fick kritik kom de med följande kommentar som låter väldigt mycket som First Post! på diverse forum:


We started working on the function yesterday. As soon as the paper was finished we sent a message.

Känns inte helt seriöst. Dock gav detta upphov till vad som skall klassificeras som en riktig attack – om attacker som tar längre tid eller kräver mer minne än atomer i hela universum skall anses som allvarliga attacker eller ej. Daniel J Bernstein kom för några dagar sedan med ett riktigt elegant debattinlägg:

2^185 preimage attack on MD6-256


After the recent flood of attacks on hash functions that I had never heard of before this month, I’m pleased to announce that I’ve found an attack on MD6-256 with time complexity just 2^185.

The attack is a “multiple-preimage attack” that simultaneously attacks 232 legitimate target signatures and successfully forges at least one signed message by finding a preimage of the underlying hash. Surely there will be more than 232 signatures generated using SHA-3, so this
is a realistic attack scenario if MD6 is being considered for SHA-3.

Recall from Rivest’s description of MD6 at Crypto that computing MD6 takes a fraction of a millisecond on a single CPU core. The total time for the attack is under 2^185 milliseconds—-I’m talking about actual wall-clock time, not some simplified model. The attack doesn’t fit on a single PC, but is easily implemented on a large cluster of a billion current Core 2 Quad PCs. Memory consumption per PC is negligible. Special-purpose hardware will be even less expensive.

The attack isn’t guaranteed to succeed; a detailed analysis shows that it has only about 1 chance in 100 of succeeding. However, repeating the attack will increase the success probability, and in any event I think we can agree that 1 chance in 100 is already an unacceptable threat for
SHA-3 users. Can we please kick MD6 out of the hash competition now?
—-D. J. Bernstein

Research Professor, Computer Science, University of Illinois at Chicago

P.S. Preliminary analysis suggests that, astonishingly, Skein and Keccak will both succumb to analogous attacks, and that the attack on Skein will be even faster than the attack on MD6. Who would have imagined that three hash-function designs with such different design principles would share a critical weakness?

Räknar man samman vad Bernsteins attack, som har motsvarande upplägg som några av de attacker som kommit på maillistan, ser ut att klara får man en attack på 2^256, dvs uttömande sökning (brute-force).

Det har kommit ett par ordentliga attacker. En av de första att falla var kandidaten NK2SD som är något så ovanligt som en hashfunktion baserad på en tvådimensionell cellautomat inspirerad av Stephen Wolframs A New Kind of Science:

Cellautomater
(Fina figurer från NK2SD-automater)

Just nu listar SHA-3 Zoo åtta stycken kandidater som i någon variant har attackerats. Dock verkar SHA-3 Zoo, NISTs egen maillista och andra aktiviteter leva ett eget liv utanför NISTs kontroll. NIST har gjort klart att inga kandidater i detta läget är borträknade. En sidoaktivitet som pågår är ECRYPTs eBASH där man kör och presenterar prestandatester av alla kandidater. Att döma av resultaten så här långt, med enbart ett fåtal kandidater är det ingen som framstår som snabbare än SHA-2. Ett problem med SHA-2, och tävlingen är tänkt att lösa är just att SHA-2-algoritmerna är så mycket långsammare än SHA-1.

En annan aktivitet är insamling av information om implementationer av kandidater i hårdvaraASIC eller FPGA. En av snabbaste ser ut att vara Keccak. Keccak har jag bloggat lite om tidigare och även om den svampfunktion som ligger till grund för funktionen. Kul att se att den verkar ge bra prestanda.

Jag har läst igenom de flesta artiklar som presenterar de (så här långt kända) kandidaterna. Att presentera resultat om hårdvaruimplementationer av sin kandidat verkar vara en trend bland kandidaterna. En annan trend jag tycker mig se är att beskriva skydd mot sidoattacker – återigen en implementationsaspekt. Både intressant och bra att se att de senaste årens sidoattacker börjar slå igenom och bli något som beaktas vid design av nya algoritmer.

Sättet som flera av kandidaterna hanterar problematiken med sidoattacker är att gå mot enkla grundunktioner – baserade på XOR, rotationer och bitskiftningar samt additioner. Desa grundfunktioner upprepas seda ett (mycket) stort antal gånger. Typiskt används inga S-box-liknande strukturer. Några exempel på detta är MD6, Skein (som bygger på Trieefish-kryptofunktionen) och Cubehash.

Påfallande många kandidater försöker även gå ifrån Merkle-Damgård-konstruktionen och mot helt nya principer för att bygga kompressorfunktioner och hashfunktioner. MD6, Keccak och NK2SD är exempel på detta.

Väsentligen alla kandidatbeskrivningar innehåller mer eller mindre ordentliga beskrivningar om kandidatens säkerhet och skydd mot olika attacker. Men flera av kandidaterna, bland annat MD6 och Skein innehåller bevis – alltså att algoritmen är bevisbart säker. Det skall bli intressant att se huruvida dessa bevis visar sig stämma, och om de antaganden och de villkor under vilka bevisen gäller håller.

Skaparna av kandidaten Skein, skapad av bland andra Bruce Schneier, Niels Ferguson, Stefan Lucks och Doug Whiting, sticker ut för att de har använt ett något annorlunda sätt att argumentera för sin algoritms säkerhet:


Skein was designed by a team of highly experienced cryptographic experts from academia and industry, with expertise in cryptography, security analysis, software, chip design, and implementation of real-world cryptographic systems. This breadth of knowledge allowed them to create a balanced design that works well in all environments.

Är Security by Authority en vettig term för den här typen av säkerhet tro?

Om någon undrar vad Skein betyder är det tydligen ett garnnystan, vilket är en bra liknelse för hur Treefish-funktionernas in- och utdata i Skein slingrar sig runt varandra.

Skein

Jag räknar med att återkomma med mer info om NISTs tävling när de presenterat samtliga 64 kandidater. Sedan lär det dröja några år innan jag får reda på om min gissning stämmer.

MD6 och Skein – två SHA-3-kandidater

October 29th, 2008

Dörren för kandidater till NISTs hashfunktionstävling stängs om ett par dagar (2008-10-31). Att döma av trafiken på maillistan kommer det att dyka upp ett flertal kandidater. Men än så länge har inte speciellt många blivit officiella.

Först ut var Ron Rivest och hans kollegor som presenterade hashfunktionen MD6, även kallad Pumpkin Hash. MD6 är ett relativt stort steg från den struktur nuvarande SHA-algoritmerna har. MD6 bygger upp en komplext träd med många subnoder. Trädet processas sedan nerifrån och upp – på något sätt. Det ser komplicerat och kostsamt ut. Men enligt Rivest & Co skall det gå att enkelt serialisera processningen för att köra på små processorer, och samtidigt parallellisera för hög prestanda på multicore-maskiner och i hårdvara.

I dag presenterades en annan kandidat kallad Skein. Skein är skapad av Niels Ferguson, Stefan Lucks, Bruce Schneier, Doug Whiting m.fl. Enligt en postningen om Skein på Schneiers webbplats är hafunktionen byggd på ett blockkrypto kallad Threefish (vilket borde betyda släktskap med Blowfish och Twofish). Bruce skriver:


Skein is fast. Skein-512—our primary proposal—hashes data at 6.1 clock cycles per byte on a 64-bit CPU. This means that on a 3.1 GHz x64 Core 2 Duo CPU, Skein hashes data at 500 MBytes/second per core—almost twice as fast as SHA-512 and three times faster than SHA-256…

Skein is secure. Its conservative design is based on the Threefish block cipher. Our current best attack on Threefish-512 is on 25 of 72 rounds, for a safety factor of 2.9…

Skein is simple. Using only three primitive operations, the Skein compression function can be easily understood and remembered. The rest of the algorithm is a straightforward iteration of this function.

Skein is flexible. Skein is defined for three different internal state sizes—256 bits, 512 bits, and 1024 bits—and any output size. This allows Skein to be a drop-in replacement for the entire SHA family of hash functions. A completely optional and extendable argument system makes Skein an efficient tool to use for a very large number of functions: a PRNG, a stream cipher, a key derivation function, authentication without the overhead of HMAC, and a personalization capability.

Jag planerar att komma med mer detaljerad information när kandidaterna officiellt publicerat. Men det börjar dra ihop sig och det börjar se spännande ut.

Intressanta kommentarer på NISTs AES-XTS

September 13th, 2008

NIST har publicerat de kommentarer som inkommit på förslaget att standardisera kryptomoden XTS för AES.

XTS är en variant av kryptomoden XEX skapad av Phillip Rogaway. XTS har tidigare standardiserats av IEEE i P1619 för att skydda i blockorienterad lagringsmedia (exempelvis hårddiskar och FLASH-minnnen).

Matthew Ball, som är ordförande i IEEEs Storage Working Group är i sin kommentar, inte helt överraskande, positiv till NISTs XTS-förslag. Matthew påpekar att XTS, till skillnad från exempelvis CBC är en algoritm som går att parallellisera och därmed skalar bra prestandamässigt.

Mer intressant är att kommentarerna från hårddisk-tillverkaren Seagate är så negativa. Seagate ser inga fördelar med XTS, och tycker att den implementationsmässigt är för kostsam. Seagate skriver bland annat:


The XTS encryption mode is not a good choice for storage encryption. There have been simpler, faster or more secure modes in use.

Is XTS a good tradeoff between security and complexity (costs)? NO: There are asymmetric large block encryption modes (e.g. BitLocker of Windows Vista) with similar complexity but better security for storage systems. There are faster, simpler encryption modes used together with access control (e.g. CBC)

Notera att Seagate inte ser ett problem med CBC vad gäller prestanda.

Även övriga kommentarer är på olika sätt negativa till XTS. Inte minst är det intressant att notera att Phillip Rogaway inte ser att XTS säkerhetsmekanismer inte tillför någon egentlig säkerhet.

Ett annat problem, som alla utom Matthew Ball från IEEE påpekar, är att IEEE äger standarden och att den som vill läsa standarden därför måste köpa standarden från IEEE. Som Niels Ferguson och Vijay Bharadwaj från Microsoft skriver i sin kommentar:


The proposal for the approved specification to be available only by purchase from IEEE . We believe that it is highly undesirable to standardize an algorithm whose specification, unlike those of other FIPS approved algorithms, is not freely available.

Ytterligare ett potentiellt problem med XTS är att det finns IP-rättigheter kopplade till standarden. Niels Ferguson och Vijay Bharadwaj återigen:


As stated in the call for comments, the current situation of IP rights with respect to XTS-AES is unclear. We believe that standardizing an algorithm which is so encumbered is undesirable, and that IP issues could inhibit adoption of such a standard.

Det är lite illavarslande att flera duktiga krytopexperter inte ser att XTS mekanismer, med bland annat två olika kryptonycklar tillför någon egentlig säkerhet och att det är oklart vad XTS egentligen är tänkt att lösa för ett säkerhetsproblem.

Men det som gör mig än mer orolig för framtiden är frågan om standardens öppenhet samt IP-problematiken, inte minst i ljuset av den pågående AHS-tävlingen. Finns det en risk att framtidens SHA-algoritm inte kommer att vara öppen, och att implementationer kommer att begränsas av IP-rättigheter? Det skulle inte vara bra för säkerheten.