Feistelkrypto, eller Feistel-struktur i kryptografi, är ett sätt att konstruera blockchiffer. Metoden delar ett textblock i två halvor och låter dem genomgå flera rundor där en nyckelstyrd funktion påverkar den ena halvan medan den andra förs vidare till nästa steg. Konstruktionen är uppkallad efter Horst Feistel och blev viktig i utvecklingen av moderna digitala chiffer.

I en typisk runda beräknas en funktion av den ena halvan och en rundnyckel. Resultatet kombineras sedan ofta med den andra halvan med hjälp av XOR, varefter halvorna byter plats. Det gör att samma grundidé kan användas för både kryptering och dekryptering: vid avkodning kör man i praktiken rundorna baklänges med omvänd nyckelplanering. Den egenskapen har gjort Feistelstrukturen attraktiv eftersom den kan implementeras relativt enkelt i både programvara och hårdvara.

Historik och exempel

Feistelidén fick stort genomslag genom Data Encryption Standard, ett av de mest kända historiska blockchiffren. Sedan dess har många andra konstruktioner använt samma princip eller nära besläktade varianter. Feistelkrypto är därför bättre att se som en byggmodell än som ett enda specifikt chiffer. Det är också viktigt att skilja den från andra blockchifferarkitekturer, till exempel sådana som bygger på andra typer av rundor och datastrukturer.

Hur konstruktionen är uppbyggd

Feistelnätverk räknas till produktchiffer, alltså system där flera enkla steg kombineras för att skapa starkare skydd. I varje runda kan olika komponenter förekomma: P-boxar för permutation, S-rutor för icke-linjär substitution och blandning av data med hjälp av modulär algebra och XOR. Tillsammans hjälper dessa delar till att bygga upp det Claude Shannon beskrev som förvirring och spridning.

  • Permutationer flyttar runt bitar och bidrar till att information sprids över blocket.
  • Substitutioner skapar icke-linjära samband som gör mönster svårare att utnyttja.
  • Flera rundor förstärker både förvirring och spridning i hela chiffret.

Bitomkastning och andra permutationssteg bidrar särskilt till spridningseffekten, medan substitutionen står för förvirringen. Det är kombinationen av dessa egenskaper som gör att små förändringar i klartext eller nyckel kan ge stora utslag i den krypterade texten efter flera rundor.

Feistelkrypto har därför fått en bestående plats i kryptografins historia. Metoden visar hur en relativt enkel och elegant struktur kan ligga till grund för effektiva och välstuderade blockchiffer. Säkerheten beror dock inte på Feistelidén ensam, utan på hur stark rundfunktionen är, hur många rundor som används och hur nycklarna hanteras.