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
XTEA – Krypto för inbyggda system » Kryptoblog

XTEA – Krypto för inbyggda system

October 12th, 2005 by Joachim Strömbergson Leave a reply »

Jag har nyligen avslutat konstruktionen av InformAsics senaste IP-core, en implementation av blockkryptot XTEA.

XTEA - Extended Tiny Encryption Algorithm är ett krypto av David Wheeler och Roger Needham. XTEA är en utökning av TEA. Båda dessa krypton är spännande då dom är så otroligt enkla till sin konstruktion. De enda operationer som används är addition, xor och fasta rotationer. Fasta rotationer blir i hårdvara rena ledningar och kostar gratis. Speciellt elegant tycker jag att schemaläggningen/valet av delnycklar till beräkningsvarven är. Istället för att expandera nyckeln, räkna ut en tabell etc används de lägsta två bitarna i en intern räknare för att rotationsmässigt plocka ut 32 av nyckelns 128 bitar.

Säkerheten i XTEA (och TEA) kommer i det stora antalet varv man itererar över data. Detta gör dock att prestandan blir låg, speciellt om man inte kan parallellisera operationerna som utförs i ett varv. Jag har valt att bygga vår core så att den kan utföra ett varv på två cykler. För rekommenderade 32 varv tar det mao 64 cykler. Då blockstorleken är 64 bitar kan man säga att vi får ut en bit per cykel, eller lika många Mbit/s som MHz.

I en snabbare Altera Cyclone-II får jag följande resultat:

  • 438 LEs

  • 107 register

  • Drygt 70 MHz

Detta innebär att hårdvarukraven för XTEA är ca en femtedel av vad DES kräver, och mycket, mycket mindre än AES-128. Vidare krävs inget minne alls, utan bara register.

70 Mbit/s är inte jättesnabbt, men för ett inbyggt system med moderata bandbreddskrav borde detta fungera ypperligt. Jag har inte ställt storleken och prestandan i jämförelse med förslagen till HW-krypton i eSTREAM. Men en sak är värd att notera och det är att XTEA inte kräver någon initeringsprocessing. Tar man kryptot Grain som exempel så kräver den ca 160 cykler för initiering.

No related posts.

Related posts brought to you by Yet Another Related Posts Plugin.

Advertisement

Leave a Reply

You must be logged in to post a comment.