国密算法(国家商用密码算法简介)
国密是什么

国密是什么
国密即国家密码局认定的国产密码算法,即商用密码。
国密主要有SM1,SM2,SM3,SM4。
密钥长度和分组长度均为128位。
1、SM1 为对称加密。
其加密强度与AES(高级加密标准,Advanced Encryption Standard)相当。
该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
2、SM2为非对称加密,基于ECC。
该算法已公开。
由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。
ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
3、SM3为消息摘要。
可以用MD5作为对比理解。
该算法已公开。
校验结果为256位。
4、SM4为无线局域网标准的分组数据算法。
对称加密,密钥长度和分组长度均为128位。
由于SM1、SM4加解密的分组大小为128bit,故对消息进行加解密时,若消息长度过长,需要进行分组,要消息长度不足,则要进行填充。
国密应用
商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加
密保护。
商用密码可用于企业门禁管理、企业内部的各类敏感信息的传输加密、存储加密,防止非法第三方获取信息内容;也可用于各种安全认证、网上银行、数字签名等。
例如:在门禁应用中,采用SM1算法进行身份鉴别和数据加密通讯,实现卡片合法性的验证,保证身份识别的真实性。
安全是关系国家、城市信息、行业用户、百姓利益的关键问题。
国产商用密码算法及其相关标准介绍

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

国产密码算法及应用报告国产密码算法及应用商用密码,是指能够实现商用密码算法的加密、解密和认证等功能的技术。
(包括密码算法编程技术和密码算法芯片、加密卡等的实现技术)。
商用密码技术是商用密码的核心,国家将商用密码技术列入国家秘密,任何单位和个人都有责任和义务保护商用密码技术的秘密。
商用密码的应用领域十分广泛,主要用于对不涉及国家秘密内容但又具有敏感性的内部信息、行政事务信息、经济信息等进行加密保护。
比如各种安全认证、网上银行、数字签名等。
为了保障商用密码安全,国家商用密码管理办公室制定了一系列密码标准,包括SSF33、SM1(SCB2)、SM2、SM3、SM4、SM7、SM9、祖冲之密码算法等等。
其中SSF33、SM1、SM4、SM7、祖冲之密码是对称算法;SM2、SM9是非对称算法;SM3是哈希算法。
目前已经公布算法文本的包括SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组密码算法等。
一、国密算法简介1.SM1对称密码国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度为128位,密钥长度都为128比特,算法安全密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤,并给出了运算示例。
此算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
在SM2、SM9标准中使用。
此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。
SM3算法包括预处理、消息扩展和计算Hash值三部分。
预处理部分由消息填充和消息分组两部分组成。
首先将接收到的消息末尾填充一个“1”,再添加k个“0”,使得填充后的数据成为满足length = 448mod512bit的数据长度,再在末尾附上64bit消息长度的二进制表示数,然后将消息分成512bit的子块,最后将每个512bit的消息子块扩展成132个字用于Hash值的计算。
国密算法国家商用密码算法简介)

国家商用密码算法简介密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。
密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。
密码学的基本思想是对敏感消息的保护,主要包括机密性,鉴别,消息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证码等。
一.密码学简介密码学中应用最为广泛的的三类算法包括对称算法、非对称算法、杂凑算法。
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)给定杂凑函数的描述,找到两个不同的输入消息杂凑到同一个值是计算上不可行的,或给定杂凑函数的描述和一个随机选择的消息,找到另一个与该消息不同的消息使得它们杂凑到同一个值是计算上不可行的。
国密算法详解(一)

国密算法详解(一)国密算法详解什么是国密算法?•国密算法是指中国自主研发的加密算法,包括SM1、SM2、SM3和SM4等。
这些算法被广泛应用于政府、金融、电子商务等领域,以保障国家信息安全。
SM1算法•SM1是对称加密算法,采用分组密码方式进行加密和解密。
它是中国自主设计的加密算法,被广泛应用于各种机密数据的加密保护。
SM2算法•SM2是非对称加密算法,用于数字签名和密钥交换。
与传统的RSA算法相比,SM2具有更高的安全性和效率,被广泛应用于数字证书、电子身份证等领域。
SM3算法•SM3是哈希算法,用于计算消息的哈希值。
它具有高度的抗碰撞性和抗抵赖性,被广泛应用于数字签名、证书和密码协议等领域。
SM4算法•SM4是对称加密算法,用于数据的加密和解密。
它具有高强度的安全性和较快的运算速度,被广泛应用于数据传输、文件加密等领域。
国密算法的特点•自主创新:国密算法完全由中国自主设计和开发,不依赖于国外技术。
•高度安全:国密算法采用了世界领先的密码学理论和算法,具有高度的安全性。
•广泛应用:国密算法被广泛应用于政府、金融、电子商务等领域,保障了国家信息安全。
•高效性能:国密算法在安全性的前提下,注重运算速度和资源消耗的平衡,提供了高效的加密和解密服务。
国密算法的发展前景•随着信息技术的迅猛发展和国家信息安全的重要性日益凸显,国密算法的应用前景非常广阔。
•国密算法具备自主创新、高度安全和高效性能的优势,将在政府、金融、电子商务等领域继续得到广泛应用。
•同时,国际标准化组织和国际密码学界对国密算法的认可和关注也在增加,加速了国密算法在全球范围内的推广和应用。
总结•国密算法是中国自主研发的加密算法,包括SM1、SM2、SM3和SM4等。
这些算法在政府、金融、电子商务等领域被广泛应用。
•国密算法具有自主创新、高度安全、广泛应用和高效性能的特点,为信息安全保障提供了重要的技术支持。
•随着国家信息安全的重要性日益凸显,国密算法的发展前景非常广阔,将在更多领域得到推广和应用。
我国的商用密码算法

我国的商用密码算法(原创实用版)目录1.我国商用密码算法的发展背景2.我国商用密码算法的主要种类3.我国商用密码算法的应用领域4.我国商用密码算法面临的挑战及应对措施5.结论:我国商用密码算法的重要性及发展前景正文1.我国商用密码算法的发展背景随着信息技术的飞速发展,信息安全问题日益凸显。
商用密码作为保障信息安全的核心技术,在我国得到了广泛的应用和重视。
商用密码算法是商用密码技术的基础,其发展对于维护国家安全、推动经济社会发展具有重要意义。
2.我国商用密码算法的主要种类我国商用密码算法主要分为对称加密算法、非对称加密算法和哈希算法三类。
其中,对称加密算法主要包括 DES、AES 等;非对称加密算法主要包括 RSA、ECC 等;哈希算法主要包括 SHA-1、SHA-256 等。
这些算法具有不同的特点和适用场景,为我国信息安全提供了有力保障。
3.我国商用密码算法的应用领域我国商用密码算法广泛应用于金融、电子商务、政务、国防等领域。
在金融领域,商用密码算法用于保障资金交易的安全性和可靠性;在电子商务领域,商用密码算法用于保护用户信息和交易数据;在政务领域,商用密码算法用于确保政府信息系统的安全稳定运行;在国防领域,商用密码算法用于保障军事通信和指挥系统的安全。
4.我国商用密码算法面临的挑战及应对措施尽管我国商用密码算法取得了显著的发展,但仍面临一些挑战,如算法性能、安全性和互操作性等。
为应对这些挑战,我国采取了一系列措施,如加大研发投入、制定和完善相关法律法规、推动商用密码算法的国际化等。
5.结论:我国商用密码算法的重要性及发展前景商用密码算法是我国信息安全领域的核心技术,对于保障国家安全和推动经济社会发展具有重要意义。
我国的商用密码算法

我国的商用密码算法
密码算法包括对称密码算法、公钥密码算法和杂凑算法。
为了保障商用密码安全,国家密码管理部门制定了一系列密码算法标准,包括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算法已经作为国际第四代移动通信加密标准,这标志着我国密码算法国际标准体系已初步成型,为有效保障网络空间安全贡献了中国智慧,提供了中国方案。
国密算法标识符-概述说明以及解释

国密算法标识符-概述说明以及解释1.引言1.1 概述概述部分:国密算法是指中国自主设计开发的密码算法,具有自主知识产权和高度安全性。
随着信息安全的重要性日益凸显,国密算法在政府、金融、电信等领域得到了广泛应用。
为了更好地标识和管理国密算法,国家标准化管理委员会制定了国密算法标识符规范,旨在统一规范国密算法的命名和标识,提高算法的可识别性和可管理性。
本文旨在介绍国密算法标识符的相关内容,探讨其重要性和应用前景。
1.2 文章结构本文分为引言、正文和结论三个部分。
在引言部分,我们将对国密算法标识符的概念进行概述,介绍本文的结构和目的。
在正文部分,将分为三个小节,分别简要介绍国密算法、国密算法标识符的作用以及国密算法标识符的规范。
在结论部分,将对国密算法标识符的重要性进行总结,探讨其在未来的应用前景,并进行结语。
通过上述结构,读者可以清晰地了解本文的内容和逻辑顺序,从而更好地理解和掌握国密算法标识符的相关知识。
1.3 目的:本文旨在介绍国密算法标识符的重要性和规范,通过对国密算法标识符的概念、功能和应用进行深入探讨,帮助读者更好地理解和应用国密算法标识符。
同时,通过对国密算法标识符的规范要求和应用前景的分析,引导读者正确地使用国密算法标识符,提高信息安全保护的水平,促进国密算法在各个领域的推广和应用,进一步加强我国信息安全领域的发展。
2.正文2.1 国密算法简介国密算法,全称为“商用密码国家密码管理局核心密码技术的基础密码算法”,是中国自主研发的密码算法体系。
国密算法由国家密码局指导,并由相关单位进行研究与推广应用。
国密算法涵盖了对称加密、非对称加密、哈希函数、数字签名等多个领域,具有自主知识产权和完全自主创新。
与国际标准的密码算法相比,国密算法在保密性、完整性、不可否认性等方面具有较高的安全性。
国密算法体系由国家密码管理局统一规划,其中包括SM1、SM2、SM3和SM4等四种重要密码算法。
其中,SM1为对称加密算法,SM2为非对称加密算法,SM3为哈希函数,SM4为分组密码算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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给出了数字签名算法(包括数字签名生成算法,数字签名验证算法),密钥交换协议,以及密钥封装机制和公钥加密算法(包括密钥封装算法,加密盒解密算法)。