一种基于同态加密的不经意传输方法、介质及电子设备
未命名
09-21
阅读:105
评论:0

1.本发明涉及数据通讯技术领域,更具体的说是涉及一种基于同态加密的不经意传输方法、介质及电子设备。
背景技术:
2.不经意传输是安全多方计算的一项重要协议,保护通信双方之间传输的数据。最早由拉宾在1991年提出概念,后经改进能够实现发送方将潜在的许多信息中的一个传递给接收方,但不知道接收方获取哪一个消息。因为其可以保证接收方和发送方数据的安全性,该协议可以用于隐私集合求交、医疗保健、金融交易、混淆电路等应用方向。传统的不经意传输协议依赖于rsa公钥密码构造,如在2选1协议的密钥交换阶段,接收方使用两个不可区分的公钥加密一个随机数,得到的一个密文,对发送方而言,无法区分该密文是哪个公钥加密的,同时使用两个私钥解密后,得到两个不可区分的随机数作为对称密钥加密两个消息,后进行解密,在此过程中双方交互需要大量的通信。发送方计算得到的两个随机数中,其中一个是接收方的随机数,由于其需要生成多对公钥而导致基础协议效率低下,之后虽然经过发展出现扩展技术,但其仍未解决多对公钥生成的时间和通信量问题。
3.目前不经意传输协议的缺点有以下几点:1.效率较低,由于生成、计算和传输多对公钥所需要大量时间,使基础协议效率低下;2.协议双方具有复杂的交互轮数以及通信量,由于双方需要进行密钥协商、密文发送等,需要大量的交互造成时间的浪费。
4.同态加密技术对密文进行特定形式的代数运算得到仍然是加密的结果,将其解密所得到的结果与明文进行同样的运算结果一样。同态加密技术包括半同态、准同态和全同态加密,同态加密具有复杂的运算但有较少的通信量,因此着力于找到通信和计算的平衡,适当增加不经意传输的计算,减少通信量。
5.因此,如何提高不经意传输的效率,减少交互时间是本领域技术人员亟需解决的问题。
技术实现要素:
6.有鉴于此,本发明提供了一种基于同态加密的不经意传输方法、介质及电子设备,减少协议交互过程的的通信量,提高不经意传输的效率和安全性。
7.为了实现上述目的,本发明采用如下技术方案:
8.一种基于同态加密的不经意传输方法,包括以下步骤:
9.步骤1:发送方利用数字证书公开公钥;
10.步骤2:接收方确定接收消息位数c,预生成经过加密调整的辅助矩阵,并随机生成随机数;将接收消息位数c与辅助矩阵进行映射,获得参数i;利用公钥和同态加密方法对随机数进行加密,根据接收消息位数c对加密后的密文采用双射函数进行混淆,将参数i、辅助矩阵、混淆结果和加密后的密文发送至发送方;
11.步骤3:发送方对混淆结果依次进行变换和解密,结合接收方的参数i、密文和辅助
矩阵对解密结果进行运算,将运算结果融合消息进行加密获得消息密文,并发送给接收方;
12.步骤4:接收方对消息密文进行解密和舍入还原操作,获得消息。
13.上述技术方案的技术效果,对于接收方,只有一个随机数密钥,且解密后仅有一个数字密文,考虑同态密文的近似,当参数达到一定精度时,四舍五入便可解出正确的密文,同时保证了无法得到其他消息。对于发送方,n个随机数密文无法区分,且辅助矩阵t经过同态加密,无法区分矩阵每一行中数字1的位置,因此发送方不知道接收方取走了哪个消息,安全性得到了保证。适用于n选用1方案,作为单独的协议而言,发送方输入n个消息(m1,m2,...,mn),接收方输入一个接收位c∈{1,2,...,n},表示接受方想要第c个消息,发送方输出想要的消息mc。同时作为基础密码学协议,它可以直接应用于构建安全多方协议,用来保护隐私的传输和接收消息。在预生成矩阵的同时对矩阵中每个元素进行同态加密,然后进行列调整,将调整后的辅助矩阵t发送给发送方,参数i根据调整后的辅助矩阵由c映射而来。
14.优选的,步骤2的具体实现过程为:
15.采用公钥对随机数r进行加密获得随机数密文c;
16.采用同态加密方法对随机数r进行加密,获得同态密文δ;
17.采用双射函数根据接收消息位数c对随机数密文c进行混淆获得混淆密文c';
18.将参数i、辅助矩阵、混淆密文c'和同态密文δ发送至发送方。
19.优选的,步骤3的具体实现过程为:
20.发送方对混淆密文c'采用双射函数的逆函数进行变换,获得随机数密文集(r1,r2,...rn);
21.发送方采用自身的私钥对随机数密文集(r1,r2,...rn)进行解密获得n个不可区分的明文c1,c2,...,cn,其中1个为随机数r;
22.令n个明文c1,c2,...,cn分别减去同态密文δ,并加上1,获得作差结果p1,p2,...,pn;
23.计算作差结果p1,p2,...,pn与根据参数i选取的辅助矩阵中第i列数据的叉乘结果k1,k2...kn;
24.将叉乘结果k1,k2...kn与消息m1,m2,...,mn进行点乘,获得点乘结果m;
25.采用哈希函数对点乘结果m进行加密获得消息密文m',并发送给接收方。
26.优选的,步骤4中采用与步骤3相同的哈希函数对消息密文m'进行解密,具体过程为:
27.接收方采用哈希函数对消息密文m'进行解密,获得点乘结果m;
28.对点乘结果m进行同态解密后再进行舍入还原操作,获得消息mc,i的取值为c=1,...,n。同态解密的参数选择与步骤2中进行同态加密的参数相同。
29.优选的,采用同态加密中的ckks同态加密方案对随机数进行加密。
30.优选的,发送方根据约定规则从同态密文中选用部分同态密文作为密钥,采用哈希函数对点乘结果进行加密;接收方采用相同的部分同态密文对消息密文进行解密。发送发和接收方事先约定规则,例如可约定取同态密文前32位作为密钥,即选用同态密文中前32位作为密钥。
31.优选的,对随机数密文的加密或解密采用的双射函数根据效率需求选用不同的双
射函数。可以根据不同的应用场景选定双射函数,需要速度快的协议可以选用添加随机数作为双射函数,而需要安全性较大的,则可以选择再加密作为双射函数,但需要牺牲效率。
32.经由上述的技术方案可知,与现有技术相比,本发明公开提供了一种基于同态加密的不经意传输方法、介质及电子设备,采用基于密文混淆的密钥交换方法,主要基于密文混淆框架,可以公钥密码进行协议密钥交换,在加密消息时结合同态加密,构建不经意传输协议,使密文长度达到大幅缩减,从而减少协议交互过程的通信量,同时实现具有带认证功能的协议,使不经意传输的效率和安全性的得以提升。其中,密文混淆降低到一对公钥,加密明文得到密文后,使用双射函数对密文进行变换,得到两个密文,使用一对公钥,利用本身存在的数字证书,不需要生成公私钥,减少公钥加密消息的交互轮数,进一步压缩成本,并提高不经意传输协议的效率,同时由于数字证书的存在能够实现身份认证,避免协议双方身份的伪造,因此可以实现具有带身份认证的不经意传输协议;使用双射函数对密文进行操作用来代替昂贵的公钥操作,在保证安全性的前提下,使用不同的双射函数,在不同的应用中,可以基于密钥交换协议定制得到不同的协议以满足安全性和效率的平衡;使用同态加密技术,对数据进行加密,同时将多个密文压缩至一个密文,当进行n选1的不经意传输协议时,在保证安全的前提下,能大量减少通信量,平衡计算和通信的关系,提高协议效率。本发明方法可以进行推广至现有的任意不经传输协议中,同态加密与不经意传输协议结合也为其他安全多方计算协议优化通信量提供了思路。
附图说明
33.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
34.图1附图为本发明提供的基于同态加密的不经意传输方法流程示意图;
35.图2附图为本发明提供的基于公钥的传统加密和本发明加密过程示意图;
36.图3附图为本发明提供的基于密文混淆的密钥交换构建的不经意传输协议过程示意图。
具体实施方式
37.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
38.实施例1
39.本发明实施例公开了一种基于同态加密的不经意传输方法,如图1所示,包括以下步骤:
40.s1:发送方利用数字证书公开公钥;
41.s2:接收方确定接收消息位数c,预生成经过加密调整的辅助矩阵并随机生成随机数;将接收消息位数c与辅助矩阵进行映射,获得参数i;利用公钥和同态加密方法对随机数
进行加密,根据接收消息位数c对加密后的密文采用双射函数进行混淆,将参数i、辅助矩阵、混淆结果和加密后的密文发送至发送方;
42.s21:采用公钥对随机数r进行加密获得随机数密文c;
43.s22:采用同态加密方法对随机数r进行加密,获得同态密文δ;
44.s23:采用双射函数根据接收消息位数c对随机数密文c进行混淆获得混淆密文c';
45.s24:将参数i、辅助矩阵、混淆密文c'和同态密文δ发送至发送方;辅助矩阵t可以在协议未开始前发送过去,且该矩阵可以重复使用;
46.s3:发送方对混淆结果进行变换和解密,结合接收方的参数i、密文和辅助矩阵对解密结果进行运算,将运算结果融合消息进行加密获得消息密文,并发送给接收方;
47.s31:发送方对混淆密文c'采用双射函数的逆函数进行变换,获得随机数密文集(r1,r2,...rn);
48.s32:发送方采用自身的私钥对随机数密文集(r1,r2,...rn)进行解密获得n个不可区分的明文c1,c2,...,cn,其中1个为随机数r;
49.s33:令n个明文c1,c2,...,cn分别减去同态密文δ,并加上1,获得作差结果p1,p2,...,pn;
50.s34:计算作差结果p1,p2,...,pn与根据参数i选取的辅助矩阵中的第i列数据的叉乘结果k1,k2...kn;
51.s35:将叉乘结果k1,k2...kn与消息m1,m2,...,mn进行点乘,获得点乘结果m;
52.s36:采用哈希函数对点乘结果m进行加密获得消息密文m',并发送给接收方;
53.s4:接收方对消息密文进行解密和舍入还原操作,获得消息;
54.s41:接收方采用哈希函数对消息密文m'进行解密,获得点乘结果m;
55.s42:对点乘结果m进行同态解密后再进行舍入还原操作,获得消息mc,c的取值为c=1,...,n。
56.进一步的,s4中采用与s3相同的哈希函数对消息密文m'进行解密。
57.进一步的,采用同态加密中的ckks同态加密方案对随机数进行加密。参数选择模多项式的次数为8192,模数链为[60,40,40,60]。
[0058]
进一步的,发送方根据约定规则从同态密文中选用部分同态密文作为密钥,采用哈希函数对点乘结果进行加密;接收方采用相同的部分同态密文对消息密文进行解密。
[0059]
进一步的,对随机数密文的加密或解密采用的双射函数根据效率需求选用不同的双射函数。
[0060]
实施例2
[0061]
如图2所示,图2(a)为基于公钥的传统加密示意图,两个公钥加密一个明文后,获得两个不可区分的密文c0和c1,图2(b)为基于公钥的密文混淆加密示意图,一个公钥加密一个明文后,对得到的密文进行同一域上的变换,同样得到两个不可区分的密文c0和c1,其中enc()表示公钥加密函数,f()表示用于混淆密文的双射函数,m表示明文,c表示密文。
[0062]
本实施例中,基于密文混淆的密钥交换技术,采用数字证书中的公钥构建的不经意传输协议过程如图3所示,图中c'表示使用双射函数混淆后的密文;δ表示同态加密后的同态密文;(r1,r2,...rn),表示使用双射函数的逆函数变换后的密文;(c1,c2,...,cn)表示使用私钥解密后的随机数集;(p1,p2,...,pn)表示上步得到的随机数值减去δ加1得到的值;
(k1,k2...kn)表示辅助矩阵t的某一列与(p1,p2,...,pn)叉乘的结果;m表示两者点乘的结果,m'表示使用哈希函数加密后的结果;enc()表示公钥加密;dec()表示对称解密;t_enc()表示同态加密;t_dec()表示同态解密;f()表示双射函数;c表示密文;表示辅助矩阵t的第i行第j列;h()表示哈希函数;g()表示舍入还原操作。加密调整前的矩阵表示如下:
[0063][0064]
其中,1.x、x分别表示1-e-y
《=1.x《=1+e-y
、-e-y
《=x《=e-y
,即1.x是接近于1的数,x是接近于0的数,具体精度由y确定。
[0065]
辅助矩阵t的生成方式为:首先生成n*n个数据构成矩阵,其次将上述数据进行同态加密,得到加密后的矩阵,接收方再将加密后的矩阵按列进行打乱(每列进行随机交换),即可得到辅助矩阵t。
[0066]
辅助矩阵t满足:当接收方想要第c个消息时,则矩阵元素(矩阵第c行第i列元素)为同态加密后的1.x元素,i为接收方需要发给发送方的数据。
[0067]
由于同态加密的特殊性质,即在密文上的操作等同于在明文的操作。因此解密后(c1,c2,...,cn)与同态密文δ相减后只有一个为0,此时再加1,保证了(p1,p2,...,pn)只有一个为1。而当与矩阵的某一行相乘后,保证(k1,k2...kn)只有一个为1,其他均为0。因此便可以保证点乘后m=mi。
[0068]
假设发送方有n个消息,接收方想要第一个消息,矩阵t已经由接收方传给发送方且矩阵t满足元素t
11
为1.x同态加密后的值。执行过程如下:首先,接收方生成随机数r,并用数字证书中的公钥加密得到c和采用双射函数根据接收消息位数c对c进行混淆后得到c',用同态加密的ckks方法加密r得到同态密文δ;然后,将两个密文(c',δ)和参数i=1发送给发送方,发送方首先使用双射函数函数的逆函数对c'进行变换得到(r1,r2,...rn),然后使用自己的私钥对(r1,r2,...rn)进行解密得到(c1,c2,...,cn),接着利用(c1,c2,...,cn)对同态密文δ做一次减法,并且对结果加1,得到(p1,p2,...,pn),接着选取矩阵t中的第一列,做一次叉乘得到(k1,k2...kn);最后,和消息(m1,m2,...,mn)做点乘的积m(根据上述描述得到m=m1),采用哈希函数进行加密得到m'发送给接收方,接收方按照同样的方法解密即可得到消息m1的近似值,进行舍入处理即可还原消息m1。
[0069]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0070]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的
一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种基于同态加密的不经意传输方法,其特征在于,包括以下步骤:步骤1:发送方利用数字证书公开公钥;步骤2:接收方确定接收消息位数,预生成辅助矩阵,并随机生成随机数;将接收消息位数与辅助矩阵进行映射,获得参数;利用公钥和同态加密方法对随机数进行加密,根据接收消息位数对加密后的密文采用双射函数进行混淆,将参数、辅助矩阵、混淆结果和加密后的密文发送至发送方;步骤3:发送方对混淆结果依次进行变换和解密,结合接收方的参数、密文和辅助矩阵对解密结果进行运算,将运算结果融合消息进行加密获得消息密文,并发送给接收方;步骤4:接收方对消息密文进行解密和舍入还原操作,获得消息。2.根据权利要求1所述的一种基于同态加密的不经意传输方法,其特征在于,步骤2的具体实现过程为:采用公钥对随机数进行加密获得随机数密文;采用同态加密方法对随机数进行加密,获得同态密文;采用双射函数根据接收消息位数对随机数密文进行混淆获得混淆密文;将参数、辅助矩阵、混淆密文和同态密文发送至发送方。3.根据权利要求2所述的一种基于同态加密的不经意传输方法,其特征在于,步骤3的具体实现过程为:发送方对混淆密文采用双射函数的逆函数进行变换,获得随机数密文集;发送方采用自身的私钥对随机数密文集进行解密获得n个不可区分的明文;令n个明文分别减去同态密文,并加上1,获得作差结果;计算作差结果与根据参数选取的辅助矩阵中一列数据的叉乘结果;将叉乘结果与消息进行点乘,获得点乘结果;采用哈希函数对点乘结果进行加密获得消息密文,并发送给接收方。4.根据权利要求3所述的一种基于同态加密的不经意传输方法,其特征在于,步骤4中采用与步骤3相同的哈希函数对消息密文进行解密,具体过程为:接收方采用哈希函数对消息密文进行解密,获得点乘结果;对点乘结果进行同态解密后再进行舍入还原操作,获得消息。5.根据权利要求1所述的一种基于同态加密的不经意传输方法,其特征在于,采用同态加密中的ckks同态加密方案对随机数进行加密。6.根据权利要求4所述的一种基于同态加密的不经意传输方法,其特征在于,发送方根据约定规则从同态密文中选用部分同态密文作为密钥,采用哈希函数对点乘结果进行加密;接收方采用相同的部分同态密文对消息密文进行解密。7.根据权利要求3所述的一种基于同态加密的不经意传输方法,其特征在于,对随机数密文的加密或解密采用的双射函数根据效率需求选用不同的双射函数。8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-7任一项所述方法的步骤。9.一种电子设备,包括存储器、处理器和存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现权利要求1-7任一项所述方法的步骤。
技术总结
本发明公开了一种基于同态加密的不经意传输方法、介质及电子设备,涉及数据通讯技术领域,方法包括:发送方利用数字证书公开公钥;接收方确定参数、预生成辅助矩阵并随机生成随机数;利用公钥和同态加密方法对随机数进行加密,对加密后的密文采用双射函数进行混淆,将参数、辅助矩阵、混淆结果和加密后的密文发送至发送方;发送方对混淆结果依次进行变换和解密,结合接收方的参数、密文和辅助矩阵对解密结果进行运算,将运算结果融合消息进行加密获得消息密文,并发送给接收方;接收方对消息密文进行解密和舍入还原操作,获得消息。本发明基于密文混淆进行密钥交换,同时结合同态加密构建不经意传输协议,减少通信量,提高传输效率和安全性。率和安全性。率和安全性。
技术研发人员:李晓东 朱晓鹏 张健毅 高贺贺 刘家兴 金鑫
受保护的技术使用者:北京电子科技学院
技术研发日:2023.08.21
技术公布日:2023/9/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/