一种基于纠错码的身份认证协议方法

文档序号:10596984阅读:360来源:国知局
一种基于纠错码的身份认证协议方法
【专利摘要】本发明公开了一种基于纠错码的身份认证协议方法,包含以下步骤:步骤一,生成系统参数:密钥对为(sk,pk)=(s,(y,H,w)),其中sk是私钥,pk是公钥;公开的哈希函数h(·);步骤二,身份认证:重复执行以下的步骤δ次:本发明采用零知识认证方式,包括生成系统参数和身份认证两个步骤。本发明还对身份认证步骤作了进一步优化,使得认证协议的通信开销更少。同时,本发明还弥补了基于数论难题的身份认证方案在量子计算机下不再安全的缺陷,具有抗量子计算的能力,在量子计算下仍然安全。
【专利说明】
一种基于纠错码的身份认证协议方法
技术领域
[0001] 本发明属于互联网技术领域,涉及一种基于纠错码的身份认证协议方法。
【背景技术】
[0002] 随着互联网技术的不断发展,对用户身份的合法性鉴别是非常重要的问题。目前, 应用广泛的基于数论难题的身份认证方案,实现过程需要进行模幂运算,对设备的计算能 力要求较高,难以适用于资源有限的嵌入式设备。而且,1994年提出的Shor量子算法,使得 基于数论难题的密码体制,如RSA,ECC等都将不再安全。
[0003] 基于纠错码的密码方案能够抵抗量子计算攻击,而且它的加密过程仅需异或运 算。1978年,McEliece提出了第一个基于Goppa码的公钥密码体制。然而,原始的McEliece密 码算法中的密钥体积较大,实用性差。随后,出现了基于不同纠错码的McEliece型密码方 案,以减小密钥体积。1986年,Niederreiter提出了基于GRS码的Niederreiter方案,该方案 减小了密钥体积,但是后来GRS码被证明是不安全的。近年来,一些基于LDPC,MDPC,QC-MDPC,QD-Goppa等纠错码的密码方案被相继提出。2011年,Malek等人利用托普利茨矩阵的 特殊结构,进一步的缩小了密钥的体积。
[0004] 零知识身份认证是证明者P向验证者V证明P的身份,使得V能确认P身份的合法性, 且无法得到P的任何秘密信息。这些年已经发表了许多身份认证方案。在CRYPTO' 93年会上, Stern发表了第一篇基于纠错码的零知识身份认证方案。Stern身份认证方案是一个多轮的 三步交互式协议。但是它存在下述问题而难以在实际中应用:
[0005] 1.在每轮交互中,攻击者成功欺骗的概率是2/3,而在Fiat-Shamir协议中,攻击者 成功的概率是1/2,所以Stern方案需要进行28轮交互认证,才能使得攻击者成功欺骗的概 率降低到2_16。
[0006] 2.方案中的公钥体积有120kb,而且通信量较大,难以在资源有限的设备中使用。

【发明内容】

[0007] 本发明的目的在于,提供一种基于纠错码的零知识身份认证协议,用以解决基于 编码的认证协议存在的通信、存储负担大的问题。
[0008] 为了实现上述任务,本发明采用如下的技术解决方案:一种基于纠错码的身份认 证协议方法,包含以下步骤:
[0009] 步骤一,生成系统参数:密钥对为(成,?1〇 = (8,(7,11,《)),其中私钥4是有限域?(1 上长度为n的矢量 yeF:,矢量s的码重wt(s)=w,公钥pk是三元组(y,H,w),其中jeF:,有限 域Fq上rXn的矩阵好£5_,正整数 WGN*,y = Hs;公开的哈希函数h( ?);
[0010] 步骤二,身份认证:重复执行以下的步骤S次:
[0011] (7)证明者P生成随机矢量和{丨,...,!!}上的一个置换函数0,计算委托 Cl = h (〇,此1')和〇2 = 11(〇(11)),将(31,〇2发送给验证者¥;
[0012 ] (8)验证者V生成随机数a G Fq,并发送给证明者P;
[0013] (9)证明者P根据收到的消息和私钥,计算矢量/? = ? _),并将它发送给验证者 V;
[0014] (10)验证者V收到矢量0后,发送挑战b G {〇,1}给证明者P;
[0015] (11)若b = 0,证明者P发送〇给验证者V;若b = 1,证明者P计算并发送〇 (s)给验证者 V;
[0016] (12)当b = 0时,验证者V验证C1是否正确;当b=l时,验证者V验证(:2是否正确,以及 〇 (S)的码重wt ( 〇 ( S ) ) ? = W,若验证错误,则认证失败,判定P是非法证明者;
[0017] 步骤二执行S次,且每次都验证正确,则认证成功,验证者V判定P是合法证明者。 [0018]进一步,所述步骤一具体过程为:
[0019] 生成准并矢(quasi-dyadic)纠错码C(n,k,w),余维r = n_k;纠错码C的校验矩阵 // e F丨x";生成随机矢量s 满足wt(s)=w;计算y = HsT;得到公钥pk=(y,H,w),私钥sk = (s);系统公开的哈希函数h( ?)。
[0020]进一步,所述步骤二进一步优化为:
[0021] (2.1)证明者P生成5组(ui,〇i),其中w, eg,〇1是{1,…,n}上的置换函数,Ki彡 S,相应地计算5组委托(cii,Ci2),其中_% =綠 ^. /^丨 '丨,.Ci2 = h(〇i (Ui));计算5组委托的哈希 值hl = h(Cll,C12, ? ? ?,Cil,Ci2, ? ? ?,CS1,CS2),并))等hi发送给验证者V;
[0022] 然后P使用每组(m,〇1)重复执行以下步骤S次;
[0023] (2.2)验证者V生成随机数ai G Fq,并发送给证明者P;
[0024] (2.3)证明者P根据收到的消息和私钥,计算矢量肩,并将它发送给验 证者V;
[0025] (2.4)验证者V收到矢量&后,发送挑战biG {〇,1}给证明者P;
[0026] (2.5)若1^ = 0,证明者?发送(〇1,(^2)给验证者¥;若1^=1,证明者?计算并发送(〇1 (s),cn)给验证者V;
[0027] (2.6)当匕=0时,验证者¥恢复(^1,并记录((^1,(^2);当匕=1时,验证者¥恢复(^2,并 验证wt ( 〇i ( S ) ) ? = W ;若验证错误,则认证失败,判定P是非法证明者;若验证成功,则记录 (Cil,Ci2);
[0028]以上步骤执行S次之后,验证者V根据记录的S组委托(Cll,Cl2)生成哈希值h 2 = h (C11,C12, ? ? ?,Cil,Ci2,…,CS1,CS2),并判断hl?=h2,若相等,贝lj认证成功,验证者V判定P是合 法证明者;否则,认证失败,验证者V判定P是非法证明者。
[0029]本发明具有有益效果为:本发明使用基于纠错码的身份认证方案,能够有效地抵 抗量子计算机的攻击,通过构造准并矢纠错码以及减少每轮身份认证的委托数量和交互次 数,缩小了密钥体积,减少了通信开销,适用于存储空间小、通信能力弱的终端设备。同时, 本发明还弥补了基于数论难题的身份认证方案在量子计算机下不再安全的缺陷,具有抗量 子计算的能力,在量子计算下仍然安全。本发明为基于编码理论的公钥密码体制的进一步 实用化奠定了基础。
【附图说明】
[0030]图1为认证协议流程图。
[0031]图2为进一步优化后的认证协议流程图。
【具体实施方式】
[0032]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述。
[0033]步骤一,生成系统参数;
[0034] 密钥对为(成41〇 = (8,(7,11,《)),其中私钥吐是有限域?(1上长度为11的矢量5€€, 矢量S的码重wt( s) = w,公钥pk是三元组(y,H, W),其中jeF丨,有限域Fq上r X n的矩阵 iFeFf,正整数WG N*,y = Hs;公开的哈希函数h( ?);具体过程为:生成准并矢(quasi-dyadic)纠错码C(n,k,w),余维r = n-k;纠错码C的校验矩阵HeFf'生成随机矢量满 足wt(s) =w。计算y = HsT。得到公钥pk= (y,H,w),私钥sk= (s)。系统公开的哈希函数h (?)。步骤二,身份认证。重复执行以下步骤S次。
[0035] (1)证明者P生成随机矢量和{1,? ? ?,n}上的一个置换函数〇,计算委托^二!! (〇,此1')和02 = 11(〇(11))。将(31,02发送给验证者¥。
[0036] (2)验证者V生成随机数a G Fq,并发送给证明者P。
[0037] (3)证明者P根据收到的消息和私钥,计算矢量// = 〇_(〃《?、'),并将它发送给验证者 V。
[0038] (4)验证者V收到矢量0后,发送挑战bG {〇,1}给证明者P。
[0039] (5)若b = 0,证明者P发送〇给验证者V;若b = 1,证明者P计算并发送〇 (s)给验证者 V。
[0040] (6)当b = 0时,验证者V验证C1是否正确;当b = 1时,验证者V验证(32是否正确,以及 wt ( 〇 ( S ) ) ? = W。若验证错误,贝lj认证失败,判定P是非法证明者。
[00411 步骤二执行S次,且每次都验证正确,则认证成功,验证者V判定P是合法证明者。
[0042] 为了减少通信开销,步骤二可以进一步地优化如下:
[0043] (1)证明者P生成S组(m,〇i),其中eg,〇1是{1,? . ?,n}上的置换函数,Ki彡5, 相应地计算S组委托(cu,Ci2),其中巧="〃/),Ci2 = h(〇i (Ui))。计算5组委托的哈希值hi = h(Cll,C12, ? ? ?,Cil,Ci2, ? ? ?,CS1,CS2),并将hi发送给验证者V。
[0044] 然后P使用每组(m,〇1)重复执行以下步骤S次。
[0045] (2)验证者V生成随机数ai G Fq,并发送给证明者P。
[0046] (3)证明者P根据收到的消息和私钥,计算矢量/《=〇;(〃, ?<v_),并将它发送给验证 者V。
[0047] (4)验证者V收到矢量&后,发送挑战biG {〇,1}给证明者P。
[0048] (5)若bi = 0,证明者P发送(〇i,Ci2)给验证者V;若bi = l,证明者P计算并发送(〇i (8),(^)给验证者¥。
[0049] (6)当匕=0时,验证者¥恢复(^1,并记录((^1,(^2)。当匕=1时,验证者¥恢复(^2,并验 证wt (〇i (s)) ? = w。若验证错误,则认证失败,判定P是非法证明者;若验证成功,则记录(Cil, Ci2) 〇
[0050] 以上步骤执行S次之后,验证者V根据记录的S组委托(Cll,Cl2)生成哈希值h2 = h (C11,C12, ? ? ?,Cil,Ci2,…,CS1,CS2),并判断hl?=h2,若相等,贝1J认证成功,验证者V判定P是合 法证明者;否则,认证失败,验证者V判定P是非法证明者。
[0051] 以上方法中,S越大,认证方案的可信度越高,证明者P欺骗成功的概率越低。
[0052] 实施例1. 一种基于纠错码的身份认证协议方法
[0053] 具体地,系统参数设置如下:准并矢纠错码C的码长n = 128,维度k = 64,余维r = 64,码的纠错能力w = 49,有限域Fq中q = 256,表示q所需的比特位数N = 8。生成一个置换函 数〇的种子长度1。= 128,哈希函数的输出长度lh=160。每一轮认证协议中,证明者P欺骗成 功的概率约为1/2,因此协议进行S = 16轮,证明者P欺骗成功的概率降低到2^16,可以忽略不 计。通过如下公式计算得到,准并矢纠错码C的校验矩阵H的体积为NXn = 1024bits,密文y 的长度为NXr = 512bits,密钥s的长度为NXn=1024bit,通信开销为lh+S(lh+N+NXn+l + (1。+~父11)/2) = 284641^七。
[0054]在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示意性实施例"、 "示例"、"具体示例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结 构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的 示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特 点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0055]尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不 脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本 发明的范围由权利要求及其等同物限定。
【主权项】
1. 一种基于纠错码的身份认证协议方法,其特征在于,包含以下步骤: 步骤一,生成系统参数:密钥对为(4,?10 = (8,(7,!1,《)),其中私钥成是有限域?(1上长 度为η的矢量,矢量s的码重wt(s)=w,公钥pk是三元组(y,H,w),其中)'eF(,有限域F q 上rXn的矩阵/^ξ;'χ",正整数wGN*,y = Hs;公开的哈希函数h( ·); 步骤二,身份认证:重复执行以下的步骤S次: (1) 证明者P生成随机矢量《eg和{1,. . .,n}上的一个置换函数σ,计算委托Cl = h(〇, HuT)和C2 = h(〇(U)),将C1,C2发送给验证者V; (2) 验证者V生成随机数a e Fq,并发送给证明者P; (3) 证明者P根据收到的消息和私钥,计算矢量典=付《Φ#),并将它发送给验证者V; (4) 验证者V收到矢量β后,发送挑战b e {〇,1}给证明者Ρ; (5) 若b = 0,证明者P发送〇给验证者V;若b = 1,证明者P计算并发送〇 (s)给验证者V; (6) 当b = 〇时,验证者V验证C1是否正确;当b = 1时,验证者V验证〇2是否正确,以及σ(s) 的码重wt (σ (s)) ? = w,若验证错误,则认证失败,判定Ρ是非法证明者; 步骤二执行S次,且每次都验证正确,则认证成功,验证者V判定Ρ是合法证明者。2. 根据权利要求1所述的一种基于纠错码的身份认证协议方法,其特征在于,所述步骤 一具体过程为: 生成准并矢(quasi-dyadic)纠错码C(n,k,w),余维r = n-k;纠错码C的校验矩阵 if e F广;生成随机矢量.S F〗满足wt (s) = w;计算y = HsT;得到公钥pk = (y,Η,w),私钥sk = (s);系统公开的哈希函数h( ·)。3. 根据权利要求1所述的一种基于纠错码的身份认证协议方法,其特征在于,所述步骤 二进一步优化为: (2.1) 证明者?生成5组(1^,〇〇,其中义€$,(^是{1,...,11}上的置换函数,1彡;[彡5,相 应地计算δ组委托(Cii,Ci2),其中,Ci2 = h(〇i(ui));计算δ组委托的哈希值hi = h(cii,ci2, · · ·,Cii,Ci2, · · ·,CS1,CS2),并)l#hi发送给验证者V; 然后P使用每组(m,〇1)重复执行以下步骤δ次; (2.2) 验证者V生成随机数αι e Fq,并发送给证明者Ρ; (2.3) 证明者P根据收到的消息和私钥,计算矢量爲=σ,(?, ??,4,并将它发送给验证者 V; (2.4) 验证者V收到矢量&后,发送挑战h e {〇,1}给证明者Ρ; (2.5) 若bi = 0,证明者P发送(〇i,ci2)给验证者V;若bi = 1,证明者P计算并发送(〇i (s), cn)给验证者V; (2.6) 当匕=0时,验证者乂恢复(^1,并记录((^1,(^2);当匕=1时,验证者¥恢复(^2,并验证 wt (〇i(s)) ? = w;若验证错误,则认证失败,判定P是非法证明者;若验证成功,则记录(Cil, Ci2); 以上步骤执行δ次之后,验证者V根据记录的δ组委托(cu,Ci2)生成哈希值h2 = h(cn, C12, · · ·,Cil,Ci2, · · ·,CS1,CS2),并判断hl?=h2,若相等,贝lj认证成功,验证者V判定P是合法证 明者;否则,认证失败,验证者V判定P是非法证明者。
【文档编号】H04L29/06GK105959097SQ201610489734
【公开日】2016年9月21日
【申请日】2016年6月28日
【发明人】韩牟, 冯晓林, 马世典, 华蕾, 王运文, 刘文山
【申请人】江苏大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1