NO333209B1 - Blokkryptogram-apparat som benytter hjelpetransformasjon - Google Patents

Blokkryptogram-apparat som benytter hjelpetransformasjon Download PDF

Info

Publication number
NO333209B1
NO333209B1 NO20015461A NO20015461A NO333209B1 NO 333209 B1 NO333209 B1 NO 333209B1 NO 20015461 A NO20015461 A NO 20015461A NO 20015461 A NO20015461 A NO 20015461A NO 333209 B1 NO333209 B1 NO 333209B1
Authority
NO
Norway
Prior art keywords
data
unit
transformation
key
input
Prior art date
Application number
NO20015461A
Other languages
English (en)
Other versions
NO20015461L (no
NO20015461D0 (no
Inventor
Junko Nakajima
Masayuki Kanda
Shiho Moriai
Kazumaro Aoki
Mitsuru Matsui
Toshio Tokita
Original Assignee
Mitsubishi Electric Corp
Nippon Telegraph & Telephone
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 Mitsubishi Electric Corp, Nippon Telegraph & Telephone filed Critical Mitsubishi Electric Corp
Publication of NO20015461D0 publication Critical patent/NO20015461D0/no
Publication of NO20015461L publication Critical patent/NO20015461L/no
Publication of NO333209B1 publication Critical patent/NO333209B1/no

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/122Hardware reduction or efficient architectures
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Slot Machines And Peripheral Devices (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Input Circuits Of Receivers And Coupling Of Receivers And Audio Equipment (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Chair Legs, Seat Parts, And Backrests (AREA)
  • Materials For Medical Uses (AREA)
  • Communication Control (AREA)
  • Burglar Alarm Systems (AREA)
  • Lock And Its Accessories (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Complex Calculations (AREA)
  • Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
  • Studio Circuits (AREA)
  • Prostheses (AREA)
  • Stereo-Broadcasting Methods (AREA)

Abstract

Det er ønskelig å dele en krets mellom en krypteringsenhet (200) og en dekrypteringsenhet (500). En normal datatransformeringsenhet (FL) 251 og en in- vers datatransformeringsenhet (FL"1) 273 er anbrakt ved punktsymmetri i en ikke- lineære datatransformeringsenhet (220), og en normal datatransformeringsenhet (FL) 253 og en invers datatransformeringsenhet (FL"1) 271 er anordnet med punktsymmetri på den ikke-lineære datatransformeringsenhet (220). Krypteringsenheten (200) og dekrypteringsenheten (500) kan derfor utformes ved å bruke de samme kretser.

Description

Foreliggende oppfinnelse vedrører et apparat og en fremgangsmåte for datatransformasjon og lagringsmedia i hvilke fremgangsmåter for datatransformasjon blir registrert, for kryptering, dekryptering og datadiffusjon for å beskytte digital informasjon på informasjonskommunikasjoner.
MATSUI M., New block encryption algorithm MISTY, Proceedings of Fast Software Encryption Workshop, 1997.01.01, sider 54-68, beskriver et system for kryptering av data bestående av en blokk-kryptering med en 128-bits nøkkel, en 64 bits datablokk og med et variabelt antall runder for genereringen av nøkkeldata.
KANDA M. m.fl. E2-a new 128-bit block cipher, IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, 2000.01.01, sider 48-59, viser et system med en 128-bits krypteringsblokk.
Fig. 25 representerer en krypteringsfunksjon som benyttes i DES beskrevet i "Gendai Ango Riron (moderne krypteringsteori)" (The Instistute of Electronics, Information and Communication Engineers, publisert 15. november 1997, side 46).
Som vist på fig. 25 blir det benyttet åtte S-blokker. Disse åtte S-blokkene er innbyrdes forskjellige tabeller. Hver tabell mater ut 4-bits data fra 6-bits inngangsdata.
Fig. 26 viser en ikke-lineær transformasjonsfunksjon som er beskrevet i "Specification of E2 - a 128-bit Block Cipher" (Nippon Telegraph and Telephone Corporation, publisert 14. juni 1998, side 10).
Som vist på fig. 26, består hver S-funksjonsenhet av åtte S-blokker.
Konvensjonelle krypteringsinnretninger bruker mange S-blokker. Siden noen koder er utstyrt med innbyrdes forskjellige tabeller, blir lagerbruken øket sammenlignet med de som er utstyrt med bare én S-blokk. Siden andre koder på den annen side benytter bare én S-blokk, minskes kodens sikkerhet.
Som vist på fig. 7, når en normal datatransformeringsenhet (FL) 250 er innsatt i krypteringsenheten, er det nødvendig å tilveiebringe en invers datatransformeringsenhet (FL<1>) 270 i en dekrypteringsenhet for å dekryptere kodetekstene eller chiffertekstene. Siden den vanlige datatransformeringsenhet (FL) 250 og den inverse datatransformeringsenhet (FL<1>) 270 er innbyrdes forskjellige kretser, skapes det et problem ved at krypteringsenheten og dekrypteringsenheten ikke kan tilveiebringe den samme konfigurasjon.
Ved generering av utvidelsesnøkler er videre komplekse operasjoner nød-vendige for å generere de utvidelsesnøkler som har høyest sikkerhet. Det er et annet problem, i tilfelle med generering av utvidelsesnøkler, at antallet biter med nøkkeldata som skal innsettes som en innledende verdi, bør være fast.
Hovedtrekkene ved oppfinnelsen er angitt i de selvstendige patentkrav. Ytterligere trekk ved oppfinnelsen fremgår av de uselvstendige krav.
Foreliggende oppfinnelse tar sikte på å tilveiebringe systemer hvor kretser for kryptering og dekryptering er de samme, og hvor kretsområdet, programstørrelsen og lagerbruken som benyttes til ikke-lineær transformasjonsberegning, kan reduseres, og hvor utvidelsesnøklene videre kan genereres ved å bruke en enklere konfigurasjon.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i datatransformeringsapparatet som har en databehandlingsenhet for innmating av nøkkeldata og for å utføre minst enten kryptering av data eller dekryptering av data,
inndeler databehandlingsenheten data som skal transformeres, i første data (L) og andre (R) og utfører en datatransformering, og
databehandlingsenheten innbefatter:
en normal datatransformeringsenhet (FL) for transformering av de første data (L); og
en invers datatransformeringsenhet (FL<1>) for transformering av de andre data (R) ved å utføre en invers transformering av en transformering av den normale datatransformeringsenhet (FL).
Databehandlingsenheten ovenfor innbefatter en første inngangsport, en annen inngangsport, en første utgangsport og en annen utgangsport,
den ovennevnte normal datatransformeringsenhet (FL) mater ut transformerte data til den første inngangsport i databehandlingsenheten, og
den ovennevnte inverse datatransformeringsenhet (FL<1>) transformerer datautgangen fra den annen utgangsport i databehandlingsenheten og mater ut transformerte data.
Den ovennevnte databehandlingsenhet omfatter en første inngangsport, en annen inngangsport, en første utgangsport og en annen utgangsport,
den normale datatransformeringsenhet (FL) mater ut transformerte data til den annen inngangsport i databehandlingsenheten, og
den inverse datatransformeringsenhet (FL<1>) transformerer datautgangen fra den første utgangsport i databehandlingsenheten og mater ut transformerte data.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at det har en databehandlingsenhet for innmating av nøkkeldata og for å utføre minst enten kryptering av data eller dekryptering av data,
at databehandlingsenheten innbefatter en ikke-lineær transformeringsenhet for å utføre en ikke-lineær transformering av data,
at den ikke-lineære transformeringsenhet omfatter:
en første transformeringsenhet (si) for å mate inn en del av de data som skal transformeres, som første deldata, for å transformere de første deldata ved å bruke en transformeringstabell T som mater inn data, transformerer en verdi av dataene til en annen verdi og mater ut dataene, og for å mate ut transformerte data; og
en annen transformeringsenhet (S2) for å mate inn minst en annen del av dataene som skal transformeres, som andre deldata, for å transformere de andre deldata ved en transformering som benytter transformeringstabellen T og en operasjon for den annen del, og for mate ut transformerte data.
Den ovennevnte første transformeringsenhet (si) mater inn data yi til transformeringstabellen T for å mate ut data s-i(y-i) og mater ut dataene s-i(y-i) som data z1= s^), og
den annen transformeringsenhet (S2) mater ut data y2til transformeringstabellen T for å mate ut data s-ifø), utfører rotasjonsforskyvning av s-ifø) for å mate ut (rot (Si(y2))), og mater ut dataene (rotSi(y2))) som data z2= rot (si(y2)).
Ovennevnte databehandlingsenhet innbefatter videre en tredje transformeringsenhet (S3) og en fjerde transformeringsenhet (S4) for henholdsvis å mate inn deldata som er forskjellige fra de første deldata, og de andre deldata som tredje deldata, og for å mate inn deldata som er forskjellige fra de første deldata, de andre deldata og de tredje deldata som fjerde deldata, å transformere de tredje deldata og de fjerde deldata ved hjelp av transformasjonen som benytter transformeringstabellen T og en operasjon for tredje del og en operasjon for fjerde del, som begge er forskjellige fra operasjonen for annen del av den annen transformeringsenhet (s2), og for å mate ut transformerte data.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i datatransformeringsapparatet som har en databehandlingsenhet for innmating av nøkkeldata og for å utføre minst enten kryptering av data eller dekryptering av data,
innbefatter databehandlingsenheten:
en delfelttransformeringsenhet for å mate inn data som skal transformeres, å anta dataene som et element av et felt, å transformere dataene ved hjelp av en invers elementkrets ved å benytte et delfelt av feltet og å mate ut transformerte data; og
en affintransformeringsenhet for vektorrom GF(2)<n>på GF(2), tilveiebrakt ved minst én av en tidligere runde og en senere runde i delfelttransformeringsenheten, for å anta data på GF(2)<n>som skal transformeres som et element av GF(2)<n>som naturlig svarer til hverandre.
Delfelttransformeringsenheten ovenfor omfatter bare flere N/2-bitoperasjons-enheter for lik inndeling av data X som har N (N: liketall) biter i øvre 2/N-bitdata Xi og nedre N/2-bitdata X0slik at X = X0+ (5Xi (X0, X-i: elementer i delfeltet, (5: et element i feltet), og for å frembringe data Y ved henholdsvis å operere på øvre N/2-bitdata Yi og nedre N/2-bitdata Y0slik at Y = Y0+ PY^= 1/(x0+ pX^ (hvor Y = 0, når X = 0).
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i datatransformeringsapparatet som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av databehandlingsenheten, og levering av nøkkeldataene til databehandlingsenheten,
databehandlingsenheten omfatter en ikke-lineær transformeringsenhet som har flere kaskadekoplede runder hvor hver av de flere runder mater inn en utvidelses-nøkkel og utfører en ikke-lineær transformasjon,
nøkkelgenereringsenheten omfatter en nøkkelforskyvningsenhet for å mate inn minst én av nøkkeldataene og data generert fra nøkkeldataene, og avhengig av nøkkeldataene, å utføre en rotasjonsmessig forskyvning ved hjelp av et forutbestemt antall biter Z-i, Z2Zm (hvor hver av i, j, k er én av 1 til m, Zk- Zj= I x (Zi+i- Z{) = I x B (I er et heltall, B = Zi+i- Zj)), og generere en forlengelsesnøkkel for hver av de flere runder i den ikke-lineære transformeringsenhet fra de nøkkeldata på hvilke den rotasjonsmessige forskyvning er utført, og
nøkkelforskyvningsenheten innbefatter:
et rotasjonsskiftregister for å utføre en rotasjonsmessig forskyvning av (Zi+i- Zi) biter (B biter) i én operasjon; og
en styreenhet for å operere rotasjonsskiftreg iste ret 1 gang på de nøkkeldata på hvilke rotasjonsforskyvningen er utført med Z\biter, for å utføre rotasjonsforskyvningen
med (Zi+i- Zi) biter (B biter), å få rotasjonsskiftregisteret til å generere nøkkeldataene som er utført på rotasjonsforskyvningen med Zi+ibiter, og
å operere rotasjonsskiftregisteret I gang(er) på nøkkeldataene, på hvilke rotasjonsforskyvningen er utført med Zj+ibiter for å utføre rotasjonsforskyvningen med I x (Zi+i - Zi) biter (I x B biter), og å få rotasjonsskiftregisteret til å generere nøk-keldataene som har utført rotasjonsforskyvningen med Zi+2biter.
Ovennevnte rotasjonsskiftregister er en krets som utfører en rotasjonsforskyvning av Zi+1- Zjbiter (B biter) med 1 klokkesyklus på en driftsklokke levert for å drive rotasjonsskiftregisteret.
Rotasjonsskiftkretsen ovenfor innbefatter en velger for å velge én av
Bi = 8xJi+1 (Ji = et heltall større enn 0) biter og B2= 8xJ2+1 (J2= et heltall større enn 1, det er ingen relasjon mellom Ji og J2, nemlig er J-i * J2eller J-i = J2) biter som (Zi+1- Zi) biter (B biter).
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i datatransformeringsapparatet som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av databehandlingsenheten, og for å levere nøkkeldataene til databehandlingsenheten,
databehandlingsenheten innbefatter en ikke-lineær transformeringsenhet med flere kaskadekoplede runder, hvor hver av de flere runder mater inn en forlengelses-nøkkel og utfører en ikke-lineær transformasjon,
nøkkelgenereringsenheten innbefatter en nøkkelforskyvningsenhet for rotasjonsmessig forskyvning av nøkkeldata med et forutbestemt antall biter (B biter) suksessivt ved generering av forlengelsesnøkkelen som skal leveres til hver av de flere runder i den ikke-lineære transformeringsenhet, og for å generere en forlengel-sesnøkkel som brukes for hver av de flere runder i den ikke-lineære transformeringsenhet, fra nøkkeldata,
nøkkelforskyvningsenheten genererer ikke forlengelsesnøkkelen ved å ignorere visse data blant de nøkkeldata som er rotasjonsmessig forskjøvet med B biter suksessivt og genererer forlengelsesnøkkelen fra andre gjenværende data.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i datatransformeringsapparatet som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av databehandlingsenheten, og for å levere nøkkeldataene til databehandlingsenheten,
omfatter nøkkelgenereringsenheten;
en første G-bits nøkkeltransformeringsenhet for å mate inn G-bits nøkkeldata som har G biter, å transformere de G-bits nøkkeldata og mate ut første G-bits transformerte nøkkeldata som har G biter; og
en annen G-bits transformeringsenhet for å mate inn de første G-bits transformerte nøkkeldata som er matet ut fra den første G-bits nøkkeltransformerings-enhet, å transformere de G-bits nøkkeldata, og mate ut andre G-bits transformerte nøkkeldata, og
nøkkelgenereringsenheten, i det tilfelle hvor nøkkelgenereringsenheten
mater inn G-bits nøkkeldata K, mater inn G-bits nøkkeldataene K til den første G-bits nøkkeltransformeringsenhet for å transformere og mate ut G-bits transformerte nøkkeldata Ki matet ut fra den første G-bits nøkkeltransformeringsenhet som G-bits transformerte nøkkeldata, og
nøkkelgenereringsenheten, i tilfelle at nøkkelgenereringsenheten mater inn 2G-bits nøkkeldata K, genererer G-bits nøkkeldata fra de 2G-nøkkelsdata K, mater inn G-bits nøkkeldataene som er generert til den første G-bits nøkkeltransformeringsenhet for å transformere og mate ut første G-bits transformerte nøkkeldata K-i, mater inn de første G-bits transformerte nøkkeldata Ki til den annen G-bits transformeringsenhet for å transformere, og mater ut andre G-bits transformerte nøkkeldata K2, sammenkjeder de første G-bits transformerte nøkkeldata Ki som er matet ut fra den første G-bits nøkkeltransformeringsenhet og de andre G-bits transformerte nøkkeldata K2matet ut fra den annen G-bits transformeringsenhet, og mater ut et sammenkjedet resultat som transformerte 2G-bits nøkkeldata (Ki, K2).
Den ovennevnte første G-bits nøkkeltransformeringsenhet omfatter:
en ikke-lineær transformeringsenhet som har to runder for å utføre ikke-lineær transformering av de G-bits nøkkeldata; og
en logisk operasjonsenhet for å utføre en logisk operasjon for halvveis transformerte G-bits nøkkeldata matet ut fra en annen runde i den ikke-lineære transformeringsenhet og de G-bits nøkkeldata matet til den første G-bits nøkkeltrans-formeringsenhet.
Ovennevnte nøkkelgenereringsenhet omfatter videre en bitlengde-transformeringsenhet for å omforme Q-bits nøkkeldata til de 2G-bits nøkkeldata i det tilfelle at de Q-bits (G<Q<2G) nøkkeldata er matet inn.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i et datatransformeringsapparat som har: en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data; og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av databehandlingsenheten og for å levere nøkkeldataene til databehandlingsenheten, innbefatter datatransformeringsapparatet en ikke-lineær funksjonsenhet (F) som har: en nøkkelfunksjonsenhet for å utføre en logisk operasjon på data som skal transformeres og på nøkkeldataene;
en S-funksjonsenhet for omforming av data som skal transformeres til andre data; og
en P-funksjonsenhet for å utføre en logisk operasjon blant stykker av data som skal transformeres, og
nøkkelfunksjonsenheten er plassert mellom S-funksjonsenheten og P-funksjonsenheten i den ikke-lineære funksjonsenhet (F).
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i et datatransformeringsapparat som har: en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av datagenereringsenheten, og levere nøkkel-dataene til databehandlingsenheten, innbefatter datatransformeringsapparatet en ikke-lineær funksjonsenhet (F) som omfatter: en nøkkelfunksjonsenhet for å utføre en logisk operasjon på data som skal transformeres og på nøkkeldataene;
en S-funksjonsenhet for å omforme data som skal transformeres, til andre data; og
en P-funksjonsenhet for å utføre en logisk operasjon blant stykker av data som skal transformeres, og
nøkkelfunksjonsenheten er plassert enten før S-funksjonsenheten og P-funksjonsenheten eller etter S-funksjonsenheten og P-funksjonsenheten i den ikke-lineære funksjonsenhet (F).
Den ovennevnte S-funksjonsenhet omfatter:
en første transformeringsenhet (si) for å mate inn en del av data som skal transformeres, som første deldata, å transformere de første deldata ved å bruke en transformeringstabell T, som mater inn data, transformerer en verdi av dataene til en annen verdi og mater ut dataene, og å mate ut transformerte data; og
en annen transformeringsenhet (S2) for å mate minst en annen del av dataene som skal transformeres, som andre deldata, å transformere de andre deldata ved en transformasjon som benytter transformeringstabellen T og en operasjon for den annen del, og å mate ut transformerte data.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i et datatransformeringsapparat som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, innbefatter datatransformeringsapparatet
en ikke-lineær funksjonsenhet (F) som innbefatter en P-funksjonsenhet som utfører en logisk operasjon blant stykker av data som skal transformeres, og
P-funksjonsenheten mater inn åtte stykker med 4n-bits data (n er et heltall større enn 1) Zi, z2 z8, og innbefatter: en krets for å utføre en XOR-operasjon på minst to av de fire datastykker zi, z2, z3, z4for å oppnå et 4n-bits operasjonsresultat U-i;
en krets for å utføre en XOR-operasjon på minst to av de fire data datastykker z5, z6, z7, zafor å tilveiebringe et 4n-bits operasjonsresultat U2;
en krets for å utføre en XOR-operasjon på U1og U2for å frembringe et 4n-bits operasjonsresultat U3;
en rotasjonskrets for å utføre en rotasjonsforskyvning på U-i; og
en krets for å utføre en XOR-operasjon på utgangen fra rotasjonskretsen og U3for å frembringe et 4n-bits operasjonsresultat U4, og
datatransformeringsapparatet deler henholdsvis U3og U4i fire datastykker og mater ut åtte stykker med n-bits data z'1, z'2z'8.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data,
inndeler databehandlingsprosessen data som skal transformeres, i første data (L) og andre data (R) og utfører datatransformering, og databehandlingsprosessen innbefatter: en normal datatransformeringsprosess (FL) for å transformere de første data (L); og
en invers datatransformeringsprosess (FL<1>) for å transformere de andre data (R) ved å utføre en invers transformering av en transformering av den normale datatransformeringsprosess (FL).
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data,
innbefatter databehandlingsprosessen en ikke-lineær transformeringsprosess for å utføre en ikke-lineær transformering av data,
den ikke-lineære transformeringsprosess innbefatter:
en første transformeringsprosess (si) for å mate inn en del av dataene som skal transformeres som første deldata, å transformere de første deldata ved å bruke en transformasjonstabell T, som mater inn data, transformerer en verdi av dataene til en annen verdi og mater ut dataene, og for å mate ut transformerte data; og
en annen transformeringsprosess (s2) for å mate inn minst en annen del av dataene som skal transformeres, som andre deldata, å transformere de andre deldata ved en transformasjon som benytter transformeringstabellen T og en operasjon for å den annen del, og å mate ut transformerte data.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering, for å utføre en databehandlingsprosess for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, omfatter databehandlingsprosessen: en delfelt-transformeringsprosess for å mate inn data som skal transformeres, å anta dataene som et element i et felt, å transformere dataene ved hjelp av en invers elementkrets ved å benytte et delfelt av feltet, og å mate ut transformerte data; og
en affintransformeringsprosess for et vektorrom GF(2)<n>på GF(2), tilveiebrakt ved minst én av en tidligere runde og senere runde i delfelt-transformeringsenheten for å anta data på GF(2)<n>som skal transformeres som et element av GF(2)<n>som naturlig samsvarer.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse, erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for å gjennomføre enten krypterting av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og å levere nøkkeldataene til behandlingsprosessen,
innbefatter databehandlingsprosessen en ikke-lineær transformeringsprosess som har flere kaskadekoplede runder, idet hver av de flere runder mater inn en forlengelsesnøkkel og utfører en ikke-lineær transformasjon,
nøkkelgenereringsprosessen innbefatter en nøkkelforskyvningsprosess for å mate inn minst enten nøkkeldataene eller de data som er generert fra nøkkeldataene og er avhengige av nøkkeldataene, å uføre en rotasjonsforskyvning med et forutbestemt antall biter Z-i, Z2 Zm(hvor hver av i, j, k er én av 1 til m, Zk- Zj= lx(Zi+1- Zi) (I er et heltall, B = Zi+1- Zi)), og å generere en forlengelsesnøkkel for hver av de flere runder i den ikke-lineære transformeringsprosess fra de nøkkeldata på hvilke rotasjonsforskyvningen er utført, og
nøkkelforskyvningsprosessen omfatter:
en rotasjonsforskyvningsprosess; og
en styreprosess for å operere rotasjonsforskyvningsprosessen 1 gang på de nøkkeldata på hvilke rotasjonsforskyvningen er utført med Zi biter, å utføre rotasjonsforskyvningen med (Zi+i- Zi) biter (B biter), å få rotasjonsforskyvningsprosessen til å generere de nøkkeldata som er utført med rotasjonsforskyvningen av Zi+1biter, og å operere rotasjonsforskyvningsprosessen I ganger på de nøkkeldata, på hvilke rotasjonsforskyvningen er utført av Zi+ibiter, for å utføre rotasjonsforskyvningen med lxZi+i- Zj) biter (IxB biter), og å få rotasjonsforskyvningsprosessen til å generere de nøkkeldata som er utført ved rotasjonsforskyvningen av Zi+2biter.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for innmating av nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data for å utføre en databehandlingsprosess for å mate inn nøkkeldata og utføre minste enten krypterting av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og for å levere nøkkeldataene til databehandlingsprosessen,
innbefatter databehandlingsprosessen en ikke-lineær transformasjon som har flere kaskadekoplede runder, hvor hver av de flere runder mater inn en forlengelses-nøkkel og utfører en ikke-lineær transformasjon,
nøkkelgenereringsprosessen innbefatter en nøkkelforskyvningsprosess for rotasjonsmessig forskyvning av nøkkeldata med et forutbestemt antall biter (B biter) suksessivt ved generering av forlengelsesnøkkelen som skal leveres til hver av de flere runder i den ikke-lineære transformeringsprosess, og å generere en forlengelses-nøkkel brukt for hver av de flere runder i den ikke-lineære transformeringsprosess, fra nøkkeldata som er rotasjonmessig forskjøvet,
nøkkelforskyvningsprosessen ikke genererer forlengelsesnøkkelen ved å ignorere visse data blant nøkkeldataene som er rotasjonsmessig forskjøvet med B biter suksessivt, og genererer forlengelsesnøkkelen fra andre gjenværende data.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og for å levere nøkkel-dataene til databehandlingsprosessen,
innbefatter nøkkelgenereringsprosessen:
en første G-bits nøkkeltransformeringsprosess for å mate inn G-bits nøkkeldata som har G biter, å transformere de G-bits nøkkeldata, og å mate ut første G-bits transformerte nøkkeldata som har G biter; og
en annen G-bits transformeringsprosess for å mate inn de første G-bits transformerte nøkkeldata som er matet ut fra den første G-bits nøkkeltransformerings-
prosess, å transformere de G-bits nøkkeldata, og å mate ut andre G-bits transformerte nøkkeldata, og
nøkkelgenereringsprosessen, når nøkkelgenereringsenheten mater inn G-bits nøkkeldata K, mater inn de G-bits nøkkeldata K til den første G-bits nøkkeltransforme-ringsenhet, transformerer de G-bits nøkkeldata K og mater ut G-bits transformerte nøkkeldata Ki matet ut fra den første G-bits nøkkeltransformeringsprosess som G-bits transformerte nøkkeldata, og
nøkkelgenereringsprosessen, når nøkkelgenereringsenheten mater inn 2 G-bits nøkkeldata K, genererer G-bits nøkkeldata fra de 2G-bits nøkkeldata K, mater inn de G-bits nøkkeldata som er generert, til den første G-bits nøkkeltransformeringsenhet for å transformere og mate ut de første G-bits transformerte nøkkeldata K-i, mater inn de første G-bits transformerte nøkkeldata Ki til den annen G-bits transformasjons-prosess for å transformere og mate ut andre G-bits transformerte nøkkeldata K2, sammenkjeder de første G-bits transformerte nøkkeldata Ki som er matet ut fra den første G-bits nøkkeltransformeringsenhet og de andre G-bits transformerte nøkkeldata K2som er matet ut fra den annen G-bits transformeringsenhet, og mater ut et sammenkjedet resultat som transformerte 2G-bits nøkkeldata (K^ K2).
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess, for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og å levere nøkkeldataene til databehandlingsprosessen, idet fremgangsmåten for datatransformering omfatter en ikke-lineær funksjonsprosess (F) som innbefatter: en nøkkelfunksjonsprosess for å utføre en logisk operasjon på data som skal transformeres og på nøkkeldataene;
en S-funksjonsprosess for å omforme data som skal transformeres til andre data; og
en P-funksjonsprosess for å utføre en logisk operasjon blant stykker av data som skal transformeres, og
nøkkelfunksjonsprosessen er plassert mellom S-funksjonsprosessen og P-funksjonsprosessen i den ikke-lineære funksjonsprosess (F).
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess, for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og for å levere nøkkel-dataene til databehandlingsprosessen, innbefatter fremgangsmåten en ikke-lineær funksjonsprosess (F) som har: en nøkkelfunksjonsprosess for å utføre en logisk operasjon på data som skal transformeres og på nøkkeldataene;
en S-funksjonsprosess for å omforme data som skal transformeres, til andre data; og
en P-funksjonsprosess for å utføre en logisk operasjon blant stykker av data som skal transformeres, og
nøkkelfunksjonsprosessen er plassert enten før S-funksjonsprosessen og P-funksjonsprosessen eller etter S-funksjonsprosessen og P-funksjonsprosessen i den ikke-lineære funksjonsprosess (F).
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i et datatransformeringsapparat som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, omfatter databehandlingsapparatet: en første inngangsport;
en annen inngangsport;
en første utgangsport;
en annen utgangsport;
en ikke-lineær transformeringsenhet for å utføre datakryptering og data-dekryptering under anvendelse av samme algoritme;
en første normal inngangsdata-transformeringsenhet for å transformere data matet inn til den første inngangsport; og
en annen invers utgangsdata-transformeringsenhet for å mate inn data utmatet fra den annen utgangsport og for å utføre en invers transformasjon av en transformasjon av den første normale inngangsdata-transformeringsenhet.
Ovennevnte ikke-lineære transformasjonsenhet omfatter en algoritme som gjør at første inngangsdata og andre utgangsdata blir identiske, og andre inngangsdata og første utgangsdata blir identiske i tilfelle av:
innmating av første inngangsdata fra den første inngangsport,
innmating av andre inngangsdata fra den annen inngangsport,
utførelse av ikke-lineære transformasjoner på de første inngangsdata og de andre inngangsdata ved å bruke nøkkeldata for kryptering, og generering av første transformerte data og andre transformerte data,
å mate ut de første transformerte data fra den første utgangsport,
å mate ut de andre transformerte data fra den annen utgangsport,
å mate inn de første transformerte data fra den annen inngangsport,
å mate inn de andre transformerte data fra den første inngangsport,
å utføre ikke-lineære transformasjoner på de første transformerte data og de andre transformerte data ved å bruke nøkkeldata for dekryptering, og å generere første utgangsdata og andre utgangsdata,
å mate ut de første utgangsdata fra den annen utgangsport, og å mate ut de andre utgangsdata fra den første utgangsport.
Den ovennevnte databehandlingsenhet omfatter videre:
en annen normal inngangsdata-transformeringsenhet for å transformere data som mates til den annen inngangsport;
en første invers utgangsdata-transformeringsenhet for å mate inn datautgangen fra den første utgangsport og utføre en invers transformasjon av en transformasjon av den annen normale inngangsdata-transformeringsenhet.
Et datatransformeringsapparat ifølge foreliggende oppfinnelse erkarakterisertved at i et datatransformeringsapparat som har en databehandlingsenhet for å mate inn nøkkeldata og utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsenhet for å generere nøkkeldata som skal brukes av databehandlingsprosessen, og for å tilføre nøkkeldataene til databehandlingsenheten,
omfatter databehandlingsenheten en ikke-lineær funksjonsenhet (F) for å utføre en ikke-lineær transformasjon av data som skal transformeres, og
nøkkelgenereringsenheten behandler nøkkeldataene som skal leveres til den ikke-lineære funksjonsenhet (F), leverer behandlede nøkkeldata for å foreta en
operasjon med data på en annen del enn den ikke-lineære funksjonsenhet (F) i databehandlingsenheten.
En fremgangsmåte for datatransformering ifølge foreliggende oppfinnelse erkarakterisert vedat i en fremgangsmåte for datatransformering for å utføre en databehandlingsprosess av inngangsnøkkeldata og for utføre minst enten kryptering av data eller dekryptering av data, og en nøkkelgenereringsprosess for å generere nøkkeldata som blir brukt av databehandlingsprosessen og som leverer nøkkel-dataene til databehandlingsprosessen,
innbefatter databehandlingsprosessen en ikke-lineær funksjonsprosess (F) for å utføre en ikke-lineær transformasjon av data som skal transformeres, og
nøkkelgenereringsprosessen behandler de nøkkeldata som skal leveres til den ikke-lineære funksjonsprosess (F), leverer behandlede nøkkeldata for å gjøre beregnede data til en annen del enn den ikke-lineære funksjonsprosess (F) i databehandlingsprosessen .
Foreliggende oppfinnelse erkarakterisert vedet datamaskinlesbart lagrings-medium for å lagre et program som får en datamaskin til å utføre den ovennevnte fremgangsmåte for datatransformering.
Foreliggende oppfinnelse erkarakterisert vedet program som får en datamaskin til å utføre ovennevnte fremgangsmåte for datatransformering.
Kort forklaring av tegningene:
Fig. 1 viser en datatransformeringsenhet for kryptering 100 og en datatransformeringsenhet for dekryptering 400.
Fig. 2 viser betegnelser.
Fig. 3 viser en utførelsesform av en krypteringsenhet 200 eller en dekrypteringsenhet 500. Fig. 4 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 5 viser en utførelsesform av en normal datatransformeringsenhet (FL) 251. Fig. 6 viser en utførelsesform av en invers datatransformeringsenhet (FL<1>) 271. Fig. 7 viser en del av en konvensjonell krypteringsenhet og en konvensjonell dekrypteringsenhet. Fig. 8 viser en del av krypteringsenheten 200 og dekrypteringsenheten 500. Fig. 9 viser den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 257 som er anbrakt ved punktsymmetri. Fig. 10 viser relasjonen mellom den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL"<1>) 271 som er anbrakt ved symmetri-punktet.
Fig. 11 viseren ikke-lineær funksjonsenhet F.
Fig. 12 viser en utførelsesform av en første transformeringsenhet 13 i en S-blokk og en annen transformeringsenhet 14 i en S-blokk.
Fig. 13 viser en utførelsesform av en S-blokk transformeringsenhet 21.
Fig. 14 viser en utførelsesform av en lineær transformeringsenhet 85.
Fig. 15 viser en utførelsesform av en lineær transformeringsenhet 87.
Fig. 16 viser en utførelsesform av en nøkkelgenereringsenhet 300 eller en nøkkelgenereringsenhet 600.
Fig. 17 forklarer operasjoner i en bitlengde-transformeringsenhet 310.
Fig. 18 viser en utførelsesform av et skiftregister A 341.
Fig. 19 viser en utførelsesform av en styretabell for en skiftstyringsenhet 345. Fig. 20 viser operasjoner i skiftregisteret A 341 og et skiftregister B 342. Fig. 21 viser overensstemmelse mellom skiftregisteret A 341, skiftregisteret B 342 og forlengelsesnøkler.
Fig. 22 viser operasjoner i skiftregistrene A 341 til D 344.
Fig. 23 viser overensstemmelse mellom skiftregistrene A 341 til D 344 og forlengelsesnøkler. Fig. 24 viser en datamaskin som er utstyrt med datatransformeringsenheten for kryptering 100 og datatransformeringsenheten for dekryptering 400.
Fig. 25 viser en utførelsesform av krypteringsfunksjonen for DES.
Fig. 26 viser en utførelsesform av den ikke-lineære funksjon for 128 bits blokk-kode E2.
Fig. 27 viser et annet eksempel på S-blokk transformeringsenheter.
Fig. 28 viser en ikke-lineær funksjonsenhet F som er utstyrt med første gjennom fjerde S-blokk transformeringsenheter. Fig. 29 viser en annen ikke-lineær funksjonsenhet F i hvilken en posisjon av nøkkelfunksjonsenheten 25 er flyttet. Fig. 30 viser en annen ikke-lineær funksjonsenhet F i hvilen en posisjon av nøkkelfunksjonsenheten 25 er flyttet.
Fig. 31 viser en annen utførelsesform av en P-funksjonsenhet 30.
Fig. 32 viser en annen utførelsesform av P-funksjonsenheten 30.
Fig. 33 viser utførelsesformer og operasjoner for S-1 til S4 på fig. 31.
Fig. 34 viser et eksempel på ikke-eksistensen av ekvivalente nøkler.
Fig. 35 viser et eksempel på ikke-eksistensen av ekvivalente nøkler.
Fig. 36 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 37 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 38 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 39 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 40 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 41 viser en annen utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 42 viser en utførelsesform hvor enhetene på figurene 39 og 40 er kombinert. Fig. 43 viser en utførelsesform av krypteringsenheten 200 eller dekrypteringsenheten 500, som er vist på fig. 3, ved bruk av den ikke-lineære funksjonsenhet F som er vist på fig. 28. Fig. 44 viser en modifisert utførelsesform av fig. 43 ved bruk av en ikke-lineær funksjonsenhet F' i hvilken nøkkelfunksjonsenheten 25 i den ikke-lineære funksjonsenhet er fjernet. Fig. 45 viser en modifisert utførelsesform av fig. 44 ved sammensmelting av hvitforlengelsesnøklene med forlengelsesnøklene. Fig. 46 viser en modifisert utførelsesform hvor nøkkelfunksjonsenheten 25 er fjernet fra den ikke-lineære funksjonsenhet F, og hvor en forlengelsesnøkkel k blir levert til en XOR-krets 298, når den ikke-lineære funksjonsenhet F er utformet som vist på fig. 29. Fig. 47 viser en modifisert utførelsesform hvor nøkkelfunksjonsenheten 25 er fjernet fra den ikke-lineære funksjonsenhet F, og hvor en ikke-lineær, transformert forlengelsesnøkkel k' blir levert til XOR-kretsen 298, når den ikke-lineære funksjonsenhet F er utformet som vist på fig. 30.
Beste måte til utførelse av oppfinnelsen
Utførelsesform 1
Fig. 1 viser en datatransformeringsenhet for kryptering 100 og en datatransformeringsenhet for dekryptering 400 i denne utførelsesformen.
Datatransformeringsenheten for kryptering 100 er f.eks. en krypteringsinnret-ning som mater ut 128 bits kodetekster fra 128 bits inngangsklartekst. Datatransformeringsenheten for dekryptering 400 er en dekrypteringsinnretning som mater ut 128 bits klartekster fra 128 bits inngangskodetekster. Datatransformeringsenheten for kryptering 100 består av en krypteringsenhet 200 og en nøkkelgenereringsenhet 300. Krypteringsenheten 200 er en databehandlingsenhet for kryptering av klartekst. Nøkkelgenereringsenheten 300 genererer flere (n) 64 bits eller 128 bits forlengelses-nøkler ved å benytte konstanter Vi fra 128 bits, 192 bits eller 256 bits inngangsnøkkel-data, og levere dem til krypteringsenheten 200. Datatransformeringsenheten for dekryptering 400 består av en dekrypteringsenhet 500 og en nøkkelgenereringsenhet 600. Dekrypteringsenheten 500 er en databehandlingsenhet for å dekryptere kodetekster eller chiffertekster. Nøkkelgenereringsenheten 600 er den samme som eller lik den ovennevnte nøkkelgenereringsenhet 300. Siden krypteringsenheten 200 og dekrypteringsenheten 500 videre kan gjennomføre den samme prosedyre, kan de dele én krets eller ett program selv om krypteringsenheten 200 og dekrypteringsenheten 500 er illustrert separat på figurene. Likeledes kan nøkkelgenereringsenhetene 300 og 600 dele én krets eller ett program. Dvs. at én krets eller ett program kan deles av datatransformeringsenheten for kryptering 100 og datatransformeringsenheten for dekryptering 400.
Fig. 2 viser betydninger av betegnelser benyttet på de følgende figurer eller beskrivelser.
På fig. 3 og de etterfølgende figurer blir en venstre halvdel av dataene kalt "venstre data L" og en høyre halvdel av dataene blir kalt "høyredata R". Videre blir de data som mates inn til de ikke-lineære datatransformeringsenheter 210, 220, 230 og 240 kalt "inngangsdata", de interne data i de ikke-lineære datatransformeringsenheter 210, 220, 230 og 240 blir kalt "mellomdata", og data som mates ut fra de ikke-lineære datatransformeringsenheter 210, 220, 230 og 240 blir kalt "utgangsdata". Fig. 3 viser et eksempel på krypteringsenheten 200 eller dekrypteringsenheten 500. Fig. 3 viser en utførelsesform hvor en 6 runders ikke-lineær datatransformeringsenhet 210, en 6 runders ikke-lineær datatransformeringsenhet 220 og en 6 runders ikke-lineær datatransformeringsenhet 230 er kaskadekoplet. Den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 271 er innskutt mellom den 6 runders ikke-lineære datatransformeringsenhet 210 og den 6 runders ikke-lineære datatransformeringsenhet 220. Videre er den normale datatransformeringsenhet (FL) 253 og den inverse datatransformeringsenhet (FL<1>) 273 innskutt mellom den 6 runders ikke-lineære datatransformeringsenhet 220 og den 6 runders ikke-lineære datatransformeringsenhet 230. Inne i den 6 runders ikke-lineære datatransformeringsenhet 210 er 6 runder med ikke-lineære datatransformeringsenheter tilveiebrakt. En ikke-lineær datatransformeringsenhet 280 består f.eks. av en ikke-lineær funksjonsenhet F og en XOR-krets (eksklusiv ELLER-krets) 290.1 tilfelle på fig. 3 er på denne måten 18 runder med ikke-lineære datatransformeringsenheter totalt tilveiebrakt.
Den ikke-lineære datatransformeringsenhet 210 er utstyrt med en første ikke-lineær datatransformeringsenhet 280 og en annen ikke-lineær datatransformeringsenhet 281. For to vilkårlige stykker med inngangsdata, høyre inngangsdata Ro og venstre inngangsdata L0, utfører den førstnevnte den første ikke-lineære transformering av de venstre inngangsdata Lo ved å bruke en første forlengelsesnøkkel k-i, mater ut et XOR-underkastet resultat av utgangsdataene fra den første ikke-lineære transformering og de høyre inngangsdata Ro som de første venstre mellomdata L-i og mater ut de venstre inngangsdata L0som de første høyre mellomdata Ri. Sistnevnte utfører den annen ikke-lineær transformasjon på de første venstre mellom data Ri ved å bruke en annen forlengelsesnøkkel k2, mater ut et XOR-underkastet resultat av utgangsdataene fra den annen ikke-lineære transformering og de første høyre mellomdata Ri som de andre venstre mellomdata L2, og mater ut de første venstre mellomdata Li som de andre høyre mellomdata R2. Den ikke-lineære datatransformeringsenhet 210 hvor den første ikke-lineære datatransformeringsenhet 280 som den sjette ikke-lineære datatransformeringsenhet 285 er kaskadekoplet gjennom, mater ut de endelige høyre mellomdata R6og de venstre mellomdata L6som utgangsdata etter transformering. Fig. 4 viser en konfigurasjon hvor en normal datatransformeringsenhet (FL) 255, en invers datatransformeringsenhet (FL<1>) 275 og en 6 runders ikke-lineær datatransformeringsenhet 240 er tilføyd krypteringsenheten 200 som er vist på fig. 3. Totalt blir datatransformering utført ved hjelp av 24 runder med ikke-lineære datatransformeringsenheter.
Fig. 5 viser den normale datatransformeringsenhet (FL) 251.
Fig. 5 viser at den normale datatransformeringsenhet (FL) 251 inndeler inngangsdata i to datastykker, venstre inngangsdata 51 og høyre inngangsdata 52, utfører logiske operasjoner på begge datastykkene, og genererer utgangsdata fra de venstre utgangsdata 60 og de høyre utgangsdata 61. De venstre inngangsdata 61 blir underkastet en OG-operasjon med en forlengelsesnøkkel 53 og en OG-krets 54, og så blir de OG-underkastede data som er tilbake rotasjonsforskjøvet til venstre (også kalt "sirkelforskjøvet") med 1 bit ved en 1 bits venstre rotasjonsforskyvningsenhet 55. De forskjøvne data blir underkastet en eksklusiv ELLER-operasjon med de høyre inngangsdata 52 og en eksklusiv ELLER-krets (XOR-krets) 56. Utangen fra XOR-kretsen 56 blir høyre utgangsdata 61 og underkastes en ELLER-operasjon med en forlengelsesnøkkel 57 ved en ELLER-krets 58. Det ELLER-underkastede resultat blir underkastet en XOR-operasjon med de venstre inngangsdata 51 og en XOR-krets 59 for å generere venstre utgangsdata 60.
Fig. 6 viser den inverse datatransformeringsenhet (FL<1>) 271.
Fig. 6 viser at den inverse datatransformeringsenhet (FL<1>) 271 inndeler inngangsdata i to datastykker, venstre inngangsdata 71 og høyre inngangsdata 72, ut-fører logiske operasjoner for begge datastykkene, og genererer utgangsdata fra venstre utgangsdata 80 og høyre utgangsdata 81.
De høyre inngangsdata 72 blir underkastet en ELLER-operasjon med en for-lengelsesnøkkel 73 ved en ELLER-krets (OR-krets) 74 og så blir de ELLER-underkastede data underkastet en XOR-operasjon med venstre inngangsdata 71 ved en XOR-krets 75. Utgangsdataene fra XOR-kretsen 75 blir så venstre utgangsdata 80, og blir underkastet en OG-operasjon med en forlengelsesnøkkel 76 ved en OG-krets (AND-krets) 77. Etter det blir det OG-underkastede resultat rotasjonsmessig venstreforskjøvet med 1 bit ved en 1 -bits venstre rotasjonsforskyvningsenhet 78, og de forskjøvne data blir underkastet en XOR-operasjon med høyre inngangsdata 72 ved en XOR-krets 79. Utgangen fra XOR-kretsen 79 blir høyre utgangsdata 81.
Den normale datatransformeringsenhet (FL) 251 som er vist på fig. 5, og den inverse datatransformeringsenhet (FL<1>) 271 som er vist på fig. 6, utfører motsatte operasjoner av hverandre. Ved å bruke den samme forlengelsesnøkkel kan følgelig inngangsdataene X på fig. 5 fremskaffes som utgangsdata X på fig. 6 ved å la utgangsdata Y på fig. 5 være inngangsdata Y på fig. 6.
Den relasjon hvor inngangsdata til én enhet kan fremskaffes som utgangsdata fra den annen enhet ved å gjøre utgangsdataene fra den ene enhet være inngangsdata til den annen, blir kalt en relasjon mellom normale og inverse transformasjoner. Den normale datatransformeringsenhet (FL) 251 og den inverse data-transformeringenhet (FL<1>) 271 er kretser som realiserer en slik relasjon mellom normale og inverse transformasjoner.
Både den 1 -bits venstre rotasjonsforskyvningsenhet 55 på fig. 5 og den 1-bits venstre rotasjonsforskyvningsenhet 78 på fig. 6 utfører venstre forskyvning, imidlertid kan begge utføre høyreforskyvning. Videre kan den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL"<1>) 271 være én av de andre utførelsesformer så lenge de bevarer relasjonen mellom normale og inverse transformasjoner. Antallet forskyvninger kan f.eks. endres. Dessuten kan en OG-krets med "ikke"-operasjon, en ELLER-krets med "ikke"-operasjon og/eller en eksklusiv ELLER-krets med "ikke"-operasjon være tilføyet. I det følgende er det nemlig vist definisjoner av OG-kretsen med "ikke"-operasjon, eller -kretsen med "ikke"-operasjon, og eksklusiv ELLER-kretsen med "ikke"-operasjon, representert ved henholdsvis "andn", "orn" og xorn".
x andn y : (ikke x) og y
x orn y : (ikke x) eller y
x xorn y : (ikke x) og y
Noen nyere CPU'er er forsynt med kommandoer "og", "eller" og "eksklusiv eller" innbefattende "ikke". Disse kommandoene kan utføres med samme betydning som "og", "eller", og "eksklusiv eller".
Fig. 7 viser en konvensjonell krypteringsenhet 201 og en konvensjonell dekrypteringsenhet 501.
Den konvensjonelle krypteringsenhet 201 er utstyrt med to normale datatransformeringsenheter FL. Dekrypteringsenheten bør således være utstyrt med to inverse datatransformeringsenheter FL"<1>for å utføre inverse operasjoner. Siden krypteringsenheten vanligvis har en annen konfigurasjon enn dekrypteringsenheten, kan derfor krypteringsenheten og dekrypteringsenheten ikke dele den samme krets.
Som vist på fig. 8 er imidlertid, i den foreliggende utførelsesform, den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 271 anbrakt side om side i krypteringsenheten 200, slik at dekrypteringsenheten som har den samme konfigurasjon, kan utføre dekryptering. For eksempel blir de høyre data R transformert av den normale datatransformeringsenhet (FL) 251 for å få venstre data L', og de venstre data L blir transformert av den inverse datatransformeringsenhet (FL"<1>) 271 for å få høyre data R'. I dette tilfelle kan de høyre data R fremskaffes ved å mate inn de venstre data L' til den inverse datatransformeringsenhet (FL<1>) 271, og de venstre data L kan fremskaffes ved å mate inn de høyre data R' til den normale datatransformeringsenhet (FL) 251.
Som beskrevet ovenfor kan krypteringsenheten 200 og dekrypteringsenheten 500 implementeres med samme konfigurasjon, og krypteringsenheten 200 og dekrypteringsenheten 500 kan dele kretsen.
Fig. 9 viser en utførelsesform hvor den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL"<1>) 271 er anordnet med punktsymmetri på den ikke-lineære datatransformeringsenhet 280.
Når den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 271 på denne måten er anbrakt med punktsymmetri på den ikke-lineære datatransformeringsenhet 280, kan krypteringen og dekrypteringen utføres ved å bruke den samme konfigurasjon.
Fig. 10 viser overensstemmelsen mellom datatransformeringsenheten (FL) og den inverse datatransformeringsenheten (FL<1>) anordnet ved punktsymmetri.
Som vist på fig. 10 er den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 271, i tilfelle på fig. 3, anbrakt med punktsymmetri på den 6 runders ikke-lineære datatransformeringsenhet 220.
På fig. 3, 4, 8 og 9 kan datatransformeringsenheten (FL) og den inverse datatransformeringsenheten (FL<1>) erstattes med hverandre. På fig. 3, 4, 8 og 9 kan dessuten de høyre data R og de venstre data L erstattes med hverandre.
Fig. 36 viser en utførelsesform hvor krypteringsenheten 200 består av den 6 runders ikke-lineære datatransformeringsenhet 210 og den 6 runders ikke-lineære datatransformeringsenhet 220 og den 6 runders ikke-lineære datatransformeringsenhet 230.
Den 6 runders ikke-lineære datatransformeringsenhet 210, den 6 runders ikke-lineære datatransformeringsenhet 220 og den 6 runders ikke-lineære datatransformeringsenhet 230 er kretser som kan brukes til kryptering og dekryptering.
Her består en normal/invers datatransformeringsenhet 211 av den 6 runders ikke-lineære datatransformeringsenhet 210 den normale datatransformeringsenhet (FL) 250 og den inverse datatransformeringsenhet (FL"<1>) 271. Den normale/inverse datatransformeringsenhet er en krets som kan brukes til både kryptering og dekryptering. Den normale/inverse datatransformeringsenhet er nemlig en normal/invers transformeringskrets hvor inngangsdataene til enheten kan fremskaffes som utgangsdataene fra den annen enhet ved å la utgangsdataene fra enheten være inngangsdata til den annen enhet.
En normal/invers datatransformeringsenhet 221 består også av den 6 runders ikke-lineære datatransformeringsenhet 220, den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL"<1>) 273.
I tillegg består en normal/invers datatransformeringsenhet 231 av den 6 runders ikke-lineære datatransformeringsenhet 230, den normale datatransformeringsenhet (FL) 253 og den inverse datatransformeringsenhet (FL"<1>) 275.
Krypteringsenheten 200 er konfigurert ved å kaskadekople disse normale/inverse datatransformeringsenheter 211, 221 og 231. Denne krypteringsenheten 200 kan også brukes som dekrypteringsenheten 500.
Hvis et sett med den 6 runders ikke-lineære datatransformeringsenhet 210, den 6 runders ikke-lineære datatransformeringsenhet 220, den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 271 dessuten antas å være en ikke-lineær datatransformeringsenhet 1210, er den ikke-lineære datatransformeringsenhet 1210 en krets som kan brukes til kryptering og dekryptering. Her består en normal/invers datatransformeringsenhet 1211 av den ikke-lineære datatransformeringsenhet 1210, den normale datatransformeringsenhet (FL) 250 og den inverse datatransformeringsenhet (FL<1>) 273.
Hvis et sett med den 6 runders ikke-lineære datatransformeringsenhet 220, den 6 runders ikke-lineære datatransformeringsenhet 230 og den normale datatransformeringsenhet (FL) 253, og den inverse datatransformeringsenhet (FL<1>) 273 videre antas å være en ikke-lineær datatransformeringsenhet 1220, så består en normal/invers datatransformeringsenhet 1221 av den ikke-lineære datatransformeringsenhet 1220, den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) 275.
De normale/inverse datatransformeringsenheter 1211 og 1221 kan benyttes som krypteringsenheten.
Hvis videre et sett med de 6 runders ikke-lineære datatransformeringsenheter 210 til 230 antas å være en ikke-lineær datatransformeringsenhet 2210, så er den ikke-lineære datatransformeringsenhet 2210 en krets som kan brukes til både kryptering og dekryptering.
Her danner den ikke-lineære datatransformeringsenhet 2210, den normale datatransformeringsenhet (FL) 250 og den inverse datatransformeringsenhet (FL<1>) 275 en normal/invers datatransformeringsenhet 2211.
Den normale/inverse datatransformeringsenhet 2211 kan brukes som dekrypteringsenhet.
Som beskrevet ovenfor kan krypteringsenheten 200 eller dekrypteringsenheten 500 være utformet ved å kaskadekople flere normale/inverse datatransformeringsenheter.
I krypteringsenheten 200 eller dekrypteringsenheten 500 kan videre den normale/inverse datatransformeringsenhet være formet hierarkisk ved å neste den normale/inverse datatransformeringsenhet inne i den normale/inverse datatransformeringsenhet.
Fig. 37 viser et tilfelle hvor krypteringsenheten 200 og dekrypteringsenheten har den samme konfigurasjon, innbefattende den 6 runders ikke-lineære datatransformeringsenhet 210.
På fig. 37 innbefatter den 6 runders ikke-lineære datatransformeringsenhet 210 like runder med ikke-lineære datatransformeringsenheter 280, som vist på fig. 3 og 4. Data A blir transformert til data A' ved hjelp av en første innmating til en normal datatransformeringsenhet 256, idet dataene A' blir matet inn til en første inngangsport 261, dataene A' matet fra den første inngangsport 261, blir matet ut fra en første utgangsport 263 som data A-i'. Data B matet inn fra en annen inngangsport 262 blir videre matet ut fra en annen utgangsport 264 som data B-i. Dataene Bi matet ut fra den annen utgangsport 264, blir transformert til data B-i' ved hjelp av en annen utmatende invers datatransformeringsenhet 279.
Dataene A-T som mates ut fra den første utgangsport 263 på krypteringsenheten 200, blir matet inn til den annen inngangsport 262 på krypteringsenheten 500 som dataene A-T. Dataene B-T som er matet ut fra den annen inverse datatransformeringsenhet 279, blir matet inn til den første normale inngangsdatatransformeringsenhet 256 som data B-T, og matet ut som data B-i.
Den ikke-lineære datatransformeringsenhet 210 mater inn dataene Bi og mater utdataene B. Den ikke-lineære datatransformeringsenhet 210 mater videre inn dataene A-i' og mater ut A'. Den annen utgående inverse datatransformeringsenhet 279 mater inn dataene A' og mater ut dataene A.
På fig. 38 innbefatter den odde ikke-lineære datatransformeringsenhet 219 odde runder med ikke-lineære datatransformeringsenheter 280. Følgelig blir dataene A' som mates inn fra den første inngangsport 261, matet ut fra den annen utgangsport 264 som dataene Ai'. Når dataene Ai' blir transformert av den annen utgående inverse datatransformeringsenhet 279, og matet ut som dataene Ai". Dataene B som mates inn til den annen inngangsport 262, blir videre matet ut fra den første utgangsport 263 som dataene B-i.
Dataene Bi som mates ut fra den første utgangsport 262 på krypteringsenheten 200, blir matet inn til den annen inngangsport 262 på dekrypteringsenheten 500 som dataene Bi. Dataene Ai" som er matet ut fra den annen inverse datatransformeringsenhet 279 i krypteringsenheten 200, blir matet inn til dekrypteringsenheten 500 som dataene Ai" og matet til den første inngående normale datatransformeringsenhet 256.
I tilfellene på fig. 37 og 38 har krypteringsenheten 200 og dekrypteringsenheten 500 den samme konfigurasjon og utfører kryptering og dekryptering. Fig. 39 viser et tilfelle hvor den annen inngående normale datatransformeringsenhet 257 er anordnet ved den annen inngangsport 262, og den første utgående inverse datatransformeringsenhet 278 er anordnet ved den første utgangsport 263. Fig. 40 viser et tilfelle hvor den første inngående inverse datatransformeringsenhet 276 er anordnet ved den første inngangsport 261, og den annen utgående normale datatransformeringsenhet 259 er anordnet ved den annen utgangsport 264. Fig. 41 viser et tilfelle hvor de normale/inverse datatransformeringsenheter 256, 258 er anordnet ved de venstre inn/ut-porter 261, 263, og de inverse datatransformeringsenheter 277, 279 er anordnet ved de høyre inn/ut-porter 262, 264.
Fig. 42 viser et tilfelle hvor figurene 39 og 40 er kombinert.
Et annet tilfelle kan implementeres ved å kombinere figurene 37 og 39, som ikke er vist på figuren. Videre kan figurene 38 og 39 kombineres. Den 6 runders (like runder) ikke-lineære datatransformeringsenhet 210 kan videre erstattes med den odde runders ikke-lineære datatransformeringsenhet 219 på fig. 37, 39 til 42, som ikke er vist på figurene. I tilfellene med figurene 39 til 42 kan krypteringsenheten og dekrypteringsenheten være realisert av den samme konfigurasjon.
Utførelsesform 2
Fig. 11 viser en utførelsesform av en ikke-lineær funksjonsenhet F forden ikke-lineære datatransformeringsenhet 280.
Den ikke-lineære funksjonsenhet F mater inn F-funksjonsinngangsdata 10, utfører en ikke-lineær transformasjon og mater ut F-funksjonsutgangsdata 40. F-funk-sjonsutgangsdataene 10 som har 64 biter, blir inndelt i åtte stykker med data og behandles i enheten med 8 biter. Hvert 8 bits datastykker blir matet til hver av åtte eksklusiv ELLER-kretser 12 i en nøkkelfunksjonsenhet 25, underkastet en eksklusiv ELLER-operasjon med en forlengelsesnøkkel 11, og underkastes ikke-lineær transformasjon ved å bruke erstatning ved en S-funksjonsenhet 20. Ved en P-funksjonsenhet 30 blir så de to 8 bits datastykkene underkastet en eksklusiv ELLER-operasjon med 16 eksklusiv ELLER-kretser 815, og de 64-bits F-funksjonsutgangsdata 40 blir matet ut. I S-funksjonsenheten 20 er det tilveiebrakt fire første S-blokktransformasjonsenheter 13 og fire andre S-blokktransformasjonsenheter 14.
Fig. 12 viser et utførelseseksempel av den første S-blokktransformasjonsenhet 13 og den annen S-blokktransformeringsenhet 14.
Inne i den første S-blokktransformeringsenhet 13 er det anordnet en transformeringstabell T. Transformeringstabellen T lagrer tidligere verdier av 0 til 255 vilkårlig (tilfeldig) svarende til verdiene fra 0 til 255. Transformeringstabellen T mater inn verdier fra 0 til 255 og mater ut den verdien (verdien fra 0 til 255) som svarer til hver verdi. Når f.eks. 1 blir matet inn, mater transformeringstabellen T ut 7. Transformeringstabellen T utfører en ikke-lineær transformasjon bestemt under hensyn til sikkerhet, f.eks. å kontrollere om funksjonen er bijektiv eller ikke, den maksimale differensielle sannsynlighet er tilstrekkelig liten eller ikke, og så videre.
Den annen S-blokktransformeringsenhet 14 innbefatter den første S-blokktransformeringsenhet 13 og en 1-bits venstreroterende forskyvningsenhet 22 (på figuren viser "«<" av "<«1" den venstreroterende forskyvning og "1" viser 1 bit). Den 1-bits venstre rotasjonsforskyvningsenhet 22 utfører venstrerotasjonsforskyvning med 1 bit til en utgang fra den første S-blokktransformeringsenhet 13. Når f.eks. 1 mates inn, mater den første S-blokktransformeringsenhet 13 ut 7, og den 1-bits venstre rotasjonsforskyvningsenhet 22 mater ut 14.
Hvis den første S-blokktransformeringsenhet 13 og den annen S-blokktransformeringsenhet 14 er utformet som vist på fig. 12, kan man oppnå en virkning som er maken til det tilfelle hvor to typer av transformeringstabellen T er tilveiebrakt, selv om det ikke er nødvendig å ha to typer transformeringstabeller T. Ved å innbefatte bare én transformeringstabell T, kan den lagerbruk som er nødvendig for lagring av transformeringstabellen T minskes, og kretsskalaen kan reduseres.
Ved å tilveiebringe en 1-bits høyredreiet forskyvningsenhet ("»>1" i den tredje S-blokktransformeringsenhet 15 på fig. 27), i tillegg til eller istedenfor en 1-bits venstreroterende forskyvningsenhet 22, kan videre en lignende virkning oppnås for et tilfelle hvor en forskjellig transformeringstabell T videre er anordnet. På en annen måte er det også mulig å transformere inngangsdata y ved å bruke transformeringstabellen T etter forskyvning av inngangsdataene y ved hjelp av den 1-bits venstreroterende forskyvningsenhet ("<«1" i den fjerde S-blokktransformeringsenhet 16 på fig. 27) anordnet for inngangsdataene y. Fig. 27 viser tilfeller for s(y), s(y)«<1, s(y)»>1, s(y«<1), men tilfeller med s(y»>1), s(y«<1)<«1), s(y)«<1)»>1, s(y)>»1)«<1, s(y)»>1)»>1 kan også anvendes. Ved å gjøre forskyvningsstørrelsen lik 1 bit, blir den noen ganger mulig å utføre hurtigere enn tilfeller med forskyvning med 3 biter eller i 5 biter idet tilfellet hvor CPU'er osv. bare har 1-bits forskyvningskommando. Når denne forskyvningsprosessen videre blir utført ved hjelp av maskinvare som utfører bare 1-bits forskyvning, blir det noen ganger mulig å utføre den hurtigere. Forskyvningen er videre ikke begrenset til å bli utført med 1 bit, men et vilkårlig antall biter, slik som 2 biter, 3 biter, kan benyttes. Ved å forskyve med et vilkårlig antall biter, bli det noen ganger mulig å oppnå en lignende virkning som å tilveiebringe forskjellige typer tabeller.
Fig. 28 viser en S-funksjonsenhet 20 som benytter de fire første til fjerde S-blokktransformeringsenhetene 13, 14, 15, 16 som er vist på fig. 27.
En annen utførelsesform av P-funksjonsenheten 30 er vist på fig. 31.
Fra 8-bits inngangsdata yi, y2, y3, y4, blir 32-bits data Z-\, Z2, Z3, Z4oppnådd ved henholdsvis å referere til S1, S2, S3, S4, og de blir underkastet en eksklusiv ELLER-operasjon ved en krets 913. Fra 8-bits inngangsdata ys, y6, y7, ys, blir 32 bits data Z5, Z6, Z7, Z8oppnådd ved henholdsvis til å referere til S2, S3, S4, S1, og blir underkastet en eksklusiv ELLER-operasjon ved en krets 916. Dette eksklusiv ELLER-underkastede resultat U2og det tidligere eksklusiv ELLER-underkastede resultat U1blir underkastet en eksklusiv ELLER-operasjon ved en krets 917 for å mate ut z-i', z2', z3', zV. Når det eksklusiv ELLER-underkastede resultat U1fra kretsen 913 blir forskjøvet til venstre med et dataord (byte) (på fig. 31) representerer "<«1" en rotasjonsforskyvning på 1 byte, ikke rotasjonsforskyvning med 1 bit) ved en krets 918. Det forskjøvede resultat bli underkastet en eksklusiv ELLER-operasjon med utgangen fra kretsen 917 for å mate ut z5', z6', z7', z8'.
Som vist i (a) til (d) på fig. 33, er S1 konfigurert bed å bruke den første S-blokktransformeringsenhet 13, S2 blir konfigurert ved å bruke den annen S-blokktransformeringsenhet 14, S3 blir konfigurert ved å bruke den tredje S-blokktransformeringsenhet 15, S4 blir konfigurert ved å bruke den fjerde S-blokktransformeringsenhet 16. De 8 bits utgangsdata fra hver transformeringsenhet blir kopiert fire ganger for å lage 32 bits data, og 32 bits data blir videre maskert for å mate ut bare tre stykker av dataene (24 biter).
Rotasjonsforskyvningen med 1 byte i kretsen 918, er en syklisk forskyvning med en bitenhetslengde (8 biter = 1 byte) som blir behandlet ved hjelp av S-blokken.
Fig. 32 viser P-funksjonsenheten hvis utførelsesform er ekvivalent med fig. 31, men implementeringen er forskjellig.
Fra 8 bits inngangsdata y-i, y2, y3, y4blir 32 bits data Z<\, Z2, Z3, Z4oppnådd ved å slå opp S5, S6, S7, S8, og de blir underkastet en eksklusiv ELLER-operasjon ved en krets 933 for å mate ut et operasjonsresultat A. Fra 8 bits inngangsdata ys, y6, y7, ysblir 32 bits data Z5, Z6, Z7, Z8oppnådd ved å referere til S9, SA, SB, SC, og de blir underkastet en eksklusiv ELLER-operasjon med en krets 936 for å mate ut et operasjonsresultat B. Operasjonsresultatet B blir rotasjonsmessig forskjøvet til høyre med 1 byte (på fig. 32, i likhet med fig. 31, blir forskyvningen utført med en enhets- bitlengde (8 biter = 1 byte) som blir behandlet ved hjelp av S-blokken, ikke 1 bit) ved en krets 937, og operasjonsresultatet B og operasjonsresultatet A blir underkastet en eksklusiv ELLER-operasjon ved en krets 938. Dette operasjonsresultatet C blir rotasjonsmessig forskjøvet oppover (til venstre) med 1 byte ved en krets 939, og operasjonsresultatet C blir også underkastet en eksklusiv ELLER-operasjon med operasjonsresultatet A ved en krets 940. Dette operasjonsresultatet D blir rotasjonsmessig forskjøvet oppover (til venstre) med 2 byte ved en krets 941, og operasjonsresultatet D blir også underkastet en eksklusiv ELLER-operasjon med utgangen fra kretsen 939 ved en krets 942. Dette operasjonsresultatet E blir forskjøvet rotasjonsmessig (til høyre) med 1 byte ved en krets 943, og operasjonsresultatet E blir også underkastet en eksklusiv ELLER-operasjon med utgangen fra kretsen 941 ved en krets 944. Utgangen fra F fra utgangen 944 blir matet ut som z-i', z2, z3,Z4, og utgangen fra kretsen 943 blir matet ut som z5, z$', z7, z8.
S5 og SC er utformet ved å bruke den første S-blokktransformeringsenhet 13 og en logisk forskyvning, S6 og S9 blir utført ved å bruke den annen S-blokktransformeringsenhet 18 og en logisk forskyvning, S7 og SA blir utformet ved å bruke den tredje S-blokktransformeringsenhet 15 og en logisk forskyvning, S8 og SB blir utformet ved å bruke den fjerde S-blokktransformeringsenhet 16 og en logisk forskyvning. Den logiske forskyvning blir brukt for å mate ut 8 bits utgangsdata fra hver transformeringsenhet til et forutbestemt sted i de 32 bits utgangsdata. Den logiske forskyvning er innstilt for å forskyve til venstre ved 0 byte i S5 og SA, 1 byte i S6 og SB, 2 byte i S7 og SC, 3 byte i S8 og S9. Hvis det nemlig antas en 8 bits utgang fra transformeringsenheten som z, kan en 32 bits utgang representeres som [0,0,0,z] (0 viser at hver av åtte biter er 0) i S5 og SA, [0,0,z,0] i S6 og SB, [0,z,0,0] i S7 og SC, [z,0,0,0] i S8 og S9.
Det er mulig å implementere bruk av erstatningstabeller hvis inngang er 8 bits og hvis utgang er 32 bits, som blir beregnet for direkte å frembringe en forutbestemt utgang.
I tilfellene med fig. 31 og 32 kan det være anordnet apparatur som utfører transformasjon ved høyere hastighet enn den transformasjon som brukes for den konvensjonelle E2-kode som er vist på fig. 26, og på hvilken fleksibel implementering videre er mulig.
På fig. 11, når S-blokkene i S-funksjonsenheten 20 er utformet henholdsvis med forskjellige typer S-blokker, er åtte transformeringstabeller T nødvendig. Når S-blokkene derimot er utformet som vist på fig. 12, kan derimot lagerbruken som er nødvendig for lagring av transformeringstabellene T, reduseres til minst halvparten.
Åtte stykker med 8 bits data blir videre matet inn tidsdelt til den første S-blokktransformeringsenhet 13 og den annen S-blokktransformeringsenhet 14 som er vist på fig. 12, slik at de konvensjonelle åtte respektive S-blokker kan erstattes av den første S-blokktransformeringsenhet 13 og den annen S-blokktransformeringsenhet 14.
Fig. 13 viser et annet eksempel på S-blokken i S-funksjonsenheten 20.
Den konkrete utførelsesform er forklart i detalj i Matui, Sakurai, "Galois Field division circuit and shared circuit for multiplication and division" (japansk patentregistrering nr. 2641285, 2. mai 1977). 8 bits data blir matet til S-blokktransformeringsenheten 21, og 8 bits data blir matet ut. S-blokktransformeringsenheten 21 er utformet med en N bits (her er N = 8) lineær transformeringsenhet 17, en delfelt-transformeringsenhet 18 og en N bits lineær transformeringsenhet 19. Den N bits lineære transformeringsenhet 17 utfører operasjoner på 8 bits data. Delfelt-transformeringsenheten 18 utfører operasjoner på bare 4 bits data som er elementer i Galois-feltet GF (2<4>). Den N bits lineære transformeringsenhet 19 utfører en operasjon på 8 bits data. En lineær transformeringsenhet 85 i den N bits lineære transformeringsenhet 17 er en krets som utfører den lineære transformasjon som er vist på fig. 14. En lineær transformeringsenhet 87 er en krets som utfører den lineære transformasjon som er vist på fig. 15.
Den lineære transformeringsenhet 85 kan erstattes av en krets som utfører en affin-transformasjon (en lineær transformasjon kan betraktes som én type affin-transformasjoner). Likeledes kan den lineære transformeringsenhet 87 erstattes av en krets som utfører en annen affintransformasjon. Den lineære transformeringsenhet 85 transformerer 8 bits data (X) til 8 bits data (X'). De oppnådde 8 bits data (X') antas å være et element av Galois-feltet (2<8>). De øvre 4 bits data og nedre 4 bits data (Xi og X0) av dataene X' blir henholdsvis antatt som elementer i delfeltet av Galois-feltet (2<4>) og mates ut til delfelt-transformeringsenheten 18. La her et element p av GF(2<8>) f.eks. være et element som tilfredsstiller det ureduserbare polynom X8+X6+X5+X3+1 =0, og a=(5<238>, så kan en basis for delfeltet GF (2<4>) representeres som [1 ,a,a2,a3]. Hvis elementene i GF (2<4>), X0, X1fblir representert ved å bruke dette, kan følgende relasjon opprettes som X'=X0+pXi. (For detaljer vises til Matui, Sakurai, "Galois Field division circuit and shared circuit for multiplication and division", japansk patentregistrering nr. 2641285, 2. mai 1997). Delfelt-transformeringsenheten 18 er utformet bare med operasjonsenheter som hver utfører operasjoner på 4 bits data.
Som et eksempel på uttrekking av "delfelt", kan her delfeltet GF (2<m>) hvor n=2mbetraktes for et gitt GF (2<n>). I dette tilfelle er n=8, m=4.
Delfelt-transformeringsenheten 18 er en invers elementkrets som benytter det delfelt som er konstruert av kretsen vist i "Galois Field division circuit and shared circuit for multiplication and division", japansk patentregistrering nr. 2641285, 2. mai 1997). Som et operasjonsresultat fra denne inverse elementkretsen, blir øvre 4 bits data og nedre 4 bits data (Yi og Y0), som hver kan antas som et element i GF (2<4>), matet ut til den lineære transformeringsenhet 87 som 8 bits data Y, som kan anses som et element i GF(2<8>), hvor Y = Y0+ $ Y^. Som forklart ovenfor er denne inverse elementkretsen en krets for beregning av Y = Y0+ $ Y^ = M{ X0+$ Xi). Videre finnes det måter for å ta en "basis", slik som en "polynombasis" og en "normalbasis", for å representere elementet i det "endelige felt" (hvordan en basis skal tas) i den inverse elementkrets.
Et første kjennetegn ved S-blokktransformeringsenheten 21 som er vist på fig. 13, er å beregne data med en bitbredde (4 biter) som er halvparten av bitbredden (8 biter) til de data som er matet inn for den ikke-lineære transformasjon. Den inverse elementkrets er nemlig kjennetegnet ved å utføre operasjoner på bare 4 bits data.
Likevel kan beregningshastigheten minskes ved å utføre bare 4 bits operasjoner. Dette tilfelle har en fordel ved at skalaen for en hel krets kan være meget mindre enn i et tilfelle hvor det utføres operasjoner på 8 bits data.
Et annet kjennetegn ved S-blokktransformeringsenheten 21 er videre at den N bits lineære transformeringsenhet 17 og den N bits lineære transformeringsenheten 19, hvor N = 8, er anordnet på begge sider av delfelt-transformeringsenheten 18. Når S-blokktransformeringsenheten 21 er implementert ved å bruke delfelt-transformeringsenheten 18, er det en fordel at hele kretsens skala kan reduseres, og utførelses-formen blir enklere sammenlignet med et tilfelle hvor det anvendes en transformeringstabell T som lagrer tilfeldige verdier, mens sikkerheten derimot kan minske. De lineære transformasjoner eller affintransformasjonene blir følgelig utført på begge sider av delfelt-transformeringsenheten 18, slik at reduksjonen av sikkerhetsnivået på grunn av en utførelsesform som benytter delfelt-transformeringsenheten 18, kan gjenvinnes.
På fig. 13 blir en lineær transformasjon utført på begge sider av delfelt-transformeringsenheten 18, den lineære transformasjon kan imidlertid utføres bare på én side. På en annen måte kan den lineære transformasjon utføres på én side og affintransformasjonen kan utføres på den andre siden. Fig. 29 viser et tilfelle hvor nøkkelfunksjonsenheten 25 som er vist på fig. 11, dvs. nøkkelfunksjonsenheten 25 anbrakt før S-funksjonsenheten 20 og P-funksjonsenheten 30, nå er anbrakt etter S-funksjonsenheten 20 og P-funksjonsenheten 30. Fig. 30 viser et tilfelle hvor nøkkelfunksjonsenheten 25 er anbrakt mellom S-funksjonsenheten 25 og P-funksjonsenheten 30.
Ved å anvende den utførelsesform som er vist på fig. 29 eller fig. 30, kan man få den virkning at en implementering gir en høyere operasjonshastighet enn den utførelsesform som er vist på fig. 11. Ved videre å modifisere genereringen av forlengelsesnøklene, kan den samme utgang oppnås ved å bruke den utførelsesform som er vist på fig. 29 eller fig. 30, fra den samme inngang som utførelsesformen på fig. 11.1 den konvensjonelle F-funksjonsenheten som er vist på fig. 26, er det anordnet to S-funksjoner i hver av hvilke først en operasjon med forlengelsesnøkkelen blir utført og så en operasjon med S-funksjonen blir utført. I det tilfelle som er vist på fig. 29 er derimot en nøkkelfunksjonsenhet 25 anbrakt ved sluttrinnet av F-funksjonen. I det tilfelle som er vist på fig. 30, er nøkkelfunksjonsenheten 25 anbrakt mellom S-funksjonsenheten 20 og P-funksjonsenheten 30.
Fig. 43 viser et tilfelle hvor den ikke-lineære transformeringsenhet F som er vist på fig. 28, er anvendt i krypteringsenheten 200 eller dekrypteringsenheten 500 som er vist på fig. 3.
Venstre data blir matet til den ikke-lineære transformeringsenhet F som F-funksjonsinngangsdata 10 og F-funksjonsutgangsdata 40 blir matet ut. F-funksjons-utgangsdataene 40 blir underkastet en eksklusiv ELLER-operasjon med høyre data, og resultatet av denne operasjonen blir venstre data i den neste runde. Når de venstre data blir matet inn til den ikke-lineære transformeringsenhet F som F-funksjons-inngangsdataene 10, blir de venstre data samtidig brukt som høyre data i den neste runde. I den utførelsesform som er vist på fig. 43, blir operasjonene til nøkkel-funksjonsenheten 25, S-nøkkelfunksjonsenheten 20 og P-funksjonsenheten 30 utført i den ikke-lineære transformeringsenhet F, slik at operasjonsbelastningen blir stor i den ikke-lineære transformeringsenhet F. Et eksempel på et tilfelle hvor en høyere behandlingshastighet kan oppnås ved å fordele operasjonsbelastningen på den ikke-lineære transformeringsenhet F, vil bli forklart nedenfor under henvisning til figurene.
Fig. 44 viser et tilfelle hvor den ikke-lineære transformeringsenhet F' blir brukt. Den ikke-lineære transformeringsenhet F' er én hvor nøkkelfunksjonsenheten 25 er fjernet fra den ikke-lineære transformeringsenhet F som er vist på fig. 43. Forlengelsesnøkkelen ki blir underkastet en eksklusiv ELLER-operasjon med venstre data L0ved en eksklusiv ELLER-krets 891. Videre blir forlengelsesnøkkelen k2underkastet en eksklusiv ELLER-operasjon med høyre data Ro ved en eksklusiv ELLER-krets 297. De venstre data blir matet til den ikke-lineære transformeringsenhet F' som F-funksjonsinngangsdata 10, og transformert av S-funksjonsenheten 20 og P-funksjonsenheten 30. Utgangen fra eksklusiv ELLER-kretsen 297 og F-funksjons-utgangsdataene 40 blir underkastet en eksklusiv ELLER-operasjon ved en eksklusiv ELLER-krets 290 for å mate ut venstre data L|.
Nøkkelgenereringsenhetene 300, 600 utfører derimot en eksklusiv ELLER-operasjon på forlengelsesnøklenes k-i og k2 og mater ut den modifiserte forlengelses-nøkkel ki+k3. Utgangen Ri fra eksklusiv ELLER-kretsen 891 og forlengelsesnøkkelen ki + k3blir underkastet en eksklusiv ELLER-operasjon ved en eksklusiv ELLER-krets 298 for å mate ut de høyre data. Nøkkelgenereringsenhetene 300, 600 modifiserer forlengelsesnøklene for å generere og mate ut ki+k3, k2+k4, tø+ks k-i6+k-i8. Nøkkelgenereringsenhetene 300, 600 leverer de modifiserte forlengelsesnøkler til de andre prosessene enn den ikke-lineære funksjonsprosess (F) for å operere med dataene. Som et resultat blir venstre data L|8og høyre data Ri8de samme som de venstre data Li8og de høyre data Ri8i tilfelle på fig. 43.
De modifiserte forlengelsesnøkler blir levert til andre prosesser enn den ikke-lineære funksjonsprosess (F) og operert med dataene, og følgelig kan operasjonene med nøkkeldataene utføres utenfor den ikke-lineære funksjonsenhet F", nemlig ved eksklusiv ELLER-kretsene 297 og 298, mens operasjonene til S-funksjonsenheten 20 og P-funksjonsenheten 30 blir utført i den ikke-lineære funksjonsenhet F". Operasjonen til nøkkelfunksjonsenheten 25 blir derfor eliminert fra den ikke-lineære funksjonsenhet F, og belastningen på den ikke-lineære funksjonsenhet F blir fordelt, noe som muliggjør en utførelsesform med høy hastighet. Fig. 45 viser et tilfelle hvor operasjonene til hvitforlengelsesnøkkelen kwiblir utført, så vel som operasjonene til de andre forlengelsesnøklene i den utførelsesform som er vist på fig. 44. Fig. 45 viser et tilfelle hvor nøkkelgenereringsenheten først utfører en eksklusiv ELLER-operasjon på en del av hvitforlengelsesnøkkelen kwihighog den første forlengelsesnøkkel ki (nøkkelgenereringsenheten modifiserer nemlig forlengelsesnøkkelen) og leverer operasjonsresultatet til eksklusiv ELLER-kretsen 891. Figuren viser også et tilfelle hvor nøkkelgenereringsenheten først utfører en eksklusiv ELLER-operasjon på en del av hvitforlengelsesnøkkelen kwnowog den annen forlengelsesnøkkel k2(nøkkelgenereringsenheten modifiserer nemlig forleng-elsesnøkkelen) og leverer operasjonsresultatet til eksklusiv ELLER-kretsen 297.
På denne måten kan operasjonen til eksklusiv ELLER-kretsen 293 som er vist på fig. 44, elimineres. I et tilfelle som vist på fig. 45, utfører videre nøkkelgenererings-enheten en eksklusiv ELLER-operasjon på en del av hvitforlengelsesnøkkelen kw2i0wog forlengelsesnøkkelen k17(nøkkelgenereringsenheten modifiserer nemlig for-lengelsesnøkkelen) og leverer operasjonsresultatet til eksklusiv ELLER-kretsen 299. Videre utfører nøkkelgenereringsenheten en eksklusiv ELLER-operasjon på den annen del av hvitforlengelsesnøkkelen kw2highog forlengelsesnøkkelen k18(nøkkel-genereringsenheten modifiserer nemlig forlengelsesnøkkelen) og leverer operasjonsresultatet til eksklusiv ELLER-kretsen 892.
På denne måten blir operasjonen til eksklusiv ELLER-kretsen 296 som er vist på fig. 44, eliminert. Fig. 46 viser et tilfelle hvor nøkkelfunksjonsenheten 25 er fjernet fra den ikke-lineære funksjonsenhet F, og hvor nøkkelgenereringsenheten i stedet leverer forlengelsesnøkkelen k til eksklusiv ELLER-kretsen 298 når den ikke-lineære funksjonsenhet F er utformet som vist på fig. 29. Fig. 47 viser et tilfelle hvor nøkkelfunksjonsenheten 25 er fjernet fra den ikke-lineære funksjonsenhet F, og hvor nøkkelgenereringsenheten i stedet leverer den ikke-lineære transformerte forlengelsesnøkkel k'=P(k) til eksklusiv ELLER-kretsen 298 når den ikke-lineære funksjonsenhet F er utformet som vist på fig. 30.1 tilfellet på fig. 47 blir den samme operasjon som utføres av P-funksjonsprosessen, utført på nøkkeldataene for å generere ikke-lineært transformerte nøkkeldata, og de ikke-lineært transformerte nøkkeldata blir levert til de andre prosessene enn den ikke-lineære funksjonsprosess (F) for behandling av data som skal opereres sammen med dataene som nøkkeldata for behandling av data. I begge tilfellene på fig. 46 og 47, fordi nøkkelfunksjonsenheten 25 er eliminert fra den ikke-lineære funksjonsenhet F, blir operasjonsbelastningen på den ikke-lineære funksjonsenhet F redusert, og operasjonen til eksklusiv ELLER-kretsen 298 som befinner seg utenfor den ikke-lineære funksjonsenhet F, kan utføres parallelt med operasjonene som utføres av den ikke-lineære funksjonsenhet F, noe som gir høyere behandlingshastighet.
Utførelsesform 3
Fig. 16 viser en utførelsesform av nøkkelgenereringsenheten 300 (eller nøk-kelgenereringsenheten 600) som er vist på fig. 1.
Nøkkelgenereringsenheten 300 innbefatter en bitlengde-transformeringsenhet 310, en første G bits nøkkeltransformeringsenhet 320, en annen G bits nøkkel-transformeringsenhet 330 og en nøkkelforskyvningsenhet 340. Fra inngangsnøkkel-dataene som har 128 biter, 192 biter eller 256 biter, genererer nøkkelgenererings-enheten 300 128 bits nøkkeldata Ki og 128 bits nøkkeldata K2og mater ut flere 64 bits forlengelsesnøkler. Bitlengde-transformeringsenheten 310 omformer bitlengden til nøkkeldataene som skal mates ut, slik at bitlengden til utangsnøkkeldataene blir fast selv om nøkkeldataene som mates inn, har forskjellig antall biter. Bitlengde-transformeringsenheten 310 genererer med andre ord nøkkeldata SKhighav øvre 128 biter og nøkkeldata SK!owav nedre 128 biter, og mater ut de førstnevnte til den første G bits nøkkeltransformeringsenhet 320 og nøkkelforskyvningsenheten 340. Sistnevnte blir videre matet ut til den annen G bits nøkkeltransformeringsenhet 330 og nøkkel-forskyvningsenheten 340.128 bits nøkkeldata som er et resultat underkastet en eksklusiv ELLER-operasjon, av de førstnevnte og sistnevnte, blir videre matet ut til den første G bits nøkkeltransformeringsenhet 320.
Fig. 17 viser operasjoner inne i bitlengde-transformeringsenheten 310.
Når 128 bits nøkkeldata blir matet til bitlengde-transformeringsenheten 310, blir inngangsnøkkeldataene matet ut som nøkkeldata SKhighfor de øvre 128 biter uten noen endring. Nøkkeldata SK|0Wfor de nedre 128 biter blir videre satt til 0 og matet ut.
Når de 192 bits nøkkeldata blir matet til bitlengde-transformeringsenheten 310, blir de øvre 128 bits data i inngangsnøkkeldataene matet ut som de øvre 128 bits nøkkeldata SKhighuten noen endring. De nedre 128 bits nøkkeldata SK|0Wblir videre generert ved å kombinere de nedre 64 biter av de innmatede 192 bits nøkkeldata og de inverse 64 bits data, som blir generert ved å invertere de nede 64 bits data i de innmatede 192 bits nøkkeldata, og blir matet ut.
Når 256 bits nøkkeldata blir matet inn, blir de øvre 128 bits data i de innmatede nøkkeldata matet ut som SKhighog de nedre 128 bits data blir matet ut som SK|0W-Data som er underkastet en eksklusiv ELLER-operasjon på de 128 bits nøk-keldata SKhighog SKiow, blir matet til den første G bits nøkkeltransformeringsenhet 320 fra bitlengde-transformeringsenheten 310, operert med to runders ikke-lineære transformasjoner, underkastet eksklusiv ELLER-operasjon med de øvre 128 bits nøkkeldata SKhigh, videre operert med to runder med ikke-lineære transformasjoner, og 128 bits nøkkeldata Ki blir matet ut.
Når lengden av nøkkeldataene som mates til bitlengde-transformeringsenheten 310 er 128 biter, genererer nøkkelforskyvningsenheten 340 forlengelsesnøkkelen ved å bruke de 128 bits nøkkeldata som er matet ut fra den første G bits nøkkeltransforme-ringsenhet 320 og de opprinnelig innmatede nøkkeldata. Når lengden av nøkkel-dataene som mates til bitlengde-transformeringsenheten 310 er 192 biter eller 256 biter, blir de 128 bits nøkkeldata som mates ut fra den første G bits nøkkeltransforme-ringsenhet 320, videre matet til den annen G bits nøkkeltransformeringsenhet 330, underkastet en eksklusiv ELLER-operasjon med de nedre 128 bits nøkkeldata SK|0W, operert med to runder med ikke-lineære transformasjoner, og 128 bits nøkkeldata K2blir matet ut. To stykker med 128 bits nøkkeldata fra den første G bits nøkkel-transformeringsenhet 320 og den annen G bits nøkkeltransformeringsenhet 330, blir matet til nøkkelforskyvningsenheten 340. Nøkkelforskyvningsenheten 340 genererer forlengelsesnøkkelen ved å bruke de to stykkene med 128 bits nøkkeldata og de opprinnelig innmatede nøkkeldata.
Nøkkelforskyvningsenheten 340 omfatter et skiftregister A 341, et skiftregister B 342, et skiftregister C 343, et skiftregister D 344, og en skiftstyreenhet 345. Skiftstyreenheten 345 mater ut et valgt signal 346 til hvert av skiftregistrene for å styre operasjonene til skiftregistrene.
Fig. 18 viser en utførelsesform av skiftregisteret A 341.
Skiftregisteret A 341 innbefatter en velger A 347 som har en gruppe med brytere for 128 biter og et register A 348 som har 128 biter. Et velgersignal 346 innbefatter et brytersignal for å indikere tilkopling av alle bryterne i velgeren A 347 samtidig til hver av A-siden og B-siden. Figuren viser et tilfelle hvor gruppen med brytere i velgeren A 347 har valgt A basert på velgersignalet 346, og i dette tilfelle utfører registeret A 348 en rotasjonsforskyvning til venstre med 17 biter. Når gruppen med brytere videre er koplet til B, utfører registeret A rotasjonsforskyvningen til venstre med 15 biter. Forskyvningen på 15 biter eller 17 biter blir utført ved hjelp av én klokkesyklus.
Antallet forskyvningsbiter (15, 17) er kun eksempler, og andre antall med forskyvningsbiter kan benyttes. Fig. 19 viser en del av en styretabell som er lagret i skiftstyreenheten 345. Styretabellen er en tabell lagrer hvor mange biter registeret forskyves ved hver takt eller hvert klokkesignal. I styretabellen for registeret A er det f.eks. spesifisert at det skal forskyves med 15 biter ved den første takt. Og ved den annen takt er det spesifisert en forskyvning med ytterligere 15 biter. Ved hver av de tredje og fjerde takter er det spesifisert å forskyve med 15 biter. Ved hver av de femte til de åttende takter, er det spesifisert å forskyve med 17 biter. Fig. 20 viser et styreresultat hvor skiftstyreenheten 345 styrer hvert skiftregister ved å bruke tabellen som er vist på fig. 19 i tilfelle med generering av forlengelses-nøkkelen fra de 128 bits nøkkeldata.
De øvre 128 bits nøkkeldata SKhighinnmatetfra bitlengde-transformeringsenheten 310 blir satt inn i skiftregisteret A 341. De 128 bits nøkkeldata Ki som er matet ut fra den første G bits nøkkeltransformeringsenhet 320, blir satt inn i skiftregisteret B 342. Under denne betingelse opererer skiftregisteret A 341 og skiftregisteret B 342 basert på den styringstabell som er vist på fig. 19. På fig. 20 vises data i en kolonne forsynt med en skrå strek, som skal ignoreres og ikke mates ut. Data i de andre kolonnene blir matet ut som forlengelsesnøkler, som vist på fig. 21. Fig. 21 viser en overensstemmelse mellom verdien i registrene og forlengelses-nøkkelen. Fig. 20 viser et tilfelle hvor fire forskyvninger blir utført med 15 biter ved hver takt, og fra den femte takt blir forskyvninger utført med 17 biter ved hver takt. Beslutningen om å mate ut eller ikke mate ut de øvre 64 biter og de nedre 64 biter fra skiftregisteret A 341 og skiftregisteret B 342 som forlengelsesnøkkel og dets ut-matingsordre, er spesifisert i styretabellen, som ikke er vist å figuren. Og i henhold til styretabellen, ved å mate ut velgersignalet 346 som innbefatter et utmatings- instruksjonssignal til skiftregisteret, blir forlengelsesnøkkelen matet ut fra hvert skiftregister med 64 biter.
Fig. 22 viser et tilfelle hvor forlengelsesnøkkelen er generert fra de 192 bits-eller 256 bits nøkkeldata.
De øvre 128 bits nøkkeldata SKhighmatet inn fra bitlengde-transformeringsenheten 310, blir satt inn i skiftregisteret A 341, de nedre 128 bits nøkkeldata SK|0Wblir satt inn i skiftregisteret B 342, de 128 bits nøkkeldata Ki som mates ut fra den første G bits nøkkeltransformeringsenhet 320 blir satt inn i skiftregisteret C 343, og de 128 bits nøkkeldata K2som er matet ut fra den annen G bits nøkkeltransformeringsenhet 330, bli satt inn i skiftregisteret D 344.
Data i en kolonne forsynt med en skrå strek, viser nøkler som ikke brukes som forlengelsesnøkler.
Fig. 23 viser en overensstemmelse mellom verdien i registeret og forlengelses-nøkkelen.
De nøkler som ikke brukes til forlengelsesnøkler, og overensstemmelsen mellom verdien i registeret og forlengelsesnøkkelen som er vist på fig. 23, blir lagret i en styretabell anordnet i styreenheten.
Som vist på fig. 19 lagrer skiftstyreenheten 345 antallet biter for forskyvning av de nøkkeldata som er innsatt i skiftregisteret A 341. Forlengelsesnøklene blir nemlig generert sekvensielt ved å forskyve nøkkeldataene som er innsatt i skiftregisteret A 341 med Z0=0 biter, Zi=15 biter, Z2=45 biter, Z3=60 biter, Za- 11 biter, Z5=94 biter, Z6=111 biter og Z7=128 biter, som vist i styretabellen i skiftregister A.
Summen av antallet forskyvningsbiter blir 15+15+15+15+17+17+17+17=128, slik at det 128 bits register utfører den 128 bits rotasjonsforskyvning og registeret vender tilbake til den innledende tilstand.
Grunnen til at summen av antallet forskyvningsbiter blir satt lik 128 biter (antallet biter i registeret) for å vende tilbake til den opprinnelige tilstand, er at den neste behandling kan påbegynnes straks hvis den neste behandling er tilordnet registeret med den opprinnelige status. I tilfelle med utførelse av en invers transformasjon (dekryptering) blir videre prosessen for generering av forlengelsesnøkkelen startet fra den innledende tilstand, og følgelig kan både transformeringen (krypteringen) og den inverse transformeringen (dekrypteringen) utføres ved å sette inn de innledende verdier. Grunnen til at summen av antallet forskyvningsbiter ikke er gjort større enn 128 biter (antallet biter i registeret) er videre å hindre generering av identiske verdier som tilstanden inne i det samme skiftregister på grunn av utførelse av forskyvningen med mer enn én syklus (mer enn 128 biters forskyvning). Dette er fordi utførelsen av rotasjonsforskyvningen med f.eks. 2 biter, som er mindre enn 128 biter (antallet biter i registeret) og utførelse av rotasjonsforskyvningen med 130 biter, som er større enn 128 biter (antallet biter i registeret), frembringer den identiske verdi. Det er ønskelig å sette slike verdier i styretabellen for register A slik at, ved utførelse av forskyvningene i registeret med én syklus, antallet forskyvningsbiter varierer uregelmessig gjennom den ene syklus. For å lette utførelsen av skiftregisteret er det imidlertid ønskelig å forskyve med det faste antall biter. Et register er derfor utformet for å utføre to typer forskyvninger med 15 biter og 17 biter (ved én takt), og skiftoperasjonen med forskjellige antall biter kan implementeres ved å bruke de to typer forskyvninger, i henhold til følgende prosedyre.
Sett relasjonen slik at Zi - Z0= 15 (her er Zi - Z0= Bi), Z2- Zi = 30 (nemlig Z2- Zi = 2Bi), derfor er Z2- Zi =2 (Zi - Z0). Som vist i styretabellen for skiftregister B er relasjonen videre satt slik at Z5- Z4= 34 (her er Z5- Z4= 2B2), Z6- Z5= 17 (Z6- Z5= B2), derfor er Z5- Z4= 2(Z6- Z5). Differansen mellom antallet forskyvningsbiter blir nemlig gjort til 15 biter og 30 biter, eller 17 biter og 34 biter, og antallet forskyvningsbiter (30 biter eller 34 biter) blir satt til en heltallig multippel (2 ganger = 1 gang) av antallet biter (15 biter og 17 biter) for én tidsforskyvning.
Etter som forskjellene i antall forskyvningsbiter på denne måten enten er satt til antallet forskyvningsbiter for én tid eller multippelen med heltallet som er større enn 2 (I ganger), I er et heltall større enn 2) og antallet forskyvningsbiter for én tid, ved å operere skiftregisteret A 341 én gang eller to ganger (I ganger), er det mulig lett å implementere skiftoperasjoner for hvilke antallet forskyvningsbiter er lagret i styretabellen. Å operere to ganger (I ganger) betyr at skiftoperasjonen avsluttes med to takter (I takter) av den operasjonstakt som leveres for drift av skiftregisteret A 341.
Ved forskyvning I ganger (to ganger) blir de høyere data og de lavere data av de forskjøvne data opp til I -1 ganger (2-1 = 1 gang) ignorert og blir ikke benyttet som forlengelsesnøkkel. I tilfelle med forskyvning fra Zi = 15 til Z2= 45, blir I = (Z2- Z-i) /
(antallet forskyvningsbiter på én gang) = (45 -15) /15 = 2, og både de høyeste data og de laveste data blant de forskjøvne data etter forskyvning I -1 ganger (2-1=1 gang) blir ignorert og benyttes ikke som forlengelsesnøkkel. Dette kan ses på fig. 20
hvor kolonnene for nøkkel [8] og nøkkel [9] har skråstreker som viser at disse nøklene ikke blir brukt som forlengelsesnøkler. Og enten én eller begge av de høyeste data og de laveste data blant de forskjøvne data etter forskyvning med I ganger (2 ganger), blir brukt som forlengelsesnøkkel. Dette kan ses på fig. 20 som viser nøkkel [12] og nøkkel [13] utmatet som forlengelsesnøkler.
Grunnen til at skiftoperasjonen basert på en multippel av et heltall større enn to blir anvendt som beskrevet ovenfor, er å gjøre det mulig å utføre forskyvningen med ikke bare 15 biter eller 17 biter, men også med 30 (= 15x2) biter 34 (= 17x2) biter eller 45 (= 15x3) biter eller 51 (=17x3) biter, osv.), som varierer antallet forskyvninger og dermed forbedrer sikkerheten. Og grunnen til at det er tilveiebrakt tilfeller hvor de forskjøvne data ikke blir brukt som forlengelsesnøkler, er også å forbedre sikkerheten.
Det er ønskelig å generere de data som ikke blir brukt som forlengelsesnøkkel (på fig. 20 og 22, nøkler i kolonner forsynt med skrå streker, som ikke blir brukt som forlengelsesnøkler) når f.eks. behandlingen i maskinvaren eller behandlingen i programmet ikke blir utført i rekkefølge. Som konkrete eksempler er det på fig. 3 ønskelig å generere slike data når operasjonene til den normale datatransformeringsenhet (FL) og den inverse datatransformeringsenhet (FL<1>) blir utført, eller før eller etter slike operasjoner eller ved ledige prosesstider eller svitsjeprosesstider slik som et funksjonsanrop i et program, et subrutineanrop eller en avbruddsprosess.
Kjennetegnene ved styretabellen som er vist på fig. 19, er at styretabellen spesifiserer antallet forskyvningsbiter til Bi = 8x2 -1 = 15 (Bi = 8xJi-1, hvor Ji er et heltall større enn 1) og antallet forskyvningsbiter for B2= 8x2+1 = 17 (B2= 8xJ2+ 1, hvor J2er et heltall større enn 0, Ji = J2eller Ji * J2). Å sette forskyvningsstørrelsen til a ± 1 av den heltallige multippel av 8, er å utføre forskyvningen med odde biter, som forbedrer sikkerheten sammenlignet med å utføre forskyvningen bare med like biter, siden operasjonen til forlengelsesnøkkelen i databehandlingsenheten er gjort med en 8 bits enhet, dvs. en enhet med like antall biter. Og siden forskyvningsstørrelsen kan fastsettes ved å addere/subtrahere 1 bit til/fra multippelen av 8, f.eks. på en CPU som har bare en 1 bits skiftkommando, utfører skiftoperasjonen slik som ovenfor en høyhastighetsbehandling sammenlignet med forskyvning med 3 biter eller 5 biter. I tilfelle at denne skiftoperasjonen som benytter maskinvare som kan forskyve bare 1 bit, er det også tilfeller hvor det er mulig å utføre høyhastighetsbehandling.
I den ovenfor gitte beskrivelse av bitlengde-transformeringsenheten 310, blir det matet inn tre forskjellige bitbredder for nøkkeldata. Selv når nøkkeldataene som har en bitlengde Q, hvor Q er mellom 128 biter (G biter) og 256 biter (2G biter) (G<Q<2G), kan bitlengde-transformeringsenheten 310 forlenge nøkkeldataene til den samme størrelse som nøkkeldataene når de 256 bits nøkkeldata blir matet inn, ved å bruke en algoritme. Når nøkkeldataene som har en lengde på Q, som er mellom G biter og 2G biter, blir matet inn, kan nemlig bitlengde-transformeringsenheten 310 omforme nøkkeldataene med Q biter til nøkkeldata med 2G biter.
Beviset på ikke-eksistens av en ekvivalent nøkkel vil nå bli forklart under henvisning til fig. 34.
I den følgende forklaring av fig. 34, betegner"+" en eksklusiv ELLER-operasjon.
Det antas her at det innmates to 128 bits nøkkeldata SK1 og SK2 (SK1 * SK2), og at bitlengde-transformeringsenheten 310 mater ut SK1higheller SK1 =
(SKH1ISKL1) fra SK1 og SK2high= SK2 = (SKH2|SKL2) fra SK2. Her betyr SKHi (i = 1,2) de øvre 64 bits data fra SKi og SKLi (i = 1,2) betyr de nedre 64 bits data fra SKi.
Hvis det antas at de eksklusiv ELLER-underkastede data i SKH1 og SKH2 er AA og de eksklusiv ELLER-underkastede data fra SKL1 og SKL2 er AB, kan det sies at "i det minste er AA * 0 eller AB * 0" siden SK1 * SK2.
Som vist på fig. 34 blir AA og AB AA+AD, AB+AC ved henholdsvis å motta de to runder med ikke-lineære transformeringer. Dette betyr at eksklusiv ELLER-data (AAl AB) for SK1highog SK2highblir eksklusiv ELLER-data (AA+AD I AB+AC) etter utførelse av de to runder med ikke-lineære transformasjoner til SK1hi9hog de transformerte data etter utførelse av de to runder med ikke-lineære transformasjoner på SK2high- Når disse to datastykkene etter utførelse av de to runder med ikke-lineære transformasjoner følgelig blir underkastet en eksklusiv ELLER-operasjoner med SK1 high og SK2high, respektive, ved en eksklusiv ELLER-krets 999, blir de eksklusiv ELLER-underkastede resultater for to datastykker (AD I AC). Hvis den ikke-lineære transformasjon er en bijektiv funksjon, vil innmating av AX * 0 alltid forårsake utmating av AY * 0, slik at når "minst AA * 0 eller AB * 0", kan det sies at "minst AC * 0 eller AD
* 0". Siden det er umulig å mate ut de samme data fra SK1hi9hog SK2hi9hgjennom de to runder med ikke-lineære transformasjoner, er derfor ikke-eksistensen av den ekvivalente nøkkel bevist.
På den annen side, som vist på fig. 35 vil det bli betraktet et annet tilfelle hvor de tre runder med ikke-lineære transformasjoner blir utført istedenfor to runder med ikke-lineære transformasjoner. Siden det kan sies at "minst AA * 0 eller AB * 0", kan det være et tilfelle slik at enten AA eller AB kan være 0. Hvis AA = 0, AC = 0, og på samme måte som diskutert ovenfor, de eksklusiv ELLER-underkastede data (OlAB) for SK1 high og SK2hi9hblir de eksklusiv ELLER-underkastede data (AB + AElAD) etter utførelse av tre runder med ikke-lineære transformasjoner for SK1highog de transformerte data etter utførelse av tre runder med ikke-lineære transformasjoner av SK2hi9h-Når disse datastykkene etter å ha mottatt de tre runder med ikke-lineære transformasjoner følgelig blir underkastet en eksklusiv ELLER-operasjon med SK1highog SK2high, respektive, ved eksklusiv ELLER-kretsen 999, blir resultatene av de eksklusiv ELLER-underkastede datastykker (AB + AEI AB + AD). Når det her antas at AB = AD = AE * 0, er følgende tilfelle (AB+AEIAB+AD) = (010). Det vil si at når disse datastykkene etter utførelse av de tre runder med ikke-lineære transformasjoner blir underkastet en eksklusiv ELLER-operasjon med SK1highog SK2high, respektive, er operasjons-resultatene de samme. SK1hi9hog SK2hi9hmater ut de samme data, slik at den ekvivalente nøkkel finnes, noe som er brysomt med hensyn til sikkerhet.
Ikke bare det ovennevnte tilfelle med tre runders ikke-lineær transformasjon, men en generell ikke-lineær transformasjon kan mate ut ekvivalenten Ki fra forskjellige SK1 og SK2, det betyr at det kan finnes en ekvivalent nøkkel. Det er imidlertid mulig å bevise ikke-forekomsten av den ekvivalente nøkkel når den to runders ikke-lineære transformasjon i henhold til foreliggende utførelsesform, blir anvendt.
Videre kan det være et annet tilfelle hvor ikke-forekomsten av den ekvivalente nøkkel kan bevises, bortsett fra tilfelle med den to runders ikke-lineære transformasjon i henhold til foreliggende oppfinnelse; imidlertid blir det foretrukket å benytte den to runders ikke-lineære transformasjon på grunn av en enkel utførelsesform i tillegg til den beviste, ikke-eksisterende ekvivalente nøkkel.
Fig. 24 viser en datamaskin for installasjon av datatransformeringsenheten 100 for kryptering eller datatransformeringsenheten 400 for dekryptering.
Datatransformeringsenheten 100 for kryptering og/eller datatransformeringsenheten 400 for dekryptering er koplet til databussen som et trykt kretskort. Dette trykte kretskortet er forsynt med en CPU, et hurtiglager og et logisk kretselement, og krypterer klartekst levert fra CPU'en til kodetekst eller chiffertekst ved å bruke den ovennevnte operasjon, og tilbakefører dataene til CPU'en. Eller den dekrypterer kodetekst eller chiffertekst levert fra CPL<T>en, og tilbakesender klartekstene til CPU'en.
På denne måten kan datatransformeringsenheten 100 for kryptering eller datatransformeringsenheten 400 for dekryptering implementeres ved hjelp av maskinvare. Videre kan datatransformeringsenheten 100 for kryptering eller datatransformeringsenheten 400 for dekryptering også implementeres ved hjelp av programvare ifølge fremgangsmåten for datatransformering. Den ovennevnte operasjon kan nemlig utføres ved å bruke et program som er lagret i en magnetplatestasjon eller en diskett-stasjon. På en annen måte kan den ovennevnte operasjon implementeres ved å kombinere maskinvare og programvare, selv om dette ikke er vist på figuren. Videre er det ikke nødvendig å implementere alle de ovennevnte operasjoner ved å benytte én datamaskin, men det er mulig å implementere den ovennevnte operasjon ved hjelp av et distribuert system slik som en tjener og en klient, eller en vertsdatamaskin og en terminaldatamaskin, selv om dette ikke er vist på figuren.
På de foregående figurer 1 til 47, viser en pil retningen av operasjonsflyten, og de figurer som har pilen, er blokkskjemaer for datatransformeringsenheten og også flytskjemaer."... enhet" vist i ovennevnte blokkskjema, kan erstattes med "... trinn" eller"... prosess", slik at skjemaene kan betraktes som operasjonsflytskjemaer eller programflytskjemaer som viser fremgangsmåten for datatransformering.
I de foregående utførelsesformer er det blitt forklart et tilfelle som bruker 128 bits klartekster og chiffertekster, men dataene kan være 256 bits klartekst og chiffertekst, eller klartekst og chiffertekst som har andre antall biter.
I de foregående utførelsesformer er det videre benyttet et tilfelle med 128 biter, 192 biter, 256 biter med nøkkeldata og 64 bits forlengelsesnøkler, men nøkkeldataene kan ha et annet antall biter.
Hvis bitlengden til klartekstene og chiffertekstene, nøkkeldataene og forlengelsesnøklene blir endret, blir selvsagt bitlengden som skal behandles av hver enhet, hvert trinn eller hver prosess, endret i henhold til bitlengden.
Industriell anvendbarhet
I henhold til utførelsesformen ifølge foreliggende oppfinnelse er den normale datatransformeringsenhet (FL) 251 og den inverse datatransformeringsenhet (FL<1>) anordnet for å implementere krypteringen og dekrypteringen ved å benytte den samme algoritme, slik at krypteringsenheten 200 og dekrypteringsenheten 500 kan dele kretsen.
Ifølge oppfinnelsen blir likeledes transformeringstabellen T delt av den første S-blokktransformeringsenhet 13 og den annen S-blokktransformeringsenhet 14, slik at utførelsen blir forenklet.
Ifølge foreliggende oppfinnelse blir videre delfelt-transformeringsenheten 18 benyttet, noe som gjør utførelsesformen enklere, og den lineære transformeringsenhet 85 og den lineære transformeringsenhet 87 er anordnet slik at sikkerheten blir forbedret selv om delfelt-transformeringsenheten 18 blir benyttet.
I henhold til foreliggende oppfinnelse kan skiftstyreenheten 345 la skiftregisteret operere med et helt antall ganger for å utføre forskyvningen av nøkkeldataene med antallet forskyvningsbiter (f.eks. 30 biter eller 34 biter) som ikke er et fast antall biter, slik som bare 15 biter eller 17 biter, og forbedrer sikkerheten.
Ifølge foreliggende oppfinnelse er det videre tilveiebrak et tilfelle hvor de for-skjøvne data i skiftregisteret ikke blir brukt som forlengelsesnøkkel, noe som forbedrer sikkerheten ytterligere.
I henhold til en utførelsesform av foreliggende oppfinnelse, selv om nøkkeldataene har forskjellig antall biter, blir matet inn, endrer bitlengde-transformeringsenheten 310 nøkkeldataene med en fast lengde, som gjør det mulig å drive en fleksibel nøkkelgenerering.
I henhold til en utførelsesform av foreliggende oppfinnelse blir det benyttet en to runders ikke-lineær transformering i den første G bits nøkkeltransformeringsenheter 320, slik at ikke-eksistensen av en nøkkel som er ekvivalent med K1;kan bevises, noe som forbedrer sikkerheten.
Ifølge foreliggende oppfinnelse blir videre posisjonen av nøkkelfunksjonen 25 endret, noe som muliggjør behandling med høy hastighet.

Claims (14)

1. Datatransformeringsapparat med en databehandlingsenhet for å utføre minst enten kryptering av data eller dekryptering av data basert på innmatede nøkkeldata, hvor databehandlingsenheten inndeler data som skal transformeres i første data (L) og andre data (R) og utfører en datatransformering, karakterisert vedat databehandlingsenheten omfatter: en normal datatransformeringsenhet (FL) for å transformere de første data (L) basert på de innmatede nøkkeldata; og en invers datatransformeringsenhet (FL<1>) for transformering av de andre data (R) ved å utføre en invers transformering av transformeringen av den normale datatransformeringsenhet (FL) basert på de innmatede nøkkeldata.
2. Apparat ifølge krav 1,karakterisert ved at databehandlingsenheten omfatter en første inngangsport, en annen inngangsport, en første utgangsport og en annen utgangsport, at den normale datatransformeringsenhet (FL) avgir transformerte data til den første inngangsport i databehandlingsenheten, og at den inverse datatransformeringsenhet (FL<1>) transformerer datautgangen fra den annen utgangsport i databehandlingsenheten og mater ut transformerte data.
3. Apparat ifølge krav 1,karakterisert ved at databehandlingsenheten omfatter en første inngangsport, en annen inngangsport, en første utgangsport og en annen utgangsport, at den normale datatransformeringsenhet (FL) mater ut transformerte data til den annen inngangsport i databehandlingsenheten, og at den inverse datatransformeringsenhet (FL<1>) transformerer datautgangen fra den første utgangsport i databehandlingsenheten og mater ut transformerte data.
4. Apparat ifølge krav 1,karakterisert ved en databehandlingsenhet for innmating av nøkkeldata, generering av minst første nøkkeldata og andre nøkkeldata, og utførelse av datatransformering av minst én av kryptering av data og dekryptering av data, hvor databehandlingsenheten deler data som skal transformeres inn i første data (L) og andre data (R) og utfører datatransformeringen, hvor databehandlingsenheten omfatter: en normal datatransformeringsenhet (FL) for innmating av de første data (L) og de første nøkkeldata, og utførelse av transformering av de innmatede data ved å benytte en XOR-krets og en krets som har en logisk operasjonskrets for innmating av de første nøkkeldata og utførelse av en logisk operasjon; og en invers datatransformeringsenhet (FL<1>) for innmating av de andre data (R) og de andre nøkkeldata, og utførelse av transformering av de innmatede data ved å benytte en XOR-krets og en krets som har en logisk operasjonskrets for innmating av de andre nøkkeldata og utførelse av en logisk operasjon; som utfører en transformering invers til transformeringen utført av den normale datatransformeringsenheten (FL) hvis de andre nøkkel-data er en identisk nøkkel til de første nøkkeldata.
5. Apparat ifølge krav 4,karakterisert vedat den normale datatransformeringsenheten (FL) omfatter en krets for å dele de innmatede første data (L) i første venstre inngangsdata og første høyre inngangsdata, transformering av de første venstre inngangsdata av en logisk operasjon med de første nøkkeldata, XOR-behandling av de transformerte data og de første høyre inngangsdata, og utmating av det XOR-behandlede resultat; og hvor den inverse datatransformeringsenheten (FL"<1>) omfatter en krets for å dele de innmatede andre data (R) i andre venstre inngangsdata og andre høyre inngangsdata, transformering av de andre venstre inngangsdata av en logisk operasjon med de andre nøkkeldata, XOR-behandling av de transformerte data og de andre høyre inngangsdata, og utmating av det XOR-behandlede resultat.
6. Apparat ifølge krav 4,karakterisert vedat datatransformeringsapparatet mater inn nøkkeldataene og genererer i det minste første nøkkeldata, andre nøkkeldata, tredje nøkkeldata og fjerde nøkkeldata, hvor den normale datatransformeringsenheten (FL) omfatter en krets for å dele de innmatede første data (L) i første venstre inngangsdata og første høyre inngangsdata, transformering av de første venstre inngangsdata av en logisk operasjon med de første nøkkeldata, XOR-operasjon av de transformerte data og de første høyre inngangsdata, og utmating av resultatet fra XOR-operasjonen som første høyre utgangsdata, transformering av de første høyre utgangsdata av en logisk operasjon med de tredje nøkkeldata, XOR-operasjon av de transformerte data og de første venstre inngangsdata, og utmating av resultatet fra XOR-operasjonen som første venstre utgangsdata, danning av data fra de første venstre utgangsdata og de første høyre utgangsdata, og utmating av de dannede data; og hvor den inverse datatransformeringsenheten (FL<1>) omfatter en krets for å dele de innmatede andre data (R) i andre venstre inngangsdata og andre høyre inngangsdata, transformering av de andre høyre inngangsdata av en logisk operasjon med de andre nøkkeldata, XOR-operasjon av de transformerte data og de andre venstre inngangsdata, og utmating av resultatet fra XOR-operasjonen som andre venstre utgangsdata, transformering av de andre venstre utgangsdata av en logisk operasjon med de fjerde nøkkeldata, XOR-operasjon av de transformerte data og de andre høyre inngangsdata, og utmating av resultatet fra XOR-operasjonen som andre høyre utgangsdata, danning av andre utgangsdata fra de andre venstre utgangsdata og de andre høyre utgangsdata, og utmating av de dannede data.
7. Apparat ifølge krav 4,karakterisert vedat den logiske operasjonskretsen til den normale datatransformeringsenheten (FL) er en logisk operasjonskrets for innmating av de første nøkkeldata og utførelse av minst en logisk operasjon som er en annen enn en XOR, og hvor den logiske operasjonskretsen til den inverse datatransformeringsenheten (FL<1>) er en logisk operasjonskrets for innmating av de andre nøkkeldata og utførelse av minst en logisk operasjon som er en annen enn en XOR.
8. Apparat ifølge krav 4,karakterisert vedat den normale datatransformeringsenheten (FL) omfatter et flertall logiske operasjonselementer, den inverse datatransformeringsenheten (FL<1>) omfatter et flertall logiske operasjonselementer, et antall av hvilke er de samme som flertallet logiske operasjonselementer til den normale datatransformeringsenheten (FL), og den normale datatransformeringsenheten (FL) har et forbindelsearrangement til flertallet logiske operasjonselementer forskjellige fra den inverse datatransformeringsenheten (FL<1>).
9. Apparat ifølge krav 4,karakterisert vedat dataprosesseringsenheten omfatter en ikke-lineær datatransformeringsenhet som har en første innmatingsenhet, en andre innmatingsenhet, en første utmatingsenhet og en andre utmatingsenhet, hvor den normale datatransformeringsenheten (FL) mater ut de transformerte data til den første innmatingsenheten for den ikke-lineære datatransformeringsenheten, og hvor den inverse datatransformeringsenheten (FL"<1>) transformerer og mater ut data utmated fra den andre utmatingsenheten for den ikke-lineære datatransformeringsenheten.
10. Apparat ifølge krav 4,karakterisert vedat dataprosesseringsenheten omfatter en ikke-lineær datatransformeringsenhet som har en første innmatingsenhet, en andre innmatingsenhet, en første utmatingsenhet og en andre utmatingsenhet, hvor den normale datatransformeringsenheten (FL) mater ut de transformerte data til den andre innmatingsenheten for den ikke-lineære datatransformeringsenheten, og hvor den inverse datatransformeringsenheten (FL"<1>) transformerer og mater ut data utmatet fra den første utmatingsenheten for den ikke-lineære datatransformeringsenheten.
11. Fremgangsmåte for datatransformering for å utføre en databehandlingsprosess for utførelse av minst enten kryptering av data eller dekryptering av data basert på innmatede nøkkeldata, hvor databehandlingsprosessen inndeler data som skal transformeres, i første data (L) og andre data (R) og utfører en datatransformering, karakterisert vedat: databehandlingsprosessen innbefatter: en normal datatransformeringsprosess (FL) for å transformere de første data (L) basert på de innmatede nøkkeldata; og en invers datatransformeringsprosess (FL<1>) for å transformere de andre data (R) ved å utføre en invers transformering av transformeringen av den normale datatransformeringsprosess (FL) basert på de innmatede nøkkeldata.
12. Fremgangsmåte ifølge det foregående krav for et datatransformeringsapparat for innmating av nøkkeldata, generering av minst første nøkkeldata og andre nøkkel-data, og utførelse av databehandling ved å utføre datatransformeringen at minst én av kryptering av data og dekryptering av data av en datatransformeringsenhet, en normal datatransformeringsenhet (FL) og en invers datatransformeringsenhet (FL<1>) hvor databehandlingen omfatter: en prosess for å dele data som skal transformeres inn i første data (L) og andre data (R) av databehandlingsenheten; en normal datatransformeringsprosess, ved den normale datatransformeringsenheten (FL), for innmating av de første data (L) og de første nøkkeldata, og utførelse av transformering av de innmatede data ved å benytte en XOR-krets og en krets som har en logisk operasjonskrets som mater inn de første nøkkeldata og utfører en logisk operasjon; og en invers datatransformeringsprosess, ved den inverse datatransformeringsenheten (FL<1>), for innmating av andre data (R) og de andre nøkkeldata, og for utførelse av transformering av de innmatede data ved bruk av en XOR-krets og en krets som har en logisk operasjonskrets for innmating av de andre nøkkeldata og utførelse av en logisk operasjon, som utfører en transformering invers til transformeringen utført av den normale datatransformeringsenheten (FL) hvis de andre nøkkel-data er en identisk nøkkel til de første nøkkeldata.
13. Datamaskinprogram omfattende datamaskinprogramkodemidler tilpasset til å utføre trinnene ifølge fremgangsmåten i krav 11 når datamaskin programmet kjøres på en datamaskin.
14. Datamaskinlesbart bærermedium som bærer det datamaskinutførbare program ifølge det foregående krav.
NO20015461A 2000-03-09 2001-11-08 Blokkryptogram-apparat som benytter hjelpetransformasjon NO333209B1 (no)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000064614 2000-03-09
PCT/JP2001/001796 WO2001067425A1 (fr) 2000-03-09 2001-03-08 Systeme de chiffrage de blocs utilisant la conversion auxiliaire

Publications (3)

Publication Number Publication Date
NO20015461D0 NO20015461D0 (no) 2001-11-08
NO20015461L NO20015461L (no) 2002-01-07
NO333209B1 true NO333209B1 (no) 2013-04-08

Family

ID=18584290

Family Applications (1)

Application Number Title Priority Date Filing Date
NO20015461A NO333209B1 (no) 2000-03-09 2001-11-08 Blokkryptogram-apparat som benytter hjelpetransformasjon

Country Status (16)

Country Link
US (5) US7864950B2 (no)
EP (7) EP1686719B1 (no)
JP (3) JP4127472B2 (no)
KR (8) KR100465073B1 (no)
CN (5) CN100557663C (no)
AT (3) ATE419692T1 (no)
AU (5) AU767323B2 (no)
CA (5) CA2449672C (no)
DE (3) DE60139280D1 (no)
DK (7) DK1686720T3 (no)
ES (7) ES2327263T3 (no)
MX (1) MXPA01011323A (no)
NO (1) NO333209B1 (no)
SG (4) SG124293A1 (no)
TW (1) TWI275049B (no)
WO (1) WO2001067425A1 (no)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2327263T3 (es) * 2000-03-09 2009-10-27 Mitsubishi Denki Kabushiki Kaisha Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable.
JP3724399B2 (ja) * 2001-01-23 2005-12-07 株式会社日立製作所 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
JP4128395B2 (ja) * 2002-05-23 2008-07-30 三菱電機株式会社 データ変換装置
JP3503638B1 (ja) * 2002-09-26 2004-03-08 日本電気株式会社 暗号装置及び暗号プログラム
DE10345457A1 (de) * 2003-09-30 2005-04-28 Infineon Technologies Ag Verfahren und Vorrichtung zur Ver- und Entschlüsselung
US7545928B1 (en) * 2003-12-08 2009-06-09 Advanced Micro Devices, Inc. Triple DES critical timing path improvement
US7580519B1 (en) 2003-12-08 2009-08-25 Advanced Micro Devices, Inc. Triple DES gigabit/s performance using single DES engine
US7257225B2 (en) * 2003-12-29 2007-08-14 American Express Travel Related Services Company, Inc. System and method for high speed reversible data encryption
JP3933647B2 (ja) * 2004-05-10 2007-06-20 シャープ株式会社 消費電力解析防止機能つき半導体装置
US7885405B1 (en) 2004-06-04 2011-02-08 GlobalFoundries, Inc. Multi-gigabit per second concurrent encryption in block cipher modes
US7526085B1 (en) 2004-07-13 2009-04-28 Advanced Micro Devices, Inc. Throughput and latency of inbound and outbound IPsec processing
US7461108B2 (en) * 2004-09-14 2008-12-02 Panasonic Corporation Barrel shift device
US7783037B1 (en) 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
JP4859536B2 (ja) * 2006-05-30 2012-01-25 三菱電機株式会社 データ変換装置
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
JP5050454B2 (ja) * 2006-09-01 2012-10-17 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
CN100436555C (zh) * 2006-09-06 2008-11-26 深圳市永仁包装印刷材料有限公司 一种水溶性金银墨及其制备方法
JP5055993B2 (ja) 2006-12-11 2012-10-24 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
JP4857230B2 (ja) * 2007-03-30 2012-01-18 株式会社日立製作所 疑似乱数生成装置及びそれを用いた暗号化処理装置
US7890565B2 (en) * 2007-04-30 2011-02-15 Lsi Corporation Efficient hardware implementation of tweakable block cipher
CN100495961C (zh) 2007-11-19 2009-06-03 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理方法
CN100581101C (zh) * 2007-11-19 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于分组密码算法的加密处理设备
JP5272417B2 (ja) * 2008-01-21 2013-08-28 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
US20090186966A1 (en) * 2008-01-22 2009-07-23 Sabic Innovative Plastics Ip B.V. Thermoplastic polyestercarbonate composition
JP5200949B2 (ja) * 2009-01-16 2013-06-05 富士通株式会社 暗号処理装置
US8832464B2 (en) * 2009-03-31 2014-09-09 Oracle America, Inc. Processor and method for implementing instruction support for hash algorithms
US20100246815A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the kasumi cipher algorithm
US20100250965A1 (en) * 2009-03-31 2010-09-30 Olson Christopher H Apparatus and method for implementing instruction support for the advanced encryption standard (aes) algorithm
US9317286B2 (en) * 2009-03-31 2016-04-19 Oracle America, Inc. Apparatus and method for implementing instruction support for the camellia cipher algorithm
US8654970B2 (en) * 2009-03-31 2014-02-18 Oracle America, Inc. Apparatus and method for implementing instruction support for the data encryption standard (DES) algorithm
JP5296217B2 (ja) * 2009-09-24 2013-09-25 株式会社東芝 鍵スケジュール装置および方法
JP2011130340A (ja) * 2009-12-21 2011-06-30 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム
KR101334040B1 (ko) * 2010-01-20 2013-11-28 한국전자통신연구원 대칭키 암호화 시스템의 마스킹 연산 방법 및 장치
JP5539024B2 (ja) * 2010-05-27 2014-07-02 キヤノン株式会社 データ暗号化装置およびその制御方法
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
US20120079462A1 (en) * 2010-09-24 2012-03-29 SoftKrypt LLC Systems and methods of source software code obfuscation
FR2966953B1 (fr) * 2010-11-02 2015-08-28 St Microelectronics Rousset Procede de contremesure cryptographique par derivation d'une donnee secrete
US8958550B2 (en) * 2011-09-13 2015-02-17 Combined Conditional Access Development & Support. LLC (CCAD) Encryption operation with real data rounds, dummy data rounds, and delay periods
JP5481455B2 (ja) * 2011-09-27 2014-04-23 株式会社東芝 暗号処理装置
JP5338945B2 (ja) * 2012-05-22 2013-11-13 ソニー株式会社 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム
JP5772934B2 (ja) * 2013-12-02 2015-09-02 ソニー株式会社 データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN105215593A (zh) * 2014-07-01 2016-01-06 长治市澳瑞特欣鑫健身器材有限公司 一种篮圈焊接模具
CN104917610B (zh) * 2015-06-15 2018-03-06 上海交通大学 基于量子真随机数的通信中继服务器安全系统及方法
KR20170002836A (ko) 2015-06-30 2017-01-09 주식회사 피엔아이티 Nfc를 이용한 미아방지용 캐릭터 목걸이.
JP6890589B2 (ja) 2015-12-15 2021-06-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 計算デバイス及び方法
US10157289B2 (en) * 2016-09-26 2018-12-18 Bank Of America Corporation Progressive key rotation for format preserving encryption (FPE)
CN112805770B (zh) * 2018-10-10 2023-10-03 日本电信电话株式会社 秘密右移位运算系统及方法、秘密除法运算系统及方法、秘密计算装置以及记录介质
CN109756231B (zh) * 2018-12-27 2023-01-31 北京思朗科技有限责任公司 循环移位处理装置及方法
US11632231B2 (en) * 2020-03-05 2023-04-18 Novatek Microelectronics Corp. Substitute box, substitute method and apparatus thereof
KR20230110668A (ko) 2022-01-16 2023-07-25 주식회사 네이처라인즈 반려동물용 휠 운동장치

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2641285B2 (ja) 1988-05-23 1997-08-13 三菱電機株式会社 ガロア体除算回路及び乗除算共用回路
JPH0651698A (ja) * 1992-06-03 1994-02-25 Nippon Telegr & Teleph Corp <Ntt> データ攪拌装置およびデータ攪拌方法
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
US5623549A (en) * 1995-01-30 1997-04-22 Ritter; Terry F. Cipher mechanisms with fencing and balanced block mixing
US5673319A (en) * 1995-02-06 1997-09-30 International Business Machines Corporation Block cipher mode of operation for secure, length-preserving encryption
US5594797A (en) * 1995-02-22 1997-01-14 Nokia Mobile Phones Variable security level encryption
JP2772937B2 (ja) * 1995-07-11 1998-07-09 太陽誘電株式会社 チップ型電子部品の製造方法
KR100250803B1 (ko) * 1995-09-05 2000-04-01 다니구찌 이찌로오 데이타 변환장치 및 데이타 변환방법
JPH0990870A (ja) 1995-09-27 1997-04-04 Nec Corp 基本変換方法、暗号化方法、基本変換回路および暗号装置
JPH09269727A (ja) * 1996-03-29 1997-10-14 Toshiba Corp 暗号化方法および暗号化装置
TW333630B (en) * 1996-05-22 1998-06-11 Matsushita Electric Ind Co Ltd An encryption apparatus for ensuring security in communication between devices
US6028939A (en) * 1997-01-03 2000-02-22 Redcreek Communications, Inc. Data security system and method
JP3515306B2 (ja) * 1997-01-29 2004-04-05 日本電信電話株式会社 逆元演算装置
TW367465B (en) * 1997-04-23 1999-08-21 Matsushita Electric Ind Co Ltd Cryptographic processing apparatus cryptographic processing method, and storage medium storing cryptographic processing program for improving security without greatly increasing hardware scale and processing time
JP3351305B2 (ja) * 1997-08-07 2002-11-25 日本電気株式会社 暗号装置及び暗号装置を実現するプログラムを記録したコンピューターが読みとり可能な記録媒体
US6510228B2 (en) * 1997-09-22 2003-01-21 Qualcomm, Incorporated Method and apparatus for generating encryption stream ciphers
KR100296958B1 (ko) * 1998-05-06 2001-09-22 이석우 블록 데이터 암호화 장치
US6269163B1 (en) * 1998-06-15 2001-07-31 Rsa Security Inc. Enhanced block ciphers with data-dependent rotations
JP3600454B2 (ja) * 1998-08-20 2004-12-15 株式会社東芝 暗号化・復号装置、暗号化・復号方法、およびそのプログラム記憶媒体
JP2000066586A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
TW556111B (en) * 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
ES2327263T3 (es) * 2000-03-09 2009-10-27 Mitsubishi Denki Kabushiki Kaisha Aparato de cifrado de bloques y procedimiento de cifrado de bloques que incluye la programacion de una clave de longitud variable.

Also Published As

Publication number Publication date
US20060050874A1 (en) 2006-03-09
EP1686721B1 (en) 2013-03-06
US7864950B2 (en) 2011-01-04
KR100468338B1 (ko) 2005-01-28
DK1689113T3 (da) 2013-03-25
AU2003213317A1 (en) 2003-08-14
KR100449594B1 (ko) 2004-09-22
SG124293A1 (en) 2006-08-30
US7760871B2 (en) 2010-07-20
EP1193665B8 (en) 2012-07-11
CA2449672C (en) 2005-05-17
KR100465072B1 (ko) 2005-01-13
AU2003213315B2 (en) 2004-04-01
NO20015461L (no) 2002-01-07
CN1734527B (zh) 2011-04-06
ES2405942T3 (es) 2013-06-04
EP1689113A2 (en) 2006-08-09
CA2449662A1 (en) 2001-09-13
AU2003213317B2 (en) 2004-04-01
EP1686719B1 (en) 2008-12-31
AU4105801A (en) 2001-09-17
DE60139280D1 (de) 2009-08-27
JP4598744B2 (ja) 2010-12-15
KR20020016624A (ko) 2002-03-04
KR20040066872A (ko) 2004-07-27
EP1689113B1 (en) 2013-03-06
CN100392688C (zh) 2008-06-04
JP5242642B2 (ja) 2013-07-24
AU2003213312A1 (en) 2003-08-14
DK1193665T3 (da) 2012-04-02
CA2449669A1 (en) 2001-09-13
SG124292A1 (en) 2006-08-30
DK1686720T3 (da) 2009-07-20
CA2449665A1 (en) 2001-09-13
US7697684B2 (en) 2010-04-13
KR100465070B1 (ko) 2005-01-13
KR100465073B1 (ko) 2005-01-13
AU2003213318A1 (en) 2003-08-14
US7822196B2 (en) 2010-10-26
KR20040066876A (ko) 2004-07-27
NO20015461D0 (no) 2001-11-08
AU2003213315A1 (en) 2003-08-14
EP1689114B1 (en) 2009-07-15
AU2003213318B2 (en) 2004-07-15
ATE419692T1 (de) 2009-01-15
ES2616544T3 (es) 2017-06-13
CN100583192C (zh) 2010-01-20
MXPA01011323A (es) 2003-08-01
EP1689113A3 (en) 2006-08-30
DE60137269D1 (de) 2009-02-12
CN1364284A (zh) 2002-08-14
AU2003213312B2 (en) 2004-03-25
KR20040066871A (ko) 2004-07-27
EP1686720A1 (en) 2006-08-02
EP1193665A4 (en) 2006-06-14
CA2373432A1 (en) 2001-09-13
EP1686720B1 (en) 2009-05-20
AU2003213312C1 (en) 2004-11-25
EP1686719A1 (en) 2006-08-02
CA2449662C (en) 2004-08-17
SG124291A1 (en) 2006-08-30
CA2373432C (en) 2005-02-08
CA2449672A1 (en) 2001-09-13
AU767323B2 (en) 2003-11-06
CN1734526A (zh) 2006-02-15
CN1737880A (zh) 2006-02-22
KR20040066875A (ko) 2004-07-27
TWI275049B (en) 2007-03-01
CA2449665C (en) 2005-06-21
CN100557663C (zh) 2009-11-04
EP1686722B1 (en) 2016-12-07
KR100465071B1 (ko) 2005-01-13
DK1686719T3 (da) 2009-03-30
ES2382454T3 (es) 2012-06-08
DK1689114T3 (da) 2009-09-07
EP1686722A1 (en) 2006-08-02
KR20040066874A (ko) 2004-07-27
KR100465075B1 (ko) 2005-01-13
JP2011018065A (ja) 2011-01-27
KR20040066870A (ko) 2004-07-27
CN1734527A (zh) 2006-02-15
US7760870B2 (en) 2010-07-20
EP1193665A1 (en) 2002-04-03
US20060050872A1 (en) 2006-03-09
CA2449669C (en) 2005-02-15
EP1193665B1 (en) 2012-02-15
DK1686722T3 (en) 2017-02-20
KR100465074B1 (ko) 2005-01-13
ES2327263T3 (es) 2009-10-27
DE60138773D1 (de) 2009-07-02
JP4127472B2 (ja) 2008-07-30
ATE545991T1 (de) 2012-03-15
JP2007041620A (ja) 2007-02-15
KR20040066877A (ko) 2004-07-27
US20060045265A1 (en) 2006-03-02
EP1689114A3 (en) 2006-09-06
ES2407463T3 (es) 2013-06-12
US20060050873A1 (en) 2006-03-09
ATE431983T1 (de) 2009-06-15
DK1686721T3 (da) 2013-03-25
WO2001067425A1 (fr) 2001-09-13
CN1734526B (zh) 2013-09-18
EP1689114A2 (en) 2006-08-09
CN1808526A (zh) 2006-07-26
SG124294A1 (en) 2006-08-30
ES2329819T3 (es) 2009-12-01
ES2319560T3 (es) 2009-05-08
EP1686721A1 (en) 2006-08-02
US20020159599A1 (en) 2002-10-31

Similar Documents

Publication Publication Date Title
NO333209B1 (no) Blokkryptogram-apparat som benytter hjelpetransformasjon
US20060177052A1 (en) S-box encryption in block cipher implementations
JP2007041620A5 (no)
EP4248433A1 (en) High-speed circuit combining aes and sm4 encryption and decryption
Kwan et al. A general purpose technique for locating key scheduling weaknesses in DES-like cryptosystems

Legal Events

Date Code Title Description
MK1K Patent expired