利索能及
我要发布
收藏
专利号: 2020104128584
申请人: 南京邮电大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-08-04
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:

所述身份认证协议方法包括协议初始化和协议认证两部分;

所述协议初始化中,卫星节点通过哈希函数、反哈希函数和椭圆曲线,得到公钥并广播给汇聚节点;汇聚节点随机生成私钥和公钥,并将公钥和自身身份标识号发送至卫星节点;

卫星节点收到后计算对应哈希值和密钥,并广播给所有汇聚节点;汇聚节点再通过反哈希函数得到反哈希值,并通过比较私钥、密钥、公钥和反哈希值来判断汇聚节点A是否注册成功;

所述协议认证中,汇聚节点与锚定节点连接时,判断是否具有身份标识号和对应哈希值,有则生成随机数和临时交互号并计算密钥,发送给锚定节点;锚定节点收到后计算密钥并发送回汇聚节点;汇聚节点通过DSA算法得到签名消息和密文,并发送到锚定节点;锚定节点通过DSA算法得到明文,通过比较身份标识号以及签名消息和明文判断汇聚节点是否可信;

锚定节生成随机数和临时交互好并计算密钥,通过DSA算法得到签名消息和密文,并发送给汇聚节点;当汇聚节点通过DSA算法的解密过程得到明文,通过比较身份标识号以及签名消息和明文判断汇聚节点是否可信;

若上述判断均为可信,汇聚节点计算新的密钥后发送给锚定节点,该密钥作为会话密钥进行通信,双向身份认证成功。

2.根据权利要求1所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:所述协议初始化包括如下步骤:步骤1-1,卫星节点选择哈希函数H、反哈希函数H-1和椭圆曲线EC,得到私钥和对应的公钥;

步骤1-2,当所有汇聚节点部署到工作区域后,卫星节点将哈希函数H、反哈希函数H-1和椭圆曲线参数T广播给覆盖范围内的所有汇聚节点;任一汇聚节点A随机生成私钥skA,并计算得到对应的公钥PkA;

步骤1-3,汇聚节点A将唯一的身份标识号IDA发送到卫星节点的公共信息库PIR,并将上一步中计算得到的公钥发送到卫星节点;

步骤1-4,当卫星节点收到汇聚节点的身份标识号IDA和公钥PkA后,计算其哈希值H(IDA)和密钥Ra,并广播给所有汇聚节点;

步骤1-5,汇聚节点A收到哈希值H(IDA)和密钥Ra后,通过反哈希函数H-1得到反哈希值IDA′;

步骤1-6,汇聚节点A通过比较skARaPkA和H(IDA′)PkA是否相等来判断汇聚节点A是否注册成功,如果两者相等,则汇聚节点A注册成功。

3.根据权利要求2所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:步骤1-1中,所述椭圆曲线EC:y2=(x3+ax+b)mod q,其中mod是余数运算符,该椭圆曲线的参数是T=(a,b,G,n,q),其中a,b是系数,q是质数,a,b,x,y∈Fq,Fq是椭圆曲线的有限域,G是椭圆曲线的基点,n是以G为基点的阶,令任意小于n的整数r为私钥,则r-1G计算得到的结果为对应的公钥。

4.根据权利要求2所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:步骤1-2中,由如下计算公式算出对应的公钥PkA:PkA=skA-1G(PkA≠0)

其中,skA是汇聚节点A随机生成的私钥,G是代表椭圆曲线的基点。

5.根据权利要求2所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:步骤1-4中,密钥计算公式为:Ra=skA-1H(IDA)。

6.根据权利要求2所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:步骤1-5中,反哈希值IDA′计算公式如下:ID′A=H-1(H(IDA))

其中,IDA是汇聚节点A的唯一的身份标识号。

7.根据权利要求1所述的基于ECC的水声传感器网络节点间身份认证协议方法,其特征在于:所述协议认证包括如下步骤:步骤2-1,当汇聚节点A成功与所在通信范围内的锚定节点建立连接时,所在通信范围内的锚定节点首先要查看该锚定节点是否具有汇聚节点A的身份标识号IDA所对应的哈希值H(IDA);如果具有,则开始身份认证,转步骤2-2;如果没有,则拒绝身份认证,转步骤2-9;

步骤2-2,汇聚节点A生成一个随机数VA和临时交互号NA,其中VA,NA∈Fq,Fq是代表椭圆曲线的有限域;计算密钥DA=VA-1G(DA≠0),并将步骤1-2中广播给汇聚节点A的椭圆曲线参数T、随机数VA和密钥DA发送给所在通信范围内的锚定节点;

步骤2-3,当所在通信范围内的任一锚定节点B收到随机数VA和密钥DA后,锚定节点B计算密钥KA=VA-1PkB,并将密钥KA发送给汇聚节点A,其中随机数yA是步骤2-2中汇聚节点A生成的,锚定节点B的公钥PkB是已知值;

步骤2-4,当汇聚节点A收到密钥KA后,汇聚节点A用初始化过程中生成的私钥skA通过DSA算法的签名消息过程sign,得到签名消息CsignA=sign(SkA,IDA||IDB||DA||NA);汇聚节点A用密钥KA通过DSA算法的加密过程EN,得到的密文CAB=EN(KA,IDA||IDB||NA||CsignA);汇聚节点A将签名消息CsignA和密文CAB发送到锚定节点B;

步骤2-5,当锚定节点B收到签名消息CsignA和密文CAB后,锚定节点B用密钥KA通过DSA算法的解密过程DE,得到明文DE(KA,CAB)=IDA||IDB||NA||CsignA;比较锚定节点的身份标识号IDB与自身是否一致,若不一致转步骤2-9;若一致,锚定节点B通过比较汇聚节点A公钥skA计算所得到的签名消息CsignA与解密后得到的签名消息CsignA是否相等,判断汇聚节点A是否可信;如果相等,则汇聚节点A可信,转步骤2-6,如果不相等,则汇聚节点A不可信,转步骤2-9;

步骤2-6,锚定节点B生成一个随机数VB,临时交互号NB,其中VB,NB∈Fq,Fq是代表椭圆曲线的有限域;锚定节点B计算密钥DB=VB-1PkB(DB≠0),密钥KB=VBskBDA,并用私钥skB通过DSA 算法的签名消息过程sign,得到签名消息CsignB=sign(skB,IDA||IDB||DB||NB||NA);锚定节点B用密钥KB通过DSA算法的加密过程EN,得到密文CBA=EN(KB,IDA||IDB||CsignB||NB||NA),将签名消息CsignB、密钥DB和密文CBA发送给汇聚节点A;

步骤2-7,当汇聚节点A收到密钥DB、签名消息CsignB和密文CBA后,汇聚节点A用密钥KB通过DSA算法的解密过程DE,得到的明文DE(KB,CBA)=IDA||IDB||CsignB||NB||NA;比较汇聚节点的身份标识号IDA与自身是否一致,若不一致转步骤2-9;若一致,汇聚节点A通过比较锚定节点B公钥skB计算所得到的签名消息CsignB与解密后得到的签名消息CsignB是否相等,判断锚定节点B是否可信;如果相等,则锚定节点B可信,转步骤2-8,如果不相等,则汇聚节点A不可信,转步骤2-9;

步骤2-8,汇聚节点A计算密钥KC=VADB后,将密钥KC发送给锚定节点B;汇聚节点A和锚定节点B可使用密钥KC作为会话密钥进行通信,双向身份认证成功,转步骤2-10;若验证不通过,则转步骤2-9;

步骤2-9,汇聚节点A和锚定节点B双向认证失败;

步骤2-10,认证成功,结束协议执行过程。