CN105406969B - 数据加密装置及方法 - Google Patents
数据加密装置及方法 Download PDFInfo
- Publication number
- CN105406969B CN105406969B CN201410742496.XA CN201410742496A CN105406969B CN 105406969 B CN105406969 B CN 105406969B CN 201410742496 A CN201410742496 A CN 201410742496A CN 105406969 B CN105406969 B CN 105406969B
- Authority
- CN
- China
- Prior art keywords
- encryption
- data
- ciphertext
- key
- white
- 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.)
- Active
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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- 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/0637—Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/24—Key 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)
- Storage Device Security (AREA)
Abstract
本发明公开一种数据加密装置及方法。根据示例性实施例,提供一种数据加密装置,作为对数据加密的装置,包括:密钥确定单元,确定加密密钥及与所述加密密钥不同的对称密钥,所述加密密钥用于基于白盒加密法(White‑Box Cryptography:WBC)的加密;加密单元,利用所述基于WBC的加密并且利用所述对称密钥和基于对称密钥的加密来生成所述数据的密文。
Description
技术领域
公开的实施例涉及一种数据加密方法,具体地讲,涉及一种利用白盒加密法(White-Box Cryptography:WBC)来确保密码学上的安全性的同时实现高效的数据加密的技术。
背景技术
为了在通信信道上传送需要机密的数据,开发了多种加密方法。现有的许多加密算法(cryptographic algorithm)(假设,AES)假设通信信道上的端点是可信任的。即,这样的算法的目的在于在攻击者只能访问该加密算法的输入/输出的状况下提供足够的安全性。
通常,在诸如个人计算机、平板电脑或者智能手机的通信装置上,加密算法通过软件来实施。然而,对于加密算法的软件实施而言,攻击者可容易地访问。攻击者不仅可以看到加载到通信装置上的存储器的二进制(binary)值并且可以替换这些值,而且还可以随意控制被实施的加密算法。如果通过如上所述的攻击存储器而使得用于加密(encryption)/解密(decryption)的密钥被暴露于攻击者,则攻击者可容易解读任何密文,而且该加密算法事实上会成为无用之物。
白盒加密法(WBC)可从根本上解决前述的问题,其主要的概念是,即使加密算法被暴露于攻击者,也使得攻击者难以提取加密密钥。只是,总所周知,该方式与现有的加密算法相比,加密需要更长的时间(例如,数十倍的时间)。由于这样的缺点,当前WBC仅用于短消息(例如,128比特或者256比特的加密密钥)之类的数据的加密,难以用于大量的数据的加密。例如,实际上,很多DRM解决方案为了对数据进行加密/解密而使用与WBC无关的加密/解密算法(例如,AES之类的基于对称密钥的算法),并且仅为了安全地管理用于加密/解密算法的密钥而使用WBC。然而,即使这样管理密钥,仍然存在安全弱点,原因在于在未用WBC实施的加密/解密算法被执行的过程中该密钥可能被暴露于存储器上。因此,需要一种能够坚强地应对存储器攻击的同时用于迅速的加密/解密的新的接入法。
[现有技术文献]
[专利文献]
美国授权专利第8259934号
发明内容
公开的实施例提供一种利用基于WBC的加密算法及基于对称密钥的加密算法来执行数据加密并且据此对密文进行解密的新的方法。
根据示例性实施例,提供一种数据加密装置,作为对数据加密的装置,包括:密钥确定单元,确定用于基于白盒加密法(White-Box Cryptography:WBC)的加密的加密密钥及与所述加密密钥不同的对称密钥;加密单元,利用所述基于WBC的加密并且利用所述对称密钥和基于对称密钥的加密来生成所述数据的密文。
所述密文可包含基于对称密钥的密文和为了对所述基于对称密钥的密文进行解密而待解密的基于WBC的密文。
所述加密单元可包括:基于WBC的加密单元,将所述基于WBC的加密应用于所述数据的一部分而生成所述基于WBC的密文;基于对称密钥的加密单元,将所述基于对称密钥的加密应用于所述数据的其他部分而生成基于对称密钥的密文。
所述加密单元还可包括:初始化单元,该初始化单元生成用于对所述数据加密的初始化向量,所述基于WBC的加密单元可为了应用所述基于WBC的加密而使用所述初始化矢量。
所述加密单元可包括:初始化单元,生成用于对所述数据加密的初始化向量;基于WBC的加密单元,将所述基于WBC的加密应用于所述初始化向量而生成所述基于WBC的密文;基于对称密钥的加密单元,将所述基于对称密钥的加密应用于所述数据而生成基于对称密钥的密文。
所述初始化向量可包含计数器值,所述基于对称密钥的加密单元可为了应用所述基于对称密钥的加密而使用所述计数器值。
根据示例性实施例,提供一种数据解密装置,作为用于对数据的密文解密的装置,包括:基于WBC的解密单元,将利用加密密钥的基于WBC的解密应用于所述密文的一部分而生成解密的信息;基于对称密钥的解密单元,利用与所述加密密钥不同的对称密钥及所述解密的信息以及基于对称密钥的解密来对所述密文的其他部分进行解密。
所述解密的信息可以是所述数据的一部分。
所述解密的信息可以是用于对所述数据加密的初始化向量。
根据示例性实施例,提供一种数据加密方法,作为对数据加密的方法,包括如下步骤:确定加密密钥及与所述加密密钥不同的对称密钥,所述加密密钥用于基于白盒加密法(White-Box Cryptography:WBC)的加密;利用所述基于WBC的加密并且利用所述对称密钥和基于对称密钥的加密来生成所述数据的密文。
所述密文可包含基于对称密钥的密文及为了对所述基于对称密钥的密文解密而待解密的基于WBC的密文。
生成所述密文的步骤可包括如下步骤:将所述基于WBC的加密应用于所述数据的一部分而生成所述基于WBC的密文;将所述基于对称密钥的加密应用于所述数据的其他部分而生成所述基于对称密钥的密文。
生成所述密文的步骤还可包括如下步骤:生成用于对所述数据加密的初始化向量,生成所述基于WBC的密文的步骤可包括如下步骤:为了应用所述基于WBC的加密而使用所述初始化矢量。
生成所述密文的步骤可包括如下步骤:生成用于对所述数据加密的初始化向量;将所述基于WBC的加密应用于所述初始化向量而生成所述基于WBC的密文;将所述基于对称密钥的加密应用于所述数据而生成基于对称密钥的密文。
所述初始化向量可包含计数器值,生成所述基于对称密钥的密文的步骤可包括如下步骤:可为了应用所述基于对称密钥的加密而使用所述计数器值。
根据示例性实施例,提供一种数据解密方法,作为用于对数据的密文解密的方法,包括如下步骤:将利用加密密钥的基于WBC的解密应用于所述密文的一部分而生成解密的信息;利用与所述加密密钥不同的对称密钥及所述解密的信息和基于对称密钥的解密对所述密文的其他部分进行解密。
所述解密的信息可以是所述数据的一部分。
所述解密的信息可以是用于对所述数据加密的初始化向量。
根据示例性实施例,提供一种与硬件结合且为了执行所述数据加密方法而存储于介质的计算机程序。
根据示例性实施例,提供一种与硬件结合且为了执行所述数据解密方法而存储于介质的计算机程序。
根据特定的实施例的数据加密方法针对攻击者的存储器攻击实现安全且高效的加密及解密。
根据特定的实施例的数据加密方法利用基于WBC的加密算法,因此不需要密钥管理。
根据特定的实施例的数据加密方法可适用多种基于WBC的加密算法。
附图说明
图1是示出根据示例性实施例的数据加密装置的图。
图2是示出根据示例性实施例的数据解密装置的图。
图3a及图3b是用于说明根据示例性实施例的用于块加密操作的填充密码块链接(PCBC:Propagating Cipher Block Chaining)模式的图。
图4a及图4b是用于说明根据示例性实施例的用于块加密操作的输出反馈(OFB:Output Feedback)模式的图。
图5a及图5b是用于说明根据示例性实施例的用于块加密操作的PCBC模式的图。
图6a及图6b是用于说明根据示例性实施例的用于块加密操作的OFB模式的图。
图7a及图7b是用于说明根据示例性实施例的用于块加密操作的计数器(counter)模式的图。
图8是示出根据示例性实施例对数据进行加密的过程的流程图。
图9是示出根据示例性实施例对数据进行解密的过程的流程图。
符号说明:
100:数据加密装置
102:数据
104:加密的数据
110:密钥确定单元
120:加密单元
124:加密密钥
126:对称密钥
128:初始化向量
140:基于WBC的加密单元
160:基于对称密钥的加密单元
180:初始化单元
200:数据解密装置
202:解密的数据
240:基于WBC的解密单元
260:基于对称密钥的解密单元
具体实施方式
以下,将参照附图对本发明的具体实施方式进行描述。提供以下的详细说明,以有助于对本说明书所记载的方法、装置和/或***的全面理解。然而,这只不过是示例,并且本发明不限于此。
在对本发明的实施例进行描述时,对与本发明相关的公知技术的具体描述被认为会使本发明的主旨不清楚的情况下,省略其详细描述。并且,后述的术语作为考虑本发明中的功能而定义的术语,可根据使用者、运用者的意图或者惯例等而不同。因此,其定义应基于贯穿整个本说明书的内容而做出。详细说明中所使用的术语仅为了记载本发明的实施例,而不是限制本发明。除非另外明确指出,否则单数形式也包括复数形式。在本说明书中,诸如“包括”和/或“具有”的术语旨在表示某个特征、数字、步骤、操作、要素、其中的一部分或者其组合,但不应被解释为排除除此之外的一个或多个其它特征、数字、步骤、操作、要素、其中的一部分或者其组合的存在或存在的可能性。
图1是示出根据示例性实施例的数据加密装置的图,图2是示出根据示例性实施例的数据解密装置的图。在几个实施例中,示例性的数据加密装置100及示例性的数据解密装置200可分别在不同的计算装置内实现或者包含于不同的计算装置内。各个计算装置可包括一个以上的处理器及可由该处理器访问的存储器之类的计算机可读存储介质。计算机可读存储介质可被布置于处理器的内部或者外部,并且可通过公知的方式与处理器连接。计算机可读存储介质可存储有计算机可执行命令。处理器可执行存储于计算机可读存储介质的命令。当这样的命令被处理器执行时可使得计算装置执行根据示例性实施例的操作。
数据加密装置100被构成为接收数据102(例如,数字化的明文),并对数据102进行加密而生成加密的数据104(例如,数字化的密文)。尤其是,数据加密装置100为了防止因存储器攻击而导致的用于数据加密的密钥的暴露而利用基于WBC的加密算法,并且为了高效地执行数据加密而利用基于对称密钥的加密算法(为了方便起见,本说明书中术语“基于对称密钥”是与术语“基于WBC”对比而使用的,包含与基于对称密钥的加密/解密相关联而不利用WBC的含义)。此外,为了确保足够的安全性,数据加密装置100可将用于基于WBC的加密算法的加密密钥及用于基于对称密钥的加密算法的对称密钥设定为彼此不同。
例如,如图1所示,数据加密装置100可包括密钥确定单元110及加密单元120。数据加密装置100的各个元件(component)可以由计算装置的硬件(例如,处理器、存储器、输入输出接口等)来实现。
密钥确定单元110可确定用于基于WBC的加密算法的加密密钥124及用于基于对称密钥的加密算法的对称密钥126。加密密钥124及对称密钥126优选为彼此不同。
加密单元120可利用内置有加密密钥124(比如,以被硬编码到查找表且随机化的方式)的基于WBC的加密算法并且利用对称密钥126以及基于对称密钥的加密算法对数据102进行加密。换句话说,加密单元120可应用利用加密密钥124的加密算法及利用对称密钥126的加密算法来生成加密的数据104。
在几个实施例中,如图1所示,加密单元120可包括基于WBC的加密单元140及基于对称密钥的加密单元160。为了对数据102加密,基于WBC的加密单元140及基于对称密钥的加密单元160可分别生成至少一个基于WBC的密文及至少一个基于对称密钥的密文。例如,基于WBC的加密单元140可将基于WBC的加密算法应用于预定的信息(例如,数据102的一部分或者用于对数据102加密的初始化向量(Initialization Vector:IV))而生成基于WBC的密文。基于对称密钥的加密单元160可将基于对称密钥的加密算法应用于数据102的其他部分而生成基于对称密钥的密文。据此,加密的数据104(即,数据102的密文)可包含所生成的基于WBC的密文及基于对称密钥的密文。
根据几个实施例,由基于WBC的加密单元140进行加密的信息(比如,数据102的一部分或者用于对数据102加密的初始化向量)可以是对基于对称密钥的密文进行解密时将会用到的信息。换句话说,用于对数据102加密的块加密操作模式可被定义为使得基于WBC的密文的解密对于基于对称密钥的密文的解密而言是必须的。因此,(即使对称密钥126因存储器攻击而被暴露)可防止安全泄露。在这样的操作模式下,加密的数据104可被图2中所示的数据解密装置200进行解密。即,数据解密装置200被构成为通过加密的数据104来生成解密的数据202。
例如,如图2所示,数据解密装置200可包括基于WBC的解密单元240及基于对称密钥的解密单元260。数据解密装置200的各个元件可由以计算装置的硬件(例如,处理器、存储器、输入输出接口等)来实现。具体地讲,基于WBC的解密单元240可将利用加密密钥124的基于WBC的解密算法应用于加密的数据104的一部分而生成解密的信息,为此预定的初始化向量可被输入到基于WBC的解密算法。基于对称密钥的解密单元260可利用解密的信息及对称密钥126以及基于对称密钥的解密算法对加密的数据104的其他部分进行解密。在几个实施例中,根据数据加密装置100所采用的加密操作模式,数据解密装置200的基于WBC的解密算法及基于对称密钥的解密算法可分别与数据加密装置100的基于WBC的加密算法及基于对称密钥的加密算法相同。
以下,对数据加密装置100及数据解密装置200的示例性的操作进行更详细说明。
将基于WBC的加密算法应用于待加密的数据的一部分的实施例
在几个实施例中,数据加密装置100的加密单元120可被构成为进行如下操作。
首先,密钥确定单元110可将与用于基于WBC的加密算法的加密密钥124不同的密钥确定为用于基于对称密钥的加密算法的对称密钥126。
加密单元120的基于WBC的加密单元140可将利用加密密钥124的基于WBC的加密算法应用于数据102的一部分而生成基于WBC的密文。加密单元120的基于对称密钥的加密单元160将利用对称密钥126的基于对称密钥的加密算法应用于数据102的其他部分而生成基于对称密钥的密文。
进而,如图1所示,加密单元120还可包括生成用于对数据102加密及解密的初始化向量的初始化单元180。使用初始化向量的目的在于,通过使数据102的加密随机化,由此即使相同的数据再次被加密,也可生成不同的密文。基于WBC的加密单元140可为了应用所述基于WBC的加密而使用所述初始化矢量。
如上所述,用于对数据102加密的操作模式可被定义为使得基于WBC的密文的解密对于基于对称密钥的密文的解密而言是必须的。在这种操作模式下,如果基于WBC的密文没有被解密。则数据解密装置200的基于对称密钥的解密单元260无法对基于对称密钥的密文进行解密。
作为一个示例,如图3a所示,加密单元120可在填充密码块链接(PCBC:Propagating Cipher Block Chaining)模式下执行加密操作。如图3a所示,基于WBC的加密单元140将数据102的第一个块与初始化向量进行异或运算(XOR)并且对此应用基于WBC的加密算法,由此生成第一个密文块(即,基于WBC的密文)。并且,基于对称密钥的加密单元160将数据102的剩余块分别与之前的数据块及之前的密文块进行异或运算(XOR)之后对此应用基于对称密钥的加密算法以生成基于对称密钥的密文的块。假设第一个数据块的索引(index)为“1”且之后的数据块的索引按1增加时,该加密操作可表示成如下的数学式。
[数学式1]
C1=EWBC(P1XOR IV)
Ci=ESYM(PiXOR pi-1XOR Ci-1)(i≥2)
其中,Ci表示第i个密文块,Pi表示第i个数据块,IV表示初始化向量,EWBC表示基于WBC的加密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
在该操作模式下,数据解密装置200可如图3b所示执行解密操作。如图3b所示,基于WBC的解密单元240将加密的数据104的第一个块(即,基于WBC的密文块)通过基于WBC的解密算法进行解密之后与初始化向量进行异或运算(XOR),由此获得第一个数据块。并且,基于对称密钥的解密单元260将加密的数据104的剩余块分别通过基于对称密钥的解密算法进行解密之后与之前的数据块及之前的密文块进行异或运算(XOR),由此获得剩余数据块。这样的解密操作可表示为如下的数学式。
[数学式2]
Pi=DWBC(C1)XOR IV
Pi=DSYM(Ci)XOR Pi-1XOR Ci-1(i≥2)
其中,Ci表示第i个密文块,Pi表示第i个数据块,IV表示初始化向量,DWBC表示基于WBC的解密算法,DSYM表示基于对称密钥的解密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
作为另一个示例,如图4a所示,加密单元120可在输出反馈(OFB:OutputFeedback)模式下执行加密操作。如图4a所示,基于WBC的加密单元140在通过基于WBC的加密算法对初始化向量进行加密来生成第一个输出块之后,将该输出块与数据102的第一个块进行异或运算(XOR),由此生成第一个密文块(即,基于WBC的密文)。并且,基于对称密钥的加密单元160通过对数据102的剩余块进行加密而生成基于对称密钥的密文的块。具体地讲,基于对称密钥的加密单元160在通过基于对称密钥的加密算法对第i-1个输出块进行加密来生成第i个输出块之后,将第i个输出块与数据102的第i个块进行异或运算(XOR),由此生成第i个密文块。这样的加密操作可表示成如下的数学式。
[数学式3]
O1=EWBC(IV)
Oi=ESYM(Oi-1)(i≥3)
Ci=PiXOR Oi(i≥1)
其中,Ci表示第i个密文块,Pi表示第i个数据块,Oi表示第i个输出块,IV表示初始化向量,EWBC表示基于WBC的加密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
在该操作模式下,数据解密装置200可如图4b所示执行解密操作。如图4b所示,从XOR运算的对称性来看,可得知该解密操作与如上所述的加密操作相同地执行(即,用于该解密操作的基于WBC的解密算法及基于对称密钥的解密算法可分别与在加密时使用的基于WBC的加密算法及基于对称密钥的加密算法相同)。这样的解密操作可表示为如下的数学式。
[数学式4]
O1=EWBC(IV)
Oi=ESYM(Oi-1)(i≥2)
Pi=CiXOR Oi(i≥1)
其中,Ci表示第i个密文块,Pi表示第i个数据块,Oi表示第i个输出块,IV表示初始化向量,EWBC表示基于WBC的加密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
将基于WBC的加密算法应用于初始化向量的实施例
在几个实施例中,数据加密装置100的加密单元120可被构成为进行如下操作。
首先,密钥确定单元110可将与用于基于WBC的加密算法的加密密钥124不同的密钥确定为用于基于对称密钥的加密算法的对称密钥126。
加密单元120的初始化单元180可生成用于对数据102加密及解密的初始化向量。如上所述,使用初始化向量的目的在于,通过使数据102的加密随机化,由此即使相同的数据再次被加密,也可以生成不同的密文。
接下来,加密单元120的基于WBC的加密单元140可将利用加密密钥124的基于WBC的加密算法应用于上述初始化向量而生成基于WBC的密文。加密单元120的基于对称密钥的加密单元160将利用对称密钥126的基于对称密钥的加密算法应用于数据102而生成基于对称密钥的密文。
在这样的示例性实施例中,用于对数据102加密的操作模式可被定义为使得基于WBC的密文的解密对于基于对称密钥的密文的解密而言是必须的。如上所述,在这种操作模式下,为了使数据解密装置200的基于对称密钥的解密单元260对基于对称密钥的密文进行解密,需要对WBC的密文进行解密。
作为一个示例,如图5a所示,加密单元120可在PCBC模式下执行加密操作。如图5a所示,基于WBC的加密单元140通过基于WBC的加密算法对初始化向量进行加密而生成基于WBC的密文块(为了方便起见,称为“第0个”密文块)。并且,基于对称密钥的加密单元160对数据102的各个块进行加密而生成基于对称密钥的密文的块。具体地讲,基于对称密钥的加密单元160将数据102的第一个块与初始化向量进行异或运算(XOR)并且对此应用基于对称密钥的加密算法以生成第一个密文块。接下来,基于对称密钥的加密单元160将数据102的剩余块分别与之前的数据块及之前的密文块进行异或运算(XOR)之后对此应用基于对称密钥的加密算法。假设第一个数据块的索引为“1”且之后的数据块的索引按1增加时,该加密操作可表示成如下的数学式。
[数学式5]
C0=EWBC(IV)
C1=ESYM(P1XOR IV)
Ci=ESYM(PiXOR Pi-1XOR Ci-1)(i≥2)
其中,Ci表示第i个密文块,Pi表示第i个数据块,IV表示初始化向量,EWBC表示基于WBC的加密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
在该操作模式下,数据解密装置200可如图5b所示执行解密操作。如图5b所示,基于WBC的解密单元240将加密的数据104的“第0个”块(即,基于WBC的密文块)通过基于WBC的解密算法进行解密,由此获得初始化向量。并且,为了获得数据块,基于对称密钥的解密单元260将加密的数据104的第一个块(即,紧接于基于WBC的密文块之后的密文块)通过基于对称密钥的解密算法进行解密之后与初始化向量进行异或运算(XOR)而获得第一个数据块。接下来,基于对称密钥的解密单元260将加密的数据104的剩余块分别通过基于对称密钥的解密算法进行解密之后与之前的数据块及之前的密文块进行异或运算(XOR)。这样的解密操作可表示为如下的数学式。
[数学式6]
IV=DWBC(C0)
P1=DSYM(C1)XOR IV
Pi=DSYM(Ci)XOR Pi-1XOR Ci-1(i≥2)
其中,Ci表示第i个密文块,Pi表示第i个数据块,IV表示初始化向量,DWBC表示基于WBC的解密算法,DSYM表示基于对称密钥的解密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
作为另一个示例,如图6a所示,加密单元120可在OFB模式下执行加密操作。如图6a所示,基于WBC的加密单元140通过基于WBC的加密算法对初始化向量进行加密而生成基于WBC的密文块(为了方便起见,称为“第0个”密文块)。并且,基于对称密钥的加密单元160对数据102的各个块进行加密而生成基于对称密钥的密文的块。具体地讲,基于对称密钥的加密单元160在通过基于对称密钥的加密算法对初始化向量进行加密而生成第一个输出块之后,将该输出块与数据102的第一个块进行异或运算(XOR),由此生成第一个密文块。接下来,基于对称密钥的加密单元160在通过基于对称密钥的加密算法对第i-1个输出块进行加密来生成第i个输出块之后,将第i个输出块与数据102的第i个块进行异或运算(XOR),由此生成第i个密文块。这样的加密操作可表示成如下的数学式。
[数学式7]
C0=EWBC(IV)
O1=ESYM(IV)
Oi=ESYM(Oi-1)(i≥2)
Ci=PiXOR Oi(i≥1)
其中,Ci表示第i个密文块,Pi表示第i个数据块,Oi表示第i个输出块,IV表示初始化向量,EWBC表示基于WBC的加密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别进行的XOR运算)。
在该操作模式下,数据解密装置200可如图6b所示执行解密操作。参照图6b可得知,解密操作需要利用基于WBC的解密算法来获得IV,但是其余部分(即,用于解密操作的基于对称密钥的解密算法)与如上所述的加密操作相同地执行。这样的解密操作可表示为如下的数学式。
[数学式8]
IV=DWBC(C0)
O1=ESYM(IV)
Oi=ESYM(Oi-1)(i≥2)
Pi=CiXOR Oi(i≥1)
其中,Ci表示第i个密文块,Pi表示第i个数据块,Oi表示第i个输出块,IV表示初始化向量,DWBC表示基于WBC的解密算法,ESYM表示基于对称密钥的加密算法,XOR表示块之间的XOR运算(例如,在各个块为比特序列时按比特分别的XOR运算)。
在计数器模式下应用加密的实施例
根据几个实施例,通过初始化单元180生成的初始化向量可包含计数器值。基于WBC的加密单元140可为了应用所述基于WBC的加密而使用计数器值。
例如,如图7a所示,加密单元120可在计数器模式下执行加密操作。为了这样的加密操作,初始单元180可利用在长时间内不会算出重复的值的计数器函数(例如,从初始计数器值开始而输出按1增加的计数器值的函数)来生成计数器值。如图7a所示,基于WBC的加密单元140通过基于WBC的加密算法对初始计数器值(CTR)进行加密而生成基于WBC的密文块(为了方便起见,称为“第0个”密文块)。并且,基于对称密钥的加密单元160对数据102的各个块进行加密而生成基于对称密钥的密文的块。具体地讲,基于对称密钥的加密单元160在通过基于对称密钥的加密算法对初始计数器值进行加密之后,将其与数据102的第一个块进行异或运算(XOR)而生成第一个密文块。同样,基于对称密钥的加密单元160在通过基于对称密钥的加密算法对第i个计数器值(例如,如图7a所示,CTR+i-1)进行加密之后,将其与数据102的第i个块进行异或运算(XOR)而生成第i个密文块。尤其是,可通过并列处理来生成各个密文块。
在该操作模式下,数据解密装置200可如图7b所示执行解密操作。参照图7b可得知,解密操作需要利用基于WBC的解密算法来获得初始计数器值(CTR),但是其余部分(即,用于解密操作的基于对称密钥的解密算法)与如上所述的加密操作相同地执行。
图8是示出根据示例性实施例对数据进行加密的过程的流程图。例如,包含于图8的示例性的数据加密过程800的操作可通过数据加密装置100来执行。
过程800为了对数据加密而利用基于WBC的加密并且利用对称密钥以及基于对称密钥的加密而生成数据的密文。该密文可包含基于对称密钥的密文及为了对该基于对称密钥的密文进行解密而待解密的基于WBC的密文。为此,过程800在开始操作之后进行操作S810。
在操作S810中,确定用于基于WBC的加密的加密密钥及与该加密密钥不同的对称密钥。
在操作S820中,通过基于WBC的加密来生成基于WBC的密文。在几个实施例中,基于WBC的加密可应用于待加密的数据的一部分。在生成用于使数据的加密随机化的初始化向量之后,可被用于基于WBC的加密的应用中。在其他的几个实施例中,基于WBC的加密可被应用于初始化向量而代替数据的一部分。
在操作S830中,通过利用对称密钥的基于对称密钥的加密来生成基于对称密钥的密文。在基于WBC的加密被应用于数据的一部分时,基于对称密钥的加密可被应用于数据的其余部分。在基于WBC的加密被应用于初始化向量时,基于对称密钥的加密可被应用于数据。根据需要,初始化向量(比如,包含随机数(nonce)和计数器值的初始化向量)可被用于基于对称密钥的加密的应用中。
图9是示出根据示例性实施例对数据的密文进行解密的过程的流程图。例如,包含于图9的示例性的数据解密过程900的操作可通过数据解密装置200来执行。
在开始操作之后,过程900进行操作S910。在操作S910中,利用加密密钥的基于WBC的解密可应用于数据的密文的一部分。在步骤S920中,基于与上述加密密钥不同的对称密钥、通过上述解密来获得的解密的信息及上述密文的其他部分来执行基于对称密钥的解密。解密的信息可以是数据的一部分或者用于使数据的加密随机化的初始化向量。
此外,预定的实施例可包括记录有用于在计算机上执行本说明书中记载的方法的程序的计算机可读记录介质。这样的计算机可读记录介质可单独地包括程序命令、本地数据文件、本地数据结构等,或者包括它们的组合。所述介质可以是为本发明而专门设计并构成的介质。所述计算机可读记录介质的示例包括为了存储并执行程序命令而专门构成的诸如硬盘、软盘及磁带的磁介质、诸如CD-ROM、DVD的光记录介质、诸如软盘的磁光介质及ROM、RAM、闪存等硬件装置。程序命令的示例可包括由编译器编写的机器语言代码以及使用解释器等而由计算机来执行的高级语言代码。
虽然已通过代表性实施例对本发明的代表性实施例进行了详细描述,但本发明所属的技术领域中具有公知常识的技术人员应该理解在不脱离本发明的范围的情况下可以对上述实施例进行各种变形。因此,本发明的权利范围不应局限于所描述的实施例而确定,而是应当由权利要求书及其等同物来确定。
Claims (16)
1.一种数据加密装置,作为用于对数据加密的装置,包括:
密钥确定单元,确定加密密钥和与所述加密密钥不同的对称密钥,所述加密密钥用于基于白盒加密法的加密;
加密单元,利用所述基于白盒加密法的加密并且利用所述对称密钥和基于对称密钥的加密来生成所述数据的密文,
其中,所述密文包含基于对称密钥的密文和为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文,
其中,所述加密单元包括:
基于白盒加密法的加密单元,将所述基于白盒加密法的加密应用于所述数据的一部分和初始化向量中的至少一个,而生成所述基于白盒加密法的密文;
基于对称密钥的加密单元,利用所述基于白盒加密法的密文将所述基于对称密钥的加密应用于所述数据的其他部分而生成基于对称密钥的密文。
2.根据权利要求1所述的数据加密装置,其中,
所述加密单元还包括:初始化单元,生成初始化向量
所述基于白盒加密法的加密单元将所述基于白盒加密法的加密应用于使用所述数据的一部分和所述初始化向量来生成的结果,而生成所述基于白盒加密法的密文。
3.根据权利要求2所述的数据加密装置,其中,
所述基于白盒加密法的加密单元将所述基于基于白盒加密法的密文生成为与所述数据的一部分对应的密文。
4.根据权利要求1所述的数据加密装置,其中,
所述加密单元还包括:
初始化单元,生成初始化向量,所述基于白盒加密法的加密单元将所述基于白盒加密的加密应用于所述初始化向量而生成所述基于白盒加密的密文,且使用所述基于白盒加密的密文和所述数据的一部分而生成对应于所述数据的一部分的密文。
5.根据权利要求3或4所述的数据加密装置,其中,
所述初始化向量包含计数器值,所述基于对称密钥的加密单元为了应用所述基于对称密钥的加密而使用所述计数器值。
6.一种数据解密装置,作为用于对数据的密文解密的装置,包括:
基于白盒加密法的解密单元,使用利用加密密钥的基于白盒加密法的解密和所述密文的一部分,而生成解密的信息;
基于对称密钥的解密单元,通过利用与所述加密密钥不同的对称密钥将基于对称密钥的解密应用于所述解密的信息,来对所述密文的其他部分进行解密,
其中,所述数据的密文包含基于对称密钥的密文和为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文,其中,所述为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文对应于所述解密的信息。
7.根据权利要求6所述的数据解密装置,其中,
所述解密的信息是所述数据的一部分。
8.根据权利要求6所述的数据解密装置,其中,
所述解密的信息是用于对所述数据加密的初始化向量。
9.一种数据加密方法,作为对数据加密的方法,包括如下步骤:
确定加密密钥和与所述加密密钥不同的对称密钥,所述加密密钥用于基于白盒加密法的加密;
利用所述基于白盒加密法的加密并且利用所述对称密钥和基于对称密钥的加密来生成所述数据的密文,
其中,所述密文包含基于对称密钥的密文和为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文,
其中,生成所述密文的步骤包括如下步骤:
将所述基于白盒加密法的加密应用于所述数据的一部分和而生成所述基于白盒加密法的密文;
利用所述基于白盒加密法的密文将所述基于对称密钥的加密应用于所述数据的其他部分而生成基于对称密钥的密文。
10.根据权利要求9所述的数据加密方法,其中,
生成所述密文的步骤包括如下步骤:生成初始化向量,
其中,生成所述基于白盒加密法的密文的步骤包括如下步骤:
将所述基于白盒加密法的加密应用于使用所述初始化向量和所述数据的一部分来生成的结果,而生成所述基于白盒加密法的密文。
11.根据权利要求10所述的数据加密方法,其中,
生成所述基于白盒加密法的密文的步骤包括如下步骤:
将所述基于白盒加密法的加密应用于使用所述初始化矢量和所述数据的一部分来生成的结果,而生成所述基于白盒加密法的密文。
12.根据权利要求9所述的数据加密方法,其中,
生成所述密文的步骤包括如下步骤:
生成初始化向量,
其中,生成所述基于白盒加密法的密文的包括如下步骤:
将所述基于白盒加密法的加密应用于所述初始化向量而生成所述基于白盒加密法的密文,且使用所述基于白盒加密的密文和所述数据的一部分而生成对应于所述数据的一部分的密文。
13.根据权利要求11或12所述的数据加密方法,其中,
所述初始化向量包含计数器值,
生成所述基于对称密钥的密文的步骤包括如下步骤:为了应用所述基于对称密钥的加密而使用所述计数器值。
14.一种对数据的密文进行解密的数据解密方法,包括如下步骤:
使用利用加密密钥的基于白盒加密法的解密和所述密文的一部分,而生成解密的信息;
通过利用与所述加密密钥不同的对称密钥将基于对称密钥的解密应用于所述解密的信息,来对所述密文的其他部分进行解密,
其中,所述数据的密文包含基于对称密钥的密文和为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文,其中,所述为了对所述基于对称密钥的密文进行解密而待解密的基于白盒加密法的密文对应于所述解密的信息。
15.根据权利要求14所述的数据解密方法,其中,
所述解密的信息是所述数据的一部分。
16.根据权利要求14所述的数据解密方法,其中,
所述解密的信息是用于对所述数据加密的初始化向量。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2014-0120842 | 2014-09-12 | ||
KR1020140120842A KR101527329B1 (ko) | 2014-09-12 | 2014-09-12 | 데이터 암호화 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105406969A CN105406969A (zh) | 2016-03-16 |
CN105406969B true CN105406969B (zh) | 2020-03-13 |
Family
ID=53504093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410742496.XA Active CN105406969B (zh) | 2014-09-12 | 2014-12-05 | 数据加密装置及方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9515821B2 (zh) |
EP (1) | EP3192207B1 (zh) |
KR (1) | KR101527329B1 (zh) |
CN (1) | CN105406969B (zh) |
WO (1) | WO2016039556A1 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016112338A1 (en) * | 2015-01-08 | 2016-07-14 | Intertrust Technologies Corporation | Cryptographic systems and methods |
KR101847492B1 (ko) | 2015-05-19 | 2018-04-10 | 삼성에스디에스 주식회사 | 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법 |
KR101790948B1 (ko) * | 2015-10-26 | 2017-10-27 | 삼성에스디에스 주식회사 | Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법 |
KR101815175B1 (ko) * | 2016-05-27 | 2018-01-04 | 삼성에스디에스 주식회사 | 데이터 암호화 장치 및 방법, 데이터 복호화 장치 및 방법 |
CN107483387A (zh) * | 2016-06-08 | 2017-12-15 | 北京数码视讯软件技术发展有限公司 | 一种安全控制方法及装置 |
KR102543267B1 (ko) * | 2016-07-13 | 2023-06-13 | 삼성에스디에스 주식회사 | 화이트박스 암호를 이용한 암/복호화 방법 및 그 장치 |
CN106612182B (zh) * | 2016-12-22 | 2020-04-03 | 中国电子科技集团公司第三十研究所 | 一种基于余数***的sm2白盒数字签名实现方法 |
US10790991B2 (en) * | 2018-08-30 | 2020-09-29 | Nxp B.V. | Deterministic digital signature method without using a hash function |
US10873459B2 (en) * | 2018-09-24 | 2020-12-22 | Nxp B.V. | Password authentication using white-box cryptography |
CN111465008B (zh) * | 2019-01-21 | 2024-05-24 | 苹果公司 | 在无线通信中执行加密和认证时的初始化向量生成 |
US11343672B2 (en) * | 2019-02-20 | 2022-05-24 | Coretigo Ltd. | Secure communication encryption and decryption mechanism in a wireless communication system |
US11347895B2 (en) * | 2019-12-03 | 2022-05-31 | Aptiv Technologies Limited | Method and system of authenticated encryption and decryption |
US11601260B1 (en) | 2021-10-29 | 2023-03-07 | Uti Limited Partnership | Encryption/decryption using key encapsulation/decapsulation |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102047220A (zh) * | 2008-05-23 | 2011-05-04 | 爱迪德加拿大公司 | 生成软件应用程序的白盒实现的***和方法 |
EP2369778A1 (en) * | 2010-03-26 | 2011-09-28 | Irdeto B.V. | Personalized whitebox descramblers |
CN103258152A (zh) * | 2012-02-14 | 2013-08-21 | 汤姆森特许公司 | 执行包括已加密指令的软件应用程序的***、装置和方法 |
CN103348696A (zh) * | 2010-12-22 | 2013-10-09 | 纳格拉影像股份有限公司 | 安全设施计量监控模块 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
WO2009109880A1 (en) * | 2008-03-05 | 2009-09-11 | Koninklijke Philips Electronics N.V. | White-box implementation |
US8358781B2 (en) * | 2008-11-30 | 2013-01-22 | Red Hat, Inc. | Nonlinear feedback mode for block ciphers |
CA2754094C (en) * | 2009-03-10 | 2017-08-15 | Irdeto Corporate B.V. | White-box cryptographic system with input dependent encodings |
WO2010146139A1 (en) * | 2009-06-19 | 2010-12-23 | Irdeto B.V. | White-box cryptographic system with configurable key using intermediate data modification |
US8850216B1 (en) * | 2011-05-19 | 2014-09-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Client device and media client authentication mechanism |
IL214743A0 (en) * | 2011-08-18 | 2012-02-29 | Nds Ltd | Block cipher modes of operation |
US9584310B2 (en) * | 2014-03-19 | 2017-02-28 | Nxp B.V. | Protecting a white-box implementation against attacks |
-
2014
- 2014-09-12 KR KR1020140120842A patent/KR101527329B1/ko active IP Right Grant
- 2014-12-05 CN CN201410742496.XA patent/CN105406969B/zh active Active
- 2014-12-19 US US14/576,727 patent/US9515821B2/en active Active
-
2015
- 2015-09-08 WO PCT/KR2015/009448 patent/WO2016039556A1/en active Application Filing
- 2015-09-08 EP EP15840116.6A patent/EP3192207B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102047220A (zh) * | 2008-05-23 | 2011-05-04 | 爱迪德加拿大公司 | 生成软件应用程序的白盒实现的***和方法 |
EP2369778A1 (en) * | 2010-03-26 | 2011-09-28 | Irdeto B.V. | Personalized whitebox descramblers |
CN103348696A (zh) * | 2010-12-22 | 2013-10-09 | 纳格拉影像股份有限公司 | 安全设施计量监控模块 |
CN103258152A (zh) * | 2012-02-14 | 2013-08-21 | 汤姆森特许公司 | 执行包括已加密指令的软件应用程序的***、装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20160080144A1 (en) | 2016-03-17 |
EP3192207A4 (en) | 2018-04-11 |
EP3192207B1 (en) | 2019-11-20 |
WO2016039556A1 (en) | 2016-03-17 |
CN105406969A (zh) | 2016-03-16 |
KR101527329B1 (ko) | 2015-06-09 |
US9515821B2 (en) | 2016-12-06 |
EP3192207A1 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105406969B (zh) | 数据加密装置及方法 | |
JP6665204B2 (ja) | データ暗号化装置及び方法、並びにデータ復号化装置及び方法 | |
US10616213B2 (en) | Password manipulation for secure account creation and verification through third-party servers | |
US10951402B2 (en) | Apparatus and method for encryption | |
KR102251697B1 (ko) | 암호화 장치, 암호화 방법 및 컴퓨터 판독가능 기록매체 | |
CN107086915B (zh) | 一种数据传输方法、数据发送端及数据接收端 | |
CN107438065B (zh) | 数据加密装置及方法、数据解密装置及方法 | |
US20130136256A1 (en) | Block encryption | |
TWI559168B (zh) | 資料加密系統及方法 | |
US9917695B2 (en) | Authenticated encryption method using working blocks | |
JP5992651B2 (ja) | 暗号化方法、プログラム、および、システム | |
US20230139104A1 (en) | Authenticated encryption apparatus, authenticated decryption apparatus, authenticated encryption system, method, and computer readable medium | |
KR101790948B1 (ko) | Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법 | |
JP6167721B2 (ja) | 暗号化装置、復号装置、暗号化方法、復号方法及びプログラム | |
CN112149166B (zh) | 非常规密码保护方法及银行智能机器 | |
CN109361506A (zh) | 信息处理方法 | |
CN113874857A (zh) | 用于最优信息理论安全的加密密钥管理的方法和设备 | |
CN113452505A (zh) | 基于对称算法的加密方法及装置 | |
US11070356B2 (en) | Text encryption | |
JP7215245B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR101915808B1 (ko) | 난독화를 이용하는 암호문 복호화 | |
CN110837649A (zh) | 一种数据加密方法及*** | |
Mandal et al. | Securing Message using Recursive Modulo-2 and Key Rotation Operation (RMRO) | |
KR20170075383A (ko) | 비대칭 특성을 이용한 외부 저장장치의 데이터에 대한 암호화를 수행하는 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |