用于分发数据和保护数据安全的系统和方法

文档序号:7553428阅读:150来源:国知局
专利名称:用于分发数据和保护数据安全的系统和方法
技术领域
本发明一般涉及用于防止数据被未经授权地访问或使用的系统。本发明还一般性地涉及用于秘密共享方案的构造的密码技术,更具体来说,涉及用于支持能够容许对一个或多个股份的损坏的秘密共享方案的系统和方法。
背景技术
在当今的社会,个人和企业在计算机系统上进行越来越多的活动。这些计算机系统,包括专有的和非专有的计算机网络,常常存储、存档和传输各种敏感信息。如此,有越来越强烈的确保存储的数据和通过这些系统传输的数据不能被读取或以别的方式破坏的需求。用于保护计算机系统安全的一种常见的解决方案是提供登录和密码功能。然而,密码管理被证明对于涉及密码问题的大多数帮助台呼叫十分昂贵。此外,密码提供的安全性很差,因为它们一般存储在文件中,这种文件容易被人通过,例如蛮力攻击进行不合适的访问。用于保护计算机系统安全的另一个解决方案是提供加密基础架构。加密,一般而言,是指通过将数据变换或加密为不能读的格式来保护数据。只有那些拥有加密密钥的人才能将数据解密为可使用的格式。密码术用于标识用户,例如鉴别以允许访问权限,例如授权以创建数字证书和签名等等。一个流行的密码系统是使用两个密钥的公钥系统,该公钥系统使用两个密钥,一个是对每个人都已知的公钥和一个是只对个人或企业主已知的私有密钥。一般而言,利用一个密钥加密的数据,利用另一个密钥进行解密,这两个密钥都不能从另一个密钥重新创建。令人遗憾的是,甚至前面的典型的公钥密码系统仍高度依赖于用户才能保证安全性。例如,密码系统,例如通过用户的浏览器,向用户颁发私有密钥。单纯的用户一般将私有密钥存储在硬盘驱动器中,其他人通过诸如,例如因特网之类的开放式计算机系统可以访问硬盘驱动器。另一方面,用户可能为包含他们的私有密钥的文件选择不好的名称,诸如,例如“key (密钥)”。前面的及其他操作的结果是使得密钥容易遭到破坏。除前面的危险之外,用户可能将他的或她的私有密钥保存在被配置了存档或备份系统的计算机系统上,潜在地导致私有密钥的副本在多个计算机存储设备或其他系统间穿行。这种违反安全性的现象常常被称为“密钥迁移”。类似于密钥迁移,许多应用程序至多通过简单登录和密码访问,提供对用户的私有密钥的访问。如前所述,登录和密码访问常常没有提供足够的安全性。用于提高前面的密码系统的安全性的一个解决方案是包括生物特征作为鉴别或授权过程的一部分。生物特征一般包括可测量的物理特征,诸如,例如可以通过诸如例如指纹模式或语音模式的模式匹配或识别之类的自动化系统来检查指纹或语音。在这样的系统中,用户的生物特征和/或密钥可以存储在移动计算设备上,诸如,例如智能卡、笔记本电脑、个人数字助理或移动电话,从而使生物特征或密钥可在移动环境中使用。前面的可移动生物特征密码系统仍存在各种缺点。例如,移动用户可能丢失或损坏智能卡或便携式计算设备,从而完全无法访问潜在重要的数据。或者,怀恶意的人可能窃取移动用户的智能卡或便携式计算设备,并使用它有效地窃取移动用户的数字凭证。另一方面,便携式计算设备可以连接到诸如因特网之类的开放系统,存储了生物特征的文件与密码一样,由于用户对安全性或怀恶意的入侵者的疏忽,可能容易受到破坏。防止数据被未经授权地访问或未经授权地使用的一种方式是使用秘密共享方案。秘密共享方案是将有时叫做秘密的敏感的数据片段(例如,机密文件、加密密钥或任何通信类型)拆分为片段(叫做股份)的集合的方法,以便通过拥有足够数量的股份可以恢复秘密,但是拥有的股份的数量不足则不会提供有关被分份的秘密的信息。这样的方案对于加密和信息安全性是重要的工具。形式上,秘密共享方案包括一对算法,共享算法Share和恢复算法Recover。共享算法通常是随机的(意思是说,它进行随机化的选择),而恢复算法通常是确定性的。共享算法可以用来将秘密拆分为股份的集合,而恢复算法可以用来重新组合那些股份。在重新组合时,每一个股份都可能存在,在这种情况下,可以向恢复算法提供字符串,或者一个股份可能会丢失,在这种情况下,可以向恢复算法提供指定值(这里被称为" ")。一组被授权恢复秘密的播放器叫做被授权组,该组所有这样的播放器有时叫做“存取结构”。秘密共享方案被设计为适用于各种存取结构,但是,最常见的存取结构是阈值存取结构,其中总共η个播放器中的m个或更多播放器的任何子集被说成是被授权。阈值存取结构的秘密共享方案有时叫做阈值方案。任何秘密共享方案都有两个安全属性:隐私属性和可恢复性属性。隐私属性确保了播放器的未经授权的联盟不了解有关秘密的任何有用的东西。可恢复性属性确保了播放器的授权联盟最终可以恢复基础的秘密。Shamir的秘密共享方案被说成是完美的秘密共享(PSS)方案。术语“完美的”是指隐私保证是信息理论层面的,没有任何错误;如此,播放器的未经授权的联盟不会了解有关PSS方案中的基础秘密的任何有用的东西。PSS方案存在的一个局限性是,每一个股份的大小必须至少是被分份的秘密的大小那么长。然而,当秘密包括比较大的文件或长字符串时,这种局限性会变得难处理,增大了系统的总体复杂性。为解决这种局限性,开发了计算秘密共享(CSS)的方案。Krawczyk的CSS方案,例如允许股份比秘密短。例如,在“三取二”阈值方案中(意思是说,三个股份中的任何两个都适用于恢复秘密),秘密S可以被分成大小大约为|S|/2比特的股份,其中Isl表示S的长度。在PSS设置中,这么短的股份是不可能的。然而,在CSS方案中,隐私属性可能不再是绝对的和信息理论层面的;相反地,播放器的未经授权的联盟可能从它们的股份中获取有关共享的秘密的少量信息。但是,根据计算复杂性假设,这些信息量将是可忽略的,因此,在实践中,不会是太大的问题。
PSS方案的第二个局限性是缺乏指令的健壮性。健壮性是指让有嫌疑的或对手参与者无法强制恢复不正确的秘密。PSS的模式假设,每一个股份要么“正确”要么“丢失”,但是从来不会是错误的(例如,损坏或者被故意改变)。在实践中,这是非常不合理的假设,因为股份可能会由于任意数量的因素而成为错误的,包括,例如存储器中的错误,通信信道中的噪声,或者由于确实是对手的活动。此外,缺乏健壮性不只是理论上的可能性,而是典型的PSS方案,包括Shamir的秘密共享方案的真正的问题。对于Shamir的方案,对手事实上可以通过相应地只改变一个股份,强制恢复任何期望的秘密。秘密共享方案的实际应用通常要求健壮性。

发明内容
基于前面的内容,需要同时具有效率和在弱密码假设的前提下强大可证明的安全属性的健壮计算秘密共享方案。相应地,本发明的一个方面是提供用于防止几乎任何数据类型被未经授权地访问或使用的方法。该方法包括一个或多个步骤,将要保护的数据分析、拆分和/或分离为两个或更多部分。该方法还包括对要保护的数据进行加密。对数据的加密可以在初次分析、拆分和/或分离数据之前或之后执行。此外,对于数据的一个或多个部分,可以重复加密步骤。类似地,对于数据的一个或多个部分,可以重复分析、拆分和/或分离步骤。该方法还可选地包括将已经加密的经过分析、拆分和/或分离的数据存储在一个位置或多个位置。此方法还可选地包括将被保护的数据重新构建或重新组合为其原始形态,以便进行授权的访问或使用。此方法可以应用于能够执行该方法的所需的步骤的任何计算机、服务器、引擎等等的操作中。本发明的另一个方面提供防止几乎任何数据类型被未经授权地访问或使用的系统。此系统包括数据拆分模块、加密处理模块,以及,可选地,数据组装模块。在一个实施例中,系统可以进一步包括可以存储安全数据的一个或多个数据存储设施。本发明的另一个方面包括使用任何适当的分析和拆分算法生成数据的股份。可以使用随机的、伪随机的、确定性的或者以其任何组合来分析和拆分数据。在其他实施例中,提供了带有消息空间S的η方秘密共享方案。可以定义对手的系列A。η方秘密共享方案可以包括下列五个基本要素中的一个或多个:(I)带有k比特密钥和消息空间S的对称加密算法;(2)带有消息空间{0,l}k的对手A的η方PSS算法;(3) η方信息传播算法(IDA) ;(4)带有消息空间{O, l}h的对手A的η方纠错码(ECC);以及,(5)随机化(或概率性)承诺方案。可以通过首先对要保护的数据应用计算秘密共享算法来保护数据安全。然后,可以生成随机或伪随机值。根据秘密共享算法的输出以及随机或伪随机值,可以计算出承诺值组和解除承诺值。然后,可以通过组合从秘密共享算法输出的股份、解除承诺值以及一个或多个承诺值,形成多个股份。然后,股份可以存储在一个或多个物理位置(例如,存储在硬盘驱动器上),或一个或多个地理位置(例如,不同的数据储存库或服务器)。在某些实施例中,可以使用概率性承诺方案来计算承诺值组和一组解除承诺值。每一个股份都可以由从计算秘密共享算法输出的股份、解除承诺值以及来自该组承诺值的一个或多个承诺值进行定义。在某些实施例中,可以生成加密密钥,将其用于对用户数据进行加密以创建密文部分。可以通过向加密密钥应用秘密共享算法,创建一组η个密钥股份。然后,可以通过向密文应用信息传播算法(IDA),创建一组η个密文块。通过对η个密钥股份和密文块中的每一个应用概率性承诺方案,可以计算出一组η个承诺值和η个解除承诺值。可以形成η个数据片段,其中每一个数据片段都可以是密钥股份、密文块、解除承诺值以及一个或多个承诺值的函数。最后,数据片段可以存储在一个或多个逻辑存储设备(例如,η个逻辑存储设备)上。这些逻辑存储设备中的一个或多个可以位于不同的地理或物理位置。然后,可以通过组合至少预定义的数量的数据片段重新构建用户数据。在某些实施例中,可以使用各种纠错码来为每一个播放器提供足够的承诺值的集合。


下面将参考附图比较详细地描述本发明,附图只是为了说明本发明,而不对本发明作出限制,其中:图1显示了根据本发明的实施例的一些方面的密码系统的方框图;图2显示了根据本发明的实施例的某些方面的图1的信任引擎的方框图;图3显示了根据本发明的一个实施例的一些方面的图2的事务引擎的方框图;图4显示了根据本发明的一个实施例的一些方面的图2的仓库的方框图;图5显示了根据本发明的一个实施例的一些方面的图2的鉴别引擎的方框图;图6显示了根据本发明的一个实施例的一些方面的图2的加密引擎的方框图;图7是描述了根据本发明的一个实施例的健壮计算秘密共享(RCSS)方案的总体结构的说明性方框图;图8说明了根据本发明的一个实施例的秘密共享进程;图9说明了根据本发明的一个实施例的如图8所示的承诺步骤的更多细节;图10显示了基于从CSS方案和承诺方案构建RCSS方案的不同的抽象的共用进程;以及图11显示了如图10所示的概率性承诺方案中的鉴别步骤的更多细节。
具体实施例方式本发明的一个方面是提供一种密码系统,其中一个或多个安全服务器或信任引擎存储了加密密钥和用户身份鉴别数据。用户通过对信任引擎的网络访问来访问常规密码系统的功能,然而,信任引擎不发行实际密钥及其他鉴别数据,因此,密钥和数据是安全的。这种以服务器为中心的密钥和鉴别数据的存储,提供了独立于用户的安全性、轻便性、可用性以及简单性。由于用户可以信任密码系统以执行用户和文档鉴别及其他加密功能,因此,可以将各种功能包括到系统中。例如,信任引擎提供商可以通过,例如对协议参与者进行身份鉴另IJ,代表参与者或为参与者对协议进行数字签名,并存储每一个参与者进行了数字签名的协议的记录,防止拒绝执行协议。此外,密码系统还可以监视协议,并基于例如,价格、用户、供应商、地理位置、使用的位置等等,决定应用不同程度的鉴别。为促进对本发明的完全理解,参考附图,描述了“具体实施方式
”的其余部分,其中相同的元件用相同的附图标记进行表示。
图1显示了根据本发明的实施例的一些方面的密码系统100的方框图。如图1所示,密码系统100包括通过通信链路125进行通信的用户系统105、信任引擎110、证书认证机构115以及供应商系统120。根据本发明的一个实施例,用户系统105包括具有诸如,例如基于Intel的处理器之类的一个或多个微处理器的常规通用计算机。此外,用户系统105包括适当的操作系统,诸如,例如能够包括图形或窗口的操作系统,如Windows、Unix、Linux等等。如图1所示,用户系统105可以包括生物特征设备107。优选情况下,生物特征设备107可以捕获用户的生物特征,并将捕获的生物特征传输到信任引擎110。根据本发明的一个实施例,优选情况下,生物特征设备可以包括具有类似于1997年9月5日提出的标题为“RELIEF OBJECTIMAGE GENERATOR”的编号为N0.08/926, 277的美国专利申请、2000年4月26日提出的标题为“IMAGING DEVICE FOR A RELIEF OBJECT AND SYSTEM AND METHOD OF USING THE IMAGEDEVICE”的编号为N0.09/558,634的美国专利申请、1999年11月5日提出的标题为“RELIEFOBJECT SENSOR ADAPTOR”的编号为N0.09/435,011的美国专利申请、2000年I月5日提出的标题为 “PLANAR OPTICAL IMAGE SENSOR AND SYSTEM FOR GENERATING AN ELECTRONICIMAGE OF A RELIEF OBJECT FOR FINGERPRINT READING” 的编号为 N0.09/477,943 的美国专利申请中所说明的属性和特点的设备,所有的这些申请都由直接受让人拥有,在此引用了所有这些申请作为参考。此外,用户系统105可以通过诸如,例如拨号、数字用户线(DSL)、电缆调制解调器、光纤连接等等之类的常规服务提供商,连接到通信链路125。根据另一个实施例,用户系统105通过诸如,例如局域网或广域网之类的网络连接,连接到通信链路125。根据一个实施例,操作系统包括处理通过通信链路125传递的所有传入和传出消息通信的TCP/IP堆栈。虽然参考前面的实施例说明了用户系统105,但是,不对本发明构成限制。相反地,本领域技术人员将从这里的说明认识到,用户系统105有许多备选实施例,几乎包括能够向另一个计算机系统发送或从其中接收信息的任何计算设备。例如,用户系统105可以包括,但不仅限于,可以与通信链路125进行交互的计算机工作站、交互式电视、交互式电话亭、个人移动计算设备,如数字助理、移动电话、笔记本电脑等等,无线通信设备、智能卡、嵌入式计算设备等等。在这样的备选系统中,操作系统可能不同,并适用于特定设备。然而,根据一个实施例,优选情况下,操作系统继续提供与通信链路125建立通信所需的适当的通信协议。图1显示了信任引擎110。根据一个实施例,信任引擎110包括用于访问和存储敏感信息的一个或多个安全服务器,敏感信息可以是任何类型或形式的数据,如,但不仅限于,文本、音频、视频、用户身份鉴别数据和公共和私有加密密钥。根据一个实施例,鉴别数据包括被设计为唯一地标识密码系统100的用户的数据。例如,鉴别数据可以包括用户标识号码、一个或多个生物特征,以及由信任引擎110或者用户生成的、但是由用户最初在注册时回答的一系列问答。前面的问题可以包括人口统计数据,如出生地、地址、周年纪念、等等,个人数据,如母亲的婚前姓、最爱的冰淇淋等等,或被设计为唯一地标识用户的其他数据。信任引擎110将与当前的交易关联的用户的鉴别数据与早些时候,诸如,例如在注册过程中,所提供的鉴别数据进行比较。优选情况下,信任引擎110可以要求用户在执行每一个交易时产生鉴别数据,或者,优选情况下,信任引擎110可以允许用户定期产生鉴别数据,如在一系列交易的开始时或登录到特定供应商网站时。根据用户产生生物特征数据的实施例,用户向生物特征设备107提供物理特征,如,但不仅限于,面部扫描、手扫描、耳朵扫描、虹膜扫描、视网膜扫描、血管模式、DNA、指纹、笔迹或语音。优选情况下,生物特征设备产生物理特征的电子模式或生物特征。通过用户系统105向信任引擎110传输电子模式,以便进行注册或者鉴别。一旦用户产生了适当的鉴别数据,信任引擎110判断该鉴别数据(当前鉴别数据)和在进行注册时提供的鉴别数据(注册鉴别数据)之间的明确的匹配,则信任引擎110给用户提供完全的加密功能。例如,优选情况下,经过适当的身份鉴别的用户可以使用信任引擎110执行散列、数字签名、加密和解密(常常只称为加密)、创建或分发数字证书等等。然而,在加密功能中使用的私有加密密钥在信任引擎110的外面不可用,从而确保了加密密钥的完整性。根据一个实施例,信任引擎110生成并存储加密密钥。根据另一个实施例,至少一个加密密钥与每一个用户关联。此外,当加密密钥包括公钥技术时,在信任引擎110内生成与用户关联的每一个私有密钥,而不从信任引擎110释放该私有密钥。如此,只要用户可以访问信任引擎110,用户都可以使用他的或她的私钥或公钥执行加密功能。优选情况下,这样的远程访问允许用户完全是可移动的,并通过几乎任何因特网连接,如蜂窝电话和卫星电话,电话亭、笔记本电脑、旅馆客房等等,访问加密功能。根据另一个实施例,信任引擎110使用为信任引擎110生成的密钥对执行加密功能。根据此实施例,信任引擎110首先对用户进行身份鉴别,并在用户正确地产生匹配注册鉴别数据的鉴别数据之后,信任引擎110使用其自己的加密密钥对来代表经过身份鉴别的用户执行加密功能。本领域技术人员将从这里的说明认识到,优选情况下,加密密钥可以包括某些或所有对称密钥、公共密钥以及私有密钥。此外,本领域技术人员将从这里的说明认识到,前面的密钥可以利用大量的商用技术的算法,诸如,例如RSA、ELGAMAL等等来实现。图1还显示了证书认证机构115。根据一个实施例,优选情况下,证书认证机构115可以包括颁发数字证书的受信任的第三方机构或公司,诸如,例如Verisign、Baltimore、Entrust等等。优选情况下,信任引擎110可以通过诸如,例如PKCSlO之类的一个或多个常规数字证书协议,向证书认证机构115传输数字证书请求。作为响应,证书认证机构115将以诸如,例如PKCS7之类的一个或多个不同协议颁发数字证书。根据本发明的一个实施例,信任引擎110从多个或所有著名的证书认证机构115请求数字证书,以便信任引擎110可以访问对应于任何请求方的证书标准的数字证书。根据另一个实施例,信任引擎110在内部执行证书颁发。在此实施例中,信任引擎110可以访问用于生成证书的证书系统,和/或当它们被请求时,诸如,例如在密钥生成时,或以在请求时请求的证书标准,在内部生成证书。下面将比较详细地说明信任引擎110。图1还显示了供应商系统120。根据一个实施例,优选情况下,供应商系统120包括Web服务器。典型的Web服务器一般通过因特网使用多种因特网标记语言或文档格式标准中的一种,如超文本标记语言(HTML)或可扩展标记语言(XML),提供内容。Web服务器从诸如Netscape和Internet Explorer之类的浏览器接受请求,然后,返回适当的电子文档。可以使用许多服务器或客户端技术来使Web服务器的功能不仅限于其提供标准电子文档的能力。例如,这些技术包括公共网关接口(CGI)脚本、安全套接字层(SSL)安全性,以及活动服务器页面(ASP)。优选情况下,供应商系统120可以提供涉及商用、个人、教育或其他交易的电子内容。虽然参考前面的实施例说明了供应商系统120,但是,不对本发明构成限制。相反地,本领域技术人员将从这里的说明认识到,优选情况下,供应商系统120可以包括参考用户系统105所描述的设备中的任何一个或其组合。图1还显示了连接用户系统105、信任引擎110、证书认证机构115以及供应商系统120的通信链路125。根据一个实施例,优选情况下,通信链路125包括因特网。因特网,如在整个说明书中所使用的,是计算机的全球网络。因特网的结构,如所属领域的技术人员所熟知的,包括网络主干线路,网络从主干网分叉。这些分叉又具有从它们分叉的网络,依次类推。路由器在网络级别之间移动信息包,然后,从网络移动到网络,直到数据包达到其目的地的邻近地区。从目的地,目的地网络的主机将信息包定向到适当的终端或节点。在一个优选实施例中,因特网路由集线器包括使用当前技术已知的传输控制协议/因特网协议(TCP/IP)的域名系统(DNS)服务器。路由集线器通过高速通信链路连接到一个或多个其他路由集线器。因特网一个流行的部分是万维网。万维网包含存储了能够显示图形和文本信息的文档的不同计算机。在万维网上提供信息的计算机通常叫做“网站”。网站是由具有关联的电子页面的Internet地址所定义的。电子页面可以由统一资源定位器(URL)进行标识。一般而言,电子页面是组织文本、图形图像、音频、视频等等的呈现的文档。虽然利用其优选实施例说明了通信链路125,但是,那些本领域技术人员将从这里的说明认识到,通信链路125可以包括范围广泛的交互式通信链路。例如,通信链路125可以包括交互式电视网络、电话网络、无线数据传输系统、双向电缆系统、自定义私有的或公共的计算机网络、交互式电话亭网络、自动取款机网络、直接链路、卫星或蜂窝网络,等等。图2显示了根据本发明的实施例的某些方面的图1的信任引擎110的方框图。如图2所示,信任引擎110包括事务引擎205、仓库210、鉴别引擎215以及加密引擎220。根据本发明的一个实施例,信任引擎110还包括海量存储器225。如图2进一步显示的,事务引擎205与仓库210、鉴别引擎215以及加密引擎220以及海量存储器225进行通信。此夕卜,仓库210还与鉴别引擎215、加密引擎220以及海量存储器225进行通信。此外,鉴别引擎215与加密引擎220进行通信。根据本发明的一个实施例,优选情况下,前面的通信中的某些或全部可以包括将XML文档传输到对应于接收设备的IP地址。如前所述,优选情况下,XML文档允许设计者创建他们自己的自定义文档标记,允许定义、传输、鉴别和解释应用程序之间和机构之间的数据。此外,前面的通信中的某些或全部可以包括常规SSL技术。根据一个实施例,事务引擎205包括数据路由设备,如Netscape、Microsoft、Apache等等推出的常规Web服务器。例如,优选情况下,Web服务器从通信链路125接收传入的数据。根据本发明的一个实施例,传入的数据被发给信任引擎110的前端安全系统。例如,优选情况下,前端安全系统可以包括防火墙、搜索已知攻击配置文件的入侵检测系统,和/或病毒扫描器。在清除前端安全系统之后,由事务引擎205接收到数据,并将数据路由到仓库210、鉴别引擎215、加密引擎220和海量存储器225中的某一个。此外,事务引擎205还监视来自鉴别引擎215和加密引擎220的传入的数据,并通过通信链路125将数据路由到特定系统。例如,优选情况下,事务引擎205可以将数据路由到用户系统105、证书认证机构115或供应商系统120。根据一个实施例,数据是诸如,例如使用URL或统一资源标识符(URI)之类的常规HTTP路由技术来路由的。URI类似于URL,然而,URI通常表示诸如,例如可执行程序、脚本等等之类的文件或操作的源。因此,根据一个实施例,用户系统105、证书认证机构115、供应商系统120以及信任引擎210的组件,优选情况下,包括通信URL或URI内的足够的数据,以便让事务引擎205正确地在密码系统中路由数据。虽然参考其优选实施例说明了数据路由,但是,本领域技术人员将认识到,有大量的可能的数据路由解决方案或策略。例如,优选情况下,XML或其他数据包可以根据它们的格式、内容等等打开和识别,以便事务引擎205可以正确地在整个信任引擎110中路由数据。此外,本领域技术人员将认识到,优选情况下,数据路由可以适应符合特定网络系统的数据传送协议,诸如,例如当通信链路125包括局域网时。根据本发明的再一个实施例,事务引擎205包括常规SSL加密技术,以便在特定通信过程中前面的系统可以与事务引擎205对本身进行身份鉴别,反之亦然。如在此说明书中所使用的,术语“1/2SSL”是指服务器但不一定包括客户端被SSL鉴别的通信,而术语“完全SSL”是指客户端和服务器两者都被SSL鉴别的通信。当说明书使用术语“SSL”时,通信可以包括1/2或完全SSL。随着事务引擎205将数据路由到密码系统100的各种组件,优选情况下,事务引擎205可以创建审核跟踪。根据一个实施例,审核跟踪包括由事务引擎205在整个密码系统100中路由的数据的至少类型和格式的记录。优选情况下,这样的审核数据可以存储在海量存储器225中。图2还显示了仓库210。根据一个实施例,仓库210包括诸如,例如目录服务器、数据库服务器等等之类的一个或多个数据存储设施。如图2所示,仓库210存储加密密钥和注册鉴别数据。优选情况下,加密密钥可以对应于信任引擎110或诸如用户或供应商之类的密码系统100的用户。优选情况下,注册鉴别数据可以包括被设计为诸如用户ID、密码、问题的答案、生物特征数据等等之类的唯一地标识用户的数据。优选情况下,此注册鉴别数据可以在用户注册时或稍后某个时间获得。例如,信任引擎110可以包括注册鉴别数据的定期的或其他方式的续订或重新发布。根据一个实施例,从事务引擎205往返于鉴别引擎215和加密引擎220的通信包括诸如,例如常规SSL技术之类的安全通信。此外,如前所述,往返于仓库210的通信的数据可以使用URL、UR1、HTTP或XML文档进行传输,优选情况下,前面的各项中的任何一个中都嵌入了数据请求和格式。如上文所提及的,优选情况下,仓库210可以包括多个安全数据存储设施。在这样的实施例中,安全数据存储设施可以如此配置,以便一个单个数据存储功能的安全性被破坏将不会损害加密密钥或其中存储的鉴别数据。例如,根据此实施例,用数学方法操作加密密钥和鉴别数据,以便从统计学上并基本上随机化存储在每一个数据存储设施中的数据。根据一个实施例,单个数据存储设施的数据的随机化使该数据变得不能被破译。如此,单个数据存储设施的被破坏只产生随机化的不能被破译的数字,总体上不会任何加密密钥或鉴别数据的安全性。图2还显示了包括鉴别引擎215的信任引擎110。根据一个实施例,鉴别引擎215包括数据比较器,该数据比较器被配置为将来自事务引擎205的数据与来自仓库210的数据进行比较。例如,在鉴别过程中,用户将当前鉴别数据提供到信任引擎110,以便事务引擎205接收当前鉴别数据。如前所述,事务引擎205优选情况下识别URL或URI中的数据请求,并将鉴别数据路由到鉴别引擎215。此外,应请求,仓库210将对应于用户的注册鉴别数据转发到鉴别引擎215。如此,鉴别引擎215具有当前鉴别数据和注册鉴别数据两者,以便用于进行比较。根据一个实施例,到鉴别引擎的通信包括诸如,例如SSL技术之类的安全通信。另夕卜,可以在信任引擎110组件内提供安全性,诸如,例如使用公钥技术的超加密。例如,根据一个实施例,用户利用鉴别引擎215的公钥对当前鉴别数据进行加密。此外,仓库210也利用鉴别引擎215的公钥对注册鉴别数据进行加密。如此,可以只使用鉴别引擎的私有密钥来对传输的内容进行解密。如图2所示,信任引擎110还包括加密引擎220。根据一个实施例,加密引擎包括加密处理模块,该模块被配置为优选情况下提供常规加密功能,诸如,例如公钥基础架构(PKI)功能。例如,优选情况下,加密引擎220可以为密码系统100的用户发布公共密钥和私有密钥。如此,在加密引擎220中生成加密密钥,并转发到仓库210,以便至少私有加密密钥在信任引擎110之外不可用。根据另一个实施例,加密引擎220随机化至少私有加密密钥数据并将其拆分,从而只存储随机化的拆分数据。类似于拆分注册鉴别数据,拆分过程确保了存储的密钥在加密引擎220外面不可用。根据另一个实施例,加密引擎的功能可以与鉴别引擎215相结合,并由鉴别引擎215执行。根据一个实施例,往返于加密引擎的通信包括诸如SSL技术之类的安全通信。此夕卜,优选情况下,可以使用XML文档来传输数据和/或发出加密功能请求。图2还显示了具有海量存储器225的信任引擎110。如前所述,事务引擎205保留了对应于审核跟踪的数据,并将这样的数据存储在海量存储器225中。类似地,根据本发明的一个实施例,仓库210保留了对应于审核跟踪的数据,并将这样的数据存储在海量存储设备225中。仓库的审核跟踪数据类似于事务引擎205的审核跟踪数据,因为审核跟踪数据包括由仓库210接收到的请求以及其响应的记录。此外,可以使用海量存储器225存储具有其中包含的用户的公钥的数字证书。虽然参考其首选和备选实施例说明了信任引擎110,但是,不对本发明构成限制。相反地,本领域技术人员将认识到,在这里的说明中,信任引擎110有大量的备选方案。例如,优选情况下,信任引擎110只执行鉴别,或者,只执行某些或全部加密功能,如数据加密和解密。根据这样的实施例,优选情况下,可以去除鉴别引擎215和加密引擎220中的一个,从而为信任引擎创建更简单的设计。此外,加密引擎220也可以与证书认证机构进行通信,以便在信任引擎110内实现证书认证机构。根据再一个实施例,优选情况下,信任引擎110可以执行鉴别和一个或多个加密功能,诸如,例如数字签名。图3显示了根据本发明的一个实施例的一些方面的图2的事务引擎205的方框图。根据此实施例,事务引擎205包括具有处理线程和收听线程的操作系统305。优选情况下,操作系统305可以类似于在常规的高容量服务器(诸如,例如Apache推出的Web服务器)中的存在的操作系统。收听线程监视来自通信链路125、鉴别引擎215以及加密引擎220中的某一个的传入的通信,以获取传入的数据流。处理线程识别传入的数据流的特定数据结构,诸如,例如前面的数据结构,从而将传入的数据路由到通信链路125、仓库210、鉴别引擎215、加密引擎220或海量存储器225中的某一个。如图3所示,优选情况下,可以通过,例如SSL技术,保护传入和传出的数据的安全。图4显示了根据本发明的一个实施例的一些方面的图2的仓库210的方框图。根据此实施例,仓库210包括一个或多个轻型目录访问协议(LDAP)服务器。诸如Netscape、ISO及其他公司提供LDAP目录服务器。图4还显示了,优选情况下,目录服务器存储对应于加密密钥的数据405和对应于注册鉴别数据的数据410。根据一个实施例,仓库210包括将鉴别数据和加密密钥数据标记为唯一用户ID的单一逻辑存储器结构。单一逻辑存储器结构优选情况下包括确保其中存储的数据的高度信任或安全性的机制。例如,仓库210的物理位置优选情况下可以包括大量的常规安全措施,如限制雇员访问,现代化的监视系统,等等。除物理安全措施之外,或代替物理安全措施,优选情况下,计算机系统或服务器可以包括用于保护存储的数据的软件解决方案。例如,优选情况下,仓库210可以创建并存储对应于采取的措施的审核跟踪的数据415。此外,优选情况下,可以利用与常规SSL技术相结合的公钥加密,对传入和传出的通信进行加密。根据另一个实施例,仓库210可以包括不同的并且在物理上分离的数据存储设施,如进一步参考图7说明的。图5显示了根据本发明的一个实施例的一些方面的图2的鉴别引擎215的方框图。类似于图3的事务引擎205,鉴别引擎215包括操作系统505,该操作系统505具有常规Web服务器(诸如,例如Apache推出的Web服务器)的修改版本的至少收听和处理线程。如图5所示,鉴别引擎215包括对至少一个私有密钥510进行访问。优选情况下,私有密钥510可以用于,例如对来自事务引擎205或仓库210的数据进行解密,这些数据是利用鉴别引擎215的对应的公钥进行加密的。图5还显示了鉴别引擎215,其中包括比较器515、数据拆分模块520以及数据组合模块525。根据本发明的优选实施例,比较器515包括能够比较涉及前面的生物特征鉴别数据的潜在地复杂的模式的技术。该技术可以包括用于进行模式比较(诸如,例如代表指纹模式或语音模式的模式比较)的硬件、软件或组合的解决方案。此外,根据一个实施例,优选情况下,鉴别引擎215的比较器515可以比较文档的常规散列,以便再现比较结果。根据本发明的一个实施例,比较器515包括对比较应用启发规则530。优选情况下,启发规则530可以针对鉴别尝试周围的情况,诸如,例如时刻、IP地址或子网掩码,购买配置文件、电子邮件地址、处理器序列号或ID等等。此外,生物特征数据的比较可能会导致从当前生物特征鉴别数据与注册数据的匹配产生不同程度的置信度。例如,与可能只返回肯定的或否定的匹配的传统的密码不同,指纹可能被判断部分匹配,例如90%匹配、75%匹配或10%匹配,而不是只是正确或不正确。诸如声谱图分析或面部识别之类的其他生物特征标识符也可以共享这种随机鉴别的属性,而不是绝对鉴别。当处理这样的随机的鉴别或在鉴别被视为不是那么绝对可靠的其它情况下,需要应用启发规则530以判断所提供的鉴别的置信水平是否足够高,以对正在进行的交易进行身份鉴别。有时有这样的情况,所涉及的交易是相对来说价值较低的交易,以较低的置信度进行身份鉴别是可以接受的。这可以包括美元值较低的交易(例如,$10的采购)或较低的风险的交易(例如,只限于会员才能进入的网站)。相反,为对其他交易进行身份鉴别,在允许进行交易之前,要求鉴别有高度的置信度。这样的交易可以包括比较大的美元值的交易(例如,签订几百万美元的供应合同),或者如果进行了不适当的鉴别,存在高风险的交易(例如,远程登录到政府计算机)。下面将描述启发规则530与置信水准和交易价格相结合地使用,以允许比较器提供动态上下文相关的鉴别系统。根据本发明的另一个实施例,优选情况下,比较器515可以跟踪针对特定交易的鉴别尝试。例如,当一个交易失败时,信任引擎110可以请求用户重新输入他的或她的当前鉴别数据。优选情况下,鉴别引擎215的比较器515可以使用尝试限制器535,限制鉴别尝试的次数,从而防止假冒用户的鉴别数据的蛮力尝试。根据一个实施例,尝试限制器535包括监视进行重复的鉴别尝试的交易的软件模块,例如将一个给定交易的鉴别尝试限制为三次。如此,尝试限制器535将把假冒个人的鉴别数据的自动化尝试限制到,例如三次“猜测”。在三次尝试失败之后,优选情况下,尝试限制器535可以拒绝进行更多的鉴别尝试。优选情况下,这样的拒绝可以通过,例如比较器515返回否定的结果来实现,而不管是否传输了当前鉴别数据。另一方面,优选情况下,事务引擎205可以阻止涉及其以前已经进行了三次失败的尝试的交易的任何更多的鉴别尝试。鉴别引擎215还包括数据拆分模块520和数据组合模块525。优选情况下,数据拆分模块520包括能够用数学方法对各种数据进行操作的软件、硬件或组合模块,以便基本上将数据随机化并拆分为多个部分。根据一个实施例,原始数据不能从单个部分重新创建。优选情况下,数据组合模块525包括被配置为用数学方法对前面的基本上随机化的部分进行操作的软件、硬件或组合模块,以便其组合提供原始的解密数据。根据一个实施例,鉴别引擎215使用数据拆分模块520随机化注册鉴别数据并将其拆分为多个部分,并使用数据组合模块525将这些部分重新组合为可使用的注册鉴别数据。图6显示了根据本发明的一个实施例的多个方面的图2的信任引擎200的加密引擎220的方框图。类似于图3的事务引擎205,加密引擎220包括操作系统605,该操作系统605具有常规Web服务器(诸如,例如Apache推出的Web服务器)的修改版本的至少收听和处理线程。如图6所示,加密引擎220包括数据拆分模块610和数据组合模块620,它们的功能类似于图5的那些模块的功能。然而,根据一个实施例,数据拆分模块610和数据组合模块620对加密密钥数据进行处理,而不是对前面的注册鉴别数据进行处理。虽然,本领域技术人员将从这里的说明认识到,数据拆分模块910和数据拆分模块620可以与鉴别引擎215的那些模块相结合。加密引擎220还包括加密处理模块625,被配置为执行许多加密功能中的一个、某些或全部加密功能。根据一个实施例,加密处理模块625可以包括软件模块或程序、硬件或两者。根据另一个实施例,加密处理模块625可以执行数据比较、数据分析、数据拆分、数据分离、数据散列、数据加密或解密、数字签名鉴别或创建、数字证书生成、存储或请求,力口密密钥生成等等。此外,本领域技术人员将从这里的说明认识到,优选情况下,加密处理模块825可以包括公钥基础架构,如Pretty Good Privacy(PGP)、基于RSA的公钥系统,或大量的备选密钥管理系统。此外,加密处理模块625还可以执行公钥加密、对称密钥加密或两者。除前面的内容之外,加密处理模块625还可以包括一个或多个计算机程序或模块、硬件或两者,用于实现无缝、透明的互操作性功能。本领域技术人员将从这里的说明认识到,加密功能可以包括一般涉及密钥管理系统的各种功能。图7显示了健壮计算秘密共享(RCSS)方案。被称为代理商700的一方具有该代理商希望分发的秘密701。为此,代理商700可以应用RCSS方案的共享机制702。共享机制702可能导致生成某个数量η的股份,如股份704、705,以及706所示。所有股份的集合703可能是从秘密701以概率的方式派生出来的矢量S。然后,可以在网络上发送股份的集合703,或在频带外进行分发,以便每一个股份都存储在其自己的数据储存库中(或存储在不同的物理或地理位置上的一个或多个数据储存库中)。将股份存储在逻辑数据储存库720中可以具有安全性提高的优点,因为对于可能存储在数据服务器721、722,以及723中的那些股份而言,和那些股份的真子集相比,对手更加难以对所有股份进行访问。一个或多个服务器721、722以及723可以位于物理上不同的位置,在不同的管理控制下操作,或由不同种类的硬件和软件访问控制来进行保护。逻辑数据储存库720也可以包括分布式的或联网的文件系统。当某一方希望恢复分布在逻辑数据储存库720上的秘密时,实体740可能尝试收集股份。第一个收集的股份S*[l]744可能与股份704相同,但是,由于传输或存储中的非故意的修改(例如,数据损坏)或由于对手代理的活动而导致的故意的修改,也可能不同。类似地,第二个收集的股份S* [2] 745可能与股份705相同,最后一个股份S* [η] 746可能与股份706相同,但是,这些股份也可能由于类似的原因而不同。除了是“错误的”股份的可能性之外,集合743中的一个或多个股份也可能是判别值“丢失”,由符号" "代表。此符号可能表示,系统(例如,实体740)不能发现或收集该特定股份。然后,可以将声称的股份S*的矢量提供到RCSS方案的恢复算法742,后者可能返回恢复的秘密S*741或者表示为无效的值747。共享的秘密701应该等于恢复的秘密741,除非对手的破坏股份的活动的程度超过了该方案能够承受的程度。RCSS的目标在两个较大的领域有用:保护静止的数据的安全和保护运动中的数据的安全。在前一种情况中,文件服务器,例如在各种远程服务器上维护其数据。即使那些服务器中的某些服务器被破坏(例如,由于管理员不诚实)或不可用(例如,由于网络故障),数据仍可能可用并且保密。在运动中的数据的情况下,秘密消息的发送方和消息的接收方可能通过许多路径连接起来,只有其中的某些可能被对手观察到。通过利用这些不同路径发送股份,发送方可能安全地传输秘密S,尽管存在某些路径临时不可用或被对手控制的可能性。例如,在某些实施例中,可以通过不同的逻辑通信信道传输每一个股份。在2003年6月11日提出的编号为N0.10/458, 928的美国专利申请、2005年10月25日提出的编号为N0.11/258,839的美国专利申请,以及2006年11月20日提出的美国专利申请N0.11/602,667中比较详细地描述了用于保护数据安全的系统和方法,特别是用于保护运动中的数据的安全的系统和方法。在此引用了如前所述的以前提出的每一个专利申请的发明的全部内容作为参考。
虽然Krawczyk提出了具有短的股份大小的至少一个RCSS方案,但是,对该方案的科学研究表明,在加密方案的弱假定下,它不是一个有效的RCSS方案,对于所有存取结构(例如,不同于阈值方案之外的存取结构),不是一个有效的方案。至少由于这些原因,图8-11描述了秘密共享的其他方法。这些其他方法有时称为ESX或HK2。ESX或HK2方法的机制可以包括健壮计算秘密共享方案,该方案可以根据下列五个基本要素来构建:(I)随机或伪随机数发生器,(2)加密方案;(3)完美的秘密共享(PSS)方案;(4)信息传播算法(IDA);以及(5)概率性承诺方案。下面将比较详细地描述这五个基本要素。(I)随机或伪随机数发生器,Rand。这样的数字发生器可以以数字k作为输入,并返回k个随机或伪随机比特。在图8-11中,为便于说明,输入k被省略。(2)加密方案,可以包括一对算法,一个叫做“加密”,另一个叫做“解密”。加密算法Encrypt可以取给定长度k的密钥K,和被称为明文的输入消息M。Encrypt算法可以返回被称为密文的字符串C。Encrypt算法可以可选地使用随机比特,但是,这样的随机比特在图形中没有明确地显示。解密算法Decrypt可以取给定长度k的密钥K,和被称为密文的输入消息C。Decrypt算法可以返回被称为明文的字符串M。在某些情况下,解密算法可以返回指定的失败值,可能表示密文C不对应于任何可能的明文的加密。(3)完美的秘密共享(PSS)方案,可以包括一对算法Sharepss和ReC0VerPSS。这些算法中的第一种算法,也称为PSS的共享算法,可以是随机的图,以字符串K作为输入,叫做秘密,并返回η个字符串的序列,Κ[1],...,Κ[η],被称为股份。每一个K[i]都可以包括由代理商(执行共享处理的实体)处理的或分发的一个股份或η个股份。数字η可以是秘密共享方案的用户可编程的参数,它可以包括任何适当的正数。在某些实施例中,共享算法是随机的,因为它使用随机或伪随机的比特。这样的相关性可以通过提供共享算法随机或伪随机的比特来实现,如在Rand算法中所提供的。第二种算法,也称为PSS的恢复算法,可以以被称为声称的股份的η个字符串的矢量作为输入。每一个声称的股份是读作“丢失”的字符串或者判别符号" "。此符号可以用来表示某个特定股份不可用。完美的秘密共享方案的恢复算法可以返回字符串S或恢复的秘密。可以假设PSS方案的两个属性。第一个属性,隐私属性,确保没有未经授权的用户获得有关从他们的股份中共享的秘密的有用信息。第二属性,可恢复性属性,确保被授权的各方始终可以恢复秘密,假设被授权的各方为恢复算法贡献了正确的股份,任何额外的一方都贡献正确的股份或者判别丢失(" ")值。此PSS方案可以包括通常被称为“Shamir秘密共享”的Shamir方案或Blakley秘密共享方案。(4)信息传播算法(IDA),可以包括一对算法ShareIDA和Recover1'这些算法中的第一种算法,也称为IDA的共享算法,可以包括以字符串C (待传播的消息)作为输入,并返回η个字符串的序列C[l],...,C[n](被称为从散布产生的数据的块)的机制。值η可以是IDA的用户可编程的参数,可以是任何适当的正数。IDA的共享算法可以是随机的或确定性的。在图8-11中,没有显式显示IDA中的使用随机比特的可能性;然而,应该理解,在其他实施例中可以在IDA中使用随机比特。第二种算法,也称为IDA的恢复算法,可以以η个字符串的矢量(提供的块)作为输入。每一个提供的块都可以是字符串或读作丢失的判别符号" ",用于表示某个特定数据块不可用。IDA的恢复算法可以返回字符串S或恢复的秘密。可以假设IDA具有可恢复性属性;如此,被授权的各方始终可以从提供的块恢复数据,假设被授权的各方向IDA的恢复算法贡献正确的块,参与重建的任何额外的一方都贡献正确的块,否则贡献判别丢失(" ")值。与PSS方案的情况不同,可以没有与IDA关联的隐私属性,事实上,一个简单而实用的IDA是复制输入Cn次,并让恢复算法使用最常出现的值作为恢复的数据。已知有更加有效的IDA (例如,Rabin的IDA)。(5)概率性承诺方案,可以包括一对算法,Ct和Vf,叫做承诺算法和鉴别算法。承诺算法Ct可以是一种随机算法,取一个字符串M对其进行承诺,并返回承诺值,H (播放器可以用来对M进行承诺的字符串),以及解除承诺值,R (播放器可以用来解除M的承诺H的字符串)。承诺算法可以是随机的,如此,可以取最后的变量,R*,称为该算法的硬币。这些硬币可以通过对随机或伪随机数发生器Rand的调用来较早地生成。这里有时使用表示法“Ct(M;R*)”来显式表示带有随机硬币R*的输入M上的承诺算法Ct的返回值。鉴别算法Vf,可以是取三个输入字符串的确定性算法:承诺值H、字符串M以及解除承诺值R。此算法可以返回比特O或1,0表示解除承诺无效(不令人信服),I表示解除承诺有效(令人信服)。一般而言,承诺方案可以满足两个属性:隐藏属性和绑定属性。隐藏属性需要,给定为对手选择的消息M0或M1随机地确定的承诺H,对手不能确定该承诺对应于哪一个消息
H。绑定属性需要,已经通过承诺Htl和对应的解除承诺Rtl,交托给消息M0的对手,不能发现不同于M0和任何解除承诺R1的任何消息M1,以致于Vf (H。,W1, R1) =10在大多数情况下,由承诺方案Ct(M;R*)产生的解除承诺值R恰好是提供到该算法的随机硬币R* (即,R=R*)。然而,不是在任何情况下都需要此属性。可以通过适当的密码散列函数,如SHA-1,可以获取最自然的概率性承诺方案。在应用密码散列函数之前,有各种自然的技术来处理被委托到的值M,以及硬币R*。包含承诺机制Ct和鉴别算法Vf的任何承诺方案都可以产生适用于字符串的矢量而不是单个字符串的承诺机制Commit和鉴别机制Verify。承诺算法Commit可以在组件范围内应用Ct算法,而鉴别算法Verify可以在组件范围内应用Vf算法。对于Ct,在某些实施例中,单独的随机硬币可以用于每一个组件字符串。图8显示了根据本发明的一个实施例的RCSS方案的共享机制的简化方框图。秘密S800可以包括代理商希望分发或共享的秘密。秘密800可以是文件系统中的文件,在通信协议中产生的消息,或任何其他敏感数据片段。秘密800可以表示为任何适当的编码字符串(例如,二进制编码或ASCII字符串)。然而,在实际实现方式中,为便于实现,可以使用二进制字符串作为秘密800,可以使用共享密钥加密方案的加密算法803,首先对秘密S进行加密,以获得密文C804。可以使用随机或伪随机数发生器801的输出,获取用于执行此加密的密钥K802,以便产生密钥802的适当数量的随机或伪随机的比特。密钥802可以只用于一次共享,因此,可以称为一次性的密钥。除用于对秘密800进行加密之外,也可以使用完美的秘密共享(PSS)方案806来共享或分发密钥802。PSS方案806可以包括任何完美的秘密共享方案,包括Shamir或Blakley秘密共享方案。完美的秘密共享方案806可以被随机化,要求其自己的随机(或伪随机的)比特的源。可以由诸如数字发生器805之类的单独的随机或伪随机数发生器提供随机或伪随机的比特。PSS方案806可以输出密钥股份的矢量K=K[l],...,K[n]808,在概念上,可以被发送到不同的“播放器”,每个播放器一个股份。首先,尽管在某些实施例中,密钥股份可以与更多信息相结合。可以使用信息传播算法(IDA) 807,如Rabin的IDA机制,将密文C804分解成块809。IDA807可以输出密文块的矢量C[l],...,C[n]809。然后,可以使用概率性承诺方案的承诺机制812。使用随机或伪随机数发生器810,生成足够数量的随机比特,用于进行承诺处理,所产生的随机字符串811用于承诺机制812中的所有承诺。对于每一个消息M [i] =K [i] C [i](跨808和809分布),承诺机制812可以确定承诺值H[i]和解除承诺值R[i],在矢量813中共同地显示。第i个股份(在图8中没有显式表示)可以编码K[i]808,C[i]809,R[i],以及H[l],...,H[n]813。每一方i都可以在其股份中接收每一个K[j],C[j]的承诺H[j](对于
1...η中的j),而不只是其自己的股份的承诺。图9比较详细地显示了承诺机制812 (图8)的说明性承诺处理。承诺处理需要对承诺方案的较低级别的Ct机制的η个不同调用。随机性由随机或伪随机数发生器900生成,所产生的随机或伪随机字符串R*被分割为η个段,R*[1]R*[2]...,R*[n]901。随机性的第i部分(当i是1,2,或η时,部分921、922或923中的一个)用于对第i个消息进行承诺,该消息使用承诺方案的承诺算法Ct931,932和933对W[i] =K[i] C[i](显示为消息910,911,912)进行承诺。承诺和解除承诺对941,942,和943可以由Ct算法输出。很可能每一个R[i]只是R*[i],但是,这不严格地要求。下面的表I中的标记为“Share”的算法进一步说明了图8和9中所描述的共享方案。此算法以字符串S (要共享的秘密)作为输入。在第10行,生成足够数量的随机抛郑硬币的情形,为包括算法Encrypt和Decrypt的对称加密方案提供加密密钥K。在第11行,使用密钥K,对要共享的敏感的字符串s进行加密,以便创建密文C。加密可以是随机化的,但是,为使该机制正确地起作用,不是必须的。接下来,在第12行,可以调用完美的秘密共享方案(如Shamir的方案)的共享算法。共享算法是随机的,虽然在代码中没有显式地指出。这种共享导致密钥股份的矢量K=K [I]...K [η]。在第13行,密文C可以分成块的集合,其中的被授权的块的子集合将足够恢复秘密。这可以使用IDA (例如,图8的IDA807)的共享算法来执行。可以使用任何有效的IDA,如Rabin的机制,复制,或具有前面所描述的IDA属性的任何特定的方案。第15和16行包括消息KC[i]=K[i]C[i]的随机的承诺,在第15行生成所需的硬币,使用这些硬币计算承诺H[i]和解除承诺R[i]。第17行从已经计算出的值计算所产生的股份(有时称为“片段”)S[i]。主体RCSS方案中的股份是S[i]=R[i]K[i]C[i]H[l]...H[n]。然后,可以将股份返回到调用者,根据调用者的意图,存储在不同的位置或通过各种信道进行传输。下面的表I也显示了 RCSS方案的恢复算法。此时,调用者提供声称的股份的整个矢量,S=S[l]...S[n]。每一个声称的股份S[i]都可以是字符串或判别符号" ",也是代表丢失的股份。也可以假设,在某些实施例中,调用者提供股份j的标识,其中j在I和η之间,包括这两者,它们已知是有效的。在第20-21行,每一个S[i]都可以被分析为其组件字符串R[i]K[i],C[i],和H[l]...H[n]。应该理解,丢失符号" ",也可以分析为组件,所有的这些组件本身是丢失符号" "。在第23行,可以执行承诺方案的鉴别算法,以判断消息KC[i]=K[i]C[i]是否有效。然后,“已知有效的”股份j可以被用作每一个承诺民[1]的“参考值”。每当K[i]C[i]看起来像无效时,都可以用丢失符号替代。如此修改的K[i]值的矢量现在可以在第25行提供到秘密共享方案的恢复算法,而修改的C[i]值的矢量可以在第26行提供到IDA的恢复算法。此时,只需要利用从PSS方案恢复的密钥K对从IDA恢复的密文C进行解密,以获取通过RCSS方案本身恢复的值S。
权利要求
1.一种通过从数据生成片段的集合来保护数据安全的方法,所述方法包括: 对数据应用计算秘密共享方案的共享算法,以产生股份的集合,其中所述计算秘密共享方案包括共享算法和恢复算法; 从所述股份的集合计算承诺值组和解除承诺值组; 通过组合股份、解除承诺值以及所述承诺值组的至少一个承诺值,产生所述片段的集合中的每一个片段;以及 将每一个片段存储在至少一个数据储存库中。
2.根据权利要求1所述的方法,其中产生所述片段集合中的每一个片段包括组合股份、解除承诺值以及整个承诺值组。
3.根据权利要求1所述的方法,其中将每一个片段存储在至少一个数据储存库中包括将每一个片段存储在不同的地理位置。
4.根据权利要求1所述的方法,其中将每一个片段存储在至少一个数据储存库中包括将每一个片段存储在所述至少一个数据储存库上的不同的物理位置。
5.根据权利要求1所述的方法,其中所述至少一个数据储存库包括分布式文件系统。
6.根据权利要求1所述的方法,其中所述计算秘密共享方案是从由Shamir、Blakley以及Krawczyk秘密共享方案构成的组中选择的。
7.根据权利要求1所述的方法,其中计算承诺值组和解除承诺值组包括使用概率性承诺方案,所述概率性承诺方案包括承诺算法和验证算法。
8.根据权利要求1所述的 方法,进一步包括通过多个通信信道传输所产生的片段。
9.根据权利要求8所述的方法,其中通过多个通信信道传输所产生的片段包括通过不同的通信信道传输每一个产生的片段。
10.根据权利要求1所述的方法,还包括: 产生随机值或伪随机值; 其中计算承诺值组和解除承诺值组包括从所述随机值或伪随机值和所述股份的集合计算承诺值组和解除承诺值组。
11.一种用于保护数据安全的方法,所述方法包括: 对数据应用计算秘密共享方案的共享算法,以产生股份的集合,其中所述计算秘密共享方案包括共享算法和恢复算法; 使用包括承诺算法和验证算法的承诺方案,以从所述股份的集合计算承诺值组和解除承诺值组; 产生多个片段,其中每一个片段都包括所述股份的集合的一个股份、所述解除承诺值组的一个解除承诺值以及所述承诺值组;以及 将每一个片段存储在至少一个数据储存库中。
12.根据权利要求11所述的方法,其中将每一个片段存储在至少一个数据储存库中包括将每一个片段存储在不同的地理位置。
13.根据权利要求11所述的方法,其中将每一个片段存储在至少一个数据储存库中包括将每一个片段存储在所述至少一个数据储存库上的不同的物理位置。
14.根据权利要求11所述的方法,其中所述至少一个数据储存库包括分布式文件系统。
15.根据权利要求11所述的方法,所述计算秘密共享方案是从由Shamir、Blakley以及Krawczyk秘密共享方案构成的组中选择的。
16.根据权利要求11所述的方法,进一步包括通过多个通信信道传输所产生的片段。
17.根据权利要求16所述的方法,其中通过多个通信信道传输所产生的片段包括通过不同的通信信道传输每一个产生的片段。
18.根据权利要求11所述的方法,其中所述承诺方案是概率性承诺方案。
19.一种用于保护数据安全的方法,包括: 生成加密密钥; 利用所述加密密钥对数据进行加密,以创建密文; 通过对所述加密密钥应用所述秘密共享方案的第一共享算法,产生η个密钥股份的集合; 通过对所述密文应用信息传播算法,产生η个密文块的集合,所述信息传播算法包括第二共享算法和恢复算法; 通过对η个密钥股份和η个密文块中的每一个应用包括承诺算法和验证算法的承诺方案,计算η个承诺值和η个解除承诺值; 产生η个数据片段,其中每一个数据片段是密钥股份、密文块、解除承诺值以及承诺值的函数,以及 将所述η个数据片段存储在不同的逻辑存储设备上,从而能够从预定义数量的数据片段恢复数据。
20.根据权利要求19所述的方法,其中将所述η个数据片段存储在不同的逻辑存储设备上包括将所述η个数据片段存储在η个不同逻辑存储设备上。
21.根据权利要求19所述的方法,进一步包括在存储所述η个数据片段之前,通过η个通信信道传输所述η个数据片段。
22.根据权利要求19所述的方法,其中所述承诺方案是概率性承诺方案。
23.一种用于从片段的集合中恢复数据的方法,包括: 接收所述片段的集合中的片段; 将所述片段解析为股份、解除承诺值以及承诺值组中的至少一个承诺值; 使用包括承诺算法和验证算法的承诺方案中的验证算法确定所述片段是否有效;和如果所述片段有效,将所述股份提供给计算秘密共享方案的恢复算法以便恢复数据,其中所述计算秘密共享方案包括共享算法和所述恢复算法。
24.根据权利要求23所述的方法,还包括将所述计算秘密共享方案的所述恢复算法应用于被分类为有效的多个片段,以便恢复数据。
25.根据权利要求23所述的方法,还包括使用第二片段中的承诺值作为用于确定所述片段是否有效的参考承诺值。
26.根据权利要求23所述的方法,还包括: 基于多个片段中的至少一个承诺值,确定所述承诺值组中的至少一个承诺值的合意性; 使用所述至少一个承诺值的合意性确定所述片段是否有效。
27.根据权利要求23所述的方法,其中所述承诺方案是概率性承诺方案。
28.根据权利要求23所述的方法,还包括确定所述片段是否缺失。
29.根据权利要求23所述的方法,还包括如果片段被确定为无效,则认为所述片段缺失。
30.根据权利要求23所述的方法,其中通过下列步骤产生片段: 对数据应用计算秘密共享方案的共享算法,以产生股份的集合; 从所述股份的集合计算承诺值组和解除承诺值组; 通过组合股份、解除承诺值以及所述承诺值组的至少一个承诺值产生片段的集合。
31.根据权利要求23所述的方法,其中所述承诺值组的至少一个承诺值是整个承诺值组。
32.根据权利要求23所述的方法,还包括通过两个不同通信信道传输所述片段集合中的两个片段。
33.根据权利要求23所述的方法,还包括从两个不同地理位置接收所述片段集合中的两个片段。
34.根据权利要求23所述的方法,还包括从至少一个数据储存库内的两个不同物理位置接收所述片段集合中的两个片段。
35.根据权利要求23所述的方法,还包括从分布式文件系统接收所述片段集合中的两个片段。
36.根据权利要求23所述的方法,还包括从两个不同的逻辑存储设备接收所述片段集合中的两个片段。
37.一种系统,包括: 至少一个处理器,适用于执行权利要求1到36中的任意一个的方法。
全文摘要
本发明涉及用于分发数据和保护数据安全的系统和方法。公开了用于进行保密数据的有效分发以及随后恢复的健壮计算秘密共享方案。可以随机地生成加密密钥,然后使用秘密共享算法进行共享,以生成密钥股份的集合。可以使用密钥,对保密数据进行加密,导致密文。然后,可以使用信息传播算法,将密文分解为密文段。每一个密钥股份和对应的密文段都作为输入提供到概率性承诺方案的承诺方法,产生承诺值和解除承诺值。可以通过组合密钥股份、密文段、解除承诺值以及承诺值的矢量,获取健壮计算秘密共享方案的股份。
文档编号H04L9/08GK103188081SQ20131008227
公开日2013年7月3日 申请日期2007年11月7日 优先权日2006年11月7日
发明者M·贝拉尔, P·罗加韦 申请人:安全第一公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1