Điểm:3

Giải mã RSA bằng CRT: Nó ảnh hưởng đến độ phức tạp như thế nào?

lá cờ vn

Có một biến thể hiệu quả của RSA sử dụng CRT:

\begin{align*} d_p &= d \pmod{p-1}\ d_q &= d \pmod{p-1} \ q_{\operatorname{inv}} &= q^{-1} \pmod{p} \end{align*}

trong đó việc giải mã được thực hiện như sau:

\begin{align*} c_p &= c \pmod{p} \ c_q &= c \pmod{q} \ m_p &= c_p^{d_p} \pmod{p} \ m_q &= c_q^{d_q} \pmod{q} \ h &= q_{\operatorname{inv}}(m_p - m_q) \pmod{p} \end{align*}

Câu hỏi đầu tiên của tôi khá chung chung: Tôi sử dụng thuật toán CRT ở đâu (vì nó được viết ở đó)? Ý tôi là việc thiết lập RSA đã xác định tôi $p,q,d,c$ và vì vậy tôi không có một hệ thống đồng dư.

Câu hỏi thứ hai của tôi liên quan đến sự phức tạp. Cho rằng $\log d = \log n = B$$\log p = \log q = \frac{B}{2}$$d, d_p, d_q$ có nhiều bằng nhau $0$cát $1$S. Tôi có thể nói gì về số lượng hoạt động của kích thước $B$ của biến thể này?

Điểm:7
lá cờ my

Có một biến thể hiệu quả của RSA sử dụng CRT

Trên thực tế, theo cách chúng tôi thường sử dụng thuật ngữ, nó không phải là 'biến thể', thay vào đó, nó là một triển khai thay thế. Nghĩa là, những thay đổi duy nhất được thực hiện đối với thuật toán RSA được thực hiện với cách thực hiện thao tác riêng tư (và định dạng của khóa riêng tư); bất kỳ ai chỉ thực hiện các hoạt động công khai không cần phải biết về việc triển khai riêng tư (tạo chữ ký hoặc giải mã khóa chung) đang làm gì.

Tôi sử dụng thuật toán CRT ở đâu (như được viết ở đó)?

Bất cứ khi nào bạn muốn hiệu quả hơn một chút (4x) và không ngại phức tạp thêm một chút. Hầu hết thời gian, đây là một sự đánh đổi đáng giá.

Ý tôi là việc thiết lập RSA đã định nghĩa cho tôi p,q,d,c và vì vậy tôi không có hệ thống đồng dư.

Trên thực tế, tất cả các tham số bổ sung $d_p, d_q, qinv$ được tính toán dễ dàng trong thời gian tạo khóa, và đó là điều chúng tôi thường làm.

Cho rằng $\log d = \log n=B$$\log p = \log q = B/2$$d,d_p,d_q$ có nhiều số 0 và 1 bằng nhau. Tôi có thể nói gì về số lượng hoạt động của kích thước $B$ của biến thể này?

Trên thực tế, số lượng 0 và 1 hầu như không liên quan, chúng ta có thể thực hiện phép lũy thừa mô đun của một $B$ giá trị bit với $(1 + o(1)) \log_2 B$ bội số mô-đun (không phụ thuộc vào trọng số hamming của số mũ); trong phạm vi của B đang được xem xét, điều này có thể là $(1 + 1/6) \log_2 B$.

Với hoạt động riêng của RSA trong sách giáo khoa, điều này liên quan đến một phép lũy thừa mô-đun duy nhất của một $B$ giá trị bit bằng một $B$ số mũ bit; đây là về $(1 + 1/6) \log_2 B$ nhân lên. Nếu chúng ta sử dụng một $O(n^2)$ thuật toán nhân mô-đun (về mức tối ưu cho phạm vi B mà chúng ta đang thảo luận - có các quy trình nhân với độ phức tạp tiệm cận thấp hơn, nhưng với các hằng số tỷ lệ lớn hơn nhiều), chúng ta đang nói về $(1 + 1/6) (\log_2 B)^3$

Bây giờ, với CRT, có hai số mũ mô-đun của hai $B/2$ từng chút một $B/2$ số mũ bit (cộng với một số thao tác cả trước và sau - cả hai đều tương đối nhanh). Sử dụng logic tương tự, điều này mất khoảng $2 (1 + 1/6) (\log_2 B/2)^3 = 1/4 (1 + 1/6) (\log_2 B)$, tức là nhanh gấp khoảng 4 lần (vâng, đây là bỏ qua một số yếu tố nhỏ); tuy nhiên, ngay cả khi chúng tôi tính đến những yếu tố nhỏ đó, CRT vẫn đáng kể nhanh hơn

Đă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.