Diamant 2

Diamant 2
Skaber Michael Paul Johnson
Oprettet 1995 _
offentliggjort 1995 _
Nøglestørrelse 128 (8-65536) bits i 8-bit intervaller
Blokstørrelse 128 bit
Antal runder 10 (10-15)
Type Substitution-permutation netværk

Diamond2  er en symmetrisk blokkryptografisk algoritme udviklet af Michael Paul Johnson i 1995. Algoritmen bruger en 128-bit blok og en nøgle af vilkårlig længde, 128 bit som standard.

Sikkerhed

Formålet med at skabe chifferen var at udvikle en algoritme, der er modstandsdygtig over for alle eksisterende typer angreb med en sikkerhedsmargin i lang tid og mulighed for at bruge en simpel genereret nøgle. I dette tilfælde vælges nøglestørrelsen afhængigt af det nødvendige beskyttelsesniveau og tilgængeligheden af ​​et stort udvalg af nøglemateriale. I øjeblikket er der en række hash-funktioner med en variabel outputblok (for eksempel Skein ), der kan bruges til at skabe nøglemateriale længere end 512 bit. Samtidig hævder forfatteren, at 128 bits entropi er nødvendig for pålidelig beskyttelse. I mangel af særlige typer angreb vil et brute-force-angreb mod en 128-bit nøgle være teknisk umuligt på eksisterende hardware i en overskuelig fremtid. Dette bruger også en ret kompleks og relativt langsom funktion med at udvide og installere en nøgle. Det antages, at nøgleændringen vil blive udført meget sjældnere end krypterings- og dekrypteringsoperationerne i både software- og hardwareimplementeringer. Brugen af ​​en 128-bit blok, atypisk for ciphers under udviklingen af ​​Diamond2, er berettiget af behovet for at forhindre brute-force-angreb ved hjælp af præ-genererede tabeller.

På trods af den påståede nærhed til den ideelle chiffer, er algoritmen ikke udbredt. Selvom chifferen blev offentliggjort i 1995, har der ikke været nogen detaljeret undersøgelse af Diamond2s kryptografiske styrke i 13 år. Faktisk bruges denne blokchiffer i nogle applikationer som en af ​​de yderligere tilgængelige symmetriske krypteringsalgoritmer [1] , og chifferen er også implementeret i nogle kryptografiske biblioteker.

Beskrivelse af algoritmen

Designkoncept

  1. Lineære funktioner og kombinationer af funktioner kan ofte løses på analytiske måder, som ikke er indlysende for chifferskriveren og bør undgås. Dette inkluderer standard aritmetiske funktioner, finite field-matematik og boolsk algebra.
  2. Omvendte blokcifre med en blokstørrelse på n bit kan opfattes som en simpel substitutionsciffer over et alfabet på 2n tegn, med en nøgle, der vælger den anvendte permutation.
  3. Simple substitutionscifre kan repræsenteres med en opslagstabel eller et array, men det praktiske array, der kræves, er for stort til at være praktisk i RAM.
  4. En passende overstørrelse undergruppe af opslagstabellen kan modelleres ved blot at lægge bitvise permutationsrunder af subbloksubstitution, der tjener til at udbrede funktionelle afhængigheder ud over underblokgrænserne.

Algoritme

Blokciffer Diamond2 består af tre hoveddele: 1 - nøgleskema, 2 - substitutionstrin, 3 - permutationstrin. Kryptering og dekryptering består af n runder af substitutionsoperationer, hvor n er mindst 10. Hver substitutionsoperation tager hver af de 16 inputbytes på hver 8 bit og erstatter dem med forskellige bytes. Dette er afledt af indholdet af substitutionsarrayet baseret på bytepositionen og det runde tal. Nøgleplanlægningshandlingen udfylder de interne opslagsarrays baseret på nøglen. Mellem hver substitution bruger det indstillede permutationstrin en bitsamplingproces til at gøre hver outputbyte til en funktion af otte forskellige inputbytes. I modsætning til DES ændrer hver runde hver byte af inputblokken (i stedet for kun halvdelen af ​​inputblokken). Efter 5 runder er hver bit af outputblokken en ikke-lineær funktion af hver bit af inputblokken og hver bit af nøglen. Yderligere runder efter den femte runde bruges til at sikre, at det er vanskeligere at beregne indholdet af individuelle substitutionsarrays end et brute-force-angreb på chifferen. De tjener også til at øge antallet af mulige funktionelle afhængigheder af nøglen, hvilket gør algoritmen tættere på en ideel blokchiffer og gør krypteringsanalyse vanskeligere.

Noter

  1. Implementering af Diamond2 i DarkCrypt TC/GUI (utilgængeligt link) . Hentet 7. januar 2009. Arkiveret fra originalen 17. december 2008. 

Links