Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

รากฐานพื้นฐาน (Primitive Root) ของจำนวนคืออะไร ในความปลอดภัยเครือข่าย?

Primitive Root (รากฐานพื้นฐาน) ในทฤษฎีจำนวนและקריפโตกราฟี

Primitive Root modulo n (รากฐานพื้นฐานโมดולอ n) คือจำนวนเต็ม g ที่มีคุณสมบัติว่า: ยกกำลังของ g (g1, g2, ..., gφ(n)) จะได้ผลลัพธ์ครบทุกจำนวนที่ควรต้นกับ n (coprime) ภายใต้ modulo n ทุกค่าโดยไม่ซ้ำกัน

นิยามทางคณิตศาสตร์อย่างเป็นทางการ

ให้ n เป็นจำนวนเต็มบวก และ φ(n) เป็นฟังก์ชันออยเลอร์ (Euler's Totient Function) จำนวนเต็ม g เรียกว่า Primitive Root modulo n ก็ต่อเมื่อ:

  • gcd(g, n) = 1 (g และ n ควรต้นกัน)
  • ออเดอร์ของ g modulo n เท่ากับ φ(n) กล่าวคือ gφ(n) ≡ 1 (mod n) และไม่มี k < φ(n) ใดทำให้ gk ≡ 1 (mod n)

ตัวอย่าง Primitive Root

Modulo (n)φ(n)Primitive Roots
322
542, 3
763, 5
11102, 6, 7, 8
13122, 6, 7, 11
17163, 5, 6, 7, 10, 11, 12, 14
23225, 7, 10, 11, 14, 15, 17, 19, 20, 21
29282, 3, 8, 10, 11, 14, 15, 18, 19, 21, 26, 27
31303, 11, 12, 13, 17, 21, 22, 24

วิธีหา Primitive Root

  1. คำนวณ φ(n) (ถ้า n เป็นเฉพาะ φ(n) = n-1)
  2. แยกตัวประกอบเฉพาะของ φ(n) ได้ p1, p2, ..., pk
  3. ทดสอบจำนวน g = 2, 3, 4, ... จนกว่าจะเจอ โดยตรวจสอบว่า:
g^(φ(n)/p_i) ≢ 1 (mod n)  สำหรับทุก i = 1..k

ถ้าผ่านทุกเงื่อนไข g นั้นคือ Primitive Root

ความสำคัญใน Cryptography (การเข้ารหัส)

  • Diffie-Hellman Key Exchange: ใช้ Primitive Root ของจำนวนเฉพาะใหญ่ (p) เป็นฐาน (generator) สำหรับแลกเปลี่ยนกุญแจ
  • ElGamal Encryption: ใช้ Primitive Root ในการเข้ารหัสแบบ Public Key
  • DSA (Digital Signature Algorithm): ต้องการ Primitive Root สำหรับการสร้างลายเซ็นดิจิทัล
  • SSL/TLS: ใช้ในกลไก Key Exchange บางรูปแบบ (DHE cipher suites)

ข้อสังเกต

  • Primitive Root มีอยู่ก็ต่อเมื่อ n = 1, 2, 4, pk, 2pk โดยที่ p เป็นจำนวนเฉพาะคี่
  • สำหรับจำนวนเฉพาะ p จะมี Primitive Root ทั้งหมด φ(p-1) ตัว
  • ในทางปฏิบัติ ใช้ Safe Prime (p = 2q+1 โดย q เป็นเฉพาะ) เพื่อให้ได้ subgroup ขนาดใหญ่และปลอดภัย