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

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


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

แต่ละบล็อกมีขนาดใกล้เคียงกัน (เช่น 64 บิต) ตัวอย่างเช่น ข้อความธรรมดา 160 บิตจะถูกเข้ารหัสเป็น 2 บล็อกโดยแต่ละ 64 บิต ในขณะที่บล็อกที่สามจะมียอดคงเหลือ 32 บิต โดยจะเสริมด้วย 32 บิตเพิ่มเติมเพื่อรองรับขนาดที่ใกล้เคียงกับบล็อคอื่นๆ

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

Block ciphers เป็นการจัดประเภท pseudorandom permutation (PRP) ที่ทำงานบนบล็อกขนาดคงที่ของบิต PRP คือฟังก์ชันที่ไม่สามารถเข้าใจได้จากการเรียงสับเปลี่ยนแบบสุ่มโดยสิ้นเชิง ดังนั้น จึงถือว่าเชื่อถือได้ จนกว่าจะได้รับการพิสูจน์ว่าไม่เป็นความจริง

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

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

บล็อกของบิตที่เรียกว่า initialization vector (IV) นอกจากนี้ยังสามารถใช้โดยโหมดการทำงานเพื่อให้ข้อความเข้ารหัสยังคงชัดเจนแม้ว่าข้อความธรรมดาที่คล้ายคลึงกันจะถูกเข้ารหัสหลายครั้ง block cipher เป็นคลาสของ cipher ที่เข้ารหัสข้อความโดยการทำงานของบล็อกของข้อความผ่านอัลกอริธึมที่แบ่งประเภท ซึ่งขัดกับรหัสสตรีมที่เข้ารหัสข้อความทีละบิต

ตัวอย่างเช่น รหัสบล็อกจะทำงานโดยการเข้ารหัสย่อหน้าแรกของบทเรียนนี้ก่อนที่จะเปลี่ยนเป็นย่อหน้าถัดไป

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

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