Cipher is een wiskundig algoritme dat wordt gebruikt voor het versleutelen en ontsleutelen van informatie. Het versleutelen van een bericht met een cijfer omvat het transformeren van het oorspronkelijke bericht, of leesbare tekst, met behulp van een specifieke reeks instructies of een sleutel, om een nieuw bericht te produceren, ook wel de cijfertekst genoemd. Dit nieuwe bericht kan alleen worden ontsleuteld, of weer worden omgezet in de oorspronkelijke leesbare tekst, door iemand die de sleutel kent die werd gebruikt om het bericht in de eerste plaats te versleutelen.
Om te begrijpen hoe een cijfer werkt, is het handig om de verschillende stappen te overwegen die betrokken zijn bij het coderen en decoderen van een bericht. Over het algemeen kunnen deze stappen worden onderverdeeld in drie hoofdfasen:
1.) Sleutelgeneratie: in deze fase wordt een sleutel gegenereerd die zal worden gebruikt om het bericht te coderen en te decoderen. Deze sleutel is een reeks instructies die specificeert hoe de leesbare tekst wordt omgezet in cijfertekst en vice versa. De sterkte van een cijfer hangt grotendeels af van de sleutel die wordt gebruikt, en de sleutel moet geheim worden gehouden om ongeoorloofde toegang tot de gecodeerde informatie te voorkomen.
2.) Versleuteling: in deze fase wordt de leesbare tekst omgezet in cijfertekst met behulp van de sleutel die in de eerste fase is gegenereerd. Dit wordt gedaan door de instructies in de sleutel toe te passen op elk afzonderlijk teken in de leesbare tekst, wat resulteert in een nieuw, gecodeerd bericht dat moeilijk te begrijpen is voor iedereen die de sleutel niet kent.
3.) Decryptie: In de laatste fase wordt de cijfertekst terug omgezet in de oorspronkelijke leesbare tekst met behulp van de sleutel die werd gebruikt om het te coderen. Dit wordt gedaan door het omgekeerde van de instructies in de sleutel toe te passen op elk teken in de cijfertekst, wat resulteert in het originele, leesbare bericht.
Er zijn veel verschillende soorten cijfers en de specifieke stappen voor het coderen en decoderen van een bericht kunnen variëren, afhankelijk van het type cijfer dat wordt gebruikt. Bij sommige cijfers, zoals het Caesar-cijfer, wordt elk teken in de leesbare tekst eenvoudig een bepaald aantal plaatsen in het alfabet verschoven om de cijfertekst te produceren. Anderen, zoals het RSA-cijfer, gebruiken complexe wiskundige bewerkingen met grote priemgetallen om het bericht te coderen en te decoderen.
Over het algemeen is het doel van een cijfer een veilige manier te bieden om informatie van de ene partij naar de andere te verzenden zonder het risico dat de informatie wordt onderschept en gelezen door een onbevoegde derde partij. Door een cijfer te gebruiken om een bericht te versleutelen, kan de afzender er zeker van zijn dat alleen de beoogde ontvanger, die de sleutel kent, het bericht kan ontsleutelen en lezen.