基于多项式的多用户密钥生成验证方法和系统的制作方法

文档序号:7889581阅读:247来源:国知局
专利名称:基于多项式的多用户密钥生成验证方法和系统的制作方法
技术领域
本发明涉及一种在第一方与第二方之间产生共有秘密的方法,其中第一方持有一个数值p1以及由数值p1固定的第一自变量的对称多项式P(x,y),并且第一方执行以下步骤将数值p1发送到第二方,从第二方那里接收数值p2,以及用p2求值多项式P(p1,y)来计算秘密S1。
本发明还涉及一种被安排来执行这种方法的系统,其中所述系统包含了第一方、第二方和受信任的第三方,此外本发明还涉及被安排成起到系统中的第一或第二方的作用的设备,以及涉及一种计算机程序产品。
从R.Blom发表于Advances in Cryptology-Proceedings ofCrypto 82,231-236,1983的文章“非公共密钥分发(Non-public keydistribution)”已知依照前文的方法的一个实施例。
在数字通信网络和内容保护系统中,验证扮演了非常重要的角色。相互通信的设备需要确信彼此的可信赖性。它们不应将机密信息提供给不受信任的一方。而验证过程则通常以公共密钥技术为基础,这类技术需要大量的处理能力。然而在很多应用中却不能得到这种(处理)能力,在这种情况下则不能直接应用这些公共密钥技术。
有时也会提出一种以使用功耗小得多的对称密码为基础的解决方案。然而这些对称密码会遭遇到这样的缺陷,那就是这些对称密码需要在每个设备中都具有一个全局系统秘密,这对那些大量生产的产品来说并不理想。
在CE应用中,数字通信网络同样也在变得越来越普遍,并且驱动了对于廉价和低功率验证协议的需要。尽管这种功率约束对便携式CE设备和智能卡等而言一般都是成立的,但是如在由本申请的同一申请人所提交的国际专利申请WO02/017316(代理人文档号PHNL010233)中所述,这种功率约束在“盘内芯片”(CID)类产品中却是特别严格的。
支持CID的基本方法是在CD或DVD之类的载体上放置芯片,随后则将其使用于保护内容的目的。一旦该芯片确定播放器可信,那么它会允许播放器播放内容(准许播放器访问它所承载的解扰密钥)。另一方面,播放器也不会播放不可信盘片上的任何内容。因此,播放器和CID全都需要某种用于进行验证的装置。
非常重要的是,应该指出,所述芯片在处理过程中只有很有限的功率(大约0.5mW)并且由此无法执行很复杂的计算。这意味着不能直接使用公共密钥技术(例如RSA或E1Gamal)。CID验证问题是CE领域中的验证问题的一个典型实例。
上文引用的Blom的文章公开了一种共有密钥或会议密钥生成方法,该方法使用的是一个以具有两个变量的对称多项式为基础的秘密共享协议。在

图1中描述了这个协议。从根本上讲,名为证明者(prover)的一方(简写为P)尝试让系统中名为检验者(verifier)的另一方(简写为V)确信他知道一个同样为检验者所知的秘密。如果检验者确信,则验证了所述证明者。
在该系统中,受信任的第三方(TTP)选择一个对称的(n+1)×(n+1)矩阵T,该矩阵的矩阵项tij表示的是具有两个变量的n次多项式P的相应系数,其中所述多项式是如下定义的P(x,y)=Σi,j=0ntijxiyj]]>很明显,对多项式域中的所有x和y来说,P(x,y)=P(y,x)。通过将自变量x固定成的某个值(比方说p)则可以将多项式P投影到具有一个自变量的n次多项式空间,即Pp(y)=P(p,y)。从多项式P的定义、矩阵T的对称性和由此所得的P(x,y)的对称性可以得出,对于所有的p和q来说,Pp(q)=Pq(p)。
根据Blom的文章,每一个需要能产生与另一个设备共有的秘密的设备都会接收一对(Pp(y),p),也就是固定于p的多项式P和用于从P(x,y)产生Pp(y)的数值p。设备(Pp,p)和(Pq,q)之间的共享秘密是由Pp(q)=Pp(p)给出的,其中所述等式是如下产生的交换p和q,并且对各多项式求值来为P产生S1以及为V产生S2。
在这个方法中,全局秘密由矩阵T构成,由于该矩阵是对称的,因此它具有1/2(n+1)(n+2)个独立矩阵项。所述秘密的一部分是以一个相应数值p和多项式Pp(y)的形式提供给每一方的,其中所述多项式具有n+1个采用如下形式的系数gj=Σi=0ntijpi]]>这样一来,为各方提供了具有1/2(n+1)(n+2)个未知数tij的n+1个线性等式,由此可以清楚了解到某一方不能获取全局秘密T。只有在n+1方都以一个不同数值p来进行协作的情况下,才有可能获取矩阵T。
这提出了已知协议的一个重大缺陷如果有足够数量的多方协作,则就能获取全局秘密T,除非不同数值pi的数目小于n+1。但这意味着不同部分的数目受限于阻止泄露全局系统秘密T的多项式次数。此外,当两方进行通信时,它们总是产生相同的共有秘密。
本发明的一个目的是提供一种依照前文的方法,其中该方法允许将数量更多的全局秘密的不同部分分发给各方,但却不必增加多项式P的次数。
这个目的是依照本发明而在一种方法中实现的,该方法的特征在于第一方额外持有一个数值q1和一个由数值q1固定的第一个自变量的对称多项式Q(x,y),此外所述方法还执行以下步骤将q1发送给第二方,接收来自第二方的数值q2,以及依照S1=Q(q1,q2)·P(p1,p2)来计算秘密S1。
虽然pi的数值数目仍然仅限于n,但是现在可以向各方分发数量更大的不同部分。在整个系统中,与Blom所描述的系统中的情况不同,qi的数值数目不受多项式P的次数限制,它仅仅受限于Q的域中的可能元素qi的数目。由此可以有足够数量的qi能为每一方都提供唯一的全局秘密部分。
在一个实施例中,第一方还执行以下步骤获取一个随机数r1,计算r1·q1,将r1·q1发送到第二方,从第二方接收r2·q2并且依照S1=Q(q1,r1·r2·q2)·P(p1,p2)来计算秘密S1。随机数r1和r2隐藏了q1和q2的值,这样一来,使得窃听者或不兼容的(non-compliant)设备很难了解到q1和q2的某些情况。其次,r1和r2的值导至多项式P和Q的求值结果倍增,由此,计算所得的秘密S1和S2也具有随机特性。这意味着如果稍后将S1和S2用作对称密码中的密钥,那么窃听者将是很难破译这种加密的。此外,现在在两个设备之间的每一个新会话上都可以生成一个不同的共有秘密。
在另一个实施例中,第一方持有与一个任选值r相乘的值q1以及乘积Q(q1,z)P(p1,y),而不是各单独多项式P(p1,y)和Q(q1,z),此外第一方还执行以下步骤计算r1·r·q1,将r1·r·q1发送到第二方,从第二方那里接收r2·r·q2以及依照S1=Q(q1,r1·r2·r·q2)·P(p1,p2)来计算秘密S1。这样一来,对可以使用设备并且试图了解全局秘密T和/或数值q1或q2的对手(adverary)来说,数值q1和q2都是隐藏的。
在另一个实施例中,在将一个非线性函数用作进一步通信之中的秘密密钥之前,第一方和第二方分别对所生成的秘密S1和S2使用了该非线性函数。优选地,这个非线性函数是作为一个单向散列函数来实现的,但是也可以采用多项式的形式。通过使用非线性函数,可以使得所述方案前向及反向安全。换句话说,即使攻击者设法得到了一个密钥,他也不能从所获取的密钥中导出先前或后续的密钥。
优选地,第一方随后检验第二方是否知道秘密S1。第一方可以通过应用一个零知识协议来检验第二方知道所述秘密S1。优选地,这个协议是带有公共值e和m的Guillou-Quisquater协议。这样一来则有如下优点,其中在本发明中,由于Guillou-Quisquater协议不允许对手预期一个挑战口令(challenge),因此对e的较低值来说,这种协议是非常安全的。此外,所述协议在通信和存储器使用方面也是非常有效的。
或者,第一方可以应用一个基于提交(commitment-based)的协议来检验第二方是否知道秘密S1。在执行所述方法的设备中,通过使用一个基于DES、Lombok或AES之类的对称密码的提交协议在功耗方面是非常有效的。优选地,第一方随后使用相同的对称密码作为提交函数而致力于对经过加密的随机挑战口令进行解密。由于可以将用于加密挑战口令的硬件和/或软件重用于执行提交函数,因此这样做具有降低实施方式复杂度的附加优点。
在从属权利要求中对其他有益的实施例进行了阐述。
通过参考附图中所显示的实施例,本发明的这些和其他方面将会变得显而易见并且可以得到清楚的说明,其中图1描述的是一个依照Blom的以具有两个变量的对称多项式为基础的秘密共享协议;图2示意性显示了一个系统,其中包含了经由网络互联并被安排成依照本发明来进行操作的设备;图3示意性显示了图2系统的概况,其中包含一个证明者、一个检验者和一个受信任的第三方;图4描述的是证明者与检验者之间的秘密共享协议,其中所述协议是以各具有两个变量的两个对称多项式为基础的;图5描述的是图4协议的一个变体,其中的两个多项式只在有限数量的点中是对称的;图6描述的是Guillou-Quisquater协议;以及图7描述的是一个基于提交的协议。
在所有这些附图中,相同的参考数字表示的是相似或相应的特征。图中显示的某些特征通常是以软件方式实现的,这样,这些特征代表了软件模块或对象之类的软件实体。
图2示意性显示了一个系统100,其中包含了经由网络110互连的设备101~105。在这个实施例中,系统100是一个家用网络。典型的数字家用网络包含多个设备,例如收音机、调谐器/解码器、CD播放器、扬声器对、电视机、VCR、磁带录放音座(tape deck)等等。这些设备通常是相互连接的,由此允许诸如电视之类的其中一个设备控制诸如VCR之类的另一个设备。而一个例如调谐器/解码器或机顶盒(STB)之类的设备则通常是提供对其他设备的中央控制的中央设备。
通常包含音乐、歌曲、电影、电视节目、图片等的内容,是经由一个住宅网关或机顶盒101接收的。信源可以是连至宽带有线网络的连接、因特网连接、卫星下行链路等等。然后可以经由网络110而将内容传送到一个信宿,以便进行再现。举例来说,所述信宿可以是电视显示器102、便携式显示设备103、移动电话104和/或音频重放设备105。
再现内容项的确切方法取决于设备类型和内容类型。例如在收音机中,所述再现包括产生音频信号并且将其馈送到扬声器。对电视接收机来说,所述再现通常包括产生音频和视频信号并且将其馈送到显示屏幕和扬声器。对其他类型的内容来说,同样必须采取相似的恰当动作。此外,所述再现还可以包括解密或解扰接收信号、同步音频和视频信号等操作。
机顶盒101或是系统100中的其他任何设备都可以包括存储介质S1(例如大小适当的硬盘),以允许记录以及随后重放所接收到的内容。存储器S1可以是与机顶盒101相连的某种个人数字记录器(PDR),例如DVD+RW记录器。此外还可以将保存在载体120中的内容提供给系统100,其中所述载体可以是光盘(CD)或数字通用光盘(DVD)。
便携式显示设备103和移动电话104是通过使用基站111而无线连接到网络110的,其中举例来说,可以使用蓝牙或是IEEE802.11b。其他设备则是通过使用常规的有线连接相连接的。为了允许设备101~105进行交互,可以使用若干种互操作标准,这些标准允许不同的设备交换消息和信息以及相互进行控制。其中一种众所周知的标准是家庭音频/视频互操作性(HAVi)标准,其第1.0版发布于2000年1月并且可以在因特网上通过地址http//www.havi.org/得到该标准。其他众所周知的标准是家用数字总线(D2B)标准、在IEC1030中描述的通信协议以及通用即插即用(http//www.upnp.org)。
通常,确保家庭网络中的设备101~105不产生内容的非授权拷贝是非常重要的。为此目的,有必要使用通常称为数字权利管理(DRM)系统的安全框架。
在一个这种框架中,从概念上讲,家庭网络是在一个有条件访问(CA)域和一个拷贝保护(CP)域中划分的。通常,信宿位于CP域中。这样一来,由于CP域中具有拷贝保护方案,因此可以确保在向接收器提供内容的时候不会产生所述内容的非授权拷贝。CP域中的设备可以包括一个产生临时拷贝的存储介质,但是这类拷贝是不能从CP域中导出的。在本申请的同一申请人的国际专利申请PCT/IB02/04803(代理人文档号PHNL010880)中对这个框架进行了描述。
无论选择何种具体方法,在家用网络中实现所述安全框架的所有设备都会根据实现要求来实现所述安全框架。通过使用这个框架,这些设备可以相互进行验证并且安全地分发内容。而对内容所进行的访问则是由安全系统来进行管理的。由此可以避免将不受保护的内容泄漏给非授权设备,并且阻止那些来自不受信任的设备的数据进入系统。
设备只将内容分发给其他那些它们先前已经成功验证了的设备是非常重要的。由此可以确保对手无法使用恶意设备来产生非授权拷贝。举例来说,由于只有经过授权的制造商才知道成功验证所需要的特定秘密,或者它们的设备具有一个由受信任的第三方所发布的证书,那么如果设备是由经过授权的制造商制造的,则该设备只能成功验证其自身。
秘密共享在任何验证方案中都必须存在某种全局秘密或共有信息,并且想要向另一方验证自身的任何一方都必须至少与所述另一方共有某些信息。尽管从理论上讲是可以向每一个设备提供全局秘密的,但在实践中却并不建议采用这种做法如果全局秘密成为已知(例如通过窃用一个设备),那么对手可以取代受信任的第三方(TTP)的角色,其中首先是所述第三方将全局秘密分发到受信任的各方的。这样一来,不兼容的设备将会进入系统并且初始系统的安全性将会受到损害,由此导致验证无用。此外由于整个全局秘密已知,因此将会无法检测到不兼容的设备。
一种解决这个问题的可能方法是秘密共享受信任的每一方都会得到一部分全局秘密。这部分秘密足以使之向另一方验证其自身,但是会需要数量很大的诸部分来重建全局秘密(如果可能的话)。当一个设备受到损害的时候,只有一部分全局秘密会变成已知并且可以通过采取措施来废除这个设备。
本发明使用了一个秘密共享协议以使各方能够确定一个共有秘密。通常,各方随后会检验另一方是否知道秘密,参见以下章节“秘密检验”。然而,各方也有可能会在没有进行明确检查的情况下继续进行操作。例如,在这里可以将所述秘密用作一个加密密钥,以便对发送到另一方的某些信息进行加密。如果另一方不具有相同的秘密,那么他是不能解密信息的。由此隐性地授权了另一方。
图3示意性显示了图2系统的概况,其中包含了一个证明者P、一个检验者V以及一个受信任的第三方TTP。依照本发明,检验者V希望通过使用从受信任的第三方TTP接收的信息来对证明者P进行验证。优选地,所述验证是相互的,由此证明者P也了解到检验者V也是可信的。
假设预先已将那些向证明者P验证检验者V所必需的信息从TTP分发到了各方P和V。这可以在各方P、V和TTP之间的通信信道上进行。由此使得协议是动态的,并且允许在对手设法达成对先前分发的秘密的未授权访问的情况下很容易地更新信息。
证明者P和检验者V可以是具备了提供必要功能的芯片的设备(例如载体120),也可以是音频重放设备105。在这种情况下,从TTP到证明者和检验者很可能没有通信信道。那么则必须预先对秘密进行分发,例如在制造载体120或设备105的工厂中。
证明者P包含了一个联网模块301、一个密码处理器302和一个存储介质303。通过使用联网模块301,证明者P可以向检验者V发送数据,也可以从检验者V那里接收数据。联网模块301可以与网络110相连,也可以与检验者V建立直接连接(例如无线信道)。
密码处理器302被安排成执行依照本发明的方法。通常,这个处理器302是作为硬件与软件的组合来实现的,但是所述处理器也可以完全用硬件或软件方式来加以实现,例如作为软件模块或对象的集合。
举例来说,证明者P可以将多项式P和Q的系数保存在存储介质303中,但是也可将其用于保存某些希望在成功验证之后分发到检验者V的内容。存储介质303还可以用于保存那些从TTP接收的信息。为了增强系统安全性,与保存各单独多项式P和Q相反,在这里应改为保存乘积Qq(z)Pp(y)。
同样,检验者V包括一个联网模块311、一个密码处理器312和一个功能与证明者P的存储器相对应的存储器313。如果检验者V是作为带有盘内芯片的载体120来实现的,那么存储器313可以对应于任何(光)盘可用的存储器,但是优选将其保存在盘内芯片上的ROM中。
另外,证明者P和检验者V可以具有一个伪随机数发生器304、314(硬件或软件形式),所述伪随机数发生器提供在加密方面很强的伪随机数。这些数字都在依照本发明的方法的优选实施例中使用。现在通将会过参考图4和5来描述向检验者V验证证明者P的若干实施例进行描述。
使用两个对称多项式来产生一个共有秘密图4描述的是依照本发明优选实施例的以分别具有两个变量的两个对称多项式为基础的秘密共享协议。在上文中已经参考图1而对部分设置以及由各方执行的步骤进行了描述,因此在此不再重复加以说明。
对称多项式P与一个对称多项式Q(x,z)相乘,例如Q(x,z)=x·z。除了以p1固定多项式P之外,现在多项式Q同样是以q1固定的。现在,证明者不再从TTP接收以p1固定的多项式P,而改以接收简化的多项式的乘积Q(q1,z)P(p1,y)=Qq1(z)Pp1(y)]]>以及数值p1和q1。同样,检验者接收的不是以p2固定的多项式P,而是简化多项式的乘积Q(q2,z)P(p2,y)=Qq2(Z)Pp2(y)]]>以及数值p2和q2。优选地,证明者和检验者以其系数的形式来保存所述多项式g1j=q1Σi=0ntijp1i]]>和g2j=q2Σi=0ntijp2i]]>优选地,TTP首先将q1和q2与一个随机因数r相乘。这样一来,对于可以未经授权而使用那些体现了证明者和/或检验者的设备的对手来说,数值q1和q2是隐藏的,由此防止其冒充经过授权的设备。
从上文中可以得到Qq1(rq2)Pp1(p2)=q1rq2P(p1,p2)=q2rq1P(p2,p1)=Qq2(rq1)Pp2(p1)]]>
这表明即使使用盲因数r来隐藏qi的实际值,证明者与检验者也能够使用它们所具有的元素pi和qi以及从另一方那里接收的pi和qi来产生一个作为多项式P和Q的乘积的共有秘密。
如果我们现在将pi的数值的数目限制成n或是更小,那么将不能获取多项式P和Q的系数。与Blom系统中的情况一样,在整个系统中,qi的值的数目不受多项式P的次数的限制,而只是受限于Q的域中可能元素qi的数目。对足够数量的数值qi来说,由此可以向每一方提供唯一的全局秘密部分。
如图4所示,在接收到多项式P和Q的乘积以及pi和qi(或者r·qi)的值之后,各方P和V现在尝试产生一个共有秘密。双方都交换其pi和qi(或是r·qi)的值并且计算各自的秘密S1和S2。优选地,各方P和V首先产生各自的随机数r1和r2。然后,它们将会分别计算r1·q1和r2·q2,并且对这些乘积而不是q1和q2自身的值进行交换。这样做有若干个优点,其中随机数r1和r2隐藏了q1和q2的值,这样使窃听者或不兼容的设备很难了解到关于q1和q2的信息。此外,这样做将会使任何一方(比方说证明者P)都可以如下计算它的秘密S1S1=Q(q1,r1·r2·q2)·P(p1,p2)如果双方在将计算得到的S1和S2用作秘密密钥之前向所述S1和S2应用一个非线性函数,则可以实现本发明的更进一步的改进。优选地,非线性函数是作为一个单向散列函数实现的,但也可以采取多项式的形式。
使用受限的对称多项式来产生一个共有秘密图5描述的是图4协议的一个变体,其中多项式P只在数量有限的点中是对称的。多项式P以一个对称矩阵T为基础,并且可以看到,在P的域中,对x和y的所有值来说,多项式P(x,y)都是对称的。然而,如果使用了n个以上的不同数值pi,那么从理论上讲,对手是可以重建矩阵T的。因此,多项式P只需要在m个值p1,......,pm中保持对称,其中m≤n。为了说明如何构造那些只在数量有限的点中对称的多项式,我们首先给出一些定义。
两个n维矢量x→=(x1,···,xn)]]>和y→=(y1,···,yn)]]>的内积是由
<x→,y→>=Σi=1nxiyi]]>给出的, 和 的张量积x→⊗y→]]>则是由x→⊗y→=(x1y→,···,xny→)]]>给出的。
长度为n+1的范得蒙(Vandermonde)矢量 与由p→Vn=(1,p,p2,...pn)]]>给出的p相关联。除非另有说明,否则所有的范得蒙矢量的长度都是n+1,并且为了便于标注,在这里我们将删除下标n。在给出了具有m≤n个不同数值的子集{p1,...,pm}的情况下,我们构成范得蒙矢量 这m个矢量是线性独立的。因此,这些矢量都是子空间A的基矢量。
接下来我们将对所有可能的张量积p→iV⊗p→jV]]>进行考虑,其中i,j=1,...,m。从张量张量中可以知道,这m2个张量积构成了张量空间A=AA的基。对所有矢量y→∈A⊥]]>来说,都有<γ→,p→iV⊗p→jV>=0]]>通过使用以上定义,可以将多项式P(x,y)改写成一个内积P(x,y)=<t→,x→V⊗y→V>]]>其中 表示的是矢量(t00,...,t0n,t10,...,tnn)。也就是说,它包含了矩阵T的矩阵项。在其改写形式中,P仍旧是对称的。
然后,我们选择m个不同元素p1,...,pm。通过使用这些元素,我们构造范得蒙矢量 并且从这些范得蒙矢量中构造张量积p→iV⊗p→jV.]]>随后如上所述,我们从空间A的正交空间A⊥中选择一个矢量 然后则可以在那些选自优选集合{p1,...,pm}的点中对多项式P的改写形式进行求值。可以将矢量 添加给矢量 并且由于γ∈A⊥,因此有P(pi,pj)=<t→+γ→,p→iV⊗p→jV>=<t→,p→iV⊗p→jV>+<γ→,p→iV⊗p→jV>=<t→,p→iV⊗p→jV>]]>换句话说,如果我们从矢量γ→=(γ1,···,γ(n+1)2)]]>中导出一个矩阵
Γ=γ1γn+2···γn2+n+1············γn+1γ2n+2···γ(n+1)2]]>并且将这个矩阵Γ添加给矩阵T,那么对优选集合中的所有pi和pj来说,我们仍旧具有P(pi,pj)=P(pj,pi)。
上述观测值由TTP使用,以便通过执行下列操作来设置所述系统1.TTP选择一个随机对称的(n+1)x(n+1)矩阵T并且优选地选择一个任意值r。
2.TTP选择m个不同的随机元素p1,...,pm,其中m≤n。
3.TTP从张量积p→iV⊗p→jV]]>中计算空间A。
4.TTP从m个元素p1,...,pm中优选的选择前m′<m个元素。由此可以对系统进行更新(下文中将在“可更新性”这一节中对此加以说明)。
然后,TTP可以发布某些设备,也就是将全局秘密的一部分提供给各设备,由此允许这些设备对具有一部分全局秘密的其他设备(相互)验证其自身。这种设备通常称为已鉴定设备或已授权设备。接下来,在相互验证了其他已鉴定设备之后,一个已鉴定设备通常会因为其与某个非授权设备所进行的验证失败而检测到一个非授权设备。
为了发布一个设备,TTP将会执行以下步骤1.TTP为设备i随机选择γ→i∈A⊥]]>并且从具有m个元素p1,...,pm的集合中随机选择pi,其中优选的是从具有m′个元素的选定子集中选择pi。
2.TTP从 中产生一个矩阵Γi并且构成矩阵TΓi=T+Γi.]]>3.TTP从TΓi中构造二变量多项式P(x,y)并且计算可以表示为 单变量多项式P(pi,y)的系数。
4.TTP将数值pi、r·qi以及矢量 分发给设备i。
如图5所示,在接收了其各自的信息之后,各方P和V现在交换他们的数值pi和ri·r·qi,并且如下产生他们各自的秘密S1和S2Si=Qqt(rirjrqj)PptΓt(pj)=rirjrqj<qiTΓtp→iV,p→jV>]]>
如果S1=S2,那么各方已经产生了一个共有秘密。在这里,各方既可以隐性推断出另一方也知道这个秘密,也可以显性检验另一方是否知道同一秘密。在下文中的“秘密检验”中对此进行了论述。
可更新性对一个与系统100相似的系统而言,其任何一种验证或共有密钥生成方案中的重要方面都在于可更新性。TTP可能希望定期更换设备101~105中安装的秘密,以便阻止那些已经能对原始秘密进行非授权访问的对手。
通过利用先前各章节中说明的特性,可以使用图5中描述的各实施例而将可更新性引入系统100。一开始,TTP仅仅使用元素p1,......,pm′来发布设备,其中m′<m≤n,这样一来,p→iV⊗p→jV]]>将会跨越空间A’,其中i,j∈{1,...,m′}。然而矩阵TΓ=T+Γ却使用了从γ→∈A⊥]]>中导出的各Γ。如果我们借助 来表示设备i中保存的多项式,则所述设备将会包含一对 现在我们假设对手能够以例如暴力开启设备之类的某种方式获取m′个元素pi以及某个设备多项式 对手现在可以产生一个新矢量γ→′∈A′⊥]]>并且发布那些包含了((TΓ+Γ′)p→iV,pi)]]>的设备。这些设备会与所有包含了数值p1,...,pm′之一的兼容设备合作对手的设备从一个兼容的设备中接收pj∈{p1,...,pm′}并且求值P(pi,pj)=<t→+γ→i+γ→′,p→iV⊗p→jV>=<t→,p→iV⊗p→jV>]]>并且第二方求值P(pj,pi)=<t→+γ→i,p→jV⊗p→iV>=<t→,p→jV⊗p→iV>=<t→,p→iV⊗p→jV>]]>这表明这两个求值是相同的。
如果TTP注意到这类设备是由一个对手发布的,那么TTP可以开始使用pm′+1,...,pm”来发布设备,其中m′<m″≤m,由此 的张量积将会跨越一个空间A″。应该注意的是,A″⊥A′⊥。因此,如果对手选择了γ→′∈A″⊥,]]>那么这些新设备会与对手的设备合作。如果在A′中随机地选择 那么它处于A″⊥中的概率将会很小。
由此为系统提供了一定的可更新性由TTP发布的新的兼容的设备与对手的设备合作的概率不高。可以更新系统的最大次数是m-1<n,其中n是多项式P的次数。这种情况会在当每次更新添加pi∈{p1,...,pm}中的一个数值的时候出现。
秘密检验在各方各自独立产生秘密之后,所述协议的下一个步骤是检验另一方是否了解该秘密。如果其中一方可以向另一方证实他知道所述秘密,则所述此方对另一方是经验证的。此外,另一方同样可以向第一方验证其自身,从而实现相互验证。
在检验出证明者知道所述秘密之后,检验者然后可以使用秘密S1向证明者安全地传送某些信息。例如,在这里可以使用S1来加密那些访问加密内容所需要的加密密钥。而结果则可以被传送到证明者,证明者转而使用S2(如成功验证所证实的那样,所述S2与S1相同)来恢复加密密钥,然后则解密并访问所述加密内容。
目前存在若干种方法来检验某一方是否知道如上产生的秘密。其中有两个优选实施例是以零知识协议和基于提交的协议为基础的。
基于零知识的检验首先将要论述的是基于零知识(ZK)协议的检验。在1996年由CRCPress出版的由A.Menezes、P.Van Oorschot和S.Van Stone编著的“应用密码学手册(Handbook of Applied Cryptography)”第405~416页中论述了ZK协议。由于Guillou-Quisquater(GQ)零知识协议在存储器要求和通信方面非常有效,因此在一个优选实施例中使用了这个协议。此外也可以从本申请的同一受让人的US 5,140,634(代理人文档号PHQ87030)中可以了解到GQ协议。
如参考图4和5所述,P和V双方都对其多项式进行了求值并且由此分别获得了数值S1和S2。其中任何一方现在都必须以ZK方式向另一方证实他知道Si。由于GQ协议是以公钥密码密码学为基础的,因此我们需要一个复合数m=pq(这个复合数是两个素数p和q的乘积)与一个数字e>1,以使得gcd(e,(p-1)(q-1))=1。
P将向V证实他知道S2emod m的e次方根。在图6中对GQ协议进行了描述,其中数值e和m是公开的。所述协议则依照下列步骤继续进行
1.V计算v=S2e,]]>2.P选择一个随机数r∈{2,...,m-1}并且将re发送到V,3.V选择一个随机挑战口令c∈{1,...,e-1}并且将c发送到P,4.P使用y=rS1c]]>来做出应答,5.V计算ye,当且仅当ye=(rS1c)emodm=revcmodm=re(S2e)cmod]]>m=(rS2c)emod]]>m的时候,由于这意味着S1=S2,因此V可以推断出P知道与V相同的秘密。
由于协议的ZK特性,因此V和窃听者都不知道关于P的秘密S的任何信息。一旦V接受P,那么P和V的角色将会互换,并且V会向P显示他知道S1e的e次方根与m的模。由此P和V进行了相互验证。
协议的设置与文献中找到的内容略有不同通常所发布的是V=S2e,]]>并且如果P预期一个挑战口令c*,那么他可以发送zev-c*作为第一消息并且在不了解S2的情况下仍旧为V所接受。选择正确挑战口令的概率是e-1。在当前的设置中没有必要发布v=S2e,]]>这就使得P不能从所预期的挑战口令中计算出v-c*,而这就将不当接受的概率降至m-1。因此,在这里可以将e选择为低至2,从而有效地将GQ变换成Fiat-Shamir协议,只是在一个循环中有一个差错概率m-1。这意味着与例如RSA相比,设备只需要执行指数较小的模指数运算。
为了使之更为有效,可以设想一种使用了蒙哥马利表示的实施方式(参见P.L.Montgomery在1985年4月发表于Mathematics ofComputation第44卷第170号第519~521页的“无需试除的模乘法(Modular multiplication without trial division)”)。
基于提交的检验作为ZK协议的一种替换方案,可以使用基于提交的协议来允许一方检验另一方是否知道秘密。这种方法的优点是可以使用对称密钥密码加密,其中所述密码加密可以得到非常有效的实施。
与先前情况相反,P和V双方同时起到检验者和证明者的作用,由此使得协议在通信方面非常有效。如前所述,P计算S1并且V计算S2。所述协议(参见图7)则经历以下步骤1.V选择一个长度与对称密码的块长度相匹配的随机数r。
2.V使用一个对称密码来加密r(其中S2充当一个密钥),以及将编密码ES2(r)发送到P,
3.P使用S1来解密消息。结果是r′=DS1(ES2(r)).]]>4.P选择一个随机数R并且将一个关于r′的提交发送到V。如下所述,所述提交是作为一个函数commit(R,r′)获取的。
5.V将r发送到P,P则检查是否r′=r,如果没有出现这种情况,则停止与V的进一步通信。
6。P将r′和R发送到V。V打开该提交并且检查是否r′=r,如果检查不被满足,则停止与P的进一步通信。
commit函数应该实现提交的绑定(binding)和隐藏特性。绑定指的是P改变提交中的值r′的能力。对P来说,要想找到值R′以使得commit(R,r′)=commit(R′,r)是非常困难或不可能的。隐藏特性指的是V在接收到commit(R,r′)之后获取关于r′的信息的能力。在实践中通常将密码散列函数或单向函数用作commit函数。
在这个设置中也可以将用于加密r的对称密码用作commit函数。由于V不能在不了解随机选定的R的情况下得到关于r′的信息,而与V的计算能力的大小无关,因此可以很平常地满足所述隐藏特性。因此,所述提交是无条件隐藏的。绑定特性则是从如下事实中得出的,其中对一个对称密码来说,目前已经知道Ek(x)=z是一个K的单向函数(其中x和z都是已知的)在给出了ER(r′)和r的情况下,并不知道如何在少于255个操作中找到一个使得ER′(r)=ER(r′)的R′值。因此,所述提交是通过计算绑定的。
接下来我们考虑的是协议的完整性和健全性。完整性指的是双方都正确执行协议以及S1=S2的情况。由此借助检查以及对称密码的对称特性得出,当S1=S2时,它们将会发现r=r′。
健全性指的是在P不知道S1或V不知道S2时相互接受的情况。要想被不正当地接受,P可以将任何值z作为一个提交发送到V。在从V接收了r之后,P必须找出一个值R′,以使得commit(R′,r)=ER(r)=z。如上所述,EK(X)=z在给出了x和z的情况下是K中的单向函数,这使得找到R′成为一个非常困难的问题。
同样,如果V不知道S2,那么他可以针对P而选择任何一个值z,其中P将会用ER(DS2(z))来做出应答。为了被接受,V必须获取DS2(Z),但是因为随机值R而使得所述提交是无条件隐藏的,因此所述获取是非常困难的。如果S1正好是一个脆弱的DES加密密钥,那么倘若V通过选择z而使得DS1(z)=z,则V将被接受。对一个脆弱的密钥来说,存在232个这类固定点,而被P不正当地接受的概率是232/264=2-32。
本发明的某些优点在那些执行依照本发明的方法的设备中,所述方法极大节约了必要的能量(功率),此外与基于RSA的验证相比,该方法极大地节省了处理时间。
通常,功耗取决于实施方式的架构。例如,通过改变架构,可以在时钟速度和功率消耗之间的折衷。而第二个重要因素则在于所使用的技术与较早的技术相比,通常,最小形体尺寸较小且电源电压较低的现代技术所需要的功率更少。
下表根据n(多项式次数)、k(一个值的比特长度)、l(GQ模数的比特长度)和h(RSA模数的比特长度)而给出了对于协议不同部分的必要工作的估算。所估算的工作是按照单精度乘法(sp-mults),也就是在两个k比特数的乘法环境中进行的两个比特的乘法,来表述的。
下表显示的是在可用功率为0.5mW的盘内芯片应用中使用本发明的时候估算得到的对于n、k、l和h的n个值的以焦耳为单位的各子协议需要的能量以及处理时间量。
应该注意的是,上述值基于的是对每个sp-mult所需能量的估计。实际能量则取决于设计过程中的选定架构、布局、最优化目标(例如功率或速度)等等。然而,上表中的数据洞察了不同协议所需要的能量比率。在最后一列中可以看到,即使对那些次数为2048和64比特值的多项式来说,与RSA相比,新协议的效率要高出30到100倍。
在CID最多具有0.5mW的可用功率的特例中,我们导出RSA协议需要大约1秒的时间,而基于对称多项式的协议最多只需要52ms的时间。
应该注意的是,上述实施例是对本发明进行说明而不是对其加以限制,在不脱离所附权利要求书范围的情况下,本领域技术人员能够设计出多种替换实施例。虽然上文在内容保护和数字权利管理方面阐述了验证方法,但是毫无疑问,本发明并不局限于这一方面。
本发明可以视为是用于在任何一对组件和/或设备之间的接口上进行验证的通用构件块,在低功耗非常重要的时候更是如此。这样,举例来说,本发明还可以应用于CD2、机顶盒、无线智能卡、有线或无线网络等等。当个人检验者需要使用两个相应的互连设备来验证一个个人证明者的时候也可以使用本发明。
很明显,在上文中使用了术语“随机数”或“任选数字”,这其中包含了在无论是否具有来自真正随机事件的种子值(seed value)的情况下通过使用以硬件和/或软件方式实现的伪随机数发生器而选择的数字。本发明的安全性极大依赖于伪随机数发生器的质量。
在权利要求书中,任何置于括号中的参考符号不应视为是对权利要求进行限制。单词“包含”并不排除在权利要求所列举的元件或步骤之外还存在着其他元件或步骤。元件之前的单词“一个”并不排除存在多个此类元件。此外,本发明既可以借助于包含若干不同元件的硬件来实施,也可以借助于一个经过适当编程的计算机来实施。
在列举了若干种装置的设备权利要求中,其中有几种装置可以通过同一个硬件项来实现。在互不相同的从属权利要求中阐述了某些措施,然而这一事实并不表示不能有效使用这些措施的组合。
权利要求
1.一种在第一方与第二方之间产生一个共有秘密的方法,其中第一方持有一个数值p1和一个由数值p1固定的第一自变量的对称多项式P(x,y),并且第一方执行以下步骤将数值p1发送到第二方,从第二方那里接受数值p2,通过用p2对多项式P(p1,y)进行求值来计算共有秘密S1,其特征在于第一方额外持有一个数值q1以及一个由数值q1固定的第一自变量的对称多项式Q(x,z),并且所述第一方还执行以下步骤将q1发送到第二方,从第二方那里接收一个数值q2,以及依照S1=Q(q1,q2)·P(p1,p2)来计算秘密S1。
2.权利要求1的方法,其中第一方还执行以下步骤获取一个随机数r1,计算r1·q1,将r1·q1发送到第二方,从第二方那里接收r2·q2,以及依照S1=Q(q1,r1·r2·q2)·P(p1,p2)来计算秘密S1。
3.权利要求2的方法,其中第一方持有与一个任选数值r相乘的数值q1,并且还持有乘积Q(q1,z)P(p1,y)而不是各单独的多项式P(p1,y)和Q(q1,z),并且第一方还执行以下步骤计算r1·r·q1,将r1·r·q1发送到第二方,从第二方那里接收r2·r·q2,以及依照S1=Q(q1,r1·r2·r·q2)P(p1,p2)来计算秘密S1。
4.权利要求1的方法,其中第二方持有一个数值p2、一个数值q2、由数值p2固定的第一自变量的对称多项式P(x,y)、由数值q2固定的第一自变量的对称多项式Q(x,z),并且第二方将会执行以下步骤将q2发送到第一方,从第一方那里接收q1,以及依照S2=Q(q2,q1)·P(p2,p1)来计算秘密S2,由此,如果秘密S2等于秘密S1,则生成了共有秘密。
5.权利要求1的方法,其中受信任的第三方执行以下步骤选择一个对称的(n+1)×(n+1)矩阵T,通过使用来自矩阵T的各矩阵项作为多项式P的相应系数来构造多项式P,构造多项式Q(x,y),选择数值p1、数值p2、数值q1和数值q2,将数值p1、数值q1、由数值p1固定的第一自变量的多项式P(x,y)以及由数值q1固定的第一自变量的多项式Q(x,z)发送到第一方,以及将数值p2、数值q2、由数值p2固定的第一自变量的多项式P(x,y)以及由数值q2固定的第一自变量的多项式Q(x,z)发送到第二方。
6.权利要求5的方法,其中受信任的第三方还任选一个数值r,并且将替代数值q1的数值r·q1以及替代备单独的多项式P(p1,y)和Q(q1,z)的乘积Q(q1,z)P(p1,y)发送到第一方,以及将替代数值q2的数值r·q2以及替代各单独的多项式P(p2,y)和Q(q2,z)的乘积Q(q2,z)P(p2,y)发送到第二方。
7.权利要求5的方法,其中受信任的第三方还执行以下步骤选择一个包含了m个数值p1的集合,其中包含了数值p1和p2,根据那些从数值pi的集合中构造的范得蒙矢量 的张量积 来计算空间A,从空间A的正交空间A⊥中选择矢量 和矢量 从矢量 中构造矩阵TΓ1=T+Γ1]]>并且从矢量 中构造矩阵TΓ2=T+Γ2,]]>使用来自矩阵TΓ1的矩阵项构造一个多项式PΓ1(x,y),并且将由数值p1固定的第一自变量的多项式PΓ1(x,y)发送到第一方,以及使用来自矩阵TΓ2的矩阵项构造一个多项式PΓ2(x,y),并且将由数值p2固定的第一自变量的多项式PΓ2(x,y)发送到第二方。
8.权利要求5的方法,其中将数量为m′的数值pi分发给附加各方,其中m′<m。
9.权利要求1的方法,其中在将所生成的秘密S1和S2用作进一步通信之中的秘密密钥之前,第一方和第二方分别对其使用一个非线性函数。
10.权利要求9的方法,其中将一个单向散列函数应用于所生成的秘密S1和S2。
11.权利要求9的方法,其中将多项式形式的非线性函数应用于所产生的秘密S1和S2。
12.权利要求1的方法,还包括检验第二方是否知道秘密S1的步骤。
13.权利要求12的方法,其中第一方随后应用一个零知识协议来检验第二方是否知道秘密S1。
14.权利要求12的方法,其中第一方随后应用一个基于提交的协议来检验第二方是否知道秘密S1。
15.权利要求14的方法,其中第二方使用一个对称密码来加密一个随机挑战口令,并且将这个经过加密的随机挑战口令发送到第一方,第一方随后使用与提交函数相同的对称密码以保证对经过加密的随机挑战口令进行解密。
16.一种系统(100),其中包含了第一方(P)、第二方(V)以及受信任的第三方(TTP),所述系统被安排成执行上述任何一条权利要求的方法。
17.一种设备(P),该设备被安排成在权利要求16的系统中充当第一方和/或第二方。
18.权利要求17的设备,其中包含存储装置(303),用于以多项式P和多项式Q的相应系数的形式来储存多项式P和多项式Q。
19.一种计算机程序产品,用于使一个或多个处理器执行上述权利要求1~15中任何一条权利要求的方法。
全文摘要
一种在第一方和第二方之间产生一个共有秘密的方法,其中所述各方优选是依照数字权利管理(DRM)框架运作的家用网络(100)中的设备(101~105)。这些设备使用由受信任的第三方先前发布的参数以及从另一方获取的参数来对两个多项式P(x,y)和Q(x,y)的乘积进行求值,由此计算出所述共有秘密。优选地,各方随后使用零知识协议或是基于提交的协议来检验另一方是否产生了相同的秘密。所述方法尤其适合那些功率很低的设备,例如盘内芯片类设备。
文档编号H04L9/32GK1643840SQ03805912
公开日2005年7月20日 申请日期2003年2月14日 优先权日2002年3月13日
发明者P·T·图尔斯, T·A·M·科维纳亚, G·J·施里詹, M·E·范蒂克 申请人:皇家飞利浦电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1