CN117318918A - 数据同态加密方法及装置 - Google Patents

数据同态加密方法及装置 Download PDF

Info

Publication number
CN117318918A
CN117318918A CN202311436372.4A CN202311436372A CN117318918A CN 117318918 A CN117318918 A CN 117318918A CN 202311436372 A CN202311436372 A CN 202311436372A CN 117318918 A CN117318918 A CN 117318918A
Authority
CN
China
Prior art keywords
data
ciphertext
key
vector
homomorphic
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
Application number
CN202311436372.4A
Other languages
English (en)
Inventor
陈博航
韩帅
杨传辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Beijing Oceanbase Technology Co Ltd
Original Assignee
Shanghai Jiaotong University
Beijing Oceanbase Technology Co Ltd
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 Shanghai Jiaotong University, Beijing Oceanbase Technology Co Ltd filed Critical Shanghai Jiaotong University
Priority to CN202311436372.4A priority Critical patent/CN117318918A/zh
Publication of CN117318918A publication Critical patent/CN117318918A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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)
    • H04L9/0825Key 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
    • 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

Landscapes

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

Abstract

本说明书一个或多个实施方式提供了一种数据同态加密方法及装置,包括基于预先生成在客户端的密钥对待上传的明文数据进行加密得到密文数据,并向云服务器上传密文数据,向云服务器发送同态计算请求并接收服务端返回的密文计算结果,通过对密文计算结果进行解密得到明文计算结果。在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。而且,由于存储在云数据库的数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。

Description

数据同态加密方法及装置
技术领域
本说明书一个或多个实施方式涉及数据加密技术领域,尤其涉及一种数据同态加密方法及装置。
背景技术
随着数据量的高速增长,企业往往需要通过购买由第三方运营的云数据库来存储数据,以降低扩展存储设备的成本,但在此过程中数据的安全性受到挑战,因此在上传云数据库之前对数据进行加密成为保护数据安全的重要手段。
相关技术中,同态加密提供了无密钥方对密文的计算能力,从而极大降低了数据解密和通信的代价,既保护了数据隐私又使数据计算不受障碍。但是,传统的同态加密算法采用非对称加密算法,在密钥的存储与管理上带来过大的开销,加解密计算量较大,导致数据存储和计算效率不高。
发明内容
为降低数据同态加密场景下密钥存储和管理开销,提高数据存储和计算效率,本说明书一个或多个实施方式提供了一种数据同态加密方法、装置、系统及存储介质。
根据本说明书一个或多个实施方式的第一方面,提出了一种数据同态加密方法,应用于客户端,所述方法包括:
基于预先生成在所述客户端的密钥,对待上传的明文数据进行加密得到密文数据,并向云服务器上传所述密文数据,以使所述云服务器将所述密文数据存储在云数据库中;
向所述云服务器发送同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
接收云服务器发送的所述密文计算结果,并基于所述密钥对所述密文计算结果进行解密,得到所述密文计算结果所对应的明文计算结果。
在本说明书一个或多个实施方式中,预先生成所述密钥的过程,包括:
基于随机字符串生成安全参数,根据所述安全参数生成循环群,并基于所述循环群的参数确定公开参数;
对于所述密钥的每个向量维度,随机选择基于所述公开参数确定的整数域中的元素,得到每个向量维度所对应的密钥分量;
根据每个向量维度的密钥分量生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,基于所述密钥对所述明文数据进行加密的过程,包括:
将所述明文数据转换为与所述密钥相同向量维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述循环群中的随机元素和所述密钥对其进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
在本说明书一个或多个实施方式中,预先生成所述密钥的过程,包括:
基于随机字符串生成安全参数,并根据所述安全参数生成循环群;
生成基于所述循环群的伪随机函数,并根据所述伪随机函数以及所述密钥的预设向量维度生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,基于所述密钥对所述明文数据进行加密的过程,包括:
将所述明文数据转换为与所述预设向量维度相同维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述密钥包括的所述伪随机函数生成该向量元素对应的密钥分量;
基于所述循环群中的随机元素和所述密钥分量,对所述向量元素进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
在本说明书一个或多个实施方式中,待上传的所述明文数据的数量包括多个,所述基于预先生成的密钥对待上传的明文数据进行加密得到密文数据,包括:
将每个所述明文数据转换为预设向量维度的数据向量;
基于每个所述明文数据对应的数据向量,生成明文数据矩阵;
基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据。
在本说明书一个或多个实施方式中,所述基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据,包括:
对于所述明文数据矩阵中的每一个行向量,基于所述循环群随机为每个行向量生成标识参数;
基于所述标识参数和所述行向量对应的密钥分量,对每一个所述行向量进行加密,得到所述密文数据。
在本说明书一个或多个实施方式中,所述同态计算包括同态乘法计算,所述向所述服务端发送同态计算请求包括:
获取待计算的明文数据的数据集合;
基于所述数据集合生成对应的同态计算请求,并向所述云服务器发送所述同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的,与所述数据集合包括的明文数据对应的密文数据进行同态乘法计算。
根据本说明书一个或多个实施方式的第二方面,提出了一种数据同态加密方法,应用于云服务器,所述方法包括:
接收客户端发送的密文数据,并将所述密文数据存储在云数据库中,所述密文数据通过第一方面任意实施方式所述的方法加密得到;
响应于接收到所述客户端发送的同态计算请求,对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
向所述客户端发送所述密文计算结果。
根据本说明书一个或多个实施方式的第三方面,提出了一种数据同态加密装置,应用于客户端,所述装置包括:
加密上传模块,被配置为基于预先生成在所述客户端的密钥,对待上传的明文数据进行加密得到密文数据,并向云服务器上传所述密文数据,以使所述云服务器将所述密文数据存储在云数据库中;
请求发送模块,被配置为向所述云服务器发送同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果解密模块,被配置为接收云服务器发送的所述密文计算结果,并基于所述密钥对所述密文计算结果进行解密,得到所述密文计算结果所对应的明文计算结果。
在本说明书一个或多个实施方式中,所述加密上传模块被配置为:
基于随机字符串生成安全参数,根据所述安全参数生成循环群,并基于所述循环群的参数确定公开参数;
对于所述密钥的每个向量维度,随机选择基于所述公开参数确定的整数域中的元素,得到每个向量维度所对应的密钥分量;
根据每个向量维度的密钥分量生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,所述加密上传模块被配置为:
将所述明文数据转换为与所述密钥相同向量维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述循环群中的随机元素和所述密钥对其进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
在本说明书一个或多个实施方式中,所述加密上传模块被配置为:
基于随机字符串生成安全参数,并根据所述安全参数生成循环群;
生成基于所述循环群的伪随机函数,并根据所述伪随机函数以及所述密钥的预设向量维度生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,所述加密上传模块被配置为:
将所述明文数据转换为与所述预设向量维度相同维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述密钥包括的所述伪随机函数生成该向量元素对应的密钥分量;
基于所述循环群中的随机元素和所述密钥分量,对所述向量元素进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
在本说明书一个或多个实施方式中,待上传的所述明文数据的数量包括多个,所述加密上传模块被配置为:
将每个所述明文数据转换为预设向量维度的数据向量;
基于每个所述明文数据对应的数据向量,生成明文数据矩阵;
基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据。
在本说明书一个或多个实施方式中,所述加密上传模块被配置为:
对于所述明文数据矩阵中的每一个行向量,基于所述循环群随机为每个行向量生成标识参数;
基于所述标识参数和所述行向量对应的密钥分量,对每一个所述行向量进行加密,得到所述密文数据。
在本说明书一个或多个实施方式中,所述同态计算包括同态乘法计算,所述请求发送模块被配置为:
获取待计算的明文数据的数据集合;
基于所述数据集合生成对应的同态计算请求,并向所述云服务器发送所述同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的,与所述数据集合包括的明文数据对应的密文数据进行同态乘法计算。
根据本说明书一个或多个实施方式的第四方面,提出了一种数据同态加密装置,应用于云服务器,所述装置包括:
数据接收模块,被配置为接收客户端发送的密文数据,并将所述密文数据存储在云数据库中,所述密文数据通过第一方面任意实施方式的方法加密得到;
请求接收模块,被配置为响应于接收到所述客户端发送的同态计算请求,对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果发送模块,被配置为向所述客户端发送所述密文计算结果。
根据本说明书一个或多个实施方式的第五方面,提出了一种数据同态加密系统,包括:
客户端,所述客户端的处理器用于执行第一方面任意实施方式所述的方法;和
云服务器,所述云服务器的处理器用于执行第二方面任意实施方式所述的方法。
根据本说明书一个或多个实施方式的第六方面,提出了一种存储介质,存储有计算机指令,所述计算机指令用于使计算机执行第一方面或第二方面中任意实施方式所述的方法。
根据本说明书一个或多个实施方式的数据同态加密方法,包括基于预先生成在客户端的密钥对待上传的明文数据进行加密得到密文数据,并向云服务器上传密文数据,向云服务器发送同态计算请求并接收服务端返回的密文计算结果,通过对密文计算结果进行解密得到明文计算结果。在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。而且,由于存储在云数据库的数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。
附图说明
图1是根据本说明书一示例性实施方式提供的一种数据同态加密系统的结构示意图。
图2是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图3是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图4是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图5是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图6是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图7是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图8是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图9是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图10是根据本说明书一示例性实施方式提供的一种数据同态加密方法的流程图。
图11是根据本说明书一示例性实施方式提供的一种数据同态加密装置的结构框图。
图12是根据本说明书一示例性实施方式提供的一种数据同态加密装置的结构框图。
图13是根据本说明书一示例性实施方式提供的一种数据同态加密系统中客户端和云服务器的结构框图。
具体实施方式
这里将详细地对示例性实施方式进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施方式中所描述的实施方式并不代表与本说明书一个或多个实施方式相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施方式的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施方式中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施方式中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施方式中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施方式中也可能被合并为单个步骤进行描述。
另外,本说明书所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
随着数字化技术的发展,企业的用户、业务等数据量高速增长,从而企业不断需要为高速增长的数据量扩展存储数据的空间。然而存储设备价格较高,且维护与升级也会产生大量额外开销,因此,企业往往通过采购由第三方运营的云数据库来存储数据,以降低存储成本。与此同时,在某些情况下企业也需要利用云服务器的计算资源对存储数据进行一些运算。
然而在此过程中,数据的安全性会收到云数据库提供商的威胁,其对存储数据具有完整的控制权,能够直接获取数据甚至将重要数据泄露。因此,客户方在将数据提供至云服务商时,如何保证数据的安全性成为一个重要的问题。
同态加密(Homomorphic Encryption)提供了对数据的加解密的能力,以及无密钥方对密文的计算能力。同态加密是基于数学和密码学的加密技术,其基本原理是:对经过同态加密的密文数据进行计算得到输出,将该输出进行解密得到的结果,与使用同一计算方法对未加密的明文数据进行计算得到的结果是一致的。同态计算特性对于保护信息安全具有重要意义,其极大降低了数据解密和通信的代价,既保护了数据隐私又使数据计算不受障碍。
相关技术中,具有同态性质的加密算法例如El Gamal、Paillier等,这些算法均是基于公钥加密的非对称加密算法,这意味着加解密所用的私钥和公钥将会分别占用空间,并且必须维护其配对关系,在密钥的存储与管理上带来过大的开销。而且,数据的加解密过程的计算量也很大,其密文长度为未加密明文的两倍,导致存储和计算效率较低。
基于上述相关技术存在的缺陷,本公开实施方式提供了一种数据同态加密方法、装置、系统及存储介质,旨在实现基于对称加密算法的数据同态加密与存储,降低数据同态加密场景下密钥存储和管理开销,提高数据存储和计算效率。
图1示出了本公开一些实施方式的数据存储系统的场景架构图,在本公开示例中,数据存储系统包括客户端和服务端。
客户端是指用户端设备,在客户端,用户可以生成并管理密钥,并基于密钥对数据进行加解密,例如利用密钥将明文数据加密成密文数据,或者将密文数据解密得到明文数据。另外,客户端可以向服务端发送同态计算请求,从而使得服务端基于客户端的请求对存储的密文数据进行同态计算,得到密文计算结果。
服务端是指服务端设备,一般由第三方的云平台商提供,例如云服务器。在本公开示例场景中,服务端需要提供数据库服务以及同态计算服务,数据库服务是指用来存储客户端上传的密文数据的云数据库,同态计算服务则可以根据客户端的计算请求读取存储的密文数据并进行相应的计算,得到密文计算结果。
在一些实施方式中,服务端的云数据库例如可以是OceanBase数据库或其他数据库等,客户端即可以是购买云数据库存储和计算服务的企业商户等。本公开实施方式中,通过客户端与服务端的交互,即可实现对数据的同态加密及计算,下面结合图2进行说明。
如图2所示,在一些实施方式中,本公开示例的数据同态加密方法,即可应用于客户端中,由客户端执行处理,方法步骤包括:
S210、基于预先生成在客户端的密钥对待上传的明文数据进行加密得到密文数据,并向云服务器上传密文数据。
结合图1所示,在客户端,客户端可以预先基于密钥生成算法生成用于加解密的密钥,本公开实施方式中采用对称加密算法,因此密钥仅包括一个私钥。
本公开一些实施方式中,客户端待上传的每条数据均为编码在一个循环群G上的n维向量数据,从而预先生成的密钥也为基于循环群G生成的密钥。循环群是一种包含二元运算的代数结构集合,其定义为若一个群G的每一个元素都是G的生成元a的乘方,则称群G为循环群,记作G=(a),a成为循环群G的生成元。对于预先生成密钥的过程,本公开下文实施方式进行说明,在此暂不详述。
本公开实施方式中,在客户端预先生成密钥之后,即可在客户端保存该密钥,并防止其泄露。在客户端需要上传数据时,首先可以获取待上传的明文数据,然后利用密钥对明文数据进行加密,得到对应的密文数据,然后将密文数据上传至服务端,由服务端存储密文数据。
可以理解的是,由于上传至服务端的数据均为加密后的密文数据,在服务端没有密钥的情况下,服务端无法对密文数据进行解密,从而也就无法获取到原始的明文数据,以此保护数据隐私性。
S220、向云服务器发送同态计算请求,以使云服务器基于同态计算请求对云数据库中存储的密文数据进行同态计算,得到密文计算结果。
基于同态计算的原理可以知道,在需要对某些数据进行计算时,基于这些数据的密文数据进行计算后输出,然后对输出进行解密得到的结果,与对明文数据进行相同计算得到的结果是等价的。
因此本公开实施方式中,结合图1示例场景,当客户端需要对某些数据进行计算时,可以向服务端发送同态计算请求,同态计算请求中可以携带有待计算的数据范围,从而服务端通过解析该同态计算请求,从数据库中读取对应的密文数据,然后服务端对这些密文数据进行计算,得到对应的密文计算结果。
可以理解,由于同态计算的特性,从而服务端存储的密文数据无需发送至客户端进行解密计算,而是可以直接在服务端基于密文数据进行计算,只需要将密文计算结果返回客户端即可,从而节省大量的数据通信和解密开销。
在本公开一些实施方式,服务端执行的同态计算可以包括乘法同态计算,乘法同态满足对于任意明文x,y与二元运算x·y,条件Dec(Eval(Enc(x),Enc(y)))=x·y成立,其中Enc为加密算法,Dec为解密算法,Eval为同态计算算法。
S230、接收云服务器发送的密文计算结果,并基于密钥对密文计算结果进行解密,得到密文计算结果对应的明文计算结果。
结合图1所示,服务端在通过同态计算得到密文计算结果之后,可以向客户端返回该密文计算结果,例如客户端可以从服务端下载得到该密文计算结果。然后,在客户端,即可基于密钥对密文计算结果进行解密,从而得到对应的明文计算结果。
基于同态加密原理可以,通过对密文计算结果进行解密得到的明文计算结果,其等价于对明文数据进行相同计算得到的计算结果。
通过上述过程可以理解,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。而且,由于数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。
本公开一些实施方式中,数据同态加密过程中的每条数据均为编码在一个循环群G上的n维向量数据,也即,对于客户端的每条明文数据均需要转换成向量维度为n的数据向量,维度n的取值可以根据具体需求进行选取,本公开对此不作限制。
如图3所示,在一些实施方式中,本公开示例的数据同态加密方法中,生成密钥的过程包括:
S310、基于随机字符串生成安全参数,根据所述安全参数生成循环群,并基于所述循环群的参数确定公开参数。
本公开一些实施方式中,首先可以利用初始化算法生成随机字符串,利用该随机字符串作为安全参数,安全参数是衡量攻击方攻破一个密码算法的困难程度的值,表示为符号λ。
在确定安全参数λ之后,根据安全参数λ生成一个阶数为质数p的循环群G,循环群G的生成元表示为g,从而,初始化算法输出的公开参数Pp=(G,p,g)。
可以理解,循环群G是一种包含二元运算的代数结构,其使群G在运算:G×G→G上满足以下的性质:
1)封闭性,任意两个群中元素运算的结果仍然是群中的元素,即
2)满足结合律,即
3)具有单位元,存在一个群中的元素e,其与任意一个群元素运算的结果都是这一群元素,即
4)具有逆元,任意群中的元素都存在这群运算下的逆元,即
如果群G中的任意元素均可以表示成其中一个元素的指数,即 则该群G称为循环群G,本领域技术人员对此毫无疑问可以理解,本公开下文不再赘述。
S320、对于所述密钥的每个向量维度,随机选择基于所述公开参数确定的整数域中的元素,得到每个向量维度所对应的密钥分量。
结合前述可知,本公开实施方式中,每条数据均表示为n维的数据向量,从而用于对数据进行加解密的密钥也为n维的向量,也即密钥包括n个向量维度。
在一些实施方式中,对于每个1≤i≤n,从整数域Zp中均匀随机选择群元素记为s=(s1,s2,…,sn),其中,Zp表示前述公开参数中质数p的整数域,i表示密钥的每个向量维度,取值范围为1~n,si表示第i个向量维度对应的密钥分量,也即每个向量维度对应密钥s中的一个向量元素si
S330、根据每个向量维度的密钥分量生成密钥,并将所述密钥存储在所述客户端。
如前文所述,本公开一些实施方式中,密钥sk=(s,n),其中s=(s1,s2,…,sn),n表示密钥向量的长度。从而,向量s=(s1,s2,…,sn)中的每一个元素si,即表示一个向量维度所对应的密钥分量,密钥sk=(s,n)即表示长度为n的向量s=(s1,s2,…,sn)。
在通过上述过程生成密钥sk之后,即可将密钥sk保存在客户端,然后在需要加解密时,即可利用该密钥sk对数据进行加解密。
如图4所示,在一些实施方式中,本公开示例的数据同态加密方法,基于密钥sk=(s,n)对明文数据进行加密的过程,包括:
S410、将明文数据转换为与密钥相同向量维度的数据向量。
结合前述可知,本公开实施方式中,要求数据格式为n维的数据向量,因此对于数据格式不符合该要求的数据,可以通过数据转换,将明文数据转换为n维的数据向量。
例如一个示例中,一个明文数据的数据向量可以表示为M=(m1,m2,…,mn),也即数据向量M包括m1~mn共n个元素。
S420、对于数据向量中的每个向量元素,基于循环群中的随机元素和密钥对其进行加密,得到向量元素对应的密文向量元素。
本公开实施方式中,对于数据向量M=(m1,m2,…,mn)中的每个向量元素mi,首先可以均匀随机选择循环群G中的一个随机元素然后,对于每个向量元素mi,基于该随机元素R和密钥对其进行加密,得到的密文向量元素表示为/>1≤i≤n,其中,si即为前述密钥sk中的元素。从而,通过上述方法过程,可以分别计算得到每个向量元素mi加密后的密文向量元素ci
S430、基于各个密文向量元素以及随机元素,得到密文数据。
本公开实施方式中,在得到每个密文向量元素ci之后,根据各个密文向量元素以及随机元素R,即可得到对明文数据进行加密之后的密文数据,同样为向量形式,密文数据表示为C=(R,c1,c2,…,cn)。
值得说明的是,本公开实施方式中,对于任意明文数据M=(m1,m2,…,mn),其明文数据长度为n,而加密后的密文数据C=(R,c1,c2,…,cn)的数据长度为n+1,从而本公开实施方式中,密文数据与明文数据的长度比为(n+1)/n=1+1/n,而传统的El Gamal加密算法中,密文数据与明文数据的长度比为1,因此可知,本公开实施方式中极大程度降低了密文数据的数据长度,从而降低数据存储开销,提高数据存储和计算效率。
上述对利用密钥sk=(s,n)对明文数据M=(m1,m2,…,mn)进行加密得到密文数据C=(R,c1,c2,…,cn)的过程进行了说明,反之,利用密钥sk=(s,n)对密文数据C=(R,c1,c2,…,cn)进行解密得到明文数据M=(m1,m2,…,mn)即为前述过程的逆过程。
例如本公开一些实施方式中,对于任意密文数据C=(R,c1,c2,…,cn),对于每一个1≤i≤n,计算即可得到明文数据M=(m1,m2,…,mn)。本领域技术人员对此毫无疑问可以理解,本公开不再赘述。
通过上述可知,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。另外,由于数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。而且,本公开实施方式中极大程度降低了密文数据的数据长度,从而降低数据存储开销,提高数据存储和计算效率。
值得说明的是,在一些实施方式中,为了进一步降低密钥sk的长度,减小存储和管理开销,可以利用伪随机函数(PRF,Pseudorandom Function)生成密钥sk,下面结合图5进行说明。
如图5所示,在一些实施方式中,本公开示例的数据同态加密方法中,生成密钥的过程包括:
S510、基于随机字符串生成安全参数,并根据安全参数生成循环群。
S520、生成基于循环群的伪随机函数,并根据伪随机函数以及密钥的预设向量维度生成密钥,并将所述密钥存储在所述客户端。
本公开一些实施方式中,首先可以利用初始化算法生成随机字符串,利用该随机字符串作为安全参数,安全参数是衡量攻击方攻破一个密码算法的困难程度的值,表示为符号λ。
在确定安全参数λ之后,根据安全参数λ生成一个阶数为质数p的循环群G,循环群G的生成元表示为g,从而,初始化算法输出的公开参数pp=(G,p,g)。
需要说明的是,伪随机函数的定义是,如果任意一个多项式时间算法都不能以不可忽略的优势区分这一函数的输出与在其值域上的独立均匀随机分布,那么称这一函数为密码学安全的伪随机函数(PRF,Pseudorandom Function)。本公开中使用的PRF均为带有密钥的PRF(sk,s),对于固定的密钥sk,PRF关于s的输出满足伪随机函数的定义。
客户端可以选择一个密码学安全的伪随机函数PRFk:{0,1}λ×Zp→Zp,并为该伪随机函数生成私钥kr,从而密钥sk即可表示为sk=(kr,n),n表示密钥长度,也即本公开所述的预设向量维度,kr即为伪随机函数生成的私钥。
通过对比前述图3实施方式,在图3示例实施方式中,生成的密钥sk=(s,n),其需要存储的数据长度包括n个向量元素和向量长度n。而在本公开图5实施方式中,生成的密钥sk=(kr,n),其需要存储的数据长度仅包括一个私钥kr和向量长度n,极大缩减了密钥长度,降低存储和管理密钥的开销。
如图6所示,在一些实施方式中,本公开示例的数据同态加密方法,基于密钥sk=(kr,n)对明文数据进行加密的过程,包括:
S610、将明文数据转换为与预设向量维度相同维度的数据向量。
结合前述可知,本公开实施方式中,要求数据格式为n维的数据向量,因此对于数据格式不符合该要求的数据,可以通过数据转换,将明文数据转换为n维的数据向量。
例如一个示例中,一个明文数据的数据向量可以表示为M=(m1,m2,…,mn),也即数据向量M包括m1~mn共n个元素。
S620、对于数据向量中的每个向量元素,基于密钥包括的伪随机函数生成该向量元素对应的密钥分量。
本公开实施方式中,对于数据向量M=(m1,m2,…,mn)中的每个向量元素mi,首先可以基于密钥sk=(kr,n)来计算向量元素mi对应的密钥分量si,具体而言,对于每个1≤i≤n,计算密钥分量si=PRF(kr,i),以此得到与前述密钥sk=(s,n)相同表达形式的密钥sk。
S630、基于循环群中的随机元素和密钥分量,对向量元素进行加密,得到向量元素对应的密文向量元素。
本公开实施方式中,对于数据向量M=(m1,m2,…,mn)中的每个向量元素mi,可以均匀随机从循环群G中选择一个随机元素然后,对于每个1≤i≤n,计算密文向量元素其中,R为随机元素,si表示前述得到的密钥分量,mi为明文数据向量的向量元素。
S640、基于各个密文向量元素以及随机元素,得到密文数据。
本公开实施方式中,在得到每个密文向量元素ci之后,根据各个密文向量元素以及随机元素R,即可得到对明文数据进行加密之后的密文数据,同样为向量形式,密文数据表示为C=(R,c1,c2,…,cn)。
上述对利用密钥sk=(kr,n)对明文数据M=(m1,m2,…,mn)进行加密得到密文数据C=(R,c1,c2,…,cn)的过程进行了说明,反之,利用密钥sk=(kr,n)对密文数据C=(R,c1,c2,…,cn)进行解密得到明文数据M=(m1,m2,…,mn)即为前述过程的逆过程。
例如本公开一些实施方式中,对于任意密文数据C=(R,c1,c2,…,cn),对于每一个1≤i≤n,首先计算密钥分量si=PRF(kr,i),然后计算明文数据的向量元素即可得到明文数据M=(m1,m2,…,mn)。本领域技术人员对此毫无疑问可以理解,本公开不再赘述。/>
通过上述可知,本公开实施方式中,充分利用对称加密只在本地保存与使用密钥的特点,引入伪随机函数进行密钥的生成,大幅降低存储密钥的长度。
结合图1所示,本公开上文实施方式中,在对明文数据加密得到密文数据之后,客户端即可将密文数据上传至服务端,由服务端存储该密文数据。在需要对数据进行同态计算时,客户端即可生成同态计算请求,然后向服务端发送该同态计算请求,下面结合图7进行说明。
如图7所示,在一些实施方式中,本公开示例的数据同态加密方法,向服务端发送同态计算请求的过程,包括:
S710、获取待计算的明文数据的数据集合。
S720、基于数据集合生成对应的同态计算请求,并向云服务器发送同态计算请求。
结合图1所示,客户端在需要数据计算时,首先可以确定需要计算的明文数据的数据集合S,数据集合S中包括至少一个待计算明文数据的数据标识。
可以理解的是,在非同态加密系统中,客户端则需要从服务端下载这些待计算明文数据的密文数据,然后对密文数据一一解密得到明文数据,然后在对明文数据进行计算得到计算结果。
而对于同态加密系统,无密钥方对密文数据计算得到的输出,对该输出解密后得到的计算结果,等价于对明文数据进行相同运算得到的结果,因此对于无密钥的服务端可以针对待计算的明文数据的密文数据进行同态计算,得到的密文计算结果,该密文计算结果解密后的明文计算结果,即等价于客户端对待计算的明文数据进行计算得到的结果。
因此,本公开实施方式中,客户端可以基于待计算明文数据的数据集合生成同态计算请求,本公开一些实施方式中,同态计算例如可以包括乘法同态计算。从而,客户端将携带有待计算明文数据的数据标识的同态计算请求发送至服务端,服务端通过解析该同态计算请求,即可确定需要计算的密文数据,并读取这些密文数据进行同态乘法计算,得到对应的密文计算结果。
通过上述可知,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。另外,由于数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。而且,本公开实施方式中极大程度降低了密文数据的数据长度,从而降低数据存储开销,提高数据存储和计算效率。
本公开一些实施方式中,在明文数据的数量为多个的情况下,可以将多个明文数据合并为一个数据矩阵,从而基于该数据矩阵进行加解密以及数据存储,下面结合图8进行说明。
如图8所示,在一些实施方式中,本公开示例的同态加密方法中,对明文数据进行加密得到密文数据的过程,包括:
S810、将每个明文数据转换为预设向量维度的数据向量。
结合前述可知,本公开实施方式中,要求数据格式为n维的数据向量,因此对于数据格式不符合该要求的数据,可以通过数据转换,将明文数据转换为n维的数据向量。
例如一个示例中,一个明文数据的数据向量可以表示为M=(m1,m2,…,mn),也即数据向量M包括m1~mn共n个元素。
S820、基于每个明文数据对应的数据向量,生成明文数据矩阵。
可以理解,由于每个明文数据均为n维的数据向量,从而对于r个明文数据,即可构成一个r行n列的明文数据矩阵,表示为:
明文数据矩阵M中每一个行向量即表示一个明文数据的数据向量,从而矩阵M中共包括r个明文数据的数据向量。
S830、基于密钥对明文数据进行加密,得到明文数据对应的密文数据。
结合前述可知,明文数据矩阵M中每一个行向量即表示一个明文数据的数据向量,从而一些实施方式中,在对明文数据进行加密时,即可逐行对数据向量进行加密,其加密过程与前述相同,从而得到的密文数据C即可表示为:
值得说明的是,在前述实施方式中,对于每个密文数据C=(R,c1,c2,…,cn),其均要存储一个随机元素R。例如上述密文数据矩阵C中,每个行向量均包括一个随机元素R,从而在海量数据存储时,较多的随机元素R占用存储空间。因此,在本公开另一些实施方式中,可以利用标识参数(name)代替每个密文数据的随机元素R,下面结合图9进行说明。
如图9所示,在一些实施方式中,本公开示例的数据同态加密方法,对明文数据矩阵进行加密得到密文数据的过程,包括:
S821、对于明文数据矩阵中的每一个行向量,基于循环群随机为每个行向量生成标识参数。
S822、基于标识参数和行向量对应的密钥分量,对每一个行向量进行加密,得到密文数据。
本公开一些实施方式中,客户端在生成密钥时,可以选择一个密码学安全的伪随机函数PRFk:{0,1}λ×Zp→Zp,并为该伪随机函数生成一个私钥kr0。然后在选择一个密码学安全的伪随机函数PRFr:{0,1}λ×{0,1}*→G,并为该伪随机函数生成一个私钥kr1,从而最终的密钥为sk=(kr0,kr1,n)。
在本示例中,预先生成的密钥sk=(kr0,kr1,n),从而对于明文数据矩阵M中的每一个行向量,对于所有的1≤i≤n,计算得到对应的密钥分量si=PRFk(kr0,i),对此过程参见前述实施方式即可,在此不再赘述。
然后,均匀随机为该行向量生成标识参数之后对所有的1≤j≤r,计算Rj=PRFr(kr1,name||j),也即计算每一个行向量对应的随机元素Rj。在得到随机元素Rj之后,对于第j行向量中的每一个1≤i≤n,计算该行向量中包括的各个密文向量元素/>其中,si表示密钥分量,得到第j行向量对应的密文数据为cj=(cj1,cj2,…,cjn)。如此,得到密文数据C=(c1,c2,…,cr,name)。
上述对明文数据矩阵的加密过程进行了说明,对于密文数据进行解密的过程即为前述过程的逆过程,在本实施方式中,由于密文数据为矩阵形式,从而解密算法包括向量解密和矩阵解密,下面分别进行说明。
对于密文数据中的任意密文向量c=(c1,c2,…,cn),可以从循环群中读入任意一个随机元素R∈G,同时输入密钥sk,即可返回(c,R)对应的群元素,对于密文向量中的每个1≤i≤n,计算得到对应的密钥分量si=PRFk(Kr0,i),然后解密得到对应的明文向量元素即可得到解密后的明文数据m=(m1,m2,…,mn)。
对于密文数据C=(c1,c2,…,cr,name),对于每个元素1≤j≤r,基于标识参数name计算得到其对应的随机元素Rj=PRFr(kr1,name||j),然后解密得到其对应的明文数据mj=DecVec(sk,cj,Rj),其中,DecVec表示前述针对密文向量c的解密算法,从而即可得到密文数据C对应的明文数据矩阵M。
通过上述可知,本公开实施方式中,在对明文数据矩阵进行加密时,采用表示参数name的随机性,一次性加密多条行向量,代替代替每个密文数据的随机元素R,使得密文数据中无需存储每一条行向量的随机元素R,而只需要存储标识参数,进一步降低了密文数据长度,降低存储开销,提高存储和计算效率。
结合图1所示,在一些实施方式中,本公开提供了一种数据同态加密方法,该方法可应用于云服务器中,云服务器例如即为前述的服务端。如图10所示,该方法步骤包括:
S1010、接收客户端发送的密文数据,并将密文数据存储在云数据库中。
本公开实施方式中,客户端对明文数据加密得到密文数据的过程,参考前述任意实施方式即可,本公开不再赘述。客户端在加密得到密文数据之后,即可将密文数据上传至服务端,服务端在接收到密文数据之后,即可将密文数据存储在云数据库中。
S1020、响应于接收到客户端发送的同态计算请求,对云数据库中存储的密文数据进行同态计算,得到密文计算结果。
本公开实施方式中,客户端在需要进行数据计算时,客户端可以基于待计算明文数据的数据集合生成同态计算请求并发送至服务端,服务端在接收到该同态计算请求的情况下,通过解析该同态计算请求,即可确定需要计算的密文数据,并读取这些密文数据进行同态计算,得到对应的密文计算结果。
在一些实施方式中,同态计算例如可以包括乘法同态计算。结合前述图4和图6实施方式,在计算同态乘法时,服务端可以读取两条密文数据,分别为C1=(R1,c11,c12,…,c1n),C2=(R2,c21,c22,…,c2n)。然后计算Rr=R1R2,对于每个向量元素1≤i≤n计算cri=c1ic2i,从而即可得到密文计算结果Cr=(Rr,cr1,cr2,…,crn)。在前述图8实施方式中,在计算同态乘法时,可以读取密文数据中的两条行向量,表示为c1=(c11,c12,…,c1n),c2=(c21,c22,…,c2n)。然后,对于每个向量元素1≤i≤n计算cri=c1ic2i,从而得到密文计算结果cr=(cr1,ct2,…,Crn)。
S1030、向客户端发送密文计算结果。
本公开实施方式中,服务端在完成同态计算得到密文计算结果之后,即可将密文计算结果发送至客户端,从而客户端即可通过解密该密文计算结果得到对应的明文计算结果。
值得说明的是,对于前述图8实施方式,客户端需要下载密文计算结果(cr,name),在对密文计算结果cr解密之前,首先客户端需要基于标识参数name计算得到随机元素R’,表示为R′=Πj∈SPRFr(kr1,name||j),然后调用解密算法执行M′←DecVec(sk,cr,R′),得到解密后的明文计算结果M’。本领域技术人员结合前述毫无疑问可以理解并充分实现,本公开对此不再赘述。
通过上述可知,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。另外,由于数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。而且,本公开实施方式中极大程度降低了密钥长度和密文数据的数据长度,从而降低数据存储开销,提高数据存储和计算效率。
在本说明书一个或多个实施方式中,提出了一种数据同态加密装置,该装置可应用于前述的客户端,如图11所示,该装置包括:
加密上传模块10,被配置为基于预先生成在所述客户端的密钥,对待上传的明文数据进行加密得到密文数据,并向云服务器上传所述密文数据,以使所述云服务器将所述密文数据存储在云数据库中;
请求发送模块20,被配置为向所述云服务器发送同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果解密模块30,被配置为接收云服务器发送的所述密文计算结果,并基于所述密钥对所述密文计算结果进行解密,得到所述密文计算结果所对应的明文计算结果。
通过上述过程可以理解,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。而且,由于存储在云数据库的数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。
在本说明书一个或多个实施方式中,所述加密上传模块10被配置为:
基于随机字符串生成安全参数,根据所述安全参数生成循环群,并基于所述循环群的参数确定公开参数;
对于所述密钥的每个向量维度,随机选择基于所述公开参数确定的整数域中的元素,得到每个向量维度所对应的密钥分量;
根据每个向量维度的密钥分量生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,所述加密上传模块10被配置为:
将所述明文数据转换为与所述密钥相同向量维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述循环群中的随机元素和所述密钥对其进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
通过上述可知,在本公开实施方式中,基于对称加密算法实现数据同态加密和计算,从而客户端只需要维护和存储一个密钥即可,降低密钥存储和维护的开销,而且加解密过程计算量较小,提高存储和计算效率。另外,由于数据加解密过程具有同态性质,从而极大程度降低数据通信和解密开销,既保护了数据隐私又提高数据计算效率。而且,本公开实施方式中极大程度降低了密文数据的数据长度,从而降低数据存储开销,提高数据存储和计算效率。
在本说明书一个或多个实施方式中,所述加密上传模块10被配置为:
基于随机字符串生成安全参数,并根据所述安全参数生成循环群;
生成基于所述循环群的伪随机函数,并根据所述伪随机函数以及所述密钥的预设向量维度生成所述密钥,并将所述密钥存储在所述客户端。
在本说明书一个或多个实施方式中,所述加密上传模块10被配置为:
将所述明文数据转换为与所述预设向量维度相同维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述密钥包括的所述伪随机函数生成该向量元素对应的密钥分量;
基于所述循环群中的随机元素和所述密钥分量,对所述向量元素进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
通过上述可知,本公开实施方式中,充分利用对称加密只在本地保存与使用密钥的特点,引入伪随机函数进行密钥的生成,大幅降低存储密钥的长度。
在本说明书一个或多个实施方式中,待上传的所述明文数据的数量包括多个,所述加密上传模块10被配置为:
将每个所述明文数据转换为预设向量维度的数据向量;
基于每个所述明文数据对应的数据向量,生成明文数据矩阵;
基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据。
在本说明书一个或多个实施方式中,所述加密上传模块10被配置为:
对于所述明文数据矩阵中的每一个行向量,基于所述循环群随机为每个行向量生成标识参数;
基于所述标识参数和所述行向量对应的密钥分量,对每一个所述行向量进行加密,得到所述密文数据。
通过上述可知,本公开实施方式中,在对明文数据矩阵进行加密时,采用表示参数name的随机性,一次性加密多条行向量,代替代替每个密文数据的随机元素R,使得密文数据中无需存储每一条行向量的随机元素R,而只需要存储标识参数,进一步降低了密文数据长度,降低存储开销,提高存储和计算效率。
在本说明书一个或多个实施方式中,所述同态计算包括同态乘法计算,所述请求发送模块20被配置为:
获取待计算的明文数据的数据集合;
基于所述数据集合生成对应的同态计算请求,并向所述云服务器发送所述同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的,与所述数据集合包括的明文数据对应的密文数据进行同态乘法计算。
在本说明书一个或多个实施方式中,提出了一种数据同态加密装置,该装置可应用于前述的服务端,如图12所示,该装置包括:
数据接收模块40,被配置为接收客户端发送的密文数据,并将所述密文数据存储在云数据库中,所述密文数据通过前述任意实施方式的方法加密得到;
请求接收模块50,被配置为响应于接收到所述客户端发送的同态计算请求,对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果发送模块60,被配置为向所述客户端发送所述密文计算结果。
在本说明书一个或多个实施方式中,提出了一种数据同态加密系统,该系统可参照前述图1所示,其包括:
客户端,所述客户端的处理器用于执行前述任意实施方式所述的方法;和
云服务器,所述云服务器的处理器用于执行前述任意实施方式所述的方法。
在本说明书一个或多个实施方式中,提出了一种存储介质,存储有计算机指令,所述计算机指令用于使计算机执行前述任意实施方式所述的方法。
图13是一示例性实施方式提供的一种设备的示意结构图,该设备既可以作为客户端,也可以作为云服务器。
请参考图13,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他场景所需要的硬件。本说明书一个或多个实施方式可以基于软件方式来实现,比如由处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行。当然,除了软件实现方式之外,本说明书一个或多个实施方式并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
上述实施方式阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施方式进行了描述。其它实施方式在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施方式中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施方式使用的术语是仅仅出于描述特定实施方式的目的,而非旨在限制本说明书一个或多个实施方式。在本说明书一个或多个实施方式和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施方式可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施方式范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施方式的较佳实施方式而已,并不用以限制本说明书一个或多个实施方式,凡在本说明书一个或多个实施方式的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施方式保护的范围之内。

Claims (13)

1.一种数据同态加密方法,应用于客户端,所述方法包括:
基于预先生成在所述客户端的密钥,对待上传的明文数据进行加密得到密文数据,并向云服务器上传所述密文数据,以使所述云服务器将所述密文数据存储在云数据库中;
向所述云服务器发送同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
接收云服务器发送的所述密文计算结果,并基于所述密钥对所述密文计算结果进行解密,得到所述密文计算结果所对应的明文计算结果。
2.根据权利要求1所述的方法,预先生成所述密钥的过程,包括:
基于随机字符串生成安全参数,根据所述安全参数生成循环群,并基于所述循环群的参数确定公开参数;
对于所述密钥的每个向量维度,随机选择基于所述公开参数确定的整数域中的元素,得到每个向量维度所对应的密钥分量;
根据每个向量维度的密钥分量生成所述密钥,并将所述密钥存储在所述客户端。
3.根据权利要求2所述的方法,基于所述密钥对所述明文数据进行加密的过程,包括:
将所述明文数据转换为与所述密钥相同向量维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述循环群中的随机元素和所述密钥对其进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
4.根据权利要求1所述的方法,预先生成所述密钥的过程,包括:
基于随机字符串生成安全参数,并根据所述安全参数生成循环群;
生成基于所述循环群的伪随机函数,并根据所述伪随机函数以及所述密钥的预设向量维度生成所述密钥,并将所述密钥存储在所述客户端。
5.根据权利要求4所述的方法,基于所述密钥对所述明文数据进行加密的过程,包括:
将所述明文数据转换为与所述预设向量维度相同维度的数据向量;
对于所述数据向量中的每个向量元素,基于所述密钥包括的所述伪随机函数生成该向量元素对应的密钥分量;
基于所述循环群中的随机元素和所述密钥分量,对所述向量元素进行加密,得到所述向量元素对应的密文向量元素;
基于各个密文向量元素以及所述随机元素,得到所述密文数据。
6.根据权利要求1至5任一项所述的方法,待上传的所述明文数据的数量包括多个,所述基于预先生成的密钥对待上传的明文数据进行加密得到密文数据,包括:
将每个所述明文数据转换为预设向量维度的数据向量;
基于每个所述明文数据对应的数据向量,生成明文数据矩阵;
基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据。
7.根据权利要求6所述的方法,所述基于所述密钥对所述明文数据矩阵进行加密,得到多个所述明文数据对应的密文数据,包括:
对于所述明文数据矩阵中的每一个行向量,基于所述循环群随机为每个行向量生成标识参数;
基于所述标识参数和所述行向量对应的密钥分量,对每一个所述行向量进行加密,得到所述密文数据。
8.根据权利要求1所述的方法,所述同态计算包括同态乘法计算,所述向所述云服务器发送同态计算请求包括:
获取待计算的明文数据的数据集合;
基于所述数据集合生成对应的同态计算请求,并向所述云服务器发送所述同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的,与所述数据集合包括的明文数据对应的密文数据进行同态乘法计算。
9.一种数据同态加密方法,应用于云服务器,所述方法包括:
接收客户端发送的密文数据,并将所述密文数据存储在云数据库中,所述密文数据通过权利要求1至8任一项所述的方法加密得到;
响应于接收到所述客户端发送的同态计算请求,对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
向所述客户端发送所述密文计算结果。
10.一种数据同态加密装置,应用于客户端,所述装置包括:
加密上传模块,被配置为基于预先生成在所述客户端的密钥,对待上传的明文数据进行加密得到密文数据,并向云服务器上传所述密文数据,以使所述云服务器将所述密文数据存储在云数据库中;
请求发送模块,被配置为向所述云服务器发送同态计算请求,以使所述云服务器基于所述同态计算请求对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果解密模块,被配置为接收云服务器发送的所述密文计算结果,并基于所述密钥对所述密文计算结果进行解密,得到所述密文计算结果所对应的明文计算结果。
11.一种数据同态加密装置,应用于云服务器,所述装置包括:
数据接收模块,被配置为接收客户端发送的密文数据,并将所述密文数据存储在云数据库中,所述密文数据通过权利要求1至8任一项所述的方法加密得到;
请求接收模块,被配置为响应于接收到所述客户端发送的同态计算请求,对所述云数据库中存储的密文数据进行同态计算,得到密文计算结果;
结果发送模块,被配置为向所述客户端发送所述密文计算结果。
12.一种数据同态加密系统,包括:
客户端,所述客户端的处理器用于执行根据权利要求1至8任一项所述的方法;和
云服务器,所述云服务器的处理器用于执行根据权利要求9所述的方法。
13.一种存储介质,存储有计算机指令,所述计算机指令用于使计算机执行根据权利要求1至8任一项所述的方法,或者执行权利要求9所述的方法。
CN202311436372.4A 2023-10-31 2023-10-31 数据同态加密方法及装置 Pending CN117318918A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311436372.4A CN117318918A (zh) 2023-10-31 2023-10-31 数据同态加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311436372.4A CN117318918A (zh) 2023-10-31 2023-10-31 数据同态加密方法及装置

Publications (1)

Publication Number Publication Date
CN117318918A true CN117318918A (zh) 2023-12-29

Family

ID=89246426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311436372.4A Pending CN117318918A (zh) 2023-10-31 2023-10-31 数据同态加密方法及装置

Country Status (1)

Country Link
CN (1) CN117318918A (zh)

Similar Documents

Publication Publication Date Title
US11895231B2 (en) Adaptive attack resistant distributed symmetric encryption
Kumar et al. Enhanced attribute based encryption for cloud computing
CN107154845B (zh) 一种基于属性的bgn型密文解密外包方案
CN110635909B (zh) 一种基于属性的抗合谋攻击的代理重加密方法
US20230254129A1 (en) Key management for multi-party computation
CN102314580A (zh) 一种基于向量和矩阵运算的支持计算的加密方法
CN110120873B (zh) 基于云外包交易数据的频繁项集挖掘方法
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
JP2018037938A (ja) 鍵交換方法、鍵交換システム
Altaee et al. Enhancing cloud computing security by paillier homomorphic encryption
Hoang et al. A multi-server oblivious dynamic searchable encryption framework
Suveetha et al. Ensuring confidentiality of cloud data using homomorphic encryption
WO2021222272A1 (en) Adaptive attack resistant distributed symmetric encryption
KR100951034B1 (ko) 암호문 크기를 줄이기 위한 공개키 기반의 검색가능암호문생성 방법과, 그에 따른 공개키 기반의 데이터 검색 방법
JP6840685B2 (ja) データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム
Hassan et al. An authorized equality test on identity‐based cryptosystem for mobile social networking applications
CN117318918A (zh) 数据同态加密方法及装置
JP5945525B2 (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム
Koppaka et al. ElGamal algorithm with hyperchaotic sequence to enhance security of cloud data
Youn et al. Design of additive homomorphic encryption with multiple message spaces for secure and practical storage services over encrypted data
CN114070558A (zh) 一种数据传输方法及装置
Tripathy et al. Rivest cipher 4 cryptography and elliptical curve cryptography techniques to secure data in cloud
Liu et al. Proofs of encrypted data retrievability with probabilistic and homomorphic message authenticators
Kaur et al. Secure image sharing on cloud using cryptographic algorithms: survey
Fugkeaw et al. A Dynamic and Efficient Crypto-Steganography System for Securing Multiple Files in Cloud

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