多年考量後NIST公佈後量子加密和簽名算法的首推名單
美國國家標準技術研究所(NIST)近日宣布已持續數年的後量子加密和簽名算法競賽已落下階段性帷幕,首批獲勝者名單已經出爐。在後量子加密上,NIST 首推CRYSTALS-Kyber 算法,但後期可能會根據表現有所調整。在簽名算法上,NIST 首推CRYSTALS-Dilithium,以及兩款同樣優秀的備選算法:Falcon 和SPHINCS+。
NIST 耗費了很長時間才選定這些獲勝者,期間更是經歷了多次延期。其中一個重要原因是,未來的量子計算機可能會破壞當前所使用的幾乎所有公鑰加密。像RSA 等其他基於橢圓曲線的算法在未來都可以使用強大的量子計算機進行破解。儘管當前這樣的量子計算機還未誕生,但是科學家在這方面的研究已經有了進展。
因此,研究人員開始探索即便是量子計算機也無法破解的算法,也就是我們上文所說的是後量子加密學(post-quantum cryptography)。在2016 年,NIST 宣布希望標準化後量子加密學並尋求建議。
這項競賽已階段性結束,不過NIST 也表示計劃未來對其他算法進行調查,再從中確認可以成為標準的算法。而且對於簽名算法,NIST 希望能夠推動多種加密方式,從而實現算法的多樣性。
自然,這也會給獲勝者帶來巨大的好處。在NIST 公開的細節中,NIST 提到,它正在與幾個潛在相關專利持有人簽訂專利協議:“如果協議在2022 年年底前無法執行,那麼NIST 可能考慮使用NTRU 來替代Kyber”。NTRU 也是一種比較熱門的算法,其專利影響目前已經過期。Kyber 和NTRU 都是基於Lattice 的加密算法。
在簽名算法方面,該機構選擇了3 款算法,表明了該機構對該領域的猶豫。選中的這3 款算法都能對像TLS 這樣每天都在使用的協議進行安全替代。其中Falcon 和Dilithium 是基於Lattice 的,而SPHINCS+ 是基於hash 的。
Falcon 是三款中體積最小的簽名算法,但這在其他方面做出了犧牲:Falcon 需要恆定的浮點算術。如果無法正確計算,那麼可能會導致side-channel 攻擊,從而曝光私鑰。
SPHINCS+ 是三款中安全性最高的。這項基於hash 的算法主要依賴基礎哈希函數。哈希函數是一個非常知名的加密結構,不過在簽名尺寸上存在挑戰:基於版本和安全等級,可以達到8-50 kilobytes。