SM国密算法(三)

您所在的位置:网站首页 bogt游戏盒 SM国密算法(三)

SM国密算法(三)

2024-07-14 02:23:01| 来源: 网络整理| 查看: 265

目录 一、简介二、数学公式获取公私钥:密钥对的生成:SM签名SM验签SM加密SM解密加解密中C1,C2,C3

一、简介

SM2非对称加密算法。由国家密码管理局于2010年12月17日发布。基于椭圆曲线密码的公钥密码算法标准,其密钥长度256bit,包含数字签名、密钥交换和公钥加密,用于替换RSA/DH/ECDSA/ECDH等国际算法。

SM2采用的是ECC 256位的一种,其安全强度比RSA 2048位高,且运算速度快于RSA。随着密码技术和计算技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。SM2算法在安全性、性能上都具有优势。

二、数学公式 获取公私钥:

椭圆曲线方程:

y^2 = x^3 + ax + b mod p 确认a、b、p,确认曲线。选择一个点 P ( x g , y g ) P(x_g, y_g) P(xg​,yg​)为 基 点 。对曲线做切线、x对称点运行。次数为d,运算倍点为Qd为私钥,Q为公钥 密钥对的生成: 产生随机整数 d [ 1 , n − 2 ] d[1,n−2] d[1,n−2]G为基点,计算点 P = ( x P , y P ) = [ d ] G P = (xP, yP) = [d]G P=(xP,yP)=[d]G;密钥对为: ( d , P ) (d,P) (d,P) 其中,d为私钥,P为公钥

一个很典型的例子:

a = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFC b = 0x28E9FA9E9D9F5E344D5A9E4BCF6509A7F39789F515AB8F92DDBCBD414D940E93 p = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000FFFFFFFFFFFFFFFF x_g = 0x32c4ae2c1f1981195f9904466a39c9948fe30bbff2660be1715a4589334c74c7 y_g = 0xbc3736a2f4f6779c59bdcee36b692153d0a9877cc62a474002df32e52139f0a0 n = 0xFFFFFFFEFFFFFFFFFFFFFFFFFFFFFFFF7203DF6B21C6052B53BBF40939D54123 SM签名

M为待签名消息,数字签名结果为 ( r , s ) (r,s) (r,s) ,用户密钥对 ( d , P ) (d,P) (d,P)。

实现步骤:

e = h a s h ( M ) e = hash(M) e=hash(M) => 获取消息散列值产生随机数k => 以便即使是同一个消息,每次签名出来的结果不同。使用随机数,计算椭圆曲线点 ( x 1 , y 1 ) = [ k ] G (x_1, y_1) = [k]G (x1​,y1​)=[k]G r = ( e + x 1 ) m o d n r = (e + x1) mod n r=(e+x1)modn => 判断: r = 0 r = 0 r=0 或者 r + k = n r + k = n r+k=n, 继续第2步。 s = ( ( 1 + d ) − 1 ∗ ( k − r ∗ d ) ) m o d n s = ((1 + d)^{-1} ∗ (k − r ∗ d )) mod n s=((1+d)−1∗(k−r∗d))modn, 若 s = 0,继续第2步r,s 为签名信息。 SM验签

M为明文, ( r , s ) (r, s) (r,s) 为签名结果,用户公钥P

实现步骤:

e = h a s h ( M ) e=hash(M) e=hash(M) t = ( r + s )   m o d   n t = (r+s)\ mod\ n t=(r+s) mod n ( x , y ) = [ s ] G + [ t ] P (x,y)=[s]G + [t]P (x,y)=[s]G+[t]P R = ( e + x )   m o d   n R=(e+x)\ mod\ n R=(e+x) mod n计算R是否等于r

[ s ] G + [ t ] P [s]G + [t]P [s]G+[t]P 的结果可以推导出等于 [ k ] G [k]G [k]G

验证原理

[s]G + [t]P = sG + (r + s)P = sG + (r + s)dG = sG + sdG + rdG = (1 + d)sG + rdG = (1 + d)(1 + d)^{-1} * (k − rd)G + rdG = (k − rd)G + rdG = kG − rdG + rdG = kG = (x1, y1) SM加密

M为明文字符串

获取随机数k(x1,y1) = [k]GS = [h]P => h 为余因子 C 1 = ( x 2 , y 2 ) = [ k ] P C1=(x2,y2)= [k]P C1=(x2,y2)=[k]P t = K D F ( x 2 ∣ ∣ y 2 , k l e n ) t = KDF( x2 || y2 , klen) t=KDF(x2∣∣y2,klen) => klen为M的长度。KDF是sm2的密钥派生函数 C 2 = M + t C2 = M + t C2=M+t C 3 = H a s h ( x 2 ∥ M ∥ y 2 ) C3 = Hash( x2 ∥ M ∥ y 2 ) C3=Hash(x2∥M∥y2) C = C 1 ∥ C 2 ∥ C 3 C = C 1 ∥ C 2 ∥ C 3 C=C1∥C2∥C3 SM解密

C为密文字符串,klen为密文中C2的长度

C 1 = C C1 = C C1=C 里面获取,验证C1是否满足椭圆曲线。 ⇒ C2长度确定,可以获取C1内容。 S = [ h ] C 1 S = [h]C1 S=[h]C1, S为无穷点,退出。 ( x 2 , y 2 ) = [ d ] C 1 (x2, y2) = [d]C1 (x2,y2)=[d]C1 t = K D F ( m 2 ∣ ∣ y 2 , k l e n ) t = KDF(m2 || y2, klen) t=KDF(m2∣∣y2,klen) M   = C 2 + t M^~ = C2 + t M =C2+t u = H a s h ( x 2 ∣ ∣ M   ∣ ∣ y 2 ) , u ? = = C 3 u = Hash(x2 || M^~ || y2), u? == C3 u=Hash(x2∣∣M ∣∣y2),u?==C3 M   M^~ M 为明文 加解密中C1,C2,C3

SM2非对称加密的结果由C1,C2,C3三部分组成。 其中C1是生成随机数的计算出的椭圆曲线点,C2是密文数据,C3是SM3的摘要值。 最开始的国密标准的结果是按C1C2C3顺序的,新标准的是按C1C3C2顺序存放的



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭