Điểm:0

Bảo mật RSA khi sử dụng tin nhắn ngắn

lá cờ cn

Chúng tôi biết rằng một tin nhắn ngắn được mã hóa bằng RSA có thể dễ dàng bị cưỡng bức.

Giả sử Bob mã hóa một tin nhắn chỉ chứa "Xin chào" và mã hóa nó bằng khóa công khai của Alice. Bất kỳ ai cũng có thể thử mã hóa tất cả các kết hợp có thể có của các thông điệp rất ngắn bằng khóa công khai của Alice cho đến khi họ nhận được kết quả phù hợp.

Điều tôi đang thắc mắc là danh tính của một tin nhắn rất ngắn có thể bị giả mạo bằng cách nào đó không?

Giả sử Bob mã hóa nhiều tin nhắn một và hai ký tự bằng khóa riêng của mình. Kẻ tấn công bằng cách nào đó có thể giả mạo một Mới tin nhắn một hoặc hai ký tự để có vẻ như nó đến từ Bob?

Tất nhiên, trong những trường hợp này, chúng ta đang nói về việc không có phần đệm nào được thêm vào hoặc bất kỳ thay đổi nào khác.

Marc Ilunga avatar
lá cờ tr
Chào mừng đến với Crypto.SE! Nói chung, RSA trong sách giáo khoa dễ uốn nắn do bản chất của số học mô-đun. tức là Với mã hóa của $m$ và $m'$ ($c$ và $c'$), chúng ta có thể nhận được mã hóa của $mm'$ là $c*c'$. Ngoài lưu ý rằng RSA là một hệ thống khóa công khai, người ta thường cho rằng khóa chung được mọi người biết đến.
Peter2223 avatar
lá cờ cn
Vì vậy, nếu tôi hiểu chính xác, nếu Bob trước đó đã gửi tin nhắn "a" và "b" thì kẻ tấn công có thể giả mạo thành công tin nhắn "ab"? Còn một tin nhắn hoàn toàn mới chẳng hạn như "c" thì sao?
Marc Ilunga avatar
lá cờ tr
Lưu ý ở đây rằng $ab$ đề cập đến phép nhân chứ không phải phép nối. Tuy nhiên, với mức mã hóa $2$, có thể thực hiện dịch chuyển bit và tạo các bản mã mới bằng cách nối. Đối với một thông báo hoàn toàn mới, hãy lưu ý một lần nữa rằng khóa công khai có thể được cấp cho tất cả mọi người chứ không chỉ Bob. Do đó, thực sự không cần thao tác thông minh. Kẻ tấn công chỉ có thể mã hóa cho chính họ.
Peter2223 avatar
lá cờ cn
Tôi đang nói về một tin nhắn hoàn toàn mới được mã hóa bằng **khóa riêng** của Bob. Một tin nhắn được mã hóa bằng khóa riêng của anh ấy sẽ xác nhận danh tính của anh ấy. Có thể giả mạo một tin nhắn mới để có vẻ như nó đến từ một khóa **riêng tư**.
Marc Ilunga avatar
lá cờ tr
Ồ, tôi đã nhầm khi sử dụng khóa riêng để mã hóa. Đây không phải là thực hành tiêu chuẩn thực sự. Công cụ thích hợp sẽ là chữ ký điện tử (không giống như mã hóa bằng khóa bí mật). Dù sao đi nữa, một số giả mạo sẽ sử dụng các thủ thuật tương tự như đã viết trước đây. Hãy xem câu trả lời này https://crypto.stackexchange.com/questions/20085/which-attacks-are-possible-against-raw-textbook-rsa
Điểm:1
lá cờ ng

Chúng tôi biết rằng một tin nhắn ngắn được mã hóa bằng RSA có thể dễ dàng bị cưỡng bức.

Một tin nhắn ngắn được mã hóa bằng RSA sách giáo khoa có thể dễ dàng bị cưỡng bức. Vấn đề là không phải rằng tin nhắn là ngắn. Một thông báo dài hơn nhiều được chọn trong một tập hợp nhỏ (chẳng hạn như danh tính của một người trong danh sách lớp công khai) cũng có thể bị cưỡng bức bằng kỹ thuật tương tự. Vấn đề là tin nhắn entropy thấp kết hợp với việc sử dụng mã hóa RSA sách giáo khoa (không có phần đệm ngẫu nhiên).

Bob mã hóa (..) tin nhắn bằng khóa riêng của mình.

Thuật ngữ "mã hóa" đó là sai khi áp dụng phép biến đổi $m\mapsto f(m)=m^d\bmod n$ ở đâu $(n,d)$ là khóa riêng RSA của Bob. Cái đó không phải là mã hóa, vì thuật ngữ đó chỉ định việc chuyển đổi một thông báo để làm cho đối thủ không thể hiểu được thông báo đó và tại đây, bất kỳ ai cũng có thể hoàn tác việc chuyển đổi bằng cách sử dụng công khai $(n,e)$. Thuật ngữ "mã hóa" phải được thay đổi thành "biến đổi" hoặc "dấu hiệu". Kết quả $f(m)$ của hoạt động đó là chữ ký RSA trong sách giáo khoa của tin nhắn $m$ bằng khóa riêng của Bob.

Kẻ tấn công bằng cách nào đó có thể giả mạo một hoặc hai ký tự tin nhắn mới để có vẻ như nó đến từ Bob?

Đúng. Công cụ cơ bản được sử dụng là tính chất nhân của hàm $f$: cho tất cả $m_1,m_2$ nó giữ $f(m_1\cdot m_2\bmod n)\ =\ f(m_1)\cdot f(m_2)\bmod n$. Do đó, một kẻ thù biết chữ ký RSA trong sách giáo khoa của các tin nhắn $m_1$$m_2$ có thể tìm thấy chữ ký RSA trong sách giáo khoa của tin nhắn $m_1\cdot m_2\bmod n$, hoặc ${m_1}^i\cdot{m_2}^j\bmod n$ cho bất kỳ cặp số nguyên nào $i,j$.

Đối với các thông điệp bị ràng buộc để có một ý nghĩa, một khả năng là có $m_1\cdot m_2=m_3\cdot m_4$ cho phép tính toán chữ ký RSA trong sách giáo khoa của $m_4$ từ đó $m_1$, $m_2$$m_3$, như $f(m_4)\ =\ f(m_1)\cdot f(m_2)\cdot f(m_3)^{-1}\bmod n$.

Peter2223 avatar
lá cờ cn
Cảm ơn vì câu trả lời! Như tôi đã hiểu, kẻ tấn công không thể giả mạo một thông báo mới đã ký bao gồm các yếu tố chưa được ký trước đó? Ví dụ: nếu tin nhắn chỉ chứa chữ cái "c" trong trường hợp này không bao giờ được truyền đi, nhưng các chữ cái khác thì có, kẻ tấn công không thể giả mạo chữ ký cho nó?
fgrieu avatar
lá cờ ng
@Peter2223: uh, không. Xin lỗi, tôi đã sử dụng ký hiệu phổ biến rằng $u\,v$ là tích của $u$ và $v$, và bạn đã hiểu phép nối (thường được ghi là $u\mathbin\|v$ ). Bây giờ tôi đổi thành $u\cdot v$ để rõ ràng hơn chúng ta nhân lên. Ý tôi là nếu thông báo được ký mã hóa thành số nguyên $m_1=7$ và $m_2=8$, thì đối thủ có thể tìm thấy chữ ký của thông báo mã hóa thành số nguyên $7\cdot8=56$ (và cả $7\cdot7 \cdot7\cdot8\cdot8=21952$). Điều này khó khăn hơn với những thông điệp có ý nghĩa, nhưng thủ thuật đó có thể rút ra được.
Peter2223 avatar
lá cờ cn
Vâng, tôi không đến chủ đề này với nhiều kiến ​​thức về mã hóa. Tôi đang tạo một chương trình cần kiểm tra "danh tính" của tệp được gửi. Tôi đã tìm cách băm tệp và sau đó ký tên bằng rsa thô. Nhưng sha-256 chỉ có 64 ký tự và tôi đọc rằng rsa không an toàn lắm với các tin nhắn ngắn không có phần đệm ngẫu nhiên. Vì máy nhận không thể chia sẻ thuật toán ngẫu nhiên nên tôi không thể thêm phần đệm ngẫu nhiên và việc thêm phần đệm được xác định trước nghe có vẻ không hiệu quả lắm. Sha-256 được ký với rsa 2048 thô sẽ an toàn đến mức nào?
fgrieu avatar
lá cờ ng
@Peter2223: tôi tin rằng điều đó nằm ở phía không an toàn của giới hạn mà cuộc tấn công Desmedt và Odlyzko có thể áp dụng (có một [câu hỏi](https://crypto.stackexchange.com/q/51680/555) về cuộc tấn công đó ). Ứng dụng của bạn yêu cầu chữ ký, với một số phần đệm chữ ký được cân nhắc kỹ lưỡng. Bởi vì tôi không hiểu "không thể chia sẻ thuật toán ngẫu nhiên" nghĩa là gì nên tôi không thể biết RSASSA-PSS (đệm chữ ký ngẫu nhiên), RSASSA-PKCS1-v1_5 (đệm chữ ký xác định, thiếu bằng chứng bảo mật) hay ISO/ Sơ đồ 2 hoặc 3 của IEC 9796-3 sẽ là phù hợp.

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