CN103457718A - 使用可变长度分段和固定分组加密的部分密文更新 - Google Patents
使用可变长度分段和固定分组加密的部分密文更新 Download PDFInfo
- Publication number
- CN103457718A CN103457718A CN2013102528101A CN201310252810A CN103457718A CN 103457718 A CN103457718 A CN 103457718A CN 2013102528101 A CN2013102528101 A CN 2013102528101A CN 201310252810 A CN201310252810 A CN 201310252810A CN 103457718 A CN103457718 A CN 103457718A
- Authority
- CN
- China
- Prior art keywords
- section
- segment
- grouping
- renewal
- initialization vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
本发明披露了一种重新加密器,其比较更新段和原始段的散列码摘要,以找到有改变的段,再对其进行重新加密。对于每个有改变的段,将一个新的初始化向量输入到分组密码引擎。因为只有改变段需要重新加密,所以可以减少传输到远程加密存储的传输带宽。只有一个单一更新和改变量的密文可以减少至一个段。段有一个可变长度,其通过寻找匹配段分隔符的匹配比特而分割。每个段可以有许多固定长度的分组块,分组块由分组密码引擎对那些段使用相同的初始化向量进行加密。段分隔符是一个随机生成的字,其和初始化向量一起包含在元数据中。可变长度段限制了密文的更新混乱,而固定长度分组能更有效地加密。段和分组的结合为更新提供了更好重新加密。
Description
【技术领域】
本发明涉及加密系统,特别涉及使用可变长度段(segment)和固定大小密码分组(cipher block,又称密码块)对部分更新的消息进行重新加密。
【背景技术】
加密是一种常见的保护数据的方法,无论数据是在一个非安全网络(如Internet)上发送,还是远程存储在一个可能有安全漏洞的地方。许多加密系统和标准是已知的。虽然这些现有加密系统是有效的,但是这些系统并非总是有效。
基于云的存储已经成为流行。现在,文档和文件都是存储或备份在一个远程位置上,而不是储存在本地,如个人计算机或公司的服务器上。当用户希望更新一个文档时,该用户从远程存储中取回该文档,更新该文档,然后将更新后的文档发回给远程存储位置。
通常是通过互联网访问来进行远程存储。出于安全考虑,文档和文件可以以加密格式存储在远程存储位置上。远程存储将加密的文档发送给用户,然后用户解密该文档,再更新该文档,并重新加密该文档。然后再将重新加密的文档通过互联网发送到远程存储。
图1显示现有技术中明文(clear text)的微小变化通常会导致加密的密文(cipher text)有较大变化。有时只有一小部分数据被改变,例如有时用户在一个远程存储的大文档中只更改了一个句子。
图1显示,用户在未加密的纯文本或明文中做了一个小小的变化,如将第一个字母小写的“a”改为大写的“A”。文档的其余部分保持不变。
在传统的加密系统里,一旦用户更新并保存,那么整个文档就被再次加密,并生成新的加密密文。新的密文和原来的密文通常是完全不同的。例如,原来的明文被加密成字符串“UuE0KHa8yp”,而更新后的密文被加密成字符串“cMWceJsjgo6”。
虽然这个完全改变的密文是安全的,但是通常需要新密文的整个文档被重新传送到远程存储位置上。因此,在一个文档中的一个小小变化,就需要在有限带宽的网络上传输大量的加密数据。
因此需要一种加密系统,其能更有效地更新加密密文。需要一种再加密系统,其仅仅改变部分密文,允许部分更新的密文通过网络传输用于远程存储。需要一种再加密系统,其能在一序列加密块内找到一段改变文本,然后仅仅重新加密改变的那段。需要一种加密系统,其使用固定大小的加密块和可变大小的段。
【附图说明】
图1显示现有技术中明文的微小变化通常会导致加密的密文有较大变化。
图2显示了一个有效的重新加密系统,其只对变化部分进行加密。
图3显示了一个重新加密系统。
图4显示了重新加密的本地计算机编程。
图5显示了使用固定长度分组密码对可变长度段的加密。
图6显示了使用固定长度分组密码对可变长度段的解密。
图7显示了使用固定长度分组密码对可变长度段的重新加密,其中仅仅对有变化的段再次加密。
图8是一个可变段固定分组加密器的方框图。
图9是重新加密器对有变化的段进行加密的方框图。
图10是使用可变长度段和固定分组的加密器的设置过程流程图。
图11A-B显示使用可变长度分段和固定分组加密的加密过程。
图12A-C显示使用可变长度分段和固定分组密码的解密过程。
图13A-E显示使用散列码摘要检测更新段的重新加密过程。
【发明详述】
本发明涉及加密的改进。以下描述使本领域技术人员能够依照特定应用及其要求制作和使用在此提供的本发明。所属领域的技术人员将明白对优选实施例的各种修改,且本文所界定的一般原理可应用于其它实施例。因此,本发明不限于所展示和描述的特定实施例,而是应被赋予与本文所揭示的原理和新颖特征一致的最广范围。
图2显示了一个有效的重新加密系统,其只对变化部分进行加密。本发明人已经开发出一种重新加密系统,其能观察到明文中的变化部分,有效地生成更新的密文。在这个例子中,原来的明文被加密成字符串“PcVRvbMtdS6”而更新的密文被加密成字符串“V/2jvbMtdS6”。在加密的字符串中,只有前四个字符被改变了。其余7个字符保持不变。
只有4个改变的字符会被发送到远程存储中,而不是重新传输、重新储存所有11个加密字符。由于大多数的加密字符串是没有改变的,可以使用各种各样的方法来利用此更新效率而提高各种其他系统的效率。例如,远程存储系统可以只存储改变的字符,而不是没有改变的字符。传输系统可以只发送改变的字符,从而减少所需带宽。可以使用表格、映射、链表、和其他方法将更新字符链接到它们在原来密文中的位置上,使得具有更新的全部字符串可以被重建。因此可以提高加密数据存储的存储更新效率。
图3显示了一个重新加密系统。例如,明文10是一个来自字处理程序的文档文件中的数据。即使在如字处理程序执行了一些特定程序的加密或加扰,明文10也被认为是未加密的和非安全的。明文10可以是简单的如文本编辑器的ASCII字符,虽然可能会被嵌入程序特定数据。
加密例程14对明文10进行加密,并输出密文12,密文12是在一个加密格式下的,被认为是安全的。密文12可在互联网上传输并通过一个远程云存储服务进行存储。
解密例程18对密文12进行解密,并输出明文10。重新加密例程16以密文12作为一个输入,以更新的明文10作为第二输入。重新加密例程16对更新的明文10进行加密,并比较更新的加密段和原来密文12的加密段,找到差异。重新加密例程16输出更新的加密段,作为最近更新的密文12。
加密例程14、解密例程18、和重新加密例程16可以在用户的计算机上执行、或在公司服务器上执行,使密文12产生,然后被传输到远程存储上。
图4显示了重新加密的本地计算机编程。海量存储24可以是一个本地存储设备,如硬盘驱动(HDD)、闪存驱动、光学驱动、或服务器存储。当用户从一个远程存储服务器上接收到密文12时,解密例程18'就从海量存储24上被加载到本地内存22,本地内存22可以是一个动态随机存取存储器(DRAM),中央处理单元(CPU)20从中读取数据和指令以执行。CPU20执行解密例程18'中的指令,将从海量存储24中复制到本地存储器22中的密文12进行解密。生成明文10在本地存储器22中,并复制到海量存储24中。加密例程14'和重新加密例程16'也以类似的方式执行。并不是以软件形式来执行所有加密步骤,例程可以启动硬件加密引擎26,以加速各种加密功能。
如图1所示,标准的加密方法会在密文中产生较大的变化。本发明的加密方法使用了一种新的方法,该方法结合了可变长度段和固定大小的块,从而在密文中产生一个较小变化。数据分割经常用于非加密数据,具有可变长度段的加密数据不常见。许多密码系统使用固定大小的加密块或这些块的倍数,而不是可变大小的加密段。本发明人找到更新的可变长度的加密段,然后对固定大小块的明文进行重新加密,形成这些更新的加密段。
图5显示了使用固定长度分组密码(block cipher)对可变长度段的加密。如通过将ASCII字符转换二进制格式,将一个明文字符串转换成一个比特流。产生用来控制加密过程的元数据。此生成的元数据包含段分隔符(P)、和段分隔符的长度(K比特)。图中显示了一个6比特的段分隔符(100110)的例子。因此,在此例子中P=100110和K=6。
由左到右解析此明文比特流,以搜索那些匹配段分隔符的比特,如图5中的虚线椭圆所示。一旦发现匹配,直至并包括段分隔符的那些比特就形成一个段。在找到段分隔符比特后,一个新段开始。因此,比特流被段分隔符分割为多个段。因为匹配段分隔符的比特可能出现在比特流内的任何地方,所以得到的段的大小是可变的,甚至是随机的。
最后的段并不一定是以段分隔符来结束的,很有可能是一个最大的段尺寸,使得一些大段可能不会以段分隔符来结束的。可以添加填充(padding)或使用密文窃取(ciphertext stealing)。
通过匹配段分隔符而将明文比特流分段后,每个段是加密的。每个段是使用一个或多个分组密码而加密的。分组密码具有固定长度,如高级加密标准(AES)-128使用固定分组长度128比特。每个分组密码需要一个随机数的输入,称之为初始化向量。段内的所有分组都使用同一初始化向量,但初始化向量对每一个新段是改变的。
一旦所有可变长度段内的所有固定大小的分组都被加密了,那么加密的比特流就被转换成一个字符串,添加元数据以产生密文。可以使用各种方法对元数据本身进行加密。每个段的随机初始化向量可以包括在元数据中。
图6显示了使用固定长度分组密码对可变长度数据段的解密。如果有必要,加密数据或密文就从一个字符串转换成一个比特流。该比特流被解析出元数据。所提取的元数据包含段分隔符P和该段分隔符的比特数K以及初始化向量。初始化向量到段之间的映射也可以包含在元数据中,或者隐含该映射。
使用第一初始化向量来解密加密比特流中的第一密文分组。由分组密文解密而产生的明文比特与段分隔符比较。如果没有找到匹配的,则使用同一初始化向量来解密下一个分组,并解密其他分组,直到找到一个与段分隔符的匹配。
一旦找到了匹配段分隔符的解密比特后,就标记段边界,开始一个新的段。从元数据中选择一个不同的初始化向量用于下一段的分组密码解密。一个或多个固定长度分组被解密,直到找到一个与段分隔符的匹配。
通过找到与段分隔符的匹配,或一旦达到最大段长度,就产生一个新段。最后一段以解密比特流的最后一个比特结束。如果需要的话,解密比特流转换为字符串,并以明文输出。
由于每个段具有不同的初始化向量,必须准确找到段边界,用于固定长度分组密码正确解密。通过寻找匹配分隔符的比特而找到段边界,如图6中的虚线椭圆所示。使用固定长度的分组用于实际加密/解密,这提供了一个更有效的加密引擎,如果直接加密和解密可变长度段的话。当明文有更新时,固定长度分组和可变长度数据段的结合可以有效产生较小的变化的密文,因为不变段具有相同密文。
图7显示了使用固定长度分组密码对可变长度段的重新加密,其中仅仅对有变化的段再次加密。在图7中,用户更新了明文,只改变了第一个字符,将一个小写“a”改成一个大写“A”。明文的更新及其重新加密的过程如虚线方框所示。
更新的明文被转换成一个比特流,从该加密流中解析出元数据而得到原来明文加密时使用的元数据。元数据包含段分隔符,将其从左到右地与更新的明文比特流相比较,直到找到一个匹配,如虚线椭圆所示。段分隔符的每次匹配,标志着一个段的结束。
无论是从原来的加密流,还是从更新后的加密流,对于每个段,可能会产生一个摘要(digest),如一个散列码(hash)。当散列码不匹配一个段时,该段被确定为一个有变化的段。或者,将更新段的所有比特都和原来段的所有比特相比较,用以检测到一个有变化的段。
使用从元数据获得的那些段的分组密码和初始化向量,对有变化的段再次加密。那些具有匹配摘要和没有改变的段,不需要进行再次加密。加密了的有变化的段,和其他没有改变的加密段合并形成加密比特流,它可以被转换成一个字符流并以密文输出。或者,只输出和传输该加密了的有变化的段,以及它们在原来比特流中的位置的一些指示,例如包括每个改变段的段号(segment number)或初始化向量。
由于只有有变化的段需要被加密、传输和存储,所以该方法对于CPU、网络和存储系统更为有效。而且仍然保持了安全性,因为每个段都有一个不同的初始化向量。为了能选择正确的初始化向量,必须准确找到段边界,以便固定长度分组密码准确解密。虽然仍然使用可变长度段,但是保留了固定长度分组密码的计算效率。可变长度段和固定长度密码的组合,计算效率高的同时也允许重新加密过程中仅仅更新有变化的段。
图8是一个可变段固定分组加密器的方框图。明文文件36包含文件大小为S字节的输入明文。当加密明文文件36时,滑动窗口42向右滑动,从明文文件36中获取一组比特。滑动窗口42中的K比特被发送到比较器40,用于和K比特的段分隔符相比较。段分隔符P是由随机数发生器34所产生的一个K比特的值,其中K是L、分组密码块大小(以字节为单位)、20之中的最大值。因此,段分隔符P的长度从来不会少于20比特。段分隔符P为每个明文文件36都生成一次。
当段分隔符P匹配滑动窗口42中的最后K比特时,比较器40就启动下一个段信号,使得初始化向量发生器32生成一个新的初始化向量(IV)给予下一个分组块。初始化向量发生器32内的管线延迟(Pipeliningdelays)一直保留当前分组块的初始化向量(IV),直到分组密码引擎30已经完成了当前段的所有数据的加密。前一个IV是被分组密码引擎30用于加密滑动窗口42中的最后L或更少的字节。分组密码引擎30输出加密字节到密文文件38。
当比较器40没有匹配到段分隔符和当前段、但滑动窗口42已经处理了L字节时,分组密码引擎30就对当前段中另一个L字节的分组块进行加密,并输出其加密字节到密文文件38。因此,可以为每个段加密几个固定长度L字节的分组块。当L大于20时,每个段至少为L比特长,或L/8字节长,因为段分隔符是L比特长。对于小于20的小L,段分隔符是20比特长,或2.5个字节。请注意,该段分隔符长度K是以比特为单位,而密码分组块尺寸L是以字节为单位。当分组密码引擎30是一个128比特AES加密时,L为128/8=16字节。
生成的每个初始化向量和段分隔符P,都由分组密码引擎30'进行加密,以产生加密的元数据,其被加入到密文文件38中。
在某些情况下,在明文文件36的一个很长序列比特中,可能都找不到段分隔符。可以施加一个最大段尺寸M,用以限制段的大小。当滑动窗口42已经处理了M字节,而比较器40找不到一个匹配的段分隔符时,那么就触发一个M-字节计数器(未示出),使下一个段信号被启动。最后一个段通常也不会以段分隔符而结束,但当达到明文文件36的文件末尾时,就启动下一个段信号,或启动文件末尾信号,使得分组密码引擎30'加密所有初始化向量和P,而分组密码引擎30对滑动窗口42剩余的字节进行加密。注意每个段中的最后一个分组块通常都少于L字节。
图9是一个对有变化的段进行重新加密的方框图。在重新加密过程中,如图7所示,通过如前所述的搜索段分隔符,更新的明文被分成段。也有必要去确定当前段何时发生变化,当前段何时没有改变(更新)。虽然当前段明文的所有比特都可以和原来文件明文的相应比特相比较,但是更快的方法是比较摘要。
散列函数50使用加密哈希函数(cryptographic hash function)从当前段明文比特产生一个散列码或摘要。相比段而言,更新的摘要具有更少比特。当加密原来的文件时,或在最近如再加密过程中,也可以为每个段都产生摘要,并存储为存储摘要52。存储摘要也可以被存储为一部分加密元数据,或在重新加密过程中从旧的密文中重新生成存储摘要。
摘要比较器54将来自哈希函数50的更新摘要和同一段的存储摘要52进行比较。当比较器54找到一个匹配时,那么当前段没有更新。存储段58内的存储加密段可以为该段而输出。
当比较器54确定更新的摘要不匹配当前段中的存储摘要时,那么当前段就发生了变化。启动分组密码引擎30,使用一个新的来自元数据的初始化向量,对当前段中的一个或多个分组块进行加密。连接器56将新的加密段和没有变化的存储段合并,它可以将更新的加密段和原始段按正确的顺序放置到输出密文中。或者,只输出更新段以及一些映射或顺序信息。
图10是加密器使用可变长度段和固定长度分组块的设置过程流程图。在步骤140,选择一个具有L字节固定大小的分组密码功能,如L=16字节的AES-128。在步骤142,确定明文文件的大小是S字节。在步骤144,确定可变长度段的最大段尺寸。最大段尺寸M是L和S/2之中的最大值。对于大多数文件,最大段尺寸是文件大小的一半,但对于很小的文件,最大段尺寸就是分组块尺寸L。
在步骤146,设置段分隔符的大小。分隔符的大小是K比特,K是L和20之中的最大值。因此,当L是16个字节时,分隔符的大小是20比特。当分组块的大小L是24个字节时,分隔符的大小是24比特。请注意,L是以字节为单位,K是以比特为单位。
段分隔符的大小K一旦确定后,就产生段分隔符本身,例如通过一个随机数发生器而产生。在步骤148,段分隔符P被生成为一个随机产生的K比特串。
图11A-B显示使用可变长度分割和固定分组加密的加密过程。在步骤101,这个过程开始于明文文件F的第一个字节。在步骤102,指针PTR初始化为零。在步骤104,使用K字节滑动窗口,从PTR到PTR+K-1,从左到右扫描明文文件F。滑动窗口的当前位置是由指针PTR确定。
在步骤106,比较滑动窗口的最后K比特和K-比特段分隔符P。如果步骤106没有发现段分隔符匹配,在步骤108又没有到达明文文件的末尾,也没有到达最大段长度M,那么在步骤110递增指针PTR,返回步骤104,使明文文件F的下一个字节扫描入滑动窗口,重复步骤106,与段分隔符比较。
在步骤106,当滑动窗口中的最后K比特与段分隔符相匹配时,或者在步骤108当到达明文文件F的末尾时,或者当到达最大段尺寸M时,那么已经到达了段末尾。过程在图11B中继续。在步骤122,滑动窗口中的最后一个字节被标记为段边界。这最后一个字节是当前段中的最后一个字节,在PTR+K-1,其中K是以字节为单位。需要注意的是,滑动窗口每次递增一个字节,而不是每次递增一个比特,虽然匹配是以K比特段分隔符来进行匹配的。因此,段分隔符必须对齐一个字节边界。当在明文中出现比特与段分隔符的匹配,但不对齐字节边界时,那么这些匹配比特会被忽略。
在步骤124,产生当前段的初始化向量(IV),如果之前没有产生的化。或者,可以从预先生成的IV列表中选择一个IV。在步骤126,使用选择的或产生的IV,对当前分组块进行加密。所选择的IV是和L字节明文一起输入到分组密码引擎的。当前段可能会比L分组块更长,在这种情况下,使用同一初始化向量对连续的L-字节分组块进行加密。最后部分当前段可能比L字节更少,仍然作为当前段中的最后一个分组块进行加密。
然后在步骤128,将指针PTR递增K,滑动窗口中的字节数。在步骤132,当尚未到达明文文件末尾时,则从步骤104重复该过程,因为滑动窗口已经重设为开始下一段。
在步骤132,当已经到达明文文件末尾时,那么在步骤130,将段分隔符P、分隔符的比特数K(其可以是隐含入P的)、所有初始化向量都加密成元数据。加密的元数据可以附加到在步骤126为所有段产生的加密数据分组块中,或者加密的元数据可以被单独发送。
图12A-C显示使用可变长度分割和一个固定分组密码的解密过程。加密的文件是和一些元数据一起接收到的。在步骤160,如果必要的话,解密元数据,并解析出一系列初始化向量(IV)和段分隔符P。
在步骤162,该过程开始于加密文件的第一个字节。在步骤164,段指针SPTR和分组块指针BPTR都被初始化为零。在步骤166,从来自元数据的一系列IV中选择第一个初始化向量(IV)给第一段。在步骤168,使用该IV对一个固定长度的加密分组块进行解密,在加密文件中从分组块指针BPTR到BPTR+L-1。
在步骤169,一旦已经解密了L-字节的分组块,分组块指针BPTR递增分组块长度L。在步骤172,当分组块指针BPTR还没有到达滑动窗口末尾SPTR+K-1时,则需要在步骤168解密另一个分组块,以填补滑动窗口。一旦已经解密了足够的分组块来填补滑动窗口,在步骤172,BPTR大于或等于SPTR+K-1,那么该过程在图12B中继续。
在步骤174,从步骤168起就和解密分组块一起加载的滑动窗口从左至右就进行扫描,K字节的滑动窗口从段指针SPTR的SPTR+K-1。滑动窗口的当前位置是由段指针SPTR确定的。
在步骤176,滑动窗口的最后K比特与段分隔符P相比较。如果在步骤176没有发现与段分隔符的匹配,在步骤178还没有到达明文文件的末尾,也没有到达最大段长度M,那么在步骤170递增段指针SPTR,从而使滑动窗口在步骤174扫描到下一个解密字节,重复步骤176与段分隔符的比较。
在步骤172,如果没有足够的解密字节在滑动窗口,SPTR+K-1就大于BPTR,需要在步骤168解密另一个分组块,以填补滑动窗口。一旦已经解密了足够的分组块以填补滑动窗口,那么步骤172中BPTR大于SPTR+K-1,该过程在图12B中继续。
在步骤174,一旦有足够的解密字节在滑动窗口中,在步骤176,滑动窗口的最后K比特与段分隔符匹配,或者在步骤178当已经到达加密文件的末尾时,或已经到达最大段尺寸M时,那么已经到达了段末尾。过程在图12C中继续。
在步骤172,滑动窗口中的最后一个字节被标记为段边界。在步骤188,段指针SPTR递增K,滑动窗口的尺寸。在步骤190,分组块指针BPTR匹配段指针。在步骤182,如果尚未到达加密文件的末尾,那么该过程回到图12A的步骤166,重复步骤,从一系列IV中选择下一个初始化向量,开始处理下一段。在步骤182,如果已经到达加密文件的末尾,那么在步骤180通过将来自滑动窗口的所有段的解密数据和那些段的所有分组块连接在一起,输出解密的明文文件。
图13A-E显示一个重新加密过程,其使用散列码摘要(hashdigest)检测有变化的段。在图13A-B中,一个加密文件进行解密,以获得原始明文,然后一段段地处理这个原始明文,为每段都产生散列码摘要。
在图13C中,用户更新部分明文。一段段地处理该更新了的明文文件,为每个段取得散列码。在图13D中,从已更新文件的新散列码,与原始明文文件的原来的散列码进行比较。如果散列码匹配,那么使用原来存储的初始化向量去匹配段。如果散列码不匹配,那么产生一个新的初始化向量用于更新段(updated segment)。在图13E中,使用新的初始化向量对更新段进行加密,而使用原来的初始化向量对原始的没有改变的段进行加密。
在图13A中,在步骤200,一个加密文件进行解密,以重建原始文件F。例如通过解密元数据,也能得到原始文件的元数据。元数据包含一系列初始化向量,它们需要用于解密各个段。
一旦为原始文件F重建了明文,就为每个段生成散列码或摘要。如果散列码存储在元数据中,或通过其他方式可得,如在本地存储,那么过程就直接跳到图13C的步骤240。
在步骤201,散列码生成过程开始于重建的原始明文文件F的第一个字节。在步骤202,指针PTR初始化为零。在步骤204,使用K字节的滑动窗口从左至右地扫描该重建的明文文件F,从PTR到PTR+K-1。滑动窗口的当前位置是由指针PTR确定的。
在步骤206,比较滑动窗口的最后K比特和K-比特段分隔符P。如果步骤206没有发现与该段分隔符的匹配,在步骤208也没有到达该重建明文文件的末尾,没有到达最大段长度M,那么在步骤210指针PTR递增,回到步骤204,明文文件F的下一字节将被扫描入滑动窗口,重复步骤206,与段分隔符进行比较。
在步骤206,当滑动窗口中的最后K比特匹配段分隔符时,或者在步骤208,当到达明文文件F的末尾时,或者当到达最大段尺寸M时,那么就已经到达段末尾。过程在图13B中继续。在步骤222,滑动窗口中的最后那个字节被标记为段边界。最后字节是指当前段的最后字节,在PTR+K-1,其中K是以字节为单位。
在步骤224,一旦已经到达当前段末尾,对当前段中的明文进行散列码运算,以生成摘要。在步骤226,存储原始散列码,例如将其映射到元数据中一系列初始化向量中的下一个初始化向量。
然后在步骤228,指针PTR递增K,滑动窗口的字节数。在步骤232,当尚未到达明文文件的末尾时,那么过程回到步骤204,重设滑动窗口到下一段的开始。
在步骤232,当已经到达明文文件的末尾,那么就已经产生了原始明文文件F所有段的散列码摘要。
在图13C中,在步骤240,用户编辑明文文件F,例如添加或删除文件中一些文本或数据,或者更新文件中的数据。更新后的文件是更新的明文文件F'。现在处理此更新的明文文件,以获得更新的散列码摘要,对它们进行比较,以确定哪个段已经改变,哪个段没有改变。
在步骤238,更新文件F’的散列码的产生过程开始于更新明文文件F’的第一个字节。在步骤242,指针PTR初始化为零。在步骤244,使用K字节的滑动窗口从左至右地扫描该更新的明文文件F’,从PTR到PTR+K-1。
在步骤246,比较滑动窗口的最后K比特和K-比特段分隔符P。如果步骤246没有发现与段分隔符的匹配,在步骤248还没有到达明文文件的末尾,也没有到达最大数据段长度M,那么在步骤250递增指针PTR,以便在步骤244将明文文件F'的下一字节扫描入滑动窗口,重复步骤246,段分隔符进行比较。
在步骤246,当滑动窗口中的最后K比特与段分隔符相匹配时,或者在步骤248,当已经到达明文文件F'的末尾时,或者当已经到达最大段尺寸M时,那么就已经到达了段末尾。过程在图13D中继续。在步骤252,滑动窗口中的最后字节被标记为段边界。最后字节是指当前段的最后字节,在PTR+K-1,其中K是以字节为单位。
在步骤254,一旦已经到达当前段末尾,对当前段中的更新明文进行散列码运算,以生成更新摘要。在步骤256,比较该更新的散列码和原始散列码。原始散列码和下一段的初始向量在步骤226中存储了。
在步骤262,当更新的散列码不匹配原始散列码时,那么当前段并没有改变。在步骤266,从映射中或在原始元数据的一系列初始化向量中,读取原始初始化向量。
在步骤262,当更新的散列码不匹配原始散列码时,那么当前段就已经改变了。当前段被标记为更新或有变化。在步骤264,为该更新段产生一个新的初始化向量。
在图13E中,已经得到了初始化向量,无论是没有改变的段的原始IV,还是更新段的一个新IV。在步骤268,分组密码引擎使用该IV对当前段中的所有分组块进行加密。然后在步骤258,指针PTR递增K,滑动窗口的字节数。在步骤270,当尚未到达更新明文文件F'的末尾,那么过程回到步骤244,滑动窗口重设到下一段的开始。
在步骤270,如果已经到达明文文件的末尾时,在步骤272,段分隔符P、分隔符的比特数K、和所有初始化向量都顺序连接为元数据。在步骤274,为了安全,初始化向量的所有映射被破坏。加密的元数据可以附加到由步骤268产生的所有段的重新加密数据的分组块上,在步骤276,加密元数据可以被单独发送。
可以使用图13A-E中的过程来生成更新的密文字符串。作为在本地计算机上或在本地服务器上的一个后处理程序,可以将更新后的密文字符串和原来的密文字符串进行比较,找到改变所在。然后,在更新后的密文字符串中,只有改变的字符,以及改变字符在原来的密文字符串内的位置指示,才在互联网上传输到远程的加密存储。指示可以是一个序列号,其指示改变字符的顺序,或者可以是一个地址或更新字符之前的一串字符。
【其他实施例】
发明人还想到几个其它实施例。例如,各种操作和功能可以是管线的和并行执行的。可以添加缓存和管线寄存器或延误。段边界上的段标记不必是一个实际的标记,但可用于信号示意其他过程或功能。段标记不一定要保存。
各种参数的值已作为例子示出或描述。参数还可以有其它值的描述。段分隔符P可以有一个不同值,如16、40、或其他值。虽然段分隔符的长度K被描述为L或20之中的最大值,其中L是分组块的尺寸(以字节为单位),K是长度(以比特为单位),但是也可以使用其他功能。K可以是20、L/2之中的最大值,或是16、L*3之中的最大值,等等。虽然段分隔符已被描述为为每个明文文件36都生成一次,但是也可以使用不同的段分隔符用于每个段,或用于每一组段,每个段分隔符P都作为元数据而保存。
段分隔符的大小影响平均段大小。假设一个K比特的段分隔符S,假设一个随机字节串M,它的大小要大于K比特(1字节=8比特),S匹配M的最后K比特的概率为2K,即平均来说窗口要滑动2K次才会有一个匹配。如果K是20,平均大小将约1兆字节,因为窗口逐字节滑动。现在,如果段分隔符S的长度是K-字节长,那么匹配的概率将成为28K,并且平均大小将变得巨大,这是不现实的。
虽然分组密码引擎30已被描述为使用AES-128加密,但是也可以使用其他加密方法和标准,例如AES-256或DES,分组块尺寸L值也可以有其他值。虽然大多数分组块已经被描述为一个固定长度的分组块,但是文件中每个段的最后一个分组块,通常是小于固定长度的。对这些部分长度的末尾分组块,可以添加填充数据如全0或全1作为填充以达到固定大小,如128比特。
虽然散列函数50已经被描述为加密哈希函数,但是也可以使用其他摘要产生函数,如周期性冗余校验(CRC),或弗莱彻-32(Fletcher-32)。摘要的尺寸大小应该足够大,能防止高混叠的概率,混叠可能导致太多没有变化的段被处理为更新段,或可能导致更新段被错误地识别为一个没有变化的段。
更新一个原始段也有可能会导致一个额外的段分隔符出现在更新段里。那么原始段映射到两个更新段。或者,该更新可能会删除或移动段分隔符,使得两个原始段被改变为一个更新段。两个以上的段也可以被组合或分割。摘要匹配可以正确解决这些情况。
一系列初始化向量可以包括在元数据中,有一个映射表格或指针将到每个段与其初始化向量联系起来。段的原始序列,可以通过一个序列号来表明,或由一个映射表格来表示,该表格指示每个段条目序列内的顺序。也可以采用链表或指针指到下一段。元数据可以以任何使用的形式,或以某些其他形式包括这些序列信息。可以使用各种编码,也可以使用各种数据格式。
虽然已经描述了每个段都使用一个初始化向量,但是一个段也可以使用一个以上的初始化向量。分组加密引擎30可以有两个或两个以上的初始化向量的输入。多个初始化向量可以合并或连接在一起,形成一个较长的初始化向量。
当在明文中出现比特匹配段分隔符时,但又不对齐字节边界,这些匹配比特会被忽略。在一个备选实施例中,滑动窗口每次滑动一个比特,而不是每次滑动一个字节,那么段分隔符可以匹配任何K比特序列,而不是只是字节对齐的K比特序列。指针也可以递增另一个量,如4个字节,这需要段分隔符对齐一个32-比特的字边界。也可以有其他替代。
虽然已经描述了重新加密对于高效远程存储的好处,但是更有效的更新密文不仅仅减少所需带宽用于发送和接收该更新,而且也能减少存储系统的磨损和提高寿命。例如,通过在存储系统上更新较小的数据量,存储就会更少受到磨损。某些存储系统如基于闪存的存储,其只允许有有限数次的写擦除周期,因此,这样的存储系统可能受益于本发明。
重要的是,改变密文的量并不是很小,以至于要折中加密系统的安全性。虽然在图2中为了说明目的,显示仅仅改变密码文本中很少的字符,但是在现实中该变化有很多个字符长度,虽然仍远小于整个文档。加密系统的设计使得触发雪崩效应以抵抗熵相关的密码分析。可以实施重新加密方法,使得明文中只有一个比特的改变将产生密文中的至少64比特的改变,这是一个128比特AES密码分组的一半。
除了ASCII,可使用其他各种转换或映射用于字符串和比特流之间的转换。也可以增加加扰和解扰。元数据可以和加密数据分开传输,或者可以和加密的消息数据组合起来。元数据也可以不加密。明文10或密文12可以是原始比特流,而不是字符,所以字符和比特流格式之间没有必要进行转换。虽然已经使用了术语“明文”和“密文”,但是这些术语并不意在限制于ASCII文本或字符,但也可以包括原始比特或任何格式的数据。
虽然已经描述了比较段分隔符的比特和一个比特流,但是段分隔符也可以表示为一个字符串,这就要与明文文件中的字符相比较。虽然段边界被设置在与段分隔符匹配的比特的末尾,但是从匹配段分隔符的比特到段边界可能会有一个偏移量,比如段会结束在匹配比特后10个字节处,或者刚好在匹配比特前。
在不安全的通道上传输的元数据,并不包括每个段中的比特数,以保持段的安全性,反而必须通过匹配段分隔符来分隔段。有更新的或有改变的段可以使用和原始段相同的初始化向量,或者可以使用一个新的初始化向量,其和更新的加密段一起作为更新的元数据而被发送。
该过程步骤可以由硬件设备实施,如控制器或逻辑门阵列,或加密引擎。处理器可能执行固件中或半导体内存中的指令,例如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、或电可擦除可编程只读存储器(EEPROM)、或闪存、或硬连线ROM。例程的指令可以从大容量存储设备中复制到半导体内存中由硬件执行。
本发明背景技术部分可含有关于本发明的问题或环境的背景信息而非描述其它现有技术。因此,在背景技术部分中包括材料并不是申请人承认现有技术。
本文中所描述的任何方法或工艺为机器实施或计算机实施的,且既定由机器、计算机或其它装置执行且不希望在没有此类机器辅助的情况下单独由人类执行。所产生的有形结果可包括在例如计算机监视器、投影装置、音频产生装置和相关媒体装置等显示装置上的报告或其它机器产生的显示,且可包括也为机器产生的硬拷贝打印输出。对其它机器的计算机控制为另一有形结果。
出于说明和描述的目的已呈现了对本发明实施例的先前描述。其不希望为详尽的或将本发明限于所揭示的精确形式。鉴于以上教示,许多修改和变型是可能的。希望本发明的范围不受此详细描述限制,而是由所附权利要求书限制。
Claims (20)
1.一个可变段固定分组加密装置,包括:
输入,其用于接收一个明文;
滑动窗口,其滑动地选择所述明文的一部分;
比较器,其比较一个段分隔符和所述滑动窗口内的明文,以检测到段边界;
分组密码引擎,其接收所述明文的一个分组的比特,所述分组密码引擎也接收一个初始化向量,所述初始化向量调整所述分组密码引擎使用的一个加密函数,以从所述分组块中产生一个分组的密文;
初始化向量产生器,其产生初始化向量,其中为所述明文的每一段都产生一个不同的初始化向量;
选择器,当所述比较器检测到所述段边界时,其输入一个不同的初始化向量到所述分组密码引擎;
输出,其从所述分组密码引擎接收所述分组密文,作为所述明文的加密;
其中对于每个段边界,初始化向量都有改变。
2.根据权利要求1所述的可变段固定分组加密装置,其中所述段有一个可变长度,其随着段的不同而不同:
其中在一个段的段边界处的末尾分组有L或更少比特的明文,其他不在边界处的分组都正好有L比特明文;
其中L是至少64的整数;
其中其他分组有固定长度;
由此,通过匹配所述段分隔符而找到的可变长度段,由分组和初始化向量进行加密,初始化向量在段边界处会改变。
3.根据权利要求1所述的可变段固定分组加密装置,还包括:
随机数产生器,其产生一个K比特随机数的所述段分隔符;
其中所述滑动窗口选择至少K字节所述明文;
其中K是至少20的整数。
4.根据权利要求1所述的可变段固定分组加密装置,其中所述初始化向量产生器包括一个随机数产生器用于随机产生所述初始化向量。
5.根据权利要求1所述的可变段固定分组加密装置,其中所述分组密码引擎包括一个高级加密标准128比特(AES-128)加密器,其使用所述初始化向量作为一个控制向量输入,对128比特分组进行加密。
6.根据权利要求1所述的可变段固定分组加密装置,还包括:
元数据收集器,其收集所述段分隔符和所述初始化向量作为元数据,所述元数据传输到所述加密明文的一个授权接收器;
由此,所述段分隔符包含在所述元数据中。
7.根据权利要求1所述的可变段固定分组加密装置,还包括:
段比较器,其对一个原始明文文件的一个原始当前段和一个更新明文文件的一个当前更新段进行比较,当所述当前更新段对比所述原始当前段有改变时,所述段比较器会标记一个更新段;
重新加密器,当所述段比较器标记所述更新段时,其启动所述分组密码引擎,对所述更新段内的分组进行加密;
其中当所述段比较器没有标记更新段时,所述分组密码引擎不会被启动。
8.根据权利要求7所述的可变段固定分组加密装置,其中所述段比较器包括:
散列引擎,其用于为所述原始明文文件的所述原始当前段产生一个原始散列码摘要,并用于为所述更新明文文件的所述当前更新段产生一个更新散列码摘要;
摘要比较器,其比较所述原始散列码摘要和所述更新散列码摘要,以标记所述更新段;
由此,对于每个段,都会产生和比较散列码摘要。
9.一种对明文文件进行加密的方法:
使用一个电子计算设备产生一个段分隔符;
扫描所述明文文件,找到匹配所述段分隔符的匹配比特,当找到匹配比特时,找到一个段边界;
通过匹配所述段分隔符而找到的段边界,将所述明文文件分成段,,其中所述段有可变长度;
为每个段选择一个初始化向量,其中每个段都使用一个不同的初始化向量;
将每个段分成多个分组,每个分组有固定数目的比特,除了每个段的末尾分组外;所述末尾分组的比特数目要少于或等于所述固定数目比特;
对于每个段中的每个分组,将当前段的一个分组输入到一个分组密码引擎,并将所述当前段的所述初始化向量输入到所述分组密码引擎,启动所述分组密码引擎以产生一个密码分组的密文,其是所述当前段的所述初始化向量和所述当前段的所述分组的一个函数;
将由所述分组密码引擎产生的所述密码分组输出到一个密文文件,并输出所述初始化向量和所述段分隔符,作为所述密文文件的元数据;
由此,使用不同的初始化向量输入到所述密码分组引擎,所述密码分组引擎对所述段内的固定尺寸分组进行加密,从而对所述可变长度段进行加密。
10.根据权利要求9所述的方法,还包括:
将所述密码分组引擎产生的所述密码分组,存储入一个半导体存储器中,其中在所述明文文件加密后,所述密文文件是存储入所述半导体存储器中的。
11.根据权利要求10所述的方法,还包括:
当到达最大段尺寸又没有匹配所述段分隔符时,标示出一个段边界以将所述段分割出一个最大段尺寸,再开始一个新的段;
当到达所述明文文件的末尾时,标示出一个段边界以分割所述段;
将所述初始化向量和所述段分隔符加密成元数据,输出所述元数据用于所述密文文件。
12.根据权利要求11所述的方法,还包括:
为所述当前段产生一个原始摘要,所述原始摘要是所述当前段明文的一个散列函数或循环冗余校验(CRC)函数;
接收一个更新明文文件,其仅仅对所述明文文件做了部分修改;
扫描所述更新明文文件用以寻找匹配所述段分隔符的匹配比特,当找到所述匹配比特时,就找到了一个更新段边界;
在通过匹配所述段分隔符而找到的所述更新段边界处,将所述更新明文文件分成更新段,其中更新段的长度是可变的;
为当前更新段产生一个更新摘要,所述更新摘要是所述当前更新段的更新明文的一个散列函数或循环冗余校验(CRC)函数;
比较所述更新摘要和所述原始摘要,当所述更新摘要不匹配所述原始摘要时,将所述更新段标示为一个有改变的段,当所述更新摘要匹配所述原始摘要时,将所述更新段标示为一个没有改变的段;
为每个有改变的段选择一个更新的初始化向量,其中每个段都使用一个不同的初始化向量;
将每个有改变的段分成多个分组块,每个分组都有固定比特数目,除了每个改变段的末尾那个分组外,末尾分组的比特数目少于或等于所述固定比特数目;
对于每个改变段的每个分组,将所述改变段的一个分组输入到所述分组密码引擎,并将所述改变段的所述更新初始化向量输入到所述分组密码引擎,启动所述分组密码引擎以产生一个改变的密码分组密文,其是所述改变段的所述更新初始化向量和所述改变段的所述分组的一个函数;
将由所述分组密码引擎产生的所述改变的密码分组输出到一个改变的密文文件中,并将所述更新初始化向量和所述段分隔符输出为元数据用于所述改变的密文文件;
由此,改变段的位置由比较器找出。
13.根据权利要求12所述的方法,其中所述更新的明文文件包括至少10割段;
其中在所述更新明文文件中的单个字节的改变,将导致只有一个改变段,其中所有其他段都是没有改变的段;
由此,所述更新明文文件的小改变只产生一个改变段需要加密,其中所述更新明文文件中没有改变的段都不需要加密。
14.根据权利要求12所述的方法,还包括通过以下步骤从一个加密文件产
生所述明文文件:
初始化一个段指针;
初始化一个分组指针;
从一系列初始化向量中读取一个当前初始化向量;
使用所述分组密码引擎,解密所述加密文件中的一个分组,将所述解密明文加载到一个滑动窗口中;
将所述分组指针递增一个分组尺寸;
解密所述加密文件中的其余分组,并将所述分组指针递增一个分组尺寸,将解密明文加载入所述滑动窗口,直到所述分组指针大于所述段指针加上窗口尺寸;
扫描所述滑动窗口中的解密明文,寻找匹配所述段分隔符的匹配比特,当找到所述匹配比特时,就找到了一个段边界;
当扫描了所述滑动窗口而又没有找到段边界时,递增所述段指针;
当找到所述段边界时,将所述段指针递增窗口尺寸,将所述段指针拷贝到所述分组指针;
输出所述解密明文作为所述明文文件。
15.一个分段分组加密器,包括:
输入,其接收输入数据用于加密‘
滑动装置,用于从所述输入数据中选择一窗口数据,其中所述数据窗口是按顺序地选择输入数据的;
分隔装置,用于比较数据窗口内的输入数据和一个段分隔符,当找到一个匹配所述段分隔符的匹配时,标示出一个段边界;
分组密码装置,其使用一个基于初始化向量的加密函数,从一个分组的输入数据中产生一个加密分组;
初始化装置,用于产生多个初始化向量,其中在所述分隔装置检测到每个段边界后,就将一个不同的初始化向量输入到所述分组密码装置;
其中每个段都有一个可变长度的输入数据,而且每个段都包括多个分组,当所述段的长度大于所述分组的固定分组长度时;
其中所有分组都有所述固定分组长度的所述输入数据,除了通过所述段边界分隔的所述段末尾的最后那个分组,其长度小于所述固定分组长度;
输出装置,其输出由所述分组密码引擎所产生的加密数据;
由此,输入数据以分组形式进行加密,但是初始化向量在可变长度段的段边界处被改变。
16.根据权利要求15所述的分段分组加密器,其中所述固定分组长度是L字节,其中L是至少8的整数;还包括:
随机装置,用于产生所述段分隔符,其是K比特随机数,其中K是至少20的整数,当L大于20时,K等于L。
17.根据权利要求16所述的分段分组加密器,还包括:
最大装置,其用于当已经到达一个最大段尺寸而又没有找到所述段分隔符时,产生一个段边界;
其中所述最大段尺寸是至少所述固定分组长度L;
其中所述最大段尺寸不会超过所述输入数据文件大小的一半。
18.根据权利要求16所述的分段分组加密器,还包括:
段指针装置,用于在由所述滑动装置选择而包含入所述窗口的一序列所述输入数据中标示出一个位置;
段指针递增装置,当已经到达所述段边界时,其用于将所述段指针递增一个窗口尺寸,当在所述窗口中一组当前输入数据中没有找到匹配所述段分隔符的一个匹配时,其用于递增所述段指针。
19.根据权利要求18所述的分段分组加密器,还包括:
分组指针装置,用于在输入到所述分组密码装置用于加密或解密的一序列所述输入数据中标示出一个位置;
分组指针递增装置,当所述分组密码装置已经加密或解密了一个分组时,其用于将所分组指针递增一个分组尺寸;
边界递增装置,当已经到达所述边界时,其用于拷贝所述段指针装置的一个值以覆盖所述分组指针装置。
20.根据权利要求15所述的分段分组加密器,还包括:
摘要装置,用于产生一个段的一个压缩摘要,所述压缩摘要的比特数目要少于所述段的输入数据的比特数目;
摘要比较装置,用于比较一个更新段的压缩摘要和一个原始段的压缩摘要,以确定更新段跟原始段內容是否一样。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/903,114 | 2013-05-28 | ||
US13/903,114 US9237014B2 (en) | 2013-05-28 | 2013-05-28 | Partial CipherText updates using variable-length segments delineated by pattern matching and encrypted by fixed-length blocks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103457718A true CN103457718A (zh) | 2013-12-18 |
CN103457718B CN103457718B (zh) | 2016-04-20 |
Family
ID=49739715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310252810.1A Active CN103457718B (zh) | 2013-05-28 | 2013-06-24 | 使用可变长度分段和固定分组加密的部分密文更新 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9237014B2 (zh) |
CN (1) | CN103457718B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721882A (zh) * | 2016-04-18 | 2016-06-29 | 上海泥娃通信科技有限公司 | 一种分离编解码的方法和系统 |
CN108028754A (zh) * | 2016-04-28 | 2018-05-11 | 华为技术有限公司 | 加密、解密方法及装置 |
CN109714292A (zh) * | 2017-10-25 | 2019-05-03 | 华为技术有限公司 | 传输报文的方法与装置 |
CN110073330A (zh) * | 2016-12-13 | 2019-07-30 | Arm有限公司 | 复制元素指令 |
CN113132100A (zh) * | 2021-04-13 | 2021-07-16 | 电子科技大学 | 一种基于滑窗QC-LDPC码的McEliece体制加解密方法 |
CN113162763A (zh) * | 2021-04-20 | 2021-07-23 | 平安消费金融有限公司 | 数据加密及存储方法、装置、电子设备及存储介质 |
CN113221149A (zh) * | 2021-05-27 | 2021-08-06 | 深圳市共进电子股份有限公司 | 固件加密方法、装置、固件解密方法和计算机设备 |
US11947962B2 (en) | 2016-12-13 | 2024-04-02 | Arm Limited | Replicate partition instruction |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103684760B (zh) * | 2012-09-24 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 通信的加密和解密的方法、装置及系统 |
JP6364727B2 (ja) * | 2013-09-24 | 2018-08-01 | 日本電気株式会社 | 情報処理システム、分散処理方法、及び、プログラム |
US10873454B2 (en) * | 2014-04-04 | 2020-12-22 | Zettaset, Inc. | Cloud storage encryption with variable block sizes |
US9800401B2 (en) * | 2014-04-23 | 2017-10-24 | International Business Machines Corporation | Initialization vectors generation from encryption/decryption |
US10922292B2 (en) * | 2015-03-25 | 2021-02-16 | WebCloak, LLC | Metamorphic storage of passcodes |
US10671762B2 (en) * | 2015-09-29 | 2020-06-02 | Apple Inc. | Unified addressable memory |
WO2017066318A1 (en) * | 2015-10-12 | 2017-04-20 | Renesas Electronics America Inc. | Secure code delivery |
US10546138B1 (en) * | 2016-04-01 | 2020-01-28 | Wells Fargo Bank, N.A. | Distributed data security |
WO2018024658A1 (en) * | 2016-08-03 | 2018-02-08 | Abb Schweiz Ag | Method for storing data blocks from client devices to a cloud storage system |
US9614668B1 (en) * | 2016-09-14 | 2017-04-04 | ISARA Corporation | Conversion schemes for cryptography systems |
FR3059446B1 (fr) * | 2016-11-25 | 2019-07-05 | Institut Mines-Telecom / Telecom Bretagne | Procede d'insertion de donnees a la volee dans une base de donnees tatouees et dispositif associe. |
FR3060789A1 (fr) * | 2016-12-19 | 2018-06-22 | Commissariat A L'energie Atomique Et Aux Energies Alternatives | Procede d'execution par un microprocesseur d'un code machine polymorphique d'une fonction predeterminee |
US20180191492A1 (en) * | 2017-01-04 | 2018-07-05 | International Business Machines Corporation | Decryption-Side Initialization Vector Discovery |
CN110019994A (zh) * | 2017-11-13 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 数据加密、解密及查询方法、数据加密解密及查询装置 |
US10404458B1 (en) | 2017-11-17 | 2019-09-03 | ISARA Corporation | Multi-round key encapsulation process |
US10061636B1 (en) | 2017-12-22 | 2018-08-28 | ISARA Corporation | Conversion schemes for public key cryptosystems |
US10031795B1 (en) | 2017-12-22 | 2018-07-24 | ISARA Corporation | Using conversion schemes in public key cryptosystems |
US10909251B2 (en) * | 2018-08-24 | 2021-02-02 | Micron Technology, Inc. | Modification of a segment of data based on an encryption operation |
US11126757B2 (en) * | 2018-10-19 | 2021-09-21 | Microsoft Technology Licensing, Llc | Peripheral device |
US10885170B1 (en) * | 2018-11-20 | 2021-01-05 | Apotheka Systems Inc. | Methods, systems, and storage media for managing patient information using a blockchain network |
US10972256B2 (en) * | 2019-07-18 | 2021-04-06 | Ante Deng | Architectural secure system for digital file in cyberspace |
US11347895B2 (en) * | 2019-12-03 | 2022-05-31 | Aptiv Technologies Limited | Method and system of authenticated encryption and decryption |
CN114095153A (zh) * | 2020-08-05 | 2022-02-25 | 迈络思科技有限公司 | 密码数据通信装置 |
US11601257B2 (en) * | 2020-12-04 | 2023-03-07 | International Business Machines Corporation | Creating deterministic ciphertext using wide-block encryption |
CN112769846B (zh) * | 2021-01-18 | 2022-11-11 | 成都质数斯达克科技有限公司 | 密钥管理方法、装置、电子设备及可读存储介质 |
WO2023081407A2 (en) * | 2021-11-07 | 2023-05-11 | Ntt Research, Inc. | Cryptographic data message expansion for increasing adversarial storage requirements |
WO2023150248A1 (en) * | 2022-02-03 | 2023-08-10 | Atna-Cipher Llc | Systems and methods for an authenticating, threading, normalizing-iv and auto-keying (atna) cipher-mode |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1736030A (zh) * | 2002-10-30 | 2006-02-15 | 河床技术股份有限公司 | 用于存储器中数据压缩的基于内容的分段模式及包括等级分段表示的传输 |
US20070237327A1 (en) * | 2006-03-23 | 2007-10-11 | Exegy Incorporated | Method and System for High Throughput Blockwise Independent Encryption/Decryption |
CN101542961A (zh) * | 2005-07-27 | 2009-09-23 | 因特隆公司 | 在通信网络中加密数据 |
CN102804800A (zh) * | 2009-06-09 | 2012-11-28 | Emc公司 | 带有加密段的段去除重复系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956504A (en) | 1996-03-04 | 1999-09-21 | Lucent Technologies Inc. | Method and system for compressing a data stream in a database log so as to permit recovery of only selected portions of the data stream |
US20040199669A1 (en) | 2003-04-04 | 2004-10-07 | Riggs Nicholas Dale | Apparatus and method for efficiently and securely transferring files over a communications network |
US7894599B2 (en) | 2006-12-04 | 2011-02-22 | International Business Machines Corporation | Enhanced data security with redundant inclusive data encryption segments |
US8464075B2 (en) | 2009-06-18 | 2013-06-11 | Xerox Corporation | System and method for policy-driven file segmentation and inter-cloud file storage and retrieval |
CN101808095B (zh) | 2010-03-22 | 2012-08-15 | 华中科技大学 | 一种分布式存储环境下的加密副本组织方法 |
US8713300B2 (en) | 2011-01-21 | 2014-04-29 | Symantec Corporation | System and method for netbackup data decryption in a high latency low bandwidth environment |
-
2013
- 2013-05-28 US US13/903,114 patent/US9237014B2/en active Active
- 2013-06-24 CN CN201310252810.1A patent/CN103457718B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1736030A (zh) * | 2002-10-30 | 2006-02-15 | 河床技术股份有限公司 | 用于存储器中数据压缩的基于内容的分段模式及包括等级分段表示的传输 |
CN101542961A (zh) * | 2005-07-27 | 2009-09-23 | 因特隆公司 | 在通信网络中加密数据 |
US20070237327A1 (en) * | 2006-03-23 | 2007-10-11 | Exegy Incorporated | Method and System for High Throughput Blockwise Independent Encryption/Decryption |
CN102804800A (zh) * | 2009-06-09 | 2012-11-28 | Emc公司 | 带有加密段的段去除重复系统 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105721882A (zh) * | 2016-04-18 | 2016-06-29 | 上海泥娃通信科技有限公司 | 一种分离编解码的方法和系统 |
CN108028754A (zh) * | 2016-04-28 | 2018-05-11 | 华为技术有限公司 | 加密、解密方法及装置 |
CN110073330A (zh) * | 2016-12-13 | 2019-07-30 | Arm有限公司 | 复制元素指令 |
CN110073330B (zh) * | 2016-12-13 | 2023-09-08 | Arm有限公司 | 复制元素指令 |
US11947962B2 (en) | 2016-12-13 | 2024-04-02 | Arm Limited | Replicate partition instruction |
US11977884B2 (en) | 2016-12-13 | 2024-05-07 | Arm Limited | Replicate elements instruction |
CN109714292A (zh) * | 2017-10-25 | 2019-05-03 | 华为技术有限公司 | 传输报文的方法与装置 |
CN109714292B (zh) * | 2017-10-25 | 2021-05-11 | 华为技术有限公司 | 传输报文的方法与装置 |
CN113132100A (zh) * | 2021-04-13 | 2021-07-16 | 电子科技大学 | 一种基于滑窗QC-LDPC码的McEliece体制加解密方法 |
CN113162763A (zh) * | 2021-04-20 | 2021-07-23 | 平安消费金融有限公司 | 数据加密及存储方法、装置、电子设备及存储介质 |
CN113221149A (zh) * | 2021-05-27 | 2021-08-06 | 深圳市共进电子股份有限公司 | 固件加密方法、装置、固件解密方法和计算机设备 |
CN113221149B (zh) * | 2021-05-27 | 2024-02-09 | 深圳市共进电子股份有限公司 | 固件加密方法、装置、固件解密方法和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20140355754A1 (en) | 2014-12-04 |
US9237014B2 (en) | 2016-01-12 |
CN103457718B (zh) | 2016-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103457718B (zh) | 使用可变长度分段和固定分组加密的部分密文更新 | |
US9537657B1 (en) | Multipart authenticated encryption | |
KR102219476B1 (ko) | 데이터를 암호화하는 방법 및 그를 위한 장치 | |
US7860241B2 (en) | Simple universal hash for plaintext aware encryption | |
CN111756523B (zh) | 数据传输方法及装置 | |
US9608822B2 (en) | Method for generating an HTML document that contains encrypted files and the code necessary for decrypting them when a valid passphrase is provided | |
KR101516574B1 (ko) | 형태보존 암호화를 위한 가변길이 블록암호 장치 및 방법 | |
EP3178190B1 (en) | Encoder, decoder and method | |
CN109067814B (zh) | 媒体数据加密方法、系统、设备及存储介质 | |
CN102664740B (zh) | 一种基于远程授权的招投标文件加解密方法 | |
CN109194461B (zh) | 基于双密钥流密码的单向链表顺序加密解密方法 | |
US20090304180A1 (en) | Key evolution method and system of block ciphering | |
KR20080050934A (ko) | 조건부 인증 코드 삽입 방법 및 그 장치, 인증을 통한조건부 데이터 사용 방법 및 그 장치 | |
CN110830261B (zh) | 加密方法、装置、计算机设备及存储介质 | |
CN103117850B (zh) | 一种基于随机序列数据库的密码系统的建立方法 | |
Thomas et al. | Advanced cryptographic steganography using multimedia files | |
JP5411034B2 (ja) | データベース暗号化システム及び方法 | |
CN112528309A (zh) | 一种数据存储加密和解密的方法及其装置 | |
CN108494554B (zh) | 一种基于双明文的数据对称加密方法 | |
Soni | Performance Analysis of Cascaded Hybrid Symmetric Encryption Models | |
KR101224956B1 (ko) | 데이터 자동 암복호화 방법 및 장치 | |
CN112287374A (zh) | Excel密文文档恢复方法、计算机设备及存储介质 | |
CN113163232B (zh) | 一种基于混沌的多用户的视频文件加密系统及方法 | |
Walidaniy et al. | Improvement of PSNR by Using Shannon-Fano Compression Technique in AES-LSB StegoCrypto | |
Parekh | Using AES Encryption to Securely Embed Data in Video Files |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |