อ่าน 5 นาที
ไซมอน (รหัสลับ)
Simon เป็นตระกูลของ อัลกอริทึมการเข้ารหัสแบบบล็อก น้ำหนักเบา ที่เผยแพร่สู่สาธารณะโดย สำนักงานความมั่นคงแห่งชาติ (NSA) ในเดือนมิถุนายน พ.ศ.
ไซมอน (รหัสลับ)
ไซมอนหนึ่งรอบ | |
| ทั่วไป | |
|---|---|
| นักออกแบบ | เรย์ บิวลิเยอ, ดักลาส ชอร์ส, เจสัน สมิธ, สเตฟาน ทรีทแมน-คลาร์ก, ไบรอัน วีคส์, หลุยส์ วิงเกอร์ส NSA |
| เผยแพร่ครั้งแรก | 2013 [ 1 ] |
| เกี่ยวข้องกับ | จุด |
| รายละเอียดรหัสลับ | |
| ขนาดกุญแจ | 64, 72, 96, 128, 144, 192 หรือ 256 บิต |
| ขนาดบล็อก | 32, 48, 64, 96 หรือ 128 บิต |
| โครงสร้าง | เครือข่าย Feistelที่สมดุล |
| รอบ | 32, 36, 42, 44, 52, 54, 68, 69 หรือ 72 (ขึ้นอยู่กับขนาดบล็อกและขนาดคีย์) |
| ความเร็ว | 7.5 cpb (21.6 หากไม่ใช้SSE ) บน Intel Xeon 5640 (Simon128/128) |
| บริการวิเคราะห์รหัสลับสาธารณะที่ดีที่สุด | |
| การวิเคราะห์การเข้ารหัสแบบดิฟเฟอเรนเชียลสามารถถอดรหัส Simon128/128 ได้ 46 รอบ โดยใช้ข้อมูล 2 125.6 ไบต์ หน่วยความจำ 2 40.6ไบต์ และความซับซ้อนของเวลา 2 125.7โดยมีอัตราความสำเร็จ 0.632 [ 2 ] [ 3 ] [ 4 ] | |
Simonเป็นตระกูลของอัลกอริทึมการเข้ารหัสแบบบล็อก น้ำหนักเบา ที่เผยแพร่สู่สาธารณะโดยสำนักงานความมั่นคงแห่งชาติ (NSA) ในเดือนมิถุนายน พ.ศ. 2556 [ 5 ] [ 1 ] Simon ได้รับการปรับให้เหมาะสมสำหรับประสิทธิภาพในการใช้งานฮาร์ดแวร์ ในขณะที่อัลกอริทึมพี่น้องอย่างSpeckได้รับการปรับให้เหมาะสมสำหรับการใช้งานซอฟต์แวร์[ 6 ] [ 7 ]
NSA เริ่มพัฒนาการเข้ารหัส Simon และ Speck ในปี 2011 หน่วยงานคาดการณ์ว่าหน่วยงานบางแห่งในรัฐบาลกลางสหรัฐฯ จะต้องการการเข้ารหัสที่ทำงานได้ดีกับ อุปกรณ์ Internet of Things ที่หลากหลาย ในขณะที่ยังคงรักษาความปลอดภัยในระดับที่ยอมรับได้[ 8 ]
คำอธิบายของรหัสลับ
รหัสบล็อก Simon เป็นรหัส Feistel ที่สมดุล ที่มี คำขนาด nบิต ดังนั้นความยาวบล็อกจึงเป็น 2n ความยาวของคีย์เป็นพหุคูณของnโดย 2, 3 หรือ 4 ซึ่งก็คือค่าmดังนั้นการใช้งานรหัส Simon จึงแสดงเป็น Simon2n / nm ตัวอย่างเช่น Simon64/128 หมายถึงรหัสที่ทำงานกับบล็อกข้อความธรรมดาขนาด 64 บิต ( n = 32) ที่ใช้คีย์ขนาด 128 บิต[ 1 ]ส่วนประกอบบล็อกของรหัสจะเหมือนกันระหว่างการใช้งาน Simon แต่ตรรกะการสร้างคีย์จะขึ้นอยู่กับการใช้งานคีย์ 2, 3 หรือ 4
Simon รองรับชุดค่าผสมของขนาดบล็อก ขนาดคีย์ และจำนวนรอบดังต่อไปนี้: [ 1 ]
| ขนาดบล็อก (บิต) | ขนาดคีย์ (บิต) | รอบ |
|---|---|---|
| 32 | 64 | 32 |
| 48 | 72 | 36 |
| 96 | 36 | |
| 64 | 96 | 42 |
| 128 | 44 | |
| 96 | 96 | 52 |
| 144 | 54 | |
| 128 | 128 | 68 |
| 192 | 69 | |
| 256 | 72 |
คำอธิบายตารางกำหนดการหลัก
ให้ สัญลักษณ์ แทนการเลื่อนบิต แบบวงกลม ซ้าย
ตารางกำหนดการหลักนั้นสามารถอธิบายได้ทางคณิตศาสตร์ดังนี้
โครงสร้างกำหนดการหลักอาจจะสมดุลหรือไม่สมดุลก็ได้ จำนวนคำหลักจะถูกใช้เพื่อกำหนดโครงสร้างของการขยายคำหลัก ส่งผลให้ความกว้างบิตทั้งหมดเป็น การขยายคำหลักประกอบด้วยการเลื่อนไปทางขวา XOR และลำดับคงที่บิตจะดำเนินการกับบิตต่ำสุดของคำหลักหนึ่งครั้งต่อรอบ[ 7 ]
คำอธิบายของลำดับคงที่
ลำดับค่าคง ที่ ถูกสร้างขึ้นโดยรีจิสเตอร์เลื่อนป้อนกลับเชิงเส้น ( LFSR ) ลำดับตรรกะของบิตคงที่ถูกกำหนดโดยค่าของคีย์และขนาดบล็อก LFSR ถูกสร้างขึ้นโดยฟิลด์ 5 บิต บิตคงที่ทำงานกับบล็อกคีย์หนึ่งครั้งต่อรอบในบิตต่ำสุดเพื่อเพิ่มเอนโทรปีที่ไม่ขึ้นอยู่กับคีย์ให้กับตารางคีย์ LFSR มีตรรกะที่แตกต่างกันสำหรับแต่ละ ลำดับ อย่างไรก็ตาม เงื่อนไขเริ่มต้นจะเหมือนกันสำหรับการเข้ารหัส เงื่อนไขเริ่มต้นของ LFSR สำหรับการถอดรหัสจะแตกต่างกันไปในแต่ละรอบ
| ลำดับคงที่ |
|---|
การวิเคราะห์รหัส
นักออกแบบอ้างว่า Simon แม้จะเป็นรหัสลับ "น้ำหนักเบา" แต่ได้รับการออกแบบให้มีความปลอดภัยสูงสุดเท่าที่จะเป็นไปได้สำหรับแต่ละบล็อกและขนาดคีย์ เพื่อป้องกัน การโจมตี แบบเลือกข้อความธรรมดา (CPA)และ การโจมตี แบบเลือกข้อความเข้ารหัส (CCA)มาตรฐาน ความต้านทานต่อการโจมตีแบบคีย์ที่เกี่ยวข้องก็ถูกระบุว่าเป็นเป้าหมายเช่นกัน แม้ว่าจะมีความสำคัญน้อยกว่า เนื่องจากการโจมตีในรูปแบบนั้นไม่เกี่ยวข้องกับกรณีการใช้งานทั่วไป[ 9 ] : 2 ไม่มีการพยายามต้านทานการโจมตีใน รูปแบบ การโจมตีแบบแยกแยะคีย์ที่รู้จักและนักออกแบบก็ไม่ได้ประเมิน Simon สำหรับการใช้งานเป็นฟังก์ชันแฮช[ 10 ]
ณ ปี 2018 ยังไม่มีการโจมตี Simon แบบเต็มรอบที่ประสบความสำเร็จในรูปแบบใดๆ เนื่องจากความสนใจใน Simon และ Speck จึงมีการตีพิมพ์เอกสารเกี่ยวกับการวิเคราะห์การเข้ารหัสประมาณ 70 ฉบับ[ 9 ] : 10 เช่นเดียวกับการเข้ารหัสแบบวนซ้ำทั่วไปรูปแบบที่ลดรอบลงก็ถูกโจมตีได้สำเร็จ การโจมตีที่ดีที่สุดที่ตีพิมพ์เกี่ยวกับ Simon ในแบบจำลองการโจมตีมาตรฐาน (CPA/CCA ที่มีคีย์ที่ไม่ทราบ) คือ การโจมตี การวิเคราะห์การเข้ารหัสแบบดิฟเฟอเรนเชียลการโจมตีเหล่านี้สามารถผ่านรอบได้ประมาณ 70–75% ของรูปแบบส่วนใหญ่ ถึงแม้ว่าการโจมตีที่ดีที่สุดเหล่านี้จะเร็วกว่าการโจมตีแบบ Brute-force เพียงเล็กน้อยก็ตาม[ 11 ] [ 12 ] [ 13 ] [ 9 ] : 12ทีม ออกแบบระบุว่าในระหว่างการออกแบบ Simon พวกเขาพบว่าการโจมตีแบบดิฟเฟอเรนเชียลเป็นการโจมตีที่จำกัด กล่าวคือเป็นประเภทของการโจมตีที่สามารถผ่านรอบได้มากที่สุด จากนั้นพวกเขาก็กำหนดจำนวนรอบเพื่อให้มีขอบเขตความปลอดภัยที่คล้ายกับAES-128ประมาณ 30% [ 9 ] : 12–13
| ตัวแปร | รอบโจมตี | ความซับซ้อนเชิงเวลา | ความซับซ้อนของข้อมูล | ประเภทการโจมตี |
|---|---|---|---|---|
| ไซมอน128/256 | 53/72 (74%) | 2 248 | 2 127.6 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน128/192 | 51/69 (74%) | 2 184 | 2 127.6 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน128/128 | 49/68 (72%) | 2 120 | 2 127.6 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน96/144 | 38/54 (70%) | 2 136 | 2 95.2 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน96/96 | 37/52 (71%) | 2 88 | 2 95.2 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน64/128 | 31/44 (70%) | 2 120 | 2 63.5 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน64/96 | 30/42 (71%) | 2 88 | 2 63.5 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน48/96 | 25/36 (69%) | 2 80 | 2 47.9 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน48/72 | 24/36 (67%) | 2 56 | 2 47.9 | เปลือกเชิงเส้น[ 11 ] |
| ไซมอน32/64 | 24/32 (75%) | 2 63 | 2 32 | อินทิกรัล[ 12 ] |
Simon ถูกวิพากษ์วิจารณ์ว่ามีขอบเขตความปลอดภัยน้อยเกินไป กล่าวคือ มีรอบน้อยเกินไประหว่างการโจมตีที่ดีที่สุดกับการเข้ารหัสแบบสมบูรณ์ เมื่อเทียบกับการเข้ารหัสแบบอนุรักษ์นิยมมากกว่า เช่นChaCha20 [ 14 ] การ เข้ารหัสที่มีขอบเขตความปลอดภัยน้อยมีแนวโน้มที่จะถูกถอดรหัสได้ง่ายขึ้นด้วยความก้าวหน้าในการวิเคราะห์การเข้ารหัส ในอนาคต ทีมออกแบบของ Simon โต้แย้งว่ามีต้นทุนในโลกแห่งความเป็นจริงสำหรับขอบเขตความปลอดภัยที่มากเกินไปโดยไม่จำเป็น โดยเฉพาะอย่างยิ่งในอุปกรณ์ที่มีน้ำหนักเบา การวิเคราะห์การเข้ารหัสในระหว่างขั้นตอนการออกแบบทำให้สามารถกำหนดจำนวนรอบได้อย่างเหมาะสม และพวกเขากำหนดเป้าหมายที่ขอบเขตความปลอดภัยของ AES [ 9 ] : 17
Simon มีตัวนับรอบในตารางคีย์นักออกแบบระบุว่ามีการรวมสิ่งนี้ไว้เพื่อป้องกันการโจมตีการเข้ารหัสแบบสไลด์และ การหมุน [ 9 ] : 16 อย่างไรก็ตาม การเข้ารหัสแบบหมุน XOR ได้ถูกนำมาใช้เพื่อค้นหาตัวแยกแยะกับเวอร์ชันรอบที่ลดลงของการเข้ารหัสที่เกี่ยวข้อง เช่น Speck [ 15 ]แม้ว่าผู้เขียนจะไม่ได้อธิบายการโจมตีการกู้คืนคีย์มาตรฐานโดยอิงจากตัวแยกแยะของพวกเขา แต่ตัวแยกแยะที่ดีที่สุดของพวกเขาบน Simon32 และ Simon48 ในแบบจำลองการโจมตีการแยกแยะคีย์ที่รู้จักสำหรับ คลาส คีย์ที่อ่อนแอ บางคลาส สามารถผ่านรอบได้มากกว่าตัวแยกแยะความแตกต่างที่ดีที่สุดเล็กน้อย ผู้เขียนคนหนึ่งกล่าวว่าการวิจัยของเขามีข้อจำกัดด้านทรัพยากร และตัวแยกแยะแบบหมุน XOR ในรอบที่มากขึ้นน่าจะเป็นไปได้ นักออกแบบยังระบุด้วยว่า Simon ไม่ได้ออกแบบมาเพื่อต้านทานการโจมตีการแยกแยะคีย์ที่รู้จัก (ซึ่งไม่ได้กระทบต่อความลับของการเข้ารหัสโดยตรง) [ 10 ] : 8
นักออกแบบระบุว่าการวิเคราะห์การเข้ารหัสของ NSA พบว่าอัลกอริทึมไม่มีจุดอ่อน และมีความปลอดภัยที่สอดคล้องกับความยาวของคีย์[ 8 ] : 2 ทีมออกแบบกล่าวว่าการวิเคราะห์การเข้ารหัสของพวกเขารวมถึงการวิเคราะห์การเข้ารหัสเชิงเส้นและเชิงอนุพันธ์โดยใช้เทคนิคมาตรฐาน เช่น อัลกอริทึมของ Matsui และตัวแก้ปัญหา SAT/SMT แม้ว่าจะไม่ได้ระบุรายการเทคนิคที่ใช้ทั้งหมดก็ตาม[ 9 ] : 10 นักออกแบบของ Simon ถูกวิพากษ์วิจารณ์ที่ไม่ให้รายละเอียดเพิ่มเติมเกี่ยวกับการวิเคราะห์การเข้ารหัสของ NSA [ 16 ]
NSA ได้อนุมัติ Simon128/256 และ Speck128/256 สำหรับการใช้งานในระบบรักษาความปลอดภัยแห่งชาติของสหรัฐอเมริกา แม้ว่า AES-256 จะยังคงแนะนำสำหรับการใช้งานที่ไม่จำกัดก็ตาม[ 17 ]
ความพยายามในการกำหนดมาตรฐานและข้อโต้แย้ง
ความพยายามเริ่มต้นในการกำหนดมาตรฐาน Simon และ Speck ล้มเหลวในการบรรลุเสียงข้างมากพิเศษขององค์การมาตรฐานสากล ( ISO) ตามที่กำหนดในกระบวนการ และรหัสลับเหล่านี้จึงไม่ได้รับการยอมรับ [ 18 ] [ 16 ]ผู้แทนผู้เชี่ยวชาญจากหลายประเทศ รวมถึงเยอรมนี ญี่ปุ่น และอิสราเอล คัดค้านความพยายามของ NSA ในการกำหนดมาตรฐานรหัสลับ Simon และSpeckโดยอ้างถึงความกังวลว่า NSA กำลังผลักดันให้มีการกำหนดมาตรฐานโดยรู้ถึงจุดอ่อนที่สามารถใช้ประโยชน์ได้ในรหัสลับเหล่านั้น จุดยืนนี้ขึ้นอยู่กับหลักฐานบางส่วนเกี่ยวกับจุดอ่อนในรหัสลับ การขาดความจำเป็นที่ชัดเจนในการกำหนดมาตรฐานของรหัสลับใหม่ และการมีส่วนร่วมก่อนหน้านี้ของ NSA ในการสร้างและส่งเสริมอัลกอริธึมการเข้ารหัสลับDual_EC_DRBG ที่มีช่องโหว่ [ 19 ] [ 20 ]
เพื่อตอบสนองต่อข้อกังวลดังกล่าว NSA ระบุว่าเอกสารวิเคราะห์ความปลอดภัยกว่า 70 ฉบับจากผู้เชี่ยวชาญด้านการเข้ารหัสชั้นนำของโลกหลายท่านสนับสนุนข้อสรุปของ NSA ที่ว่าอัลกอริทึมมีความปลอดภัย และ NSA ยืนยันว่าไม่ทราบถึงเทคนิคการวิเคราะห์การเข้ารหัสใด ๆ ที่จะทำให้ตนเองหรือบุคคลอื่นใดสามารถเจาะระบบ Simon หรือ Speck ได้
หลังจากความพยายามครั้งแรกในการกำหนดมาตรฐานรหัสลับล้มเหลว องค์กร ISO จึงได้กำหนดมาตรฐานรหัส Simon และ Speck ในกลุ่มงานอื่น ๆ ณ เดือนตุลาคม 2561 รหัส Simon และ Speck ได้รับการกำหนดมาตรฐานโดย ISO ให้เป็นส่วนหนึ่งของมาตรฐานอินเทอร์เฟซไร้สาย RFID คือ มาตรฐานสากล ISO/29167-21 (สำหรับ Simon) และมาตรฐานสากล ISO/29167-22 (สำหรับ Speck) ทำให้สามารถนำไปใช้งานโดยหน่วยงานเชิงพาณิชย์ได้
ดูเพิ่มเติม
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไซมอน (รหัสลับ)
Simon เป็นตระกูลของ อัลกอริทึมการเข้ารหัสแบบบล็อก น้ำหนักเบา ที่เผยแพร่สู่สาธารณะโดย สำนักงานความมั่นคงแห่งชาติ (NSA) ในเดือนมิถุนายน พ.ศ.
คำอธิบายของรหัสลับ
รหัสบล็อก Simon เป็น รหัส Feistel ที่สมดุล ที่มี คำขนาด n บิต ดังนั้นความยาวบล็อกจึงเป็น 2n ความ ยาวของคีย์เป็นพหุคูณของ n โดย 2, 3 หรือ 4 ซึ่งก็คือค่า m ดังนั้นการใช้งานรหัส Simon จึงแสดงเป็น Simon2n / nm ตัวอย่าง เช่น Simon64/128...
คำอธิบายตารางกำหนดการหลัก
ให้ สัญลักษณ์ แทน การเลื่อน บิต แบบวงกลม ซ้าย เอส เจ {\displaystyle S^{j}} เจ {\displaystyle j}
การวิเคราะห์รหัส
นักออกแบบอ้างว่า Simon แม้จะเป็นรหัสลับ "น้ำหนักเบา" แต่ได้รับการออกแบบให้มีความปลอดภัยสูงสุดเท่าที่จะเป็นไปได้สำหรับแต่ละบล็อกและขนาดคีย์ เพื่อป้องกัน การโจมตี แบบเลือกข้อความธรรมดา (CPA) และ การโจมตี แบบเลือกข้อความเข้ารหัส (CCA) มาตรฐาน ความต้านทานต่อ...
