Rsa

使用 RSA 簽名作為秘密材料

  • September 1, 2017

可以將隨機生成的種子的 RSA 簽名用作秘密材料(用於進一步保護某些數據)嗎?

這聽起來像是某種 KDF - 但這裡建立在 RSA 簽名操作之上,而不是 KDF 通常使用的加密/解密操作。(或者是否有一些已知的 KDF 以這種方式工作?)

這種簽名的使用是不尋常的,因為從概念上講,簽名旨在成為與其他方共享的非秘密資訊。但是這裡是否存在任何已知的加密問題,或者可能存在一些跨協議陷阱?

請注意,該問題假定 PKCS#1 v1.5,因為 PSS 簽名包含隨機性,因此不能直接用於導出穩定的秘密。

的,使用 RSA 簽名作為 KDF 的想法是可行的。KDF 的密鑰將是 RSA 私鑰,而 KDF 的另一個輸入將是要簽名的消息。其他需求:

  1. 任何一個:

  2. 簽名由加密安全的 PRF 進行後處理,例如雜湊(這將使 KDF 的輸出與隨機無法區分,並且 KDF 不可逆)。

  3. 也許:它只適當地保留構成 RSA 簽名的整數的原始輸出的少量低位。沒有證據,我推測 $ n $ 位 RSA 和安全確定性簽名填充、低階 $ n/3 $ 位與隨機無法區分,並且 KDF 不可逆(包括公鑰)。

  4. KDF 的“秘密材料”輸出與隨機可區分,KDF 的輸入可從其輸出重構(例如,通過持有公鑰的人,或因為某些位與隨機可區分)都不重要。

  5. 它使用安全確定性 RSA 簽名方案,包括 PKCS#1 的 RSASSA-PKCS1-v1_5,以及 ISO/IEC 9796-2 方案 1 和 3。

  6. 簽名過程不會強制在簽名消息中出現變數,也不會在實際使用的簽名部分中強制更改。

要求 1 確保 KDF 的輸出具有所需的屬性。使用 1.1 或者可能是 1.2(一種未經證實的保存雜湊的快捷方式),KDF 的輸出與隨機無法區分,並且 KDF 不可逆。在 1.3 中,簽名本身可以是輸出(無論其格式如何,包括例如 base64),並且可以用於從公共材料生成一些只需要不可預測且不衝突的 KDF 輸出,但可以長且與隨機區分開來。

要求 2/3 是為了確保 KDF 是名副其實的函式,即相同的輸入總是產生相同的輸出。要求 2 不包括隨機 RSA 簽名,包括 PKCS#1v2 的 RSASSA-PSS 和 ISO/IEC 9796-2 方案 2。例如,要求 3 不包括將在每個簽名處增加一個內部計數器的智能卡,並強制它在被簽名的消息,或(與 1.1 或 1.3 結合)作為簽名的後綴。

不幸的是,我沒有參考資料。

引用自:https://crypto.stackexchange.com/questions/51247