密碼學(xué)初探|國產(chǎn)密碼算法簡介

漠辰
伴隨著國產(chǎn)化工作的推進(jìn)的浪潮,國產(chǎn)密碼也已經(jīng)在國內(nèi)多個行業(yè)或已完成替換,或正在進(jìn)行替換,比如在能源、銀行行業(yè),從筆者的從業(yè)經(jīng)驗(yàn)來看,已經(jīng)完成了大部分的替換工作。

不知道大家有沒有發(fā)現(xiàn),在各種算法的標(biāo)準(zhǔn)制定中,都避不開美國的身影。

作為密碼學(xué)領(lǐng)域的重要參與者,美國NIST和NSA參與制定了大量標(biāo)準(zhǔn),很多都作為國際標(biāo)準(zhǔn)被全球多個國家使用。但也被爆出利用各種后門對別國進(jìn)行情報(bào)獲?。?013年爆出NSA通過RSA公司在隨機(jī)數(shù)生成算法Bsafe中植入后門,使得RSA算法的密鑰生成可預(yù)測;2020年爆出CIA在上世紀(jì)70年代秘密收購瑞士的Crypto AG公司利用該公司出售到多達(dá)120個國家的密碼設(shè)備獲取情報(bào)。

為了保護(hù)我國的密碼安全和國家安全,從世紀(jì)初開始,國家就開始大力推動國產(chǎn)密碼的發(fā)展,發(fā)布了一系列的國密算法和相關(guān)標(biāo)準(zhǔn),并制定相關(guān)的法律法規(guī)。而且從2013年左右就開始在銀行、國企、事業(yè)單位等使用國產(chǎn)密碼算法替換國際密碼算法。

No.01國密算法分類

在我國,根據(jù)保密要求的不同,密碼分為商業(yè)密碼(商密)、普通密碼(普密)以及核心密碼(核密)。

普密和核密主要應(yīng)用到黨政軍等重要單位,所用算法、標(biāo)準(zhǔn)多為私有,經(jīng)專家學(xué)者論證后在指定范圍內(nèi)使用,不對外公開。

商密主要應(yīng)用到民用行業(yè),如銀行、運(yùn)營商、能源、工業(yè)等,所用算法、標(biāo)準(zhǔn)基本都是通過國密局發(fā)布,各密碼廠商根據(jù)國密局要求進(jìn)行產(chǎn)品設(shè)計(jì)、開發(fā)、過檢之后提供給客戶。

我們?nèi)粘I钪薪佑|到的密碼多是商密范圍,因此,該部分內(nèi)容主要介紹也是商密部分。

No.02常用商密算法

國內(nèi)現(xiàn)在主要使用的國密算法有:ZUC算法、SM1、SM2、SM3、SM4、SM7、SM9。其中

ZUC算法(祖沖之算法集)為序列密碼;

SM1、SM4、SM7為對稱算法,SM1算法要求僅能使用硬件實(shí)現(xiàn),且不能出口,SM7算法主要應(yīng)用于非接觸IC卡中;

SM2,SM9為非對稱算法;

SM3為hash算法。

由于我國國產(chǎn)密碼發(fā)展相對美國較晚,為平穩(wěn)推動國產(chǎn)密碼在國內(nèi)的布局,需要兼容已有國際算法,也要借鑒已有標(biāo)準(zhǔn)規(guī)范,因此,國密算法適合國際算法有一定的對標(biāo)關(guān)系,主要對標(biāo)關(guān)系為:

SM1–3DES,SM2–ECC,SM3-SHA256,SM4–AES

前面章節(jié)已對各類密碼算法有了完整的介紹,這里不針對算法的具體實(shí)現(xiàn)和理論基礎(chǔ)進(jìn)行贅述,主要介紹一下SM2算法的使用和SM9算法。

No.03SM2算法的使用

在介紹ECC算法的章節(jié)中說過,使用ECC算法做加解密運(yùn)算時,密文包括C1(臨時公鑰)和C2(消息密文)兩部分,具體內(nèi)容見《密碼學(xué)初探|ECC算法》,而在國密算法中,密文有三部分組成,除了臨時公鑰、密文外,還有一個SM3算法對臨時公鑰(K(x,y))和消息明文M組成的字符串(x||M||y)的hash值C3,最終組成密文格式為C1||C3|C2,使得在進(jìn)行解密時能夠驗(yàn)證明文的完整性。

而在進(jìn)行簽名驗(yàn)簽過程中,SM2算法與ECDSA算法也有一定的差異,比如在進(jìn)行簽名前的hash操作中添加包含用戶信息的hash值,r、s的計(jì)算也與ECDSA不同,

針對國密SM2算法中具體的加解密、簽名驗(yàn)簽運(yùn)算,這里不進(jìn)行具體的介紹,如有感興趣可參考由國密局發(fā)布的標(biāo)準(zhǔn)《GM/T 0003-2012 SM2橢圓曲線公鑰密碼算法》

No.04SM9算法簡介

SM9算法其實(shí)也是一種橢圓曲線算法,是一種基于身份標(biāo)識的密碼方案,使用用戶標(biāo)識唯一確定公鑰,由密鑰中心根據(jù)用戶唯一標(biāo)識生成私鑰。

基于身份標(biāo)識的密碼(IBC)方案(也稱標(biāo)識算法),是在1984年由Shamir提出的不需要可信第三方保證公鑰真實(shí)性、簡化密鑰管理內(nèi)容的密碼方案。2000年左右,一些密碼學(xué)專家提出了使用橢圓曲線構(gòu)造標(biāo)識算法的思路,自此,標(biāo)識算法開始快速發(fā)展,我國也于2008年正式發(fā)布標(biāo)識算法SM9。

由于標(biāo)識算法的公鑰是用戶的身份標(biāo)識,相對于SM2算法,其密鑰的生成更加簡單,易于部署。

SM2算法在使用時需要借助CA機(jī)構(gòu),生成證書,形成證書鏈,由CA機(jī)構(gòu)來保證證書的有效性,

而SM9的特性使得它不需要CA機(jī)構(gòu),但也需要一個可信機(jī)構(gòu)來負(fù)責(zé)參數(shù)選擇和密鑰生成,可信機(jī)構(gòu)有兩對主密鑰-簽名主密鑰和加密主密鑰,使用主密鑰和用戶標(biāo)識生成用戶私鑰。直接通過用戶標(biāo)識確定有效性。

關(guān)于SM9算法的相關(guān)內(nèi)容可以參考《GM/T0044-2016 SM9標(biāo)識密碼算法》,這里不做更多介紹。

當(dāng)前SM9的使用并不廣泛,雖有公司在安全郵件領(lǐng)域做過嘗試,但結(jié)果并不理想,更多的從業(yè)人員認(rèn)為,SM9算法會在物聯(lián)網(wǎng)安全領(lǐng)域會發(fā)揮一定的作用,我們拭目以待吧。

No.05國密算法的發(fā)展

伴隨著國產(chǎn)化工作的推進(jìn)的浪潮,國產(chǎn)密碼也已經(jīng)在國內(nèi)多個行業(yè)或已完成替換,或正在進(jìn)行替換,比如在能源、銀行行業(yè),從筆者的從業(yè)經(jīng)驗(yàn)來看,已經(jīng)完成了大部分的替換工作。

而且近幾年來,SM2、SM3、SM4、SM9陸續(xù)被ISO組織納入其相關(guān)標(biāo)準(zhǔn),ZUC算法更是早已成為LTE國際標(biāo)準(zhǔn),這些都極大的推動了國密算法的發(fā)展。

自2017年從《網(wǎng)絡(luò)安全法》開始,國家接連發(fā)布了多部關(guān)于信息安全、密碼安全的法律法規(guī),對數(shù)據(jù)安全、密碼安全等內(nèi)容進(jìn)行全方面的規(guī)范,借助這股東風(fēng),相信國家自主密碼的發(fā)展會更好。

No.06最后

從《密碼學(xué)初探|密碼學(xué)簡介》到這一篇《國密算法簡介》,一共10篇內(nèi)容,簡單介紹了常用的密碼算法知識,很多地方并不完善,而且有些內(nèi)容涉及到了底層的理論基礎(chǔ),寫的更是凌亂,不過好在完成了這一部分內(nèi)容。

下一步,將會介紹一些密碼算法的應(yīng)用,密碼協(xié)議、數(shù)字證書等內(nèi)容,如果有機(jī)會也想分享一些密碼學(xué)新的方向以及在某些行業(yè)中的應(yīng)用,比如同態(tài)密碼、量子密碼、格密碼的內(nèi)容,區(qū)塊鏈、車聯(lián)網(wǎng)、物聯(lián)網(wǎng)中的密碼應(yīng)用等。

希望能夠作為一個給大家提供認(rèn)識密碼、了解密碼、學(xué)習(xí)密碼的渠道,解決一些在使用密碼時遇到的困擾吧。

THEEND

最新評論(評論僅代表用戶觀點(diǎn))

更多
暫無評論