Kategoriarkiv: Krypto

Nytt sätt att optimera SHA-1

I december anordnades i norge en konferens om lösenordsknäckning. På konferensen visades bland annat en maskin med 25 GPU:er som kan pröva nästan 400 miljarder NTLM-lösenord per sekund.

GPU-monstret.
Racklåda med 25 AMD Radeon-GPU:er.

Än mer intressant anser jag dock är den presentation som lösenordsknäckaren Hashcats skapare Jens Steube höll om optimering av hashfunktionen SHA-1 (PDF). Jens har analyserat hur de resultaten från de operationer som SHA-1 består av faktiskt används genom algoritmens 80 iterationerna. Det han insett är att flera av XOR-operationerna som sker vid expansion av indatablocket tar ut varandra. Genom att rulla ut iterationerna och eliminera de operationer som tar ut varandra lyckas Jens minska totala antalet operationer i SHA-1 med 21%(!).

Bilden visar hur Jens optimerat SHA-1
Optimerad expansion i SHA-1

Naturligtvis innebär det att Hashcat och andra lösenordsknäckare nu kan attackera SHA-1-baserade lösenord mycket snabbare, vilket är det som uppmärksammats i media (se ex den här artikeln eller den här artikeln). Men jag tycker resultatet är intressant i sig. SHA-1 publicerades 1995 och har implementerats, använts och analyserats intensivt genom åren. Att ingen innan 2012 insett att det finns en redundans på 21% är förvånande och nästan osannolikt.

Resultatet innebär att implementationer av SHA-1 kan göras mer kompakta och snabbare. Samtidigt innebär resultatet att SHA-1 blir lättare att attackera och NIST med flera organisationer rekommenderar sedan tidigare att inte använda SHA-1 för nya produkter och tjänster, utan att istället byta ut SHA-1 mot algoritmer som SHA-256 som ger bättre säkerhet. Dock blir skillnaden i prestanda mellan SHA-1 och SHA-256 i och med Jens resultat än större.

För den som vill testa finns Jens kod för att skapa optimerade operationer att ladda ner.

Testa lösenord via Twitter

Twitter är på många sätt en fantastisk tjänst. En av de bättre är hur enkelt det är att via Twitters programmeringsgränssnitt koppla program och maskiner som kan lyssna på tweets, skicka status och reagera på kommandon.

En sådan tjänst är Hash Cracking Robot. Detta är en tjänst som lyssnar på tweets riktade till sig som innehåller ett kryptografiskt kondensat skapat med olika typer av algoritmer såsom MD5, SHA-1, RIPEMD-160, WHIRLPOOL m.m.

Så här ser det ut när jag testar tjänsten genom att generera kondensat med MD5 för två olika strängar med OpenSSL.

Strängar för test av PlzCrack
Strängar för test av PlzCrack

Sedan postar jag strängarna riktade till @PlzCrack på Twitter (notera att postningarna är i omvändning ordning.):

Test av hashknäckning med Twitter
Test av hashknäckning med Twitter

Lägg märke till vad som händer. PlzCrack svarar mycket snabbt. Men det är bara strängar den känner till den kan knäcka rapportera. Egentligen är tjänsten en Twitterkoppling till regnbågstabeller. Detta innebär att det bara är strängar den känner till och har kondensat för som den kan hitta. Att skicka något till PlzCrack startar inte ett automatiskt försök att uttömmande söka efter en sträng som ger kondensatet, utan det är ren uppslagning i en tabell.

Twitter begränsar hur många tweets man kan göra inom en viss tidsperiod så att använda tjänsten för att testa en stor mängd kondensat går inte. Tjänsten är mer skoj och har nog ett rätt begränsat värde, men en fördel med PlzCrack är att du slipper att själv ha gigantiska regnbågstabeller eller att generera dessa tabeller. Sedan kan man fundera på hur bra det är att på ett bublikt forum leta efter strängar till kondensat…

Bra kryptorekommendationer från Cisco

Cisco har lagt upp en artikel om olika kryptoalgoritmer och vad Csisco rekommenderar sina kunder att använda i dag och för framtiden. Den här tabellen ger en bra sammanfattning över vilka algoritmer Cisco ser att man bör använda, vilka man ska fasa ut och vilka att undvika:

Ciscos tabell över algoritmer.
Ciscos tabell över algoritmer.

I sin artikel introducerar Cisco begreppet Next Generation Encryption (NGE). Ciscos definition av NGE är:

NGE offers the best technologies for future-proof cryptography and it is setting the industry trend. These are the best standards that one can implement today if the goal is to meet the security and scalability requirements 10 years hence or to interoperate with the cryptography that will be deployed in that timescale.

The algorithms that comprise NGE are the result of more than 30 years of global advancement and evolution in the area of cryptography. Each constituent component of NGE has its own history, depicting the diverse history of the NGE algorithms as well as their long-standing academic and community review. For instance, AES was given its name by the U.S. National Institute of Standards and Technology (NIST), but AES was not created by NIST. AES was originally called Rijndael and was created by two Belgian cryptographers. Additionally, ECDSA and ECDH have had fundamental contributions made to their creation by cryptographers from around the world, including Japan, Canada, and the United States. In the end, NGE is composed of globally created, globally reviewed, and publicly available algorithms.

The U.S. National Security Agency (NSA) has also identified a set of cryptographic algorithms that, when used together, are the preferred method for assuring the security and integrity of information passed over public networks such as the Internet. The NSA called the set of algorithms Suite B. The algorithms in Suite B are the same algorithms used in NGE. Additionally, integrated into IETF standards, NGE algorithms make it easier to collaborate in environments where costs or logistics traditionally hindered information sharing.

Ciscos NGE-svit innehåller inga egentliga alternativa algoritmer, utan bara en av varje typ. Jag ser att man nog bör vara öppen för att ha i alla fall en reservalgoritm. Men grundrekommendationerna är bra, speciellt att dom pekar ut vad man bör fasa ut och vad det är hög tid att sluta använda.

Ciscos artikel innehåller även bra info om konfiguration av algoritmerna så att man undviker en del fallgropar. Ansvarar du för IT-säkerhet och/eller konfiguration av ex IPsec/VPN är Ciscos artikel väl värd att lägga några minuter på.

Nu startar Stanfords kryptokurs

I går dök det upp ett mail som berättade att Stanfords kryptokurs äntligen börjar. Jag skrev lite kort om kursen i november förra året, och enligt den information som då fanns skulle kursen startat i Januari. Men det har varit ett antal förseningar. Men nu är det dags! Jag har anmält mig (igen) och börjat titta igenom vad som finns.

Just nu finns första föreläsningen upplagd. Det material som finns är inspelade föreläsningar och presentationer med de bilder som visas på föreläsningen. Det finns även ett antal problem att lösa/frågor att besvara för att visa att man förstått materialet. Slutligen finns det ett diskussionforum där det redan är full fart.

När jag säger att det är bilderna från föreläsningen som finns att ladda ner så är det precis så. Under föreläsningen ritar föreläsaren Dan Boneh i presentationen för att markera vad han menar. Så här ser det exempelvis ut i introduktionen av kursen:

Målsättningen med Stanfords kryptokurs
Målsättningen med Stanfords kryptokurs

Tyvärr blir ritandet lite kryptiskt och rätt svårläst – man får nästan titta på föreläsningen för att begripa vad det står. Se exempelvis den här bilden:

Hur OTP fungerar- med ritade kommentarer
Hur OTP fungerar- med ritade kommentarer

Men innehållsmässigt ser det väldigt bra och matnyttigt ut – det här är seriös kurs som kommer att bli både spännande och utmanande att genomföra. Har du inte anmält dig är det inga problem att hänga på. Det är bara att registrera sig på sidan och börja studera materialet.

Tyvärr kom det även ett mail från Stanford som betättade att den kurs i IT-säkerhet som skulle starta samtidigt som kryptokursen är framskjuten på obestämt tid. Men det kanske räcker med en kurs i taget?

Knäckta satellitkrypton och hemliga algoritmer

Ars Technica skriver om hur forskare i Tyskland lyckats knäcka krypton som används vid satellitkommunikation.

Satellitkommunikation

Eftersom signalen från en satellit täcker så stora ytor är det enkelt att fånga in signalen. För att skydda samtal från avlyssning krävs därför ett bra konfidentialitetsskydd – ett bra krypto.

Det är den internationella standardriseringsorganisationen ETSI som specificerat både kryptona GMR-1 och GMR-2 kryptona samt hur dom ska användas. Hur dom ska användas är öppen information, men själva kryptona är hemliga. ETSI skriver i sin specifikation (pdf):

The internal specification of algorithm A5-GMR-1 is managed under the responsibility of the GSC; it will be made available in response to an appropriate request

Att algoritmerna är hemliga hindrade dock inte forskarna. Genom hacka sönder uppdateringsfiler av programvaran till telefoner samt genom att analysera trafiken vid användande av satellittelefoner från Thuraya och Inmarsat kunde forskarna räkna ut hur algoritmerna fungerar.

Forskarnas analys visar att det skydd kryptona ger är så svagt att det finns en klar risk att satellitbaserad trafik inklusive samtal går att avlyssna. I artikeln Don’t Trust Satellite Phones: A Security Analysis of Two Satphone Standards skriver forskarna:

In this paper, we analyze the encryption systems used in the two existing (and competing) satphone standards, GMR-1 and GMR-2.

We were able to adopt known A5/2 ciphertext-only attacks to the GMR-1 algorithm with an average case complexity of 2**32 steps. With respect to the GMR-2 cipher, we developed a new attack which is powerful in a known-plaintext setting. In this situation, the encryption key for one session, i.e., one phone call, can be ecovered with approximately 50–65 bytes of key stream and a moderate computational complexity.

A major finding of our work is that the stream ciphers of the two existing satellite phone systems are considerably weaker than what is state-of-the-art in symmetric cryptography.

(På forskarnas egna webbplats finns mycket mer information.)

Forskarnas bedömning är att eftersom det skulle kosta så mycket att byta algoritmer kommer dessa inte att ändras. Istället rekommendrar dom att betrakta kommunikationen som öppen och sedan komplettera med ytterligare lager av skydd. Tyvärr kostar dessa extraskydd kapacitet i en förbindelse som redan har ganska begränsad kapacitet. Dessutom kan dessa skydd införa ökad fördröjning och andra trafikala problem. Inmarsat, som även är operatör av satellitkommuninkation har över än så länge inte kommenterat eller gett några officiella råd till sina kunder.

Tyvärr är detta inte första gången ett hemligt krypto visat sig vara svagt och långt ifrån vad man kan förvänta sig av ett krypto som används i befintliga system. I smarta kort av MiFare Classic-typ, som bland annat används för betalning i publika transportsystem i Göteborg och Stockholm, finns ett hemligt krypto kallat Crypto-1. Trots att kryptot var hemligt lyckades forskare klura ut både hur kryptot fungerar, och att dess säkerhet var i stort noll.

Keeloq är ett krypto som används i elektroniska bilnycklar av i stort sett samtliga stora biltillverkare. Även detta krypto var hemligt och även här lyckades forskare räkna ut hur det fungerar samt visa på kryptots monumentala brister.

För ETSI är forskarnas nya resultat ännu ett misslyckande. Deras kryptostandarder för DECT, GSM, 3G och satellitkommunikation har alla visat sig ha stora brister. När det kommer till kryptoalgoritmer är det frågan om ETSI lever upp till sin devis World Class Standards.

Att hålla informationen om vilka kryptografiska algoritmer du använder hemliga är inte ett problem. Du kan helt enkelt strunta att berätta det. Problemet är om säkerheten hos ditt system beror av att denna information är hemlig.

Information som om den kommer ut kan skada din verksamhet ställer krav på skydd som kostar pengar. Du behöver införa mekanismer och metoder för att begränsa tillgången. Skyddet behöver dessutom övervakas så att du vet att det faktiskt fungerar.

Dessutom bör du ta fram en plan för hur du ska agera om informationen trots allt kommer ut. När hemligheten kommit ut måste den troligen bytas ut, alternativt att du måste kasta in handduken och införa andra skyddsåtgärder så som forskarna nu föreslår att användare av satellitkommunikation bör göra. Att byta algoritm kan bli väldigt kostsamt. Är det en algoritm som används i inbyggda system som tillverkas i stora volymer, används i fält och har lång livslängd är innebär bytet eventuellt att du måste byta ut hela systemet.

Hade din hemlighet istället bara varit en kryptonyckel hade bytet troligen handlat om att byta ut en sträng på 16, 32, 64 tecken eller liknande. Säkerheten sitter i nyckeln. Den är allt du egentligen ska behöva skydda.

Bra kryptoalgoritmer försvagas inte av att informationen om hur dom fungerar är känd. Tvärt om beror vår tillit på algoritmerna just av öppenheten. Algoritmen som utgör blockkryptot AES undersöktes ett stort antal gånger på olika sätt innan den accepterades som standard. Och AES fortstt under kontinuerlig undersökning. Det finns generationer av forskare som fixat sin hatt eller årets publiceringar genom att försöka hitta på nya sätt att vara elak mot AES.

Ju fler undersökningar som en algoritm står emot desto större tillit vågar vi sätta till den. Och det är öppenheten, tillgängligheten som gör dessa undersökningar möjliga.

I jämförelse med en öppen algoritm undersöks en hemlig algoritm mer sällan. Dessutom sker undersökningen oftast under en begränsad tid. När en hemlig algoritm bedömts som säker tas den i bruk och sedan sker sällan omvärdering av algoritmens säkerhet.

Det finns användare av hemliga algoritmer som vet vad dom gör, som har den spetskompetens som krävs att göra en bra bedömning. Men när erkända kryptoforskare som medlemmarna i ETSIs säkerhetsgrupp SAGE gör fel och försvagar snarare än förstärker en algoritm (som är fallet med KASUMI, byggt på MISTY-1) är det inte självklart att även en enskild grupp med aldrig så skarpa experter gör en bra bedömning. Den mekanism som har störst chans att ge bra algoritmer är öppna processer med många, oberoende tester över lång tid. Att skynda långsamt och kontinuerligt ompröva resultat.

AES togs fram genom en sådan process, strömkryptona i eSTREAM togs fram genom en sådan process och kommande hashfunktionen SHA-3 tas fram på detta sätt. Det finns inga garantier att detta ger säkra algoritmer, det visar bland annat eSTREAM där några krypton i dag är knäckta. Men detta är den bästa metod vi har i dag och det är en process som förbättras för varje iteration.

Även ETSI verkar till slut ha lärt sig av alla sina misstag och i arbetet med den senaste standarden ZUC har det faktiskt organiserats seminarier, workshops, diskussionsforum på nätet och varit en mycket mer öppen process (även om det finns mindre öppna designval även i ZUC).

Om du oroar dig för att någon ska veta hur ditt system fungerar så strunta att berätta vilket krypto du använder. Men hitta inte på egna algoritmer, utan använd öppna, etablerade standarder som stått emot granskning under lång tid. Gör du det är nyckeln till kostnadseffektiv,fungerande säkerhet din kryptonyckel.

Kollision hittad i MD5-meddelande

(Uppdaterad 2012-01-03 med korrektur)

2010 publicerade säkerhetsforskarna Tao Xie och Dengguo Feng en artikel om att de funnit en kollision hos hasfunktionen MD5 mellan två meddelanden som bara är ett block stort.

En kollision innebär att två olika meddelanden ner dom används som indata till en hashfunktion ger samma hashvärde. MD5, precis som andra kryptografiska hashfunktioner delar upp ett meddelande i ett antal block med en fix storlek. För MD5 är blockstorleken 512 bitar. Innan Xie och Fengs artikel hade det presenterats kollisioner för meddelanden som är större än ett block. Detta är enklare då det ger utrymme för att bygga på ett meddelande med bitmönster som gör att en kollision uppstår. Men för ett meddelande som är exakt ett block finns inte den möjligheten. En kollision på ett block kräver att hashfunktionens förmåga att skydda mot att räkna ut indata från ett givet hashvärde har brutits. Hashfunktionen är inte längre en evägsfunktion.

Xie och Feng presenterade i sin artikel två meddelanden på exakt 512 bitar som gav samma hashvärde:

Xie och Fengs kollision från 2010
Xie och Fengs kollision från 2010

Det Xie och Feng däremot inte gjorde var att berätta hur dom lyckats skapa sin kollision. Författarna hänvisar till att dom av säkerhetsskäl stoppats från att berätta hur dom gjort. Dom skriver:

Today, in the last month (Dec,) of 2010, we have to make public a result of our 1-block collision attacks on MD5 in Table 1 as below, which was actually
obtained at the beginning of 2010, but for security reasons, the techniques are not allowed to be disclosed at the moment.

Intressant nog utmanar istället Xie och Feng sina kollegor i världen att återskapa deras resultat genom att hitta ett annat par av meddelanden ned en storlek på ett block som ger en kollision i MD5:

Here, we are calling for a challenge to the cryptology community that, any one who first gives a new different 1-block collision attack on MD5 will win 10,000 US dollars (about 50,000 RMB in Chinese Yuan) as a reward for his (her) excellent work. This call for challenge will be ended on Jan 1st, 2013. This announcement’s first affiliated unit will be responsible for this amount of reward when a new different 1-block collision attack is received and verified.

Det som hänt nu är att Marc Stevens ser ut att vara den första att möta utmaningen. I en artikel publicerad 29 januari i 2012 presenterar Marc sina meddelanden och den kollision som detta ger:

Marc Stevens meddelanden som ger kollision i MD5
Marc Stevens meddelanden som ger kollision i MD5

Det första man kan lägga märke till är att det är andra meddelanden är de Xie och Feng använt. Notera även att det är två ställen i meddelandena som skiljer. I den första av dessa bytes är det bit två som växlat, 0x00 har blivit 0x02. I den andra byten är det bit åtta som växlat, 0x55 har blivit 0xd5.

Till skillnad från Xie och Feng tvekar inte Marc att berätta hur han gjort och i artikeln finns en redovisning av såväl bakomliggande teori och mekanismer samt den algoritm som Marc använt för att utföra sökningen av kollisionen. Enligt Marc skulle det med hans nya metod krävas 2**49.81, dvs ungefär 987 biljoner MD5-operationer för att hitta en kollision. Marc skattade att detta skulle ta maximalt fem veckors körtid, vilket innebär at han räknade med att kunna göra drygt 300 miljoner MD5-operationer per sekund. Detta var tillräckligt lite tid för att Marc skulle bedöma det som rimligt och startade därför sökningen. Med lite tur fick han träff efter tre veckor.

Skälet till att Marc lyckades och att MD5 är så svag är att lavineffekten hos MD5 är för svag och ojämnt fördelad över bitarna i det genererade hashvärdet. Lavineffekten innebär att en liten förändring av indata snabbt ska påverka många bitar i interntillståndet som i slutändan ger hashvärdet. Eller omvänt, varje bit i det genererade hashvärdet ska bero av många bitar i meddelandet. I fallet att meddelandet är lika stort som hashfunktionen innebär detta att varje bit i hashvärdet ska bero av många bitar i blocket. Tyvärr gäller inte detta för MD5. På grund av att den har så få iterationer sker inte en bra och jämn mixning. Vissa bitar i hashvärdet hos MD5 beror av väldigt få bitar. Detta kallas för en hashtunnel, ett begrepp och fenomen Vlastimil Klima presenterade 2006. Skillnaden i hur lavineffekten förklarar även den större varians jag fick för MD5 när jag gjorde bittester av hashfunktioner.

För den som själv vill pröva på att generera kollisioner hos meddelanden på enstaka block hos MD5 har Marc släppt ett program. Källkoden har Marc ännu inte släppts. Men koden, programmet, artikeln, meddelandena etc finns på Marcs egen sida.

Så vad är kontentan? Det första är att Xie och Fengs tävling har avgjorts och att Marc Stevens är att gratulera till ett bra utfört arbete. Förhoppningsvis får nu Xie och Feng chans att publicera information om hur dom gick tillväga. Att tvinga dom att hålla sin metod hemlig gav ett knappt års fördröjning av en publicerad metod. Att hemlighålla information om svagheter som ändå redan är kända har återigen visat sig inte vara en långsiktigt hållbar. Och någon får dessutom betala 10.000 USD.

För oss alla andra är väl detta bara ännu ett bevis på att MD5 inte skall användas och bör fasas ut till förmån för bättre hashfunktioner (exempelvis SHA-256). SHA-256 har inte bara fler iterationer och en bättre mixningsfunktion, den har även ett hashvärde på fler bitar – 256 bitar gentemot 128 bitar för MD5. Hashvärdet för MD5 är i dag så kort att det är inom gränsen för att praktiskt göra uttömmande sökningar och bygga upp tabeller med meddelanden och deras hashvärden, så kallade regnbågstabeller.

Artikel på IDG om asymmetrisk kryptering

TechWorlds webbplats finns sedan några dagar en artikel om asymmetrisk kryptering skriven av Secworks.

Här får du min publika nyckel.
Här får du min publika nyckel.

Artikeln tar upp vad asymmetriska krypton och kryptering med publika nycklar är samt hur dom används och vilka problem som finns. Artikeln beskriver även skillnader i nyckelstyrka mellan symmetriska och asymmetriska algoritmer. Dessutom tittar vi i artikeln närmare på flera olika algoritmer som RSA, El Gamal, Elliptic Curve och Curve25519. Förhoppningsvis ger artikeln lite insikt i hur asymmetrisk kryptering fungerar och används.

Bittester av kryptografiska hashfunktioner

Kryptografiska hashfunktioner (och krypton) har en egenskap kallas lavineffekten. Lavineffekten innebär att små förändringar av indata ger stora förändring på det genererade hashvärdet.

Hashvärden för SHA-256 när S ändras till T.
Hashvärden för SHA-256 när S ändras till T.

Men hur stor är lavineffekten, och finns det indata som ger olika stor lavineffekt? Jag bestämde mig för att testa på de hashfunktioner som finns i biblioteket OpenSSL (version 0.9.8r).

Jag har använt ordlistan från OpenWalls lösenordsknäckare John The Ripper och behandlat varje enskilt ord som ett sepatat meddelande. För varje meddelande har jag beräknat ett hashvärde. Sedan har jag inverterat den första biten i varje ord och genererat ett nytt hashvärde. Sedan räknar jag alla bitar som växlat mellan de två värdena. Sedan gör jag detta för varje hashfunktion och beräknar statistik. Men närmare 4 miljoner ord i listan blir det många hashfunktionsoperationer.

Så här ser resultatet från körningarna ut:

Statistics for md5
Digest size in bits: 128
Number of words tested: 3917116
Min number of bits changed: 36
Min percentage of digest changed: 28.1
Max number of bits changed: 93
Max percentage of digest changed: 72.7
Average number of bits changed 64.0

Statistics for sha1
Digest size in bits: 160
Number of words tested: 3917116
Min number of bits changed: 49
Min percentage of digest changed: 30.6
Max number of bits changed: 112
Max percentage of digest changed: 70.0
Average number of bits changed 80.0

Statistics for sha224
Digest size in bits: 224
Number of words tested: 3917116
Min number of bits changed: 72
Min percentage of digest changed: 32.1
Max number of bits changed: 150
Max percentage of digest changed: 67.0
Average number of bits changed 112.0
Expected average: 896.0

Statistics for sha256
Digest size in bits: 256
Number of words tested: 3917116
Min number of bits changed: 89
Min percentage of digest changed: 34.8
Max number of bits changed: 171
Max percentage of digest changed: 66.8
Average number of bits changed 128.0

Statistics for sha384
Digest size in bits: 384
Number of words tested: 3917116
Min number of bits changed: 144
Min percentage of digest changed: 37.5
Max number of bits changed: 243
Max percentage of digest changed: 63.3
Average number of bits changed 192.0

Statistics for sha512
Digest size in bits: 512
Number of words tested: 3917116
Min number of bits changed: 201
Min percentage of digest changed: 39.3
Max number of bits changed: 316
Max percentage of digest changed: 61.7
Average number of bits changed 256.0

För samtliga testade hashfunktioner växlar i medelfallet hälften av alla bitar. Däremot är variansen för de äldre funktionerna SHA-1 och speciellt MD5 större än för SHA-2-funktionerna. Den snävare variansen för SHA-2 gör att det blir svårare att genom exempelvis sidoattacker försöka säga något om vilka meddelanden hashfunktionen bearbetar. Ingen av funktionerna ger med något av testmeddelandena en förvånande liten eller stor bitväxlingar.

Nästa steg är att testa finalisterna i NISTS SHA-3-tävling samt även jämföra med hashfunktioner som inte kryptografiskt säkra. Då bör vi se större varians och kanske även lite krockar.

sphlib 3.0

För ett tag sedan släpptes version tre av biblioteket sphlib. Sphlib implementerar samtliga finalister samt flera av de tidigare kandidaterna till hashfunktionstävlingen för att få fram hashfunktionen SHA-3. Om man vill börja underrsöka och testa SHA-3-algoritmer är sphlib trevlig att arbeta med.

Sphlib ger inte maximal prestanda och har därför fått kritik för att kanske inte ge en perfekt bild av vad de olika kandidaterna kan åstadkomma. För den som vill se den typen av resultat finns EBASH-projektet att titta på. Men för den som inte är ute efter prestanda, utan titta på funktion, struktur etc är sphlib bra.

Workshop om lättviktskrypton

Det finns i dag en stark trend mot att allt fler saker runt omkring oss kopplas upp till Internet – Dörrar, kylskåp, båtmotorer, dunjackor, värmeväxlare, plankor på byggvaruhuset, glödlampor, termostater, kranar etc. Allt annat än fräcka och och sexiga saker – men viktiga för att vårt samhälle ska funger och med stor potential till effektivisering när sakerna får digital intelligens och kan börja kommunicera.

För att detta Internet of Things (IoT) ska fungera måste vi kunna säkert identifiera sakerna och utbyta information – kommandon och status med dessa saker. I vissa fall krävs även att kommunikationen är hemlig för alla utom de som har rätt att kommunicera med en given sak – men det är inte lika viktigt. Detta ställer krav på att det finns säkerhetsmekanismer i IoT-sakerna. (Jag har tidigare skrivit om behovet av säkerhetsmekanismer anpassade för IoT). ECRYPT II-Workshopen ECRYPT Workshop on Lightweight Cryptography som anordnades i slutet av november med målsättningen att presentera nya säkerhetslösningar för små, inbyggda system är därför klart relevant och intressant.

Att döma av programmet (pdf) sker det aktiv utveckling av både kompakta symmetriska krypton och hashfunktioner. Oftast är det hårdvaruimplementationer där man mäter antalet grindar (generaliserad till antalet NAND2-grindar) och energiförbrukningen. Ett exempel är blockkryptot Piccolo-128 som bara kräver 60% av storleken hos den minsta implementation av AES-128 som tidigare presenterats. Dock med en prestanda på 40% av AES.

Det jag tycker är mer intressant är presentationen av resultaten från implementationer av 12 standardkrypton (IDEA, DES, AES, KASUMI, TEA m.fl.) på Atmels ATtiny45-processor. Detta är en minimal (även fysiskt) 8-bitars processor med 4 kByte FLASH-minne, 256 Byte EEPROM och 256 Byte SRAM. Det finns inte mycket detaljer om hur implementationerna är uppbyggda, men att döma av det som presenterades lyckades dom implementera alla 12 algoritmer.

Atmel ATtiny45.
En näve ATmel ATtiny45-kretsar.

Et annat arbete som presenterades är försök att implementera autenticerande kryptomoderTexas Instruments processor MSP430. De moder man arbetat med är CCM, GCM, SGCM, OCB3 och Hummingbird-2. Detta är ett i mina tycken klart intressant. Att få konfidentialitet och autenticering samtidigt ger en mer kompakt lösning än separata algoritmer.

Det presenterades även förslag till autenticerat broadcast-protokoll för industribussen CAN samt försök att implementera AES på en 4-bitarsprocessor(!).

Det jag däremot saknar är nya, lättviktiga asymmetriska algoritmer samt försök att befintliga asymmetriska algoritmer. Det spelar ingen roll om vi har högar med blockkrypton anpassade för små processorer om vi inte kan göra bra nyckelutbyten. En bra minimal implementation av ett vältestat krypto som AES (gärna som stödfunktion i processorns hårdvara), en autenticerande kryptomod samt en nyckelutbyte är mycket mer intressant än ännu ett blockkrypto eller hashfunktion.

För den som vill läsa de artiklar som presenterades finns dom samlade i proceedings för konferensen och går att ladda ner (pdf).

En sista sak. ECRYPT II har även en webbplats, ECRYPT Lightweight Cryptography Lounge där information om kryptolösningar för kompakta, begränsade samlas. Är du intresserad så ta en titt där – det gör jag.