椭圆曲线在SM2加解密中的应用(三)

一、SM2加密运算

在这里插入图片描述

1.1加密原始数据

SM2加密运算首先是用户A对数据加密,用户A拥有原始数据

  • 椭圆曲线系统参数
  • 长度为klen比特的消息M
  • 公钥Pb

椭圆曲线系统参数,已经在 椭圆曲线参数(二)中详细介绍;M就是需要加密消息,长度为klen;

1.1.1 公钥Pb的计算方式

公钥Pb=dBG,其中dB是私钥,是256bit的随机数(1<d<n,d为整数),n、G都为椭圆曲线参数。

1.2 SM2加密步骤

  • 选取一个随机数k,计算C1=kG,k此时为用户A的临时私钥,是为了和解密用户B进行密钥交换。(解密用户B拿到C1,会进行s=dB C1=dB k G)
  • 判断 S=hPb结果是否为无穷远点, 该步骤的意义是如果S 的结果不是无穷远点,后续步骤 kPb 就不可能是无穷远点。具体的详细证明见G点的选择
  • kPb=k dB G,密钥交换,后续的密钥派生和异或操作,就是将用户A的临时密钥k和用户B的密钥dB 对消息进行加密。
  • 最后的hash操作是防止在信息传递的过程中,数据被篡改。
  • C1 将自己的临时密钥k传递给解密用户B
  • C2 就是把自己临时密钥k的解密用户B的dB和消息一起加密起来,传递给解密用户B
  • C3 就是防止C1,C2在传递到解密用户B的过程中信息被篡改。

二、SM2解密运算

2.1解密拥有的数据

  • 椭圆曲线系统参数
  • 加密用户A传递过来的信息C1,C2,C3
  • 解密用户B的私钥dB

2.2解密步骤

  • dB C1就是密钥交换,要将C2中的消息解密出来,必须要有加密用户A的临时密钥k和机密用户B的私钥dB。
  • 密钥派生和异或操作就是将C2中的消息解密出来
  • 哈希运算就是确定在信息的传递过程中,没有人篡改数据

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值