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

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


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

มีโหมดการทำงานที่แตกต่างกันในรหัสบล็อกซึ่งมีดังต่อไปนี้ -

โหมดสมุดรหัสอิเล็กทรอนิกส์ (ECB) − นี่เป็นโหมดที่ง่ายที่สุด ในโหมดนี้ ข้อความธรรมดาจะแบ่งออกเป็นบล็อกโดยที่แต่ละบล็อกมีขนาด 64 บิต ดังนั้นแต่ละบล็อกจึงถูกเข้ารหัสอย่างอิสระ สามารถใช้คีย์เท่ากันสำหรับการเข้ารหัสของบล็อคทั้งหมด แต่ละบล็อกถูกเข้ารหัสโดยใช้คีย์และสร้างบล็อกของข้อความเข้ารหัส

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

โหมด Ciphertext Block Chaining (CBC) - ในโหมด CBC แต่ละบล็อกข้อความธรรมดาจะเป็น Exclusive-ORed โดยมีบล็อกข้อความเข้ารหัสก่อนหน้าก่อนที่จะเข้ารหัส สำหรับบล็อกแรก เวกเตอร์การเริ่มต้นสามารถใช้สำหรับ EX-ORing ผู้ส่ง และผู้รับจะยอมรับเวกเตอร์การเริ่มต้นที่แสดงไว้ล่วงหน้า

สามารถใช้ CBC เพื่อเข้ารหัสข้อความได้ แต่เนื่องจากโครงสร้างแบบลูกโซ่ การประมวลผลแบบขนานจึงไม่สามารถใช้ได้ ไม่สามารถใช้เพื่อเข้ารหัสและถอดรหัสข้อมูลไฟล์เข้าถึงโดยสุ่มได้

โหมดป้อนกลับของเอาต์พุต (OFB) − มันเทียบเท่ากับโหมด CFB โดยมีความแตกต่างเพียงอย่างเดียว ciphertext แต่ละบิตไม่ขึ้นกับบิตก่อนหน้า สิ่งนี้สามารถป้องกันการไหลของข้อผิดพลาดจากบล็อกหนึ่งไปยังอีกบล็อกหนึ่งได้

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

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

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

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

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

สำหรับการถอดรหัส สามารถใช้ลำดับค่าตัวนับที่คล้ายกันกับตัวนับ XOR ที่เข้ารหัสแต่ละตัวด้วยบล็อกข้อความเข้ารหัส โหมด CTR ใช้ในประสิทธิภาพของฮาร์ดแวร์และซอฟต์แวร์ การประมวลผลล่วงหน้า การป้องกัน และความสมบูรณ์