Score:1

ใช้ ElGamal แทน RSA ใน FDH

ธง bd

ใน RSA-FDH เพื่อเซ็นข้อความ $m$เราใช้ฟังก์ชันแฮช $H$ จากนั้น "ถอดรหัส" โดยใช้คีย์ส่วนตัว $d$, ดังนั้น $Sign(m) = H(m)^d \mod N =: \sigma$ จากนั้นเพื่อตรวจสอบ เราใช้รหัสสาธารณะ ส่งผลให้ $H(m) = \sigma^e \mod N$ ถ้าทุกอย่างเป็นไปด้วยดี

เหตุใดเราจึงต้องใช้ RSA สำหรับสิ่งนี้แทนสิ่งอื่น เช่น ElGamal เป็นเพราะข้อความเข้ารหัสใน ElGamal ยาวเป็นสองเท่าของข้อความธรรมดา หรือมีการปลอมแปลงของฝ่ายตรงข้ามซึ่งไม่สามารถทำได้เมื่อใช้ RSA-FDH หรือไม่

kelalaka avatar
in flag
คุณไม่ควรใช้การถอดรหัสคำในการเซ็นชื่อและการเข้ารหัสเพื่อการตรวจสอบ เป็นแนวคิดที่แตกต่างอย่างสิ้นเชิงซึ่งมีความเกี่ยวข้องเพียงเล็กน้อยกับ RSA!
Score:4
ธง vu

สิ่งนี้ถูกย้ำหลายครั้งก่อนหน้านี้ในชุมชนนี้

ลายเซ็นดิจิทัลคือ ไม่ เข้ารหัสด้วยคีย์ส่วนตัว RSA เป็น bijection เดียวที่เรารู้ว่าทั้งการดำเนินการสาธารณะและส่วนตัวเป็นโมดูโลยกกำลังเป็นโมดูลัสสาธารณะ

คีย์สาธารณะและคีย์ส่วนตัวใน ElGamal ทำหน้าที่ต่างกัน: คีย์ส่วนตัวเป็นเลขชี้กำลังในขณะที่คีย์สาธารณะเป็นพาวเวอร์ (และโมดูลัสเป็นพารามิเตอร์สาธารณะและแชร์)

fgrieu avatar
ng flag
แม่นยำยิ่งขึ้น: ในการลองสิ่งที่พยายาม เราต้องกำหนด $H$ ด้วยเอาต์พุตในชุดของข้อความเข้ารหัส ElGamal ทั้งหมด สิ่งนี้เป็นไปได้ แต่เนื่องจากการเข้ารหัส ElGamal เป็นแบบสุ่ม จึงไม่มีเหตุผลใดที่การเข้ารหัสลายเซ็นจะทำให้เกิดแฮชดังนั้นระบบลายเซ็นที่ถือว่าไม่มีเสียง หมายเหตุ: ย่อหน้าสุดท้ายของคำตอบปัจจุบันจะใช้ได้หากเราพยายามเข้ารหัสด้วยคีย์ส่วนตัว แต่คำถามไม่ได้: ข้อเสนอคือ _«⦠จากนั้น "ถอดรหัส" (แฮช) โดยใช้คีย์ส่วนตัว » _ ซึ่งเป็นไปได้ใน ElGamal สำหรับแฮชที่เหมาะสม
Score:3
ธง ng

ในการลองสิ่งที่พยายาม เราต้องกำหนด $H$ พร้อมเอาต์พุตในชุดข้อความไซเฟอร์ ElGamal ทั้งหมด เป็นไปได้และฉันถือว่าสิ่งนี้ในย่อหน้าถัดไป

ตรงกันข้ามกับ RSA แบบเรียน การเข้ารหัส ElGamal ไม่ใช่ฟังก์ชัน: การเข้ารหัสข้อความธรรมดาที่กำหนดซ้ำๆ ดังนั้น เมื่อเราพยายามตรวจสอบลายเซ็นตามคำถาม จึงไม่มีเหตุผลใดที่การเข้ารหัสลายเซ็นจะให้แฮชดั้งเดิม และ (มีความเป็นไปได้สูง) การยืนยันลายเซ็นจะล้มเหลว ระบบลายเซ็นที่พิจารณาในคำถามไม่น่าเชื่อถือ


เพื่อความง่าย ให้พิจารณา ElGamal ใน โมดูโลกลุ่มคูณ $p$, ข้อสังเกต $\mathbb Z_p^*$, กับ $p$ และ $(p-1)/2$ นายกและ $G$ ดังนั้น $G^{(p-1)/2}\bmod p\,=\,p-1$:

  • รหัสส่วนตัวเป็นความลับแบบสุ่ม $x\in[0,p-1)$กุญแจสาธารณะคือ $X:=G^x\bmod p\in[1,p)$.
  • การเข้ารหัสข้อความธรรมดาโดยพลการ $M\in[1,p)$ ไป
    • สร้างความลับแบบสุ่มชั่วคราว $y\in[0,p-1)$
    • คำนวณ $Y:=G^y\bmod n$
    • คำนวณ $Z:=M\cdot X^y\bmod n$
    • เอาต์พุตไซเฟอร์เท็กซ์ $(ย,Z)$
  • ถอดรหัสไซเฟอร์เท็กซ์โดยพลการ $(Y,Z)\in[1,p)\times[1,p)$ เอาต์พุต $M':=Y^{n-1-x}\cdot Z\bmod n$.

$M'=M$ ไม่ว่า $y$. คำใบ้พิสูจน์: ทฤษฎีบทเล็กของแฟร์มาต์.

ตรงกันข้ามกับหนังสือเรียน RSA ElGamal เวอร์ชันนี้เกือบจะเป็น IND-CPAแต่ก็ไม่เชิง คำใบ้พิสูจน์: พิจารณาความสัมพันธ์ระหว่าง สัญลักษณ์เลเจนเดร ของ $\left(\frac M p\right)$, $\left(\frac X p\right)$, $\left(\frac Y p\right)$. เราเพิกเฉยต่อปัญหาเล็กน้อยต่อไปนี้

หนึ่งในความพยายามที่ง่ายที่สุดในการแก้ไขปัญหาที่เกิดขึ้นในย่อหน้าที่สองของคำตอบนี้คือการแก้ไข $y=1$, ดังนั้น $Y=G$. รูปแบบลายเซ็นของคำถามสามารถใช้แฮชได้ $H$ ด้วยเอาต์พุต $H(ม)$ ในโดเมนแบบเต็ม $[1,p)$ เช่น $$H(m):=\big(\operatorname{SHAKE256}(m,b)\bmod p-1\big)+1\text{ กับ }b=64\left\lceil\log_2(p)/64 +2\right\rceil$$ แล้ว

  • รหัสส่วนตัวและรหัสสาธารณะอยู่ในการเข้ารหัส
  • ลายเซ็นของ $m$ เป็น $\sigma:=G^{n-1-x}\cdot H(m)\bmod n$
  • ตรวจสอบการตรวจสอบ $\sigma\cdot X\bmod n=H(m)$.

อย่างน้อยที่สุด การตรวจสอบก็สำเร็จโดยไม่มีการแก้ไข ดังนั้นรูปแบบลายเซ็นนี้จึงฟังดูดี แต่ก็ไม่ปลอดภัยแม้ตามเกณฑ์ที่ง่ายที่สุด ยูเอฟ-โคอา.

ความพยายามง่ายๆ อื่น ๆ ก็ล้มเหลวเช่นกัน

  • การทำ $y$ ความลับที่เพิ่มในคีย์ส่วนตัวด้วย $Y:=G^y\bmod n$ และ $Y':=X^y\bmod n$ เพิ่มไปยังรหัสสาธารณะ
  • การทำ $y$ แฮชของข้อความ $m$
  • การทำ $Y$ แฮชของข้อความ $m$
  • เห็นได้ชัดว่า อะไรก็ตามที่ทำงานในกลุ่มตามอำเภอใจตามที่การเข้ารหัส ElGamal ใช้ และลายเซ็นเป็นองค์ประกอบกลุ่มเป็นเอาต์พุตการถอดรหัส ElGamal

แม้ว่าสิ่งนี้จะใช้ไม่ได้กับ ElGamal แต่ปัญหาอื่นเกิดขึ้นเมื่อพยายามสร้างลายเซ็นจากรูปแบบการเข้ารหัสคีย์สาธารณะทั่วไป และแฮชบนโดเมนข้อความเข้ารหัส: การถอดรหัสข้อความเข้ารหัสตามอำเภอใจอาจล้มเหลว (และใช้กับระบบที่ใช้งานได้จริงเช่น RSA-สศอ, RSAES-สศอ, RSAES-PKCS1-v1_5). นั่นเป็นคุณสมบัติที่น่าสนใจของ IND-CCA ความปลอดภัย.

ไม่มีวิธีทั่วไปในการสร้างลายเซ็นที่ปลอดภัยจากการเข้ารหัสคีย์สาธารณะที่ปลอดภัย. แม้แต่ลายเซ็น RSA-FDH ก็ยังใช้งานไม่ได้: มันสร้างลายเซ็นจากการเรียงสับเปลี่ยนทางเดียวและแฮชบนโดเมนของการเรียงสับเปลี่ยน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา