เออีเอส

จาก testwiki
ไปยังการนำทาง ไปยังการค้นหา

แม่แบบ:ใช้ปีคศ แม่แบบ:Infobox block cipher เออีเอส ซึ่งเป็นตัวย่อของ Advanced Encryption Standard (AES) ที่มีชื่อดั้งเดิมว่า Rijndael (แม่แบบ:IPA-nl อ่านว่า เรนดาล)[1] เป็นมาตรฐานการเข้ารหัสลับข้อมูลแม่แบบ:Nowrapที่ตั้งขึ้นโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (แม่แบบ:Abbr) ในปี 2001[2]

เออีเอสเป็นส่วนย่อยของกลุ่มบล็อกไซเฟอร์ (block cipher)แม่แบบ:Efn-ua ที่เรียกว่าเรนดาล (Rijndael)[1] และพัฒนาโดยนักวิทยาการเข้ารหัสลับชาวเบลเยียมสองท่าน คือแม่แบบ:Nowrap (Vincent Rijmen) และแม่แบบ:Nowrap (Joan Daemen) ผู้ส่งวิธีการเป็นข้อเสนอ[3] แก่ NIST เมื่อองค์กรกำลังเลือกไซเฟอร์ (cipher)แม่แบบ:Efn-ua เพื่อใช้เป็นแม่แบบ:Nowrap[4] เรนดาลเป็นกลุ่มไซเฟอร์ที่มีกุญแจและบล็อก (block) ขนาดต่าง ๆ

เพื่อใช้เป็นมาตรฐานเออีเอส NIST ได้เลือกสมาชิก 3 หน่วยจากกลุ่มเรนดาล แต่ละอย่างมีขนาดบล็อก 128 บิตโดยมีกุญแจขนาดต่าง ๆ คือ 128, 192 และ แม่แบบ:Nowrap รัฐบาลกลางสหรัฐได้เลือกใช้มาตรฐานนี้ และปัจจุบันก็ใช้กันทั่วโลก เป็นมาตรฐานแทน Data Encryption Standard (DES)[5] ซึ่งเผยแพร่ในปี 1977 AES ใช้ขั้นตอนวิธีแบบกุญแจสมมาตร (symmetric-key algorithm) คือ ใช้กุญแจตัวเดียวกันเพื่อทั้งเข้ารหัสและถอดรหัสข้อมูล

ในสหรัฐ NIST ได้ประกาศเออีเอสเป็นมาตรฐานประมวลข้อมูลรัฐบาลกลางสหรัฐ (FIPS 197) เมื่อปลายปี 2001[2] นี่ทำตามหลังกระบวนการวางมาตรฐาน ซึ่งมีแบบที่เข้าแข่งขันกัน 15 แบบ เมื่อประเมินแล้วไซเฟอร์เรนดาลจึงได้เลือกว่าเหมาะสมที่สุด

เออีเอสจึงกลายเป็นมาตรฐานรัฐบาลกลางสหรัฐเมื่อกลางปี 2002 หลังจากได้รับอนุมัติจากเลขาธิการกระทรวงพาณิชย์สหรัฐ เออีเอสได้รวมเข้ามาตรฐานขององค์การระหว่างประเทศว่าด้วยการมาตรฐาน (แม่แบบ:Abbr) และ International Electrotechnical Commission (IEC) คือ ISO/IEC 18033-3 standard เออีเอสมีใช้ในคลัง/โปรแกรมเข้ารหัสสำเร็จหลายอย่าง เป็นไซเฟอร์ที่สาธารณชนเข้าถึงได้เดียวที่สำนักงานความมั่นคงแห่งชาติสหรัฐ (แม่แบบ:Abbr) อนุมัติให้ใช้เข้ารหัสข้อมูลราชการลับระดับ "top secret" โดยต้องใช้มอดูลเข้ารหัสที่องค์กรได้อนุมัติ

มาตรฐาน

เออีเอสได้กำหนดในมาตรฐานต่าง ๆ ดังต่อไปนี้

  • FIPS PUB 197: Advanced Encryption Standard (AES)[2]
  • ISO/IEC 18033-3: Block ciphers[6]

ไซเฟอร์

เออีเอสใช้หลักที่เรียกว่า substitution-permutation network (เครือข่ายการแทนที่-การเรียงสับเปลี่ยน) ซึ่งมีประสิทธิภาพดีเมื่อทำให้เกิดผลทั้งในซอฟต์แวร์และฮาร์ดแวร์[7] ไม่เหมือนกับมาตรฐานก่อนคือ DES แม่แบบ:Nowrapไม่ได้ใช้เครือข่ายฟายสเติล (Feistel network)แม่แบบ:Efn-ua เออีเอสเป็นรูปแปรของเรนดาลแต่มีขนาดบล็อกตายตัวที่ แม่แบบ:Nowrap และขนาดกุญแจที่ 128, 192 หรือ แม่แบบ:Nowrap เทียบกับเรนดาลที่กำหนดขนาดบล็อกและขนาดกุญแจที่เป็นพหุคูณ แม่แบบ:Nowrapใด ๆ ก็ได้โดยน้อยสุดที่ แม่แบบ:Nowrapและมากสุดที่ แม่แบบ:Nowrap เออีเอสคำนวณโดยใช้แถวลำดับขนาด แม่แบบ:Nowrap เก็บต่อกันในความจำเรียงอันดับตามสดมภ์ (column-major orderแม่แบบ:Efn-ua) เป็นหน่วยที่เรียกว่า "สเตต" (state)แม่แบบ:Efn-ua การคำนวณเออีเอสโดยมากจะทำในฟิลด์จำกัด (finite field)แม่แบบ:Efn-ua ยกตัวอย่างเช่น ถ้ามีไบต์ แม่แบบ:Nowrap คือ b0,b1,...,b15 ก็สามารถแสดงเป็นแถวลำดับสองมิติ คือ

[b0b4b8b12b1b5b9b13b2b6b10b14b3b7b11b15]

ขนาดกุญแจที่ใช้ในไซเฟอร์เออีเอสจะระบุจำนวนรอบการแปลง (transformation round) ที่เปลี่ยนอินพุตซึ่งเรียกว่า ข้อความธรรมดา (plaintext) เป็นเอาต์พุตสุดท้ายซึ่งเรียกว่า ข้อความไซเฟอร์ (ciphertext) จำนวนรอบที่ต้องคำนวณ คือ

  • 10 รอบสำหรับกุญแจขนาด 128 บิต
  • 12 รอบสำหรับกุญแจขนาด 192 บิต
  • 14 รอบสำหรับกุญแจขนาด 256 บิต

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

ขั้นตอนวิธีคร่าว ๆ

  1. แม่แบบ:Mono (การขยายจำนวนกุญแจ) —กุญแจที่ใช้ในแต่ละรอบจะทำจากกุญแจสมมาตรด้วยขั้นตอนวิธี Rijndael key scheduleแม่แบบ:Efn-ua เออีเอสต้องใช้บล็อกกุญแจขนาด 128 บิตหนึ่งบล็อกต่างหาก (round key block - บล็อกกุญแจรอบ) สำหรับการคำนวณแต่ละรอบ บวกเพิ่มอีกหนึ่งตัว
  2. การบวกกุญแจรอบเบื้องต้น
    1. แม่แบบ:Mono—ไบต์แต่ละไบต์ของสเตตจะรวมเข้ากับบล็อกหนึ่งของกุญแจรอบด้วย bitwise xor
  3. ทำดังนี้ 9, 11 หรือ 13 รอบ
    1. แม่แบบ:Mono (แทนที่ไบต์)—ขั้นการแทนที่แบบไม่เชิงเส้น (non-linear)—ไบต์แต่ละไบต์จะแทนที่ด้วยไบต์อีกไบต์หนึ่งตามตารางค้นหา คือ Rijndael S-boxแม่แบบ:Efn-ua
    2. แม่แบบ:Mono (เลื่อนแถว) —ขั้นการย้ายสดมภ์—แถวสุดท้าย 3 แถวของสเตตจะเลื่อนหมุนเป็นจำนวนหนึ่ง
    3. แม่แบบ:Mono (ผสมสดมภ์) —เป็นปฏิบัติการผสมเชิงเส้น ซึ่งดำเนินการต่อสดมภ์ของสเตต เป็นการรวมไบต์ 4 ไบต์ของสดมภ์แต่ละสดมภ์
    4. แม่แบบ:Mono
  4. รอบสุดท้าย (จึงรวมเป็น 10, 12 หรือ 14 รอบทั้งหมด)
    1. แม่แบบ:Mono
    2. แม่แบบ:Mono
    3. แม่แบบ:Mono
ในขั้น แม่แบบ:Mono ไบต์แต่ละไบต์ของสเตตจะแทนด้วยเลขในตารางค้นหาแบบ 8 บิต คือ S ดังนั้น bij = S(aij)

ในขั้น แม่แบบ:Mono ไบต์แต่ละไบต์ คือ ai,j ของสเตตจะแทนที่ด้วย แม่แบบ:Mono S(ai,j) โดยใช้ตารางค้นหา คือ substitution box (S-box)แม่แบบ:Efn-ua แบบ 8 บิต ปฏิบัติการนี้ทำให้ได้ความไม่เป็นเชิงเส้น (non-linearity) ในไซเฟอร์ S-box ที่ใช้ได้มาจากตัวผกผันการคูณของฟิลด์จำกัด (28) ซึ่งรู้ว่ามีคุณสมบัติไม่ใช่เชิงเส้น (non-linearity) ที่ดี เพื่อหลีกเลี่ยงการโจมตีอาศัยคุณสมบัติพีชคณิตที่ง่าย ๆ S-box สร้างโดยรวมฟังก์ชันผกผัน (inverse function) กับการแปลงสัมพรรคที่หาตัวผกผันได้ (invertible affine transformationแม่แบบ:Efn-ua) S-box ยังเลือกไม่ให้มีจุดตรึง (ดังนั้นจึงเป็น derangementแม่แบบ:Efn-ua) คือ S(ai,j)ai,j และไม่ให้มีจุดตรึงตรงกันข้าม คือ S(ai,j)ai,jFF16 เมื่อถอดรหัส ขั้น แม่แบบ:Mono (ซึ่งเป็นฟังก์ชันผกผันของ แม่แบบ:Mono) จะต้องหาค่าผกผันของการแปลงสัมพรรคก่อนแล้วจึงหาตัวผกผันการคูณ

ในขั้น แม่แบบ:Mono ไบต์จากแต่ละแถวของสเตตจะเลื่อนหมุนไปทางซ้าย จำนวนที่เลื่อนจะต่างกันในแต่ละแถว

ขั้น แม่แบบ:Mono ปฏิบัติการต่อแถวของสเตต คือเลื่อนหมุนไบต์แต่ละไบต์ของแถวไปช่วงระยะหนึ่ง โดยแถวแรกจะไม่เลื่อน แถวสองเลื่อนหมุนไปทางซ้ายหนึ่งช่อง โดยนัยเดียวกัน แถวสามและแถวสี่จะเลื่อนหมุนไป 2 และ 3 ช่องตามลำดับแม่แบบ:Efn-ua ด้วยวิธีนี้ สดมภ์แต่ละสดมภ์ของสเตตที่เป็นเอาต์พุตของขั้น แม่แบบ:Mono จะประกอบด้วยไบต์จากสดมภ์ทุกสดมภ์ของสเตตที่เป็นอินพุต ขั้นนี้สำคัญเพราะเลี่ยงไม่ให้สดมภ์แต่ละสดมภ์เข้ารหัสลับอย่างเป็นอิสระจากกันและกัน ไม่งั้นแล้วเออีเอสก็จะเสื่อมเป็นบล็อกไซเฟอร์แม่แบบ:Efn-ua แม่แบบ:Nowrapที่เป็นอิสระจากกันและกัน

ในขั้น แม่แบบ:Mono สดมภ์แต่ละสดมภ์ของสเตตจะคูณด้วยพหุนามตายตัว คือ c(x)

แม่แบบ:โครงส่วน ในขั้น แม่แบบ:Mono ไบต์สี่ไบต์จากสดมภ์แต่ละสดมภ์จะนำมารวมกันโดยใช้การแปลงเชิงเส้นที่หาตัวผกผันได้ (invertible linear transformation) ฟังก์ชัน แม่แบบ:Mono รับไบต์สี่ไบต์เป็นอินพุต และออกไบต์สี่ไบต์เป็นเอาต์พุต โดยไบต์อินพุตแต่ละไบต์จะมีผลต่อไบต์เอาต์พุตทั้งหมด เมื่อรวมกับขั้น แม่แบบ:Mono ขั้น แม่แบบ:Mono นี้ให้คุณสมบัติความแพร่ (diffusion)แม่แบบ:Efn-ua ต่อไซเฟอร์

ในปฏิบัติการนี้ สดมภ์แต่ละสดมภ์จะแปลงด้วยเมทริกซ์ เป็นการคูณเมทริกซ์มีค่าตายตัวกับสดมภ์โดยได้ผลเป็นค่าสดมภ์ใหม่ในสเตต

[b0,jb1,jb2,jb3,j]=[2311123111233112][a0,ja1,ja2,ja3,j]0j3

การ "คูณ" เมทริกซ์ประกอบด้วยการคูณและการบวกช่องในเมทริกซ์ การบวกใช้ปฏิบัติการ XOR ส่วนการคูณเป็นปฏิบัติการที่ซับซ้อน บทความนี้ไม่กล่าวถึงรายละเอียด

ในขั้น แม่แบบ:Mono ไบต์แต่ละไบต์ของสเตตจะรวมเข้ากับไบต์ของกุญแจรอบย่อย (round subkey) ด้วยปฏิบัติการ แม่แบบ:Nowrap

ในขั้น แม่แบบ:Mono กุญแจย่อย (subkey) จะรวมเข้ากับสเตต ในแต่ละรอบ กุญแจย่อยจะทำมาจากกุญแจหลักด้วยขั้นตอนวิธี Rijndael key scheduleแม่แบบ:Efn-ua กุญแจย่อยแต่ละตัวมีขนาดเท่ากับสเตต ไบต์แต่ละไบต์ของสเตตจะรวมเข้ากับไบต์ของกุญแจย่อยที่ตรงกันด้วย bitwise XOR

การเร่งความเร็ว

ในระบบที่ใช้คำ (word) มีขนาด แม่แบบ:Nowrapหรือยาวกว่า สามารถเร่งปฏิบัติการของไซเฟอร์นี้ด้วยการรวมขั้นตอน แม่แบบ:Mono และ แม่แบบ:Mono กับ แม่แบบ:Mono โดยแปลงให้เป็นการค้นหาในตารางตามลำดับ ซึ่งใช้ตารางเก็บค่า แม่แบบ:Nowrap มีรายการ แม่แบบ:Nowrap ทั้งหมด แม่แบบ:Nowrap รวมใช้ที่ แม่แบบ:Nowrap การคำนวณรอบหนึ่งจึงสามารถทำด้วยการค้นหาตาราง 16 ครั้ง และปฏิบัติการ XOR แบบ 32 บิต 12 ครั้ง ตามด้วยปฏิบัติการ XOR แบบ 32 บิต 4 ครั้งในขั้น แม่แบบ:Mono[8] อีกอย่างหนึ่ง การค้นหาตารางสามารถทำกับตารางเก็บค่า แม่แบบ:Nowrapมีรายการ 256 รายการตารางเดียว (รวมใช้ที่ 1024 ไบต์) ตามด้วยการหมุนเป็นวง (circular rotation)

อนึ่ง ถ้าใช้วิธีทำเป็นไบต์ ก็จะสามารถรวมขั้น แม่แบบ:Mono, แม่แบบ:Mono และ แม่แบบ:Mono เป็นปฏิบัติการเดียวต่อรอบ[9]

ความปลอดภัย

จนถึงเดือนพฤษภาคม 2009 มีแต่การโจมตีแบบ side-channel attackแม่แบบ:Efn-ua เท่านั้นที่สามารถเจาะเออีเอสซึ่งเข้ารหัสแบบสมบูรณ์อย่างได้ผล โดยทำได้กับการทำให้เกิดผลเฉพาะบางอย่างเท่านั้น สำนักงานความมั่นคงแห่งชาติสหรัฐ (NSA) ได้ทบทวนไซเฟอร์แม่แบบ:Efn-uaที่เข้าแข่งขันทั้งหมดรวมทั้งเรนดาล และเบื้องต้นได้ระบุว่า ทั้งหมดปลอดภัยพอเข้ารหัสลับข้อมูลที่ไม่ใช่ราชการลับของรัฐบาลกลางสหรัฐ ต่อมาในเดือนมิถุนายน 2003 รัฐบาลกลางสหรัฐได้ประกาศว่า จะใช้เออีเอสป้องกันราชการลับ โดยระบุว่า แม่แบบ:Quote

เออีเอสตามมาตรฐานต้องคำนวณเข้ารหัส แม่แบบ:Nowrapสำหรับกุญแจขนาด แม่แบบ:Nowrap, แม่แบบ:Nowrapสำหรับกุญแจ แม่แบบ:Nowrap และ แม่แบบ:Nowrapสำหรับกุญแจ แม่แบบ:Nowrap จนถึงปี 2006 วิธีการโจมตีทางทฤษฎีซึ่งจัดว่าดีที่สุดและตีพิมพ์เป็นผลงาน ใช้โจมตีเออีเอสที่มีกุญแจ 128 บิตและคำนวณเข้ารหัส 7 รอบ, กุญแจ 192 บิตที่คำนวณ 8 รอบ และกุญแจ 256 บิตที่คำนวณ 9 รอบ[10]

วิธีการโจมตีที่รู้

สำหรับนักวิทยาการเข้ารหัสลับ การทอน (break) การเข้ารหัสลับก็คือปฏิบัติการโจมตีที่ทำได้เร็วกว่าการใช้กำลังล้วน ๆ ซึ่งเป็นการลองถอดรหัสด้วยกุญแจที่อาจจะใช่เป็นลำดับ ดังนั้น การทอนจึงรวมวิธีที่จริง ๆ ยังทำไม่ได้ด้วยเทคโนโลยีปัจจุบัน ซึ่งแม้จะปฏิบัติไม่ได้ แต่ก็ช่วยให้เข้าใจรูปแบบของความอ่อนแอ การโจมตีด้วยกำลังล้วน ๆ ซึ่งได้ผลที่สุด ปรากฏต่อสาธารณชน ทำต่อขั้นตอนวิธีการเข้ารหัสลับแบบบล็อกไซเฟอร์แม่แบบ:Efn-uaซึ่งได้ทำให้เกิดผลอย่างกว้างขวางที่สุด เป็นการโจมตีกุญแจ RC5 ขนาด แม่แบบ:Nowrap โดย distributed.netแม่แบบ:Efn-ua ในปี 2006[11]

ขนาดของกุญแจเท่ากับเพิ่มเป็นสองเท่าต่อบิตทุกบิตที่เพิ่มในกุญแจ และถ้ากุญแจอาจมีค่าอะไรก็ได้ในโอกาสเท่า ๆ กัน การโจมตีด้วยกำลังล้วน ๆ เพื่อหากุญแจเท่ากับต้องเพิ่มเวลาเป็นสองเท่าโดยเฉลี่ย ซึ่งเท่ากับต้องเพิ่มเวลาเป็นเลขชี้กำลังตามขนาดกุญแจ แต่ขนาดกุญแจเพียงอย่างเดียวไม่ได้แน่นอนว่าปลอดภัยเพราะก็มีไซเฟอร์แม่แบบ:Efn-uaที่มีกุญแจใหญ่มากแต่พบว่าอ่อนแอ

เออีเอสใช้หลักพีชคณิตที่ค่อนข้างง่าย[12] ในปี 2002 นักวิทยาการเข้ารหัสชาวอังกฤษและออสเตรเลียได้แสดงการโจมตีโดยทฤษฎีซึ่งเรียกว่า XSL attack เพื่อแสดงจุดอ่อนของขั้นตอนวิธีเออีเอส โดยส่วนหนึ่งก็เพราะความซับซ้อนไม่มากของการคำนวณแบบไม่ใช่เชิงเส้นของมัน[13] แต่ต่อมานักวิชาการอื่น ๆ ก็ได้แสดงว่า การโจมตีที่กล่าวนี้ทำให้ได้ผลไม่ได้

ในช่วงการเลือกไซเฟอร์เพื่อเป็นมาตรฐานเออีเอส ผู้พัฒนาวิธีคู่แข่งได้เขียนถึงขั้นตอนวิธีเรนดาลไว้ว่า "...พวกผมเป็นห่วงเรื่องการใช้ (ไซเฟอร์นี้) ... ในโปรแกรมประยุกต์ที่ความปลอดภัยสำคัญขีดสุด"[14] แต่ในปลายปี 2000 หลังจากได้ตั้งเออีเอสแล้ว ผู้พัฒนาขั้นตอนวิธีคู่แข่งคือ Twofish ได้เขียนว่า แม้เขาคิดว่า วันหนึ่งจะเกิดการโจมตีเชิงวิชาการ (คือโดยทฤษฎีที่นำไปใช้จริง ๆ ไม่ได้ด้วยเทคโนโลยีปัจจุบัน) ต่อเรนดาลที่ได้ผล แต่เขา "ไม่เชื่อว่า จะมีใครค้นพบการโจมตีที่ทำให้สามารถอ่านการสื่อสารที่เข้ารหัสโดยเรนดาลได้"[15]

ในปี 2009 มีการค้นพบ related-key attackแม่แบบ:Efn-ua (การโจมตีโดยมีกุญแจสัมพันธ์) แบบหนึ่งที่ถือเอาประโยชน์จากความเรียบง่ายของ AES key scheduleแม่แบบ:Efn-ua โดยมีความซับซ้อนที่ 2119 ซึ่งเมื่อถึงปลายปีได้ทำให้เร็วขึ้นเหลือ 299.5[16] แต่ related-key attack ก็ไม่เป็นปัญหาในเกณฑ์วิธีการเข้ารหัสลับที่ออกแบบและทำให้เกิดผลอย่างเหมาะสม เพราะโปรแกรมย่อมไม่ยอมให้ใช้กุญแจที่สัมพันธ์กัน

ในปี 2009 นักวิชาการได้ตีพิมพ์ (เป็นเอกสารที่ยังไม่ได้ทบทวนโดยผู้รู้เสมอกัน) การโจมตีเออีเอส-256 โดยใช้กุญแจที่สัมพันธ์กันเพียงแค่ แม่แบบ:Nowrap ใช้การคำนวณแม่แบบ:Nowrap เพื่อเจาะกุญแจขนาด แม่แบบ:Nowrapเมื่อคำนวณเข้ารหัสเพียงแค่ 9 รอบ หรือ 245 เมื่อคำนวณเข้ารหัส 10 รอบโดยใช้การโจมตีแบบ related subkey attack ที่กุญแจสัมพันธ์กันยิ่งกว่า หรือ 270 เมื่อเจาะการเข้ารหัสที่คำนวณ 11 รอบ[17] แต่จริง ๆ เออีเอส แม่แบบ:Nowrapต้องเข้ารหัส แม่แบบ:Nowrap การโจมตีเยี่ยงนี้จึงไม่ได้ผลต่อเออีเอสที่ใช้จริง ๆ การนำไปใช้ได้จริง ๆ ของการโจมตีที่มีกุญแจสัมพันธ์กันยิ่งกว่าก็ถูกวิจารณ์[18] แม้โดยวินเซ็นต์ เรเม็นเอง[19]

ในปลายปี 2009 มีการตีพิมพ์การโจมตีแบบ known-key distinguishing attack แรกต่อเออีเอส-128 ที่เข้ารหัส 8 รอบ[20] โดยมีความซับซ้อนเชิงเวลาที่ 248 และความซับซ้อนเชิงความจำที่ 232 แต่เพราะเออีเอส-128 ต้องเข้ารหัส 10 รอบ การโจมตีนี้จึงไม่มีผลต่อเออีเอสที่ใช้กันจริง ๆ

การโจมตีโดยกู้คืนกุญแจ (key-recovery attack) ต่อเออีเอสเต็ม ๆ ได้พิมพ์ในงานปี 2011[21] การโจมตีเป็นแบบ biclique attack และเร็วกว่าการโจมตีที่ใช้กำลังอย่างเดียวถึง 4 เท่า โดยต้องใช้การดำเนินการ 2126.2 ครั้งเพื่อกู้คืนกุญแจ AES-128 สำหรับ AES-192 และ AES-256 ต้องใช้การดำเนินการ 2190.2 และ 2254.6 ครั้งตามลำดับ ต่อมาผลจึงได้ทำเร็วขึ้นเป็น 2126.0 สำหรับ AES-128, 2189.9 สำหรับ AES-192 และ 2254.3 สำหรับ AES-256[22] เหล่านี้เป็นผลที่ได้ดีสุดสำหรับการโจมตีโดยกู้คืนกุญแจต่อเออีเอส

นี่เป็นประโยชน์เพียงเล็กน้อย เพราะกุญแจขนาด แม่แบบ:Nowrap (แทนที่อาจใช้คือ แม่แบบ:Nowrap) ยังต้องใช้เวลาเป็นแม่แบบ:Nowrapถ้าใช้ฮาร์ดแวร์ปัจจุบันหรือแบบที่ยังพอเล็งเห็นล่วงหน้าได้ อนึ่ง ผู้เขียนคำนวณว่า การโจมตีเร็วสุดโดยใช้เทคนิกของผู้เขียนต่อเออีเอสที่ใช้กุญแจ แม่แบบ:Nowrapยังต้องเก็บข้อมูล แม่แบบ:Nowrap เท่ากับข้อมูล แม่แบบ:Nowrap ซึ่งมากกว่าข้อมูลที่เก็บบนคอมพ์ทั้งหมดในโลกในปี 2016 ดังนั้น นี่จึงไม่ทำลายความปลอดภัยของเออีเอส[23] ต่อมา ข้อมูลที่ต้องเก็บลดได้เหลือ แม่แบบ:Nowrap[22] ซึ่งเท่ากับ แม่แบบ:Nowrap

ตามข้อมูลรั่วของเอ็ดเวิร์ด สโนว์เดน สำนักงานความมั่นคงแห่งชาติสหรัฐ (NSA) กำลังวิจัยว่า การโจมตีการเข้ารหัสลับโดยใช้สถิติเทา (tau statistic) อาจช่วยเจาะเออีเอสได้หรือไม่[24]

ดังนั้นในปัจจุบัน จึงยังไม่มีการโจมตีที่ปฏิบัติได้ซึ่งช่วยให้บุคคลที่ไม่มีกุญแจสามารถอ่านข้อมูลที่เข้ารหัสลับด้วยเออีเอสเมื่อทำให้เกิดผลอย่างถูกต้อง

Side-channel attack

side-channel attackแม่แบบ:Efn-ua เป็นการโจมตีไซเฟอร์แบบไม่ได้ทำต่อกล่องดำ ดังนั้น ไซเฟอร์ต่าง ๆ จึงไม่ได้ออกแบบต่อต้านการโจมตีเช่นนี้โดยตรง แต่ก็มีผลทางการปฏิบัติ คือ มันโจมตีการทำให้เกิดผลของไซเฟอร์ที่ฮาร์ดแวร์หรือซอฟต์แวร์มีข้อมูลรั่วไหลอย่างไม่ได้ตั้งใจ มีการโจมตีเช่นนี้หลายอย่างที่รู้สำหรับเออีเอส

ในกลางปี 2005 นักวิทยาการเข้ารหัสลับชาวเยอรมัน-อเมริกันประกาศการโจมตีอาศัยเวลาของแคช (cache-timing attack) ที่เขาใช้เจาะทำลายเซิร์ฟเวอร์ซึ่งทำตามสั่ง (custom server) และใช้การเข้ารหัสลับเออีอัสด้วยคลัง OpenSSL[25] โดยต้องใช้ข้อความธรรมดา แม่แบบ:Nowrap[26] และเซิฟเวอร์ได้ตั้งให้รั่วข้อมูลเกี่ยวกับเวลาให้มากสุดเท่าที่จะเป็นไปได้ (คือ มันรายงานจำนวนไซเคิลที่ต้องใช้เพื่อเข้ารหัส) นักวิชาการผู้นี้ชี้ว่า "การลดความแม่นยำของตราเวลาเซิร์ฟเวอร์ หรือการกำจัดมันจากคำตอบสนองของเซิฟเวอร์ ไม่สามารถระงับการโจมตีได้ เพราะระบบลูกข่ายเพียงต้องจับเวลาไปกลับ (round-trip timing) ที่กำหนดด้วยนาฬิกาตนเอง แล้วชดเชยข้อมูลรบกวนที่มีเพิ่มขึ้นโดยสร้างค่าเฉลี่ยของตัวอย่างเป็นจำนวนเพิ่มขึ้น"[25]

ในปลายปี 2005 นักวิทยาการเข้ารหัสลับสามท่านตีพิมพ์เอกสารแสดงการโจมตีอาศัยเวลาของแคชต่อการทำเออีเอสให้เกิดผลที่พบใน OpenSSL และฟังกชันเข้ารหัสลับส่วนดิสก์ของลินุกซ์ คือ แม่แบบ:Nowrap[27] การโจมตีหนึ่งสามารถได้กุญแจเออีเอสหลังจากเพียงแค่การเข้ารหัสลับเพียง 800 ครั้งโดยใช้เวลาเพียงแค่ 65 มิลลิวินาที แต่ผู้โจมตีก็จำเป็นต้องดำเนินงานโปรแกรมในระบบหรือแพล็ตฟอร์มที่เข้ารหัสเออีเอสได้

ในปลายปี 2009 มีการตีพิมพ์การโจมตีต่อการทำให้เกิดผลบนฮาร์ดแวร์โดยใช้การวิเคราะห์ความผิดพร่องต่าง (differential fault analysis)แม่แบบ:Efn-ua ซึ่งทำให้สามารถกู้คืนกุญแจด้วยความซับซ้อน 232[28]

ในปลายปี 2010 นักวิชาการได้ตีพิมพ์เอกสารอธิบายวิธีการที่ทำได้เกือบในเวลาจริงเพื่อกู้คืนกุญแจลับจาก AES-128 โดยไม่จำเป็นต้องได้ข้อความธรรมดาหรือข้อความไซเฟอร์ เป็นการโจมตีที่ใช้ได้กับการทำเออีเอส-128 ให้เกิดผลที่ใช้ compression table เช่น OpenSSL[29] การโจมตีนี้ก็จำเป็นต้องดำเนินการโปรแกรมที่ไม่เป็นเอกสิทธิบนระบบที่เข้ารหัสลับเหมือนกัน ซึ่งอาจทำได้ด้วยมัลแวร์อันง่ายกว่าการเข้าถึงบัญชีผู้ดูแลระบบ (root account) มาก[30]

ในต้นปี 2016 นักวิชาการได้แสดง side-channel attackแม่แบบ:Efn-ua ที่มีประสิทธิภาพมากต่อการทำเออีเอสให้เกิดผลซึ่งสามารถกู้คืนกุญแจ แม่แบบ:Nowrapทั้งหมดอาศัยเพียงแค่ข้อความธรรมดา/ข้อความไซเฟอร์เพียงแค่ 6-7 บล็อก นี่ดีขึ้นอย่างมากเทียบกับงานก่อน ๆ ที่ต้องอาศัยการเข้ารหัสลับระหว่าง 100-1,000,000 ครั้ง[31] แต่ก็ต้องสามารถดำเนินการโปรแกรมในระดับผู้ใช้เหมือนกันโดยดำเนินการขั้นตอนวิธีเก็บกุญแจเพียงไม่ถึงนาที

อย่างไรก็ดี ซีพียูปัจจุบันจำนวนมากมีชุดคำสั่งเออีเอสในฮาร์ดแวร์ (เช่น AES-NI) ซึ่งช่วยป้องกัน side-channel attack ที่อาศัยเวลาเช่นตามที่ว่า[32][33]

การตรวจรับรองของ NIST/CSEC

สถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐ (แม่แบบ:Abbr) ร่วมกับสถาบันความปลอดภัยการสื่อสาร (แม่แบบ:Abbr) ของรัฐบาลกลางแคนาดาดำเนินการโปรแกรม Cryptographic Module Validation Program (CMVP) ซึ่งตรวจรับรองมอดูลการเข้ารหัสลับ (cryptographic modules) ข้อมูลราชการรัฐบาลกลางสหรัฐที่อ่อนไหวแต่ไม่จัดว่าลับต้องเข้ารหัสลับด้วยมอดูลการเข้ารหัสลับที่ได้การตรวจรับรองตาม แม่แบบ:Abbr 140-2 (มาตรฐานการประมวลข้อมูลของรัฐบาลกลางสหรัฐ) ซึ่ง NIST เป็นผู้กำหนด คือ "ผลิตภัณฑ์การเข้ารหัสลับเพื่อป้องกันข้อมูลลับจะต้องรับรองโดยสำนักงานความมั่นคงแห่งชาติ (NSA) และผลิตภัณฑ์การเข้ารหัสลับที่หมายป้องกันข้อมูลที่อ่อนไหวจะต้องรับรองตาม FIPS 140-2 ของ NIST"[34]

รัฐบาลแคนาดายังแนะนำให้กระทรวงต่าง ๆ ของแคนาดาใช้มอดูลเข้ารหัสลับที่ได้ตรวจรับรองตาม แม่แบบ:Nowrap สำหรับข้อมูลที่ไม่จัดว่าลับ (unclassified)

แม้ FIPS 197 จะเป็นเอกสารที่เจาะจงขั้นตอนวิธีเออีเอสโดยเฉพาะ ผู้ขายสินค้ามักจะขอให้ CMVP ตรวจรับรองขั้นตอนวิธีหลายอย่างพร้อมกัน ๆ (เช่น Triple DES หรือ SHA1) ภายใต้ระเบียบของ แม่แบบ:Nowrap ดังนั้น จึงไม่ค่อยมีมอดูลเข้ารหัสลับที่ตรวจรับรองโดยเฉพาะเพียงของ แม่แบบ:Nowrap และองค์กร NIST เองก็ไม่ได้ระบุมอดูลที่ผ่านการตรวจรับรองแบบ แม่แบบ:Nowrap ในรายการเฉพาะตนเองบนเว็บไซต์ขององค์กร โดยทั่วไป มอดูลที่ผ่านการตรวจรับรองแบบ แม่แบบ:Nowrap จะระบุด้วยสัญกรณ์ แม่แบบ:Nowrap พร้อมกับหมายเลขรับรองภายในรายการมอดูลที่ผ่านการตรวจรับรองแบบ แม่แบบ:Nowrap

ส่วนโปรแกรม Cryptographic Algorithm Validation Program (CAVP) ของ NIST เช่นกัน[35] อนุญาตให้องค์กรอื่น ๆ ตรวจความถูกต้องของการทำขั้นตอนวิธีเออีเอสให้เกิดผลโดยมีค่าใช้จ่ายน้อยกว่าแม่แบบ:ต้องการอ้างอิงเฉพาะส่วน มอดูลที่ได้ตรวจรับรองสำเร็จก็จะปรากฏเป็นรายการในเว็บเพจของ NIST เช่นกัน[36] การทดสอบตามที่ว่าต้องทำก่อนจะตรวจรับรองตามระเบียบ แม่แบบ:Nowrap ที่จะว่าต่อไป เพราะการรับรองของ CAVP ไม่ได้บ่งว่ามอดูลได้ทำขั้นตอนวิธีให้เกิดผลอย่างปลอดภัย ดังนั้น มอดูลที่ยังไม่ผ่านการตรวจรับรองแบบ แม่แบบ:Nowrap หรือการอนุมัติโดยเฉพาะจาก NSA จึงไม่จัดว่าปลอดภัยเพื่อใช้ป้องกันข้อมูลราชการของรัฐบาลกลางสหรัฐ[34]

การได้การรับรองตาม แม่แบบ:Nowrap ทำได้ยากทั้งโดยเทคนิกและโดยค่าใช้จ่าย[37] เพราะมีชุดการทดสอบมาตรฐานและมีการทบทวนรหัสคำสั่งที่ต้องผ่านภายในไม่กี่อาทิตย์ ค่าใช้จ่ายเพื่อทดสอบในแล็บที่อนุมัติอาจสูงมาก (เช่น มากกว่า แม่แบบ:Nowrap หรือประมาณ แม่แบบ:Nowrap)[37] ซึ่งยังไม่รวมเวลาที่ต้องใช้เขียนและตรวจสอบมอดูล ทำเอกสาร และเตรียมมอดูลเพื่อตรวจรับรอง หลังจากได้การรับรองแล้ว ยังต้องกลับทำอีกถ้ามอดูลเปลี่ยน ซึ่งอาจจะเป็นแค่การอัปเดตเอกสารง่าย ๆ เมื่อการเข้ารหัสลับไม่ได้เปลี่ยนไป หรืออาจจะต้องตรวจสอบใหม่ถ้าการเปลี่ยนแปลงมีผลต่อการเข้ารหัสลับ

เวกเตอร์การทดสอบ

เวกเตอร์การทดสอบเป็นชุดข้อความไซเฟอร์บวกกับข้อความธรรมดาและกุญแจเข้ารหัส NIST เผยแพร่เวกเตอร์การทดสอบเป็นตัวชุดอิงที่เรียกว่า AES Known Answer Test (KAT) Vectorsแม่แบบ:Efn-ua

ความเร็ว

การทำได้เร็วในเครื่องที่มีแรมน้อยเป็นเกณฑ์ในการเลือกไซเฟอร์เพื่อเป็นเออีเอส ซึ่งทำงานได้ดีในฮาร์ดแวร์หลายอย่างมากมาย เริ่มตั้งแต่สมาร์ตการ์ดขนาด 8 บิตไปจนถึงคอมพิวเตอร์กำลังแรงสูง

ในเครื่องเพนเทียมโปร การเข้ารหัสลับเออีเอสต้องใช้รอบซีพียู 18 รอบ (ไซเคิล) ต่อไบต์[38] ซึ่งเสมอกับปริมาณงาน (throughput) ประมาณ แม่แบบ:Nowrapสำหรับซีพียู แม่แบบ:Nowrap สำหรับซีพียู แม่แบบ:Nowrap ปริมาณงานอยู่ที่ แม่แบบ:Nowrap

สำหรับซีพียูแม่แบบ:Nowrap และแม่แบบ:Nowrap รุ่นที่สนับสนุนชุดคำสั่งเออีเอส (AES-NI instruction set) ปริมาณงานอาจเป็นหลายจิกะบิตต่อวินาที (มีแม้ที่มากกว่า แม่แบบ:Nowrap)[39]

การทำให้เกิดผล

แม่แบบ:บทความหลัก มีการทำเออีเอสให้เกิดผลในรูปแบบต่าง ๆ มากมายรวมทั้งคลังโปรแกรม โปรแกรมประยุกต์ต่าง ๆ และในฮาร์ดแวร์เอง

คลังโปรแกรม

แม่แบบ:Div col

โปรแกรมประยุกต์

แม่แบบ:Div col

  • โปรแกรมอัดไฟล์ (เช่น 7z, PKZIP, RAR, WinZip)
  • โปรแกรมเข้ารหัสลับไฟล์ (เช่น Gpg4win, Ncrypt)
  • ระบบไฟล์เข้ารหัสลับ (เช่น NTFS)
  • โปรแกรมเข้ารหัสลับดิสก์หรือส่วนดิสก์ (เช่น BitLocker, VeraCrypt)
  • การสื่อสารอย่างปลอดภัยภายในเครือข่ายแลน (เช่น 802.11i, แม่แบบ:Nowrap)แม่แบบ:Div col end
ฮาร์ดแวร์

แม่แบบ:ข้อมูลเพิ่มเติม

เชิงอรรถ

แม่แบบ:Notelist

อ้างอิง

แม่แบบ:รายการอ้างอิง แม่แบบ:Refbegin

แม่แบบ:Refend

แหล่งข้อมูลอื่น

แม่แบบ:Refbegin

แม่แบบ:Refend

  1. 1.0 1.1 แม่แบบ:Cite web
  2. 2.0 2.1 2.2 แม่แบบ:Cite web
  3. แม่แบบ:Cite web
  4. แม่แบบ:Cite news
  5. แม่แบบ:Cite news
  6. แม่แบบ:Cite web
  7. แม่แบบ:Cite web
  8. แม่แบบ:Cite webแม่แบบ:ลิงก์เสีย
  9. แม่แบบ:Cite web
  10. John Kelsey, Stefan Lucks, Bruce Schneier, Mike Stay, David Wagner, and Doug Whiting, Improved Cryptanalysis of Rijndael, Fast Software Encryption, 2000 pp213–230 แม่แบบ:Cite web
  11. แม่แบบ:Cite web
  12. แม่แบบ:Cite web
  13. แม่แบบ:Cite web
  14. แม่แบบ:Cite conference
  15. Bruce Schneier, AES Announced แม่แบบ:Webarchive, October 15, 2000
  16. อ้างอิงผิดพลาด: ป้ายระบุ <ref> ไม่ถูกต้อง ไม่มีการกำหนดข้อความสำหรับอ้างอิงชื่อ relkey
  17. แม่แบบ:Cite web
  18. แม่แบบ:Cite book
  19. แม่แบบ:Cite journal
  20. แม่แบบ:Cite web
  21. แม่แบบ:Cite web
  22. 22.0 22.1 แม่แบบ:Cite book
  23. แม่แบบ:Cite web
  24. แม่แบบ:Cite news
  25. 25.0 25.1 แม่แบบ:Cite web
  26. แม่แบบ:Cite web
  27. แม่แบบ:Cite journal
  28. แม่แบบ:Cite journal
  29. แม่แบบ:Cite journal
  30. แม่แบบ:Cite web
  31. แม่แบบ:Cite book
  32. แม่แบบ:Cite web
  33. แม่แบบ:Cite web Securing the Enterprise with Intel AES-NI.
  34. 34.0 34.1 แม่แบบ:Cite web
  35. แม่แบบ:Cite web
  36. แม่แบบ:Cite web
  37. 37.0 37.1 แม่แบบ:Cite web
  38. แม่แบบ:Cite web
  39. แม่แบบ:Cite web