Score:1

การเปรียบเทียบความซับซ้อนของการถอดรหัส RSA ที่มี/ไม่มี CRT

ธง in

(ข้ามรายการใน math stackexchange ไม่ได้รับการตอบกลับ) สำหรับบริบท นี่เป็นคำถามการบ้านจากงานที่ส่งไปแล้ว ฉันกำลังมองหาความเข้าใจที่ดีขึ้นเกี่ยวกับแนวคิดที่เกี่ยวข้อง ส่วนใหญ่เป็นทฤษฎีความซับซ้อน เนื่องจากฉันไม่เคยเห็นมาก่อนนอกชั้นเรียนนี้ (และความรู้เดิมถูกสันนิษฐาน)

ฉันถูกขอให้ประเมินความซับซ้อนของการถอดรหัส RSA โดยมีและไม่ใช้ CRT โดยไม่ใช้ความซับซ้อนเชิงซีมโทติค ใช้แทน $c_1$ เป็นค่าคงที่สำหรับการคูณแบบแยกส่วน $c_2$ สำหรับการยกกำลังแบบโมดูลาร์ และ $c_3$ เพื่อหาผลคูณผกผัน

ความพยายามของฉัน: ให้ $s_1$ เป็นความยาวของ $p$, $s_2$ เป็นความยาวของ $คิว$, $s$ ความยาวของ $n$, และ $x$ ความยาวของ $d$. พิจารณาความซับซ้อนต่อไปนี้:

การคำนวณ ความซับซ้อน
$m_1=c^d\mod p$ $c_2s_1^2x$
$m_2=c^d\mod q$ $c_2s_2^2x$
$q^{-1}\mod p$ $c_3s_1$
$p^{-1}\mod q$ $c_3s_2$

ดังนั้นความซับซ้อนของการใช้ CRT ในการคำนวณ $m=m_1(q^{-1}\mod p)q+m_2(p^{-1}\mod q)p\mod n$ เป็น $c_1^2c_2c_3s_1^3x+c_1^2c_2c_3s_2^3x=c_1^2c_2c_3x(s_1^3+s_2^3)$.

ในขณะเดียวกันความซับซ้อนในการคำนวณ $m=c^d\mod n$ เป็น $c_2s^2x$ดังนั้นความแตกต่างคือ $c_2x(s^2-c_1^2c_3(s_1^3+s_2^3))$.

ฉันเชื่อว่าสิ่งนี้ผิดเพราะฉันไม่คิดว่ามันจริงโดยทั่วไป $s^2\geq s_1^3+s_2^3$ (CRT ควรทำให้การถอดรหัสเร็วขึ้น) และฉันไม่รู้ว่าเราสามารถตั้งสมมติฐานเกี่ยวกับค่าคงที่ได้หรือไม่

fgrieu avatar
ng flag
คำแนะนำ: โดยทั่วไปแล้ว $m_1:=c^{d_p}\bmod p$ โดยที่ $d_p=d\bmod(p-1)$ ถูกคำนวณล่วงหน้า เหมือนกันสำหรับ $m_2$ โดยทั่วไป $q_{\text{inv}}=q^{-1}\bmod p$ จะคำนวณไว้ล่วงหน้า ไม่จำเป็นต้องใช้ทั้ง $q^{-1}\bmod p$ และ $p^{-1}\bmod q$ เมื่อใช้สูตร $m:=((m_1-m_2)\,q_{\text{ inv}}\bmod p)\,q+m_2$ [รูปแบบคีย์ส่วนตัวมาตรฐาน](https://pkcs1.grieu.fr#page=41) ประกอบด้วย $d_p$, $d_q$, $q_{\text{inv}}$ ตอบคำถามตัวเองฉลาด! $a=b\bmod n$ หมายถึง $0\le
Daniel S avatar
ru flag
คุณกำลังทวีคูณค่าใช้จ่ายของด่านเมื่อคุณควรจะเพิ่มเข้าไป ตัวอย่างเช่น การคำนวณ $m_1(q^{-1}\mod p)$ มีค่าใช้จ่าย $c_2s_1^2x+c_3s_1+c_1s_1^2$ (สมมติว่าใช้วิธีคูณแบบมัธยมปลาย)
mrose avatar
in flag
@DanielS คุณหา $c_1s_1^2$ ได้อย่างไร ฉันมี $c_1^2$ สำหรับการใช้การคูณ mod สองครั้งขอบคุณสำหรับการแก้ไข ฉันได้อ่านที่ไหนสักแห่งที่ O(m)*O(n)=O(mn) และคิดว่าถูกต้อง
poncho avatar
my flag
อีกปัญหาหนึ่งคือคุณมี $m_1 = c^d \bmod p$ ที่มีความซับซ้อน $c_2 s_1^2 x$; จริง ๆ แล้ว การใช้งานจริงคำนวณ $m_1 = c^{d \bmod p-1} \bmod p$; สิ่งนี้ให้ความซับซ้อนของ $c_2 s_1^3$ ซึ่งเล็กกว่ามาก (โดยที่ $d_p = d \bmod p-1$ ถูกคำนวณล่วงหน้า ตามที่ fgrieu กล่าวถึง) การลดลงครึ่งหนึ่งที่มีประสิทธิภาพของเลขชี้กำลังส่วนตัวคือที่มาของการเพิ่มความเร็วที่ดี
mrose avatar
in flag
@poncho ดังนั้นเราจึงถือว่า $s_1
poncho avatar
my flag
ทีนี้ $s_1$ คือความยาวของ $p$ ในขณะที่ $x$ คือความยาวของ $d$ ถ้า $d$ สั้นมากจนเล็กกว่า $p$ จริง ๆ แล้ว นั่นคือจุดอ่อนที่ทราบ ดังนั้น $s_1

โพสต์คำตอบ

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