RC4 (Rivest Cipher 4) ir straumes šifrs, ko 1987. gadā izstrādāja Rons Rivests. Tas šifrē datus, ģenerējot pseidonejaušu bitu plūsmu (sauktu par atslēgu plūsmu), kas tiek apvienota ar vienkāršā teksta datiem, parasti izmantojot XOR operāciju, lai izveidotu šifrētu tekstu.
Šifrēšana: Katrs vienkāršā teksta baits tiek apvienots ar atbilstošu baitu no atslēgu plūsmas, lai ģenerētu šifrētu tekstu.
Atšifrēšana: Tā pati atslēgu plūsma tiek izmantota, lai XOR veiktu šifrētam tekstam un atgūtu sākotnējo vienkāršā teksta versiju.
Ātrums: RC4 ir pazīstams ar savu ātrumu un efektivitāti, īpaši vidēs ar ierobežotiem resursiem.
Vienkāršība: To ir vienkārši ieviest un tam nepieciešami minimāli resursi, padarot to piemērotu vidēm ar ierobežotu apstrādes jaudu.
Vēsturiska lietošana: RC4 tika plaši izmantots tādos protokolos kā SSL/TLS drošai saziņai un WEP bezvadu tīkla drošībai.
Atslēgas ģenerēšana: Slepenā atslēga (parasti no 40 līdz 2048 bitiem) tiek izmantota, lai inicializētu RC4. stāvoklis.
Atslēgu plūsmas ģenerēšana: RC4 algoritms ģenerē pseidonejaušu atslēgu plūsmu, pamatojoties uz atslēgu.
Šifrēšana: Katrs vienkāršā teksta baits tiek XOR apstrādāts ar atslēgu plūsmas baitu, iegūstot šifrētu tekstu.
Atšifrēšana: Tā pati atslēgu plūsma tiek izmantota, lai XOR apstrādātu šifrētu tekstu un atgūtu sākotnējo vienkāršo tekstu.
Bibliotēkas/rīki: RC4 tiek atbalstīts dažādās bibliotēkās, lai gan drošības apsvērumu dēļ tas bieži vien ir novecojis:
Python: pycryptodome bibliotēka.
Java: javax.crypto pakotne (lai gan tās lietošana nav ieteicama, dodot priekšroku spēcīgākiem algoritmiem).
C#: System.Security.Cryptography namespace.
Mantotās sistēmas: Strādājot ar vecākām sistēmām, kas joprojām izmanto RC4 šifrēšanu (piemēram, vecās SSL/TLS implementācijas).
Nekritiskas lietojumprogrammas: Ja strādājat pie projektiem, kuros ātrums ir svarīgāks par drošību, lai gan tas parasti nav ieteicams, dodot priekšroku spēcīgākiem šifriem.
Izglītības nolūkos: RC4 bieži tiek izmantots, lai mācītu par simetriskās šifrēšanas un plūsmas šifrēšanas vienkāršības dēļ.