CN113077054B - 基于多密钥密文的岭回归学习方法、系统、介质和设备 - Google Patents

基于多密钥密文的岭回归学习方法、系统、介质和设备 Download PDF

Info

Publication number
CN113077054B
CN113077054B CN202110234350.4A CN202110234350A CN113077054B CN 113077054 B CN113077054 B CN 113077054B CN 202110234350 A CN202110234350 A CN 202110234350A CN 113077054 B CN113077054 B CN 113077054B
Authority
CN
China
Prior art keywords
ciphertext
data
matrix
key
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110234350.4A
Other languages
English (en)
Other versions
CN113077054A (zh
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.)
Jinan University
Original Assignee
Jinan University
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 Jinan University filed Critical Jinan University
Priority to CN202110234350.4A priority Critical patent/CN113077054B/zh
Publication of CN113077054A publication Critical patent/CN113077054A/zh
Application granted granted Critical
Publication of CN113077054B publication Critical patent/CN113077054B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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
    • 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
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Operations Research (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于多密钥密文的岭回归学习方法、系统、介质和设备,获取数据拥有者上传的密文;接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求;向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;利用代理密钥进行密文转换;进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b],计算出岭回归模型参数w的密文。本发明扩展了加密密钥单一的应用场景,解决了多密钥加密数据造成的密文运算困难问题,实现了安全高效的岭回归学习算法,有效地降低了计算和通信开销。

Description

基于多密钥密文的岭回归学习方法、系统、介质和设备
技术领域
本发明涉及数据安全技术领域,特别涉及一种基于多密钥密文的岭回归学习方法、系统、介质和设备。
背景技术
随着计算机存储能力的提升和复杂计算的发展,近年来的数据量呈指数型增长。这些趋势使数据分析、数据挖掘、机器学习等的发展日新月异。越来越多的研究者着手于数据信息的挖掘工作,通过提取大量数据中的信息,总结规律,观察数据之间的关系,学习预测某种现象的结果,给未来的工作和生活提供便利。其中机器学习算法是当今知识发现的重要算法之一。机器学习算法是从大量数据中进行自动分析,学习得到某种规律,并利用这种规律对未知数据进行预测。在最近几年,机器学习已经广泛地应用于许多领域,例如:医疗诊断、信用风险评估、垃圾邮件分类等。
其中,岭回归是机器学习中的一种非常重要的回归学习算法,在现实生活中具有非常广泛的应用。岭回归算法是根据特征数据和结果值构造一个线性方程,表示特征数据和结果值之间的关系。岭回归可以用来定量地关联特征和结果,以及用于未来预测。岭回归虽然不具备最小二乘法的无偏性,以及在计算过程中可能丢失部分信息,而且结果精确度也有所降低,但是,相较于最小二乘法,岭回归算法更符合实际应用,结果更可靠,对病态数据有更强的拟合能力。因此,称岭回归为一种改良的最小二乘法。
大数据为机器学习的发展带来了机遇,同时也带来了严峻的挑战。在机器学习算法中,需要在丰富的数据样本上进行模型学习运算,才能得到更精确的预测模型。然而,数据源于生活,其中包含了大量的隐私信息。随着云计算的快速发展,隐私保护已经成为社会发展的焦点。因此,在保证数据隐私的前提下进行机器学习,已经是当前机器学习发展的关键问题。研究具有隐私保护的机器学习方法是信息行业的发展趋势,具有重要的理论意义和应用价值。
通常情况下,为了保证用户的隐私安全,用户通常会把加密的数据存储在云服务器上。通过加密可以保证用户的隐私安全,但是对于实现机器学习增加了一定的难度。目前,全同态加密(Full Homomorphic Encryption,FHE)的最新研究成果,已经使在密文上执行任意运算成为可能。但是由于全同态的效率很低,导致该加密方法在实际场景中并不实用。多密钥全同态加密支持不同公钥加密的密文进行运算,但是它的效率同样是其最大的缺点。另外,在解密阶段,需要所有参与加密的用户交互计算共同解密。因此多密钥全同态加密也不实用。
目前,现有技术中提出了一个可扩展的具有隐私保护的线性回归学习方案,这种方案的主要思想是利用安全多方计算实现隐私保护。在这种方案中,用户把数据分成两部分,分别存储在两个不共谋的云服务器上,云服务器利用安全两方计算(2PC)实现线性回归的学习。安全多方计算需要参与者交互实现,因此在计算过程中会产生大量的通信成本,使得它的实用性降低。在现有技术中,还有利用线性同态加密实现具有隐私保护的岭回归学习算法,这种方案要求每个用户先计算Ai、bi(i表示第i个用户),然后使用第三方的公钥加密计算结果,并把密文上传到云服务器上,云服务器把密文聚合之后,得到A和b,然后利用加密方案的同态性质,与加密服务提供者进行交互实现安全的岭回归的运算,用户在整个计算过程中承担了很大的工作量,另外用户加密数据时使用的是第三方的公钥,上传到云服务器的数据不再是基于存储的目的,这在实际应用中有一定的局限性。
发明内容
本发明的第一目的在于克服现有技术的缺点与不足,提供一种基于多密钥密文的岭回归学习方法,该方法扩展了以往加密密钥单一的应用场景,解决了多密钥加密数据造成的密文运算困难问题,实现了安全高效的岭回归学习算法,并且有效地降低了计算和通信开销。
本发明的第二目的在于提供一种基于多密钥密文的岭回归学习系统。
本发明的第三目的在于提供一种存储介质。
本发明的第四目的在于提供一种计算设备。
本发明的第一目的通过下述技术方案实现:一种基于多密钥密文的岭回归学习方法,步骤包括:
获取数据拥有者针对数据加密后所上传的密文;
接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求;
基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文;
进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b];
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的密文
Figure BDA0002960080150000021
优选的,其中从数据拥有者中获取的密文的加密过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure BDA0002960080150000022
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素;
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥,并计算
Figure BDA0002960080150000031
作为公钥,其中g是循环群
Figure BDA0002960080150000032
的生成元,则数据拥有者k的公私钥对为:
Figure BDA0002960080150000033
skk=ak
2)、对于矩阵中的每一个数据项
Figure BDA0002960080150000034
i=1,2,…,nk,j=1,2,…,d,选择一个随机数
Figure BDA0002960080150000035
i=1,2,…,nk,j=1,2,…d,并令
Figure BDA0002960080150000036
调用A-AFGH加密方法的加密函数
Figure BDA0002960080150000037
选择一个随机数
Figure BDA0002960080150000038
计算密文
Figure BDA0002960080150000039
其中Z是循环群
Figure BDA00029600801500000310
的生成元;该密文只能被持有私钥skk=ak的数据拥有者k解密;则对于每一个数据项
Figure BDA00029600801500000311
使用LHE加密后的密文形式为
Figure BDA00029600801500000312
Figure BDA00029600801500000313
对于矩阵中的每一个数据项
Figure BDA00029600801500000314
i=1,2,…,nk,选择一个随机数
Figure BDA00029600801500000315
并令
Figure BDA00029600801500000316
调用A-AFGH加密方法的加密函数
Figure BDA00029600801500000317
选择一个随机数
Figure BDA00029600801500000318
计算密文
Figure BDA00029600801500000319
则对于每一个数据项
Figure BDA00029600801500000320
使用LHE加密后的密文形式为
Figure BDA00029600801500000321
更进一步的,从数据分析者中接收到的公钥的生成过程如下:
数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure BDA00029600801500000322
作为公钥;数据分析者的公私钥对为
Figure BDA00029600801500000323
sk*=a*,临时公私钥对为:pk=ga,sk=a。
更进一步的,从数据拥有者中获取到的代理密钥的生成过程如下:根据数据分析者发送的临时公钥pk,确定出数据分析者请求使用密文数据;并且将临时公钥pk转发给数据拥有者,获取数据拥有者的授权同意;其中,数据拥有者在同意的情况下,调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的临时公钥ga=ga得到代理密钥
Figure BDA00029600801500000324
k=1,…,m;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文的具体过程如下:
对于数据拥有者k所上传的密文
Figure BDA00029600801500000325
利用双线性映射
Figure BDA00029600801500000326
计算得到密文
Figure BDA00029600801500000327
对于密文
Figure BDA00029600801500000328
利用双线性映射
Figure BDA00029600801500000329
计算得到密文
Figure BDA0002960080150000041
当数据拥有者1到数据拥有者m*同意数据分析者使用数据,则获得数据分析者临时公钥pk加密密文的矩阵为:
Figure BDA0002960080150000042
其中m*≤m。令
Figure BDA00029600801500000411
则矩阵的表示方式可简化为:
Figure BDA0002960080150000043
其中,
Figure BDA0002960080150000044
Figure BDA0002960080150000045
其中
Figure BDA0002960080150000046
Figure BDA0002960080150000047
Figure BDA0002960080150000048
Figure BDA0002960080150000049
其中
Figure BDA00029600801500000410
Figure BDA0002960080150000051
Figure BDA0002960080150000052
Figure BDA0002960080150000053
其中
Figure BDA0002960080150000054
Figure BDA0002960080150000055
Figure BDA0002960080150000056
Figure BDA0002960080150000057
其中
Figure BDA0002960080150000058
Figure BDA0002960080150000059
Figure BDA00029600801500000510
Figure BDA00029600801500000511
其中
Figure BDA00029600801500000512
Figure BDA00029600801500000513
Figure BDA00029600801500000514
Figure BDA00029600801500000515
其中
Figure BDA00029600801500000516
Figure BDA00029600801500000517
Figure BDA00029600801500000518
…,
以此类推,矩阵中各行元素的对应关系。
更进一步的,进入岭回归学习后,计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、根据密文转换所得到的加密后的密文
Figure BDA00029600801500000620
Figure BDA0002960080150000061
得到矩阵X和向量y的密文为:
Figure BDA0002960080150000062
Figure BDA0002960080150000063
得到矩阵H和向量h的密文记为:
Figure BDA0002960080150000064
Figure BDA0002960080150000065
2)、计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure BDA0002960080150000066
Figure BDA0002960080150000067
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure BDA0002960080150000068
表示密文上的乘法操作,
Figure BDA0002960080150000069
表示密文上的加法操作;
3)、采用数据分析者发送的临时私钥为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作:
Figure BDA00029600801500000610
求解离散对数问题,得到对应的明文信息hi,j和hi,即获得矩阵H和向量h;根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure BDA00029600801500000611
其中,
Figure BDA00029600801500000612
Figure BDA00029600801500000613
Figure BDA00029600801500000614
均为矩阵H*中的元素,
Figure BDA00029600801500000615
Figure BDA00029600801500000616
均为向量h*的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure BDA00029600801500000617
其中
Figure BDA00029600801500000618
r′i,j为随机数,
Figure BDA00029600801500000619
i=1,…,d,j=1,…d;
Figure BDA0002960080150000071
r′i为随机数,
Figure BDA0002960080150000072
i=1,…,d;
4)在获取到密文[H*]和[h*]之后,利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量b的密文:
Figure BDA0002960080150000073
Figure BDA0002960080150000074
更进一步的,根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的具体步骤如下:
1)、随机选择一个可逆矩阵
Figure BDA0002960080150000075
和一个向量
Figure BDA0002960080150000076
Figure BDA0002960080150000077
其中,
Figure BDA0002960080150000078
Figure BDA0002960080150000079
Figure BDA00029600801500000710
均为可逆矩阵R*中的元素,
Figure BDA00029600801500000711
Figure BDA00029600801500000712
均为向量r*的元素;
利用A-AFGH加密方法的加法同态的性质,计算
Figure BDA00029600801500000713
和d=Ar*+b的密文,得到对应的用数据分析者的临时公钥pk=ga加密的密文结果
Figure BDA00029600801500000714
和[d];此外,使用数据分析者的公钥
Figure BDA00029600801500000715
调用A-AFGH的加密算法加密可逆矩阵R*和向量r*,得到密文矩阵
Figure BDA00029600801500000716
和密文向量
Figure BDA00029600801500000717
Figure BDA00029600801500000718
Figure BDA00029600801500000719
其中
Figure BDA00029600801500000720
Figure BDA00029600801500000721
为随机数,
Figure BDA00029600801500000722
i=1,…,d,j=1,…d;
Figure BDA00029600801500000723
Figure BDA00029600801500000724
为随机数,
Figure BDA00029600801500000725
i=1,…,d。
2)解密
Figure BDA00029600801500000726
和[d]得到相应的明文信息
Figure BDA00029600801500000727
和d,根据明文信息
Figure BDA00029600801500000728
和d计算得到参数
Figure BDA00029600801500000729
Figure BDA00029600801500000730
利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure BDA00029600801500000731
的密文
Figure BDA00029600801500000732
Figure BDA00029600801500000733
其中
Figure BDA00029600801500000734
为数据分析者公钥
Figure BDA00029600801500000735
加密的密文,模型参数w即为所求的岭回归模型参数。
本发明第二目的通过以下技术方案实现:一种基于多密钥密文的岭回归学习系统,包括服务器、数据拥有者和数据分析者;
所述数据拥有者,用于对其所拥有的数据进行加密,并且将加密后的密文上传到服务器中;用于接收和授权服务器发送的密文转换请求,在同意密文转换请求的情况下,利用自身的私钥和数据分析者的公钥生成代理密钥,并且将计算的代理密钥发送给服务器;
所述数据分析者,用于发送公钥和密文使用请求到服务器,用于接收服务器计算的岭回归模型参数w;
所述服务器,用于执行权利要求1至6中任一项所述的基于多密钥密文的岭回归学习方法。
优选的,所述服务器为云服务器,云服务器包括云服务器CS和云服务器ACS;
其中,数据拥有者对数据进行加密得到密文的过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure BDA0002960080150000081
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素;
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥,并计算
Figure BDA0002960080150000082
作为公钥,其中g是循环群
Figure BDA0002960080150000083
的生成元,则数据拥有者k的公私钥对为:
Figure BDA0002960080150000084
skk=ak
2)、对于矩阵中的每一个数据项
Figure BDA0002960080150000085
i=1,2,…,nk,j=1,2,…,d,选择一个随机数数
Figure BDA0002960080150000086
i=1,2,…,nk,j=1,2,…d,并令
Figure BDA0002960080150000087
调用A-AFGH加密方法的加密函数
Figure BDA0002960080150000088
选择一个随机数
Figure BDA0002960080150000089
计算密文
Figure BDA00029600801500000810
其中Z是循环群
Figure BDA00029600801500000811
的生成元;该密文只能被持有私钥skk=ak的数据拥有者k解密;则对于每一个数据项
Figure BDA00029600801500000812
使用LHE加密后的密文形式为
Figure BDA00029600801500000813
Figure BDA00029600801500000814
对于矩阵中的每一个数据项
Figure BDA00029600801500000815
i=1,2,…,nk,选择一个随机数
Figure BDA00029600801500000816
并令
Figure BDA00029600801500000817
调用A-AFGH加密方法的加密函数
Figure BDA00029600801500000818
选择一个随机数
Figure BDA00029600801500000819
计算密文
Figure BDA00029600801500000820
则对于每一个数据项
Figure BDA00029600801500000821
使用LHE加密后的密文形式为
Figure BDA0002960080150000091
3)、数据拥有者将上述加密得到的密文
Figure BDA0002960080150000092
上传到云服务器CS中;
其中,数据分析者生成公钥的过程如下:
数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure BDA0002960080150000093
作为公钥;数据分析者的公私钥对为
Figure BDA0002960080150000094
sk*=a*,临时公私钥对为:pk=ga,sk=a;
云服务器所获取的代理密钥生成过程如下:数据分析者发送临时公钥pk=ga给云服务器CS,请求使用存储在云服务器CS中的密文数据,数据分析者将临时公私钥对pk=ga,sk=a发送给云服务器ACS;云服务器CS将临时公钥pk转发给数据拥有者,获取数据拥有者的授权;
数据拥有者同意云服务器CS使用密文数据,则调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的公钥pk=ga得到代理密钥
Figure BDA0002960080150000095
数据拥有者把代理密钥pkk→DA返回给云服务器CS;
其中,进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS根据密文转换所得到的加密后的密文
Figure BDA00029600801500000912
Figure BDA00029600801500000913
得到矩阵X和向量y的密文为:
Figure BDA0002960080150000096
Figure BDA0002960080150000097
得到矩阵H和向量h的密文记为:
Figure BDA0002960080150000098
Figure BDA0002960080150000099
2)、云服务器CS计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure BDA00029600801500000910
Figure BDA00029600801500000911
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure BDA0002960080150000101
表示密文上的乘法操作,
Figure BDA0002960080150000102
表示密文上的加法操作;
3)、云服务器CS在得到密文[A*]和密文[b*]后,将其中的[hi,j]和[hi]发送给云服务器ACS,云服务器ACS采用数据分析者发送的临时私钥为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作:
Figure BDA0002960080150000103
求解离散对数问题,得到对应的明文信息hi,j和hi,即获得矩阵H和向量h;根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure BDA0002960080150000104
其中,
Figure BDA0002960080150000105
Figure BDA0002960080150000106
Figure BDA0002960080150000107
均为矩阵H*中的元素,
Figure BDA0002960080150000108
Figure BDA0002960080150000109
均为向量h*的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure BDA00029600801500001010
其中
Figure BDA00029600801500001011
r′i,j为随机数,
Figure BDA00029600801500001012
i=1,…,d,j=1,…d;
Figure BDA00029600801500001013
r′i为随机数,
Figure BDA00029600801500001014
i=1,…,d。
4)云服务器ACS将获取到密文[H*]和[h*]发送给云服务器CS,云服务器CS利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量b的密文:
Figure BDA00029600801500001015
Figure BDA00029600801500001016
其中,进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS随机选择一个可逆矩阵
Figure BDA00029600801500001017
和一个向量
Figure BDA00029600801500001018
Figure BDA00029600801500001019
其中,
Figure BDA00029600801500001020
Figure BDA00029600801500001021
Figure BDA00029600801500001022
均为可逆矩阵R*中的元素,
Figure BDA00029600801500001023
Figure BDA00029600801500001024
均为向量r*的元素;
云服务器CS利用A-AFGH加密方法的加法同态的性质,计算
Figure BDA00029600801500001025
和d=Ar*+b的密文,得到对应的用数据分析者的临时公钥pk=ga加密的密文结果
Figure BDA00029600801500001026
和[d];此外,云服务器CS使用数据分析者的公钥
Figure BDA0002960080150000111
调用A-AFGH的加密算法加密可逆矩阵R*和向量r*,得到密文矩阵
Figure BDA0002960080150000112
和密文向量
Figure BDA0002960080150000113
Figure BDA0002960080150000114
Figure BDA0002960080150000115
其中
Figure BDA0002960080150000116
Figure BDA0002960080150000117
为随机数,
Figure BDA0002960080150000118
i=1,…,d,j=1,…d;
Figure BDA0002960080150000119
Figure BDA00029600801500001110
为随时数,
Figure BDA00029600801500001111
i=1,…,d。
最后云服务器CS将临时公钥pk=ga加密的密文
Figure BDA00029600801500001112
和[d],以及公钥
Figure BDA00029600801500001113
加密的密文
Figure BDA00029600801500001114
Figure BDA00029600801500001115
发送给云服务器ACS;
2)云服务器ACS解密
Figure BDA00029600801500001116
和[d]得到相应的明文信息
Figure BDA00029600801500001117
和d,根据明文信息
Figure BDA00029600801500001118
和d计算得到参数
Figure BDA00029600801500001119
Figure BDA00029600801500001120
云服务器ACS利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure BDA00029600801500001121
的密文
Figure BDA00029600801500001122
Figure BDA00029600801500001123
其中,
Figure BDA00029600801500001124
为数据分析者公钥
Figure BDA00029600801500001125
加密的密文,模型参数w即为所求的岭回归模型参数;
3)云服务器ACS发送模型参数w的密文
Figure BDA00029600801500001126
给数据分析者。
本发明的第三目的通过以下技术方案实现:一种存储介质,存储有程序,所述程序被处理器执行时,实现本发明第一目的所述的基于多密钥密文的岭回归学习方法。
本发明的第四目的通过以下技术方案实现:一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现本发明第一目的所述的基于多密钥密文的岭回归学习方法。
本发明相对于现有技术具有如下的优点及效果:
(1)本发明基于多密钥密文的岭回归学习方法中,首先密文为数据拥有者各自加密后上传的,只有用户本人可以解密获得明文,从而保证数据隐私,同时也保留了数据的管理权,并且本发明方法中允许训练数据集包含不同公钥加密的密文,扩展了以往加密密钥单一的应用场景,有效解决了多密钥场景下的具有隐私保护的岭回归学习难题。其次,本文利用了数据拥有者生成的代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文,能够实现密文的高效转换,方便在密文上进行岭回归学习的运算,解决了多密钥加密数据造成的密文运算困难等问题。最后,本发明方法在支持一次乘法的线性同态加密的基础上实现了安全高效的岭回归模型参数的计算,有效地降低了在岭回归学习过程中的通信开销。
(2)本发明基于多密钥密文的岭回归学习方法中,在密文转换阶段,要求在获得数据拥有者即用户的许可之后才可以在保证数据隐私的前提下使用用户的数据,即用户需要计算一个代理密钥,表示允许对自己的数据执行密文转换操作,因此同意参与回归模型训练的用户需要计算一个代理密钥,则每个用户的计算需要执行一次乘法操作和一次指数操作,只需在用户的密文上执行n(d+1)次双线性映射操作,便可以实现密文的转换,因此本发明方法在密文转换阶段很大程度上提高了计算效率。另外,在岭回归学习的过程中,无需数据拥有者参与计算,能够有效减少数据拥有者的工作量;总体来说,本发明方法有效节省了计算的开销。
(3)本发明基于多密钥密文的岭回归学习系统,包括服务器、数据拥有者和数据分析者;其中数据拥有者对其所拥有的数据进行加密,并且将加密后的密文上传到服务器中;数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥,并且将计算的代理密钥发送给服务器;数据分析者发送公钥和密文使用请求到服务器,用于接收服务器计算的岭回归模型参数w;服务器执行本发明所述的基于多密钥密文的岭回归学习方法。在本发明系统中,服务器具体可以是云服务器,具体包括通过存储和计算服务的云服务器CS以及提供计算服务的云服务器ACS。在本发明系统中,m个数据拥有者即用户上传m个代理密钥,云服务器便可以在本地实现密文的转换,无需服务器之间的交互,因此通信开销仅取决于用户的数量,能够有效减少云服务器之间的通信开销。
附图说明
图1是本发明方法流程图。
图2是本发明系统原理图。
具体实施方式
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
实施例1
本实施例公开了一种基于多密钥密文的岭回归学习方法,该方法可以在计算设备例如服务器中执行,也可以在云服务器中进行执行,如图1中所示,具体步骤包括:
S1、获取数据拥有者针对数据加密后所上传的密文。
在本实施例中,从数据拥有者中获取的密文的加密过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure BDA0002960080150000131
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素;矩阵中
Figure BDA0002960080150000132
Figure BDA0002960080150000133
对应为一条数据中的d个特征值特征向量,
Figure BDA0002960080150000134
为特征向量对应的结果值,以此类推,矩阵中各行元素的含义。
数据拥有者在上传数据之前,为了保证数据的隐私,需要用自己的公钥进行加密,然后将加密后的密文上传到执行本实施方法的服务器或云服务器中。本实施例使用的一种线性同态加密方案(LHE),该加密机制不仅拥有加法同态的性质,也可以在密文上实现一次性的乘法同态操作。结合代理重加密方案的变体,实现密文转换。该变体方案具有加法同态的性质,记为A-AFGH。数据拥有者k对所持有的上述数据进行加密的过程具体如下:
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥skk,并计算
Figure BDA0002960080150000135
作为公钥,其中g是循环群
Figure BDA0002960080150000136
的生成元,则数据拥有者k的公私钥对为:
Figure BDA0002960080150000137
skk=ak
2)、对于矩阵中的每一个数据项
Figure BDA0002960080150000138
i=1,2,…,nk,j=1,2,…,d,选择一个随机数
Figure BDA0002960080150000139
i=1,2,…,nk,j=1,2,…d,并令
Figure BDA00029600801500001310
调用A-AFGH加密方法的加密函数
Figure BDA00029600801500001311
选择一个随机数
Figure BDA00029600801500001312
计算密文
Figure BDA00029600801500001313
其中Z是循环群
Figure BDA00029600801500001314
的生成元;该密文只能被持有私钥skk=ak的数据拥有者k解密;则对于每一个数据项
Figure BDA00029600801500001315
使用LHE加密后的密文形式为
Figure BDA00029600801500001316
Figure BDA00029600801500001317
对于矩阵中的每一个数据项
Figure BDA00029600801500001318
i=1,2,…,nk,选择一个随机数
Figure BDA00029600801500001319
并令
Figure BDA00029600801500001320
调用A-AFGH加密方法的加密函数
Figure BDA00029600801500001321
选择一个随机数
Figure BDA00029600801500001322
计算密文
Figure BDA00029600801500001323
则对于每一个数据项
Figure BDA00029600801500001324
使用LHE加密后的密文形式为
Figure BDA00029600801500001325
其中,
Figure BDA00029600801500001328
表示用LHE加密方案用公钥pk加密的密文,
Figure BDA00029600801500001326
表示用A-AFGH加密方案中的Enc1(pk,·)函数加密的密文,
Figure BDA00029600801500001327
表示用A-AFGH加密方案中的Enc2(pk,·)函数加密的密文。用户k把加密后的数据
Figure BDA0002960080150000141
上传到服务器或云服务器,一方面可以节省本地存储开销,用户用自己的公钥加密,方便用户查询、下载;另一方面服务器或云服务器可以利用这些数据进行岭回归学习算法。
S2、接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求。在本步骤中,从数据分析者中接收到的公钥的生成过程如下:
数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure BDA0002960080150000142
作为公钥;数据分析者的公私钥对为
Figure BDA0002960080150000143
sk*=a*,临时公私钥对为:pk=ga,sk=a。pk为临时公钥,sk为临时私钥。
S3、基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥。
在本步骤中,从数据拥有者中获取到的代理密钥的生成过程如下:
根据数据分析者发送的临时公钥pk,确定出数据分析者请求使用密文数据;并且将临时公钥pk转发给数据拥有者,获取数据拥有者的授权同意;其中,数据拥有者在同意的情况下,调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的临时公钥pk=ga得到代理密钥
Figure BDA0002960080150000144
k=1,…,m。
S4、利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文。其中,数据分析者请求使用服务器或云服务器上的密文进行岭回归学习,服务器或云服务器则会向数据拥有者发送密文转换的请求,如果数据拥有者同意服务器或云服务器在保证数据安全的条件下使用密文数据,则会发送代理密钥给服务器或云服务器,然后服务器或云服务器利用代理密钥实现密文转换。
在本步骤中,利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文的具体过程如下:
对于数据拥有者k所上传的密文
Figure BDA0002960080150000145
利用双线性映射
Figure BDA0002960080150000146
计算得到密文
Figure BDA0002960080150000147
对于密文
Figure BDA0002960080150000148
利用双线性映射
Figure BDA0002960080150000149
计算得到密文
Figure BDA00029600801500001410
获得使用数据分析者的临时公钥pk加密数据分析者k的数据的密文:
Figure BDA00029600801500001411
Figure BDA0002960080150000151
i=1,2,…,nk,j=1,2,…d;
其中,当数据拥有者1至数据拥有者m*同意数据分析者使用数据,则云服务器获得数据分析者临时公钥pk加密密文的矩阵:
Figure BDA0002960080150000152
其中m*≤m。令
Figure BDA0002960080150000153
则矩阵的表示方式可简化为
Figure BDA0002960080150000154
其中
Figure BDA0002960080150000155
Figure BDA0002960080150000156
其中
Figure BDA0002960080150000157
Figure BDA0002960080150000158
Figure BDA0002960080150000159
…,
Figure BDA00029600801500001510
其中
Figure BDA0002960080150000161
Figure BDA0002960080150000162
Figure BDA0002960080150000163
Figure BDA0002960080150000164
其中
Figure BDA0002960080150000165
Figure BDA0002960080150000166
Figure BDA0002960080150000167
…;
Figure BDA0002960080150000168
其中
Figure BDA0002960080150000169
Figure BDA00029600801500001610
Figure BDA00029600801500001611
…,
Figure BDA00029600801500001612
其中
Figure BDA00029600801500001613
Figure BDA00029600801500001614
Figure BDA00029600801500001615
Figure BDA00029600801500001616
其中
Figure BDA00029600801500001617
Figure BDA00029600801500001618
Figure BDA00029600801500001619
以此类推,矩阵中各行元素的对应关系。
S5、进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再根据LHE加密方案的性质计算得到矩阵A的密文[A]和向量b的密文[b]。
在岭回归中通过求解方程:
Figure BDA0002960080150000171
的最小值求得模型参数w。因此,
Figure BDA0002960080150000172
Figure BDA0002960080150000173
则可通过下式求得模型参数w:
Aw=b
其中A=XTX+λI是一个d×d的方阵,b=XTy是一个d维的列向量。由于X是满秩的,所以A为正定矩阵,因此矩阵A总是可逆的(det(A)>0)。
根据岭回归的学习过程,我们把学习算法分为两个阶段:1)矩阵乘;2)计算岭回归模型参数w。
本步骤中,在进入岭回归学习后,计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、根据密文转换所得到的加密后的密文
Figure BDA00029600801500001713
Figure BDA0002960080150000174
得到矩阵X和向量y的密文为:
Figure BDA0002960080150000175
Figure BDA0002960080150000176
得到矩阵H和向量h的密文记为:
Figure BDA0002960080150000177
Figure BDA0002960080150000178
2)、计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure BDA0002960080150000179
Figure BDA00029600801500001710
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure BDA00029600801500001711
表示密文上的乘法操作,
Figure BDA00029600801500001712
表示密文上的加法操作。
3)、采用数据分析者发送的临时私钥为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作:
Figure BDA0002960080150000181
求解离散对数问题,得到对应的明文信息hij和hi,即获得矩阵H和向量h;根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure BDA0002960080150000182
其中,
Figure BDA0002960080150000183
Figure BDA0002960080150000184
Figure BDA0002960080150000185
均为矩阵H*中的元素,
Figure BDA0002960080150000186
Figure BDA0002960080150000187
均为向量h*的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure BDA0002960080150000188
其中
Figure BDA0002960080150000189
r′i,j为随机数,
Figure BDA00029600801500001810
i=1,…,d,j=1,…d;
Figure BDA00029600801500001811
r′i为随机数,
Figure BDA00029600801500001812
i=1,…,d。4)在获取到密文[H*]和[h*]之后,利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量A的密文:
Figure BDA00029600801500001813
Figure BDA00029600801500001814
S6、根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w,具体过程如下:
1)、随机选择一个可逆矩阵
Figure BDA00029600801500001815
和一个向量
Figure BDA00029600801500001816
Figure BDA00029600801500001817
其中,
Figure BDA00029600801500001818
Figure BDA00029600801500001819
Figure BDA00029600801500001820
均为可逆矩阵R*中的元素,
Figure BDA00029600801500001821
Figure BDA00029600801500001822
均为向量r*的元素;R*是一个d×d的方阵;
利用A-AFGH加密方法的加法同态的性质,计算密文
Figure BDA00029600801500001823
和[d],其中
Figure BDA00029600801500001824
d=Ar*+b。此外,使用数据分析者的公钥
Figure BDA00029600801500001825
加密可逆矩阵R*和向量r*:得到密文矩阵
Figure BDA00029600801500001826
和密文向量
Figure BDA00029600801500001827
Figure BDA00029600801500001828
Figure BDA00029600801500001829
其中
Figure BDA0002960080150000191
Figure BDA0002960080150000192
为随机数,
Figure BDA0002960080150000193
i=1,…,d,j=1,…d;
Figure BDA0002960080150000194
Figure BDA0002960080150000195
为随机数,
Figure BDA0002960080150000196
i=1,…,d。
2)解密
Figure BDA0002960080150000197
和[d]得到相应的明文信息
Figure BDA0002960080150000198
和d,根据明文信息
Figure BDA0002960080150000199
和d计算得到参数
Figure BDA00029600801500001910
Figure BDA00029600801500001911
利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure BDA00029600801500001912
的密文
Figure BDA00029600801500001913
Figure BDA00029600801500001914
其中,
Figure BDA00029600801500001915
为数据分析者公钥
Figure BDA00029600801500001916
加密的密文,模型参数w即为所求的岭回归模型参数;由服务器或云服务器将用数据分析者的公钥
Figure BDA00029600801500001917
加密的模型参数w的密文
Figure BDA00029600801500001918
发送给数据分析者,自此完成岭回归模型的学习。
上述服务器或云服务器均是指执行本实施例方法的服务器或云服务器。
在本实施例方法学习完成的岭回归模型可以被医院用于预测婴儿体重。医院根据怀孕最后一个月的一些超声波测量结果(例如头围、股骨长等)来预测婴儿出生时的体重。为了避免预测结果出现偏差,通常希望使用不同医院的数据进行岭回归的学习,因此在本实施例中,步骤S1中数据拥有者即对应各医院,数据拥有者所持有的数据即为该医院获取的怀孕最后一个月的一些超声波测量结果,各个不同的医院会使用不同的公钥加密数据,然后上传到服务器或云服务器中。当某个医院会请求使用不同医院的数据进行岭回归学习算法时,该医院即为数据分析者,则服务器或云服务器执行本实施例多密钥密文上的岭回归学习方法,返回学习结果及模型参数w的密文
Figure BDA00029600801500001919
给该医院,该医院可以根据得到的模型对婴儿体重进行预测。
本实施例方法学习完成的岭回归模型可以被银行用于预测客户的信誉度。银行根据已有客户在日常生活、工作中的行为检测结果(如社会信誉、经济实力,信守合约状况等因素)来预测客户的信誉度。为了达到更准确的预测结果,通常希望使用不同银行的数据进行模型学习,因此在本实施例中,步骤S1中的数据拥有者即对应每一个银行,数据拥有者所持有的数据即为该银行存储的每个客户在日常生活、工作中的行为检测结果,各个不同的银行会使用不同的公钥加密数据,然后上传到服务器或云服务器中。当某个银行请求使用不同银行的数据进行岭回归学习算法时,该银行即为数据分析者,则服务器或云服务器执行本实施例多密钥密文上的岭回归学习方法,返回学习结果及模型参数w的密文
Figure BDA00029600801500001920
给该银行,该银行可以根据得到的模型对新客户的信誉度进行预测。
本实施例方法学习完成的岭回归模型可以被房地产公司用于房价的预测。房地产公司根据售房记录(如户型,房屋面积,房屋地段等因素)来预测房价。为了达到更精确的预测结果,房地产公司希望根据不同房地产公司的数据进行模型训练,因此在本实施例中,步骤S1中的数据拥有者即为房地产公司,数据拥有者所持有的数据即为该房地产公司存储的售房记录。各个不同的房地产公司会使用不同的公钥加密数据,然后上传到服务器或云服务器中。当某个房地产公司请求使用不用房地产公司的数据进行岭回归学习算法时,该房地产公司即为数据分析者,则服务器或云服务器执行本实施例多密钥密文上的岭回归学习方法,返回学习结果及模型参数w的密文
Figure BDA0002960080150000201
给该房地产公司,该房地产公司可以根据得到的岭回归模型对未来房价进行预测。
本领域技术人员可以理解,实现本实施例方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读存储介质中。应当注意,尽管在附图中以特定顺序描述了本实施例1的方法操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,描绘的步骤可以改变执行顺序,有些步骤也可以同时执行。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
实施例2
本实施例公开了一种基于多密钥密文的岭回归学习系统,如图2中所示,包括服务器、数据拥有者和数据分析者。其中服务器可以是硬件的计算设备,也可以是云服务器,当为云服务器时,包括用于存储和计算服务的云服务器CS和用于辅助计算服务的云服务器ACS。其中:数据拥有者,对其所拥有的数据进行加密,并且将加密后的密文上传到云服务器中;用于接收和授权云服务器发送的密文转换请求,在同意密文转换请求的情况下,利用自身的私钥和数据分析者的公钥生成代理密钥,并且将计算的代理密钥发送给云服务器。
在本实施例中,数据拥有者对数据进行加密得到密文的过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure BDA0002960080150000202
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素。
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥,并计算
Figure BDA0002960080150000203
作为公钥,其中g是循环群
Figure BDA0002960080150000204
的生成元,则数据拥有者k的公私钥对为:
Figure BDA0002960080150000205
skk=ak
2)、对于矩阵中的每一个数据项
Figure BDA0002960080150000206
i=1,2,…,nk,j=1,2,…,d,选择一个随机数
Figure BDA0002960080150000207
i=1,2,…,nk,j=1,2,…d,并令
Figure BDA0002960080150000208
调用A-AFGH加密方法的加密函数
Figure BDA0002960080150000209
选择一个随机数
Figure BDA00029600801500002010
计算密文
Figure BDA0002960080150000211
其中Z是循环群
Figure BDA0002960080150000212
的生成元;该密文只能被持有私钥skk=ax的数据拥有者k解密;则对于每一个数据项
Figure BDA0002960080150000213
使用LHE加密后的密文形式为
Figure BDA0002960080150000214
Figure BDA0002960080150000215
对于矩阵中的每一个数据项
Figure BDA0002960080150000216
i=1,2,…,nk,选择一个随机数
Figure BDA0002960080150000217
并令
Figure BDA0002960080150000218
调用A-AFGH加密方法的加密函数
Figure BDA0002960080150000219
选择一个随机数
Figure BDA00029600801500002110
计算密文
Figure BDA00029600801500002111
则对于每一个数据项
Figure BDA00029600801500002112
使用LHE加密后的密文形式为
Figure BDA00029600801500002113
3)、数据拥有者将上述加密得到的密文
Figure BDA00029600801500002114
上传到云服务器CS中。
数据分析者,用于发送公私钥和密文使用请求到云服务器,用于接收云服务器计算的岭回归模型参数w。
在本实施例中,数据分析者生成公私钥的过程如下:数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure BDA00029600801500002115
作为公钥;数据分析者的公私钥对为
Figure BDA00029600801500002116
sk*=a*,临时公私钥对为:pk=ga,sk=a;
服务器,用于实施例1所示的基于多密钥密文的岭回归学习方法,如下:
获取数据拥有者针对数据加密后所上传的密文;
接收数据分析者发送的公钥,接收数据分析者使用密文进行岭回归学习的请求;
基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文;
进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b];
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的密文。
其中,在本实施例中,当服务器为云服务器时,云服务器所获取的代理密钥生成过程如下:
数据分析者发送临时公钥pk=ga给云服务器CS,请求使用存储在云服务器CS中的密文数据,数据分析者将临时公私钥对pk=ga,sk=a发送给云服务器ACS;云服务器CS将临时公钥pk转发给数据拥有者,获取数据拥有者的授权;
数据拥有者同意云服务器CS使用密文数据,则调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的公钥pk=ga得到代理密钥
Figure BDA0002960080150000221
数据拥有者把代理密钥pkk→DA返回给云服务器CS;
其中,云服务器利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文的具体过程如下:
对于数据拥有者k所上传的密文
Figure BDA0002960080150000222
利用双线性映射
Figure BDA0002960080150000223
计算得到密文
Figure BDA0002960080150000224
对于密文
Figure BDA0002960080150000225
利用双线性映射
Figure BDA0002960080150000226
计算得到密文
Figure BDA0002960080150000227
获得使用数据分析者的临时公钥pk加密数据分析者k的数据的密文:
Figure BDA0002960080150000228
Figure BDA0002960080150000229
i=1,2,…,nk,j=1,2,…d;
其中,当数据拥有者1至数据拥有者m*同意数据分析者使用数据,则云服务器获得数据分析者临时公钥pk加密密文的矩阵:
Figure BDA00029600801500002210
其中m*≤m。令
Figure BDA00029600801500002211
n为数据拥有者1至数据拥有者m*所持有的数据总条数,则矩阵的表示方式可简化为:
Figure BDA0002960080150000231
其中
Figure BDA0002960080150000232
Figure BDA0002960080150000233
其中
Figure BDA0002960080150000234
Figure BDA0002960080150000235
Figure BDA0002960080150000236
…,
Figure BDA0002960080150000237
其中
Figure BDA0002960080150000238
Figure BDA0002960080150000239
Figure BDA00029600801500002310
Figure BDA00029600801500002311
其中
Figure BDA00029600801500002312
Figure BDA00029600801500002313
Figure BDA00029600801500002314
…;
Figure BDA00029600801500002315
其中
Figure BDA00029600801500002316
Figure BDA00029600801500002317
Figure BDA00029600801500002318
…,
Figure BDA0002960080150000241
其中
Figure BDA0002960080150000242
Figure BDA0002960080150000243
Figure BDA0002960080150000244
Figure BDA0002960080150000245
其中
Figure BDA0002960080150000246
Figure BDA0002960080150000247
Figure BDA0002960080150000248
以此类推,矩阵中各行元素的对应关系。
其中,在进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS根据密文转换所得到的加密后的密文
Figure BDA00029600801500002416
Figure BDA0002960080150000249
Figure BDA00029600801500002410
得到矩阵X和向量y的密文为:
Figure BDA00029600801500002411
Figure BDA00029600801500002412
得到矩阵H和向量h的密文记为:
Figure BDA00029600801500002413
Figure BDA00029600801500002414
2)、云服务器CS计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure BDA00029600801500002415
Figure BDA0002960080150000251
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure BDA0002960080150000252
表示密文上的乘法操作,
Figure BDA0002960080150000253
表示密文上的加法操作;
3)、云服务器CS在得到密文[A*]和密文[b*]后,将其中的[hi,j]和[hi]发送给云服务器ACS,云服务器ACS采用数据分析者发送的临时私钥对为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作:
Figure BDA0002960080150000254
求解离散对数问题,得到对应的明文信息hij和hi,即获得矩阵H和向量h。很显然,在hij和hi足够大时,求解离散对数时困难的,但当hij和hi足够小时,例如hij和hi为32比特的数,则可以在有效的时间内解决离散对数问题。虽然在一定条件下可以通过解决离散对数问题求得hij和hi,但是在保证私钥安全的情况下,加密后的
Figure BDA0002960080150000255
Figure BDA0002960080150000256
仍然是安全的。因此在一定条件下的离散对数求解并不会影响加密方法的安全性。然后,根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure BDA0002960080150000257
其中,
Figure BDA0002960080150000258
Figure BDA0002960080150000259
Figure BDA00029600801500002510
均为矩阵H*中的元素,
Figure BDA00029600801500002511
Figure BDA00029600801500002512
均为向量h*的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure BDA00029600801500002513
其中
Figure BDA00029600801500002514
r′i,j是随机数,
Figure BDA00029600801500002515
i=1,…,d,j=1,…d;
Figure BDA00029600801500002516
r′i是随机数,
Figure BDA00029600801500002517
i=1,…,d。
4)云服务器ACS将获取到密文[H*]和[h*]发送给云服务器CS,云服务器CS利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量b的密文
Figure BDA00029600801500002518
Figure BDA00029600801500002519
其中,进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS随机选择一个可逆矩阵
Figure BDA00029600801500002520
和一个向量
Figure BDA00029600801500002521
Figure BDA0002960080150000261
其中,
Figure BDA0002960080150000262
Figure BDA0002960080150000263
Figure BDA0002960080150000264
均为可逆矩阵R*中的元素,
Figure BDA0002960080150000265
Figure BDA0002960080150000266
均为向量r*的元素;
云服务器CS利用A-AFGH加密方法的加法同态的性质,计算密文
Figure BDA0002960080150000267
和[d],其中
Figure BDA0002960080150000268
d=Ar*+b;此外,云服务器CS使用数据分析者的公钥
Figure BDA0002960080150000269
加密可逆矩阵R*和向量r*,得到密文矩阵
Figure BDA00029600801500002610
和密文向量
Figure BDA00029600801500002611
Figure BDA00029600801500002612
Figure BDA00029600801500002613
其中
Figure BDA00029600801500002614
Figure BDA00029600801500002615
是随机数,
Figure BDA00029600801500002616
i=1,…,d,j=1,…d;
Figure BDA00029600801500002617
Figure BDA00029600801500002618
是随机数,
Figure BDA00029600801500002619
i=1,…,d。最后云服务器CS将临时公钥pk=ga加密的密文
Figure BDA00029600801500002620
和[d],以及公钥
Figure BDA00029600801500002621
加密的密文
Figure BDA00029600801500002622
Figure BDA00029600801500002623
发送给云服务器ACS。
2)云服务器ACS解密
Figure BDA00029600801500002624
和[d]得到相应的明文信息
Figure BDA00029600801500002625
和d,根据明文信息
Figure BDA00029600801500002626
和d计算得到参数
Figure BDA00029600801500002627
Figure BDA00029600801500002628
在本实施例中,
Figure BDA00029600801500002629
和d中添加了云服务器CS选择的随机数R*和r*,且云服务器ACS不能解密
Figure BDA00029600801500002630
加密的密文
Figure BDA00029600801500002631
Figure BDA00029600801500002632
因此不能获得随机数R*和r*的信息,那么云服务器ACS也获取不到关于矩阵A和向量b的任何信息。由此可知,元数据和模型参数是安全的。
云服务器ACS利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure BDA00029600801500002633
的密文
Figure BDA00029600801500002634
Figure BDA00029600801500002635
其中
Figure BDA00029600801500002636
为数据分析者公钥
Figure BDA00029600801500002637
加密的密文,模型参数w即为所求的岭回归模型参数;
本实施例中,
Figure BDA00029600801500002638
和d中包含了云服务器CS选择的随机数R*和r*,所以为了计算模型参数w,需要把相关盲化因子去除,同时保证元数据和模型参数w的隐私性。
3)云服务器ACS发送模型参数w的密文
Figure BDA00029600801500002639
给数据分析者。
本实施例基于多密钥密文的岭回归学习系统实现岭回归学习,相比现存的方案相比较,有效地解决了多密钥场景下的具有隐私保护的岭回归学习难题。不仅方便用户检索存储在云服务器上的隐私数据,同时方便用户实行管理权,用户可以决定是否参与机器学习的相关学习运算。除此之外,在岭回归学习过程中,无需数据拥有者参与计算,减少了数据拥有者的工作量。
在密文转换阶段,本实施例比现存的基于BCP加密方案实现密文转换(BCP-TR)方式提高了效率,其对比结果如表1所示:
表1
Figure BDA0002960080150000271
表1中O是时间复杂度的符号。
在密文转换阶段,本实施例要求在获得数据拥有者即用户的许可之后才可以在保证数据隐私的前提下使用用户的数据,即用户需要计算一个代理密钥,表示允许云服务器对自己的数据执行密文转换操作。因此同意参与回归模型训练的用户需要计算一个代理密钥发送给云服务器,则每个用户的计算需要执行一次乘法操作和一次指数操作。云服务器只需在用户的密文上执行n(d+1)次双线性映射操作,便可以实现密文的转换。从表1中可以看出,本实施例在密文转换阶段需要用户参与计算,但是正是因为该运算保证了用户对数据的管理权。基于BCP-TR方案无需用户参与计算,但云服务器需要执行10n(d+1)次指数运算和17n(d+1)次乘法运算。另外,在用户不知情的情况下,使用用户的数据并不利于实际应用。因此,本实施例系统在密文转换阶段很大程度上提高了计算效率。
本实施例系统中,m个用户即m个数据拥有者上传m个代理密钥,云服务器便可以在本地实现密文的转换,无需服务器之间的交互,因此通信开销仅取决于用户的数量。基于BCP加密机制实现的密文转换需要服务器之间交互计算,期间共需发送2n(d+1)个密文数据。很显然,在密文转换阶段,本实施例有效地减少了云服务器之间的通信开销,与BCP-TR方案相比较具有明显优势。
本实施例系统在各个阶段的计算复杂度如表2所示。根据表2可知,影响实施例效率的参数主要是数据集的大小n和数据的维度d。在数据聚合阶段,第一步和第二步的计算复杂度取决于n和d的大小,而在第三步,计算复杂度只取决于维度d。在计算模型阶段,计算复杂度只依赖于维度d。本实施例的通信开销如表3所示。在数据聚合阶段,由于LHE的乘法同态结果中包含了盲化因子,为了消去密文中的盲化因子,需要云服务器交互计算。在该过程中云服务器CS需要发送n(d+1)个随机数的密文给云服务器ACS。云服务器ACS可以解密得到随机数的明文,并计算得到盲化因子。ACS返回d(d+1)/2+d个盲化因子的密文给云服务器CS。在模型计算阶段,需要ACS在明文上求解矩阵A的逆矩阵,因此,需要CS发送盲化后的矩阵D、向量d和盲化因子R*和r*给云服务器ACS,即需要发送2(d2+d)个密文。
表2
Figure BDA0002960080150000281
表3
Figure BDA0002960080150000282
当本实施例系统被医院用于预测婴儿体重时,医院根据怀孕最后一个月的一些超声波测量结果(例如头围、股骨长等)来预测婴儿出生时的体重;为了避免预测结果出现偏差,通常希望使用不同医院的数据进行岭回归的学习算法,而不同的医院会使用不同的公钥加密数据存在云服务器上。某个医院会请求使用不用医院的数据进行岭回归学习算法,则云服务器CS和ACS执行多密钥密文上的岭回归学习运算,返回学习结果给该医院。该医院可以根据得到的模型对婴儿体重进行预测。
实施例3
本实施例公开了一种存储介质,存储有程序,所述程序被处理器执行时,实现实施例1所述的基于多密钥密文的岭回归学习方法,如下:
获取数据拥有者针对数据加密后所上传的密文;
接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求;
基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文;
进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b];
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的密文
Figure BDA0002960080150000283
各个过程中具体的实施过程和实施例1一致,参见实施例1,此处不再赘述。
在本实施例中,存储介质可以是磁盘、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、U盘、移动硬盘等介质。
实施例4
本实施例公开了一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,所述处理器执行存储器存储的程序时,实现实施例1所述的基于多密钥密文的岭回归学习方法,如下:
获取数据拥有者针对数据加密后所上传的密文;
接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求;
基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文;
进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b];
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的密文
Figure BDA0002960080150000291
各个过程中具体的实施过程和实施例1一致,参见实施例1,此处不再赘述。
本实施例中,计算设备可以是服务器、计算机等终端设备。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (6)

1.一种基于多密钥密文的岭回归学习方法,其特征在于,步骤包括:
获取数据拥有者针对数据加密后所上传的密文;
接收数据分析者发送的公私钥,接收数据分析者使用密文进行岭回归学习的请求;
基于密文使用请求,向数据拥有者发送密文转换的请求以及数据分析者发送的公钥,基于数据拥有者同意情况下接收其所发送的代理密钥;其中数据拥有者利用自身的私钥和数据分析者的公钥生成代理密钥;
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文;
进入岭回归学习后,根据密文转换所得到的加密后的密文得到密文矩阵,再针对密文矩阵进行矩阵乘法计算得到矩阵A的密文[A]和向量b的密文[b];
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的密文;
其中,从数据分析者中接收到的公钥的生成过程如下:
数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure FDA00038587399100000110
作为公钥;数据分析者的公私钥对为
Figure FDA0003858739910000019
sk*=a*,临时公私钥对为:pk=ga,sk=a;
从数据拥有者中获取到的代理密钥的生成过程如下:根据数据分析者发送的临时公钥pk,确定出数据分析者请求使用密文数据;并且将临时公钥pk转发给数据拥有者,获取数据拥有者的授权同意;其中,数据拥有者在同意的情况下,调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的临时公钥pk=ga得到代理密钥
Figure FDA0003858739910000011
Figure FDA0003858739910000012
利用代理密钥进行密文转换,将所有密文转换成同一公钥加密后的密文的具体过程如下:
对于数据拥有者k所上传的密文
Figure FDA0003858739910000013
利用双线性映射
Figure FDA0003858739910000014
计算得到密文
Figure FDA0003858739910000015
对于密文
Figure FDA0003858739910000016
利用双线性映射
Figure FDA0003858739910000017
计算得到密文
Figure FDA0003858739910000018
当数据拥有者1到数据拥有者m*同意数据分析者使用数据,则获得数据分析者临时公钥pk加密密文的矩阵为:
Figure FDA0003858739910000021
其中m*≤m;令
Figure FDA00038587399100000212
则矩阵的表示方式可简化为:
Figure FDA0003858739910000022
其中,
Figure FDA0003858739910000023
Figure FDA0003858739910000024
其中
Figure FDA0003858739910000025
Figure FDA0003858739910000026
Figure FDA0003858739910000027
Figure FDA0003858739910000028
其中
Figure FDA0003858739910000029
Figure FDA00038587399100000210
Figure FDA00038587399100000211
Figure FDA0003858739910000031
其中
Figure FDA0003858739910000032
Figure FDA0003858739910000033
Figure FDA0003858739910000034
Figure FDA0003858739910000035
其中
Figure FDA0003858739910000036
Figure FDA0003858739910000037
Figure FDA0003858739910000038
Figure FDA0003858739910000039
其中
Figure FDA00038587399100000310
Figure FDA00038587399100000311
Figure FDA00038587399100000312
Figure FDA00038587399100000313
其中
Figure FDA00038587399100000314
Figure FDA00038587399100000315
Figure FDA00038587399100000316
…,
以此类推,可获得矩阵中各行元素的对应关系;
进入岭回归学习后,计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、根据密文转换所得到的加密后的密文
Figure FDA00038587399100000317
Figure FDA00038587399100000318
得到矩阵X和向量y的密文为:
Figure FDA0003858739910000041
Figure FDA0003858739910000042
得到矩阵H和向量h的密文记为:
Figure FDA0003858739910000043
Figure FDA0003858739910000044
2)、计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure FDA0003858739910000045
Figure FDA0003858739910000046
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure FDA0003858739910000047
表示密文上的乘法操作,
Figure FDA0003858739910000048
表示密文上的加法操作;
3)、采用数据分析者发送的临时私钥为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作,
Figure FDA0003858739910000049
求解离散对数问题,得到对应的明文信息hi,j和hi,即获得矩阵H和向量h,其中ri,j和ri都是随机数;根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure FDA00038587399100000410
其中,
Figure FDA00038587399100000411
Figure FDA00038587399100000412
Figure FDA00038587399100000413
均为矩阵H*中的元素,
Figure FDA00038587399100000414
Figure FDA00038587399100000415
均为向量h*中的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure FDA00038587399100000416
其中
Figure FDA00038587399100000417
Figure DEST_PATH_IMAGE002
是随机数,
Figure FDA00038587399100000418
Figure FDA00038587399100000419
Figure DEST_PATH_IMAGE004
是随机数,
Figure FDA00038587399100000420
4)在获取到密文[H*]和[h*]之后,利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量b的密文:
Figure FDA0003858739910000051
Figure FDA0003858739910000052
根据矩阵A的密文[A]和向量b的密文[b]计算出岭回归模型参数w的具体步骤如下:
1)、随机选择一个可逆矩阵
Figure FDA0003858739910000053
和一个向量
Figure FDA0003858739910000054
Figure FDA0003858739910000055
其中,
Figure FDA0003858739910000056
Figure FDA0003858739910000057
Figure FDA0003858739910000058
均为可逆矩阵R*中的元素,
Figure FDA0003858739910000059
Figure FDA00038587399100000510
均为向量r*中的元素;
利用A-AFGH加密方法的加法同态的性质,计算
Figure FDA00038587399100000511
和d=Ar*+b的密文,得到对应的用数据分析者的临时公钥pk=ga加密的密文结果
Figure FDA00038587399100000512
Figure FDA00038587399100000513
此外,使用数据分析者的公钥
Figure FDA00038587399100000514
调用A-AFGH的加密算法加密可逆矩阵R*和向量r*,得到密文矩阵
Figure FDA00038587399100000515
和密文向量
Figure FDA00038587399100000516
Figure FDA00038587399100000517
Figure FDA00038587399100000518
其中
Figure FDA00038587399100000519
Figure FDA00038587399100000520
是随机数,
Figure FDA00038587399100000521
Figure FDA00038587399100000522
Figure FDA00038587399100000523
是随机数,
Figure FDA00038587399100000524
Figure FDA00038587399100000525
2)解密
Figure FDA00038587399100000526
Figure FDA00038587399100000527
得到相应的明文信息
Figure FDA00038587399100000528
Figure FDA00038587399100000529
根据明文信息
Figure FDA00038587399100000530
Figure FDA00038587399100000531
计算得到参数
Figure FDA00038587399100000532
Figure FDA00038587399100000533
利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure FDA00038587399100000534
的密文
Figure FDA00038587399100000540
Figure FDA00038587399100000535
其中
Figure FDA00038587399100000536
为数据分析者公钥
Figure FDA00038587399100000537
加密的密文,
Figure FDA00038587399100000538
为数据拥有者k对应的参数
Figure FDA00038587399100000539
模型参数w即为所求的岭回归模型参数。
2.根据权利要求1所述的基于多密钥密文的岭回归学习方法,其特征在于,其中从数据拥有者中获取的密文的加密过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure FDA0003858739910000061
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值的特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素;
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥,并计算
Figure FDA0003858739910000062
作为公钥,其中g是循环群
Figure FDA0003858739910000063
的生成元,则数据拥有者k的公私钥对为:
Figure FDA0003858739910000064
skk=ak
2)、对于矩阵中的每一个数据项
Figure FDA0003858739910000065
选择一个随机数
Figure FDA0003858739910000066
并令
Figure FDA0003858739910000067
调用A-AFGH加密方法的加密函数
Figure FDA0003858739910000068
选择一个随机数
Figure FDA0003858739910000069
计算密文
Figure FDA00038587399100000610
其中Z是循环群
Figure FDA00038587399100000611
的生成元;该密文只能被持有私钥skk=ak的数据拥有者k解密;则对于每一个数据项
Figure FDA00038587399100000612
使用LHE加密后的密文形式为
Figure FDA00038587399100000613
对于矩阵中的每一个数据项
Figure FDA00038587399100000614
选择一个随机数
Figure FDA00038587399100000615
并令
Figure FDA00038587399100000616
调用A-AFGH加密方法的加密函数
Figure FDA00038587399100000617
选择一个随机数
Figure FDA00038587399100000618
计算密文
Figure FDA00038587399100000619
则对于每一个数据项
Figure FDA00038587399100000620
使用LHE加密后的密文形式为
Figure DEST_PATH_IMAGE006
3.一种基于多密钥密文的岭回归学习系统,其特征在于,包括服务器、数据拥有者和数据分析者;
所述数据拥有者,用于对其所拥有的数据进行加密,并且将加密后的密文上传到服务器中;用于接收和授权服务器发送的密文转换请求,在同意密文转换请求的情况下,利用自身的私钥和数据分析者的公钥生成代理密钥,并且将计算的代理密钥发送给服务器;
所述数据分析者,用于发送公钥和密文使用请求到服务器,用于接收服务器计算的岭回归模型参数w;
所述服务器,用于执行权利要求1至2中任一项所述的基于多密钥密文的岭回归学习方法。
4.根据权利要求3所述的基于多密钥密文的岭回归学习系统,其特征在于,所述服务器为云服务器,云服务器包括云服务器CS和云服务器ACS;
其中,数据拥有者对数据进行加密得到密文的过程如下:
存在m个数据拥有者,数据拥有者k即用户k持有nk条数据,用矩阵表示为:
Figure FDA0003858739910000071
其中k=1,…,m,矩阵中每一行分别代表一条数据,其中每条数据包含一个拥有d个特征值的特征向量和特征向量对应的结果值,特征向量对应的结果值为矩阵中每一行的最后一个元素;
1)、首先调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;选择随机数ak作为私钥,并计算
Figure FDA0003858739910000072
作为公钥,其中g是循环群
Figure FDA0003858739910000073
的生成元,则数据拥有者k的公私钥对为:
Figure FDA0003858739910000074
skk=ak
2)、对于矩阵中的每一个数据项
Figure FDA0003858739910000075
选择一个随机数
Figure FDA0003858739910000076
并令
Figure FDA0003858739910000077
调用A-AFGH加密方法的加密函数
Figure FDA0003858739910000078
选择一个随机数
Figure FDA0003858739910000079
计算密文
Figure FDA00038587399100000710
其中Z是循环群
Figure FDA00038587399100000711
的生成元;该密文只能被持有私钥skk=ak的数据拥有者k解密;则对于每一个数据项
Figure FDA00038587399100000712
使用LHE加密后的密文形式为
Figure FDA00038587399100000713
对于矩阵中的每一个数据项
Figure FDA00038587399100000714
选择一个随机数
Figure FDA00038587399100000715
并令
Figure FDA00038587399100000716
调用A-AFGH加密方法的加密函数
Figure FDA00038587399100000717
选择一个随机数
Figure FDA00038587399100000718
计算密文
Figure FDA00038587399100000719
则对于每一个数据项
Figure FDA00038587399100000720
使用LHE加密后的密文形式为
Figure FDA00038587399100000721
3)、数据拥有者将上述加密得到的密文
Figure FDA00038587399100000722
上传到云服务器CS中;
其中,数据分析者生成公钥的过程如下:
数据分析者调用A-AFGH加密方法的密钥生成函数KeyGen(1κ)生成公私钥对,其中κ为安全参数;用户选择随机数a和a*作为私钥,并计算ga
Figure FDA00038587399100000723
作为公钥;数据分析者的公私钥对为
Figure FDA00038587399100000724
sk*=a*,临时公私钥对为:pk=ga,sk=a;
云服务器所获取的代理密钥生成过程如下:数据分析者发送临时公钥pk=ga给云服务器CS,请求使用存储在云服务器CS中的密文数据,数据分析者将临时公私钥对pk=ga,sk=a发送给云服务器ACS;云服务器CS将临时公钥pk转发给数据拥有者,获取数据拥有者的授权;
数据拥有者同意云服务器CS使用密文数据,则调用A-AFGH加密方法的代理密钥生成函数利用自己的私钥skk=ak和数据分析者的公钥pk=ga得到代理密钥
Figure FDA0003858739910000081
数据拥有者把代理密钥pkk→DA返回给云服务器CS;
其中,进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS根据密文转换所得到的加密后的密文
Figure FDA0003858739910000082
Figure FDA0003858739910000083
得到矩阵X和向量y的密文为:
Figure FDA0003858739910000084
Figure FDA0003858739910000085
得到矩阵H和向量h的密文记为:
Figure FDA0003858739910000086
Figure FDA0003858739910000087
2)、云服务器CS计算矩阵乘法,得到密文[A*]和密文[b*]:
Figure FDA0003858739910000088
Figure FDA0003858739910000089
其中,λ为正则化参数,是一个固定常量,I是一个d×d的单位矩阵,[λI]表示使用数据分析者的公钥pk=ga,用A-AFGH加密算法加密矩阵λI的密文形式,
Figure FDA00038587399100000810
表示密文上的乘法操作,
Figure FDA00038587399100000811
表示密文上的加法操作;
3)、云服务器CS在得到密文[A*]和密文[b*]后,将其中的[hi,j]和[hi]发送给云服务器ACS,云服务器ACS采用数据分析者发送的临时私钥对为sk=a,对密文转换所得到的加密后的密文中的[hi,j]和[hi]进行解密操作:
Figure FDA00038587399100000812
求解离散对数问题,得到对应的明文信息hi,j和hi,即获得矩阵H和向量h,其中ri,j和ri都是随机数;根据矩阵H和向量h计算对应的盲化因子,即对称矩阵H*和向量h*
Figure FDA00038587399100000813
其中,
Figure FDA0003858739910000091
Figure FDA0003858739910000092
Figure FDA0003858739910000093
均为矩阵H*中的元素,
Figure FDA0003858739910000094
Figure FDA0003858739910000095
均为向量h*中的元素;
使用数据分析者的临时公钥pk=ga加密盲化因子对称矩阵H*和向量h*,得到对应加密后的密文[H*]和[h*]:
Figure FDA0003858739910000096
其中
Figure FDA0003858739910000097
Figure 966870DEST_PATH_IMAGE002
是随机数,
Figure FDA0003858739910000098
Figure FDA0003858739910000099
Figure 884010DEST_PATH_IMAGE004
是随机数,
Figure FDA00038587399100000910
4)云服务器ACS将获取到密文[H*]和[h*]发送给云服务器CS,云服务器CS利用A-AFGH加密方法的加法同态的性质消去密文[A*]和密文[b*]中的盲化因子,得到矩阵A和向量b的密文:
Figure FDA00038587399100000911
Figure FDA00038587399100000912
其中,进入岭回归学习后,云服务器计算得到矩阵A的密文[A]和向量b的密文[b]的具体过程如下:
1)、云服务器CS随机选择一个可逆矩阵
Figure FDA00038587399100000913
和一个向量
Figure FDA00038587399100000914
Figure FDA00038587399100000915
其中,
Figure FDA00038587399100000916
Figure FDA00038587399100000917
Figure FDA00038587399100000918
均为可逆矩阵R*中的元素,
Figure FDA00038587399100000919
Figure FDA00038587399100000920
均为向量r*中的元素;
云服务器CS利用A-AFGH加密方法的加法同态的性质,计算
Figure FDA00038587399100000921
Figure FDA00038587399100000922
的密文,得到对应的用数据分析者的临时公钥pk=ga加密的密文结果
Figure FDA00038587399100000923
Figure FDA00038587399100000924
此外,云服务器CS使用数据分析者的公钥
Figure FDA00038587399100000925
调用A-AFGH的加密算法加密可逆矩阵R*和向量r*,得到密文矩阵
Figure FDA00038587399100000926
和密文向量
Figure FDA00038587399100000927
Figure FDA00038587399100000928
Figure FDA00038587399100000929
其中
Figure FDA00038587399100000930
Figure FDA00038587399100000931
是随机数,
Figure FDA00038587399100000932
Figure FDA00038587399100000933
Figure FDA00038587399100000934
是随机数,
Figure FDA00038587399100000935
Figure FDA00038587399100000936
最后云服务器CS将临时公钥pk=ga加密的密文
Figure FDA00038587399100000937
Figure FDA00038587399100000938
以及公钥
Figure FDA00038587399100000939
加密的密文
Figure FDA00038587399100000940
Figure FDA00038587399100000941
发送给云服务器ACS;
2)云服务器ACS解密
Figure FDA0003858739910000101
Figure FDA0003858739910000102
得到相应的明文信息
Figure FDA0003858739910000103
Figure FDA0003858739910000104
根据明文信息
Figure FDA0003858739910000105
Figure FDA0003858739910000106
计算得到参数
Figure FDA0003858739910000107
Figure FDA0003858739910000108
云服务器ACS利用A-AFGH加密方法的加法同态的同态性质,计算模型参数
Figure FDA0003858739910000109
的密文
Figure FDA00038587399100001010
Figure FDA00038587399100001011
其中,
Figure FDA00038587399100001012
为数据分析者公钥
Figure FDA00038587399100001013
加密的密文,
Figure FDA00038587399100001014
为数据拥有者k对应的参数
Figure FDA00038587399100001015
模型参数w即为所求的岭回归模型参数;
3)云服务器ACS发送模型参数w的密文
Figure FDA00038587399100001016
给数据分析者。
5.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1至2中任一项所述的基于多密钥密文的岭回归学习方法。
6.一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于,所述处理器执行存储器存储的程序时,实现权利要求1至2中任一项所述的基于多密钥密文的岭回归学习方法。
CN202110234350.4A 2021-03-03 2021-03-03 基于多密钥密文的岭回归学习方法、系统、介质和设备 Active CN113077054B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110234350.4A CN113077054B (zh) 2021-03-03 2021-03-03 基于多密钥密文的岭回归学习方法、系统、介质和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110234350.4A CN113077054B (zh) 2021-03-03 2021-03-03 基于多密钥密文的岭回归学习方法、系统、介质和设备

Publications (2)

Publication Number Publication Date
CN113077054A CN113077054A (zh) 2021-07-06
CN113077054B true CN113077054B (zh) 2022-11-29

Family

ID=76609798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110234350.4A Active CN113077054B (zh) 2021-03-03 2021-03-03 基于多密钥密文的岭回归学习方法、系统、介质和设备

Country Status (1)

Country Link
CN (1) CN113077054B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103957109A (zh) * 2014-05-22 2014-07-30 武汉大学 一种云数据隐私保护安全重加密方法
CN104022868A (zh) * 2014-02-18 2014-09-03 杭州师范大学 一种基于密文策略的属性基加密的外包解密方法
CN106170943A (zh) * 2013-09-25 2016-11-30 汤姆逊许可公司 使用部分同态加密和掩码的隐私保护岭回归
CN108377237A (zh) * 2018-02-05 2018-08-07 江苏大学 用于云端密文存储的具有所有权管理的数据去重系统及其数据去重方法
CN109379182A (zh) * 2018-09-04 2019-02-22 西安电子科技大学 支持数据去重的高效数据重加密方法及系统、云存储系统
CN109784676A (zh) * 2018-12-25 2019-05-21 杨鑫 数据分析的学习和使用方法、装置及计算机可读存储介质
CN109992979A (zh) * 2019-03-15 2019-07-09 暨南大学 一种岭回归训练方法、计算设备、介质
CN110190945A (zh) * 2019-05-28 2019-08-30 暨南大学 基于多加密的线性回归隐私保护方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10565524B2 (en) * 2017-01-31 2020-02-18 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on horizontally partitioned local data
US20200190568A1 (en) * 2018-12-10 2020-06-18 OneSkin Technologies, Inc. Methods for detecting the age of biological samples using methylation markers
US11469878B2 (en) * 2019-01-28 2022-10-11 The Toronto-Dominion Bank Homomorphic computations on encrypted data within a distributed computing environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106170943A (zh) * 2013-09-25 2016-11-30 汤姆逊许可公司 使用部分同态加密和掩码的隐私保护岭回归
CN104022868A (zh) * 2014-02-18 2014-09-03 杭州师范大学 一种基于密文策略的属性基加密的外包解密方法
CN103957109A (zh) * 2014-05-22 2014-07-30 武汉大学 一种云数据隐私保护安全重加密方法
CN108377237A (zh) * 2018-02-05 2018-08-07 江苏大学 用于云端密文存储的具有所有权管理的数据去重系统及其数据去重方法
CN109379182A (zh) * 2018-09-04 2019-02-22 西安电子科技大学 支持数据去重的高效数据重加密方法及系统、云存储系统
CN109784676A (zh) * 2018-12-25 2019-05-21 杨鑫 数据分析的学习和使用方法、装置及计算机可读存储介质
CN109992979A (zh) * 2019-03-15 2019-07-09 暨南大学 一种岭回归训练方法、计算设备、介质
CN110190945A (zh) * 2019-05-28 2019-08-30 暨南大学 基于多加密的线性回归隐私保护方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于数据随机性特征和极速学习机的加密数据流识别;周宇欢 等;《计算机科学》;20170630;第44卷(第6A期);第380页-第384页 *

Also Published As

Publication number Publication date
CN113077054A (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
CN110008717B (zh) 支持隐私保护的决策树分类服务系统及方法
Zhang et al. Lightweight searchable encryption protocol for industrial internet of things
US10146958B2 (en) Privacy preserving statistical analysis on distributed databases
US9252942B2 (en) Method and system for secure multiparty cloud computation
WO2018184407A1 (zh) 一种具有隐私保护的K-means聚类方法及系统
Deng et al. A flexible privacy-preserving data sharing scheme in cloud-assisted IoT
WO2016169346A1 (zh) 基于系数映射变换的多项式完全同态加密方法及系统
US10885158B2 (en) Device, system and method for token based outsourcing of computer programs
Wang et al. Outsourced privacy-preserving decision tree classification service over encrypted data
TW201448551A (zh) 使用部份同態之加密及遮罩之隱私保護脊狀回歸
Fan et al. PPMCK: Privacy-preserving multi-party computing for K-means clustering
CN115473715B (zh) 前向安全密文等值测试公钥加密方法、装置、系统及介质
Deng et al. BCTC-KSM: A blockchain-assisted threshold cryptography for key security management in power IoT data sharing
CN113077054B (zh) 基于多密钥密文的岭回归学习方法、系统、介质和设备
Byun et al. Efficient homomorphic encryption framework for privacy-preserving regression
Wu et al. p2detect: Electricity theft detection with privacy preservation for both data and model in smart grid
Caudhari et al. Securing IoT devices generated data using homomorphic encryption
Feng et al. Secure outsourced principal eigentensor computation for cyber-physical-social systems
Zhang et al. Privacy-preserving verifiable elastic net among multiple institutions in the cloud
Wang et al. Outsourced Privacy-Preserving kNN Classifier Model Based on Multi-Key Homomorphic Encryption
Alex et al. Energy Efficient and Secure Neural Network–based Disease Detection Framework for Mobile Healthcare Network
WO2022244129A1 (ja) 管理装置、金融機関端末、及び管理方法
Vidhya et al. Secured Health Data Transmission Using Lagrange Interpolation and Artificial Neural Network.
Guo et al. Privacy-Preserving Queries Using Multisource Private Data Counting on Real Numbers in IoT
CN116663064B (zh) 一种隐私保护神经网络预测方法及系统

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