应用一次性密码本安全地储存和传送数据的方法和系统的制作方法

文档序号:7850127阅读:348来源:国知局
专利名称:应用一次性密码本安全地储存和传送数据的方法和系统的制作方法
技术领域
本发明一般涉及安全的通信技术。更具体的说,本发明涉及一种通过应用一次性密码本储存和传送数据的方法和系统。
背景技术
随着人们越来越依赖基于计算机的通信技术,数据传送和存储的安全性变得日益重要。这些事务通常涉及在客户端之间或者在服务器与客户端之间通过计算机网络系统进行机密的公司或个人数据的传送。
在一个典型的网络系统中,例如城域网(Metropolitan AreaNetwork,MAN)或者广域网(Wide Area Network,WAN)中,多个用户通过共享通信网络来进行访问和通信。许多计算机应用要求通过这些共享网络传送机密或敏感的数据,并且除非很小心地保护这些应用,否则这些应用必须把共享网络当作是公共的。
当前对数据存储的安全性日益关注,所存储的数据可能被那些可以进行访问的未经授权的用户盗用或者篡改。数据库和内容的传输就是应用域的例子,这些应用域中非常关注对存储内容的保护。数据库需要通过备份和恢复来进行保护以免于遭受灾难,并需要用于延迟时间的缓存解决方案的一部分来整体或部分地进行迁移。此外,还需要提供包括事务的数据库存储量的分配。通常来说,在内容的传输中,服务供应商希望在没有被那些没有对服务付费的人截取或复制的风险的情况下,向消费者出售诸如多媒体这样的富数据集。
在内部所存储的数据与其它用户数据搭配使用的共享存储基础设施,例如存储区域网络(Storage Area Networks,SAN)和网络连接存储(Network Attached Storage,NAS),容易受到外部的攻击。与LAN类似,SAN是一种高速网络,其允许在存储装置和集成到一定程度的处理器(服务器)之间建立通过网络介质(例如光纤信道或者iSCSI)支持的直接面向块的连接。NAS是一种连接了利用网络协议提供文件的文件服务器的LAN,所采用的网络协议有Unix网络文件系统(NFS)、Windows公共互联网文件服务(CFS)、Apple有限公司的Apple文件协议(AFP)、Novell有限公司的NetWare核心协议(NCP)或者用于Web的超文本传输协议。
对于像在SAN和NAS这样的共享基础设施中储存的数据,必须对其进行保护,以使其免于以下威胁,包括1)偶然或者恶意的错误配置,这可能由试图进行合法管理或者攻击者假冒有资格的系统管理员所引起。网络管理工具通常比较复杂,集成得也不好,而且存储管理工具与网络工具是分离的,并需要单独的专门技术。这两项任务的结合导致了增加错误的风险,使得用户或者管理员能够对其他人的数据进行访问。
2)对在进出数据中心的传输过程中的数据量的窥探,这种窥探可以发生在数据中心和用户位置之间的任何地方。
3)假冒另一用户,从而可以访问其存储器。这种模仿在以下情况下发生可由通过攻击者专门为进行攻击而创建的现有账户或通过进入访问共享存储的远端服务器站点进行盗用,黑客对进入共享存储基础设施的认证机制进行攻击。
4)假冒管理员,导致攻击者可对存储装置进行储存操作和完全控制,攻击者也可以使用网络。
以前所用到的存储机密数据的技术为通过口令保护和密码方法的严格访问控制。在一种现有的方法中,利用口令保护来保护信息免于遭受未授权的访问,以此确保可靠的传输。口令或者一个唯一专门定义的标识符被写入存储介质,试图访问内容的用户被要求输入正确的口令。然而,这种方法容易受到口令的盗窃和非法使用的影响。此外,如果数据和用于数据检索的程序被打包进同样的介质中,数据将遭受到更为严重的风险和威胁。因此,长期以来一直急需更为可靠的安全系统来保护存储介质中的信息,使其免于未经授权的访问并确保安全的传送。
在历史上,也已通过密码学对消息进行保护,其中信息以一种安全的形式被发送,能检索到这个信息的唯一的人就是预期的接收者。通常来说,被发送的消息称为明文,其接下来通过称之为加密的过程利用密码算法对明文进行编码。被加密过的消息称为密文,并通过解密的过程被转换回明文。现行的用来加密和解密消息的数学函数为密码算法或者密码。
只有机密数据的预期接收者才会拥有将密文解码为明文消息所需的随机生成的密钥。因此,经过加密的密文可以通过不安全的公共通信网络进行自由传送,与此同时保留了其对于除了预期接收者之外的任何人来说的不可破译性。
然而,这些方法具有局限性。例如,数据的安全性取决于预期接收者是否拥有密钥,以及算法被外部第三方破译的脆弱性。由于计算机技术的快速发展,曾经被认为是“不可破译”的算法可能变得易于遭受强力攻击。例如,具有56位密钥的数据加密标准(DataEncryption Standard,DES)算法在1976年其诞生时被认为是不可破译的。截至1993年,在理论上,用一台高度复杂的计算机使用强力攻击可在8个小时内破解具有56位密钥的DES算法。因此,密钥被加长至128位。已经证明,增加密钥长度降低了算法的易受攻击性。
SAN和其它共享存储系统暴露了当前密码技术的弱点,因为这些技术在不确定的安全性要求而没有严格的等待时间限制下移动数据。例如,如果一个单个密钥被用来对大量的数据块进行加密,那么这种方法易于遭受寻找在设法探测密钥过程中的模式的文本进攻。接着,如果某人能够看到足够多的数据量,那么他就可能检查密文流并破译密码。其它改变密钥的方案通常以很高的成本完成这些任务。
此外,许多密码技术重复使用长度比数据集短的密钥。对于大的数据集来说,在传送完一定数量的比特后改变密钥对于保持安全性是必要的。一个大的数据集意味着对于恶意攻击者来说将有这样一个好处可以使用大量的数据来应用密码破解工具。在这种情况下,难以确定每隔多长时间分配新的密钥。密钥分配频率是在对计算能力增长的评估、数据拥有者估计数据受到保护所必须的时间长度、以及关于所用密码算法安全性的假设的基础上确定的。一个被长期信任的密码算法可能会受一个新的需要更少资源的解密方法的影响。从而,理想的保护时间难以确定。因此,在本领域内需要一种方法提供强有力的数据保护,而没有较高密钥分配频率的成本和不可靠性。
上面采用的所有密码算法都依赖于数学算法和密钥。数据仅仅和所应用的算法一样安全。此外,随着计算机技术变得越来越强大和高效,如今被认为是不可破解的算法易于遭受未来的强力攻击。结果,利用这些方法加密的数据容易泄密。
只有一种无条件安全的算法,其在理论上不会被强力攻击破解,这就是一次性密码本(one-time pad)。与所有其它的算法不同,即使有无限的时间和资源也不可能破解这种算法。
一次性密码本是一个由字符、符号、或字母组成的非重复的随机串。密本(pad,也称密码本)上的每一个字母只被使用一次,以对相应的明文字符进行加密。传送者和接收者各有一份密本的副本。使用一次以后,该密本永远不再被重新使用。不存在潜在的可被破解的数学算法,并且只要该密本保持安全,消息也将保持安全。在以前的方法中,已经利用一次性密码本对外交通信之类的信息进行加密;密钥使用过程中的挑战在于现有密本用完后如何将新的密本分配给对方。
在一个计算机自动化的一次性密码本系统中,消息和密本以二进制形式进行编码。为了对消息进行加密,明文中的每一位与随机生成的密本中的每一位按顺序进行布尔(Boolean)异或转换(简称异或(XOR))。按顺序对每一位进行运算,也就是说,明文的第一位与密本的第一位进行异或运算产生密文的第一位,明文的第二位与密本的第二位进行异或运算产生密文的第二位,依此类推。这个过程被定义为Vernam密码。
因为用于编码的密钥流是随机生成的,它无法通过使用数学算法或者统计分析猜测或者得到。此外,产生的密文看起来是完全随机的,能够抵御传统的统计攻击和数学攻击。为了通过在密文的基础上进行猜测以确定密钥流,用于编码的整个密钥流都必须被猜测,这种猜测是对消息本身的有效猜测。另外,用于对前一个消息进行编码的前一个密钥的发现对于解密未来消息是没有用处的,因为后面的消息是使用新生成的随机密钥流序列进行编码的。这种密码算法被认为提供了完美的保密性,因为这个原因,它在战争期间在要求极高安全性的外交渠道上得到了利用。
然而,一次性密码本的局限性在于,密钥序列的长度必须与消息的长度一致。对于短消息,这种局限性是可以接受的,但对于高带宽的通信信道来说就不实用了。此外,对数据的保护仅和发送端及接收端上的随机生成的密钥流的物理保护具有相同的安全性。
因此,虽然一次性密码本的一个重要的优势在于没有密钥可以对其进行破译,但是密本的共享却一直是个难题。出现这个难题有两个原因密本的大小和可预测性。在现有的技术方案中,密钥或密钥流的大小与数据集大小相等,这使得密本或密钥流的分配非常麻烦。密钥流的大小可被减小和重复,结果产生了足够的密钥流来对文本进行加密,但这使得密文容易遭受某些统计学攻击和字典式攻击。
第二个难题在于密钥流必须是完全随机的,以致两边都无法共享一些种子(seed),也无法对下一位进行预测。如果这些可以发生的话,密文就变得可以破译了。将密钥与密文平行发送,使得攻击者可以同时窃听两个数据流,这样没有任何安全优势可言,因为攻击者能够像终端一样轻易地还原数据流。改变传输时间并没有太大的用处,因为攻击者只需等待就可以了。
基于前述内容,显然需要一种通过不安全的网络通信信道来高效安全地存储和传送数据的方法,并且这种方法能够在不降低网络能力要求的情况下用于更大的通信信道。

发明内容
前述的需求以及其它的需求和目标通过以下描述将变的显而易见,能够在本发明中得以实现,本发明的一个方面包括一种通过应用一次性密码本来安全地存储数据的方法。
描述了一种安全地传送和储存数据的方法。发送主机生成一个真正随机的字符序列作为密钥流,该密钥流可以起到一次性密码本的作用。密钥流与明文按位“异或”运算生成一个密文。密钥流和密文通过物理上分离的通信路径路由到接收主机,接收主机通过将密钥流与密文进行按位“异或”运算对密文进行解密。使用MPLS(多协议标记交换)标识、静态或严格路由选项可建立分离的路由的路径。密钥流可能经过预先计算并异步发送到接收主机在接收主机缓存;当密文被解密时,接收主机可用已恢复的明文替换缓存的密钥流,从而节省存储容量。系统的安全性在于密钥流的真正随机性和用于密钥流和密文的物理上分离的路由路径的使用。
在一个特定方法中,包括基于一次性密码本的生成的密钥流的第一数据流被接收。包括密文的第二数据流也被接收,其中第一和第二数据流在两个物理上分离的通信信道上被接收。使用所述的相同长度的密钥流对密文进行解密,从而产生和储存等同于源文本的解密数据。
这个方面的一个特点在于,密文的解密包括对密文和密钥流按位执行布尔异或函数获得解密的明文数据。根据这个方面的另一特点,解密数据的存储包括用所述的解密的明文数据覆盖所使用的密钥流。
根据另一个方面,接收包括基于一次性密码本的生成的密钥流的第一数据流。同时也接收包括密文的第二数据流,其中在两个物理上分离的通信信道上接收第一和第二数据流。数据流被储存到第一共享存储基础设施中,密钥流被储存到第二共享存储基础设施中用于后面的解密。
根据另一个方面,基于一次性密码本随机生成了一个密钥流。通过使用具有长度与源文本的长度相等的密钥流,明文数据被加密成密文。对源文本和密钥流按位执行布尔异或函数获得密文。
该方面的一个特点在于,明文数据被转换为由大量二进制数组成的源文本。通过使用一个真正的随机数生成器生成的密钥流长度与源文本相等。对源文本和密钥流按位执行布尔异或函数获得密文。
在另一方面中,本发明提供了一种通过应用一次性密码本安全地传送数据的方法。通过使用一个长度与源文本的长度相等的密钥流,明文数据被加密成密文。密文和密钥流在两个物理上分离的网络路径上传送。通过使用相同长度的密钥流对密文进行解密,从而产生等同于源文本的解密数据。
在其它方面中,本发明包含一个计算机系统,该计算机系统包括一台接收主机、一台发送主机、以及具有用于执行加密、解密和真正的随机数生成的装置的网络通信线路。


下面通过附图对本发明进行举例说明,而不是对其进行限制,附图的每幅图中相同的参考数字指的是相同的元件,其中图1是阐明通过应用一次性密码本安全地传送和存储数据的系统的框图;图2是阐明通过应用一次性密码本安全地传送和存储数据的方法的流程图;图3是阐明解密数据的方法的流程图;图4是阐明安全地传送和存储数据的方法的流程图,在该方法中,密钥流经过预先计算并被缓存;图5是阐明分开路由密钥流和密文的方法的流程图;以及图6是计算机系统的框图,利用该计算机系统可执行实施例。
具体实施例方式
本发明描述了一种通过应用一次性密码本安全地存储和传送数据的方法。出于解释目的,为了提供对本发明的透彻理解,在下面的描述中陈列了大量的特定细节。然而,对于本领域技术人员来说显而易见的是,不需要这些特定细节也可以实现本发明。在其它的例子中,为避免不必要地误解本发明,已知的结构和设备以框图的形式示出。
图1是可以使用实施例的数据网络环境实例的框图。一般说来,图1示出发送主机100、网络110、和接收主机120。主机100、120中的每个都可能包括一个网络基础设施节点,例如路由器、交换机、网关、或者其它的处理元件;或者,主机100、120可以是终端站设备,例如个人计算机、工作站、服务器、或任何其它合适的处理设备。网络110是不安全的,并且可能包括一个或多个局域网、广域网、城域网、存储网络、互联网网络、或以上网络的结合。
发送主机100包括明文数据102和一次性密码本数据104,以通信方式连接到加密引擎106。加密引擎106具有一个密文输出端106A和一个密钥流输出端106B。通过这种设置,加密引擎106能够接收明文数据102的连续的第一数据流和一次性密码本数据104的连续的第二数据流,将明文数据和一次性密码本数据进行异或运算,并能在密文输出端106A上给出生成的密文。加密引擎106同样在密钥流输出端106B上输出未经修改的一次性密码本数据。
发送主机100借助第一和第二分离的路由数据路径108A、108B穿过网络110以通信方式连接到接收主机120。第一数据路径108A承载来自发送主机100的输出端106A的密文,第二数据路径108B承载来自发送主机的输出端106B的一次性密码本密钥流。此处进一步描述了在网络110中建立数据路径108A、108B。
接收主机120包括解密引擎126、明文数据124、和一个或多个共享存储基础设施元件122A、122B。存储基础设施元件包括一个或多个大容量存储装置和相关联的网关或控制器。例如,可以使用EMC磁盘存储阵列。解密引擎126接收来自数据路径108A的密文,并接收来自数据路径108B的一次性密码本密钥流。通过这种设置,解密引擎126能够将密文与一次性密码本密钥流结合,然后执行异或运算,最终输出明文数据124。
解密引擎126还能够向一个或多个共享存储基础设施元件122A、122B提供明文数据124的副本。存储元件可能加入一个或多个存储区域网络,或者可以包括网络连接存储元件。当共享存储基础设施元件122A、122B加入到SAN中或者作为NAS体系结构加入时,这种体系结构通常提供用于进出存储器数据的传送和用于数据管理功能的分离的网络。这两个网络可被用作分隔密钥流和数据流,来安全地保护甚至在存储网络内的数据。依据对存储网络内数据的存储的相关安全性要求,存储元件可在接收主机120上存储明文或密文以备使用或处理。通过这种设置,通过应用一次性密码本可以提供安全的数据存储和传送。
图2是阐明通过应用一次性密码本安全地传送和储存数据的方法的流程图。在方框202中,生成密钥流。例如,发送主机100利用自动过程在内部生成密钥流,或从一次性密码本数据104检索密钥流数据。为了提高系统的安全性,生成的密钥流数据应该是真正随机的,而不是伪随机的或者非随机的。事实上,利用真正随机的密钥流,系统可以接近一种理论上具有完美安全性(perfect security)的状态。
即使到那时为止知道了生成过程的全部状态,如果无法预测序列中的下一个事件,那么这个事件序列可以被称为是真正随机的。密本的随机数据可以通过具有真正非确定性性质的硬件访问处理收集得到。电子元件中的放射性衰变和电子隧道都是由在量子亚原子级发生的事件所产生的非确定性现象。通过收集和处理来自盖革(Geiger)计数管或齐纳(Zener)击穿二极管的输出,可能获得真正随机的密本数据。O.Goldreich所著的“现代密码学,概率证明和伪随机性(Modern Cryptography,Probabilistic Proofs andPsuedorandomness)”(BerlinSpringer-Verlag,1999)中提供了用于真正的随机数生成的可用方法的进一步背景信息。
其它的算法可以交换用来生成伪随机比特流的较短密钥对数据进行加密和解密。在这些方案中,密钥流的平均信息量(entropy,熵)少于此处所提供的方法,密钥必须周期性地用新的密钥更新,并且密钥表的计算须经过基于计算机能力的发展以及密钥生成器产生的平均信息量(熵)的评估的检查。
在方框203中,接收或者生成明文。明文可以包括在发送主机100处输入的用户输入、从与发送主机100相关联的存储装置检索得到的数据和由在发送主机100上执行的程序过程自动生成的数据,等等。
在方框204中,通过将明文和密钥流按位执行异或函数生成密文。方框204可由图1的加密引擎106实现。以数学式表达,长度为L的数据流D与长度同样为L的随机密钥流K结合,逐位使用异或函数()产生加密的数据流E‖E‖=‖K‖=‖D‖=L,E=DK
在方框206中,密钥流和密文通过两个物理上分离的通信信道被路由到接收主机。例如,如图1所示,明文数据102通过通信信道108A从加密引擎106的第一输出端106A路由到接收主机120,一次性密码本数据104通过信道108B从加密引擎106的输出端106B路由到接收主机。本文下面的段落中对建立分离的路由路径的方法作了进一步描述。
这样,在一个实施例中,接收主机接收包括随机生成的密钥流的第一数据流和包括被加密的数据或密文的第二数据流。通过网络,通过网络从发送主机到接收主机建立了两个物理上分离的通信信道的路由,传送被加密的数据和密钥。
终端的解密过程通常涉及对E进行异或的逆应用以产生DD=EK图3为解密数据的方法的流程图。在方框210中,从第一路由路径接收密钥流数据。例如,按图1所示的结构,接收主机120的解密引擎126接收信道108B上的密钥流数据。
在方框212中,在第二路由路径上接收密文。再次参照图1,接收主机120的解密引擎126接收信道108A上的密文。
在方框214中,通过将接收到的密文和密钥流按位进行异或运算生成明文。生成的明文数据124可以被接收主机120以任何适当的方式立即进行处理,或可能被储存。在另一个实施例中,数据流和密钥流通过两个物理上分离的网络路径在接收主机被接收,并被存储到第一和第二共享存储基础设施中用于后面的解密。例如,来自信道108A的数据可以被储存到存储基础设施元件122A中,来自信道108B的密钥流可以被存储到存储基础设施元件122B中。
在另一个实施例中,明文被转换为由大量二进制数组成的源文本。在发送主机处生成一个随机密钥流。该密钥流通过使用一个真正的随机数生成器被生成。利用具有与源文本长度相同的长度的密钥流片段,明文数据被加密为密文。通过网络建立了两个物理上分离的通信信道的路由,以传送随机生成的密钥流片段和密文数据流。
在这个实施例中,利用相同长度的密钥流对密文的源文本进行解密,最终产生等同于源文本的解密数据。
参考图2如上所描述,在方框206,密钥流和密文通过两个分离的路径从发送主机被路由到接收主机。在一个实施例中,密钥流和密文在从发送主机到接收主机的整个遍历中,它们彼此之间保持完全的分离。在接收主机是数据中心的部分而发送主机位于数据中心的外部的情况下,密钥流和密文在数据中心的外部和内部保持完全的分离。如果密钥流和密文在完全或部分重叠的路径上发送,一个恶意的监听者可在不被发送方或接收方发现已发生截取的情况下,将密钥流应用到数据流。虽然密钥流和密文的随机性降低了被攻击的可能性,但是由于难以获得这两个流的正确排列,并且难以将一个数据信号与所有其它的数据量中的另一个进行关联,保持分离的路径仍然提高了安全性。
图5是阐明一种分开路由密钥流和密文的方法的流程图。在方框502中,在网络中在发送主机和接收主机之间建立第一和第二物理上分离的路由路径。路径的分离最好包括在第一层物理网络层的分离,例如,不仅仅包括建立一个虚拟的隧道。例如,可通过使用多协议标记交换(multi-protocol label switching,MPLS),或通过互联网协议第六版(“IPv6”)下的源路由可实现这种物理层的分离。原则上,这些路径可以实际上不同(也就是说,通过使用两个虚拟专用网络(“VPN”)隧道,所述隧道是使用传统密钥交换和更新算法有效加密路径)。通过使系统安全性依赖于在隧道的创建和维持过程中使用的密码学的强度,这削弱了系统的安全性。
在MPLS网络中,进入的数据包被“标签边缘路由器”(labeledge router,LER)分配了一个“标签(label)”。数据包沿着“标签交换路径(label switched path,LSP)”转发,其中,每一个“标签交换路由器(label switched router,LSR)”只基于标签内容做出转发决定。例如,LSR检查进入的数据包的标签,在标签映射中查找外出接口标识符的标签,并且在不用做出传统逐段的(hop by hop)转发决定的情况下,转发在映射中识别出的接口上的数据包。在每一段(at each hop),LSR还去除现有的标签,并应用一个从映射中获得的新标签,新标签告知下一段如何转发数据包。
网络操作者因为各种目的建立标签交换路径以保证某种性能级别、绕过网络拥塞进行路由,或者创建基于网络的虚拟专用网络的IP隧道。
如方框504A所示出,分别针对与密钥流和密文相关联的第一和第二路径执行MPLS路径设置。在此处描述的一个实施例中,在图2和图3所示过程实施以前,网络操作者使用相应的路由器命令或者配置工具,针对密钥流在网络中建立第一MPLS路径,以及针对密文在网络中建立第二MPLS路径。路径设置过程还对识别密钥流数据包和密文数据包的标签进行定义。在方框506中,按照图2所示的过程生成密钥流和密文。其后,通过给密钥流加一个MPLS标签和给数据流加第二MPLS标签,密钥流和数据流通过物理上分离的网络路径被传送,这在方框508A和方框510中示出。
可选地,在方框504A中,确定了第一和第二路由路径。在Ipv6下,通过声明(declare)用于密钥流的第一路径和用于数据流的第二路径,密钥流和数据流通过物理上分离的路径被传送。在图2和图3所示过程实施以前,网络操作者确定第一路径和第二路径。如方框508B所指出的,每一个密钥流数据包都包括一个IP-STRICT-ROUTE-OPTION(IP-严格-路由-选项)的标志值,还包括作为有效载荷值的第一路径。同样地,仍如方框508B所指出的,密文数据包声明了一个与第二路径相同的严格路由。然后数据包按方框510所示的方式被转发。当数据包到达网络节点时,IP-STRICT-ROUTE-OPTION(IP-严格-路由-选项)值在本质上指示中间网络节点沿着有效载荷中规定的路径转发密钥流数据包。
在一个可选实施例中,明文的初始数据流经过压缩以除去冗余位,最终产生一个长度比初始明文长度短的源文本。反过来这将允许密钥流的长度更短。这个顺序是不可逆的,也就是说,如果密钥流是随机的话,那么加密流E是无法被压缩的。
图4是阐明一种安全地传送和存储数据的方法的流程图,在这个方法中,密钥流经过预先计算和缓存,提供了对接收主机的存储更加有效的利用。
在方框402A中,生成或预先计算一个密钥流片段。在方框402B中,所述经过预先计算的片段通过信道108B发送,以储存到接收主机120的存储基础设施元件122B中。在方框404中,明文在发送主机处从程序源接收或生成,或者从存储器检索得到。在方框406中,通过将明文和密钥流结合生成密文。在方框408中,密文通过第二路径被路由到接收主机,所述第二路径不同于用来发送预先计算的密钥流的路径。
在方框410中,密文被接收,举例来说在接收主机处,通过第二路径被接收。在方框412中,从存储器中检索密钥流。在方框414中,对密文进行解密,同时在存储器中用产生的明文替换密钥流。在一个实施例中,当信道108A上的被加密的数据到达解密引擎126时,如果需要的话,解密引擎从存储基础设施元件122B中读取密钥流的子片段,并立即对密文进行解密。基本上与此同时,解密数据D被储存到存储基础设施元件122B中,并替换所使用的密钥片段。在方框416中,明文可随意地被储存或处理。
图4所示方法通过消除解密开始之前必须保存密钥流数据和被加密的数据的要求,而降低了存储量。对于共享数据基础设施来说,分离的数据流可以确保更高的安全性,因为两个分离的组织能够在不暴露任意一个的条件下保存每一个组件。
在这个方法中,通过在数据管理网络上发送密钥流和在存储网络上发送密文的方法,分离的路径可以在具有SAN或者NAS存储器的数据中心内维持。
针对那些具有很强实时限制的应用,数据流K和E在发送主机和接收主机之间被同步传送。在这个可供选择的方法中,在没有从存储器检索密钥流所造成的延迟的情况下,在接收主机上进行解密。数据包网络内的数据流之间的同步性能够使用构成传统数据包头的一部分的序列号,例如那些在传输控制协议(Transport ControlProtocol,TCP)报头中发现的序列号,或者同步的数据流可能具有特殊的排列标记,如果发生解密错误的情况下而不损害安全性。此处描述的实时和缓存的密钥版本中,密钥作为解密步骤的一部分被消耗掉了。
接收主机内的第一和第二共享存储基础设施(例如SAN)中分离的数据流和密钥流的存储,意味着接收方需要对这二者进行访问以解密或合理地加密数据。相应地,在一个实施例中,每一个存储基础设施122A、122B都用各自的验证算法对其进行保护,以使加密数据或加密密钥存储器中的一个的泄漏不会威胁到(泄漏)另一个。
图6是阐明一个计算机系统600的框图,本发明的实施例可通过这个计算机系统得以实现。计算机系统600包括总线602或其它用于交换信息的通信装置和一个与总线602连接的用于处理信息的处理器604。计算机系统600还包括一个主存储器606,例如随机存取存储器(“RAM”)或其它动态存储装置,所述主存储器606与总线602连接,用来储存将被处理器604执行的信息和指令。主存储器606还可用于在将被处理器604执行的指令的执行过程中,存储临时变量或者其它的中间信息。计算机系统600此外还包括一个只读存储器(“ROM”)608或其它的静态存储装置,所述只读存储器与总线602连接,用来储存将被处理器604执行的静态信息和指令。还设置有存储装置610,例如磁盘或者光盘,连接至总线602,存储装置610用来储存信息和指令。
计算机系统600可通过总线602与诸如阴极射线管(“CRT”)的显示器612连接,以将信息显示给计算机用户。包括字母数字键和其它键的输入设备614与总线602连接来向处理器604传递信息和命令选择。另一种类型的用户输入设备为光标控制616,例如鼠标、跟踪球、触笔,或者用于向处理器604传递方向信息和命令选择和用于控制显示器612上的光标移动的光标方向键。这种输入设备通常具有两个坐标轴(例如,第一坐标轴(例如,x轴)和第二坐标轴(例如,y轴))的两个自由度,这使得输入设备可以在平面上确定位置。
本发明涉及一种通过应用一次性密码本安全地存储数据的计算机系统600的使用。依据本发明的一个实施例,为响应处理器604执行主存储器606中包含的一个或多个指令的一个序列或多个序列,计算机系统600提供了通过应用一次性密码本安全地存储数据的机制。可以将该指令从另一个计算机可读介质(例如存储装置610)读入主存储器606。对主存储器606中包含的指令序列的执行使得处理器604执行本文所描述的过程步骤。在其它实施例中,可使用硬布线电路代替或与软件指令结合来实现本发明。因此,本发明的实施例并不局限于任何特定的硬件电路和软件的结合。
本说明书所用的术语“计算机可读介质”指的是参与任何向处理器604提供指令供其执行的介质。这种介质可能采取多种形式,包括但不局限于,非易失介质、易失介质、和传输介质。非易失介质包括,例如,光盘或者磁盘,比如说存储装置610。易失介质包括动态存储器,比如说主存储器606。传输介质包括同轴电缆、铜线、和光纤,包括构成总线602的导线。传输介质也可采取声波或光波的形式,例如那些在无线电波和红外线数据通信过程中生成的声波或光波。
计算机可读介质的常见形式包括,例如,软盘、柔性盘、硬盘、磁带、或任何其它的磁介质、CD-ROM、任何其它的光介质、穿孔卡片、纸带、任何其它的孔状物理介质、RAM、PROM、和EPROM、FLASH-EPROM、任何其它存储器芯片或盒式存储器、后文所描述的载波,或任何其它计算机可读取的介质。
计算机可读介质的不同形式可能包括存储用于处理器604执行的一个或多个指令的一个序列或多个序列。例如,指令可能最初被储存到远程计算机的磁盘上。所述远程计算机能将指令加载到动态存储器中,并使用调制解调器通过电话线发送指令。计算机系统600的本地调制解调器可通过电话线接收数据,并能使用红外发射机将数据转换为红外信号。红外探测器能够接收红外信号中携带的数据,并且适当的电路能将数据存放到总线602上。总线602将数据传送到主存储器606,处理器604从主存储器606中检索和执行指令。主存储器606接收到的指令在处理器604执行之前或之后可被随意存入存储装置610。
计算机系统600还包括一个与总线602相连的通信接口618。通信接口618提供了与网络链路620相连的双向数据通信,其中网络链路620与本地网622相连接。例如,通信接口618可能是综合业务数字网(“ISDN”)卡或调制解调器,用于提供到相应类型的电话线的数据通信连接。又例如,通信接口618可能是一个局域网(“LAN”)卡,用于提供到兼容局域网的数据通信连接。无线连接同样可被实现。在任意一个这种实施中,通信接口618发送和接收电信号、电磁信号、或者光信号,这些信号传送代表不同类型信息的数字数据流。
网络链路620通常提供通过一个或多个网络到其它数据设备的数据通信。例如,网络链路620可以提供一个通过本地网622到主机624或被互联网服务供应商(“ISP”)626操作的数据设备的连接。反过来ISP 626通过现在通常被称为“互联网”628的全球范围数据包数据通信网络提供数据通信服务。本地网622和互联网628都使用传送数字数据流的电信号、电磁信号、或光信号。通过不同网络的信号和网络链路620上的和通过通信接口618的信号承载进出计算机系统600的数字数据,这些信号是典型的传输信息的载波形式的。
计算机系统600能通过网络、网络链路620、和通信接口618发送消息和接收包括程序代码在内的数据。在所举的互联网例子中,服务器630可以通过互联网628、ISP 626、本地网622和通信接口618传送被请求的应用程序代码。依照本发明,一个这样的下载的应用程序提供了如本文中描述的通过应用一次性密码本的数据的安全存储。
当接收到代码时,处理器604可执行所接收到的代码,并且/或者所接收到的代码可被存入存储装置610、或其它的非易失存储器中以供后面执行。按照这种方式,计算机系统600可以获得载波形式的应用程序代码。
此外,本发明可在一个计算机系统上得以实施,该计算机系统包括一台通过通信网络与接收主机相连接的发送主机;在发送主机上用于加密明文数据的装置;在发送主机上用于生成随机密钥流的装置;用于在物理上分离的网络路径上传送所述的密钥流和密文的装置;在接收主机上用于解密密文的装置;以及在接收主机上用于将所述的密钥流和密文存入物理上分离的共享存储基础设施的装置。
根据本发明的实施例具有许多实际用途和优点。本说明书中介绍的方法简单易于实现。用于加密和解密的异或运算可在诸如电子集成电路的硬件中执行。基于密钥流的随机性,被加密的数据在理论上具有无条件的安全性。因此,为了对数据的安全性进行评估,只要求对一个参数进行监控,这个参数即是随机数生成器的质量。相应地,很容易对保护的质量进行评估。
一次性密码本的使用确保加密过程是安全的,不依赖于对内容类型的了解或者对保护内容所要求的相关安全性的评估。其它的密码技术重复使用比数据集的长度短的密钥。尤其对于大的数据集,在传送完一定量的比特后更改密钥是很重要的。大数据集的通信意味着方便恶意攻击者对大数据集应用密码破解工具。对每隔多久分配新密钥的评估是一个难题。密钥分配频率可以建立在对计算能力(例如,由摩尔定律所定义的)增长的评估、数据拥有者所评估的对于数据保护必要的时间长度和关于所用密码算法安全性的假设之上。一个被长期信任的加密代码可能会受一个新的解密需要更少资源的算法的影响。理想的保护时间很难确定;最简单的假设是评估时间是不确定的,对一次性密码本的使用在一个不确定的期间确保了安全性。
此处所述方法的一个应用涉及数据库的复制、迁移、和灾难恢复。通过使用SAN,数据库被广泛地存储。能够复制数据库对于快速读取存取是很重要的,例如通过复制的方式。一般来说,不要求实时复制。通过将数据放置到距离其将被使用的位置尽可能近的地方来减少数据子集的等待时间,数据库的迁移是一个最佳选择;一般来说,数据库的迁移也可能不实时地进行,但这可能受到硬实时传输要求的限制,这依赖于数据库中数据的性质。灾难恢复包含整套备份技术来保护数据和重新存储数据。将数据在远程站点处加密对于存档应用具有很多优势,并且通过要求分离的服务供应商保存那些不可区分的和看起来是一组随机比特集的密钥流和内容,此处所述的方法使得这些优势更容易实现。
因为传输的等待时间的原因,分布式事务对于互联网上支持的数据库是最难的模型。如果分布式事务是不可避免的,例如通过使用地理提示的灵活的数据迁移的联合,那么此处所述方法提供了最少的开销。
使用多个ISP接口的内容传输受益于此处所述方法的另一个应用。内容供应商需要与管理内容传输网络的服务供应商进行密切的合作。内容供应商可能希望对其所有的内容存入网络的位置进行跟踪(这是一个数据库问题),并对其分布进行控制。ISP可能具有多个进入互联网的接口,来将密钥流和数据流进行物理隔离。另一个选择是未加密的内容被保存在服务供应商处,以及已加密的内容被保存到缓存服务器以供传送。服务供应商的开销主要是生成随机密钥流的成本;然而,密钥流可以预先被生成,并提前发送给用户,这样,一个特定的密钥流就可以被用在用户选择的任意数据流上。
将内容传送给终端用户是另外一个应用。许多享有DSL服务的家庭还具有电缆入口。电缆有利于将高容量数据流传送给用户,但它是一个共享介质,因为与同一个电缆首端相连的其他人能看到同样的数据量。因此,电缆并不适合将专用的流传送到特定用户而不传送给其他人。此外,内容供应商希望在满足用户要求的条件下以最小的成本和处理力量对数据进行加密。相应地,内容供应商可使用此处所述的方法,通过使用通过电缆的加密遂道来预先缓存唯一的密钥流,这是因为一些长期的安全性要求不很紧迫;例如,被传送的数据是短时的。如果网络上存在一个大容量存储装置,缓存的流可被存储到CPE设备中。在这个模型中,只利用了解密的低处理要求。
在该方法的一个变化中,使用了针对同一个用户的双宽带接口。例如,DSLAM到DSL调制解调器的路径是非共享的点到点的,并能用来传送密钥流。对于视频传输,这种方法可能由于宽带的限制而变得复杂,并可能要求部分的本地缓存。电缆调制解调器路径的首端可被用来发送被加密的数据流。置顶盒可以接收两个流并将其融合以供用户观看。
加密实时多媒体传输是本说明书所述方法的另一个应用。当加密和解密方法的低等待时间和简单性与密钥传送的实时变量结合时,加密和解密方法的低等待时间和简单性一般可被应用来保证多媒体流、特别是数字电话的安全。异或运算的低计算要求意味着,能够管理两个同步的相同带宽的流的设备不需要额外的密码处理资源。
在另一个应用中,内容创建者希望为了缓存的目的将电影副本推到离网络的边缘更近的位置。电影必须被加密以保护内容创建者的知识产权,并且显示对著作权保护的诚意。在从内容创建者传送到服务供应商的边缘网络节点的过程中使用本说明书所述方法对电影内容的加密、使用适当的MPLS标签以确保一个不同的路径,提供了一种安全的、高成本效率的、非常有效的和快速传送的方法。
此外,如本文所说明的,使用网络内的多个分离的路径意味着攻击者将不得不监控端点间的所有可能的路径,了解数据流及其时序,并灵活地将它们结合到一起,而这被认为是不切实际的。另外,通过在每一个发送者和接收者处使用最少的软件和为发送者和接收者提供网络接口可实现本发明所述的方法,而且这些方法除去了密钥管理的复杂性、多个不同的攻击类型,也不需要复杂的安全策略管理。
权利要求
1.一种通过应用一次性密码本安全地存储数据的方法,所述方法包括以下计算机实施步骤接收第一数据流,所述第一数据流包括真正随机生成字符的密钥流;接收包括密文的第二数据流,其中在两个物理上分离的路由通信信道上接收所述第一和第二数据流,其中所述密文包括源文本,通过使用异或运算将所述密钥流应用到所述源文本,对所述源文本进行加密;使用所述密钥流对所述密文进行解密,导致产生和储存等同于所述源文本的解密数据。
2.根据权利要求1所述的方法,其中所述对所述密文进行解密的步骤包括使用布尔异或运算将所述密文和密钥流按位结合。
3.根据权利要求1所述的方法,还包括以下步骤在接收所述第二数据流之前接收所述密钥流;缓存所述密钥流;以及其中所述对所述密文进行解密的步骤还包括以下步骤从所述高速缓冲存储器检索密钥流用于异或运算和用所述解密数据覆盖所述高速缓冲存储器中的所述被检索的密钥流。
4.根据权利要求3中所述的方法,还包括以下步骤在第一存储装置中接收和储存所述密钥流和在与所述第一存储装置分离的第二存储装置中接收和储存所述密文。
5.根据权利要求1中所述的方法,还包括以下步骤通过在网络的节点中建立第一和第二MPLS标记路径,在所述网络中分别为所述密钥流和密文建立第一和第二分离的路由通信路径。
6.根据权利要求1中所述的方法,还包括以下步骤通过确定所述第一和第二路径并传送所述密钥流和密文的数据包,在网络中分别为所述密钥流和密文建立第一和第二分离的路由通信路径,其中每个这样的数据包都具有一个在所述数据包中设置的IP-严格-路由-选项(IP-STRICT-ROUTE-OPTION)值和包括所述第一和第二路径中的一个的有效载荷。
7.根据权利要求1中所述的方法,还包括以下步骤使用真正随机值生成器在发送主机处生成所述第一数据流;生成第二数据流,所述第二数据流包括使用异或运算将源文本与所述第一数据流按位结合生成的密文;在所述发送主机和接收主机之间的网络中建立用于所述第一数据流的第一路由路径;在所述网络中建立用于所述第二数据流的第二路由路径,其中所述第二路由路径与所述第一路由路径在物理上完全分离;以及同时通过所述第一路由路径向所述接收主机传送所述第一数据流和通过第二路由路径向接收主机传送所述第二数据流。
8.根据权利要求7中所述的方法,还包括在将所述源文本与所述第一数据流结合之前压缩所述源文本的步骤。
9.根据权利要求1中所述的方法,其中同步接收所述第一数据流和所述第二数据流,其中所述解密步骤与接收所述第一数据流和所述第二数据流同时执行。
10.一种通过应用一次性密码本安全地储存数据的方法,所述方法包括以下计算机实施步骤接收包括基于一次性密码本生成的随机密钥流的第一数据流;接收包括密文的第二数据流;其中在两个物理上分离的通信信道上接收所述第一和第二数据流;在第一共享存储基础设施中储存所述密钥流,在与所述第一共享存储基础设施分离的第二共享存储基础设施中储存所述数据流。
11.一种通过应用一次性密码本安全地存储和传送数据的方法,所述方法包括以下计算机实施步骤基于一次性密码本生成密钥流;使用长度与所述源文本的长度相同的密钥流将明文数据加密成密文;在两个分离的网络路径上传送密文和密钥流。
12.根据权利要求11所述的方法,其中所述对明文进行加密的步骤包括将所述明文数据转换为由多个二进制数组成的源文本;使用真正随机数生成器生成与所述源文本长度相同的密钥流;对所述源文本和密钥流按位执行布尔异或函数,获得所述密文。
13.根据权利要求11所述的方法,其中通过使用第一MPLS标签标记用于承载所述密文的第一数据流和使用第二MPLS标签标记用于承载所述密钥流的第二数据流,来执行所述在两个分离的网络路径上传送密文和密钥流的步骤。
14.根据权利要求11所述的方法,其中所述在两个分离的网络路径上传送密文和密钥流的步骤包括通过声明用于承载所述密文的第一数据流的第一严格路由来建立第一路径和通过声明用于承载所述密钥流的第二数据流的第二严格路由来建立第二路径。
15.一种用于从服务供应商向用户安全地传送多媒体内容的方法,所述方法包括以下计算机实施步骤以明文形式从存储器检索所述多媒体内容;通过使用异或运算按位应用长度与所述多媒体内容长度相等的随机生成的密钥流,把所述多媒体内容由明文形式加密成密文;通过路由数据网络,经由两个物理上分离的路径将所述密文和所述密钥流传送给所述用户,其中通过使用异或运算将所述密钥流按位应用到所述密文,所述用户可以解密并观看所述明文形式的多媒体内容。
16.根据权利要求15中所述的方法,还包括以下步骤预先生成所述密钥流并在第一时间将所述密钥流传送给所述用户,第一时间比将所述密文传送给所述用户的第二时间早,其中通过检索所述密钥流并通过异或运算将所述密钥流按位应用到所述密文,所述用户可以解密并观看所述明文形式的多媒体内容。
17.一种承载用于通过应用一次性密码本安全地储存数据的一个或多个指令序列的计算机可读介质,当通过一个或多个处理器执行这些指令时,这些指令使得所述一个或多个处理器执行如权利要求1至16中任一项所述的步骤。
18.一种计算机系统,包括发送主机,通过通信网络以通信方式连接到接收主机;用于基于随机生成的密钥流加密明文数据的位于所述发送主机处的装置;用于在物理上分离的路由网络路径上传送所述密钥流和密文的装置;用于解密密文的位于所述接收主机处的装置;用于将所述密钥流和密文储存到物理上分离的共享存储基础设施中的位于所述接收主机处的装置。
19.一种用于安全地复制数据库的方法,所述方法包括以下计算机实施步骤在发送主机处通过网络连接检索所述数据库的源副本;通过使用异或运算按位应用长度与所述数据库源副本的长度相同的随机生成的密钥流,将所述数据库的源副本加密成密文;通过路由数据网络在两个物理上分离的路径上将所述密文和所述密钥流传送到接收主机,其中通过使用异或运算将所述密钥流按位应用到所述密文,所述接收主机可以解密所述密文并储存所述数据库的所述源副本的复制副本。
全文摘要
本发明提供了一种用于安全地传送和存储数据的方法。发送主机生成一个随机字符序列作为密钥流,以该密钥流作为一次性密码本。将密钥流与明文按位“异或”产生密文。将密钥流和密文通过物理上分离的通信路径路由到接收主机,接收主机通过使用“异或”运算将密钥流应用到密文对其进行解密。使用MPLS标记或者严格路由选项建立分离的路由路径。
文档编号H04L12/56GK1593033SQ03801574
公开日2005年3月9日 申请日期2003年1月29日 优先权日2002年2月1日
发明者保罗·格莱希奥夫 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1