當我在C#中使用RSA實現許可證密鑰機制時,我遇到了RSACryptoServiceProvider class,它受限於最小384位密鑰大小。該密鑰長度對我創建的簽名(==許可證密鑰)有直接影響。RSA的最小密鑰長度
384位是RSA的一般技術限制,還是有可能以更小的密鑰大小成功實現RSA?
閱讀解釋RSA的(德語)維基百科文章,他們在數學計算示例中使用了非常小的素數。這似乎工作,所以我希望密鑰大小比20位短...注:我絕對不在乎目前的安全。這是另一個討論。我只想得到正確的技術限制。
我知道Stackoverflow不應該用來請求工具,但是如果你知道一個.NET RSA庫有一個下限,也許你只是想提一下這個附註。
RSA背後的數學算法相當簡單 - 也許它是您自己實現的一個選項?我不確定是否有任何庫支持如此小的密鑰大小,因爲低於1024位的任何內容都是不安全的,此外,消息大小僅限於密鑰的大小。 – ntoskrnl
您不能使用這種短鍵的典型襯墊。例如,帶有SHA1的OAEP本身佔用328位。 – CodesInChaos
如果您想要較短的簽名,請考慮DSA和類似的算法。一個320位DSA簽名價格昂貴,320位RSA密鑰可能在一臺PC上被破壞。對於更小的簽名(DSA的一半大小),您可以使用BLS方案,但實施起來有點棘手。 – CodesInChaos