lưu ý: Tôi không phải là người viết mật mã
Tôi muốn kiểm tra xem Triển khai Chữ ký mù RSA của tôi có an toàn để sử dụng trong ứng dụng ở giai đoạn sản xuất hay không và tôi cũng có một số câu hỏi mà tôi rất biết ơn nếu được giải đáp.
Xin lỗi, nhưng khi tôi nghe những câu hỏi như thế này, có vẻ như:
Tôi không phải là bác sĩ phẫu thuật, nhưng tôi muốn thực hiện một số ca phẫu thuật tim. Tôi đã thực hiện rất nhiều nghiên cứu trong vài ngày và tôi muốn đảm bảo rằng mình hiểu những điều cơ bản trước khi bắt đầu...
Ok, tôi sẽ không điều đó tệ, nhưng nghe có vẻ hơi giống nhau (và nếu nó thực sự dành cho 'ứng dụng ở giai đoạn sản xuất', thì có lẽ cũng không còn xa nữa. Ít nhất, nếu bạn phẫu thuật tim sai, bạn sẽ biết ngay nó không hoạt động ...
Với điều đó ra khỏi ngực tôi, đây là một số câu trả lời:
Câu 1: Cách nhân $h(m)$ và $r^e \bmod n$ ? Sẽ không phải là kết quả lớn hơn $n$ ?
Trên thực tế, bạn nhân chúng modulo $n$.
Câu hỏi 2: Tôi có thể sử dụng bất kỳ thuật toán băm nào trên m như SHA-256 không?
Câu hỏi 4: Làm cách nào để triển khai sơ đồ đệm để ngăn chữ ký bị giả mạo do thuộc tính đồng hình của RSA?
Tôi đang đặt hai câu hỏi này cùng nhau vì chúng có cùng một câu trả lời. Gì $h$ cần phải không phải là SHA-256 thẳng, mà thay vào đó là SHA-256 mà bạn thực hiện hàm băm (chẳng hạn như SHA-256) và sau đó đệm kết quả, có thể sử dụng PKCS 1.5 SSA hoặc PSS (tùy thuộc vào những gì người xác minh mong đợi).
Câu hỏi 3: Máy chủ sẽ không băm hoặc đệm thư bị che khuất trước khi ký, Điều đó có đúng và an toàn không?
Trong trường hợp này, nó đúng và an toàn - nếu máy chủ đã băm hoặc đệm tin nhắn, nó sẽ làm mọi thứ rối tung lên. Hãy nhớ rằng, bạn đã thực hiện thao tác băm/đệm ở bước 4.
Mặt khác (để quay lại nhận xét ban đầu của tôi), nếu bạn cần hỏi những câu hỏi này, có thể bạn chưa sẵn sàng để tự mình thực hiện điều này...