使用可重置防篡改硬件令牌进行有效安全函数估计的方法

文档序号:6349347阅读:240来源:国知局
专利名称:使用可重置防篡改硬件令牌进行有效安全函数估计的方法
技术领域
本发明涉及一种执行加密的原不经意传输(Oblivious Transfer),即向另一方传输由一方保有的至少一个保密串/值,以便另一方可以确定使用私有信息,而不能获悉自己的全部私有信息。其用途的一个实例是在安全函数估计(SFE)中,对寻求计算其私有输入的各方提供私密性的函数估计方法。更具体地,本发明描述了一种方法,通过其构成一方的两个保密值(密钥)中的一个对于由另一方进行的计算是可访问的,该计算用于解密与在各方之间传输信息关联的加密参数中,但是其中另一方不能获悉该两个密钥中的另一个。
背景技术
已经公开了 SFE 实现,例如参见 D. Malkhi, N. Nisan, B. Pinkas 和 Y. Sella 的 "Fairplay-A Secure Two-party Computation System”(USENIX 2004)。双方通用的安全函数估计(SFE)允许双方基于其各自输入χ和y估计任意函数,同时维持χ和y两者的私密性。SFE算法支持之前由于参与方的相互不信任而不能发生的各种电子交易。实例包括拍卖、签署合同、分布式数据库挖掘等。由于计算和通信资源的增加,SFE成为现实。!Airplay是具有恶意参与方的通用双方SFE的实现。其证明了对于许多有用函数的 SFE的可行性,其表示为大约上百万门的电路。SFE协议实现的另一实例是“Y LindelUB Pinkas、N. Smart、的‘Implementing Two-party Computation Efficiently with Security Against Malicious Adversaries' (SCN 2008)”。由 Yehuda Lindell 禾口 Benny Pinkas 的"A Proof of Yao's Protocol for Secure Two-Party Computation" (Cryptology ePrint Archive,Report 2004/175,2004,http:// eprint. iacr. org/)描述了用于SFE的加密电路(GC)技术的使用,其特别适用于布尔电路。 在GC技术中的一个步骤是向接收方不经意传输(OT)发送方的两个密钥中的一个。该密钥传输步骤通常通过公用密钥加密技术来实现,并且计算方面强度较大。

发明内容
本发明的一个目的在于提供一种用于基于由接收方使用发送方的两个密钥中的一个安全传输信息到接收方的方法,其中所述一个密钥由接收方设备可访问用于计算,但是所述接收方不能获悉全部私密信息,以及所述发送方没有获悉私密信息的哪部分被传输。这最小化了典型需要来执行这样的传输的计算付出。其特别适用于(但不专用于)传输SFE技术中的在解密加密电路表参数中使用的信息。在本发明一个实施例中,由第一方生成的防篡改令牌T用于第二方的操作。该实施例没有依赖于第二方(第二方可潜在地是恶意的)的无能,以重置令牌到初始状态。本发明的实施例提供了一种用于传输私密信息的计算机实施的方法。通过第一用户的计算模块(例如由第二用户给第一用户的可重置防篡改令牌)基于第一和第二参数(第一参数指定两个密钥中的一个;第二参数是由第一用户随机选择的SPRFG的域中的值)计算来自强伪随机函数生成器(SPRFG)的输出。阻止第一用户读取或知晓存储的两个密钥。将输出发送给生成第一和第二加密的值的第二用户的计算机,第一和第二加密的值每个分别基于使用第一和第二密钥的逆SPRFG的计算,以及是第二用户的私密值。加密的值发送给第一用户的第一计算机,其基于第二参数和响应于第一和第二密钥中的一个的第一和第二加密的值中的一个、使用数学计算来计算私密值。另外的实施例包括一般而言适于实施上述需求的计算设备。


根据说明书、权利要求和附图,本发明的示例性实现的特征将变得显而易见,其中图1是根据本发明适用于由一方实施的方法的示例性计算设备的框图;图2是根据本发明由可移除卡实施的实例性方法的流程图;图3是其中根据本发明的方法双方通信的示例性计算系统的框图;图4是根据本发明由图3的发送方计算设备实施的示例性方法的流程图;图5是根据本发明由图3的接收方计算设备实施的示例性方法的流程图。
具体实施例方式本发明的一个方面在于识别在接收方的处理(包括发送方的密钥)中使用可移除的防篡改卡,其可用于用于处理例如SFE值的值的方法,基于密钥可以提供数据传输操作的可接受的安全性,同时显著增加计算有效性。在图1中,根据本发明计算设备10适用于实施FSE方法,包括微处理器12,其基于存储的程序指令执行处理和任务。其由只读存储器(ROM) 14、随机访问存储器(RAM) 16和非易失性数据存储装置18支持。本领域技术人员可理解,ROM中存储的程序和数据典型地由微处理器12来使用以初始化和自举计算设备。应用程序,例如控制FSE的实施的程序(包括存储和解密加密表的值)可存储在非易失性存储部件18中。将应用程序的至少激活部分典型地存储在RAM 16中以方便存取和由微处理器处理。各种用户输入端20例如键盘、 键板、鼠标可使用来输入指令,例如FSE输入和可操作控制。诸如显示屏和/或打印机的用户输出设备22提供视频输出,例如表示由用户输入的信息或与FSE的中间的或最终输出关联的信息的字符。输入/输出(I/O)模块M提供允许微处理器12与外部节点(例如,在接收方使用设备10的FSE交换中的发送方的设备)发送以及接收数据的通信接口。根据本发明,卡槽沈适于接收和与可移除卡30通信,通过输入/输出模块27连接到微处理器 12。在该示例性实施中,可移除卡30包括耦合到ROM 34、RAM 36和I/O模块38并由其支持的微处理器32。卡30包括与I/O模块38关联的多个针脚40,该模块设计来在卡30 处于设备10中的其插入的位置时咬合与卡槽沈关联的相应的接触。由设备10和卡30中的软件根据本发明示例性的方法实施的步骤执行FSE值的解密。如下所说明的,设备10和卡30协同来执行这些步骤。在一个实施例中,由访问令牌的一方(即卡,其存储但是不泄露连接到该方的计算机的另一方的密钥)的计算机实施该方法。可使用强的伪随机函数生成(SPRFG)来基于包含在令牌中的密钥从一方向另一方传输信息,该令牌是可重置的(即易受可能的恶意第二方的攻击,该第二方旨在重置该卡到其初始状态)。正如在此使用的,“SPRFG”指允许有效地计算该函数的逆的伪随机函数生成(或生成器),即从y = PRFGk(X)和k可以有效计算 PRFG-1Jy) = χ。图2示出了与卡30的操作相关的示例性步骤。在步骤50,发送方的两个密钥kQ 和&由发送方来选择,输入到卡(可重置防篡改令牌)中,之后将该卡送给接收方。在步骤52,在卡中和限制该卡的操作(即接口)的应用一起来实施SPRRi函数以响应于函数呼叫eVal(i,d) = PRFGk i (d)仅生成输出,即从该卡仅可访问eVal(i,d)呼叫的计算的输出。 该卡设计来响应于每个函数呼叫eval (i,d)仅计算和生成单个输出,其中eval是估计的函数呼叫,i是整数0或一(1),作为将要使用的、指定两个密钥中的一个的eval函数的参数, 以及d是通过接收器输入的值。在接收到每个具有关联的参数的函数呼叫时,卡30计算并输出表示SPRFGkw (d)的合成值。在步骤M,通过卡根据如上所述的步骤50和52来配置,其连接到接收方的计算机。与eval函数呼叫关联的输入参数i和d通过接收方来录入,其中d是来自SPRFG的域的随机值而i如上所述。在步骤56,卡30响应于接收到函数呼叫请求,以及通过接收方的关联参数的输入,计算表示SPRFGk(i(j))(dj)的值Vj = eval (ij,(Ij),以及向接收方的计算机输出该值。图3是在其中根据本发明的方法双方通信的示例性计算系统的框图。接收方的设备70 (即具有卡30的计算机10)与发送方的设备72 (即也是具有卡30的计算机10)通信。 如上所述,接收方的计算机、通过其计算机10的函数呼叫由卡30来处理,以及计算机10从其卡30接收响应的输出ν。该输出ν通过如示例性路径74所示传输至发送方设备72。在接收到值ν时,发送方设备72计算值%和ei,将在下面参考图4更详细说明,以及向接收方设备70通过如示例性路径76所示发送这些值。这些值用来由接收方设备70解密加密的值,如图5进一步说明。图4是由图3的发送方的计算设备72实施的示例性方法的流程图。在步骤80,发送方设备72接收来自接收方设备70的值ν。在步骤82,发送方设备72如下计算值%和
ei e0 = SPRFG^1ko (ν) XOR S0θι = SPRFG^1kl (ν) XOR S1其中SPRFG—、(ν)和SPRFG4kl (ν)分别是ν的基于密钥1 和Ii1的PRFG函数的逆, 该密钥已经由发送方定义,因此对发送方是已知的;XOR代表异OR函数;以及S0和S1是对于发送方已知的密钥值,在值%和ei的加密公式中仅仅其中一个希望发送给接收方。在步骤84,发送方设备72发送值%和ei给接收方设备70,其使用这些值来解密来自接收的值 ei的希望的值Si。图5是图3的接收方的计算设备实施的示例性方法的流程图。在步骤90,接收方设备70的计算机10进行其卡30的函数呼叫,并向与接收方设备的计算机10连接的卡30 发送和…输入作为关联的参数。在这个实例中,“j”表示与关联于由相应的解密值的接收方最终确定的值的特定集合关联的值。执行的函数呼叫eval (、,…)的合成值\由卡计算。在步骤92,值Vj从卡通过将其发送至发送方设备72的接收方的计算机10接收。在步骤94,接收方设备70从发送方设备72接收基于值Vj生成的值%和ei。在步骤96,接收方设备70计算输入、的解密的值Si,其中解密的值如下来计算Si = d XOR ej其中,d是由来自SPRFG的域的接收方选择的随机变量;XOR是异OR函数;以及是来自发送方的接收的值。由于发送方仅提供有处于SPRFG的域的单个值V,并且能够由i = 0或i = 1来生成,接收机的私密性针对发送方得到了维持。由于接收方不能获得值ν以便接收方在两个密钥SPRFG4ktl and SPRFG4kl下知晓其前象,发送方的私密性针对接收方得到维持。这是因为接收方没有办法来知晓其本身的密钥的值1 和Ic1,以及卡确保接收方仅能够在“前”向上估计SPRFG函数,即卡没有允许接收方访问以执行逆SPRFG计算。本发明实施例的特征是令牌T在计算ν之后没有保持其状态,因此重置T将不帮助恶意接收方,因此提供了改进的安全性。这与现有的方案相反,现有的方案依赖于执行本功能的安全执行计数器。清楚地,重置现有技术的卡重置了其计数器并使现有的方案的安全假定无效。该方法特别适用于(但不专用于)使用在SFE,其允许各方在各个输入下估计函数而同时维持输入的私密性。加密电路(GC)方法是布尔电路的SFE的有效的方法。现有技术的GC的计算方面强度较大的步骤是由发送方持有的两个密钥中的一个到接收方的不经意传输。尽管本发明的示例性实施在此详细示出和描述,对于本领域技术人员而言,可以进行各种修改、增加、替换等而不偏离本发明的精神是显而易见的。尽管可移除卡30在上述实施例中已经示出,以允许使用两个密钥值中的一个来执行计算而同时禁止密钥值的本身被用户可读(公开给用户),支持需要的功能的其他结构或设备可以代替可移除卡30。例如,存储器模块可以存储密钥并通过关联的硬件、固件和/或软件来使用,其允许密钥仅对于另外的设备/模块访问,该设备/模块使用该密钥进行期望的计算同时禁止直接访问该密钥,即阻止存储的密钥值可直接访问以及公开给用户的传统的存储器读操作。可选地,具有USB端口接口的计算模块可使用来存储密钥,支持基于接收的值的SPRFG操作,以及禁止由USB端口连接的关联的计算机直接读访问存储的密钥。本发明的范围由下面的权利要求限定。
权利要求
1.一种用于传输私密信息的计算机实施的方法,包括以下步骤在第一用户的第一计算机的第一计算模块处接收请求以通过与所述请求关联的第一和第二参数计算基于强的伪随机函数生成(SPRFG)的函数,其中所述第二参数是由第一用户在SPRFG的域中选择的值;通过所述SPRFG函数的第一计算模块基于第一和第二参数计算输出,其中所述第一参数指定存储在用于计算SPRFG函数的所述计算模块中的两个密钥中的一个,所述第一计算模块阻止所述第一用户读取或知晓存储的两个密钥;将所述输出发送给第二用户的第二计算机;从所述第二计算机接收第一和第二加密的值,其每个分别基于使用所述第一和第二密钥值的逆SPRFG计算,以及所述第二用户的第一和第二私密值,所述密钥值对于第二用户是已知的;基于第一和第二加密的值中的一个和所述第二参数、通过耦合于所述计算模块的第一计算机使用数学计算来计算所述第一和第二私密值中的一个。
2.如权利要求1所述的方法,其中基于数学计算来计算所述一个私密值包括对第二参数以及第一和第二加密值中的一个进行异或操作,以及其中所述第一计算模块阻止包括第一计算模块仅响应由所述第一用户的请求来使用第一和第二参数计算基于强伪随机函数生成(SPRRi)的函数,以及仅提供由所述第一用户访问的输出。
3.如权利要求1所述的方法,其中所述第一和第二加密的值包括分别用于一个密钥和另一个密钥的输出的逆SPRFG计算,以及通过响应的第一和第二私密值对逆SPRFG计算中的每个进行异或操作。
4.一种用于传输私密信息的计算机实施的方法,包括以下步骤在第二计算机处接收由第一计算机计算的输出,通过第一计算机的所述输出是基于第一和第二参数的基于强伪随机函数生成(SPRRi)的函数,其中所述第一参数指定存储在所述第一计算机中的第一和第二密钥中的一个,以及第二参数是在SPRFG的域中的由第一计算机的第一用户选择的值;通过第二计算机计算第一和第二加密的值,其基于分别使用输出和第一和第二密钥的逆SPRRi计算以及还分别基于第二用户的第一和第二私密值,该第一和第二密钥值对于第二计算机的第二用户是已知的;从第二计算机向第一计算机发送第一和第二加密的值,该第一计算机适于根据所述第一和第二加密的值中的一个解密所述私密值。
5.如权利要求4所述的方法,其中所述第一和第二加密的值包括分别用于第一和第二密钥值的输出的逆SPRFG计算的相应结果,以及通过所述第一和第二私密值分别对所述结果进行异或操作,以及其中所述第一计算模块适于阻止第一用户读取或知晓第一和第二密钥值,其中第一计算模块仅响应于第一用户通过第一和第二参数计算基于SPRFG的函数的请求,以及从第一计算模块仅提供第一用户访问的输出。
6.如权利要求4所述的方法,其中所述输出由第一计算机的第一计算模块计算,所述输出是基于第一和第二参数的SPRFG函数,其中所述第一参数指定存储在用于计算SPRFG 函数的所述计算模块中的所述第一和第二密钥中的一个,所述第一计算模块阻止第一用户读取或知晓存储的两个密钥,所述第二参数是由第一用户选择的SPRFG的域中的值。
7.一种用于传输私密信息的设备,包括第一计算机的第一计算模块,用于接收第一用户的请求来通过与所述请求关联的第一和第二参数计算基于强伪随机函数生成(SPRFG)的函数,其中所述第二参数是由所述第一用户选择的SPRFG的域中的值;第一计算模块基于第一和第二参数计算所述SPRFG函数的输出,其中所述第一参数指定存储在用于计算SPRFG函数的计算模块中的两个密钥中的一个,所述第一计算模块阻止第一用户读取或知晓存储的两个密钥;用于将所述输出传输至第二用户的第二计算机的装置;第一计算机,用于接收来自第二计算机的第一和第二加密的值,其每个分别基于使用第一和第二密钥值的逆SPRFG计算,以及分别基于第二用户的第一和第二私密值,所述密钥对于第二用户已知;第一计算机基于第一和第二参数和第一和第二加密的值中的一个、使用数学计算来计算输出值,其是第二用户的私密值。
8.如权利要求7所述的设备,其中基于数学计算来计算输出值包括对第二参数和第一和第二加密的值中的一个进行异或操作,以及其中所述第一极端模块仅响应于通过第一用户的请求以通过第一和第二参数计算基于强伪随机函数生成(SPRFG)的函数,以及提供仅由第一用户访问的输出。
9.如权利要求7所述的设备,其中所述第一和第二加密的值包括分别用于一个密钥和另一个密钥的输出的逆SPRFG计算,以及通过所述第一和第二私密值分别对所述逆SPRFG 计算中的每个进行异或操作。
10.如权利要求7所述的设备,其中第一计算模块包括微计算模块,其可移除地连接至第一计算机,以及其中所述微计算模块阻止读取存储在其上的信息,除了所述微计算模块支持从所述微计算模块发送至第一计算机的输出的传输。
全文摘要
本发明的实施例提供一种用于从一个用户向另外的用户传输(基本称为不经意传输)私密信息的计算机实施的方法。通过第一用户的计算模块基于第一和第二参数(第一参数指定两个密钥中的一个;第二参数是由第一用户选择的SPRFG的域中的值)计算从强伪随机函数生成(SPRFG)的输出。阻止第一用户读取或知晓存储的两个密钥。将输出发送给生成第一和第二加密的值的第二用户的计算机,第一和第二加密的值每个分别基于使用第一和第二密钥的逆SPRFG的计算,以及是第二用户的相应的私密值。加密的值发送给第一用户的第一计算机,其基于第二参数和响应于第一和第二密钥中的一个的第一和第二加密的值中的一个、使用数学计算来计算私密值中的一个。
文档编号G06F21/00GK102449632SQ201080023467
公开日2012年5月9日 申请日期2010年5月25日 优先权日2009年5月29日
发明者V·柯勒斯尼科夫 申请人:阿尔卡特朗讯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1