国密算法 国家商用密码算法简介

合集下载

国产商用密码算法及其相关标准介绍

国产商用密码算法及其相关标准介绍

标准咨询国产商用密码算法及其相关标准介绍谢宗晓(中国金融认证中心)董坤祥(山东财经大学管理科学与工程学院)甄杰(重庆工商大学管理科学与工程学院)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所示。

国密应用原理

国密应用原理

国密应用原理国密,即国家密码局认定的国产密码算法,主要包括SM2、SM3、SM4等加密算法。

这些算法被广泛应用于政务、金融、电子商务等领域,以保护敏感信息的安全。

下面详细介绍国密的应用原理:1.SM2算法:SM2是一种基于椭圆曲线的公钥密码算法,包括数字签名、密钥交换和加密三种功能。

在应用中,SM2主要用于生成密钥对、数字签名和加密通信。

发送方使用接收方的公钥对信息进行加密,接收方使用自己的私钥进行解密,确保信息在传输过程中的安全。

2.SM3算法:SM3是一种密码杂凑算法,用于生成数据的摘要。

在应用中,SM3主要用于验证数据的完整性和身份认证。

发送方将数据通过SM3算法生成摘要,然后与原始数据一起发送。

接收方收到数据后,使用相同的SM3算法再次生成摘要,并与发送方提供的摘要进行对比,以验证数据的完整性。

3.SM4算法:SM4是一种分组密码算法,用于对数据进行加密和解密。

在应用中,SM4主要用于保护数据的机密性。

发送方使用密钥将数据通过SM4算法进行加密,生成密文。

接收方使用相同的密钥和SM4算法对密文进行解密,还原出原始数据。

国密算法的应用原理可以概括为以下几点:1.使用国家认定的加密算法:国密算法经过国家密码局的认证和授权,具有较高的安全性和可靠性。

在应用中,选择使用国密算法可以确保敏感信息的安全。

2.生成密钥对:在公钥密码算法中,需要生成一对密钥,即公钥和私钥。

公钥用于加密和验证签名,私钥用于解密和生成签名。

密钥对的生成需要遵循一定的算法和规则,以确保其安全性和随机性。

3.加密通信:在通信过程中,使用加密算法对敏感信息进行加密,确保信息在传输过程中的安全。

接收方使用相应的解密算法对密文进行解密,还原出原始信息。

4.验证身份和完整性:使用杂凑算法和签名算法可以验证数据的完整性和身份认证。

发送方将数据通过杂凑算法生成摘要,并使用私钥对摘要进行签名。

接收方使用公钥验证签名并重新生成摘要进行对比,以验证数据的完整性和发送方的身份。

数据存储及码流数据传输中的国密算法安全应用

数据存储及码流数据传输中的国密算法安全应用

数据存储及码流数据传输中的国密算法安全应用1. 引言1.1 数据存储及码流数据传输中的国密算法安全应用在当今信息化时代,数据安全已经成为各个领域中不可忽视的重要问题。

特别是在数据存储和码流数据传输过程中,数据的安全性显得尤为关键。

为了保障数据在存储和传输过程中的安全性,国密算法应运而生,成为一种重要的加密算法。

国密算法是指我国自主设计、自主开发推出的密码算法,其安全性经过严格测试和认证。

在数据存储方面,一些重要的数据可能会被存储在云端或其他存储设备中,国密算法可以用来加密这些数据,防止被未经授权的用户访问和篡改。

在码流数据传输中,国密算法可以用来加密数据传输过程中的数据流,确保数据传输的安全性。

通过对国密算法在数据存储和码流数据传输过程中的应用进行分析和评估,可以发现国密算法在提高数据安全性方面具有显著的效果。

未来,随着数据安全需求的不断增加,国密算法有望在数据安全领域得到更广泛的应用,为数据安全保驾护航。

2. 正文2.1 国密算法概述国密算法,全称为商用密码基础设施的分组密码算法,是中国自主研发的密码算法标准。

国家密码管理局制定的商用密码算法标准采用了SM1、SM2、SM3、SM4四种算法。

SM1是分组密码算法,SM2是非对称加密算法,SM3是杂凑算法,SM4是分组密码算法。

这些算法经过严格的安全性验证和性能测试,已经成为中国境内商用密码算法标准。

国密算法在数据存储和码流数据传输中发挥着重要作用。

在数据存储中,使用SM4算法可以对数据进行加密存储,保护数据的机密性和完整性。

SM3算法可以对数据进行杂凑运算,验证数据的真实性和完整性。

在码流数据传输中,SM2算法可以用于对数据进行加密传输,保护数据的安全性。

SM1算法可以用于对数据进行加密处理,确保数据在传输过程中不被篡改。

国密算法在数据存储及码流数据传输中提供了安全可靠的加密解决方案,帮助用户保护数据的安全性和机密性。

随着国密算法的不断发展和完善,相信它在未来的数据安全领域将会得到更广泛的应用。

国密算法介绍

国密算法介绍

国密算法介绍
一、总体介绍
1、国密即国家密码局认定的国产密码算法。

主要有SM1,SM2,SM3,SM4。

密钥长度和分组长度均为 128 位。

2、SM1 为对称加密,其加密强度与 AES 相当。

该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

3、SM2 为非对称加密,基于ECC。

该算法已公开。

由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。

ECC 256位(SM2 采用的就是 ECC 256 位的一种)安全强度比 RSA 2048 位高,但运算速度快于RSA。

4、SM3 消息摘要。

可以用 MD5 作为对比理解。

该算法已公开。

校验结果为 256 位。

5、SM4 无线局域网标准的分组数据算法。

对称加密,密钥长度和分组长度均为128位。

二、SM2
1、SM2 算法和 RSA 算法比较
SM2 性能更优更安全:密码复杂度高、处理速度快、机器性能消耗更小。

2、生成 SM2 私钥
openssl ecparam -genkey -name SM2 -out priv.key
3、生成 SM2 公钥
openssl ec -in priv.key -pubout -out
pub.key (SAW:Game Over!)。

网络安全之国密算法

网络安全之国密算法

国密算法国密算法总结概念说明国密算法是指我国定制的商用加密算法,用于金融行业。

包括SM1、SM2、SM3、SM4。

其中SM1是硬件实现的算法,我里不与讨论,而SM2、SM3、SM4等可以使用软件实现。

国际算法比较国际加密算法:RSA、SHA/MD5、DES等常用算法,RSA是非对称算法(签名和验签),SHA/MD5为摘要算法(HASH值),DES为对称加密(数据加密)。

国密算法的SM2对应于RSA,SM2对应于SHA,SM3对应于DES。

非对称算法 RSA密钥目前建议使用2048 BIT(公钥明文256 byte 私钥明文512 byte),生成的加密数据为密钥长度的整数倍,签名数据与密钥长度一致。

SM2密钥长度为32字节(公钥明文64字节,私钥明文32字节),生成的加密数据结果为32*3+明文长度,签名数据与私钥长度一致64字节。

对称加密DES加密的密钥必须是8/16/32的倍数对应于DES/3DES/3DES加密,输入数据长度必须是密钥长度的整数倍;而SM4的密钥长度是16字节,输入数据必须是16字节的倍数。

摘要算法 SM3计算结果为32字节的HASH值。

关键参数SM2 椭圆曲线参数(规范推荐值)、userID(推荐值:1234567812345678)、私钥、公钥(可通过私钥生成)知识点SM2密钥对的生成是基于一些算法参数,这些数据在规范内是有推荐值的。

所以在使用SM2算法的前提是双方都使用的是相同的推荐参数,否则计算结果是不会对的。

具体参数可查看规范。

SM3对称加密算法的密文数据,如果长度为明文长度+1(16字节的整数倍+1),则第一个字节是一个标识(0x04)。

所以在处理SM3解密的时候要注意,有些工具或API在解密时可能需要加上标识符。

SM2加密结果数据的组成:1 BYTE(0x04) + 64 BYTE(2个大整数) + 密文(与明文长度相同) + 32 BYTE(密文的HASH值)。

我国商用密码SMS4

我国商用密码SMS4

8、安全性
①国家专业机构设计。算法简洁,以字和字节为处理单位, 对合运算,符合当今分组密码主流。 ②专业机构进行了密码分析,因此是安全的。 ③民间学者对21轮SMS4进行了差分密码分析。 ④尚需经过实践检验。
三、我国商用密码SMS4
作业:
1、分析SMS4在密码结构上与DES、AES有何异同? 2、根据SMS4算法,编程研究SMS4的S盒的以下特性:
①明文输入改变1位,密文输出平均改变多少位? ②S盒输入改变1位,S盒输出平均改变多少位? ③L输入改变1位,L输出平均改变多少位? ④对于一个输入,连续施加S盒变换,变换多少次时出现输出等 于输入?
3、我国公布商用密码算法有何意义? 提交: 源代码和实验报告。
545b6269, c4cbd2d9, 343b4249, a4abb2b9, 141b2229, 848b9299, f4fb0209, 646b7279
产生规则:Ckij= (4i+j)×7(mod 256) ,i=0,1,2…31,j=0,1,…3 。
三、我国商用密码SMS4
7、实例:
• 明文: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 • 密钥: 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10 • 密文: 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46
① (K0,K1,K2,K3)=(MK0⊕FK0,MK1⊕FK1,MK2⊕FK2,MK3⊕FK3) ② For i=0,1…,30,31 Do iki= Ki+4= Ki⊕T’(Ki+1 ⊕Ki+2 ⊕ Ki+3 ⊕ CKi)

商用密码算法 国际标准

商用密码算法 国际标准

商用密码算法国际标准在当今信息时代,数据的安全性成为了各个行业和个人所面临的重要问题。

为了保护敏感数据的安全,商用密码算法被广泛应用于信息安全领域。

本文将介绍商用密码算法的概念及其在国际上的标准化情况。

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. 网络通信安全商用密码算法在保护网络通信安全方面发挥了重要的作用。

SM系列国密算法

SM系列国密算法

SM系列国密算法SM系列国密算法众所周知,为了保障商⽤密码的安全性,国家商⽤密码管理办公室制定了⼀系列密码标准,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法(ZUC)那等等。

其中SM1、SM4、SM7、祖冲之密码(ZUC)是对称算法;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),其中s为⽤户的私钥,sP为⽤户的公钥,由于离散对数问题从sP难以得到s,并针对素域和⼆元扩域给出了密钥对⽣成细节和验证⽅式。

国密算法_解决方案(3篇)

国密算法_解决方案(3篇)

第1篇一、引言随着信息技术的飞速发展,信息安全问题日益凸显。

为了保障国家信息安全,我国政府高度重视信息安全技术的发展,制定了一系列信息安全政策和技术标准。

国密算法作为我国自主创新的加密算法,具有极高的安全性和实用性。

本文将探讨基于国密算法的解决方案,分析其特点、优势及在实际应用中的挑战。

二、国密算法概述1. 国密算法的定义国密算法是指在我国政府主导下,经过严格审查和认证的加密算法。

这些算法包括对称加密算法、非对称加密算法和哈希算法等,如SM1、SM2、SM3等。

2. 国密算法的特点(1)自主知识产权:国密算法是我国自主研发的加密算法,具有完全的自主知识产权。

(2)安全性高:国密算法经过严格审查和认证,具有极高的安全性。

(3)高效性:国密算法在保证安全性的同时,具有较高的运算效率。

(4)兼容性:国密算法与现有的国际标准加密算法具有较好的兼容性。

三、基于国密算法的解决方案1. 对称加密算法SM1(1)算法简介:SM1算法是一种分组密码算法,采用分组长度为64位,密钥长度为128位。

(2)应用场景:SM1算法适用于数据传输加密、数据存储加密等领域。

(3)解决方案:基于SM1算法的解决方案主要包括以下步骤:①密钥生成:根据安全需求,生成128位的密钥。

②加密:使用SM1算法对数据进行加密。

③解密:使用SM1算法对加密后的数据进行解密。

2. 非对称加密算法SM2(1)算法简介:SM2算法是一种基于椭圆曲线密码体制的非对称加密算法,具有密钥长度短、计算速度快等特点。

(2)应用场景:SM2算法适用于数字签名、证书签名、加密通信等领域。

(3)解决方案:基于SM2算法的解决方案主要包括以下步骤:①密钥生成:生成一对椭圆曲线公钥和私钥。

②数字签名:使用私钥对数据进行数字签名。

③证书签名:使用公钥对证书进行签名。

④加密通信:使用公钥对数据进行加密,接收方使用私钥进行解密。

3. 哈希算法SM3(1)算法简介:SM3算法是一种基于密码学的哈希算法,具有抗碰撞性强、计算速度快等特点。

国密算法标识符-概述说明以及解释

国密算法标识符-概述说明以及解释

国密算法标识符-概述说明以及解释1.引言1.1 概述概述部分:国密算法是指中国自主设计开发的密码算法,具有自主知识产权和高度安全性。

随着信息安全的重要性日益凸显,国密算法在政府、金融、电信等领域得到了广泛应用。

为了更好地标识和管理国密算法,国家标准化管理委员会制定了国密算法标识符规范,旨在统一规范国密算法的命名和标识,提高算法的可识别性和可管理性。

本文旨在介绍国密算法标识符的相关内容,探讨其重要性和应用前景。

1.2 文章结构本文分为引言、正文和结论三个部分。

在引言部分,我们将对国密算法标识符的概念进行概述,介绍本文的结构和目的。

在正文部分,将分为三个小节,分别简要介绍国密算法、国密算法标识符的作用以及国密算法标识符的规范。

在结论部分,将对国密算法标识符的重要性进行总结,探讨其在未来的应用前景,并进行结语。

通过上述结构,读者可以清晰地了解本文的内容和逻辑顺序,从而更好地理解和掌握国密算法标识符的相关知识。

1.3 目的:本文旨在介绍国密算法标识符的重要性和规范,通过对国密算法标识符的概念、功能和应用进行深入探讨,帮助读者更好地理解和应用国密算法标识符。

同时,通过对国密算法标识符的规范要求和应用前景的分析,引导读者正确地使用国密算法标识符,提高信息安全保护的水平,促进国密算法在各个领域的推广和应用,进一步加强我国信息安全领域的发展。

2.正文2.1 国密算法简介国密算法,全称为“商用密码国家密码管理局核心密码技术的基础密码算法”,是中国自主研发的密码算法体系。

国密算法由国家密码局指导,并由相关单位进行研究与推广应用。

国密算法涵盖了对称加密、非对称加密、哈希函数、数字签名等多个领域,具有自主知识产权和完全自主创新。

与国际标准的密码算法相比,国密算法在保密性、完整性、不可否认性等方面具有较高的安全性。

国密算法体系由国家密码管理局统一规划,其中包括SM1、SM2、SM3和SM4等四种重要密码算法。

其中,SM1为对称加密算法,SM2为非对称加密算法,SM3为哈希函数,SM4为分组密码算法。

国密算法国家商用密码算法简介)

国密算法国家商用密码算法简介)

国家商用密码算法简介密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。

密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

密码学的基本思想是对敏感消息的保护,主要包括机密性,鉴别,消息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证码等。

一.密码学简介密码学中应用最为广泛的的三类算法包括对称算法、非对称算法、杂凑算法。

1.1 对称密码对称密码学主要是分组密码和流密码及其应用。

分组密码中将明文消息进行分块加密输出密文区块,而流密码中使用密钥生成密钥流对明文消息进行加密。

世界上应用较为广泛的包括DES、3DES、AES,此外还有Serpent,Twofish,MARS和RC6等算法。

对称加密的工作模式包括电码本模式(ECB 模式),密码反馈模式(CFB 模式),密码分组链接模式(CBC 模式),输入反馈模式(OFB 模式)等。

1.2 非对称密码公钥密码体制由Diffie和Hellman所提出。

1978年Rivest,Shamir和Adleman提出RAS密码体制,基于大素数分解问题。

基于有限域上的离散对数问题产生了ElGamal密码体制,而基于椭圆曲线上的离散对数问题产生了椭圆曲线密码密码体制。

此外出现了其他公钥密码体制,这些密码体制同样基于困难问题。

目前应用较多的包括RSA、DSA、DH、ECC等。

1.3杂凑算法杂凑算法又称hash函数,就是把任意长的输入消息串变化成固定长的输出串的一种函数。

这个输出串称为该消息的杂凑值。

一个安全的杂凑函数应该至少满足以下几个条件。

1)输入长度是任意的;2)输出长度是固定的,根据目前的计算技术应至少取128bits长,以便抵抗生日攻击;3)对每一个给定的输入,计算输出即杂凑值是很容易的;4)给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值是计算上不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值是计算上不可行的。

国密算法的科普

国密算法的科普

国密算法的科普⼀、国密算法的背景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卡。

国产密码算法及应用

国产密码算法及应用

国产密码算法及应用商用密码;是指能够实现商用密码算法的加密、解密和认证等功能的技术..包括密码算法编程技术和密码算法芯片、加密卡等的实现技术..商用密码技术是商用密码的核心;国家将商用密码技术列入国家秘密;任何单位和个人都有责任和义务保护商用密码技术的秘密..商用密码的应用领域十分广泛;主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护..比如各种安全认证、网上银行、数字签名等..为了保障商用密码安全;国家商用密码管理办公室制定了一系列密码标准;包括SSF33.SM1SCB2.SM2.SM3.SM4.SM7、SM9、祖冲之密码算法等等..其中SSF33.SM1.SM4.SM7、祖冲之密码是对称算法;SM2.SM9是非对称算法;SM3是哈希算法..目前已经公布算法文本的包括SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法等..一、国密算法简介1.SM1对称密码国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法;分组长度为128位;密钥长度都为128比特;算法安全保密强度及相关软硬件实现性能与AES相当;算法不公开;仅以IP核的形式存在于芯片中..采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品;广泛应用于电子政务、电子商务及国民经济的各个应用领域包括国家政务通、警务通等重要领域..2.SM2椭圆曲线公钥密码算法SM2算法就是ECC椭圆曲线密码机制;但在签名、密钥交换方面不同于ECDSA.ECDH等国际标准;而是采取了更为安全的机制..国密SM2算法标准包括4个部分;第1部分为总则;主要介绍了ECC基本的算法描述;包括素数域和二元扩域两种算法描述;第2部分为数字签名算法;这个算法不同于ECDSA算法;其计算量大;也比ECDSA复杂些;也许这样会更安全吧;第3部分为密钥交换协议;与ECDH功能相同;但复杂性高;计算量加大;第4部分为公钥加密算法;使用ECC公钥进行加密和ECC私钥进行加密算法;其实现上是在ECDH上分散出流密钥;之后与明文或者是密文进行异或运算;并没有采用第3部分的密钥交换协议产生的密钥..对于SM2算法的总体感觉;应该是国家发明;其计算上比国际上公布的ECC算法复杂;相对来说算法速度可能慢;但可能是更安全一点..设需要发送的消息为比特串M;len为M的比特长度..为了对明文M进行加密;作为加密者的用户应实现以下运算步骤:步骤1: 用随机数发生器产生随机数k∈1;n -1;步骤2: 计算椭圆曲线点C1=kG=X1 ;Y1 ;将C1的数据类型转换为比特串;步骤3: 计算椭圆曲线点S=hP ;若S是无穷远点;则报错;步骤4: 计算椭圆曲线点kP =X2;Y2;将坐标X2;Y2的数据类型转换为比特串;步骤5: 计算t=KDFx2 ll y2 ;len;若t为全0比特串;则返回步骤1;步骤6: 计算C2 = M ⊕ t;步骤7: 计算C3=Hashx2 ll M ll y2;步骤8: 输出密文C=C1 ll C2 ll C3..2010年底;国家密码管理局公布了我国自主研制的“椭圆曲线公钥密码算法”SM2算法..为保障重要经济系统密码应用安全;国家密码管理局于2011年发布了关于做好公钥密码算法升级工作的通知;要求“自2011年3月1日期;在建和拟建公钥密码基础设施电子认证系统和密钥管理系统应使用SM2算法..自2011年7月1日起;投入运行并使用公钥密码的信息系统;应使用SM2算法..”近期;人民银行组织召开多次专题会议讨论研究金融领域国产加密算法升级改造的相关工作..3.SM3杂凑算法又叫文摘算法;也有叫杂凑算法的..功能与MD5;SHA-1相同..产生256位的编码..该算法位不可逆的算法..具体算法也是保密..SM3密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤;并给出了运算示例..此算法适用于商用密码应用中的数字签名和验证;消息认证码的生成与验证以及随机数的生成;可满足多种密码应用的安全需求..在SM2.SM9标准中使用..此算法对输入长度小于2的64次方的比特消息;经过填充和迭代压缩;生成长度为256比特的杂凑值;其中使用了异或;模;模加;移位;与;或;非运算;由填充;迭代过程;消息扩展和压缩函数所构成..SM3算法包括预处理、消息扩展和计算Hash值三部分..预处理部分由消息填充和消息分组两部分组成..首先将接收到的消息末尾填充一个“1” ; 再添加k个“0”;使得填充后的数据成为满足length =448mod512bit的数据长度;再在末尾附上64bit消息长度的二进制表示数; 然后将消息分成512bit的子块;最后将每个512bit的消息子块扩展成132个字用于Hash值的计算..SM3算法计算流程图如图所示..SM3算法的Hash运算主要是在压缩函数部分;压缩函数共包含64轮;每轮包括12步运算;64轮循环计算结束后;再将计算结果与输入到本轮计算的初始数据进行异或运算;即上一次Hash运算的Hash值输出与输入到本轮计算的初始数据异或得到本次Hash值输出;Hn即为最终的Hash值;H0为设计者提供的初始值IV..图 SM3算法流程图4.SM4对称算法此算法是一个分组算法;用于无线局域网产品..该算法的分组长度为128比特;密钥长度为128比特..加密算法与密钥扩展算法都采用32轮非线性迭代结构..解密算法与加密算法的结构相同;只是轮密钥的使用顺序相反;解密轮密钥是加密轮密钥的逆序..定义反序变换R为:RA0;A1;A2;A3=A3;A2;A1;A0;Ai∈Z322;i = 0;1;2;3..设明文输入为X0;X1;X2;X3∈Z3224;密文输出为Y0;Y1;Y2;Y3∈Z3224 ;轮密钥为rk i ∈Z322..则本算法的加密变换为:X i+4 = FX i;X i+1;X i+2; X i+3;rk i= Xi⊕TX i+1⊕X i+2⊕ X i+3⊕rk i;i=0;1;2;3 (31)Y0;Y1;Y2;Y3= R X32;X33;X34;X35=X35;X34;X33;X32..本算法的解密变换与加密变换结构相同;不同的仅是轮密钥的使用顺序..加密时轮密钥的使用顺序为:rk0.rk1.….rk31..解密时轮密钥的使用顺序为: rk31; rk30; …; rk0..SM4算法的优点是软件和硬件实现容易;运算速度快;但该算法的缺点是消息安全取决于对密钥的保护;泄漏密钥就意味着任何人都能对消息进行密码和解密..由于其加密过程和解密过程互逆;这两个过程均使用相同的保密密钥;使得对称密钥加密体制的适用范围受到了很大限制..5.SM7对称密码SM7算法是一种分组密码算法;分组长度为128比特;密钥长度为128比特..SM7的算法文本目前没有公开发布..SM7适用于非接IC卡应用包括身份识别类应用门禁卡、工作证、参赛证;票务类应用大型赛事门票、展会门票;支付与通卡类应用积分消费卡、校园一卡通、企业一卡通、公交一卡通..6.SM9非对称算法SM9是基于对的标识密码算法;与SM2类似;包含四个部分: 总则;数字签名算法;密钥交换协议以及密钥封装机制和公钥加密算法..在这些算法中使用了椭圆曲线上的对这一个工具;不同于传统意义上的SM2算法;可以实现基于身份的密码体制;也就是公钥与用户的身份信息即标识相关;从而比传统意义上的公钥密码体制有许多优点;省去了证书管理等..双线性对的双线性的性质是基于对的标识密码SM2中的总则部分同样适用于SM9;由于SM9总则中添加了适用于对的相关理论和实现基础..SM9给出了数字签名算法包括数字签名生成算法;数字签名验证算法;密钥交换协议;以及密钥封装机制和公钥加密算法包括密钥封装算法;加密盒解密算法..数字签名算法适用于接收者通过签名者的标识验证数据的完整性和数据发送者的身份;也适用于第三方确定签名及所签数据的真实性..密钥交换协议可以使用通信双方通过双方的标识和自身的私钥经过两次或者可选三次信息传递过程;计算获取一个由双方共同决定的共享秘密密钥..密钥封装机制和公钥加密算法中;利用密钥封装机制可以封装密钥给特定的实体..公钥加密和解密算法即基于标识的非对称秘密算法;该算法使消息发送者可以利用接收者的标识对消息进行加密;唯有接收者可以用相应的私钥对该密文进行解密;从而获取消息..基于对的算法中同样使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器;密钥封装机制和公钥加密算法中使用了国家密码管理局批准的对称密码算法和消息认证码函数..7.祖冲之对称算法二、祖冲之密码算法由中国科学院等单位研制;运用于下一代移动通信4G网络LTE中的国际标准密码算法..祖冲之密码算法ZUC的名字源于我国古代数学家祖冲之;祖冲之算法集是由我国学者自主设计的加密和完整性算法;是一种流密码..它是两个新的LTE算法的核心;这两个LTE算法分别是加密算法128-EEA3和完整性算法128-EIA3..ZUC算法由3个基本部分组成;依次为: 1.比特重组;2.非线性函数F;3.线性反馈移位寄存器LFSR..三、国密算法行业应用2014年;中国银联发布了中国银联IC卡技术规范和中国银联银行卡联网联合技术规范;在兼容最新国际通用技术标准的基础上支持国产密码;丰富了安全算法体系;促进了信息安全;自主可控水平实现提高..1.长沙银行长沙银行是首批开展国密算法金融IC卡试点银行之一;此次发行金融IC卡中采用了我国安全可控的国密算法芯片..应用在长沙银行金融IC卡上的大唐CE3D系列双界面金融安全芯片采用了32位CPU内核;拥有高达80KB的EEPROM数据存储空间;符合PBOC3.0中SM2/3/4算法升级要求;支持JAVA操作技术;具有高安全、高性能、低功耗的特点;实现国密算法的金融IC卡成功跨行交易..2.鹤壁银行2014年5月12日;PBOC3.0国密多应用金融IC卡项目产品展示会暨示范应用推广研讨会在河南鹤壁召开..在本次研讨会上;全球首张加载PBOC3.0国产密码算法的金融IC卡正式亮相;并在鹤壁银行实现了首批试商用发卡..作为国产智能卡芯片的佼佼者;同方微电子为本次发卡提供了符合规范的芯片产品——THD86..该项目通过推进金融信息系统国产密码的应用;将为打破国外密码算法及产品在金融领域应用的垄断局面、全面带动国内信息安全及金融服务相关产业发展提供有力保障;实现国家金融安全的重大战略..金融IC卡国产密码算法应用示范项目自2013年5月份开始已取得了阶段性的成果;分别完成了支持国产密码算法的银行端系统改造、ATM、POS、刷卡器、加密机、IC卡芯片等一系列产品的研发和接入银行系统;组成了包括芯片厂商、COS厂商、卡商、密码设备供应商、支撑系统提供商及银行核心系统供应商等的金融IC卡国产密码应用的完整产业链..同方微电子在此项目中应用的THD86是国内首款32位CPU双界面卡芯片;国内首款通过银联芯片安全认证的双界面卡芯片;国内率先通过国密二级认证的双界面卡芯片;支持金融应用扩展;符合PBOC3.0标准;支持国外密码算法和国产密码双算法体系..THD86在PBOC3.0国密多应用金融IC卡示范应用中的成功;将对我国普及推广该项目成果具有重要的示范作用..3.工商银行工商银行根据国密算法应用实施总体规划;从2012年下半年开始;工商银行启动国密算法及产品的相关研究和测评工作;并于2013年开始在电子认证、网上银行、金融IC卡及移动支付等关键领域率先启动国密算法应用试点工作..客户电子认证系统是工商银自建的为网上银行客户提供电子认证服务的系统;在2013年8月完成国密算法应用改造以及机房、网络等环境改造..改造后增加了国密SM2算法证书的后台管理功能;并配合网上银行实现国密U盾的签发和交易数据签名验签功能..该系统在2013年11月通过国密局安全审查;成为金融领域自建电子认证系统第一家通过国家密码管理局安全性审查的单位..同时;工商银行还在网上银行、金融IC卡及移动支付领域启动了国密算法应用改造工作;并将金融IC卡及移动支付的国密试点项目向发改委申报了“金融IC卡与密码应用专项”;在2014年1月个人网上银行系统、金融IC卡及移动支付系统都顺利完成国密算法技术改造;经过分行对相关功能进行验收后;目前已经在部分分行启动了业务试点工作..2014年9月;国家密码局、工信部、公安部、银行卡检测中心等单位组成联合检查小组;对重庆分行支持国密算法的IC卡及移动支付试点情况进行中期检查;检查组对工商银行金融IC卡及移动支付国密算法实施工作的总体进度较为满意;并对其实施效果给予了高度评价..。

国密算法详解范文

国密算法详解范文

国密算法详解范文国密算法,也称为“中国密码算法”,是中国政府主导的密码算法研发项目,旨在保障国家信息安全。

国密算法的全称是“商用密码算法标准”,具体包括SM1、SM2、SM3、SM4四个算法。

一、SM1算法SM1是一种对称密码算法,即加密和解密过程使用相同的密钥。

SM1算法采用了数据加密标准(DES)的结构,但进行了一些变化和优化,以提高安全性和效率。

SM1算法的密钥长度为128位,数据块长度为64位,总共进行4轮运算。

SM1算法在保密性和抗干扰能力方面优于DES算法,可以广泛应用于国家机密信息的加密和解密过程中。

二、SM2算法SM2是一种非对称密码算法,即加密和解密过程使用不同的密钥。

SM2算法基于椭圆曲线密码体制(Elliptic Curve Cryptography,简称ECC),其密钥长度为256位,RSA算法的密钥长度至少要达到2048位才能具有相同的安全性。

SM2算法具有高强度、高效率和高安全性等特点,可以广泛应用于数字签名、密钥交换和密钥协商等场景。

三、SM3算法SM3是一种哈希算法,用于将任意长度的消息转换为固定长度的摘要。

SM3算法是中国政府自主设计的密码哈希算法,使用了类似于SHA-256的结构,但进行了一些改进和优化。

SM3算法的摘要长度为256位,具有很高的安全性和抗碰撞能力,适用于数字签名、消息认证码和密钥派生等场景。

四、SM4算法SM4是一种对称密码算法,采用分组密码的设计思路,密钥长度为128位,数据块长度为128位,总共进行32轮运算。

SM4算法在保密性、抗攻击和性能方面比国际上应用广泛的AES算法具有一定优势。

SM4算法适用于各种应用和系统,尤其在物联网等信息安全领域有重要的应用价值。

总结起来,国密算法是中国自主研发的密码算法标准,包括SM1、SM2、SM3、SM4四个算法。

SM1和SM4是对称密码算法,SM2是非对称密码算法,SM3是哈希算法。

这些算法在保密性、抗攻击和性能方面都有一定的优势,可以广泛应用于各种信息安全场景中。

国密算法简介

国密算法简介

版本人员时间升级内容❝课程目的◦了解国密算法的算法原理◦了解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 倍点。

商用密码算法

商用密码算法

二、租赁风险的种类
(一)信用风险 (二)政治风险 (三)金融风险
在金融租赁业务中,金融风险主要来自利率风险和 汇率风险。
(四)自然灾害风险 (五)税务风险 (六)技术落后风险
三、租赁风险的防范
(一)信用风险防范
对出租人而言,要严格按经济规律的要求办事,要 利用各种信息和咨询渠道,进行深入细致的信誉咨 询和调查。
商用密码是指对不涉及国家秘密内容的信息进行加密保
护或者安全认证所使用的密码技术和密码产品。公民、法人 和其他组织可以依法使用商用密码保护网络与信息安全。
2022/3/25
商用密码算法原理与C语言实现
6
经过二十多年的建设,我国已建立起以“一部行政法 规”加多部专项管理规定(即“1+N”)为主要内容的现行 商用密码法规体系,其中,“一部行政法规”是指1999年国 务院颁布施行的《商用密码管理条例》;“多部专项管理 规定”是指国家密码管理局和相关部委制定颁布的部门规 章和规范性文件。比如国家密码管理局制定颁布的《商用 密码科研管理规定》《商用密码产品生产管理规定》《商 用密码产品销售管理规定》《商用密码产品使用管理规定 》《境外组织和个人在华使用密码产品管理办法》《电子 认证服务密码管理办法》《信息安全等级保护商用密码管 理办法》《含有密码技术的信息产品政府采购规定》等。
2022/3/25
商用密码算法原理与C语言实现
2
密码是目前世界上公认的,保障网络与信息安全最有效、最可
靠、最经济的关键核心技术。在信息化高度发展的今天,密码的应 用已经渗透到社会生产生活各个方面,从涉及政权安全的保密通信 、军事指挥,到涉及国民经济的金融交易、防伪税控,再到涉及公 民权益的电子支付、网上办事等等,密码都在背后发挥着基础支撑 作用。当前,国际局势正在发生深刻变化,科技日新月异,国际竞 争日趋激烈,网络空间安全和信息化整体水平已成为一个国家综合 国力和竞争力的重要指标。密码技术作为国家自主可控的核心技术 在维护国家政治安全、经济安全、国防安全和信息安全中发挥着愈 来愈重要的作用。

中国商用密码算法

中国商用密码算法

中国商用密码算法中国商用密码算法是指中国国内使用和推广的一系列密码算法,用于保护商业和领导机构的信息安全。

随着中国在经济和科技领域的快速发展,对信息安全的需求也越来越高。

为了满足这一需求,中国开发了一系列商用密码算法,并在各个领域推广使用,以确保中国企业和领导的信息安全。

商用密码算法通常包括对称加密算法和非对称加密算法。

对称加密算法是指加密和解密使用同一个密钥的算法,因此需要确保密钥的安全性。

常见的中国商用对称加密算法有SM1和SM4。

SM1是中国自主研发的对称加密算法,其算法结构类似于AES算法,具有高强度和高性能的优势。

SM1采用128位密钥长度和128位分组长度,保证了安全性和效率的平衡。

该算法已广泛应用在银行、电信、电力等行业,为中国的关键信息系统提供了重要的保障。

SM4是中国的分组密码标准,也是一种对称加密算法。

它采用128位密钥长度和128位分组长度,具有强大的安全性和高效的加密速度。

SM4算法在电子商务、金融支付、物联网等领域得到广泛应用,有效保护了中国企业和领导的敏感信息。

除了对称加密算法,非对称加密算法也是商用密码算法中的重要组成部分。

非对称加密算法使用一对密钥,分别是公钥和私钥。

公钥可以公开传输,而私钥则只有密钥持有者知道。

中国的商用非对称加密算法包括SM2和SM9。

SM2是中国自主开发的非对称密码算法,适用于数字签名、密钥交换和公钥加密等应用场景。

与传统的RSA算法相比,SM2在安全性和性能上都有所提升,成为中国国内广泛使用的商用非对称加密算法。

另一方面,SM9是中国特色的商用密码算法,被用于身份认证和密钥交换等领域。

SM9算法结合了非对称加密和身份认证的特点,具有高效、安全、灵活的特点。

它可以有效应对各种复杂的网络环境和安全需求,是中国国内商用密码算法的重要组成部分。

需要指出的是,中国商用密码算法的开发和推广不仅仅是为了保护商业和领导机构的信息安全,也是为了增强中国算法和密码学的研发实力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家商用密码算法简介密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。

密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。

密码学的基本思想是对敏感消息的保护,主要包括机密性,鉴别,消息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证码等。

一.密码学简介密码学中应用最为广泛的的三类算法包括对称算法、非对称算法、杂凑算法。

1.1 对称密码对称密码学主要是分组密码和流密码及其应用。

分组密码中将明文消息进行分块加密输出密文区块,而流密码中使用密钥生成密钥流对明文消息进行加密。

世界上应用较为广泛的包括DES、3DES、AES,此外还有Serpent,Twofish,MARS和RC6等算法。

对称加密的工作模式包括电码本模式(ECB 模式),密码反馈模式(CFB 模式),密码分组链接模式(CBC 模式),输入反馈模式(OFB 模式)等。

1.2 非对称密码公钥密码体制由Diffie和Hellman所提出。

1978年Rivest,Shamir和Adleman提出RAS密码体制,基于大素数分解问题。

基于有限域上的离散对数问题产生了ElGamal密码体制,而基于椭圆曲线上的离散对数问题产生了椭圆曲线密码密码体制。

此外出现了其他公钥密码体制,这些密码体制同样基于困难问题。

目前应用较多的包括RSA、DSA、DH、ECC等。

1.3杂凑算法杂凑算法又称hash函数,就是把任意长的输入消息串变化成固定长的输出串的一种函数。

这个输出串称为该消息的杂凑值。

一个安全的杂凑函数应该至少满足以下几个条件。

1)输入长度是任意的;2)输出长度是固定的,根据目前的计算技术应至少取128bits长,以便抵抗生日攻击;3)对每一个给定的输入,计算输出即杂凑值是很容易的;4)给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值是计算上不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值是计算上不可行的。

杂凑函数主要用于完整性校验和提高数字签名的有效性,目前已有很多方案。

这些算法都是伪随机函数,任何杂凑值都是等可能的。

输出并不以可辨别的方式依赖于输入;在任何输入串中单个比特的变化,将会导致输出比特串中大约一半的比特发生变化。

二.商用密码算法为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法那等等。

其中SSF33、SM1、SM4、SM7、祖冲之密码是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。

目前已经公布算法文本的包括祖冲之序列密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法等。

2.1 SM1对称密码SM1 算法是分组密码算法,分组长度为128位,密钥长度都为128 比特,算法安全保密强度及相关软硬件实现性能与AES 相当,算法不公开,仅以IP 核的形式存在于芯片中。

采用该算法已经研制了系列芯片、智能IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

2.2 SM2椭圆曲线公钥密码算法SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSA、ECDH等国际标准,而是采取了更为安全的机制。

另外,SM2推荐了一条256位的曲线作为标准曲线。

ECC椭圆曲线密码体制Koblitz和Miller在1985年各自引入密码学。

椭圆曲线的Weierstrass方程为23213246y a xy a y x a x a x a++=+++,其上面的所有点和无穷远点构成一个加法交换群,其中无穷远点是加法零元。

此群的加法法则可以由弦切法所给出,具体见下图。

左图中是两个不同点P和Q的加法,右图为相同的点P和P的加法。

由弦切法便可以给出椭圆曲线上的加法方程。

多倍点运算是指:给定一点P和一个整数k,计算kP,即k个P点的和。

椭圆曲线上的离散对数问题为:给定点P和kP,计算整数k。

椭圆曲线密码体制的安全性便是建立在椭圆曲线离散对数问题之上。

SM2标准包括总则,数字签名算法,密钥交换协议,公钥加密算法四个部分,并在每个部分的附录详细说明了实现的相关细节及示例。

SM2算法主要考虑素域p F 和2m F 上的椭圆曲线,分别介绍了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点计算算法。

然后介绍了编程语言中的数据转换,包括整数和字节串,字节串和比特串,域元素和比特串,域元素和整数,点和字节串之间的数据转换规则。

详细说明了有限域上椭圆曲线的参数生成以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。

最后给出椭圆曲线上密钥对的生成以及公钥的验证,用户的密钥对为(s ,sP ),其中s 为用户的私钥,sP 为用户的公钥,由于离散对数问题从sP 难以得到s ,并针对素域和二元扩域给出了密钥对生成细节和验证方式。

总则中的知识也适用于SM9算法。

在总则的基础上给出了数字签名算法(包括数字签名生成算法和验证算法),密钥交换协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述,算法流程和相关示例。

数字签名算法适用于商用应用中的数字签名和验证,可满足多种密码应用中的身份认证和数据完整性,真实性的安全需求。

密钥交换协议适用于商用密码应用中的密钥交换,可满足通信双方经过两次或可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥(会话秘钥)。

公钥加密算法适用于国家商用密码应用中的消息加解密,消息发送者可以利用接收者的公钥对消息进行加密,接收者用对应的私钥进行解,获取消息。

数字签名算法,密钥交换协议以及公钥加密算法都使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器。

数字签名算法,密钥交换协议以及公钥加密算法根据总则来选取有限域和椭圆曲线,并生成密钥对,具体算法,流程和示例见SM2标准。

SM2算法和RSA 、对称算法等强度对比如下。

保密级别对称密钥长度 RSA 密钥长度 ECC 密钥长度 保密年限 8080 1024 160 2010 112112 2048 224 2030 128128 3072 256 2040 192192 7680 384 2080 256256 15360 512 21202.3 SM3杂凑算法SM3密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤,并给出了运算示例。

此算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。

在SM2,SM9标准中使用。

此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。

具体算法及运算示例见SM3标准。

2.4 SM4对称算法此算法是一个分组算法,用于无线局域网产品。

该算法的分组长度为128比特,密钥长度为128比特。

加密算法与密钥扩展算法都采用32轮非线性迭代结构。

解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。

此算法采用非线性迭代结构,每次迭代由一个轮函数给出,其中轮函数由一个非线性变换和线性变换复合而成,非线性变换由S盒所给出。

具体流程图如下:rk为轮密钥,合成置换T组成轮函数。

轮密钥的产生与上图流程类似,由加密密钥作为输其中i入生成,轮函数中的线性变换不同,还有些参数的区别。

SM4算法的具体描述和示例见SM4标准。

2.5 SM7对称密码SM7算法,是一种分组密码算法,分组长度为128 比特,密钥长度为128 比特。

SM7的算法文本目前没有公开发布。

SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。

2.6 SM9非对称算法SM9是基于对的标识密码算法,与SM2类似,包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。

在这些算法中使用了椭圆曲线上的对这一个工具,不同于传统意义上的SM2算法,可以实现基于身份的密码体制,也就是公钥与用户的身份信息即标识相关,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。

密码中双线性对12:T e G G G ´®满足如下条件:双线性性:对任意的1P G Î,2Q G Î,以及,N a b Z Î,有(,)(,)ab e aP bQ e P Q =;非退化性:(,)1e P Q ¹,其中P 为1G 的生成元,Q 为2G 的生成元;可计算性:存在有效的算法计算(,)e P Q 。

其中1G ,2G 为椭圆曲线上的加法群,而T G 为有限域的乘法群。

在椭圆曲线对中,根据1G 与2G 是否关系,以及椭圆曲线上的自同态,可以将对分成三种类型,需要考虑在超奇异椭圆曲线,常椭圆曲线上来选取对。

常用的对有Weil 对,Tate 对,Ate 对,以及最优对等。

基于对的标识密码算法建立在一些对的难解问题,例如双线性Diffie-Hellman 问题,双线性逆DH 问题等。

椭圆曲线上的双线性对为*:()[]()/()k k k kq q q q e E F r E F rE F F ´® 其中k 为()q E F 的嵌入次数。

双线性对的双线性的性质是基于对的标识密码算法的基础。

SM2中的总则部分同样适用于SM9,由于SM9总则中添加了适用于对的相关理论和实现基础。

椭圆曲线双线性对定义和计算在扩域上进行,总则中给出了扩域的表示和运算,考虑m p F 和3m F 上的椭圆曲线。

数据类型转换同样包括整数与字节串,比特串和字节串,字节串和域元素,点和字节串之间的转换,其中字节串和域元素之间的数据类型转换涉及到扩域。

系统参数的生成比SM2复杂,涉及到对的相关参数,验证也相应地复杂。

并在附录B 里面详细地描述了计算对的算法Miller 算法,并给出了Tate 对,Ate 的计算,以及适合对的椭圆曲线的生成。

基于总则中的椭圆曲线以及对的基本选取,给出系统参数组,系统主密钥和用户密钥的产生。

用户密钥由系统的主密钥和用户标识共同产生。

SM9给出了数字签名算法(包括数字签名生成算法,数字签名验证算法),密钥交换协议,以及密钥封装机制和公钥加密算法(包括密钥封装算法,加密盒解密算法)。

相关文档
最新文档