In de cryptografie is een Feistel-cijfer een symmetrische structuur die gebruikt wordt bij de constructie van blokcijfers, genoemd naar de Duitse IBM-cryptograaf Horst Feistel; het is ook algemeen bekend als een Feistel-netwerk. Een grote set van blokcijfers gebruikt het schema, inclusief de Data Encryptie Standaard.
De Feistel-structuur heeft het voordeel dat encryptie- en ontcijferingsoperaties zeer gelijkaardig zijn, zelfs identiek in sommige gevallen, waardoor alleen een omkering van het sleutelschema nodig is. Daarom is de grootte van de code of de schakelingen die nodig zijn om zo'n versleuteling te implementeren bijna gehalveerd.
Feistelbouw is iteratief van aard, wat de implementatie van het cryptosysteem in de hardware eenvoudiger maakt.
Feistel netwerken en soortgelijke constructies zijn productcijfers, en dus combineren meerdere rondes van herhaalde bewerkingen, zoals:
- Bit-shuffling (vaak permutatieboxen of P-boxen genoemd)
- Eenvoudige niet-lineaire functies (vaak vervangingsboxen of S-boxen genoemd)
- Lineair mengen (in de zin van modulaire algebra) met behulp van XOR om een functie te produceren met grote hoeveelheden van wat Claude Shannon omschreef als "verwarring en verspreiding".
Bitschuiven zorgt voor het verspreidingseffect, terwijl substitutie wordt gebruikt voor verwarring.

