首页 理论教育 椭圆曲线群组密钥协商实验

椭圆曲线群组密钥协商实验

时间:2023-10-21 理论教育 版权反馈
【摘要】:协调器节点通过选择一个网络ID启动整个网络,它是整个无线传感器网络的第一个设备,在群组密钥协商中充当协商进程的调度者。终端设备负责数据的采集与发送,在群组密钥协商中是真正参与协商的用户。ecdh2_init中的4个参数分别为:椭圆曲线生成的公共点、随机数种子、节点编号、参与协商节点的总数。

椭圆曲线群组密钥协商实验

1.实验目的

本实验介绍了使用基于椭圆曲线的群组密钥协商协议方案实现节点群组安全通信的程序。通过实验,使读者初步掌握无线传感网安全通信的基础知识,并理解在传感器节点之间建立安全通信方案的原理和方法。

2.实验设备

(1)硬件

● 2.4GHz增强节点(IOT-NODE24T)5个。

● JTAG编程器1个。

● PC(含串口)1~5台。

(2)软件

● IAR Embedded Workbench Evaluation Version for MCS-51 V7.20H。

● Z-Stack for CC2430 Version 1.4.2。

● Packet Sniffer for CC2430 Version 2.7.1。

● SerialPortTerminal for Windows(based on.Net2.0)。

3.实验原理

本实验实现时采用ZigBee协议,硬件平台是2.4GHz增强节点硬件(IOT-NODE24T),主要是由于ZigBee协议低复杂度、低功耗、低速率、低成本的特点,特别适用于群组安全通信的应用环境。ZigBee相关介绍详见第4章ZigBee网络实验相关章节。

协调器节点通过选择一个网络ID启动整个网络,它是整个无线传感器网络的第一个设备,在群组密钥协商中充当协商进程的调度者。路由器节点允许其他设备加入网络,负责多跳路由和协助它自己的由电池供电的子终端设备的通信,在群组密钥协商中是透明的。终端设备负责数据的采集与发送,在群组密钥协商中是真正参与协商的用户。

本实验的网络中使用了5个节点:1个协调器节点,负责网络的组建以及地址表的组建;4个终端设备节点,为参与协商的用户。实验流程如图5-3所示。

978-7-111-34147-5-Chapter05-19.jpg

图5-3 实验流程示意图

下面对上述主要流程分别进行介绍。

(1)协调器收集地址信息并组建地址包

在群组密钥协商的初始化阶段,所有参与群组密钥协商的终端设备节点发送自己的网络地址给协调器。当协调器在一定的时间阈值内不再收到新的网络地址时,就将收集到的网络地址组建为地址表并打包,发送给所有参与群组密钥协商的终端设备节点,使每个终端设备节点都能够感知到群组中的个体,参与协商。

协调器每接收到一个包含地址信息的数据包,就执行以下代码:

978-7-111-34147-5-Chapter05-20.jpg

978-7-111-34147-5-Chapter05-21.jpg

(2)终端设备节点进行第一轮协商

当终端设备节点收到协调器发送的地址包后,进入群组密钥协商第一轮,主要包括两部分:椭圆曲线的初始化以及计算点Zi

椭圆曲线的初始化主要完成椭圆曲线以及曲线上公共点的生成,根据参与协商的节点数分配点存储空间给变量*ecdh_node,通过调用函数ecdh2_init实现。

978-7-111-34147-5-Chapter05-22.jpg

ecdh2_init中的4个参数分别为:椭圆曲线生成的公共点、随机数种子、节点编号、参与协商节点的总数。由于无线传感器节点存储资源十分有限,公共点的存储空间需要严格控制。其申请、释放分别通过调用ecdh2_alloc、ecdh2_free实现。

978-7-111-34147-5-Chapter05-23.jpg

为了充分利用每个无线传感器节点所处环境的唯一性、特殊性等物理特征,这里使用温度传感器采集的原始值作为随机数种子。

978-7-111-34147-5-Chapter05-24.jpg

978-7-111-34147-5-Chapter05-25.jpg

椭圆曲线初始化成功后,每个终端设备节点分别计算点Zi

978-7-111-34147-5-Chapter05-26.jpg

offlineCalculations函数产生一个随机大数r,然后计算Zi=rp,并将Zi发送给它的前后节点。

(3)终端设备节点第二轮协商

当每个终端设备节点收到其前后节点发送的点Zi后,调用firstCalculations(ECDH2*p)计算点XiXi=riZi+1-Zi-1):

978-7-111-34147-5-Chapter05-27.jpg

节点计算出点Xi后,将点Xi广播给所有节点。

无线传感器节点携带的能源十分有限,其中数据发送消耗的能量最大。为了减少能量消耗,在第一轮和第二轮椭圆曲线上点的数据发送使用了点压缩算法。使用该算法,可以将一个点(xy)压缩为x和一个比特,减少约50%的数据流量

978-7-111-34147-5-Chapter05-28.jpg(www.xing528.com)

函数setEchd2Z和setEchd2X的参数相同。其中,p是椭圆曲线上的点;id是节点编号;POINT存放点压缩后的x,y存放点压缩的一位比特。

(4)终端设备节点计算群组密钥

当终端设备节点收到所有其他节点发送的Xi后,根据ecdh_node计算群组密钥。群组密钥的计算通过调用secondCalculations(ECDH2*p)实现。

978-7-111-34147-5-Chapter05-29.jpg

由于将计算出来的群组密钥是椭圆曲线上的一个点,不方便直接用来加密消息。因此,将该点进行点压缩,将x,y拼接为一个大数作为群组密钥。最后群组密钥保存在全局变量ecdh2_key[21]中。

(5)使用群组密钥加密信息

得到的群组密钥ecdh2_key[21]可以用来作为各种加密算法的主密钥,这里使用AES加密算法,对群组密钥ecdh2_key[21]求SHA值,作为加密密钥。

978-7-111-34147-5-Chapter05-30.jpg

978-7-111-34147-5-Chapter05-31.jpg

IOT-NODE24T节点采用的主芯片为的TI公司的CC2430F128芯片。该芯片提供了支持AES加密算法的专用协处理器模块,以最小的CPU开销来实现对数据的加解密。故本实验直接调用AES协处理器对数据进行加解密。

调用接口voidaesEncrypt(char*plainString,BYTE*key,intstrLength)对数据进行加密:

978-7-111-34147-5-Chapter05-32.jpg

(6)解密

调用接口voidaesDecrypt(char*cipherString,BYTE*key,intstrLength)对数据进行解密:

978-7-111-34147-5-Chapter05-33.jpg

4.实验内容

初步掌握椭圆曲线基础知识,理解基于椭圆曲线离散对数难解问题。

理解群组密钥协商协议基本原理,理解群组密钥协商协议解决群组安全通信的原理。

了解无线传感器网络环境下实现加密与解密的方法,特别是算法针对无线传感器网络资源受限所作的优化

5.实验步骤

1)启动IAR Workbench环境,编写实验代码,对协调器节点和终端设备节点的实验代码分别进行编译。编译成功后,将相应代码分别下载到协调器节点和终端设备节点。

2)将上位机软件SerialPortTerminal.exe(需要.NET2.0支持)复制到PC端,将两个或者所有终端设备节点通过串口连接到PC(可连接至同一台PC,也可每个节点各自连接一台PC)。3)启动SerialPortTerminal.exe,选择对应的COM口,波特率设置为9600bit/s,校验位设置为None,数据位设置为8位,停止位设置为1位,数据模式设置为Text,根据实际情况输入节点的个数。

4)将协调器节点和终端设备节点全部复位。启动协调器节点,开始组建ZigBee网络,等待红灯常亮,表示组网完成。

5)向背向主芯片一侧扳动协调器节点的摇杆,当观察到协调器节点黄灯亮时,在10s内迅速向背向主芯片一侧扳动所有终端设备节点的摇杆,将终端设备节点加入群组当中,启动群组密钥协商。观察终端设备节点红灯闪烁情况,并在SerialPortTerminal程序的信息区观察群组密钥的协商结果,协商结果的含义见表5-2。

表5-2 协商结果的含义

978-7-111-34147-5-Chapter05-34.jpg

6)在协商结果出现后,上位机软件会弹出提示框,询问是否选择当前终端设备节点发送消息。任选一个终端设备节点单击“Yes”按钮作为消息发送者,其他终端设备节点单击“No”按钮作为消息接收者,并在消息发送者节点对应的SerialPortTerminal程序中输入明文(暂不支持中文),并单击“发送”按钮。观察传感器节点之间的安全通信情况,包括消息发送者对明文进行加密后回发给上位机软件的密文,以及消息接受者接收密文后解密得到的明文。

6.思考题

1)认真观察网络中协调器的数据包,说明群组密钥协商的驱动模式。

2)本实验采用的群组密钥协商协议存在什么缺点?

3)如何增加参与协商的节点的个数,统计群组密钥协商的时间?说明群组密钥协商的时间与参与协商的节点数的关系。

7.补充阅读

[1]CC2430 A True System-on-Chip solution for 2.4GHz IEEE 802.15.4.

[2]祝烈煌,曹元大,廖乐健.一种可认证的群组密钥协商协议[J].计算机工程与应用,2006,S1:108-109.

[3]Burmester M,DestmedtY.ASecure and Efficient Conference Key Distribution System.Advances in Cryptology-EUROCRYPT’94.Berlin;Springer,950,1995:275-286.

[4]Z-Stack OS Abstraction Layer(OSAL)Application Programming Interface F8W-2003-0002.Texas Instruments,2005.

[5]Z-Stack Network(NWK)Application Programming Interface F8W-2003-0008.Texas Instruments,2005.

[6]Z-Stack Application Framework(AF)Application Programming Interface F8W-2003-0010.Texas Instruments,2005.

[7]Z-Stack Application Support Sub-Layer(APS)Application Programming Interface F8W-2003-0025.Texas Instruments,2005.

[8]Z-Stack Device Object(ZDO)Application Programming Interface F8W-2004-0009.Texas Instruments,2005.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈