พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์
เรียนรู้การแพร่กระจายความแตกต่างจากอินพุตสู่อาต์พุตเพื่อโจมตีรหัสเข้ารหัสที่ลดจำนวนรอบ
พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์ เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
การวิเคราะห์รหัสลับเชิงผลต่างคืออะไร
การวิเคราะห์รหัสลับเชิงผลต่าง (Biham และ Shamir, 1990) เป็นการโจมตีด้วยข้อความธรรมดาที่เลือก ซึ่งวิเคราะห์ว่าผลต่างในคู่ข้อความธรรมดาแพร่ผ่านรหัสลับอย่างไร โดยค้นหาผลต่างอินพุตที่ทำให้เกิดผลต่างเอาต์พุตที่คาดการณ์ได้ด้วยความน่าจะเป็นสูง ผู้โจมตีสามารถกู้คืนบิตของคีย์ได้ในเชิงสถิติ
นิยามของผลต่าง
สำหรับรหัสลับที่ใช้ XOR: ผลต่าง ΔX = X XOR X' สำหรับรหัสลับที่ใช้การบวก: ผลต่าง ΔX = X - X' mod 2^n ผลต่างแบบ XOR พบบ่อยที่สุด เพราะ XOR สลับที่ได้กับการเข้ารหัสด้วยคีย์แบบ XOR (ผลจากตารางคีย์จะหักล้างกันในคู่เชิงผลต่าง)
คู่เชิงผลต่าง
คู่เชิงผลต่าง (P, P') มีผลต่างอินพุต ΔP = P XOR P' หลังการเข้ารหัส จะได้ (C, C') ซึ่งมีผลต่างเอาต์พุต ΔC = C XOR C' ผลต่างที่มีประโยชน์คือ ΔP → ΔC ซึ่งเกิดขึ้นด้วยความน่าจะเป็นสูง p — หมายความว่าคู่ (P, P') จำนวนมากที่มีผลต่าง ΔP จะให้ผลต่างเอาต์พุต ΔC
ตารางการกระจายผลต่างของกล่อง S
DDT (ตารางการกระจายผลต่าง) นับจำนวนอินพุต x ที่ทำให้ S(x) XOR S(x XOR Δx) = Δy สำหรับผลต่างอินพุต Δx และผลต่างเอาต์พุต Δy แต่ละคู่ หารด้วย 2^n เพื่อให้ได้ความน่าจะเป็น กล่อง S ที่ดีมีค่า DDT สูงสุดเป็น 2 (ความน่าจะเป็น 1/2^{n-1}) จึงไม่มีผลต่างที่เด่นชัด
เส้นทางเชิงผลต่างผ่านรหัสลับ
สำหรับรหัสลับแบบบล็อกที่มี r รอบ ให้ค้นหาลำดับ ΔP → ΔU1 → ΔU2 → ... → ΔU_{r-1} โดยการเปลี่ยนผ่านในแต่ละรอบมีความน่าจะเป็นที่ทราบค่า คูณความน่าจะเป็นของทุกรอบเข้าด้วยกัน: ความน่าจะเป็นรวม p = p1 * p2 * ... * p_{r-1} การโจมตีใช้คู่จำนวน 2/p เพื่อกู้คืนคีย์ของรอบสุดท้าย
การโจมตีรอบสุดท้าย
เมื่อมีผลต่างของ r-1 รอบที่มีความน่าจะเป็นสูง ให้รวบรวมคู่ข้อความธรรมดา N = 2/p คู่ สำหรับคีย์รอบสุดท้ายที่เป็นไปได้แต่ละค่า K' ให้ถอดรหัสข้อความเข้ารหัสทั้งสองเป็นเวลาหนึ่งรอบ ใช้ XOR กับผลลัพธ์ แล้วตรวจสอบว่าผลต่างตรงกับ ΔU_{r-1} หรือไม่ K' ที่ถูกต้องจะตรงกันประมาณ N/2 ครั้ง ส่วนคีย์ที่ผิดจะตรงกันประมาณ N/2^{bit_size} ครั้ง
การออกแบบกล่อง S ของ AES
กล่อง S ของ AES คืออินเวอร์สการคูณเหนือ GF(2^8) ตามด้วยการแปลงแอฟฟีน ค่า DDT สูงสุดคือ 4 จากทั้งหมด 256 ทำให้ความน่าจะเป็นเชิงผลต่างต่อกล่อง S ไม่เกิน 4/256 = 1/64 AES มีกล่อง S 4 กล่องต่อรอบ แต่การออกแบบ Wide Trail ทำให้เส้นทางเชิงผลต่างเต็มรูปแบบมีความน่าจะเป็นต่ำกว่า 2^{-100}
กลยุทธ์เส้นทางกว้าง
การออกแบบ Wide Trail ของ Joan Daemen (ใช้ใน AES/Rijndael): กำหนดจำนวนกิ่ง B ของ MixColumns ผลต่างที่ไม่เป็นศูนย์ทุกเส้นทางผ่านหนึ่งรอบจะเปิดใช้กล่อง S อย่างน้อย B กล่อง 4 รอบ × กล่อง S 4 กล่องต่อรอบ รับประกันว่าจะมีกล่อง S ที่ทำงานอย่างน้อย 25 กล่อง → ความน่าจะเป็น < 2^{-100}
ผลต่างแบบตัดทอน
ผลต่างแบบตัดทอนจะระบุเพียงบางส่วนของผลต่าง เช่น ระบุเฉพาะว่าคอลัมน์ใดทำงานอยู่ ไม่ได้ระบุค่าผลต่างที่แน่นอน ทำให้โจมตีรหัสลับได้หลายรอบขึ้นเมื่อผลต่างแบบเต็มอ่อนเกินไป วิธีนี้ใช้กับ AES ที่ลดจำนวนรอบ, SERPENT และรหัสลับ SPN อื่น ๆ
ผลต่างที่เป็นไปไม่ได้
ผลต่างที่เป็นไปไม่ได้คือคู่ (ΔP, ΔC) ที่ไม่สามารถเกิดขึ้นได้ไม่ว่าจะใช้คีย์ใดก็ตาม คีย์ใดก็ตามที่ทำให้คู่ที่สังเกตได้ (P, P') ซึ่งมีผลต่างนี้เกิดขึ้น จะถูกตัดออก เมื่อรวบรวมคู่ได้มากพอ คีย์ที่ผิดทั้งหมดจะถูกตัดออก เหลือคีย์ที่ถูกต้อง
การโจมตีแบบบูมเมอแรง
การโจมตีแบบบูมเมอแรง (Wagner, 1999) รวมผลต่างสั้นสองชุดเข้าด้วยกันเป็นการโจมตีแบบเลือกข้อความธรรมดาและข้อความเข้ารหัสอย่างปรับตัวได้ โดยแยกรหัสลับออกเป็นสองครึ่ง แต่ละครึ่งมีผลต่างสั้นที่มีความน่าจะเป็นสูง ทำให้โจมตีรหัสลับได้หลายรอบกว่าที่ผลต่างชุดเดียวจะรองรับได้
ตรวจสอบอย่างรวดเร็ว
DDT (ตารางการกระจายผลต่าง) มีจุดประสงค์อะไรในการวิเคราะห์รหัสลับ
สรุปทบทวน
การวิเคราะห์รหัสลับเชิงผลต่างใช้ประโยชน์จากการแพร่ของผลต่างอินพุตไปยังเอาต์พุตที่มีความน่าจะเป็นสูง AES ต้านทานการโจมตีนี้ด้วยกล่อง S ที่เหมาะสมที่สุดตาม DDT และการออกแบบ Wide Trail บทถัดไป: การวิเคราะห์รหัสลับเชิงเส้นและตารางการประมาณค่า
คำถามที่พบบ่อย
บทเรียน “พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์”
เรียนรู้การแพร่กระจายความแตกต่างจากอินพุตสู่อาต์พุตเพื่อโจมตีรหัสเข้ารหัสที่ลดจำนวนรอบ คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน
บทเรียน “พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- พื้นฐานการวิเคราะห์การเข้ารหัสเชิงอนุพันธ์
- การวิเคราะห์การเข้ารหัสเชิงเส้นและตารางประมาณค่า
- การโจมตีแบบวันเกิดและการชนกัน
- การโจมตีแบบพบกันตรงกลางและความสมดุลระหว่างเวลาและหน่วยความจำ