Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

Stream Cipher ในความปลอดภัยข้อมูลคืออะไร?

Stream Cipher คืออะไร?

Stream Cipher เข้ารหัสสตริงต่อเนื่องของตัวเลขไบนารี โดยใช้ Transformation ที่เปลี่ยนแปลงตามเวลา บน Plaintext ทำงานแบบ Bit-by-bit ใช้ Keystream สร้าง Ciphertext สำหรับ Plaintext ความยาวเท่าไหร่ก็ได้

การทำงาน

  • รวม Key (128/256 บิต) และ Nonce (64-128 บิต) สร้าง Keystream
  • Pseudorandom Number XOR กับ Plaintext ได้ Ciphertext
  • Key และ Nonce ใช้ซ้ำได้ แต่ Keystream ต้อง Unique ทุกครั้งเพื่อความปลอดภัย
  • ใช้ Feedback Shift Registers สร้าง Nonce เฉพาะ (Number used once)

คุณสมบัติ

  • Error ในการแปลง 1 บิต ไม่กระทบบล็อก Plaintext ทั้งหมด (น้อยกว่า Block Cipher)
  • ทำงานแบบ Linear, Perpetual เรียบง่ายและเร็วกว่า
  • ข้อจำกัด: ขาด Diffusion (1 Plaintext digit → 1 Ciphertext output) ไม่ยืนยัน Authenticity เสี่ยงต่อ Insertion Attacks หากโจมตีแฮกอัลกอริทึม จะเพิ่ม/เปลี่ยนข้อความได้โดยไม่ถูกตรวจพบ

การใช้งาน

เข้ารหัสข้อมูลในแอปพลิเคชันที่ขนาด Plaintext ไม่ทราบล่วงหน้า และ Low-latency ใช้ Keystream: Random 8-bit Output จาก Key ผ่าน Pseudorandom Bit Generator

ข้อดีของ Stream Cipher

  • ปลอดภัยเท่า Block Cipher ความยาวคีย์เท่ากัน (ถ้าออกแบบ PRNG ดี)
  • เร็วกว่าและโค้ดน้อยกว่า Block Cipher (ถ้าไม่ใช้ Block Cipher เป็น Building Block)
  • เหมาะสำหรับ Data Communications Channel, Browser/Web Link
  • Block Cipher เหมาะสำหรับ File Transfer, Email, Database
  • แต่ Stream Cipher ใช้ได้ในแอปพลิเคชันเกือบทุกประเภท