美國國傢標準技術研究所(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。