Hash
是否有一種簡單的方法可以使教科書 RSA 足夠安全,以便可以在現實生活中使用?
我編寫了一個原始(教科書)RSA 實現(只是為了好玩),我想知道是否有一種簡單的方法可以使它足夠安全,以便可以在現實生活中使用(無需實現 OAEP+ 和 RSASSA-PSS)?是否有任何用於填充和生成安全數字簽名的簡單算法?
實際上,RSASSA-PKCS1-v1_5 簽名填充非常簡單,並且沒有已知的弱點(類似名稱的 RSAES-PKCS1-v1_5 填充被破壞以進行加密,除非以非常小心的方式實現;不要使用它)。
填充格式為:
00 01 FF FF FF ... FF FF 00 <DER of Hash Type> <Hash>
其中
DER of Hash Type
是一個字節字元串,取決於您使用的散列類型,Hash
是散列函式的輸出。對於 SHA-256,DER 是字節串:
30 31 30 0d 06 09 60 86 48 01 65 03 04 02 01 05 00 04 20
所以,你把你的雜湊,在它前面加上一個固定的字元串,你就完成了。
如果你想讓事情變得更簡單,你可以省略
DER of Hash Type
(這意味著你不是 PKCS #1.5,但是它不會引入任何已知的弱點。