基于格的多用单向代理重加密

基于格的多用单向代理重加密

摘要

代理重加密(PRE)是一种密码学原语,允许代理将爱丽丝的密文转换为同一明文上的鲍勃的密文。目前,已经提出了许多具有不同属性的PRE方案。然而,除了基于格的双向代理重加密方案外,其余方案均基于离散对数假设和大整数分解假设。在本文中,我们构造了首个基于格的多用单向代理重加密方案。此外,PRE密钥的生成无需两个用户之间的交互,且该方案能够抵抗共谋攻击。更重要的是,该方案在标准模型下被证明是基于带误差学习假设的选择明文攻击安全。最后,从基本构造中得到了一个基于身份的代理重加密方案。版权所有 © 2015 John Wiley & Sons, Ltd。

关键词
代理重加密;格密码学;选择明文攻击安全;LWE问题

1. 引言

代理重加密(PRE)由Blaze et al.[1]提出。在一个 PRE方案中,涉及三方,即委托人、代理和被委托人。代理在掌握某些信息的情况下,可将委托人的密文转换为被委托人的密文,但代理无法获得任何明文信息。这一特性使得PRE在许多场景中具有广泛的应用,例如车载自组织网络 [2],分布式文件系统[2],外包加密垃圾邮件过滤[2],加密电子邮件转发 [1],以及执法 [3]。自从Blaze et al. 构造出第一个PRE方案以来,已有大量具备不同属性的PRE方案被提出。PRE方案可通过三种方式进行分类。第一是转换次数,可分为两类:多用途和单次使用。如果密文可被重新加密多次,则该PRE方案为多用途;否则为单次使用。第二是方向性。如果代理能将委托人的密文转换为被委托人的密文,但反过来不行,则该PRE方案为单向;否则为双向。第三是依据安全性。它们可以分为选择明文攻击(CPA)安全和选择密文攻击(CCA)安全。

1.1. 相关工作

首个PRE方案由Blaze et al. [1] 构造。该方案具有多用途和双向性,且是CPA安全的。然而,它无法抵御共谋攻击。Ateniese et al. [2] 利用双陷门技术提出了首个抗共谋攻击的方案。该方案是单向且单次使用的,也是 CPA安全的。Canetti et al. [4] 引入了PRE的CCA安全模型,并提出了首个CCA安全的PRE方案。该方案是多用途且双向的。随后,Libert et al.[5] 提出了首个在标准模型下实现单向CCA安全的PRE方案。Seo et al. [6] 发现其在重加密预言机模拟过程中存在一个小错误,并在不修改原方案的前提下修正了该证明。对于基于身份的代理重加密,Green et al. [7] 提出了首个单向基于身份的PRE方案,而Chu et al.[8]提出了一种可重放的、 CCA安全的多用途基于身份的PRE方案。Wang et al. [9] 提出了首个CCA在随机预言模型下的安全的多用单向基于身份的PRE 方案。Shao et al. [10]提出了一个在标准模型下 CCA安全的单向基于身份的方案,能够抵抗共谋攻击。Wang et al. [11]给出了一个更高效的、无需随机预言机的CCA安全单用途单向PRE方案。然而,所有这些方案都涉及昂贵的配对运算。最近,Shao et al. [12],、 Weng et al. [13]以及Matsuda et al. [14]提出了无需双线性配对的CCA安全PRE方案。但这些方案仍然基于离散对数假设。然而,这些方案在量子环境下将不再安全。肖尔[15]证明了离散对数问题和大整数分解问题可以在多项式时间内被解决。因此,有必要构建一种在量子环境下安全的PRE方案。

作为一种重要的后量子密码学,格密码学近年来吸引了越来越多密码学家的关注。格密码学具有若干优良的密码学特性:首先,它是一种线性密码体制,其大部分操作都是在小整数上的线性运算,因此具有较低的计算复杂度;其次,已证明其最坏情况安全性等价于平均情况安全性;第三,它在量子设定下是安全的。目前,许多密码原语已在格的基础上被构造和改进,例如公钥加密方案、基于身份的加密方案、全同态加密、基于格的签名方案以及具有特定特性的方案。Xagawa [16] 构造了第一个基于格的PRE方案。然而,该方案仅在双向情况下满足CPA安全,且不能抵抗共谋攻击。Kirshanova [17] 提出了首个基于格的单次使用单向CCA安全代理重加密方案。本文的研究重点是构建一种基于格的多用单向代理重加密方案。

1.2. 我们的构造

在我们的方案中,用户1的公钥/私钥(A1, T1)由一个概率多项式时间(PPT)算法生成,且T1是ƒ?q (A1)的一个基。明文通过公钥A1加密,对应密文c1= AT1 s + 2x1+b1 ∈ Zmq。为了将密文c1= AT1 s + 2x1+b1 转换为在公钥A2下的密文c2= AT2 s + 2x2+ b2,我们构造一个矩阵R1→2,使得RT1→2c1= RT1→2 ATs 1 + 2x1+b1 = AT2 s + 2x2+ b2。然后我们需要确保A1R1→2 mod q = A2 和 RT1→2x1= x2 的值也都较小。令矩阵R1→2为PRE 密钥,该密钥由高斯采样算法生成。首先,给定两个用户的两个公钥pk1= A1、pk2= A2以及对应于公钥 A1的私钥T1,使用高斯采样算法生成PRE密钥R1→2,使得A1R1→2= A2 mod q 且R1→2的范数较小。

1.3. 论文结构

在第2.1节中,我们给出了相关符号。在第2.2节和第2.3节中,我们回顾了格分布和高斯分布的定义。在第2.4节中,我们介绍了带误差学习难题假设。格基委派技术在第2.5节中给出。我们在第3节中描述了PRE的定义与安全模型。在第4节中,我们提出了一个基于格的多用单向代理重加密方案。基本构造的扩展在第5节中描述。最后,结论在第6节中给出。

2. 预备知识

2.1. 符号说明

我们使用 R 和 Z 分别表示实数集和整数集。向量 x 的l2 范数(欧几里得范数)记为 kxk2= p< x, x >= qPni=1x2i。通常,我们将 kxk2 简记为 kxk。矩阵 X 的范数记为 kXk = maxi kxik,其中 1 ≤ i ≤ k。我们使用大O符号来分类函数的增长。若函数 g(n) =!(f (n)),则表示对于任意常数 c,g(n) 的增长速度快于 cf (n)。可忽略函数,记为 negl(n),是指满足对每个固定常数 c 都有 f (n) = O(n–c) 的函数 f (n)。

2.2. 格

设B={b1, b2, : :, bm} 2 Rm×m为一个非奇异矩阵,且b1,b2, : :, bm 2 Rm。该m维格
ƒ= L(B)=(y 2 R m, 9s 2 Zm, y= Bs= Xi=m1 sibi)
这里,我们关注整数格,即格 L 包含于 实数集m。
定义1. 设q为一个素数,A 2整数集n×mq,u 2整数集nq,定义:
ƒ?q(A)={e 2 Zm s.t. ATe= 0(mod q)} ƒu q(A)={e 2 Z m s.t. A Te= u(mod q)} 注意,如果t 2 ƒuq(A),则ƒuq(A)= ƒ?q(A)+t;因此,A)是ƒ?q(A)的一个移位。
定理 1 ([18])。 设q ≥ 3为奇数,m= d6nlogqe。存在一个概率多项式时间算法TrapGen(q,n),返回两个矩阵A 2 Zn×mq和T 2 Zm×mq,其中A在统计意义上接近于Zn×mq中的均匀矩阵,且T是ƒ?q(A)的一个基,满足
keTk Opn log q and kTk O(n log q)
在n中具有除可忽略概率外的所有情况。

定义 2.(最短独立向量问题)。设B是一个m维格的满秩基。目标是找到一组m个线性无关的格向量S L (B),使得 kSk (m) m(L(B))。

2.3. 离散高斯分布

我们简要回顾格上的离散高斯分布以及一些有用的引理。对于任意正参数 > 0,定义在实数集m上、以c为中心的高斯函数:
8x 2 Rm, ,c= exp – kx – ck2/2
对于任意 c 2 Rm,实数 > 0,m维格 ƒ,定义在 ƒ 上的离散高斯分布为:
8x 2 Rm, Dƒ,,c(x)= s,c(x) ,c(ƒ) = ,c(x)

引理 1([19]).设q≥ 2 且矩阵A 2 Zn×mq。令 TA为ƒ?q(A)的一个基, ≥ k QTAk ! √logm。则对于c 2 Zm,u 2 Znq; (1) Pr xDΛ_q^⊥(A),: kxk > pm negl(n)。(2) 存在一个概率多项式时间算法 SampleGaussian(A, TA, , c),返回从统计意义上接近 Dƒ,,c 的分布中抽取的 x 2 Λ_q^⊥(A)。(3) 存在一个概率多项式时间算法 SamplePre(A, TA, u, ),返回从统计意义上接近 Dƒ_uq(A),,c 的分布中采样的 x 2 ƒ_uq(A)。

2.4. 带误差学习困难性假设

带误差学习(LWE)问题最早由雷格夫提出[20]。我们将其描述如下。

定义3。对于整数q,一个在Zq上的分布 。LWEq, 问题是指以非可忽略的概率区分分布As, 与在Znq × Zq上的均匀分布,其中s Znq为均匀选取的向量,且s是一个秘密。As, 定义为在Znq ×Zq上的分布,其变量为(a, aTs+x),其中a Znq是均匀选取的,x 是独立的。

雷格夫 [21]指出,对于某些表示为 ‰˛ 的噪声分布,LWE问题在量子归约下与最坏情况下的SIVP和 GapSVP一样困难。佩克特 [22] 完成了经典的归约。

2.5. 格基委派技术

在本节中,我们介绍由Agrawal etal. 在[23]中提出的格基委派技术。存在两种不同的陷门用于寻找短向量:一种称为左陷门,使实际系统能够在格中生成短向量;另一种称为右陷门,用于证明中。

引理2 ([23])。设q> 2,m> 2n log q 且 > k QTAk ! √log 2m。则存在一个多项式时间算法 SampleBasisLeft(A, M, TA),该算法以 A、M ∈ Zn×mq 和 ƒ?q(A) 的一个基 TA 作为输入,返回 ƒ?q(F) 的一个基 TF,且满足 k QTFk = k QTAk,其中 F =(A|(M)。

引理3 ([23])。设q> 2,m> n 且 > kTBk √m ! √log m。则存在一个多项式时间算法 SampleBasisRight(A, B, R, TB),该算法以 A,B ∈ Zn× mq、R ∈ {–1, 1}m×m 以及 ƒ?q(B) 的一个基 TB 作为输入,输出 ƒ?q(F) 的一个基 TF,满足 k QTFk ≤ k QTBk √m ! √log m,其中 F =(A|AR + B)。

3. 代理重加密:定义与安全模型

3.1. 单向代理重加密的定义

在本节中,我们回顾单向PRE方案的定义。一个针对 l层的单向PRE方案由五个算法(密钥生成算法、重加密密钥生成算法、加密算法、重加密和解密)组成

KeyGen :该算法输入安全参数 n,并返回用户的私钥/公钥对 (sk,pk)。

ReKeyGen :该算法输入用户 i 的私钥 ski、用户 j的公钥 pkj ,并输出一个重加密密钥 rki!j,该密钥允许将用户 i0 的密文转换为用户 j 0 的密文。

Enc :该算法输入一条消息 , 和公钥 pki,并输出一个密文 ci。

ReEnc :该算法输入一个重加密密钥 rki!j 和用户 i 的一个密文 ci,返回用户 j 的一个密文 cj。

Dec :该算法输入用户 j 的私钥 skj 和一个密文 cj,返回消息 。

正确性 : 需要满足两个要求:
Dec(ski,Enc(pki,)) =,
Dec(skj,ReEnc(ReKeyGen(ski,pkj),ci) =。

3.2. 单向代理重加密的安全模型

我们描述单向代理重加密(PRE)的CPA安全性的形式化定义。对于挑战者C与概率多项式时间攻击者 A之间的实验Expind–cpa PRE,A(n),其交互如下:

设置阶段 : 挑战者 C输入一个安全参数并获得参数 param。它将参数发送给 param A。

阶段1 :在此阶段,攻击者需要对以下预言机进行多项式次数的查询,挑战者 C需要回答这些预言机。

公钥生成预言机 Opk :挑战者 C维护一个表 TK = (pki,ski)。攻击者 A希望获知用户 i 的公钥。因此,攻击者输入索引 i,然后挑战者运行算法 KenGen(1n) 生成密钥对 (pki,ski)。挑战者 C将 (pki,ski) 存入表中,并将 pki返回给 A。

秘密密钥预言机 Osk :攻击者 A输入 pki。如果用户 i被攻破,即用户 i不诚实,挑战者查询表 TK并将 ski返回给 A;否则, C返回 ?。

重加密密钥预言机 Ork :攻击者 A输入(ski,pkj),挑战者 C运行算法 ReKeyGen 生成重加密密钥 rki!j并将 rki!j返回给 A。

重加密预言机Ore :攻击者A输入(ski,pkj,ci)。挑战者C计算cj= ReEnc(rki!j,ci)。

挑战阶段 :如果攻击者 A完成所有预言机的查询后, A提交两个明文 0, 1和一个目标用户i*,挑战者 C随机选择一个比特b 2 {0,1},并计算ci* = Enc(pki*,b)。然后将挑战密文ci*发送给 A。我们已知用户i*未被攻破,并且如果ski*,pk*已被查询过以生成重加密密钥 Ork,则pk*不应被攻破。

高斯 :最后,攻击者 A输出一个猜测值b0 2 {0, 1}。如果b0= b,则挑战者 C输出1,否则输出0。

定义4 。(IND – 选择明文攻击安全性)设PRE为一个 PRE方案。 A是一个攻击者,n是安全参数。我们定义 A的优势为
Advind–cpa PRE,A(n)= ˇˇˇ2 PrhExp ind–cpa PRE,A(n)= 1i – 1 ˇˇˇ
我们说一个PRE方案是IND-CPA安全的,如果对于所有概率多项式时间攻击者A,其优势Advind–cpa PRE,A(n)是可忽略的。

4. 基于格的多用单向PRE方案

在本节中,我们将使用Gentry、Halevi和 Vaikun‐tanathan的方案[24]来构建一个多用途单向PRE方案。构造如下。

4.1. 构造

Setup(1n) :输入安全参数 n ,并使用算法 TrapGen(q,n) 生成两个矩阵 Ai 2 Zn×mq 具有两个用于 ƒ?q (Ai)的陷门基 Ti,且满足 keTik ≤ O√n logq,i = 1, 2。陷门函数 fAi(x) =Aix mod q。公钥为 pki = Ai,私钥为 ski =Ti。

ReKeyGen(pk2, sk1) :输入公钥 pk2= A2 和私钥 sk1 = T1。令 A2 =(a21, a22, : : : , a2m)T,其中 a2i 2 Znq。对于每个 a2i,i = 1, : : : , m,使用预像可采样算法 SamplePre(A1, T1, a2i, ) 采样一个向量 ri,使得 A1ri = a2i mod q 且 krik ≤ √m。令 Rpk1!pk2=( r1, r2, : : : , rm) 2 Zm×m,则 A1 2 ≡ 2 1 Rpk1!pk2 A mod q 且 Rpk1!pk2 的范数不超过 √m。输出重加密密钥 rkpk1!pk2= Rpk1!pk2。

加密算法(pk1,) :输入一个消息比特 2{0, 1},pk1= A1,执行:
(1) Choose a random vector s1 Zn q, an error vector x1 m, and a vector b1 2 {0, 1}m;
(2) Compute c1= AT 1 s1+ 2x1+b1 2 Zmq; (3) Output the ciphertext c1.

ReEnc(rkpk1!pk2,c1) :输入在公钥 pk1 = A1 下的密文 c1 和重加密密钥 rkpk1!pk2 = Rpk1!pk2。计算 c2= RTc1pk1!pk2 + 2x02,其中 x0 2 m ,并输出 c2。

解密(sk,c) :输入私钥 sk= T和一个重加密密文 c。计算 w =(TT)–1(TTc)mod2。如果 w= 0,输出 0;否则输出1。

接下来,我们以分布式文件系统为例,说明如何在实际应用中使用所提出的方案。

爱丽丝需要将大量文件存储在一个不可信的服务器上,这些文件使用她的公钥进行加密。她允许某些指定用户访问这些文件。然而,当指定用户访问文件时,爱丽丝无法及时转换已加密的文件,这项工作十分繁重。该问题可以很好地解决。首先,爱丽丝使用她的私钥和指定用户的公钥生成一个重加密密钥,并将其发送给服务器。其次,服务器将加密的文件转换为指定用户的密文,并将其发送给指定用户。最后,指定用户使用他的私钥获取未加密的文件。该过程如图1所示。

4.2. 正确性和参数

对于密文 c,解密操作如下:
w=(TT)–1(TTc) mod 2 =(TT)–1(TT(ATs+ 2x+b)) mod 2 =(TT)–1((AT)Ts+ 2TTx+TTb) mod 2 =(TT)–1(2TTx+TTb) mod 2 =(2x+b) mod 2 =b mod 2
如果 w=b mod 2= 0,输出 0,否则输出 1。
我们注意到TT、x和b的范数很小,且向量2TTx + TTb的每一项都小于q。因此(2TTx+ TTb) mod q就是2TTx+ TTb本身。接下来,乘以(TT)–1 后得到(2x+ b) mod 2。最后,我们得到 b mod 2。
由于b= 0 mod 2的概率为1/2m,因此正确解密的概率为 1 – 1/2m。
对于一个重加密密文 c2,我们计算
c2= RTc1 pk1!pk2 + 2x0 2 = RT pk1!pk2 AT 1 s1+ 2x1+b1 + 2x0 2 = A1R T pk1!pk2 Ts1+ 2RTx1 pk1!pk2 +R T pk1!pk2 b1+ 2x0 2 = AT 2 s1+ 2 RT pk1 !pk2 x1+ x0 2 +R T pk1 !pk2 b1
Let s2= s1, x2= R Tx1 pk1 !pk2 + x0 2, b2= RT pk1 !pk2 b1, then c2= AT 2 s2+ 2x2+b2.
Then, we compute
w= TT 2 –1TTc 0 2 mod 2 = T T 2 –1T T 2 A T 2 s2+ 2x2+b2 mod 2 =b2 mod 2
如果向量的每个元素 2T2T RT pk1!pk2x1+ x02 +T2T RT pk1!pk2b1 小于q,并且 b2= RT pk1!pk2b1 ¤ 0 mod 2 那么它可以被正确解密。我们知道Rpk1!pk2 和 b1 是均匀随机的,因此b2 的每一项为偶数的概率是 1/2。因此b2= 0mod2 为 1/2m 的概率是 1/2。
对于该方案的正确性,需要满足以下条件:
(1)算法 TrapGen 需要 m> 6n logq;(2)正确解密密文 (q> b 2 = 1 2 i,i,,::, m,其中 b2i是向量 b2的元素)。(3)归约适用于引理 2(˛q> 2 √n)。
由于 kTk ≤ O(n logq),kRk ≤ √m,Q ≥ kTk ! (√logm),我们将参数设置如下:
m= 6n dlog qe, q= 2m(l+2)/2 √n !(log (l+1)/2m)+ 1 = m !(log n), ˛=[m (l+2)/2 !(log (l+1)/2m)] –1 where l is the number of re-encryption.
定理2. (多用性)设q、 ˛、m和 如前所述,则前述方案为多用途。
证明。 对于用户1,:::,l,假设A1 是用户1的公钥,密文c1= A1Ts 1+ 2x1+ b1 是在A1 下的有效密文。重加密过程从1到l通过2到l – 1执行。通过重加密过程,我们得到
cl= RTl–1!l cl–1+ 2xl = RTl–1!l RTl–2!l–1cl–2+ 2xl–1+ 2xl = Yi=l2 RTi–1!iA1T s1+ 2 jX=l2 0@ Yi>lj RTi–j!ixj–1 1 A + Yi=l2 RT i–1!ib1 = AT l s1+ 2 jX=l2 0@ Yi>lj RTi–j!ixj–1 1 A+ Yi=l2 RT i–1!ib1 = AT l sl+ 2x0l+bl where sl= s1, x0l= 2 jP=l2 iQ>lj RT i–j!ixj–1 ! , bl= iQ=l2 RT i–1!ib1. If each entry of the vector 2TTl x 0 l+ TTl bl is smaller than q, it can be decrypted correctly.

4.3. 安全性分析

定理3。 设q、 ˛、m和 如前所述,那么在假设 LWEq, 问题难解的情况下,前述单向PRE方案在标准模型中是IND–选择明文攻击安全的。
证明.为了证明该定理,我们使用一系列游戏来表明攻击者具有可忽略的优势。
Game0:这是原始的IND‐CPA游戏。在挑战阶段, 当挑战者收到(i*,0,1)时,它选择一个随机的b 2 {0, 1},并计算挑战密文c* = ATs i* + 2x+ bb。挑战者将c*返回给攻击者 A。最后,攻击者输出一个猜测值b0。如果b0= b,则挑战者输出1,否则输出0。
游戏1:在游戏0中,挑战者通过算法 TrapGen (q, n) 生成公钥A。在游戏1中,我们仅改变公钥A的生成方式。我们从Zn×mq中均匀随机地选择公钥A。挑战者生成重加密密钥 Ri!i+1 DZm, , i = 1,2,:::, l–1。其他重加密密钥为 Ri!j = Ri!i+1 Rj–1!j。如果攻击者A请求第i个公钥,挑战者计算 Ai = AR1!i mod q 并将其返回给 A。如果攻击者 A查询重加密密钥预言机Ork,输入i, j,则挑战者将Ri!j返回给 A。如果攻击者 A查询重加密预言机Ore,输入i, j, c,则挑战者使用重加密密钥Ri!j对密文c进行重加密。
游戏 2:在游戏2中,挑战密文 c* 的生成方式与游戏 1不同,而是从Zmq中选取的一个随机向量。由于挑战密文是密文空间中的一个随机向量,因此A在此游戏中的优势为0。
我们将证明,对于PPT攻击者 A而言,游戏1和 游戏2在计算上是不可区分的。我们通过将此问题归约到LWE问题来实现这一点。
来自LWE的归约。假设攻击者 A具有不可忽略的优势“来区分游戏1和游戏2。我们需要构造一个算法 B 来解决LWE问题。
B从LWE问题实例预言机接收m对(ui, vi) ∈ Znq × Zq,其中vi = ui, s + xi。令公钥A = (u1, u2, ⋯ , um),v = (v1, v2, ⋯ , vm)T,则v = ATs + x mod q,其中x = (x1, x2, ⋯ , xm)T。我们设定 c*= 2v+bb= AT i*2s+ 2x+bb = ATs0 i*+ 2x+bb 2 Zmq, s0= 2smodq。如果 A猜对了b,则 B输出1, 否则输出0。
一方面,如果v是一个均匀随机向量,则挑战密文c*也是均匀随机的。因此在这种情况下, B输出1的概率至多为1/2。另一方面,如果v= ATs+ xmodq,则挑战密文c*是均匀分布的 (因为q与2互素)。这与Enc(pk,b)的输出分布相同;因此在这种情况下,A以概率(1+”)/2 猜中正确的b,即B以相同概率输出1。这意味着 B至少具有”/2的优势来求解LWE问题。

4.4. 比较

在本节中,我们从以下几点对相关工作([5],[10], [11],[12],[14],[16],[17])进行比较。计算复杂度: 包含加密/解密的计算复杂度。交互性:PRE密钥由两个用户的私钥生成。在非交互式方案中,PRE密钥由 一个用户的私钥和另一个用户的公钥生成。转换次数: 密文可被重新加密的次数。共谋–抗性:该方案能够抵抗共谋攻击(代理者与委托者、代理者与被委托人)。方向性:单向性是指代理可将爱丽丝的密文转换为鲍勃的密文,反之则不行;双向性是指代理可将爱丽丝的密文转换为鲍勃的密文,反之亦然。量子安全:该方案在量子环境中安全。比较结果总结于表I。

表I. 与相关工作的比较。
| 密码系统 | 计算复杂性 | 交互性 | 转换次数 | 共谋‐抗性 | 方向性 | 量子安全 |
| — | — | — | — | — | — | — |
| Libert 和 Vergnaud 的方案 [5] | O(n³) | No | 单次使用 | Yes | 单向 | No |
| 邵和曹的方案[10] | O(n³) | No | 多用途 | Yes | 单向 | No |
| 王和曹的方案[11] | O(n³) | No | 单次使用 | Yes | 单向 | No |
| 邵和曹的方案[12] | O(n³) | No | 单次使用 | Yes | 单向 | No |
| Matsuda 等人[14]的方案 | O(n³) | Yes | 多用途 | No | 双向 | No |
| Xagawa [16]的方案 | O(n²) | Yes | 多用途 | No | 双向 | Yes |
| Kirshanova 的方案 [17] | O(n²) | No | 单次使用 | Yes | 单向 | Yes |
| 所提出的方案 | O(n²) | No | 多用途 | Yes | 单向 | Yes |

5. 扩展:基于身份的多用途单向PRE

利用[19],技术,我们将基本构造扩展为基于身份的多用单向PRE方案。在此构造中,我们将使用一个满秩差分函数H: Znq! Zn×nq。满秩差分是指对于所有不同的u,v 2 Znq,矩阵H(u) – H(v) 2 Zn×nq均为满秩。
系统建立(1n) :输入安全参数n,运行TrapGen(q, n)生成一个随机矩阵A ∈ Zn^×mq,其具有对应于 ƒ?q (A)的陷门基T,且满足||T|| ≤ O(√(n log q))。选择两个均匀随机的n × m矩阵A1和B,属于 Zn^×mq。主公开密钥为MPK = =(A, A1, B),主私钥为MSK = =(T)。
密钥提取(主公钥, 身份) :输入 MPK、MSK以及身份id ∈ Znq,使用 SampleBasisLeft算法计算基Tid ← SampleBasisLeft(A, A1+ H(id) × B),满足||Tid|| ≤ √(2m)。
重加密密钥生成(目标身份, 源私钥) : 输入身份id2和带有身份id1的私钥skid1 = Tid1。设 Aid1 = (A|A1+ H(id1) × B),Aid2 = (A|A1+ H(id2) × B)。使用原像可采样算法生成矩阵Rid1→ id2 ∈ Z^2m×2m,使得Aid1·Rid1→id2 ≡ Aid2 (mod q)且||Rid1→id2|| ≤ √m。输出重加密密钥 rkid1→id2 = Rid1→id2。
加密算法(pkid1,) :输入消息比特 2 ∈{0, 1},公钥pkid1 = Aid1,执行以下操作:(1)选择随机向量s1 ∈ Znq,误差向量x ∈ 1 m,以及向量 b1 ∈ {0, 1}^m;(2)计算密文 c1 ← ATs1 + id1·s1 + x + b1 ∈ Zmq;(3)输出密文c1。
重加密(重加密密钥, 源密文) :输入在公钥 pkid1 = Aid1下的密文c1和重加密密钥rkpkid1→ pkid2 = Rid1→id2。计算c2 ← RT·c1 + x,其中x ∈ 1 m。输出重加密后的密文c2。
解密(私钥, 密文) :输入私钥skid2 = Tid2和重加密密文c2。计算w = TTid2 –1TTid2cid2 mod 2。如果w= 0,输出0,否则输出1。

6. 结论

本文中,我们基于LWE问题的困难性构造了首个多用单向代理重加密方案。在所提出的方案中,代理重加密密钥的生成不需要两个用户之间的交互,而是由一个用户的私钥和另一个用户的公钥生成。该方案具有多用途、单向以及抵抗共谋攻击等良好性质。我们还证明了该方案在标准模型下是CPA安全且量子安全的。

UMBRAL:阈值代理重加密方案 UMBRAL github link Overview Umbral是遵循密钥封装机制(KEM)方法的阈值代理重新加密方案。 它受到ECIES-KEM 和BBS98代理重新加密方案的启发。 使用Umbral,Alice(在NuCypher KMS中为数据所有者的通用名称)可以通过一组N个半受信任的代理执行的重新加密过程,将针对任何给她的密文的解密权委派给Bob。 当这些代理中的至少t个(共N个)通过执行重新加密参与时,Bob能够组合这些独立的重新加密并使用其私钥解密原始消息。 “ Umbral”这个名称源于 阅读详情

相关推荐

使用代理重加密+PlatONE,来保证数据可信、安全地共享

在制造、医药等行业中,有着大量沉睡的数据。利用这些数据,将有潜力推动技术创新或解密生命科学。但同时,这些数据中涉及商业机密和用户隐私保护,在不可信环境下实现安全的数据共享一直是一个难题,传统中心化方案存在数据容易被泄露、数据容易被篡改、数据去向难以追踪、监管难度大等问题。公钥体制下的数据共享方案则存在通信代价、计算成本高、实用性差等问题。在数据沉睡和数据滥用的两个极端间,是否可以有技术手段来完成数据的授权与秘密分享? 本篇将讨论区块链技术与代理重加密(PRE)技术的融合方案,这种方案可以使用中间方提供的技

WXblockchain1的博客 2172

CODEVS 1029 遍历问题 题解

1029 遍历问题 题目描述 Description     我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:       所有

OIer 1629

41、基于格的同态代理重加密方案解析

本文详细介绍了一种基于格的同态代理重加密方案,结合了同态加密和代理重加密技术,实现了在不解密数据的情况下对密文进行计算和权限委托。文章分析了方案的正确性和安全性,并探讨了其在隐私保护和数据共享中的广泛应用前景。

k5l6m的博客 70

代理重加密

云计算中的数据机密性风险极大地阻碍了云计算的应用,而在用户端加密的模式对于数据共享来说非常不便,用户频繁的获取和释放授权将使得用户增效据加解密工作繁重。因此代理重加密技术在云端进行数据的密文转换,减轻了用户端的负担,同时加强了云端数据的保密性。 一、代理重加密 代理重加密是密文间的一种密钥转换机制,是由Blaze等人在1998年的欧洲密码学年会上提出的,并由Ateniese等人在2005年的网络和分布式系统安全研讨会议和2007年的美国计算机学会计算机与通信安全会议上给出了规范的形式化定义。 在代理重加密中

mlynb的博客 4424

41、自适应安全代理重加密与鲁棒可复用模糊提取器技术解析

本文深入解析了自适应安全代理重加密(PRE)与鲁棒可复用模糊提取器(rrFE)的核心技术原理与安全性分析。在代理重加密方面,介绍了基于格的单向多跳PRE方案及其安全性证明,涵盖Construction 2.a与Construction 2.b两种构造方法,分别满足PRE-CPA与PRE-HRA安全性,并讨论了其在不同图类下的安全性归约。在鲁棒可复用模糊提取器部分,提出了两种通用构造方法,分别基于ui-ks安全的PRF与密钥移位安全的AIAE,结合安全草图和通用哈希函数,实现了从噪声源中稳定提取伪随机密钥的能

efc12345678的博客 90

44、单向选择密文安全代理重加密技术解析

本文探讨了单向选择密文安全代理重加密(PRE)技术,重点分析了如何在保持高效的同时抵御选择密文攻击。文章基于Ateniese等人提出的单向方案,并推广Canetti和Hohenberger的技术,首次在标准模型下构造了具有选择密文安全性的单向代理重加密方案。此外,文章还讨论了相关安全模型、算法组成及其应用前景。

pandas7gardener的博客 82

7、隐私计算--代理重加密

代理重加密

安全学习笔记 4545

47、高效单向代理重加密方案解析

本文提出了一种高效的单向代理重加密(PRE)新方案,针对现有方案在CCA安全性上的缺陷进行了修复。新方案基于‘令牌控制加密’技术,在保证委托者秘密安全的同时,有效抵御了勾结攻击与链式攻击。通过结合哈希化ElGamal加密与Schnorr签名机制,原始密文和转换密文均具备良好的CCA安全性。与现有方案相比,新方案在加密、重加密和解密阶段的计算开销更低,密文尺寸更小,且解密无需依赖委托者的公钥,显著提升了效率与实用性。尽管该方案目前为单跳且依赖随机预言机模型,但其为构建更安全、高效的PRE系统提供了可靠基础,并

linux6sysadmin的博客 59

代理重加密(Proxy Re-encryption)

代理重加密就是委托可信第三方或是半诚实代理商将自己公钥加密的密文转化为可用另一方私钥解开的密文从而实现密码共享    现实世界中绝大多数提供云计算服务的公司没有什么诚信可言,你不能保证它会用你的数据做什么,或是会不会出卖给其他公司,这样,唯一的解决办法是加密后放到云上,让其获得密文形式,而我们又想让我们愿意共享秘密的对方获得密文的明文内容,也就是原本我们公钥加密后的密文,只有我们的私钥才能解开,...

哎一入江湖岁月催的专栏 1万+

46、高效单向代理重加密技术解析

本文深入解析了高效单向代理重加密(PRE)技术,对比分析了多种现有PRE方案在安全性、配对操作、抗合谋性等方面的差异。重点指出了Shao-Cao(SC09)方案存在的安全漏洞及其性能问题,并提出了一种新的无配对、高效、满足标准CCA安全的单向PRE方案。新方案基于ElGamal加密和Schnorr签名,设计简洁,解密过程无需委托者公钥,在计算效率、密文长度和安全性方面均优于现有方案,适用于云计算、物联网等数据安全场景。

linux6sysadmin的博客 66

38、基于因子分解的代理重加密方案解析

本文解析了基于因子分解的代理重加密(PRE)方案,包括其基本概念、安全模型和具体方案构造。重点分析了双向单跳和单向单跳PRE方案的安全性,分别在BM-CPA、BS-CCA和US-CCA安全模型下进行了讨论。这些方案在随机预言机模型或标准模型下,基于因子分解假设提供了不同场景下的安全加密和重加密解决方案。

web39explorer的博客 105

基于不可区分混淆的代理重加密

本文提出了一种基于不可区分混淆(iO)的代理重加密(PRE)方案,支持无界多跳和单向重加密,且密文大小恒定。该方案通过将重加密密钥设计为混淆的‘解密-再加密’电路实现,具备CPA安全性,但消息空间受限于{0,1},目前为理论构造,尚未实用化。

gaoxiang_120的专栏 472

42、格上的同态代理重加密及GSW分层同态加密方案抗攻击策略

本文探讨了格上的同态代理重加密(PRE)方案和GSW分层同态加密方案的抗攻击策略。详细介绍了同态PRE方案的构建、安全性定义及其证明,包括IND- UniPRE- CPA、KP- CPA和主密钥安全性。针对GSW方案面临的自适应密钥恢复攻击,提出了一种新的抗攻击方法,通过生成‘一次性’私钥来增强安全性。文章还分析了新方案在泄漏弹性和侧信道保护方面的潜在应用,为未来数据安全和隐私保护技术的发展提供了参考。

k5l6m的博客 72

代理重加密:云数据共享场景下的加密方法选择与优势

在云数据共享场景中,代理重加密是理想选择,尤其当您需要平衡安全、效率和动态访问时。推荐从单向或基于身份的PRE入手,结合实际测试(如模拟云环境)。优势包括强安全、高效处理、灵活共享。如果您有具体场景细节(如数据规模或合规要求),我可进一步优化方案。

2501_93893791的博客 894

45、单向选择密文安全代理重加密方案解析

本文介绍了一种单向选择密文安全的代理重加密方案,通过结合双线性映射和强不可伪造的一次性签名技术,实现了在选择密文攻击下的安全性。该方案支持密文的可验证性和灵活的重加密功能,在云计算、医疗数据共享和物联网等场景中具有广泛的应用价值。

pandas7gardener的博客 137

可验证属性基代理重加密

本文提出一种可验证的属性基代理重加密(AB-VPRE)方案,用于保障公共云中数据共享的安全性与正确性。通过引入承诺方案和密钥派生函数,实现了对代理重加密操作的验证,支持密文策略和密钥策略下的单向单跳重加密,并在标准模型下证明了其安全性和验证可靠性。

assembly8low的博客 808
上一篇: 19、深入理解 Excel VBA 事件处理
下一篇: 20、深入探索 Excel VBA 事件:功能、应用与技巧
python9snake
博客等级 码龄1天 0粉丝 1724原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值