CN107534549A - 数据流字块加密 - Google Patents

数据流字块加密 Download PDF

Info

Publication number
CN107534549A
CN107534549A CN201580078971.0A CN201580078971A CN107534549A CN 107534549 A CN107534549 A CN 107534549A CN 201580078971 A CN201580078971 A CN 201580078971A CN 107534549 A CN107534549 A CN 107534549A
Authority
CN
China
Prior art keywords
block
encryption
equal length
data
length
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
Application number
CN201580078971.0A
Other languages
English (en)
Other versions
CN107534549B (zh
Inventor
陈利群
彼得·托马斯·康布勒
迈克尔·文德兰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107534549A publication Critical patent/CN107534549A/zh
Application granted granted Critical
Publication of CN107534549B publication Critical patent/CN107534549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

在一些示例中,非暂时性机器可读存储介质具有机器可读指令,以使计算机处理器将数据流分段为每个具有固定长度的多个等长度字块,使用第一加密密钥分立地加密每个等长度字块,将第一加密后的等长度字块的位元的子集与第二加密后的等长度字块的位元的子集交换,以使两个字块每个具有等于固定长度的长度,并且使用第二加密密钥分立地加密每个字块。

Description

数据流字块加密
背景技术
密码加密可以通常涉及用于将明码文本消息或信息编码成暗码文本以使得明码文本对于未授权实体不可读或以另外的方式不连贯的技术。这种加密可以例如使用公共或私密加密算法以及私密加密密钥来执行以编码并解码暗码文本。此外,在一些加密方案中,也可以使用随机或伪随机单次数初始化向量(nonce initialization vector)以便于针对同一明码文本产生不同的暗码文本。
附图说明
现在将参照附图来描述各种示例的详细描述,其中:
图1是根据示例的***的示意图。
图2是根据示例的机器可读存储介质的示意图。
图3是根据示例的对于方法的流程图。
图4是根据另一示例的对于方法的流程图。
图5图示了根据另一示例的方法的步骤。
图6图示了根据图5的示例的方法的另一步骤。
图7图示了根据图5的示例的方法的另一步骤。
图8图示了根据图5的示例的方法的另一步骤。
图9图示了根据图5的示例的方法的另一步骤。
图10图示了根据图5的示例的方法的另一步骤。
具体实施方式
以下讨论涉及本公开的各种示例。尽管这些示例的一个或多个可以是优选的,本文所公开的示例不应解释或另外用作限定本公开的范围,包括权利要求。此外,以下说明书具有宽广的应用,并且任何示例的讨论仅意味着是该示例的示意说明,并非意在宣明包括权利要求的本公开的范围限定于该示例。遍及本公开全文,术语“一”和“某”意在指示特定要素的至少一个。此外,如本文所使用,术语“包括”意味着包括但不限于,术语“包含”意味着包含但不限于。术语“基于”意味着至少部分地基于。
如上所提供的,许多加密方案依赖于单次数(nonce)初始化向量的使用以这对同一明码文本产生不同的暗码文本。一些加密方案,诸如电子代码书(ECB)方案,根本不使用初始值。然而,这些方案通常遭受低安全性的问题并且可能泄漏不同明码文本的等同的公共部分。即,对于用户可能知道两个暗码文本的一部分是否是相同消息的加密版。尽管初始化向量的使用可以提供改进的语义安全性,如本文所述,在一些情形或应用中,初始化向量的使用可能是不期望的。例如,这种使用可以与重要通信以及存储成本相关联。此外,在一些情形中,如果向量并非足够独特、随机或保持私密,则这些向量的使用可能危害加密方案的安全性。此外,在一些应用中,诸如例如去重和可搜索加密应用,可能希望加密方案针对同一明码文本产生同一的加密文本。
本公开描述了尝试解决上述问题的用于加密信息的改进的***、方法和介质的实施方式。例如,本公开的特定实施方式可以提供确定性字块密码链方案,避免了公开不同明码文本的公共部分并且不使用初始值。本公开的一个实施方式涉及一种加密技术,该加密技术包括:使用加密密钥分立地加密数据流的等长度字块而不使用初始化向量,将第一等长度字块的数据的子集与第二等长度字块的数据的子集交换以使得交换后的字块两者具有等同的长度,以及随后使用加密密钥分立地加密交换后的字块两者。该技术与现有的用于加密信息的***、方法和介质相比可以呈现优点。例如,在本公开的特定实施方式中,可以加密信息而不依赖于初始值,同时仍然提供了可接受的安全性而***漏不同明码文本的等同的公共部分。一旦查阅了说明书和附图将使得本文所展示的实施方式的其他优点明显。
图1图示了可以用于加密信息的***100的示意图。如在以下进一步详细描述的,***100包括处理器102,以及存储器104,该存储器104存储当由处理器102执行时将数据流分段成多个字块(指令106)、使用加密密钥分立地加密这些字块(指令108)、将第一字块的数据的子集与第二字块的数据的子集交换(指令110)、使用加密密钥分立地加密字块(指令112)、以及将加密后的字块串接成单个暗码文本(指令114)的机器可读指令。以下将进一步详述包括处理器102、存储器104、以及指令106、108、110、112和114的***100的各种方面。
存储在存储器104上的指令106用于使处理器102将数据流分段成多个字块。如本文所使用的术语“数据流”能够例如涉及对于人类或对于计算机可读并有意义的明码消息或信息。例如,此类数据流可以是以文本消息、计算机代码(例如用于运行程序、产生图像等)、或用于在实体之间进行通信的任何其他合适的信息的形式。本文所使用的术语“明码文本”可以通常涉及在已经采取任何动作对其进行隐藏、压缩、或“消化(digest)”之前的数据的表达。此外,应当理解的是,在一些实施方式中,可以使用多层加密以使得一个加密算法的输出变为用于下一个的数据流输入。在此类实施方式中,输入至加密算法中的数据流可以例如是来自之前的加密过程的暗码文本。
如以上所提供的,当由处理器102执行时,指令106将数据流分段成多个字块。此类指令可以允许使用字块加密操作模式来加密数据流,该字块加密操作模式重复地应用字块密码的单个字块操作来安全地转换比单个字块更大的数据流。如本文所使用的术语“字块”可以例如涉及用于字块密码的固定长度的位组,诸如高级加密标准(AES)字块密码,其具有128位的字块大小。应当理解的是AES仅提供作为适用于本公开的许多加密算法的一个示例,并且可以使用其他算法,诸如三重数据加密标准(TDES)密码、国际数据加密算法(IDEA)密码、河豚(Blowfish)密码等。
在一些实施方式中,当由处理器102执行时指令106用于将数据流分段成每个具有固定长度的多个等长度字块,以及其长度大于零且小于固定长度的剩余字块。如以下所述,例如关于图5至图10的示例性方法,此类分段步骤可以用于字块密码操作模式,该字块密码操作模式采用暗码文本窃取以处理未被均匀地划分为字块的消息。
当由处理器102执行时,存储在存储器104上的指令108用于使处理器102使用加密密钥分立地加密数据流的每一个字块。由指令108执行的加密过程能够例如实施公共可获得的加密算法,诸如AES,或者另一合适的加密算法。通常而言,本文所使用的术语“加密密钥”可以涉及确定加密算法的函数输出的一条信息。作为示例,此类加密密钥可以用于控制密码算法的操作,以使得仅正确的密钥可以将加密后的文本转换为明码文本,并且反之亦然。加密密钥可以具有适于与加密所使用的密码算法一起使用的密钥大小。参考作为示例的AES操作算法,合适的密钥大小可以是128、192、或256位,或者另一合适的密钥大小。如上所述,在诸如去重和可搜索加密应用的应用中,在密码方面,初始化向量的使用可以不是必须的,并且在一些实施方式中,指令108用于使处理器102分立地加密数据流的字块而并未使用初始化向量。同样,在其他实施方式中,指令108用于使处理器102使用初始化向量来分立地加密数据流的字块。
当由处理器102执行时,存储在存储器104上的指令110用于使处理器102将第一字块的数据的子集与第二字块的数据的子集交换。例如,在一些实施方式中,第一字块的数据的子集与第二字块的数据的子集可以是相同大小的,以使得在交换步骤之后,两个字块保持相同大小。应当理解的是,可以使用来自每个字块的任何合适的数据子集。仅作为仅一个示例,第一字块的数据的子集可以是第一字块的码位的第一半(例如128位第一字块的最左侧64位)并且第二字块的数据的子集可以是第二字块的码位的第二半(例如128位第二字块的最右侧64位)。作为另一示例,在一些实施方式中,可以由字块的最左侧32位与字块的最右侧32位的组合而形成来自128位字块的64位数据子集。
在一些实施方式中,当由处理器102执行时,指令110用于使处理器102针对每个等长度字块分立地交换数据的子集。例如,第一字块的数据的第一子集可以与第二字块的数据的第二子集交换。在此步骤之后,第二字块的数据的第二子集可以与第三字块的数据的第一子集交换。在此步骤之后,第三字块的数据的第二子集可以与第四字块的第一子集交换,等等。在一些实施方式中,不同配对(或其他字块的组合)之间的交换操作可以同时地执行或者例如基于***100的处理能力而在任何合适的时间执行。应当理解的是,可以对以上实施方式做出修改。例如,在一些实施方式中,数据的子集可以与第三字块的数据的子集交换,并且在此步骤之后,第二字块的数据的子集可以与第四字块的数据的子集交换。
在一些实施方式中,给定字块的相同数据位元可以经由指令110(或分立的指令集合)多次“交换”以提供额外的或备选的安全性。作为示例,第一字块的数据的子集(“子集X”)可以与第二字块的数据的子集(“子集Y”)交换。在此步骤之后,子集X的数据(或者其一部分)可以与来自另一字块的数据的子集交换。在一些实施方式中,由指令110执行的交换过程可以迭代以便于实现所需的密码安全性等级。以下关于图5至图10提供此类实施方式的一个示例,其中交换过程(例如由指令110执行的交换过程)被多次重复。在指令110的交换过程之后,分段数据流的字块内的数据可以基于整个数据流而不是基于字块对而重新排序。
当由处理器102执行时,指令112用于使用加密密钥分立地加密数据流的每个字块。在一些实施方式中,可以由分立的加密密钥分立地加密每个字块,或者可以使用公共密钥来分立地加密每个字块。应当理解的是,由指令108执行的加密可以包括由指令108以及如上所述所执行加密的方面。另外,在一些实施方式中,指令112是与指令108的相同指令集合,并且针对由***100所使用的加密的每次迭代而调用多次。类似于指令108的特定实施方式,在一些实施方式中,指令112可以依赖于AES字块密码算法以分立地加密数据流的每个字块。
在一些实施方式中,由指令112使用的加密密钥是与由指令108的第一加密过程使用的加密密钥相同的加密密钥。在一些实施方式中,由指令112使用的加密密钥是与由指令108的第一加密过程使用的加密密钥不同的加密密钥。在一些实施方式中,由指令112使用的加密密钥与由指令108使用的加密密钥独立且随机地(或伪随机地)产生。应当理解的是,在一些实施方式中,可以从一个加密密钥而得到不同的加密密钥,或者不同的加密密钥具有一些其他的预示关系。
当由处理器102执行时,指令114用于将从指令112产生的加密后的字块串接成单个暗码文本。在一些实施方式中,暗码文本将具有等于原始数据流的大小,而在其他实施方式中,暗码文本将具有大于原始数据流的大小。例如,在一些实施方式中,指令114可以“填补(pad)”由串接加密后的字块所创建的密码文本以便于实现期望的暗码文本长度。在一些实施方式中,加密后的字块的大小或数目可以在加密或交换过程期间改变。例如,在一些实施方式中,128位的字块大小可以在加密步骤期间通过在每个字块中包括有意义或无意义的数据而“扩展”成192位的字块大小。此类扩展可以例如允许与给定加密算法不兼容的字块使用该算法来加密。在此类实施方式中,由串接加密后的字块产生的暗码文本可以比其原始数据流更大。
***100的处理器102的形式可以例如为中央处理单元(CPU)、半导体基微处理器、诸如数字图像处理单元之类的数字信号处理器(DSP)、适用于检索并执行存储在存储器104中的指令的其他硬件装置或处理元件、或者其合适的组合。处理器102可以例如包括芯片上的单个或多个内核、跨多个芯片的多个内核、跨多个装置的多个内核、或者其合适的组合。处理器102可以用于获取、解码、并执行本文所述的指令。作为备选或者除了检索并执行指令之外,处理器102可以例如包括至少一个集成电路(IC)、其他控制逻辑、其他电子电路、或包括用于执行存储在存储器104上的指令的功能的多个电子部件的以上项的合适组合。处理器102可以例如跨多个处理单元而实施,并且指令可以由***100的不同区域中的不同处理单元而实施。
***100的存储器104的形式可以例如为非暂时性机器可读存储介质,诸如合适的电子、磁性、光学、或其他物理存储设备以包括或存储诸如机器可读指令106、108、110、112和114之类的信息。此类指令可以可操作以执行本文所述的一个或多个功能,诸如关于图5至图10的方法或本文所述的其他方法。存储器104可以例如容纳于与***100的处理器102的外壳相同的外壳之内,诸如容纳于***100的计算机塔式机箱内。在一些实施方式中,存储器104和处理器102容纳于不同外壳中。本文所使用的术语“机器可读存储介质”可以例如包括随机访问存储器(RAM)、快闪存储器、存储装置驱动(例如硬盘)、任何类型存储碟(例如小型碟只读存储器(CD-ROM)、任何其他类型的小型碟,DVD等)等等、或者其组合。在一些实施方式中,存储器104可以与包括诸如其中软件可以在运行时刻驻留其中的随机访问存储器(RAM)的主存储器以及副存储器的存储器相对应。副存储器可以例如包括其中存储了机器可读指令的副本的非易失性存储器。应当理解的是,机器可读指令以及相关数据两者可以存储在存储器介质上,并且为了描述说明的目的,多个介质可以作为单个介质来对待。
存储器104可以经由通信链路116与处理器102通信。通信链路116可以对于与处理器102相关联的机器(例如计算装置)是本地或远程的。本地通信链路116的示例可以包括在机器(例如计算装置)内置的电子总线,其中存储器104是经由电子总线与处理器102通信的易失性、非易失性、固定、和/或可移除的存储介质中的一个。
在一些实施方式中,***100的一个或多个方面的形式可以为功能模块,该功能模块可以例如可操作以执行指令106、108、110、112或114、或者本文关于本公开的其他实施方式所述的其他功能中的一个或多个过程。本文所使用的术语“模块”涉及硬件(例如处理器诸如集成电路或其他电路)与软件(例如机器或处理器可执行指令、命令或代码,诸如固件、程序或对象代码)的组合。硬件与软件的组合可以包括仅硬件(即硬件元件不与软件元件组合)、驻留在硬件处的软件(例如存储在存储器处并在处理器处执行或解释的软件)、或者硬件与驻留在硬件处的软件。进一步应当理解的是,术语“模块”额外地有意涉及一个或多个模块或者模块的组合。***100的每个模块可以例如包括一个或多个机器可读存储介质以及一个或多个计算机处理器。
考虑到以上内容,应当理解的是,如上所述的***100的各种指令可以与分立和/或组合的功能模块相对应。例如,指令106可以与将数据流分段成多个字块的“分段模块”相对应,指令108可以与使用加密密钥分立地加密数据流的每一个字块的“加密模块”相对应,指令110可以与将第一字块的数据的子集与第二字块的数据的子集进行交换的“交换模块”相对应,指令112可以由以上加密模块或者由第二加密模块来执行,并且指令114可以与将加密后的字块串接成单个暗码文本的“串接模块”相对应。进一步应当理解的是,给定模块可以用于多个相关功能。仅作为一个示例,在一些实施方式中,单个模块可以用于将数据流分段成多个字块(例如与指令106的过程相对应)并且将加密后的字块串接成单个暗码文本(与指令114的过程相对应)。
图2图示了机器可读存储介质118,该机器可读介质118包括可以由处理器执行以加密数据流的各种指令。为了图示,本文提供的机器可读存储介质118的描述参考本公开的***100(例如处理器102)和其他实施方式的各种方面。尽管可以应用或另外与介质118合并***100的一个或多个方面(以及其对应的指令106、108、110、112和114),应当理解的是在一些实施方式中,介质118可以与该***分立地存储或者容纳。例如,在一些实施方式中,介质118的形式可以为随机访问存储器(RAM)、快闪存储器、存储装置驱动(例如硬盘)、任何类型的存储碟(例如小型碟只读存储器(CD-ROM),任何其他类型小型碟,DVD等)等等、或者其组合。
介质118包括存储在其上的机器可读指令120以使处理器102将数据流分段成每个具有固定长度的多个等长度字块。介质118的指令120可以结合参照***100如上所述的指令106的一个或多个方面,并且反之亦然。仅作为一个示例,在一些实施方式中,指令120用以将数据流分段成每个具有固定长度的多个等长度字块,并且其长度大于零且小于固定长度的剩余字块。
介质118包括存储在其上的机器可读指令122以使处理器102使用加密密钥分立地加密每个等长度字块。介质118的指令122可以包括参照***100如上所述的指令108和112的一个或多个方面,并且反之亦然。仅作为一个示例,在一些实施方式中,指令122可以实施诸如AES之类的已知加密算法或者实施另一合适的加密算法以分立地加密每个等长度字块。
介质118包括存储在其上的机器可读指令124以使得处理器102将第一已加密等长度字块的码位的子集与第二已加密等长度字块的码位子集交换以使得两个字块中的每一个具有等于固定长度的长度。介质118的指令124可以包括以上参照***100所述的指令110的一个或多个方面,并且反之亦然。例如,可以使用来自每个字块的位元的任何合适的子集。仅作为一个示例,第一字块的位元的子集可以是第一字块的位元的第一半(例如128位第一字块的最左侧64位),以及第二字块的位元的子集可以是第二字块的位元的第二半(例如128位第二字块的最右侧64位)。
介质118包括存储在其上的机器可读指令126以使处理器102使用加密密钥分立地加密每个字块。介质118的指令126可以包括以上参照***100所述的指令108和112和/或介质118的指令122的一个或多个方面,并且反之亦然。仅作为一个示例,在一些实施方式中,由指令126使用的加密密钥可以是与之前由介质118使用的加密密钥相同的加密密钥(例如在指令122中使用的加密密钥)。
图3是用于加密数据流的方法128的流程图。尽管方法128以及本文所述的其他方法的执行参照***100、介质118、以及以上所述本公开的其他方面,用于执行这些方法的其他合适的装置对于本领域技术人员将是明显的。图3的流程图中所示的方法128以及其他附图中所述的方法可以例如以存储在***100的存储器104上的可执行指令、存储在介质118上的可执行指令的形式、以电子电路的形式、或者另一合适的形式而实施。
方法128包括使用加密密钥而不使用初始化向量分立地加密数据流的等长度字块的步骤130。步骤130可以包括指令108的一个或多个方面,或者***100和/或指令122的另一合适的方面,或以上所述另一合适方面介质118(并且反之亦然)。仅作为一个示例,在一些实施方式中,步骤130包括将数据流分段成每个具有固定长度的多个等长度字块,以及其长度大于零且小于固定长度的剩余字块。
方法128包括将第一等长度字块的数据的子集与第二等长度字块的数据的子集交换以使交换后的两个字块具有等同长度的步骤132。步骤132可以包括指令110的一个或多个方面、或***100和/或指令124的另一合适的方面、或者上述介质118的另一合适的方面(并且反之亦然)。例如,来自每个字块的位元的任何合适的子集可以在交换过程期间使用。仅作为一个示例,第一字块的位元的子集可以是第一字块的位元的第一半(例如128位第一字块的最左侧64位),第二字块的位元的子集可以是第二字块的位元的第二半(例如128位第二字块的最右侧64位)。
方法128包括使用加密密钥分立地加密来自步骤132的两个交换后的字块的步骤134。步骤134可以包括指令112的一个或多个方面、或***100和/或指令122的另一合适的方面、或者上述介质118的另一合适方面(并且反之亦然)。仅作为一个示例,在一些实施方式中,步骤134的加密可以实施诸如AES之类的已知的加密算法或另一合适的加密算法以分立地加密交换后的字块。
图4图示了根据本公开的方法128的另一示例。方法128包括在步骤134的加密之后将加密后的字块串接成单个暗码文本的额外的步骤136。步骤136可以包括指令114的一个或多个方面、或***100的另一合适的方面(并且反之亦然)。仅作为一个示例,在一些实施方式中,串接的暗码文本可以具有等于原始数据流的大小,而在其他实施方式中暗码文本将具有大于原始数据流的大小。
图5至图10图示了根据本公开的示例性加密过程的各种步骤。图5至图10的加密过程可以例如以存储在***100的存储器104上的可执行指令、存储在介质118上的可执行指令的形式、以电子电路的形式、或另一合适的形式而实施。图5至图10的加密过程开始于已经分段成50个字符的字块的数据流A(例如A1,A2,A3,A4和A5),在数据流的末端(A6)处具有数据流的剩余部分的字块,并且仅包括20个字符。应当理解的是,该分段可以例如如上所述参照指令106和/或指令120来执行。参照该示例的说明所使用的术语“字符”仅为了示意说明而提供。另外,应当理解的是,本公开的实施方式可以在位元层级或用于处理数据流的另一合适的层级操作。
图5图示了示例性的加密过程的步骤138,该步骤138可以与***100的加密指令108、介质118的指令122、和/或方法128的步骤130的一个或多个方面相对应。如图5中所示的,可以使用加密算法E以及相应的加密密钥K来加密数据流A的每个字块,以实现由相应的加密后的字块C1、C2、C3、C4和C6形成的相应的加密后的暗码文本C。为了示意性说明的目的,使用相同的加密算法E和相同的加密密钥K来加密每个数据流。然而,应当理解的是,可以针对不同的字块使用不同的加密算法和/或加密密钥。
图6图示了示例性加密过程中的步骤140,该步骤140可以例如实施采用字块密码的暗码文本窃取操作的一个或多个方面以处理未被均匀地划分成字块的消息。在此步骤中,由步骤138产生的暗码文本C的加密后的字块C5被分割成大小与数据流A的剩余字块A6中的数据W相等的数据的第一部分X(20个字符),以及对于来自字块C5的数据的剩余部分的数据的第二部分Y(30个字符)。数据W与数据Y合并以形成数据Z,使用加密算法E和加密密钥K加密数据Z以形成修改后的暗码文本C5’。数据X存储在暗码文本字块C6中。在该过程中的此阶段,暗码文本C的每个字块包括已经至少使用加密算法E加密过一次的数据。应当理解的是,可以对步骤140的以上描述说明进行修改以实现类似的功能-例如将合适量的数据添加至字块以使得可以对数据执行固定大小字块加密操作。例如,如上所述,数据Y是字块C5的最右侧30个字符。然而,应当理解的是,在一些实施方式中,数据Y可以是字块C5的最左侧30个字符。类似的,通过添加数据Y至数据W以形成数据Z,然而应当理解的是在一些实施方式中,可以通过添加数据W至数据Y以形成数据Z或者数据Y可以以多个碎片添加至数据W或者反之亦然。此外,在一些实施方式中,随机数据(例如不是来自数据流A或暗码文本C的任何其他字块的数据)可以添加至字块A6以使得字块A6大小适于允许由加密算法E加密。
图7图示了示例性加密过程中的步骤142,该步骤142可以例如与***100的指令110、介质118的指令124、和/或方法128的步骤132的一个或多个方面相对应。如图7中所示的,由步骤140产生的暗码文本的第一字块C2(可以是或不是暗码文本C的第一顺序字块)被划分为数据的第一部分V(25个字符)和数据的第二部分W(25个字符)。同样,由步骤140产生的暗码文本C的第二字块C3(可以是或不是字块C2之后下一个顺序字块)被划分为数据的第一部分X(25个字符)和数据的第二部分Y(25个字符)。为了示意说明的目的,为了便于描述图5至图10的示例性加密过程的各种步骤而对于数据的部分(例如W、V、X和Y)使用相同的参考字母。然而,从图5至图10明显的是,参考字母无需有意涉及示例性加密过程的不同步骤之间的相同数据。即,步骤142中涉及的数据W不必是步骤140中涉及的相同数据W。如图7中所示,数据V与数据Y组合以形成数据J,其使用加密算法E和加密密钥K加密以形成修改后的暗码文本字块C3’。尽管图7仅图示了在暗码文本字块C2和C3之间单个数据交换操作以形成修改后的暗码文本字块C2’和C3’,在该步骤中使用示例性加密过程以使用类似操作而形成修改后的暗码文本字块C1’、C4’和C5’。在此示例性的方法中,来自暗码文本字块C6的数据(其在如上所述步骤140中创建)并未与来自另一字块的数据交换。然而,应当理解的是,可以对步骤142做出合适的修改以提供关于字块C6的交换操作。
图8图示了示例性加密过程中的步骤144,该步骤144可以例如实施类似于以上参照步骤140所述的暗码文本窃取操作的一个或多个方面来。在此步骤中,由步骤142产生的暗码文本C的加密后的字块C5被划分为大小等于暗码文本C的剩余字块C6中数据X的数据的第一部分V(20个字符),以及来自字块C5的剩余数据的数据的第二部分W(30个字符)。数据X与数据W组合以形成数据K,使用加密算法E和加密密钥K加密该数据K以形成修改后的暗码文本字块C5’。数据V存储在修改后的暗码文本字块C6’中。如上参照步骤138所述的,应当理解的是可以对于步骤144的确切描述做出修改以实现类似的功能-即,添加合适量的数据至字块以使得可以对数据执行固定大小字块加密操作。
图9图示了示例性加密过程中的步骤146,其可以例如与步骤144的二次迭代相对应以进一步加密暗码文本C。即,由步骤144产生的暗码文本C的加密后的字块C5被划分为大小等于暗码文本C的剩余字块C6中数据X的数据的第一部分V(20个字符),以及来自字块C5的剩余数据的数据第二部分W(30个字符)。数据X与数据W组合以形成数据J,使用加密算法E和加密密钥K加密该数据J以形成修改后的暗码文本字块C5’。数据V存储在修改后的暗码文本字块C6’中。如以上参照步骤144所述,应当理解的是,可以对步骤146的确切说描述出修改以实现类似功能。
图10图示了示例性加密过程中的步骤148,该步骤148可以例如与步骤142的二次迭代相对应,以进一步加密暗码文本C。即,由步骤146产生的暗码文本C的第一字块C2(可以是或不是暗码文本C的第一顺序字块)被划分为数据的第一部分V(25个字符),以及数据的第二部分W(25个字符)。同样地,由步骤146产生的暗码文本C的第二字块C3(可以是或不是字块C2之后的下一个顺序字块)被划分为数据的第一部分X(25个字符)和数据的第二部分Y(25个字符)。如图10中所示,数据V与数据Y组合以形成数据J,使用加密算法E和加密密钥K加密该数据J以形成修改后的暗码文本字块C2’。同样地,数据X与数据W组合以形成数据L,使用加密算法E和加密密钥K加密该数据L以形成已修改暗码文本字块C3’。如上参照步骤142所述,尽管图10仅示出了暗码文本字块C2和C3之间单个数据交换操作以形成修改后的暗码文本字块C2’和C3’,在此步骤中使用示例性加密过程以使用类似的操作来形成修改后的暗码文本C1’、C4’和C5’。
尽管以上已经示出并描述了特定实施方式,可以做出形式和细节上的各种改变。例如,已经关于一个实施方式和/或方法所描述的一些特征可以涉及其他实施方式。换言之,关于一个实施方式所述的方法、特征、部件和/或属性可以用于其他实施方式中。进一步,应当理解的是,本文所述的***和方法可以包括所述不同实施方式的部件和/或特征的各种组合和/或子组合。因此,参照一个或多个实施方式所述的特征可以与本文所述的其他实施方式组合。
如本文所使用,“逻辑”是用于执行本文所述的特定动作和/或功能的备选或额外的处理资源,包括硬件例如各种形式的晶体管逻辑、专用集成电路(ASICs)等,与机器可执行指令、例如存储在存储器中并由处理器可执行的软件、固件等相反。进一步,如本文所使用,“一”或“许多”事物可以涉及一个或多个该事物。例如,“许多小配件”可以涉及一个或多个配件。此外,如本文所使用,“多个”事物可以涉及多于一个该事物。

Claims (15)

1.一种非暂时性机器可读存储介质,在所述机器可读介质上存储有机器可读指令,以使得计算机处理器:
(a)将数据流分段成多个等长度字块,所述字块中的每一个具有固定的长度;
(b)使用第一加密密钥分立地加密每个等长度字块;
(c)将第一加密后的等长度字块的位元的子集与第二加密后的等长度字块的位元的子集交换,以使两个字块中的每个具有等于所述固定长度的长度;并且
(d)使用第二加密密钥分立地加密每个字块。
2.根据权利要求1所述的介质,其中,所述指令用于使所述处理器执行步骤(b)和(d)的加密而不使用初始化向量。
3.根据权利要求1所述的介质,其中,所述指令用于使所述处理器使用高级加密标准(AES)加密方法来执行步骤(b)和(d)的加密。
4.根据权利要求1所述的介质,其中,所述第一加密密钥和所述第二加密密钥是相同的密钥。
5.根据权利要求1所述的介质,其中,所述指令用于使所述处理器执行步骤(c)的交换,以使所述第一等长度字块的位元的所述子集是所述第一等长度字块的位元的第一半,并且所述第二等长度字块的位元的所述子集是所述第二等长度字块的位元的第二半。
6.根据权利要求1所述的介质,其中,所述指令用于使所述处理器:
(e)在步骤(d)之后,将第一加密后的等长度字块的位元的子集与第二加密后的等长度字块的位元的子集交换,以使两个字块中的每个具有等于所述固定长度的长度;并且
(f)使用第三加密密钥分立地加密步骤(e)的每个字块。
7.根据权利要求6所述的介质,其中,所述第一加密密钥、所述第二加密密钥、以及所述第三加密密钥是相同的密钥。
8.根据权利要求1所述的介质,其中,所述指令用于使所述处理器针对每个等长度字块分立地执行步骤(c)的所述交换。
9.根据权利要求1所述的介质,其中,所述指令用于使所述处理器执行步骤(a)的所述分段,以将所述数据流分段为多个等长度字块以及剩余字块,其中所述多个等长度字块中的每一个具有固定长度,并且所述剩余字块的长度大于零且小于所述固定长度,并且
其中所述指令用于进一步使所述处理器:
(e)将所述剩余字块的位元与等长度的来自预定的等长度字块的加密后的位元集合交换,并且
(f)使用第三加密密钥加密所述预定的等长度字块。
10.根据权利要求9所述的介质,其中,所述指令用于使所述处理器在执行步骤(b)之后并且在执行步骤(c)之前,执行步骤(e)和(f)的操作。
11.根据权利要求1所述的介质,其中,所述指令用于使所述处理器在执行步骤(d)之后,执行步骤(e)和(f)的操作。
12.一种方法,包括:
(a)使用加密密钥并且不使用初始化向量来分立地加密数据流的等长度字块;
(b)将第一等长度字块的数据的子集与第二等长度字块的数据的子集交换,以使两个交换后的字块具有相等的长度;并且
(c)使用所述加密密钥分立地加密两个交换后的字块。
13.根据权利要求12所述的方法,进一步包括:
(d)将步骤(c)的加密后的字块串接成单个暗码文本。
14.一种***,包括:
处理器;以及
存储器,所述存储器存储机器可读指令以使所述处理器:
(a)将数据流分段成多个字块;
(b)使用加密密钥分立地加密所述数据流的每个字块;
(c)将第一字块的数据的子集与第二字块的数据的子集交换;
(d)使用所述加密密钥分立地加密所述数据流的每个字块;并且
(e)将加密后的字块串接成单个暗码文本。
15.根据权利要求14所述的***,其中,所述指令用于使所述处理器:
执行步骤(a)的所述分段,以将所述数据流分段为多个等长度字块以及剩余字块,其中所述多个等长度字块中的每一个具有固定长度,并且所述剩余字块的长度大于零且小于所述固定长度;并且
在步骤(b)的所述加密之前,将所述剩余字块的位元与等长度的来自预定的等长度字块的加密后的位元集合交换。
CN201580078971.0A 2015-03-20 2015-03-20 可读存储介质、用于数据流字块加密的方法及*** Active CN107534549B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2015/021632 WO2016153457A1 (en) 2015-03-20 2015-03-20 Datastream block encryption

Publications (2)

Publication Number Publication Date
CN107534549A true CN107534549A (zh) 2018-01-02
CN107534549B CN107534549B (zh) 2020-06-30

Family

ID=56978360

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580078971.0A Active CN107534549B (zh) 2015-03-20 2015-03-20 可读存储介质、用于数据流字块加密的方法及***

Country Status (5)

Country Link
US (1) US10742400B2 (zh)
EP (1) EP3272060B1 (zh)
CN (1) CN107534549B (zh)
TW (1) TW201637395A (zh)
WO (1) WO2016153457A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10187200B1 (en) * 2017-12-18 2019-01-22 Secure Channels Inc. System and method for generating a multi-stage key for use in cryptographic operations
US10725743B2 (en) 2018-01-22 2020-07-28 John Rankin System and method for generating random numbers
WO2019152573A1 (en) 2018-01-31 2019-08-08 John Rankin System and method for secure communication using random blocks or random numbers
WO2019168978A1 (en) 2018-02-28 2019-09-06 John Rankin System and method for expanding a set of random values
US11483147B2 (en) * 2020-01-23 2022-10-25 Bank Of America Corporation Intelligent encryption based on user and data properties

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US20030165242A1 (en) * 2001-11-19 2003-09-04 Adrian Walker Confusion encryption
CN1531799A (zh) * 2001-04-07 2004-09-22 汤姆森许可公司 用于加密内容的方法和设备
WO2005081934A3 (en) * 2004-02-23 2005-12-08 Univ Columbia Computer-implemented methods and systems for generating elastic block ciphers for encryption and decryption
US20070198416A1 (en) * 2005-05-17 2007-08-23 Zhishen Ye Apparatus for secure digital content distribution and methods therefor
CN101061661A (zh) * 2004-10-20 2007-10-24 思科技术公司 加密方法
US8565421B1 (en) * 2009-01-15 2013-10-22 Marvell International Ltd. Block cipher improvements
CN103563325A (zh) * 2011-01-27 2014-02-05 安全第一公司 用于保护数据的***和方法
US20140101445A1 (en) * 2012-10-09 2014-04-10 Futurewei Technologies, Inc. Authenticated Encryption Support in ISO/IEC 23009-4
CN104040934A (zh) * 2011-12-15 2014-09-10 英特尔公司 当被云服务操控时保护图像隐私

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4924515A (en) * 1988-08-29 1990-05-08 International Business Machines Coprporation Secure management of keys using extended control vectors
US20040131181A1 (en) * 2002-04-03 2004-07-08 Rhoads Steven Charles Method and apparatus for encrypting content
US8127130B2 (en) 2006-04-18 2012-02-28 Advanced Communication Concepts, Inc. Method and system for securing data utilizing reconfigurable logic
KR20080072345A (ko) * 2007-02-02 2008-08-06 삼성전자주식회사 암호화 장치 및 그 방법
US9336160B2 (en) 2008-10-30 2016-05-10 Qualcomm Incorporated Low latency block cipher
US8687802B2 (en) 2009-03-30 2014-04-01 The Regents Of The University Of California Method and system for accelerating the deterministic enciphering of data in a small domain
US8189775B2 (en) 2010-02-18 2012-05-29 King Fahd University Of Petroleum & Minerals Method of performing cipher block chaining using elliptic polynomial cryptography
US8687803B2 (en) * 2011-09-14 2014-04-01 Apple Inc. Operational mode for block ciphers
US8726037B2 (en) 2011-09-27 2014-05-13 Atmel Corporation Encrypted memory access
US9100184B2 (en) 2011-12-22 2015-08-04 Intel Corporation Instructions processors, methods, and systems to process BLAKE secure hashing algorithm
US9008308B2 (en) * 2012-02-08 2015-04-14 Vixs Systems, Inc Container agnostic decryption device and methods for use therewith
US9798893B2 (en) * 2015-01-29 2017-10-24 International Business Machines Corporation Secure format-preserving encryption of data fields

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
CN1531799A (zh) * 2001-04-07 2004-09-22 汤姆森许可公司 用于加密内容的方法和设备
US20030165242A1 (en) * 2001-11-19 2003-09-04 Adrian Walker Confusion encryption
WO2005081934A3 (en) * 2004-02-23 2005-12-08 Univ Columbia Computer-implemented methods and systems for generating elastic block ciphers for encryption and decryption
CN101061661A (zh) * 2004-10-20 2007-10-24 思科技术公司 加密方法
US20070198416A1 (en) * 2005-05-17 2007-08-23 Zhishen Ye Apparatus for secure digital content distribution and methods therefor
US8565421B1 (en) * 2009-01-15 2013-10-22 Marvell International Ltd. Block cipher improvements
CN103563325A (zh) * 2011-01-27 2014-02-05 安全第一公司 用于保护数据的***和方法
CN104040934A (zh) * 2011-12-15 2014-09-10 英特尔公司 当被云服务操控时保护图像隐私
US20140101445A1 (en) * 2012-10-09 2014-04-10 Futurewei Technologies, Inc. Authenticated Encryption Support in ISO/IEC 23009-4

Also Published As

Publication number Publication date
CN107534549B (zh) 2020-06-30
US20170279603A1 (en) 2017-09-28
EP3272060A4 (en) 2018-03-14
US10742400B2 (en) 2020-08-11
EP3272060A1 (en) 2018-01-24
WO2016153457A1 (en) 2016-09-29
TW201637395A (zh) 2016-10-16
EP3272060B1 (en) 2019-05-01

Similar Documents

Publication Publication Date Title
TWI750223B (zh) 區塊鏈加密射頻晶片存儲設計方法
CN107534549A (zh) 数据流字块加密
CN103748827B (zh) 用于无线数据保护的***和方法
CN107690681B (zh) 用于集成电路数据路径保密性及其扩展的技术
CN102138300B (zh) 消息认证码预计算在安全存储器中的应用
CN105049400B (zh) 在白盒实现方案中拆分s盒以防止攻击
JP5167348B2 (ja) ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置
US8811612B2 (en) Using file metadata for data obfuscation
CN105721135A (zh) 在加密实施中的替换盒
JP4758904B2 (ja) 機密情報処理方法
CN110505054B (zh) 一种基于动态白盒的数据处理方法、装置及设备
WO2012157279A1 (ja) 順序保存暗号化システム、装置、方法及びプログラム
US7657034B2 (en) Data encryption in a symmetric multiprocessor electronic apparatus
CN101167301B (zh) 机密信息处理用主机及机密信息处理方法
CN117171202A (zh) 一种数据查询方法及装置
US10469245B2 (en) Cryptographic system and method
CN114430321B (zh) 基于dfa自适应安全的黑盒可追踪密钥属性加密方法及装置
CN112134701B (zh) 敏感关键字可否认编辑加密方法
CN106682525A (zh) 文件保护方法及装置
Datta et al. Adaptively Secure Streaming Functional Encryption
CN117992989B (zh) 一种解密方法、***、装置及存储介质
CN116055188B (zh) 设备的双向认证方法、双向认证装置及双向认证***
US11121884B2 (en) Electronic system capable of self-certification
CN113468544B (zh) 一种应用模型的训练方法及装置
CN117278212A (zh) 密钥生成方法、装置、***、电子设备及可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant