FRØ

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 29. maj 2017; checks kræver 3 redigeringer . Denne artikel handler om krypteringsalgoritmen. For en metode til måling af indhylningen og fasen af ​​ultrakorte laserimpulser, se artiklen Frequency-resolved optical gating .
FRØ
Skaber D. Georgoudis, D. Leroux og B. Chavet
Oprettet 1998 _
Nøglestørrelse 128/192/256 bit
Blokstørrelse 128 bit
Antal runder otte
Type Egen

FROG  er en symmetrisk blokcifre med en uortodoks struktur, en af ​​deltagerne i den amerikanske AES -konkurrence , udviklet af det costaricanske firma TecApro Internacional.

Oprettelseshistorie

FROG-algoritmen blev skabt i 1998 af tre specialister fra Tecnologia Apropriada (TesArgo) fra den lille latinamerikanske stat Costa Rica (tidligere ukendt for sin udvikling inden for kryptografi ): Dianelos Georgoudis, Damian Leroux og Billy Simon Chavez Simon Chaves

Chiffervarianten indsendt til konkurrencen overholder AES-kravene, idet den har en blok svarende til 128 bit og en nøglelængde på 128, 192 eller 256 bit. Selve algoritmen tillader teoretisk nøgler fra 40 til 1000 bits i længden.

AES-konkurrence

FROG-cifferet blev sat op til konkurrencen af ​​TecApro Internacional, en international virksomhed registreret i Costa Rica. Udviklerne af algoritmen - D. Georgoudis, D. Leroux og B. Chaves - er mildest talt lidt kendte i den kryptografiske verden. Ifølge forfatterne er FROG "en ny chiffer med en uortodoks struktur." Grundlaget for krypteringens styrke er den hemmelige interne nøgle til et komplekst design, mens selve krypterings-/dekrypteringsoperationerne er ekstremt enkle.

I august viste TWOFISH- teamet (Wagner, Ferguson og Schneier), at FROG-chiffernøglen kunne knækkes med omkring 257 arbejdskraft .

Hvad angår styrken af ​​chiffer, er denne indikator meget sværere at kontrollere. Under den foreløbige evalueringsfase af første runde blev et betydeligt antal kryptoanalytiske resultater præsenteret på NIST-webstedet og direkte på AES2-konferencen, på den ene eller anden måde "plettet" omdømmet for næsten alle kandidat-cifre. Men hvis vi ikke taler om de åbenlyse outsidere LOKI , FROG, MAGENTA og HPC , så blev der ikke fundet nogen åbenlyse svagheder i algoritmerne.

Grundlæggende karakteristika og struktur af algoritmen

AES -konkurrencen krævede, at algoritmerne, der deltog i konkurrencen, understøttede en 128-bit blokstørrelse af krypterede data samt 128-, 192- og 256-bit krypteringsnøgler. Udviklerne af FROG-algoritmen foreslog imidlertid et bredere sæt værdier for disse parametre:

Uanset nøgle- og blokstørrelsen udføres kryptering i 8 runder. I hver runde udføres følgende handlinger på hver byte i den krypterede blok (forudsat at blokkene er 16 bytes store):

  1. Værdien af ​​den aktuelle (N'te) byte lægges modulo 2 til værdien af ​​den samme byte i 1. del af den runde nøgle (nøgleudvidelsesproceduren er beskrevet nedenfor).
  2. Den anden del af den runde nøgle er en permutationstabel. En byte vælges fra denne tabel, hvis serienummer er lig med værdien beregnet i det første trin. Værdien af ​​den valgte byte erstatter værdien af ​​den aktuelle byte i den krypterede datablok.
  3. Værdien af ​​den næste byte (N + 1) er modulo 2 med værdien valgt i trin 2. Det opnåede resultat erstatter den gamle værdi af N + 1. byte af den krypterede datablok.
  4. Den tredje del af den runde nøgle er indekstabellen. Værdien af ​​den N'te byte i indekstabellen definerer en anden modificerbar byte af den krypterede datablok, som modificeres på nøjagtig samme måde som den N + 1. byte (det vil sige, modulo 2 lægges til værdien opnået i trin 2) .

Nøgleudvidelsesprocedure

Denne procedure bør opnå 8 rundnøgler fra krypteringsnøglen - en for hver runde af algoritmen. Den runde nøgle består af tre undernøgler:

For at algoritmen skal fungere, er det således nødvendigt at generere 2304 bytes nøgleinformation.

  1. Ved at "udbrede" krypteringsnøglen (det vil sige, at værdien af ​​krypteringsnøglen gentages det nødvendige antal gange, og krypteringsnøglen for denne algoritme, som nævnt ovenfor, har en størrelse på 5 til 125 bytes), de første 2304 -byte midlertidigt dataarray genereres. De bytes af den sidste "replikerede" kopi af nøglen, der går ud over grænsen for det påkrævede 2304-byte-array (f.eks. de sidste 71 bytes af en 125-byte nøgle - nøglen med den maksimale størrelse) kasseres.
  2. En lignende "multiplikation" af 251-byte hovednøglefragmentet danner det andet 2304-byte midlertidige dataarray. Hovednøglen er en specielt valgt konstant på 251 bytes i størrelse. Byteværdien for masternøglen (startende fra den lave byte) er vist i tabellen.
  3. Ved at anvende modulo 2 addition til de tilsvarende bits af de to arrays genereret i trin 1 og 2, opnås en midlertidig udvidet nøgle.
  4. Formatering af nøglen opnået i trin 3 (dvs. opdeling af den i 8 segmenter - efter antallet af runder - 16 + 256 + 16 bytes i størrelse, samt yderligere behandling, som vil blive beskrevet senere), giver den foreløbige udvidede nøgle af algoritmen.
  5. Pre-spread-nøglen bruges til at kryptere et 2304-byte-array fyldt med nuller. Kryptering udføres i cipher block chaining mode , hvor de første 16 bytes af den originale krypteringsnøgle bruges som initialiseringsvektor (IV), hvoraf den allerførste også tilføjes modulo 2 med et tal svarende til størrelsen af ​​krypteringen indtast bytes (dette er nødvendigt for at opnå forskellig IV for nøgler af forskellig størrelse, men med de samme første 16 bytes). Resultatet af operationen er en udvidet nøgle fyldt med pseudo-tilfældig information.
  6. I lighed med trin 4 formateres den udvidede nøgle til at opnå otte runde nøgler med den nødvendige struktur.

Nøgleformatering

Trin 4 og 6 i nøgleudvidelsesalgoritmen formaterer en 2304-byte pseudo-tilfældig sekvens for at producere 8 runde nøgler. Hvis 1. del af den runde nøgle brugt til modulo 2 addition kan have en fuldstændig tilfældig struktur, så skal den korrekte permutationstabel bestå af 256 ikke-gentagende værdier fra 0 til 255, og der stilles yderligere krav til 16-byten indeks tabel.

Ved formatering udføres følgende handlinger:

hvis sådanne tabelelementer findes, ændres deres værdi til

Trin 3-5 i formateringsproceduren er værd at overveje med et eksempel. Antag, at en 6-byte indekstabel oprettes ud fra følgende 6-byte fragment af en pseudo-tilfældig sekvens:

21.247.199.108.66.239

I løkken fra 0 til 5 (trin 4) bestemmes /th byte i indekstabellen I af formlen:

som i eksemplet med ovenstående sekvens ser ud som den, der er vist i tabellen:

Resultatet er en indekstabel:

3,2,5,1,0,4

3,0,5,1,2,4

Analyse af tabellen (trin 5) giver os mulighed for at finde ud af, at denne tabel består af to kæder af led:

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

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

For at opnå den maksimale kryptografiske styrke af algoritmen skal indekstabellen dog indeholde én kæde af den maksimale størrelse. Algoritmen udført i trin 5 giver dig mulighed for at kombinere flere kæder til én.

Fordele og ulemper ved algoritmen

Som mange algoritmer såsom AES (Rijndael) eller SAFER+, er FROG byte-orienteret. I modsætning til de transformationer, der blev brugt i disse algoritmer, forklaret og forklaret af forfatterne af Rijndael og SAFER +, begrænsede forfatterne af FROG-algoritmen sig til at forklare, at en sådan usædvanlig rund struktur blev valgt for at sikre den hurtigste spredning af inputdata (det vil sige at sikre indflydelsen af ​​hver bit af krypterede data på hver chiffertekstbit i en blok).

FROG blev dog anerkendt som en af ​​de svageste deltagere i AES-konkurrencen; den fandt mange mangler, især:

FROG-algoritmen nåede således ikke finalen i AES-konkurrencen.

Litteratur