我国的商用密码算法
国密算法简介

版本人员时间升级内容❝课程目的◦了解国密算法的算法原理◦了解SM2、SM3、SM4的算法原理◦了解国密卡片相关API❝目标人员◦移动金融初级开发人员❝前置课程◦RSA密钥体系◦DES密钥体系❝基本知识❝对称加密算法SM2❝非对称加密算法SM4❝摘要算法SM3定义国密即国家密码局认定的国产密码算法,即商用密码,主要完成加密、解密、签名、验签、摘要等操作。
常用国密算法种类算法类型密钥长度输入数据要求输出数据特征SM2非对称加密算法公钥64字节,私钥32字节。
长度小于(2^32-1)*32=137,438,953,440字节(大约1374亿多)。
输出长度是明文长度+96,有随机数参数,每次密文不同。
SM3摘要算法--无要求。
固定长度,32字节。
SM4对称加密算法16字节分组长度16字节,需要填充到16字节整数倍。
有CBC和ECB两种模式,CBC需要设定初始值。
长度为16字节整数倍。
国密算法还有SM1、SM7、SSF33、祖冲之密码对称加密算法,SM9非对称加密算法。
国密算法与其他算法比较非对称加密算法SM2与RSA比较国密算法与其他算法比较SM2与RSA算法的一些统计数据RSA密钥强度(长度)SM2密钥强度(长度)破解时间(年)521比特106比特104(已破解)768比特132比特108(已破解)1024比特160比特10112048比特210比特1020国密算法与其他算法比较SM2与RSA算法的一些统计数据算法签名速度验签速度1024RSA2792次/秒51224次/秒2048RSA455次/秒15122次/秒256SM24095次/秒871次/秒国密算法与其他算法比较SM4与DES较从算法上看,国产SM4算法在计算过程中增加非线性变换,理论上能大大提高其算法的安全性,并且由专业机构进行了密码分析,民间也对21轮SM4进行了差分密码分析,结论均为安全性较高。
国密卡实现API类层次图class ng.Object◦class com.guomi.GMCipher◦class com.guomi.GMKeyBuilder◦class com.guomi.GMKeyPair◦class com.guomi.GMMessageDigest ◦class com.guomi.GMSignature◦class com.guomi.GMCipherExtend◦class com.guomi.GMSM2KeyExchange国密卡实现的API接口interface javacard.security.Key◦interface javacard.security.SecretKeyinterface com.guomi.SM1Keyinterface com.guomi.SM4Keyinterface com.guomi.SM7Keyinterface com.guomi.SSF33Key◦interface javacard.security.PrivateKey interface com.guomi.SM2PrivateKey ◦interface javacard.security.PublicKeyinterface com.guomi.SM2PublicKey国密卡实现的API接口interface com.unionpay.guomi.SM2Key ◦interface com.guomi.SM2PrivateKey◦interface com.guomi.SM2PublicKey目录❝算法原理❝加密❝解密❝签名❝验签算法原理❝国密SM2规定椭圆曲线参数(固定值,256比特)◦p :FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF◦a:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC◦b:28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93◦n:FFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123◦gx:32C4AE2C1F1981195F9904466A39C9948FE30BBFF2660BE1715A4589334C74C7◦gy:BC3736A2F4F6779C59BDCEE36B692153D0A9877CC62A474002DF32E52139F0A0❝各个参数意义如下椭圆曲线方程:y2=x3+ax+b,把它定义在Fp上, 要求a,b满足:4a3+27b2≠0(mod p)那么,p 、a 、b 用来确定一条椭圆曲线(确切来说应该是有限域Fp),G(gx,gy)为基点,n为点G 的阶,另外,还有一个非必要参数h,是椭圆曲线上所有点的个数m与n相除的整数部分;加密SM2公私玥结构、◦SM2公私玥关系P=d*G 或者(x ,y )=d*(gx ,gy ),即公钥P 是基点G 的d 倍点。
我国在zuc序列密码算法

我国在zuc序列密码算法
ZUC(祖冲之)序列密码算法是我国自主研发的一种序列密码算法,该算法主要用于数据的机密性和完整性保护,是实现网络空间安全的基础算法和核心技术。
ZUC算法已成为国际标准ISO/IEC 29189:2017,标志着我国在密码算法领域取得了重要突破。
ZUC算法主要由LFSR(线性反馈移位寄存器)、BR(比特重组)和F (非线性函数)三部分组成。
输入为128位长的密钥和128位长的初始化向量,输出为(n, n),其中n为节拍数(轮数)。
在ZUC算法的实现过程中,首先进行初始化阶段,然后进行多轮迭代,每轮迭代包括以下步骤:
1. 线性反馈移位寄存器(LFSR)操作:根据初始化向量和密钥进行LFSR操作,生成新的状态。
2. 比特重组(BR)操作:将LFSR生成的状态进行比特重组,得到新的数据。
3. 非线性函数(F)操作:将BR操作得到的新数据作为输入,经过非线性函数F处理,生成输出。
4. 输出:经过一定的轮数迭代后,ZUC算法输出一系列32位长的字串,用于加密和解密数据。
ZUC算法在我国商用密码体系中具有重要地位,广泛应用于移动通信、物联网、安全认证等领域。
其成为国际标准,不仅提升了我国在全球密码算法领域的地位,也为全球网络安全提供了更为可靠的技术保障。
国产商用密码算法及其相关标准介绍

标准咨询国产商用密码算法及其相关标准介绍谢宗晓(中国金融认证中心)董坤祥(山东财经大学管理科学与工程学院)甄杰(重庆工商大学管理科学与工程学院)1 概述《中华人民共和国密码法》第六条中规定:密码分为核心密码、普通密码和商用密码。
同时,在第七条和第八条中规定:核心密码、普通密码属于国家秘密,商用密码用于保护不属于国家秘密的信息。
因此,在常见应用中,商用密码得到了大面积的推广,以至于,在实践中,提到“国密”,经常就被默认为国产商用密码算法。
在现代密码系统中,密码算法、密码协议和密钥管理是三个不可或缺的部分,而在这三者之中,最为核心的毫无疑问就是密码算法。
虽然实践证明,绝大部分的安全漏洞都产生于实现和部署过程中,但是,算法的安全与否,直接决定了一个密码系统的基础是否安全。
例如,选用SHA-1、MD4、MD5、RC4和密钥长度小于2048位的RSA 等不安全的算法,不可能实现安全的密码系统。
已经发布的国产商用密码算法,按照类别可以分为:1)对称密码算法,主要包括ZUC 和SM4;2)非对称密码算法,主要包括SM2和SM9;3)密码杂凑算法,主要包括SM3。
2 对称密码算法对称密码(symmetric cryptography)是用相同的密钥(或方法)进行加密解密,这在逻辑上非常清晰,也最直观,有时候也被称之为共享密钥密码,对称密码算法的基本过程如图1所示。
1) 注意,RC4算法已经证明不安全。
图1 对称密码的工作过程已经发布国产商用密码算法中属于对称密码算法的有ZUC 和SM4。
ZUC(祖冲之密码算法)属于序列密码,也称为“流密码”,与之类似的国外密码算法如RC41)。
ZUC 对应的国家标准、行业标准,如表1所示。
SM4属于分组密码,也称为“块密码”,与之类似的国外密码算法如DES(数据加密标准),TDEA/3DES(三重数据加密标准)以及AES(高级加密标准)等。
SM4对应的国家标准、行业标准,如表2所示。
中国商用密码算法

中国商用密码算法是中国的商用密码标准,用于保护电子交易、远程登录、网上银行等数据安全。
中国商用密码算法包括SM9标识密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法和SM9标识密码算法等。
SM9标识密码算法是一种基于标识的密码算法,它利用用户的标识信息进行加密和解密操作。
这种算法可以保证只有标识信息匹配的用户才能进行通信,从而提高了通信的安全性。
SM2椭圆曲线公钥密码算法是一种基于椭圆曲线的公钥密码算法,利用椭圆曲线的性质进行加密和解密操作。
相比于传统的基于大数因数分解的公钥密码算法,SM2算法具有更高的安全性。
SM3密码杂凑算法是一种用于生成数字签名的密码杂凑算法,它将任意长度的数据转化为固定长度的哈希值,并保证不同的数据生成的哈希值不同。
SM3算法可以用于验证数据的完整性和真实性。
SM4分组密码算法是一种分组密码,它将明文分成固定长度的组,并利用密钥进行加密和解密操作。
相比于传统的基于替换的密码算法,SM4算法具有更高的安全性。
除了上述的商用密码算法外,中国还制定了一系列相关的标准和规范,以确保商用密码的安全性和可靠性。
同时,中国也在积极推动商用密码的应用和推广,以提高电子交易、远程登录、网上银行等数据的安全性。
总的来说,中国商用密码算法是一种安全可靠的密码标准,可以保护数据的安全性和完整性。
随着互联网和电子商务的快速发展,商用密码算法的应用也越来越广泛,对于保障国家安全和经济发展具有重要意义。
我国商用密码算法体系

我国商用密码算法体系
我国的商用密码算法体系包括SM1、SM2、SM3、SM4、SM7、SM9及祖冲之算法等。
其中,SM2、SM3、SM4最为常用,用于替代RSA、DES、3DES、SHA等国际通用密码算法体系。
1. SM1是国家密码管理局公布的密码算法,它是一种分组密码,用于数据加密和数字签名。
2. SM2是一种椭圆曲线公钥密码算法,其安全性基于椭圆曲线离散对数难题。
3. SM3是一种密码杂凑算法,适用于商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
4. SM4是一种分组密码,其安全性基于数据加密标准(DES)的分组密码结构。
除此之外,我国还陆续公布了其他商用密码算法,如SM9等。
这些算法在安全性、效率和应用范围等方面都有所不同,可以根据具体需求进行选择和使用。
同时,我国商用密码的管理也更加科学化,与国际接轨。
商用密码的算法

商用密码算法是一种应用于商业领域的密码算法,其主要目的是确保数据的机密性、完整性和可用性。
这种算法在保护企业的敏感信息和资产方面起着至关重要的作用。
商用密码算法通常采用对称加密算法和非对称加密算法。
对称加密算法使用相同的密钥进行加密和解密,具有速度快、效率高的优点,但需要安全地传输密钥。
常见的对称加密算法包括AES、DES等。
非对称加密算法使用不同的密钥进行加密和解密,其中公钥用于加密,私钥用于解密,具有更高的安全性,但计算复杂度较高。
常见的非对称加密算法包括RSA、ECC等。
在实际应用中,商用密码算法还需要考虑其他因素,如密钥管理、算法实现和标准化等。
密钥管理是商用密码算法中最重要的部分之一,必须采取严格的措施来保护密钥的安全性。
算法实现必须经过充分的测试和验证,以确保其正确性和安全性。
标准化也是商用密码算法应用的重要方面,只有符合国际标准的算法才能被广泛接受和应用。
随着技术的不断发展和攻击手段的不断更新,商用密码算法也需要不断更新和改进。
一些新型的商用密码算法,如基于多变量、基于编码和基于格的密码算法等,正在不断发展并应用于实际场景中。
总之,商用密码算法是保护企业信息安全的重要手段之一,其安全性和可靠性对于企业的稳健运营和长期发展具有重要意义。
因此,在选择和应用商用密码算法时,必须充分考虑其技术特点和应用场景,并采取严格的安全措施来确保其安全性和可靠性。
商用密码算法 国际标准

商用密码算法国际标准在当今信息时代,数据的安全性成为了各个行业和个人所面临的重要问题。
为了保护敏感数据的安全,商用密码算法被广泛应用于信息安全领域。
本文将介绍商用密码算法的概念及其在国际上的标准化情况。
1. 商用密码算法的定义商用密码算法是指用于加密和解密敏感数据的数学算法。
其目的是通过将原始数据转化为看似无规律的数据,以达到保护数据的安全性。
商用密码算法需要满足以下几个方面的要求:1) 提供足够的安全性,即使攻击者能够获取到一部分加密的数据,也无法推导出原始数据。
2) 必须具备高效性,即在提供足够安全性的前提下,能够在合理的时间内进行加密和解密操作。
3) 应该是可信的,即商用密码算法的设计和实现需要经过广泛的评审和验证,确保其没有后门以及其他漏洞。
2. 商用密码算法的国际标准化为了统一密码算法的应用和推广,国际上已经制定了并广泛采用了一系列商用密码算法的标准。
以下为几个典型的国际标准化组织和其所推荐的商用密码算法:2.1. NIST密码标准(美国国家标准与技术研究院)NIST密码标准是美国国家标准与技术研究院制定的商用密码算法标准。
其中最著名的是AES(Advanced Encryption Standard)算法,它是一种对称密钥算法,已被广泛应用于商业和政府机构的数据加密领域。
2.2. ISO密码标准(国际标准化组织)ISO密码标准由国际标准化组织制定,其中最著名的是ISO/IEC 18033标准。
该标准涵盖了多种商用密码算法,包括对称密钥算法、公钥算法以及基于椭圆曲线的密码算法等。
2.3. ECMA密码标准(欧洲计算机制造商协会)ECMA密码标准由欧洲计算机制造商协会制定,其最著名的密码算法是ECMA-340标准,该标准定义了一种基于RSA密码体制的公钥算法。
3. 商用密码算法的应用领域商用密码算法广泛应用于各个行业和领域,其中最常见的应用包括:3.1. 网络通信安全商用密码算法在保护网络通信安全方面发挥了重要的作用。
商密算法SM2、SM3、SM4的用途和原理

商密算法SM2、SM3、SM4的⽤途和原理SM1对称密码SM1 算法是分组密码算法,分组长度为128位,密钥长度都为 128 ⽐特,算法安全保密强度及相关软硬件实现性能与 AES 相当,算法不公开,仅以IP核的形式存在于芯⽚中。
采⽤该算法已经研制了系列芯⽚、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,⼴泛应⽤于电⼦政务、电⼦商务及国民经济的各个应⽤领域(包括国家政务通、警务通等重要领域)。
SM2椭圆曲线公钥密码算法SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换⽅⾯不同于ECDSA、ECDH等国际标准,⽽是采取了更为安全的机制。
另外,SM2推荐了⼀条256位的曲线作为标准曲线。
SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及⽰例。
SM2算法主要考虑素域Fp和F2m上的椭圆曲线,分别介绍了这两类域的表⽰,运算,以及域上的椭圆曲线的点的表⽰,运算和多倍点计算算法。
然后介绍了编程语⾔中的数据转换,包括整数和字节串,字节串和⽐特串,域元素和⽐特串,域元素和整数,点和字节串之间的数据转换规则。
详细说明了有限域上椭圆曲线的参数⽣成以及验证,椭圆曲线的参数包括有限域的选取、椭圆曲线⽅程参数、椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。
最后给椭圆曲线上密钥对的⽣成以及公钥的验证,⽤户的密钥对为(s,sP),其中s为⽤户的私钥,sP为⽤户的公钥,由于离散对数问题从sP难以得到s,并针对素域和⼆元扩域给出了密钥对⽣成细节和验证⽅式。
总则中的知识也适⽤于SM9算法。
在总则的基础上给出了数字签名算法(包括数字签名⽣成算法和验证算法),密钥交换协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述,算法流程和相关⽰例。
数字签名算法、密钥交换协议以及公钥加密算法都使⽤了国家密管理局批准的SM3密码杂凑算法和随机数发⽣器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
我国的商用密码算法
密码算法包括对称密码算法、公钥密码算法和杂凑算法。
为了保障商用密码安全,国家密码管理部门制定了一系列密码算法标准,包括SM2、SM3、SM4、SM9、祖冲之密码算法(即“ZUC算法”)等。
其中SM2、SM9为公钥密码算法,SM3为杂凑算法,其余均为对称密码算法。
具体介绍如下:
- SM2算法基于椭圆曲线上离散对数计算困难问题,密钥长度为256比特,包括SM2加密算法和SM2数字签名算法。
- SM9是一种基于身份标识的公钥密码算法,也被称为标识密码,采用256比特的椭圆曲线。
- SM3算法摘要长度为256比特,利用了简单运算的充分多次迭代,其安全性及效率与SHA-256相当。
SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等。
- SM4为分组密码,分组长度和密钥长度为128比特。
SM4算法是SM系列算法中使用最为广泛的密码算法。
- ZUC算法是序列密码算法,采用128比特的主密钥和128比特初始向量作为输入参数。
该算法速度快,常用于移动通信4G网络。
目前,我国SM系列密码算法大多已经纳入ISO/IEC国际标准,ZUC算法已经作为国际第四代移动通信加密标准,这标志着我国密码算法国际标准体系已初步成型,为有效保障网络空间安全贡献了中国智慧,提供了中国方案。