Score:1

RSA key generation: why use lcm(p-1, q-1) instead of the totient ϕ(n)?

ธง jm

As far as I can see, generating a private key from two prime numbers p and q, having calculated n = pq, starts with calculating λ(n) = lcm(p-1, q-1). This is the detailed explanation given in the wikipedia article for RSA, it's also the implementation I've found in most Python cryptography libraries, and, searching through the openssl source code, it's also how they seem to do it, so I'd say this looks like the standard.

So my question is, why do some implementations appear to use ϕ(n) instead, which is simply (p-1)(q-1)? I understand that you can calculate λ(n) = ϕ(n) / gcd(p-1, q-1), so I suppose these two can be equal if p-1 and q-1 are coprime, but what's with the two different implementations?

This way to generate the "private modulo" is used for example in the somewhat popular python program rsatool, it's also mentioned in this popular article detailing how RSA keys are generated, but my problem is, taking the two same prime numbers p and q, these two methods will not generate the same private key, so assuming the former is the proper, standard way, where did this other one come from?

kelalaka avatar
in flag
คุณสามารถมี [มากกว่าหนึ่งคีย์ส่วนตัวสำหรับ RSA](https://crypto.stackexchange.com/q/87583/18298) และ $\lambda$ จะให้ $d$ ที่เล็กที่สุดเสมอตั้งแต่ $\lambda(n)| \phi(n)$ ตามนิยาม เล็กที่สุด = การคำนวณน้อย
fgrieu avatar
ng flag
@kelalaka: เป็นที่น่าสงสัยว่า "การคำนวณน้อยลง" เป็นเหตุผลที่แท้จริง เมื่อประสิทธิภาพมีความสำคัญ $d$ จะไม่ถูกใช้เลย และเมื่อใช้ $d$ ฉันคิดว่าความแตกต่างโดยเฉลี่ยคือ
kelalaka avatar
in flag
ใช่ เล็กมาก และยังสามารถสร้างความได้เปรียบในเวลาเพียงเล็กน้อย เดิมพันของคุณเป็นสิ่งที่ดี
dave_thompson_085 avatar
cn flag
หลอกลวง https://crypto.stackexchange.com/questions/1789 https://crypto.stackexchange.com/questions/12710 https://crypto.stackexchange.com/questions/29591 https://crypto.stackexchange.com/ questions/33676/ https://crypto.stackexchange.com/questions/54280/ https://crypto.stackexchange.com/questions/68873/ https://crypto.stackexchange.com/questions/70624/ และปัญหาด้านข้าง หรือแสดงความคิดเห็นอีกมากมาย หมายเหตุสำหรับ RSA p และ q ต้องเป็นเลขคี่ ดังนั้น p-1,q-1 จึงไม่สามารถเป็น coprime และ lambda ไม่สามารถเท่ากับ phi
Score:3
ธง jm

ดังนั้นหลังจากการค้นหา ปรากฎว่าเวอร์ชันที่ 2 เป็นเวอร์ชันที่ให้ไว้ในกระดาษ RSA ต้นฉบับ "วิธีการรับลายเซ็นดิจิทัลและระบบการเข้ารหัสคีย์สาธารณะ"

ฉันถือว่าวิธีที่ 1 เป็นเพียงมาตรฐานตั้งแต่นั้นมา ตามที่แสดงความคิดเห็นไว้ $\แลมบ์ดา(n)$ จะเล็กกว่าหรือเท่ากับเสมอ $\phi(n)$. ใน RSA ดังที่ Dave Thompsons ชี้ให้เห็น $\lambda(n) \neq \phi(n)$. $\แลมบ์ดา(n)$ อาจนำไปสู่การคำนวณที่เร็วขึ้น (?) แต่สิ่งที่ฉันสนใจคือแหล่งที่มาของเวอร์ชันที่ 2 และมาจากเอกสาร RSA ดั้งเดิม

fgrieu avatar
ng flag
ใช่ เวอร์ชันที่สองของคุณ (ที่มี $\varphi$ หรือ $\Phi$ หรือ $\phi$) คือการเผยแพร่ครั้งแรกตามลำดับเวลา สังเกตส่วนย่อยอื่นๆ (ที่มี $\lambda$) แยกย่อยเป็น $e\,d\equiv1\pmod{\lambda(n)}$ ด้วย $0

โพสต์คำตอบ

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