Overzicht

Een Feistel-cijfer, ook wel Feistel-netwerk genoemd, is een veelgebruikt ontwerpprincipe in de cryptografie voor het bouwen van veilige blokcijfers. Het schema is vernoemd naar Horst Feistel, die het concept populair maakte bij IBM. Een van de bekendste toepassingen is de Data Encryption Standard, vaak afgekort als DES, maar veel moderne en historische blokcijfers gebruiken varianten van hetzelfde idee.

Werking

De kern van een Feistel-netwerk is eenvoudig en robuust: een invoerblok wordt opgesplitst in twee helften, doorgaans L (links) en R (rechts). In elke ronde wordt een rondefunctie toegepast op één helft en gecombineerd met de andere helft, waarna de helften eventueel worden omgewisseld. Concreet geldt meestal voor ronde i: L_{i+1} = R_i en R_{i+1} = L_i ⊕ F(R_i, K_i), waarbij F de rondefunctie is en K_i de sub-sleutel voor die ronde. Deze opzet maakt dat de operatie gemakkelijk omkeerbaar is; om te ontcijferen volstaat het toepassen van dezelfde rondes in omgekeerde sleutelvolgorde. Dat is een praktisch voordeel voor implementatie van encryptie en decryptie, waarbij soms alleen het omkeren van het sleutelschema nodig is. Omdat meerdere rondes gecombineerd worden, behoort een Feistel-constructie tot de categorie van productcijfers, waarbij herhaalde eenvoudige transformaties samen sterke beveiliging opleveren.

Belangrijke onderdelen

  • Rondefunctie (F): een flexibele bouwsteen die niet-lineaire en lineaire bewerkingen kan combineren.
  • Sub-sleutels: afgeleid uit de hoofdsleutel via een sleuteluitbreidingsmechanisme; in de omgang vaak het enige verschil tussen encryptie en decryptie.
  • Substitutie- en permutatie-elementen: veel rondefuncties gebruiken vervangingsboxen (S-boxen) voor niet-lineariteit en permutatieboxen (P-boxen) of bit-shuffling voor bitverspreiding.
  • Wiskundige bewerkingen: operaties zoals bitwise XOR en aritmetische bewerkingen in een ring of modulair domein (modulaire algebra) worden vaak gecombineerd om zowel efficiëntie als cryptografische sterkte te bereiken.

Het samenspel van deze mechanismen streeft naar twee klassieke eigenschappen die Claude Shannon omschreef: verwarring en verspreiding. Verwarring verbergt de relatie tussen sleutel en ciphertext, terwijl verspreiding (diffusie) ervoor zorgt dat lokale wijzigingen in de plaintext zich over het hele ciphertext verspreiden, wat soms eenvoudigweg als verspreiding wordt aangeduid.

Voordelen, varianten en voorbeelden

Een belangrijk voordeel van de Feistel-structuur is de balans tussen eenvoud en kracht. Omdat encryptie en decryptie vaak met zeer gelijke routines kunnen worden uitgevoerd, is de implementatie compacter en eenvoudiger in hardware en software. De keuze van F en het aantal rondes bepaalt de veiligheid: eenvoudige rondefuncties kunnen veilig worden gemaakt door voldoende ronden toe te voegen.

Er bestaan meerdere varianten: het klassieke, evenwichtige Feistel-netwerk waarbij beide helften even groot zijn; ongebalanceerde of 'alternating' Feistel-ontwerpen waarbij de helften verschillende groottes hebben; en Feistel-achtige constructies die afwijken in de manier waarop halve blokken gecombineerd worden. Historische en actuele voorbeelden zijn, naast DES, verscheidene blokcijfers en blokcipher-modi die voor verschillende toepassingen zijn ontwikkeld.

Opmerkingen en notities

Ondanks zijn eenvoud blijft het Feistel-principe relevant omdat het ontwerp toelaat om met relatief eenvoudige operaties sterke cilfersystemen te construeren. De veiligheid hangt af van zorgvuldige keuze van de rondefunctie, sleuteluitbreiding en het aantal rondes. Voor theoretische garanties en praktische richtlijnen zijn er uitgebreide wetenschappelijke studies en standaarden beschikbaar die implementators helpen bij het kiezen van parameters en het evalueren van weerstand tegen bekende aanvallen.

Voor aanvullende technische referenties en voorbeelden kunt u bronnen raadplegen via gerelateerde vakliteratuur en standaarden. Zie ook de secties over cryptografie en blokcijfers voor bredere context en DES voor een klassiek voorbeeld van een Feistel-ontwerp.