强空间证明中有空间限制的连续不可延展代码制造技术

技术编号:28635843 阅读:36 留言:0更新日期:2021-05-28 16:33
描述了一种用于保护具有有限存储器的装置上的秘密同时仍然提供防篡改的系统、方法和设备。为了实现安全性,编码计算机可以将存储器依赖函数MHF应用于秘密S,并确定结果Y,然后确定针对所述结果Y的证明π。然后,所述编码计算机可以将包括所述秘密S和所述证明π的码字C发送到解码计算机。所述解码计算机可以从持久存储器检取所述码字C,并且解析所述秘密S和所述证明π。解码装置可以通过验证所述证明π是由所述秘密S和所述结果Y生成的而使用瞬态存储器对所述码字C进行解码。当验证所述结果Y的正确性时,所述解码装置可以使用所述秘密S将密码函数应用于输入数据,然后重置所述瞬态存储器。

【技术实现步骤摘要】
【国外来华专利技术】强空间证明中有空间限制的连续不可延展代码相关申请交叉引用本申请是2018年10月2日提交的第62/740,301号美国临时申请和2019年5月22日提交的第62/851,565号美国临时申请的非临时申请并要求所述美国临时申请的申请日的权益,所述美国临时申请以全文引用的方式并入本文中。
技术介绍
当秘密数据(例如用于加密的秘密密钥)存储在装置的“安全”存储器中时,攻击者仍然可以使用故障攻击对所述“安全”存储器进行篡改。在故障攻击中,存储器单元中的值被改变,并且使用秘密数据的安全函数的输出(例如,在包括安全存储器的安全元件中)可用于推导原始秘密数据。一旦攻击者知道秘密数据,她就可以使用所述秘密数据,例如通过对用秘密密钥加密的密文进行解密来破坏相关系统的安全性,所述密文是恢复的秘密数据的一部分。作为其它实例,攻击者可以使用某一认证协议中的秘密数据不当地访问资源。此类认证可能涉及使用不恰当获得的秘密数据的数字签名。当电话被盗或恶意软件被引入时,可能会发生这种攻击。作为硬件篡改和存储器泄漏的方法,故障攻击的整体有效性使得故障攻击成为访问存储在消费者装置上的私人数据的广泛使用的技术。例如,故障攻击可能对RSA或椭圆曲线迪菲-赫尔曼(ellipticcurveDiffie-Helman)技术有效,这些技术可以用于输送层安全(TLS)。正因如此,越来越多的研究人员尝试找到译码方案来保护数据免于存储器针对故障攻击和类似形式的硬件篡改的漏洞。这种攻击可以通过使用不可延展(non-malleable)代码来部分地解决,使得秘密数据通过用不可延展代码进行编码来存储。这种编码不需要密钥,并因此与加密不同。使用不可延展代码可以允许安全元件检测是否已完成篡改,或产生相同的输出。但是,不可延展代码要求在安全元件中使用解码函数。攻击者恶意软件可能包括解码函数或获得对解码函数之访问,并且包括编码函数。这种恶意软件可以使用篡改来恢复秘密数据。现有的保护技术未能解决这种恶意软件,并因此会留下开放漏洞。本文描述的实施例个别地且共同地解决了这些和其它问题。
技术实现思路
本专利技术的实施例包括一种用于保护具有有限存储器的装置上的秘密同时仍然提供防篡改的系统、方法和设备。具体地,实施例可以保护秘密免受有空间限制的连续篡改,其中篡改是由具有有限可用计算空间和存储器的小型攻击者重复进行的。为了实现安全性,编码计算机可以将存储器依赖函数(memory-hardfunction)MHF应用于要保护的秘密S,并且确定结果Y。然后,所述编码计算机可确定针对所述结果Y的证明π,以稍后证明结果Y是用秘密S计算的。证明π可以是空间的非交互式证明,具有证明-可提取性的额外特性。应用存储器依赖函数并且确定证明π可能占用大量空间(例如,约千兆字节或万亿字节)。然后,编码计算机可以将包括秘密S和证明π的码字C发送到解码计算机。然后,解码计算机可以将码字C存储在持久存储器中。当解码计算机想要使用秘密S时,例如,将密码函数应用于秘密S时,解码计算机可以检取码字C并解析秘密S和证明π。通过验证证明π是利用秘密S和结果Y生成的,解码装置可以使用瞬态存储器对码字C进行解码。解码可以用远少于编码的少量存储器来执行。当验证结果Y的正确性时,解码装置可以使用秘密S将密码函数应用于输入数据(例如,对消息进行数字签名)。如果结果Y的正确性,这可以向解码计算机指示码字C已经被篡改。然后解码计算机可以自毁以防止进一步的篡改尝试。在对码字C进行解码之后,解码计算机可以重置瞬态存储器以清除关于秘密S的信息。少量数据可以存留于持久存储器中的额外持久空间中。根据一个实施例,一种方法对解码计算机上的秘密进行解码。码字C可以存储在解码计算机的持久存储器中。码字C包括证明值π和秘密S,并且使用c个字节的存储器。持久存储器包括P个字节的存储器。证明值π是使用秘密S和结果Y来确定的,结果Y是通过将存储器依赖函数MHF应用于秘密S或秘密S的函数而获得的。将存储器依赖函数MHF应用于秘密S需要至少N个字节的存储器。不止一个证明值可以与秘密S组合以提供有效码字。解码计算机的P-c存储器形成额外持久空间。然后,所述方法包括接收输入数据,从持久存储器中检取码字C,并且解析码字C以标识证明值π和秘密S。可以使用解码计算机的瞬态存储器来执行码字C的解码。码字C的解码可以通过使用证明值π来进行,以验证使用秘密S从存储器依赖函数MHF获得的结果Y的正确性。解码函数可用以使用K个字节的存储器,并且K小于N。当正确性为真时,使用秘密S将密码函数应用于输入数据以获得输出数据。当正确性为假时,提供错误消息并且使解码计算机不可用以执行后续解码操作。然后刷新解码计算机的瞬态存储器。将解码的E个字节的存储器存留于额外持久空间。E小于N并且小于结果Y的大小。下文更详细地描述本专利技术的这些和其它实施例。例如,其它实施例涉及与本文所描述的方法相关联的系统、装置和计算机可读介质。关于本专利技术的实施例的另外细节可以参见本文中所描述的具体实施方式和图式。附图说明图1示出了将秘密sk存储在安全元件中的移动装置。图2示出了可以位于移动装置内部的被篡改的安全元件。图3A示出了如果是不可延展代码的正确属性。图3B示出了不可延展代码的不可延展属性。图4示出了根据实施例的不可延展代码用于保护存储在移动装置的安全元件中的秘密的用途。图5示出了根据实施例的在将秘密存储在安全元件中的情况下使用不可延展代码来执行密码函数的益处。图6示出了根据实施例的由于编码函数的证明-可提取性而不能够成功地对存储在装置中的编码的秘密执行攻击的攻击者的实例。图7示出了根据实施例的图形标记的实例。图8示出了根据实施例的空间证明的示例构造。图9A示出了根据实施例的装置。图9B示出了根据实施例的装置的存储器。图10是示出根据实施例的用于对秘密进行编码的方法的流程图。图11是示出根据实施例的用于对秘密进行解码的方法的流程图。图12示出了根据实施例的预配装置的框图。图13示出了根据实施例的移动装置的框图。图14示出了可与根据实施例的系统和方法一起使用的示例计算机系统的框图。术语“不可延展代码”可以指一种译码方案,其中对已经(例如,由篡改对手)改变的码字进行解码产生原始(未改变)消息或无法用于推断知识的完全无关值。“有空间限制”、“有存储器限制”或“存储器依赖函数”(MHF)可描述完成任务所需的时间主要由所需的可用存储器量确定的函数或任务。例如,对于有空间限制的计算问题,特定计算过程的效率可能受可读取数据和将数据存储到存储器中的速率(即存储器带宽)的影响最大,而不是受处理器的时钟速度的影响最大。存储器依赖函数需要执行某一数量的存储位。严格的存储器依赖散列函数是存储器依赖函数的实例。存储器依赖函数需要时间T和空间S来进行普通计算,但如果可用空间量小于S,则时间量会大大增加。“可验证计算”可以指在不执行计算本身的情况下有效地检查计算正确性的程序。本文档来自技高网
...

【技术保护点】
1.一种用于解码秘密的方法,所述方法包括在解码计算机上执行以下操作:/n将包括证明值π和秘密S的码字C存储在所述解码计算机的持久存储器中,所述持久存储器包括P个字节的存储器,其中所述码字C使用c个字节,其中所述证明值π是使用所述秘密S和结果Y来确定的,所述结果Y是通过将存储器依赖函数MHF应用于所述秘密S或所述秘密S的函数而获得的,其中所述将所述存储器依赖函数MHF应用于所述秘密S需要至少N个字节的存储器,并且其中不止一个证明值能与秘密S组合以提供有效码字,并且其中P-c存储器形成额外持久空间;/n接收输入数据;/n从所述持久存储器检取所述码字C;/n解析所述码字C以标识所述证明值π和所述秘密S;/n使用所述解码计算机的瞬态存储器,通过以下方式执行所述码字C的解码:/n使用所述证明值π来验证使用所述秘密S从存储器依赖函数MHF获得的所述结果Y的正确性,其中所述解码函数能用以使用K个字节的存储器,K小于N;/n当所述正确性为真时,使用所述秘密S将密码函数应用于所述输入数据以获得输出数据;以及/n当所述正确性为假时,提供错误消息并且使所述解码计算机不能用以执行后续解码操作;/n刷新所述解码计算机的所述瞬态存储器;以及/n将解码的E个字节的存储器存留于所述额外持久空间,其中E小于N并且小于所述结果Y的大小。/n...

【技术特征摘要】
【国外来华专利技术】20181002 US 62/740,301;20190522 US 62/851,5651.一种用于解码秘密的方法,所述方法包括在解码计算机上执行以下操作:
将包括证明值π和秘密S的码字C存储在所述解码计算机的持久存储器中,所述持久存储器包括P个字节的存储器,其中所述码字C使用c个字节,其中所述证明值π是使用所述秘密S和结果Y来确定的,所述结果Y是通过将存储器依赖函数MHF应用于所述秘密S或所述秘密S的函数而获得的,其中所述将所述存储器依赖函数MHF应用于所述秘密S需要至少N个字节的存储器,并且其中不止一个证明值能与秘密S组合以提供有效码字,并且其中P-c存储器形成额外持久空间;
接收输入数据;
从所述持久存储器检取所述码字C;
解析所述码字C以标识所述证明值π和所述秘密S;
使用所述解码计算机的瞬态存储器,通过以下方式执行所述码字C的解码:
使用所述证明值π来验证使用所述秘密S从存储器依赖函数MHF获得的所述结果Y的正确性,其中所述解码函数能用以使用K个字节的存储器,K小于N;
当所述正确性为真时,使用所述秘密S将密码函数应用于所述输入数据以获得输出数据;以及
当所述正确性为假时,提供错误消息并且使所述解码计算机不能用以执行后续解码操作;
刷新所述解码计算机的所述瞬态存储器;以及
将解码的E个字节的存储器存留于所述额外持久空间,其中E小于N并且小于所述结果Y的大小。


2.根据权利要求1所述的方法,还包括在所述编码计算机上执行以下操作:
将存储器依赖函数MHF应用于秘密S或应用于所述秘密S的函数以获得结果Y,其中所述将所述存储器依赖函数MHF应用于所述秘密S需要所述编码计算机上至少N个字节的存储器;
使用证明函数,使用所述秘密S和所述结果Y确定证明值π;
根据所述证明值π和所述秘密S组合码字C;以及
将所述码字C发送到装置,所述装置被配置成将所述码字C存储在所述装置的持久存储器中并且稍后对所述码字C进行解码,其中所述证明值π被配置成由所述装置的解码函数使用以验证使用所述秘密S从存储器依赖函数MHF获得的所述结果Y的正确性,其中所述解码函数能用以使用K个字节的存储器,K小于N。


3.根据权利要求1所述的方法,其中E比所述证明值π小100倍。


4.根据权利要求1所述的方法,其中所述证明值π的大小小于P。


5.根据权利要求1所述的方法,其中所述存储器依赖函数MHF是应用于包括多个节点的图形的图形标记函数,所述结果是图形标记的散列,并且所述证明值π包括所述图形标记的子集。


6.根据权利要求5所述的方法,其中验证所述结果Y的所述正确性还包括:
从所述图形中随机选择多个节点;
使用所述多个节点计算所述图形的部分标记;并且
将所述图形的所述部分标记与所述证明值π进行比较。


7.根据权利要求5所述的方法,其中所述图形是包括多个质询节点的质询依赖图形,其中确定所述多个质询节点的图形标记需要至少N个字节的存储器,并且其中确定所述多个质询节点的图形标记以指数时间发生。


8.权利要求7所述的方法,其中所述证明值π是用整个结果Y确定的。


9.权利要求1所述的方法,其中所述证明值π至少为100MB。


10.根据权利要求1所述的方法,其中所述码字C存储在安全存储器中,并且其中安全元件执行所述码字C的...

【专利技术属性】
技术研发人员:P·穆克赫吉B·陈Y·陈
申请(专利权)人:维萨国际服务协会
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1