近兩年來,人們都知道美國國家安全局有能力——也許仍然有能力——解密大部分網路流量。 2014年12月,《明鏡周刊》刊登了整篇文章愛德華·斯諾登文件系列顯示美國機構能夠輕鬆讀取 TLS/SSL、IPSec 和 VPN 流。但她是怎麼做到的呢?來自賓州大學、CNRS、INRIA 和洛林大學的四位密碼學家可能剛剛找到了部分答案。在一個學習,他們表明可以在某些加密技術中引入後門,這極大地促進了解密計算,而任何人都無法意識到這一點。
素數缺陷
在這種情況下,這些研究人員研究了 DSA(數位簽章演算法),尤其是 Diffie-Hellman 演算法。它本質上是不對稱的,被大量用於交換加密金鑰的互聯網協議,包括 TLS/SSL、SSH 和 IPSec。它的安全性在於,在數學上很難反轉數字的冪(即計算其離散對數)。該演算法依賴於大素數。
當然,有一個破解這種加密的過程,稱為「數域篩選」。但它只對小鑰匙有效。因此,要破解1024位元密鑰,理論上需要4500萬核年的運算能力,也就是說運行4500萬個計算核心一年。然而,這四位研究人員剛剛證明,利用他們所掌握的大學基礎設施,只需 400 心年(大約兩個月)就可以破解這樣的鑰匙。
訣竅是採用具有非常特殊數學特徵的質數,以便代數篩選進行得更快。研究人員表明,構造這樣的質數不僅非常容易,而且不容易被偵測到。
實現上變化不大
但是,您應該知道當前的加密實作都或多或少地使用相同的素數。有些是直接硬編碼到軟體原始碼中的。更重要的是,這些素數的創建很少有記錄!因此,政府行為者可以利用其影響力將廉價素數納入廣泛分發的軟體中,而不會引起任何人的注意。因此,研究人員給出的建議如下:使用 2048 位元金鑰,無論如何,它仍然超出範圍。
這並不是密碼學家第一次研究 Diffie-Hellmann 演算法的弱點。 2015年10月,大約十名研究人員已經估計,如果政府行為者擁有足夠的運算能力,則可以破解大部分 1024 位元金鑰。事實上,代數篩的很大一部分僅取決於所選的質數。此計算可以提前完成,因此需要大約 30 個核心年才能破解 1024 位元密鑰。這並不多。