(12) Oversettelse av europeisk patentskrift



Like dokumenter
(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(86) Europeisk innleveringsdag

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift. Avviker fra Patent B1 etter innsigelse

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

(12) Oversettelse av europeisk patentskrift

Transkript:

(12) Oversettelse av europeisk patentskrift (11) NO/EP 00904 B1 (19) NO NORGE (1) Int Cl. G06F 7/72 (06.01) Patentstyret (21) Oversettelse publisert 12.12.17 (80) Dato for Den Europeiske Patentmyndighets publisering av det meddelte patentet 12.08.01 (86) Europeisk søknadsnr 0817661.3 (86) Europeisk innleveringsdag 08.06.0 (87) Den europeiske søknadens Publiseringsdato 08.12. () Prioritet 07.06.07, FR, 0704086 (84) Utpekte stater AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR (73) Innehaver THALES, 4 Rue de Villiers, 920 Neuilly sur Seine, Frankrike (72) Oppfinner Sauzet, Alain, 3, allée Arnaud Massy, 970 Bondoufle, Frankrike Bernard, Florent, 37, boulevard du Segrais, 7718 Lognes, Frankrike (74) Fullmektig Tandbergs Patentkontor AS, Postboks 170 Vika, 0118 OSLO, Norge (4) Benevnelse Fremgangsmåte for maskert Montgomery mondulær multiplikasjon (6) Anførte publikasjoner EP-A- 1 291 763 US-A1-03 079 139 WO-A-06/3288 WO-A-98/38

1 Beskrivelse 1 2 [0001] Oppfinnelsen gjelder en fremgangsmåte for maskert Montgomery modulær multiplikasjon. Den lar seg spesielt anvende til sikring av prosessorer brukt til kryptografiske beregninger. [0002] Et formål med kryptografi er å chiffrere sensitive data ved hjelp av et hemmelig element, vanligvis en kryptografisk nøkkel. Det er svært viktig å beskytte verdien av nøkkelen for å unngå avsløring av sensitive data. De kryptografiske algoritmene er utformet slik at nøkkelen i praksis ikke kan finnes. For å finne nøkkelen kreves i teorien beregningsmidler som er vanskelig tilgjengelig selv for en stat og beregningstid som overstiger menneskelig skala. Ikke desto mindre har enkelte angripere overvunnet de matematiske vanskelighetene med å finne nøkkelen gjennom fysiske angrep. En slik brukt metode er angrep gjennom hjelpekanaler. Denne måler oppførselen til en blokk med kryptografisk beregning når nøkkelen brukes. Da utføres viss operasjoner avhengig av nøkkelens verdi. Nå påvirkes fysiske størrelser avhengig av arbeidet som utføres av beregningsblokken og data som brukes i løpet av disse operasjonene. For eksempel gjør måling av strømforbruket i en krets, en beregningstid eller mengden av elektromagnetisk stråling frembrakt av en komponent det mulig å finne visse utførte operasjoner eller visse behandlede data. En analyse av disse målingene kan så brukes til å finne verdien av nøkkelen som er brukt. [0003] For å beskytte sikkerhetssystemer som benytter asymmetriske kryptografiske metoder, anbefales det å gjøre denne typen angrep minst like vanskelige å utføre som de klassiske kryptografiske angrepene. Kjente løsninger gjør det mulig å redusere effektiviteten til slike angrep, uten å kunne forhindre dem. Disse løsningene kan omfatte modifikasjone av beregningsalgoritmen og/eller de behandlede data slik at målinger av fysiske størrelser avslører minst mulig om operasjonene som utføres i beregningsblokken. Det finnes flere kategorier av beskyttelsesmetoder. [0004] En første kategori angår tillegg av blokker med fantomberegninger. Disse spesielle blokkene påvirker ikke beregningene, men endrer strømforbruket og/eller den elektromagnetiske utstrålingen. Denne typen mottiltak er ikke fullstendig effektive fordi en behandling av målingene gjør det mulig å eliminere påvirkningen fra disse blokkene av fantomberegninger, og dermed ignorere dem. [000] En andre kategori av beskyttelsesmetoder gjør det mulig å eksekvere algoritmen uavhengig av nøkkelens verdi. Disse metodene viser seg å være nødvendige men ikke tilstrekkelige.

2 1 2 [0006] En tredje kategori introduserer en tilfeldig perturbasjon i data. Disse beskyttelsesmetodene betegnes generelt som maskering. De virker ved at behandlingen av data mangler, a priori, sammenheng med klare eller chiffrerte data for å redusere korrelasjonen mellom målingene og de kjente data. [0007] Implementasjonen av disse beskyttelsesmetodene medfører uvegerlig visse ulemper. For det første medfører de en økning i behandlingstid og/eller størrelsen av koden i programvareimplementasjoner eller kretsoverflaten i maskinvareimplementasjoner. For det andre er implementasjonen av kryptografiske algoritmer i et databehandlingssystem generelt utført av lag. Blokker av elementære operasjoner brukes av algoritmer på et høyere nivå, som selv brukes i implementasjonen av de kryptografiske algoritmene. Modifisering av en elementær blokk kan dermed medføre uventede, selv feilaktige, resultater i visse algoritmer på høyere nivå som bruker den modifiserte elementære blokken. For å unngå disse feilene, er det følgelig nødvendig med visse tilpasninger på nivå med algoritmene og/eller arkitekturen i databehandlingssystemet. Integrasjon av en modifisert blokk er dermed komplisert, ettersom den har mange følger for de overliggende lagene i algoritmen. [0008] Som illustrasjon benyttes her kallet til maskert multiplikasjon, ettersom denne synes naturlig angående asymmetrisk kryptografi. Tradisjonelt utføres beregningene i en modulær løkke med kongruens n. Den maskerte multiplikasjonen oversettes, ved eksekvering av en algoritme, til behandling av et tall x lik ((x r) modulo n) i stedet for å behandle tallet (x modulo n), der r er et tilfeldig tall og n er modulen. Den maskerte multiplikasjonen har imidlertid en rekke ulemper. For det første kreves en ekstra divisjon for å finne det ønskede resultatet. Nå er divisjonsoperasjonen kostbar med hensyn til beregningstid og materielle ressurser. For det andre er det tilfeldige tallet r fast gjennom hele eksekveringstiden for en algoritme, hvilket kan medføre en svakhet som kan utnyttes av en angriper. Videre, ved bruk av en algoritme med visse elliptiske kurver, kan andre sårbarheter med maskert multiplikasjon fremtre, særlig når en angriper velger et singularitetspunkt på den nevnte kurven. [0009] En annen kjent maskeringsmetode er eksekvering av algoritmene i en modulær løkke med kongruens k.n, der k er et naturlig tall. Den økte størrelsen på modulen brukt i beregningene krever imidlertid økt størrelse den implementerte programvaren og/eller maskinvaren. [00] En annen fremgangsmåte for maskering er beskrevet i publisert europeisk patentsøknad nummer EP1239364. Den omhandler en teknikk med dobbel multiplikasjon, hvorav én er maskert. Som de ovenstående lar denne løsningen seg ikke enkelt innpasse i et

3 1 system eksisterende beregningssystem med flere lag. Følgelig fører den spesielt til modifikasjoner i algoritmene benyttet av de kryptografiske funksjonene. [0011] En av de grunnleggende operasjonene benyttet av kryptografiske algoritmer, er modulær multiplikasjon. Denne operasjonen gjør det mulig å beregne et produkt modulo n av to heltall og benyttes av et stort antall algoritmer. Den er derfor passende å introdusere som beskyttelse mot angrep gjennom hjelpekanaler. For øvrig er en annen betingelse som må tilfredsstilles fleksibilitet i løsningen, det vil si kapasiteten til å behandle tall av variabel størrelse. [0012] Et formål med oppfinnelsen er å implementer, på nivå med operasjonen modulær multiplikasjon, en beskyttelsesmetode som har liten påvirkning på beregningstiden, krever svært små materielle tilleggsressurser, og ikke påvirker algoritmene på høyere nivå. For dette frembringer oppfinnelsen en fremgangsmåte for Montgomery modulær multiplikasjon med kongruens n eksekvert av en kryptografisk komponent som virker på en databuss med b bits, hvor fremgangsmåten mottar to inngangsoperander A+k 1.n og B+k 2.n, hvor A og B er mindre enn n, k 1 og k 2 er tilfeldige heltall, hvor fremgangsmåten er karakterisert ved at den omfatter minst de følgende trinn: o å beregne et midlertidig resultat S som er lik (A+k 1.n).( B+k 2.n).R -1 mod n, hvor R er en potens av grunntallet, R er større enn modulen n, hvor grunntallet er lik 2 b ; hvor fremgangsmåten er karakterisert ved at den omfatter minst de følgende trinn: o å generere et pseudotilfeldig tall z, hvor det pseudotilfeldige tallet z beregnes som en funksjon av multiplikasjonens inngående operander A+k 1.n og B+k 2.n; o å addere til det midlertidige resultatet produktet av tallet z og n. [0013] Fremgangsmåten ifølge oppfinnelsen kan omfatte minst de følgende trinn: 2 o S x 0.y o for i fra 0 til t n -1 utføres: o m i S 0.n mod r o S xi.y + (m i.n +S)/r o o o m t S 0.n mod r bestemme et pseudotilfeldig tall z S z.n +( m tn.n + S)/r

4 hvor r betegner grunntallet, t n størrelsen av modulen n i antall maskinord, x og y operandene som skal multipliseres, m i midlertidige koeffisienter, S resultatet av multiplikasjonen, og hvor verdien n er lik n -1 mod r. [0014] Ifølge én utførelsesform utføres den modulære multiplikasjonen på et høyt grunntall større eller lik 4. [001] Ifølge én utførelsesform beregnes det pseudotilfeldige tallet z av operandene x = (A+k 1.n) og y = ( B+k 2.n) i multiplikasjonen. [0016] Ifølge én utførelsesform hvor tallet x dannes av maskinordene x 0, x 1, x tn og tallet y defineres av maskinordene y 0, y 1,..y tn, er det pseudotilfeldige maskinordet z lik x 0 xor x 1 xor xor x tn xor y 0 xor y 1 xor... xor y tn, hvor xor betegner operasjonen binær eksklusiv eller. [0017] Andre trekk fremkommer i den detaljerte beskrivelsen gitt ved et ikke-begrensende eksempel med henvisning til de vedføyde tegningene, som viser: 1 o o figur 1, et eksempel på en multiplikasjons- og addisjonscelle benyttet til maskert modulær multiplikasjon ifølge oppfinnelsen, figur 2, et flytdiagram over bruk av en multiplikator som implementerer maskering ifølge oppfinnelsen med en algoritme som kaller den modulære multiplikasjonsoperasjonen. 2 [0018] Multiplikatoren ifølge oppfinnelsen implementeres i maskinvare som en ASIC (Application-Specific Integrated Circuit) eller FPGA (Field-Programmable Gate Array) og virker på en databuss med b bits. [0019] Et antall b bits betegnes med uttrykket maskinord. Størrelsen av bussen er ofte en potens av 2. Grunntallet r er definert som lik 2 b. Modulen n er et oddetall registrert på t n maskinord. Endelig defineres R som en potens av grunntallet, hvor R er større enn modulen n. Et tall x kan dekomponeres med grunntall r med t+1 siffer x i, som følger: x = x0 + x 1.r + x 2.r 2 + + x t.r t, hvor hvert siffer x i har størrelsen til et maskinord. [00] Multiplikatoren ifølge oppfinnelsen, av de to tallene x og y, tillater beregning av x.y.r 1 mod n +e.n, hvor e er en verdi avhengig av x og y og ligger mellom 0 og r/2. Operasjonen x.y.r 1 mod n er Montgomery modulær multiplikasjon. Multiplikatoren utfører

dermed en Montgomery modulær multiplikasjon og en maske addert til resultatet av denne multiplikasjonen. Ettersom verdien e avhenger av x og y og inngangsverdiene x og y er maskert av en tilfeldig verdi før de benyttes av multiplikatoren, så er resultatet også maskert av en tilfeldig verdi. Multiplikatoren tillater således overføring av masken til inndata. [0021] I en variant av utførelsen, avhenger verdien e av en tilfeldig variabel uavhengig av x og y. [0022] Før multiplikasjonen utføres, forhåndsberegnes en verdi betegnet n : n = -n -1 mod r. Resultatet av multiplikasjonen betegnes S. Sifrene i et tall N med grunntall r betegnes N i. [0023] Beregningen av den resulterende Montgomery modulær multiplikasjon med additiv maskering utføres etter følgende fremgangsmåte: 1 i. S x 0.y ii. for i fra 0 til t n -1 utføres: a. m i S 0.n mod r b. S x i.y + (m i.n +S)/r iii. m tn S 0.n mod r iv. z x 0 xor x 1 xor xor x tn xor y 0 xor y 1 xor... xor y tn v. S z.n +( m tn.n + S)/r 2 hvor m i er midlertidige koeffisienter i beregningen. [0024] Hensikten med det fjerde trinnet (iv) er å frembringe et pseudotilfeldig tall avhengig av x og y. Fremgangsmåten for å beregne denne pseudotilfeldige verdien z gitt i eksempelet ovenfor kan modifiseres ved å kombinere tallene x og y annerledes. Det femte trinnet (v) gjør det mulig å introdusere tilfeldigheten generert i det foregående trinnet i resultatet av multiplikasjonen. Siden det adderte tallet (z.n) er et multiplum av n, er det modifiserte resultatet kongruent med resultatet som oppnås med en tradisjonell fremgangsmåte. [002] Trinnet (ii.b) (S x i.y + (m i.n +S)/r) er det mest tidkrevende i beregningen. Det kan realiseres ved å utføre to multiplikasjons-addisjonsoperasjoner i rekkefølge: den første multiplikasjon-addisjonen er S (m i.n +S)/r, den andre multiplikasjon-addisjonen er S x i.y + S,

6 Hver multiplikasjon-addisjon utføres i en løkke, og den første multiplikasjon-addisjonen skiller seg fra den andre ved en divisjon med r. [0026] I én utførelsesform, er løkken som utføres av den andre multiplikasjon-addisjonen følgende: c=0 for j fra 0 til t n utfør: P p j q j +V j +c S j LSB(P) c MSB(P) s n+1 =c 1 2 hvor s betegner resultatet av multiplikasjon-addisjonen p i.q + v og c en restverdi. [0027] I trinnet (ii.b) i den modulære multiplikasjonen, erstattes verdien p i med x i, verdien q erstattes med y og verdien v erstattes med S. Basisoperasjonen P p i q j +v j +c utføres med p i, q j, v j, c i området mellom 0 og r-1. Det midlertidige resultatet er derved i området mellom 0 og r 2 1, og uttrykkes med to sifre. Notasjonen LSB(P) betegner det minst signifikante sifferet og MSB(P) det mest signifikante sifferet til tallet P. [0028] I den siste iterasjonen av løkken (når j=t n ) utfører operasjonen ifølge oppfinnelsen en operasjon på et siffer q n i området mellom 0 og r/2, i motsetning til en multiplikasjon-addisjon som virker på ikke-maskerte tall, hvor q n blir mindre eller lik 1. Følgelig kan verdien s n+1 være større enn 2. [0029] Den første multiplikasjon-addisjonen S (m i.n +S)/r utføres på samme måte som den andre multiplikasjon-addisjonen, men omfatter også et skift av resultatet b bits mot den minst signifikante biten. Skiftet tilsvarer en divisjon med r. Multiplikasjon-addisjonen med skift utføres som følger: c=0 for j fra 0 til t n utfør: P p i q j +V j +c S j-1 LSB(P)

7 c MSB(P) s n =c+v n+1 1 2 [00] I trinnet (ii.b) i den modulære multiplikasjonen, erstattes verdien p i med m i, verdien q erstattes med n og verdien v erstattes med S. I iterasjonen j=t n er følgelig n j =0 per definisjonen av t n, slik at P 2(r-1), hvilket medfører MSB(P) 1. [0031] Løkken blir så, ved et skift som beskrevet tidligere, fulgt av løkken som tilsvarer den andre multiplikasjon-addisjonen, hvilket gjør det mulig å forestille seg en utførelse av en sammenstilling for å utføre begge løkkene. Nærmere bestemt kan en multiplikator splitte operasjonen p i q j +v j +c i (p i q j +v j )+c og pipeline multiplikasjons-addisjons operasjonen (p i q j +v j ) og addere, avhengig av de oppnådde resultatene, variabelen c. [0032] Figur 1 er et eksempel på en celle for multiplikasjon-addisjon benyttet i den maskerte modulære multiplikasjonen ifølge oppfinnelsen. Cellen gjør det mulig å beregne de to multiplikasjons-addisjonsoperasjonene beskrevet over. Den er pipelinet for å forbedre ytelsen. Pipelinen består i å tilføye barrierer av registre mellom de logiske fasene for å redusere den kritiske veien, og derved øke den maksimale frekvensen for funksjonen (teoretisk den til en adderer med grunntall r). [0033] Vi definerer dybden av en pipeline av en elementær komponent ved dens antall interne registre. Vi teller ikke utgangsregisteret. [0034] Eksempelet gitt på figur 1 antar at vi har en pipeline multiplikator-adderer 1 med dybde p. [003] Den omfatter spesielt en gruppe av logiske registerpar (li, ri). Antall par p er spesielt valgt for at den maksimale frekvensen F1 max til pipeline multiplikator-addereren skal være større eller lik den maksimale frekvensen F2 max til addereren, hvor verdien av disse to frekvensene er så nær hverandre som mulig. [0036] Den maksimale frekvensen for funksjonen til multiplikator-addereren er gitt som den inverse til eksekveringstiden til multiplikasjons-addisjonsoperasjonen, altså slik at den maksimale frekvensen for funksjonen til multiplikator-addereren er gitt som den inverse til eksekveringstiden til én enkelt av de p etasjene. For optimal funksjon, bestemmer vi addererens maksimale frekvens, som er gitt av eksekveringstiden til addereren, og trekker fra multiplikatoren-addereren i p etasjers overføringstider som er mindre eller like, men så nær som mulig, eksekveringstiden til addereren.

8 1 2 [0037] Inndata til multiplikator-addereren 1 tilsvarer tre sifre: p i, q j og v j og utgangen er et par sifre som tilsvarer LSB(p i q j +v j ) og MSB(p i q j +v j ). Utgangen har to sifre. [0038] Resultatet fra multiplikator-addereren føres til en adderer med tre innganger, henvisningstall 2: siffer+siffer+carry siffer+carry som fungerer i 1 syklus (pipeline 0) ved frekvens F2max. [0039] Registeret Temp tilsvarer lagring av c som trengs til etterfølgende beregning: addisjon av c med den etterfølgende LSB og den forgående rest. [0040] Data (sifrene i pxq +V) mates ut i rekkefølge i hver syklus, minst signifikante sifre først, på samme måte som propagering av restverdien. [0041] Operasjonen s n =c+v n+1 kan utføres av en adderer, ikke vist på figuren, som adderer b- 1 bits +1 bit = b bits og ikke 2 bits + 1 bit = 3 bits som i en tradisjonell innretning, ettersom v n+1 kan være større enn 2. [0042] De andre trinnene i fremgangsmåten med Montgomery modulær multiplikasjon med addert maske som resultat kan utføres ved bruk av tradisjonelle multiplkesere og registre. En multiplikator som gjør det mulig å utføre en modulær multiplikasjon ifølge Montgomerys metode er beskrevet i patentsøknaden publisert som nummer WO063288. [0043] Trinnene i fremgangsmåten for maskering ifølge oppfinnelsen kan enkelt implementeres i en innretning som omfatter en celle for multiplikasjon-addisjon som den som er beskrevet over. Generering av det pseudotilfeldige tallet z kan utføres av en logisk komponent med to innganger og en utgang, der den første inngangen mottar den første operanden x som skal multipliseres og den andre inngangen mottar den andre operanden y som skal multipliseres og utgangen frembringer en kombinasjon av x og y, for eksempel et tall lik x xor y, hvor notasjonen xor betegner binær eksklusiv ELLER. Det pseudotilfeldige tallet s ut fra den logiske komponenten kan så kombineres med n i en multiplikator for å frembringe et pseudotilfeldig multippel av n lik z.n. [0044] Figur 2 er en skjematisk fremstilling av bruken av en multiplikator som implementerer fremgangsmåten for maskering ifølge oppfinnelsen ved en algoritme som foretar et kall til den modulære multiplikasjonen. Under eksekveringen av algoritmen opererer alle de utførte multiplikasjonene på tall som alle ble oppnådd fra faste startverdier. Som et eksempel, ble fir startverdier kalt h, x, d og s benyttet til å generere alle andre de andre verdiene benyttet i algoritmene. [004] I et første trinn 21 virker en additiv maske på disse innledende verdiene h, x, d og s. Derved fås de maskerte verdiene h m, x m, d m og s m som følger:

9 h m = h + e h.n ; x m = e x.n ; d m = e d.n ; s m = e s.n 1 2 hvor e h, e x, e d, e s er tilfeldige verdier mellom 0 og 2 p. I praksis er verdien p fortrinnsvis minst lik 63 for hvilken den additive masken er effektiv. [0046] I et andre trinn 22 eksekveres algoritmen og utfører kall, når det er nødvendig, til multiplikatoren ifølge oppfinnelsen. Ingen modifikasjon av algoritmen er påkrevet, og alle resultatene frembrakt av multiplikatoren er ifølge oppfinnelsen er maskerte, hvilket tillater algoritmen å behandle kun maskerte data. [0047] I et tredje trinn 23, etter eksekvering av algoritmen, påføres en demaskering på de maskerte verdiene 231 for å gjenvinne resultatene som ville blitt oppnådd uten maskering. Denne operasjonen kan for eksempel realiseres av multiplikatoren ifølge oppfinnelsen ved å velge bestemte inngangsverdier. [0048] Bruken av innretningen illustrert på figur 2 viser at verdiene som benyttes i beregningene er ukorrelert med de innledende verdiene. En konsekvens er at en angriper som analyserer de fysiske størrelsene i løpet av eksekveringen av algoritmen kan ikke lenger, ved nøye valg av inngangsvariabler, finne hemmelige data som benyttes ved beregningene. For eksempel, på en tradisjonell innretning, kan en angriper velge en inngangsvariabel som omfatter et stort antall 0 eller et stort antall 1, deretter analysere strømforbruket for å bestemme en relasjon mellom inngangsvariablene og forbruket og/eller utlede typen av operasjoner utført av algoritmen. Takket være bruk av den additive masken, elimineres de lange, innledende kjedene av 0 eller 1 i operandene som benyttes av algoritmen og slik svekker hypotesen angriperen har kunne hatt om inngangsvariablene han har valgt selv. [0049] Tillegget i beregningstid og, i tilfelle maskinvare i kretsene på overflaten, er svært lite. [000] Fordelaktig tillater blokkmultiplikatoren eksekvering av algoritmer på tall med forkjellog størrelse uten å modifisere den materielle implementasjonen. Slik kan em multiplikator syntetisert med FPGA eller ASIC og realisert ifølge oppfinnelsen tillate eksekvering av multiplikasjonene indifferent til moduler med størrelse 128, 26, 12, 24 og 48 bits for eksempel. [001] En fordel med fremgangsmåten ifølge oppfinnelsen er at den kan implementeres i en komponent for eksisterende kryptografiske beregninger på en måte som er transparent for arkitekturen i komponenten. Derved er det tilstrekkelig å erstatte den tradisjonelle operatøren for modulær multiplikasjon med en operatør implementert med fremgangsmåten ifølge oppfinnelsen. Erstatningen av denne elementæroperasjonen fører dermed til en global

forbedring av beskyttelsen av komponenten fordi funksjonene som benyttes av sikkerhetsmekanismene som chiffrering eller autentisering kaller operatøren ifølge oppfinnelsen.

11 Patentkrav 1. Fremgangsmåte for Montgomery modulær multiplikasjon med kongruens n eksekvert av en kryptografisk komponent som virker på en databuss med b bits, hvor fremgangsmåten mottar to inngangsoperatorer A+k 1.n og B+k 2.n, hvor A og B er mindre enn n, k 1 og k 2 er tilfeldige heltall, hvor fremgangsmåten beregner et midlertidig resultat S som er lik (A+k 1.n).( B+k 2.n).R -1 mod n, hvor R er en potens av grunntallet, R er større enn modulen n, hvor grunntallet er lik 2 b, hvor fremgangsmåten er karakterisert ved at den omfatter minst de følgende trinn: o å generere et pseudotilfeldig tall z, hvor det pseudotilfeldige tallet z beregnes som en funksjon av multiplikasjonens inngående operander A+k 1.n og B+k 2.n; o å addere til det midlertidige resultatet S produktet av tallet z og n. 1 2. Fremgangsmåte ifølge krav 1, karakterisert ved at den omfatter minst de følgende trinn: i. S x 0.y ii. for i fra 0 til t n -1 utføres: a. m i S 0.n mod r b. S x i.y + (m i.n +S)/r iii. iv. m tn S 0.n mod r bestemme et pseudotilfeldig tall z x 0 xor x 1 xor xor x tn xor y 0 xor y 1 xor... xor 2 y tn v. S z.n +( m tn.n + S)/r hvor r betegner grunntallet, t n størrelsen av modulen n i antall maskinord, x og y operandene som skal multipliseres, m i midlertidige koeffisienter, S resultatet av multiplikasjonen, og hvor verdien n er lik n -1 mod r. 3. Fremgangsmåte ifølge krav 2, karakterisert ved at den modulære multiplikasjonen utføres på et høyt grunntall større eller lik 4.

12 4. Fremgangsmåte ifølge krav 1, hvor tallet x dannes av maskinordene x 0, x 1, x tn og tallet y defineres av maskinordene y 0, y 1,..y tn, karakterisert ved at det pseudotilfeldige ordet z er lik x 0 xor x 1 xor xor x tn xor y 0 xor y 1 xor... xor y tn.

13 Adderer Rest

14