謝宗曉 董坤祥 甄杰
1 概述
《中華人民共和國密碼法》第六條中規(guī)定:密碼分為核心密碼、普通密碼和商用密碼。同時,在第七條和第八條中規(guī)定:核心密碼、普通密碼屬于國家秘密,商用密碼用于保護不屬于國家秘密的信息。因此,在常見應用中,商用密碼得到了大面積的推廣,以至于,在實踐中,提到“國密”,經(jīng)常就被默認為國產(chǎn)商用密碼算法。
在現(xiàn)代密碼系統(tǒng)中,密碼算法、密碼協(xié)議和密鑰管理是三個不可或缺的部分,而在這三者之中,最為核心的毫無疑問就是密碼算法。雖然實踐證明,絕大部分的安全漏洞都產(chǎn)生于實現(xiàn)和部署過程中,但是,算法的安全與否,直接決定了一個密碼系統(tǒng)的基礎是否安全。例如,選用SHA-1、MD4、MD5、RC4和密鑰長度小于2048位的RSA等不安全的算法,不可能實現(xiàn)安全的密碼系統(tǒng)。
已經(jīng)發(fā)布的國產(chǎn)商用密碼算法,按照類別可以分為:1)對稱密碼算法,主要包括ZUC和SM4;2)非對稱密碼算法,主要包括SM2和SM9;3)密碼雜湊算法,主要包括SM3。
2 對稱密碼算法
對稱密碼(symmetric cryptography)是用相同的密鑰(或方法)進行加密解密,這在邏輯上非常清晰,也最直觀,有時候也被稱之為共享密鑰密碼,對稱密碼算法的基本過程如圖1所示。
已經(jīng)發(fā)布國產(chǎn)商用密碼算法中屬于對稱密碼算法的有ZUC和SM4。
ZUC(祖沖之密碼算法)屬于序列密碼,也稱為“流密碼”,與之類似的國外密碼算法如RC41)。ZUC對應的國家標準、行業(yè)標準,如表1所示。
SM4屬于分組密碼,也稱為“塊密碼”,與之類似的國外密碼算法如DES(數(shù)據(jù)加密標準),TDEA/3DES(三重數(shù)據(jù)加密標準)以及AES(高級加密標準)等。SM4對應的國家標準、行業(yè)標準,如表2所示。
在安全性上,SM4-128與AES-128差不多,當然,AES支持更高的安全強度。但是SM4具備一個很優(yōu)良的特征,加密和解密的過程基本相同,只需要將密鑰的順序倒置即可實現(xiàn),AES算法的加密算法和解密算法則不一致。存在類似數(shù)學特征的算法,又如,用于公鑰加密和數(shù)字簽名的RSA算法,兩者存在完美的逆序。
3 非對稱密碼算法
公鑰密碼又稱為非對稱密碼(asymmetric cryptography),最典型的公鑰密碼用法是,發(fā)送者用公鑰加密,接收者用私鑰解密。公鑰一般是公開的,不必擔心竊聽,私鑰又不存在傳輸?shù)膯栴}。這個思路創(chuàng)造性地解決了對稱密碼中難以處理的密鑰配送問題2)。用于傳輸消息的公鑰密碼工作過程如圖2所示。
已經(jīng)發(fā)布國產(chǎn)商用密碼算法中屬于對稱密碼算法的有SM2和SM9。
SM2為橢圓曲線密碼(Elliptic Curve Eryptography,ECC)算法,其數(shù)學基礎為橢圓曲線離散對數(shù)問題。RSA算法,其數(shù)學基礎為大整數(shù)的質(zhì)因數(shù)分解。兩者比較,橢圓曲線密碼算法所需要的密鑰長度比較短,也就是說,同樣的密鑰長度,橢圓曲線密碼可以提供更高等級的安全。SM2對應的國家標準、行業(yè)標準,如表3所示。
基于SM2算法的數(shù)字簽名技術(shù),在國內(nèi),尤其是金融行業(yè)等,數(shù)字認證領域已經(jīng)得到廣泛的應用,逐步替代了基于RSA算法的數(shù)字簽名。
SM9為標識密碼(Identity-Based Cryptograph,IBC)算法,標識密碼算法主要為了解決傳統(tǒng)PKI(Public Key Infrastructure,公鑰基礎設施)體系中存在大量數(shù)字證書的交換問題,由于標識密碼中,公鑰是基于用戶的唯一特定的身份標識,這樣就不再依賴于數(shù)字證書,即不再依賴于簽名的公鑰。SM9對應的國家標準、行業(yè)標準,如表4所示。
SM9中的數(shù)字簽名算法基于橢圓曲線對實現(xiàn),其安全性是基于橢圓曲線雙線性映射的性質(zhì),目前業(yè)界尚未發(fā)現(xiàn)顯著影響雙線性對密碼系統(tǒng)應用的安全性風險,就安全性而言,SM9高于同類算法。
4 密碼雜湊算法
密碼雜湊算法也被稱作“雜湊算法”“散列算法”或“哈希算法”。在GM/Z 4001—2013《密碼術(shù)語》中,上述幾個術(shù)語對應的英文都是hash algorithm,其主要功能是將任意長度的比特串映射到固定長的比特串。
已經(jīng)發(fā)布國產(chǎn)商用密碼算法中屬于密碼雜湊算法的有SM3,SM3對應的國家標準、行業(yè)標準,如表5所示。
國外密碼雜湊算法主要有MD5和SHA(Secure Hash Algorithm,安全雜湊算法)系列,如上文所述,MD5和SHA-1已經(jīng)證明不安全,雖然目前尚未發(fā)現(xiàn)對SHA-2有效攻擊方法,但是鑒于SHA-1和SHA-2結(jié)構(gòu)相似,從2012年開始,NIST宣布了新的雜湊算法SHA-3。
5 小結(jié)
綜上所述,目前發(fā)布的國產(chǎn)商業(yè)密碼算法主要包括ZUC、SM2、SM3、SM4和SM9,其類型涵蓋了對稱密碼算法、非對稱密碼算法和密碼雜湊算法,基本可以滿足日常應用的需要,無論是在算法的安全性上,還是在算法效率上,都比國外密碼算法要更勝一籌。
(注:本文僅做學術(shù)探討,與作者所在單位觀點無關(guān))
參考文獻
[1] 霍煒,郭啟全,馬原.商用密碼應用與安全性評估[M].北京:中國工信出版社/電子工業(yè)出版社,2020.
[2] 鄭昉昱,林璟鏘,魏榮,等.密碼應用安全技術(shù)研究及軟件密碼模塊檢測的討論[J].密碼學報,2020,7(3):290-310.
[3] 謝宗曉,甄杰.公鑰基礎設施(PKI)國家標準解析[J].中國質(zhì)量與標準導報, 2018(12):18-21.
[4] 謝宗曉,劉琦.公鑰基礎設施(PKI)國際標準進展[J].金融電子化,2018(10):56-58.
[5] 謝宗曉,董坤祥,甄杰.公鑰基礎設施(PKI)的發(fā)展過程及其架構(gòu)[J].中國質(zhì)量與標準導報, 2020(5):17-20.