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

อะไรคือการเปรียบเทียบระหว่าง Stream Cipher และ Block Cipher ในการรักษาความปลอดภัยข้อมูล?


สตรีมรหัส

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

ตัวอย่างเช่น รหัสของสตรีมแบบคลาสสิกคือรหัส Vigenère ที่มีความสำคัญอัตโนมัติและรหัส Vernam ในกรณีของแนวคิด สามารถใช้ Vernam cipher เวอร์ชันแพดแบบใช้ครั้งเดียวได้ ซึ่งคีย์สตรีมกำลังพิจารณาสตรีมบิตข้อความธรรมดา

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

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

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

บล็อกรหัส

block cipher เป็นบล็อกของข้อความธรรมดาที่ถือว่าเป็นทั้งหมด และใช้ในการสร้างบล็อกข้อความตัวเลขที่มีความยาวเท่ากัน โดยทั่วไปจะใช้ขนาดบล็อก 64 หรือ 128 บิต Block Cipher นำข้อความและแบ่งออกเป็นบล็อกขนาดคงที่และเปลี่ยนหนึ่งบล็อกของข้อความในทันที

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

การเข้ารหัสแบบบล็อกจะขึ้นอยู่กับวัตถุทางคณิตศาสตร์ที่เรียกว่า Pseudo Random Permutations (PRP) เป็นฟังก์ชันย้อนกลับที่สร้างเป็นอินพุตค่า n-bit m และคีย์ลับ k และส่งออกค่า n-bit c.

PRP ได้รับการปฏิบัติอย่างปลอดภัยหากแก้ไขด้วยคีย์ k ฟังก์ชันผลลัพธ์จะเหมือนกันจากฟังก์ชัน bijective แบบสุ่มบนค่า n-bit บล็อกการเข้ารหัสดำเนินการ PRP ที่ปลอดภัย

สร้างจากฟังก์ชันการเข้ารหัสที่สามารถเข้ารหัสบล็อกข้อความธรรมดาในบล็อกข้อความเข้ารหัสโดยใช้คีย์ลับ ฟังก์ชันถอดรหัสที่ใช้การดำเนินการผกผันและดึงบล็อกข้อความธรรมดาจากข้อความเข้ารหัส

ความแตกต่างหลักระหว่างรหัสสตรีมและบล็อกตามขนาดของข้อมูลที่ได้รับการจัดการในการเข้ารหัสแต่ละครั้ง การเข้ารหัสของสตรีมเข้ารหัสทีละบิตจากบิตสตรีมและส่งผลให้ข้อความที่เข้ารหัสมีข้อตกลงแบบบิตต่อบิตกับข้อความธรรมดา