CN114021165A - 一种部分私公钥对构建方法、认证密钥协商方法及*** - Google Patents

一种部分私公钥对构建方法、认证密钥协商方法及*** Download PDF

Info

Publication number
CN114021165A
CN114021165A CN202111270544.6A CN202111270544A CN114021165A CN 114021165 A CN114021165 A CN 114021165A CN 202111270544 A CN202111270544 A CN 202111270544A CN 114021165 A CN114021165 A CN 114021165A
Authority
CN
China
Prior art keywords
key
public key
user
private
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111270544.6A
Other languages
English (en)
Inventor
孙发军
何炎祥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN202111270544.6A priority Critical patent/CN114021165A/zh
Publication of CN114021165A publication Critical patent/CN114021165A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种部分私公钥对构建方法、认证密钥协商方法及***,为了构建一种适用于传感器网络的无证书无对运算的认证密钥协商协议,使认证的密钥协商过程在确保安全、可靠和低开销的基础上而又可行,本发明在邓伦治等人工作的基础上,利用巧妙的部分公钥设计降低协商包的大小,利用异或运算及hash值计算的改进实现了对称性,并增加确认机制以提高安全可靠性。在确保计算量仍只要4个标量乘的规模的情况下,完善了通信包且降低了通信量,而实现的对称性使得协议更可行,可用于物联网、分布式网络特别是低配网络如传感器网络中节点间安全高效地协商共享的会话密钥。

Description

一种部分私公钥对构建方法、认证密钥协商方法及***
技术领域
本发明属于网络安全中的认证密钥协商技术领域,特别是涉及一种基于公 钥的无证书认证或自认证的密钥协商(或分配、分发、交换)方法及***,可用 于物联网、分布式网络特别是低配网络如传感器网络中节点间安全高效地协商共 享的会话密钥。
背景技术
随着信息技术的不断发展,计算机网络研究和应用正逐步从局域网、广域 网、互联网向移动互联网、物联网等下一代网络拓展。传感器网络作为物联网的 一个重要组成部分,其研究也得到了前期很多学者的关注,但离应用尚有一定距 离,最关键的是其中的安全问题还亟待解决。为了实现开放互联网络的安全通信, 特别是实现无线网络的安全通信,通常需要在两个用户间利用公钥技术安全地构 建一个会话用的对称密钥,即需要解决认证密钥协商(AKA,Authenticated Key Agreement)问题,这在低配、开放、自组的无线传感器网络中尤为重要。这方 面高效的方法最近主要有孙发军、邓伦治等人的研究,他们二者的研究都是需要 4个标量乘点运算,效率相当,但邓伦治等人的方法(见Deng L,Gao R.Certificateless two-party authenticated key agreement scheme for smart grid.Information Sciences,2020,543)具有更好的安全性。不过邓等人的方法仍存在些 许问题,还不完全适合于传感器网络,本发明专利正是基于其方法进行改进、完 善而提出。邓等人方法的主要步骤是:
S1、安装阶段:获取密钥生成中心KGC通过***参数生成的主密钥msk及 公共参数集params。这一阶段根据预定的安全参数k∈Z+,选择一个阶为大素 数q的加法循环群G并确定生成元P,取随机数
Figure BDA0003328624080000011
作为KGC的msk,根据Ppus=sP计算KGC公钥Ppus,并构建公共参数集: params={Fp,E/Fp,G,k,P,Ppub,H1,H2,H3},其中H1为哈希函数
Figure BDA0003328624080000012
H2为哈希函数
Figure BDA0003328624080000013
H3为哈希函 数
Figure BDA0003328624080000014
S2、注册阶段:根据用户身份信息、所述主密钥msk和***公共参数集params生成会话对应的公钥和私钥。由各用户生成自己的部分私钥xi和公钥 Pi=xiP,然后将(IDi,Pi)发给KGC,KGC确认用户身份后根据身份信息IDi及 收到的Pi,先选择随机数
Figure BDA0003328624080000021
按公式si=ri+sH1(IDi,Pi,Ri)(mod q)计算而 得由KGC生成的部分私公钥对(si,Ri),并将其通过一个安全通道发送给对应用 户。
S3、密钥协商阶段:根据用户身份信息、公钥、私钥和***公共参数集params进行会话认证密钥协商。会话发起方A(如Smart Meter)先选取
Figure BDA0003328624080000022
并计算发起方临时公钥TA=tAP,将MA=(RA,TA)发给会话响应方B(如Service Provider);响应方也选取
Figure BDA0003328624080000023
并计算响应方临时公钥TB=tBP,将 MB=(RB,TB)发给发起方。会话发起方收到MB后,先计算:
hB=H1(IDB,PB,RB),hAB=H2(IDA,IDB,PA,PB,RA,RB,TA,TB),随后计算:
KAB=(hABtA+xA+sA)(hABTB+PB+RB+hBPpub),及
共享密钥sk=H3(IDA,IDB,PA,PB,RA,RB,TA,TB,KAB),
而会话响应方可计算hA=H1(IDA,PA,RA),hAB=H2(IDA,IDB,PA,PB,RA,RB,TA,TB),并计算:
KBA=(hABtB+xB+sB)(hABTA+PA+RA+hAPpub),及
共享密钥sk=H3(IDA,IDB,PA,PB,RA,RB,TA,TB,KBA)。
最后可通过以下等式验证双方协商密钥的一致性:
KAB=(hABtA+xA+sA)(hABTB+PB+RB+hBPpub)=(hABtA+xA+sA)(hABtB+xB+sB)P
=(hABtB+xB+sB)(hABtA+xA+sA)P=(hABtB+xB+sB)(hABTA+PA+RA+hAPpub)
=KBA
从而使用户A和用户B共享会话密钥sk。
但该协议仍存在如下问题:
1)、消息发送中未传送公钥;
这在资源充足的互联网中,公钥是发布在电子公告栏或某些可认证的公开 区域,密钥协商时用户可发送请求消息到这些区域获取,但对于资源受限的传感 器网络,在密钥协商之前再通过互联网来获取公钥可能会不可行,一是因需要单 独请求获取公钥的通信能耗开销比较大,二是有些传感器网络或许未与互联网联 通,这时通过这种方式或许是不现实的,所以认为应该在消息中增加公钥的传送。 但对于需要满足IEEE802.15.4等标准的传感器网络,因物理层限制致使只能传 送最大118B的有效数据,进而发送三个椭圆曲线点又是不能一帧容下的(达到 80位安全级时至少需120B,还不包括用户ID),而当数据包分多帧传送时又容 易受到攻击者的干扰(Jamming)攻击。
2)、不具有对称性而不便实施;
对于分布式网络,用户间身份具有等同关系,通常任一方都应既可做发起 者又可做响应者。但若两方同时做发起者时,会导致上述协商方法因重复协商而 浪费能量,也易导致参与者无法判断自己是发起者还是响应者,从而不利于正确 安排计算会话密钥参数的顺序(因发起者和响应者计算最终共享密钥的方法略有 不同)。当然邓等人的方案下可以通过判断ID的大小来解决这个问题,即无论谁 是发起者,在计算hAB及sk时可把小的ID排前,大的ID排后,其他点也依此 序排列,从而可以保证两边计算出相同的共享密钥。不过本发明中采用了另一种 对称的方法来解决这个问题。
3)、没有密钥确认环节,易遭干扰(Jamming)、重放等攻击;
攻击者可通过反复生成并发送随机的MA来让被攻击者B执行协商过程, 或复制他人的协商包进行重放攻击,从而让被攻击者B产生一系列不必要的计 算,这对以电池等方式供电的无线通信用户是致命的,在没有确认环节时将难于 检测这类攻击,至少会导致检测的延迟。
发明内容
为了解决上述技术问题,本发明首先提供了一种部分私公钥对构建方法,密 钥生成中心KGC为用户生成部分私/公钥对时,部分私钥由一随机数ri和密钥生 成中心KGC的私钥s进行线性组合来构建,至少有一项的组合系数包含部分公 钥及公钥所对应用户身份的hash值,而部分公钥由用户公钥及以ri利用生成元 生成的公钥线性组合来生成,各组合系数为非0数;用户收到密钥生成中心KGC 为其生成的部分私/公钥对后,能利用***息及私钥对其进行有效性验证;所 述以ri利用生成元生成的公钥,用ECC原语时为ri P,而用RSA原语时为
Figure BDA0003328624080000041
其中,P、g为相应公钥***的生成元。
本发明还提供了一种认证密钥协商方法由初始化、用户注册、密钥协商三个 阶段组成:
阶段一(S1):初始化。
首先根据应用场景的需要选择公钥原语(如ECC、RSA等),并为相应公钥 原语配备安全参数,如确定安全密钥长度λ的值,选择所使用的曲线及相关参数 (包括曲线参数、大素数等),选择相关安全算法、Hash函数等。
随后生成KGC的私钥s及公钥Ppub,构建***公开参数集Params(至少包 括KGC的公钥Ppub)并将其分发给网内各通信用户或发布于某公布区。
阶段二(S2):用户注册。
由各用户依据收到的Params生成各自的部分私/公钥对xi/Pi,将公钥Pi及 身份信息传给KGC,经KGC确认身份及公钥的有效性后,为其生成KGC端配 备的部分私/公钥对Pri/Pui,其中Pri由一随机数ri和KGC的私钥s进行线性组 合来构建,至少有一项的组合系数包含部分公钥及公钥所对应用户身份的hash 值,而部分公钥Pui由用户公钥Pi及以ri利用生成元生成的公钥(用ECC原语 时为riP,而用RSA原语时为
Figure BDA0003328624080000042
)线性组合来生成,各组合系数为非0数,且 用户收到KGC为其生成的部分私/公钥对后,可以利用***息及私钥对其进行 有效性验证。并将Pri/Pui以及安全参数通过安全通道(实际应用中可据需要不 通过安全通道传输)发送给用户,用户可以利用***息对Pri/Pui进行有效性 验证。验证通过后构建用户自己的全部私/公钥对(xi,Pri)/(Pi,Pui)。
阶段三(S3):密钥协商。
用户(身份标识为IDi)在完成用户注册后,会话密钥协商过程包含以下步 骤:
步骤1:生成一个临时私/公钥对ti/Ti,其中ti和Ti间的关系由所选用的公 钥原语决定,且至少由Ti计算ti因公钥机制所基于的困难问题Prms而不可行, 并将自己的身份标识IDi、临时公钥Ti、其他可公开的安全参数Paramsi组成一 个消息(IDi,Ti,Paramsi)发给参与协商的另一方,当对方不能通过互联网从公共 发布区获取公钥时,Paramsi至少应包括自己的公钥;
步骤2:每个用户在收到以上消息时都按以下方法构建与对方共享的会话密 钥:
步骤2.1:用其长期私钥和临时私钥进行线性组合,至少有一项的组合系数 包含长期公钥、临时公钥及公钥所对应用户身份的hash值,并基于Prms作用于 对方的长期公钥和临时公钥的线性组合而得到双方共享的秘密数据K;所述线 性组合至少有一项的组合系数包含长期公钥、临时公钥及公钥所对应用户身份的 hash值;
步骤2.2:利用协商双方的ID、临时公钥、用户公钥、部分公钥、上一步生 成的共享秘密数据K进行多项式时间内可结束且可确保运算结果与对方相等的 运算,得到共享密钥sk。
步骤3:每个用户利用对称密钥sk与对方通过以下方式进行确认:
步骤3.1:发起方产生一随机数m,发送(m)sk||m给对方;其中,(m)sk表 示以对称密钥sk对m进行加密;
步骤3.2:记响应方收到的消息为
Figure BDA0003328624080000051
则响应方用自己在步骤2产生 的共享密钥sk对收到的消息中的
Figure BDA0003328624080000052
进行解密,得到m**后判断其是否与收到 的消息中后半部分m*相等,若相等则可确认对方建立了与自己一样的密钥,若 不相等或在一定时间内未收到对方的该消息时可向对方发送询问,一定次数和一 定时间后仍未能确认对方建立了与自己一样的共享密钥时,可当成攻击者的攻击 而舍弃步骤2中计算出的共享密钥。
本发明还提供了一个认证密钥协商***,该***包括以下模块:
模块S1:完成初始化功能。
本***使用ECC做为公钥原语,选用的安全参数λ=87(可根据需要取更 大的参数),可根据最新SECG/NIST所推荐的安全曲线及参数确定椭圆曲线及 相关参数,如我们可取曲线为E:y2=x3+ax+b(a,b为常数,4a3+27b2≠0),选择 一个192比特的大素数p,基于E/Fp构建一个阶为q的加法循环群G,并使q 也是一个足够大的192比特素数,从该循环群可确定一个生成元P;选取抗碰撞 的密码学单向不可逆哈希函数:
Figure BDA0003328624080000061
H3:{0,1}*×{0,1}*×{0,1}*×G→{0,1}128;选取AES算法作为对称加密算法;为 KGC选取随机数
Figure BDA0003328624080000062
作为KGC的私钥,计算KGC公钥为Ppub=sP。构建系 统公开参数集为:
Figure BDA0003328624080000063
此后KGC 将Params分发给网络内各通信用户或发布于某公布区。
模块S2:完成用户注册功能。
网络中各用户从KGC或公布区获得公共参数Params后,根据收到的 Params中的安全参数先随机选择一个用户私钥
Figure BDA0003328624080000064
(假设用户身份为IDi), 并由之计算相应的用户公钥Pi=xiP,联系KGC向其发送(IDi,Pi)以进行用户注 册。KGC确认用户身份后先生成一个
Figure BDA0003328624080000065
计算Ri=riP及Qi=Pi+Ri,再 按公式si=ri+sH1(IDi,Qi)(mod q)计算而得IDi的部分私/公钥对si/Qi,并将其 发给用户;为描述简便,随后的mod q和mod p运算都省略,凡点分量间运算都 需mod p,而点前系数间运算都需进行mod q。用户可以通过式
Figure BDA0003328624080000066
对所收到的私/公钥对si/Qi进行检验,检验通过后, 用户则以(xi,si)作为其长期全部私钥,以(Pi,Qi)作为其长期全部公钥。这样用 户A、B分别可得到他们的长期全部私钥分别为(xA,sA)、(xB,sB),长期全部公 钥分别为(PA,QA)、(PB,QB),网络中其他用户类此。
模块S3:完成密钥协商功能。
每个用户都可作为密钥协商发起方,为方便说明,我们这里不妨按上面拟定 以A为发起方、B为接收方来说明密钥协商各子模块。
模块S3.1:用于发起方用户A根据公共参数集Params取随机数
Figure BDA0003328624080000067
作 为其临时私钥,并以公式TA=tAP计算出对应的临时公钥,以身份IDA、长期公 钥QA、临时公钥TA构建协商消息MA=(IDA,QA,TA),并将该消息发送给要协商 密钥的用户;同样,响应方用户B也根据Params取随机数
Figure BDA0003328624080000071
作为其临时 私钥,并以公式TB=tBP计算出对应的临时公钥,以身份、长期公钥、临时公钥 构建协商消息MB=(IDB,QB,TB),并将该消息发送给要与其协商密钥的用户;
模块S3.2:用于用户A、B各自收到以上消息后,执行以下子模块:
模块S3.2.1:用于进行如下计算:
A用户:hB=H1(IDB,QB),hTA=H2(IDA,QA,TA),hTB=H2(IDB,QB,TB),
B用户:hA=H1(IDA,QA),hTB=H2(IDB,QB,TB),hTA=H2(IDA,QA,TA);
模块S3.2.2:用于按以下公式计算KAB、KBA
A用户:KAB=(hTAtA+xA+sA)(hTBTB+QB+hBPpub),
B用户:KBA=(hTBtB+xB+sB)(hTATA+QA+hAPpub);
其中,哈希值hA、hB、hTA、hTB由模块S3.2.1生成,临时私钥tA、tB由模块 S3.1生成,xA、sA分别是用户A的用户私钥和部分私钥,xB、sB分别是用户B 的用户私钥和部分私钥、Ppub是密钥生成中心KGC的公钥;
模块S3.2.3:用于用户A、B分别依公式计算共享密钥:
A的共享密钥计算为:
Figure BDA0003328624080000072
其中
Figure BDA0003328624080000073
是指对两个二进制串进行异或,当运算量为椭圆曲线上的点时表示先 对点的x、y分量进行联接,然后参加运算;KAB由模块S3.2.2生成;
B的共享密钥计算为:
Figure BDA0003328624080000074
其中KBA由模块S3.2.2生成;
最后通过以下等式验证双方协商密钥的一致性:
KAB=(hTAtA+xA+sA)(hTBTB+QB+hBPpub)=(hTAtA+xA+sA)(hTBTB+PB+RB+hBPpub)
=(hTAtA+xA+sA)(hTBtB+xB+sB)P=(hTBtB+xB+sB)(hTAtA+xA+sA)P
=(hTBtB+xB+sB)(hTATA+PA+RA+hAPpub)=(hTBtB+xB+sB)(hTATA+QA+hAPpub)
=KBA
而且,因为:
Figure BDA0003328624080000081
由hash函数的特性也即有,kAB=kBA;故若A与B是合法用户且消息无误 地送达,则其一定建立了相同的会话密钥sk=kAB=kBA
模块S3.3,用于发起方向对方按以下模块进行会话密钥确认;任何用户在建 立密钥后都可作为发起者:
模块S3.3.1,用于发起方A产生一随机数mA,发送
Figure BDA0003328624080000082
给响应方如 B;
模块S3.3.2,用于记响应方B收到发起方A的消息为
Figure BDA0003328624080000083
响应方 B用自己在模块S3.2产生的共享密钥kBA对收到的消息中的
Figure BDA0003328624080000084
进行解密, 得到
Figure BDA0003328624080000085
后判断其是否与收到的消息中后半部分
Figure BDA0003328624080000086
相等,若相等,说明发起方A 已经建立了与自己同样的会话密钥,否则可能是传输出错或攻击,这时可向对方 发送询问,等一定次数和一定时间后仍未能确认对方建立了与自己一样的共享密 钥时,可当成攻击者的攻击或网络状况不佳而舍弃之前计算出的共享密钥;同样 B也可作为发起者进行类似的确认过程。
因将用户公钥集成于部分公钥之中,应用本发明公开的部分私/公钥对生成 方法于密钥协商协议时,可使原来需要传输用户公钥和部分公钥两项数据的协议 只需要传输部分公钥一项数据,从而有效减少了密钥协商中的通信量,可将其应 用于现有的许多密钥协商方法中减少通信量。
本发明公开的认证密钥协商方法与邓伦治等人的方法相比具有以下优点:
第一,仍保持原有方案的高安全性。首先,在攻击者不知双方用户的任何秘 密时,协商的共享密钥是安全的;其次,攻击者不能同时获得协商某方的用户私 钥、部分私钥和临时私钥的情况下,方案能确保协商的任何会话密钥都是安全的。
第二,高可靠性。本发明通过设计的密钥确认机制对协商的会话密钥进行了 确认,可确保密钥协商的高成功率,从而提高了可靠性。此外,会话密钥确认也 提高了用户抗干扰攻击的能力。
第三,仍保持低计算量。本密钥协商方法在原有方法的基础上仍保持低计算 量特性。随后基于ECC的实施例中,密钥协商时使用的公钥计算每方只需要4 个标量乘点操作。
第四,更低通信量。协商密钥时每方只需要发送一条消息且确保只发送了必 要的信息(用户身份ID、临时公钥、长期公钥),在更正了原有方案的问题后仍 保持和原有方案相同的通信量,其他通信均为密钥确认环节所需且设计中也使其 开销尽可能低。
第五,易实施性。本发明确保协议中通信用户双方的对称性及收发信息的相 互无依赖性,从而使得每个用户装载的协议及其实现是相同的,各用户计算共享 密钥时不用考虑消息发送的先后次序来安排参数的先后,即使一同做发起者启动 协商过程也可实现正确的密钥协商,从而更利于在分布式网络如WSNs中应用 实施。
附图说明
图1是本发明认证密钥协商方法所基于的网络模型。
图2是本发明认证密钥协商方法的主体流程图。
图3是本发明实施例的认证密钥协商方法详细流程图。
具体实施方式
为了便于本领域普通技术人员理解和实施本发明,下面结合附图及实施例对 本发明作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解 释本发明,并不用于限定本发明。
首先对本实施例中涉及的专业术语定义如下:
用户:合法的会话实体,网络中进行一次会话的参与主体,或说一次通信的 消息发送/接收者,可能是一个进程,一台计算机,一个移动端或一个传感器节 点等;
KGC:Key Generation Center,密钥生成中心,负责生成***公共参数、主 私/公钥对、每个用户的部分私/公钥对,为各用户分发公共参数及部分私/公钥对;
ECC:Elliptic Curve Cryptography,椭圆曲线密码学,一种构建椭圆曲线加 密技术的理论;
λ:***安全参数,它由使用本发明的应用者根据安全需求选取,建议至少 不小于160;
p,q:两个大素数,由KGC选取,满足p≥2λ-1
Fp:阶(元素个数)为p的有限域;
G:q阶加法循环群,由KGC选取椭圆曲线E后基于E/Fp构建,并得生 成元P;
Figure BDA0003328624080000101
小于q的正整数集{1,2,…,q-1};
Figure BDA0003328624080000102
哈希函数;
Figure BDA0003328624080000103
哈希函数;
H3:{0,1}*×{0,1}*×{0,1}*×G→{0,1}λ,哈希函数;
mod:模余运算;
(m)K:以对称密钥K对m进行加密;
R:属于且为随机选择;
Figure BDA0003328624080000104
异或运算,当运算量为椭圆曲线上的点这类非标量时表示先对各分量进 行顺序联接后参加运算;
点分量:椭圆曲线上一点的x或y分量;
K[x],K[y]:K的x或y分量;
标量乘点:数乘椭圆曲线上一点的操作;
Hash:密码学哈希函数操作,如SHA-2系列函数等;
MAC:消息认证码生成操作;
ECDLP:椭圆曲线上的离散对数问题;
ECDHP:椭圆曲线上的Diffie-Hellman问题;
用户私/公钥:由用户自己产生的部分私/公钥;
部分私/公钥:指由KGC为用户产生的部分私/公钥;
长期私/公钥:包括用户私/公钥和部分私/公钥两部分,亦称全部私/公钥;
临时私/公钥:由用户在协商密钥时产生的用于创建会话密钥的私/公钥,英 文表述为Ephemeral private/public key。
本发明提供的方法能够适用于各类公钥原语,但优选ECC原语。以基于ECC 原语认证密钥协商方法的构建为例对本发明的实施进行一个具体的阐述,如下:
本实施例取Prms={ECDLP,ECDHP},即安全性建立在解ECDLP或 ECDHP计算上不可行的基础上,本实施例***中包括以下实体(以两个通信用 户为例,更多通信用户构建方法类似):
1)、密钥生成中心KGC:负责***的初始化、为各用户生成KGC配备的部 分私/公钥对并分发部分私/公钥对及参数给会话参与用户;
2)、用户A:代表会话参与的一方,如发起用户;
3)、用户B:代表会话参与的另一方,如响应用户。
此外,还有潜在的攻击者。
本发明针对邓伦治等人方案的不足,在保证仍具低计算量(使用ECC时只 需要4个标量乘点运算)的前提下提供了一种更可靠安全和易实施的认证密钥协 商方法。
该认证密钥协商方法的创新性体现在用户注册、密钥协商、密钥确认过程中, 假设密钥协商采用的公钥机制所基于的困难问题(集)为Prms,所适用的网络 模型如图1所示,网络中有三类实体:KGC(密钥协商时可以离线方式工作)、 合法用户、攻击者,要求共享密钥只在任何一对合法用户间建立。假设攻击者控 制了整个网络通信,并可以利用他所获得的信息进行任何攻击,包括从网络窃听 任何数据包进行分析、向网络弹入任何伪造复制等产生的数据包、修改合法用户 间传递的数据包、阻断用户间发送的数据包等,攻击者还具有获得通信用户秘密 的能力,除了要满足以下两个假设外:
1)、攻击者不能同时获得协商某一方的用户私钥、部分私钥和临时私钥;
2)、获得用户私钥和部分私钥的攻击者不能进行假冒该用户、伪造该用户以 其用户私钥和部分私钥生成的消息来攻击。
以上第2个假设是为了考察攻击者同时拿到某用户的用户私钥和部分私钥 后,除了假冒该用户、伪造该用户以其用户私钥和部分私钥生成的消息来攻击(因 为这是显然可进行的)外,是否还能进行其他攻击,如破获以前的会话密钥等, 也即考察依密钥协商方法所构建的协议是否具有完美前向安全性PFS、是否抗 KCI攻击等等。
这是本发明的密钥协商方法能抵抗的攻击模型,本密钥协商方法可以在攻击 者获得除以上情况以外任何秘密组合情况下仍是安全(包括完美前向安全等)的。
本发明首先公开了一种部分私/公钥对构建方法,具体方法是:用户创建自 己的公钥Pi后,联系KGC向其发送由公钥Pi和用户身份IDi构成的消息(IDi,Pi) 以进行用户注册。KGC确认用户身份后先为其生成一个
Figure BDA0003328624080000121
计算Ri=riP及 Qi=Pi+Ri,再按公式si=ri+sH1(IDi,Qi)(mod q)计算而得IDi的部分私/公钥对 si/Qi(s为密钥生成中心KGC的私钥,q为群
Figure BDA0003328624080000122
的阶),并将其发给用户,需 要说明的是:为描述简便,随后的mod q和mod p运算都省略,凡点分量间运算 都需mod p,而点前系数间运算都需进行mod q。用户可以通过式
Figure BDA0003328624080000123
对所收到的私/公钥对si/Qi进行检验。
本发明公开的密钥协商方法建立在无证书公钥或自证明公钥的基础上,认证 密钥协商过程可以分成三个阶段进行(主体流程如图2和图3所示):
阶段一(S1):初始化。
本实施例使用ECC做为公钥原语,选用的安全参数λ=87(可根据需要取 更大的参数),可根据最新SECG/NIST所推荐的安全曲线及参数确定椭圆曲线 及相关参数,如本实施例可取曲线为E:y2=x3+ax+b(a,b为常数,4a3+27b2≠0), 选择一个192比特的大素数p,基于E/Fp构建一个阶为q的加法循环群G,并 使q也是一个足够大的192比特素数,从该循环群可确定一个生成元P;选取抗 碰撞的密码学单向不可逆哈希函数:
Figure BDA0003328624080000124
H3:{0,1}*×{0,1}*×{0,1}*×G→{0,1}128;选取AES算法作为对称加密算法;为KGC选取随机数
Figure BDA0003328624080000131
作为KGC的私钥,计算KGC公钥为Ppub=sP。构建系 统公开参数集为:
Figure BDA0003328624080000132
此后KGC 将Params分发给网络内各通信用户或发布于某公布区。
阶段二(S2):用户注册。
***中各用户从KGC或公布区获得公共参数Params后,根据收到的 Params中的安全参数先随机选择一个用户私钥
Figure BDA0003328624080000133
(假设用户身份为IDi), 并由之计算相应的用户公钥Pi=xiP,联系KGC向其发送(IDi,Pi)以进行用户注 册。KGC确认用户身份后先生成一个
Figure BDA0003328624080000134
计算Ri=riP及Qi=Pi+Ri,再 按公式si=ri+sH1(IDi,Qi)(modq)计算而得IDi的部分私/公钥对si/Qi(s为密 钥生成中心KGC的私钥,q为群
Figure BDA0003328624080000135
的阶),并将其发给用户;用户可以通过式
Figure BDA0003328624080000136
对所收到的私/公钥对si/Qi进行检验,检验通过后,用户则以(xi,si)作为其长期全部私钥,以(Pi,Qi)作为其长期全部公钥。这样用 户A、B分别可得到他们各自的长期全部私钥分别为(xA,sA)、(xB,sB),长期全 部公钥分别为(PA,QA)、(PB,QB),***中其他用户类此。
阶段三(S3):密钥协商。
每个用户都可作为密钥协商发起方,为方便说明,本实施例这里不妨按上面 拟定以A为发起方、B为接收方来说明密钥协商过程。
步骤S3.1,A根据公共参数集Params取随机数
Figure BDA0003328624080000137
作为其临时私钥, 并以公式TA=tAP计算出对应的临时公钥,以身份、长期公钥、临时公钥构建协 商消息MA=(IDA,QA,TA),并将该消息发送(广播/单播)给要协商密钥的用户。 同样,响应方如B也根据Params取随机数
Figure BDA0003328624080000138
作为其临时私钥,并以公式 TB=tBP计算出对应的临时公钥,以身份、长期公钥、临时公钥构建协商消息 MB=(IDB,QB,TB),并将该消息发送给要与其协商密钥的用户。
步骤S3.2,A、B各自收到以上消息后,
步骤S3.2.1,先进行如下计算:
A用户:hB=H1(IDB,QB),hTA=H2(IDA,QA,TA),hTB=H2(IDB,QB,TB),
B用户:hA=H1(IDA,QA),hTB=H2(IDB,QB,TB),hTA=H2(IDA,QA,TA);
步骤S3.2.2,然后按以下公式计算:
A用户:KAB=(hTAtA+xA+sA)(hTBTB+QB+hBPpub),
B用户:KBA=(hTBtB+xB+sB)(hTATA+QA+hAPpub);
步骤S3.2.3,此后,A、B可分别依公式计算共享密钥:
A的共享密钥计算为:
Figure BDA0003328624080000141
其中
Figure BDA0003328624080000142
是指对两个二进制串进行异或,当运算量为椭圆曲线上的点时表示先 对点的x、y分量进行联接,然后参加运算;
B的共享密钥计算为:
Figure BDA0003328624080000143
其中
Figure BDA0003328624080000144
含义同上。
最后可通过以下等式验证双方协商密钥的一致性:
KAB=(hTAtA+xA+sA)(hTBTB+QB+hBPpub)=(hTAtA+xA+sA)(hTBTB+PB+RB+hBPpub)
=(hTAtA+xA+sA)(hTBtB+xB+sB)P=(hTBtB+xB+sB)(hTAtA+xA+sA)P
=(hTBtB+xB+sB)(hTATA+PA+RA+hAPpub)=(hTBtB+xB+sB)(hTATA+QA+hAPpub)
=KBA,同时有:
Figure BDA0003328624080000145
由hash函数的特性也即有,kAB=kBA。故若A与B是合法用户且消息无误 地送达,则其一定建立了相同的会话密钥sk=kAB=kBA
步骤S3.3,为确保收到的消息不是攻击者发送的垃圾信息或重放消息,确认 生成的会话密钥正确以及对方也生成了同样的会话密钥,需要向对方按以下步骤 进行会话密钥确认,本实施例以A为发起者为例(任何用户在建立密钥后都可 作为发起者):
步骤S3.3.1,发起方产生一随机数mA,发送
Figure BDA0003328624080000146
给响应方如B;
步骤S3.3.2,(为方便说明,本实施例假设B收到A的消息为
Figure BDA0003328624080000147
响应方B用自己在步骤2产生的共享密钥kBA对收到的消息中的
Figure BDA0003328624080000151
进行解 密,得到
Figure BDA0003328624080000152
后判断其是否与收到的消息中后半部分
Figure BDA0003328624080000153
相等,若相等,说明A 已经建立了与自己同样的会话密钥,否则可能是传输出错或攻击,这时可向对方 发送询问,等一定次数和一定时间后仍未能确认对方建立了与自己一样的共享密 钥时,可当成攻击者的攻击或网络状况不佳而舍弃之前计算出的共享密钥。同样 B也可作为发起者进行类似的确认过程。
该实施例,不但能克服传统认证密钥协商机制中的复杂证书管理和密钥托管 问题,不需要复杂的对运算,而且保证了安全性和可靠性。特别适用于计算能力 受限的无线移动设备和网络,如车联网、IoT、WSN等。更具体地,在互联网应 用中,假设KGC是公安部门,负责进行公民的身份注册等,有两位公民张三、 李四想进行大量秘密/隐私数据(如一个视频)的传送时,即可利用本发明协商 一或多个会话密钥,从而可实现二人间安全的数据传输。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明,本发明所公开 的***通常可以以软件或硬件的形式来呈现。本发明所属技术领域的技术人员可 以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,可以 对所公开的***实现于软件或硬件中,但并不会偏离本发明的精神或者超越所附 权利要求书所定义的范围。

Claims (9)

1.一种部分私公钥对构建方法,其特征在于:密钥生成中心KGC为用户生成部分私/公钥对时,部分私钥由一随机数ri和密钥生成中心KGC的私钥s进行线性组合来构建,至少有一项的组合系数包含部分公钥及公钥所对应用户身份的hash值,而部分公钥由用户公钥及以ri利用生成元生成的公钥线性组合来生成,各组合系数为非0数;用户收到密钥生成中心KGC为其生成的部分私/公钥对后,能利用***息及私钥对其进行有效性验证;所述以ri利用生成元生成的公钥,用ECC原语时为riP,而用RSA原语时为
Figure FDA0003328624070000011
其中,P、g为相应公钥***的生成元。
2.一种认证密钥协商方法,其特征在于:由初始化、用户注册、密钥协商三个阶段组成:
所述初始化,包括确定安全参数、生成密钥生成中心KGC私/公钥对、分发参数;
所述用户注册,包括用户生成自己的部分私/公钥对、上传用户部分公钥后由密钥生成中心KGC生成另一部分私/公钥对、构建全部私/公钥对;
所述密钥协商,包括以下步骤:
步骤1:生成一个临时私/公钥对ti/Ti,其中ti和Ti间的关系由所选用的公钥原语决定,且至少由Ti计算ti因公钥机制所基于的困难问题Prms而不可行,并将自己的身份标识IDi、临时公钥Ti、其他可公开的安全参数Paramsi组成一个消息(IDi,Ti,Paramsi)发给参与协商的另一方,当对方不能通过互联网从公共发布区获取公钥时,Paramsi至少应包括自己的公钥;
步骤2:每个用户在收到以上消息时都按以下方法构建与对方共享的会话密钥:
步骤2.1:用其长期私钥和临时私钥进行线性组合,至少有一项的组合系数包含长期公钥、临时公钥及公钥所对应用户身份的hash值,并基于Prms作用于对方的长期公钥和临时公钥的线性组合而得到双方共享的秘密数据K;所述线性组合至少有一项的组合系数包含长期公钥、临时公钥及公钥所对应用户身份的hash值;
步骤2.2:利用协商双方的ID、临时公钥、用户公钥、部分公钥、上一步生成的共享秘密数据K进行多项式时间内可结束且可确保运算结果与对方相等的运算,得到共享密钥sk。
3.根据权利要求书2所述的认证密钥协商方法,其特征在于:密钥协商过程基于自证明或无证书认证技术,用户注册阶段为用户构建的全部私/公钥对是自证明或无证书认证的,且部分私/公钥对采用以下方法由密钥生成中心KGC构建:
密钥生成中心KGC为用户生成部分私/公钥对时,部分私钥由一随机数ri和密钥生成中心KGC的私钥s进行线性组合来构建,至少有一项的组合系数包含部分公钥及公钥所对应用户身份的hash值,而部分公钥由用户公钥及以ri利用生成元生成的公钥线性组合来生成,各组合系数为非0数,且用户收到密钥生成中心KGC为其生成的部分私/公钥对后,能利用***息及私钥对其进行有效性验证;所述以ri利用生成元生成的公钥,用ECC原语时为riP,而用RSA原语时为
Figure FDA0003328624070000021
其中,P、g为相应公钥***的生成元。
4.根据权利要求书2或3所述的认证密钥协商方法,其特征在于:密钥协商阶段还包含以下步骤:
步骤3:每个用户利用对称密钥sk与对方通过以下方式进行确认:
步骤3.1:发起方产生一随机数m,发送(m)sk||m给对方;其中,(m)sk表示以对称密钥sk对m进行加密;
步骤3.2:记响应方收到的消息为
Figure FDA0003328624070000022
则响应方用自己在步骤2产生的共享密钥sk对收到的消息中的
Figure FDA0003328624070000023
进行解密,得到m**后判断其是否与收到的消息中后半部分m相等,若相等则可确认对方建立了与自己一样的密钥,若不相等或在一定时间内未收到对方的该消息时可向对方发送询问,一定次数和一定时间后仍未能确认对方建立了与自己一样的共享密钥时,可当成攻击者的攻击而舍弃步骤2中计算出的共享密钥。
5.一种认证密钥协商***,其特征在于:包括密钥协商模块,该模块包括以下子模块:
模块S3.1:用于发起方用户A根据公共参数集Params取随机数
Figure FDA0003328624070000031
作为其临时私钥,并以公式TA=tAP计算出对应的临时公钥,以身份IDA、长期公钥QA、临时公钥TA构建协商消息MA=(IDA,QA,TA),并将该消息发送给要协商密钥的用户;同样,响应方用户B也根据Params取随机数
Figure FDA0003328624070000032
作为其临时私钥,并以公式TB=tBP计算出对应的临时公钥,以身份、长期公钥、临时公钥构建协商消息MB=(IDB,QB,TB),并将该消息发送给要与其协商密钥的用户;
模块S3.2:用于用户A、B各自收到以上消息后,执行以下子模块:
模块S3.2.1:用于进行如下计算:
A用户:hB=H1(IDB,QB),hTA=H2(IDA,QA,TA),hTB=H2(IDB,QB,TB),
B用户:hA=H1(IDA,QA),hTB=H2(IDB,QB,TB),hTA=H2(IDA,QA,TA);
模块S3.2.2:用于按以下公式计算:
A用户:KAB=(hTAtA+xA+sA)(hTBTB+QB+hBPpub),
B用户:KBA=(hTBtB+xB+sB)(hTATA+QA+hAPpub);
其中,哈希值hA、hB、hTA、hTB由模块S3.2.1生成,临时私钥tA、tB由模块S3.1生成,xA、sA分别是用户A的用户私钥和部分私钥,xB、sB分别是用户B的用户私钥和部分私钥、Ppub是密钥生成中心KGC的公钥;
模块S3.2.3:用于用户A、B分别依公式计算共享密钥:
A的共享密钥计算为:
Figure FDA0003328624070000033
其中
Figure FDA0003328624070000035
是指对两个二进制串进行异或,当运算量为椭圆曲线上的点时表示先对点的x、y分量进行联接,然后参加运算;其中KAB由模块S3.2.2生成;
B的共享密钥计算为:
Figure FDA0003328624070000034
KBA由模块S3.2.2生成;
最后通过以下等式验证双方协商密钥的一致性:
Figure FDA0003328624070000041
而且,因为:
Figure FDA0003328624070000042
由hash函数的特性也即有,kAB=kBA;故若A与B是合法用户且消息无误地送达,则其一定建立了相同的会话密钥sk=kAB=kBA
6.根据权利要求书5中所述认证密钥协商***,其特征在于:包括初始化、用户注册、密钥协商三个模块;采用ECC原语且使用无证书认证的方式,没有双线性对运算。
7.根据权利要求6所述的认证密钥协商***,其特征在于:所述初始化模块中,密钥生成中心KGC先为自己生成一对私/公钥(s,Ppub=sP),选择AES作为对称加密算法,且由密钥生成中心KGC将包含有其公钥Ppub的参数
Figure FDA0003328624070000043
分发给网内各通信用户或发布于某公布区,其中,Fp表示阶为p的有限域;p,q为两个大素数,由KGC选取,满足p≥2λ-1
Figure FDA0003328624070000044
表示小于q的正整数集{1,2,...,q-1};G为q阶加法循环群,由KGC选取椭圆曲线E后基于E/Fp构建,并得生成元P;λ为***安全参数;哈希函数
Figure FDA0003328624070000045
哈希函数
Figure FDA0003328624070000046
哈希函数H3:{0,1}×{0,1}×{0,1}×G→{0,1}λ
8.根据权利要求6、7任一项所述的认证密钥协商***,其特征在于:所述用户注册模块中,用户自己生成部分私/公钥对为xi/Pi=xiP,密钥生成中心KGC为其生成的部分私/公钥对为si/Qi,其中si=ri+sH1(IDi,Qi)(mod q),
Figure FDA0003328624070000051
Qi=Ri+Pi,Ri=riP,s为密钥生成中心KGC的私钥,q为群
Figure FDA0003328624070000052
的阶;用户通过式
Figure FDA0003328624070000053
对所收到的私/公钥对si/Qi进行检验,检验通过后,用户确认最终的长期全部私/公钥对为(xi,si)/(Pi,Qi)。
9.根据权利要求5-8任意一项所述的认证密钥协商***,其特征在于:所述密钥协商模块还包括以下子模块:
模块3.3,用于发起方向对方按以下模块进行会话密钥确认;任何用户在建立密钥后都可作为发起者:
模块3.3.1,用于发起方A产生一随机数mA,发送
Figure FDA0003328624070000054
给响应方如B;
模块3.3.2,用于记响应方B收到发起方A的消息为
Figure FDA0003328624070000055
响应方B用自己在模块3.2产生的共享密钥kBA对收到的消息中的
Figure FDA0003328624070000056
进行解密,得到
Figure FDA0003328624070000057
后判断其是否与收到的消息中后半部分
Figure FDA0003328624070000058
相等,若相等,说明发起方A已经建立了与自己同样的会话密钥,否则可能是传输出错或攻击,这时可向对方发送询问,等一定次数和一定时间后仍未能确认对方建立了与自己一样的共享密钥时,可当成攻击者的攻击或网络状况不佳而舍弃之前计算出的共享密钥;同样B也可作为发起者进行类似的确认过程。
CN202111270544.6A 2021-10-29 2021-10-29 一种部分私公钥对构建方法、认证密钥协商方法及*** Pending CN114021165A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111270544.6A CN114021165A (zh) 2021-10-29 2021-10-29 一种部分私公钥对构建方法、认证密钥协商方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111270544.6A CN114021165A (zh) 2021-10-29 2021-10-29 一种部分私公钥对构建方法、认证密钥协商方法及***

Publications (1)

Publication Number Publication Date
CN114021165A true CN114021165A (zh) 2022-02-08

Family

ID=80058696

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111270544.6A Pending CN114021165A (zh) 2021-10-29 2021-10-29 一种部分私公钥对构建方法、认证密钥协商方法及***

Country Status (1)

Country Link
CN (1) CN114021165A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155710A (zh) * 2023-10-30 2023-12-01 江西财经大学 一种工业物联网无证书格基认证密钥协商方法与***

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117155710A (zh) * 2023-10-30 2023-12-01 江西财经大学 一种工业物联网无证书格基认证密钥协商方法与***
CN117155710B (zh) * 2023-10-30 2024-01-26 江西财经大学 一种工业物联网无证书格基认证密钥协商方法与***

Similar Documents

Publication Publication Date Title
CN110971401B (zh) 一种基于交叉互锁机制的认证密钥协商方法及其实施装置
Porambage et al. Group key establishment for enabling secure multicast communication in wireless sensor networks deployed for IoT applications
CN107707360B (zh) 物联网环境下的异构聚合签密方法
Islam et al. A pairing-free identity-based two-party authenticated key agreement protocol for secure and efficient communication
Kim et al. Constant-round authenticated group key exchange for dynamic groups
CN105959269A (zh) 一种基于身份的可认证动态群组密钥协商方法
Oliveira et al. Secure-TWS: Authenticating node to multi-user communication in shared sensor networks
CN112039660B (zh) 一种物联网节点群组身份安全认证方法
CN114710275B (zh) 物联网环境下基于区块链的跨域认证和密钥协商方法
Tseng An improved conference‐key agreement protocol with forward secrecy
Han et al. Adaptive secure multicast in wireless networks
CN112564923B (zh) 一种基于无证书的安全网络连接握手方法
CN114021165A (zh) 一种部分私公钥对构建方法、认证密钥协商方法及***
CN114785508B (zh) 一种异构认证密钥协商方法和***
Ammayappan et al. An ECC-Based Two-Party Authenticated Key Agreement Protocol for Mobile Ad Hoc Networks.
Xia et al. Breaking and repairing the certificateless key agreement protocol from ASIAN 2006
CN114024668B (zh) 高效的无双线性对运算的无证书认证密钥协商方法及***
Porambage et al. Public key based protocols–ec crypto
Yasmin et al. A pairing-free ID-based one-pass authenticated key establishment protocol for wireless sensor networks
Reddi et al. Identity-based signcryption groupkey agreement protocol using bilinear pairing
Tong et al. Certificateless and pairing-free key agreement scheme for satellite network
CN112738038B (zh) 一种基于非对称口令认证的密钥协商的方法和装置
CN114007220B (zh) 短期阶段会话密钥生成方法、认证密钥协商方法及***
Yijun et al. A secure key exchange and mutual authentication protocol for wireless mobile communications
Chien An efficient and fault-tolerant privacy-preserving d2d group communication

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination