REDOC

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 30. december 2016; checks kræver 5 redigeringer .
REDOC II
Skaber Michael Wood
Oprettet 1990 _
offentliggjort 1990 _
Nøglestørrelse 70 til 17920 bit, effektiv: 70 bit
Blokstørrelse 70 bit
Antal runder ti
Type egen
REDOC III
Skaber Michael Wood
Nøglestørrelse Variabel, op til 2560 bytes (20480 bits)
Blokstørrelse 80 bit
Antal runder ti
Type egen

REDOC er en symmetrisk blokkryptoalgoritme udviklet af Michael Wood i 1990 for Cryptech og kaldet REDOC II. Alle operationer - substitutioner , permutationer, XOR udføres med bytes, hvilket gør det muligt at implementere det effektivt programmatisk. Algoritmen bruger nøgle- og originaltekstafhængige sæt af tabeller ( S-bokse ) ved hjælp af forskellige tabelfunktioner . Algoritmen er kendetegnet ved brugen af ​​masker , dvs. tal hentet fra nøgletabellen. Masker bruges til at vælge tabellerne for en bestemt funktion i en bestemt runde. Dette bruger både maskeværdien og dataværdien [1] .

Algoritme

REDOC-II er et ti-runders kryptosystem (men det er blevet foreslået, at en 1- eller to-runders version er sikker) [2] . Hver runde i den originale version af REDOC II involverer et sæt manipulationer på en 10 byte blok. Syv bit fra hver byte bruges til dataværdier, og den ottende bit er paritetsbit .

Men da kun de første 7 bits af hver byte bruges til kryptering , er det alfabetiske rum for hver byte fra 0 til 127. Og alle operationer udføres modulo 128 [3] .

Nøglængden i den originale version af REDOC II er 10 bytes. Den effektive nøglestørrelse er 70 bit. Det skal præciseres, at REDOC II kan understøtte en nøglelængde i området fra 70 til 17920 bits [3] .

Hver runde består af seks faser:

  1. Permutation variabel fase ,
  2. Den første fase af XOR-variablenøglen ,
  3. Den anden fase af XOR-variablenøglen ,
  4. Variabel enklavefase ,
  5. Første fase af variabel substitution ,
  6. Den anden fase af variabel substitution .

Under hver fase behandles dataene ved hjælp af tabeller [4] .

Typer af tabeller

1) 16 foruddefinerede opslagstabeller, der bruges i variable opslagsfaser. (fast)

2) 128 foruddefinerede permutationstabeller brugt af variable permutationsfaser. (fast)

3) 128 foruddefinerede enklavetabeller brugt af variable enklavefaser. (fast)

4) Derudover beregnes 128 ti-byte nøgletabeller og ni masketabeller for hver nøgle af nøglebehandlingsalgoritmen. (Beregnerbar, oprettet når kryptering initialiseres) [3] [4]

Beskrivelse af faser

Faser af variabel permutation

I hver fase af permutationsvariablen tilføjes alle ti bytes data (modulo 128), og resultatet XORed med en specifik byte fra masketabellen. Den resulterende værdi er antallet af permutationstabellen. Alle databytes erstattes af den valgte permutation [4] .

Variable nøglefaser XOR

En byte vælges fra dataene og den tilsvarende byte fra masketabellen, mellem hvilke XOR-operationen udføres. Den resulterende værdi er nøgletabellens nummer. (Det er værd at huske på, at 7 bits fra hver byte bruges til kryptering. Derfor ligger det resulterende nøgletabelnummer i området fra 0 til 127). Alle databytes, undtagen den valgte, er XORed med de tilsvarende bytes fra nøgletabellen med det modtagne nummer.

En sådan operation udføres for alle bytes fra dataene. [fire]

Variable substitutionsfaser

En byte vælges fra dataene og den tilsvarende byte fra masketabellen, mellem hvilke XOR-operationen udføres. Den resulterende værdi, taget modulo 16, er nummeret på substitutionstabellen. Alle bytes, undtagen den valgte, erstattes med værdier fra substitutionstabellen med det modtagne nummer.

En sådan operation udføres for alle bytes fra dataene [4] .

Variable enklavefaser

Den foruddefinerede enklavetabel har fem rækker og 3 kolonner. Hver post indeholder et tal fra 1 til 5. Der er 2 egenskaber, som enklavetabellen skal opfylde:

Dette skyldes, at tabellen behandles linje for linje og som følger: Hvert tal i enklavetabellen betyder en byteposition. De tre bytes, der er specificeret ved hjælp af en række i tabellen, summeres (modulo 128). Byten angivet i den første kolonne erstattes af det modtagne beløb. [3]

Hver variabel enklavefase bruger 4 enklavetabeller som følger:

  1. Opdeler blokke i to underblokke på hver 5 bytes. Underbokse kaldes venstre og højre halvdele.
  2. XOR mellem to bytes fra venstre halvdel og to bytes fra masketabellen. De resulterende 2 bytes er pointere til to enklavetabeller.
  3. Behandling af venstre halvdel med den første enklavetabel specificeret af den modtagne byte.
  4. Behandling af den modtagne venstre halvdel af den anden enklavetabel specificeret ved hjælp af den modtagne byte.
  5. XOR mellem venstre og højre halvdel.
  6. XOR mellem de to bytes i den modtagne højre halvdel og de to bytes fra masketabellen. De resulterende to bytes er pointere til to enklavetabeller.
  7. Behandling af den modtagne højre halvdel af den første tabel i enklaven angivet af den modtagne byte.
  8. Behandling af den modtagne højre halvdel af den anden tabel i enklaven angivet af den modtagne byte.
  9. XOR af højre og venstre halvdel.
  10. Sammenkædning af venstre halvdel med den opnåede værdi af det foregående trin [5] .


Nøgleudvidelsesalgoritme og maskegenerering

I den originale version af REDOC-II er nøgletabellen og masketabellen udfyldt ved hjælp af K-tasten på 70 bit.

Algoritme til udfyldning af nøgletabel.

Algoritmen til at udfylde nøgletabellen er som følger:

  1. De første fem bytes af nøglen summeres modulo 128. Resultatet er antallet af permutationstabellen.
  2. De resterende fem nøgleværdier summeres modulo 16. Resultatet er substitutionstabelnummeret.
  3. Den oprindelige nøgle udsættes for en substitutions-permutation ved hjælp af substitutions-permutation-tabellerne, hvis numre blev opnået tidligere. Resultatet er den behandlede nøgle K'.
  4. Nøglebytes K' fra den tredje til den syvende summeres modulo 32. Resultatet er nummeret på enklavetabellen.
  5. Nøglen K' behandles af den variable enklavefase. Resultatet er nøglen Ki.
  6. Nøglen Ki skrives til den tilsvarende celle i nøgletabellen (i tilfælde af den originale nøgle er dette den første eller nul celle).
  7. Algoritmen gentages for nøglen Ki, indtil nøgletabellen er udfyldt.

I alt dannes 128 undernøgler.

Algoritme til udfyldning af maskebordet.

Algoritmen til udfyldning af maskebordet ser sådan ud:

I alt dannes 4 masker.

Pålidelighed

Brute force anses for at være den mest effektive måde at åbne nøglen på; 2.160 operationer vil være nødvendige for at nå målet . Næsten den eneste effektive kryptoanalyse var åbningen af ​​en af ​​runderne af algoritmen af ​​Thomas Kuzik, men det var ikke muligt at udvide åbningen til yderligere runder. Ved hjælp af 2300 åbne tekster blev en af ​​runderne kryptoanalyseret af Shamir og Biham , efter 4 runder blev der opnået 3 maskeværdier, men dette gav ikke succes som sådan, og i øjeblikket anses algoritmen for krypto-resistent [ 1] .

REDOC III

Der er også en meget forenklet version af algoritmen - REDOC III , skabt af Michael Wood. Der bruges en 80-bit blok, nøglelængden er variabel, den kan nå 20480 bit. Permutationer og substitutioner er udelukket, alle operationer på blokken og nøglen er kun baseret på brugen af ​​XOR, på grund af hvilken krypteringshastigheden øges betydeligt på bekostning af modstand mod differentiel kryptoanalyse . Algoritmen er baseret på 256 10-byte nøgler genereret baseret på den hemmelige nøgle, og to 10-byte maskeblokke opnået på basis af XOR 128 10-byte nøgler. Det kræver 223 klartekster at gendanne begge masker af REDOC III-algoritmen. Denne algoritme er enkel og hurtig. På en 33 MHz 80386 processor krypterer den data med en hastighed på 2,75 Mbps [1] . REDOC II-krypteringssystemet er i stand til at kryptere 800 kbps ved en clock-hastighed på 20 MHz. [6]

REDOC II-algoritmen og dens forenklede version er patenteret i USA [1] .

Noter

  1. 1 2 3 4 Schneier, B., 2002 , afsnit 13.5.
  2. MJB Robshaw, 1995 , s. 36.
  3. 1 2 3 4 Cusick and Wood, 1991 , s. 547.
  4. 1 2 3 4 5 6 Biham og Shamir, 1992 , s. 19.
  5. Biham, Shamir, 1992 , s. tyve.
  6. Cusick og Wood, 1991 , s. 546.

Litteratur