GRODA

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 29 maj 2017; kontroller kräver 3 redigeringar . Den här artikeln handlar om krypteringsalgoritmen. För en metod för att mäta enveloppen och fasen för ultrakorta laserpulser, se artikeln Frequency-resolved optical gating .
GRODA
Skapare D. Georgoudis, D. Leroux och B. Chavet
Skapad 1998 _
Nyckelstorlek 128/192/256 bitar
Block storlek 128 bitar
Antal omgångar åtta
Sorts Egen

FROG  är ett symmetriskt blockchiffer med en oortodox struktur, en av deltagarna i den amerikanska AES- tävlingen , utvecklad av det costaricanska företaget TecApro Internacional.

Skapande historia

FROG-algoritmen skapades 1998 av tre specialister från Tecnologia Apropriada (TesArgo) från den lilla latinamerikanska delstaten Costa Rica (tidigare okänd för sin utveckling inom kryptografi ): Dianelos Georgoudis, Damian Leroux och Billy Simon Chavez Simon Chaves

Chiffervarianten som skickats in för tävlingen uppfyller AES-kraven, med ett block lika med 128 bitar och en nyckellängd på 128, 192 eller 256 bitar. Algoritmen i sig tillåter teoretiskt sett nycklar från 40 till 1000 bitar i längd.

AES-tävling

FROG-chifferet lades upp för tävlingen av TecApro Internacional, ett internationellt företag registrerat i Costa Rica. Utvecklarna av algoritmen - D. Georgoudis, D. Leroux och B. Chaves - människor, för att uttrycka det milt, lite kända i den kryptografiska världen. Enligt författarna är FROG "ett nytt chiffer med en oortodox struktur." Grunden för chifferets styrka är den hemliga interna nyckeln för en komplex design, medan själva krypterings-/dekrypteringsoperationerna är extremt enkla.

I augusti visade TWOFISH- teamet (Wagner, Ferguson och Schneier) att FROG-chiffernyckeln kunde knäckas med cirka 257 arbetskrafter .

När det gäller chifferns styrka är denna indikator mycket svårare att kontrollera. Under det preliminära utvärderingsskedet av den första omgången presenterades ett betydande antal kryptoanalytiska resultat på NIST-webbplatsen och direkt på AES2-konferensen, på ett eller annat sätt "skadlade" ryktet för nästan alla kandidatchiffer. Men om vi inte pratar om de uppenbara outsiderna LOKI , FROG, MAGENTA och HPC , så hittades inga uppenbara svagheter i algoritmerna.

Grundläggande egenskaper och struktur för algoritmen

AES -tävlingen krävde att algoritmerna som deltog i tävlingen stödde en 128-bitars blockstorlek av krypterad data, såväl som 128-, 192- och 256-bitars krypteringsnycklar. Utvecklarna av FROG-algoritmen föreslog dock en bredare uppsättning värden för dessa parametrar:

Oavsett nyckel- och blockstorlek utförs kryptering i 8 omgångar. I varje omgång utförs följande åtgärder på varje byte i det krypterade blocket (förutsatt att blocken är 16 byte stora):

  1. Värdet på den aktuella (N:te) byten läggs till modulo 2 till värdet för samma byte i den första delen av den runda nyckeln (nyckelexpansionsproceduren beskrivs nedan).
  2. Den andra delen av den runda nyckeln är en permutationstabell. En byte väljs från denna tabell, vars serienummer är lika med det värde som beräknades i det första steget. Värdet på den valda byten ersätter värdet på den aktuella byten i det krypterade datablocket.
  3. Värdet för nästa byte (N + 1) är modulo 2 med värdet valt i steg 2. Det erhållna resultatet ersätter det gamla värdet på N + 1:e byten i det krypterade datablocket.
  4. Den tredje delen av den runda nyckeln är indextabellen. Värdet på den N:e byten i indextabellen definierar en annan modifierbar byte i det krypterade datablocket, som modifieras på exakt samma sätt som den N + 1:e byten (det vill säga, modulo 2 läggs till värdet som erhålls i steg 2) .

Nyckelexpansionsprocedur

Denna procedur bör erhålla 8 runda nycklar från krypteringsnyckeln - en för varje omgång av algoritmen. Den runda nyckeln består av tre undernycklar:

För att algoritmen ska fungera är det alltså nödvändigt att generera 2304 byte med nyckelinformation.

  1. Genom att "propagera" krypteringsnyckeln (det vill säga värdet på krypteringsnyckeln upprepas det erforderliga antalet gånger, och krypteringsnyckeln för denna algoritm, som nämnt ovan, har en storlek på 5 till 125 byte), den första 2304 -byte temporär datamatris genereras. Byten av den sista "replikerade" kopian av nyckeln som går utanför gränsen för den erforderliga 2304-byte arrayen (till exempel de sista 71 byten av en 125-byte nyckel - nyckeln med maximal storlek) kasseras.
  2. En liknande "multiplikation" av 251-byte huvudnyckelfragmentet bildar den andra 2304-byte temporära datamatrisen. Huvudnyckeln är en speciellt vald konstant på 251 byte stor. Bytevärdet för huvudnyckeln (med början från den låga byten) visas i tabellen.
  3. Genom att applicera modulo 2-tillägg till motsvarande bitar av de två arrayerna som genereras i steg 1 och 2, erhålls en temporärt utökad nyckel.
  4. Att formatera nyckeln som erhölls i steg 3 (dvs. att dela upp den i 8 segment - med antalet omgångar - 16 + 256 + 16 byte i storlek, såväl som ytterligare bearbetning, som kommer att beskrivas senare), ger den preliminära utökade nyckeln av algoritmen.
  5. Den förspridda nyckeln används för att kryptera en 2304-byte array fylld med nollor. Kryptering utförs i chifferblockkedjeläget , där de första 16 byten av den ursprungliga krypteringsnyckeln används som initieringsvektor (IV), varav den allra första också läggs till modulo 2 med ett nummer lika med storleken på krypteringen nyckel in byte (detta är nödvändigt för att få olika IV för nycklar av olika storlekar, men med samma första 16 byte). Resultatet av operationen är en utökad nyckel fylld med pseudo-slumpmässig information.
  6. I likhet med steg 4 formateras den utökade nyckeln för att erhålla åtta runda nycklar med den nödvändiga strukturen.

Nyckelformatering

Steg 4 och 6 i nyckelexpansionsalgoritmen formaterar en 2304-byte pseudo-slumpmässig sekvens för att producera 8 runda nycklar. Om den första delen av den runda nyckeln som används för modulo 2-addition kan ha en helt slumpmässig struktur, måste den korrekta permutationstabellen bestå av 256 icke-repeterande värden från 0 till 255, och ytterligare krav ställs på 16-byten indextabell.

Följande åtgärder utförs vid formatering:

om sådana tabellelement finns ändras deras värde till

Steg 3-5 i formateringsproceduren är värda att överväga med ett exempel. Anta att en 6-byte indextabell skapas från följande 6-byte fragment av en pseudo-slumpmässig sekvens:

21,247,199,108,66,239

I slingan från 0 till 5 (steg 4) bestäms /th byte i indextabellen I av formeln:

som i exemplet på ovanstående sekvens ser ut som den som visas i tabellen:

Resultatet är en indextabell:

3,2,5,1,0,4

3,0,5,1,2,4

Analys av tabellen (steg 5) låter oss ta reda på att denna tabell består av två länkkedjor:

3→1→2→5→4→2→0→3

3→1→0→3 och 5→4→2→5

Men för att uppnå den maximala kryptografiska styrkan hos algoritmen måste indextabellen innehålla en kedja av maximal storlek. Algoritmen som utfördes i steg 5 låter dig kombinera flera kedjor till en.

Fördelar och nackdelar med algoritmen

Liksom många algoritmer som AES (Rijndael) eller SAFER+, är FROG byte-orienterad. Men i motsats till de transformationer som används i dessa algoritmer förklarade och förklarade av författarna till Rijndael och SAFER +, begränsade författarna till FROG-algoritmen sig till att förklara att en sådan ovanlig rund struktur valdes för att säkerställa den snabbaste spridningen av indata (det vill säga att säkerställa påverkan av varje bit av krypterad data på varje chiffertextbitar inom ett block).

FROG erkändes dock som en av de svagaste deltagarna i AES-tävlingen; den fann många brister, särskilt:

FROG-algoritmen nådde alltså inte finalen i AES-tävlingen.

Litteratur