[国密算法]一文了解国密算法
國(guó)密算法
- 概述
- 1 SM1對(duì)稱密碼
- 2 SM2橢圓曲線公鑰密碼算法
- 3 SM3雜湊算法
- 4 SM4對(duì)稱算法
- 5 SM7對(duì)稱密碼
- 6 SM9標(biāo)識(shí)密碼算法
- 7 ZUC祖沖之算法
- 總結(jié)
| SM1 | 對(duì)稱密碼算法 | 芯片 | 分組長(zhǎng)度、密鑰長(zhǎng)度均為 128 比特 |
| SM2 | 公鑰密碼算法 | 加密 | ECC橢圓曲線密碼機(jī)制256位 相比RSA,處理速度快,消耗更少 |
| SM3 | Hash函數(shù)算法 | 完整性 | 安全性及效率與SHA-256相當(dāng) 壓縮函數(shù)更復(fù)雜 |
| SM4 | 對(duì)稱密碼算法 | 無(wú)線局域網(wǎng)產(chǎn)品 | 分組長(zhǎng)度、密鑰長(zhǎng)度均為 128 比特 計(jì)算輪數(shù)多 |
| SM7 | 對(duì)稱密碼算法 | 非接觸式IC卡 | 分組長(zhǎng)度、密鑰長(zhǎng)度均為 128 比特 |
| SM9 | 標(biāo)識(shí)密碼算法(IBE) | 端對(duì)端離線安全通訊 | 加密強(qiáng)度等同于3072位密鑰的RSA加密算法 |
| ZUC | 序列密碼算法 | 移動(dòng)通信4G網(wǎng)絡(luò) | 流密碼 |
概述
眾所周知,為了保障商用密碼的安全性,國(guó)家商用密碼管理辦公室制定了一系列密碼標(biāo)準(zhǔn),包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC)那等等。
在金融領(lǐng)域目前主要使用公開(kāi)的SM2、SM3、SM4三種商用密碼算法,分別為非對(duì)稱加密算法、哈希算法和對(duì)稱加密算法。
其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對(duì)稱算法;SM2、SM9是非對(duì)稱算法;SM3是哈希算法。目前,這些算法已廣泛應(yīng)用于各個(gè)領(lǐng)域中,期待有一天會(huì)有采用國(guó)密算法的區(qū)塊鏈應(yīng)用出現(xiàn)。
SM2,3,9已被納入國(guó)際標(biāo)準(zhǔn)
其中SM1、SM7算法不公開(kāi),調(diào)用該算法時(shí),需要通過(guò)加密芯片的接口進(jìn)行調(diào)用;比較少人了解這些算法,在這里對(duì)這些國(guó)密算法做簡(jiǎn)單的科普
1 SM1對(duì)稱密碼
SM1 算法是分組密碼算法,分組長(zhǎng)度為128位,密鑰長(zhǎng)度都為 128 比特,算法安全保密強(qiáng)度及相關(guān)軟硬件實(shí)現(xiàn)性能與 AES 相當(dāng),算法不公開(kāi),僅以IP核的形式存在于芯片中。
采用該算法已經(jīng)研制了系列芯片、智能IC卡、智能密碼鑰匙、加密卡、加密機(jī)等安全產(chǎn)品,廣泛應(yīng)用于電子政務(wù)、電子商務(wù)及國(guó)民經(jīng)濟(jì)的各個(gè)應(yīng)用領(lǐng)域(包括國(guó)家政務(wù)通、警務(wù)通等重要領(lǐng)域)。
2 SM2橢圓曲線公鑰密碼算法
SM2算法就是ECC橢圓曲線密碼機(jī)制,但在簽名、密鑰交換方面不同于ECDSA、ECDH等國(guó)際標(biāo)準(zhǔn),而是采取了更為安全的機(jī)制。另外,SM2推薦了一條256位的曲線作為標(biāo)準(zhǔn)曲線。
SM2標(biāo)準(zhǔn)包括總則,數(shù)字簽名算法,密鑰交換協(xié)議,公鑰加密算法四個(gè)部分,并在每個(gè)部分的附錄詳細(xì)說(shuō)明了實(shí)現(xiàn)的相關(guān)細(xì)節(jié)及示例。
SM2性能更優(yōu)更安全:密碼復(fù)雜度高、處理速度快、機(jī)器性能消耗更小
SM2算法主要考慮素域Fp和F2m上的橢圓曲線,分別介紹了這兩類域的表示,運(yùn)算,以及域上的橢圓曲線的點(diǎn)的表示,運(yùn)算和多倍點(diǎn)計(jì)算算法。然后介紹了編程語(yǔ)言中的數(shù)據(jù)轉(zhuǎn)換,包括整數(shù)和字節(jié)串,字節(jié)串和比特串,域元素和比特串,域元素和整數(shù),點(diǎn)和字節(jié)串之間的數(shù)據(jù)轉(zhuǎn)換規(guī)則。
詳細(xì)說(shuō)明了有限域上橢圓曲線的參數(shù)生成以及驗(yàn)證,橢圓曲線的參數(shù)包括有限域的選取,橢圓曲線方程參數(shù),橢圓曲線群基點(diǎn)的選取等,并給出了選取的標(biāo)準(zhǔn)以便于驗(yàn)證。最后給橢圓曲線上密鑰對(duì)的生成以及公鑰的驗(yàn)證,用戶的密鑰對(duì)為(s,sP),其中s為用戶的私鑰,sP為用戶的公鑰,由于離散對(duì)數(shù)問(wèn)題從sP難以得到s,并針對(duì)素域和二元擴(kuò)域給出了密鑰對(duì)生成細(xì)節(jié)和驗(yàn)證方式。總則中的知識(shí)也適用于SM9算法。
在總則的基礎(chǔ)上給出了數(shù)字簽名算法(包括數(shù)字簽名生成算法和驗(yàn)證算法),密鑰交換協(xié)議以及公鑰加密算法(包括加密算法和解密算法),并在每個(gè)部分給出了算法描述,算法流程和相關(guān)示例。
數(shù)字簽名算法,密鑰交換協(xié)議以及公鑰加密算法都使用了國(guó)家密管理局批準(zhǔn)的SM3密碼雜湊算法和隨機(jī)數(shù)發(fā)生器。數(shù)字簽名算法,密鑰交換協(xié)議以及公鑰加密算法根據(jù)總則來(lái)選取有限域和橢圓曲線,并生成密鑰對(duì)。
SM2算法在很多方面都優(yōu)于RSA算法(RSA發(fā)展得早應(yīng)用普遍,SM2領(lǐng)先也很自然),與RSA安全性對(duì)比如下圖
3 SM3雜湊算法
SM3安全性高:壓縮函數(shù)更復(fù)雜
Hash函數(shù)的性質(zhì)
- 抗第一原像(單向性):對(duì)于給定的hash值h,要找到M使得H(M)=h在計(jì)算上是不可行的
- 抗第二原像(抗弱碰撞性):對(duì)于給定的消息M1,要發(fā)現(xiàn)另一個(gè)消息M2,滿足H(M1)=H(M2)在計(jì)算上是不可行的
- 抗強(qiáng)碰撞性:找任意一對(duì)不同消息M1、M2,使H(M1)=H(M2)在計(jì)算上是不可行的
SM3****密碼雜湊(哈希、散列)算法給出了雜湊函數(shù)算法的計(jì)算方法和計(jì)算步驟,并給出了運(yùn)算示例。此算法適用于商用密碼應(yīng)用中的數(shù)字簽名和驗(yàn)證,消息認(rèn)證碼的生成與驗(yàn)證以及隨機(jī)數(shù)的生成,可滿足多種密碼應(yīng)用的安全需求。在SM2,SM9標(biāo)準(zhǔn)中使用。
此算法對(duì)輸入長(zhǎng)度小于2的64次方的比特消息,經(jīng)過(guò)填充和迭代壓縮,生成長(zhǎng)度為256比特的雜湊值, 安全性及效率與SHA-256相當(dāng)。其中使用了異或,模,模加,移位,與,或,非運(yùn)算,由填充,迭代過(guò)程,消息擴(kuò)展和壓縮函數(shù)所構(gòu)成。具體算法及運(yùn)算示例見(jiàn)SM3標(biāo)準(zhǔn)。
4 SM4對(duì)稱算法
SM4更安全:計(jì)算輪數(shù)多、增加非線性變化
此算法是一個(gè)分組算法,用于無(wú)線局域網(wǎng)產(chǎn)品。該算法的分組長(zhǎng)度為128比特,密鑰長(zhǎng)度為128比特。加密算法與密鑰擴(kuò)展算法都采用32輪非線性迭代結(jié)構(gòu)。解密算法與加密算法的結(jié)構(gòu)相同,只是輪密鑰的使用順序相反,解密輪密鑰是加密輪密鑰的逆序。
此算法采用非線性迭代結(jié)構(gòu),每次迭代由一個(gè)輪函數(shù)給出,其中輪函數(shù)由一個(gè)非線性變換和線性變換復(fù)合而成,非線性變換由S盒所給出。其中rki為輪密鑰,合成置換T組成輪函數(shù)。輪密鑰的產(chǎn)生與上圖流程類似,由加密密鑰作為輸入生成,輪函數(shù)中的線性變換不同,還有些參數(shù)的區(qū)別。SM4算法的具體描述和示例見(jiàn)SM4標(biāo)準(zhǔn)。
5 SM7對(duì)稱密碼
SM7算法,是一種分組密碼算法,分組長(zhǎng)度為128比特,密鑰長(zhǎng)度為128比特。SM7適用于非接觸式IC卡,應(yīng)用包括身份識(shí)別類應(yīng)用(門禁卡、工作證、參賽證),票務(wù)類應(yīng)用(大型賽事門票、展會(huì)門票),支付與通卡類應(yīng)用(積分消費(fèi)卡、校園一卡通、企業(yè)一卡通等)。
6 SM9標(biāo)識(shí)密碼算法
為了降低公開(kāi)密鑰系統(tǒng)中密鑰和證書管理的復(fù)雜性,以色列科學(xué)家、RSA算法發(fā)明人之一Adi Shamir在1984年提出了標(biāo)識(shí)密碼(Identity-Based Cryptography)的理念。標(biāo)識(shí)密碼將用戶的標(biāo)識(shí)(如郵件地址、手機(jī)號(hào)碼、QQ號(hào)碼等)作為公鑰,省略了交換數(shù)字證書和公鑰過(guò)程,使得安全系統(tǒng)變得易于部署和管理,非常適合端對(duì)端離線安全通訊、云端數(shù)據(jù)加密、基于屬性加密、基于策略加密的各種場(chǎng)合。2008年標(biāo)識(shí)密碼算法正式獲得國(guó)家密碼管理局頒發(fā)的商密算法型號(hào):SM9(商密九號(hào)算法),為我國(guó)標(biāo)識(shí)密碼技術(shù)的應(yīng)用奠定了堅(jiān)實(shí)的基礎(chǔ),加密強(qiáng)度等同于3072位密鑰的RSA加密算法。
SM9算法不需要申請(qǐng)數(shù)字證書,適用于互聯(lián)網(wǎng)應(yīng)用的各種新興應(yīng)用的安全保障。如基于云技術(shù)的密碼服務(wù)、電子郵件安全、智能終端保護(hù)、物聯(lián)網(wǎng)安全、云存儲(chǔ)安全等等。這些安全應(yīng)用可采用手機(jī)號(hào)碼或郵件地址作為公鑰,實(shí)現(xiàn)數(shù)據(jù)加密、身份認(rèn)證、通話加密、通道加密等安全應(yīng)用,并具有使用方便,易于部署的特點(diǎn),從而開(kāi)啟了普及密碼算法的大門。
7 ZUC祖沖之算法
祖沖之序列密碼算法是中國(guó)自主研究的**流密碼算法,**是運(yùn)用于移動(dòng)通信4G網(wǎng)絡(luò)中的國(guó)際標(biāo)準(zhǔn)密碼算法,該算法包括祖沖之算法(ZUC)、加密算法(128-EEA3)和完整性算法(128-EIA3)三個(gè)部分。目前已有對(duì)ZUC算法的優(yōu)化實(shí)現(xiàn),有專門針對(duì)128-EEA3和128-EIA3的硬件實(shí)現(xiàn)與優(yōu)化。
總結(jié)
密碼算法作為國(guó)家戰(zhàn)略資源,比歷史上任何時(shí)候都顯得更為關(guān)鍵。在大數(shù)據(jù)和云計(jì)算的時(shí)代,關(guān)鍵信息往往通過(guò)數(shù)據(jù)挖掘技術(shù)在海量數(shù)據(jù)中獲得,所以每一個(gè)人的信息保護(hù)都非常重要。
轉(zhuǎn)載鏈接:https://m.qukuaiwang.com.cn/news/2271.html
參考鏈接:https://zhuanlan.zhihu.com/p/34618269
總結(jié)
以上是生活随笔為你收集整理的[国密算法]一文了解国密算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [Leedcode][JAVA][按摩师
- 下一篇: [密码学基础][每个信息安全博士生应该知