CN115242393A - 加密装置、解密装置、加密方法、解密方法和电子设备 - Google Patents
加密装置、解密装置、加密方法、解密方法和电子设备 Download PDFInfo
- Publication number
- CN115242393A CN115242393A CN202210754362.4A CN202210754362A CN115242393A CN 115242393 A CN115242393 A CN 115242393A CN 202210754362 A CN202210754362 A CN 202210754362A CN 115242393 A CN115242393 A CN 115242393A
- Authority
- CN
- China
- Prior art keywords
- ith
- plaintext
- bit
- block
- ciphertext
- 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.)
- Pending
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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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)
- Storage Device Security (AREA)
Abstract
本公开提供了一种加密装置,包括获取单元,用于获取待加密明文,待加密明文包括I个明文块,I个明文块中的每个明文块的长度为N比特;加密单元,用于利用以下方式得到I个密文块:当i取值从1依次取到I‑1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块;N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据;输出单元,用于输出I个密文块。本公开还提供一种解密装置、加密方法、解密方法和电子设备。
Description
技术领域
本公开涉及通信技术领域和信息安全领域,具体涉及一种加密装置、解密装置、加密方法、解密方法和电子设备。
背景技术
高级加密标准(Advanced Encryption Standard,AES)是一种区块加密标准。AES具有多种工作模式,例如电子密码本(ElectronicCode Book,ECB)、密码分组链接(CipherBlock Chain,CBC)、密文反馈(Cipher FeedBack,CFB)以及输出反馈(Output FeedBack,OFB)等模式。
标准AES加密算法的加密对象的数据块大小和加密使用的密钥大小均受到限制。例如在标准AES-128加密算法中,加密使用的密钥的大小为固定的128bit,加密对象也只能是大小固定为128bit的明文数据块。因此标准AES加密算法无法应用到更多不同的加密场景中,灵活性较差。
发明内容
本公开提供了一种加密装置、解密装置、加密方法、解密方法和电子设备。
根据本公开的一方面,提供了一种加密装置,该加密装置包括:获取单元,用于获取待加密明文,待加密明文包括I个明文块,I个明文块中的每个明文块的长度为N比特,其中,I和N均为正整数;加密单元,用于利用以下方式得到I个密文块:当i取值为1时,针对I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对第1明文块进行加密,得到第1密文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据;输出单元,用于输出I个密文块。在本公开实施例中,根据实际的加密场景,获取相应长度的明文块,再以明文块的长度为依据从密钥流中动态选择相应长度的密钥数据,对明文块进行加密,实现中动态可调的加密过程。
根据本公开实施例,加密单元包括:移位子单元,用于将第i向量移位N比特,得到具有空位的第i移位向量;第一运算子单元,用于将第i密文块或N比特密钥数据添加至第i移位向量的空位,得到第i+1向量;第二运算子单元,用于利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。在本公开实施例中,通过密文块或密钥流的N比特数据对初始化向量IV进行不断地移位更新,避免原始CFB和OFB的加密模式中初始化向量IV固定不变,从而提高加解密安全性。
根据本公开实施例,移位子单元用于:在N比特密钥数据为第i密钥流的最高N比特数据时,将第i向量左移N比特,得到具有空位的第i移位向量;在N比特密钥数据为第i密钥流的最低N比特数据时,将第i向量右移N比特,得到具有空位的第i移位向量。
根据本公开实施例,加密装置还包括:划分单元,用于响应于第一指令,将待加密明文划分为I个明文块,第一指令包括划分单位的比特数;存储单元,用于将来自划分单元的I个明文块的第i明文块存储在第i存储地址处,以及将来自加密单元的第i密文块存储在第i存储地址处。在本公开实施例中,根据实际的加密场景,通过划分单元将待密明文划分为具有相应长度的多个明文块,避免标准AES加密算法中因明文块长度固定为128bit而无法满足更多加密场景,从而增加加密过程的灵活性。划分单元在接收到划分指令后,再根据划分指令所指示的划分单元对待加密明文进行划分,充分保证加密过程中明文块长度的可调性。
根据本公开实施例,加密装置还包括:抽取单元,用于响应于第二指令,从第i密钥流中抽取第i密钥流的N比特密钥数据,并将第i密钥流的N比特密钥数据发送至加密单元,第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。在本公开实施例中,通过抽取单元实现对具有比特数“可调”的明文块进行加密。此外,抽取单元还实现对OFB加密模式中出初始化向量的移位更新。通过抽取模块既保证了加密过程的灵活性,又增强了加密过程的安全性。
根据本公开实施例,第i向量是基于初始化向量和基准密钥得到的,初始化向量为随机数。
根据本公开的另一方面,提供了一种解密装置,该解密装置包括:获取单元,用于获取待解密密文,待解密密文包括I个密文块,I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数;解密单元,用于利用以下方式得到I个明文块:当i取值为1时,针对I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对第1密文块进行解密,得到第1明文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对第i密文块进行解密,得到第i明文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对第I密文块进行解密,得到第I明文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据;输出单元,用于输出I个明文块。
根据本公开的另一方面,提供了一种加密方法,该加密方法包括:获取待加密明文,待加密明文包括I个明文块,I个明文块中的每个明文块的长度为N比特,其中,I和N均为正整数;利用以下方式得到I个密文块:当i取值为1时,针对I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对第1明文块进行加密,得到第1密文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据;输出I个密文块。
根据本公开的另一方面,提供了一种解密方法,该解密方法包括:获取待解密密文,待解密密文包括I个密文块,I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数;利用以下方式得到I个明文块:当i取值为1时,针对I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对第1密文块进行解密,得到第1明文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对第i密文块进行解密,得到第i明文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对第I密文块进行解密,得到第I明文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据;输出I个明文块。
根据本公开的另一方面,提供了一种电子设备,该电子设备包括:根据本公开实施例的加密装置和/或解密装置。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1是根据本公开的一个实施例的加密装置的示意框图;
图2A是根据本公开的一个实施例的加密单元的示意框图;
图2B是根据本公开的一个实施例的第i向量的示意图;
图3A是根据本公开的另一个实施例的加密装置的示意框图;
图3B是根据本公开的一个实施例的抽取N比特密钥数据的示意图;
图4A是根据本公开的一个实施例的加密装置的示意框图;
图4B是根据本公开的一个实施例的划分明文块的示意图;
图5A是根据本公开的一个实施例的加密装置的示意框图;
图5B是根据本公开的一个实施例的存储地址的示意图;
图6A是根据本公开的一个实施例的加密方法的流程图;
图6B是根据本公开的一个实施例的CFB加密过程的示意图;
图6C是根据本公开的一个实施例的OFB加密过程的示意图;
图7是根据本公开的一个实施例的解密装置的示意框图;
图8是根据本公开的一个实施例的解密方法的流程图;以及
图9是根据本公开的一个实施例的电子设备的示意框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
本公开提出的加密装置用于执行AES中的CFB和OFB加密模式。在标准的AES加密算法中,需要对明文进行分组,每一组明文的大小固定为128bit。根据密钥流长度,AES标准加密算法可以包括AES-128、AES-192和AES-256,相应地密钥流固定长度为128bit、192bit和256bit。在CFB加密模式中,通过初始化向量IV和基准密钥K生成固定长度的密钥流,然后将密钥流与明文进行异或操作生成密文。其中前一分组明文生成的密文参与后一分组的明文的加密运算。在OFB加密模式中,同样先通过初始化向量IV和基准密钥K生成固定长度的密钥流,然后利用密钥流与明文进行异或操作生成密文。但与CFB不同的是,OFB加密模式的前一分组明文加密运算利用的密钥流参与后一分组的明文的加密运算。
图1是根据本公开的一个实施例的加密装置的示意框图。
如图1所示,加密装置100包括获取单元110、加密单元120和输出单元130。
获取单元110获取待加密明文,待加密明文包括1个明文块,1个明文块中的每个明文块的长度为N比特。其中,I和N均为正整数。
可以根据实际的加密场景确定明文块的长度。示例性地,针对AES加密算法,明文块的长度范围为1~128bit。例如,待加密明文长度为128bit,待加密明文包括128个明文块,每个明文块的长度为1bit。再例如,需要按照每个字节对明文的进行加密,128bit的待加密明文包括16个明文块,每个明文块的长度为8bit。
加密单元120对I个明文块的第i明文块进行加密得到I个密文块。
例如,在CFB加密模式中,加密单元120执行的操作包括:当i取值为1时,针对I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对第1明文块进行加密,得到第1密文块,并根据第1密文块确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的。当i取值从2依次取到I-1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密文块确定第i+1密钥流。当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块。
例如,在OFB加密模式中,加密单元120执行的操作包括:当i取值为1时,针对I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对第1明文块进行加密,得到第1密文块,并根据第1密钥流的N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的。当i取值从2依次取到I-1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密钥流的N比特密钥数据确定第i+1密钥流。当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块。
密钥数据与明文块可以具有相同长度,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据。例如,当明文块长度为1bit时,密钥数据为密钥流的最高1bit数据或最低1bit数据。
输出单元130输出I个密文块。
输出单元130可以是在I个明文块全部被加密成I个密文块后,一起输出I个密文块,还可以是每当一个明文块被加密成一个密文块后,输出一个密文块,直至将所有密文块依次输出。
在本公开实施例中,根据实际的加密场景,获取相应长度的明文块,再以明文块的长度为依据从密钥流中动态选择相应长度的密钥数据,对明文块进行加密,实现中动态可调的加密过程。
图2A是根据本公开的一个实施例的加密单元的示意框图。
如图2A所示,加密单元220可以包括移位子单元221、第一运算子单元222和第二运算子单元223。
在CFB加密模式中,根据上一密文块确定对下一明文块加密时所需的密钥流。在该示例中,移位子单元221将第i向量移位N比特,得到具有空位的第i移位向量。第一运算子单元222将第i密文块添加至第i移位向量的空位,得到第i+1向量。第二运算子单元223利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。其中,i取值从1依次取到I-1。
在OFB加密模式中,根据上一密钥流的密钥数据确定对下一明文块加密时所需的密钥流。在该示例中,移位子单元221将第i向量移位N比特,得到具有空位的第i移位向量。第一运算子单元222将第i密钥流的N比特密钥数据添加至第i移位向量的空位,得到第i+1向量。第二运算子单元223利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。其中,i取值从1依次取到I-1。
第i向量是基于初始化向量和基准密钥得到的。第1向量为初始化向量,初始化向量为随机数。
以CFB为例,在本公开实施例中,对第1明文块加密时,通过初始化向量和基准密钥运算得到第1密钥流。在利用第1密钥的N比特数据对第1明文块完成加密,得到第1密文块后,对第2明文块开始执行加密。此时,移位子单元221对将第1向量移位N比特,得到具有空位的第1移位向量。第一运算子单元222将第1密文块添加至第1移位向量的空位,得到第2向量,实现对初始化向量的更新。第二运算子单元223再利用基准密钥对第2向量进行加密,得到第2密钥流,以利用第2密钥流的N比特数据对第2明文块进行加密。由此循环执行根据上一密文块确定对下一明文块加密所需时的密钥流的操作,直至完成对第I个明文块的加密。在得到第I个密文块后,移位子单元221和第二运算子单元223停止移位操作。
以OFB为例,在本公开实施例中,对第1明文块加密时,通过初始化向量和基准密钥运算得到第1密钥流。在利用第1密钥的N比特数据对第1明文块完成加密,得到第1密文块后,对第2明文块开始执行加密。此时,移位子单元221对将第1向量移位N比特,得到具有空位的第1移位向量。第一运算子单元222将第1密钥流的N比特数据添加至第1移位向量的空位,得到第2向量,实现对初始化向量的更新。第二运算子单元223再利用基准密钥对第2向量进行加密,得到第2密钥流,以利用第2密钥流的N比特数据对第2明文块进行加密。由此循环执行根据上一密钥流的N比特数据确定对下一明文块加密时所需的密钥流的操作,直至完成对第I个明文块的加密。在得到第I个密文块后,移位子单元221和第二运算子单元223停止移位操作。
结合图2B对CFB加密模式中的第i向量进行说明,图2B是根据本公开的一个实施例的第i向量的示意图。
如图2B所示,在该示例中,N=1,第i向量每次被移位1bit。第1向量为128bit的初始化向量,初始化向量的每1bit的数据分别为VI1~VI128。密文块(Cipher text block)的长度为lbit,第i密文块记为Bci。
在得到第1密文块后,移位子单元221对将第1向量向左移位1bit,得到最低位具有1bit空位的第1移位向量。第一运算子单元222将第1密文块Bc1添加至第1移位向量的1bit空位中,得到第2向量,实现对初始化向量的更新。以此类推,在得到第I向量时,初始化向量被向左移位(I-1)bit,且第I向量的最高位为原初始化向量的最低位的数据,其余(I-1)位数据被密文块Bc1~BcI-1替换。
当I的取值足够大时,初始化向量的数据将会完全被密文块替换。例如,对于图2B所示的128bit初始化向量,当I≥129时,在对第I明文块完成加密后,初始化向量的数据被全部更新。
在本公开实施例中,通过密文块或密钥流的N比特数据对初始化向量IV进行不断地移位更新,避免原始CFB和OFB的加密模式中初始化向量IV固定不变,从而提高加解密安全性。
本公开还提供一种移位子单元移位操作的实施例。
在N比特密钥数据为第i密钥流的最高N比特数据时,移位子单元221可以用于将第i向量左移N比特,得到具有空位的第i移位向量。在N比特密钥数据为第i密钥流的最高N比特数据时,移位子单元221还可以用于将第i向量右移N比特,得到具有空位的第i移位向量。
在N比特密钥数据为第i密钥流的最低N比特数据时,移位子单元221也可以用于将第i向量右移N比特,得到具有空位的第i移位向量。在N比特密钥数据为第i密钥流的最低N比特数据时,移位子单元221也可以将第i向量左移N比特,得到具有空位的第i移位向量
图3A是根据本公开的另一个实施例的加密装置的示意框图。
如图3A所示,加密装置300可以包括获取单元310、加密单元320、输出单元330和抽取单元340。
加密单元320包括移位子单元321、第一运算子单元322、第二运算子单元323和加密子单元324。
在本公开实施例中,获取单元310、加密单元320和输出单元330可以与图1中的获取单元110、加密单元120和输出单元130具有类似功能,为了简明,本公开不再赘述。可以理解,移位子单元321、第一运算子单元322和第二运算子单元323可以与图2中的移位子单元221、第一运算子单元222和第二运算子单元223具有类似功能,为了简明,本公开不再赘述。
与图1所示的加密装置100不同,如图3A所示,加密装置300还包括抽取单元340。抽取单元340响应抽取指令,从第i密钥流中抽取第i密钥流的N比特密钥数据,并将第i密钥流的N比特密钥数据发送至加密单元320。
抽取指令包括抽取密钥数据的比特数和抽取密钥数据的位置。抽取密钥数据的比特数为N,N与明文块的长度相关。抽取密钥数据的位置包括密钥流的最高位和最低位。
与图2所示的加密单元220不同,如图3A所示,加密单元220还包括加密子单元324。加密子单元324针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块。
在本公开实施例中,抽取单元340响应抽取指令,从第二运算子单元223运算得到的第i密钥流中抽取第i密钥流的N比特密钥数据,并将第i密钥流的N比特密钥数据发送至加密子单元324。加密子单元324针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块。
在CFB加密模式中,加密子单元324还可以将加密得到的第i密文块发送给第一运算单元322,第一运算单元322根据第i密文块更新第i向量。其中i取值从1依次取到I。
在OFB加密模式中,抽取单元340还可以将抽取得到的第i密钥流的N比特密钥数据发送给第一运算子单元322,第一运算子单元322根据第i密钥流的N比特密钥数据更新第i向量。
图3B是根据本公开的一个实施例的抽取N比特密钥数据的示意图。结合图3B对抽取单元340执行抽取密钥数据的过程进行说明。
如图3B所示,在该示例中,N=1,密钥流的长度为128bit,密钥流(Key steam)的每1bit密钥数据分别为S1~~S128。每次从最高位抽取1bit的密钥数据。
在本公开实施例中,通过抽取单元实现对具有比特数“可调”的明文块进行加密。此外,抽取单元还实现对OFB加密模式中出初始化向量的移位更新。通过抽取模块既保证了加密过程的灵活性,又增强了加密过程的安全性。
图4A是根据本公开的一个实施例的加密装置的示意框图。
如图4所示,加密装置400可以包括获取单元410、加密单元420、输出单元430和划分单元450。
在本公开实施例中,获取单元410、加密单元420和输出单元430可以与图1中的获取单元110、加密单元120和输出单元130具有类似功能,为了简明,本公开不再赘述。
与图1所示的加密装置100不同,如图4A所示,加密装置300还包括划分单元450。划分单元450响应于划分指令,将待加密明文划分为I个明文块。划分指令包括划分单位的比特数划分单位的比特数为N,与实际的加密需要相关。例如,外部设备输入以一个字节为单位对明文进行加密的指令,经过数据信息处理,生成以8bit为划分单位对待加密明文进行划分的划分指令。
划分单元450以N比特为单位,按照从待加密明文的最高比特到最低比特的顺序,依次划分明文块。
在公开实施例中,获取单元410与划分单元450连接,获取单元410从划分单元450中,获取I个明文块。
结合图4B对划分单元450划分明文块的过程进行说明,图4B是根据本公开的一个实施例的划分明文块的示意图。
如图4B所示,待加密明文的长度为I bit,待加密明文的每1bit明文(Plainttext)数据记为Pi。在该示例中,N=1,以1bit为划分单位,对待加密明文进行划分,得到I个明文块。
在本公开实施例中,根据实际的加密场景,通过划分单元将待密明文划分为具有相应长度的多个明文块,避免标准AES加密算法中因明文块长度固定为128bit而无法满足更多加密场景,从而增加加密过程的灵活性。划分单元在接收到划分指令后,再根据划分指令所指示的划分单元对待加密明文进行划分,充分保证加密过程中明文块长度的可调性。
作为一种可选实施例,在实际的加密过程中,由于待加密明文与划分单位之间的长度关系,待加密明文可能无法恰好被划分为I个长度为N比特的明文块。因此,划分单元450还用于以N比特为单位,按照从待加密明文的最高比特到最低比特的顺序,依次划分明文块,并在确定第I明文块不足N比特的情况下,对第I明文块进行补位,得到N比特的第I明文块。
示例性地,待加密明文的长度为129bit,以2bit为划分单位,对待加密明文进行划分。对待加密明文划分时得到的第I个明文块的长度为1bit,不足2bit。因此对第I明文块进行补位,得到2bit的第I明文块。例如,对第I密文块补充1bit的数据,补位的数据可以是“0”或“1”。
图5A是根据本公开的一个实施例的加密装置的示意框图。
如图5所示,加密装置500可以包括获取单元510、加密单元520、输出单元530、划分单元550和存储单元560。
在本公开实施例中,获取单元510、加密单元520、输出单元530和划分单元550可以与图4中的获取单元410、加密单元420、输出单元430和划分单元450具有类似功能,为了简明,本公开不再赘述。
图4所示的加密装置100不同,如图4A所示,加密装置500还包括存储单元560。存储单元560将来自划分单元550的I个明文块的第i明文块存储在中的第i存储地址处,以及将来自加密单元520的第i密文块存储在第i存储地址处。
存储单元560将划分单元550划分得到的I个明文块分别存储在I个存储地址中,I个明文块中的每个明文块都具有唯一的存储地址。
在本公开实施例中,存储单元560还与输出单元530连接。输出单元530可以是在存储单元560中存储有I个密文块后,一起输出I个密文块;还可以是每当存储单元560存储一个密文块后,输出一个密文块,直至将所有的密文块依次输出。
在本公开实施例中,存储单元560还与获取单元510连接。获取单元510可以从存储单元560中以第1明文块到第I明文块的顺序每次只获取一个明文块,获取单元510将每次获取的一个明文块发送给加密单元520。加密单元520完成对该明文块的加密后,将得到的一个密文块发送到存储单元560。存储单元560将该密文块存储到对应明文块的存储地址,实现覆盖对应明文块。在存储单元560完成存储后,获取单元510再获取下一个明文块。
获取单元510也可以从存储单元560中一次性获取I个明文块,获取单元510将获取的I个明文块发送给加密单元520。加密单元520完成对I个明文块的加密后,将得到的I个密文块发送到存储单元560。存储单元560将I个密文块的每个密文块分别存储到对应明文块的存储地址,实现覆盖对应明文块。
在本公开实施例中,待加密明文从最高位向最低位依次被划分为多个明文块。为保证待加密明文文本的连贯性,I个明文块也是按照从最高位向最低位的顺序存储在I个存储地址中。例如,在划分过程不存在补位的情况下,第1明文块被存储在第1存储地址中,第1明文块包括待加密明文的最高N比特数据;第I明文块被存储在第I存储地址中,第I明文块包括待加密明文的最低N比特数据。相邻的第i存储地址和第i+1存储地址中分别存储着文本关系为前后文关系的第i明文块和第i+1明文块。
因此,当获取单元510是从存储单元560中顺序读取明文块时,加密单元520也是顺序发送密文块给存储单元560时,存储单元560可以将接收到的I个密文块按照I个明文块被读取的顺序依次存储。
例如,获取单元510从存储单元560的以第1存储地址到第I存储地址的顺序依次获取I个明文块,加密单元520根据获取单元510获取明文块的顺序依次对I个明文块进行加密;加密单元520再根据加密顺序依次将I个密文块发送至存储单元560,存储单元560根据接收密文块的顺序直接将I个密文块依次存入第1存储地址到第I存储地址。
作为一种可选实施例,存储单元560还可以根据存储地址乱序存储来自加密单元520的I个密文块。
例如,获取单元510从存储单元560的第2存储地址获取第2明文块,第2明文块包括待加密明文第N+1至第2N比特数据;加密单元520对第2明文块进行加密,得到第2密文块,加密单元520再将第2密文块发送至存储单元560,存储单元560将第2密文块存入第2存储地址;获取单元510从存储单元560的第1存储地址获取第1明文块,第1明文块包括待加密明文第1至第N比特数据;加密单元520对第1明文块进行加密,得到第1密文块,加密单元520再将第1密文块发送至存储单元560,存储单元560将第1密文块存入第1存储地址。
需要说明的是,当加密单元520乱序执行加密操作时,执行逻辑不变,可按照执行顺序重新命名明文块。继续参考上文所列举的乱序执行例子。将第一个被执行加密操作的明文块,即包括待加密明文中第N+1至第2N的明文块,记为第1明文块;将第二被执行加密操作的明文块,即包括待加密明文中第1至第N的明文块,记为第2明文块。
获取单元510将明文块发送给加密单元520时,每个明文块上附带有存储地址。加密单元520在执行完加密操作后,每个密文块上附带有对应明文块的存储地址;加密单元520将存储地址和密文块一起发送给存储单元560。存储单元560根据存储地址将密文块存入该地址中。
作为一种可选实施例,存储单元560根据存储地址乱序存储来自加密单元520的I个密文块后,可以对I个密文块重新排序,以恢复顺序。
例如,第1明文块到第I明文块依次被存储在第1存储地址到第I存储地址。存储单元560将先接收到的第2密文块存入第1存储地址,再将第1密文块存储存入第2存储地址。在I个密文块全部存入存储地址后,再调整第1密文块和第2密文块的存储地址,以恢复与明文块相同的存储地址。
结合图5B对存储单元560根据存储地址存储明文块和密文块的过程进行说明,图5B是根据本公开的一个实施例的存储地址的示意图。
如图5B所示,存储单元560将来自划分单元540的第i明文块存入第i存储地址,将来自加密单元520的第i密文块存入第i存储地址。第i明文块相对于待加密明文和第i密文块相对于密文具有相同的存储地址。
在本公开实施例中,通过存储单元依据存储地址对明文块和密文块的进行存储,使得加密执行过程无论是顺序还是乱序都可以保证加密过程的正常执行。
图6A是根据本公开的一个实施例的加密方法的流程图。
如图6A所示,通过加密装置100执行该加密方法,该加密方法可以包括操作S610至操作S630。
在操作S610,根获取待加密明文,待加密明文包括I个明文块,I个明文块中的每个明文块的长度为N比特,其中,I和N均为正整数。
例如,操作S610可以由上文所述的获取单元110执行。
在操作S620,用于利用以下方式得到I个密文块:当i取值为1时,针对I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对第1明文块进行加密,得到第1密文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对第i明文块进行加密,得到第i密文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对第I明文块进行加密,得到第I密文块;其中,比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据。
例如,操作S620可以由上文所述的加密单元120执行。
在操作S630,输出I个密文块。
例如,操作S630可以由上文所述的输出单元130执行。
在本公开实施例中,根据第i密文块或N比特密钥数据确定第i+1密钥流,包括:将第i向量移位N比特,得到具有空位的第i移位向量;将第i密文块或N比特密钥数据添加至第i移位向量的空位,得到第i+1向量;利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。
在本公开实施例中,将第i向量移位N比特,得到具有空位的第i移位向量,包括:在N比特密钥数据为第i密钥流的最高N比特数据时,将第i向量左移N比特,得到具有空位的第i移位向量;在N比特密钥数据为第i密钥流的最低N比特数据时,将第i向量右移N比特,得到具有空位的第i移位向量。
在本公开实施例中,加密方法还包括:响应于第一指令,将待加密明文划分为I个明文块,第一指令包括划分单位的比特数;将I个明文块的第i明文块存储在第i存储地址处,以及将第i密文块存储在第i存储地址处。
在公开实施例中,加密方法还包括:响应于第二指令,从第i密钥流中抽取第i密钥流的N比特密钥数据,第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
在公开实施例中,第i向量是基于初始化向量和基准密钥得到的,初始化向量为随机数。
图6B是根据本公开的一个实施例的CFB加密过程的示意图。
如图6B所示,本公开还提供一种CFB加密方法的实施例,CFB加密方法由上文所述的加密装置300执行,其中待加密明文包括I个明文块,每个明文块的长度为N bit。
CFB加密方法包括:对第i向量和基准密钥进行运算,得到第i密钥流。从第i密钥流中抽取N bit密钥数据与第i明文块进行异或运算,得到第i密文块。对第i向量移位N bit,得到第i移位向量。将第i密文块添加至第i移位向量的N bit空位中,得到第i+1向量。对第i+1向量和基准密钥进行运算,得到第i+1密钥流。从第i+1密钥流中抽取N bit密钥数据与第i+1明文块进行异或运算,得到第i+1密文块。由此循环进行加密运算直至得到第I个密文块。
当i取值为1时,第1向量为初始化向量IV。当i取值为2到I时,第i向量由移位后的第i-1向量和第i-1密文块决定。
图6C是根据本公开的一个实施例的OFB加密过程的示意图。
如图6C所示,本公开还一种OFB加密方法的实施例,OFB加密方法由上文所述的加密装置300执行,待加密明文包括I个明文块,每个明文块的长度为N bit。
OFB加密方法包括:对第i向量和基准密钥进行运算,得到第i密钥流;从第i密钥流中抽取N bit密钥数据与第i明文块进行异或运算,得到第i密文块;再对第i向量移位Nbit,得到第i移位向量;将从第i密钥流中抽取N bit密钥数据添加至第i移位向量的N bit空位中,得到第i+1向量;对第i+1向量和基准密钥进行运算,得到第i+1密钥流;从第i+1密钥流中抽取N bit密钥数据与第i+1明文块进行异或运算,得到第i+1密文块;由此循环进行加密运算直至得到第I个密文块。
当i取值为1时,第1向量为初始化向量IV。当i取值为2到I时,第i向量由移位后的第i-1向量和第i-1密文块决定。
图7是根据本公开的一个实施例的解密装置的示意框图。
解密装置700包括获取单元710、解密单元720和输出单元730。
获取单元710用于获取待解密密文,待解密密文包括I个密文块,I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数。
解密单元720,用于利用以下方式得到I个明文块:当i取值为1时,针对I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对第1密文块进行解密,得到第1明文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对第i密文块进行解密,得到第i明文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对第I密文块进行解密,得到第I明文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据。
输出单元730,用于输出I个明文块。
在本公开实施例中,解密单元720与加密单元120的执行逻辑相同。
在公开实施例中,解密单元720包括:移位子单元,用于将第i向量移位N比特,得到具有空位的第i移位向量;第一运算子单元,用于将第i密文块或N比特密钥数据添加至第i移位向量的空位,得到第i+1向量;第二运算子单元,用于利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。
在公开实施例中,移位子单元用于:在N比特密钥数据为第i密钥流的最高N比特数据时,将第i向量左移N比特,得到具有空位的第i移位向量;在N比特密钥数据为第i密钥流的最低N比特数据时,将第i向量右移N比特,得到具有空位的第i移位向量。
解密装置的移位子单元执行的移位操作需要与加密装置的移位子单元执行的移位操作一致。例如,在加密过程中,在N比特密钥数据为第i密钥流的最高N比特数据时,加密装置的移位子单元将第i向量左移N比特,得到具有空位的第i移位向量。在解密过程中,在N比特密钥数据为第i密钥流的最高N比特数据时,解密装置的移位子单元也执行将第i向量左移N比特,得到具有空位的第i移位向量的操作。
在公开实施例中,解密装置700还包括:划分单元,用于响应于第一指令,将待解密密文划分为I个密文块,第一指令包括划分单位的比特数;存储单元,用于将来自划分单元的I个密文块的第i密文块存储在第i存储地址处,以及将来自解密单元的第i明文块存储在第i存储地址处。
在公开实施例中,解密装置700还包括:抽取单元,用于响应于第二指令,从第i密钥流中抽取第i密钥流的N比特密钥数据,并将第i密钥流的N比特密钥数据发送至解密单元,第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
在公开实施例中,第i向量是基于初始化向量和基准密钥得到的,初始化向量为随机数。
在公开实施例中,当加密装置对明文块进行顺序加密时,解密装置对顺序加密得到的密文块进行解密时,也需要进行顺序解密。当加密装置对明文块进行乱序加密时,解密装置对顺序加密得到的密文块进行解密时,也需要进行乱序解密。解密装置执行解密过程的运算逻辑需要与加密装置执行加密过程的运算逻辑一样,由此可以保证加密得到的密文可以被正确解密。
图8是根据本公开的一个实施例的解密方法的流程图。
如图8示,通过解密装置700执行该加密方法,该解密方法可以包括操作S810至操作S830。
在操作S810,获取待解密密文,待解密密文包括I个密文块,I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数。
例如,操作S810可以由上文所述的获取单元710执行。
在操作S820,利用以下方式得到I个明文块:当i取值为1时,针对I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对第1密文块进行解密,得到第1明文块,并根据第1密文块或N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对第i密文块进行解密,得到第i明文块,并根据第i密文块或N比特密钥数据确定第i+1密钥流;当i取值为I时,针对I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对第I密文块进行解密,得到第I明文块;其中,N比特密钥数据为第i密钥流的最高N比特数据或最低N比特数据。
例如,操作S810可以由上文所述的解密单元720执行。
在操作S830,输出I个明文块。
例如,操作S830可以由上文所述的输出单元730执行。
在公开实施例中,根据第i密文块或N比特密钥数据确定第i+1密钥流,包括:将第i向量移位N比特,得到具有空位的第i移位向量;将第i密文块或N比特密钥数据添加至第i移位向量的空位,得到第i+1向量;利用基准密钥对第i+1向量进行加密,得到第i+1密钥流。
在公开实施例中,将第i向量移位N比特,得到具有空位的第i移位向量,包括:在N比特密钥数据为第i密钥流的最高N比特数据时,将第i向量左移N比特,得到具有空位的第i移位向量;在N比特密钥数据为第i密钥流的最低N比特数据时,将第i向量右移N比特,得到具有空位的第i移位向量。
在公开实施例中,解密方法还包括:响应于第一指令,将待解密密文划分为I个密文块,第一指令包括划分单位的比特数;将I个密文块的第i密文块存储在第i存储地址处,以及将第i明文块存储在第i存储地址处。
在公开实施例中,解密方法还包括:响应于第二指令,从第i密钥流中抽取第i密钥流的N比特密钥数据,第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
在公开实施例中,第i向量是基于初始化向量和基准密钥得到的,初始化向量为随机数。
图9是根据本公开的一个实施例的适于实现上文描述的方法的电子设备的示意框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900包括加密装置910和/或解密装置920。
在本公开实施例中,加密装置910例如可以是上文任意实施例所述的加密装置,解密装置920例如可以是上文任意实施例所述的解密装置,本公开在此不再赘述。
电子设备900可以仅包括加密装置910,也可以仅包括解密装置920,也可以包括加密装置910和解密装置920,还可以将加密装置910和解密装置920集成为一个装置,通过输入模式选择进行执行加密过程或解密过程。
本公开还提供了一种电子设备的实施例。
根据本公开实施例的电子设备900可以任何用于存储或传输数据流的设备。
例如,根据本公开实施例的电子设备900可以是一个蓝牙设备。蓝牙设备包括上文任意实施例所述的加密装置和解密装置。蓝牙设备在通信过程中,通过加密装置和解密装置对传输的数据流进行加解密。
例如,根据本公开实施例的电子设备900可以是一个Flash芯片。Flash芯片包括上文任意实施例所述的加密装置和解密装置。Flash芯片在接收到数据流后,通过加密装置对数据进行加密,并存储加密后的数据流。在将数据流传输给其他终端设备之前,Flash芯片再通过解密装置对加密后的数据流进行解密。
根据本公开实施例的电子设备900还可以包括处理器,处理器可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行各种适当的动作和处理。处理器例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器还可以包括用于缓存用途的板载存储器。处理器可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM中,存储有电子设备900操作所需的各种程序和数据。处理器、ROM以及RAM通过总线彼此相连。处理器通过执行ROM和/或RAM中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM和RAM以外的一个或多个存储器中。处理器也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口,输入/输出(I/O)接口也连接至总线。电子设备900还可以包括连接至I/O接口的以下部件中的一项或多项:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信处理。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
应该理解,也可以使用上面所示的各种形式的模块、单元或子单元,重新增加或删除模块、单元或子单元,只要能够实现本公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (25)
1.一种加密装置,其特征在于,包括:
获取单元,用于获取待加密明文,所述待加密明文包括I个明文块,所述I个明文块中的每个明文块的长度为N比特,其中,I和N均为正整数;
加密单元,用于利用以下方式得到I个密文块:当i取值为1时,针对所述I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对所述第1明文块进行加密,得到第1密文块,并根据所述第1密文块或所述N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对所述I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对所述第i明文块进行加密,得到第i密文块,并根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流;当i取值为I时,针对所述I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对所述第1明文块进行加密,得到第I密文块;其中,所述N比特密钥数据为所述第i密钥流的最高N比特数据或最低N比特数据;
输出单元,用于输出所述I个密文块。
2.根据权利要求1所述的加密装置,其特征在于,所述加密单元包括:
移位子单元,用于将第i向量移位N比特,得到具有空位的第i移位向量;
第一运算子单元,用于将所述第i密文块或所述N比特密钥数据添加至所述第i移位向量的空位,得到第i+1向量;以及
第二运算子单元,用于利用基准密钥对所述第i+1向量进行加密,得到第i+1密钥流。
3.根据权利要求2所述的加密装置,其特征在于,所述移位子单元用于:
在所述N比特密钥数据为所述第i密钥流的最高N比特数据时,将所述第i向量左移N比特,得到所述具有空位的第i移位向量;以及
在所述N比特密钥数据为所述第i密钥流的最低N比特数据时,将所述第i向量右移N比特,得到所述具有空位的第i移位向量。
4.根据权利要求1所述的加密装置,其特征在于,还包括:
划分单元,用于响应于第一指令,将所述待加密明文划分为I个明文块,所述第一指令包括划分单位的比特数;以及
存储单元,用于将来自所述划分单元的所述I个明文块的第i明文块存储在第i存储地址处,以及将来自所述加密单元的所述第i密文块存储在所述第i存储地址处。
5.根据权利要求1所述的加密装置,其特征在于,还包括:
抽取单元,用于响应于第二指令,从所述第i密钥流中抽取所述第i密钥流的N比特密钥数据,并将所述第i密钥流的N比特密钥数据发送至所述加密单元,所述第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
6.根据权利要求2所述的加密装置,其特征在于,所述第i向量是基于初始化向量和所述基准密钥得到的,所述初始化向量为随机数。
7.一种解密装置,其特征在于,包括:
获取单元,用于获取待解密密文,所述待解密密文包括I个密文块,所述I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数;
解密单元,用于利用以下方式得到I个明文块:当i取值为1时,针对所述I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对所述第1密文块进行解密,得到第1明文块,并根据所述第1密文块或所述N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对所述I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对所述第i密文块进行解密,得到第i明文块,并根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流;当i取值为I时,针对所述I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对所述第I密文块进行解密,得到第I明文块;其中,所述N比特密钥数据为所述第i密钥流的最高N比特数据或最低N比特数据;
输出单元,用于输出所述I个明文块。
8.根据权利要求7所述的解密装置,其特征在于,所述解密单元包括:
移位子单元,用于将第i向量移位N比特,得到具有空位的第i移位向量;
第一运算子单元,用于将所述第i密文块或所述N比特密钥数据添加至所述第i移位向量的空位,得到第i+1向量;以及
第二运算子单元,用于利用基准密钥对所述第i+1向量进行加密,得到第i+1密钥流。
9.根据权利要求8所述的解密装置,其特征在于,所述移位子单元用于:
在所述N比特密钥数据为所述第i密钥流的最高N比特数据时,将所述第i向量左移N比特,得到所述具有空位的第i移位向量;以及
在所述N比特密钥数据为所述第i密钥流的最低N比特数据时,将所述第i向量右移N比特,得到所述具有空位的第i移位向量。
10.根据权利要求7所述的解密装置,其特征在于,还包括:
划分单元,用于响应于第一指令,将所述待解密密文划分为I个密文块,所述第一指令包括划分单位的比特数;以及
存储单元,用于将来自所述划分单元的所述I个密文块的第i密文块存储在第i存储地址处,以及将来自所述解密单元的所述第i明文块存储在所述第i存储地址处。
11.根据权利要求7所述的解密装置,其特征在于,还包括:
抽取单元,用于响应于第二指令,从所述第i密钥流中抽取所述第i密钥流的N比特密钥数据,并将所述第i密钥流的N比特密钥数据发送至所述解密单元,所述第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
12.根据权利要求8所述的解密装置,其特征在于,所述第i向量是基于初始化向量和所述基准密钥得到的,所述初始化向量为随机数。
13.一种加密方法,其特征在于,包括:
获取待加密明文,所述待加密明文包括I个明文块,所述I个明文块中的每个明文块的长度为N比特,其中,I和N均为正整数;
利用以下方式得到I个密文块:当i取值为1时,针对所述I个明文块中的第1明文块,利用第1密钥流的N比特密钥数据对所述第1明文块进行加密,得到第1密文块,并根据所述第1密文块或所述N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对所述I个明文块中的第i明文块,利用第i密钥流的N比特密钥数据对所述第i明文块进行加密,得到第i密文块,并根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流;当i取值为I时,针对所述I个明文块中的第I明文块,利用第I密钥流的N比特密钥数据对所述第I明文块进行加密,得到第I密文块;其中,所述N比特密钥数据为所述第i密钥流的最高N比特数据或最低N比特数据;
输出所述I个密文块。
14.根据权利要求13所述的加密方法,其特征在于,所述根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流,包括:
将第i向量移位N比特,得到具有空位的第i移位向量;
将所述第i密文块或所述N比特密钥数据添加至所述第i移位向量的空位,得到第i+1向量;以及
利用基准密钥对所述第i+1向量进行加密,得到第i+1密钥流。
15.根据权利要求14所述的加密方法,其特征在于,所述将第i向量移位N比特,得到具有空位的第i移位向量,包括:
在所述N比特密钥数据为所述第i密钥流的最高N比特数据时,将所述第i向量左移N比特,得到所述具有空位的第i移位向量;以及
在所述N比特密钥数据为所述第i密钥流的最低N比特数据时,将所述第i向量右移N比特,得到所述具有空位的第i移位向量。
16.根据权利要求13所述的加密方法,其特征在于,还包括:
响应于第一指令,将所述待加密明文划分为I个明文块,所述第一指令包括划分单位的比特数;以及
将所述I个明文块的第i明文块存储在第i存储地址处,以及将所述第i密文块存储在所述第i存储地址处。
17.根据权利要求13所述的加密方法,其特征在于,还包括:
响应于第二指令,从所述第i密钥流中抽取所述第i密钥流的N比特密钥数据,所述第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
18.根据权利要求14所述的加密方法,其特征在于,所述第i向量是基于初始化向量和所述基准密钥得到的,所述初始化向量为随机数。
19.一种解密方法,其特征在于,包括:
获取待解密密文,所述待解密密文包括I个密文块,所述I个密文块中的每个密文块的长度为N比特,其中,I和N均为正整数;
利用以下方式得到I个明文块:当i取值为1时,针对所述I个密文块中的第1密文块,利用第1密钥流的N比特密钥数据对所述第1密文块进行解密,得到第1明文块,并根据所述第1密文块或所述N比特密钥数据确定第2密钥流,第1密钥流是基于初始化向量和基准密钥得到的;当i取值从2依次取到I-1时,针对所述I个密文块中的第i密文块,利用第i密钥流的N比特密钥数据对所述第i密文块进行解密,得到第i明文块,并根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流;当i取值为I时,针对所述I个密文块中的第I密文块,利用第I密钥流的N比特密钥数据对所述第I密文块进行解密,得到第I明文块;其中,所述N比特密钥数据为所述第i密钥流的最高N比特数据或最低N比特数据;
输出所述I个明文块。
20.根据权利要求19所述的解密方法,其特征在于,所述根据所述第i密文块或所述N比特密钥数据确定第i+1密钥流,包括:
将第i向量移位N比特,得到具有空位的第i移位向量;
将所述第i密文块或所述N比特密钥数据添加至所述第i移位向量的空位,得到第i+1向量;以及
利用基准密钥对所述第i+1向量进行加密,得到第i+1密钥流。
21.根据权利要求20所述的解密方法,其特征在于,所述将第i向量移位N比特,得到具有空位的第i移位向量,包括:
在所述N比特密钥数据为所述第i密钥流的最高N比特数据时,将所述第i向量左移N比特,得到所述具有空位的第i移位向量;以及
在所述N比特密钥数据为所述第i密钥流的最低N比特数据时,将所述第i向量右移N比特,得到所述具有空位的第i移位向量。
22.根据权利要求19所述的解密方法,其特征在于,还包括:
响应于第一指令,将所述待解密密文划分为I个密文块,所述第一指令包括划分单位的比特数;以及
将所述I个密文块的第i密文块存储在第i存储地址处,以及将所述第i明文块存储在所述第i存储地址处。
23.根据权利要求19所述的解密方法,其特征在于,还包括:
响应于第二指令,从所述第i密钥流中抽取所述第i密钥流的N比特密钥数据,所述第二指令包括抽取密钥数据的比特数和抽取密钥数据的位置。
24.根据权利要求20所述的解密方法,其特征在于,所述第i向量是基于初始化向量和所述基准密钥得到的,所述初始化向量为随机数。
25.一种电子设备,其特征在于,包括:
根据权利要求1至6中任一项所述的加密装置和/或根据权利要求7-12中任一项所述的解密装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210754362.4A CN115242393A (zh) | 2022-06-28 | 2022-06-28 | 加密装置、解密装置、加密方法、解密方法和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210754362.4A CN115242393A (zh) | 2022-06-28 | 2022-06-28 | 加密装置、解密装置、加密方法、解密方法和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115242393A true CN115242393A (zh) | 2022-10-25 |
Family
ID=83671779
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210754362.4A Pending CN115242393A (zh) | 2022-06-28 | 2022-06-28 | 加密装置、解密装置、加密方法、解密方法和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115242393A (zh) |
-
2022
- 2022-06-28 CN CN202210754362.4A patent/CN115242393A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6030103B2 (ja) | データ保護装置及びその方法 | |
JP4828068B2 (ja) | コンピュータで効率的な線形フィードバック・シフト・レジスタ | |
US7945049B2 (en) | Stream cipher using multiplication over a finite field of even characteristic | |
US8170204B2 (en) | Method and system for extending advanced encryption standard (AES) operations for enhanced security | |
CN101753292B (zh) | 用于链接式加密模式的方法和设备 | |
US5345508A (en) | Method and apparatus for variable-overhead cached encryption | |
US9152805B2 (en) | Security device | |
US20030084308A1 (en) | Memory encryption | |
US20110255689A1 (en) | Multiple-mode cryptographic module usable with memory controllers | |
TW200828938A (en) | Method for securely extending key stream to encrypt high-entropy data | |
WO1995006373A1 (en) | Method and apparatus for decryption using cache storage | |
KR20180081559A (ko) | 암호화 동작을 위한 키 시퀀스 생성 | |
WO2021129470A1 (zh) | 基于多项式完全同态的二进制数据加密系统及方法 | |
US8122075B2 (en) | Pseudorandom number generator and encryption device using the same | |
CN116846542A (zh) | 一种数据加密和解密方法、装置及电子设备 | |
US8804953B2 (en) | Extensive ciphertext feedback | |
CN112947967B (zh) | 软件更新方法、区块链应用商店及软件上传终端 | |
JP5992651B2 (ja) | 暗号化方法、プログラム、および、システム | |
JP6167721B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム | |
CN115242393A (zh) | 加密装置、解密装置、加密方法、解密方法和电子设备 | |
EP3996321A1 (en) | Method for processing encrypted data | |
CN108777622B (zh) | 一种二进制流散列取模加密解密方法 | |
JP2018514816A (ja) | 変形鍵を用いる高速aes | |
TW202218373A (zh) | 混合式多階運算加解密系統、其發送端裝置、以及其接收端裝置 | |
JP2005309148A (ja) | データ変換装置およびデータ変換方法 |
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 |