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

การเข้ารหัส IDEA ทำงานอย่างไร


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

ข้อความธรรมดา 64 บิตแบ่งออกเป็นสี่ส่วนของข้อความธรรมดา 16 บิต (P1 ถึง P4 ). สิ่งเหล่านี้เป็นการเข้าสู่รอบแรก มีแปดรอบดังกล่าว คีย์ประกอบด้วย 128 บิต ในแต่ละรอบ จะมีการสร้างคีย์ย่อยหกคีย์จากคีย์ดั้งเดิม โดยแต่ละคีย์ย่อยเหล่านี้มี 16 บิต

รอบแรกมีคีย์ K1 ถึง K6 สำหรับรอบที่สองสามารถมี keysK7 ถึง K12 และสุดท้ายรอบสุดท้าย ขั้นตอนสุดท้ายรวมถึงการแปลงเอาต์พุตซึ่งต้องการคีย์ย่อยสี่คีย์ (K49 ถึง K52 )

ผลลัพธ์สุดท้ายคือผลลัพธ์ที่สร้างโดยขั้นตอนการแปลงผลลัพธ์ บล็อคC1 ถึง C4 ถูกเชื่อมโยงเพื่อสร้างผลลัพธ์สุดท้าย

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

การสร้างคีย์ย่อยสำหรับรอบ -

  • ในตำแหน่งบิตรอบแรก 1-96 ของคีย์ถูกใช้ บิต 97-128 ยังคงใช้งานไม่ได้ แจกรอบ 2

  • ในรอบที่สอง บิตที่สอง 97-128 ถูกใช้ครั้งแรก ดังนั้นการเลื่อนซ้ายแบบวงกลมของ 25 บิตปรากฏขึ้น และใช้บิตใหม่จาก 26-89 ตำแหน่งบิต 90-128 และ 1-25 ยังคงไม่ได้ใช้

  • ในรอบที่สามที่ไม่ได้ใช้บิต 90-128 และ 1-25 จะถูกใช้อีกครั้งก่อน เลื่อนไปทางซ้ายเป็นวงกลมของ 25 บิต ปรากฏขึ้นและใช้ตำแหน่งบิต 51-82 ตำแหน่งบิต 83-128 และ 1-50 ยังคงไม่ได้ใช้

  • ในรอบที่ 4 ใช้บิต 83-128 และ 1-50

  • ในรอบที่ 5 เลื่อนซ้ายแบบวงกลม 25 บิตปรากฏขึ้นและใช้ตำแหน่งบิต 76-128 และ 1-43 ตำแหน่งบิต 44-75 ยังคงไม่ได้ใช้

  • ในรอบที่ 6 บิตที่ไม่ได้ใช้ของรอบที่ 5 จะถูกใช้ และการเลื่อนแบบวงกลมด้านซ้ายของ 25 บิตเกิดขึ้น จึงทำให้ตำแหน่งบิต 37-100 ไม่ได้ใช้

  • ในรอบที่ 7 บิตที่ไม่ได้ใช้ของรอบที่หกคือ 37-100 ถูกใช้ครั้งแรกและเลื่อนไปทางซ้ายแบบวงกลม 25 บิตปรากฏตำแหน่งบิต 126-128 และ 1-29 Bit30-125 ยังคงไม่ได้ใช้

  • ตำแหน่งบิตที่ไม่ได้ใช้ 30-125 จากรอบที่เจ็ดถูกใช้และปิดใช้งานคีย์

การแปลงผลลัพธ์ - เป็นการดำเนินการเพียงครั้งเดียว มันจะเกิดขึ้นในตอนท้ายของวันที่ 8 th กลม. ดังนั้นค่า 64 บิตจึงแบ่งออกเป็นสี่บล็อกย่อย (พูด R1 ถึง R4 ) และคีย์ย่อยสี่คีย์ที่นี่

การถอดรหัส IDEA − กระบวนการถอดรหัสนั้นเทียบเท่ากับกระบวนการเข้ารหัส มีการเปลี่ยนแปลงบางอย่างในการสร้างและออกแบบคีย์ย่อย คีย์ย่อยถอดรหัสอยู่ตรงข้ามกับคีย์ย่อยการเข้ารหัส