2014-02-24

Advanced Encryption Standard (AES)

   Advanced Encryption Standard หรือ AES คือ การเข้ารหัสแบบ Modern Block Ciphers ด้วยการใช้ Symmetric-key(Private Key) ซึ่ง AES ถูกพัฒนาขึ้นมาแทนที่ DES โดยในช่วงปี 1997 ได้มีการจัดประกวดการแข่งขัน algorithm ในการเข้ารหัสขึ้น โดย NIST และ ผู้ได้รับชัยชนะคือ Rijndael ซึ่งเป็นผู้ออกแบบ algorithm AES ได้ชัยชนะในปี 2000 และได้ถูกเสนอให้เป็นมาตรฐานการเข้ารหัสใหม่แทน DES แบบเดิม
   AES ทำการเข้ารหัสโดยการนำ plantext มาประมวลผลทีละ 128 bits และใช้ key แบบเลือกได้คือ 128/192/256 bit keys และยังสามารถเลือก ลอบในการวนซ้ำได้อีกด้วย แบ่งเป็น 9/11/13 ลอบ

   AES จะทำการแบ่ง (plantext)data เป็น block ซึ่ง 1 block จะมีรูปแบบเป็น matrix 4x4 หรือ 16 ช่อง โดยที่ 1 ช่องจะมีขนาด 1 byte(8 bit), 1 แถวมีขนาด 4 byte(32bit), 1 block มีขนาด 16 byte(128bit) ส่วน key จะทำการแปลงให้อยู่ในรูป matrix เช่นเดียวกัน

   การทำงานของ AES
      1. Input plantext data block (state)
      2. AddRoundKey โดยทำการสุ่มเลือก key มาทำการ XOR กับ state
      3. Rounds (เริ่มการคำณวนแต่ละลอบ) จนครบกำหนดลอบ
         3.1 byte substitution (การแทนที่ข้อมูล byte)
         3.2 shift row (การเลื่อนแถว matrix)
         3.3 mix columns (การคูณ matrix ทีละ คอลัมน์)
         3.4 add round key (นำ data มาผสม key ด้วยการ XOR)
      4. Final Round (no MixColumns)
         4.1 byte substitution (การแทนที่ข้อมูล byte)
         4.2 shift row (การเลื่อนแถว matrix)
         4.4 add round key (นำ data มาผสม key ด้วยการ XOR)
      5. Output ciphertext data block


   Byte substitution (การแทนที่ข้อมูล byte)
      AES จะทำการสร้าง ตารางขนาด 16x16 bytes ขึ้นมาเพื่อทำการแทนที่ bit data (00000000-11111111) โดยวิธีการแทนค่า จะนำ 1 byte ของแต่ละ state มาเป็นตัวระบุ index ของตาราง ซึ่งจะแบ่งครึ่ง 1 byte(8bits) โดยที่ 4bits ทางซ้ายระบุ row และ 4bits ทางขวาระบุ คอลัมน์
  เพิ่มเติม
   http://en.wikipedia.org/wiki/Substitution_box
   http://en.wikipedia.org/wiki/Rijndael_S-box

   Shift row (การเลื่อนแถว matrix)
      มี 4 ขั้นตอน
        state row ที่ 1 จะไม่ทำการเลื่อน
        state row ที่ 2 เลื่อนไปทาง ซ้าย 1 byte (1 ตำแหน่ง)
        state row ที่ 3 เลื่อนไปทาง ซ้าย 2 byte (2 ตำแหน่ง)
        state row ที่ 4 เลื่อนไปทาง ซ้าย 3 byte (3 ตำแหน่ง)

   Mix Columns (การคูณ matrix ทีละ คอลัมน์)
      AES จะสร้าง matrix ที่มีค่าจำนวนเฉพาะขึ้นมา โดยใช้ ฟังก์ชั่น GF() และนำเอา matrix ที่สร้างขึ้นมาคูณ matrix กับ state
  เพิ่มเติม
   http://en.wikipedia.org/wiki/Rijndael_mix_columns

   Add round key
      ทำการสุ่มเลือก key โดยวิธี key schedule มาทำการ XOR กับ state


**key schedule คือขบวนการการสุ่มเลือก key หรือ gen sub key (ผู้เขียนเข้าใจว่างอย่างนั้น อะนะ)


เนื้อหา และภาพประกอบจาก
http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
http://kubieziel.de/blog/archives/937-Wie-AES-funktioniert.html 

1 comment:

  1. Heavensaber Blog: Advanced Encryption Standard (Aes) >>>>> Download Now

    >>>>> Download Full

    Heavensaber Blog: Advanced Encryption Standard (Aes) >>>>> Download LINK

    >>>>> Download Now

    Heavensaber Blog: Advanced Encryption Standard (Aes) >>>>> Download Full

    >>>>> Download LINK hi

    ReplyDelete