PGP 數字簽名與 SHA256 HMAC 比較
首先讓我承認我不是數學家或密碼學家。我負責協助就在公司內部網路中整合支付流程的項目提出建議。
我們有各種應用程序正在創建的付款文件;一些遺留應用程序正在使用 PGP 對支付文件進行數字簽名(僅簽名 - 不加密。雜湊算法為 SHA1,數字簽名算法為 RSA 1024)。一些較新的應用程序正在使用 SHA256 HMAC(使用 256 位隨機私鑰)保護支付文件。
無論我們決定使用公鑰密碼術 (PGP) 還是密鑰密碼術 (HMAC),我們都會定期更換密鑰,並有理由確信我們可以保護私鑰和密碼或 HMAC 的密鑰。
有人提出了質疑 SHA256 HMAC 與 PGP 數字簽名的相對強度的問題。我們知道 PGP 數字簽名附加到每個支付文件,網路管理員和其他人可以輕鬆複製簽名的支付文件(但他們無法訪問 PGP 密鑰文件夾或密碼)。同樣,管理員可以訪問 SHA256 HMAC 標籤值和原始明文支付文件,但不能訪問密鑰。
鑑於在這兩組應用程序中,潛在的對手都可以獲得原始明文和數字簽名或 HMAC Hashtag,這兩種情況中的哪一種最不容易受到暴力破解或其他試圖獲取私鑰或密鑰的攻擊?基於目前的計算能力,我們應該在多長時間內合理保證這兩種技術相對安全?
PGP
$$ 1024-bit $$數字簽名與 SHA256 HMAC 比較…
首先,您可以比較非對稱和對稱算法。1024 位非對稱密鑰可提供大約 80 位的安全性。SHA256 HMAC 提供大約 128 位的安全性。在所有其他條件相同的情況下,HMAC 更強。
其次,我相信 PGP(或者是 GnuPG)使用 Lim-Lee 素數並且它們不提供素數分解。因此,您無法測試它們在實踐中是否有任何好處。
第三,HMAC 中使用的隨機密鑰可能不是隨機的。用於生成非對稱密鑰的隨機數也可能有問題。隨機性很像錯誤。要從 Dykstra 借用,您可以測試隨機性是否存在,但是否存在隨機性。
第四,這兩個系統聽起來都像是被偽造了。因此,您可能希望確保不會發生秘密轉發、重放和其他技巧。
第五,……(這裡最喜歡的威脅)。
此外,儲存私鑰或對稱密鑰是Gutmann 在其《工程安全》一書中描述的無人值守密鑰儲存問題。這是一個沒有解決方案的問題。
其他嘗試派生私鑰或密鑰的攻擊?
好的,這更容易。對手不會嘗試破解加密貨幣。他們會繞過它。他們將通過闖入系統、獲取 root 權限,然後從文件系統中讀取密鑰來繞過它。
我知道只有兩種加密攻擊。首先是TI 簽名密鑰的分解,其次是Flame 惡意軟體。TI 因式分解發生在 512 位非對稱密鑰上;而 Flame 惡意軟體利用了 Microsoft CA 證書上的 MD5 衝突。
闖入系統是一種更具成本效益的攻擊。它可能會首先對 HR 或應收帳款中的一位女士進行網路釣魚。這就是它從一些備受矚目的攻擊開始的方式,例如 RSA 數據證券和其他大型攻擊之一,例如索尼 (IIRC)。
基於目前的計算能力,我們應該在多長時間內合理保證這兩種技術相對安全?
我認為 80 位的安全性是少數資金雄厚的對手可以達到的。但其他大多數人都無法觸及。
128 位安全性可能永遠不會觸手可及。