当前位置: 首页 > wzjs >正文

简单网站建设运营广州最新消息

简单网站建设运营,广州最新消息,动漫视频网站html模板,海参企业网站怎么做目录 1.国密算法背景 2.SM2的数字签名 3. 小结 翻了下之前一直没写国密相关的内容,鉴于前期椭圆曲线的知识已经有铺垫了,索性也把这块给聊了。 1.国密算法背景 国产密码算法在2007年启动研发,原因很简单,其一为了打破垄断&am…

目录

1.国密算法背景

2.SM2的数字签名

3. 小结


翻了下之前一直没写国密相关的内容,鉴于前期椭圆曲线的知识已经有铺垫了,索性也把这块给聊了。

1.国密算法背景

国产密码算法在2007年启动研发,原因很简单,其一为了打破垄断,其二不能确信国际密码算法真的没有后门;于是2010年12月17日,国密局正式发布SM2椭圆曲线公钥密码算法,与SM1/SM3/SM4共同构成中国商用密码标准体系,其中“SM”代表“商密”,数字“2”标识序列。

SM2在2012年被纳入国家密码标准开始试点,在2016年优化,2017年发布GB/T 35276-2017:SM2密码算法使用规范,明确算法参数SM2P25V1、基点G坐标、密钥格式及加密/签名流程。大家可以在全国标准信息公共服务平台查询标准:

很明显,SM2包含了加解密、数字签名、密钥交换等功能,由于属于椭圆曲线的一类,也逃不过大数运算的框架,所以该算法整体架构如下图所示:

2.SM2的数字签名

既然是椭圆曲线,那么SM2的安全基础也就依赖椭圆曲线离散对数问题​,简单来说就是:给定一个起点(基点G)和终点(公钥Q),但很难有人能能逆向算出到达终点后走了多少步(私钥d)。

这样,SM2的方程样式基本就确定了,如下:

y² ≡ x³ + ax + b (mod p)

 其中,

  • 素数域模数 p
    FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFF

  • 系数 a
    FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 FFFFFFFF FFFFFFFC

  • 系数 b
    28E9FA9E 9D9F5E34 4D5A9E4B CF6509A7 F39789F5 15AB8F92 DDBCBD41 4D940E93
    (经国密局严格筛选,规避已知数学漏洞)

除此之外,还有我们的老朋友基点G和阶数n,如下:

  • 基点 G
    坐标 (x, y) 为:
    Gx32C4AE2C 1F198119 5F990446 6A39C994 8FE30BBF F2660BE1 715A4589 334C74C7
    GyBC3736A2 F4F6779C 59BDCEE3 6B692153 D0A9877C C62A4740 02DF32E5 2139F0A0

  • 阶数 n
    FFFFFFFE FFFFFFFF FFFFFFFF FFFFFFFF 7203DF6B 21C6052B 53BBF409 39D54123
    (即椭圆曲线群的循环子群大小,用于密钥生成范围限制)

  • 余因子 h
    1

有了这个基本概念,我们就来看看数字签名,大家都知道,数字签名一般来说就是用私钥对消息的摘要进行加密,验签就是使用公钥进行解密,那么SM2也不例外,只是在这个基础上,SM2新增了更多的玩法,加入了所谓的数字身份指纹ZA。具体如下:

Step1:签名者A需要使用lenA比特长度的ID,联合方程参数、公钥计算一个身份指纹ZA,公式如下:ZA = SM3(ENTL || ID || a || b || Gx || Gy || Px || Py),ENTL是ID长度的比特数高位补零,例如16位ID对应ENTL=0x00 0x10

Step2:生成随机数k,必须在[1,n-1]之间;

Step3:利用G点和K,生成坐标Q = k*G =(x1, y1);

Step4:将ZA和原始M拼接,计算其Hash值,e = SM3(ZA || M);

Step5:然后进行双模运算,r = (e+x1) mod n,值得注意,如果r = 0或者r+k = n,就必须重新计算k,防止信息泄露;

Step6:通过模逆运算再次构建签名,s = (k -r*d)*(1+d)^(-1) mod n,如果s=0,仍然要重新生成k

Step7:导出签名(r,s)

 想了下,还是画个图更简单,如下图所示:

验签过程就更简单了,首先检查r与s是否在[1,n-1]之间,这是第一道防线;通过后计算 t = (r+s) mod n,利用得到的t去计算椭圆曲线点,公式R(x',y') = s * G + t * Pa,注意,Pa = d* G,这里面有一个很神奇的变换,如下:

 s * G + t * Pa = s* G +(r+s) * d * G = [s + d*(r+s)] * G,

还记得签名的step6吗?s = (k - r*d)/(1+d) mod n,其实很容易得出 s(1+d)≡k - r*d mod n ,从而得到s + sd +rd ≡ k mod n ,进而得到s+d(r+s) ≡ k mod n,所以,上述公式[s + d*(r+s)] * G ≡ k*G ≡Q,

接着计算e‘ = SM3(ZA || M),使用生成的Q的x1'进行计算得到 r ≡(e‘ + x1’) mod n,比较r,如果与签名值r相等,那就验签通过了。

3. 小结

原理看起来就是这么简单和朴实无华,SM2验签通过巧妙的数学构造,将k的验证隐含在公钥和签名值的代数关系中。

我们只需关注验签公式的输入参数(r、s、公钥、消息),无需追溯k的生成过程。

好了,就酱!

http://www.dtcms.com/wzjs/366177.html

相关文章:

  • 网站建设策划书范文6篇全免费建立自己的网站
  • 做英文网站怎么赚钱网站出租三级域名费用
  • 如何开通微信公众号昆明网站seo公司
  • 做自己头像的网站网站推广哪家好
  • 做秒杀网站有哪些天津seo诊断技术
  • 怎么做旅游网站58同城关键词怎么优化
  • asp网站首页营销页面
  • 网站和搜索引擎公众号怎么开通
  • 厦门网站建设 智多星直播网站排名
  • 东莞做网站(信科网络)正规软件开发培训学校
  • 小兵cms个人网站模板游戏推广合作
  • 教务系统登录入口长沙网站优化方法
  • 派多格宠物网站建设百度网盘怎么找片
  • 湛江网站建设方案报价dw网页设计模板网站
  • 网站字体特效免费广告推广平台
  • 商品网站怎么做上海网站seo诊断
  • wordpress 管理文件百度seo泛解析代发排名
  • 专做西餐的网站如何查询百度收录
  • 针织衫技术支持东莞网站建设cps广告联盟
  • 网站开发纠纷案外贸网络推广
  • 淄博微网站合肥搜索引擎优化
  • 易网官方网站交换友情链接平台
  • 网站 建设理由百度大数据查询怎么用
  • 关于建设网站的合作合同范本成都seo整站
  • 文山州建设局信息网站网络营销的四种方式
  • 企业网站备案代理商网络营销外包推广
  • 网站推广方法的费用合肥网站建设程序
  • 网站建设费用报价湖南企业竞价优化服务
  • 赣州网站建设新闻营业推广策略
  • 大连网站开发哪儿好薇电商培训机构推荐