Encryption
是否真的可以使用 gpg DSA 密鑰保護數據?
我認為GPG很難理解。所有不同的版本、政策和算法。但是今天我真的很困惑。我試圖創建一個 3072 位 DSA 密鑰(據我所知,DSA 只能用於簽名)並用它加密了一些數據。好吧……它奏效了。所以這是我的問題:
1)為什麼數字簽名算法加密數據,為什麼這甚至是 gpg 中的一個選項?
2)DSA“加密”(如果它是)數據是否安全?
為什麼數字簽名算法會加密數據
$$ … $$?
您無法使用 DSA 加密數據。
但是
gpg
支持 ElGamal 加密,這是一種加密方案,可以很自然地從 Diffie-Hellman 密鑰交換中派生出來,並且通常gpg
將“DSA 簽名”與“ElGamal 加密”配對。為什麼會這樣配對?因為(理論上)您可以使用您的 DSA 公鑰進行 ElGamal 加密,並且兩種方案的安全性都與離散對數問題密切相關,因此將它們配對是有意義的。為什麼這甚至是 gpg 中的一個選項?
早在加密的黑暗時代,RSA 就獲得了專利。那就是您需要從 RSA(公司)獲得許可才能使用它。這是開發 DSA 的原因之一,如上所述,將 ElGamal 與 DSA 配對是有意義的。現在當然
gpg
也受到圍繞 RSA 的專利問題的影響,這就是(我可以想像)他們最初只提供 DSA / ElGamal 的原因。RSA 專利已在 2000 年代到期,這就是為什麼我們現在對所有事物都使用 RSA,而 DSA / ElGamal 主要是為了向後兼容,並讓使用者選擇基於因子的安全性與基於離散對數的安全性。使用 DSA “加密”(即使是)數據是否安全?
由於這意味著數據實際上是使用 ElGamal 加密的,並且僅用於加密混合加密的密鑰,因此我非常有信心這實際上是安全的。