Encryption
是否應該使用不同的密鑰對進行簽名和加密?
在 Apple 最近發布的iOS 安全白皮書(2014 年 2 月)中,關於 iMessage 的部分討論了使用兩種不同的非對稱密鑰類型作為其標準操作的一部分:
當使用者打開 iMessage 時,設備會生成兩對用於服務的密鑰:用於加密的 RSA 1280 位密鑰和用於簽名的 ECDSA 256 位密鑰。
- 最好的做法是使用一組不同的密鑰進行簽名而不是加密?
- 如果是這樣,它有什麼優勢?我一直在考慮編寫一些使用單個 RSA 密鑰對進行簽名和加密的軟體,但這讓我質疑它。
- 他們使用 RSA 加密 AES 密鑰並使用 ECDSA 進行簽名是否還有特定的原因?
- 是的。
- 現代密碼系統是在密鑰從未用於其他任何事情的假設下設計和分析的。如果您將加密密鑰用於數字簽名,則違反了該假設,並且很容易建構這種違反會危及安全性的方案。
可以建構可以使用相同密鑰的方案,但幾乎沒有理由這樣做。 3. 我沒有查看 iMessage 的細節,但我懷疑每次發送消息時,都會為許多收件人(可能是每個設備)加密該消息,但只簽名一次。每個設備只需解密一個密文,並驗證一個簽名。
RSA 的加密速度非常快,而 ECDSA 的驗證速度更快。基於 EC 的加密對於加密來說會更加昂貴。蘋果的選擇似乎是合理的。