CN106031079A - 加密算法中的运算符提升 - Google Patents
加密算法中的运算符提升 Download PDFInfo
- Publication number
- CN106031079A CN106031079A CN201480076008.4A CN201480076008A CN106031079A CN 106031079 A CN106031079 A CN 106031079A CN 201480076008 A CN201480076008 A CN 201480076008A CN 106031079 A CN106031079 A CN 106031079A
- Authority
- CN
- China
- Prior art keywords
- obscure
- expression
- data value
- component
- operator
- 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
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/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/21—Non-linear codes, e.g. m-bit data word to n-bit code word [mBnB] conversion with error detection or error correction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
-
- 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/04—Masking or blinding
-
- 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
- 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
-
- 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/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/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
-
- 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
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- 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
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Percussion Or Vibration Massage (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Image Processing (AREA)
- Measuring And Recording Apparatus For Diagnosis (AREA)
Abstract
公开了一种用于使用数据的混淆表示在数据上执行运算的系统。获取构件被配置成获取第一数据值的第一混淆表示并且获取第二数据值的第二混淆表示。确定构件102被配置成通过在第一数据值的混淆表示和第二数据值的混淆表示上执行对应运算来确定第三数据值的混淆表示。混淆构件101可以配置成基于第一数据值生成第一混淆表示和并且基于第二数据值生成第二混淆表示。去混淆构件103可以配置成对第三数据值的混淆表示去混淆,以便使用方程组来获取第三数据值。
Description
技术领域
本发明涉及使用操作数的混淆(obfuscated)表示执行运算。
背景技术
当今,大量数据经由网络、移动电话、蓝牙设备、银行自动取款机等转移。为了保护信息免受非期望的访问,非常频繁地使用加密。在密码学中,加密是以使得第三方不能读取它而仅授权方可以读取它的这种方式对消息进行编码的过程。在加密方案中,使用加密算法来对被称为明文的消息加密,从而将它转变成不可读的密文。这通常使用加密密钥完成,加密密钥指定消息如何被编码。可以看到密文的任何对手应当不能确定关于原始消息的任何事物。然而,授权方能够使用解密算法对密文解码,这通常需要对手不能访问的秘密的解密密钥。
加密也可以应用于保护存储的数据,诸如在计算机和存储设备中的文件。
在云计算中,执行网络之上的分布式计算,其通常涉及在实时网络之上连接的大量计算机。那些计算中所涉及的数据需要受保护,因为其存储在第三方可能容易访问的网络中。
在Craig Gentry的“Computing Arbitrary Functions of Encrypted Data”Communications of the ACM, Vol. 53, No3, 第97-105页, 2010年3月中,公开了一种保持数据私有但允许执行运算的加密方案。然而,该加密方案在计算上是昂贵的。
Castelluccia C等人的"Efficient Aggregation Of Encrypted Data InWireless Sensor Networks", Mobile and Ubiquitous Systems: Networking andServices, 2005. MOBIQUIT OUS 2005, 2005年7月17日, 第109-117页, XP010853989,ISBN: 978-0-7695-2375-0公开了一种加法同态流密文。
WO 2006/058561 A1公开了一种在用户身份模块(SIM)上实现的密码学功能。随机掩模用于针对要执行的密码学功能掩蔽输入数据。特别地,掩蔽功能有利地为群运算。
发明内容
将有利的是具有一种允许使用数据值的加密表示来执行运算的系统。为了更好地解决这一关切,本发明的第一方面提供一种用于使用数据的混淆表示在数据之上执行运算的系统,包括:
获取构件,其配置成获取第一数据值w0的第一混淆表示(X0,Y0)并且获取第二数据值w1的第二混淆表示(X1,Y1),其中以下关系成立:
其中
⊕是运算符,
A0、B0、A1和B1是线性运算符,并且将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且
σ0和σ1是用于向混淆表示提供冗余的状态变量;以及
确定构件,其配置成通过在第一数据值w0的混淆表示(X0,Y0)和第二数据值w1的混淆表示(X1,Y1)上执行以下运算来确定第三数据值w2的混淆表示(X2,Y2):
X2=X0⊕X1
Y2=Y0⊕Y1,
其中w2=w0⊗w1,其中⊗为运算符。
该系统具有以下优点:两个输入数据值w0和w1之间的运算⊗可以使用输入数据值w0的混淆表示(X0,Y0)和输入数据值w1的混淆表示(X1,Y1)来执行,而无需对混淆表示解码。此外,该运算的计算复杂度类似于运算⊕的计算复杂度。因而,该运算可以高效地执行。因此,不必对w0和w1的混淆表示去混淆以用于执行它们之间的运算,以这种方式在不增加太多复杂度的情况下改进系统的安全性。
例如,可以存在域W、∑和Z,其限定成使得X0、Y0、X1和Y1是Z的元素,并且w0和w1是W的元素,并且σ0和σ1是∑的元素,并且, ,, 。运算符⊕可以在Z上限定,运算符⊗可以在W上限定,并且运算符Δ可以在∑上限定。运算⊕是可交换的(也就是说,对于所有,)和可结合的,也就是说,对于所有,。从W到Z的映射A0、A1可以使得对于所有以及。这可以通过说A0和A1为线性的来表达。从∑到Z的映射B0、B1可以使得对于所有以及。我们将通过说B0和B1为线性的来表达这一点。此外,A0、B0、A1和B1被选择成使得有可能从和的组合唯一地确定。也就是说,如果 和使得对于i=1,2,,则。
系统可以进一步包括混淆构件,其配置成生成基于第一数据值w0的第一混淆表示(X0,Y0)和基于第二数据值w1的第二混淆表示(X1,Y1)。
系统可以进一步包括去混淆构件,其配置成对第三数据值w2的混淆表示(X2,Y2)去混淆,以便通过从以下方程组获取第三数据值w2:
其中σ2是用于向第三数据值w2的混淆表示(X2,Y2)提供冗余的状态变量。
系统可以进一步包括状态生成器以用于随机地或伪随机地生成状态变量σ0的值和/或状态变量σ1的值,并且其中混淆构件配置成基于第一数据值w0和状态变量σ0来生成第一混淆表示(X0,Y0)并且基于第二数据值w1和状态变量σ1来生成第二混淆表示(X1,Y1)。这允许通过控制由状态变量σ0和/或σ1施加的增加的冗余而创建强混淆。
混淆构件可以配置成在查找表中查找第一混淆表示(X0,Y0)和第二混淆表示(X1,Y1)。此外或者可替换地,去混淆构件可以配置成在查找表中查找第三数据值w2。这是实现混淆的高效方式。利用查找表的实现方式还使得攻击者更加难以破坏混淆。
混淆构件和去混淆构件可以是第一设备的部分,其中确定构件是第二不同设备的部分。第一设备可以进一步包括传送构件和接收构件,并且第二设备可以进一步包括传送构件和接收构件。第一设备的传送构件可以配置成向第二设备的接收构件传送第一混淆表示(X0,Y0)和第二混淆表示(X1,Y1)。第二设备的传送构件可以配置成向第一设备的接收构件传送混淆表示(X2,Y2)。该配置允许将⊗运算委派给第二设备,而没有准许第二设备对非混淆(或明文)数据值w0, w1和w2的访问。
确定构件可以配置成以明文执行从X0和X1计算X2以及从Y0和Y1计算Y2中的至少一个。这允许X2和Y2的高效计算,而无需单独地混淆计算,但是仍旧不会向攻击者暴露原始数据值。
w0、w1、w2、σ0、σ1、σ2、X0、X1、X2、Y0、Y1和Y2的值可以是具有相同位数的值。这促进了实现方式。
运算符A0、B0、A1和B1可以是可逆运算符。这使得更容易设计系统参数。
运算符⊕可以是按位XOR运算。这是特别适用于该应用的运算。按位XOR运算可以借助于至少一个XOR机器指令来执行。这是计算XOR运算的高效方式,并且不会向攻击者暴露原始数据值。
在本发明的另一方面中,提供了一种用于使用数据的混淆表示在数据上执行运算的方法。该方法包括以下步骤:
获取第一数据值w0的第一混淆表示(X0,Y0)并且获取第二数据值w1的第二混淆表示(X1,Y1),其中以下关系成立:
其中
⊕是运算符,
A0、B0、A1和B1是线性运算符,并且将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且
σ0和σ1是用于向混淆表示提供冗余的状态变量;以及
通过在第一数据值w0的混淆表示(X0,Y0)和第二数据值w1的混淆表示(X1,Y1)上执行以下运算来确定第三数据值w2的混淆表示(X2,Y2):
X2=X0⊕X1
Y2=Y0⊕Y1,
其中w2=w0⊗w1,其中⊗为运算符。
在另一方面中,提供了一种计算机程序产品,包括用于使处理器系统执行所阐述的方法的指令。
本领域技术人员将领会到,以上提及的本发明的实施例、实现方式和/或方面中的两个或更多可以以被认为有用的任何方式组合。
对应于系统的所述修改和变形的图像采集装置、工作站、系统、方法和/或计算机程序产品的修改和变形可以由本领域技术人员基于当前描述而实施。
附图说明
本发明的这些和其它方面从以下描述的实施例显而易见并且将参照以下描述的实施例进行阐述。在附图中:
图1是用于使用输入数据值的混淆表示安全地执行运算的系统的框图。
图2是图示了使用输入数据值的混淆表示安全地执行运算的方法的图。
图3是图示了在使用输入数据值的混淆表示安全地执行运算之后去混淆数据的方法的图。
具体实施方式
在许多应用中,必要的是以安全方式向第一输入数据值w0和第二输入数据值w1应用运算,其中第一输入数据值w0的第一混淆表示Z0和第二输入数据值w1的第二混淆表示Z1是可获得的。将期望的是,针对恶意用户隐藏第一输入数据值w0和第二输入数据值w1,即便恶意用户能够完全访问设备,包括访问工作存储器,或者即便是恶意用户具有实用调试工具分析应用的能力。
因此,代替于计算值w0和w1以及执行运算,可以使用第一输入数据值w0的第一混淆表示Z0和第二输入数据值w1的第二混淆表示Z1来执行运算。
要指出的是,Z0和Z1可以分成两个分量,使得Z0=(X0,Y0)并且Z1=(X1,Y1)。
图1图示了用于执行安全运算的系统的实施例。在图示中,已经通过矩形标示若干处理构件。
此外,数据元素已经通过它们的可变符号以及概略阵列来指示,该阵列用符号表征给定长度的位序列。然而,每一个数据元素的位序列的实际长度可以变化。附图没有指示数据元素的实际长度。系统可以实现在单个处理设备上,诸如适当编程的计算机、智能电话或智能卡。系统也可以分布在若干不同处理设备之上。
系统包括获取构件以用于获取第一数据值w0的第一混淆表示(X0,Y0)和第二数据值w1的第二混淆表示(X1,Y1),其中以下方程成立:
其中⊕是运算符,A0、B0、A1和B1是线性运算符,将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且σ0和σ1是用于向混淆表示提供冗余的状态变量。运算符⊕和⊗可以是按位XOR运算。可替换地,运算符可以是在给定域上限定的算术加法。
要指出的是,可以存在域W、∑和Z,其定义成使得X0、Y0、X1和Y1是Z的元素;w0和w1是W的元素,以及σ0和σ1是∑的元素,并且, ,, 。运算符⊕可以在Z上限定,运算符⊗可以在W上限定,并且运算符∆可以在∑上限定。运算符A0、B0、A1和B1是线性运算符。这意味着,例如,对于W中的所有w0和w1,;对于W中的所有w0和w1,;;并且。
运算符⊕是可交换的(也就是说,对于所有,)和可结合的,也就是说,对于所有,。从W到Z的映射A0、A1使得对于所有以及。从∑到Z的映射B0、B1使得对于所有以及。最后,应当可行的是从和确定。也就是说,如果 和使得对于i=1,2,,则。例如,其中的映射是可逆的。一般地,从给定和,应当有可能获取w。
现在将讨论具体示例以说明该原理。要注意,所选集合和运算可以不同地且以更复杂的方式来选择以更好地混淆数据值。在该示例中,W={0,1}3, ∑ ={0,1}2并且Z={0,1}2。换言之,W是所有三位值的集合,∑是所有二位值的集合,并且Z是所有二位值的集合。运算符⊕、⊗和∆是在其相应域上的按位XOR运算符。该示例的线性运算符在其相应域上定义如下:
A0(w1, w2, w3)=(w1, w3)
B0(σ1,σ2)=(0,σ1)
A1(w1,w2,w3)=(0,w2)
B1(σ1,σ2)=(σ1,0)。
具有状态参数σ =(σ1,σ2)的值w=(w1,w2,w3)的混淆表示(X,Y)=((x1,x2), (y1,y2))然后可以计算如下:
X = (x1, x2) = A0(w1, w2, w3) + B0(σ1, σ2) = (w1, w3) + (0, σ1) = (w1 + 0, w3+ σ1) = (w1, w3 + σ1);
Y = (y1, y2) = A1(w1, w2, w3) + B1(σ1, σ2) = (0, w2) + (σ1, 0) = (0 + σ1, w2+ 0) = (σ1, w2)。
要注意,由于需要去混淆数据,所以((x1, x2), (y1, y2))的每一个值唯一地限定(w1, w2, w3)的值,因为从任何给定((x1, x2), (y1, y2))和(σ1, σ2)有可能唯一地确定(w1, w2, w3),因为A1(w1, w2, w3)+ B1(σ1, σ2)=(σ1, x2)并且A0(x1, x2, x3)+ B0(σ1, σ2)=( x1,σ1+ x2)。
在该具体示例中,(σ1, σ2)的值由((x1, x2), (y1, y2))的值唯一地限定。然而,不必能够恢复(σ1, σ2)的值,因为感兴趣的数据由(w1, w2, w3)体现。
另一简化示例在下文中呈现。在该情况下,W、∑、Z等于正实数的集合。运算符∆和⊕是实数乘法,并且运算符⊗是实数加法。此外,线性运算符被选择如下:。而且在该情况下,w可以从给定的(X,Y)和σ恢复。实际上,我们可以通过执行除法而从和获取w。
在下文中,运算符由所有域W、∑和Z上的⊕指示。然而,应当谨记的是,原则上,W、∑和Z上的运算符可以全部是不同的运算符。可替换地,例如如果W=∑=Z,则可以在每一个域上使用相同运算符。
在具体示例中,w0、σ0、X0、Y0、w1、σ1、X1和Y1全部是具有相同位数的数据值。例如,w0、σ0、X0、Y0、w1、σ1、X1和Y1可以具有8位,或者可以具有作为2的倍数的位数,以便以更高效的方式实现系统。
在具体示例中,A0、B0、A1和B1中的至少一个是可逆线性运算符。在更具体的示例中,A0、B0、A1和B1中的每一个是可逆线性运算符。
系统可以包括用于确定第一输入数据值w0和第二输入数据值w1的数据输入单元100。例如,输入单元100被配置成经由设备的通信子系统接收第一输入数据值w0和第二输入数据值w1。可替换地,输入单元100可以配置成从存储器接收输入数据值,存储器可以是内部存储器或外部存储器。
例如,获取构件可以包括混淆构件101,其配置成从数据输入单元100接收作为输入值的第一输入数据值w0和第二输入数据值w1,并且基于第一输入数据值w0而生成第一混淆表示(X0,Y0)以及基于第二输入数据值w1而生成第二混淆表示(X1,Y1)。例如,混淆表示与数据值之间的关系可以预计算并且存储在查找表中。可选地,混淆构件101包括用于生成状态变量σ0的值和/或状态变量σ1的值的状态生成器。这些值可以例如随机地或者伪随机地生成。例如,这些值可以分别取决于w0和w1。混淆构件101可以配置成基于第一数据值w0和状态变量σ0来生成第一混淆表示(X0,Y0),并且基于第二数据值w1和状态变量σ1来生成第二混淆表示(X1,Y1)。在该情况下,例如,混淆表示与数据值和状态值对之间的关系可以预计算并且存储在查找表中。
可替换地,获取构件被配置成以不同方式获取第一混淆表示(X0,Y0)和第二混淆表示(X1,Y1)。例如,这些值可以从外部源接收,或者可以是关于其它数据的混淆表示的计算的结果。
系统进一步包括确定构件102。确定构件102被配置成确定数据值w2的混淆表示(X2,Y2),其中w2=w0⊕w1。更具体地,确定构件102计算:
X2=X0⊕X1
Y2=Y0⊕Y1。
在特定示例中,这些运算⊕以明文计算。例如,在⊕是XOR运算的情况下,该运算可以使用在其上实现系统的设备的处理器的对应XOR机器指令来执行运算。
由于运算符⊕的可交换和可结合的性质以及若干运算符的线性,下式成立:
。
鉴于此,(X2,Y2)是(w0⊕w1,σ0⊕σ1)的混淆表示。如之前所限定的,w2=w0⊕w1。当限定为σ2=σ0⊕σ1,我们有(X2,Y2)是w2的混淆表示,其中σ2作为状态变量。
要注意,混淆构件101可以借助于查找表实现。例如,混淆构件101可以通过单个查找表实现。可选地,这些查找表可以进一步通过使用从例如Chow等人得知的技术对查找表的输入和输出进行编码而被混淆。
在去混淆之前,混淆值(X2,Y2)可以可选地经受另外的混淆处理,例如通过执行附加的⊕运算或者其它类型的运算。当是时候恢复由任何所获取的混淆值表示的数据值时,混淆值可以被提供给去混淆构件以用于去混淆。相应地,系统可以进一步包括去混淆构件103。去混淆构件103可以接收数据值w2的混淆表示(X2,Y2)并且可以对数据值w2的混淆表示(X2,Y2)去混淆,以便通过求解上文提及的下述方程组来获取w2:
其中σ2是向混淆表示(X2,Y2)提供冗余的状态变量。
系统可以进一步包括输出单元,其被配置成从去混淆构件103接收所计算的w2的值并且将w2的值转发给系统的其它组件(未示出),和/或将w2的值存储在存储器中。例如,输出单元可以配置成在显示设备上显示数据w2的可视化和/或在音频设备上再现数据。
输入构件100和/或混淆构件101可以是第一设备的部分,并且确定构件102可以是第二设备的部分,其中第一设备是与第二设备不同的设备。例如,输入构件100可以从存储器或者从外部源接收第一输入数据值w0和第二输入数据值w1,并且将它们提供给混淆构件101,混淆构件101计算第一输入数据值w0的第一混淆表示(X0,Y0)和第二输入数据值w1的第二混淆表示(X1,Y1)。第一设备可以包括传送器构件。该传送器构件可以将第一输入数据值w0的第一混淆表示(X0,Y0)和第二输入数据值w1的第二混淆表示(X1,Y1)传送给第二设备。第二设备可以包括接收构件。该接收构件可以从第一设备接收第一输入数据值w0的第一混淆表示(X0,Y0)和第二输入数据值w1的第二混淆表示(X1,Y1),并且将它们提供给确定构件102。确定构件102可以以上文所阐述的方式确定数据值w2的混淆表示(X2,Y2),其中w2=w0⊕w1。去混淆模块103(以及可选的输出单元)可以是第一设备的部分,或者它们可以是第二设备的部分,或者它们可以是另外的第三设备的部分。相应地,第二设备可以包括传送器,其被配置成将混淆表示(X2,Y2)传送给第一或第三设备。
图2图示了使用输入数据值的混淆表示安全地执行运算的方法。
该方法包括步骤201:混淆第一输入数据值w0和第二输入数据值w1以生成第一输入数据值w0的第一混淆表示(X0,Y0)和第二输入数据值w1的第二混淆表示(X1,Y1)。第一输入数据值w0的第一混淆表示(X0,Y0)和/或第二输入数据值w1的第二混淆表示(X1,Y1)可以通过计算以下方程而生成:
。
第一输入数据值w0的第一混淆表示(X0,Y0)和/或第二输入数据值w1的第二混淆表示(X1,Y1)可以通过在查找表中查找而生成。查找表可以限定数据值w3的混淆表示(X3,Y3)与第一输入数据值w0的混淆表示(X0,Y0)之间的关系。
该方法可以进一步包括步骤202:确定第三数据w2的混淆表示(X2,Y2),其中w2=w0⊕w1。第三数据w2的混淆表示(X2,Y2)可以通过执行以下运算来确定:
X2=X0⊕X1
Y2=Y0⊕Y1
其中(X0,Y0)可以是第一输入数据值w0的第一混淆表示并且(X1,Y1)可以是第二输入数据值w1的第二混淆表示。
该方法可以进一步包括步骤203:发送所确定的第三数据w2的混淆表示(X2,Y2)以用于进一步的处理(例如用于执行新的运算)或者用于存储在查找表中,其中查找表可以随后用于生成混淆表示。
图3图示了在使用输入数据值的混淆表示执行运算之后去混淆混淆数据的方法。
该方法可以包括步骤301:接收第一输入数据值w0的第一混淆表示(X0,Y0)和二输入数据值w1的第二混淆表示(X1,Y1)。第一输入数据值w0的第一混淆表示(X0,Y0)和/或二输入数据值w1的第二混淆表示(X1,Y1)可能已经通过计算以下方程而生成:
。
第一输入数据值w0的第一混淆表示(X0,Y0)和/或二输入数据值w1的第二混淆表示(X1,Y1)可能已经使用查找表而生成。查找表可以限定数据值w3的混淆表示(X3,Y3)与第一输入数据值w0的混淆表示(X0,Y0)之间的关系。
该方法可以进一步包括步骤302:确定第三数据w2的混淆表示(X2,Y2),其中w2=w0⊕w1。第三数据w2的混淆表示(X2,Y2)可以通过执行以下运算来确定:
X2=X0⊕X1
Y2=Y0⊕Y1
其中(X0,Y0)可以是第一输入数据值w0的第一混淆表示并且(X1,Y1)可以是第二输入数据值w1的第二混淆表示。
该方法可以进一步包括步骤303:去混淆所确定的第三数据w2的混淆表示(X2,Y2)以便获取w2。去混淆可以通过求解下述方程组来执行:
其中⊕是运算符,A0、B0、A1和B1是关于运算符⊕为线性的运算符,并且将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且σ2是用于向混淆表示提供冗余的状态变量。
去混淆值w2可以被发送给另一单元以用于进一步的处理(例如用于执行新的运算或者用于显示目的)或者用于存储在查找表中,其中查找表可以随后用于去混淆混淆表示。
将领会到的是,本发明还适用于计算机程序,特别地适于将本发明付诸实践的载体上或载体中的计算机程序。该程序可以是源代码、目标代码、代码中间源和目标代码的形式,诸如部分编译的形式,或者适合用在根据本发明的方法的实现方式中的任何其它形式。还将领会到的是,这样的程序可以具有许多不同的架构设计。例如,实现根据本发明的方法或系统的功能性的程序代码可以细分成一个或多个子例程。在这些子例程之中分配功能性的许多不同方式对于本领域技术人员将是显然的。子例程可以一起存储在一个可执行文件中以形成自包含式程序。这样的可执行文件可以包括计算机可执行指令,例如处理器指令和/或解译器指令(例如Java解译器指令)。可替换地,一个或多个或者全部的子例程可以存储在至少一个外部库文件中并且静态地或者动态地与主程序链接,例如在运行时间。主程序包含对至少一个子例程的至少一个调用。子例程可以进一步包括对彼此的调用。涉及计算机程序产品的一个实施例包括对应于本文阐述的至少一个方法的每一个处理步骤的计算机可执行指令。这些指令可以细分成子例程和/或存储在可以静态地或动态地链接的一个或多个文件中。涉及计算机程序产品的另一实施例包括对应于本文阐述的系统和/或产品中的至少一个的每一个构件的计算机可执行指令。这些指令可以细分成子例程和/或存储在可以静态地或动态地链接的一个或多个文件中。
计算机程序的载体可以是能够承载程序的任何实体或设备。例如,载体可以包括存储介质,诸如ROM,例如CD ROM或者半导体ROM,或者磁性记录介质,例如闪速驱动器或硬盘。此外,载体可以是可以经由电缆或光缆或者通过无线电或其它措施运送的可传送载体,诸如电信号或光信号。当程序体现在这样的信号中时,载体可以通过这样的线缆或其它设备或构件而构成。可替换地,载体可以是程序嵌入其中的集成电路,该集成电路适于执行相关方法或者用在相关方法的执行中。
应当指出的是,以上提及的实施例说明而非限制本发明,并且本领域技术人员将能够设计许多可替换实施例而不脱离随附权利要求的范围。在权利要求中,放置在括号之间的任何参考标记不应当解释为限制权利要求。动词“包括”及其词形变化的使用不排除除权利要求中陈述的那些之外的元件或步骤的存在。元件之前的冠词“一”不排除多个这样的元件的存在。本发明可以借助于包括若干分立元件的硬件而实现,以及借助于适当编程的计算机而实现。在枚举若干构件的设备权利要求中,这些构件中的若干个可以由同一个硬件项体现。在相互不同的从属权利要求中陈述某些措施的仅有事实并不指示这些措施的组合不能用于获益。
Claims (14)
1.一种用于使用数据的混淆表示在数据之上执行运算的系统,包括:
获取构件,其配置成获取第一数据值w0的第一混淆表示(X0,Y0)并且获取第二数据值w1的第二混淆表示(X1,Y1),其中以下关系成立:
其中
⊕是运算符,
A0、B0、A1和B1是线性运算符,并且将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且
σ0和σ1是向混淆表示提供冗余的状态变量;以及
确定构件(102),其配置成通过在第一数据值w0的混淆表示(X0,Y0)和第二数据值w1的混淆表示(X1,Y1)上执行以下运算来确定第三数据值w2的混淆表示(X2,Y2):
X2=X0⊕X1
Y2=Y0⊕Y1,
其中w2=w0⊗w1,其中⊗为运算符。
2.权利要求1所述的系统,进一步包括混淆构件(101),其配置成生成基于第一数据值w0的第一混淆表示(X0,Y0)和基于第二数据值w1的第二混淆表示(X1,Y1)。
3.权利要求1或2所述的系统,进一步包括:
去混淆构件(103),其配置成对第三数据值w2的混淆表示(X2,Y2)去混淆,以便使用以下方程组获取第三数据值w2:
其中σ2是用于向第三数据值w2的混淆表示(X2,Y2)提供冗余的状态变量。
4.权利要求2所述的系统,还包括状态生成器以用于随机地或伪随机地生成状态变量σ0的值和/或状态变量σ1的值,并且其中混淆构件(101)配置成基于第一数据值w0和状态变量σ0来生成第一混淆表示(X0,Y0)并且基于第二数据值w1和状态变量σ1来生成第二混淆表示(X1,Y1)。
5.权利要求2或3所述的系统,其中混淆构件(101)被配置成在查找表中查找第一混淆表示(X0,Y0)和第二混淆表示(X1,Y1),并且/或者去混淆构件(103)被配置成在查找表中查找第三数据值w2。
6.权利要求3所述的系统,其中混淆构件(101)和去混淆构件(103)是第一设备的部分并且确定构件是第二不同设备的部分,其中第一设备进一步包括传送构件和接收构件,其中第二设备进一步包括传送构件和接收构件,其中第一设备的传送构件配置成向第二设备的接收构件传送第一混淆表示(X0,Y0)和第二混淆表示(X1,Y1),并且其中第二设备的传送构件配置成向第一设备的接收构件传送混淆表示(X2,Y2)。
7.权利要求1所述的系统,其中确定构件(102)配置成以明文执行从X0和X1计算X2以及从Y0和Y1计算Y2中的至少一个。
8.权利要求1所述的系统,其中w0、w1、w2、σ0、σ1、σ2、X0、X1、X2、Y0、Y1和Y2是具有相同位数的值。
9.权利要求1所述的系统,其中运算符A0、B0、A1和B1中的至少一个是可逆运算符。
10.权利要求9所述的系统,其中运算符A0、B0、A1和B1的每一个是可逆运算符。
11.权利要求1所述的系统,其中运算符⊕是按位XOR运算并且运算符⊗是按位XOR运算符。
12.权利要求11所述的系统,其中按位XOR运算通过至少一个XOR机器指令来执行。
13.一种用于使用数据的混淆表示在数据上执行运算的方法,包括以下步骤:
获取(201)第一数据值w0的第一混淆表示(X0,Y0)并且获取第二数据值w1的第二混淆表示(X1,Y1),其中以下关系成立:
其中
⊕是运算符,
A0、B0、A1和B1是线性运算符,并且将(u,v)映射到(A0(u)⊕B0(v),A1(u)⊕B1(v))的运算符E关于u可逆,并且
σ0和σ1是用于向混淆表示提供冗余的状态变量;以及
通过在第一数据值w0的混淆表示(X0,Y0)和第二数据值w1的混淆表示(X1,Y1)上执行以下运算来确定(202)第三数据值w2的混淆表示(X2,Y2):
X2=X0⊕X1
Y2=Y0⊕Y1,
其中w2=w0⊗w1,其中⊗为运算符。
14.一种计算机程序产品,包括用于使处理器系统执行权利要求13的方法的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP13198943 | 2013-12-20 | ||
EP13198943.6 | 2013-12-20 | ||
PCT/EP2014/078107 WO2015091583A1 (en) | 2013-12-20 | 2014-12-17 | Operator lifting in cryptographic algorithm |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106031079A true CN106031079A (zh) | 2016-10-12 |
CN106031079B CN106031079B (zh) | 2019-10-11 |
Family
ID=49955140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480076008.4A Expired - Fee Related CN106031079B (zh) | 2013-12-20 | 2014-12-17 | 加密算法中的运算符提升 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10075290B2 (zh) |
EP (1) | EP3085004A1 (zh) |
JP (1) | JP6397921B2 (zh) |
CN (1) | CN106031079B (zh) |
WO (1) | WO2015091583A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2936727A1 (en) | 2012-12-21 | 2015-10-28 | Koninklijke Philips N.V. | Computing device comprising a table network |
US10270598B2 (en) * | 2016-08-26 | 2019-04-23 | Intel Corporation | Secure elliptic curve cryptography instructions |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006012638A2 (en) * | 2004-07-29 | 2006-02-02 | Vadium Technology, Inc. | Techniques to strengthen one-time pad encryption |
WO2006058561A1 (en) * | 2004-12-01 | 2006-06-08 | Telecom Italia S.P.A. | Method and related device for hardware-oriented conversion between arithmetic and boolean random masking |
CN1890914A (zh) * | 2003-12-11 | 2007-01-03 | 皇家飞利浦电子股份有限公司 | 块加密系统、利用置换隐藏各加密轮的核心加密函数 |
CN1926800A (zh) * | 2003-10-20 | 2007-03-07 | 伊索普株式会社 | 信息的加密发送接收方法 |
CN101093627A (zh) * | 2007-08-07 | 2007-12-26 | 威盛电子股份有限公司 | 密码编译码装置 |
CN101242275A (zh) * | 2008-03-07 | 2008-08-13 | 四川虹微技术有限公司 | 基于流密码加密的安全传输方法 |
CN101578813A (zh) * | 2007-01-11 | 2009-11-11 | 皇家飞利浦电子股份有限公司 | 跟踪实现的拷贝 |
CN101969374A (zh) * | 2010-10-27 | 2011-02-09 | 北京航空航天大学 | 分组密码算法中混淆层的实现方法 |
CN102460404A (zh) * | 2009-06-01 | 2012-05-16 | 起元技术有限责任公司 | 生成混淆数据 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3849760A (en) * | 1971-07-12 | 1974-11-19 | Hitachi Ltd | Multi-dimensional pattern recognition processor |
JP2000115157A (ja) * | 1998-10-02 | 2000-04-21 | Nippon Telegr & Teleph Corp <Ntt> | 紛失通信方法 |
US6448910B1 (en) * | 2001-03-26 | 2002-09-10 | Morpho Technologies | Method and apparatus for convolution encoding and viterbi decoding of data that utilize a configurable processor to configure a plurality of re-configurable processing elements |
US20060291650A1 (en) * | 2001-05-22 | 2006-12-28 | Viswanath Ananth | State-varying hybrid stream cipher |
EP1807965B1 (en) * | 2004-10-28 | 2019-01-30 | Irdeto B.V. | Method, server and computer readable medium for obfuscating a cryptographic function |
JP4618684B2 (ja) * | 2006-06-14 | 2011-01-26 | 日本電信電話株式会社 | 透かし埋め込み処理方法、透かし埋め込み処理システム、サービス提供者装置および顧客装置、並びにプログラム |
US7630982B2 (en) * | 2007-02-24 | 2009-12-08 | Trend Micro Incorporated | Fast identification of complex strings in a data stream |
US20080235802A1 (en) * | 2007-03-21 | 2008-09-25 | Microsoft Corporation | Software Tamper Resistance Via Integrity-Checking Expressions |
ES2366753T3 (es) * | 2007-12-13 | 2011-10-25 | Oberthur Technologies | Método de procesamiento criptográfico de datos, en particular con la ayuda de una caja s, dispositivo y programas asociados. |
EP2382536B1 (en) * | 2009-01-29 | 2018-04-25 | Fortress Applications Ltd. | System and methods for encryption with authentication integrity |
WO2010132695A1 (en) * | 2009-05-13 | 2010-11-18 | Daniel Wayne Engels | System and method for securely identifying and authenticating devices in a symmetric encryption system |
US8718280B2 (en) | 2010-12-17 | 2014-05-06 | Apple Inc. | Securing keys of a cipher using properties of the cipher process |
-
2014
- 2014-12-17 CN CN201480076008.4A patent/CN106031079B/zh not_active Expired - Fee Related
- 2014-12-17 JP JP2016540494A patent/JP6397921B2/ja not_active Expired - Fee Related
- 2014-12-17 WO PCT/EP2014/078107 patent/WO2015091583A1/en active Application Filing
- 2014-12-17 US US15/104,753 patent/US10075290B2/en not_active Expired - Fee Related
- 2014-12-17 EP EP14821131.1A patent/EP3085004A1/en not_active Withdrawn
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1926800A (zh) * | 2003-10-20 | 2007-03-07 | 伊索普株式会社 | 信息的加密发送接收方法 |
CN1890914A (zh) * | 2003-12-11 | 2007-01-03 | 皇家飞利浦电子股份有限公司 | 块加密系统、利用置换隐藏各加密轮的核心加密函数 |
WO2006012638A2 (en) * | 2004-07-29 | 2006-02-02 | Vadium Technology, Inc. | Techniques to strengthen one-time pad encryption |
WO2006058561A1 (en) * | 2004-12-01 | 2006-06-08 | Telecom Italia S.P.A. | Method and related device for hardware-oriented conversion between arithmetic and boolean random masking |
CN101578813A (zh) * | 2007-01-11 | 2009-11-11 | 皇家飞利浦电子股份有限公司 | 跟踪实现的拷贝 |
CN101093627A (zh) * | 2007-08-07 | 2007-12-26 | 威盛电子股份有限公司 | 密码编译码装置 |
CN101242275A (zh) * | 2008-03-07 | 2008-08-13 | 四川虹微技术有限公司 | 基于流密码加密的安全传输方法 |
CN102460404A (zh) * | 2009-06-01 | 2012-05-16 | 起元技术有限责任公司 | 生成混淆数据 |
CN101969374A (zh) * | 2010-10-27 | 2011-02-09 | 北京航空航天大学 | 分组密码算法中混淆层的实现方法 |
Non-Patent Citations (1)
Title |
---|
CLAUDE CASTELLUCCIA, EINAR MYKLETUN, GENE TSUDIK: "efficient aggregation of encrypted data in wireless sensor networks", 《THE SECOND ANNUAL INTERNATIONAL CONFERENCE ON MOBILE AND UBIQUITOUS SYSTEM:NETWORKING AND SERVICES》 * |
Also Published As
Publication number | Publication date |
---|---|
US20160315761A1 (en) | 2016-10-27 |
EP3085004A1 (en) | 2016-10-26 |
US10075290B2 (en) | 2018-09-11 |
CN106031079B (zh) | 2019-10-11 |
JP2017501445A (ja) | 2017-01-12 |
JP6397921B2 (ja) | 2018-09-26 |
WO2015091583A1 (en) | 2015-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Awan et al. | Secure framework enhancing AES algorithm in cloud computing | |
CN104486315B (zh) | 一种基于内容属性的可撤销密钥外包解密方法 | |
CN107342858A (zh) | 一种基于可信环境的智能合约保护方法和系统 | |
EP2252932B1 (en) | White-box implementation | |
CN108629027A (zh) | 区块链上用户数据库重建方法、装置、设备及介质 | |
CN111371545B (zh) | 一种基于隐私保护的加密方法和系统 | |
US20140115321A1 (en) | Encrypted statistical processing system, device, method, and program | |
CN109687952A (zh) | 数据处理方法及其装置、电子装置及存储介质 | |
JP2012129993A (ja) | 暗号装置の保護方法及び保護システム | |
CN111417121A (zh) | 具有隐私保护的多恶意软件混合检测方法、系统、装置 | |
CN110704854B (zh) | 针对文本数据保留格式的流式加密方法 | |
CN111586142B (zh) | 一种安全多方计算方法及系统 | |
KR20170097509A (ko) | 화이트 박스 암호화 기반의 연산 방법 및 그 방법을 수행하는 보안 단말 | |
US8553878B2 (en) | Data transformation system using cyclic groups | |
CN106031079B (zh) | 加密算法中的运算符提升 | |
KR20220079522A (ko) | 기하 대수 및 헨젤 코드들을 이용한 암호화를 위한 방법들 및 시스템들과 동형 암호화 시스템들 | |
Bin Muhaya et al. | Modified AES using chaotic key generator for satellite imagery encryption | |
CN110419195A (zh) | 在iot轻量级终端环境中基于代理重加密的数据管理方法及系统 | |
KR101440680B1 (ko) | 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치 | |
CN112910630B (zh) | 扩展密钥的置换方法及装置 | |
CN115580443A (zh) | 一种图数据的处理方法、装置、设备和介质 | |
KR101812311B1 (ko) | 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법 | |
Yakobu et al. | An Enhanced Secure, Robust and Efficient Crypto Scheme for Ensuring Data Privacy in Public Cloud Using Obfuscation & Encryption. | |
CN117478305B (zh) | 基于两方安全协作的全同态加密方法、系统、终端及介质 | |
Hakuta et al. | Cryptographic Technology for Benefiting from Big Data |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191011 Termination date: 20201217 |
|
CF01 | Termination of patent right due to non-payment of annual fee |