項目最近有人反映過來,說那誰誰誰說現在不要用國密2,過時了,要用國密4,反正就是看不上國密2之類云云。
國密1、國密2、國密3、國密4,當中的1,2,3,4並不是安全等級,可能只是個先後順序。
-
國密1是對稱加密算法,類比我們常用的AEC。
-
國密2採用的是橢圓曲線,可以用於簽名,協商密鑰。很多證書的簽名就是採用ECDSA,互聯網上常用的協商密鑰機制位RAS,橢圓算法的ECDH於此類似。EC比RAS需要的計算能力和存儲小(需要的性能小,不等於安全性小),適合於非計算機的場景。
-
SM3採用雜湊算法,用於digest的計算,類似SHA的摘要計算
-
SM4 是無線局域網標準的分組數據算法,是一種對稱算法。
比特幣的區塊鏈採用的也是橢圓曲線,具體的曲線和國密2不同,使用brainpool 384,也就是384比特,而SM2的是256比特。當然,不同算法之間比較位數是沒有意義的。既然金融領域的分佈式記賬式採用橢圓曲線,我們可以認爲,截至目前,在不使用量子計算機的前提下,橢圓曲線是安全。
不同算法,應用的場景不同,無法將驗證簽名和協商密鑰的算法,和用於信息加密的算法進行安全比較,關公戰秦瓊,太難爲情了。
上面只是討論算法的安全,還有我們如何使用。例如密鑰或者密鑰對是一次性的,還是重複使用的。安全是一門系統科學。而密碼學是偉大數學家的饋贈,是我等數學渣渣所膜拜。