Điểm:6

RSA với số mũ là một yếu tố của mô đun

lá cờ in

Cuối tuần này, tôi đã tham gia CTF, nhưng gặp phải một nhiệm vụ mà tôi không thể giải quyết. Tôi không thể tìm thấy bất kỳ bài viết nào vì vậy tôi hy vọng bạn có thể giúp tôi.

Được cho: $$ n = pq\ c_1\cong m_1^{\hspace{.3em}p} \mod n\ c_2\cong m_2^{\hspace{.3em}q} \mod n $$ Biết các giá trị của $c_1,c_2,n$ và đó $p$ là 1024 bit và $q$ là 1000 bit, với $p,q$ là thủ tướng. Có cách nào hiệu quả để phục hồi $m_1,m_2$?

Tôi biết rằng nếu tôi có thể phục hồi $p,q$ nó tầm thường do định lý Fermat, nhưng một lần nữa, vấn đề đó lại là thứ khiến RSAP trở nên khó khăn.

Thông tin duy nhất khác được đưa ra là cả hai $m_1,m_2$ là 25 byte (200 bit). Không có dịch vụ nào có thể hoạt động như một lời tiên tri.

Maarten Bodewes avatar
lá cờ in
Xin lưu ý rằng với tư cách là một CTF, chúng tôi nên coi đây là một nhiệm vụ và chỉ cung cấp các gợi ý, tốt nhất là trong các nhận xét.
lá cờ in
CTF đã kết thúc, vì vậy tôi sẽ không coi đó là một nhiệm vụ. Nhưng gợi ý cũng được chào đón nhiều hơn.
Điểm:5
lá cờ pe

Ý tưởng chính ở đây là $m_1$ (hoặc $m_2$) là rất nhỏ so với mô đun. Điều này cho phép chúng tôi áp dụng các kỹ thuật Coppersmith thông thường.

Chúng ta biết rằng $c_1 = m_1^p \bmod n$, đòi hỏi $c_1 \equiv m_1 \bmod p$. Từ đó chúng ta biết rằng $c_1 - m_1 = t\cdot p$, đối với một số $t$. Nói cách khác, $\gcd(c_1 - x, n) = p \ge n^{1/2}$ cho một số $x = m_1 \le n^{1/4}$. Ở đây mong đợi của chúng tôi $x = m_1$ nhỏ hơn nhiều so với $n^{1/4}$, trên thực tế, điều này làm cho mọi thứ dễ tính toán hơn.

Điều này có thể dễ dàng tái tạo trong Sage:

hiền nhân: p = random_prime(2^1024, lbbound=2^1023+2^1022)                                                                                                          
hiền nhân: q = random_prime(2^1000, lbbound=2^999+2^998)                                                                                                            
hiền nhân: n = p*q                                                                                                                                                 
Hiền nhân:                                                                                                                                                         
hiền triết: m1 = randint(0, 2^200)                                                                                                                                  
hiền triết: m2 = randint(0, 2^200)                                                                                                                                  
hiền nhân: c1 = power_mod(m1, p, n)                                                                                                                                
hiền nhân: c2 = power_mod(m2, q, n)                                                                                                                                
Hiền nhân:                                                                                                                                                         
hiền triết: P.<x> = Zmod(n)[]                                                                                                                                       
hiền triết: f = (c1 - x).monic()                                                                                                                                    
nhà hiền triết: f.small_roots(beta=0.5)                                                                                                                                 
[1106883791702122199703869965196585780508362129433642126297878]
hiền triết: m1                                                                                                                                                      
1106883791702122199703869965196585780508362129433642126297878

phục hồi $m_2$ có thể được thực hiện theo cách tương tự hoặc bằng cách khôi phục các yếu tố một lần $m_1$ được phục hồi―$p = \gcd(c_1 - m_1, n)$âvà giải mã $m_2$ thông thường.

Hagen von Eitzen avatar
lá cờ rw
Tôi không thấy từ tuyên bố vấn đề tại sao $m_1$, $m_2$ được cho là nhỏ?
AJM avatar
lá cờ in
AJM
@HagenvonEitzen Trong một nhận xét về câu trả lời khác, OP viết: *"Thông tin duy nhất khác được đưa ra là cả m_1, m_2 đều là 25 byte và tất nhiên p, q là số nguyên tố. Không có dịch vụ nào có thể hoạt động như một lời tiên tri. "* Vì đây không phải là một câu hỏi nên tôi đoán người trả lời đã xem nhận xét đó hoặc đã gặp loại bài tập CTF này ở nơi khác.
lá cờ pe
Đúng, tôi đã xem bình luận. Có thể cho rằng đây cũng là loại giả định mà bạn thường đoán/thử trên CTF.
Điểm:1
lá cờ my

Tôi không tin rằng, như đã nói, vấn đề đó có thể giải quyết được; trong cuộc thi CTF, có thể đã có một số thông tin bổ sung hoặc giá trị chính xác được cung cấp cho $n, c_1, c_2$ có thể đã bao gồm một số điểm yếu.

Tôi tin rằng lược đồ Clifford Cox [1] (trong đó bản mã được $m^n \bmod n$ được cho là an toàn cho $n$ thừa số bí mật); nếu bạn có thể giải quyết vấn đề trên để tạo $n, c_1, c_2$, đây là cách phá vỡ sơ đồ đó:

  • Được cho $c, n$, gọi Oracle với $c_1 = c$, và $c_2$ Bất kỳ; điều đó mang lại cho bạn một giá trị $m_1$

  • Sau đó, gọi lại Oracle với $c_2 = m_1$$c_1$ Bất kỳ; giá trị $m_2$ trả về sẽ là giải mã mã hóa Cox, tức là giá trị $m$ với $m^n \equiv c$.

[1] hoặc Gà trống; Tôi đã thấy cả hai cách viết ...

lá cờ in
Thông tin duy nhất khác được đưa ra là cả $m_1,m_2$ đều là 25 byte và do đó $p,q$ là số nguyên tố. Không có dịch vụ nào có thể hoạt động như một lời tiên tri.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.