一种支持打包的门限全同态数据封装方法

文档序号:1956603 发布日期:2021-12-10 浏览:15次 >En<

阅读说明:本技术 一种支持打包的门限全同态数据封装方法 (Threshold fully homomorphic data encapsulation method supporting packaging ) 是由 周俊 周恬慧 于 2021-08-25 设计创作,主要内容包括:本发明公开了一种支持打包的门限全同态数据封装方法,其特点在于采用任意的单向陷门置换和任意哈希函数的外包计算,实现对密文计算结果的门限解密,具体包括:系统初始化、密钥生成、数据打包、数据加密、数据外包计算和数据解密等步骤。本发明与现有技术相比具有支持门限解密,即不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果,保证用户数据隐私和计算结果隐私可达到适应性选择密文安全(CCA),方法简单、易行,更具灵活性,不但满足了多用户多数据安全外包计算的高效性和隐私性需求,而且还节省了计算开销与通信开销,较好的解决了私钥仅由单个授权接收方秘密保存容易成为敌手攻击目标导致单点失败的问题。(The invention discloses a packing-supporting threshold fully homomorphic data encapsulation method, which is characterized in that random one-way trapdoor replacement and outsourcing calculation of random hash functions are adopted to realize threshold decryption of ciphertext calculation results, and the method specifically comprises the following steps: the method comprises the steps of system initialization, key generation, data packaging, data encryption, data outsourcing calculation, data decryption and the like. Compared with the prior art, the method supports threshold decryption, namely, at least a threshold number of authorized receivers can jointly recover the original plaintext calculation result after partial decryption, the user data privacy and the calculation result privacy can be ensured to achieve adaptive selection ciphertext security (CCA), the method is simple and feasible, and has higher flexibility, the requirements of high efficiency and privacy of multi-user multi-data security outsourcing calculation are met, the calculation cost and the communication cost are saved, and the problem that a private key is stored only in a single authorized receiver secret and is easy to become a hostile attack target to cause single-point failure is solved.)

一种支持打包的门限全同态数据封装方法

技术领域

本发明涉及安全外包计算及同态加密技术领域,尤其是一种支持打包的门限全同态数据封装方法。

背景技术

随着计算机应用的蓬勃发展,越来越多的有价值的数据从各个终端产生,而受设备本身存储、计算能力的限制,无法在本地通过有效的处理发挥数据的价值。越来越多的数据拥有者将数据外包给资源丰富的云服务器来存储与处理。然而在现实应用中,云服务器往往工作在不可信的环境中。出于商业利益等目的,半可信的云服务器虽然通常会诚实地进行数据处理,并将正确的结果返回给外包计算结果接收方,但同时尝试在数据处理过程中或与用户交互过程中窥探用户的隐私数据,恶意云服务器则会通过任意行为来破坏外包计算协议的正确执行。另一方面,即使云服务器本身没有恶意行为,公开在网络上的服务器仍易遭受到黑客的渗透,每年因服务器被攻击或出现漏洞导致的用户隐私数据泄露不计其数。因此,如何在保护用户数据隐私的前提下实现高效正确的密文域数据处理和外包计算成为了当前云计算安全领域的研究热点之一。

为了防止用户数据隐私泄露,保障信息安全,最直接的方法就是在将数据外包给云服务器之前,通过各种加密方法来保护数据的机密性,以往工作主要通过公钥全同态实现安全外包计算。公钥全同态加密由于其具有对密文执行的计算操作保持对相应明文执行相同计算操作的性质,可实现在密文域上的各类安全外包计算功能,从而在云计算领域得到广泛应用。具体地说,数据拥有者使用外包计算结果接收方的公钥,利用公钥全同态加密对本地用于外包计算的每一个输入数据加密后发送给云服务器,云服务器在密文域上进行各类外包函数计算并将密文计算结果发送给接收方,接收方用其私钥解密明文计算结果。

安全外包计算需要满足以下两点基本隐私保护需求:1)输入隐私:即数据拥有者的输入数据隐私能抵抗半可信或恶意云服务器攻击;2)计算结果隐私:即外包计算结果只能由授权的接收方解密得到。

现有技术的安全外包计算工作尚存在以下不足与缺陷:1)公钥全同态加密虽然在功能上可实现密文域上的函数计算,用户本地的公钥加密算法使用次数复杂度为O(n),其中n是每个输入数据集的大小,计算复杂度和通信复杂度过高,无法满足存储、计算资源受限的本地设备的客观性能需求;2)基于公钥全同态加密实现的安全外包计算协议,无法实现基于多个输入数据集的密态函数计算的轻量级打包处理,服务器端的密态函数计算次数复杂度为O(nd),其中nd为数据集的个数,计算、通信效率有待进一步提高;3)公钥全同态加密方案的私钥通常由单个授权接收方秘密保存,容易招致单点失败与安全威胁,成为敌手攻击的目标。因此,不依赖传统的公钥全同态加密,寻求一种支持打包的门限全同态数据封装新方法是一项亟待解决的挑战性公开研究问题。

发明内容

本发明的目的是针对现有安全外包计算的不足而设计的一种支持打包的门限全同态数据封装方法,采用任意的单向陷门置换和任意哈希函数的数据封装方法,可以在用户具有多个输入数据的单云服务器模型场景下,通过打包技术,在密文域上实现由加法、乘法组成的各类复杂外包函数的打包批量密态计算,随后将批量处理后的输入数据进行加密,使得云服务器在密文域上执行一次外包函数计算就能让授权的接收方获得多个输入数据集对应的多个函数计算结果,从而大大降低外包计算的计算开销和通信开销,同时实现了对密文计算结果的门限解密,即不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果,保证用户数据隐私和计算结果隐私可达到适应性选择密文安全(CCA),方法简单、易行,更具灵活性,不但满足了多用户多数据安全外包计算的高效性和隐私性需求,而且还节省了计算开销与通信开销,较好的解决了私钥仅由单个授权接收方秘密保存容易成为敌手攻击目标导致单点失败的问题。

本发明的目的是这样实现的:一种支持打包的门限全同态数据封装方法,其特点是采用任意的单向陷门置换和任意哈希函数的外包计算方法,实现对密文计算结果的门限解密,外包计算及解密具体包括下述步骤:

(一)系统初始化阶段

系统在给定安全参数λ下,将陷门置换发生器生成的一对单向陷门置换及逆置换和n对陷门置换的公私钥分别发送给n个数据接收方,生成一个哈希函数,并将安全参数、一个哈希函数以及n个公钥作为公开参数PPR和n个私钥作为私钥SK分别由n个数据接收方保存。

(二)密钥生成阶段

算法输入公开参数PPR,生成一对数据拥有者的公私钥pbk以及pvk。

(三)数据打包阶段

输入一串消息分片m=(m1,…,mnum),其中ms=(m1,s,…,mJ,s),算法将{mj,1,…,mj,num}进行打包得到xj,其中j=1,2…,J,输出打包后的数据x=(x1,…,xJ)。

(四)数据加密阶段

数据拥有者运行一个多项式时间的加密算法,输入公开参数PPR、公私钥(pbk,pvk),以及打包后的数据x和输出加密数据Cx

(五)数据外包计算阶段

云服务器接收所有数据拥有者发送的加密数据Cx,输入外包函数F(x),数据拥有者的公钥pbk,在密文域上对数据进行以加法、乘法为基础的任意计算,并将密文计算结果CF(x)发给送接收方。

(六)数据解密阶段

接收方利用单向陷门置换的私钥SK解密Cu进行验证,验证通过后使用私钥对密文上的外包计算结果进行初步解密,达到阈值t的多个接收方,共同对计算结果进行解密,得到解包结果F(ms)(s=1,..,num)。

所述系统初始化阶段的具体操作如下:

a)输入1λ,其中λ是安全参数;

b)系统(可信第三方)运行概率多项式时间算法输出一组在{0,1}λ上的函数(f,f-1)、n对公私钥(pkf,i,skf,i)每个数据接收者Ri(i=1,2,…,n)和三个哈希函数H0,H1,H2,其映射范围为{0,1}*→{0,1}λ,生成公共参数PPR=(λ,H0,pkf,i(i=1,2,…,n)),秘密参数SK=(skf,i(i=1,2,…,n))由数据接收方Ri保管。

所述密钥生成阶段的具体操作如下:

a)系统选择n*k个俩俩互质的正整数pi,k且有相同长度其中K=degF,i=1,2,…,n;k=1,2,…,K,degF表示函数F的度数,且pi,k满足 使得p0<p1<…<pn且p0·pn-t+2·...·pn<p1·p2·...·pt。其中p0中随机选取的正整数;

b)t-门限范围为(a,b],其中

c)系统随机选取n*k个俩俩互质的正整数ui(i∈{1,2,…,n}),且有相同长度|ui|=λ,并满足gcd(ui,pi)=1;

d)系统计算为秘密参数,随机选取大质数δ满足|δ|=λ,计算M′=δ·M并公开,公钥为pbk=(p0,p1,…,pn,p1,1,…,pn,K,M′),私钥为pvk=(u1,…,un,M)发给数据拥有者。

所述数据打包阶段的具体操作如下:

a)数据拥有者选择一个长度为的正整数p,且满足gcd(p,pi)=1,(i=1,…,n);

b)有俩俩互质的整数γ12,…,γnum,根据中国剩余定理得知同构,其中且满足Γ<p,对于任意数据分片mj,1,mj,2,…,mj,num,数据拥有者计算下述I式:

其中:δs=Γ/γs,且消息mj,s(j∈{1,…,J}),空间大小为

所述数据加密阶段的具体操作如下:

a)数据拥有者随机选取长度为的正整数rj,并由下述II式定义:

其中:j=1,2,…,J i=1,2,…,n k=1,2,…,K;

b)数据拥有者按下述III式计算:

其中:i=1,2,…,n;r0为随机选取的正整数,且满足p+r0·p0∈(a,b];

c)数据拥有者随机选取r′∈{0,1}λ,rj,k∈{0,1}λ,并由下述IV~VI式计算密文:

其中:j=1,2,…,J i=1,2,…,n k=1,2,…,K,令vi=M/ui以及

d)数据拥有者计算Cram1=H0(Cx),并发送 给云服务器。

所述数据外包计算阶段在密文域上对数据进行以加法、乘法为基础的任意计算,其具体操作如下:

a)云服务器按下述VII式进行多项式计算:

其中:k=1,2,…,K,云服务器计算Cram1′=H0(Cx),

b)云服务器发送给数据接收者Ri(i=1,2,…,n),同时广播(CF(x)=(CF(x),1,…,CF(x),K),Cram1′,Cp)。

所述数据解密阶段的具体操作如下:

a)数据接收者Ri先计算H0(Cx),验证Cram1′=H0(Cx)是否成立,如不成立算法输出⊥,并使用其私钥skf,i计算然后验证 如不成立算法输出⊥,然后验证如不成立算法输出⊥;

b)验证成功后,数据接收者Ri按下述VIII式进行计算:

其中:x+r·p=(x1+r1p,x2+r2p,…,xJ+rJp);qi,k=pi/pi,k因为故数据接收者Ri可以成功获取

c)授权集合中的子集即t个数据接收者按下述步骤重构F(x+r·p):

c1:每一个在中的数据接收者Ri按下述IX式计算数据并共享:

其中:

c2:t个数据接收者对共享数据由下述X式进行加和:

由于且F(x+r·p)∈(a,b],故授权集合中的子集t个数据接收者可以成功重构F(x+r·p);

d)数据接收者由下述XI~XIII式计算打包结果:

p=p+r0·p0modp0 (XI);

F(x)=F(x+r·p)modp (XII);

F(ms)=F(x)modγs (XIII);

其中:s=1,2,…,num。

本发明在单云服务器模型下设计一种支持打包的门限全同态数据封装方法,该方法采用了任意的单向陷门置换和任意哈希函数对数据封装,可以在用户具有多个输入数据的场景下,通过打包技术,在密文域上实现由加法、乘法组成的各类复杂外包函数批量计算,同时实现了对密文计算结果的门限解密,保证用户数据隐私和计算结果隐私可达到适应性选择密文安全(CCA)。其中,单向陷门置换可以根据不同的网络应用场景的安全性需求,由各种特定的公钥加密算法进行实现,比如RSA加密、基于身份的加密(IBE)、基于属性的加密(ABE)、代理重加密等;哈希函数可以根据输入和输出长度需求,采用不同的哈希摘要算法,比如MD5,SHA1,SHA3,SHA256算法等。

所述打包计算是指针对同一个外包函数,将多个待计算的输入数据集提前进行批量处理,随后将批量处理后的输入数据进行加密,使得云服务器在密文域上执行一次外包函数计算就能让授权的接收方获得多个输入数据集对应的多个函数计算结果,从而大大降低外包计算的计算开销和通信开销。

所述门限解密采用私钥分散管理技术,即每一个授权接收方都拥有部分私钥,可对密文计算结果进行部分解密,当有不少于门限个授权接收方合作解密时才能正确解密得到明文计算结果,较好解决了因私钥仅由单个授权接收方保存可能会招致单点失败的安全威胁,任意的单向陷门置换以及任意的哈希函数使得本发明更具灵活性,满足了各种高效性和隐私性需求。

本发明与现有技术相比具有以下优点和显著的技术效果:

1)高效性:公钥全同态加密虽然在功能上可实现密文域上的函数计算,用户本地的公钥加密算法使用次数复杂度为O(n),其中n是输入数据的个数;仅需基于常数次(与用户数据集中的数据大小无关)任意单向陷门置换运算加密随机数作为对称密钥,之后利用带密钥的对称全同态映射对输入数据本身进行加密。由于对称加密的算法复杂度比公钥加密快3到5个数量级,所以这部分的计算复杂度可以忽略不计。因此,在单服务器模型下轻量级单用户多数据的全同态数据封装方法中计算复杂度降低到O(1),即与输入数据的个数n无关。

2)批量密态处理:现有的基于公钥全同态加密实现的安全外包计算协议,无法实现基于多个输入数据集的密态函数计算的轻量级打包处理,服务器端的密态函数计算次数复杂度为O(nd),其中nd为数据集的个数,计算、通信效率有待进一步提高。本发明中的打包计算是对批量数据先进行打包,随后再加行外包计算统一处理,降低计算开销和通信开销。

3)门限解密:利用公钥全同态加密实现的外包计算协议的私钥仅由单个接收者保存,这样会招致的单点失败威胁,本发明采用门限秘密共享,将私钥分散管理,即不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果。

4)节省计算开销与通信开销,支持门限解密,即不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果,较好解决了私钥仅由单个授权接收方秘密保存容易成为敌手攻击目标导致单点失败的问题,保证用户数据隐私和计算结果隐私可达到适应性选择密文安全(CCA)。

附图说明

图1为本发明系统示意图;

图2为本发明流程图。

具体实施方式

本发明所应用的数学理论说明如下:

1、哈希函数

哈希函数将可变长度的消息映射为固定长度的Hash值或消息摘要,哈希算法的方式很多,现在普遍在采用的方法有MD2、MD4、MD5和安全哈希算法(SHA-1)。对于输入输出都是比特串的Hash函数(由0和1组成的串),把比特串x的长度记为|x|,并且把比特串x和y记为x||y。设compress:{0,1}m+t→{0,1}m是一个压缩函数(这里t≥1)。将基于压缩函数compress构造一个迭代Hash函数

所述迭代Hash函数h的求值主要由下列三步组成:

a、预处理:给定一个输入比特串x,其中|x|≥m+t+1,用一个公开的算法构造一个串y,使得|y|≡0(mod t)。记为y=y1||y2||…||yr其中对1≤i≤r,有|yi|=t。

b、处理:设IV是一个长度为m的公开的初始值比特串。则计算:

z0←IV,

z1←compress(z0||y1),

z2←compress(z1||y2),

zr←compress(zr-1||yr),

c、输出变换:设g:{0,1}m→{0,1}l是一个公开函数。定义哈希函数h(x)=g(zr)。

2、安全外包协议

安全外包协议由密钥生成算法、加密算法、外包算法和解密算法组成,所述密钥生成算法:输入安全参数1n,输出一对公私钥(pk,sk),其中pk是公钥,sk是私钥;所述加密算法:输入公钥pk、消息m,输出密文c←Encpk(m);所述外包算法:输入密文c,外包函数F(x),输出密文计算结果F(c);所述解密算法:输入私钥sk、密文计算结果F(c),输出F(m)=Decsk(F(c))。

安全外包协议的正确性要求,除了可忽略的概率,对由密钥生成算法Gen(1n),得到的一对公私钥(pk,sk),且有Decsk(F(Encpk(m)))=F(m)成立。

3、基于门限的中国剩余定理

设秘密为d,总授权接收者个数k,门限为t:

1)设m0<m1<m2,…<mk是两两互素的正整数,其中m0为质数且m0>d,需满足

2)令计算y=d+Am0,其中A是随机正整数使满足0≤y<M;

3)对于数据接收者i,1≤i≤k,计算yi=y mod mi

4)解密时,假设为由t个授权接收者个数组成的授权集合,

5)通过y≡yi mod mi,因为通过中国剩余定理可以得到y在

6)计算秘密d=y mod m0

下面以具体实施对本发明作进一步详细描述和说明:

实施例1

参阅附图1,本发明的网络结构主要由数据拥有者、云服务器和n个数据接收方三个实体组成。数据拥有者对一系列数据输入数据集进行打包并加密,并将加密后的打包数据集上传到云服务器;云服务器收到加密的打包数据集后,在密文域上进行函数计算,并将加密的函数计算结果返回给接收者;即不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果。计算打包结果说明如下:

a)F(x+r·p)的长度为degF·|xj+rj·p|≈degF·(|p|+|r|),需保证F(x+r·p)∈(a,b](|a|=(t-1)λ,|b|=tλ)用以保证正确性和门限解密的安全性,故令以及

b)将pi分成K片是为了保证xj+rj·p(j∈{1,2,…,J})大于切片后的pi即pi,k,即使是运算之后也要保证,为了安全性需要满足

c)将|ui|设置为λ是为了保证以保证正确的解密。

d)令ui(i∈{1,2,…,n})作为私钥的一部分是为了解决pi在Asmuth-Bloom门限共享无法保密,故利用ui隐藏在用于门限解密的CF(x),k中,同时使得只需一次性离线生成用于加密数据的参数pi,k,ui(i∈{1,2,…,n},k∈{1,2,…,K})。

e)所以数据ms计算后的结果F(ms)以及中间计算结果都需要在中,其中:γs可以根据需要灵活选取;约束消息的范围为[-RM,RM],其中:|RM|<<|γs|/2,[0,RM]表示非负消息;[-RM,0)表示负数消息,当s=1,2,…,num。

参阅附图2,本发明具体实现过程具体包括以下几个步骤:

(一)系统初始化阶段

系统在给定安全参数λ下,执行陷门置换发生器来生成一对单向陷门置换及逆置换,n对陷门置换的公私钥分别发送给n个数据接收方,并生成一个哈希函数。将安全参数、一个哈希函数以及n个公钥作为公开参数PPR,n个私钥作为私钥SK分别由n个数据接收方保存。

(二)密钥生成阶段

算法输入公开参数PPR,生成一对数据拥有者的公私钥pbk以及pvk。

(三)数据打包阶段

输入一串消息分片m=(m1,…,mnum),其中ms=(m1,s,…,mJ,s),算法将{mj,1,…,mj,num}进行打包得到xj,其中j=1,2…,J,输出打包后的数据x=(x1,…,xJ)。

(四)数据加密阶段

数据拥有者运行一个多项式时间的加密算法,输入公开参数PPR、公私钥(pbk,pvk),以及打包后的数据x,输出加密数据Cx

(五)数据外包计算阶段

云服务器接收所有数据拥有者发送的加密数据Cx,输入外包函数F(x),数据拥有者的公钥pbk,在密文域上对数据进行以加法、乘法为基础的任意计算,并将密文计算结果CF(x)发给送接收方。

(六)数据解密阶段

接收方利用单向陷门置换的私钥SK解密Cu进行验证,验证通过后,随后使用私钥对密文上的外包计算结果进行初步解密,达到阈值t的多个接收方可以共同对计算结果进行解密,得到解包结果:F(ms)(s=1,..,num)。

所述步骤(一)中生成公开参数,详见下述表1::

表1参数列表

所述步骤(一)中生成公开参数,单向陷门置换以及其公私钥的具体流程如下:

a)输入1λ,其中λ是安全参数,取λ=256;

b)系统(可信第三方)运行概率多项式时间算法输出一组在{0,1}λ上的函数(f,f-1),n对公私钥(pkf,i,skf,i)每个数据接收者Ri(i=1,2,…,n),一个哈希函数H0,H1,H2,其映射范围为{0,1}*→{0,1}λ,这样生成的公共参数是PPR=(λ,H1,pkf,i(i=1,2,…,n)),秘密参数是SK=(skf,i(i=1,2,…,n))由数据接收方Ri保管。

本实施例中选取n=3,使用RSA作为单向陷门置换,对于每对公私钥都有:

pf,i=74324100347943252710695482862483533547896841658076900301772805481586078979928296915465558921376509165593601728486671,75660689516729124159156690821561460936131426405118252672033973762690162036952612703358689777186220016975724898918667,72116657516974849497880750614492578468790429004108277512228890907801415933530728079997625279894571696077423800821427(i=1,2,3);

qf,i=4740277685501663040583122883086464673522734944799775895802651819330449220948525418710730815264657047241081328023949,52560598080817499149253773668396968457346627755391938436342441976974075816826724972177716464078563350449479594021743,63678375469622746749739267249073045342038356060442893939451710969525512625696068819258376470469736214612198815273537(i=1,2,3);

nf,i=3523168743743417906399799118233667359166198875401195681949486449547748809792153903112224790340740200114347195372252267746052420747791835744072086896985296661604838089863481130528398416087328189766836120275766556734000242774615283779,3976771092206321480471732749010647285985441798802545541003048704425785534442851525128599798550108744508124411686221023124957210950116360054916542861387048181894560428371917043980549127159325602526317367021231774305206668658386576581,4592271594980116121426572540271697358189914785321724061192190464806655893154163056171325381754767972036577271248412719441391875833761219872112927496730569857080245761039290047179749018450867123785714659151697666202981910214295677299(i=1,2,3);

ef,i=13280284913428703671320991476166379400835990844634328972169652780701342603249714931475428908089825584159019737403479,103250324288514912707928706575760310980708852962607553770865821626245416170019942621345633457123532639947139952127909,90082775257906083342177073190273527682254241284233784997910565529170216183262484318514860701696263451231356377168631(i=1,2,3);

df,i=2596523902785718671482483471232584846151220147632096749721778378640338002890821134076344375873852857046285128239879710091487685172176140155869568080714113966616676358609766313949711885000028501513283268434528567110332477361272600759,2367350475133490480382288837985799867027920593289931225550264840061277168321068212877869068858025382813596756526669324364900832610741790112777814822924163687711536310087539215004707406165414245525536688982353314663450314768991928281,1899482457247244693234010844028864765503174121774483455115177906153637175750716972237504660033517601482583740552094855447903134630465638043039028603401705620719383329142467079850995393017164181318550628244271160378134790639647528903(i=1,2,3);

其中:pkf,i=nf,i,ef,i,skf,i=df,i,(i=1,2,…,n)。

所述步骤(二)中生成数据加密密钥的具体过程如下:

a)系统选择n*k个俩俩互质的正整数pi,k且有相同长度其中K=degF,i=1,2,…,n;k=1,2,…,K,degF表示函数F的度数。pi,k需要满足 使得p0<p1<…<pn且p0·pn-t+2·...·pn<p1·p2·...·pt。其中p0是一个从中随机选取的正整数。

选取合适的pi,k=283912124662169778333979324740542589329,293317262184025421253057413426518827313,173893723214635797477562664582122369717,194971169899877415436286717767446320339,233703587443578522523120960288876615541,225301691646704381732954854601087891249(i=1,2,3k=2)。

得到

p0=60657859520204083490096513678703458642563848510629203322392150922574086714816,其中p0是一个从中随机选取的正整数。

b)定义以及t-门限范围可以写成(a,b]:

a=71532306495612015885302378606502189915108731281255769741379845387762811976327;

b=438481620435059634839916617750169631547531560527794991789802618382749553580036465206396919147109604882042799619304970431085313183282293786718073462807069349917898026183827495535800364652063969191471096048820427996193049704310853131832822937867180734628070693。

系统随机选取n*k个俩俩互质的正整数ui(i∈{1,2,…,n})且有相同长度|ui|=λ满足gcd(ui,pi)=1。

ui=977489143050732278534002740987040765037902483949519901734612235795777809780384879544154308613388910999323046466931735671145806661672893386224103085409089178723536975362619250564520409351749382007389709389703660921139065150425048649,1175193137521548122408296083512212211904960239411455613680118431720007701290801078654079676584804020091920851013206728743954889330775518467859298004212087284792040210671060168857166442222093873303147430508094463233700368198974485167,1458695400635580730416507402582079434595741865277459348109994533175115094410553352659184275621912463696093186521041389732238775679680316269604407130720546963948952878586887056550966365897097254853331011607055208171095151053977998173(i=1,2,3)。

c)系统随机选取n*k个俩俩互质的正整数ui(i∈{1,2,…,n}),且有相同长度|ui|=λ,并满足gcd(ui,pi)=1。

d)系统计算作为秘密参数,随机选取大质数δ满足|δ|=λ,计算M′=δ·M并公开。公钥为pbk=(p0,p1,…,pn,p1,1,…,pn,K,M′),私钥为pvk=(u1,…,un,M)发给数据拥有者。

M=1675659614496032703282958143082570746103974685702492314221614371662508965629575568153189749114163922532427597269914517988072197431604190760186176493576234188088034639387366923115767863677736515049599363772844028145343160090735289978719308610269722956458502849596239896291707981548376351565360086538334981773000681729044074528542862919133340155174575003410275176614298503506327099822158536742618132318750401974273568469579040143765360048725101790033816450818556435397831464192123219036882399275027230468204425867012058149265751434846410339165896915373382301536486172222393261472420609934193632444039270937743020694143488554923635956415042756081012203114554264374915266658013482475643644568097259;

δ=78550320097340051829482269621934919213248081778646887633133811344258406847359;

M′=δ·M=131623599092848801296955515466958456795473091669720086566640732527814838510060004367043625213894600988875103539364593116384323366215061056209691602267368080764159611859063611576441750753698499641534264041078156237775334054718996243732315895636387708104600858894532419155883495231499529877278960026799828207279636358171603923440134172811418314537504469446936427416073226343137938022651467368783821767027118201605671223630095929527551603690224444853056960593950559839774749168636002647806657112924921156836712914387241012645162297653219074055534832191186529235132463299185900980278635160358686599523536149704687250378028984107538300713407647046049659486161871583719165218992026299929548108817636772217726038333923278226999392394625307795838640553261009446692853887479288981。

所述步骤(三)中打包数据的具体过程如下:

a)数据拥有者选择一个长度为的正整数p,满足gcd(p,pi)=1,(i=1,…,n),p=3601250833。

b)有俩俩互质的整数γ12,…,γnum,根据中国剩余定理可以得知同构,其中满足Γ<p,对于任意数据分片mj,1,mj,2,…,mj,num,数据拥有者按下述I式计算xj

其中:δs=Γ/γs消息mj,s(j∈{1,…,J})空间大小为

γs=1140429249334487927,968416727201777767,1130173449380711509(s=1,2,3);

mj,s=[[83139,81712,38061],[73111,14700,37022],[93254,17963,36638]](j=1,2,3s=1,2,3);

δs=1094478873019612691415738544157220403,1288882858495013715528320367430451843,1104410761245684993838554138998519009(s=1,2,3);

所述步骤(四)中数据加密的具体过程如下:

a)数据拥有者随机选取长度为的正整数rj,并由下述II式定义:

其中:j=1,2,…,J i=1,2,…,n k=1,2,…,K。

rj=1577834100,2048897574,1753846754(j=1,2,3);

b)数据拥有者按下述III式计算

其中:i=1,2,…,n;r0是一个随机选取的正整数满足p+r0·p0∈(a,b]。

r0=5976448343483231324914794;

c)数据拥有者随机选取r′∈{0,1}λ,rj,k∈{0,1}λ,并由下述IV~VI式计算密文:

其中:j=1,2,…,J;i=1,2,…,n;k=1,2,…,K;令vi=M/ui以及

vi=1714248824561179759762031006469058464656019570663845453384721732544760280705205448189693923894674250249721694059090584082424310001015691728575826892294464965788392997484784631013041424338371865176371758119020703138087769651968026116909117773164617889625829615632056133012414310979903160920258029343564584188164524355420088823865493084295854120855936588810949534443656886205457445998816611351819123842858723968010294101122023815135500645331467468797277817941599891,1425858917139318404843458854514635798751997802621789518873394146129319039861221749361153541310158019783543160868201924259271338761211437987217185193815197444100777825703490288517621279917940600980113198352502009939027641651341536100100679028471759292556942096592065238301230827710903954773033223379999018783715099384222658229276051216416304347680902671003611389579249534213612451191799470084727286762340539844963336311156997683695933152281360551572245149158118277,1148738532915039443790136201724671491398614057286220690180507158622870892693491417258051521643087081353964087232720259749703554943036750954921565956143455382316665503218926419089660138510506298580730458824362746286595063229052408294941168777427980076372261750551446194124804958957678653784884298350665607614096255868405775870001463825660068352045229747621088446827383015256065848130113493896189844552033600847722406001564522064001592371622188206698298155703889383(i=1,2,3);

d)数据拥有者计算 并发送给云服务器。

Cram1=H0(Cx)=3154926106108804467;

所述步骤(五)中数据在密文上执行任意多项式计算的具体过程如下:

a)云服务器按下述VII式进行多项式计算:

其中:k=1,2,…,K,云服务器计算Cram1′=H0(Cx),

b)云服务器发送给数据接收者Ri(i=1,2,…,n),同时广播(CF(x)=(CF(x),1,…,CF(x),K),Cram1′,Cp)。

先输入函数

计算Cram1′=H0(Cx)=3154926106108804467;

所述步骤(六)涉及的解密算法具体过程如下:

a)数据接收者Ri先计算H0(Cx),验证Cram1′=H0(Cx)是否成立,不成立算法输出⊥。再使用其私钥skf,i计算然后验证 是否成立,不成立算法输出⊥。最后计算验证 不成立算法输出⊥。

计算H0(Cx)=3154926106108804467=Cram1′,验证通过,接着使用私钥计算:

H1(ui||Cp||H0(Cx))=876224801969811438,776246014327526566,2053356420890887594(i=1,2,3)与相等,验证通过。

相等,验证通过,全部验证通过进行下一步。

b)验证成功后,数据接收者Ri按下述VIII式进行计算:

其中:x+r·p=(x1+r1p,x2+r2p,…,xJ+rJp);qi,k=pi/pi,k因为故数据接收者Ri可以成功获取

CF(x),kmod ui=[77824022073904233831513453531540402050370084342607909440389275320925387135438683291958823967655577204943652969722150,57735426031408054667284302977888995329896798738598784067769203055785673316340206894150089396389851773718609590345804],[91869311820341675937767994222835828491002188584921484281017596526537646043411532705597940298208607692241444806223827,40047775758810573273398852490573359537004175437884819967961908265737106271674558122943178189768787076906143215039088],[25549719939305988231342399554394559926721391410380511696465712157182325640367600771797064513052993086156745129089208,25301259457377555572910928674206202012270844113316833214934543844678135895307699901935202842567473469108463488454716](i=1,2,3 k=1,2);

qi,k=283912124662169778333979324740542589329,225301691646704381732954854601087891249,293317262184025421253057413426518827313,233703587443578522523120960288876615541,296603411410985471023054908818640140939,241171556845292011823412842484139871093(i=1,2,3,k=1,2);

c)授权集合中的子集即t个数据接收者按下述步骤重构F(x+r·p):

c1:每一个在中的数据接收者Ri按下述IX式计算数据并共享:

其中:

c2:随后t个数据接收者对共享数据由下述X式进行加和:

由于且F(x+r·p)∈(a,b],故授权集合中的子集t个数据接收者可以成功重构F(x+r·p),门限t为2,不妨取(i=1,2)。

d)数据接收者由下述XI~XIII式计算获得打包结果:

p=p+r0·p0modp0 (XI);

F(x)=F(x+r·p)modp (XII);

F(ms)=F(x)modγs (XIII);

其中:s=1,2,…,num。

p=p+r0·

p0mod p0=72116657516974849497880750614492578468790429004108277512228890907801415933530728079997625279894571696077423800821427;

F(x)=F(x+r·p)mod p=31543128264385662550808674588087201355334722281461817921513314908107045633091533564166266464139324301581460055795172;

F(ms)=F(x)modγs

F(m1)=F(x)modγ1=146237410195659648;

F(m2)=F(x)modγ2=14478101370028800;

F(m3)=F(x)modγ3=22198474607358588。

经验算与明文上的计算结果一致,一种支持打包的门限全同态数据封装方法验证正确。上述实例仅描述了对于1个数据拥有者,3个数据集,每个数据集中有3个数据片进行多元多项式外包计算。由上例容易发现,该方法支持任意大小和数量的输入数据集,并且在任意多元多项式上的密文外包计算得到计算结果,不少于门限个授权接收方可通过部分解密后联合恢复原始明文计算结果。上述打包结果说明如下:

a)F(x+r·p)的长度为degF·|xj+rj·p|≈degF·(|p|+|r|),需保证F(x+r·p)∈(a,b](|a|=(t-1)λ,|b|=tλ)用以保证正确性和门限解密的安全性,故令以及

b)将pi分成K片是为了保证xj+rj·p(j∈{1,2,…,J})大于切片后的pi即pi,k,即使是运算之后也要保证,为了安全性需要满足

c)将|ui|设置为λ是为了保证以保证正确的解密。

d)令ui(i∈{1,2,…,n})作为私钥的一部分是为了解决pi在Asmuth-Bloom门限共享无法保密,故利用ui隐藏在用于门限解密的CF(x),k中,同时使得只需一次性离线生成用于加密数据的参数pi,8,ui(i∈{1,2,…,n},k∈{1,2,…,K})。

d)所以数据ms计算后的结果F(ms)以及中间计算结果都需要在中,其中:γs可以根据需要灵活选取;约束消息的范围为[-RM,RM],其中:|RM|<<|γs|/2,[0,RM]表示非负消息;[-RM,0)表示负数消息,当s=1,2,…,num。

本发明的保护内容不局限于以上实施例,在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以权利要求书为保护范围。

31页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于传感器网络的云平台隐私保护可验证数据聚合方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!