个中SM1、SM7算法不公开,调用该算法时,须要通过加密芯片的接口进行调用;比较少人理解这些算法,在这里对这些国密算法做大略的科普1 SM1对称密码 SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 比特,算法安全保密强度及干系软硬件实现性能与 AES 相称,算法不公开,仅以IP核的形式存在于芯片中。采取该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛运用于电子政务、电子商务及国民经济的各个运用领域(包括国家政务通、警务通等主要领域)。2 SM2椭圆曲线公钥密码算法 SM2算法便是ECC椭圆曲线密码机制,但在署名、密钥交流方面不同于ECDSA、ECDH等国际标准,而是采纳了更为安全的机制。其余,SM2推举了一条256位的曲线作为标准曲线。SM2标准包括总则,数字署名算法,密钥交流协议,公钥加密算法四个部分,并在每个部分的附录详细解释了实现的干系细节及示例。SM2算法紧张考虑素域Fp和F2m上的椭圆曲线,分别先容了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点打算算法。然后先容了编程措辞中的数据转换,包括整数和字节串,字节串和比特串,域元素和比特串,域元素和整数,点和字节串之间的数据转换规则。
详细解释了有限域上椭圆曲线的参数天生以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。末了给椭圆曲线上密钥对的天生以及公钥的验证,用户的密钥对为(s,sP),个中s为用户的私钥,sP为用户的公钥,由于离散对数问题从sP难以得到s,并针对素域和二元扩域给出了密钥对天生细节和验证办法。总则中的知识也适用于SM9算法。
在总则的根本上给出了数字署名算法(包括数字署名天生算法和验证算法),密钥交流协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述,算法流程和干系示例。数字署名算法,密钥交流协议以及公钥加密算法都利用了国家密管理局批准的SM3密码杂凑算法和随机数发生器。数字署名算法,密钥交流协议以及公钥加密算法根据总则来选取有限域和椭圆曲线,并天生密钥对。SM2算法在很多方面都优于RSA算法(RSA发展得早运用普遍,SM2领先也很自然),与RSA安全性比拟如下图

3 SM3杂凑算法 SM3密码杂凑(哈希、散列)算法给出了杂凑函数算法的打算方法和打算步骤,并给出了运算示例。此算法适用于商用密码运用中的数字署名和验证,认证码的天生与验证以及随机数的天生,可知足多种密码运用的安全需求。在SM2,SM9标准中利用。此算法对输入长度小于2的64次方的比特,经由添补和迭代压缩,天生长度为256比特的杂凑值,个中利用了异或,模,模加,移位,与,或,非运算,由添补,迭代过程,扩展和压缩函数所构成。详细算法及运算示例见SM3标准。4 SM4对称算法 此算法是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采取32轮非线性迭代构造。解密算法与加密算法的构造相同,只是轮密钥的利用顺序相反,解密轮密钥是加密轮密钥的逆序。此算法采取非线性迭代构造,每次迭代由一个轮函数给出,个中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。个中rki为轮密钥,合成置换T组成轮函数。轮密钥的产生与上图流程类似,由加密密钥作为输入天生,轮函数中的线性变换不同,还有些参数的差异。SM4算法的详细描述和示例见SM4标准。5 SM7对称密码SM7算法,是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7适用于非打仗式IC卡,运用包括身份识别类运用(门禁卡、事情证、参赛证),票务类运用(大型赛事门票、展会门票),支付与通卡类运用(积分消费卡、校园一卡通、企业一卡通等)。6 SM9标识密码算法为了降落公开密钥系统中密钥和证书管理的繁芜性,以色列科学家、RSA算法发明人之一Adi Shamir在1984年提出了标识密码(Identity-Based Cryptography)的理念。标识密码将用户的标识(如邮件地址、手机号码、QQ号码等)作为公钥,省略了交流数字证书和公钥过程,使得安全系统变得易于支配和管理,非常适宜端对端离线安全通讯、云端数据加密、基于属性加密、基于策略加密的各种场合。2008年标识密码算法正式得到国家密码管理局颁发的商密算法型号:SM9(商密九号算法),为我国标识密码技能的运用奠定了坚实的根本。SM9算法不须要申请数字证书,适用于互联网运用的各种新兴运用的安全保障。如基于云技能的密码做事、电子邮件安全、智能终端保护、物联网安全、云存储安全等等。这些安全运用可采取手机号码或邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全运用,并具有利用方便,易于支配的特点,从而开启了遍及密码算法的大门。7 ZUC祖冲之算法祖冲之序列密码算法是中国自主研究的流密码算法,是利用于移动通信4G网络中的国际标准密码算法,该算法包括祖冲之算法(ZUC)、加密算法(128-EEA3)和完全性算法(128-EIA3)三个部分。目前已有对ZUC算法的优化实现,有专门针对128-EEA3和128-EIA3的硬件实现与优化。密码算法作为国家计策资源,比历史上任何时候都显得更为关键。在大数据和云打算的时期,关键信息每每通过数据挖掘技能在海量数据中得到,以是每一个人的信息保护都非常主要。