Posts Tagged ‘AES’

Nya prestandarekord för AES

February 2nd, 2010

Sprang precis på artikeln Fast Implementations of AES on Various Platforms (pdf) av Joppe W. Bos, Dag Arne Osvik och Deian Stefan som beskriver flera nya mycket snabba implementationer av blockkryptot AES-128. Artikelns sammanfattning säger det mesta:

This paper presents new software speed records for encryption and decryption using the block cipher AES-128 for different architectures. Target platforms are 8-bit AVR microcontrollers, NVIDIA graphics processing units (GPUs) and the Cell broadband engine.

The new AVR implementation requires 124.6 and 181.3 cycles per byte for encryption and decryption with a code size of less than two kilobyte. Compared to the previous AVR records for encryption our code is 38 percent smaller and 1.24 times faster.

The byte-sliced implementation for the synergistic processing elements of the Cell architecture achieves speed of 11.7 and 14.4 cycles per byte for encryption and decryption.

Similarly, our fastest GPU implementation, running on the GTX 295 and handling many input streams in parallel, delivers throughputs of 0.17 and 0.19 cycles per byte for encryption and decryption respectively. Furthermore, this is the first AES implementation for the GPU which implements both encryption and decryption.

Artikeln ger bra information om optimeringar som gjorts för de olika arkitekturerna samt jämför med andra implementationer. Jag gillar även det faktum att man faktiskt nådde 59 Gbit/s(!) på en NVIDIA GTX 295, 1.24GHz.

  • Share/Bookmark
Print

Ny attack på AES

May 24th, 2009

På Eurocrypt presenterades tydligen ett arbete av Alex Biryukov, Dmitry Khovratovich och Ivica Nikoli´c som visar på en ny attack mot AES-256. Deras presentation AES-256 Is Not Ideal ser ut att visa att med kopplade nycklar (related keys) går det att urskilja en sekvens genererad med AES från en slumpmässig sekvens.

Jag begriper för lite av den kortfattade presentationen för att avgöra hur mycket bättre deras resultat är en den bästa kända attacken med 26 related keys, 2**114 data och 2**173 time. Enligt en kommentar på Cryptography-listan hävdade författarna vid sin presentation att det nu finns praktisk möjlighet att bryta hashfunktioner byggda på round-funktionen i AES. Detta gör resultatet intressant för den pågående SHA-3-tävlingen då flera av kandidaterna lånar delar av eller hela round-funktionen.

Författarnas artikel om sin nya attack är tydligen godkänd för CRYPTO 2009, så om inte förr så vet vi mer i slutet av Augusti.

  • Share/Bookmark
Print

Återanvändning av AES för SHA-3

January 6th, 2009

Jag har ägnat nåra timmar åt att gå igenom alla specifikationer för de olika SHA-3-kandidaterna. En sak som blev ganska uppenbar är vilken framgång och vilket inflytande AES som krypto och designstrategin i den bakomliggande algoritmen Rijndael har fått.

Av de 55 kandidater som finns listade på ECRYPTs SHA-3-Zoo återanvänder inte mindre än 21 kandidater koncept, komponenter eller tom hela roundfunktionen från AES och Rijndael. Den lista jag slängt ihop ser ut som följer (det blir engelska nu då jag även klippt citat:

  • Abacus: MDS from AES.

  • Arirang: S-box from AES. MDS from AES for some versions of the hash.

  • Aurora: ShiftRows from AES.

  • Cheeta: “Inspired by AES

  • Echo: Stated goal to reuse as much of AES as possible (hence the
    name). Complete AES round reused.

  • Ecoh: AES “key wrap” reused.

  • Gr0stl. S-box and diffusion directly from AES.

  • JH: Differential propagation methodology from AES.

  • LANE: SubBytes, ShiftRows and MixColumns reused from AES.

  • Lesamnta: Reuse of the AES round as function F.

  • Luffa: “Based on Rijndael-like transform”

  • NaSHA: “Improved AES S-box.”

  • SANDstorm: AES S-box,

  • Sarmal: “An AES (or Whirlpool)-like nonlinear subround function g is used.”

  • SHAMATA: “uses one of the AES primitive functions MixColumns to incorporate the message into the internal state and a modified version of the AES round function to mix the internal state.”

  • SHAvite-3: “Iterates a round function based on the AES round.”

  • StreamHash: S-box based on AES S-box.

  • Tangle: Reuse of AES S-box.

  • Twister: MDS concept from Rijndael and S-box from AES. ShiftRows from AES.

  • Vortex: Based on Rijndael rounds.

  • Waterfall: Rijndael S-box.

Jag är inte helt säker på om detta är bra eller inte.

Å ena sidan är AES och dess ingående komponenter några av de mest välanalyserade som går att uppbringa. Detta faktum är något flera av kandidaternas skapare tar upp i sin motivering av sin kandidaters säkerhet. Implementationsmässigt är det dessutom bättre om samma programkod (funktioner) går att använda till flera saker. Speciellt för inbyggda system med hårda krav på liten kodstorlek är detta naturligtvis eftersträvansvärt.

Samtidigt kan jag inte släppa känslan av att vi riskerar att hamna i en monokultur – att säkerheten i alla dess olika delar (konfidentialitet, autenticitet, integritet) bygger på en eller ett fåtal algoritmer eller komponenter. Vad händer om S-boxen i AES faktiskt visar sig väldigt svag?

Vidare var den uttalande tanken från NIST att SHA-3-tävlingen skulle stimulera till nytänkande och uppmuntra till att hitta nya koncept för att bygga hashfunktioner. Att det sker ett rejält brott mot Merkle-Damgård är uppenbart, men nu är det istället AES och Rijndael. Är det bra eller dåligt?

Det verkar dock som de flesta verkligen försökt att tänka i nya banor. I min snabbläsning hittade jag för övrigt att tre kandidater (Abacus, Keccak och Luffa) bygger på de nya (relativt färska ;-) svampfunktionerna. Dessutom såg jag bara tre kandidater (Chi, DynamicSHA, DynamicSHA2) är direkta utökningar av SHA-1 och SHA-2.

  • Share/Bookmark
Print

AES-implementationer för C64

August 30th, 2008

Daniel Kahlin heter en kreativ person som kodar algoritmer för 6502-processorn och gamla brödburken C64.

Daniel Kahlin

Flera av algoritmerna Daniel implementerat är relaterade till säkerhet. Bland annat har han som en del i ett antal Crack Me!tävlingar implementerat AES128 i assemblerkod för 6502 med olika kryptomoder. Electronic CodeBook Mode (ECB-mod) och Cipher Feedback Mode (CFB-mod).

Källkoden för implementationerna finns på sidorna och är lättläst och snygg. En intressant detalj är att Daniels kod räknar fram S-boxen samt och den tabell som används för att göra GF-multiplikationen i MixColumns-steget av AES.

Att döma av diskussionen kopplad till den utmaning där ECB-mod användes utnyttjade Ymgve Google för att söka på innehållet i S-boxen och den vägen identifiera AES. Ett snygg trick som visar att den som utför attacken inte alltid tar den väg man tror.

Ett annat program gör statistisk analys för att attackera enklare skiffer på C64. Imponerande att få till det på burken med dess beräkningar.

Daniel har även hackat en del andra fräcka program, bla en tracker till VIC-20 kallad VIC-TRACKER. Eftersom jag inte har någon gammal VIC-20, och är rätt kass på att använda trackers vet jag inte hur bra den är. Men bilden på trackerns sida är helt fantastisk:

VIC-TRACKER 2.0
Klockren annons (ett montage) från 80-talets början. Hela familjen samlas i värmen från sin fantastiska hemdator. Mycket nostalgi blir det.

  • Share/Bookmark
Print