RC4 (Rivest Cipher 4) is een stroomcijfer, ontworpen door Ron Rivest in 1987. Het versleutelt gegevens door een pseudo-willekeurige stroom bits (een zogenaamde sleutelstroom) te genereren die, meestal met behulp van een XOR-bewerking, wordt gecombineerd met de platte tekst om de versleutelde tekst te genereren.
Versleuteling: Elke byte platte tekst wordt gecombineerd met een corresponderende byte uit de sleutelstroom om de versleutelde tekst te genereren.
Ontsleuteling: Dezelfde sleutelstroom wordt gebruikt om de versleutelde tekst te XOR-en en de originele platte tekst te herstellen.
Snelheid: RC4 staat bekend om zijn snelheid en efficiëntie, met name in omgevingen met beperkte resources.
Eenvoud: Het is eenvoudig te implementeren en vereist minimale resources, waardoor het geschikt is voor omgevingen met beperkte verwerkingskracht.
Historisch gebruik: RC4 werd veel gebruikt in protocollen zoals SSL/TLS voor beveiligde communicatie en WEP voor draadloze netwerkbeveiliging.
Sleutelgeneratie: Een geheime sleutel (meestal tussen 40 en 2048 bits) is Wordt gebruikt om de RC4-status te initialiseren.
Sleutelstroomgeneratie: Het RC4-algoritme genereert een pseudo-willekeurige sleutelstroom op basis van de sleutel.
Versleuteling: Elke byte van de platte tekst wordt ge-XORd met de sleutelstroombyte, wat resulteert in een versleutelde tekst.
Decodering: Dezelfde sleutelstroom wordt gebruikt om de versleutelde tekst te XORen en de originele platte tekst te herstellen.
Bibliotheken/Tools: RC4 wordt ondersteund door verschillende bibliotheken, hoewel het om beveiligingsredenen vaak wordt afgeraden:
Python: pycryptodome-bibliotheek.
Java: javax.crypto-pakket (hoewel het gebruik ervan wordt afgeraden ten gunste van sterkere algoritmen).
C#: System.Security.Cryptography-naamruimte.
Oude systemen: Wanneer u werkt met oudere systemen die nog steeds RC4-versleuteling gebruiken (bijv. oude SSL/TLS-implementaties).
Niet-kritieke applicaties: Als u werkt aan projecten waarbij snelheid belangrijker is dan beveiliging, hoewel dit over het algemeen wordt afgeraden ten gunste van sterkere coderingen.
Educatieve doeleinden: RC4 wordt vanwege de eenvoud vaak gebruikt voor het lesgeven over symmetrische cijfers en stroomcijfers.