RC4 (Rivest Cipher 4) คือ การเข้ารหัสแบบสตรีม ที่ออกแบบโดย Ron Rivest ในปี 1987 โดยจะเข้ารหัสข้อมูลด้วยการสร้าง สตรีมบิตแบบสุ่มเทียม (เรียกว่า คีย์สตรีม) ที่รวมกับข้อมูลข้อความธรรมดา โดยทั่วไปจะใช้การดำเนินการ XOR เพื่อสร้างข้อความเข้ารหัส
การเข้ารหัส: ไบต์ข้อความธรรมดาแต่ละไบต์จะรวมกับไบต์ที่สอดคล้องกันจากคีย์สตรีมเพื่อสร้างข้อความเข้ารหัส
การถอดรหัส: คีย์สตรีมเดียวกันจะถูกใช้เพื่อ XOR ข้อความเข้ารหัสและกู้คืนข้อความธรรมดาต้นฉบับ
ความเร็ว: RC4 เป็นที่รู้จักในเรื่องความเร็วและประสิทธิภาพ โดยเฉพาะในสภาพแวดล้อมที่มีทรัพยากรจำกัด
ความเรียบง่าย: ง่ายต่อการนำไปใช้งานและต้องการทรัพยากรเพียงเล็กน้อย ทำให้เหมาะสำหรับสภาพแวดล้อมที่มีพลังการประมวลผลจำกัด
การใช้งานในอดีต: RC4 ถูกใช้กันอย่างแพร่หลายในโปรโตคอลต่างๆ เช่น SSL/TLS สำหรับการสื่อสารที่ปลอดภัยและ WEP สำหรับความปลอดภัยของเครือข่ายไร้สาย
การสร้างคีย์: คีย์ลับ (โดยปกติจะอยู่ระหว่าง 40 ถึง 2,048 บิต) คือ ใช้เพื่อเริ่มต้นสถานะ RC4
การสร้างคีย์สตรีม: อัลกอริทึม RC4 สร้างคีย์สตรีมแบบสุ่มเทียมตามคีย์
การเข้ารหัส: ไบต์ของข้อความธรรมดาแต่ละไบต์จะถูก XOR กับไบต์คีย์สตรีม ส่งผลให้เกิดข้อความเข้ารหัส
การถอดรหัส: คีย์สตรีมเดียวกันจะถูกใช้เพื่อ XOR ข้อความเข้ารหัสและกู้คืนข้อความธรรมดาต้นฉบับ
ไลบรารี/เครื่องมือ: RC4 ได้รับการรองรับในไลบรารีต่างๆ แม้ว่าจะมักไม่รองรับด้วยเหตุผลด้านความปลอดภัย:
Python: ไลบรารี pycryptodome
Java: แพ็กเกจ javax.crypto (แม้ว่าการใช้งานจะไม่เป็นที่แนะนำ แต่ควรใช้อัลกอริทึมที่แข็งแกร่งกว่า)
C#: System.Security.Cryptography namespace.
ระบบเก่า: เมื่อทำงานกับระบบเก่าที่ยังคงใช้การเข้ารหัส RC4 (เช่น การใช้งาน SSL/TLS แบบเก่า)
แอปพลิเคชันที่ไม่สำคัญ: หากคุณกำลังทำงานในโปรเจ็กต์ที่ความเร็ว สำคัญกว่าความปลอดภัย แม้ว่าโดยทั่วไปจะไม่แนะนำให้ใช้รหัสที่แข็งแกร่งกว่าก็ตาม
วัตถุประสงค์ทางการศึกษา: RC4 มักใช้ในการสอนเกี่ยวกับรหัสสมมาตรและรหัสสตรีมเนื่องจากความเรียบง่าย