SP-netværk ( Substitution-permutation netværk , substitutions-permutation netværk) er en type blok chiffer foreslået i 1971 af Horst Feistel . I den enkleste version er det en "sandwich" af to typer lag, der bruges gentagne gange på skift. Den første type lag er P-laget, der består af en P-blok med stor kapacitet, efterfulgt af den anden type lag - S-laget, som er et stort antal S-blokke med lille kapacitet, derefter igen P-lag osv. Den første kryptografiske algoritme baseret på SP-nettet var "Lucifer" ( 1971 ). I øjeblikket er AES (Rijndael) meget brugt blandt algoritmer baseret på SP-netværk. Et alternativ til SP-netværk er Feistel-netværk .
I moderne algoritmer bruges der i stedet for S- og P-bokse forskellige matematiske eller logiske funktioner. Enhver binær funktion kan reduceres til en S-boks, nogle funktioner til en P-boks. For eksempel reduceres et cyklisk skift til en P-boks , selve P-boksen er et specialtilfælde af S-boksen. Sådanne funktioner implementeres normalt let i hardware, mens de giver god kryptografisk styrke .
En chiffer baseret på SP-nettet modtager en blok og en nøgle som input og udfører flere alternerende runder, bestående af skiftende substitutionstrin og permutationstrin [ 1 ] .
Én S-boks er nok til at opnå sikkerhed, men sådan en blok vil kræve en stor mængde hukommelse. Derfor anvendes små S-bokse blandet med P-bokse [2] .
Det ikke-lineære substitutionstrin blander nøglebittene med klartekstbits , hvilket skaber en Shannon- forlegenhed . Det lineære permutationstrin fordeler redundansen i hele datastrukturen, hvilket giver anledning til diffusion [3] [4] .
S - boksen erstatter en lille blok af input bits med en anden blok af output bits. Denne substitution skal være en-til-en for at garantere reversibilitet. Formålet med S-boksen er til en ikke-lineær transformation, som forhindrer lineær kryptoanalyse i at blive udført . En af egenskaberne ved S-boksen er lavineeffekten , det vil sige, at en ændring i én bit ved indgangen fører til en ændring i alle bits ved udgangen [5] .
P-boks ( eng. permutationsboks eller P-boks ) - permutation af alle bits: blokken modtager output fra S-boksen som input, bytter alle bits og sender resultatet til S-boksen i næste runde. En vigtig kvalitet ved en P-boks er evnen til at distribuere output fra én S-boks til indgangene på så store S-bokse som muligt.
For hver runde bruges en anden nøgle, hentet fra den originale. Sådan en nøgle kaldes en rund nøgle. Det kan opnås enten ved at dele den originale nøgle i lige store dele, eller ved en form for transformation af hele nøglen.
Følgende algoritmer bruger SP-netværket:
Symmetriske kryptosystemer | |
---|---|
Stream-cifre | |
Feistel netværk | |
SP netværk | |
Andet |