零知识协议的有效执行的制作方法

文档序号:7583721阅读:304来源:国知局
专利名称:零知识协议的有效执行的制作方法
技术领域
本发明涉及零知识协议,允许在第一方区域内的一些“保密的”或者私有密钥信息的知识被第二方检验,而无需将所述实际保密信息或者私有密钥告知给第二方或者任何窃听的第三方。尤其,本发明已应用于在具有有限计算资源的系统和设备,例如智能卡、移动电子设备等中实现零知识协议。
在本说明书中,所述第一方具有所述保密信息或者私有密钥(“s”)并且希望证明具有所述信息,被称为“示证者”(“P”);所述第二组,希望不实际接收秘密知识来证明此情况,被称为“验证者”(“V”)。所述示证者P和验证者V可以是任何适合的电子设备。所述保密信息可以是任何数值,以下被称为示证者P的密码。
零知识协议是非常有用的工具,可用于认证诸如用于金融交易或者付费电视的智能卡的设备,并且用于认证与网络相连的设备,诸如移动电话和其它电子设备。
通常,所述示证者将提供一个难以计算的数学问题,并且所述验证者将寻求两个或更多可能的解决问题的方案之一。假如所述示证者知晓涉及所述解决方案的关键信息,则能依据验证者的请求,按要求提供任何被请求的并且有效的解决方案。假如所述示证者不知晓所述关键信息,则不可计算,从而不能向所述验证者提供所需解决方案。
通常,零知识协议取决于一些困难的数学问题,例如整数分解或者离散对数问题。这些协议的一个缺点是它们通常需要广泛采用模运算,因此相对于诸如智能卡和便携式电子设备的较低功率、有限容量设备,需要更大的运算资源。因此,所述保密协议的典型执行时间比所想要的时间长。
本发明的一个目的是提供一种在处理器设备中,并且尤其在具有低计算资源或者低功率的设备中更有效实现零知识协议的方法。
依据一个方面,本发明提供一种利用零知识协议,其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作,由不知晓密码的验证者设备检验示证者设备中的密码s知识的方法。
依据另一方面,本发明向一种在蒙哥马利表达式中包含一密码s的示证者设备提供一种零知识协议,所述设备适用于无需传送所述密码知识本身而向一验证者设备证明所述密码s知识,所述零知识协议其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作。
依据另一方面,本发明向一验证者设备提供一种零知识协议,所述设备无需知晓密码本身而用于检验示证者设备中的密码s的知识,所述零知识协议其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作。
依据另一方面,本发明提供了一种使用零知识协议向不知晓所述密码的验证者设备证明示证者设备中的密码s知识的方法,所使用的零知识协议其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作,包括以下步骤选择一随机数r;计算r的蒙哥马利e次幂从而获得x;将x传送到一验证者设备;接收一询问值c;计算所述蒙哥马利乘积y=r×msc;以及传送y到所述验证者设备。
依据另一方面,本发明提供了一种使用零知识协议由一个不知晓所述密码的验证者设备检验示证者设备中的密码s知识的方法,所使用的零知识协议其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作,包括以下步骤接收所述密码s的蒙哥马利平方v;接收一随机数r的蒙哥马利平方x;传送一询问值e到所述示证者设备;依据y的蒙哥马利平方检查所述示证者响应y的真实性,所述y是依据所述询问值e从所述示证者设备接收到的x和/或v值来检验的。
依据另一方面,本发明提供了一种使用零知识协议由一个不知晓所述密码的验证者设备检验示证者设备中的密码s知识的方法,所使用的零知识协议其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作,包括以下步骤接收所述密码s的蒙哥马利e次幂;
接收一随机数r的蒙哥马利e次幂x;传送一询问值c到所述示证者设备;依据y的蒙哥马利e次幂检查所述示证者响应y的真实性,所述y是依据所述询问值c从所述示证者设备接收到的x×msec值来检验的。
以下将结合附图并通过例子来描述本发明的实施例,其中

图1表示依据本发明的一个协议的流程示意图;图2表示适合实现图1的协议的装置的方框图;以及图3表示依据本发明的可选的协议的流程示意图。
在一优选例子中,本发明提供一种对现有的基本Fiat-Shamir协议的改进。
所述Fiat-Shamir协议的目的是用于示证者P使验证者V确信他知晓一密码(一数字),但是无需向V或者实际上无需向任何可以窃听到所述协议的其他人提示密码。
为更有效地,所述协议通常通过适量多轮(试探)来实施的。每一轮使V更确信P确实知晓数字s。
所述数字s在所述示证者的范围内保持私有。在所述第一种情况下,所述示证者P向可信赖的第三方提供数字s的平方模n,v=s2modn。例如,v可以是用于示证者P的公钥,并且所述私钥s是s=sqrt(v)mod n最小的情况。可信赖的第三方通常也被假定为其组成素因子中模数n的创建者。
可信赖的第三方向所述验证者V提供v。由于n是至少两个V未知的大素数的乘积(典型地一1024或2048位数),它很难进行因式分解,并且这使得它难以计算从而导出s给定的s2;因此可信赖第三方可给Vs2值而无需显示s。
Fiat-Shamir协议的每一轮分三阶段进行。
阶段1所述示证者P选择一随机数r对n求模,并且通过计算s2mod n提交并将其传送给验证者V。注意由于与以前相同的原因所述验证者V不能计算r——对未知因式分解的合数求平方根模是难以计算的。
阶段2所述验证者V现在选择两个问题之一来询问示证者P。所述示证者之前不知道将被询问哪两个问题之一,但是假如他诚实地知晓所述密码s,他将只能正确回答这两个问题。所述示证者可询问乘积r.s modn的值,或者所述示证者刚刚选择的r值。
这通常是通过V向P发送一个表示其问题选择的比特e来执行,被称为“询问”或“检查”,这使得所述示证者不得不提供答案,y=r.semodn,其中e属于{0,1}。
阶段3所述示证者P按所要求的提供y=r.semodn并且所述验证者按如下方法检查所述结果。
假如所述询问是对于e=1,所述验证者接收r.s mod n。所述验证者不能从此推出任何关于s的信息,因为r是V不知道的一个随机数。因此,所述验证者检查所述平方响应(即y2modn,也可以是(rs)2modn)与r2*s2modn相同。所述验证者在此轮的阶段1从P接收r2,并且从可信赖的第三方获取s2(=v)。
假如所述询问是e=0,所述验证者接收到r,则检查其平方匹配阶段1提供的值r2modn。
当考虑P的模仿者在不知晓s的情况下可如何执行,询问e=0的点则很清楚。不知晓s的模仿者可伪造(通过预计算)e=1询问的正确答案,但是由于他之前不知道他将被询问哪个问题,因此这是一种投机。通过以下方法他能实现上述目的在阶段1,选择任何随机r,从可信赖的第三方获得v,并且向V发送(r2*v-1)modn。
假如在阶段2,V所给的询问e=1,那么在阶段3以他的y值响应r。
V可接受的,检查y2=r2=(r2*v-1)*v。
然而,在此情况下,由于他需要对(r2*v-1)mod n求平方根,这需要他知晓v-1mod n的平方根,因此所述模仿者将不能正确回答询问e=0。同样,他需要知晓v mod n的平方根,即他需要知晓s从而正确回答e=0。
另一方面,所述模仿者可投机询问e=0。这刚好使他选择一随机数r,在阶段1给出r2并且在阶段3相应于询问e=0给出r,这又对于V是可接受的。但是假设他选择此方法,假如在阶段2询问为e=1,他不知晓s时不能提供r.s mod n。
假定给定模仿者在每一轮选择正确策略的机会为50∶50,完整的协议需要运行足够多轮以满足V,它实际上与P,而不是与一个模仿者相反。假如所述协议需要20轮,即对于询问e={0,1}具有20个依次正确的响应,模仿者不知晓s而成功证明V的几率小于1/1,000,000。对于40轮,可能性减小到1012。
每一轮需要使用一个新值r。所述协议也要求在一定时限内提供对询问的响应,所述时限是由计算一模仿者能计算出询问的答案而决定的,这比直接预先相乘r.semodn更难。
很明显地,这有利于确保在运行所述协议期间所有计算操作很容易地被具有有限计算功率的低功率设备执行,这使得可快速执行多个连续轮。
依据本发明,可利用用于所述协议的数字数量的蒙哥马利表达式完全实现诸如上述Fiat-Shamir协议的零知识协议。这显著提高了示证者和验证者的计算效率。
所提到的解决方案是基于数字r∈Zn的蒙哥马利表达式。所述数字z的蒙哥马利表达式zm是由zm=zRmodn所给出的,其中数字R比n大得多,R和n对于示证者设备和验证者设备是已知的。
蒙哥马利乘法是按以下方法执行的。数字am和bm是数字a和b的蒙哥马利表达式,所述模乘为am×mbm=ambmR-1modn。
与传统的Fiat-Shamir协议类似,n是作为在可信赖的第三方域内保密的两个素数数字p和q的乘积的公知模数。
参照图1,在此配置中,所述密码s(步骤101)可被认为是另一数字s’的蒙哥马利表达式。可信赖的第三方可以存储蒙s′2的哥马利表达式,即s2,其中依据蒙哥马利乘法s2=s×ms执行平方,以下我们称之为v。这可以被认为是所述示证者P的公钥。通常,所述蒙哥马利乘积s2被计算(步骤102)并被提供给所述验证者域(步骤103),无论是否通过可信赖的第三方20或者直接来自所述示证者。这样,可确保值v完整。
这些步骤101至103可被认为是初始的起动程序,对于许多迭代或者将被描述的三阶段协议的使用,它只执行一次。
阶段1在所改进的协议的第一阶段,P选择一随机数r∈Zn(步骤105),可作为另一数字r’的蒙哥马利表达式。P执行r与其自身的蒙哥马利乘法(步骤106),得到r2(以下被称为x),其是r’2的蒙哥马利表达式,并且将x(=r2)发送到验证者(步骤107)。
阶段2在所改进的协议的第二阶段,所述验证者V向示证者P发送一询问e∈{0,1}。
阶段3在所改进的协议的第三阶段,P计算r和se的蒙哥马利乘法,即r×mse,以下被称为y(步骤110),并且将此数字发送到所述验证者V(步骤111)。当接收到y(步骤112),V然后依据询问值e执行下述两个检查之一(步骤113)。
在e=1的情况下,V计算y×my的值,以及v×mx的值(步骤115),并且检查(步骤116)两个计算值是否相等,即是否y2=(v×mx)。这需要两次蒙哥马利乘法,而不是两次普通的模乘。
在可选的e=0的情况下,由于项se作为整体计算,所述验证者V与r×mr类似地计算y2=y×my(步骤120)。V然后检查(步骤121)y2(步骤111、112所发送的数字y的蒙哥马利平方)是否等于先前已经在步骤106、107所发送的数字x(=r2)。这只需要一次蒙哥马利乘法,而不是一次普通的模乘。
假如步骤116或121的检查失败,这使得协议失败(步骤122)并且所述验证者将断定示证者P不知晓密码s。
假如步骤116或121的检查估计为真,在步骤125决定是否还需迭代协议从而满足P的完整性,即确保VP具有密码s(步骤126)假如还需要迭代,采用一新随机值r从步骤105重复所述协议。
作为所改进的协议的结果,P和V都只执行蒙哥马利乘法(分别在步骤106、110和步骤115、120),这比(传统Fiat-Shamir机制中的)普通乘法mod n更有效。
在运行协议期间,数字无需转换成蒙哥马利表达式或者进行反向转换,由于所述开始数字s、v、r已经在蒙哥马利表达式中。这使得所改进的协议更为有效。
所述协议要求对于一模仿示证者P’,依据一模仿者P是否选择询问e为1或者0,计算(r2×mV-1)的平方根或者v的平方根,是难以计算的,并且在传送步骤106和接收步骤112之间V所能接受的时间帧之内无疑也是难以计算的。
上述协议可在任何适合的硬件或软件内实现。优选实现如图2所示。
一示证者设备10可包括一智能卡或者类似的低功率设备,例如一付费电视卡、一信用卡或者用于移动电话的一SIM卡。所述设备10可包括所述智能卡本身,或者所述卡以及插入此卡的设备。例如,所述卡被一检验设备“读取”(或询问),所述卡本身可以处理器11的形式提供有限处理能力。其中所述卡被插入或者用于一合适的设备(诸如一卫星电视接收机或移动电话)中,这可认为形成了P领域部分,然后接收所述卡的设备具有所述处理能力11。
所述验证者设备30可以是一读卡器(用于直接询问,例如一信用卡)或者可以是询问安装所述卡设备的远程设备。例如,所述验证者设备30可以是一卫星电视传送器,询问插入认证卡的机顶盒。可选地,验证者设备30可以是一个与移动电话及其SIM卡通信的移动电话基站。
在优选配置中,示证者设备10包括用于存储蒙哥马利表达式中的s、r、x和y的存储器寄存器以及一随机数字产生器12。
在优选配置中,验证者设备30包括一处理器31和存储蒙哥马利表达式中的v和y的寄存器;以及用于e的一随机数字产生器。
在优选配置中,一可信赖的第三方设备20包括一处理器31并包括用于蒙哥马利表达式中v的寄存器。所述第三方设备也可以是提供v和s作为示证者10的公/私钥对并提供来自密码素数p和q的n值的提供者。
众所周知,表达式“随机”,当涉及用于从集合{0,1}产生随机数r和随机值e时,只暗示所述发送方所选择的值r或e对于接收方域时完全不可预测的,所述接收方无法确定用于预测的值模式或者下一值的推断。
所述设备10、20、30可利用适当的连接进行数据传输从而相互通信。这包括利用诸如无线电、微波、光、红外线、声等任何适当的介质的无线链接。所述连接可以通过直接电连接、瞬变或者持久的,或者经由交换网或者分组网。
如前所述,Fiat-Shamir协议可被改进为以数字的蒙哥马利表达式或者蒙哥马利算法进行操作。所述原则可被扩展为基于类似于RSA结构的其他协议。以下将给出另一个例子,其中所述Guillou-Quisquater协议适于采用数字的蒙哥马利表达式。
所述Guillou-Quisquater协议是所述Fiat-Shamir协议利用更高功率的扩展。它允许减少用于建立示证者的密码s知识的消息数量和存储需求。
在所述Guillou-Quisquater协议中,可信赖的第三方选择两个RSA素数p和q并且计算乘积n=pq。可信赖的第三方利用gcd(e,φ(n))=1定义一公共指数e≥3并且计算其私有指数d=e-1modφ(n)。所述系统参数(e,n)是公共的。
参照图3,在依据本发明的改进的协议中,在蒙哥马利表达式中给出所有数字并且利用蒙哥马利算法进行所有计算。所述示证者P的密码是s∈Zn(步骤301)并且可被认为是另一数字s’的蒙哥马利表达式。可信赖的第三方TTP然后计算并存储所述s′e的蒙哥马利表达式,即s×ms×ms…×ms(e次)。所述验证者V从所述可信赖的第三方接收并存储se。
所述协议按如下方法进行P随机选择一数字r∈Zn(步骤305)。r可以是另一数字r’的蒙哥马利表达式。P然后计算r的蒙哥马利e次幂x=re(即r×mr×mr…×mr(e次))并向验证者V发送x(步骤306)。注意x是r′e的蒙哥马利表达式。
V接收x(步骤307)并随机选择一询问值c∈{0,1,…e-1},V将其发送给P(步骤308)。
响应所述询问c,P计算y=r×mscmodn(步骤310)并将y发送给V(步骤311)。
当接收到y时(步骤312),V计算所述蒙哥马利幂ye(步骤313)和所述蒙哥马利幂sec(步骤314)并检查是否ye=x×msec(步骤315)。假如不相等,所述协议失败(步骤322)并且V必须断定P不知道s。
假如所述检查证明ye=x×msec,然后V检查是否已经足够迭代地执行了协议,从而检验V是否足够确定地知道s(步骤325)。假如是,所述处理终止(步骤326),假如不是,通过P选择新的随机数r重复所述协议(步骤305)。为了实现比较确信,通常要达到的目的是Guillou-Quisquater协议比Fiat-Shamir协议需要执行更少轮。
其它实施例最终是在所附权利要求的范围内。
权利要求
1.一种利用零知识协议,其中采用数字的蒙哥马利表达式和蒙哥马利乘法操作,由不知晓密码的验证者设备(30)检验示证者设备(10)中的密码知识的方法。
2.如权利要求1所述的方法,其中所述零知识协议是Fiat-Shamir协议。
3.如权利要求1所述的方法,其中所述零知识协议是Guillou-Quisquater协议。
4.如权利要求2所述的方法,包括以下步骤(i)独立向所述验证者设备(10)提供(102)所述密码s的蒙哥马利乘法的值v=s2;(ii)通过示证者设备计算(106)值x=r×mr,其中r是一随机数并且将x值传送到验证者设备;(iii)通过验证者设备从集合{0,1}选择(108)询问值e并将所述询问值传送到所述示证者设备;(iv)通过示证者设备计算(110)所述值y=r×mse并且将所述值y传送到验证者设备;以及(v)依据之前接收到的值x、y和v并且依据所述询问值e,所述验证者设备(10)检查所述示证者响应的真实性。
5.如权利要求4的方法,其中检查所述示证者的响应的真实性的步骤包括以下步骤对于询问值e=1,计算(115)y×my和v×mx值并检查(116)它们是否相同的;或者对于询问值e=0,计算(120)y×my值并检查(121)它与之前接收到的值x是否相同。
6.如权利要求4或权利要求5的方法,还包括多轮连续重复步骤(ii)至(v)从而确定所述示证者设备的真实性的步骤。
7.如权利要求4或权利要求5的方法,其中密码s是示证者设备域中已知而验证者设备域未知的另一数s’的蒙哥马利表达式,还包括所述示证者设备依据s=s′Rmodn从s’计算s的值的步骤,其中R>n,n和R的值被所述示证者设备和所述验证者设备所使用。
8.如权利要求4所述的方法,其中所述的s×ms、r×mr和r×mse蒙哥马利乘法是依据公式a×mb=abR-1modn执行的,其中R>n,n和R的值被所述示证者设备(10)和所述验证者设备(30)所使用。
9.如权利要求5所述的方法,其中所述的y×my和s2×mx蒙哥马利乘法是依据公式a×mb=abR-1modn执行的,其中R>n,n和R的值被所述示证者设备(10)和所述验证者设备(30)所使用。
10.如权利要求1所述的方法,其中在零知识协议中的所有计算是利用数字的蒙哥马利表达式和蒙哥马利乘法操作来执行的。
11.如权利要求3所述的方法包括以下步骤(i)向所述验证者设备提供(303)密码s的蒙哥马利e次幂的值se;(ii)通过所述示证者设备(10)计算(306)r的蒙哥马利e次幂的值x=re,其中r是一随机数,并且将x值传送到所述验证者设备(30);(iii)通过所述验证者设备从集合{0,1,...,e-1}选择询问值c并将所述询问值传送到所述示证者设备;(iv)通过所述示证者设备计算(310)值y=r×msc并且将所述值y传送(311)到所述验证者设备;并且(v)依据之前依据所述询问值c接收到的x、y和se值,所述验证者设备(30)检查所述示证者的响应的真实性。
12.如权利要求11所述的方法,其中检查所述示证者响应的真实性的步骤包括步骤计算(313,314)ye和x×msec的值并检查它们是相同的。
13.如权利要求11或12的方法还包括多轮连续重复步骤(ii)至(v)从而确定所述示证者设备的真实性的步骤。
14.一种示证者设备(10),其中包含了蒙哥马利表达式中的一密码s,采用使用数字的蒙哥马利表达式和蒙哥马利乘法操作的零知识协议,所述设备适于自身无需传递密码知识而向一检验设备证明密码s知识。
15.如权利要求14所述的示证者设备还包括用于选择一随机数r的装置(12);用于计算r的蒙哥马利平方从而获得x的装置(11);用于传送x到一验证者设备(30)的装置;用于接收一询问值e的装置(11);用于计算蒙哥马利乘积y=r×ms的装置(11);以及用于传送y到所述验证者设备(30)的装置。
16.如权利要求14的示证者设备还包括用于选择一随机数r的装置(12);用于计算r的蒙哥马利e次幂从而获得x的装置(11);用于传送x到一验证者设备的装置;用于接收一询问值c的装置(11);用于计算蒙哥马利乘积y=r×ms的装置(11);以及用于传送y到所述验证者设备的装置。
17.一种利用其中使用数字的蒙哥马利表达式和蒙哥马利乘法操作的零知识协议来检验示证者设备中的密码s的知识而自身无需密码知识的验证者设备(30)。
18.如权利要求17所述的验证者设备(30)包括用于接收所述密码s的蒙哥马利平方v的装置(31);用于接收一随机数r的蒙哥马利平方x的装置(31);用于传送一询问值e到所述示证者设备的装置(31);依据y的蒙哥马利平方检查所述示证者响应y的真实性的装置(31),所述y是相对于依据所述询问值e从所述示证者设备接收到的x和/或v值来检验的。
19.如权利要求17所述的验证者设备还包括用于接收所述密码s的蒙哥马利e次幂se的装置;用于接收随机数r的蒙哥马利e次幂x的装置;用于将一询问值c传送到所述示证者设备的装置;依据所述询问值c,相对于依据从所述示证者设备接收到的x×msec的值所检验的y的蒙哥马利e次幂,用于检查所述示证者响应y的真实性的装置(31)。
20.一种利用使用数字的蒙哥马利表达式和蒙哥马利乘法操作的零知识协议向不知晓密码的验证者设备(30)证明示证者设备(10)中的密码s的知识的方法,包括以下步骤选择(305)一随机数r;计算(306)r的蒙哥马利e次幂从而获得x;传送(306)x到一验证者设备;接收一询问值c;计算(310)蒙哥马利乘积y=r×msc;并且传送(311)y到所述验证者设备。
21.一种利用使用数字的蒙哥马利表达式和蒙哥马利乘法操作的零知识协议由不知晓密码的验证者设备(30)检验密码s的知识的方法,包括以下步骤接收(103)密码s的蒙哥马利平方v;接收(107)一随机数r的蒙哥马利平方x;传送(108)一询问值e到所述示证者设备;依据y的蒙哥马利平方检查所述示证者响应y的真实性,所述y是相对于依据所述询问值e从所述示证者设备接收到的x和/或v值来检验的。
22.一种利用使用数字的蒙哥马利表达式和蒙哥马利乘法操作的零知识协议由不知晓密码的验证者设备(30)检验示证者设备(10)中的密码s的知识的方法,包括以下步骤接收(303)所述密码s的蒙哥马利e次幂;接收(307)一随机数r的蒙哥马利e次幂x;传送(308)一询问值c到所述示证者设备;依据y的蒙哥马利e次幂检查所述示证者响应y的真实性,所述y是相对于依据所述询问值e从所述示证者设备接收到的x×msec值来检验的。
23.一种计算机程序产品,包括一计算机可读介质,其中具有计算机程序代码装置,当所述程序被下载到一计算机中,适于使所述计算机运行权利要求1至13和19至22的任何一个。
24.一种计算机程序,可通过电子数据传送来分配,包括计算机程序代码装置,当所述程序被下载到一计算机中,适于使所述计算机运行权利要求1至13和19至22的任何一个。
全文摘要
零知识协议,诸如Fiat-Shamir和Guillou-Quisquater协议,只利用数字的蒙哥马利表达式上的蒙哥马利乘法来实现,从而更有效地执行所述协议,尤其在具有有限的计算资源的设备诸如智能卡和其他便携式电子设备中。
文档编号H04L9/32GK1723654SQ200380105501
公开日2006年1月18日 申请日期2003年11月21日 优先权日2002年12月10日
发明者P·T·蒂尔斯, B·默里 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1