SP-netværk (substitutions-permutationsnetværk): Definition og forklaring

Inden for kryptografi er et SP-netværk eller substitutions-permutationsnetværk (SPN) en struktur bestående af skiftevis anvendte substitutions- og permutationslag, som bruges i mange moderne blokchifre som AES (Rijndael), 3-Way, Kalyna, Kuznyechik, PRESENT, SAFER, SHARK og Square. SP-netværk behandler en blok af klartekst sammen med en nøgle og anvender flere runder af S-bokse (substitutioner) og P-bokse (permutationer) for at producere cifferteksten.

Hvordan et SP-netværk fungerer

Et SP-netværk består typisk af gentagne runder. I hver runde gennemgår dataene følgende typer operationer:

  • Substitution (S-bokse): Små blokke af bits (f.eks. 4 eller 8 bit) transformeres via en S-boks, som udfører en ikke-lineær substitution.
  • Permutation eller lineær diffusion (P-bokse): Bittene blandes eller permuteres, så ændringer spredes til forskellige dele af tilstanden før næste runde.
  • Runde-nøgleindsprøjtning: En rundnøgle afledes fra hovednøglen via en nøgleplan og kombineres typisk med tilstanden ved hjælp af XOR.

Dekryptering opnås normalt ved at invertere rækkefølgen og bruge inverse S-bokse og permutationer samt rundnøgler i omvendt rækkefølge (i designs hvor S-boksene er invertible).

Egenskaber for gode S-bokse

En S-boks erstatter en lille blok inputbits med en blok outputbits. For SP-netværk er det normalt påkrævet, at S-boksen er invertibel (én-til-én), så hele cifringen kan dekrypteres. Gode S-bokse har flere vigtige kryptografiske egenskaber:

  • Non-linearitet: S-boksen bør ikke være tæt på en lineær funktion. Høj non-linearitet hjælper med at modstå lineær kryptanalyse.
  • Differential modstand: Små ændringer i input bør ikke give forudsigelige ændringer i output; S-boksen bør begrænse sandsynligheden for nyttige differentialer.
  • Avalanche/lavineeffekt: En ændring i én inputbit bør påvirke omkring halvdelen af outputbitsene.
  • Hver outputbit afhænger af hver inputbit: Dvs. der bør ikke være trivielle afhængigheder mellem enkelte input- og outputbits.

Bemærk, at i Feistel-konstruktioner (som DES) kan S-bokse være ikke-invertible (f.eks. 6→4 bit i DES), fordi hele Feistel-runden stadig er inverterbar. I SP-netværk kræves invertibilitet normalt for hele S-boksen.

P-bokse og diffusion

En P-boks permuterer eller lineært blander alle bits i tilstanden. Formålet er at sprede (diffundere) effekten af individuelle bits fra S-boksene ud over så mange S-boksindgange som muligt i næste runde. En effektiv P-boks sikrer, at en ændring i én S-boks' output hurtigt påvirker mange S-bokse i efterfølgende runder, hvilket sammen med S-boksens non-linearitet fører til en stærk lavineeffekt over flere runder.

Nøgleindsprøjtning og rundnøgler

Ved hver runde kombineres en rundenøgle med tilstanden (ofte ved XOR). Rundnøglerne udledes fra hovednøglen gennem en nøgleplan (key schedule), som kan indeholde S- og P-operationer og andre simple funktioner. En god nøgleplan spreder nøglens bits over rundnøglerne, så en lille ændring i hovednøglen påvirker alle rundnøgler (og dermed hele cifringen).

Sikkerhed og angreb

Et velkonstrueret SP-net tilbyder både forvirring og diffusion iShannons termer, hvilket gør det svært for en angriber at udlede sammenhængen mellem nøgle, klartekst og ciffertekst. De mest relevante angrebsklasser mod SP-netværk inkluderer:

  • Differential kryptanalyse: Undersøger hvordan forskelle i input påvirker forskelle i output gennem S- og P-lagene.
  • Lineær kryptanalyse: Forsøger at finde lineære tilnærmelser mellem input, output og nøglebits.
  • Integral- og boomerang-angreb: Særligt effektive mod nogle designs med svag spredning eller særlige strukturmønstre.
  • Algebraiske angreb: Forsøger at udtrykke chiffren som et system af ligninger og løse dem.
  • Side-channel og fault-angreb: Praktiske angreb der udnytter tid, strømforbrug, stråling eller med vilje inducerede fejl for at få nøgler eller intern tilstand.

For at afbøde sådanne angreb anvendes designprincipper som flere runder, velvalgte S-bokse med stærke differential- og lineære egenskaber samt modforanstaltninger i implementeringer (f.eks. masking, constant-time-kode, redundans for at opdage fejl).

Ydeevne og implementering

SP-netværk har ofte høj grad af ibofærende parallelitet — mange S-bokse kan anvendes samtidigt, og visse permutationer er lette at implementere i hardware. Dette gør SPN attraktive for CPU'er eller hardware med mange parallelle enheder. På den anden side kan enheder med få udførelsesenheder (fx mange smartcards) få sværere ved at udnytte parallelismen effektivt.

Implementeringsovervejelser omfatter også bit-/byte-orienterede operationer, brug af tabelopsalg (look-up tables) vs. bitslicing, og modforanstaltninger mod side-channel-angreb. I software er bytes- eller ord-baserede S-bokse (som i AES) ofte hurtige med hardware-accelererede instruktioner, mens meget små S-bokse (4 bit) kan være fordelagtige for ekstremt begrænsede systemer (som i lightweight-chifre som PRESENT).

Sammenligning med Feistel-netværk

Selvom Feistel-netværk (f.eks. DES) og SP-netværk benytter lignende ideer (substitution og permutation), er der vigtige forskelle:

  • Invertibilitet: Et SP-net kræver normalt invertible S-bokse for dekryptering, mens Feistel-konstruktionen er invertibel uanset at den indre funktion er invertibel eller ej.
  • Parallelitet: SP-net har oftere højere iboende parallelitet, hvilket kan give højere gennemstrømning på parallelle arkitekturer.
  • Designfrihed: Feistel-net tillader mere fleksible valg af indre funktioner (de behøver ikke være invertible), hvilket nogle gange gør designprocessen enklere.

Eksempler

  • AES (Rijndael) er et typisk moderne SP-net: SubBytes (S-boks), ShiftRows + MixColumns (lineær diffusion/permutation) og AddRoundKey (nøgleindsprøjtning). AES bruger 8-bit invertible S-bokse og en lineær blanding (MixColumns) for diffusion.
  • PRESENT er et lightweight SP-net der bruger 4-bit S-bokse og en bit-permutation, designet til begrænsede indlejrede systemer.
  • DES er ikke et rent SP-net; det er en Feistel-konstruktion med ikke-invertible 6→4 S-bokse.

Designovervejelser og bedste praksis

Når man designer eller vælger et SP-net, bør man overveje:

  • Antal runder — tilstrækkeligt mange til at sikre mod kendte angreb (men ikke så mange at ydeevne unødigt lider).
  • Stærke S-bokse med dokumenteret modstand mod differential og lineær kryptanalyse.
  • Effektiv diffusion (P-lag), så spredningen hurtigst muligt involverer hele tilstanden.
  • Robust nøgleplan, som spreder nøglebits effektivt over rundnøglerne.
  • Implementeringssikkerhed — beskyttelse mod side-channel-angreb og fejlinducerede angreb.

Sammenfattende er SP-netværk en velafprøvet og fleksibel byggesten i moderne blokchifre: ved at kombinere ikke-lineære substitutioner med effektive permutationer kan de levere både forvirring og diffusion, som er nøglen til sikker kryptering.


AlegsaOnline.com - 2020 / 2025 - License CC3