专利名称:安全的数据交换规约用的保安传送数据的方法
技术领域:
本发明涉及安全的数据交换规约(protocol)用的一种保安传送数据的方法。
本发明尤其有利于用在物理的和逻辑的接入(access)控制系统中,例如用于计算机网络或可见到的某些收费核对系统诸如有条件接入电视(收费电视,编码电视等)的解码器中。当然,本发明决不受限于这些应用,此地提出这些应用只是作为可能使用本发明的技术领域的例子。
保安传送数据项的原理是对第一方说,将一预定的数据项提交给另一方但不是明文地传送该数据项。在以后的阶段,该第一方将明文数据项揭示给第二方,此时第二方才可能检验该明文数据项实际上就是以前为保安而加密传送的数据项。
必须注意,此处和下文中的词语“方”既指无形或有形的人们,也指在一特定规约的或更一般地说在一给定事务处理的框架内完全自动地相互交换数据的电子或计算机系统。
同样,形成事务处理主题的数据项将被称作“保安传送的数据项(pledgeddataitem)”;最初持有保安传送数据项的一方(上述的“第一方)”将被称作“借方”,准备给予保安传送数据的一方(上述的“第二方”)将被称作“贷方”。
这样的一种保安传送规约包含若干约束条件-首先,在适当的时机之前,例如在共同进行的工作结束之前或者在双方安全的保密数据交换结束之前,保安传送的数据项必须对贷方(以及对各第三方)保密;-借方应该不能违约(renege)或作弊(cheat)例如向贷方透露最初已经保安传送了的数据项之外的一其他数据项,这个约束是不可缺少的。
一些这样的保安传送的方法已经被提出过了。这些方法通常使用诸如CBC模式下的DES那样的密码散列函数。能够在下列书刊中找到这些函数的说明及其具体实现的例子B.Preneel等人合著的“密码使用安全的散列函数综述”(“Cryptographically Secure Hash Functionsan Overview”;R.C.Merkle所著的“单向散列函数与DES”(One-Way Hash Functions andDES”LNCS,435,Springer Verlag(1990)pp.428-446)或G.J.Simmons所著的“当代密码学”(Contemporary Cryptology,IEEE Press,Chap.6DigitalSignature)。
这些函数的缺点之一归因于它们需要大量存贮器资源和很强的计算能力。如果希望与诸如智能卡微控制器和微型电路那样的有限尺寸的配置一起实现这种方法,该缺点可能令人望而却步。
为了排除这个困难,本发明提出一种保安传送数据的方法,此方法使用少得多的存贮器和计算资源,使它有利地能由简易的智能卡中的微型电路或微控制器来实现。
此方法属于前述的已知类型,即包括-“保安传送(pledging)”步骤,在该步骤中借方,即保安传送数据项的持有者,用这样的方式与贷方交换信息,即发送给贷方一数据项,该数据项是所述保安传送数据项的象,它以一对一但是非可逆的方式代表所述保安传送数据项。
-“结业(commencement)”步骤,在该步骤中借方以这样的方式与贷方交换信息,即发送给贷方明文的保安传送数据项,或以使贷方能读出该明文的保安传送数据项的方式与贷方交换信息,在该步骤中贷方还能检验此保安传送的数据项与上述保安传送步骤中的保安传送数据项的一致性。
根据本发明,上述方法的特征在于-在保安传送步骤中,借方-产生一加到伪随机产生器上的种子(seed)使得产生一伪随机字,-以一对一和可逆方式将此伪随机字与所保安传送的数据项组合,使得产生一核对字(checkword),以及-将此核对字发送给贷方;-在结业步骤中,借方将种子连同明文保安传送的数据项一起发送给贷方,并且-一旦收到种子和保安传送的数据项,贷方就-将种子加到与借方相同的一伪随机产生器使之产生另一伪随机字,-以与借方相同的一对一和可逆方式将此另外的伪随机字与核对字组合,使得产生一核对数据项,以及-检验该核对数据项与从借方收到的明文保安传送数据项的一致性。
在一优选实施例中,由借贷方各自产生的伪随机产生器所产生的伪随机字和另外的字都是与保安传送数据项长度相同的字,并且所述的一对一和可逆的组合操作是‘异或’操作。
在阅读本发明一实施例的下述详细说明中,将了解本发明的其他特点和优点。
单一的附图
是为实现本发明方法而进行的种种操作和数据交换的示意图。
假定第一方A(借方)必须将一数据d提交给第二方B(贷方),该数据项必须暂时保密,例如直到共同进行的工作结束或者双方间的事务完成。
该规约主要以两个步骤进行-“保安传送”借方A拥有他希望向贷方B保安传送的数据项d,他与贷方交换信息使得在本步骤结束时贷方B持有一信息项(在下文中将称作m),该信息项以一一对应方式代表d,但又使贷方不能由信息项本身读出数据项d(用概率词语来表达,这相当于说B必须不能以优于1/n的概率由m推知d,其中n是一安全参数的值。);-“结业”借方A将数据项d明文地揭示给贷方B,而B必须自己保证在本步骤发送给他的数据项确实与上一步骤中已经秘密地保安传送的数据项相同(用概率词语来表达,如果借方A企图作弊来揭示一与己保安传送值不同的值,则这种作弊必定能以至少为1-1/n的概率被发现)。
本发明的方法基本上基于一伪随机产生器即一函数的使用,对于任何称作“种子”的输入字,该函数产生一更长的字作为输出。此输出字以确定的方式产生,但它是伪随机的,即如果不知道种子虽然知道了该字的最初几位,实际上仍不可能发现下一位是什么,反之,根据输出字去发现种子至少是同等困难的。
换一种方式说,不借助计算能力与/或时间,该伪随机产生器必定难于逆推,而己知所面对的应用尤其是己知通常的事务处理时间,这种逆推所需的计算能力与/或时间是令人望而却步的。
一种如S.Wolfram在“使用细胞式自动机的密码求(Cryptography withCellwlan Automata)”一文中所描述的那样的“细胞式自动机”,特别地可用于实现本伪随机产生器,该文见于“密码学的进展”85密码学会议录,计算机科学讲演录,218(1986),第429至423页(Advances inCryptologyProc.Crypto85,Lecture Notes in ComputerScience,218(1986),pp.429-423)。
下面将描述这样一种细胞式自动机在本发明框架内的实现;然而,这样的一种实施例只是作为例子而给出,它并不具有限制的性质。
如图所示,在本方法中涉及的A方和B方拥有这样的一种称为PRG的伪随机产生器,两个产生器按照同一算法工作。
借方A另有一随机产生器G。A和B各方还配备有可能完成逐位‘异或’功能(以下用表示)的装置。
最后,贷方B拥有逐位比较装置C,从而能够确定作为输入而施加在其上的两字之间的等同性(该两字相符证明在事务处理进行期间不存在借方窜改数据。)过程运行如下如前所述,它以两个步骤即“保安传送”和“结业步骤”进行。
保安传送从在借方A一边获得由产生器G产生的随机字w开始。
该字w被作为种子加到伪随机产生器PRG,然后该伪随机产生器PRG按照其算法产生一伪随机串p=P(w),串的长度与需要在A方和B方之间保安传送的数据项d的长度相同。然后A计算m=pd,即在p和d之间执行‘异或’操作(p和d是两个长度相同的数据项),并将所得的数据项发送给贷方B。
必须注意,数据项m是数据项d一对一的加密代表,但是数据项d是被完全隐蔽的,因为不可能确定由伪随机产生器产生的串p它具有‘异或’组合又称“一次装填过程(one-time pad process)”的性质。换句话说,施加‘异或’操作的加密与伪随机产生器同等地安全,即,一外部观察者(B方或第三方)不能以比在不知伪随机产生器的种子w的情况下由m推知p的概率更好的概率来推知数据项d。
在字m已经保安传送给B之后,A方和B方就可以通过操作他们之间所需的事务处理,来继续所从事的规约,一起执行予定的工作等等。
一旦这个运行阶段结束,就可能进到结业步骤。
此时借方A向贷方公开以明文保安传送的数据项d,以及曾经在保安传送步骤开始时用作对此数据项加密的种子w。
然后B方用他自己的伪随机产生器计算一数据项p’=P(w)(在正常情况下,如果A向B确实发送了真种子,则p=p’)。
B方然后根据已经保安传送过来和被他记住的加密数据项m,通过一′异或′函数计算d’=mp′并且验明d′=d,这证明所有操作都正确这样,如果一切操作都正确,应当有d′=mp′=(pd)p=ppd=d。
读者可能注意到,与常规的散列函数相比,根据本发明的规约需要较大量的发送(因为它不但要求发送加密数据项m,还要求发送明文数据项d和种子w)。用常规散列函数,本来是以64或128位的值来进行保安传送的;而在目前的情况,如果数据项d的长度例如为10,000位,则需要至少发送10,000位;因此本发明特别适用于中等大小的数据项的情况(这实际上是最常见的情况)通常其长度小于1,000位。
另一方面,从所需的存贮器资源方面看,本发明的方法比常规散列函数特别有利;在常规散列函数情况下,本来需要集结一相应于待散列的块所需大小(通常为64或128位)的位数,并且在数据项更长的情况(从安全观点看,常常希望如此)下,必须在随机存取存贮器内至少保留新块和上一次散列操作的结果,即128至256位。与此相反,用本发明的方法,只需以块为单位发送这些位,希望块多小就可以多小,从而相应地减少了对存贮器资源的要求。在极端情况下,甚至可能逐位地发送数据,因此无须进行中间存贮。
至于规约的安全性,将证明它是极好的,事实上它只取决于所选伪随机产生器的质量和保安传送数据项的长度。
设x为伪随机产生器的种子的位长,y为数据项的位长。
从B的观点看,“识破(crack)”规约的唯一办法是得到关于种子的或关于由伪随机产生器输出的字的指示。然而,种子是随机产生的,并且在结业之前是保密的。因此B具有的唯一办法是系统地尝试所有可能的种子;如果他能做到这点,他就能通过检验如此产生的各数据项的有效性来找到可行的解答。
因此种子必须有合适的长度以避免进行穷举攻击(exhaustive attack),所以下限可以固定为264个可能的种子。
从A的观点看,舞弊的吸引力与可能找到有吸引力的适配(matches)有关。这意味着如果A有他希望冒充保安传送数据项d的一个假数据δ,他必须找到一ω使得dP(w)=δp(ω),这等于寻找P(ω)=dP(ω)δ,从而寻找对应于伪随机产生器的一已知输出的一个种子。然而由于伪随机产生器的固有特性,使这个问题很困难。
不过,应当注意到如果输出字的长度小于输入字的长度,对于一已知输出,适配的数目大于1,因而这样的适配有存在的充分机会。
另一个非常重要的评论是A在事务处理之前有充分的时间来准备他的舞弊和找到一有吸引力的适配,而B通常只有非常有限的时间(事务处理的时间)。
所以必须尽量减少A成功的机会。如此,可以说如果保存例如至少264个可能的种子,则在找到适配之前A可能要认真做约232尝试。因为这是容易做到的,所以它不够安全(由于birthdays paradox)。
然而,如果输出字的长度y大于种了长度x,能由产生器产生一已知字的概率仅仅是1/2y-x,即例如如果y=96,x=64,概率为1/232。这意味着,为找到由伪随机产生器产生的一个字,A必须尝试δ的232个不同值,因而总共大约要做232+32=264次(δ,ω)对的尝试,这在实际上是不可实现的。
因此可以采用下列最小尺度作为x和y的数量级-种子的长度x>60位;-保安传送数据项的长度Y>100位(虽然它可能带来引入冗余(introducing redundancy))。
实例让我们考察一基于细胞式自动机和由n个位置(sites)Si的循环寄存器组成的伪随机产生器,其中0<i≤n。该寄存器通过给每个位置Si加上状态函数的变化Si=Si+1(SiVSi-1)而演变。每次循环,产生器被展开(deployed),位置Si的值被“输出”。产生器的初始化在于给每个位置一数值。因此种子长度为n。必须注意,如果在输出端需要k位,就需要作2.n.k次基本操作。
权利要求
1.一种用于安全的数据交换规约的方法,它属于由下列步骤组成的类型“保安传送“步骤,在该步骤中一保安传送数据项(d)的持有者借方(A)以这样的方式与贷方(B)交换信息,即向贷方发送一数据项(m),所述数据项(m)是该保安传送数据项的象,前者以一对一但是非可逆的方式代表着后者,“结业”步骤,在该步骤中借方以这样的方式与贷方交换信息,即向贷方发送明文的保安传送数据项,或以使明文保安传送数据项得以读出的发送方式发送保安传送数据项,并且在该步骤中贷方可以验明此保安传送的数据项与所述保安传送步骤中的保安传送数据项的一致性,本方法特征在于在所述保安传送步骤中,借方产生一加到一伪随机产生器(PRG)上的种子(w)使之产生一伪随机字(p),以一对一和可逆方式将此伪随机字与所述保安传送数据项组合,使之产生一核对字(m),以及将所述核对字发送给贷方,在结业步骤中,借方将所述种子连同所述明文保安传送的数据项一起发送给贷方,并且一旦收到所述种子和所述保安传送的数据项,贷方就将所述种子加到与借方相同的一伪随机产生器(PRG)使之产生另一伪随机字(p’),以与借方相同的一对一和可逆方式将此另外的伪随机字与所述核对字组合,使之产生一核对数据项(d’),以及检验所述核对数据项与从借方收到的所述明文保安传送数据项的一致性。
2.按照权利要求1所述的保安传送数据的方法,其中由借、贷方各自的伪随机产生器产生的所述伪随机象和另外的字是与保安传送数据项长度(y)相同的字,以及所述一对一和可逆的组合操作是`异或'操作。
全文摘要
一种安全数据交换规约用的保安数据传送方法包括一“保安传送”和一“结业”步骤,在保安传送中,借方产生一加到伪随机产生器(PRG)上的种子(w)而产生一伪随机字(p),以一对一和可逆方式产生一核对字(m)发送给贷方;在结业步骤中,借方将种子和明文保安传送数据项发送给贷方。贷方将种子加到一伪随机产生器(PRG)产生另一伪随机字(p′),以与借方相同的方式产生一核对数据项(d′),并检验其与收到的保安传送数据项的一致性。
文档编号H04N7/167GK1150726SQ9611232
公开日1997年5月28日 申请日期1996年9月13日 优先权日1995年9月15日
发明者让-伯纳德·费希尔 申请人:汤姆森多媒体公司