加密套件ECDHE_SM2_WITH_SM4_SM3及握手分析

应证监局要求,国内金融产品程序化交易软件应采用国密算法实现SSL/TLS通讯,我司采用开源项目GmSSL2.0实现。

加密套件选用ECDHE_SM2_WITH_SM4_SM3,其中协议版本为TLS1.2,密钥交换(Key-Exchange)算法为ECDHE,认证(Authentication)算法为SM2,加密(Encryption)算法为SM4,消息认证码(Message-Authentication-Code)算法为SM3。

密钥交换算法ECDHE决定了C/S交换密钥的方法,与传统的RSA密钥交换算法不同,预备主密钥不再采用客户端计算-服务端公钥加密-网络传送-服务端私钥解密的方案,而是C/S两端各自生成临时私钥-互相交换临时公钥-两端分别根据本端的临时私钥和对端的临时公钥计算预备主密钥(两端计算的预备主密钥相同)的方式。

得到预备主密钥premaster_secret(32字节)后,便可以计算最终的会话密钥了,过程如下:

通过函数tls1_PRF()计算主密钥master_secret(48字节);

通过函数tls1_PRF()计算密钥块key_block(128字节),并按序分割成6块。

1)client_write_MAC_secret(32字节)

2)server_write_MAC_secret(32字节)

3)client_write_key(16字节)

4)server_write_key(16字节)

5)client_write_IV(16字节)

6)server_write_IV(16字节)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值