Block Cipher VS Stream Cipher

Planning

Text

ชื่อหัวข้อที่จะนำเสนอ

  • Block Cipher VS Stream Cipher

โครงสร้างของเนื้อหา

  1. จำนวนหัวข้อทั้งหมดที่จะนำเสนอ
    • 1 หัวข้อ
  2. แต่ละหัวข้อจะนำเสนออะไร
    • หัวข้อที่ 1 : อธิบายความแตกต่างระหว่าง Block Cipher และ Stream Cipher ในด้านของกระบวนการทำงาน
    • Reference : จากที่พี่ต้าอธิบายใน Discord

ประเด็นสำคัญของบทความ

  • อธิบายความแตกต่างระหว่าง Block Cipher และ Stream Cipher ในด้านของกระบวนการทำงาน

สิ่งที่ผู้อ่านจะได้รับจากบทความ

  • เห็นความแตกต่างด้านของกระบวนการทำงานของ Block Cipher และ Stream Cipher

Graphic

เสนอไอเดียสำหรับออกแบบกราฟฟิค

รูปแบบของกราฟฟิคที่จะนำเสนอ

โครงสร้างของกราฟฟิค

  1. จำนวน Page ที่จะนำเสนอ
    • …รูป
  2. แต่ละ Page เป็นรูปแบบอย่างไร
    • รูปที่ 1 :
    • รูปที่ 2 :
    • รูปที่ 3 :

คำถามที่รบกวนให้ Reviewer ช่วยตอบค่ะ

1. ต้องการรู้ประเด็นไหนเพิ่มเติมไหม เพราะอะไร

2. คิดว่าเรียงลำดับการนำเสนอได้ดีรึยัง ถ้าไม่ดี มีไอเดียอย่างไร

3. มีประเด็นไหนควรตัดทิ้งไหม เพราะอะไร

:memo: Content text + graphic

Block Cipher VS Stream Cipher
จากบทความก่อนหน้านี้ที่เราได้นำเสนอเกี่ยวกับ Block Cipher และ Stream Cipher กันไปแล้ว มาในบทความนี้ เราจะมาเปรียบเทียบให้เห็นถึงความแตกต่างของทั้ง 2 วิธี ที่แม้ว่าจะเป็นการเข้ารหัสแบบ Symmetric - Key Cryptography (ใช้คีย์เดียวในการเข้าและถอดรหัส) เช่นเดียวกัน แต่ในด้านอื่น ๆ นั้นมีความแตกต่างกันค่อนข้างมาก

การเข้าและถอดรหัสของ Block Cipher จะทำเป็นบล็อกที่มีขนาดคงที่ ข้อความที่จะเข้ารหัสต้องมีขนาดพอดีกับบล็อก จึงจะทำการเข้ารหัสได้ ดังนั้นจึงต้องมีกระบวนการ Padding ซึ่งเป็นการเพิ่มความยาวของข้อความให้พอดีกับขนาดของบล็อกเข้ามาด้วย ส่งผลให้ความเร็วในการเข้ารหัสของ Block Cipher นั้นช้ากว่า Stream Cipher และทำให้ Output ที่ได้มีโอกาสที่จะใหญ่กว่า Input

ในขณะที่ Stream Cipher จะเข้ารหัสและถอดรหัสที่ละบิตหรือไบต์เรียงต่อกันไปเรื่อย ๆ ไม่จำเป็นต้องมีการ Padding ทำให้มีความรวดเร็วในการเข้ารหัสมากกว่า Block Cipher และ Output ที่ได้จะมีขนาดเท่ากับ Input เสมอ นอกจากนั้นในการใช้คีย์ แม้ว่าจะใช้คีย์เดียวเหมือนกัน แต่ว่า Block Cipher นั้น 1 คีย์สามารถใช้ซ้ำได้หลายครั้ง ส่วน Stream Cipher 1 คีย์สามารถใช้ได้ครั้งเดียว

ความแตกต่าง Block Cipher Stream Cipher
กระบวนการเข้ารหัส ทำเป็นบล็อกที่มีขนาดคงที่ มีกระบวนการ Padding ซึ่งเป็นการเพิ่มความยาวของข้อความให้พอดีกับขนาดของบล็อก เข้ารหัสที่เข้ารหัสทีละบิตหรือไบต์เรียงต่อกันไปเรื่อย ๆ
กระบวนการถอดรหัส ทำแบบบล็อกต่อบล็อก ทำทีละบิต
ความเร็ว ช้ากว่า Stream Cipher เร็วกว่า Block Cipher
การใช้คีย์ 1 คีย์สามารถใช้ซ้ำได้หลายครั้ง 1 คีย์สามารถใช้ได้ครั้งเดียว
ผลลัพธ์ มีโอกาสที่ Output จะมีขนาดใหญ่กว่า Input Output จะมีขนาดเท่ากับ Input เสมอ
ตัวอย่าง DES (Data Encryption Standard) Rivest Cipher (RC4)

Reference

คำถามที่รบกวนให้ Reviewer ช่วยตอบค่ะ

  1. อธิบายลึกกว่านี้หน่อยครับ จะชูความแตกต่างด้านใดบ้าง จะอธิบายในมุมไหนบ้าง
  • ตรงนี้ไม่ควรเว้นวรรคอ่านแล้วทำให้งงไม่ต่อเนื่องครับ

@Namtan เพิ่มคำอธิบายอีกนิด

  • Stream Cipher เป็น… และไม่มีการทำ padding ดังนั้นขนาดของ output จะเท่ากับ input
  • ส่วน Block Cipher มีโอกาสที่ output จะใหญ่กว่า input เพราะเจอ padding กรณีที่ขนาดข้อมูลหารออกมาแล้วไม่ลงตัวเท่ากับขนาด block

@Namtan ลิงค์นี้เกี่ยวกับเปรียบเทียบ คิดว่ามีประเด็นนี้อีกหนึ่งอันที่น่าพูดถึงนะคะ


อย่าง stream cipher ยกตัวอย่างเป็น OTP ก็ดูใกล้ตัวดีนะคะ



how-a-stream-cipher-works