REDOC

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 30 december 2016; kontroller kräver 5 redigeringar .
REDOC II
Skapare Michael Wood
Skapad 1990 _
publiceras 1990 _
Nyckelstorlek 70 till 17920 bitar, effektiv: 70 bitar
Block storlek 70 bitar
Antal omgångar tio
Sorts egen
REDOC III
Skapare Michael Wood
Nyckelstorlek Variabel, upp till 2560 byte (20480 bitar)
Block storlek 80 bitar
Antal omgångar tio
Sorts egen

REDOC är en symmetrisk blockkrypteringsalgoritm utvecklad av Michael Wood 1990 för Cryptech och kallad REDOC II . Alla operationer - substitutioner , permutationer, XOR utförs med bytes, vilket gör att det effektivt kan implementeras programmatiskt. Algoritmen använder nyckel- och klartextberoende uppsättningar av tabeller ( S -boxar ) med olika tabellfunktioner . Algoritmen kännetecknas av användningen av masker , dvs. siffror hämtade från nyckeltabellen. Masker används för att välja tabellerna för en viss funktion i en viss omgång. Detta använder både maskvärdet och datavärdet [1] .

Algoritm

REDOC-II är ett tiorunda kryptosystem (men det har föreslagits att en 1- eller tvårunda version är säker) [2] . Varje omgång i den ursprungliga versionen av REDOC II involverar en uppsättning manipulationer på ett 10 byte block. Sju bitar från varje byte används för datavärden, och den åttonde biten är paritetsbiten .

Men eftersom endast de första 7 bitarna av varje byte används för kryptering , är det alfabetiska utrymmet för varje byte från 0 till 127. Och alla operationer utförs modulo 128 [3] .

Nyckellängden i den ursprungliga versionen av REDOC II är 10 byte. Den effektiva nyckelstorleken är 70 bitar. Det bör förtydligas att REDOC II kan stödja en nyckellängd i intervallet från 70 till 17920 bitar [3] .

Varje omgång består av sex faser:

  1. Permutationsvariabel fas ,
  2. Den första fasen av XOR-variabelnyckeln ,
  3. Den andra fasen av XOR-variabelnyckeln ,
  4. Variabel enklavfas ,
  5. Första fasen av variabel substitution ,
  6. Den andra fasen av variabel substitution .

Under varje fas bearbetas data med hjälp av tabeller [4] .

Typer av tabeller

1) 16 fördefinierade uppslagstabeller som används i variabla uppslagsfaser. (Fast)

2) 128 fördefinierade permutationstabeller som används av variabla permutationsfaser. (Fast)

3) 128 fördefinierade enklavtabeller som används av variabla enklavfaser. (Fast)

4) Dessutom beräknas 128 tio-byte nyckeltabeller och nio masktabeller för varje nyckel av nyckelbehandlingsalgoritmen. (Beräkningsbar, skapad när kryptering initieras) [3] [4]

Beskrivning av faser

Faser av variabel permutation

I varje fas av permutationsvariabeln läggs alla tio byte av data till (modulo 128), och resultatet XORed med en specifik byte från masktabellen. Det resulterande värdet är numret på permutationstabellen. Alla databytes ersätts av den valda permutationen [4] .

Variabla nyckelfaser XOR

En byte väljs från data och motsvarande byte från masktabellen, mellan vilken XOR-operationen utförs. Det resulterande värdet är nyckeltabellnumret. (Det är värt att komma ihåg att 7 bitar från varje byte används för kryptering. Därför ligger det resulterande nyckeltabellnumret i intervallet från 0 till 127). Alla databytes, exklusive den valda, XORed med motsvarande byte från nyckeltabellen med det mottagna numret.

En sådan operation utförs för alla bytes från data. [fyra]

Variabla substitutionsfaser

En byte väljs från data och motsvarande byte från masktabellen, mellan vilken XOR-operationen utförs. Det resulterande värdet, taget modulo 16, är numret på substitutionstabellen. Alla bytes, förutom den valda, ersätts med värden från substitutionstabellen med det mottagna numret.

En sådan operation utförs för alla bytes från datan [4] .

Variabla enklavfaser

Den fördefinierade enklavtabellen har fem rader och 3 kolumner. Varje post innehåller ett nummer från 1 till 5. Det finns 2 egenskaper som enklavtabellen måste uppfylla:

Detta beror på att tabellen bearbetas rad för rad och enligt följande: Varje nummer i enklavtabellen betyder en byteposition. De tre byte som specificeras med en rad i tabellen summeras (modulo 128). Byten som anges i den första kolumnen ersätts med det mottagna beloppet. [3]

Varje variabel enklavfas använder fyra enklavtabeller enligt följande:

  1. Delar upp blocken i två underblock om 5 byte vardera. Underrutor kallas vänster och höger halvor.
  2. XOR mellan två byte från den vänstra halvan och två byte från masktabellen. De resulterande 2 byten är pekare till två enklavtabeller.
  3. Bearbetar den vänstra halvan med den första enklavtabellen specificerad av den mottagna byten.
  4. Bearbetning av den mottagna vänstra halvan av den andra enklavtabellen specificerad med den mottagna byten.
  5. XOR mellan vänster och höger halva.
  6. XOR mellan de två byten i den mottagna högra halvan och de två byten från masktabellen. De resulterande två byten är pekare till två enklavtabeller.
  7. Bearbetning av den mottagna högra halvan av den första tabellen i enklaven indikerad av den mottagna byten.
  8. Bearbetning av den mottagna högra halvan av den andra tabellen i enklaven indikerad av den mottagna byten.
  9. XOR av höger och vänster halva.
  10. Sammanfogning av den vänstra halvan med det erhållna värdet från föregående steg [5] .


Nyckelexpansionsalgoritm och maskgenerering

I den ursprungliga versionen av REDOC-II fylls nyckeltabellen och masktabellen med hjälp av K-nyckeln på 70 bitar.

Nyckeltabellfyllningsalgoritm.

Algoritmen för att fylla nyckeltabellen är som följer:

  1. De första fem byten av nyckeln summeras modulo 128. Resultatet är numret på permutationstabellen.
  2. De återstående fem nyckelvärdena summeras modulo 16. Resultatet är substitutionstabellnumret.
  3. Den ursprungliga nyckeln utsätts för en substitutionspermutation med användning av substitutions-permutationstabellerna, vars nummer erhölls tidigare. Resultatet är den bearbetade nyckeln K'.
  4. Nyckelbytes K' från den tredje till den sjunde summeras modulo 32. Resultatet är numret på enklavtabellen.
  5. Nyckeln K' bearbetas av den variabla enklavfasen. Resultatet är nyckeln Ki.
  6. Nyckeln Ki skrivs till motsvarande cell i nyckeltabellen (i fallet med den ursprungliga nyckeln är detta den första eller nollcellen).
  7. Algoritmen upprepas för nyckeln Ki tills nyckeltabellen är fylld.

Totalt bildas 128 undernycklar.

Algoritm för att fylla maskbordet.

Algoritmen för att fylla masktabellen ser ut så här:

Totalt bildas 4 masker.

Tillförlitlighet

Brute force anses vara det mest effektiva sättet att öppna nyckeln, 2 160 operationer kommer att krävas för att uppnå målet . Nästan den enda effektiva kryptoanalysen var öppnandet av en av omgångarna av algoritmen av Thomas Kuzik, men det var inte möjligt att utöka öppningen till ytterligare omgångar. Med hjälp av 2300 öppna texter , kryptoanalyserades en av omgångarna av Shamir och Biham , efter 4 omgångar erhölls 3 maskvärden, men detta gav inte framgång som sådan och för närvarande anses algoritmen vara kryptoresistent [ 1] .

REDOC III

Det finns också en mycket förenklad version av algoritmen - REDOC III , skapad av Michael Wood. Ett 80-bitars block används, nyckellängden är variabel, den kan nå 20480 bitar. Permutationer och substitutioner är uteslutna, alla operationer på blocket och nyckeln är endast baserade på användningen av XOR, på grund av vilket krypteringshastigheten ökas avsevärt på bekostnad av motståndet mot differentiell kryptoanalys . Algoritmen är baserad på 256 10-byte nycklar genererade baserat på den hemliga nyckeln, och två 10-byte maskblock erhållna på basis av XOR 128 10-byte nycklar. Det krävs 223 klartexter för att framgångsrikt återställa båda maskerna i REDOC III-algoritmen. Denna algoritm är enkel och snabb. På en 33 MHz 80386-processor krypterar den data med en hastighet av 2,75 Mbps [1] . Det kryptografiska systemet REDOC II kan kryptera 800 kbps med en klockfrekvens på 20 MHz. [6]

REDOC II-algoritmen och dess förenklade version är patenterade i USA [1] .

Anteckningar

  1. 1 2 3 4 Schneier, B., 2002 , avsnitt 13.5.
  2. MJB Robshaw, 1995 , sid. 36.
  3. 1 2 3 4 Cusick och Wood, 1991 , sid. 547.
  4. 1 2 3 4 5 6 Biham och Shamir, 1992 , sid. 19.
  5. Biham, Shamir, 1992 , sid. tjugo.
  6. Cusick och Wood, 1991 , sid. 546.

Litteratur