Stream Cipher (สตรีมซิเฟอร์) คืออะไร?
Stream Cipher เป็นอัลกอริทึมการเข้ารหัสแบบสตรีมที่เข้ารหัสข้อมูลทีละบิต (bit) หรือทีละไบต์ (byte) โดยใช้ Keystream (สตรีมคีย์) ที่สร้างขึ้นจากคีย์ลับและค่าเริ่มต้น (IV - Initialization Vector) ซึ่งแตกต่างจาก Block Cipher ที่เข้ารหัสเป็นบล็อกขนาดคงที่ (เช่น 64 หรือ 128 บิต)
ลักษณะสำคัญของ Stream Cipher
- เข้ารหัสข้อมูลต่อเนื่อง (Streaming data) ได้อย่างมีประสิทธิภาพ
- เหมาะสำหรับข้อมูลที่ไม่ทราบขนาดล่วงหน้า (เช่น เสียง, วิดีโอ, การสื่อสารเรียลไทม์)
- ความเร็วสูงกว่า Block Cipher ในการประมวลผลข้อมูลสตรีม
- ต้องการ Keystream ที่สุ่มได้ยาก (Cryptographically Secure PRNG)
- ห้ามนำคีย์ซ้ำใช้ (Key Reuse จะทำให้แฮกได้ง่าย)
ประเภทของ Stream Cipher
- Synchronous Stream Cipher: Keystream สร้างขึ้นอิสระจากข้อมูลต้นทาง (Plaintext) และข้อมูลเข้ารหัส (Ciphertext) ต้องมีกลไก Resynchronization
- Self-synchronizing Stream Cipher: Keystream ขึ้นอยู่กับ Ciphertext ก่อนหน้า (นิยมน้อยกว่าในปัจจุบัน)
ตัวอย่าง Stream Cipher ที่นิยม
| อัลกอริทึม | รายละเอียด | |
|---|---|---|
| RC4 | Stream Cipher ที่ใช้แพร่หลายที่สุดในอดีต (SSL/TLS, WEP) แต่ปัจจุบันถือว่าไม่ปลอดภัยแล้ว | |
| ChaCha20 | Stream Cipher สมัยใหม่ ใช้ใน TLS 1.3, VPN (WireGuard) ปลอดภัยและเร็ว | |
| Salsa20 | พัฒนาโดย Daniel J. Bernstein ฐานของ ChaCha20 | |
| AES-CTR / AES-GCM | Block Cipher (AES) ที่ทำงานในโหมด Stream (Counter Mode) |
| คุณสมบัติ | Stream Cipher | Block Cipher |
|---|---|---|
| หน่วยการเข้ารหัส | บิต/ไบต์เดี่ยว | บล็อกขนาดคงที่ (128 บิต) |
| ความเร็วกับสตรีม | เร็วกว่า | ช้ากว่า (ต้อง Padding) |
| การแพร่กระจายข้อผิดพลาด | จำกัดในบิตเดียว | กระจายไปทั้งบล็อก |
| การใช้งาน | Real-time, Streaming | ไฟล์, Database, Disk Encryption |
ความปลอดภัยของ Stream Cipher
Stream Cipher จะปลอดภัยก็ต่อเมื่อ:
- ใช้ PRNG ที่ทำนายไม่ได้ (CSPRNG)
- ไม่มีการนำคีย์ + IV ซ้ำใช้ (Key/IV Reuse)
- มีการยืนยันความสมบูรณ์ข้อมูล (Integrity) เช่น ใช้กับ MAC หรือ AEAD (เช่น ChaCha20-Poly1305)
สรุป
Stream Cipher เป็นวิธีเข้ารหัสที่เหมาะสำหรับข้อมูลสตรีมและเรียลไทม์ โดยเฉพาะ ChaCha20 และ AES-GCM ที่เป็นมาตรฐานในปัจจุบัน RC4 ควรหลีกเลี่ยงเพราะมีช่องโหว่ร้ายแรง