IDEA ย่อมาจาก International Data Encryption Algorithm IDEA เป็นรหัสบล็อกที่คิดค้นโดย James Massey และ Xuejia Lai และถูกกำหนดขึ้นครั้งแรกในปี 1991 โดยใช้ความยาวคีย์ 128 บิตซึ่งทำงานบนบล็อก 64 บิต
ประกอบด้วยชุดการแปลงที่เหมือนกันแปดแบบขึ้นอยู่กับโมดูลตัวแยกระดับบิต การบวก และการคูณ มันขึ้นอยู่กับรหัสที่สมมาตรและมีวิธีการออกแบบคีย์ที่อ่อนแอมาก ดังนั้นระดับความปลอดภัยของอัลกอริทึมจึงด้อยโอกาสมากเมื่อเปรียบเทียบกับ DES IDEA ไม่ได้โด่งดังมากนักเพราะโครงสร้างที่ซับซ้อน
เป็น IDEA ซึ่งแตกต่างจากอัลกอริธึมการเข้ารหัสแบบบล็อกอื่น ๆ ที่ได้รับการพิจารณาโดย บริษัท สวิสของ Ascom อย่างไรก็ตาม อนุญาตให้ใช้อัลกอริธึมที่ไม่ซ้ำแบบกันในเชิงพาณิชย์โดยไม่เสียค่าใช้จ่าย ซึ่งส่งผลให้ IDEA ได้รับความนิยมเนื่องจากอัลกอริธึมรหัสบล็อกที่ใช้ในการเข้ารหัสที่มีชื่อเสียงสำหรับอักขระข้อความ
มีแปดรอบใน IDEA แต่ละรอบประกอบด้วยลำดับของการดำเนินการบนบล็อกข้อมูลทั้งสี่ชุดโดยใช้ปุ่มหกปุ่ม รอบแรกได้คีย์ K1 ถึง K6 , สำหรับรอบที่สอง มันสามารถมีคีย์ K7 ถึง K12 และสุดท้ายรอบสุดท้าย ขั้นตอนสุดท้ายรวมถึงการแปลงเอาต์พุตซึ่งต้องการคีย์ย่อยสี่คีย์ (K49 ถึง K52 )
ผลลัพธ์สุดท้ายคือผลลัพธ์ที่พัฒนาโดยขั้นตอนการแปลงผลลัพธ์ บล็อก C1 ถึง C4 ถูกเชื่อมโยงเพื่อสร้างผลลัพธ์สุดท้าย แต่ละรอบประกอบด้วย 14 ขั้นตอนดังนี้ -
รายละเอียดของหนึ่งรอบใน IDEA
ขั้นที่ 1 :คูณ * P1 และ K1 |
ขั้นที่ 2 :เพิ่ม * P2 และเค2 |
ขั้นที่ 3 :เพิ่ม * P3 และเค3 |
ขั้นที่ 4 :คูณ * P4 และเค4 |
ขั้นตอนที่ 5 :XOR ผลลัพธ์ของขั้นตอนที่ 1 และขั้นตอนที่ 3 |
ขั้นตอนที่ 6 :XOR ผลลัพธ์ของขั้นตอนที่ 2 และขั้นตอนที่ 4 |
Step7 :คูณ * ผลลัพธ์ของ step5 ด้วย K5 |
Step8 :เพิ่ม * ผลลัพธ์ของ step6 และ step7 |
ขั้นตอนที่ 9 :คูณ * ผลลัพธ์ของขั้นตอนที่ 8 ด้วย K6 |
ขั้นตอนที่ 10 :เพิ่ม * ผลลัพธ์ของขั้นตอนที่ 7 และขั้นตอนที่ 9 |
ขั้นตอนที่ 11 :XOR ผลลัพธ์ของขั้นตอนที่ 1 และขั้นตอนที่ 9 |
ขั้นตอนที่ 12 :XOR ผลลัพธ์ของขั้นตอนที่ 3 และขั้นตอนที่ 9 |
ขั้นตอนที่ 13 :XOR ผลลัพธ์ของขั้นตอนที่ 2 และขั้นตอนที่ 10 |
Step14 :XOR ผลลัพธ์ของ step4 และ step10 |
การบวก * และ การคูณ * ในขั้นตอนต่อไปนี้ของแต่ละรอบไม่ใช่การบวกและการคูณเบื้องต้น แต่เป็นการเพิ่มโมดูล 2 16 เช่น 65536 และโมดูลการคูณ 2 16 +1 ผม อี , 65537.
การแปลงผลลัพธ์ - เป็นการดำเนินการเพียงครั้งเดียว มันจะเกิดขึ้นในตอนท้ายของวันที่ 8 th กลม. ดังนั้นค่า 64 บิตจึงแบ่งออกเป็นสี่บล็อกย่อย (พูด R1 ถึง R4 ) และคีย์ย่อยสี่คีย์อยู่ที่นี่
ถอดรหัส − การถอดรหัสใช้เหมือนกับการเข้ารหัส แต่มีการสร้างลำดับของคีย์แบบกลม และคีย์ย่อยสำหรับรอบคี่จะตรงกันข้ามกับสิ่งนี้ ดังนั้น ค่าของคีย์ย่อย K1-K4 จะถูกกู้คืนโดยผกผันของ K49-K52 สำหรับการดำเนินการชุดตามลำดับในการเข้ารหัส K47 และ K6 ของแต่ละกลุ่มควรกู้คืนโดย K47 และ K48 สำหรับการถอดรหัสในการดำเนินการนี้ในการเข้ารหัส