区块链兄弟社区,区块链科技专业问答先锋,中国区块链科技爱好者聚集地
原始链接:http://t.cn/EqyGCD6
本文约2600字+,阅读需要15分钟
版权归作者所有。商业转载请联系作者授权,非商业转载请注明出处。
众所周知,为了保证商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,其中SM1、SM2、SM3、SM4、SM7、SM9、祖冲之的密码算法都是对称算法;SM2和SM9是不对称算法。SM3是一种哈希算法。目前,这些算法已经广泛应用于各个领域,预计有一天,使用国家秘密算法的区块链应用将会出现。其中,SM1和SM7算法不公开,调用该算法时需要通过加密芯片的接口调用;很少有人了解这些算法,这里我们对这些国家秘密算法做简单的科普
1 SM1对称密码
SM1算法是一种分组密码算法,分组长度为128位,密钥长度为128位。其安全强度和相关软硬件实现性能与AES相当,但算法不公开,仅以ip核的形式存在于芯片中。
利用该算法,开发了芯片、智能IC卡、智能密钥、加密卡、加密机等一系列安全产品,广泛应用于电子政务、电子商务和国民经济的各个应用领域。
2 SM2椭圆曲线公钥密码算法
SM2算法是ECC椭圆曲线密码体制,但在签名和密钥交换方面不同于ECDSA、ECDH等国际标准,采用了更安全的机制。此外,SM2推荐256位曲线作为标准曲线。
SM2标准包括一般规则、数字签名算法、密钥交换协议和公钥加密算法四个部分,相关细节和实现示例在各部分附录中有详细描述。
SM2算法主要考虑素域Fp和F2m上的椭圆曲线,介绍了这两个域的表示和运算,以及域上椭圆曲线的点的表示和运算以及多点的计算算法。然后介绍了编程语言中的数据转换,包括整数和字节串、字节串和位串、域元素和位串、域元素和整数,以及点和字节串之间的数据转换规则。
详细描述了有限域上椭圆曲线参数的生成和验证。椭圆曲线的参数包括有限域的选择、椭圆曲线方程的参数、椭圆曲线组基点的选择等。,并给出了便于验证的选择标准。最后给出了椭圆曲线上密钥对的生成和公钥的验证,其中S是用户的私钥,sP是用户的公钥。由于离散对数问题,很难从sP中得到S。给出了素数域和二进制扩展域密钥对生成和验证方法的细节。一般规则中的知识也适用于SM9算法。
在一般原理的基础上,给出了数字签名算法、密钥交换协议和公钥加密算法,并在各部分给出了算法描述、算法流程和相关实例。
数字签名算法、密钥交换协议和公钥加密算法均采用国家秘密管理局批准的SM3密码哈希算法和随机数发生器。数字签名算法、密钥交换协议和公钥加密算法根据一般规则选择有限域和椭圆曲线,生成密钥对。
SM2算法在很多方面都优于RSA算法,将其与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算法的发明者之一阿迪·萨莫尔于1984年提出了身份密码的概念。身份密码以用户的身份作为公钥,省略了交换数字证书和公钥的过程,使得安全系统易于部署和管理。非常适合端到端离线安全通信、云数据加密、基于属性的加密、基于策略的加密等各种场合。2008年,身份密码算法被国家密码管理局正式授予SM9,为身份密码技术在我国的应用奠定了坚实的基础。
SM9算法不需要申请数字证书,适用于互联网应用的各种新兴应用的安全。如基于云技术的密码服务、电子邮件安全、智能终端防护、物联网安全、云存储安全等。这些安全应用可以利用手机号码或电子邮件地址作为公钥,实现数据加密、身份认证、通话加密、通道加密等安全应用,具有使用方便、部署容易的特点,从而为密码算法的普及打开了大门。
7 ZUC祖冲之算法
祖冲之序列密码算法是我国自主研发的流密码算法,是应用于移动通信4G网络的国际标准密码算法。该算法包括三个部分:祖冲之算法、加密算法和完整性算法。目前,我们已经对ZUC算法进行了优化,并专门针对128-EEA3和128-EIA3实现和优化了硬件。
作为国家战略资源,密码算法比历史上任何时候都更加关键。在大数据和云计算时代,关键信息往往是通过数据挖掘技术从海量数据中获取的,因此每个人的信息保护都非常重要。
文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。