0Pricing
Cryptology Academy · บทเรียน

NTRU: ประวัติ การออกแบบ และความปลอดภัย

ศึกษาโครงสร้างริงพหุนามของ NTRU การสร้างกุญแจ และประวัติการรักษาความปลอดภัยอันยาวนาน

NTRU: ประวัติ การออกแบบ และความปลอดภัย เป็นบทเรียน Cryptology Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cryptology Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

จุดกำเนิดของ NTRU

NTRU ถูกคิดค้นโดย Hoffstein, Pipher และ Silverman ในปี 1996 ทำให้เป็นหนึ่งในระบบกุญแจสาธารณะหลังยุคควอนตัมที่เก่าแก่ที่สุดซึ่งยังถือว่าปลอดภัย ต่างจาก RSA และ ECC ซึ่งอาศัยความยากเชิงทฤษฎีจำนวน ความมั่นคงปลอดภัยของ NTRU ตั้งอยู่บนความยากในการค้นหาเวกเตอร์สั้นในแลตทิซเฉพาะที่สร้างจากริงพหุนาม NTRU ถูกนำไปทำเป็นผลิตภัณฑ์เชิงพาณิชย์และใช้งานในผลิตภัณฑ์ด้านความปลอดภัยหลายรายการ ก่อนที่การเข้ารหัสลับหลังยุคควอนตัมจะกลายเป็นกระแสหลัก

ริงพหุนามของ NTRU

NTRU ทำงานในริงพหุนามแบบตัดทอน Z[X]/(X^N - 1) โดย N เป็นจำนวนเฉพาะ พหุนามในริงนี้มีดีกรีไม่เกิน N-1 และการคูณจะวนรอบ (คอนโวลูชัน) การเลือกริงและโครงสร้างของพหุนามที่มีสัมประสิทธิ์ขนาดเล็กเป็นหัวใจสำคัญของทั้งประสิทธิภาพและคุณสมบัติด้านความมั่นคงปลอดภัยของ NTRU

การสร้างกุญแจ NTRU

การสร้างกุญแจจะเลือกพหุนามขนาดเล็กสองตัวคือ f และ g ซึ่งมีสัมประสิทธิ์อยู่ใน {-1, 0, 1} พหุนาม f ต้องมีอินเวอร์สได้ทั้งเมื่อมอดุโล p (จำนวนเฉพาะขนาดเล็ก โดยทั่วไปคือ 3) และ q (จำนวนเฉพาะขนาดใหญ่กว่า โดยทั่วไปคือ 2048) กุญแจสาธารณะคือ h = f_q^{-1} * g mod q โดย f_q คืออินเวอร์สของ f มอดุโล q กุญแจส่วนตัวคือคู่ (f, g)

การเข้ารหัส NTRU

ในการเข้ารหัสพหุนามข้อความ m ที่มีสัมประสิทธิ์ขนาดเล็ก ผู้ส่งจะเลือกพหุนามพรางขนาดเล็กแบบสุ่ม r แล้วคำนวณ c = r * h + m mod q ข้อความเข้ารหัส c เป็นพหุนามในริงเดียวกัน r แบบสุ่มจะป้องกันไม่ให้การเข้ารหัสข้อความเดียวกันสองครั้งดูเหมือนกันทุกประการ และทำให้เกิดความมั่นคงปลอดภัยเชิงความหมาย

การถอดรหัส NTRU

การถอดรหัสจะคำนวณ a = f * c mod q โดยเลือกสัมประสิทธิ์ให้อยู่ในช่วง (-q/2, q/2] จากนั้น a mod p จะกู้คืน f_p * m mod p และการคูณด้วย fp = f^{-1} mod p จะให้ค่า m โครงสร้างความผิดพลาดขนาดเล็กช่วยให้สัมประสิทธิ์ของ f * c มีขนาดเล็กพอที่การดำเนินการ mod q และ mod p จะทำงานสัมพันธ์กันอย่างถูกต้อง และกู้คืนข้อความได้โดยไม่เกิดความล้มเหลวจากสัญญาณรบกวน

ชุดพารามิเตอร์ NTRU

NTRU สมัยใหม่มีตระกูลพารามิเตอร์ที่กำหนดมาตรฐานไว้สองตระกูล ได้แก่ NTRU-HPS (Hoffstein-Pipher-Silverman) และ NTRU-HRSS (Hulsing-Rijneveld-Schanck-Schwabe) NTRU-HPS ใช้พหุนามข้อความแบบไตรภาค ขณะที่ NTRU-HRSS ใช้การเข้ารหัสแบบสุ่มเพื่อให้อัตราความล้มเหลวในการถอดรหัสดีขึ้น ทั้งสองแบบเป็นผู้เข้ารอบสุดท้ายของการแข่งขัน NIST PQC รอบที่ 3 โดยมีชุดพารามิเตอร์ที่มุ่งเป้าความมั่นคงปลอดภัยระดับ 128, 192 และ 256 บิต

การวิเคราะห์ความมั่นคงปลอดภัยของ NTRU

ยังไม่มีการโจมตีในเวลาเชิงพหุนามต่อ NTRU ที่กำหนดพารามิเตอร์อย่างเหมาะสม การโจมตีที่ดีที่สุดลดรูปลงเป็นการค้นหาเวกเตอร์สั้นในแลตทิซ NTRU ซึ่งเป็นกรณีหนึ่งของปัญหา SVP แบบประมาณค่า แลตทิซ NTRU มีโครงสร้างเฉพาะ (บล็อกแบบวนรอบ) ที่ทำให้โจมตีได้ง่ายกว่าแลตทิซสุ่มเล็กน้อย ดังนั้นจึงเลือกพารามิเตอร์โดยเผื่อส่วนต่างความมั่นคงปลอดภัยเพื่อรองรับโครงสร้างนี้

ประวัติสิทธิบัตรของ NTRU

NTRU ได้รับการคุ้มครองด้วยสิทธิบัตรจำนวนมากโดย NTRU Cryptosystems Inc. (ต่อมาคือ Security Innovation) สิทธิบัตรดั้งเดิมยื่นในปี 1996 และ 1998 การคุ้มครองด้วยสิทธิบัตรนี้ขัดขวางการนำไปใช้อย่างแพร่หลายและการพัฒนาสิ่งใช้งานแบบโอเพนซอร์สเป็นเวลาถึงสองทศวรรษ สิทธิบัตรหลักของ NTRU หมดอายุประมาณปี 2017 หลังจากนั้นสิ่งใช้งานแบบเปิดก็แพร่หลาย และ NTRU ก็เข้าร่วมการแข่งขันกำหนดมาตรฐาน NIST PQC

NTRU ในการแข่งขัน NIST PQC รอบที่ 3

NTRU เป็นผู้เข้ารอบสุดท้ายในรอบที่ 3 ของการแข่งขัน NIST PQC ร่วมกับ Kyber, Classic McEliece และ SABER ในที่สุด NIST เลือก Kyber (ML-KEM) เป็นมาตรฐาน KEM หลัก โดยอ้างถึงการวิเคราะห์ความมั่นคงปลอดภัยที่ง่ายกว่าและการออกแบบที่สะอาดกว่า NTRU ไม่ได้ถูกกำหนดเป็นมาตรฐาน แต่ยังคงเป็นทางเลือกที่ใช้งานได้ และการวิเคราะห์ NTRU ก็มีส่วนช่วยให้เข้าใจความมั่นคงปลอดภัยของแลตทิซมากขึ้น

NTRUPrime: รูปแบบที่สะอาดกว่า

NTRUPrime ซึ่งพัฒนาโดย Bernstein, Chuengsatiansup, Lange และ van Vredendaal จงใจนำโครงสร้างริง X^N - 1 ออก แล้วแทนที่ด้วย X^N - X - 1 ซึ่งเป็นพหุนามดีกรีจำนวนเฉพาะ การทำเช่นนี้กำจัดจุดอ่อนที่อาจเกิดจากโครงสร้างริงแบบวัฏจักร ซึ่งนักวิเคราะห์การเข้ารหัสบางคนเชื่อว่าอาจถูกโจมตีได้ NTRUPrime ยังเป็นผู้สมัครทางเลือกของ NIST PQC ด้วย

NTRU เทียบกับโครงร่างที่อาศัย LWE

NTRU มีมาก่อนโครงร่างที่อาศัย LWE และไม่มีการลดรูปความยากในกรณีเลวร้ายที่สุดอย่างเป็นทางการเหมือนการลดรูป LWE ของ Regev อย่างไรก็ตาม NTRU สร้างกุญแจได้เร็วกว่าและมีขนาดข้อความเข้ารหัสเล็กกว่าโครงร่าง LWE หลายแบบที่มีระดับความมั่นคงปลอดภัยเทียบเท่ากัน ข้อแลกเปลี่ยนคือมีรากฐานด้านความมั่นคงปลอดภัยที่เป็นทางการน้อยกว่า โดยอาศัยประสบการณ์การวิเคราะห์การเข้ารหัสตลอดหลายทศวรรษแทนการพิสูจน์ด้วยการลดรูป

แบบทดสอบโครงสร้างกุญแจ NTRU

ใน NTRU กุญแจสาธารณะได้มาจากอะไร

สรุปบทเรียน NTRU

NTRU เป็นระบบเข้ารหัสลับบนแลตทิซรุ่นบุกเบิกที่อาศัยเลขคณิตของริงพหุนาม การสร้างกุญแจใช้พหุนามขนาดเล็ก f และ g โดยมีกุญแจสาธารณะ h = f^{-1}*g mod q การเข้ารหัสใช้การพรางแบบสุ่ม ส่วนการถอดรหัสอาศัยโครงสร้างสัมประสิทธิ์ขนาดเล็กของ f NTRU ไม่มีการลดรูปจากกรณีเลวร้ายที่สุดอย่างเป็นทางการ แต่ผ่านการวิเคราะห์การเข้ารหัสมาหลายทศวรรษ สิทธิบัตรของ NTRU หมดอายุในปี 2017 และ NTRU เป็นผู้เข้ารอบสุดท้ายของ NIST PQC รอบที่ 3

คำถามที่พบบ่อย

บทเรียน “NTRU: ประวัติ การออกแบบ และความปลอดภัย” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “NTRU: ประวัติ การออกแบบ และความปลอดภัย” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cryptology Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cryptology Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “NTRU: ประวัติ การออกแบบ และความปลอดภัย”

ศึกษาโครงสร้างริงพหุนามของ NTRU การสร้างกุญแจ และประวัติการรักษาความปลอดภัยอันยาวนาน คุณปฏิบัติ Cryptology Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cryptology Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cryptology Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “NTRU: ประวัติ การออกแบบ และความปลอดภัย” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cryptology Academy นี้ได้ไหม

ได้ บทเรียน Cryptology Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. Learning With Errors: ปัญหาที่ยากต่อการแก้
  2. NTRU: ประวัติ การออกแบบ และความปลอดภัย
  3. Ring-LWE และโครงสร้างแลตทิซแบบโมดูลาร์
  4. การพิสูจน์ความปลอดภัยและการลดรูปในโครงสร้างแลตทิซ
← กลับไปที่ Cryptology Academy