ECDH_SECP256R1 + X9.63 KDF-SHA256
是客户需要的算法,有需要就研究,毕竟知识有用到才能体现其价值。
关于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相关推荐
- Crypto++(一)Diffie-Hellman
本文翻译自 https://www.cryptopp.com/wiki/Diffie-Hellman,本人英文水平有限,如有翻译不当之处请给出修改建议! 1. Diffie-Hellman 密钥协商算 ...
- 区块链:密码学与安全技术
工程领域从来没有黑科技:密码学不仅是工程. 密码学为核心的安全技术在信息科技领域的重要性无需多言.离开现代密码学和信息安全技术,人类社会将无法全面步入信息时代.区块链和分布式账本中大量使用了密码学和安 ...
- c保留小数点后三位数没有则为0_哪位老师整理的,这么齐全?赶紧存下为孩子期末考试助力...
在小学阶段,孩子的数学学习是从数字开始的.从简单的1-10,然后扩充到100.1000,从简单的加法到计算难度增加的乘除法,孩子从扳手指到运用九九乘法表,孩子的计算能力要求是随着学龄增加而增加的. 不 ...
- sql 计算两个小数乘积_数学篇|学会这些数学计算技巧,想不满分都难!
计算是小学数学的基础,四则运算和混合运算是计算要考察的重点.在这里我们总结了小学用到的所有计算定律和简便方法,包括运算定律.运算法则.运算顺序和速算技巧四大部分,帮助小学生牢固掌握数学知识点.先赞后看 ...
- 基于RSA的公钥基础体系下安全通信实战
目录 简说RSA 服务器的初始密钥对和认证请求 证书认证机构CA 服务器安装CA签名证书 客户机 小结 从样板戏<红灯记>到好莱坞谍战大片<风语者Windtalkers>等,许 ...
- 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 ...
- ECC-椭圆曲线密码
ECC:Elliptic Curves Cipher椭圆曲线密码.In 1985 both Koblitz and Miller independently suggested the use of ...
- 椭圆曲线密码体制(ECC)
2002年,美国SUN公司将其开发的椭圆加密技术赠送给开放源代码工程 公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类.离散对数问题类.椭圆曲线类.有时也把椭圆曲线类归为离散对数类. 椭圆 ...
- 万能乘法速算法大全_小学数学加减乘除【速算法】都在这里! 寒假让孩子练一练...
★需要电子版资料可直接拉至文末查看领取方式哈! 小果老师说: 很多小朋友的寒假生活已经开启啦!寒假的确可以好好玩一玩,但某种程度上该学习还是的学习一些的! 因此 ,今天小果老师要给大家分享的内容是数学 ...
最新文章
- [20170914]tnsnames.ora的管理.txt
- Windows环境下32位汇编程序设计C版code--第五章(三)
- php 菜谱 源码,基于php的菜谱大全api调用代码实例
- python中用*打印一个上三角形和下三角形组成的三角形
- kali linux 编码,Kali Linux 2019.4解决中文乱码问题
- 并行批处理多个文件 matlab
- Codeigniter 4.0-dev 版源码学习笔记之四——详细路由过程
- 前端学习(2375):项目介绍结束
- 【蓝桥杯单片机】PWM(LED亮度调节)
- (转)python中的参数:*args和**kwargs
- 安卓为什么卡及其解决方案
- Qt自定义对话框及调用方法
- 流媒体后视镜方案关键技术--调节后视图像显示范围
- Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
- 【路由器】OpenWrt 简介和安装
- 程序员自爆奇葩入职原因:进腾讯是为了不用续费年费会员,进抖音是想天天上班刷抖音
- 官方免费的正版Xshell,人人都可以马上拥有
- 从宜人贷系统架构看互联网高并发对金融系统架构的挑战
- Prometheus监控系部署配置过程
- 5.2 递归算法及设计思想