CN112528303B - 一种基于ntru加密算法的多用户隐私推荐方法 - Google Patents
一种基于ntru加密算法的多用户隐私推荐方法 Download PDFInfo
- Publication number
- CN112528303B CN112528303B CN202011463577.8A CN202011463577A CN112528303B CN 112528303 B CN112528303 B CN 112528303B CN 202011463577 A CN202011463577 A CN 202011463577A CN 112528303 B CN112528303 B CN 112528303B
- Authority
- CN
- China
- Prior art keywords
- user
- recommendation
- encryption
- information
- polynomial
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims description 20
- 239000013598 vector Substances 0.000 claims description 20
- 239000000654 additive Substances 0.000 claims description 3
- 230000000996 additive effect Effects 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 claims description 3
- 230000002427 irreversible effect Effects 0.000 claims description 3
- 230000001172 regenerating effect Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 8
- 238000012549 training Methods 0.000 description 6
- 238000000354 decomposition reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011156 evaluation Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000005295 random walk Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Medical Informatics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于NTRU加密算法的多用户隐私推荐方法,每个用户及服务商拥有独自的公钥及私钥,包括如下步骤:对服务器的推荐模型的权重进行编码、加密得到加密权重编码信息;对用户输入的信息进行编码加密得到加密用户编码信息;将加密权重编码信息及加密用户编码信息进行同态推荐得到加密推荐信息;使用服务商私钥对加密推荐信息进行部分解密,得到部分加密推荐信息;使用用户私钥对部分加密推荐信息解密;对解密后的信息解码得到推荐结果。本发明利用多密钥同态加密方法分别加密用户上传的信息,进而实现在保证隐私的前提下多个用户同时参与的推荐。此外,本发明去除了之前方法中的可信第三方,实现了从单方推荐到多方参与的隐私推荐。
Description
技术领域
本发明涉及信息安全技术领域,具体涉及一种基于NTRU加密算法的多用户隐私推荐方法。
背景技术
许多推荐服务,包括手机广告和电影推荐,已经在我们的日常生活中被广泛使用。因子分解机(FM)和协同过滤(CF)是此类服务常用的算法。其中因子分解机对用户历史行为数据建立用户物品评分矩阵,然后使用矩阵分解相关算法进行因子分解,得到低维稠密的用户特征矩阵和物品特征矩阵,然后两个矩阵相乘就可以得到估计的得分矩阵。协同过滤是从收集到的其他用户的历史中推断出用户的偏好,并为与用户偏好相似的新项目提供推荐。
一些研究指出以上算法的使用存在严重的隐私问题。具体而言,推荐系统可能在没有用户许可的情况下将用户的隐私数据提供给第三方牟利。有研究人员介绍了如何比较匿名的公共Netflix数据集和互联网电影数据库(IMDB)以识别用户。有研究人员的研究表明用户提供的评分列表侵犯了其年龄、性别、种族甚至政治取向等隐私信息。为了避免这些隐私隐患,许多研究都提出了匿名化、差分隐私和密码学方法来实现推荐系统的隐私保护。
基于这些问题,国内外学者主要采用基于数据扰动的方法或全同态加密机制来保护用户的隐私。例如将随机扰动技术与协同过滤算法相结合,可以使保护隐私的协同过滤达到较高的精度。有研究人员利用PerturBoost技术实现了推荐系统的隐私保护,但无法抵抗背景攻击。有研究人员提出一种基于随机游走的分散训练技术来训练每个用户端的MF模型,例如手机和Pad。这样做,每个用户的评分仍然是自己掌握的,而且分散学习可以看作是多学习者(用户)的分布式学习,从而减轻了计算和存储的问题。有文献给出了PrivRank框架,它是一个可定制的、持续保护隐私的社交媒体数据发布系统,在支持基于个性化排名的推荐的同时,保护用户不受推断攻击。有文献利用Paillier公钥同态加密算法实现了针对医疗服务的隐私保护推荐系统。有文献通过压缩编码技术完成加密数据比较协议的设计,并引入可信第三方,实现了保护用户隐私的推荐系统。为了克服由于使用完全同态加密而导致的性能下降,有文献引入了一种新的数据结构来对加密的向量进行计算,通过安全的双方计算有效提高了系统的效率。但目前的技术仍只能完成两方计算,即无法实现多用户输入的推荐。
因此,如何在无需向第三方提供信息的情况下,实现在保证隐私的前提下多个用户同时参与的推荐成为了本领域技术人员急需解决的问题。
发明内容
针对现有技术存在的上述不足,本发明的目的是一种基于NTRU加密算法的多用户隐私推荐方法,在无需向第三方提供信息的情况下,实现在保证隐私的前提下多个用户同时参与的推荐。
本发明公开的技术方案内容如下:
一种基于NTRU加密算法的多用户隐私推荐方法,每个用户及服务商拥有独自的公钥及私钥,包括如下步骤:
S1、对服务器的推荐模型的权重进行编码得到权重编码信息,使用服务商的公钥对权重编码信息进行加密得到加密权重编码信息;
S2、对用户输入的信息进行编码得到用户编码信息,使用用户的公钥对用户编码信息进行加密得到加密用户编码信息;
S3、将加密权重编码信息及加密用户编码信息进行同态推荐得到加密推荐信息;
S4、使用服务商私钥对加密推荐信息进行部分解密,得到部分加密推荐信息;
S5、使用用户私钥对部分加密推荐信息解密;
S6、对解密后的信息解码得到推荐结果。
优选地,编码方法如下:
将待编码的数据被分为整数部分和小数部分,将整数部分转换为二进制形式表达,整数部分向前填充零直到达到N/2位,N表示预设多项式长度,得到整数部分向量h1,整数部分向量h1中的0元素含有N/2-n1个,/>代表二进制第一个非0元素;将小数部分转换为二进制形式表达,小数部分向后填充零直到达到N/2位,得到小数部分向量h2,/>小数部分向量h2中的0元素含有N/2-n2个,/>代表二进制最后一个非0元素;二进制向量hk=[h2,h1];x=[xN-1 xN-2 ... x0]T,x表示多项式中的变量,xi表示变量的i次幂,i=0,1,2,…,N-1;多项式r=hkx。
优选地,密钥生成方法如下:
首先从离散高斯分布中取随机取两个有界多项式f',g,即f',g←χ,χ=χ(κ),以B为边界;令f:=pf'+1,使得f≡1(mod p);计算公钥定义为h=pgf-1∈Rq,私钥定义为f∈R,如果f在Rq上不可逆则重新生成f';χ表示离散高斯分布,χ(κ)表示安全参数κ下的离散高斯分布,κ表示安全参数,f表示通过f'变换来的多项式,p表示与f同余的常数,Rq表示模q下的多项式环;
加密方法如下:
从χ分布中随机取两个有界多项式s,e,s,e←χ,计算输出密文c,c:=hs+pe+m∈Rq;
解密方法如下:
令μ=fc∈Rq,计算输出μ(mod p)得到消息m;
当服务商与用户的密文作加法计算时,
f1f2(c1+c2)=2(f1f2(e1+e2))+f2g1s1+f1g2s2)
+f1f2(m1+m2)
=2Eadd+f1f2(m1+m2)
式中,f1和f2分别为服务商和用户的私钥,c1和c2分别为服务商和用户的密文,g1、g2、e1、e2、s1和s2分别为服务商和用户对应的有界多项式,m1和m2分别为推荐模型的权重和用户输入的信息,Eadd表示同态计算产生的噪声;
当服务商与用户的密文作乘法计算时,
f1f2(c1c2)(mod 2)=2(2g1g2s1s2+g1s1f2(2e2+m2)
+g2s2f1(2e1+m1)
+f1f2(e1m2+e2m1+2e1e2))
+f1f2(m1m2)(mod 2)
=2Emult+f1f2(m1m2)
=m1m2(mod 2)
式中,Emult表示同态计算产生的噪声。
优选地,随着计算的深度增加,利用私钥的加密与同态计算之后的密文再次进行同态计算。
优选地,解码方法如下:
设编码的数据的小数部分的位数为b,从解密后得到的多项式的第一个非0多项式即xN-b开始,将它的系数除以2的结果加到xN-b+1的系数上,然后重复这个过程一直到xN-1,xN-1进位到x0,继续对整数位进行进位,从x0开始,将它的系数除以2的结果加到x1的系数上,直到所有比特计算完成。
本发明公开了一种基于NTRU加密算法的多用户隐私推荐方法,每个用户及服务商拥有独自的公钥及私钥,包括如下步骤:S1、对服务器的推荐模型的权重进行编码得到权重编码信息,使用服务商的公钥对权重编码信息进行加密得到加密权重编码信息;S2、对用户输入的信息进行编码得到用户编码信息,使用用户的公钥对用户编码信息进行加密得到加密用户编码信息;S3、将加密权重编码信息及加密用户编码信息进行同态推荐得到加密推荐信息;S4、使用服务商私钥对加密推荐信息进行部分解密,得到部分加密推荐信息;S5、使用用户私钥对部分加密推荐信息解密;S6、对解密后的信息解码得到推荐结果。在云服务器利用推荐系统为各个用户作推荐的过程中,为保护用户的隐私数据比如身份信息、地址信息不被云服务器恶意使用,使得算法能够在数据加密的情况下进行推荐,本发明利用多密钥同态加密方法分别加密用户上传的信息,并替换完成训练的因子分解机中的参数,进而实现在保证隐私的前提下多个用户同时参与的推荐。此外,本发明去除了之前方法中的可信第三方,并实现了从单方推荐到多方参与的隐私推荐。
附图说明
图1为本发明公开的一种基于NTRU加密算法的多用户隐私推荐方法的流程图;
图2为具体实验中加密前后预测得分的相对误差对比图;
图3为具体实验中不同迭代次数下的均方误差变化对比图;
图4为具体实验中不同样本数量下的时间耗时对比图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述说明。
如图1所示,本发明公开了一种基于NTRU加密算法的多用户隐私推荐方法,每个用户及服务商拥有独自的公钥及私钥,包括如下步骤:
S1、对服务器的推荐模型的权重进行编码得到权重编码信息,使用服务商的公钥对权重编码信息进行加密得到加密权重编码信息;
S2、对用户输入的信息进行编码得到用户编码信息,使用用户的公钥对用户编码信息进行加密得到加密用户编码信息;
S3、将加密权重编码信息及加密用户编码信息进行同态推荐得到加密推荐信息;
S4、使用服务商私钥对加密推荐信息进行部分解密,得到部分加密推荐信息;
S5、使用用户私钥对部分加密推荐信息解密;
S6、对解密后的信息解码得到推荐结果。
在云服务器利用推荐系统为各个用户作推荐的过程中,为保护用户的隐私数据比如身份信息、地址信息不被云服务器恶意使用,使得算法能够在数据加密的情况下进行推荐,本发明利用多密钥同态加密方法分别加密用户上传的信息,并替换完成训练的因子分解机中的参数,进而实现在保证隐私的前提下多个用户同时参与的推荐。此外,本发明去除了之前方法中的可信第三方,并实现了从单方推荐到多方参与的隐私推荐。
在明文方案中,因子分解机需在实数域上参与计算,而同态加密是在卷积多项式环上进行处理,存在着因子分解机与计算中涉及的元素不匹配的矛盾,所以需要一种保留加法和乘法的编码方案,因此,具体实施时,编码方法如下:
将待编码的数据被分为整数部分和小数部分,将整数部分转换为二进制形式表达,整数部分向前填充零直到达到N/2位,N表示预设多项式长度,得到整数部分向量h1,整数部分向量h1中的0元素含有N/2-n1个,/>代表二进制第一个非0元素;将小数部分转换为二进制形式表达,小数部分向后填充零直到达到N/2位,得到小数部分向量h2,/>小数部分向量h2中的0元素含有N/2-n2个,/>代表二进制最后一个非0元素;二进制向量hk=[h2,h1];x=[xN-1 xN-2 ... x0]T,x表示多项式中的变量,xi表示变量的i次幂,i=0,1,2,…,N-1;多项式r=hkx。
例如,25.75的小数部分将被编码为多项式r=-1xN-1-1xN-2+1x4+1x3+1。
考虑到不同的用户需要借助云服务器进行运算,之前的同态加密算法无法达到要求,需要结合可信的第三方服务器来分配和管理密钥对。但在具体实践中,这种服务器难以找到,因此,本发明中采用基于NTRU的多密钥同态加密方案,实现了多参与者的同态计算,具体实施时,密钥生成方法如下:
首先从离散高斯分布中取随机取两个有界多项式f',g,即f',g←χ,χ=χ(κ),以B(B是一个可以通过计算得到的变量)为边界;令f:=pf'+1,使得f≡1(mod p);计算公钥定义为h=pgf-1∈Rq,私钥定义为f∈R,如果f在Rq上不可逆则重新生成f';χ表示离散高斯分布,χ(κ)表示安全参数κ下的离散高斯分布,κ表示安全参数,f表示通过f'变换来的多项式,p表示与f同余的常数,Rq表示模q下的多项式环;
加密方法如下:
从χ分布中随机取两个有界多项式s,e,s,e←χ,计算输出密文c,c:=hs+pe+m∈Rq;
解密方法如下:
令μ=fc∈Rq,计算输出μ(mod p)得到消息m;
当服务商与用户的密文作加法计算时,
f1f2(c1+c2)=2(f1f2(e1+e2))+f2g1s1+f1g2s2)
+f1f2(m1+m2)
=2Eadd+f1f2(m1+m2)
式中,f1和f2分别为服务商和用户的私钥,c1和c2分别为服务商和用户的密文,g1、g2、e1、e2、s1和s2分别为服务商和用户对应的有界多项式,m1和m2分别为推荐模型的权重和用户输入的信息,Eadd表示同态计算产生的噪声;
当服务商与用户的密文作乘法计算时,
f1f2(c1c2)(mod 2)=2(2g1g2s1s2+g1s1f2(2e2+m2)
+g2s2f1(2e1+m1)
+f1f2(e1m2+e2m1+2e1e2))
+f1f2(m1m2)(mod 2)
=2Emult+f1f2(m1m2)
=m1m2(mod 2)
式中,Emult表示同态计算产生的噪声。
Eadd和Emult都是每次同态计算产生的噪声,只要噪声足够小就能够保证计算结果能被正确解密,由以上算法不难看出,当解密到一定深度时,噪声会变得过大,导致最终的密文无法正确解密,因此,在具体实施时,随着计算的深度增加,利用私钥的加密与同态计算之后的密文再次进行同态计算,在加密状态下更新密文噪声使得密文保持在能被正确解密的状态。(每次同态计算都要更新密文噪声使得密文保持在能被正确解密的状态,不然就无法解密)。解决这个问题Gentry等人给了bootstrapping定理,随着计算的深度增加,利用私钥的加密与同态计算之后的密文再次进行同态计算,在加密状态下更新密文噪声使得密文保持在能被正确解密的状态。
用户在拿到解密结果之后对其再作解码操作得到最终的推荐结果。如果将解密结果直接按照编码的方法进行解码,会降低解码精度,因此我们对初始参数进行了调整,并给出了多项式进位法的结果,具体实施时,解码方法如下:
设编码的数据的小数部分的位数为b,从解密后得到的多项式的第一个非0多项式即xN-b开始,将它的系数除以2的结果加到xN-b+1的系数上,然后重复这个过程一直到xN-1,xN-1进位到x0,继续对整数位进行进位,从x0开始,将它的系数除以2的结果加到x1的系数上,直到所有比特计算完成。
因为我们在输入数据之前对数据进行了规范化,对一个64位的多项式,将其后24位作为小数位,前8位作为整数位,所以整数不会影响小数点。比如5×5.25=26.25的解密结果为
-x63+x4+2x2+2
使用上面的解码方法得到
-x63+x4+x3+x
即
m=2-2+24+23+21=26.25
为了配合此解码方法,将模数p调大,具体大小由计算的层数决定。
本发明中,因子分解机主要是解决稀疏数据集下的特征组合问题,对连续和离散特征有较好的通用性。在只考虑二阶交叉时,具体模型如下:
其中,n为样本的特征数量,xi是第i个特征的值,w0、wi、wij是模型参数,这里要注意,若xi和xj中有一个为0,则交叉无意义。由于稀疏数据集中满足交w0叉项不为0的样本会很少,导致训练不够充分而影响模型参数的准确性。那么,交叉项参数的训练问题可以用矩阵分解来近似解决,有下面的公式。
模型需要估计的参数即是:
其中<·,·>代表两个k维的向量的内积:
其中V中的第i行vi代表第k个因子的第i个变量。是定义因式分解维度的超参数。w表示权重,vi,f表示第i个样本的向量中第f个值,V表示vi和vj的内积。
然而在数据非常稀疏的情况下,应该选择较小的k,因为没有足够多的交互数据来估计复杂的用户-项目交互矩阵W,限制k的大小可以减少计算的复杂度和参与计算的参数,从而为模型提供更好的泛化能力。
为了验证本发明公开的基于NTRU加密算法的多用户隐私推荐方法的效果,对普通的推荐系统做加密处理,之后利用公开数据集MovieLens对加密之后的系统进行测试:
1.实验环境
实验环境为:操作系统Windows 10;处理器Intel i7-9700,8个CPU核心;内存32GB;实验平台:Visual Studio Code,Python 3.7.3,Sympy 1.5.1,TensorFlow 2.0;多进程编程:multiprocessing。
2.实验数据集
采用真实的公开数据集,使用MovieLens 100K,这是一个通常用于推荐系统研究的电影评级数据集,由943个用户提交了1682部电影的100K条评分项。将全部评分数据的80%作为训练集,20%作为测试集。使用了100个用户,100个电影项目的合成数据,用户和电影项目的特征维度为200。
3.实验参数设置
本次实验训练模型使用TensorFlow进行训练,使用梯度下降进行权重更新,训练迭代次数为300次,学习率为0.001,批次大小为1024,FM的隐向量长度为4。
训练好后的模型,使用Sympy实现NTRU加密算法,公钥长度N设置为64位,安全系数p为64,q为100001651,对明文数值进行编码的小数位长度设置为24位。
4.实验结果与评价指标
在本实验中我们使用预测模型常用的评价指标,包括均方误差(Mean SquaredError,MSE)、均方根误差(Root Mean Squard Error,RMSE)和平均绝对误差(MeanAbsolute Error,MAE)。其中,m代表样本的个数,yi代表样本的真实评分,代表样本的预测评分。
对加密前的模型效果和加密后的模型效果都进行了评价,具体实验结果如表1所示。可以看到,加密前后的MSE、MAE和RMSE均小于1,说明模型是有良好的推荐效果。
表1加密前后的预测得分
通过我们的方案能够保证用户的观影记录,观影评价不泄露给云服务器,且加密方法是基于格上的最近向量问题,能够抵抗量子攻击。由于加密前后误差极小,为了更好地展示加密前后的相差效果,使用了文献[9]的相对误差评价标准,将E(U,V)定义为在给定用户信息U和项目信息V的情况下的误差。
|E(U*,V*)-E(U,V)|/E(U,V)
如图2,即为加密前后的误差对比,可以看到当最差的是样本数量为256时,MSE的相对误差最高为3.93E-4,最好为样本数量为1024时MAE的相对误差为3.54E-06。
5.实验对比分析
将相对误差与文献Nikolaenko V,Ioannidis S,Weinsberg U,et al.Privacy-preserving matrix factorization[C].computer and communications security,2013:801-812的相对误差进行对比,如图3所示,可以看出,当迭代次数为6和10的时候,我们的模型的相对误差会更小,我们五次迭代的平均相对误差为4.04E-4,而上述文献的平均相对误差为8E-4,也就是说我们模型的效果提升了50%。
在时间效率上,使用了多进程编程,速度得到了大大的提升,如图4所示,是在不同样本量下,NTRU-Rec模型与文献模型所需要的模型执行时间消耗对比图,可以看出,当样本量越多的时候,NTRU-Rec模型的数据更快,而在真实的推荐系统中,样本量是十分巨大的,那么在工业应用上,NTRU-Rec模型的使用价值会更高。
另外,在实验过程中,首先利用已有的明文数据训练因子分解机参数,得到一个训练好的模型,之后利用多密钥同态加密算法对模型同态替换,用户输入数据前先完成加密,考虑到同态加密的高复杂度,和数据集的高维稀疏的特征(数据集中样本的大部分数据都是0),我们准备了两种加密方法。第一种为了节约加密及同态计算的时间,在用户加密个人数据的时候以只对非零数据进行加密。这样可以节约大量的时间消耗,但会牺牲用户给哪部电影评分的隐私。第二种即对用户所有消息加密,这样加密和推荐时间较长,但不会泄露用户任何信息。第一种方法用户端加密只需要0.06s,服务端推荐只需要1.29s,第二种方法用户端加密需要11.92s,服务端完成推荐需要88.29s。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管通过参照本发明的优选实施例已经对本发明进行了描述,但本领域的普通技术人员应当理解,可以在形式上和细节上对其作出各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
Claims (4)
1.一种基于NTRU加密算法的多用户隐私推荐方法,其特征在于,每个用户及服务商拥有独自的公钥及私钥,包括如下步骤:
S1、对服务器的推荐模型的权重进行编码得到权重编码信息,使用服务商的公钥对权重编码信息进行加密得到加密权重编码信息;
S2、对用户输入的信息进行编码得到用户编码信息,使用用户的公钥对用户编码信息进行加密得到加密用户编码信息;
S3、将加密权重编码信息及加密用户编码信息利用多密钥进行同态加密得到加密推荐信息;密钥生成方法如下:
首先从离散高斯分布中取随机取两个有界多项式f',g,即f',g←χ,χ=χ(κ),以B为边界;令f:=pf'+1,使得f≡1(mod p);计算公钥定义为h=pgf-1∈Rq,私钥定义为f∈R,如果f在Rq上不可逆则重新生成f';χ表示离散高斯分布,χ(κ)表示安全参数κ下的离散高斯分布,κ表示安全参数,f表示通过f'变换来的多项式,p表示与f同余的常数,Rq表示模q下的多项式环;
加密方法如下:
从χ分布中随机取两个有界多项式s,e,s,e←χ,计算输出密文c,c:=hs+pe+m∈Rq;
解密方法如下:
令μ=fc∈Rq,计算输出μ(mod p)得到消息m;
当服务商与用户的密文作加法计算时,
f1f2(c1+c2)=2(f1f2(e1+e2))+f2g1s1+f1g2s2)+f1f2(m1+m2)
=2Eadd+f1f2(m1+m2)
式中,f1和f2分别为服务商和用户的私钥,c1和c2分别为服务商和用户的密文,g1、g2、e1、e2、s1和s2分别为服务商和用户对应的有界多项式,m1和m2分别为推荐模型的权重和用户输入的信息,Eadd表示同态计算产生的噪声;
当服务商与用户的密文作乘法计算时,
f1f2(c1c2)(mod 2)=2(2g1g2s1s2+g1s1f2(2e2+m2)+g2s2f1(2e1+m1)+f1f2(e1m2+e2m1+2e1e2))+f1f2(m1m2)(mod 2)
=2Emult+f1f2(m1m2)
=m1m2(mod 2)
式中,Emult表示同态计算产生的噪声;
S4、使用服务商私钥对加密推荐信息进行部分解密,得到部分加密推荐信息;
S5、使用用户私钥对部分加密推荐信息解密;
S6、对解密后的信息解码得到推荐结果。
2.如权利要求1所述的基于NTRU加密算法的多用户隐私推荐方法,其特征在于,编码方法如下:
将待编码的数据被分为整数部分和小数部分,将整数部分转换为二进制形式表达,整数部分向前填充零直到达到N/2位,N表示预设多项式长度,得到整数部分向量h1,整数部分向量h1中的0元素含有N/2-n1个,/>代表二进制第一个非0元素;将小数部分转换为二进制形式表达,小数部分向后填充零直到达到N/2位,得到小数部分向量h2,/>小数部分向量h2中的0元素含有N/2-n2个,/>代表二进制最后一个非0元素;二进制向量hk=[h2,h1];x=[xN-1 xN-2 ... x0]T,x表示多项式中的变量,xi表示变量的i次幂,i=0,1,2,…,N-1;多项式r=hkx。
3.如权利要求1所述的基于NTRU加密算法的多用户隐私推荐方法,其特征在于,随着计算的深度增加,利用私钥的加密与同态计算之后的密文再次进行同态计算。
4.如权利要求2所述的基于NTRU加密算法的多用户隐私推荐方法,其特征在于,解码方法如下:
设编码的数据的小数部分的位数为b,从解密后得到的多项式的第一个非0多项式即xN -b开始,将它的系数除以2的结果加到xN-b+1的系数上,然后重复这个过程一直到xN-1,xN-1进位到x0,继续对整数位进行进位,从x0开始,将它的系数除以2的结果加到x1的系数上,直到所有比特计算完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463577.8A CN112528303B (zh) | 2020-12-11 | 2020-12-11 | 一种基于ntru加密算法的多用户隐私推荐方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011463577.8A CN112528303B (zh) | 2020-12-11 | 2020-12-11 | 一种基于ntru加密算法的多用户隐私推荐方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528303A CN112528303A (zh) | 2021-03-19 |
CN112528303B true CN112528303B (zh) | 2024-01-26 |
Family
ID=74999430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011463577.8A Active CN112528303B (zh) | 2020-12-11 | 2020-12-11 | 一种基于ntru加密算法的多用户隐私推荐方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528303B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114943041A (zh) * | 2022-05-17 | 2022-08-26 | 重庆邮电大学 | 一种基于差分隐私的隐式反馈协同过滤推荐方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014194663A1 (en) * | 2013-06-05 | 2014-12-11 | Tencent Technology (Shenzhen) Company Limited | Encryption recommendation method, encryption recommendation device, terminal and storage medium |
CN105144625A (zh) * | 2013-08-09 | 2015-12-09 | 汤姆逊许可公司 | 隐私保护矩阵因子分解的方法和系统 |
CN109936435A (zh) * | 2019-01-24 | 2019-06-25 | 中国人民武装警察部队工程大学 | 具有快速同态运算过程ntru型多密钥全同态加密方法 |
CN110209994A (zh) * | 2019-04-25 | 2019-09-06 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN111104434A (zh) * | 2019-11-25 | 2020-05-05 | 北京理工大学 | 一种基于隐私保护多级属性相似度的电子医疗推荐方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2590126A1 (en) * | 2011-11-01 | 2013-05-08 | Nederlandse Organisatie voor toegepast -natuurwetenschappelijk onderzoek TNO | Recommender system for providing recommendations to groups of users |
US20170083962A1 (en) * | 2015-09-18 | 2017-03-23 | Rovi Guides, Inc. | Methods and systems for recommending gifts using a supplemental profile |
-
2020
- 2020-12-11 CN CN202011463577.8A patent/CN112528303B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014194663A1 (en) * | 2013-06-05 | 2014-12-11 | Tencent Technology (Shenzhen) Company Limited | Encryption recommendation method, encryption recommendation device, terminal and storage medium |
CN104217169A (zh) * | 2013-06-05 | 2014-12-17 | 腾讯科技(深圳)有限公司 | 一种加密推荐方法及装置、终端 |
CN105144625A (zh) * | 2013-08-09 | 2015-12-09 | 汤姆逊许可公司 | 隐私保护矩阵因子分解的方法和系统 |
CN109936435A (zh) * | 2019-01-24 | 2019-06-25 | 中国人民武装警察部队工程大学 | 具有快速同态运算过程ntru型多密钥全同态加密方法 |
CN110209994A (zh) * | 2019-04-25 | 2019-09-06 | 广西师范大学 | 基于同态加密的矩阵分解推荐方法 |
CN111104434A (zh) * | 2019-11-25 | 2020-05-05 | 北京理工大学 | 一种基于隐私保护多级属性相似度的电子医疗推荐方法 |
Non-Patent Citations (7)
Title |
---|
Privacy Preserving user based web service recommendation;Shahriar Badsha 等;IEEE Access;第6卷;56647-56657 * |
SecureMed: Secure Medical Computation Using GPU-Accelerated Homomorphic Encryption Scheme;Alhassan Khedr 等;IEEE Journal of Biomedical and Health Informatics;第22卷(第2期);597-606 * |
同态加密技术及其在云计算隐私保护中的应用;李宗育 等;软件学报;第29卷(第07期);1830-1851 * |
基于云计算服务的安全多方计算;蒋瀚 等;计算机研究与发展;第53卷(第10期);2152-2162 * |
基于同态加密和Bloom过滤器的云外包多方隐私集合比较协议;张恩 等;计算机应用;第38卷(第08期);2256-2260 * |
基于同态加密的隐私保护推荐算法;潘峰 等;郑州大学学报(理学版);第52卷(第03期);62-67 * |
高效可验证的隐私保护推荐系统;宋春芝 等;华东师范大学学报(自然科学版)(第02期);41-51+62 * |
Also Published As
Publication number | Publication date |
---|---|
CN112528303A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Nikolaenko et al. | Privacy-preserving matrix factorization | |
Wu et al. | Efficient and privacy-preserving traceable attribute-based encryption in blockchain | |
Li et al. | Privacy-preserving machine learning with multiple data providers | |
Liu et al. | Privacy-preserving outsourced calculation toolkit in the cloud | |
Kim et al. | Efficient privacy-preserving matrix factorization for recommendation via fully homomorphic encryption | |
Wu et al. | Secure and efficient outsourced k-means clustering using fully homomorphic encryption with ciphertext packing technique | |
Zhu et al. | Distributed additive encryption and quantization for privacy preserving federated deep learning | |
Kumar et al. | IEHC: An efficient image encryption technique using hybrid chaotic map | |
US20160020904A1 (en) | Method and system for privacy-preserving recommendation based on matrix factorization and ridge regression | |
Fu et al. | Cloud-based outsourcing for enabling privacy-preserving large-scale non-negative matrix factorization | |
EP3031165A2 (en) | A method and system for privacy preserving matrix factorization | |
CN106850656A (zh) | 一种云环境下多用户文件共享控制方法 | |
CN112332979B (zh) | 云计算环境中的密文搜索方法及系统、设备 | |
Lo et al. | An efficient key assignment scheme for access control in a large leaf class hierarchy | |
Rahman et al. | MAKE: A matrix action key exchange | |
Gu et al. | MSPPIR: Multi-source privacy-preserving image retrieval in cloud computing | |
Cui et al. | An efficient attribute-based multi-keyword search scheme in encrypted keyword generation | |
Xu et al. | Toward practical privacy-preserving linear regression | |
Erkin et al. | Privacy-preserving user clustering in a social network | |
CN112528303B (zh) | 一种基于ntru加密算法的多用户隐私推荐方法 | |
Zhang et al. | A secure and privacy-preserving word vector training scheme based on functional encryption with inner-product predicates | |
CN111859440A (zh) | 基于混合协议的分布式隐私保护逻辑回归模型的样本分类方法 | |
CN115150055B (zh) | 一种基于同态加密的隐私保护岭回归方法 | |
Zhu et al. | Outsourcing set intersection computation based on bloom filter for privacy preservation in multimedia processing | |
CN116821429A (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 |