อ่าน 4 นาที
อัลกอริทึมกุญแจสมมาตร
อัลกอริทึมแบบกุญแจสมมาตร [ a ] คือ อัลกอริทึม สำหรับ การเข้ารหัสลับ ที่ใช้ กุญแจเข้ารหัส เดียวกันสำหรับทั้งการเข้ารหัส ข้อความธรรมดา และการถอดรหัส ข้อความ ที่เข้ารหัส...
อัลกอริทึมกุญแจสมมาตร

อัลกอริทึมแบบกุญแจสมมาตร[ a ]คืออัลกอริทึมสำหรับการเข้ารหัสลับ ที่ใช้ กุญแจเข้ารหัสเดียวกันสำหรับทั้งการเข้ารหัสข้อความธรรมดาและการถอดรหัสข้อความ ที่เข้ารหัส กุญแจอาจเหมือนกัน หรืออาจมีการแปลงอย่างง่ายระหว่างกุญแจทั้งสอง[ 1 ]ในทางปฏิบัติ กุญแจแสดงถึงความลับร่วมกันระหว่างสองฝ่ายขึ้นไปที่สามารถใช้เพื่อรักษาการเชื่อมโยงข้อมูลส่วนตัว[ 2 ]ข้อกำหนดที่ว่าทั้งสองฝ่ายต้องเข้าถึงกุญแจลับได้นั้นเป็นหนึ่งในข้อเสียหลักของ การเข้ารหัสแบบกุญแจ สมมาตรเมื่อเทียบกับการเข้ารหัสแบบกุญแจอสมมาตร (หรือที่เรียกว่าการเข้ารหัสแบบกุญแจสาธารณะ) [ 3 ] [ 4 ]อย่างไรก็ตาม อัลกอริทึมการเข้ารหัสแบบกุญแจสมมาตรมักจะดีกว่าสำหรับการเข้ารหัสจำนวนมาก ยกเว้นแพดแบบใช้ครั้งเดียวพวกมันมีขนาดกุญแจที่เล็กกว่า ซึ่งหมายถึงพื้นที่จัดเก็บน้อยลงและการส่งที่เร็วขึ้น ด้วยเหตุนี้ การเข้ารหัสแบบกุญแจอสมมาตรจึงมักถูกใช้เพื่อแลกเปลี่ยนกุญแจลับกับการเข้ารหัสแบบกุญแจสมมาตร[ 5 ] [ 6 ] [ 7 ]
ประเภท
การเข้ารหัสแบบสมมาตรสามารถใช้การเข้ารหัสแบบสตรีมหรือการเข้ารหัสแบบบล็อกได้[ 8 ]
รหัสสตรีมจะเข้ารหัสตัวเลข (โดยทั่วไปคือไบต์ ) หรือตัวอักษร (ในรหัสการแทนที่) ของข้อความทีละตัว ตัวอย่างเช่นChaCha20 รหัสการแทนที่เป็นรหัสที่รู้จักกันดี แต่สามารถถอดรหัสได้ง่ายโดยใช้ตารางความถี่[ 9 ]
การเข้ารหัสแบบบล็อกจะใช้บิตจำนวนหนึ่งและเข้ารหัสในหน่วยเดียว โดยเติมข้อมูลลงในข้อความต้นฉบับเพื่อให้ได้ขนาดที่เป็นพหุคูณของขนาดบล็อก อัลกอริ ทึม มาตรฐานการเข้ารหัสขั้นสูง (AES) ซึ่งได้รับการอนุมัติจากNISTในเดือนธันวาคม 2001 ใช้บล็อกขนาด 128 บิต
การนำไปใช้
ตัวอย่างของอั ลกอริธึมคีย์สมมาตรที่เป็นที่นิยม ได้แก่Twofish , Serpent , AES (Rijndael), Camellia , Salsa20 , ChaCha20 , Blowfish , CAST5 , Kuznyechik , RC4 , DES , 3DES , Skipjack , SaferและIDEA [ 10 ]
ใช้เป็นหน่วยพื้นฐานทางด้านการเข้ารหัส
การเข้ารหัสแบบสมมาตรมักถูกใช้เพื่อบรรลุเป้าหมายทางด้านการเข้ารหัส อื่นๆ นอกเหนือจากการเข้ารหัสเพียงอย่างเดียว
การเข้ารหัสข้อความไม่ได้เป็นการรับประกันว่าข้อความนั้นจะไม่มีการเปลี่ยนแปลงในระหว่างการเข้ารหัส ดังนั้น จึงมัก มีการเพิ่ม รหัสยืนยันข้อความ (Message Authentication Code)เข้าไปในข้อความที่เข้ารหัสแล้ว เพื่อให้แน่ใจว่าผู้รับจะสังเกตเห็นการเปลี่ยนแปลงใดๆ ในข้อความที่เข้ารหัส รหัสยืนยันข้อความสามารถสร้างขึ้นได้จาก รหัส AEAD (เช่นAES-GCM )
อย่างไรก็ตาม การเข้ารหัสแบบสมมาตรไม่สามารถใช้เพื่อ วัตถุประสงค์ ในการปฏิเสธความรับผิดชอบได้เว้นแต่จะเกี่ยวข้องกับบุคคลเพิ่มเติม[ 11 ]ดูมาตรฐาน ISO/IEC 13888-2
อีกหนึ่งการประยุกต์ใช้คือการสร้างฟังก์ชันแฮชจากรหัสบล็อก ดูคำอธิบายวิธีการต่างๆ ดังกล่าวได้ในหัวข้อ ฟังก์ชันการบีบอัดแบบทางเดียว
การสร้างรหัสลับแบบสมมาตร
รหัสลับแบบบล็อกสมัยใหม่จำนวนมากมีพื้นฐานมาจากโครงสร้างที่เสนอโดยฮอร์สต์ ไฟสเตลโครงสร้างของไฟสเตลทำให้สามารถสร้างฟังก์ชันที่ผกผันได้จากฟังก์ชันอื่น ๆ ที่ไม่สามารถผกผันได้ด้วยตัวเอง
ความปลอดภัยของการเข้ารหัสแบบสมมาตร
การเข้ารหัสแบบสมมาตรนั้นมีความเสี่ยงต่อการโจมตีแบบรู้ข้อความต้นฉบับการโจมตีแบบเลือกข้อความต้นฉบับการวิเคราะห์การเข้ารหัสแบบดิฟเฟอเรนเชียลและการวิเคราะห์การเข้ารหัสแบบเชิงเส้นการสร้างฟังก์ชันสำหรับแต่ละรอบ อย่างระมัดระวัง สามารถลดโอกาสในการโจมตีที่ประสบความสำเร็จได้อย่างมาก นอกจากนี้ยังสามารถเพิ่มความยาวของคีย์หรือจำนวนรอบในกระบวนการเข้ารหัสเพื่อป้องกันการโจมตีได้ดียิ่งขึ้น อย่างไรก็ตาม วิธีนี้มักจะเพิ่มกำลังการประมวลผลและลดความเร็วในการทำงานเนื่องจากจำนวนการดำเนินการที่ระบบต้องทำ[ 12 ]
อัลกอริทึมแบบสมมาตรสมัยใหม่ส่วนใหญ่ดูเหมือนจะทนทานต่อภัยคุกคามจากการเข้ารหัสหลังควอนตัม [ 13 ] คอมพิวเตอร์ควอนตัมจะเพิ่มความเร็วในการถอดรหัสเหล่านี้ขึ้นอย่างมาก โดยเฉพาะอย่างยิ่งอัลกอริทึมของ Groverจะใช้เวลาเพียงรากที่สองของเวลาที่จำเป็นสำหรับการโจมตีแบบเดาแบบสุ่มแม้ว่าช่องโหว่เหล่านี้จะสามารถชดเชยได้ด้วยการเพิ่มความยาวของคีย์เป็นสองเท่า[ 14 ]ตัวอย่างเช่น การเข้ารหัส AES 128 บิตจะไม่ปลอดภัยจากการโจมตีดังกล่าว เนื่องจากจะลดเวลาที่จำเป็นในการทดสอบการวนซ้ำที่เป็นไปได้ทั้งหมดจากกว่า 10 ควินทิลเลียนปีเหลือประมาณหกเดือน ในทางตรงกันข้าม คอมพิวเตอร์ควอนตัมจะยังคงใช้เวลาเท่าเดิมในการถอดรหัสการเข้ารหัส AES 256 บิต เช่นเดียวกับที่คอมพิวเตอร์ทั่วไปใช้ในการถอดรหัสการเข้ารหัส AES 128 บิต[ 15 ]ด้วยเหตุนี้ AES-256 จึงเชื่อว่า "ทนทานต่อควอนตัม" [ 16 ] [ 17 ]
การจัดการที่สำคัญ
การจัดตั้งที่สำคัญ
อัลกอริทึมแบบกุญแจสมมาตรต้องการให้ทั้งผู้ส่งและผู้รับข้อความมีกุญแจลับเดียวกัน ระบบการเข้ารหัสลับในยุคแรก ๆ ทั้งหมดต้องการให้ผู้ส่งหรือผู้รับได้รับสำเนาของกุญแจลับนั้นผ่านช่องทางที่ปลอดภัยทางกายภาพ
ระบบการเข้ารหัสสมัยใหม่เกือบทั้งหมดยังคงใช้อัลกอริธึมแบบสมมาตรภายในเพื่อเข้ารหัสข้อความส่วนใหญ่ แต่ระบบเหล่านี้ขจัดความจำเป็นในการมีช่องทางที่ปลอดภัยทางกายภาพโดยใช้การแลกเปลี่ยนกุญแจ Diffie–Hellman หรือ โปรโตคอลกุญแจสาธารณะอื่น ๆเพื่อตกลงกันอย่างปลอดภัยเกี่ยวกับกุญแจลับใหม่สำหรับแต่ละเซสชัน/การสนทนา (ความลับแบบส่งต่อ)
การสร้างกุญแจ
เมื่อใช้กับการเข้ารหัสแบบอสมมาตรสำหรับการถ่ายโอนคีย์ ตัวสร้างคีย์แบบสุ่มเทียมมักจะถูกใช้เพื่อสร้างคีย์เซสชันการเข้ารหัสแบบสมมาตร อย่างไรก็ตาม การขาดความสุ่มในตัวสร้างเหล่านั้นหรือในเวกเตอร์เริ่มต้น ของพวกมัน เป็นหายนะและนำไปสู่การถอดรหัสในอดีต ดังนั้น การใช้งานจึงจำเป็นต้องใช้แหล่งเอนโทรปี สูง สำหรับการเริ่มต้น[ 18 ] [ 19 ] [ 20 ]
รหัสลับแบบผกผัน
รหัสแบบผกผันคือรหัสที่เมื่อป้อนข้อความต้นฉบับเข้าไปใน ระบบ การเข้ารหัสเพื่อรับข้อความที่เข้ารหัสแล้วก็สามารถป้อนข้อความที่เข้ารหัสแล้วเข้าไปในตำแหน่งเดียวกันในระบบเพื่อรับข้อความต้นฉบับได้เช่นกัน บางครั้งรหัสแบบผกผันก็เรียกว่ารหัสแบบผกผันตัวเอง[ 21 ] [ 22 ]
ในทางปฏิบัติ เครื่องเข้ารหัสเชิงกลเกือบทั้งหมดใช้การเข้ารหัสแบบผกผัน ซึ่งเป็นการผกผันทางคณิตศาสตร์บนตัวอักษรแต่ละตัวที่พิมพ์เข้าไป แทนที่จะออกแบบเครื่องสองประเภท ประเภทหนึ่งสำหรับเข้ารหัสและอีกประเภทหนึ่งสำหรับถอดรหัส เครื่องทั้งหมดสามารถเหมือนกันและสามารถตั้งค่า (กำหนดคีย์) ได้ในลักษณะเดียวกัน[ 23 ]
ตัวอย่างของรหัสลับแบบต่างตอบแทน ได้แก่:
- อัตบาช
- รหัสโบฟอร์ต[ 24 ]
- เครื่อง Enigma [ 25 ]
- รหัสลับแบบโต้ตอบกันเองซึ่งมารี อองตัวเน็ตและแอ็กเซล ฟอน เฟอร์เซนใช้ในการสื่อสาร[ 26 ]
- รหัสลับพหุตัวอักษร Porta ซึ่งเป็นแบบแลกเปลี่ยนตัวเอง[ 27 ]
- รหัสสีม่วง[ 28 ]
- อาร์ซี4
- โรท13
- รหัสลับ XOR
- รหัสลับวัตสยานะ
รหัสลับสมัยใหม่ส่วนใหญ่สามารถจำแนกได้เป็นสองประเภท คือรหัสลับแบบสตรีมซึ่งส่วนใหญ่ใช้ ตัวรวม รหัสลับแบบ XOR ผกผัน หรือรหัสลับแบบบล็อกซึ่งส่วนใหญ่ใช้รหัสลับแบบ Feistelหรือแบบแผน Lai–Masseyพร้อมการแปลงผกผันในแต่ละรอบ
หมายเหตุ
- ^คำอื่นๆ ที่ใช้เรียกการเข้ารหัสแบบกุญแจสมมาตร ได้แก่ การเข้ารหัสแบบกุญแจลับการ เข้ารหัส แบบกุญแจเดียวการเข้ารหัสแบบกุญแจร่วม การเข้ารหัสแบบกุญแจเดียวและ การเข้ารหัส แบบกุญแจส่วนตัวการใช้คำสุดท้ายและคำแรกอาจทำให้เกิดความกำกวมกับคำศัพท์ที่คล้ายกันที่ใช้ในการเข้ารหัสแบบกุญแจสาธารณะการเข้ารหัสแบบกุญแจสมมาตรนั้นแตกต่างจากการเข้ารหัสแบบกุญแจอสมมาตร
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ อัลกอริทึมกุญแจสมมาตร
อัลกอริทึมแบบกุญแจสมมาตร [ a ] คือ อัลกอริทึม สำหรับ การเข้ารหัสลับ ที่ใช้ กุญแจเข้ารหัส เดียวกันสำหรับทั้งการเข้ารหัส ข้อความธรรมดา และการถอดรหัส ข้อความ ที่เข้ารหัส...
ประเภท
การเข้ารหัสแบบสมมาตรสามารถใช้ การเข้ารหัสแบบสตรีม หรือ การเข้ารหัสแบบบล็อก ได้ [ 8 ]
การนำไปใช้
ตัวอย่างของอั ลก อริธึมคีย์สมมาตรที่เป็นที่นิยม ได้แก่ Twofish , Serpent , AES (Rijndael), Camellia , Salsa20 , ChaCha20 , Blowfish , CAST5 , Kuznyechik , RC4 , DES , 3DES , Skipjack , Safer และ IDEA [ 10 ]
ใช้เป็นหน่วยพื้นฐานทางด้านการเข้ารหัส
การเข้ารหัสแบบสมมาตรมักถูกใช้เพื่อบรรลุ เป้าหมายทางด้านการเข้ารหัส อื่นๆ นอกเหนือจากการเข้ารหัสเพียงอย่างเดียว