国密算法和GmSSL介绍
GmSSL是一個開源的密碼工具箱,支持SM2/SM3/SM4/SM9/ZUC等國密(國家商用密碼)算法、SM2國密數字證書及基于SM2證書的SSL/TLS安全通信協議,支持國密硬件密碼設備,提供符合國密規范的編程接口與命令行工具,可以用于構建PKI/CA、安全通信、數據加密等符合國密標準的安全應用。GmSSL項目是OpenSSL項目的分支,并與OpenSSL保持接口兼容。因此GmSSL可以替代應用中的OpenSSL組件,并使應用自動具備基于國密的安全能力。GmSSL項目采用對商業應用友好的類BSD開源許可證,開源且可以用于閉源的商業應用。
? ? ? ?為了保障商用密碼的安全性,國家商用密碼管理辦公室制定了一系列密碼標準,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖沖之密碼算法(ZUC)那等等。其中SM1、SM4、SM7、祖沖之密碼(ZUC)是對稱算法;SM2、SM9是非對稱算法;SM3是哈希算法。目前,這些算法已廣泛應用于各個領域中。其中SM1、SM7算法不公開,調用該算法時,需要通過加密芯片的接口進行調用。
????SM2:基于橢圓曲線密碼(ECC)的公鑰密碼算法標準,提供數字簽名,密鑰交換,公鑰加密,用于替換RSA/ECDSA/ECDH?等國際算法
????SM3:消息摘要算法,哈希結果為?256 bits,用于替換?MD5/SHA1/SHA256?等國際算法
????SM4:對稱加密算法,密鑰長度和分組長度均為?128 bits,主要用于無線局域網標準,用于替換?DES/AES?等算法
?
????國密證書:這里的國密證書指的是使用國密算法(SM2-with-SM3)的標準?X509?格式證書,證書使用?SM3?作為哈希算法,使用?SM2?作為數字簽名算法
????國密?SSL:采用國密算法,符合國密標準的安全傳輸協議,也就是?SSL/TLS?協議的國密版本
GmSSL的編譯與安裝
GmSSL工程使用典型的Makefile管理工程,采用典型的linux C/C++程序編譯安裝方法
即可編譯安裝。
./config
make
make?test
make?install
編譯后三個功能組件:
Gmssl使用
gmssl help?可以查看具體的命令,?可以看到gmssl在原來openssl的基礎上,提供了國密的算法的支持。
??????Gmssl sms4 -help?子命令的使用方法
1)gmssl version
2)?對稱加解密SM4
????加密
?????gmssl sms4 -e?-in <yourfile> -out <yourfile>.sms4
????解密(標準輸出到屏幕,可以重定向)
????????gmssl sms4 -d?-in <yourfile>.sms4
3) 生成SM3摘要
??????gmssl sm3 <yourfile>
??????gmssl sm3 /etc/fstab
??????輸出:SM3(/etc/fstab)= fa221b32c629777672765ba50b085e94ec65e5e49815bc7c5d4da011f6e69939
4)sm4?加解密
A)生成SM2私鑰
gmssl sm2 -genkey -sms4 -out sm2.pem
B)導出SM2公鑰
gmssl sm2 -in sm2.pem -pubout -out sm2Pub.pem
C)加密解密
gmssl sm2utl -encrypt -in testfile -pubin -inkey??sm2Pub.pem -out jiami.out
gmssl sm2utl -decrypt -in jiami.out -inkey sm2.pem -out testfile.out
相關文獻或者資源:
總結
以上是生活随笔為你收集整理的国密算法和GmSSL介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 反射创建对象_如何应用Java反射技术灵
- 下一篇: 【算法设计与分析】07 算法的数学基础