是客户需要的算法,有需要就研究,毕竟知识有用到才能体现其价值。

关于ECDH_SECP256R1,之前文章(ECDH产生共享密钥 http://t.csdn.cn/T4OYc
)已经介绍过,是一种密钥协商算法,主要利用彼此公私钥产生共享密钥。

这里重点介绍下

X9.63 KDF-SHA256

这个主要是一种密钥分散方法。X9.63是指美国佬出的标准规范“ANSI X9.63”,KDF是 Key Derivation Function,SHA256就是采用哈希256计算哈希值,具体算法过程介绍如下:


简单说就是用SHA256算法,对Z+counter+info进行计算,得出Hash(i),不断计算,直到能得到所需KeydataLen长度的密钥为止。

数据实例:

[SHA-256]
[shared secret length = 192]
[SharedInfo length = 128]
[key data length = 1024]COUNT = 0
Z = 22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d
SharedInfo = 75eef81aa3041e33b80971203d2c0c52Counter = 00000001Hash input 1 = 22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d0000000175eef81aa3041e33b80971203d2c0c52K1 = c498af77161cc59f2962b9a713e2b215152d139766ce34a776df11866a69bf2eCounter = 00000002Hash input 2 = 22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d0000000275eef81aa3041e33b80971203d2c0c52K2 = 52a13d9c7c6fc878c50c5ea0bc7b00e0da2447cfd874f6cf92f30d0097111485Counter = 00000003Hash input 3 = 22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d0000000375eef81aa3041e33b80971203d2c0c52K3 = 500c90c3af8b487872d04685d14c8d1dc8d7fa08beb0ce0ababc11f0bd496269Counter = 00000004Hash input 4 = 22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d0000000475eef81aa3041e33b80971203d2c0c52K4 = 142d43525a78e5bc79a17f59676a5706dc54d54d4d1f0bd7e386128ec26afc21
key_data = c498af77161cc59f2962b9a713e2b215152d139766ce34a776df11866a69bf2e52a13d9c7c6fc878c50c5ea0bc7b00e0da2447cfd874f6cf92f30d0097111485500c90c3af8b487872d04685d14c8d1dc8d7fa08beb0ce0ababc11f0bd496269142d43525a78e5bc79a17f59676a5706dc54d54d4d1f0bd7e386128ec26afc21

整个ECDH_SECP256R1 + X9.63 KDF-SHA256演示

ECDH:
ecc_pub_B = 03EBDCEFDAF5C837BA32F79996C266FA70E82B62E9EA789BC6B33E6DDAB536E4CC
ecc_pri_A = C3E0A65F855C24726B157ED7E69E49D5F27FB402AEF7A4B7B38531A4EE93C911
GenerateSharedSecretKey: 70A522F6DB9652573E8871E17887F43DA0F29439B8CAC686BCD5FDD28F993473
DerivateSecretKey Calculate (X963KDF-SHA256)
IKM = 70A522F6DB9652573E8871E17887F43DA0F29439B8CAC686BCD5FDD28F993473
Info = 040010112233445566778899AABBCCDDEEFFADDB
Olen = 0x30
IKM + Counter + Info= 70A522F6DB9652573E8871E17887F43DA0F29439B8CAC686BCD5FDD28F993473 00000001 040010112233445566778899AABBCCDDEEFFADDB
HashResult 0 = 2A2D81A60881CAA42F0D58B8725A07B8EF9FD3A3AFD06359954CE727E3A03A97
IKM + Counter + Info= 70A522F6DB9652573E8871E17887F43DA0F29439B8CAC686BCD5FDD28F993473 00000002 040010112233445566778899AABBCCDDEEFFADDB
HashResult 1 = 28D3FBF1E12A95DA85398AF4FCA2526A9858C4FC87FE3E448EB2D4F1A1DC0FA9
X963KDF DerivateSecretKey: 2A2D81A60881CAA42F0D58B8725A07B8EF9FD3A3AFD06359954CE727E3A03A9728D3FBF1E12A95DA85398AF4FCA2526A
DerivateSecretKey OK!

如果有需要,可付费修改,或提供计算软件。联系微信(tainshanjinyou),非主业,赚个奶茶钱!

ECDH_SECP256R1 + X9.63 KDF-SHA256相关推荐

  1. Crypto++(一)Diffie-Hellman

    本文翻译自 https://www.cryptopp.com/wiki/Diffie-Hellman,本人英文水平有限,如有翻译不当之处请给出修改建议! 1. Diffie-Hellman 密钥协商算 ...

  2. 区块链:密码学与安全技术

    工程领域从来没有黑科技:密码学不仅是工程. 密码学为核心的安全技术在信息科技领域的重要性无需多言.离开现代密码学和信息安全技术,人类社会将无法全面步入信息时代.区块链和分布式账本中大量使用了密码学和安 ...

  3. c保留小数点后三位数没有则为0_哪位老师整理的,这么齐全?赶紧存下为孩子期末考试助力...

    在小学阶段,孩子的数学学习是从数字开始的.从简单的1-10,然后扩充到100.1000,从简单的加法到计算难度增加的乘除法,孩子从扳手指到运用九九乘法表,孩子的计算能力要求是随着学龄增加而增加的. 不 ...

  4. sql 计算两个小数乘积_数学篇|学会这些数学计算技巧,想不满分都难!

    计算是小学数学的基础,四则运算和混合运算是计算要考察的重点.在这里我们总结了小学用到的所有计算定律和简便方法,包括运算定律.运算法则.运算顺序和速算技巧四大部分,帮助小学生牢固掌握数学知识点.先赞后看 ...

  5. 基于RSA的公钥基础体系下安全通信实战

    目录 简说RSA 服务器的初始密钥对和认证请求 证书认证机构CA 服务器安装CA签名证书 客户机 小结 从样板戏<红灯记>到好莱坞谍战大片<风语者Windtalkers>等,许 ...

  6. HASH和HMAC(5):SHA-384、SHA-512、SHA-512/224和SHA-512/256算法原理

    协议标准:https://csrc.nist.gov/CSRC/media/Publications/fips/180/2/archive/2002-08-01/documents/fips180-2 ...

  7. ECC-椭圆曲线密码

    ECC:Elliptic Curves Cipher椭圆曲线密码.In 1985 both Koblitz and Miller independently suggested the use of ...

  8. 椭圆曲线密码体制(ECC)

    2002年,美国SUN公司将其开发的椭圆加密技术赠送给开放源代码工程 公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类.离散对数问题类.椭圆曲线类.有时也把椭圆曲线类归为离散对数类. 椭圆 ...

  9. 万能乘法速算法大全_小学数学加减乘除【速算法】都在这里! 寒假让孩子练一练...

    ★需要电子版资料可直接拉至文末查看领取方式哈! 小果老师说: 很多小朋友的寒假生活已经开启啦!寒假的确可以好好玩一玩,但某种程度上该学习还是的学习一些的! 因此 ,今天小果老师要给大家分享的内容是数学 ...

最新文章

  1. [20170914]tnsnames.ora的管理.txt
  2. Windows环境下32位汇编程序设计C版code--第五章(三)
  3. php 菜谱 源码,基于php的菜谱大全api调用代码实例
  4. python中用*打印一个上三角形和下三角形组成的三角形
  5. kali linux 编码,Kali Linux 2019.4解决中文乱码问题
  6. 并行批处理多个文件 matlab
  7. Codeigniter 4.0-dev 版源码学习笔记之四——详细路由过程
  8. 前端学习(2375):项目介绍结束
  9. 【蓝桥杯单片机】PWM(LED亮度调节)
  10. (转)python中的参数:*args和**kwargs
  11. 安卓为什么卡及其解决方案
  12. Qt自定义对话框及调用方法
  13. 流媒体后视镜方案关键技术--调节后视图像显示范围
  14. Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
  15. 【路由器】OpenWrt 简介和安装
  16. 程序员自爆奇葩入职原因:进腾讯是为了不用续费年费会员,进抖音是想天天上班刷抖音
  17. 官方免费的正版Xshell,人人都可以马上拥有
  18. 从宜人贷系统架构看互联网高并发对金融系统架构的挑战
  19. Prometheus监控系部署配置过程
  20. 5.2 递归算法及设计思想

热门文章

  1. [JZOJ5594][min25筛]最大真因数
  2. 杰里之电流声/杂音【篇】
  3. Amdahl定律(最直观理解)
  4. 如何禁止IE浏览器访问我的网页
  5. 如何批量将图片尺寸改成一样大?
  6. 实用selenium+python实现web自动化测试
  7. 《白鹿原》读书笔记——纪实的戏剧
  8. SystemVerilog验证教程(二)--SystemVerilog Interface 和 Timing Region
  9. Linux远程登录xftp,xshell下载以及简单使用教程
  10. ubuntu快速保存网页图片