Skriv ut

En gratis IP-kärna som beräknar hashfunktionen Blake2S finns att tanka hem på github. Vi har pratat med utvecklaren, krets- och säkerhetsexperten Joachim Strömbergson.

Intresset för Blake2S vaknade när Joachim Strömbergson upptäckte att många idag beräknar den i mjukvara, vilket inte är lika effektivt.

Joachim Strömbergson

– Blake2S-implementationen täcker ett hål. I takt med att fler applikationer använder Blake2, och inte minst just Blake2S, har behovet att få klart implementationen ökat.

Han har tidigare släppt öppna IP-kärnor som används både i FPGA:er och asicar, bland annat en kärna för en annan hashfunktion, SHA-256, och för AES-kryptering.

Hur färdig är din Blake2S-kärna?

– Den är funktionellt helt klar. Det finns en bra uppsättning tester, och det finns en funktionell referensmodell som används som stöd.

Den fungerar bevisligen i Xilinx utvecklingsverktyg Vivado liksom i öppenkodsverktyget OpenLane för asicimplementation mot processen Skywater.

Koden är skriven i Verilog 2001 och är tillräckligt proper för att språkgranskningsverkyget Lint ska släppa igenom den utan kritik.

– Det borde inte dyka upp några överraskningar. Koden är relativt konservativ.

Den behöver dock testas mer på FPGA, det vill säga köras på utvecklingskort. Joachim Strömbergson kommer även att köra igenom den för andra flöden, exempelvis mot Yosys + NextPNR med Lattice ECP5 som mål-FPGA.

– Den är dock inte lika vältestad och mogen som exempelvis min SHA-256-core. "Use with caution" har jag som status just nu. Och dokumentationen behöver antagligen putsas.

Men det är alltså ingen betaversion av kärnan som Joachim Strömbergson laddat upp på Github, utan den är färdig att integrera.

Vad är grejen med Blake2S?

– Med Blake2S får man en modern kryptografiskt stark hashfunktion som är snabbare än SHA-1 och MD5, vilka är hashfunktioner vi vill få bort.

Funktionerna han nämner är äldre och har i efterhand visat sig innehålla svagheter som gör att de inte går att förlita sig på för de flesta säkerhetstillämpningar. Blake2 togs uttryckligen fram år 2012 för att ersätta dem.

– I och med att det nu finns en hårdvaruimplementation finns det ett alternativ till dem för integration i system-på-chip. Implementationen är enkel att använda som accelerator till en CPU-kärna.

– En fördel med Blake2S i jämförelse med ex SHA-1 och SHA-256 är att den ger större möjligheter till anpassning till applikationens krav. Den version jag släppt ger närmare tre gånger bättre prestanda än SHA-256 med ungefär samma resurser. Men Blake2S går att skala ner två eller fyra gånger i storlek på ett mycket enkelt sätt, berättar Joachim Strömbergson.

Vad gäller säkerheten i Blake2 så är den enligt Joachim Strömbergson en vältestad funktion vid det här laget. Den bygger på Blake som varit finalist i en hashfunktionstävling utlyst av amerikanska standardorganisationen Nist.

En annan merit är att den är på väg att börja användas för att höja säkerheten i  generering av slumptal i Linux.

Kryptohash

En hashfunktion skapar ett fingeravtryck av ett meddelande. Det finns flera användningsområden inom cybersäkerhet. Ett signerat fingeravtryck av ett meddelande kan exempelvis användas som ett äkthetsintyg.

Fingeravtryck av hemliga meddelanden kan märkligt nog lagras helt öppet. Detta eftersom det inte går att baklänges rekonstruera ett meddelande från dess fingeravtryck. Detta är en fundamental egenskap för kryptografiska hashfunktioner, som Blake2S är.

Wikipedia listar ett tiotal familjer av kryptografiska hashfunktioner. En del av dem har i efterhand visat sig inte hålla måttet.