CN114175572A - 利用拟群运算对加密数据实行相等和小于运算的系统和方法 - Google Patents

利用拟群运算对加密数据实行相等和小于运算的系统和方法 Download PDF

Info

Publication number
CN114175572A
CN114175572A CN202080035590.5A CN202080035590A CN114175572A CN 114175572 A CN114175572 A CN 114175572A CN 202080035590 A CN202080035590 A CN 202080035590A CN 114175572 A CN114175572 A CN 114175572A
Authority
CN
China
Prior art keywords
ciphertext
computer
data
cluster
encryption
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
CN202080035590.5A
Other languages
English (en)
Other versions
CN114175572B (zh
Inventor
P·科尔特
S·杰克森
P·R·山穆加维拉于塔姆
M·贝莱尔
N·彻内特
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.)
Baffin Inc
Original Assignee
Baffin Inc
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 Baffin Inc filed Critical Baffin Inc
Publication of CN114175572A publication Critical patent/CN114175572A/zh
Application granted granted Critical
Publication of CN114175572B publication Critical patent/CN114175572B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/46Secure multiparty computation, e.g. millionaire problem

Abstract

提供了一种加密系统和方法,其解决了公共云中的私有计算,并且提供了实行加密数据的运算(包括相等确定和小于运算的比较)的能力。

Description

利用拟群运算对加密数据实行相等和小于运算的系统和方法
技术领域
本公开总体上涉及密码学,并且更具体地涉及用于计算机数据保密性的密码学。
背景技术
当利用当前的NIST标准AES计数器模式(CTR-XOR)对称密钥加密方案对数据进行加密时,唯一可以对加密数据实行的运算(operation)是解密。特别地,在不首先解密两个密文的情况下,就不可能添加或比较(小于比较)两个加密的整数。因此,合期望的是提供一种加密技术,其提供数据安全性,但是准许对加密数据进行有用的运算(包括相等检测和小于确定)。
上述问题在公共云中的私有计算的背景下尤为尖锐,而且在其他领域也存在。为了比较相等,已知的系统和方法使用会比较散列(诸如SHA)的确定性加密(DE)或方法。然而,已知确定性加密(DE)的安全性较低。将大的散列进行比较会较慢,而将小的散列进行比较可能由于冲突而给出不正确的结果。
对于小于运算的比较,已知的系统使用保序加密(OPE)和揭序加密(ORE)的方法、安全多方计算(SMPC)方案,诸如来自Cybernetica的Sharemind或使用混淆电路(GC)的方法。然而,已知单独使用的保序加密(OPE)和揭序加密(ORE)的安全性较低。小于比较的文献中的SMPC协议需要各方之间进行许多轮通信,因此速度非常慢。混淆电路(GC)具有提供极大保密性的潜力,但是计算成本高,并且需要在各方之间传送大量密码文本。
因此,合期望的是提供一种加密系统和方法,其解决了公共云中的私有计算,并且提供了对加密数据实行运算(相等确定和小于运算的比较)的能力,并且本公开正是针对这一目的。
附图说明
图1图示了可以用于对加密数据实行各种运算的系统的示例实施例;
图2图示了可以使用图1中的系统实行的加密方法(包括加密和消息认证码);
图3图示了可以使用图1中的系统实行的解密方法;
图4图示了用于加密的相等运算的加密方法的示例;
图5图示了加密的相等运算的更多细节;
图6图示了用于加密的小于运算的加密方法的示例;以及
图7图示了加密的小于运算的更多细节。
具体实施方式
本公开具体地适用于将私有计算外包给公共云的系统,使得在对公共云中的数据的运算期间维持数据的机密性,并且将在这种背景下描述本公开。然而,应当领会,该系统和方法具有更大的实用性,因为它可以用于如下所述的任何系统/与如下所述的任何系统一起使用:在所述系统中,合期望的是为了安全性提供加密,同时还允许对加密数据实行运算。在实施例中,加密和解密过程包括:防止攻击者伪造加密值来发起主动攻击的消息认证码。下面描述的系统和方法可以用于加密数据的相等检测或对加密数据进行的小于运算,该小于运算使用拟群(quasigroup,缩写为QGroup)加密和消息认证码(MAC)过程来使得能够实现无需解密即可实行的计算,以便在公共云中维持机密性。该系统和方法还可以利用SMPC系统。
图1图示了可以用于对加密数据实行各种运算的系统100的示例实施例。在示例实施例中,示出了彼此通信的客户端102和服务器104,但是该系统可以利用彼此通信的多个客户端和多个服务器来实现。每个客户端102可以是具有处理器、存储器、I/O设备和显示器的计算设备,并且可以执行多行指令/计算机代码(应用、代码段、移动应用等),其请求对加密数据实行一个或多个运算,诸如相等检测运算或小于运算的比较。例如,每个客户端102的计算设备可以是个人计算机、膝上型计算机、平板计算机、终端等等。在下图中,客户端可以包括作为客户端的一部分并且发出运算命令并从服务器104接收结果的应用112。每个服务器104可以是具有处理器、存储器、I/O设备和显示器的计算机,并且可以执行多行指令/计算机代码(应用、代码段、移动应用等),其管理客户端请求的一个或多个运算,并且便于对加密数据的运算。例如,每个服务器104的计算机可以是服务器计算机、一个或多个云计算资源、一个或多个虚拟计算机资源、一个或多个刀片服务器等。服务器104可以附接有存储加密数据的数据库114,并且系统在其上对加密数据实行运算。在一个实施例中,数据库114可以托管/驻留在公共云中,这需要存储加密数据并[对加密数据实行运算。在一个实施例中,数据库114可以使用数据库服务器来实现。
系统100可以进一步包括:拟群和揭序加密(ORE)加密/解密部分106,其连接在每个客户端与每个服务器之间,并且管理如下所述的加密和解密运算。加密/解密部分106可以实现为一个或多个计算机系统,其具有至少一个处理器、存储器、I/O设备,并且可以执行多行指令/计算机代码(一个或多个应用、代码段、移动应用等),所述多行指令/计算机代码在每个客户端102与服务器104之间实行如下所述的加密和解密运算。
该系统可以进一步包括连接到服务器104的已知安全多方计算(SMPC)集群108,其帮助对加密数据实行所请求的运算,如下面更详细描述的。SMPC集群108可以被实现为一个或多个计算机系统,其具有至少一个处理器、存储器、I/O设备,并且可以执行多行指令/计算机代码(一个或多个应用、代码段、移动应用等),所述多行指令/计算机代码有助于对加密数据实行所请求的运算,如下面更详细描述的。加密/解密部分106和SMPC集群108每个可以在彼此相同或不同的计算机上实现。更详细地,加密部分106可以在与客户端102相同的系统上实现、或者在单独的系统上实现,但是它从不在与服务器104相同的系统上实现,因为这将使加密密钥在服务器104上可获得。此外,加密/解密部分106和SMPC集群108中的每一个可以在与服务器104相同或不同的计算机上实现。如图1所示,加密密钥110可以被不时地提供给加密/解密部分106和SMPC集群108中的每一个,以对加密数据实行加密/解密以及运算。每个客户端可以对加密数据生成一个或多个运算111,并且服务器104将向客户端返回这些(一个或多个)运算的结果113,如下所述。
图2图示了加密方法200,图3图示了可以由图1所示的系统实行的验证和解密运算方法300。这些过程中的每一个可以使用图1所示的系统元件100-114中的一个或多个来实行过程。
回到加密运算200,加密(在一个实施例中可以由图1中的加密元件106实行)使用两个秘密密钥(先前使用加密方案生成的、或者在加密时生成的)来实行加密。一个秘密密钥是加密密钥Ke,并且另一个密钥是认证密钥Ka,其中加密密钥Ke用于对来自客户端102/应用112的明文数据D进行加密,并且认证密钥Ka用于对通过使用秘密密钥Ke加密所生成的密码数据C实行消息认证码(MAC)过程。在一个实施例中,加密/解密过程可以使用已知的拟群加密过程来实行。
如图2所示,加密方法200可以使用伪随机函数(Prf)(过程202)——其是诸如AES加密或HMAC-SHA消息摘要之类的加密函数——以生成伪随机填充P,然后使用拟群减法运算204将所述伪随机填充P与来自客户端102/应用112的明文数据D组合。更详细地,过程202采取Nonce N,其是仅使用一次的随机数;长度L,其是明文文本数据的位数;以及加密秘密密钥Ke,其被Prf用来生成填充P。NIST标准AES计数器模式(CTR-XOR)使用AES加密函数作为Prf,并且使用Xor函数作为拟群运算。NIST标准描述了CTR-XOR加密如何采取长度为L位的明文数据M、nonce N和秘密密钥K来首先生成m=ceiling(L/128)的128位输入块的集合,每个输入块从N、N+1,...,N+m-1导出,然后使用具有密钥Ke的AES加密对每个输入块加密,以生成m个输出块,并且最终将所有m个输出块级联起来,以生成长度为L位的伪随机填充P。在加密的第二步骤(过程204)中,伪随机填充P与明文数据D进行异或以产生密码数据C
拟群 G由包含所有长度为L的二进制字符串的集合G.S连同三个运算组成,这三个运算为G.Add、G.Lsub和G.Rsub。G.Add运算从集合G.S中取得任意两个元素A和B,并且在集合G.S中产生另一个元素C。G.Lsub运算从集合G.S中取得任意两个元素A和C,并且从该集合中产生唯一元素B,使得
Figure DEST_PATH_IMAGE001
G.Rsub运算从集合G.S中取得任意两个元素B和C,并且在该集合中产生唯一元素A,使得
Figure DEST_PATH_IMAGE002
。G.Lsub运算称为G.Add运算的左逆运算,并且G.Rsub运算称为G.Add运算的右逆运算。
在一个实施例中,可以选取拟群 G,使得
Figure DEST_PATH_IMAGE003
Figure DEST_PATH_IMAGE004
。这一选择将使减法运算204为G.Add(P,D),这使得
Figure DEST_PATH_IMAGE005
,而减法运算306为G.Lsub(P,C),这使得
Figure DEST_PATH_IMAGE006
。拟群运算的其他选择也是可能的。
作为加密过程的一部分,密码数据C可以被馈送到消息认证码(MAC)过程206中。MAC过程206还接收认证密钥Ka,并且产生密文,然后该密文可以与nonce N和MAC(M)一起作为密文(K,N,C,M)存储在数据库114中。在减法过程204之后使用MAC过程206,以便于防止攻击者伪造加密值来发起主动攻击。在图2-3所示的一个实施例中,可以使用已知的基于密码的MAC(CMAC),但是在该系统和方法中可以使用任何带密钥的密码散列函数。
在解密方法300期间,密文可以与认证密钥Ka一起作为输入被馈送到基于密码的MAC过程302中,以生成可以输入到减法解密过程306的密码数据。因此,使用认证密钥Ka重新计算MAC结果(散列),并且在解密期间对其进行验证,使得只有当MAC验证确认加密后密码文本没有被篡改时,才使用加密密钥Ke进行实际解密。在解密期间,nonce N和长度L(与密文一起存储)以及加密密钥Ke可以被输入到伪随机函数304,该伪随机函数再次生成馈送到减法解密过程306的填充P。减法解密过程306可以使用密码数据和该填充来实行减法运算,并且生成然后可以返回给客户端102/应用112的明文数据。
上述加密和解密方法200、300可以用于对加密数据实行若干种不同的运算。更具体地,可以实行示例性加密相等运算(图4-5所示)和示例性加密小于运算(图6-7所示)。注意到,使用常规的系统和过程,对加密数据的这些运算是不可能的,并且因此该系统和方法为能够对加密数据实行运算的技术问题提供了技术解决方案。
加密相等运算
图4图示了加密相等运算500的加密方法400的示例,并且图5图示了加密相等运算500的更多细节。加密相等运算500可以对两台SMPC计算机(例如,如图5所示,SMPC服务器1108A和SMPC服务器2 108B)使用已知的SMPC协议。第一SMPC计算机108A可以访问加密密钥(用于相等运算中使用的每一个数据项(D1,D2)的Kle、K2e),而第二计算机108B可以访问认证密钥(针对在相等运算中使用的数据项中(D1,D2)的每个的Kla、K2a)。加密密钥用于在第一计算机108A上计算第一分片(share)的差,而认证密钥用于在第二计算机108B上计算第二分片的差之前验证密码数据的完整性,这两者将在下面更详细地描述。数据库114无法访问任何密钥。
第一计算机108A和第二计算机108B两者共享秘密密钥Kf和计数器值CTRf,其是使用密钥交换协议(诸如Diffie Hellman)一次设置的,以建立不暴露于数据库114的共享秘密。CTRf是在每次相等加密运算之后递增的计数器,并且Kf是用于加密Ctrf以生成用于相等加密的随机数集合的密钥。
相等加密函数利用三个优势来高效加密。首先,如下所述,不需要解密函数。第二,如下所述,在两个SMPC计算机108A、108B之间存在同步的随机数流。第三,如下所述,每个随机数对于一对运算对象只使用一次,因此增加了运算的安全性。
如图4-5所示,加密和加密相等方法400、500可以包括以下过程:
a. 应用112实行这些过程:
i. 使用加密密钥Kle、利用nonce N1对明文数据D1进行加密,接着是使用认证密钥Kla、通过MAC进行加密,以产生密码文本(K1,N1,C1,M1)(过程402),用于存储在数据库114上,
ii. 使用加密密钥K2e和认证密钥K2a、利用nonce N2对明文数据D2进行加密,以产生密码文本(K2,N2,C2,M2)(过程402),用于存储在数据库114上,以及
iii. 在数据库114上启动两个密码文本的相等运算(如图5所示的相等运算)。
b. 数据库114(以及托管数据库114的计算机或数据库服务器)并行实行两个过程:
i. 将密文(K1,N1,C1,M1)和(K2,N2,C2,M2)发送到第二计算机108B,并且等待来自第二计算机108B的响应W返回到数据库114,以及
ii. 将每个密文的第一分片(K1,N1)和(K2,N2)发送到第一计算机108A,并且等待来自第一计算机108A的响应Y返回到数据库114。
b.第二计算机108B实行这些过程:
i. 从数据库114接收密码文本(K1,N1,C1,M1)和(K2,N2,C2,M2),
ii. 重新计算M1和M2作为接收到的密文的MAC。如果验证成功,则在后续过程中使用N1和N2的正确值;并且如果验证失败,则代替地使用N1和N2的随机值R;
iii. 使用密钥Kf加密CTRf,接着是N1和N2,以产生随机值R。
iv. 计算
Figure DEST_PATH_IMAGE007
v. 计算
Figure DEST_PATH_IMAGE008
,如下:
i. 从R中提取非零随机值A
ii. 从R中提取不同的随机值B
iii. 将A、B和V视为有限字段D的元素,以使用字段乘法和加法来计算
Figure DEST_PATH_IMAGE009
,以及
vi. 将W发送到数据库114。
c. 第一SMPC计算机108A实行这些过程:
i. 从数据库114接收(K1, N1)和(K2, N2),
ii. 使用密钥Kf加密CTRf,接着是N1和N2,以产生随机值R,
iii. 计算
Figure DEST_PATH_IMAGE010
iv. 计算
Figure DEST_PATH_IMAGE011
,如下:
a. 从R中提取非零随机值A
b. 从R中提取不同的随机值B
c. 将A、B和X视为有限字段D的元素,以使用字段乘法和加法来计算
Figure DEST_PATH_IMAGE012
,以及
v. 将Y发送到数据库114。
d. 数据库114实行这些过程:
i. 从第二计算机108B接收W,
ii. 从第一计算机108A接收Y,
iii. 计算
Figure DEST_PATH_IMAGE013
iv. 使用Z = 0作为D1 = D2的结果。
加密小于运算
图6图示了加密小于运算700的加密方法600的示例,在一个实施例中,该加密方法可以使用图1所示的系统来实行,但是也可以使用其他系统来实现。使用这种运算,由拟群加密方案产生的L-1位整数D1和D2的密码文本可以通过下面的SMPC协议进行小于(LessThan)比较。该协议依赖于揭序加密(ORE)方案,诸如Nathan Chenette等人在2016年教导的“Practical Order-Revealing Encryption with Limited Leakage”。如图7所示,该方法结合了ORE方案以在SMPC集群中使用第一计算机108A和第二计算机108B。第一计算机108A可以访问加密密钥(用于数据项D1、D2中的每个的Kle、K2e),而第二服务器可以访问认证密钥(用于数据项D1、D2中的每个的Kla、K2a)。加密密钥用于在第一计算机108A上计算第一分片的差,而认证密钥用于在第二计算机108B上计算第二分片的差之前验证密码数据的完整性。数据库114无权访问关于相等运算的任何密钥。
两个计算机108A、108B也共享秘密密钥Ko和计数器值CTRo,它们使用密钥交换协议(诸如Diffie Hellman)一次设置,以建立不暴露于数据库114的共享秘密。CTRo是在每次ORE运算之后递增的计数器,并且Ko是用于加密Ctro以生成用于ORE的随机数集合的密钥。
ORE函数利用四个优势来高效加密。首先,该运算不需要解密函数来返回加密数据的结果。第二,在两台计算机108A、108B之间存在同步的随机数流。第三,对于一对运算对象,每个随机数只使用一次。第四,可以在数据库114处重新计算第二分片的明文差异。
小于运算和加密600、700可以包括以下过程:
a. 应用112实行这些过程:
i. 使用加密密钥Kle、利用nonce N1对明文数据D1进行加密,接着是使用认证密钥Kla、通过MAC进行加密,以产生密码文本(K1,N1,C1,M1)(过程602),用于存储在数据库114上,
ii. 使用加密密钥K2e和认证密钥K2a、利用nonce N2对明文数据D2进行加密,以产生密码文本(K2,N2,C2,M2)(过程602),用于存储在数据库114上,以及
iii. 在数据库114上启动两个密码文本的小于运算。
b. 数据库114(和/或托管数据库的计算机或数据库服务器)并行实行2个过程:
i. 将密文(K1,N1,C1,M1)和(K2,N2,C2,M2)发送到第二计算机108B,并且等待来自第二计算机108B的响应W,以及
ii. 将第一分片(K1,N1)和(K2,N2)发送给服务器1,并且等待来自第一计算机108A的响应Y。
c. 第二计算机108B实行这些过程:
i. 从数据库114接收密码文本(K1,N1,C1,M1)和(K2,N2,C2,M2)。
ii. 重新计算M1和M2作为接收到的密文的MAC。如果验证成功,则在后续步骤中使用N1和N2的正确值。如果验证失败,则代替地使用N1和N2的随机值。
iii. 使用密钥Ko对Ctro进行加密,接着是N1和N2,以产生随机值R。
iv. 计算
Figure DEST_PATH_IMAGE014
v. 计算
Figure DEST_PATH_IMAGE015
,如下:
i. 通过与随机填充的异或运算将加密符号位计算为
Figure DEST_PATH_IMAGE016
Figure DEST_PATH_IMAGE017
ii. 通过与不同的随机填充的异或运算将加密的量值最高有效位计算为
Figure DEST_PATH_IMAGE018
iii. 通过与新的随机填充的异或运算来加密量值的每个后续位,其是对在先前缀(排除符号位
Figure DEST_PATH_IMAGE019
)的加密(诸如相等加密),加密为
Figure DEST_PATH_IMAGE020
vi. 将W发送到数据库114。
d. SMPC第一计算机108A实行这些过程:
i. 从数据库114接收(K1,N1)和(K2,N2)
ii. 使用密钥Ko加密Ctro,接着是N1和N2,以产生随机值R,
iii. 计算
Figure DEST_PATH_IMAGE021
iv. 计算
Figure DEST_PATH_IMAGE022
,如下:
a. 通过与随机填充的异或运算将加密符号位计算为
Figure DEST_PATH_IMAGE023
b. 通过与不同的随机填充的异或运算将加密的量值最高有效位计算为
Figure DEST_PATH_IMAGE024
c. 通过与新的随机填充的异或运算来加密量值的每个后续位,其是对在先前缀(排除符号位
Figure DEST_PATH_IMAGE025
)的加密(诸如相等加密),加密为
Figure DEST_PATH_IMAGE026
v. 将Y发送到数据库114。
e. 数据库114实行这些过程:
i. 从第二计算机108B接收W,
ii. 从第一计算机108A接收Y,
iii. 计算
Figure DEST_PATH_IMAGE027
iv. 如果Z = 0,则D1和D2的值相等,否则继续下一步
v. 计算
Figure DEST_PATH_IMAGE028
vi. 计算
Figure DEST_PATH_IMAGE029
,如下:
i. 如果对Z的位进行编号,使得0是最高有效位,并且1是下一个最高有效位,则位Z[0]是符号位C1[0]和C2[0]之差,
ii. 设i为0之后的(最高有效位的)最小索引,使得Z[i]不为零,
iii. 将位V[i]与位Z[0]进行比较;如果V[i] = Z[0],则设置指示L = 1,否则设置L = 0,以及
vii. 将L用作D1 < D2的结果。
当比较加密字符串时,有必要单独加密每个字符,使得可以对两个加密字符串进行小于比较。字符串S和T的比较方法开始于比较首个字符S[0]和T[0],并且然后比较后续字符,直到任一个字符串的字符用完,或者比较发现某个字符S[i]不等于T[i]。如果字符串中的一个,比如S,用完了字符,那么字符串S的所有字符都等于另一个字符串T的前缀,所以该方法声明S < T。如果该方法发现具有不相等字符的索引i,则它会检查是否S[i] < T[i]以确定是否字符串S < 字符串T。
虽然两个字符串中索引从0到i-1处的所有字符都被确定为相等,并且索引i处的字符次序被揭示,但是使用以下方法保留了字符串中后续字符(从索引i+1到字符串末尾)的保密性。EqualityEncryption以及OrderRevealingEncryption函数两者都在两台SMPC服务器上使用同步的随机数流。对于加密从索引0到i处的所有字符来说,这两个流是相同的这一点很重要,使得两个服务器上的字符被相同地加密,但是对于索引i之后的字符来说,这些流不必相似。
设Rj是用于对字符S[j]进行加密的n个随机位的集合,并且设Pj是用于对字符T[j]进行加密的n个随机位的集合。然后下面的方法使Rj取决于前缀
Figure DEST_PATH_IMAGE030
,并且Pj取决于前缀
Figure DEST_PATH_IMAGE031
Figure DEST_PATH_IMAGE032
这种生成随机位的方法由于共同的Ko和Ctro而确保了第一随机位集合R0 = P0。只要前缀
Figure DEST_PATH_IMAGE033
,我们就有Ri = Pi。然而,在索引i处的第一个不同字符(其中
Figure DEST_PATH_IMAGE034
)之后,我们得到了对于j > 0的所有后续字符的
Figure DEST_PATH_IMAGE035
Figure DEST_PATH_IMAGE036
。随机位的不同导致所有后续字符被随机加密,这保护了它们的保密性。
结果
所公开的SMPC相等和小于协议比先前发布的协议(诸如Sharemind系统中的协议)更快得多,因为它将服务器与SMPC集群计算机之间的多轮通信减少到一轮。此外,MAC过程防止攻击者伪造加密的文字值。上述系统和方法为部署在诸如亚马逊网络服务和微软Azure之类的公共云中的商业数据库提供加密,所述商业数据库诸如是Cassandra、MySQL、MariaDB、Postgres、MongoDB、Oracle和微软SQL服务器。
出于解释的目的,已经参照特定实施例描述了前述描述。然而,上面的说明性讨论并不旨在是穷举的、或将本公开限制成所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选取和描述实施例以便于最好地解释本公开的原理及其实践应用,由此使得本领域的其他技术人员能够最好地利用本公开和具有适合于预期的特定用途的各种修改的各种实施例。
本文中公开的系统和方法可以经由一个或多个组件、系统、服务器、电器、其他子组件实现,或者分布在这些原件之间。当实现为系统时,这样的系统可以包括和/或尤其涉及在通用计算机中发现的诸如软件模块、通用CPU、RAM等组件。在创新驻留在服务器上的实现中,这样的服务器可以包括或涉及诸如CPU、RAM等组件,诸如在通用计算机中发现的那些。
附加地,本文中的系统和方法可以超出上面阐述的实现经由利用不相干的或完全不同的软件、硬件和/或固件组件的实现来实现。关于这样的其他组件(例如,软件、处理组件等)和/或与本发明相关联或体现本发明的计算机可读介质,例如,本文中的创新的各方面可以与众多通用或专用计算系统或配置一致地实现。适用于本文中的创新的各种示例性计算系统、环境和/或配置可以包括但不限于:个人计算机内或体现在个人计算机上的软件或其他组件、诸如路由/连接组件之类的服务器或服务器计算设备、手持设备或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、消费者电子设备、网络PC、其他现有计算机平台、包括一个或多个上述系统或设备的分布式计算环境等。
在一些实例中,例如,系统和方法的各方面可以经由包括程序模块的逻辑指令和/或逻辑来实现或实行、与这样的组件或电路相关联地执行。一般而言,程序模块可以包括例程、程序、对象、组件、数据结构等,其实行特定任务或实现本文中的特定指令。本发明也可以在分布式软件、计算机或电路设置的上下文中实践,其中电路经由通信总线、电路系统或链路连接。在分布式设置中,控制/指令可以从包括存储器存储设备的本地和远程计算机存储介质发生。
本文中的软件、电路系统和组件还可以包括和/或利用一个或多个类型的计算机可读介质。计算机可读介质可以是驻留在这样的电路和/或计算组件上、与这样的电路和/或计算组件相关联、或者能够被这样的电路和/或计算组件访问的任何可用介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储装置、磁带、磁盘存储装置或其他磁存储装置,或者是可以用于存储所需信息并可以由计算组件访问的任何其他介质。通信介质可以包括计算机可读指令、数据结构、程序模块和/或其他组件。进一步,通信介质可以包括有线介质,诸如有线网络或直接有线连接,然而本文中的任何这种类型的介质都不包括暂时性介质。任何上述内容的组合也包括在计算机可读介质的范围内。
在本说明书中,术语组件、模块、设备等可以指代可以以各种各样的方式实现的任何类型的逻辑或功能软件元件、电路、块和/或过程。例如,各种电路和/或块的功能可以彼此组合成任何其他数量的模块。每个模块甚至可以实现为存储在有形存储器(例如,随机存取存储器、只读存储器、CD-ROM存储器、硬盘驱动器等)上的软件程序,该软件程序要由中央处理单元读取以实现本文中的创新的功能。或者,模块可以包括经由传输载波传输到通用计算机或处理/图形硬件的编程指令。而且,模块可以被实现为硬件逻辑电路系统,其实现了本文中的创新所涵盖的功能。最后,模块可以使用专用指令(SIMD指令)、现场可编程逻辑阵列或提供了期望的性能和成本水平的其任何组合来实现。
如本文中所公开的,与本公开一致的特征可以经由计算机硬件、软件和/或固件实现。例如,本文中公开的系统和方法可以以各种形式体现,所述形式包括例如数据处理器,诸如还包括数据库、数字电子电路、固件、软件或它们的组合的计算机。进一步,虽然一些公开的实现描述了特定的硬件组件,但是与本文中的创新一致的系统和方法可以以硬件、软件和/或固件的任何组合来实现。此外,本文中的创新的上述特征和其他方面和原理可以在各种环境中实现。这样的环境和相关应用可以被专门构建用于实行根据本发明的各种例程、过程和/或操作,或者它们可以包括由代码选择性激活或重新配置以提供必要功能的通用计算机或计算平台。本文中公开的过程并不固有地与任何特定的计算机、网络、架构、环境或其他装置相关,并且可以通过硬件、软件和/或固件的适当组合来实现。例如,各种通用机器可以与根据本发明的教导编写的程序一起使用,或者构建专用装置或系统来实行所需的方法和技术可以更方便。
本文中描述的方法和系统的各方面(诸如逻辑)也可以被实现为被编程到各种各样的电路中的任何电路中的功能,包括诸如现场可编程门阵列(“FPGA”)之类的可编程逻辑器件(“PLD”)、可编程阵列逻辑(“PAL”)器件、电可编程逻辑和存储器器件以及基于标准单元的器件,以及专用集成电路。实现各方面的一些其他可能性包括:存储器设备、具有存储器的微控制器(诸如EEPROM)、嵌入式微处理器、固件、软件等。此外,各方面可以体现在以下微处理器中,所述微处理器具有基于软件的电路仿真、离散逻辑(顺序和组合)、定制器件、模糊(神经)逻辑、量子器件以及任何上述器件类型的混合。底层器件技术可以以各种各样的组件类型的形式提供,例如,比如互补金属氧化物半导体(“CMOS”)的金属氧化物半导体场效应晶体管(“MOSFET”)技术、比如发射极耦合逻辑(“ECL”)的双极技术、聚合物技术(例如,硅共轭聚合物和金属共轭聚合物金属结构)、混合模拟和数字等等。
还应当注意,本文中公开的各种逻辑和/或功能可以使用硬件、固件的任何数量的组合来使得能够实现,和/或根据它们的行为、寄存器传递、逻辑组件和/或其他特性,作为体现在各种机器可读或计算机可读介质中的数据和/或指令来使得能够实现。其中可以体现这样的格式化数据和/或指令的计算机可读介质包括但不限于采用各种形式的非易失性存储介质(例如,光、磁或半导体存储介质),尽管其再一次不包括暂时性介质。除非上下文另行明确要求,否则在整个描述中,词语“包括”、“包含”等要在包含性的意义上来解释,而不是在排他性的或穷尽性的意义来解释;也就是说,在某种意义上是“包括,但不限于”。使用单数或复数的词语也分别包括复数或单数。附加地,词语“在本文中”、“下面”、“上面”、“下面”以及同义词指代本申请的整体,而不是指代本申请的任何特定部分。当词语“或者”用于参考具有两个或更多个项的列表时,该词语覆盖该词语的所有以下解释:列表中的任一项、列表中的所有项、以及列表中的项的任何组合。
尽管本文中已经具体描述了本发明的某些当前优选的实现,但是对于本发明所属领域的技术人员来说,应当显而易见的是,在不脱离本发明的精神和范围的情况下,可以对本文中示出和描述的各种实现做出变化和修改。因此,旨在使本发明仅限于适用法律规则所要求的范围。
尽管前面已经参照了本公开的特定实施例,本领域技术人员应当领会到,在不脱离本公开的原理和精神的情况下,可以对该实施例做出改变,本公开的范围由所附权利要求限定。

Claims (39)

1.一种方法,包括:
使用拟群加密对来自客户端的第一项明文数据和第二项明文数据进行加密,以生成第一项密码数据和第二项密码数据;
为每一项密码数据生成消息认证码,以生成第一密文和第二密文;
从客户端接收对第一密文和第二密文的运算请求,以对加密数据实行运算;
使用安全多方计算(SMPC)集群的第一计算机和第二计算机实行对第一密文和第二密文的运算以生成运算结果;以及
将运算结果返回给客户端。
2.根据权利要求1所述的方法,其中,对加密数据的运算进一步包括加密相等运算和加密小于运算之一。
3.根据权利要求1所述的方法,其中,对第一项明文数据和第二项明文数据进行加密进一步包括:使用加密密钥、利用伪随机填充的拟群减法运算和所述项明文数据为第一项数据和第二项数据中的每一个生成密码数据。
4.根据权利要求3所述的方法,其中,对所述第一项明文数据和第二项明文数据进行加密进一步包括:使用加密密钥、伪随机函数、nonce、和明文数据的长度为每个项明文数据生成伪随机填充。
5.根据权利要求4所述的方法,其中,伪随机函数是加密方法和加密消息摘要之一。
6.根据权利要求3所述的方法,其中,为每一项密码数据生成消息认证码进一步包括:使用认证密钥为每一项密码数据生成消息认证码。
7.根据权利要求6所述的方法,其中,对第一密文和第二密文实行运算以生成运算结果进一步包括:向SMPC集群的第一计算机提供第一项明文数据和第二项明文数据中的每一项的加密密钥,以及向SMPC集群的第二计算机提供第一项明文数据和第二项明文数据中的每一项的认证密钥。
8.根据权利要求7所述的方法,其中,对第一密文和第二密文实行运算以生成运算结果进一步包括:在SMPC集群的第一计算机上计算第一密文的第一分片与第二密文的第一分片之间的差;在SMPC集群的第二计算机上验证第一密文和第二密文的完整性;以及在SMPC集群的第二计算机上计算第一密文的第二分片与第二密文的第二分片之间的差。
9.根据权利要求8所述的方法,其中,对第一密文和第二密文实行运算以生成运算结果进一步包括:在SMPC集群的第一计算机和第二计算机之中共享秘密密钥和计数器值。
10.根据权利要求1所述的方法,其中,对第一项明文数据和第二项明文数据进行加密进一步包括:使用加密密钥、利用伪随机填充的拟群减法运算和所述项明文数据为第一项数据和第二项数据中的每一个生成密码数据,并且其中,为每一项密码数据生成消息认证码进一步包括使用认证密钥为每一项密码数据生成消息认证码,并且进一步包括在SMPC集群的第一计算机和第二计算机之中共享秘密密钥和计数器值。
11.根据权利要求10所述的方法,其中,对加密数据实行运算进一步包括:对第一项密码数据和第二项密码数据实行加密相等运算。
12.根据权利要求11所述的方法,其中,对第一项密码数据和第二项密码数据实行加密相等运算进一步包括:在SMPC集群的第二计算机上重新计算第一密文和第二密文的消息认证码;在SMPC集群的第二计算机上,基于秘密密钥和计数器值生成随机值;在SMPC集群的第二计算机上生成第一密文与第二密文之间的差;以及在SMPC集群的第二计算机上,基于第一密文和第二密文之间所生成的差和随机值来计算相等加密值。
13.根据权利要求12所述的方法,其中,对第一项密码数据和第二项密码数据实行加密相等运算进一步包括:由SMPC集群的第一计算机,基于秘密密钥和计数器值生成随机值;由SMPC集群的第一计算机,计算使用用于第一密文的加密密钥的第一密文的第一分片的伪随机函数与使用用于第二密文的加密密钥的第二密文的第一分片的伪随机函数之间的差;以及在SMPC集群的第一计算机上,基于第一密文和第二密文之间所生成的差和随机值来计算相等加密值。
14.根据权利要求13所述的方法,其中,生成运算结果进一步包括:在数据库计算机处生成SMPC集群的第一计算机的相等加密值和SMPC集群的第二计算机的相等加密值的异或,以确定第一项明文数据和第二项明文数据是否相等。
15.根据权利要求10所述的方法,其中,对加密数据实行运算进一步包括:使用SMPC集群对第一条密码数据和第二条密码数据实行加密小于运算。
16.根据权利要求15所述的方法,其中,对第一项密码数据和第二项密码数据实行加密小于运算进一步包括:在SMPC集群的第二计算机上重新计算第一密文和第二密文的消息认证码;在SMPC集群的第二计算机上,基于秘密密钥和计数器值生成随机值;在SMPC集群的第二计算机上生成第一密文与第二密文之间的差;以及在SMPC集群的第二计算机上,基于第一密文和第二密文之间所生成的差和随机值来计算揭序加密值。
17.根据权利要求16所述的方法,其中,对第一项密码数据和第二项密码数据实行加密小于运算进一步包括:由SMPC集群的第一计算机,基于秘密密钥和计数器值生成随机值;由SMPC集群的第一计算机,计算使用用于第一密文的加密密钥的第一密文的第一分片的伪随机函数与使用用于第二密文的加密密钥的第二密文的第一分片的伪随机函数之间的差;并且在SMPC集群的第一计算机上,基于第一密文和第二密文之间所生成的差和随机值来计算揭序加密值。
18.根据权利要求17所述的方法,其中,生成运算结果进一步包括:在数据库计算机处生成第一密文与第二密文之间的差;在数据库计算机处生成来自第一计算机的揭序加密值与来自第二计算机的揭序加密值的异或值;由数据库计算机生成所述异或值与所述差值之间的比较值,其中,所述比较值指示第一项明文数据是否小于第二项明文数据。
19.一种系统,包括:
服务器;
客户端,能够连接到服务器,并且向服务器发出对加密数据的运算;
连接在客户端与服务器之间的加密引擎,对来自客户端的第一项明文数据和第二项明文数据进行加密,以生成由服务器接收的第一项密码数据和第二项密码数据,并且为密码数据中的每一项生成消息认证码,以生成第一密文和第二密文;
安全多方计算(SMPC)集群,具有连接到服务器的第一计算机和第二计算机,所述服务器接收第一项密码数据和第二项密码数据,并且响应于对加密数据的运算而生成运算结果;以及
服务器将结果返回给客户端。
20.根据权利要求19所述的系统,其中,对加密数据的运算进一步包括加密相等运算和加密小于运算之一。
21.根据权利要求19所述的系统,其中,加密引擎进一步被配置为使用加密密钥、利用伪随机填充的拟群减法运算和所述项明文数据为第一项数据和第二项数据中的每一想生成密码数据。
22.根据权利要求21所述的系统,其中,加密引擎进一步被配置为使用加密密钥、伪随机函数、nonce、和明文数据的长度为每一条明文数据生成伪随机填充。
23.根据权利要求22所述的系统,其中,伪随机函数是加密方法和加密消息摘要之一。
24.根据权利要求21所述的系统,其中,加密引擎进一步被配置为使用认证密钥为每一项密码数据生成消息认证码。
25.根据权利要求24所述的系统,其中,SMPC集群的第一计算机接收第一项明文数据和第二项明文数据中的每一项的加密密钥,并且其中,SMPC集群的第二计算机接收第一项明文数据和第二项明文数据中的每一项的认证密钥。
26.根据权利要求25所述的系统,其中,SMPC集群的第一计算机进一步被配置为计算第一密文的第一分片与第二密文的第一分片之间的差,并且其中,SMPC的第二计算机进一步被配置为验证第一密文和第二密文的完整性,以及计算第一密文的第二分片与第二密文的第二分片之间的差。
27.根据权利要求26所述的系统,其中,SMPC集群的第一计算机和第二计算机每个都共享秘密密钥和计数器值。
28.根据权利要求19所述的系统,其中,加密引擎进一步被配置为使用加密密钥、利用伪随机填充的拟群减法运算和所述项明文数据为第一项数据和第二项数据中的每一项生成密码数据,并且使用认证密钥为密码数据中的每一项生成消息认证码,并且其中,在SMPC集群的第一计算机和第二计算机之中共享秘密密钥和计数器值。
29.根据权利要求28所述的系统,其中,SMPC集群的第一计算机和第二计算机对第一项密码数据和第二项密码数据实行加密相等运算。
30.根据权利要求29所述的系统,其中,SMPC集群的第二计算机进一步被配置为重新计算第一密文和第二密文的消息认证码;基于秘密密钥和计数器值生成随机值;生成第一密文与第二密文之间的差;以及基于第一密文和第二密文之间所生成的差和随机值来计算相等加密值。
31.根据权利要求30所述的系统,其中,SMPC集群的第一计算机进一步被配置为基于秘密密钥和计数器值生成随机值,计算使用用于第一密文的加密密钥的第一密文的第一分片的伪随机函数与使用用于第二密文的加密密钥的第二密文的第一分片的伪随机函数之间的差;并且基于第一密文和第二密文之间所生成的差和随机值来计算相等加密值。
32.根据权利要求31所述的系统,其中,服务器进一步被配置为生成SMPC集群的第一计算机的相等加密值和SMPC集群的第二计算机的相等加密值的异或,以确定第一项明文数据和第二项明文数据是否相等。
33.根据权利要求28所述的系统,其中,SMPC集群的第一计算机和第二计算机对第一条密码数据和第二条密码数据实行加密小于运算。
34.根据权利要求33所述的系统,其中,SMPC集群的第二计算机进一步被配置为重新计算第一密文和第二密文的消息认证码;基于秘密密钥和计数器值生成随机值;生成第一密文与第二密文之间的差;并且基于第一密文与第二密文之间的差和随机值来计算揭序加密值。
35.根据权利要求34所述的系统,其中,SMPC集群的第一计算机进一步被配置为基于秘密密钥和计数器值生成随机值;计算使用用于第一密文的加密密钥的第一密文的第一分片的伪随机函数与使用第二密文的加密密钥的第二密文的第一分片的伪随机函数之间的差;并且基于第一密文与第二密文之间的差和随机值来计算揭序加密值。
36.根据权利要求35所述的系统,其中,服务器计算机进一步被配置为生成第一密文与第二密文之间的差值,生成来自第一计算机的揭序加密值和来自第二计算机的揭序加密值的异或值,并且生成所述异或值与所述差值之间的比较值,其中,所述比较值指示第一项明文数据是否小于第二项明文数据。
37.一种用于对明文字符串进行加密的随机字符串生成的方法,其包括:使用秘密密钥、计数器、第一nonce和第二nonce实行消息认证码过程,以生成随机字符串的第一随机位块;以及
通过使用利用秘密密钥、随机字符串的紧前位块和随机字符串的长度的伪随机函数对紧前索引处的明文字符串的字符进行异或运算,来生成随机字符串的每个后续随机位块。
38.根据权利要求37所述的方法,其中,实行消息认证码过程进一步包括使用基于密码的消息认证码过程。
39.根据权利要求38所述的方法,其中,伪随机函数是加密方法和加密消息摘要之一。
CN202080035590.5A 2019-05-14 2020-05-07 利用拟群运算对加密数据实行相等和小于运算的系统和方法 Active CN114175572B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/412,174 US11190339B2 (en) 2019-05-14 2019-05-14 System and method for performing equality and less than operations on encrypted data with quasigroup operations
US16/412174 2019-05-14
PCT/US2020/031967 WO2020231762A1 (en) 2019-05-14 2020-05-07 System and method for performing equality and less than operations on encrypted data with quasigroup operations

Publications (2)

Publication Number Publication Date
CN114175572A true CN114175572A (zh) 2022-03-11
CN114175572B CN114175572B (zh) 2024-03-08

Family

ID=73228408

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080035590.5A Active CN114175572B (zh) 2019-05-14 2020-05-07 利用拟群运算对加密数据实行相等和小于运算的系统和方法

Country Status (9)

Country Link
US (1) US11190339B2 (zh)
EP (1) EP3970311A4 (zh)
JP (1) JP2022533950A (zh)
KR (1) KR20220054746A (zh)
CN (1) CN114175572B (zh)
AU (1) AU2020274492A1 (zh)
CA (1) CA3139964A1 (zh)
IL (1) IL288054B2 (zh)
WO (1) WO2020231762A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11424909B1 (en) 2018-12-12 2022-08-23 Baffle, Inc. System and method for protecting data that is exported to an external entity
US11101980B2 (en) * 2019-05-01 2021-08-24 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
US11621834B2 (en) * 2020-06-15 2023-04-04 Acronis International Gmbh Systems and methods for preserving data integrity when integrating secure multiparty computation and blockchain technology
CN113254971B (zh) * 2021-06-09 2022-07-05 中国电子科技集团公司第三十研究所 一种基于揭序加密的多数据类型密文比较方法
CN113596824A (zh) * 2021-07-30 2021-11-02 深圳供电局有限公司 一种5g安全协议中认证失败明文信息的加密方法
US11637690B1 (en) 2021-10-08 2023-04-25 Baffle, Inc. Format preserving encryption (FPE) system and method for long strings

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1119316A (zh) * 1994-09-24 1996-03-27 西安电子科技大学 一种高速数据置乱方法
CN102379134A (zh) * 2009-04-03 2012-03-14 高通股份有限公司 保护与无线通信系统内的多播通信会话相关联的消息
US8566601B1 (en) * 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
US9521124B2 (en) * 2010-02-26 2016-12-13 Microsoft Technology Licensing, Llc Secure computation using a server module
CN108306727A (zh) * 2017-01-13 2018-07-20 通用汽车环球科技运作有限责任公司 用于加密、解密和认证的方法和装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7280663B1 (en) 2000-05-22 2007-10-09 University Of Southern California Encryption system based on crossed inverse quasigroups
US7221756B2 (en) 2002-03-28 2007-05-22 Lucent Technologies Inc. Constructions of variable input length cryptographic primitives for high efficiency and high security
EP1800432B1 (en) * 2004-10-13 2014-07-09 The Regents of the University of California Cryptographic primitives, error coding, and pseudo-random number improvement methods using quasigroups
GB0805271D0 (en) 2008-03-20 2008-04-30 Ntnu Technology Transfer As Encryption method
US8452984B2 (en) * 2008-08-28 2013-05-28 Alcatel Lucent Message authentication code pre-computation with applications to secure memory
US8407550B2 (en) 2009-08-14 2013-03-26 Mitsubishi Electric Research Laboratories, Inc. Method and system for decoding graph-based codes using message-passing with difference-map dynamics
IL207918A0 (en) 2010-09-01 2011-01-31 Aviad Kipnis Attack-resistant multivariate signature scheme
US8751822B2 (en) * 2010-12-20 2014-06-10 Motorola Mobility Llc Cryptography using quasigroups
TWI465136B (zh) 2012-02-14 2014-12-11 Wistron Corp 加密行動通訊之簡訊的方法
KR101730757B1 (ko) 2013-04-12 2017-04-26 엔이씨 유럽 리미티드 사용자에 의해 디바이스에 액세스하기 위한 방법 및 시스템
WO2016032503A1 (en) 2014-08-29 2016-03-03 Hewlett Packard Enterprise Development Lp Secure information retrieval based on hash transforms
US10749671B2 (en) * 2015-04-03 2020-08-18 Nec Corporation Secure computation system, server apparatus, secure computation method, and program
EP3289483A1 (en) 2015-05-01 2018-03-07 Entit Software LLC Secure multi-party information retrieval
WO2017094009A1 (en) 2015-12-03 2017-06-08 Dyadic Security Ltd Securing sql based databases with cryptographic protocols
DE102017209014A1 (de) 2017-05-30 2018-12-06 Robert Bosch Gmbh Verfahren und Vorrichtung zum Anfügen von Transaktionen an eine Blockkette
WO2019032301A1 (en) 2017-08-10 2019-02-14 Visa International Service Association USE OF BIOMETRY AND CONFIDENTIALITY PRESERVATION METHODS TO AUTHENTICATE ONLINE ACCOUNT HOLDERS
WO2019088979A1 (en) 2017-10-30 2019-05-09 Visa International Service Association Multi-party threshold authenticated encryption
US11496467B2 (en) 2017-11-07 2022-11-08 Visa International Service Association Biometric validation process utilizing access device and location determination
WO2019115697A1 (en) * 2017-12-14 2019-06-20 Robert Bosch Gmbh Method for faster secure multiparty inner product with spdz
US20190228469A1 (en) 2018-01-22 2019-07-25 Blend Labs, Inc. Method and apparatus for a consumer controlled, decentralized financial profile
US11232224B2 (en) 2018-03-15 2022-01-25 Servicenow, Inc. Database encryption
WO2019202586A1 (en) * 2018-04-17 2019-10-24 B. G. Negev Technologies & Applications Ltd., At Ben-Gurion One-round secure multiparty computation of arithmetic streams and evaluation of functions
US10862670B2 (en) 2018-05-18 2020-12-08 Infineon Technologies Ag Automotive nonce-misuse-resistant authenticated encryption
US10289816B1 (en) 2018-06-08 2019-05-14 Gsfm Llc Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
CN112204921A (zh) * 2018-07-27 2021-01-08 赫尔实验室有限公司 利用区块链和多方计算保护轻量级设备的数据隐私的系统和方法
US10885205B2 (en) 2018-10-31 2021-01-05 Nec Corporation Of America Secure multiparty computation
US10630478B1 (en) 2018-12-28 2020-04-21 University Of South Florida Sender optimal, breach-resilient, and post-quantum secure cryptographic methods and systems for digital auditing
US11101980B2 (en) 2019-05-01 2021-08-24 Baffle, Inc. System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
US11767633B2 (en) 2019-07-01 2023-09-26 Whirlpool Corporation Drying appliance having an accessory port for providing external airflow for powered accessories

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1119316A (zh) * 1994-09-24 1996-03-27 西安电子科技大学 一种高速数据置乱方法
CN102379134A (zh) * 2009-04-03 2012-03-14 高通股份有限公司 保护与无线通信系统内的多播通信会话相关联的消息
US9521124B2 (en) * 2010-02-26 2016-12-13 Microsoft Technology Licensing, Llc Secure computation using a server module
US8566601B1 (en) * 2012-09-12 2013-10-22 Zeutro Llc Systems and methods for functional encryption using a string of arbitrary length
CN108306727A (zh) * 2017-01-13 2018-07-20 通用汽车环球科技运作有限责任公司 用于加密、解密和认证的方法和装置

Also Published As

Publication number Publication date
EP3970311A1 (en) 2022-03-23
JP2022533950A (ja) 2022-07-27
IL288054A (en) 2022-01-01
KR20220054746A (ko) 2022-05-03
CA3139964A1 (en) 2020-11-19
IL288054B1 (en) 2023-06-01
US11190339B2 (en) 2021-11-30
WO2020231762A1 (en) 2020-11-19
EP3970311A4 (en) 2023-05-03
US20200366462A1 (en) 2020-11-19
AU2020274492A1 (en) 2021-12-23
CN114175572B (zh) 2024-03-08
IL288054B2 (en) 2023-10-01

Similar Documents

Publication Publication Date Title
CN110363030B (zh) 用于执行基于格的密码操作的方法和处理设备
CN114175572B (zh) 利用拟群运算对加密数据实行相等和小于运算的系统和方法
US9917820B1 (en) Secure information sharing
US20140233727A1 (en) Method for secure substring search
US11101980B2 (en) System and method for adding and comparing integers encrypted with quasigroup operations in AES counter mode encryption
WO2019114122A1 (zh) 登录信息的加密方法、装置、电子设备及介质
US10826694B2 (en) Method for leakage-resilient distributed function evaluation with CPU-enclaves
US11824999B2 (en) Chosen-plaintext secure cryptosystem and authentication
US11349668B2 (en) Encryption device and decryption device
US9893880B2 (en) Method for secure symbol comparison
Walia et al. Implementation of new modified MD5-512 bit algorithm for cryptography
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
Olumide et al. A hybrid encryption model for secure cloud computing
EP3298720B1 (en) Computing with encrypted values
KR102304831B1 (ko) 순열그룹 기반의 암호화 기술을 적용한 암호화시스템 및 방법
Al-Attab et al. Lightweight effective encryption algorithm for securing data in cloud computing
KR101026647B1 (ko) 통신 보안 시스템 및 그 방법과 이에 적용되는 키 유도 암호알고리즘
Afianian et al. Energy-efficient secure distributed storage in mobile cloud computing
US20230085577A1 (en) Secured performance of an elliptic curve cryptographic process
US20210160051A1 (en) Method and devices for creating redundancy and encryption using mojette transform
CN117955636A (zh) 一种高安全性的敏感数据存取方法和系统
CN114499845A (zh) 多方安全计算的方法、装置及系统
EP4268411A1 (en) Method and system of computing hash based message authentication code
CN115766174A (zh) 两方安全计算的方法及系统
Ostrowski et al. Conjecture of Two Finite Fields and its Applications

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