RC4 (Rivest Cipher 4) er en stream cipher designet af Ron Rivest i 1987. Den krypterer data ved at generere en pseudorandom strøm af bits (kaldet en keystream), der kombineres med klartekstdata, typisk ved hjælp af en XOR-operation, for at producere krypteret tekst.
Kryptering: Hver byte af klartekst kombineres med en tilsvarende byte fra nøglestrømmen for at generere krypteret tekst.
Dekryptering: Den samme keystream bruges til at XOR-behandle krypteret tekst og gendanne den originale klartekst.
Hastighed: RC4 er kendt for sin hastighed og effektivitet, især i miljøer med begrænsede ressourcer.
Enkelhed: Den er enkel at implementere og kræver minimale ressourcer, hvilket gør den velegnet til miljøer med begrænset processorkraft.
Historisk brug: RC4 blev brugt i vid udstrækning i protokoller som SSL/TLS til sikker kommunikation og WEP til trådløs netværkssikkerhed.
Nøglegenerering: En hemmelig nøgle (normalt mellem 40 og 2048 bit) bruges til at initialisere RC4 tilstand.
Generering af nøglestrøm: RC4-algoritmen genererer en pseudotilfældig nøglestrøm baseret på nøglen.
Kryptering: Hver byte af klartekst XOR'es med nøglestrømsbyten, hvilket resulterer i krypteret tekst.
Dekryptering: Den samme nøglestrøm bruges til at XOR'e krypteret tekst og gendanne den originale klartekst.
Biblioteker/Værktøjer: RC4 understøttes i forskellige biblioteker, selvom det ofte forældes af sikkerhedsmæssige årsager:
Python: pycryptodome-bibliotek.
Java: javax.crypto-pakken (selvom dens brug frarådes til fordel for stærkere algoritmer).
C#: System.Security.Cryptography navneområde.
Ældre systemer: Når man arbejder med ældre systemer, der stadig bruger RC4-kryptering (f.eks. gamle SSL/TLS-implementeringer).
Ikke-kritiske applikationer: Hvis du arbejder på projekter, hvor hastighed er vigtigere end sikkerhed, frarådes dette dog generelt til fordel for stærkere cifre.
Uddannelsesmæssige formål: RC4 bruges ofte til undervisning om symmetriske cifre og strømcifre på grund af dens enkelhed.