NO335894B1 - Anordning og fremgangsmåte for kryptering og dekryptering av en blokk med data - Google Patents

Anordning og fremgangsmåte for kryptering og dekryptering av en blokk med data

Info

Publication number
NO335894B1
NO335894B1 NO20055404A NO20055404A NO335894B1 NO 335894 B1 NO335894 B1 NO 335894B1 NO 20055404 A NO20055404 A NO 20055404A NO 20055404 A NO20055404 A NO 20055404A NO 335894 B1 NO335894 B1 NO 335894B1
Authority
NO
Norway
Prior art keywords
value
module
output
values
substitution
Prior art date
Application number
NO20055404A
Other languages
English (en)
Other versions
NO20055404L (no
Inventor
Pascal Junod
Serge Vaudenay
Original Assignee
Nagravision Sa
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nagravision Sa filed Critical Nagravision Sa
Publication of NO20055404L publication Critical patent/NO20055404L/no
Publication of NO335894B1 publication Critical patent/NO335894B1/no

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Semiconductor Memories (AREA)
  • Facsimile Transmission Control (AREA)
  • Complex Calculations (AREA)

Description

Foreliggende oppfinnelse vedrører en anordning og en fremgangsmåte for kryptering og dekryptering av en blokk med data kjent som et blokkchiffer, der lengden til den innmatede blokken og den utmatede blokken er den samme.
Denne operasjonen styres ved anvendelse av en nøkkel som enten kan ha samme lengde som blokken eller kan ha en annen lengde, som regel en større lengde.
Denne oppfinnelsen vedrører en fremgangsmåte for symmetrisk kryptering/dekryptering, i motsetning til en asymmetrisk fremgangsmåte. Den symmetriske fremgangsmåten er kjennetegnet ved at samme nøkkel anvendes for å kryptere og dekryptere dataene, mens en asymmetrisk fremgangsmåte anvender en første nøkkel for å kryptere og en andre nøkkel for å dekryptere dataene.
Et blokkchiffer som er kalt DON UT (Double Operations with NUT) og som er laget av to parvise perfekte dekorrelasjonsmoduler, er beskrevet av Dong Hyeon Cheon m.fl. i "New block cipher DONUT using pairwise perfect decorrelation", Progress in Cryptology - INDOCRYPT 2000, First International Conference in Cryptology in India, Proceedings, (Springer Verlag, Lecture Notes on Computer Science, vol. 1977),
13. desember 2000, sider 1-9, Calcutta, India, ISBN: 3-540-41452-5.
Velkjente fremgangsmåter er DES (56-bits nøkkel), CAST (128-bits nøkkel), Blowfish (448-bits nøkkel), Twofish (256-bits nøkkel) og Rijndael (også kjent som AES, 256-bits nøkkel). Avhengig av den aktuelle anvendelsen har de sine egne fordeler og ulemper.
Flere patenter er publisert som beskriver disse fremgangsmåtene. US-patentet 5,214,703 beskriver fremgangsmåten kjent as IDEA™, som er basert på en kryp-teringsprosess som består av 8,5 runder for en blokklengde på 64 bit, der hver runde anvender 6 undernøkler avledet fra hovednøkkelen. Kjernen utgjøres av et Lai-Massey-skjema som anvender addisjon modulo 2<16>, multiplikasjon modulo 2<16>+1 og bitvis eksklusiv eller (XOR).
De to hovedkravene til en krypteringsmetode er robusthet mot enhver form for krypto-analyse og beregningshastighet. Én nøkkelfaktor for robustheten oppnås av spred-ningseffekten, dvs. at når én bit endres i inndataene påvirkes alle bifene av utdataene på en uforutsigbar måte.
Beregningshastigheten bestemmes hovedsaklig av typen matematiske og logiske operasjoner som kreves. Mer avanserte operasjoner (divisjon, multiplikasjon) kan forlenge tiden det tar å gjennomføre krypteringsprosessen.
Formålet med denne oppfinnelsen er å foreslå en ny krypteringsmetode som tilbyr et høyt nivå av sikkerhet kombinert med en høy eksekveringshastighet.
Dette målet oppnås med en fremgangsmåte for å kryptere eller dekryptere blokker av data X til Y basert på en hovednøkkel R, der fremgangsmåten anvender flere seriekoblede moduler, der hver modul anvender en undernøkkel RA avledet fra hoved-nøkkelen R, og omfatter de trinn å:
- mate inn minst to initialverdier XOL og XOR,
- blande de minst to verdiene XOL og XOR for å danne en blandet verdi X1,
- frembringe en verdi X2 ved å blande en første del RAH av undernøkkelen RA med verdien X1, - frembringe en verdi X3 ved å anvende verdien X2 på et substitusjonslag, der substitusjonslaget omfatter minst én substitusjonsboks (sbox) og hver substitusjonsboks inneholder minst én tabell med konstanter for hvilken innmatingen tjener
som peker og konstanten det pekes til tjener som utmating,
- frembringe en verdi X4 ved å anvende en spredningsboks av multipermutasjonstypen basert på verdien X3, - frembringe en verdi X5 ved å blande en andre del RAL av undernøkkelen RA med verdien X4,
- frembringe en verdi X6 ved å anvende et substitusjonslag på verdien X5,
- frembringe en verdi X7 ved å blande en første del RAH av undernøkkelen RA med verdien X6, - blande verdien X7 med de minst to initialverdiene XOL og XOR for å frembringe de minst to verdiene X8L og X8R, X8L og X8R som representerer utverdien X8 fra
modulen,
der fremgangsmåten anvender minst to moduler, der for hver modul en ny under-nøkkel RA genereres fra hovednøkkelen R, initialverdiene XO for den første modulen er en delmengde av inndataene X og utverdiene X8L og X8H fra den siste modulen danner utdataene Y, og der fremgangsmåten videre omfatter det trinn å anvende en ortomorf funksjon på minst én av verdiene X8L eller X8R før disse verdiene anvendes på innmatingen XOR og XOL til den neste modulen.
De to hoveddelene av fremgangsmåten er substitusjonslaget og multipermutasjonsmatrisen.
Hensikten med substitusjonslaget er å transformere den innmatede verdien til en utverdi uten en enkel algebraisk relasjon. Det er derfor den raskeste måten er å anvende en oppslagstabell som inneholder konstanter som kan oppnå det forventede forvirringsresultatet.
Siden i denne utførelsesformen inndataene har en lengde på 32 bit, vil antallet konstanter være 2<32>verdier, hver med lengde 32 bit.
I en foretrukket utførelsesform deles inndataene inn i grupper med lengde 8 bit, og på den måten reduseres antallet konstanter til 256 bit-oktetter.
Da blir inndataene med lengde 32 bit eller 64 bit delt inn i bit-oktetter og anvendt på substitusjonsboksen for å oppnå en 8-bits utmating. Inndataene anvendes som adressepeker og konstanten det pekes til er utmatingen.
Avhengig av utførelsen er konstant-tabellene de samme for alle gruppene av de innmatede dataene (32 bit eller 64 bit). I en annen utførelsesform er konstant-tabellene forskjellige for hver gruppe av de innmatede dataene.
Konstantene som lagres i denne tabellen er en fast permutasjon av tall som alle er forskjellige, kodet med et antall bit som er lik tabellens bredde.
Den andre hoveddelen av fremgangsmåten er multipermutasjonsmatrisen. Multipermutasjonsmatrisen er en kvadratisk matrise med den egenskap at hver mulige kvadratiske undermatrise haren determinant som er forskjellig fra null; elementene i matrisen er elementer i et endelig felt. Blandeoperasjonen består av å multiplisere en vektor av innmatede elementer med matrisen, hvilket resulterer i en vektor som er definert som utmatingen.
Kort beskrivelse av figurene
- Figur 1 er et blokkdiagram som illustrerer hovedmodulen i 64-bits versjonen,
- Figur 2 illustrerer hovedprosessen, omfattende et eksempel med to moduler,
- Figur 3 illustrerer den indre delen av hovedmodulen, i 64-bits versjonen,
- Figur 4 er et blokkdiagram som illustrerer hovedmodulen i 128-bits versjonen,
- Figur 5 er et blokkdiagram som illustrerer den ortomorfe funksjonen,
- Figur 6 illustrerer delsystemet for generering av substitusjonsboksen,
- Figur 7 illustrerer den indre delen av hovedmodulen, i 128-bits versjonen,
- Figur 8 illustrerer hovedprosessen, omfattende et eksempel med to moduler i 128-bits versjonen, og
- Figur 9 illustrerer en alternativ utførelse av substitusjonsboksen.
Detaljert beskrivelse av oppfinnelsen
Figur 1 viser skjelettet i fremgangsmåten for kryptering (eller dekryptering), som representerer modulen MOD. Inndataene XO med lengde 64 bit, som er representert av to deler XOL og XOR, hver med lengde 32 bit, blir først blandet i blandeelementet MX for å frembringe verdien X1. Dette blandeelementet har til formål å tilveiebringe en 32-bits avbildning av to ganger 32 bit av data. Dette kan oppnås på forskjellige måter, for eksempel med bruk av en XOR-funksjon, addisjon med modulo eller med bruk av en hvilken som helst gruppelov.
Det neste trinnet er illustrert av blokken f32, som har en 32-bits innmating X1 og en 32-bits utmating X7 og som anvender en undernøkkel RA. En nærmere beskrivelse av denne blokken er gitt i forbindelse med figur 3 (se nedenfor).
Utmatingen X7 fra blokken f32 anvendes på de to blandeblokkene MX, som er koblet til de to inngangene XOL og XOH.
De resulterende dataene X8L og X8R representerer den 64-bits utmatingen X8 fra modulen MOD.
Figur 2 viser hele prosessen som anvender minst to MOD-moduler. Inndataene X blir først anvendt på en splittingsmodul SP, som konverterer de 64-bits inndataene X til to utverdier X0L1 og X0R1, hver med en lengde på 32 bit.
Funksjonen til splittingsmodulen SP kan oppnås på forskjellige måter, for eksempel ved å velge de minst signifikante bit av X0L1 og de mest signifikante bit av X0R1, eller hver oddetallsbit av X0L1 og partallsbit av X0R1. Andre fremgangsmåter for å dele opp inndataene X kan anvendes, så lenge alle bit i X er innbefattet i X0L1 og X0R1.
Utmatingene X0L1 og X0R1 anvendes da som innmatinger til den første modulen MOD1. Denne første modulen behandler dataene mens den anvender en første undernøkkel RA1. Behandlingen av X0L1 og X0R1 er den samme som beskrevet i forbindelse med figur 1. Utmatingen fra denne første modul MOD1 er to utmatinger, X8L1 og X8R1. En ortomorf funksjon blir anvendt på én av disse utmatingene, for eksempel X8L1 som illustrert i figur 2. Utmatingen fra denne ortomorfe funksjonen er angitt som X0L2. Den andre verdien X8R1 oppnådd fra behandlingen i den første modulen MOD1 anvendes som innmating, sammen med utmatingen X0L2 fra den ortomorfe funksjonen, til en andre modul MOD2. Denne andre modulen MOD2 vil behandle sine inndata basert på en andre undernøkkel RA2. Utmatingene fra denne andre modulen er angitt som X8L2 og X8R2 i figur 2. Disse utmatingene settes sammen for å danne de krypterte dataene Y i assembleringsmodulen AS. AS-modulen har samme funksjon som splittingsmodulen SP, men jobber omvendt. Det skal bemerkes at fremgangsmåten for å rekonstruere utmatingen Y kan være forskjellig fra den i splittingsmodulen SP, men målet er det samme. Alle bit av X8L2 og X8R2 bør være representert i utmatingen Y.
Figur 3 viser i detalj funksjonene i blokken f32 i figur 1. Denne blokken tar som innmating 32-bits data X1. Disse dataene deles inn i blokker med lengde 8 bit (X1a, X1 b, X1 c, X1 d) i en splittingsblokk SPMU, også angitt som X1' i figur 3. Denne blokken har samme funksjon som den beskrevet i forbindelse med blokken SP i figur 2. Hver av disse 8-bits blokkene blandes med en første del RAH av undernøkkelen RA for å oppnå en verdi X2a, X2b, X2c, X2d (som danner verdien X2). Denne blandeoperasjonen er den samme som den beskrevet i forbindelse med MX-blokken i figur 1.
Genereringen av de to undernøklene RAH og RAL skjer i splittingsmodulen SP. Denne modulen har samme funksjon som den beskrevet i forbindelse med figur 1.
Hver av verdiene X2a til X2d blir anvendt på et substitusjonslag som innbefatter minst én substitusjonsboks (sbox), der hver substitusjonsboks inneholder en tabell med konstanter for hvilken innmatingen tjener som peker og konstanten det pekes til tjener som utmating. Utdataene er angitt som X3a, X3b, X3c, X3d (som danner verdien X3) i figur 3.
Én fremgangsmåte for å generere denne konstant-tabellen er å anvende en pseudo-tilfeldig generator. Man bør fjerne alle dupliserte verdier, slik at hver konstant i denne
tabellen er unik.
Disse dataene mates inn til en spredningsboks Mu4 av (4,4)-multipermutasjonstypen. Utdataene fra denne spredningsboksen er henholdsvis angitt som X4a, X4b, X4c, X4d (som danner verdien X4). Spredningsboksen består av å multiplisere innvektoren (X4a, X4b, X4c, X4d) med en kvadratisk 4x4-matrise Mu4, med elementer som tilhører det endelige feltet med 256 elementer; disse elementene betegnes Mu(i, j), der i refererer til rad-indeks og j til kolonneindeks. resultatet av multiplikasjonen av vektoren (X4a, X4b, X4c, X4d) med matrisen Mu4 er en vektor (Y4a, Y4b, Y4c, Y4d), der disse verdiene er oppnådd som følger:
Her angir"+" addisjon i det endelige feltet og "<*>" dets multiplikasjon. Elementene i Mu4 er valgt slik at antallet utregninger som er nødvendig for å evaluere de fire uttrykkene over minimeres. Antallet multiplikasjoner med konstanten "1" (heretter kalt "identiteter") er derfor valgt så høyt som mulig. ;Dataene blandes deretter med en andre del RAL av undernøkkelen RA for å frembringe en verdi X5a, X5b, X5c, X5d (som danner verdien X5). ;Hver av verdiene X5a til X5d anvendes da på en substitusjonsblokk eller -boks (sbox) for å frembringe en verdi X6a, X6b, X6c, X6d (som danner verdien X6). Disse verdiene blandes med en første del RAH av undernøkkelen RA for å frembringe nye verdier X7a, X7b, X7c, X7d (som danner verdien X7). ;Deretter settes verdiene X7a, X7b, X7c, X7d sammen for å danne utdataene X7 i assembleringsmodulen AS, som beskrevet i forbindelse med figur 2. Disse dataene svarer til utdataene X7 fra blokk f32 i figur 1. ;Under krypteringsprosessen deles hovednøkkelen R inn i flere undernøkler, én for hver MOD-modul. I eksempelet i figur 3 anvendes den første undernøkkelen RA1 i kombinasjon med modulen MOD1, og den andre undernøkkelen RA2 anvendes i kombinasjon med modulen MOD2. ;For å frembringe dataene X basert på dataene Y og nøkkelen R anvendes samme fremgangsmåte som beskrevet i forbindelse med figur 3, bare med den forskjellen at undernøklene genereres i omvendt rekkefølge. Undernøkkelen RA2 blir da anvendt på den første modulen MOD1 mens undernøkkelen RA1 blir anvendt på den andre modulen MOD2. ;Ifølge det generelle prinsippet for denne oppfinnelsen er ikke antallet seriekoblede MOD-moduler begrenset til to moduler. For å oppnå en god robusthet har erfaring vist at 9 runder er optimalt for å oppnå et resultat som kan kalles en krypterings-prosess. Dette antallet kan utvides til 12 eller flere for å øke robustheten. ;Figur 4 illustrerer en utførelsesform av modulen MOD64 beregnet for behandling av 128-bits data. Innmatingene XOLL og XOLR blandes i blandeelementet MX og danner utverdien X1L, og på samme måte blandes verdiene XORL og XORR og danner verdien X1R. ;Det neste trinnet er illustrert med laget f64, som har to 32-bits innmatinger X1L og X1R og to 32 bits utmatinger X7L og X7R, og som anvender en undernøkkel RA. En nærmere beskrivelse av denne blokken er gitt med henvisning til figur 7 (se nedenfor). ;Hver av disse utmatingene blir blandet med to inndata til modulen MOD64 i samme blandeelement MX. I vårt eksempel blir utverdien X7L blandet henholdsvis med innmatingene XOLL og XOLR, og utverdien X7R blir blandet henholdsvis med innmatingene XORI og XORR. Andre blandekombinasjoner er også mulige, for eksempel å blande utverdien X7L med XOLL og XORR i et kryssmønster. ;Figur 5 er en illustrasjon av en utførelsesform av den ortomorfe funksjonen. Inndataene er angitt som Zl og utdataene er angitt som ZO. Datalengden er ikke interessant for denne funksjonen. Inndataene Zl blir først delt inn i to verdier ZL og ZR med samme lengde i splittingsmodulen SP. Deretter blir de to verdiene blandet i det såkalte blandeelementet MX, og utmatingen fra dette elementet anvendes på assembleringsmodulen AS. Den andre verdien ZR anvendes direkte på assembleringsmodulen AS uten å bli modifisert. Denne modulen tar to innmatinger og kombi-nerer disse dataene for å generere utverdien ZO. Denne modulen fungerer omvendt i forhold til splittingsmodulen SP. Det spesielle med denne utførelsesformen er at inn matingene til assembleringsmodulen krysses i forhold til utmatingene fra splittingsmodulen SP. Den høyre utmatingen ZR fra splittingsmodulen SP anvendes som den venstre innmatingen til assembleringsmodulen AS, og den venstre utmatingen ZL fra splittingsmodulen SP, etter å ha blitt blandet med den andre utmatingen fra splittingsmodulen SP, anvendes som den høyre innmatingen til assembleringsmodulen AS. ;Når det gjelder substitusjonsboksen finnes det flere forskjellige alternativer for å utføre denne funksjonen. Vi har tidligere beskrevet en fremgangsmåte som ute-lukkende er basert på en konstant-tabell. Det første trinnet for å redusere tabellens størrelse er å dele opp innmatingen og anvende denne delen på en mye mindre tabell. ;Eksempelet i figur 3 viser en substitusjonsboks som jobber med 8-bits data, og så-ledes innbefatter en tabell med 256 konstanter. ;I enkelte tilfeller, spesielt dersom minnestørrelsen er et hensyn, søkes andre alternativer. Et slikt alternativ er beskrevet med henvisning til figurene 6 og 9. ;Figur 6 viser et delsystem Cbox i denne substitusjonsboksen, som har én innmating C delt inn i to innmatinger CL og CR, samt to utmatinger CL' og CR'. ;Hjertet i dette delsystemet er modulen TA, som omfatter en konstant-tabell med 2(<n/2>) elementer, hvert med lengde n/2-bits, der n er lengden til innverdien C. ;For en innmating med en lengde på 8 bit omfatter konstant-tabellen 16 (2<4>) elementer, hver med en lengde på 4 bit. Disse elementene er tilfeldig generert, tatt hensyn til at hvert element skal ha en unik verdi. ;Figur 9 beskriver hvordan å anvende modulen Cbox for å bygge opp en substitusjonsboks. Den innmatede verdien Cl blir først delt inn i to deler CL1 og CR1 og anvendt på den første modulen, Cboxl, som beskrevet i forbindelse med figur 3. Utmatingen fra modulen Cboxl blir sendt til den neste modulen, Cbox2. Én av utmatingene fra den første modulen, i dette tilfellet CL1', blir før den anvendes på den andre modulen, Cbox2, sendt til en ortomorf funksjon OR. ;Utførelsen av substitusjonsboksen anvender generelt minst to Cbox-delsystemer, hvert med sin egen konstant-tabell TA. I det illustrerte eksempelet er substitusjonsboksen bygget opp med bruk av tre Cbox-delsystemer, og utmatingene fra det siste delsystemet har ingen ortomorf funksjon OR i denne utførelsesformen. ;Figur 7 er et alternativ til utførelsesformen illustrert i figur 3, beregnet for 64-bits data. Utførelsen for 32 bit er i hovedsak duplisert for å behandle 64-bits data. Inndataene X1 deles inn i en vektor med 8-bits elementer (X1a til X1h) og behandles på samme måte som beskrevet i forbindelse med figur 3. Hovedforskjellen ligger i spredningsboksen Mu8, som er en kvadratisk matrise med 8x8 elementer i det endelige feltet med 256 elementer. Elementene i matrisen betegnes Mu8(i, j), der i refererer til radindeks og j til kolonneindeks. For en innvektor (X3a X3h) gir multiplikasjon med matrisen Mu8 utvektoren (Y3a Y3h) på følgende måte ("+" er addisjon og "<*>" er multiplikasjon i det endelige feltet):
Figur 8 illustrerer den fulle prosessen som kjører to runder i MOD64-modulen. Splittingsmodulen SP deler opp de 128-bits inndataene X i fire deler, nemlig X0LL1, X0LR1, X0RL1 og X0RR1 (som danner verdien XO). To deler av resultatet fra modulen MOD64-1 blir anvendt på en ortomorf funksjon OR før de anvendes som innmating til den neste modulen, MOD64-2.
Plasseringen av den ortomorfe funksjonen OR i forhold til utmatingene fra modulen MOD64 er ikke avgjørende. Man kan velge de to venstre utmatingene eller de to høyre utmatingene avhengig av utførelsen av denne fremgangsmåten.
Utmatingen Y oppnås direkte fra den siste MOD64-modulen, uten bruk av en ortomorf funksjon OR i noen av disse utmatingene.
Dersom flere enn to MOD64-moduler anvendes, plasseres den ortomorfe funksjonen OR mellom hver MOD64-modul. Selv om i den foretrukne utførelsesformen plasseringen av den ortomorfe funksjonen OR er den samme uavhengig av modul-nummeret, kan i en annen utførelsesform plasseringen av denne ortomorfe funksjonen OR endres slik at den er koblet til en annen utmating fra MOD64-modulen.

Claims (11)

1. Fremgangsmåte for å kryptere eller dekryptere blokker av data X til Y basert på en hovednøkkel R, der fremgangsmåten anvender minst to seriekoblede hoved-moduler (MOD), der hver hovedmodul (MOD) anvender en undernøkkel (RA) avledet fra hovednøkkelen (R), og omfatter de trinn med å: - mate inn minst to initialverdier XOL og XOR, - blande de minst to verdiene XOL og XOR for å danne en blandet verdi X1, - frembringe en verdi X2 ved å blande en første del RAH av undernøkkelen RA med verdien X1, - frembringe en verdi X3 ved å anvende verdien X2 på et substitusjonslag, der substitusjonslaget omfatter minst én substitusjonsboks (sbox), og hver substitusjonsboks inneholder en tabell med konstanter for hvilken innmatingen tjener som peker og konstanten det pekes til tjener som utmating, - frembringe en verdi X4 ved å anvende en spredningsboks av multipermutasjonstypen basert på verdien X3, - frembringe en verdi X5 ved å blande en andre del RAL av undernøkkelen RA med verdien X4, - frembringe en verdi X6 ved å anvende en substitusjonsboks eller -lag på verdien X5, - frembringe en verdi X7 ved å blande en første del RAH av undernøkkelen RA med verdien X6, - blande verdien X7 med de minst to initialverdiene XOL og XOR for å frembringe minst to verdier X8L og X8R, der de minst to verdiene X8L og X8R representerer en utverdi X8 fra modulen, der for hver hovedmodul (MOD) genereres en ny undernøkkel (RA) fra hoved-nøkkelen (R), idet initialverdiene XOL og XOR for en første modul er en delmengde av inndata X, og utverdiene X8L og X8H fra en siste modul danner utdata Y, og der fremgangsmåten erkarakterisert vedat den videre omfatter trinnet med å anvende en ortomorf funksjon på minst én av verdiene X8L eller X8R før disse verdiene anvendes på innmatingene XOR og XOL til en neste hovedmodul.
2. Fremgangsmåte ifølge krav 1, der inndataene har en lengde på 64 bit, og disse inndataene X deles inn i to initialverdier XOL og XOH med en lengde på 32 bit, og der de to utverdiene X8L og X8H danner utdataene Y.
3. Fremgangsmåte ifølge krav 1, der inndataene har en lengde på 128 bit, og disse inndataene X deles inn i fire initialverdier XOLL, XOLR, XORL og XORR med en lengde på 32 bit, og der de fire utverdiene X8LL, X8LR, X8RL og X8RR danner de 128-bits utdataene Y, idet en første del X1L av verdien X1 oppnås ved å blande verdien XOLL med XOLR, og den andre delen X1R av verdien X1 oppnås ved å blande verdien XORL med XORR, og idet en første del X7L av verdien X7 blandes med to av de fire initialverdiene XOLL, XOLR, XORL og XORR, og den andre delen X7R av verdien X7 blandes med de to andre delene av initialverdiene XOLL, XOLR, XORL og XORR.
4. Fremgangsmåte ifølge krav 1, der substitusjonslaget innbefatter flere substitu-sjonsbokser (sbox), hver boks med 8-bits innmating og 8-bits utmating, og der innmatingen til substitusjonslaget deles inn i deler med en lengde på 8 bit.
5. Fremgangsmåte ifølge krav 4, der tabellen med konstanter (TA) i substitusjonsboksen (sbox) inneholder en unik utmating for en gitt innmating.
6. Fremgangsmåte ifølge krav 4, der tabellen med konstanter er den samme for hver substitusjonsboks (sbox).
7. Fremgangsmåte ifølge krav 4, der tabellen med konstanter er forskjellig for hver substitusjonsboks (sbox).
8. Fremgangsmåte ifølge krav 4, der tabellen med konstanter i substitusjonsboksen (sbox) endres ved hver kjøring av hovedmodulen.
9. Fremgangsmåte ifølge krav 1, der datalengden er 64 bit, og spredningsboksen er en matrisefunksjon Y3 = M<*>X4, der argumentet M definerer 4<*>4 addisjoner, multiplikasjoner med en konstant, eller identiteter, hvorav minst én rad og én kolonne innbefatter tre identiteter.
10. Fremgangsmåte ifølge krav 9, der de gjenværende rader og gjenværende kolonner i argumentet M innbefatter to identiteter.
11. Fremgangsmåte ifølge krav 1, der datalengden er 128 bit, og spredningsboksen er en matrisefunksjon Y3 = N<*>X3, der argumentet N definerer 8<*>8 addisjoner, multiplikasjoner med en konstant, eller identiteter, hvorav minst én rad og én kolonne innbefatter syv identiteter.
NO20055404A 2003-05-23 2005-11-15 Anordning og fremgangsmåte for kryptering og dekryptering av en blokk med data NO335894B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP03011696A EP1480371A1 (en) 2003-05-23 2003-05-23 Device and method for encrypting and decrypting a block of data
PCT/EP2004/050854 WO2004105305A1 (en) 2003-05-23 2004-05-19 Device and method for encrypting and decrypting a block of data

Publications (2)

Publication Number Publication Date
NO20055404L NO20055404L (no) 2005-11-18
NO335894B1 true NO335894B1 (no) 2015-03-16

Family

ID=33041000

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20055404A NO335894B1 (no) 2003-05-23 2005-11-15 Anordning og fremgangsmåte for kryptering og dekryptering av en blokk med data

Country Status (27)

Country Link
US (1) US7499542B2 (no)
EP (2) EP1480371A1 (no)
JP (1) JP4663635B2 (no)
KR (1) KR101050670B1 (no)
CN (2) CN1795638A (no)
AP (1) AP1969A (no)
AT (1) ATE427598T1 (no)
AU (1) AU2004240359B2 (no)
BR (1) BRPI0411139A (no)
CA (1) CA2525591C (no)
CY (1) CY1109170T1 (no)
DE (1) DE602004020333D1 (no)
DK (1) DK1627489T3 (no)
EA (1) EA008183B1 (no)
ES (1) ES2323702T3 (no)
HK (1) HK1082335A1 (no)
HR (1) HRP20090287T1 (no)
IL (1) IL171933A (no)
MA (1) MA27811A1 (no)
MX (1) MXPA05012481A (no)
NO (1) NO335894B1 (no)
NZ (1) NZ543947A (no)
PL (1) PL1627489T3 (no)
PT (1) PT1627489E (no)
SI (1) SI1627489T1 (no)
WO (1) WO2004105305A1 (no)
ZA (1) ZA200509275B (no)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7152165B1 (en) * 1999-07-16 2006-12-19 Intertrust Technologies Corp. Trusted storage systems and methods
AU6104800A (en) 1999-07-16 2001-02-05 Intertrust Technologies Corp. Trusted storage systems and methods
KR100639764B1 (ko) 2005-04-25 2006-10-30 이병관 블록암호화방법
US20090144561A1 (en) * 2005-07-11 2009-06-04 Davidson Jack W Method and System for Software Protection Using Binary Encoding
US7602906B2 (en) * 2005-08-25 2009-10-13 Microsoft Corporation Cipher for disk encryption
DE602006008600D1 (de) * 2006-06-29 2009-10-01 Incard Sa Verfahren zur Diversifizierung eines Schlüssels auf einer Chipkarte
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5485694B2 (ja) * 2006-11-17 2014-05-07 イルデト・コーポレート・ビー・ヴイ ホワイトボックス実施のための暗号化方法
KR101580879B1 (ko) * 2007-05-22 2015-12-30 이르데토 비.브이. 암호 키 데이터를 갱신하는 시스템 및 방법, 서버 시스템, 암호 키 갱신들을 제공하는 방법 및 컴퓨터 판독가능 기록매체
US20080304664A1 (en) * 2007-06-07 2008-12-11 Shanmugathasan Suthaharan System and a method for securing information
CN101321058B (zh) * 2007-06-07 2010-12-15 管海明 一种用于编码和译码数字消息的方法和***
US8369515B2 (en) * 2010-03-18 2013-02-05 Chiou-Haun Lee Cryptographic method of multilayer diffusion in multidimension
CN103546282B (zh) * 2012-07-12 2016-10-05 黄宜豊 具有三维运算、反馈控制与动态替换盒设计的加密方法
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN104022872B (zh) * 2014-04-09 2015-03-25 广州赛意信息科技有限公司 数据加密方法
EP3674952B1 (en) * 2015-03-26 2022-06-15 Nagravision S.A. Method and system for searching for at least a specific datum in a user unit
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
RU2632119C9 (ru) * 2016-06-02 2017-11-22 Андрей Валерьевич Менячихин Устройство для построения ортоморфизмов, использующее парные разности

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4850019A (en) * 1985-11-08 1989-07-18 Nippon Telegraph And Telephone Corporation Data randomization equipment
JP3225440B2 (ja) * 1990-05-18 2001-11-05 アスコム テック エージー デジタル信号ブロックの変換装置およびその使用方法
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5727062A (en) * 1995-07-06 1998-03-10 Ritter; Terry F. Variable size block ciphers
US5675653A (en) * 1995-11-06 1997-10-07 Nelson, Jr.; Douglas Valmore Method and apparatus for digital encryption
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
US6269163B1 (en) * 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
JP3679936B2 (ja) * 1998-11-27 2005-08-03 東芝ソリューション株式会社 暗復号装置及び記憶媒体
US6694025B1 (en) * 1999-06-02 2004-02-17 Koninklijke Philips Electronics N.V. Method and apparatus for secure distribution of public/private key pairs
JP2003509881A (ja) * 1999-09-03 2003-03-11 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 記録された電子出版資料からのマスター鍵の復元方法
JP3499810B2 (ja) * 2000-03-06 2004-02-23 株式会社東芝 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
KR100855890B1 (ko) * 2000-08-03 2008-09-03 코닌클리케 필립스 일렉트로닉스 엔.브이. 대칭-키 암호에 대한 선형 변환

Also Published As

Publication number Publication date
DE602004020333D1 (de) 2009-05-14
JP2007527028A (ja) 2007-09-20
PT1627489E (pt) 2009-06-17
AU2004240359B2 (en) 2009-08-27
AU2004240359A1 (en) 2004-12-02
ZA200509275B (en) 2007-03-28
CA2525591A1 (en) 2004-12-02
NO20055404L (no) 2005-11-18
CA2525591C (en) 2012-10-09
CN1795638A (zh) 2006-06-28
IL171933A0 (en) 2006-04-10
ES2323702T3 (es) 2009-07-23
CN101944992A (zh) 2011-01-12
BRPI0411139A (pt) 2006-07-11
WO2004105305A9 (en) 2006-01-05
MA27811A1 (fr) 2006-03-01
KR101050670B1 (ko) 2011-07-19
PL1627489T3 (pl) 2009-08-31
CN101944992B (zh) 2012-03-21
HK1082335A1 (en) 2006-06-02
MXPA05012481A (es) 2006-01-30
NZ543947A (en) 2007-05-31
AP2005003445A0 (en) 2005-12-31
EA008183B1 (ru) 2007-04-27
EP1627489A1 (en) 2006-02-22
EA200501623A1 (ru) 2006-06-30
HRP20090287T1 (en) 2009-07-31
ATE427598T1 (de) 2009-04-15
IL171933A (en) 2010-11-30
US20040247117A1 (en) 2004-12-09
DK1627489T3 (da) 2009-07-13
WO2004105305A1 (en) 2004-12-02
US7499542B2 (en) 2009-03-03
AP1969A (en) 2009-03-11
EP1627489B1 (en) 2009-04-01
EP1480371A1 (en) 2004-11-24
CY1109170T1 (el) 2014-07-02
SI1627489T1 (sl) 2009-08-31
JP4663635B2 (ja) 2011-04-06
KR20060014417A (ko) 2006-02-15

Similar Documents

Publication Publication Date Title
NO335894B1 (no) Anordning og fremgangsmåte for kryptering og dekryptering av en blokk med data
EP1052611B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
Li et al. Meet-in-the-middle attacks on 10-round AES-256
CN102594545B (zh) 信息处理装置
NO337611B1 (no) Fremgangsmåte og anordning for omforming av data
WO2012132623A1 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
AU2007232123B2 (en) Robust cipher design
EP1934883A2 (en) Method and system for block cipher encryption
CN110784307A (zh) 轻量级密码算法scenery实现方法、装置及存储介质
JP2005513541A (ja) Aesアルゴリズム用のプログラマブルデータ暗号化エンジン
EA008677B1 (ru) Способ генерирования псевдослучайной последовательности
Abdulwahed Chaos-Based Advanced Encryption Standard
US8204219B2 (en) Cryptographic method and apparatus for enhancing computation performance of a central processing unit
CN116635923A (zh) 结合aes和sm4加密和解密的高速电路
Thirer A pipelined FPGA implementation of an encryption algorithm based on genetic algorithm
CN114969847B (zh) 一种基于数据地址混合加密的存储器加密电路
Shwetha et al. A Comparison Of Symmetric Key Encryption Algorithms In Secure Cloud Storage Using Ehrs
JP3748184B2 (ja) 秘話通信装置
CA2421142C (en) Data transformation device and recording medium having recorded thereon a program for implementing the same
JP3017725B2 (ja) データ変換装置
JP5223245B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP2005092249A (ja) 暗復号装置及び記憶媒体
JP2001215874A (ja) 副鍵生成装置およびそのプログラム記録媒体
KR20050019086A (ko) 진보된 암호화 표준(aes)의 하드웨어 암호 엔진

Legal Events

Date Code Title Description
CHAD Change of the owner's name or address (par. 44 patent law, par. patentforskriften)

Owner name: NAGRAVISION SA, CH

MM1K Lapsed by not paying the annual fees