แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง Block Cipher และ Stream Cipher

Block Cipher และ Stream Cipher เป็นวิธีที่ใช้ในการแปลงข้อความธรรมดาเป็นข้อความตัวเลขโดยตรงและเป็นของตระกูลของรหัสคีย์สมมาตร

ความแตกต่างที่สำคัญระหว่างการเข้ารหัสบล็อกและการเข้ารหัสกระแสคือการเข้ารหัสตัวเลขเข้ารหัสและถอดรหัสบล็อกของข้อความในเวลา ในขณะที่การเข้ารหัสสตรีมเข้ารหัสและถอดรหัสข้อความโดยการหนึ่งไบต์ของข้อความในเวลา

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบบล็อกเลขศูนย์สตรีมตัวเลข
ขั้นพื้นฐาน
แปลงข้อความธรรมดาโดยการบล็อกในแต่ละครั้ง
แปลงข้อความโดยใช้หนึ่งไบต์ของข้อความธรรมดาในแต่ละครั้ง
ความซับซ้อน
การออกแบบที่เรียบง่าย
คอมเพล็กซ์ค่อนข้าง
ไม่ใช้บิต
64 บิตหรือมากกว่า
8 บิต
ความสับสนและการกระจาย
ใช้ทั้งความสับสนและการกระจายต้องอาศัยความสับสนเท่านั้น
โหมดอัลกอริทึมที่ใช้
ECB (หนังสือรหัสอิเล็กทรอนิกส์)
CBC (Cipher Block Chaining)
CFB (ข้อเสนอแนะการเข้ารหัส)
OFB (ข้อเสนอแนะการส่งออก)
reversibility
การกลับข้อความที่เข้ารหัสยาก
มันใช้ XOR สำหรับการเข้ารหัสซึ่งสามารถย้อนกลับเป็นข้อความธรรมดาได้อย่างง่ายดาย
การดำเนินงาน
Feistel Cipher
Vernam Cipher

ความหมายของ Block Cipher

Block Cipher นำข้อความและแบ่งออกเป็นขนาดคงที่ของบล็อกและแปลงหนึ่งบล็อกของข้อความในทันที ตัวอย่างเช่น เรามีข้อความเป็นข้อความธรรมดา“ STREET_BY_STREET” ที่ต้องเข้ารหัส การใช้รหัสลับ“ STREET” จะต้องถูกเข้ารหัสในตอนแรกตามด้วย“ _BY_” และสุดท้ายคือ“ STREET” ในที่สุด
ในทางปฏิบัติจริงการสื่อสารจะเกิดขึ้นในบิตเท่านั้น ดังนั้น STREET จริง ๆ แล้วหมายถึงไบนารีเทียบเท่าของอักขระ ASCII ของ STREET จากนั้นอัลกอริทึมใด ๆ จะเข้ารหัสสิ่งเหล่านี้ บิตผลลัพธ์จะถูกแปลงกลับเป็นค่า ASCII ที่เท่ากัน

ปัญหาที่เห็นได้ชัดเกี่ยวกับการใช้ Block Ciphers กำลัง ทำซ้ำข้อความ ซึ่งสร้างรหัสลับเดียวกัน ดังนั้นมันจะให้คำแนะนำแก่ cryptanalyst ซึ่งทำให้ง่ายต่อการเข้าใจสตริงที่เกิดขึ้นประจำของข้อความธรรมดา เป็นผลให้มันสามารถเปิดเผยข้อความทั้งหมด

เพื่อเอาชนะจากปัญหานี้จะใช้ โหมดการโยง ในเทคนิคนี้บล็อกก่อนหน้าของข้อความตัวเลขจะถูกผสมกับบล็อกปัจจุบันเพื่อให้ข้อความข้อความตัวเลขนั้นคลุมเครือสิ่งนี้จะหลีกเลี่ยงรูปแบบที่เกิดซ้ำของบล็อกที่มีเนื้อหาเดียวกัน

ความหมายของการเข้ารหัสกระแส

โดยทั่วไปสตรีมเข้ารหัสจะเข้ารหัสหนึ่งไบต์ของข้อความในขณะนั้นแทนที่จะใช้บล็อก ลอง ยกตัวอย่าง สมมติว่าข้อความต้นฉบับ (ข้อความธรรมดา) คือ“ ท้องฟ้าสีฟ้า” ใน ASCII (เช่นรูปแบบข้อความ) เมื่อคุณแปลง ASCII เหล่านี้เป็นค่าไบนารีที่เทียบเท่ากันมันจะให้ผลลัพธ์ในรูปแบบ 0 และ 1 ปล่อยให้มันแปลใน 010111001

สำหรับการเข้ารหัสและการถอดรหัสจะใช้ตัวสร้าง บิตเทียมเทียม ซึ่งมีการโหลดคีย์และข้อความธรรมดา ตัวสร้างบิตหลอกเทียมสร้างกระแสข้อมูลจำนวน 8 บิตที่รู้จักกันในชื่อ keystream ปล่อยให้อินพุตคีย์คือ 100101011 ตอนนี้คีย์และเท็กซ์เท็กซ์คือ XORed ตรรกะ XOR นั้นง่ายต่อการเข้าใจ
XOR สร้างเอาต์พุต 1 เมื่ออินพุตหนึ่งเป็น 0 และอีกอันคือ 1 เอาต์พุตคือ 0 ถ้าทั้งอินพุตเป็น 0 หรือทั้งสองอินพุตเป็น 1

ความสับสน เป็นวิธีการที่รับประกันได้ว่าข้อความตัวเลขไม่ให้เงื่อนงำเกี่ยวกับข้อความธรรมดาเดิม
การแพร่กระจาย เป็นกลยุทธ์ที่ใช้เพื่อเพิ่มความซ้ำซ้อนของข้อความธรรมดาโดยการแพร่กระจายไปตามแถวและคอลัมน์

ความแตกต่างที่สำคัญระหว่างการเข้ารหัสตัวเลขและการเข้ารหัสแบบสตรีม

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

สรุป:

Block Cipher และ Stream Cipher นั้นแตกต่างกันไปตามการเข้ารหัสและถอดรหัสข้อความธรรมดา แนวคิดเบื้องหลังการเข้ารหัสบล็อกคือการแบ่งข้อความธรรมดาออกเป็นบล็อกเพิ่มเติมเข้ารหัสบล็อกเหล่านั้น ในขณะที่การเข้ารหัสสตรีมจะแปลงข้อความธรรมดาเป็นบิตคล้ายกับสตรีม

Top