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

โครงสร้างของ DES ในการรักษาความปลอดภัยข้อมูลมีอะไรบ้าง?


Data Encryption Standard (DES) เป็นอัลกอริธึมบล็อกการเข้ารหัสที่สร้างข้อความธรรมดาในบล็อกขนาด 64 บิต และแปลงเป็นข้อความเข้ารหัสโดยใช้คีย์ขนาด 48 บิต เป็นอัลกอริธึมคีย์สมมาตร ซึ่งกำหนดว่าคีย์ที่คล้ายกันสามารถใช้สำหรับการเข้ารหัสและถอดรหัสข้อมูลได้

ขั้นตอนการเข้ารหัสสร้างการเรียงสับเปลี่ยนสองแบบ (P-boxes) ซึ่งสามารถกำหนดการเรียงสับเปลี่ยนเริ่มต้นและขั้นสุดท้ายได้ และรอบ Feistel 16 รอบ แต่ละรอบต้องใช้คีย์กลม 48 บิตโดยเฉพาะซึ่งสร้างจากคีย์การเข้ารหัสตามอัลกอริธึมที่แน่นอน

องค์ประกอบของการเข้ารหัส DES ที่ไซต์เข้ารหัสมีดังนี้ -

การเรียงสับเปลี่ยนเริ่มต้นและขั้นสุดท้าย − การเรียงสับเปลี่ยนแต่ละครั้งจะสร้างอินพุต 64 บิตและเปลี่ยนลำดับตามกฎที่กำหนดไว้ สามารถแสดงเฉพาะพอร์ตอินพุตและพอร์ตเอาต์พุตที่เกี่ยวข้องเท่านั้น การเรียงสับเปลี่ยนเหล่านี้เป็นการเรียงสับเปลี่ยนแบบไม่มีคีย์ซึ่งตรงกันข้ามกัน

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

กล่าวอีกนัยหนึ่ง หากรอบระหว่างทั้งสองการเรียงสับเปลี่ยนไม่ดำเนินต่อไป และบิตที่ 58 ที่เข้าสู่การเปลี่ยนลำดับเริ่มต้นจะเท่ากับบิตที่ 58 ที่ออกจากการเปลี่ยนแปลงขั้นสุดท้าย

รอบ − DES ใช้ 16 รอบ DES แต่ละรอบเป็นรหัส Feistel รอบสร้าง LI-1 และ RI-1 จากรอบที่แล้วและทำให้ LI และ Rฉัน ที่จะเข้ารอบต่อไป สามารถพิจารณาได้ว่าแต่ละรอบมีองค์ประกอบการเข้ารหัสสององค์ประกอบ (เช่น เครื่องผสมและตัวสลับ)

แต่ละองค์ประกอบเหล่านี้สามารถกลับด้านได้ ตัวสลับเป็นแบบกลับด้านได้ มันสามารถสลับครึ่งซ้ายของข้อความกับครึ่งขวา เครื่องผสมสามารถพลิกกลับได้เนื่องจากการดำเนินการ XOR องค์ประกอบที่ไม่สามารถย้อนกลับทั้งหมดจะถูกรวบรวมภายในฟังก์ชัน f(RI-1 , Kฉัน )

รหัสลับและรหัสย้อนกลับ − ด้วยการใช้เครื่องผสมและตัวสับเปลี่ยน มันสามารถสร้างรหัสลับและรหัสย้อนกลับได้ โดยแต่ละตัวมี 16 รอบ การเข้ารหัสสามารถใช้ที่ไซต์เข้ารหัสและสามารถใช้รหัสย้อนกลับได้ที่ไซต์ถอดรหัส แนวคิดทั้งหมดคือการสร้างรหัสลับและอัลกอริทึมการเข้ารหัสลับแบบเดียวกัน

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

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