Data Encryption Standard (DES) เป็นอัลกอริธึมบล็อกการเข้ารหัสที่สร้างข้อความธรรมดาในบล็อกขนาด 64 บิต และแปลงเป็นข้อความเข้ารหัสโดยใช้คีย์ขนาด 48 บิต เป็นอัลกอริธึมคีย์สมมาตร ซึ่งกำหนดว่าคีย์ที่คล้ายกันนี้ใช้สำหรับเข้ารหัสและถอดรหัสข้อมูล
DES รับข้อความธรรมดา 64 บิตและสร้างข้อความเข้ารหัส 64 บิต ที่ไซต์ถอดรหัส DES ใช้ข้อความเข้ารหัสแบบ 64 บิตและสร้างบล็อกข้อความธรรมดาแบบ 64 บิต คีย์การเข้ารหัส 56 บิตเดียวกันสามารถใช้ได้ทั้งการเข้ารหัสและถอดรหัส
ลักษณะสำคัญของ DES คืออัลกอริธึมได้รับการแก้ไขและเป็นข้อมูลสาธารณะ อย่างไรก็ตาม คีย์จริงที่ใช้จะเป็นความลับร่วมกันระหว่างผู้สร้างและผู้รับการส่งสัญญาณ
ความก้าวหน้าใน DES ประกอบด้วยการยืดคีย์ให้ยาวเป็น 128 บิต และ DES แบบมัลติพาสซึ่งรวมถึงการเข้ารหัสและถอดรหัสแบบหลายรอบโดยทั่วไปสามแบบโดยใช้หลายคีย์
DES เป็นผลจากโครงการวิจัยที่ติดตั้งโดย International Business Machines (IBM) Corporation ในช่วงปลายทศวรรษ 1960 ซึ่งส่งผลให้มีการเข้ารหัสที่เรียกว่า LUCIFER ในช่วงเริ่มต้นปี 1970 มีความตั้งใจที่จะลดระดับ LUCIFER และนำเสนอนวัตกรรมหลายอย่าง
อัลกอริธึมใช้การเข้ารหัส 16 รอบและในแต่ละรอบจะมีการสร้างคีย์ที่ไม่ซ้ำกัน ก่อนที่จะแปลงเป็นขั้นตอน จำเป็นต้องเข้าใจว่าในข้อความธรรมดา บิตจะมีป้ายกำกับตั้งแต่ 1 ถึง 64 โดยที่ 1 เป็นบิตที่สำคัญที่สุดและ 64 เป็นบิตที่มีนัยสำคัญน้อยที่สุด ขั้นตอนการสร้างคีย์มีดังนี้ −
-
ตัวสร้างคีย์แบบกลมสร้างคีย์ 48 บิตสิบหกคีย์จากการเข้ารหัสแบบ 56 บิต คีย์การเข้ารหัสมีให้เป็นคีย์ 64 บิต โดยที่บิตพิเศษ 8 บิตเป็นพาริตีบิต ซึ่งจะถูกทิ้งก่อนที่กระบวนการสร้างคีย์จริงจะเริ่มต้นขึ้น
-
กระบวนการดรอปพาริตีบิตจะดรอปพาริตีบิต (บิต 8, 16, 24, 32…64) จากคีย์ 64 บิต และเปลี่ยนบิตที่เหลือตามกฎที่กำหนดไว้ล่วงหน้าดังแสดงในตารางดรอปพาริตีบิตด้านล่าง
-
โดยทั่วไปแล้ว 56 บิตที่เหลือเหล่านี้ใช้สำหรับการสร้างคีย์
-
หลังจากการเรียงสับเปลี่ยน คีย์จะถูกแบ่งออกเป็นสองส่วน 28 บิต แต่ละส่วนเปลี่ยนซ้ายหนึ่งหรือสองบิตขึ้นอยู่กับรอบ
-
ในการเปลี่ยนเกียร์ 1, 2, 9 และ 16 จะเป็นหนึ่งบิต และในรอบอื่นๆ จะเป็นสองบิต ทั้งสองส่วนถูกรวมเข้าด้วยกันเพื่อสร้างส่วน 56 บิต
-
ดังนั้นการบีบอัด D-box จึงแปลงเป็น 48 บิต 48 บิตเหล่านี้ถูกใช้เป็นกุญแจสำหรับรอบ
57 | 49 | 41 | 33 | 25 | 17 | 09 | 01 |
58 | 50 | 42 | 34 | 26 | 18 | 10 | 02 |
59 | 51 | 43 | 35 | 27 | 19 | 11 | 03 |
60 | 52 | 44 | 36 | 63 | 55 | 47 | 39 |
31 | 23 | 15 | 07 | 62 | 54 | 46 | 38 |
30 | 22 | 14 | 06 | 61 | 53 | 45 | 37 |
29 | 21 | 13 | 05 | 28 | 20 | 12 | 04 |