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
HÃ¥rdvara » Kryptoblog

Posts Tagged ‘HÃ¥rdvara’

VISA-kort med inbyggd kodgenerator

December 7th, 2008

New York Times skriver om en ny typ av VISA-kort som innehåller en generator för engångskoder. Kortet är utrustat med ett numeriskt tangentbord samt en display.

VISAs kort.

När en kod skall genereras används tangentbordet för att mata in den PIN-kod som autenticierar dig mot kortet. Kortet genererar en engångskod, vilken visas på displayen. Den genererade koden används för att elektroniskt autenticiera kortet.

Konstruktionen motsvarar alltså det ex SEB och Swedbank åstadkommer med sina dosor från Vasco, men nu behöver man inte släpa runt på dosan (jag har aldrig upplevt att det är speciellt betungande) då den finns i kortet.

Jag tycker att detta är en mycket smutt lösning. Dock tycker jag att jag sett liknande teknik förut, bland annat från svenska Cypak.

Säker kommunikation från förr

November 29th, 2008

På Boingboing dök det upp en länk till en sida med en helt fantastisk bild på en utrustning för att fixa säker röstkommunikation från förr:

Kryptotelefon från förr

Man förstår att hon ser så glad ut när man får använda en sån fräck pryl. Och bara 275 USD! Vad är väl Sectras Tigertelefoner mot detta?.

Maskinen verkar vara portabel då den har egen matning. Uppenbarligen används någon slags symmetrisk skramlingsteknik då maskinen behöver paras ihop med en annan maskin för att skapa en säker förbindelse. Att döma av annonsen är det Delcon Division, en gammal del av HP som sätter koden/nyckeln i maskinen. Notera att dom påpekar att koden är inlåst i deras valv.

Sökte lite på Delcon Division och fick bland annat upp länkar till gamla nummer av HP Journal från 1967 med artiklar om ultraljudsutrustning skrivet av folk från Delcon Division.

Dagens HW-hack: Wolframs 30:e regel

October 13th, 2008

Jag fick en fråga om kryptorelaterade algoritmer som skulle kunna vara lämpliga att köra som exempel i en kurs om system-modellering. Tanken som jag förstod det var att på TLM-nivå simulera SW-funktioner som sedan flyttas till HW.

Intressanta algoritmer behöver både vara enkla att begripa och kunna ge stor skillnad i prestanda, genomströmning etc när funktionen flyttas från SW till HW. Utifrån detta var mitt förslag RC4 (som är enkel, men inte skalar speciellt bra i HW), XTEA, SHA-1 och SHA-2 (256).

Några andra algoritmer man borde kunna sätta i händerna på studenter är eSTREAM-kryptona Grain och Trivium. Båda dessa krypton är relativt enkla att förstå, har intressanta explicita skalbarhetsegenskaper och är välspecificerade med testvektorer, referensmodeller etc.

Sedan slog det mig att en annan, något annorlunda algoritm som skulle kunna användas är Stephen Wolframs cellautomat Rule 30.

Rule 30 är en endimensionell cellautomat som ger upphov till ett slumpmässigt (PRNG) mönster. Rule 30 används som slumptalsgenerator i Wolfram Research Mathematica. En fördel med att använda en endimensionell cellautomat är att den enkelt går att rita upp och grafiskt verifiera.

Rule 30
De första iterationerna av regel 30 samt de styrande tillståndskombinationerna.

En annan kul egenskap är att algoritmen är trivialt parallelliserbar, detta då alla celler kan uppdateras samtidigt. Antagligen går det att göra bra SW-implementationer, inte minst om man tar till SSE-instruktioner alt GPU-acceleration, men en ren HW-implementation blir väldigt enkel.

Jag blev så inspirerad av Rule 30 att jag satte mig ned och hackade ihop ett par implementationer. Först en version i Python (naturligtvis) för att få koll på att jag tänkte rätt. Det blev inte speciellt många rader kod, ca 20 inkl kommentarer. Och jag är säker på att om man är en riktig Pythonista går algoritmen att stampa ner till ett fåtal rader kod, ex med lite list comprehensions.

Sedan hackade jag ihop en RTL-generator (i Python) som kan generera Verilogkod för en Rule30-automat med godtyckligt antal bitar. Den genererade konstruktionen består väsentligen av ett tillståndsregister med en bit för varje cell. För varje cell finns det sedan en enbitars 8-till-1-MUX som implemeterar uppdateringsregeln.

En sak man behöver fundera på är vad som händer för första resp sista biten i arrayen. Jag har valt att göra en ring av arrayen. Detta innebär att vid uppdatering av den högsta biten tittar vi på bit 0 och tvärs om. Implementationsmässigt innebär detta två separata ledningar som går från kant till kant, inte bara lokalt mellan ett cellregisters närmaste grannar.

Jag genererade några stycken versioner av min Rule 30-konstruktion och använde sedan Alteras verktyg Quartus II för att implementera konstruktionen i en Cyclone II-FPGA. Lite resultat:


256 bitar: 687 LEs, 263 MHz
128 bitar: 344 LEs, 358 MHz
64 bitar: 128 LEs, 420 MHz
32 bitar: 64 LEs, 420 MHz
16 bitar: 32 LEs, 420 MHz
8 bitar: 16 LEs, 420 MHz

(Notera att implementationen kräver lika många register som bitar, jag redovisar dock inte det här.)

En snabb analys ger att varje MUX (samt logik för att ladda in ett användarstyrt initialvärde) implementeras med två logikelement (LE). Mellan 64 och 128 bitar ser det ut som att någon form av replikering behöver införas.

Vad gäller klockfrekvensen är 420 MHz max som Cyclone II är specad för. I en annan FPGA, ex Stratix III går det antagligen att få upp klockfrekvensen ytterliggare en bit. Eftersom uppdateringsfunktionen för resp bit består av en 8-1-MUX med ett grinddjup motsvarande ungefär tre NAND2-grindar eller en LE, blir det transportfördröjningen genom FPGA:ns switchnät som sätter gränsen för klockfrekvensen.

Nu är Rule 30 inte en kryptografiskt säker PRNG, men för att vara en PRNG som ger så bra slumpserier så att den duger för Mathematica förbrukar den väldigt lite resurser. Och med 256 PRNG-bitar varje cykel i 263 MHz får vi 67 Gbit/s! (Vilket skulle vara hopplöst att få ut på ett kort och använda utanför FPGA:n.)

Jag tänker slänga upp en version av Verilogkoden, antigen här eller hos InformAsic. Återkommer med det. Nästa steg är att att bygga ut generatorn med stöd för resursdelning, men det gör jag inte i kväll i alla fall.

Att cellautomater har försökt användas i kryptosammanhang finns det flera artiklar som vittnar om. Jag hittade en färsk sådan med titeln LCASE: Lightweight Cellular Automata-based
Symmetric-key Encryption
som just tar upp Rule 30. Värd att läsa om du vill veta mer.

Sectras Tiger XS blir NATO-godkänd

October 12th, 2008

Enligt en blänkare på Elektroniktidningen har Sectras säkra mobiltelefon Tiger XS godkänts för användning av kommunikation av säkerhetsklassad information i NATO.

Tiger XS med autenticiering.

Kul att se framgång för svensk kryptoteknik. Sedan kanske det är värt att påpeka att Tiger XS inte är en mobiltelefon, utan en röstkrypterare som beter sig ungefär som ett Bluetooth-headset gentemot en vanlig mobiltelefon. En i mitt tycke mycket smartare lösning än att utveckla en specifik telefon.

Skydd av FPGA-konstruktioner med PUF:ar

September 29th, 2008

För ett tag sedan skrev jag om olika tekniker för att stoppa kloning av konstruktioner. En av dessa byggde pÃ¥ PUF:ar – Physically Unique Functions utvecklade av företaget Verayo.

I samband med det hittade jag artikeln Offline HW/SW Authentication for Reconfigurable Platforms om att använda PUF:ar för att skydda FPGA-konstruktioner. Jag undrade då hur det gick att implementera PUF:ar i en så kontrollerad och reglerad struktur som i en FPGA. Jag hade artikeln sum lunchläsning och vet nu lite mer. Och jag är rätt besviken.

Problemet författarna försöker lösa är att hindra att inköpt SW som exekveras på en processor implementerad i en FPGA kopieras. Själva processorn och annan HW implementerad i FPGA:n skyddas genom krypterad konfigurationsfil. Men SW lagrad i externt minne har inte samma skydd. Författarna skriver:


A hardware platform, designed by a System Developer, will be configured into an FPGA. The System Developer will also use third-party software IPs that execute on top of the platform. The System Developer can apply bitstream encryption to protect the hardware configuration in the FPGA, but an additional hardware-software authentication mechanism is needed to protect the software IPs.

Det är alltså inte systemutvecklarens väl och ve man avser att skydda utan leverantören av programvarukomponenten. Och tricket är att implementera en PUF i FPGAn. Alltså att FPGA-leverantören bygger in en PUF, inte att FPGA:n struktur används för att implementera en PUF. Dvs deras sjyddar inte SW implementerade i system på dagens FPGA:er, utan kräver att FPGA-leverantörerna bygger in en PUF-funktion i sina kretsar.

Då den föreslagna metoden innebär ökade produktionskostnader för karaktärisering av varje FPGA, samt att FPGA-leverantören skall skicka upp information om alla tillverkade kretsar på en server låter detta inte speciellt troligt.

Och när författarna testat sitt nya protokoll har dom inte ens använt en riktig PUF-modell:


We have not yet built a PUF implementation, but have simulated its behavior using another AES block with a fixed key.

En riktigt usel och irriterande artikel. Tur att min lunchlåda var extra smaskens. Dessutom hade jag en annan, mycket bättre artikel att läsa. Mer om den senare.

Sidokanalsbaserat skydd mot kretskloning

September 18th, 2008

För några dagar sedan bloggade jag om företaget Verayo och deras PUF-teknologi för att stoppa kretskloning. I dag sprang jag på en artikel på EE Times om en annan teknik för att stoppa kretskloning, och den här är riktigt fräck.

Algotronix har utvecklat en mycket intressant teknik kallad DesignTag som gör det möjligt att skydda konstruktioner byggda med FPGA-kretsar. Problemet med SRAM-baserade FPGA-kretsar är att de tappar sin konfiguration när matningen försvinner. Konfigurationen måste därför laddas in från ett externt minne, exempelvis ett FLASH-minne. Och det gör att vill någon klona konstruktionen är det bara att läsa av konfigurationen mellan minnet och FPGA-kretsen.

FPGA-krets med konfigurationsminne.

(I det här läget skall det påpekas att FPGA-leverantörer som Altera och Xilinx har lösningar baserade på krypterad konfigurationsfil där kryptonyckeln lagras internt i FPGA-kretsen och strömsätts med batteri. Detta gör det även möjligt att bygga aktiva skalskydd.)

Algotronix DesignTag försöker stoppa detta genom att för varje konstruktion generera ett unikt konstruktionsblock som identifierar konstruktionen. Genom att läsa av identiteten går det att avgöra vilken konstruktion det är och därmed avgöra om konstruktionen är stulen eller ej.

Och det fräcka är hur DesignTag kommunicerar kretsens ID. DesignTag kommunicerar genom kretsens värmeutveckling!

DesignTag i en FPGA.

När FPGAn startar börjar DesignTag-blocket att göra en massa operationer som ökar och minskar värmeutveckling vilket får temperaturen på utsidan av kapseln att variera. Hur temperaturen varierar beror på identiteten. Genom att läsa av temperaturen går det att få fram kretsens identitet. Fräckt eller hur?!

Setup för att läsa av DesignTag-koden.

Enligt artikeln implementerar DesignTag ett enkelt LFSR-baserat strömkrypto där identiteten är nyckeln. LFSR-kedjan ger upphov till en PRNG-sekvens som styr värmegeneratorn. Vet man inte att det finns DesignTag aktivt i kretsen ser variansen (förhoppningsvis) ut som slumpmässiga temperaturvariationer.

Det står inte hur värmegeneratorn fungerar. Gissningsvis är det något som ger upphov till stora registeromslag och aktivitet. Ett antal styrbara T-register och/eller multiplikatorer med operander som ger upphov till långa carry-kedjor.

DesignTag-kommunikationen kan knappast vara speciellt snabb så antalet bitar som skickas är antagligen inte så stor. Enligt artikeln stängs DesignTag-blocket av efter 15 minuter.

DesignTag-blocket behöver antagligen kalibreras för varje familj av FPGA-kretsar den används för att kunna ge en bra varians i temperaturen. Vidare går det säkert att bygga en mekanism som detekterar om det finns DesignTag i en konstruktion eller ej. Dels borde det gå att attackera LFSR-kedjan och särskilja DesignTag-mönstret från normal slumpmässig temperaturvariation. Om inte annat borde det gå att vänta 15 minuter och se om det händer något med temperaturen.

Men att kommunicera genom temperaturen är ett otroligt elegant sätt som gör att DesignTag inte behöver ställa några krav på tillgång till kretsens ben.

Verayos teknik gör det möjligt för en krets att själv avgöra om den är klonad eller ej. Men samtidigt är det enkelt för skurken att kontrollera om han lyckats slå ut Verayos teknik eller ej. Algotronix teknik ger inte kretsen möjlighet att avgöra om den är klonad eller ej, men är desto svårare att upptäcka om man inte letar efter den.

Krypto, FPGA-kretsar och sidoattacker – tre önskningar i ett. Kan det bli bättre?

Stoppa kretskloning med Verayos PUF:ar

September 13th, 2008

EE Times publicerade i förra veckan en artikel om ett nytt företag som lanserat en teknik för att stoppa kloning av integrerade kretsar.

Företaget Verayo är avknoppning från MIT där Srini Devadas, en av grundarna av Verayo, ledde forskningen om PUF - Physical Unclonable Functions. På Verayos sida finns en förklaring till PUF-teknologin.

Grunden till PUF-teknologin är att de olika process-stegen som utgör en CMOS-processen är statistisk och ger upphov till små lokala varianser, både mellan olika kretsar och inom en krets. Ett exempel på variation är antalet atomer (aluminium eller koppar) en ledning består av. Dessa varianser leder till små skillnader i det elektriska beteendet, exempelvis fördröjningen av en signal genom en grind.

Verayo försöker utnyttja dessa varianser genom att skapa en krets där skillnaden i signalhastighet i olika ledningar får betydelse för hur en signal traverserar en krets och ger upphov till olika digitala mönster. Genom att bygga en kedja med korsvis kopplade multiplexrar och sedan skicka ett känt mönster (challenge) genom kedjan får dom ut ett för den specifika kretsen känt mönster (response).

PUF-bild.

Vid produktion sparas det förväntade mönstret i ett ROM-minne på kretsen. Skulle kretsen klonas kommer mönstret som produceras av kedjan att förändras och då matchar det ej längre det lagrade mönstret.

Challenge-response med PUFs

Jag sökte lite på nätet efter artiklar om PUF-teknologin och hittade några artiklar, bland annat ett par på underbara Citeseer. Silicon Physical Random Functions från 2002 verkar vara den tidigaste som nämner PUF som koncept. En annan som ser ut att vara en hash av samma material är Controlled physical random functions.

2006 kom en artikel av några andra forskare som också tar upp PUF:s, men artikeln Offline HW/SW Authentication for Reconfigurable Platforms tar PUF-konceptet till FPGA-världen. Författarna skriver i sin sammanfattning:


We describe an offline authentication scheme for IP modules. The scheme implements mutual authentication of the IP modules and the hardware platform, and enables us to provide authentication and integrity assurances to both the system developer and IP provider.

Compared to the Trusted Computing Platform’s approach to hardware, software authentication, our solution is more lightweight and tightly integrates with existing FPGA security features. We are able to demonstrate an implementation of the authentication scheme that requires a symmetric cipher and a Physically Unclonable Function (PUF). In addition to the low hardware requirements, our implementation does not require any on-chip, non-volatile storage.

Jag har bara skummat den artikeln och återkommer med en närmare förklaring om vad dom faktiskt gör för att implementera PUF:s i FPGA:er.

Att det finns ett behov av att skydda mot kretskloning är helt klart. Kretskloning och piratkretsar omsätter i dag mycket stora belopp. Ett hitta sätt som (enkelt) gör det svårare att klona kretsar är därför mycket intressant.

Det jag funderar på är vad som händer med Verayos PUF:ar när kretsen åldras, finns det risk att kedjans unika mönster förändras över tiden? Vidare är varians i dag ett av de stora problemen (en av de röda tegelstenarna i ITRS roadmaps) mot mindre geometrier, och i takt med att man processmässigt blir tvingad att minimera varianser borde Verayos teknologi får svårare att skapa riktigt unika mönster.

Verayo är inte heller ensamma i sin strävan. Jag bloggade för nästan ett år sedan om en annan forskning där initialtillståndet i kretsars SRAM-celler används för att skapa krets-ID. Verayos teknik tycker jag dock verkar mer praktiskt intressant.

Uppdatering 2008-09-14:
Jag tror att jag har kommit på hur man kan slå ut Verayos teknologi.

Eftersom MUX-kedjan är till för att förstärka varianser och därmed ge olika mönster i varje krets går det knappast att ha med kedjan och dess utregister i den del av logiken som testas vid produktionstest. Detta undantag skulle göra det möjligt att relativt enkelt lokalisera var på kretsen kedjan, dess utregister och framförallt den komparator som jämför mönstret från kedjan med det förväntade mönstret är placerade.

När väl detta ställe är lokaliserat kan man göra på två sätt:

  1. Strömsätta kretsen, låta stimuligeneratorn skicka igenom indatat till kedjan, observera resultatet och lagra det i minnet. Detta är väsentligen den procedur som behöver utföras vid produktion av de riktiga kretsarna (återkommer strax till detta.)

  2. Låsa resultatet från komparatorn så att den alltid anger att korrekt mönster observerats. Detta görs relativt enkelt genom att FIB:a utsignalen till matning eller jord (beroende på vilket värde som anger att kretsen inte är klonad).

Att slÃ¥ ut komparatorn är antagligen det enklaste, även om det tar tid att FIB:a. Men (1) tar ocksÃ¥ tid, och skall utföras pÃ¥ varje krets som produceras – i alla fall alla kretser som i övrigt har klarat sig igenom produktionstest. Verayos teknik innebär därmed en ökad produktionskostnad. FrÃ¥gan är om denna kostnad överstiger alternativkostnaden med klonade kretsar under kretsens marknadsfönster?

Sedan kan det dessutom vara så att resultatet från komparatorn plockas upp av programvara, och att det är där beslutet om vad som händer när en krets detekterar fel mönster sker. Då är det antagligen ännu enklare att NOP:a bort den programfunktionen.

Informationsläckage i register

August 30th, 2008

Ström-, spänning- och effektbaserade sidoattacker på digitala hårdvaruimplementationer har tidigare fokuserat på logikdelen av implementationen. Ett exempel är attacker mot implementationer där det i algoritmen förekommer en multiplikator.

Antalet bitomslag i en multiplikator varierar väldigt mycket beroende på vilka operander som används. Denna varians ger i sin tur upphov till mätbara varianser på strömförbrukningen. Ett exempel på den här typen av attack beskrivs i artikeln DPA on n-Bit Sized Boolean and Arithmetic Operations and Its Application to IDEA, RC6, and the HMAC-Construction.

En av mina sommarläsningsartiklar var Information Leakage of Flip-Flops in DPA-Resistant Logic Styles och i den presenteras en sidoattack mot de register i en hårdvaruimplementation som används för att lagra interntillståndet. Författarna till artikeln skriver i sammanfatttningen att:


We show that many of the proposed side-channel resistant logic styles still employ flip-flops that leak data-dependent information. Furthermore, we apply simple models for the leakage of masked flip-flops to design a new attack on circuits implemented using masked logic styles.

Contrary to previous attacks on masked logic styles, our attack does not predict the mask bit and does not need detailed knowledge about the attacked device, e.g., the circuit layout. Moreover, our attack works even if all the load capacitances of the complementary logic signals are perfectly balanced and even if the PRNG is ideally unbiased.

Finally, after performing the attack on DRSL, MDPL, and iMDPL circuits we show that single-bit masks do not influence the exploitability of the revealed leakage of the masked flip-flops.

Med andra ord visar artikeln att även om implementationen innehåller olika typer av mekanismer för att skydda logikdelen mot siodoattacker läcker implementationen ändå information via registren.

En flanktriggad D-vippa. Kallas även (D-register eller bara register då det är den absolut vanligaste typen av register som används.

Uppbyggnaden av en D-vippa.
En D-vippa byggd med NAND-grindar.

Artikeln visar att den grundläggande struktur som alla processleverantörer (de företag som erbjuder kretstillverkning) har i sina cellbibliotek för en D-registret regerar olika när den läser in (sample) och låser (hold) ett nytt värde dels beroende på om det är en etta eller en nolla, och beroende på vilket värde (noll eller ett) som redan låg i registret.

Artikeln använder dessa skillnader i registren för att ta fram två olika attackmetoder och applicerar dessa på testkonstruktioner som är skyddade med tidigare publicerade metoder mot sidoattacker. Att döma av artikeln fungerar metoderna för att plocka ut information. Författarnas slutsats är att:


Since most of the prior analysis of side-channel resistant logic styles focused on the combinational logic, so did the research to improve those logic styles. We think it is time to switch the focus of research to find methods for designing side-channel resistant flip-flops with a decent area and power consumption and a low impact on the operation frequency.

One possible approach could be combining semi-custom design for combinational logic with full-custom flip-flop design.

Jag håller inte riktigt med om att en bra lösning kan baseras på full-custom-register, det skalar på tok för dåligt. Även om full-custom-delen begränsas till de delar i konstruktionen där säkerhetsfunktioner implementeras blir det snabbt väldigt mycket mer arbete. Dessutom skulle det bli lättare att identifiera säkerhetsimplementationen på kretsytan, detta då full-custom-logik har ett distinkt utseende.

Jag tror att artikeln skall tas som utgångspunkt för att ta reda på hur register i cellbibliotek görs immuna mot den här typen av informationsläckage.

En intressant fråga är hur man som konstruktör skall göra när man har än mindre kontroll över regsistrens fysiska uppbyggnad än med cellbaserad kretsteknik. Mer specifikt i FPGA:er. Går det exempelvis använda par eller grupper av register för att skapa sidoattackresistenta register?

Jag såg att det precis publicerades en ny artikel på IACR som beskriver en metod för att skydda implementationer av RSA mot sidoattacker. Jag gissar att den metod som presenteras i artikeln inte är skyddad mot registerattacken. Det finns i alla fall ingen referens till registerattacken.

Säkerhet i minnesbaserade hårddiskar

August 25th, 2008

IDG publicerade i dag en artikel om att Flashdiskar är en säkerhetsrisk. I artikeln är jag intervjuad, men allt jag sa i intervjun fanns det naturligtvis inte plats för. Jag vill därför här på min egen blog (där jag kan bladdra på) förtydliga det jag sa samt ta upp något av det som inte kom med i artikeln.

Det stämmer att jag anser att det är enklare att sprätta upp en Flashbaserad hÃ¥rddisk (Solid State Drive – SSD) och läsa ut innehÃ¥llet ur minneskretsarna än vad det skulle vara att försöka plocka ut informationen direkt frÃ¥n skivorna i en traditionell hÃ¥rddisk. Det senare kräver bland annat klart mer avancerad utrustning och renare miljö.

Intel presenterade för några dagar sedan på IDF att de kommer med specialutvecklade FLASH-minnen för att bygga en riktigt snabb SSD, men de flesta SSD-diskar på marknaden innehåller i dag vanliga FLASH-minnen som går att proba (dvs koppla in sig direkt på kretsens ben) och läsa ut innehållet ifrån med enkel och billig utrustning.

SSD med FLASH-minnen.
En SSD med flera stycken FLASH-kretsar.

MEN för att någon skall sprätta upp din SSD och läsa ut minnesinnehållet måste du blivit av med din hårddisk. Du är kort sagt redan rökt, något jag påpekade i intervjun. Vidare bör det vara så att skälet för att en skurk skulle ge sig på kretsarna är antagligen för att det lösenordsskydd som finns i ATA-standarden (ATA Security Feature Set) är aktiverat. Men det lösenordsskyddet finns det enklare sätt att ta sig runt.

Vad det handlar om är alltså att om man gör en ren jämförelse mellan de två typerna av hårddiskar så finns det en säkerhetsteknisk skillnad. Men den här skillnaden i säkerhet mellan Flashbaserade hårddiskar och traditionella hårddiskar är marginell, troligen inte den väg en attack skulle ta och rent praktiskt inte ett hot värt att förlora speciellt mycket sömn över.

Vad som kom med i artikeln och jag tycker är bra är att jag tycker att diskkryptering är bra. Både den typ som implementeras direkt i disken och i den som finns i operativsystem (FreeBSD, Mac OS X, Windows Vista, Solaris med flera) samt via fristående applikationer exempelvis TrueCrypt.

Informationsförluster på grund av stulna eller förlorade datorer är i dag ett stort och verkligt problem, men går att i stort sett eliminera genom diskkryptering och vettig nyckelhantering. Och den dag gammal utrustning skall rensas ut behöver inte de redan hårt belastade sysadministratörerna ägna tid åt att köra scrubbing-program för att förstöra data. Dumpa nycklarna och problemet är löst. Mycket mer ekonomiskt och enklare att metodiskt hantera i en organisation.

Jag anser att om du står i valet mellan en minnesbaserad hårddisk eller en traditionell hårddisk finns det viktigare parametrar att skillnad i säkerhet. Men oavsett vilken typ av hårddisk du väljer är det bra att använda diskkryptering.

Lite tankar om TOP500-listan

June 27th, 2008

(En liten teknikutsvävning sÃ¥ här pÃ¥ fredag. Kopplingen till IT-säkerhet och krypto är väl att mycket beräkningskraft alltid är bra om man skall joxa med krypto, speciellt för att försöka analysera och knäcka dom…)

Jag har tittat lite på den senaste TOP500-listan, dvs listan över superdatorer. Snabbaste maskinen totalt sett är IBMs Roadrunner (vilken jag tidigare skrivit om):

IBM Roadrunner

Världen snabbaste dator: Roadrunner, byggd av IBM för LANL.

Snabbaste maskinen i Sverige, FRA:s HP-burk, har halkat ner från femte till 11:e plats på ett år. Sverige har just nu nio maskiner på listan, dvs 1.80% av alla superdatorer. Totalt 38596 processorer som tillsammans når drygt 393 TFLOPS. Lite mer statistik:

Leverantörer
IBM innehar platserna 1-3 på prestandalistan och har fem maskiner på top 10. IBM vinner även totalt med 42% av alla system, före HP med 37%. Bland gamla klassiska superdatorbolag spöar SGI faktiskt Cray med 4.4% mot 3.2%, men båda får pisk av kontorsråttan Dell som står för 5% av systemen.

Processorer
Lägger man ihop statistiken för AMDs x86, Intel x86-32 och x86-64 är nästan 85% av alla processorer som används en x86-processor(!). Power är på andra plats med 13%. Itanium och andra arkitekturer är väsentligen avrundningsfel. SPARC finns inte med alls. Var tog alla kraftfulla server- och HPC-processorarkitekturer vägen?

Kommunikationsteknik
Superdatorer, beräkningskluster och HPC-maskiner med många beräkningsnoder som samarbetar för att skapa ett resultat är beroende av bra kommunikationsteknik. Det är inte bara bandbredd utan fördröjningen (latensen) är extremt viktig för att nå bra prestanda.

Som Seymour Cray sa på 70-talet: It’s the heat and the thickness of the mat which matters., där mattan är härvan av kablar mellan maskinerna. (Jag sprang på en presentation om kommunikation och högpresterande beräkningar som kan vara värd att titta igenom.)

För att få till den kommunikation som behövs har man traditionellt i superdatorer och HPC-system använt specialutvecklade kommunikationslösningar, exempelvis Infiniband och Myrinet.

Det som är intressant att se är att för 57% av alla maskiner på listan är den kommunikationsteknik som används Gbit Ethernet (GE). Infiniband kommer på andra plats med 24% och Myrinet används i drygt 2% av alla maskiner.

HyperTransport (HT) finns förvånande nog inte med trots att det bland annat används i maskiner från Cray (om det inte är det som kallas Cray Interconnect, vilket det verkar vara).

OS
Linux dominerar stort på OS-sidan med 85%. Lustigt nog delar man sedan upp OS på UNIX, BSD Based och Mac OS. Tillsammans blir dessa dock knappt 6%.

Windows, som har slagit hårt på trumman de senaste åren för Windows HPC Server har på ett år ryckt upp sig från 0.6% till 1%. En av dessa Windows-kapabla maskiner är Akka vid HPC2N i Umeå:

Akka
Superdatorklustret Akka.

Allmänt
TOP500-listan är en relativt skev lista, där lejonparten av maskinerna egentligen är stora ansamlingar/kluster av normala datorer.

Längst upp i toppen är det fortfarande specialdesignade system med ovanliga arkitekturer (på processor och systemnivå), kommunikationsteknik och kylning.

Trenden mot standardteknik – standardmaskiner byggda av x86-processorer med Linux som OS och Ethernet som kommunikationsteknik är, tycker jag, tydlig.

För den som vill läsa om utmaningarna med att bygga PFLOP-maskiner finns en artikel om IBMs Bricks-projekt. Artikeln IBM Intelligent Bricks project-Petabytes and beyond är ett par år gammal, men är fortfarande fascinerande läsning.

Av superdatortillverkarna Convex, Parsytech, KSR, Sequent, Meiko, MasPar, TMS, nCube har spåren sedan länge kallnat.

Det var roligare förr när superdatorer var exotiska, märkliga bestar, inte bladservrar, pizzaboxar och PC-burkar på hög. Titta på dessa snygga maskiner:

Convex
En Convex 3800.

Tera MTA
En Tera MTA 1. (Vacker, men gick inte att producera.)

Cray C90.
Cray C90, kanske den vackraste av alla superdatorer.

Professor Erik Hagersten sa en gång att en riktig superdatortillverkare skall ha gått i konkurs minst en gång men tyvärr verkar allt färre av dom återuppstå, utan ersätts av Svenssonmaskiner. Många Svenssonmaskiner.

För den som gillar datorporr finns en del sidor på nätet. Den här har nostalgisk HPC-porr och den här har allmän nostalgidatorporr.

NSC i Linköping har en sekvens med fantastiska bilder som visar hur superdatorer gått från vackra skapelser till IVAR-hyllor med PC-burkar.

I Tyskland finns det tydligen en avdelning på Munchens datormuseum som är ett ett Cray-museum. Något för sommarsemestern att besöka?