MISTY1 | |
---|---|
Skaber | Mitsuru Matsui, Tetsuya Ichikawa, Jun Sorimachi, Toshio Tokita, Atsuhiro Yamagishi |
Oprettet | 1995 _ |
offentliggjort | 1996 [ 1 ] |
Nøglestørrelse | 128 bit |
Blokstørrelse | 64 bit |
Antal runder | 4×n (anbefalet 8) |
Type | Feistel netværk |
MISTY1 (eller MISTY-1 ) er en blokkrypteringsalgoritme skabt på basis af "nested" Feistel-netværk i 1995 af kryptologen Mitsuru Matsui sammen med en gruppe specialister for Mitsubishi Electric . MISTY er en forkortelse af Mitsubishi Improved Security Technology, samt initialerne for skaberne af algoritmen: Tetsuya Ichikawa, Jun Sorimachi, Toshio Tokita og Atsuhiro Yamagishi deltog også i udviklingen af algoritmen [2 ] . Algoritmen blev udviklet i 1995, men blev licenseret og offentliggjort i 1996.
MISTY1 er et Feistel-netværk med et variabelt antal runder (anbefalet 8, men det kan være et hvilket som helst multiplum af 4). Algoritmen arbejder med 64-bit blokke og bruger en 128-bit nøgle. Chifferen blev vinderen blandt algoritmer, der krypterer 64-bit blokke ved den europæiske NESSIE konkurrence [3] [4] . Som et resultat af analysen af algoritmen udført inden for rammerne af denne konkurrence og før den, konkluderede eksperterne, at denne algoritme ikke har nogen alvorlige sårbarheder (de bemærkede specifikt, at det er strukturen af algoritmen med indlejrede Feistel-netværk, der komplicerer kryptoanalysen betydeligt). Lignende undersøgelser blev udført inden for rammerne af CRYPTREC-projektet om valg af kryptografiske algoritmer til e-forvaltningen i Japan. Projekteksperterne satte stor pris på MISTY1-algoritmen og konkluderede, at den har en høj margin for kryptografisk styrke, algoritmen har en høj krypteringshastighed og er meget effektiv til hardwareimplementering.
MISTY1 patenteret algoritme. Den oprindelige ejer af patentet, Mitsubishi Electric, har dog meddelt, at den vil give licens på brugen gratis. [5]
MISTY er udviklet som et kryptosystem, der i praksis kan bruges af en lang række applikationssystemer, for eksempel: software til at arbejde med smart cards eller i hurtige ATM-netværk. Derfor er MISTY1-algoritmen baseret på følgende tre principper:
For at opfylde disse krav blev følgende krypteringsmetoder brugt i MISTY1-algoritmen:
MISTY1-algoritmen har en meget usædvanlig struktur - den er baseret på "indlejrede" Feistel-netværk. Først opdeles en 64-bit krypteret datablok i to 32-bit underblokke, hvorefter der udføres r runder af følgende transformationer [6] :
Det anbefalede antal algoritmerunder er 8, men antallet af algoritmerunder kan også være alt større end 8 og et multiplum af fire.
FL-operationen er ret enkel. Underblokken, der behandles af den, er opdelt i to 16-bit fragmenter, hvorpå følgende handlinger udføres:
hvor:
L og R er inputværdierne for henholdsvis venstre og højre fragmenter;
L' og R' er udgangsværdier;
og er fragmenter af den j-te undernøgle i den i-te runde for FL-funktionen (nøgleudvidelsesproceduren er beskrevet i detaljer nedenfor);
& og | - bitvise logiske operationer henholdsvis "og" og "eller".
FO-funktionen er mere interessant, fordi den er det indlejrede Feistel-netværk. I lighed med de foregående opdeler funktionen inputværdien i to 16-bit fragmenter, hvorefter 3 runder af følgende handlinger udføres:
Efter den tredje runde af FO-operationen overlejres et ekstra nøglefragment på det venstre fragment af XOR-operationen .
FI er også et Feistel-netværk, det vil sige, at dette allerede er det tredje niveau af rede. I modsætning til Feistel-netværkene på de to øverste niveauer er dette netværk ubalanceret: det behandlede 16-bit fragment er opdelt i to dele: 9-bit venstre og 7-bit højre. Derefter udføres 3 runder, som består af følgende:
For klarhedens skyld er en 9-bit datastrøm fremhævet med fede linjer i figuren.
Tabel S7 og S9 i MISTY1-algoritmen kan implementeres både ved hjælp af beregninger og direkte af tabeller, der er gemt i krypteringsenhedens ikke-flygtige hukommelse. Ved implementering af algoritmen skal muligheden for at bruge tabeller vælges afhængigt af krypteringsenhedens ressourcer.
Opgaven med nøgleudvidelsesproceduren er at danne følgende sæt nøglefragmenter, der bruges (til 8 runder af algoritmen):
Nøgleudvidelsesproceduren beregner således 1216 bit nøgleinformation fra 128-bit krypteringsnøglen i MISTY1-algoritmen. Denne beregning udføres som følger:
1. En 128-bit nøgle er opdelt i 8 fragmenter på hver 16 bit.
2. Værdier dannes : Resultatet af at behandle værdien af FI-funktionen bruges som en nøgle (det vil sige, at sættet af nødvendige 7- og 9-bit fragmenter) bruger værdien (i det følgende, hvis indekset n for nøglefragmentet overstiger 8, og i stedet for det, indeks n-8).
3. De nødvendige fragmenter af den udvidede nøgle "samles", efterhånden som transformationerne udføres fra arrays og i henhold til tabellerne nedenfor.
Formål | |||||||
---|---|---|---|---|---|---|---|
Fragment |
Formål | ||||
---|---|---|---|---|
Fragment |
4. Et 16-bit fragment er opdelt i et 7-bit fragment og et 9 -bit fragment .
Dekryptering udføres ved at udføre de samme handlinger som for kryptering, men med følgende ændringer:
Skemaet for dekrypteringsproceduren er vist i figuren:
FLI-operationen er defineret som følger:
MISTY1 blev udviklet baseret på teorien om "sikret sikkerhed" mod differentiel og lineær kryptoanalyse. Denne algoritme blev designet til at modstå forskellige kryptoangreb kendt på tidspunktet for oprettelsen.
Siden offentliggørelsen af misty er der blevet udført mange undersøgelser for at evaluere dets sikkerhedsniveau. Nogle af resultaterne fra forskning i tåget med færre runder er vist nedenfor.
Højordens differentiel krypteringsanalyse anvendes effektivt til lavgrads blokcifre. Misty indeholder 2 opslagstabeller S7 og S9, begge med lille annonce, henholdsvis 3 og 2. Derfor er en hel del artikler afsat til den differentielle kryptoanalyse af mysti. Det bedste resultat blev opnået for 5-niveaus algoritmen uden FL-funktioner. Det er dog tilstedeværelsen af FL-funktioner og wide-bit AND/OR-operationer i dem, der gør det meget vanskeligt at bruge højordens differentiel kryptoanalyse.
Umulig differentialanalyse gælder også for en blokskrifttype med samme undernøgleværdi i hver runde (eller hver n. runde). Og da MISTY1 har et ret simpelt nøgleudvidelsessystem, er det helt naturligt at overveje anvendeligheden af dette angreb på denne algoritme. Det bedste resultat for et sådant angreb blev også opnået, når man betragtede algoritmen uden FL-funktioner.
Chifferen blev vinderen blandt algoritmer, der krypterer 64-bit blokke ved den europæiske NESSIE konkurrence (2000-2003). Som et resultat af analysen af algoritmen udført inden for rammerne af denne konkurrence og før den, konkluderede eksperterne, at denne algoritme ikke har nogen alvorlige sårbarheder (de bemærkede specifikt, at det er strukturen af algoritmen med indlejrede Feistel-netværk, der komplicerer kryptoanalysen betydeligt).
Lignende undersøgelser blev udført inden for rammerne af CRYPTREC- projektet om valg af kryptografiske algoritmer til e-forvaltningen i Japan. Projekteksperterne satte stor pris på MISTY1-algoritmen og konkluderede, at den har en høj margin for kryptografisk styrke, algoritmen har en høj krypteringshastighed og er meget effektiv til hardwareimplementering.
Der er en modifikation af denne algoritme - MISTY2 . Det har dog ikke vundet stor popularitet på grund af det lave niveau af kryptografisk styrke.
Også en modifikation af MISTY1, KASUMI- algoritmen, blev udbredt i 2000 og blev W-CDMA mobilkrypteringsstandarden.
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |