RdRand

Med Intels nye Ivy Bridge-prosessorer kommer RdRand-instruksjonene. Disse instruksjonene skal gi store mengder gode slumptall direkte fra prosessoren. Som tidligere nevnt (her og her) er god slumptallsgenerator viktig for å lage gode nøkler.

Også AMD jobber med å implementere slik teknologi, men foreløpig er lanseringsdato ukjent.

I den gode artikkelen Behind Intel’s New Random-Number Generator i IEEE Spectrum September 2011 er teknologien bak RdRand beskrevet. I tillegg har Intel lagt ut implementeringsveiledning for RdRand her. Sistnevnte inneholder også litt mer teknisk informasjon om bruk av AES-CBC-MAC for utjevning av slumptallsstrømmen og hvordan dette benyttes som frø til AES-CTR for å møte krav i NIST Special Publication 800-90.

Ill.: www.colourbox.no

NSM synes det er bra at en god slumptallsgenerator implementeres i prosessoren; på denne måten kan alle brukere få tilgang til gode slumptall. I maskiner med Trusted Platform Module (TPM) har man kunnet bruke denne til det samme, men det er hovedsakling bare datamaskiner for bedriftsmarkedet som har TPM.

Når slike muligheter tilbys i maskinvaren, er det viktig at programvaren utnytter dette. For de fleste anvendelser vil NSM se det naturlig at plattformen håndterer tilgangen til slumptallsgeneratoren. Dette kan fore eksempel gjøres ved at eksisterende API for slumptallsgenerering henter slumptall fra  TPM eller CPU når dette finnes, enten direkte/alene eller som enda en kilde til plattformens slumptallsgenerator.

I enkelte systemer benyttes forskjellige deterministiske variable (som prosess-identifikater, arbeidsminne og nettverksadresse (MAC)) som ingredienser i en miks som blir tilsynelatende tilfeldig. Dersom man legger til ovennevnte slumptallskilder i denne miksen, vil alle applikasjoner og tjenester som benytter APIet for å generere slumptall få bedre slumptall uten at applikasjonen eller tjenesten må skrives om.

Tidligere har AES blitt implementert i prosessorer fra både AMD og Intel. Det som kan bli mulig nå er å benytte både slumptallsgenerering og AES-kryptering i prosessoren. Man kan altså generere en nøkkel, kryptere det man vil beskytte med nøkkelen og så kryptere nøkkelen med en offentlig nøkkel. På den måten kan man hindre at nøkkelen blir tilgjengelig for resten av systemet.

About Lars Olaussen

Lars Olaussen er senioringeniør i Nasjonal sikkerhetsmyndighet, avdeling for teknologi, seksjon for kryptoutvikling. Hans ansvarsområde er råd- og veiledning og krav- og tiltaksutvikling innen kryptoløsninger for beskyttelse av lavgradert og annen sensitiv, men ugradert informasjon.
This entry was posted in Kryptografi, Teknisk. Bookmark the permalink.