Rsa
使用 RSA 公鑰加密提供了什麼?
我想知道使用 RSA 公鑰加密是否提供機密性和完整性。我很確定它提供了機密性,但我擔心完整性。如果攻擊者會加擾密文,我會得到什麼結果?在加密之前,我是否需要在消息末尾添加某種 MAC?
如果我必須更具體地了解我的問題,我想使用 RSA 向伺服器發送微小的請求。我正在考慮使用伺服器的公鑰加密請求。伺服器還將知道我的公鑰並發送回使用我的公鑰加密的響應。我不確定我是否正確使用這些,因為我是這些主題的初學者。
任何幫助,將不勝感激。
使用伺服器的 RSA 公鑰正確完成加密可提供請求的機密性,但不能提供完整性或來源證明(任何人都可以偽造具有任何所需內容的請求)。
發送方必須有一些秘密來證明完整性。這可以是用於 RSA 簽名的 RSA 私鑰(通過完整的通道傳輸或通過數字證書,伺服器知道發送方公鑰)。其他簽名方案也可以工作(DSA、ECDSA..)。
如果伺服器持有客戶端的秘密(或允許伺服器重新計算所有客戶端的秘密的主密鑰)是可接受的,對稱加密也適用於完整性。
對稱加密可以提供完整性和機密性(例如,根據RFC 7539的 Salsa20-Poly1305 ),但非對稱加密具有優勢:它提供的機密性不依賴於客戶端長期保持密鑰秘密的能力;只有誠信可以。