อย่างไรก็ตาม ใครช่วยอธิบายให้ฉันฟังด้วยคำง่ายๆ ว่าทำไมเราถึงต้องการ G จำนวนมากในบริบทนี้ และมันจะมีส่วนช่วยให้ g^ab ปลอดภัยมากขึ้นได้อย่างไร
ความเป็นมา (ซึ่งคุณอาจทราบอยู่แล้ว) กับ El Gamal ข้อความไซเฟอร์คือคู่ $g^r, h^r \cdot m$ (ที่ไหน $h$ เป็นกุญแจสาธารณะและ $r$ เป็นค่าสุ่ม); ถ้าเราสามารถหาค่าอะไรได้ $r$ คือเราสามารถกู้คืนได้ $m$ (เพราะถือว่าเรารู้ค่า $h$).
ดังนั้น สิ่งหนึ่งที่เราต้องแน่ใจก็คือ ให้คุณค่า $g^r$เราไม่สามารถสรุปอะไรได้ $r$ เป็น; สิ่งนี้เรียกว่า "ปัญหาลอการิทึมไม่ต่อเนื่อง"
ด้วยเหตุนี้ นี่คือบางส่วนของคณิตศาสตร์เบื้องหลัง:
เรากำหนดให้ "ลำดับของ G" เป็นค่าที่น้อยที่สุด $k > 0$ ซึ่ง $G^k = 1$. สิ่งนี้น่าสนใจเพราะ $G^r$ รับได้อย่างเดียว $k$ ค่าที่แตกต่างกัน $G^1, G^2, ..., G^{k-1}, G^k = 1$. ถ้าเราไปต่อก็จะจบลงที่การทำซ้ำโดยเริ่มที่ $ก^1$และนั่นก็ไม่ได้ช่วยอะไรเราเลย
ถ้ามีแค่ $k$ ค่าต่างๆของ $r$ ที่ให้คุณค่าต่างๆแก่เรา $G^r$แล้วถ้า $k$ มีขนาดเล็ก สิ่งที่ผู้โจมตีทำได้คือพยายามทั้งหมด $k$ ค่าต่างๆของ $r$ และดูว่าใช้งานได้หรือไม่ หากเขาสามารถทำเช่นนั้นได้ เขาสามารถกู้คืนค่าที่ถูกต้องของ $r$ [1]. ที่จริงแล้ว ปรากฎว่าหากผู้โจมตีใช้เพียงแค่ความฉลาด เขาสามารถทำการค้นหานี้โดยใช้ about $\sqrt{k}$ คูณ; ดังนั้นหากเราต้องการให้แน่ใจว่าผู้โจมตีจะต้องดำเนินการ $2^{128}$ ปฏิบัติการเพื่อโจมตีระบบ (ซึ่งเป็นมาตรฐานปัจจุบันที่ "เกินกำลังความสามารถ") แล้วเราต้องการ $k$ อย่างน้อย $2^{256}$.
และปรากฎว่ามีข้อสังเกตอีกอย่างที่ต้องทำ: ถ้า $k$ เป็นส่วนประกอบและมีตัวประกอบเฉพาะ $s$ผู้โจมตีสามารถคำนวณได้ $r \bmod s$ กับ $\sqrt{s}$ การดำเนินการ (โดยใช้ความฉลาดแบบเดียวกัน); สิ่งนี้จะลดความแข็งแกร่งของเช่น $G$.
การใช้ p = 2q+1 แสดงว่าลำดับของ G คือ 2 และ q และ "บางครั้ง g ถูกเลือกเพื่อสร้างกลุ่มย่อยลำดับ q ของ G แทนที่จะเป็น G ดังนั้นสัญลักษณ์เลเจนเดรของ g^a จะไม่เปิดเผยค่าต่ำสุด สั่งซื้อบิตของ
สิ่งนี้พูดถึงวิธีการทั่วไปในการจัดการกับการโจมตีข้างต้น (ไม่ใช่วิธีเดียว ใจ)
ปรากฎว่าถ้า $p = 2q+1$ นายกที่ไหน $คิว$ เป็นจำนวนเฉพาะเช่นกัน และถ้า $p \mod 8 = 7$ (สิ่งที่วิกิพีเดียลืมพูดถึง) แล้วค่า $g=2$ มีระเบียบเสมอ $คิว$; นั่นคือนายกขนาดใหญ่ มีอะไรพิเศษเกี่ยวกับ 2? มันทำให้การคำนวณการยกกำลังง่ายขึ้นเล็กน้อย (เนื่องจากการคูณด้วย 2 โมดูโล p นั้นค่อนข้างถูก)
และเมื่อพูดถึงสัญลักษณ์เลเจนเดรก็เผยให้เห็นอะไรบางอย่าง $g^a$นั่นเป็นวิธีการค้นหาที่มีจุดประสงค์พิเศษ $a \bmod 2$; โดยพื้นฐานแล้วมันเป็นวิธีการเดียวกับที่ฉันอ้างถึงข้างต้นในการกู้คืน $a \bmod s$ สำหรับ $s=2$; มันใช้งานได้เฉพาะในกรณีที่คำสั่งของ $g$ มี 2 เป็นตัวประกอบ เพราะเราเลือกก $g$ ที่มีคำสั่งแปลกๆ $คิว$มันใช้งานไม่ได้
[1]: คุณอาจถามว่า: แม้ว่า $G^r$ เหมือนกันเลย จะว่าอย่างนั้นก็ไม่ได้ $H^r$ รับค่าที่แตกต่างกัน? กลายเป็นว่าไม่ สิ่งนั้นไม่สามารถเกิดขึ้นได้ - ถ้าเราพบค่าใดๆ $r$ นั่นทำให้เขามีค่าสังเกตของ $G^r$เขาสามารถใช้สิ่งนั้นเพื่อถอดรหัส