国密算法国家商用密码算法简介)
国密算法介绍
国家商用密码算法简介密码学是研究编制密码和破译密码的技术科学,起源于隐秘消息传输,在编码和破译中逐渐发展起来。
密码学是一个综合性的技术科学,与语言学、数学、电子学、声学、信息论、计算机科学等有着广泛而密切的联系。
密码学的基本思想是对敏感消息的保护,主要包括机密性,鉴别,消息完整性和不可否认性,从而涉及加密,杂凑函数,数字签名,消息认证码等。
一.密码学简介密码学中应用最为广泛的的三类算法包括对称算法、非对称算法、杂凑算法。
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 对称密码对称密码学主要是分组密码和流密码及其应用。
分组密码中将明文消息进行分块加密输出密文区块,而流密码中使用密钥生成密钥流对明文消息进行加密。
世界上应用较为广泛的包括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分组密码算法等。
一、国密算法简介1.SM1对称密码国密SM1算法是由国家密码管理局编制的一种商用密码分组标准对称算法,分组长度为128位,密钥长度都为128比特,算法安全密码杂凑算法给出了杂凑函数算法的计算方法和计算步骤,并给出了运算示例。
此算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。
在SM2、SM9标准中使用。
此算法对输入长度小于2的64次方的比特消息,经过填充和迭代压缩,生成长度为256比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。
SM3算法包括预处理、消息扩展和计算Hash值三部分。
预处理部分由消息填充和消息分组两部分组成。
首先将接收到的消息末尾填充一个“1”,再添加k个“0”,使得填充后的数据成为满足length = 448mod512bit的数据长度,再在末尾附上64bit消息长度的二进制表示数,然后将消息分成512bit的子块,最后将每个512bit的消息子块扩展成132个字用于Hash值的计算。
国密算法详解(一)
国密算法详解(一)国密算法详解什么是国密算法?•国密算法是指中国自主研发的加密算法,包括SM1、SM2、SM3和SM4等。
这些算法被广泛应用于政府、金融、电子商务等领域,以保障国家信息安全。
SM1算法•SM1是对称加密算法,采用分组密码方式进行加密和解密。
它是中国自主设计的加密算法,被广泛应用于各种机密数据的加密保护。
SM2算法•SM2是非对称加密算法,用于数字签名和密钥交换。
与传统的RSA算法相比,SM2具有更高的安全性和效率,被广泛应用于数字证书、电子身份证等领域。
SM3算法•SM3是哈希算法,用于计算消息的哈希值。
它具有高度的抗碰撞性和抗抵赖性,被广泛应用于数字签名、证书和密码协议等领域。
SM4算法•SM4是对称加密算法,用于数据的加密和解密。
它具有高强度的安全性和较快的运算速度,被广泛应用于数据传输、文件加密等领域。
国密算法的特点•自主创新:国密算法完全由中国自主设计和开发,不依赖于国外技术。
•高度安全:国密算法采用了世界领先的密码学理论和算法,具有高度的安全性。
•广泛应用:国密算法被广泛应用于政府、金融、电子商务等领域,保障了国家信息安全。
•高效性能:国密算法在安全性的前提下,注重运算速度和资源消耗的平衡,提供了高效的加密和解密服务。
国密算法的发展前景•随着信息技术的迅猛发展和国家信息安全的重要性日益凸显,国密算法的应用前景非常广阔。
•国密算法具备自主创新、高度安全和高效性能的优势,将在政府、金融、电子商务等领域继续得到广泛应用。
•同时,国际标准化组织和国际密码学界对国密算法的认可和关注也在增加,加速了国密算法在全球范围内的推广和应用。
总结•国密算法是中国自主研发的加密算法,包括SM1、SM2、SM3和SM4等。
这些算法在政府、金融、电子商务等领域被广泛应用。
•国密算法具有自主创新、高度安全、广泛应用和高效性能的特点,为信息安全保障提供了重要的技术支持。
•随着国家信息安全的重要性日益凸显,国密算法的发展前景非常广阔,将在更多领域得到推广和应用。
国密应用原理
国密应用原理国密,即国家密码局认定的国产密码算法,主要包括SM2、SM3、SM4等加密算法。
这些算法被广泛应用于政务、金融、电子商务等领域,以保护敏感信息的安全。
下面详细介绍国密的应用原理:1.SM2算法:SM2是一种基于椭圆曲线的公钥密码算法,包括数字签名、密钥交换和加密三种功能。
在应用中,SM2主要用于生成密钥对、数字签名和加密通信。
发送方使用接收方的公钥对信息进行加密,接收方使用自己的私钥进行解密,确保信息在传输过程中的安全。
2.SM3算法:SM3是一种密码杂凑算法,用于生成数据的摘要。
在应用中,SM3主要用于验证数据的完整性和身份认证。
发送方将数据通过SM3算法生成摘要,然后与原始数据一起发送。
接收方收到数据后,使用相同的SM3算法再次生成摘要,并与发送方提供的摘要进行对比,以验证数据的完整性。
3.SM4算法:SM4是一种分组密码算法,用于对数据进行加密和解密。
在应用中,SM4主要用于保护数据的机密性。
发送方使用密钥将数据通过SM4算法进行加密,生成密文。
接收方使用相同的密钥和SM4算法对密文进行解密,还原出原始数据。
国密算法的应用原理可以概括为以下几点:1.使用国家认定的加密算法:国密算法经过国家密码局的认证和授权,具有较高的安全性和可靠性。
在应用中,选择使用国密算法可以确保敏感信息的安全。
2.生成密钥对:在公钥密码算法中,需要生成一对密钥,即公钥和私钥。
公钥用于加密和验证签名,私钥用于解密和生成签名。
密钥对的生成需要遵循一定的算法和规则,以确保其安全性和随机性。
3.加密通信:在通信过程中,使用加密算法对敏感信息进行加密,确保信息在传输过程中的安全。
接收方使用相应的解密算法对密文进行解密,还原出原始信息。
4.验证身份和完整性:使用杂凑算法和签名算法可以验证数据的完整性和身份认证。
发送方将数据通过杂凑算法生成摘要,并使用私钥对摘要进行签名。
接收方使用公钥验证签名并重新生成摘要进行对比,以验证数据的完整性和发送方的身份。
商用密码体系简介
SecureShell : SSH是 一种用 于远程访问和管理计算机系 统的协议,旨在替代不安全 的Telnet协议。SSH通过使用 非对称密钥进行密钥交换, 并使用对称密钥进行数据加 密,以确保远程访问的安全。
InternetProtocolSecurity : I PSec 是 一 种 用 于 保 护 IP 数 据 包 安 全 的 协 议 , 旨 在 为 IP 网 络通信提供机密性、认证性 和完整性保护。IPSec通过使 用非对称密钥进行密钥交换, 并使用对称密钥进行数据加 密 , 以 确 保 IP 数 据 包 的 安 全 传输。
在密码学和网络安全领域中,它是一种用于验证用户身份的凭证。口令通常由用户自己选择并设置,是一段具 有一定复杂度、保密性的字符串。
口令安全性遵循原则 ◼ 复杂性:使用足够长度且包含字母(大小写)、数字、特殊字符等多种字符类型的混合口令。 ◼ 唯一性:每个服务或账户应使用不同的口令,避免一处泄露导致所有服务受攻击的情况。 ◼ 更新频率:定期更换口令可以降低长期未发现的漏洞被利用的风险。 ◼ 保密性:不向他人透露口令,不在易读的地方记录口令。
SM7算法:SM7算法是一种国产分组密码算法,分组长度为128比特,密钥长度为128比特。它适用于非接触式IC卡,广泛应用于身份识别、票务、支付和通卡等领 域。SM7算法具有真随机数发生器、三重相互安全认证机制等特点,每张卡具有4字节的唯一序列号,支持一卡一密和一卡多用。
SM2算法:是一种基于椭圆曲线的公钥密码算法,由国家密码局认定 的国产密码算法。SM2算法包括SM2-1椭圆曲线数字签名算法、SM2-2 椭圆曲线密钥交换协议和SM2-3椭圆曲线公钥加密算法,分别用于实 现数字签名、密钥协商和数据加密等功能。SM2算法基于椭圆曲线上 点群离散对数难题,相对于RSA算法,256位的SM2密码强度已经比20 48位的RSA密码强度要高。SM2算法定义了5个默认参数,即有限域F §的规模p、椭圆曲线参数a、b、椭圆曲线的基点G(x,y)和与G的阶n, 国密算法标准中给出了对应的默认值。SM2算法的主要功能包括公私 钥生成、数字签名和密钥交换等。
国密算法介绍
国密算法介绍
一、总体介绍
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!)。
国产商用密码算法及其相关标准介绍
国产商用密码算法及其相关标准介绍作者:谢宗晓董坤祥甄杰来源:《中国质量与标准导报》2020年第06期1 概述《中华人民共和国密码法》第六条中规定:密码分为核心密码、普通密码和商用密码。
同时,在第七条和第八条中规定:核心密码、普通密码属于国家秘密,商用密码用于保护不属于国家秘密的信息。
因此,在常见应用中,商用密码得到了大面积的推广,以至于,在实践中,提到“国密”,经常就被默认为国产商用密码算法。
在现代密码系统中,密码算法、密码协议和密钥管理是三个不可或缺的部分,而在这三者之中,最为核心的毫无疑问就是密码算法。
虽然实践证明,绝大部分的安全漏洞都产生于实现和部署过程中,但是,算法的安全与否,直接决定了一个密码系统的基础是否安全。
例如,选用SHA-1、MD4、MD5、RC4和密钥长度小于2048位的RSA等不安全的算法,不可能实现安全的密码系统。
已经发布的国产商用密码算法,按照类别可以分为:1)对称密码算法,主要包括ZUC和SM4;2)非对称密码算法,主要包括SM2和SM9;3)密码杂凑算法,主要包括SM3。
2 对称密码算法对称密码(symmetric cryptography)是用相同的密钥(或方法)进行加密解密,这在逻辑上非常清晰,也最直观,有时候也被称之为共享密钥密码,对称密码算法的基本过程如图1所示。
已经发布国产商用密码算法中属于对称密码算法的有ZUC和SM4。
ZUC(祖冲之密码算法)属于序列密码,也称为“流密码”,与之类似的国外密码算法如RC41)。
ZUC对应的国家标准、行业标准,如表1所示。
SM4属于分组密码,也称为“块密码”,与之类似的国外密码算法如DES(数据加密标准),TDEA/3DES(三重数据加密标准)以及AES(高级加密标准)等。
SM4对应的国家标准、行业标准,如表2所示。
在安全性上,SM4-128与AES-128差不多,当然,AES支持更高的安全强度。
但是SM4具备一个很优良的特征,加密和解密的过程基本相同,只需要将密钥的顺序倒置即可实现,AES算法的加密算法和解密算法则不一致。
中国商用密码杂凑算法标准----SM3算法(数字签名)
中国商⽤密码杂凑算法标准----SM3算法(数字签名)明天就要回家惹,阿姨⽣⽇,祝happy捏⾛之前,再学点东西叭上⼀篇叭了叭密码学的算法简历,其中信息摘要部分提到了SHA家族和MD5,今天跑了⼀趟SM3,就来看看SM3算法叭~~国密算法是国家密码管理局制定并公布的⼀系列国产密码算法,包括SM1\2\3\4\7\9、ZUC祖冲之算法等等。
SM3概述SM3算法是在SHA-256基础上改进的⼀种算法,消息分组的长度为512位,⽣成的摘要长度为256位,与SHA256安全性相当。
(和上⼀篇的SHA256很像咧)算法流程填充⽐特在原始数据末尾进⾏填充,使数据长度= 448 (mod 512),规则为先补第⼀个⽐特为1,然后都补0若长度刚好为448也必须填充,此时需要增加512位,即填充的位数[1,512]附加长度信息附加长度值就是将原始数据的长度信息(⽆符号整数64bit)附加到已经填充消息的后⾯。
前两个附加长度就构成了⼀个长度为512整数倍的消息结构。
初始化数据初始值IV=7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4eTj = 79cc4519 0 ≤ j ≤ 157a879d8a 16 ≤ j ≤ 63置换函数,x是消息字P0(X) = X ⊕ (X ≪ 9) ⊕ (X ≪ 17)P1(X) = X ⊕ (X ≪ 15) ⊕ (X ≪ 23)8个字寄存器存储初始值ABCDEFGH迭代过程将消息m’分解成n个512-bit⼤⼩的块,m’=B0B1B2……B n-1令V0=IV=7380166f 4914b2b9 172442d7 da8a0600 a96f30bc 163138aa e38dee4d b0fb0e4eV i+1=CF(V i,B i),0 ≤ i ≤ n-1 ,CF为压缩函数消息扩展(将上⼀步得到的每⼀个消息分组B i扩展到132*32bit的信息w[0],w[1],w[2],……,w[67], w‘[0],w’[1],w‘[2],……,w’[63])选择⼀个512bit的块B i,将其分解为16个32bit的(big-endian)字,记为w[0],w[1],……,w[15],作为扩展消息的前16个,在递推⽣成剩余的116个字。
国产商用对称密码算法及其相关标准介绍
国产商用对称密码算法及其相关标准介绍作者:谢宗晓董坤祥甄杰来源:《中国质量与标准导报》2021年第04期1 对称密码算法对称密码(symmetric cryptography)也称为共享密钥密码,是指用相同的密钥进行加密解密,其中的“对称”指的是加密密钥和解密密钥是相同的,或者用简单的运算就可以推导两个密钥。
对称密码算法在逻辑上非常容易理解,因此出现的比较早,有时候也叫传统密码算法,以区别于公钥密码算法。
对称密码算法有两种主要形式:序列密码(stream cipher)和分组密码(block cipher)。
已经发布国产商用密码算法中属于对称密码算法的有ZUC(祖冲之密码算法)和SM4。
其中,ZUC属于序列密码,与之类似的国外密码算法如RC41)。
SM4属于分组密码,与之类似的国外密码算法如DES(Data Encryption Standard,数据加密标准)、TDEA/3DES(Triple Data Encryption Algorithm/3DES、三重数据加密标准)以及AES(Advanced Encryption Standard,高级加密标准)等。
2 对称密码算法标准为了配合WAPI2)无线局域网标准的推广应用,国家密码管理局在2006年公布了SMS43)算法。
2012年,该算法更名为SM4,成为行业标准。
2016年上升为国家标准。
SM4对应的国家/行业标准,如表1所示。
ZUC可以保护数据的机密性和完整性等,具体见GM/T 0001.2—2012和GM/T 0001.3—2012。
值得特别指出的是,2020年4月,ZUC已经成为国际标准ISO/IEC 18033-4:2011/Amd 1:2020 Information technology—Security techniques—Encryption algorithms—Part 4: Stream ciphers—Amendment 1: ZUC《信息技术安全技术加密算法第4部分:序列算法补篇1:ZUC》。
国密算法和国际密码算法的却别算法
国密算法和国际密码算法的却别算法一、概述密码学是信息安全的重要组成部分,它涉及到如何保护信息的机密性、完整性和可用性。
密码算法是密码学的基础,分为国际密码算法(如RSA、ECC)和国产密码算法(如SM2、SM3)等。
本文将介绍国密算法和国际密码算法的区别与联系。
二、国密算法国密算法是一种基于我国自主研发的密码技术实现的密码算法,主要包括SM1到SM5系列密码算法。
这些算法具有较高的安全性,适合于在各种场景下使用。
国密算法的特点包括:1.安全性高:基于我国自主研发的密码技术,具有较高的安全性。
2.适用性强:适用于各种场景,包括网络通信、数据加密、身份认证等。
3.易于实现:算法实现简单,易于在各种设备上部署。
三、国际密码算法国际密码算法是指国际通用的密码技术实现的密码算法,主要包括RSA、ECC 等。
这些算法在信息安全领域得到了广泛应用,具有较高的安全性和效率。
国际密码算法的特点包括:1.安全性高:经过广泛的安全性测试和评估,具有较高的安全性。
2.效率高:算法实现简单,运算速度快,适用于大规模数据加密和签名等场景。
3.标准化:国际上已经形成了相应的标准,便于在各种场景下使用。
四、区别与联系国密算法和国际密码算法在安全性、适用性和标准化等方面存在一定的区别,但也存在一定的联系。
具体来说:1.安全性:国密算法和国际密码算法都具有较高的安全性,但具体安全性评估和测试可能存在差异。
2.适用性:国际密码算法在某些场景下具有更高的效率和适用性,而国密算法则更适合于国内场景。
3.标准化:国际密码算法已经形成了相应的标准,而国密算法也在逐步实现标准化,以适应国内信息安全的需求。
五、结论综上所述,国密算法和国际密码算法各有特点,适用于不同的场景。
在实际应用中,应根据具体需求和场景选择合适的密码算法。
同时,加强密码技术的研究和应用,提高我国信息安全保障能力,是当前信息安全领域的重要任务。
国密算法简介
版本人员时间升级内容❝课程目的◦了解国密算法的算法原理◦了解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 倍点。
国产商用密码算法SM3及其相关标准介绍
国产商用密码算法SM3及其相关标准介绍作者:谢宗晓甄杰董坤祥来源:《中国质量与标准导报》2021年第03期SM3密码杂凑算法发布于2010年12月17日1)。
密码杂凑算法也被称作“杂凑算法”“散列算法”或“哈希算法”。
在GM/Z 0001—2013《密码术语》中,上述几个术语对应的英文都是hash algorithm。
1 密码杂凑算法密码杂凑算法的主要功能是将一个任意长的比特串映射到一个固定长的比特串。
假设任意长度的消息M,经过函数H(M)运算后,得到一个固定长度为m的散列值h,如公式(1)所示。
h=H(M)(1)如果上述运算满足下面3个条件:(1)给定任意长度的消息M,容易固定长度的h;(2)给定h,计算M非常困难;(3)给定任意长度的消息M,要找到另一个任意长度的消息M′,能够满足H(M)= H (M′),非常困难。
观察(1)和(2),实际就是单向函数的要求,对于(3)而言,这个特性指的是抗碰撞性(collision resistance),即防止不同的输入产生相同的输出。
在实践中使用的密码杂凑函数必须具备强抗碰撞性,例如,MD4、MD5和SHA-1都是因为碰撞攻击算法而被攻破。
通俗而言,就是这些算法H(M),已经能够产生具备相同散列值h的两条不同消息M和M′。
由于密码杂凑算法这个特性,散列值h,就像是消息的“指纹”。
显然,密码杂凑算法可以用于验证消息的完整性(integrity),也可以更广泛地应用于数字签名和验证、消息鉴别码(message authentication code,MAC)的生成和验证,以及随机数的生成等。
2 SM3密码杂凑算法SM3是一种密码杂凑算法。
2012年,SM3被采纳为GM/T 0004—2012行业标准,2016年转化为GB/T 32905—2016国家标准。
具体信息如表1所示。
SM3的将输入的消息经过填充和迭代压缩等步骤,生成256比特杂凑值(散列值h)。
GB/T 32905—2016中举了一个通俗易懂的例子,消息01100001 01100010 01100011,长度l为24,首先①,在末尾加“1”,然后②,添加k个“0”凑成512的倍数,最后③,添加一个64位比特串,该比特串是输入消息长度l的二进制表示。
国密算法有哪些范文
国密算法有哪些范文国密算法是中国自主研发的密码技术标准,包括对称加密算法、非对称加密算法、数字签名算法、消息认证码算法和密钥协商协议等。
以下是国密算法的具体介绍:一、对称加密算法:1.SM1:SM1是中国自主设计的对称分组密码算法,采用128位密钥和128位明文分组。
SM1算法具有良好的安全性和高效性能,广泛应用于电子政务、电子银行、移动通信等领域。
2.SM4:SM4是中国自主设计的分组密码算法,是一种快速且安全的分组密码算法。
SM4算法采用128位密钥和128位明文分组,具有良好的安全性和高效性能,被广泛应用于商业密码设备和电子商务系统。
二、非对称加密算法:1.SM2:SM2是一种椭圆曲线密码算法,用于数字签名、密钥交换和公钥加密等场景。
SM2算法采用256位椭圆曲线,安全性高且具有高效性能,在政府、金融、电子邮件等领域得到广泛应用。
2.SM9:SM9是一种基于身份的密码体制,可以实现身份认证和加密传输。
SM9算法采用椭圆曲线群和配对计算,具有高效性能和良好的安全性,适用于物联网、云计算等场景。
三、数字签名算法:1.SM2签名算法:SM2签名算法基于SM2非对称加密算法,并结合了消息摘要算法。
SM2签名算法具有高效性和安全性,被广泛应用于电子签名、电子证照等场景。
四、消息认证码算法:1.SM3:SM3是一种密码哈希函数,用于计算消息摘要,达到身份验证和完整性校验的目的。
SM3算法采用了置换、置换后的布尔运算和非线性函数等技术,具有高强度、高碰撞阻力和高效性能。
五、密钥协商协议:1.SM2密钥协商协议:SM2密钥协商协议基于SM2非对称加密算法,用于在通信双方建立共享密钥。
SM2密钥协商协议具有高效性和安全性,适用于保护通信内容的机密性。
国密算法的应用范围十分广泛,不仅在政府、金融和电子商务等领域得到广泛应用,还是中国密码产品的必备算法。
国密算法的设计目标是保护国家信息安全和提升密码产业自主可控能力,其安全性、高效性和可验证性被广泛认可。
我国商用密码SMS4
S盒 (置换)
S盒 (置换)
S盒 (置换)
S盒 (置换)
非线性 变换
8位输出b0
8位输出b1
8位输出b2
8位输出b3
输出字B
我国商用密码SMS4
③字线性部件L变换:
☆ 32位输入、32位输出。 ☆设输入位B,输出位C,表为: C=L(B) ☆运算规则: C=L(B)
=B⊕(B<<<2)⊕(B<<<10)⊕(B<<<18) ⊕(B<<<24)
128bit
X
X0
X1
st
X2
X3
rk0
the 1 round
X1
X2
X3
Hale Waihona Puke X4the 2nd round
X2 X3 X4 X5
rk1
Xi
X i 1 X i 2 X i 3
the i +1th round
T
rki
X 31 X 32 X 33 X 34
the 32th round
rk 31
X i 1
K33 K34
CK31
rk31
X32
X33
K35
L
L'
K32
X34
X35
K33
K34
X35 Y X34 Y X33 Y 2 1 0
X32 Y 3
Y (Y0 , Y1, Y2 , Y3 )
我国商用密码SMS4
4、密钥扩展算法:
①常数FK • 在密钥扩展中使用一些常数
FK0=(A3B1BAC6),FK1=(56AA3350), FK2=(677D9197 ), FK3=(B27022DC)。
我国商用密码SMS4
我国商用密码SMS4
☆S盒的置换规则:
以输入的前半字节为行号,后半字节为列号,行 列交叉点处的数据即为输出。
举例:设输入为“ef ”,则行号为e,列号为f ,于是
S 盒的输出值为表中第e 行和第f 列交叉点的值, Sbox(‘ef’)= ‘84’。
②非线性字变换:32位字的非线性变换
① (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)
• 说明:T’ 变换与加密算法轮函数中的T 基本相同,只将 其中的线性变换L 修改为以下:L’ L’ (B)=B⊕(B<<< 13)⊕(B<<< 23)
①明文输入改变1位,密文输出平均改变多少位? ②S盒输入改变1位,S盒输出平均改变多少位? ③L输入改变1位,L输出平均改变多少位? ④对于一个输入,连续施加S盒变换,变换多少次时出现输出等 于输入?
3、我国公布商用密码算法有何意义? 提交: 源代码和实验报告。
K33 K34
CK31
rk31
X32
X33
K35
L
L'
K32
X34
X35
K33
K34
X35 Y X34 Y X33 Y 2 1 0
X32 Y 3
Y (Y0 , Y1, Y2 , Y3 )
我国商用密码SMS4
4、密钥扩展算法:
①常数FK • 在密钥扩展中使用一些常数
- 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给出了数字签名算法(包括数字签名生成算法,数字签名验证算法),密钥交换协议,以及密钥封装机制和公钥加密算法(包括密钥封装算法,加密盒解密算法)。