山东大学软件工程应用与实践——GMSSL开源库(六)——SM9密钥交换协议

2021SC@SDUSC

基本概念

1976年,Diffie和Hellman在其题为《密码学的新方向》的论文中首次给出了公钥密码学的定义,并提出了Diffie-Hellman密钥交换算法。该算法解决了对称密码体制中的密钥分发问题,使得通信双方可以通过公开信道安全地交换共享密钥。

使用SM9通信的双方通过对方的标识和自身的私钥,经过两次或者可选的三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。该密钥可以作为对称密码算法的会话密钥,其中可选步骤用来实现密钥确认。
密钥交换协议执行前需给用户分配加密私钥。SM9密钥交换协议可抵抗中间入侵攻击。

应用场景:双方在线,密钥交换后,利用该会话密钥进行数据交换,会话结束后,会话密钥失效。

符号及辅助算法

在这里插入图片描述
在这里插入图片描述
密钥交换协议的符号与数字签名的符号相差不大,区别之处在于多添加了几个参数的定义:
在这里插入图片描述
在这里插入图片描述
其中,KDF()密码派生函数的具体内容如下:
在这里插入图片描述
其作用为把Z的长度压缩到klen长度的比特串。

另外,用户私钥的计算方法与数字签名中用户私钥的算法一样,在此不再赘述。有兴趣可以移步山东大学软件工程应用与实践——GMSSL开源库(三)——SM9数字签名算法及验证中查看用户私钥的生成方式与源代码头文件中参数的定义。

SM9密钥交换协议

密钥交换协议的具体流程如下:
密钥交换协议的具体流程说明:
1、用户A与B的计算过程并不同步。
2、其中“(选项)”部分为密钥的验证过程,若不需要密钥的验证,则不需要进行计算与传送工作。
3、SM9密钥交换协议的正确性条件是用户A 第五步与用户B第四步中各参数相等,即g1=g1’,g2=g2’,g3=g3’。
4、根据流程图内容理解SM9密钥交换协议的流程并不复杂,但其数学证明较为复杂,需要一定的数学基础,在此不进行具体的数学证明过程的描述。

参考:GMT 0044.3-2016 SM9 标识密码算法 第3部分:密钥交换协议

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值