国密算法的科普
一、国密算法的背景
1、国家密码管理局
1、密码算法是保障信息安全的核心技术,尤其是我国最关键的银行业核心领域长期以来都是沿用MD5、SHA-256、3DES、AES、RSA等这些国际通用的密码算法体系及相关标准。随着计算机性能提升,原本被认为安全的加密算法,也越来越容易破解。
•1997年,RSA公司破解DES用时76天,1998年用时41天,1999年EFF仅用22小时。
•2004年,美国加州圣巴巴拉召开的国际密码大会上,王小云宣读了自己和研究团队对于MD4、MD5、HAVAL-128和RIPEMD四个国际著名密码算法的破译结果,实际是碰撞算法
•2010年5月,密歇根大学宣布发现漏洞导致RSA 1024位私钥加密被破解
2、随着金融安全上升到国家安全高度,近年来国家有关机关和监管机构站在国家安全和长远战略的高度提出了推动国密算法应用实施、加强行业安全可控的要求。摆脱对国外技术和产品的过度依赖,建设行业网络安全环境,增强我国行业信息系统的“安全可控”能力显得尤为必要和迫切。
3、基于这种大背景下,国家密码管理局(国家商用密码管理办公室与中央密码工作领导小组办公室)逐步推出公布国内自主可控的商用密码算法标准,即国密系列算法。
2、国密和商密
国密算法是国家密码管理局制定颁布的一系列的密码标准,即已经被国家密码局认定的国产密码算法,又称商用密码(是指能够实现商用密码算法的加密,解密和认证等功能的技术),保障在金融,医疗等领域的信息传输安全。
国密与商密,一般认为是同义词,是指由国家密码管理局公布认定的系列国产商用密码算法。
根据1999年10月7日国务院发布实施的《商用密码管理条例》第一章第二条规定:“本条例所称商用密码,是指对不涉及国家秘密内容的信息进行加密保护或者安全认证所使用的密码技术和密码产品”。
3、国密算法
常见的国密算法主要有以下几种:
•SM1:对称加密算法,与AES相当,算法不公开,专供硬件,主要用于智能IC卡。
•SM2:非对称加密算法,基于ECC,强于RSA,算法公开,用于数字签名领域。
•SM3:杂凑(摘要)算法,对标SHA-256,算法公开。
•SM4:对称算法,无线局域网标准的分组数据算法,算法公开,密钥和分组长度均为128位。
•SM7:对称加密,算法不公开,专供硬件,主要用于非接触式IC卡。
•SM9:非对称加密,算法公开,相对于SM2因公钥与用户身份信息有关,省去了证书管理。
•ZUC:同步序列算法,我国第一个国际密码标准算法,主要用于LTE通信。
其中 SM2、SM3、SM9,ZUC都已经是ISO/IEC国际标准。
4、相关政策
2014年国务院办公厅第6号文件,提出2020年实现国产密码在金融领域的全面应用。
2014年9月3日,银监会发文《关于应用安全可控信息技术加强银行网络安全和信息化建设的指导意见》指出“优先应用安全可控信息技术”,并从2015年起,各银行金融机构对安全可控信息技术的应用不低于15%的比例逐年增加,2019年达到不低于75%。
2015年1月13日,人民银行印发《关于推动移动金融技术创新健康发展的指导意见》中指出“优先采用自主可控的产品和密码算法”。
二、GmSSL
1、GmSSL项目
![image-20220315101832346](/Users/renwei/Library/Application Support/typora-user-images/image-20220315101832346.png)
GmSSL是一个开源的密码工具箱,支持SM2/SM3/SM4/SM9/ZUC等国密算法、SM2国密数字证书及基于SM2证书的SSL/TLS安全通信协议,支持国密硬件密码设备,提供符合国密规范的编程接口与命令行工具,可以用于构建PKI/CA、安全通信、数据加密等符合国密标准的安全应用。
GmSSL项目由北京大学关志副研究员的密码学研究组开发维护,项目源码托管于GitHub。自2014年发布以来,GmSSL已经在多个项目和产品中获得部署与应用,并获得2015年度“一铭杯”中国Linux软件大赛二等奖(年度最高奖项)与开源中国密码类推荐项目。GmSSL项目的核心目标是通过开源的密码技术推动国内网络空间安全建设。
2、GmSSL 和 openSSL关系
GmSSL项目是OpenSSL项目的分支,并与OpenSSL保持接口兼容。因此GmSSL可以替代应用中的OpenSSL组件,并使应用自动具备基于国密的安全能力。GmSSL项目采用对商业应用友好的类BSD开源许可证,开源且可以用于闭源的商业应用。