用于对数据进行解密的设备和方法

文档序号:7993604阅读:411来源:国知局
用于对数据进行解密的设备和方法
【专利摘要】提出一种用于对数据进行解密的设备(1),所述设备具有多个通过至少一个防护装置(2)防护的器件(3-5)。受防护的器件(3-5)包括用于接收借助于同态加密函数(f)加密的计算数据(B)的接收器件(3)和用于在使用分配给同态加密函数(f)的私人密钥(k1)的情况下通过对加密的计算数据实施同态加密函数(f)的逆(I)来对加密的计算数据(B)进行解密的解密器件(4)。由此,从可用的标准组件中成本低地实现具有高安全性的安全的计算环境。此外,提出一种用于对数据进行解密的方法以及一种计算机程序产品。
【专利说明】用于对数据进行解密的设备和方法
【技术领域】
[0001]本发明涉及通过以密码方式和/或以物理方式受防护的设备对数据解密。
【背景技术】
[0002]在理论密码学中,密码方法的安全性通常借助于输入特性和输出特性被评估。在此,攻击者或黑客仅仅看到经密码处理的数据的输入和/或输出并且于是在知道所使用的方法情况下推断出所使用的密码密钥。
[0003]尤其是密码方法的计算步骤在受保护的环境中运行,其中攻击者不访问该受保护的环境。实际上,这样的受防护的计算环境可以利用安全令牌、例如利用芯片卡或加密狗(Dongle)模仿。安全令牌具有硬件和软件方式的各种各样的保护措施,所述保护措施能够实现一方面用作用于秘密数据、例如密钥资料的机密的和防操纵的存储器并且另一方面直接在令牌的受保护的环境中实施目标系统的待保护应用的部分。然而,所有实际上常用的安全令牌在数据和程序存储器的存储器大小以及可供使用的计算容量的效率和性能方面强烈地受限制。从而经常仅实施安全令牌中的密码核心功能。应用或程序的大部分于是在不具有保护等级或具有明显较小保护等级的计算机系统上运行。
[0004]也存在以下方案,所述方案能够在物理上保护更有效率的计算机系统。然而,用于这些措施的耗费和附加成本在与可实现的保护等级和所规划的应用有关的技术实施方面是高的,使得这样的方法仅被用于具有军事安全性的应用。
[0005]如果需要秘密信息的密码算法必须在允许攻击者跟踪算法运行的系统上实施,则需要其他保护机制,以便被保护免于特定类别的攻击。如果对于攻击者而言例如可以在计算过程期间测量计算环境的物理特性、例如运行时间、动态电流消耗或电磁辐射,则用于防御所谓侧信道攻击的措施是重要的。
[0006]如果用于密码方法的计算环境由计算机系统组成,所述计算机系统不提供物理保护,则攻击者具有关于所实施的计算步骤和所处理的数据的完全监控。在该情况下,该算法必须如此被实施,使得即使攻击者可以将算法的实施领会至最后的细节,对于该攻击者而言不可能理解该算法或者提取经处理的秘密。算法的这种实施被称为混淆的。
[0007]用于提供安全的计算环境的方法的范围从纯软件解决方案直至特别制造的硬件或软件和硬件的组合。在此,为了实现安全的计算环境采用至少一个防护装置,所述防护装置提供物理和/或密码保护。
[0008]如果无通过计算机系统的硬件实现的其他保护功能可用,或者该计算机系统出于成本原因是不希望的,则采用纯软件解决方案。应该在该计算机系统上实施的程序可以通过适当的代码变换、即所谓的代码混淆被改变为使得使通过攻击者进行的逆向工程变得困难或者最好防止通过攻击者进行的逆向工程。特定的技术、即所谓白盒子密码术可以在软件中被使用用于保护秘密密钥资料。与具有硬件保护措施的技术相比,可实现的安全等级低并且代码的变换通常与显著的性能损失和明显较大的程序和存储空间需求相关联。
[0009]在具有硬件支持的解决方案情况下,在大多应用情况下为了提供安全的计算机系统采用安全令牌。这样的安全令牌包含硬件方式的特定保护机制,例如用于温度、运行电压、借助于激光闪光的攻击的传感器、加密的总线和存储器、噪音发生器、随机等待状态发生器、用于保护免受借助于针的探测的屏蔽、特定的芯片设计风格等。安全令牌是由RAM、非易失性存储器(通常为闪存或EEPROM)、CPU和IO接口(UART、SP1、USB等)组成的简单的计算机系统,并且提供抵抗攻击的比较高的安全等级。经常,安全令牌包含用于高效地计算密码方法的附加硬件(DES加速器、AES加速器、长数计算器)。安全令牌的效率通常在存储器大小、CPU速度和接口的数据吞吐量方面非常受限制,使得应用的仅与安全性相关的小的部分能够在令牌内被实施。
[0010]可替换地,也专门针对安全性应用制造的单芯片控制器在市场上可用,所述单芯片控制器例如可以被采用在嵌入式应用中。这些计算机系统通常比安全令牌稍微效率高些,但是产品的设计显著昂贵。
[0011]也可能的是,通过用于设计外壳的特定措施保护整个设备。这样的措施的范围从用于识别外壳、特殊外壳、钻孔保护薄膜、特定电路板的断开的简单开关伸展至诸如浇注或密封的制造技术。这些设备可以拥有有源传感器设备,用于识别操纵尝试并且可以对此作出反应并且为此需要借助于电池的无中断供电。在这样的设备内可以使用由标准组件组成的效率高的计算机系统。但是这样的设备的对应的开发和制造耗费高,使得这样的保护措施通常仅在军事应用情况下发生。附加地,用于定期更换电池的有组织的措施是需要的,以便能够确保设备的可用性。
[0012]同态加密函数直至几年前是仅仅在理论密码学中所讨论的概念,其应该使得能够单独通过对加密数据的计算操作实现用于在未受保护的计算机系统上的程序的安全的计算环境。
[0013]在2009年,Craig Gentry在其博士论文中首次在确定的密码复杂性假设下描述了一种用于实现同态加密函数的方法,该加密函数具有所有用于执行任意计算所需要的特性(参见[I])。所描述的技术在此期间此外还由Shai Halevi和Nigel Smart进一步开发,并且其性能得以改善(参见[2]至[4])。

【发明内容】

[0014]因此本发明的任务是由可用的标准组件成本低地实现具有高安全性的安全的计算环境。
[0015]因此,提出一种用于对数据进行解密的设备,该设备包括多个通过至少一个防护装置防护的器件,受防护的器件具有至少一个接收器件和解密器件。接收器件被设立用于接收借助于同态加密函数加密的计算数据。解密器件被设立用于在使用分配给同态加密函数的私人密钥的情况下通过对加密的计算数据实施同态加密函数的逆来对加密的计算数据进行解密。
[0016]防护装置用于实现安全的计算环境。在此,防护装置尤其是提供物理和/或密码保护。防护装置可以被制造为纯软件解决方案、特定制造的硬件或软件和硬件的组合。在此,防护装置尤其是保护免于侧信道攻击。
[0017]借助于同态加密函数加密的计算数据可以是借助于同态加密函数变换的程序的计算的结果。[0018]通过使用同态加密函数用于计算加密的计算数据,可以在未受保护的计算机系统上实现计算。
[0019]加密的计算数据由装置(例如由标准组件组成的未受保护的计算机)计算。在此,未受保护的计算机将借助于同态加密函数变换的程序应用于输入数据以用于提供加密的计算数据。加密的计算数据于是借助于同态加密函数被加密。有利地,通过同态加密函数的特性可以在未受保护的计算机上或由标准组件组成的计算机系统上执行程序的计算密集部分。从而,该程序的实施的该计算密集部分不必在具有用于解密所设立的安全计算环境的解密设备上实施。程序或应用的安全性通过同态加密函数的密码特性来保证并且不需要通过计算机系统的特定硬件保护措施。尤其是不存在通过存储器大小或程序大小或解密设备的CPU的效率引起的对于解密设备、例如安全令牌常见的性能限制。所变换的程序以加密的方式执行所有计算。加密的计算数据被转交给解密设备并且在此由解密设备的接收装置接收。在受保护的解密设备上执行最后的解密,因为未受保护的装置(这里例如未受保护的计算机系统)不提供用于保护同态加密函数的秘密密钥的足够的措施,所述秘密密钥被需要用于解密。
[0020]本解决方案是成本非常低的,因为对于安全的计算环境(这里是解密设备)仅需要比用于应用变换的程序的装置更少的资源,尤其是计算能力和存储容量。在此,经变换的程序的应用的计算密集的任务通过未受防护的或很少受防护的装置执行,该装置装备有较大的资源,但是具有较少的成本密集的安全性措施。与此相应地解密设备具有较高的安全等级,但是对于剩余的解密步骤需要比用于应用经变换的程序的装置明显少的资源。
[0021]这样的同态加密函数能够以加密的方式对适当的数学结构的当前值进行加、减和乘,以便计算的结果再次以加密的方式存在。在计算时,在任何时刻均不以未加密的方式对于攻击者是可接入地存在中间结果或关于经逻辑连接的值的其他信息并且这些计算步骤的执行也不需要知道秘密密钥资料。也就是说,可以在未受防护的计算机系统上执行计算,而不危及或公开经处理的数据。
[0022]借助于数学运算加法、减法和乘法可以以安全和秘密的方式计算经加密的值的多项式函数。通过多项式函数于是又可以描述计算机系统的任意计算。如果计算的结果最终作为加密的值存在,则仅拥有同态加密函数的私人密钥的合法接收方能够对所计算的值进行解密。
[0023]在一种实施方式中,借助于至少一个防护装置防护的器件包括存储器件。存储器件被设立用于存储用于计算同态加密函数的逆的程序并且将同态加密函数的逆的所存储的程序提供给解密器件。存储器件例如是闪存或RAM存储器。
[0024]在另一实施方式中,存储器件此外被设立用于存储分配给同态加密函数的私人密钥并且将所存储的私人密钥提供给解密器件。
[0025]在另一实施方式中,解密器件被固定布线地构造。例如解密器件被构造为集成电路(IC或者ASIC)或者被构造为现场可编程门阵列(FPGA)。
[0026]在另一实施方式中,所述设备是安全令牌、USB令牌、智能卡、受保护的服务器或受保护的计算机。
[0027]此外,提出一种系统,该系统具有包括用于将借助于同态加密函数变换的程序应用于输入数据来提供加密的计算数据的应用器件和用于传输加密的计算数据的传输器件的装置,以及具有用于对所传输的加密的计算数据进行解密的如上所阐述的设备。
[0028]在系统的一种实施方式中,该装置是未受保护的计算机或未受保护的服务器。
[0029]在另一实施方式中,该装置的传输器件和该设备的接收器件被设立用于实施预定的、用于传输加密的计算数据的接口协议。
[0030]通过预定的接口协议,加密的计算数据有针对性地和以预定的方式从该装置被传输给解密设备。
[0031]在另一实施方式中,该装置被装备有资源,用于在预定的持续时间内完全执行所变换的程序,在所述预定持续时间中该设备不能完全执行所变换的程序。
[0032]资源在此尤其是包括CPU的所提供的计算能力以及存储器的存储容量或装置的存储器。
[0033]在另一实施方式中,该装置具有保护器件,所述保护器件被设立用于保护所变换的程序免于操纵。该保护器件可以保证所变换的程序的无操纵式实施。
[0034]在另一实施方式中,该保护器件被设立用于尤其是借助于可能核对证明(PCP)来创建关于通过应用器件对所变换的程序的正确实施的证明(参见[5]至[7])。
[0035]在该实施方式中,在实施同态加密的计算的效率高的装置上的程序的保护范围可以如下来扩展,即保护程序免于操纵。为此,在效率高的、但是另外方面未受保护的装置上(例如未受保护的计算机系统)上的程序可以尤其是被扩展为使得在应用程序时同时创建关于计算的正确执行的证明。为此,尤其是采用可能核对证明(PCP)。PCP证据具有如下特性,即所述PCP证据可以非常高效地被检验。关于在所述装置上的正确实施的计算的证明的检验于是又可以在解密设备中进行。优选地只有当关于计算的证明被接受为有效的时,解密设备才将对同态加密的计算数据进行解密。
[0036]相应的器件、例如接收器件、解密器件或保护器件可以以硬件技术或也以软件技术来实现。在以硬件技术实现时,相应的器件可以被构造为设备或设备的一部分,例如被构造为计算机或构造为微处理器或构造为IC、ASIC或FPGA。在以软件技术实现时,相应的器件可以被构造为计算机程序产品、被构造为函数、被构造为例程、被构造为程序代码的一部分或被构造为可实施对象。
[0037]此外,提出一种用于借助于通过至少一个安全装置防护的设备对数据进行解密的方法,所述方法具有以下步骤:
-接收借助于同态加密函数加密的计算数据,和
-在使用分配给同态加密函数的私人密钥的情况下通过对加密的计算数据实施同态加密函数的逆来对加密的计算数据进行解密。
[0038]此外,提出一种计算机程序产品,所述计算机程序产品在程序控制的装置上促使执行如上所阐述的用于借助于通过至少一个安全装置防护的设备对数据进行解密的方法。程序控制的装置尤其是解密设备,诸如安全令牌。
[0039]诸如计算机程序装置的计算机程序产品例如可以作为存储介质、诸如存储卡、USB棒、⑶-R0M、DVD或也以从网络中的服务器可下载的文件的形式来提供或供给。这例如可以在无线通信网络中通过传输具有计算机程序产品或计算机程序装置的对应的文件来进行。
[0040]本发明的上述特性、特征和优点以及如何实现本发明的方式方法结合对实施例的以下描述变得更清楚地和更明显地被理解,所述实施例结合附图更详细地予以阐述。【专利附图】

【附图说明】
[0041]在此:
图1示出解密设备的第一实施例的框图;
图2示出解密设备的第二实施例的框图;
图3示出具有计算装置和解密设备的系统的第一实施例的框图;
图4示出具有计算装置和解密设备的系统的第二实施例的框图;
图5示出具有计算装置和解密设备的系统的第三实施例的框图;
图6示出用于对数据进行解密的方法的第一实施例的流程图;和 图7示出用于对数据进行解密的方法的第二实施例的流程图。
【具体实施方式】
[0042]只要没有另外说明,在图中相同的或功能相同的元件配备有相同的附图标记。
[0043]在图1中示出以密码方式和/或以物理方式受保护的解密设备I的第一实施例的框图。
[0044]解密设备I例如是安全令牌、USB令牌、智能卡、受保护的服务器或受保护的计算机。
[0045]设备I的器件3、4通过至少一个防护装置2被保护免于操纵、窥视和/或黑客攻击。
[0046]解码设备I具有接收器件3和解密器件4。接收器件3适用于接收加密的计算数据B,所述计算数据B借助于同态加密函数f加密。
[0047]借助于同态加密函数f加密的计算数据B可以是借助于同态加密函数f变换的程序P的计算的结果。
[0048]换句话说,在使用同态加密函数f的情况下可以将程序S变换成经变换的程序P。通过经变换的程序P计算的计算数据B被加密,而且通过同态加密函数f加密。
[0049]解密器件4适用于在使用分配给同态加密函数f的私人密钥kl的情况下通过对加密的计算数据B实施同态加密函数f的逆I来对所接收的加密的计算数据B进行解密。
[0050]总之,给同态加密函数f分配由私人密钥kl和公共密钥k2组成的密钥对。公共密钥k2例如被采用用于变换程序S (对此参见图5)。解密器件4在输出侧作为明文输出经解密的计算数据K。经解密的计算数据K例如可以在显示设备(未示出)上被显示或者被用于另外的程序或应用。
[0051]替换于此,解密器件4也可以固定布线地构造。
[0052]图2示出解密设备I的第二实施例的框图。图2的解密设备I基于图1的解密设备I并且具有图1的全部特征。此外,图2的解密设备I具有存储器件5,所述存储器件被设立用于存储用于计算同态加密函数f的逆I的程序并且将所述程序提供给解密器件4。此外,存储器件5存储分配给同态加密函数f的私人密钥kl并且将该私人密钥提供给解密器件4。
[0053]在图3中示出具有计算装置7和解密设备I的系统的第一实施例的框图。例如,计算装置7是未受保护的计算机系统,而解密设备I是以密码方式和/或以物理方式受保护的安全令牌。
[0054]计算装置7具有应用器件8,所述应用器件被设立用于将经变换的程序P应用于输入数据A以提供加密的计算数据B。应用器件8将所计算的计算数据B提供给计算装置7的传输器件9。该传输器件9被设立用于将加密的计算数据B提供给解密设备I。装置7的传输器件9和设备I的接收器件3被设立用于实施预定的、用于传输加密的计算数据B的接口协议。
[0055]解密设备I对应于图2的设备I。因此,接收器件8接收所传输的加密的计算数据B并且将所述计算数据B提供给解密器件4。
[0056]计算装置7与解密设备I不同地适用于在预定的持续时间内完全实施经变换的程序P。计算装置7具有比解密设备I明显更高的计算能力以及明显更高的存储容量。因此,在系统6中,计算装置7的计算能力被用于应用经变换的程序P,而在安全性方面使用解密设备I。
[0057]在图4中示出具有计算装置7和解密设备I的系统6的第二实施例的框图。图4的第二实施例基于图3的第一实施例并且具有图3的第一实施例的全部特征。此外,图4的计算装置7具有保护器件10。保护器件10被设立用于保护经变换的程序P免于操纵。在此,保护器件10尤其是可以创建关于通过应用器件8对经变换的程序P的正确实施的证明。在此情况下优选采用可能核对证明(PCP)。
[0058]图5示出具有计算装置7和解密设备I的系统6的第三实施例的框图。图5的第三实施例基于图4的第二实施例并且具有图4的第二实施例的全部特征。此外,图5的系统6具有变换器件11。变换器件11被设立用于将用于计算计算数据的程序S变换成经变换的程序P,所述经变换的程序P由应用器件8使用。对于该变换,变换器件11在使用公共密钥k2的情况下使用同态加密函数f。
[0059]图6示出用于借助于受防护的设备I对数据进行解密的方法的第一实施例的流程图,所述设备I也可以称为解密设备I。解密设备I例如根据图1或2构造。
[0060]在步骤601中,由解密设备I接收加密的计算数据B。加密的计算数据B通过同态加密函数f加密。
[0061]在步骤602中,在使用分配给同态加密函数f的私人密钥kl的情况下通过对加密的计算数据B实施同态加密函数f的逆I来对加密的计算数据B进行解密。
[0062]在图7中示出用于通过受防护的解密设备I对数据进行解密的方法的第二实施例的流程图。
[0063]在步骤701中,用于计算计算数据的程序S借助于同态加密函数f在使用分配给同态加密函数f的公共密钥k2的情况下被变换成经变换的程序P。
[0064]在步骤702中,将经变换的程序P应用于输入数据A以提供加密的计算数据B。
[0065]在步骤703中,将加密的计算数据B传输给解密设备I。
[0066]在步骤704中,借助于解密设备I对加密的计算数据B进行解密。为此,在使用分配给同态加密函数f的私人密钥kl的情况下将同态加密函数f的逆I应用于加密的计算函数B。经解密的计算数据B于是作为解密的计算数据K以明文存在。
[0067]即使本发明详细地通过优选实施例更详细地得以图解和描述,则本发明不通过公开的例子受到限制并且可以由专业人员从中导出其它变型方案,而不偏离本发明的保护范围。
[0068]文献目录:
【权利要求】
1.用于对数据进行解密的设备(1),具有: 多个通过至少一个防护装置(2)防护的器件(3-5),所述受防护的器件(3-5)包括接收器件(3)和解密器件(4), 其中所述接收器件(3)被设立用于接收借助于同态加密函数(f)加密的计算数据(B),和 其中所述解密器件(4)被设立用于在使用分配给同态加密函数(f)的私人密钥(kl)的情况下通过对加密的计算数据(B)实施同态加密函数(f)的逆(I)来对加密的计算数据(B)进行解密。
2.根据权利要求1所述的设备,其特征在于,借助于至少一个防护装置(2)防护的器件(3-5 )包括存储器件(5 ),所述存储器件被设立用于存储用于计算同态加密函数(f )的逆(I)的程序并且将该程序提供给解密器件(4)。
3.根据权利 要求2所述的设备,其特征在于,所述存储器件(5)被设立用于存储分配给同态加密函数(f)的私人密钥(kl)并且将所存储的私人密钥(kl)提供给解密器件(4)。
4.根据权利要求1所述的设备,其特征在于,所述解密器件(4)被固定布线地构造。
5.根据权利要求1至4之一所述的设备,其特征在于,所述设备(I)是安全令牌、USB令牌、智能卡、受保护的服务器或受保护的计算机。
6.系统(6),具有 装置(7),其具有用于将借助于同态加密函数(f)变换的程序(P)应用于输入数据(A)来提供加密的计算数据(B)的应用器件(8)和用于传输加密的计算数据(B)的传输器件(9),和 根据权利要求1至5之一所述的用于对所传输的加密的计算数据(B)进行解密的设备(I)。
7.根据权利要求6所述的系统,其特征在于,该装置(7)是未受保护的计算机或未受保护的服务器。
8.根据权利要求6或7所述的系统,其特征在于,该装置(7)的传输器件(9)和该设备(O的接收器件(3)被设立用于实施预定的、用于传输加密的计算数据(B)的接口协议。
9.根据权利要求6至8之一所述的系统,其特征在于,该装置(7)被装备有资源以用于在预定的持续时间内完全实施所变换的程序(P),在所述预定的持续时间中该设备(I)不能完全实施所变换的程序(P)。
10.根据权利要求6至9之一所述的系统,其特征在于,该装置(7)具有保护器件(10),所述保护器件被设立用于保护所变换的程序(P)免于操纵。
11.根据权利要求10所述的系统,其特征在于,该保护器件(10)被设立用于尤其是借助于可能核对证明(PCP)来创建关于通过应用器件(8)对所变换的程序(P)的正确执行的证明。
12.根据权利要求6至11之一所述的系统,其特征在于,设置变换器件(11),用于在使用分配给同态加密函数(f)的公共密钥(k2)的情况下借助于同态加密函数(f)将用于计算计算数据的程序(S)变换成经变换的程序(P)。
13.用于借助于通过至少一个安全装置(2)防护的设备(I)对数据进行解密的方法,具有如下方法步骤:接收(601)借助于同态加密函数(f)加密的计算数据(B),和 在使用分配给同态加密函数(f)的私人密钥(kl)的情况下通过对加密的计算数据(B)实施同态加密函数(f)的逆(I)来对加密的计算数据(B)进行解密(602)。
14.根据权利要求13所述的方法,其特征在于,在使用分配给同态加密函数(f)的公共密钥(k2)的情况下借助于同态加密函数(f)将用于计算计算数据的程序(S)变换成经变换的程序(P)。
15.计算机程序 产品,所述计算机程序产品在程序控制的装置上促使执行根据权利要求13或14所述的用于对数据进行解密的方法。
【文档编号】H04L9/00GK103988461SQ201280060258
【公开日】2014年8月13日 申请日期:2012年11月14日 优先权日:2011年12月6日
【发明者】B.迈尔, M.沙夫霍伊特勒 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1