ทั้งการเข้ารหัสแบบ Block และ Stream เป็นวิธีการของการเข้ารหัสที่ใช้เป็นหลักในการแปลงข้อความธรรมดาเป็นข้อความเข้ารหัสโดยตรงและอยู่ในตระกูลของรหัสคีย์สมมาตร
ต่อไปนี้เป็นข้อแตกต่างที่สำคัญระหว่าง Block Cipher และ Stream Cipher
ซีเนียร์ เลขที่ | คีย์ | บล็อกรหัส | สตรีมรหัส |
---|---|---|---|
1 | คำจำกัดความ | Block Cipher เป็นประเภทของการเข้ารหัสที่การแปลงข้อความธรรมดาทำได้โดยการบล็อกในแต่ละครั้ง | ในอีกทางหนึ่ง Stream Cipher เป็นประเภทของการเข้ารหัสที่การแปลงข้อความธรรมดาดำเนินการโดยใช้ข้อความธรรมดาครั้งละหนึ่งไบต์ |
2 | การแปลงบิต | เนื่องจาก Block Cipher ทำการบล็อกในแต่ละครั้ง จึงมีการแปลงบิตที่ค่อนข้างมากขึ้นเมื่อเทียบกับใน Stream Cipher โดยเฉพาะ 64 บิตขึ้นไปจึงสามารถแปลงได้ในแต่ละครั้ง | ในทางกลับกัน ในกรณีที่ Stream Cipher แปลงได้สูงสุด 8 บิตในแต่ละครั้ง |
3 | หลักการ | Block Cipher ใช้ทั้งหลักความสับสนและการแพร่กระจายสำหรับการแปลงที่จำเป็นสำหรับการเข้ารหัส | ในทางกลับกัน Stream Cipher ใช้หลักความสับสนในการแปลงเท่านั้น |
4 | อัลกอริทึม | สำหรับการเข้ารหัสข้อความธรรมดา Block Cipher ใช้อัลกอริธึม Electronic Code Book (ECB) และ Cipher Block Chaining (CBC) | ในทางกลับกัน Stream Cipher ใช้อัลกอริธึม CFB (Cipher Feedback) และ OFB (Output Feedback) |
5 | ถอดรหัส | เมื่อรวมบิตจำนวนมากขึ้นจะได้รับการเข้ารหัสในกรณีของ Block Cipher ดังนั้นการเข้ารหัสหรือการถอดรหัสแบบย้อนกลับจึงค่อนข้างซับซ้อนเมื่อเทียบกับ Stream Cipehr | ในทางกลับกัน Stream Cipher ใช้ XOR สำหรับการเข้ารหัสซึ่งสามารถย้อนกลับเป็นข้อความธรรมดาได้อย่างง่ายดาย |
6 | การนำไปใช้ | การใช้งานหลักของ Block Cipher คือ Feistel Cipher | ในทางกลับกัน การใช้งาน Stream Cipher หลักคือ Vernam Cipher |