ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理

来源:互联网 发布:苏州淘宝模特招聘 编辑:程序博客网 时间:2024/06/07 19:50

ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理

  • 1、ECDH介绍及原理
  • 2、ECDH执行过程
  • 3、508A某一slot执行Ecdh需要配置的参数

508A芯片硬件可以实现ECDH算法,大大提高了算法执行效率,实际使用中,需要配置好508A使其能够执行ECDH,之后才可以调用库函数的API正确执行该算法。


1、ECDH介绍及原理

ECC Diffie-Hellman (ECDH) 是实现密钥协商的一种算法,或者说一种协议。关于详细原理,具体可以参考:http://blog.csdn.net/mrpre/article/details/72850644
或 https://msdn.microsoft.com/zh-cn/library/cc488016(v=vs.90).aspx

个人理解,Ecdh算法是通过ECC(椭圆曲线)非对称加密算法的数学关系和 Diffie-Hellman协议,生成一个共同的Session key。
例如,有两个节点A和B,他们都有公私钥对:PrivateKeyA和PublicKeyA,PrivateKeyB和PublicKeyB,(简称PriB PubB)
如果利用对方的公钥和自己的私钥,进行ECDH数学运算,由于其存在的数学关系(椭圆曲线),一定会算出一个共同的数值,既密钥。(纯数学关系角度,虽然不好理解,但是合理的)。
因此PriA 与PubB,及PriB与PubA总会生成一个唯一共同的密钥


2、ECDH执行过程

ECDH开始时,会有一个发起方,假定为A,则发起方A会产生一个Random,并混合发起方A的PublickeyA发送给接收方B,然后B向A发送B的公钥PublickeyB,最终B通过A的PublicKeyA+Random,A通过自己产生的Random和PublickeyB生成该次密钥协商的唯一SessionKey。
该过程结果都是数学运算的结果,因为ECC算法的公私钥之间存在着一定的数学关系。

这里写图片描述


3、508A某一slot执行Ecdh需要配置的参数

3.1、将该Slot配置成可以执行ecdh,其中可以灵活的配置ECDH算法结果的输出形式,方便开发。

这里写图片描述

3.2、将该Slot配置成可以二次产生密钥(可以执行Genkey命令)),这是因为ECDH过程中需要使用GenKey命令。
这里写图片描述

阅读全文
0 0
原创粉丝点击