Tốt
Phương pháp trong câu hỏi dẫn đến một hệ thống chữ ký luôn xác minh thành công thông điệp mà nó ký; và có sự kết hợp của các lược đồ mã hóa bất đối xứng và hàm băm trong đó hệ thống chữ ký đó đáp ứng Tài sản bảo mật EUF-CMA, bao gồm:
- RSAES-OAEP gần như thông lệ và hàm băm mật mã tiêu chuẩn như SHA-256. Tuy nhiên, cần có hai điều chỉnh đối với phần RSA:
Lựa chọn $e$ ngẫu nhiên và có kích thước bit lớn (bằng một nửa kích thước bit của $n$ có vẻ ổn) chứ không phải $e=65537$ như phổ biến (hoặc giá trị khác thấp hơn có thể đoán được hoặc ngẫu nhiên nhưng quá thấp để bảo mật¹ của phương thức của câu hỏi)
Thể hiện khóa giải mã $K_{dec}$ như $(n,d)$ thay vì như thường lệ $(n,e,d,p,q,d_p,d_q,q_\text{Inv})$, được sử dụng bởi các triển khai tiêu chuẩn quan tâm đến hiệu suất.
Cả hai thay đổi đều cần thiết để giữ $e$ của $K_{enc}=(n,e)$ bí mật khi chúng tôi thực hiện $K_{dec}=(n,d)$ public, như trong câu hỏi.
- Mã hóa RSA như trong bài báo gốc ngoại trừ với $n$ đủ lớn để chống lại các phương pháp nhân tố hiện đại² và hàm băm lớn hơn đáng kể so với ở trên để chống lại Desmedt và Odlyzko tấn công.
Những người xấu
Phương pháp này không an toàn khi áp dụng cho hầu hết các hệ thống mật mã bất đối xứng
quan sát rằng $K_{dec}$ phải được công khai vì đó là khóa xác minh và $K_{enc}$ phải được giữ bí mật vì nó là khóa ký. Do đó, mối quan hệ giữa hai khóa phải sao cho chúng ta có thể làm $K_{dec}$ công khai đồng thời giữ bí mật $K_{enc}$. RSA là họ lược đồ mã hóa duy nhất mà tôi biết rõ có thể có thuộc tính đó (và như đã giải thích ở trên, các triển khai thực tế của nó thì không).
Đối với nhiều hệ thống mã hóa bất đối xứng, thuộc tính không thể được áp dụng. Ví dụ, trong ElGamal và nó là hậu duệ hiện đại ECIES, $K_{dec}$ là một số nguyên mã hóa cách tiếp cận phần tử nhóm $K_{enc}$ bằng cách áp dụng luật nhóm nội bộ cho một phần tử nhóm công chúng nhất định; do đó tiết lộ $K_{dec}$ không thể tránh khỏi tiết lộ $K_{enc}$, phá vỡ tính bảo mật của cấu trúc câu hỏi.
Tổng quát hơn, việc sử dụng hệ thống mã hóa bất đối xứng an toàn và hàm băm an toàn không phải là dấu hiệu tốt cho thấy hệ thống chữ ký thu được bằng phương pháp của câu hỏi là an toàn, vì nhiều lý do.
Khi chúng tôi xem xét bảo mật triển khai, có một vấn đề nữa: việc triển khai $\texttt{mã hóa}$ không cần bảo vệ chống rò rỉ kênh bên của đầu vào chính của nó, vì nó thường công khai. Tuy nhiên, sự bảo vệ như vậy là cần thiết cho hệ thống chữ ký của câu hỏi.
Phương pháp này có xu hướng xây dựng các lược đồ chữ ký với các đặc điểm không đạt tiêu chuẩn
So sánh chữ ký RSA (bao gồm cả phương pháp của câu hỏi) với EdDSA ở mức bảo mật tiêu chuẩn:
- Chữ ký khá lớn (256 byte so với 64 byte)
- Khóa công khai lớn (điển hình là 260 byte so với 32 byte)
- Tạo chữ ký chậm (chậm hơn hàng chục lần)
- Quá trình tạo khóa rất chậm (chậm hơn hàng trăm lần).
Và phương pháp này không hoàn toàn giống như những gì được sử dụng để tạo chữ ký RSA, ngay cả người anh em họ thân thiết RSA-FDH. Điều đó sử dụng chức năng khóa riêng RSA trong sách giáo khoa $h\mapsto s=h^d$ để ký một hàm băm rộng $h=H(M)$; và chức năng khóa công khai RSA trong sách giáo khoa $s\mapsto h=s^e\bmod n$ sau đó là một so sánh $h\overset?=H(M)$ trong xác minh. Trái ngược với phương pháp của câu hỏi, khóa công khai $(n,e)$ vẫn là công khai và khóa riêng $(n,e,d,p,q,d_p,d_q,q_\text{Inv})$ vẫn còn bí mật. So với điều đó, hoặc RSASSA-PKCS1-v1_5 hoặc RSASSA-PSS, phương thức chữ ký của câu hỏi:
- Dấu hiệu chậm hơn gần bốn lần, vì nó không thể sử dụng $(n,e,d,p,q,d_p,d_q,q_\text{Inv})$ hình thức cho $K_{dec}$
- Xác minh chậm hơn hàng trăm đến hàng nghìn lần, vì nó không thể sử dụng một $e$.
¹ Với $n$ đã biết, nếu một trong $e$ hoặc $d$ được biết đến và ít hơn $n^{0,292}$, thì cái kia có thể được tìm thấy, xem Boneh và Durfee. Do đó, giới hạn thông thường của 256-bit $e$ (ví dụ: được tích hợp vào phương pháp tạo khóa của FIPS 186-4) là như vậy mà tiết lộ $d$ cho phép tìm $e$.
² Khuyến nghị ban đầu âđiều đó $d$ nên được chọn từ một tập hợp đủ lớn để nhà giải mã không thể tìm thấy nó bằng cách tìm kiếm trực tiếpsau đó tính toán $e$ từ $d$ là không đủ, và cho phép Wiener's tấn công, sau đó được cải thiện bởi Boneh và Durfee. Nhưng giữ $d$ bí mật và làm $e$ public vì phương pháp của câu hỏi yêu cầu khắc phục sự cố đó.