มาตรฐานการเข้ารหัสขั้นสูง

อัลกอริทึมการเข้ารหัสแบบสมมาตรที่ได้รับความนิยมและนำมาใช้กันอย่างแพร่หลายในปัจจุบันคือ Advanced Encryption Standard (AES) พบเร็วกว่าสามเท่าอย่างน้อยหกเท่า

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

คุณสมบัติของ AES มีดังนี้ -

  • รหัสบล็อกสมมาตรคีย์สมมาตร
  • ข้อมูล 128 บิต, ปุ่ม 128/192/256-bit
  • แรงและเร็วกว่า Triple-DES
  • ระบุข้อกำหนดและรายละเอียดการออกแบบทั้งหมด
  • ซอฟต์แวร์ที่ใช้งานได้ใน C และ Java

การดำเนินงานของ AES

AES เป็นการทำซ้ำมากกว่าการเข้ารหัส Feistel มันขึ้นอยู่กับ 'การทดแทน - เครือข่ายการเปลี่ยนแปลง' ประกอบด้วยชุดของการดำเนินการที่เชื่อมโยงกันซึ่งบางส่วนเกี่ยวข้องกับการแทนที่อินพุตโดยเอาต์พุตเฉพาะ (การแทนที่) และอื่น ๆ เกี่ยวข้องกับการสับบิตรอบ ๆ (การเรียงสับเปลี่ยน)

ที่น่าสนใจคือ AES ทำการคำนวณทั้งหมดด้วยไบต์แทนที่จะเป็นบิต ดังนั้น AES จึงถือว่าบล็อก 128 บิตของข้อความธรรมดาเป็น 16 ไบต์ 16 ไบต์เหล่านี้จัดเรียงเป็นสี่คอลัมน์และสี่แถวสำหรับการประมวลผลเป็นเมทริกซ์ -

ซึ่งแตกต่างจาก DES จำนวนรอบใน AES จะแปรผันและขึ้นอยู่กับความยาวของคีย์ AES ใช้ 10 รอบสำหรับคีย์ 128 บิต 12 รอบสำหรับคีย์ 192 บิตและ 14 รอบสำหรับคีย์ 256 บิต แต่ละรอบเหล่านี้ใช้คีย์รอบ 128 บิตที่แตกต่างกันซึ่งคำนวณจากคีย์ AES ดั้งเดิม

แผนผังของโครงสร้าง AES มีให้ในภาพประกอบต่อไปนี้ -

กระบวนการเข้ารหัส

ในที่นี้เรา จำกัด เฉพาะคำอธิบายของการเข้ารหัส AES ทั่วไป แต่ละรอบประกอบด้วยสี่กระบวนการย่อย กระบวนการรอบแรกแสดงไว้ด้านล่าง -

การแทนที่ไบต์ (SubBytes)

อินพุต 16 ไบต์ถูกแทนที่โดยการค้นหาตารางคงที่ (S-box) ที่กำหนดในการออกแบบ ผลลัพธ์อยู่ในเมทริกซ์สี่แถวและสี่คอลัมน์

กะ

แต่ละแถวสี่แถวของเมทริกซ์จะเลื่อนไปทางซ้าย รายการใด ๆ ที่ "หลุด" จะถูกแทรกใหม่ที่ด้านขวาของแถว กะจะดำเนินการดังนี้ -

  • ไม่เลื่อนแถวแรก

  • แถวที่สองเลื่อนตำแหน่งหนึ่ง (ไบต์) ไปทางซ้าย

  • แถวที่สามเลื่อนไปทางซ้ายสองตำแหน่ง

  • แถวที่สี่เลื่อนไปทางซ้ายสามตำแหน่ง

  • ผลลัพธ์ที่ได้คือเมทริกซ์ใหม่ที่ประกอบด้วย 16 ไบต์เท่ากัน แต่เลื่อนตามกัน

MixColumns

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

Addroundkey

ตอนนี้เมทริกซ์ 16 ไบต์ถือเป็น 128 บิตและ XORed เป็น 128 บิตของคีย์กลม หากนี่เป็นรอบสุดท้ายผลลัพธ์จะเป็นไซเฟอร์เท็กซ์ มิฉะนั้นผลลัพธ์ 128 บิตจะถูกตีความเป็น 16 ไบต์และเราจะเริ่มรอบที่คล้ายกันอีกครั้ง

กระบวนการถอดรหัส

กระบวนการถอดรหัสรหัสลับ AES คล้ายกับกระบวนการเข้ารหัสในลำดับย้อนกลับ แต่ละรอบประกอบด้วยสี่กระบวนการที่ดำเนินการตามลำดับย้อนกลับ -

  • เพิ่มปุ่มกลม
  • ผสมคอลัมน์
  • เปลี่ยนแถว
  • การทดแทนไบต์

เนื่องจากกระบวนการย่อยในแต่ละรอบเป็นไปในลักษณะย้อนกลับซึ่งแตกต่างจาก Feistel Cipher อัลกอริธึมการเข้ารหัสและการถอดรหัสจึงจำเป็นต้องดำเนินการแยกกันแม้ว่าจะมีความเกี่ยวข้องกันมากก็ตาม

การวิเคราะห์ AES

ในการเข้ารหัสในปัจจุบัน AES ได้รับการยอมรับและสนับสนุนอย่างกว้างขวางทั้งในฮาร์ดแวร์และซอฟต์แวร์ จนถึงปัจจุบันยังไม่มีการค้นพบการโจมตีด้วยการเข้ารหัสที่ใช้งานได้จริงกับ AES นอกจากนี้ AES ยังมีความยืดหยุ่นของความยาวของคีย์ในตัวซึ่งช่วยให้ระดับของ 'การพิสูจน์ในอนาคต' เทียบกับความสามารถในการค้นหาคีย์ที่ละเอียดถี่ถ้วน

อย่างไรก็ตามเช่นเดียวกับ DES การรักษาความปลอดภัย AES จะมั่นใจได้ก็ต่อเมื่อมีการใช้งานอย่างถูกต้องและมีการใช้การจัดการคีย์ที่ดี