新聞

多名研究人員近期實證一種針對RSA數位簽章的攻擊方法,在不需要將RSA公鑰中的大整數分解成兩個質數、也不必取得私鑰的情況下,成功偽造1,024位元RSA簽章。研究團隊歷時約5個月完成攻擊,期間使用大量CPU平行運算,累計運算量達1,380個CPU核心年。

這項研究論文《Forging 1024-bit RSA signatures in nearly SNFS time》於9月20日發布。研究團隊指出,這項攻擊方法源自Joux、Naccache與Thomé在2007年提出的演算法,攻擊者只要曾短暫取得原始RSA簽章或解密預言機(oracle),就能在不進行質因數分解的情況下,以接近特殊數域篩法(SNFS)的運算時間偽造RSA簽章。此次研究的新進展,在於研究團隊實際實作這套方法,並成功完成1,024位元RSA規模的攻擊。

不過,這項研究並不代表現行RSA已遭全面破解。研究團隊指出,攻擊成立有特定前提,攻擊者必須曾暫時取得原始RSA簽章/解密預言機(raw RSA signing/decryption oracle)的存取權限,才能在不進行質因數分解、也不匯出私鑰的情況下,進一步偽造RSA簽章。研究團隊也表示,多數實際部署的RSA系統並不會提供這類預言機,因此這項攻擊目前不太可能對現實環境中的RSA構成立即威脅。

針對這項研究,有媒體以「新型RSA攻擊」描述,資安專家Bruce Schneier則於9月28日發文指出,這項攻擊方法本身並不是新的,早在2007年就已提出,此次真正新進展在於完成實際實作。

Schneier並扼要說明論文內容與攻擊的限制,指出這項研究展示的是RSA「簽章偽造」,並不是從公鑰還原私鑰;而且攻擊僅適用於未經格式化或填充處理的原始RSA簽章,這並不是RSA目前一般的實務使用方式。此外,雖然這項方法比直接進行質因數分解更快,但仍屬次指數時間演算法(subexponential-time algorithm),實際運算成本依然相當高。