กลับไปหน้าบทความ

อ่าน 9 นาที

การโจมตีแบบบิคลิก

การโจมตีแบบเข้ารหัส

การโจมตีแบบไบคลิกเป็นรูปแบบหนึ่งของวิธีการวิเคราะห์การเข้ารหัสแบบพบปะตรงกลาง (MITM ) โดยใช้ โครงสร้าง ไบคลิกเพื่อขยายจำนวนรอบการโจมตีที่เป็นไปได้โดยการโจมตีแบบ MITM

การโจมตีแบบบิคลิก

การโจมตีแบบไบคลิกเป็นรูปแบบหนึ่งของวิธีการวิเคราะห์การเข้ารหัสแบบพบปะตรงกลาง (MITM [ 1 ] ) โดยใช้ โครงสร้าง ไบคลิกเพื่อขยายจำนวนรอบการโจมตีที่เป็นไปได้โดยการโจมตีแบบ MITM เนื่องจากการวิเคราะห์การเข้ารหัสแบบไบคลิกนั้นอิงตามการโจมตีแบบ MITM จึงสามารถนำไปใช้กับทั้งการเข้ารหัสแบบบล็อกและฟังก์ชันแฮช (แบบวนซ้ำ) ได้ การโจมตีแบบไบคลิกเป็นที่รู้จักกันดีว่าทำให้AES เต็มรูปแบบ [ 2 ]และIDEA เต็มรูป แบบ[ 3 ] อ่อนแอลง แม้ว่าจะเหนือกว่าการโจมตีแบบบรูทฟอร์ซเพียงเล็กน้อยก็ตาม นอกจากนี้ยังถูกนำไปใช้กับ การเข้ารหัส KASUMIและความต้านทานต่อพรีอิมเมจของฟังก์ชันแฮชSkein-512และSHA-2 [ 4 ]

การโจมตีแบบไบคลิกยังคงดำเนินต่อไป ( ณ เดือนเมษายน 2562)) การโจมตีด้วยคีย์เดียวที่ดีที่สุดเท่าที่ทราบกันในวงกว้างสำหรับAESความซับซ้อนในการคำนวณของการโจมตีนี้คือ2126.1{\displaystyle 2^{126.1}},2189.7{\displaystyle 2^{189.7}}และ2254.4{\displaystyle 2^{254.4}}สำหรับ AES128, AES192 และ AES256 ตามลำดับ ถือเป็นการโจมตีด้วยคีย์เดียวที่เป็นที่รู้จักในวงกว้างบน AES ที่โจมตีรอบทั้งหมด[ 2 ]การโจมตีครั้งก่อนๆ ได้โจมตีเวอร์ชันที่ลดรอบลง (โดยทั่วไปคือเวอร์ชันที่ลดเหลือ 7 หรือ 8 รอบ)

เนื่องจากความซับซ้อนในการคำนวณของการโจมตีนั้น2126.1{\displaystyle 2^{126.1}}การโจมตีแบบไบคลิกเป็นการโจมตีเชิงทฤษฎี ซึ่งหมายความว่าความปลอดภัยของ AES ยังไม่ถูกทำลาย และการใช้งาน AES ยังคงค่อนข้างปลอดภัย อย่างไรก็ตาม การโจมตีแบบไบคลิกเป็นการโจมตีที่น่าสนใจ ซึ่งชี้ให้เห็นถึงแนวทางใหม่ในการวิเคราะห์การเข้ารหัสแบบบล็อก การโจมตีนี้ยังให้ข้อมูลเพิ่มเติมเกี่ยวกับ AES เนื่องจากทำให้เกิดคำถามเกี่ยวกับขอบเขตความปลอดภัยในจำนวนรอบที่ใช้ในการเข้ารหัส

ประวัติศาสตร์

การโจมตี MITM ดั้งเดิมได้รับการเสนอแนะครั้งแรกโดยDiffieและHellmanในปี 1977 เมื่อพวกเขาหารือเกี่ยวกับคุณสมบัติการวิเคราะห์การเข้ารหัสของ DES [ 5 ]พวกเขาโต้แย้งว่าขนาดคีย์เล็กเกินไป และการใช้ DES ซ้ำหลายครั้งด้วยคีย์ที่แตกต่างกันอาจเป็นวิธีแก้ปัญหาเรื่องขนาดคีย์ อย่างไรก็ตาม พวกเขาแนะนำไม่ให้ใช้ double-DES และแนะนำให้ใช้ triple-DES เป็นอย่างน้อย เนื่องจากมีการโจมตี MITM (การโจมตี MITM สามารถนำไปใช้กับ double-DES ได้อย่างง่ายดายเพื่อลดความปลอดภัย)256*2{\displaystyle 2^{56*2}}แค่เพียง2*256{\displaystyle 2*2^{56}}เนื่องจากสามารถใช้การโจมตีแบบ Brute Force เพื่อถอดรหัสการเข้ารหัส DES ครั้งแรกและครั้งที่สองได้โดยอิสระ หากมีทั้งข้อความต้นฉบับและข้อความที่เข้ารหัสแล้ว)

นับตั้งแต่ Diffie และ Hellman เสนอการโจมตี MITM ก็มีรูปแบบต่างๆ เกิดขึ้นมากมายซึ่งมีประโยชน์ในสถานการณ์ที่การโจมตี MITM พื้นฐานไม่สามารถใช้งานได้ รูปแบบการโจมตีแบบ biclique ได้รับการเสนอครั้งแรกโดยDmitry Khovratovich , Rechberger และ Savelieva เพื่อใช้กับการวิเคราะห์การเข้ารหัสฟังก์ชันแฮช[ 6 ]อย่างไรก็ตาม Bogdanov, Khovratovich และ Rechberger เป็นผู้ที่แสดงวิธีการประยุกต์ใช้แนวคิดของ bicliques กับการตั้งค่าคีย์ลับ รวมถึงการวิเคราะห์การเข้ารหัสบล็อกไซเฟอร์ เมื่อพวกเขาเผยแพร่การโจมตี AES ก่อนหน้านี้ การโจมตี MITM บน AES และบล็อกไซเฟอร์อื่นๆ อีกมากมายได้รับความสนใจน้อยมาก ส่วนใหญ่เป็นเพราะความจำเป็นต้องมีบิตคีย์อิสระระหว่าง 'ซับไซเฟอร์ MITM' สองตัวเพื่ออำนวยความสะดวกในการโจมตี MITM ซึ่งเป็นสิ่งที่ทำได้ยากในตารางคีย์สมัยใหม่หลายๆ แบบ เช่นของ AES

บิกลิค

สำหรับคำอธิบายทั่วไปเกี่ยวกับโครงสร้างไบคลิก โปรดดูบทความเรื่องไบคลิก

ในการโจมตีแบบ MITM (Man-in-the-Middle) บิตของคีย์จะถูกขโมยเค1{\displaystyle K_{1}}และเค2{\displaystyle K_{2}}บิตคีย์ที่อยู่ในซับไซเฟอร์แรกและซับไซเฟอร์ที่สองจะต้องเป็นอิสระต่อกัน กล่าวคือ จะต้องเป็นอิสระต่อกัน มิฉะนั้นค่ากลางที่ตรงกันสำหรับข้อความต้นฉบับและข้อความที่เข้ารหัสจะไม่สามารถคำนวณได้อย่างอิสระในการโจมตีแบบ MITM (มีการโจมตีแบบ MITM หลายรูปแบบที่บล็อกอาจมีบิตคีย์ร่วมกัน ดูการโจมตีแบบ MITM 3 ซับเซ็ต ) คุณสมบัตินี้มักจะยากที่จะใช้ประโยชน์ในจำนวนรอบที่มากขึ้น เนื่องจากความแพร่กระจายของไซเฟอร์ที่ถูกโจมตี

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

วิธีที่บิคลิกช่วยรับมือกับปัญหาข้างต้นคือ ช่วยให้สามารถโจมตี AES ได้ 7 รอบโดยใช้การโจมตีแบบ MITM จากนั้นโดยการใช้โครงสร้างบิคลิกความยาว 3 (เช่น ครอบคลุม 3 รอบของการเข้ารหัส) คุณสามารถแมปสถานะกลางที่จุดเริ่มต้นของรอบที่ 7 ไปยังจุดสิ้นสุดของรอบสุดท้าย เช่น รอบที่ 10 (ถ้าเป็น AES128) ซึ่งจะช่วยให้สามารถโจมตีได้ครบจำนวนรอบของการเข้ารหัส แม้ว่าจะไม่สามารถโจมตีได้ครบจำนวนรอบนั้นด้วยการโจมตีแบบ MITM พื้นฐานก็ตาม

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

สาระสำคัญของการโจมตีแบบไบคลิก นอกเหนือจากการโจมตีแบบ MITM แล้ว คือความสามารถในการสร้างโครงสร้างไบคลิกอย่างมีประสิทธิภาพ ซึ่งขึ้นอยู่กับบิตของคีย์เค1{\displaystyle K_{1}}และเค2{\displaystyle K_{2}}สามารถแมปสถานะระดับกลางบางอย่างไปยังข้อความเข้ารหัสที่สอดคล้องกันได้

วิธีสร้างจักรยานสองล้อ

บรูทฟอร์ซ

รับ2{\displaystyle 2^{d}}[ 7 ]สถานะกลาง [ 8 ]และ2{\displaystyle 2^{d}}เข้ารหัสข้อความ[ 9 ]จากนั้นคำนวณคีย์ที่แมปจากค่ากลางเดียวไปยัง เข้ารหัสข้อความ ทั้งหมดดำเนินกระบวนการแมปคีย์แบบ "หนึ่งต่อหลาย" ต่อไปโดยทำซ้ำสำหรับค่ากลาง ทั้งหมด

กระบวนการทำแผนที่นี้จำเป็นต้องใช้(2)จำนวนสถานะกลาง(2)จำนวนข้อความเข้ารหัสต่อสถานีกลาง=2+=22{\displaystyle (2^{d})_{\text{จำนวนสถานะกลาง}}\cdot (2^{d})_{\text{จำนวนข้อความเข้ารหัสต่อสถานะกลาง}}=2^{d+d}=2^{2d}}การกู้คืนคีย์ เนื่องจาก สถานะกลาง แต่ละสถานะจำเป็นต้องเชื่อมโยงกับ ข้อความเข้ารหัส ทั้งหมด (ไม่ใช่แค่ข้อความเข้ารหัสเดียว) [ 10 ]

(วิธีการนี้ได้รับการแนะนำโดย Bogdanov, Khovratovich และ Rechberger ในบทความของพวกเขา: การวิเคราะห์การเข้ารหัส Biclique ของ AES เต็มรูปแบบ[ 2 ] )

เบื้องต้น: โปรดจำไว้ว่าหน้าที่ของไบคลิกคือการแมปค่าระดับกลางเอส{\displaystyle S}สำหรับค่าของข้อความที่เข้ารหัสแล้วซี{\displaystyle C}โดยอิงจากกุญแจสำคัญเค[ฉัน,เจ]{\displaystyle K[i,j]}โดยที่: ฉัน,เจ:เอสเจเอฟเค[ฉัน,เจ]ซีฉัน{\displaystyle \forall i,j:S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}

ขั้นตอน: ขั้นตอนที่หนึ่ง:สถานะระหว่างกลาง(เอส0{\displaystyle S_{0}}), ข้อความเข้ารหัส(ซี0{\displaystyle C_{0}}) และกุญแจ(เค[0,0]{\displaystyle K[0,0]}) ถูกเลือกโดยมีคุณสมบัติดังนี้:เอส0เอฟเค[0,0]ซีโอ{\displaystyle S_{0}{\xrightarrow[{f}]{K[0,0]}}C_{o}}, ที่ไหนเอฟ{\displaystyle f}คือฟังก์ชันที่แปลงสถานะกลางไปเป็นข้อความเข้ารหัสโดยใช้กุญแจที่กำหนด ซึ่งเรียกว่าการคำนวณพื้นฐาน

ขั้นตอนที่สอง:ชุดคีย์ที่เกี่ยวข้องสองชุดที่มีขนาดเท่ากัน2{\displaystyle 2^{d}}ได้รับการเลือกแล้ว โดยเลือกคีย์ดังนี้:

  • ชุดกุญแจชุดแรกคือกุญแจที่ตรงตามข้อกำหนดความแตกต่างต่อไปนี้เอฟ{\displaystyle f}โดยคำนึงถึงการคำนวณพื้นฐาน:0เอฟΔฉันเคΔฉัน{\displaystyle 0{\xrightarrow[{f}]{\Delta _{i}^{K}}}\Delta _{i}}
  • ชุดกุญแจชุดที่สองคือกุญแจที่ตรงตามข้อกำหนดความแตกต่างต่อไปนี้เอฟ{\displaystyle f}โดยคำนึงถึงการคำนวณพื้นฐาน:เจเอฟเจเค0{\displaystyle \nabla _{j}{\xrightarrow[{f}]{\nabla _{j}^{K}}}0}
  • มีการเลือกกุญแจเพื่อให้เส้นทางของΔฉัน{\displaystyle \Delta _{i}}- และเจ{\displaystyle \nabla _{j}}- อนุพันธ์เหล่านี้เป็นอิสระต่อกัน กล่าวคือ พวกมันไม่มีส่วนประกอบที่ไม่เป็นเชิงเส้น ที่ใช้งานอยู่ร่วมกัน

กล่าวอีกนัยหนึ่งคือ: ผลต่างของอินพุตเป็น 0 ควรจะสอดคล้องกับผลต่างของเอาต์พุตเป็นΔฉัน{\displaystyle \Delta _{i}}ภายใต้ความแตกต่างที่สำคัญประการหนึ่งΔฉันเค{\displaystyle \เดลต้า _{i}^{K}}ความแตกต่างทั้งหมดนั้นเกี่ยวข้องกับการคำนวณพื้นฐาน ความแตกต่างของข้อมูลนำเข้าคือเจ{\displaystyle \nabla _{j}}ควรแมปไปยังความแตกต่างของเอาต์พุตเป็น 0 ภายใต้ความแตกต่างของคีย์เจเค{\displaystyle \nabla _{J}^{K}}ความแตกต่างทั้งหมดนั้นอ้างอิงจากการคำนวณพื้นฐาน

ขั้นตอนที่สาม:เนื่องจากเส้นทางเหล่านี้ไม่มีส่วนประกอบที่ไม่เป็นเชิงเส้นร่วมกัน (เช่น เส้นทางที่ไม่มีกล่อง S ร่วมกัน ) จึงสามารถรวมเส้นทางเหล่านี้เข้าด้วยกันเพื่อให้ได้: 0เอฟΔฉันเคΔฉันเจเอฟเจเค0=เจเอฟΔฉันเคเจเคΔฉัน{\displaystyle 0{\xrightarrow[{f}]{\Delta _{i}^{K}}}\Delta _{i}\oplus \nabla _{j}{\xrightarrow[{f}]{\nabla _{j}^{K}}}0=\nabla _{j}{\xrightarrow[{f}]{\Delta _{i}^{K}\oplus \nabla _{j}^{K}}}\Delta _{i}}ซึ่ง สอดคล้องกับคำจำกัดความของอนุพันธ์ทั้งสองจากขั้นตอนที่ 2 เห็น ได้ชัด ว่า ทูเปิล[ 11 ](เอส0,ซี0,เค[0,0]){\displaystyle (S_{0},C_{0},K[0,0])}จากการคำนวณพื้นฐาน ยังสอดคล้องกับอนุพันธ์ทั้งสองตามคำนิยามด้วย เนื่องจากอนุพันธ์นั้นสัมพันธ์กับการคำนวณพื้นฐาน การแทนที่เอส0,ซี0{\displaystyle S_{0},C_{0}}เค[0,0]{\displaystyle K[0,0]}เมื่อนำไปใส่ในคำจำกัดความใดคำหนึ่งในสองคำนี้ จะได้ผลลัพธ์ดังนี้0เอฟ00{\displaystyle 0{\xrightarrow[{f}]{0}}0}เนื่องจากΔ0=0,0=0{\displaystyle \Delta _{0}=0,\nabla _{0}=0}และΔ0เค=0{\displaystyle \Delta _{0}^{K}=0} นั่นหมายความว่าทูเปิลของการคำนวณพื้นฐาน สามารถ นำไป XORกับเส้นทางที่รวมกัน ได้ :เอส0เจเอฟเค[0,0]Δฉันเคเจเคซี0Δฉัน{\displaystyle S_{0}\oplus \nabla _{j}{\xrightarrow[{f}]{K[0,0]\oplus \Delta _{i}^{K}\oplus \nabla _{j}^{K}}}C_{0}\oplus \Delta _{i}}

ขั้นตอนที่สี่:เป็นเรื่องง่ายดายที่จะเห็นว่า: เอสเจ=เอส0เจ{\displaystyle S_{j}=S_{0}\oplus \nabla _{j}}เค[ฉัน,เจ]=เค[0,0]Δฉันเคเจเค{\displaystyle K[i,j]=K[0,0]\oplus \Delta _{i}^{K}\oplus \nabla _{j}^{K}}ซีฉัน=ซี0Δฉัน{\displaystyle C_{i}=C_{0}\oplus \Delta _{i}} หากนำค่านี้ไปแทนในผลรวมของค่าความแตกต่างข้างต้น ผลลัพธ์ที่ได้จะเป็นดังนี้: เอสเจเอฟเค[ฉัน,เจ]ซีฉัน{\displaystyle S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}ซึ่งก็เหมือนกับคำจำกัดความที่ได้กล่าวไว้ข้างต้นสำหรับ biclique:ฉัน,เจ:เอสเจเอฟเค[ฉัน,เจ]ซีฉัน{\displaystyle \forall i,j:S_{j}{\xrightarrow[{f}]{K[i,j]}}C_{i}}

ดังนั้นจึงสามารถสร้างบิลิคที่มีขนาดได้22{\displaystyle 2^{2d}}(22{\displaystyle 2^{2d}}เนื่องจากทั้งหมด2{\displaystyle 2^{d}}ปุ่มของชุดปุ่มแรก สามารถนำมาผสมผสานกับปุ่มอื่นๆ ได้2{\displaystyle 2^{d}}กุญแจจากชุดกุญแจที่สอง) ซึ่งหมายถึงบิลิคที่มีขนาด22{\displaystyle 2^{2d}}สามารถสร้างได้โดยใช้เพียง2*2{\displaystyle 2*2^{d}}การคำนวณอนุพันธ์Δฉัน{\displaystyle \Delta _{i}}และเจ{\displaystyle \nabla _{j}}เกินเอฟ{\displaystyle f}. ถ้าΔฉันเจ{\displaystyle \Delta _{i}\neq \nabla _{j}}สำหรับฉัน+เจ>0{\displaystyle i+j>0}จากนั้นกุญแจทั้งหมดเค[ฉัน,เจ]{\displaystyle K[i,j]}ในกลุ่มคนสองพี่น้องก็จะมีความแตกต่างกันด้วยเช่นกัน

นี่คือวิธีการสร้างไบคลิกในการโจมตีไบคลิกชั้นนำบน AES อย่างไรก็ตาม มีข้อจำกัดในทางปฏิบัติบางประการในการสร้างไบคลิกด้วยเทคนิคนี้ ยิ่งไบคลิกยาวมากเท่าใด ก็ยิ่งต้องครอบคลุมรอบมากขึ้นเท่านั้น คุณสมบัติการแพร่กระจายของรหัสจึงมีบทบาทสำคัญต่อประสิทธิภาพของการสร้างไบคลิก

วิธีการอื่นๆ ในการสร้าง biclique

Bogdanov, Khovratovich และ Rechberger ยังอธิบายวิธีการสร้าง biclique อีกวิธีหนึ่งที่เรียกว่า 'Interleaving Related-Key Differential Trails' ในบทความ: "Biclique Cryptanalysis of the Full AES [ 2 ] "

ขั้นตอนการเข้ารหัสลับของ Biclique

ขั้นตอนที่หนึ่ง:ผู้โจมตีจัดกลุ่มคีย์ที่เป็นไปได้ทั้งหมดเป็นชุดย่อยของคีย์ที่มีขนาดเท่ากับ...22{\displaystyle 2^{2d}}สำหรับบางคน{\displaystyle d}โดยที่คีย์ในกลุ่มจะถูกจัดทำดัชนีเป็นเค[ฉัน,เจ]{\displaystyle K[i,j]}ในเมทริกซ์ขนาด2×2{\displaystyle 2^{d}\คูณ 2^{d}}ผู้โจมตีจะแบ่งรหัสลับออกเป็นสองรหัสย่อยเอฟ{\displaystyle f}และจี{\displaystyle g}(เช่นนั้น)อี=เอฟจี{\displaystyle E=f\circ g}เช่นเดียวกับการโจมตี MITM ทั่วไป ชุดกุญแจสำหรับแต่ละรหัสย่อยมีจำนวนสมาชิกเท่ากับจำนวนสมาชิกทั้งหมด2{\displaystyle 2^{d}}และถูกเรียกว่าเค[ฉัน,0]{\displaystyle K[i,0]}และเค[0,เจ]{\displaystyle K[0,j]}กุญแจรวมของรหัสย่อยต่างๆ จะแสดงออกมาด้วยเมทริกซ์ที่กล่าวถึงข้างต้นเค[ฉัน,เจ]{\displaystyle K[i,j]}.

ขั้นตอนที่สอง:ผู้โจมตีสร้างกลุ่มย่อยสำหรับแต่ละกลุ่มของ22{\displaystyle 2^{2d}}คีย์ บิคลิกมีมิติ d เนื่องจากมันแมป2{\displaystyle 2^{d}}สถานะภายในเอสเจ{\displaystyle S_{j}}, ถึง2{\displaystyle 2^{d}}ข้อความที่เข้ารหัสซีฉัน{\displaystyle C_{i}}, โดยใช้22{\displaystyle 2^{2d}}คีย์ต่างๆ ในส่วน "วิธีการสร้างบิคลิก" แนะนำวิธีการสร้างบิคลิกโดยใช้ "ค่าความแตกต่างระหว่างคีย์ที่สัมพันธ์กันแบบอิสระ" ในกรณีนั้น บิคลิกจะถูกสร้างขึ้นโดยใช้ค่าความแตกต่างของชุดคีย์เค[ฉัน,0]{\displaystyle K[i,0]}และเค[0,เจ]{\displaystyle K[0,j]}ซึ่งเป็นส่วนหนึ่งของรหัสย่อย

ขั้นตอนที่สาม:ผู้โจมตีหยิบ2{\displaystyle 2^{d}}ข้อความเข้ารหัสที่เป็นไปได้ซีฉัน{\displaystyle C_{i}}และขอให้ตัวถอดรหัสให้ข้อมูลข้อความต้นฉบับที่ตรงกันพีฉัน{\displaystyle P_{i}}.

ขั้นตอนที่สี่:ผู้โจมตีเลือกสถานะภายในเอสเจ{\displaystyle S_{j}}และข้อความต้นฉบับที่เกี่ยวข้องพีฉัน{\displaystyle P_{i}}และทำการโจมตีแบบ MITM ตามปกติกับเอฟ{\displaystyle f}และจี{\displaystyle g}โดยการโจมตีจากสถานะภายในและจากข้อความต้นฉบับ

ขั้นตอนที่ห้า:เมื่อใดก็ตามที่พบผู้สมัครหลักที่ตรงตามเกณฑ์เอสเจ{\displaystyle S_{j}}กับพีฉัน{\displaystyle P_{i}}จากนั้นจะนำกุญแจนั้นไปทดสอบกับคู่ข้อความต้นฉบับ/ข้อความเข้ารหัสอีกคู่หนึ่ง หากกุญแจนั้นผ่านการตรวจสอบความถูกต้องกับคู่ข้อความเข้ารหัสอีกคู่หนึ่ง ก็มีความเป็นไปได้สูงว่านั่นคือกุญแจที่ถูกต้อง

ตัวอย่างการโจมตี

ตัวอย่างต่อไปนี้อ้างอิงจากการโจมตีแบบ biclique บน AES จากเอกสาร "Biclique Cryptanalysis of the Full AES [ 2 ] " คำอธิบายในตัวอย่างใช้คำศัพท์เดียวกันกับที่ผู้เขียนการโจมตีใช้ (เช่น สำหรับชื่อตัวแปร ฯลฯ) เพื่อความง่าย จะกล่าวถึงการโจมตีบน AES128 เวอร์ชันด้านล่าง การโจมตีประกอบด้วยการโจมตี MITM 7 รอบ โดย biclique ครอบคลุม 3 รอบสุดท้าย

การแบ่งพาร์ติชันหลัก

พื้นที่คีย์ถูกแบ่งออกเป็น2112{\displaystyle 2^{112}}กลุ่มของกุญแจ โดยแต่ละกลุ่มประกอบด้วย216{\displaystyle 2^{16}} สำหรับแต่ละปุ่ม2112{\displaystyle 2^{112}}กลุ่มต่างๆ ซึ่งเป็นคีย์พื้นฐานที่ไม่ซ้ำกันเค[0,0]{\displaystyle K[0,0]}สำหรับการคำนวณพื้นฐานจะถูกเลือก คีย์พื้นฐานจะมีไบต์เฉพาะสองไบต์ที่ตั้งค่าเป็นศูนย์ ดังแสดงในตารางด้านล่าง (ซึ่งแสดงคีย์ในลักษณะเดียวกับที่ AES ใช้ในเมทริกซ์ 4x4 สำหรับ AES128):

[00]{\displaystyle {\begin{bmatrix}-&-&-&0\\0&-&-&-\\-&-&-&-\\-&-&-&-\end{bmatrix}}}

จากนั้นจึงทำการแจงนับไบต์ที่เหลืออีก 14 ไบต์ (112 บิต) ของคีย์ ซึ่งจะได้ผลลัพธ์ดังนี้2112{\displaystyle 2^{112}}คีย์พื้นฐานที่ไม่ซ้ำกัน หนึ่งคีย์สำหรับแต่ละกลุ่มของคีย์ ทั่วไป216{\displaystyle 2^{16}}จากนั้นจึงเลือกคีย์ในแต่ละกลุ่มโดยอ้างอิงจากคีย์พื้นฐาน โดยเลือกให้คีย์เหล่านั้นเกือบจะเหมือนกับคีย์พื้นฐาน แตกต่างกันเพียง 2 ไบต์เท่านั้น (ไม่ว่าจะเป็นฉัน{\displaystyle i}ของ หรือเจ{\displaystyle j}ของข้อมูล 4 ไบต์ที่แสดงด้านล่าง:

[ฉันฉันเจเจ]{\displaystyle {\begin{bmatrix}-&-&i&i\\j&-&j&-\\-&-&-&-\\-&-&-&-\end{bmatrix}}}

สิ่งนี้ให้28เค[ฉัน,0]{\displaystyle 2^{8}K[i,0]}และ28เค[0,เจ]{\displaystyle 2^{8}K[0,j]}ซึ่งเมื่อรวมกันแล้วจะได้216{\displaystyle 2^{16}}กุญแจที่แตกต่างกันเค[ฉัน,เจ]{\displaystyle K[i,j]}. เหล่านี้216{\displaystyle 2^{16}}คีย์เหล่านี้ประกอบด้วยคีย์ต่างๆ ในกลุ่มสำหรับคีย์พื้นฐานแต่ละตัว

การก่อสร้างแบบบิคลิค

2112{\displaystyle 2^{112}}bicliques ถูกสร้างขึ้นโดยใช้เทคนิค "ความแตกต่างของคีย์ที่เกี่ยวข้องแบบอิสระ" ดังที่อธิบายไว้ในส่วน "วิธีการสร้าง biclique" ข้อกำหนดสำหรับการใช้เทคนิคนี้คือ เส้นทางความแตกต่างไปข้างหน้าและย้อนกลับที่ต้องรวมเข้าด้วยกันจะต้องไม่มีองค์ประกอบที่ไม่เป็นเชิงเส้นที่ใช้งานอยู่ร่วมกัน เรารู้ได้อย่างไรว่านี่เป็นเช่นนั้น? เนื่องจากวิธีการเลือกคีย์ในขั้นตอนที่ 1 ที่สัมพันธ์กับคีย์พื้นฐาน เส้นทางความแตกต่างจึง...Δฉัน{\displaystyle \Delta _{i}}โดยใช้ปุ่มต่างๆเค[ฉัน,0]{\displaystyle K[i,0]}ห้ามแชร์ S-box ที่ใช้งานอยู่ (ซึ่งเป็นส่วนประกอบที่ไม่เป็นเชิงเส้นเพียงอย่างเดียวใน AES) กับเส้นทางความแตกต่าง (differential trails)เจ{\displaystyle \nabla _{j}}โดยใช้กุญแจเค[0,เจ]{\displaystyle K[0,j]}ดังนั้นจึงสามารถนำค่า XOR ของเส้นทางที่แตกต่างกันมาสร้างเป็นบิคลิกได้

การโจมตี MITM

เมื่อสร้าง bicliques แล้ว การโจมตี MITM ก็แทบจะเริ่มต้นขึ้นได้ ก่อนที่จะทำการโจมตี MITM นั้น...2{\displaystyle 2^{d}}ค่ากลางจากข้อความต้นฉบับ: พีฉันเค[ฉัน,0]วีฉัน{\displaystyle P_{i}{\xrightarrow[{}]{K[i,0]}}{\xrightarrow[{v_{i}}]{}}}, ​2{\displaystyle 2^{d}}ค่ากลางจากข้อความที่เข้ารหัส: วีเจเค[0,เจ]เอสเจ{\displaystyle {\xleftarrow[{v_{j}}]{}}{\xleftarrow[{}]{K[0,j]}}S_{j}}และ สถานะระดับกลางและคีย์ย่อยที่เกี่ยวข้องเค[ฉัน,0]{\displaystyle K[i,0]}หรือเค[0,เจ]{\displaystyle K[0,j]}อย่างไรก็ตาม ค่าเหล่านี้ได้รับการคำนวณและจัดเก็บไว้ล่วงหน้าแล้ว

ตอนนี้สามารถทำการโจมตีแบบ MITM ได้แล้ว เพื่อทดสอบกุญแจเค[ฉัน,เจ]{\displaystyle K[i,j]}จำเป็นต้องคำนวณส่วนต่าง ๆ ของรหัสลับใหม่เท่านั้น ซึ่งทราบกันดีอยู่แล้วว่าจะแตกต่างกันไปในแต่ละกรณีพีฉันเค[ฉัน,0]วีฉัน{\displaystyle P_{i}{\xrightarrow[{}]{K[i,0]}}{\xrightarrow[{v_{i}}]{}}}และพีฉันเค[ฉัน,เจ]วีฉัน{\displaystyle P_{i}{\xrightarrow[{}]{K[i,j]}}{\xrightarrow[{v_{i}}]{}}}สำหรับการคำนวณย้อนกลับจากเอสเจ{\displaystyle S_{j}}ถึงวีเจ{\displaystyle {\xleftarrow[{v_{j}}]{}}}นี่คือ S-box 4 ตัวที่ต้องคำนวณใหม่ สำหรับการคำนวณไปข้างหน้าจากพีฉัน{\displaystyle P_{i}}ถึงวีฉัน{\displaystyle {\xrightarrow[{v_{i}}]{}}}ซึ่งก็คือ 3 เท่านั้น (คำอธิบายเชิงลึกเกี่ยวกับปริมาณการคำนวณใหม่ที่จำเป็นสามารถพบได้ในเอกสาร "Biclique Cryptanalysis of the full AES [ 2 ] " ซึ่งตัวอย่างนี้มาจากเอกสารดังกล่าว)

เมื่อค่ากลางตรงกัน ผู้สมัครหลักก็จะได้รับการพิจารณาเค[ฉัน,เจ]{\displaystyle K[i,j]}ระหว่างพีฉัน{\displaystyle P_{i}}และเอสเจ{\displaystyle S_{j}}พบรหัสลับที่เหมาะสมแล้ว จากนั้นจึงนำรหัสลับนั้นไปทดสอบกับข้อความต้นฉบับและข้อความเข้ารหัสอีกคู่หนึ่ง

ผลลัพธ์

การโจมตีนี้ทำให้ความซับซ้อนในการคำนวณของ AES128 ลดลงเหลือ2126.18{\displaystyle 2^{126.18}}ซึ่งเร็วกว่าวิธีการเดาแบบสุ่ม 3-5 เท่า ความซับซ้อนของข้อมูลในการโจมตีคือ288{\displaystyle 2^{88}}และความซับซ้อนของหน่วยความจำคือ28{\displaystyle 2^{8}}.

ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Biclique_attack&oldid=1361808240 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ การโจมตีแบบบิคลิก

การโจมตีแบบไบคลิกเป็นรูปแบบหนึ่งของวิธีการวิเคราะห์การเข้ารหัสแบบพบปะตรงกลาง (MITM ) โดยใช้ โครงสร้าง ไบคลิกเพื่อขยายจำนวนรอบการโจมตีที่เป็นไปได้โดยการโจมตีแบบ MITM

ประวัติศาสตร์

การโจมตี MITM ดั้งเดิมได้รับการเสนอแนะครั้งแรกโดย Diffie และ Hellman ในปี 1977 เมื่อพวกเขาหารือเกี่ยวกับคุณสมบัติการวิเคราะห์การเข้ารหัสของ DES [ 5 ] พวกเขาโต้แย้งว่าขนาดคีย์เล็กเกินไป และการใช้ DES...

บิกลิค

สำหรับคำอธิบายทั่วไปเกี่ยวกับโครงสร้างไบคลิก โปรดดูบทความเรื่อง ไบ คลิก

บรูทฟอร์ซ

รับ 2 ง {\displaystyle 2^{d}} [ 7 ] สถานะกลาง [ 8 ] และ 2 ง {\displaystyle 2^{d}} เข้ารหัสข้อความ [ 9 ] จากนั้นคำนวณคีย์ที่แมปจากค่ากลางเดียวไปยัง เข้ารหัสข้อความ ทั้งหมด ดำเนินกระบวนการแมปคีย์แบบ "หนึ่งต่อหลาย" ต่อไปโดยทำซ้ำสำหรับค่ากลาง ทั้งหมด