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

IDEA มีรอบการเข้ารหัสกี่รอบ


IDEA ย่อมาจาก International Data Encryption Algorithm IDEA เป็นรหัสบล็อกคีย์สมมาตร มันถูกระบุว่าเป็นคีย์เดียวกันที่สามารถใช้เข้ารหัสข้อความธรรมดาและถอดรหัสข้อความไซเฟอร์ได้

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

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

องค์ประกอบพื้นฐานสำหรับการพัฒนา IDEA คือความทนทานทางการทหารสำหรับข้อกำหนดด้านความปลอดภัยทั้งหมด และการใช้งานฮาร์ดแวร์และซอฟต์แวร์ที่ชัดเจน อัลกอริธึมนี้ถูกใช้อย่างกว้างขวางในแอพพลิเคชั่นด้านการธนาคารและอุตสาหกรรมต่างๆ

IDEA มีทั้งหมด 8 รอบ แต่ละรอบประกอบด้วยลำดับของการดำเนินการบนบล็อคข้อมูลทั้งสี่ โดยใช้ปุ่มหกปุ่ม ในระดับกว้าง ขั้นตอนเหล่านี้สามารถแสดงได้ดังนี้ ขั้นตอนเหล่านี้ดำเนินการทางคณิตศาสตร์หลายอย่าง มีการคูณ การบวก และ XOR

รายละเอียดของหนึ่งรอบใน IDEA

ขั้นตอนที่ 1:คูณ * P1 และ K1
ขั้นที่ 2:เพิ่ม * P2 และ K2
ขั้นตอนที่ 3:เพิ่ม * P3 และเค3
ขั้นตอนที่4:คูณ * P4 และเค4
ขั้นตอนที่ 5:XOR ผลลัพธ์ของขั้นตอนที่ 1 และขั้นตอนที่ 3
ขั้นตอนที่ 6:XOR ผลลัพธ์ของขั้นตอนที่ 2 และขั้นตอนที่ 4
ขั้นตอนที่7:คูณ * ผลลัพธ์ของขั้นตอนที่ 5 ด้วย K5
ขั้นตอนที่ 8:เพิ่ม *ผลลัพธ์ของขั้นตอนที่ 6 และขั้นตอนที่ 7
ขั้นตอนที่ 9:คูณ * ผลลัพธ์ของขั้นตอนที่ 8 ด้วย K6
ขั้นตอนที่ 10:เพิ่ม * ผลลัพธ์ของขั้นตอนที่ 7 และขั้นตอนที่ 9
ขั้นตอนที่ 11:XOR ผลลัพธ์ของขั้นตอนที่ 1 และขั้นตอนที่ 9
ขั้นตอนที่ 12:XOR ผลลัพธ์ของขั้นตอนที่ 3 และขั้นตอนที่ 9
ขั้นตอนที่ 13:XOR ผลลัพธ์ของขั้นตอนที่ 2 และขั้นตอนที่ 10
ขั้นตอนที่ 14:XOR ผลลัพธ์ของขั้นตอนที่ 4 และขั้นตอนที่ 10

การบวก * และ การคูณ * ในขั้นตอนต่อไปนี้ของแต่ละรอบไม่ใช่การบวกและการคูณอย่างง่าย แต่เป็นการเพิ่มโมดูล 2 16 เช่น 65536 และโมดูลการคูณ 2 16 +1 ผม อี , 65537.

การบวกปกติจะสร้างตัวเลขที่มี 17 บิต (เช่น 111111111011000001) สามารถมีตำแหน่งได้เพียง 16 บิตสำหรับเอาต์พุตของ Round2

ดังนั้นจึงสามารถลดจำนวนนี้ (ซึ่งคือ 130753 ในรูปทศนิยม) เป็นตัวเลข 16 บิต สำหรับสิ่งนี้ มันสามารถใช้โมดูโล 65536 ของสิ่งนี้ได้ 130753 โมดูโล 65536 ส่งคืน 65217 ซึ่งเท่ากับ 11111111011000001 ในรูปแบบไบนารี และเป็นตัวเลข 16 บิต ซึ่งเข้ากันได้ดีกับโครงร่าง

บล็อคอินพุตคือ P1 ถึง P4 และคีย์ย่อยจะถูกระบุโดย K1 ถึง K6 และเอาต์พุตของขั้นตอนนี้ระบุโดย R1 ถึง R4 (และไม่ใช่ C1 ถึง C4 เนื่องจากนี่ไม่ใช่ข้อความเข้ารหัสสุดท้าย) เป็นเอาต์พุตระดับกลาง ซึ่งจะถูกประมวลผลเป็นรอบเพิ่มเติมและในขั้นตอนการแปลงเอาต์พุต