โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่
ทำความเข้าใจโครงสร้างไฟสเทลที่เป็นพื้นฐานของ DES และรหัสลับแบบบล็อกสมัยใหม่จำนวนมาก
โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่ เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
แนวคิดของฮอร์สท์ ไฟสเทลที่ IBM
ในช่วงต้นทศวรรษ 1970 ฮอร์สท์ ไฟสเทลแห่งฝ่ายวิจัยของ IBM กำลังทำงานกับรหัสลับลูซิเฟอร์ เมื่อเขาค้นพบแนวคิดพื้นฐานว่า เราสามารถสร้างรหัสลับที่ผกผันได้โดยใช้ฟังก์ชันรอบที่ผกผันไม่ได้
แนวคิดนี้ถือเป็นการปฏิวัติวงการ เพราะการออกแบบฟังก์ชันที่ผกผันได้และยังปลอดภัยไปพร้อมกันเป็นเรื่องยาก โครงสร้างของไฟสเทลหลีกเลี่ยงข้อกำหนดนี้ได้ทั้งหมด ทำให้สามารถใช้ฟังก์ชันรอบทางเดียวที่ซับซ้อนได้ตามต้องการ
โครงสร้างแบ่งและผสม
ในรหัสลับไฟสเทล บล็อกข้อมูลนำเข้าจะถูกแบ่งเป็นสองครึ่งที่มีขนาดเท่ากัน ได้แก่ L (ซ้าย) และ R (ขวา) ในแต่ละรอบ ระบบจะใช้ฟังก์ชันรอบ F กับ R นำผลลัพธ์ไปทำ XOR กับ L แล้วจึงสลับครึ่งทั้งสอง
หลังผ่าน n รอบ ครึ่งทั้งสองจะถูกนำกลับมารวมกันเพื่อสร้างข้อความเข้ารหัส การสลับนี้ทำให้ครึ่งทั้งสองถูกประมวลผลสลับกันในแต่ละรอบ และผสมข้อมูลเข้าด้วยกันอย่างทั่วถึง
ฟังก์ชันรอบ F
ฟังก์ชันรอบ F ในเครือข่ายไฟสเทลรับครึ่งด้านขวาและกุญแจย่อยประจำรอบเป็นข้อมูลนำเข้า แล้วสร้างผลลัพธ์เพื่อนำไปทำ XOR กับครึ่งด้านซ้าย ที่สำคัญคือ F ไม่จำเป็นต้องผกผันได้
F สามารถมีความซับซ้อนได้ตามต้องการ เช่น ประกอบด้วยการแทนที่ การเรียงสับเปลี่ยน การทำ XOR และเลขคณิตแบบมอดูลัสในรูปแบบใดก็ได้ ยิ่ง F ซับซ้อนและไม่เป็นเชิงเส้นมากเท่าใด รหัสลับก็ยิ่งแข็งแกร่งมากขึ้น เพราะการถอดรหัสไม่จำเป็นต้องผกผัน F
การถอดรหัสของไฟสเทลทำงานอย่างไร
การถอดรหัสในรหัสลับไฟสเทลใช้โครงสร้างเดียวกันทุกประการกับการเข้ารหัส แต่ใช้กุญแจย่อยประจำรอบในลำดับย้อนกลับ วิธีนี้เป็นไปได้เพราะ XOR เป็นการผกผันตัวเอง หาก A XOR B = C แล้ว C XOR B = A
เนื่องจากการถอดรหัสไม่เคยเรียกใช้ F^-1 ซึ่งเป็นฟังก์ชันผกผันของ F ฟังก์ชันรอบจึงอาจเป็นฟังก์ชันแฮชที่ย้อนกลับไม่ได้ ตารางค้นหา หรือการดำเนินการซับซ้อนรูปแบบใดก็ได้ โดยไม่กระทบต่อความสามารถในการผกผันของรหัสลับ
เหตุใดเครือข่ายไฟสเทลจึงผกผันได้ง่าย
ความสง่างามทางคณิตศาสตร์ของเครือข่ายไฟสเทลอยู่ที่โครงสร้าง XOR ซึ่งรับประกันความสามารถในการผกผัน ไม่ว่า F จะทำงานอย่างไร แม้ F จะเป็นฟังก์ชันทางเดียวอย่าง SHA-256 รหัสลับไฟสเทลโดยรวมก็ยังคงผกผันได้
คุณสมบัตินี้ทำให้รหัสลับไฟสเทลมีความยืดหยุ่นอย่างยิ่ง นักวิทยาการรหัสลับสามารถมุ่งเน้นทั้งหมดไปที่การทำให้ F สร้างความสับสนและแพร่กระจายข้อมูลได้มากที่สุด โดยมั่นใจได้ว่าโครงสร้างเครือข่ายจะจัดการเรื่องความสามารถในการผกผันให้เอง
DES ในรูปแบบไฟสเทล 16 รอบ
มาตรฐานการเข้ารหัสข้อมูล (DES) ซึ่งเผยแพร่ในปี 1977 เป็นรหัสลับไฟสเทล 16 รอบ ทำงานกับบล็อกขนาด 64 บิตและกุญแจขนาด 56 บิต แต่ละรอบใช้กุญแจย่อยขนาด 48 บิตที่แตกต่างกัน ซึ่งสร้างมาจากกุญแจหลัก
ฟังก์ชันรอบใน DES ประกอบด้วยการเรียงสับเปลี่ยนเพื่อขยาย การทำ XOR กับกุญแจย่อย กล่อง S จำนวนแปดกล่องที่สร้างความไม่เป็นเชิงเส้น และการเรียงสับเปลี่ยนด้วยกล่อง P การผสมผสานนี้ให้ทั้งความสับสนและการแพร่กระจายตามหลักการออกแบบรหัสลับของแชนนอน
โบลว์ฟิชและทูฟิช
โบลว์ฟิช ซึ่งออกแบบโดยบรูซ ชไนเออร์ในปี 1993 เป็นรหัสลับไฟสเทลที่มีความยาวกุญแจแปรผันได้ตั้งแต่ 32 ถึง 448 บิต และมี 16 รอบ รหัสลับนี้ใช้กล่อง S ที่ขึ้นอยู่กับกุญแจ ทำให้การโจมตีที่คำนวณไว้ล่วงหน้าไม่สามารถทำได้จริง
ทูฟิช ซึ่งเข้ารอบสุดท้ายในการแข่งขันเพื่อคัดเลือกมาตรฐานการเข้ารหัสขั้นสูง ต่อยอดแนวคิดของโบลว์ฟิชด้วยบล็อกขนาด 128 บิตและ 16 รอบ ทั้งสองรหัสลับยังไม่ถูกทำลาย และถูกใช้ในโปรแกรมต่าง ๆ เช่น การแฮชรหัสผ่านแบบบีคริปต์ ซึ่งใช้โบลว์ฟิชดัดแปลง
ไฟสเทลแบบสมดุลและไม่สมดุล
รหัสลับไฟสเทลแบบสมดุลแบ่งบล็อกออกเป็นสองครึ่งที่มีขนาดเท่ากัน ส่วนไฟสเทลแบบไม่สมดุลใช้ครึ่งที่มีขนาดไม่เท่ากัน เช่น แบ่งเป็นสามส่วนสี่และหนึ่งส่วนสี่
เครือข่ายไฟสเทลแบบไม่สมดุลอาจให้ข้อได้เปรียบด้านความปลอดภัยในบริบทบางประเภท และถูกใช้ในรหัสลับเฉพาะทางบางชนิด ตระกูลรหัสลับ CAST ใช้โครงสร้างไฟสเทลแบบสมดุลขนาด 64 บิต
ทฤษฎีบทลูบี–แร็กคอฟฟ์
ในปี 1988 ไมเคิล ลูบีและชาร์ลส์ แร็กคอฟฟ์พิสูจน์ว่าเครือข่ายไฟสเทล 3 รอบที่ใช้ฟังก์ชันรอบเสมือนสุ่ม จะเป็นการเรียงสับเปลี่ยนเสมือนสุ่มที่ปลอดภัย (PRP) และรูปแบบ 4 รอบจะเป็น PRP ที่แข็งแกร่ง
ผลลัพธ์ทางทฤษฎีนี้ทำให้เครือข่ายไฟสเทลมีพื้นฐานด้านความปลอดภัยที่พิสูจน์ได้อย่างมั่นคง ไม่ได้อาศัยเพียงความเชื่อมั่นจากการทดลองเท่านั้น และยืนยันว่าโครงสร้างไฟสเทลเองก็มีส่วนช่วยด้านความปลอดภัย นอกเหนือจากฟังก์ชันรอบ
ไฟสเทลกับ SPN: เหตุใด AES จึงใช้ SPN
เครือข่ายการแทนที่–การเรียงสับเปลี่ยน (SPN) ที่ใช้ในมาตรฐานการเข้ารหัสขั้นสูง จะทำการแทนที่และเรียงสับเปลี่ยนกับทั้งบล็อกพร้อมกัน แทนที่จะทำกับบล็อกเพียงครึ่งเดียวในแต่ละรอบ จึงทำให้ข้อมูลแพร่กระจายได้เร็วกว่า
มาตรฐานการเข้ารหัสขั้นสูงทำให้เกิดการแพร่กระจายทั่วทั้งบล็อกได้ภายในเพียง 4 รอบ ขณะที่โครงสร้างไฟสเทลของ DES ต้องใช้รอบมากกว่านั้นเพื่อให้เกิดการแพร่กระจายในระดับใกล้เคียงกัน นอกจากนี้ SPN ของมาตรฐานการเข้ารหัสขั้นสูงยังเหมาะกับสถาปัตยกรรมตัวประมวลผลสมัยใหม่ที่มีคำสั่ง SIMD มากกว่า
การพิสูจน์ความปลอดภัยและแบบจำลองออราเคิลสุ่ม
ทฤษฎีบทลูบี–แร็กคอฟฟ์ถือว่าฟังก์ชันรอบ F เป็นฟังก์ชันสุ่มแท้จริง แต่ในทางปฏิบัติ F เป็นฟังก์ชันเสมือนสุ่ม ซึ่งอาจเป็นรหัสลับที่ใช้กุญแจหรือฟังก์ชันแฮช ไม่ใช่ออราเคิลสุ่มแท้จริง
ช่องว่างระหว่างการพิสูจน์ทางทฤษฎีกับการนำไปใช้งานจริงเป็นประเด็นที่พบซ้ำบ่อยในวิทยาการรหัสลับ การพิสูจน์ช่วยสร้างความเชื่อมั่น แต่ตั้งอยู่บนแบบจำลองในอุดมคติ ความปลอดภัยในโลกจริงยังขึ้นอยู่กับการนำไปใช้งานที่ปลอดภัยและปราศจากช่องโหว่จากช่องทางข้างเคียง
แบบทดสอบโครงสร้างไฟสเทล
โปรดทดสอบความเข้าใจเกี่ยวกับการออกแบบเครือข่ายไฟสเทล
ประเด็นสำคัญ: เครือข่ายไฟสเทล
เครือข่ายไฟสเทลเป็นโครงสร้างของรหัสลับแบบบล็อกที่ใช้ฟังก์ชันรอบซึ่งไม่จำเป็นต้องผกผันได้ การถอดรหัสทำได้โดยดำเนินตามโครงสร้างเดิมในลำดับย้อนกลับ และใช้กุญแจย่อยในลำดับย้อนกลับ
DES โบลว์ฟิช และทูฟิช ล้วนเป็นรหัสลับไฟสเทล ทฤษฎีบทลูบี–แร็กคอฟฟ์ให้หลักประกันด้านความปลอดภัยในทางทฤษฎี ส่วนมาตรฐานการเข้ารหัสขั้นสูงใช้โครงสร้าง SPN แทน จึงให้การแพร่กระจายต่อรอบได้ดีกว่า
คำถามที่พบบ่อย
บทเรียน “โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่”
ทำความเข้าใจโครงสร้างไฟสเทลที่เป็นพื้นฐานของ DES และรหัสลับแบบบล็อกสมัยใหม่จำนวนมาก คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม
ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- รหัสลับเพลย์แฟร์
- ADFGVX และการแบ่งส่วน
- รหัสลับโบฟอร์ตและกุญแจหมุนเวียน
- โครงข่ายไฟสเทล: องค์ประกอบพื้นฐานของรหัสลับสมัยใหม่