带经销商的广播加密
摘要
在本文中,我们提出了一种新的密码学原语,称为带经销商的广播加密。这一概念在密码学文献中从未被讨论过,但适用于许多实际的广播服务场景,例如基于订阅的电视服务。具体而言,该新原语允许分发者从广播方批量购买某些产品(如电视频道)的访问权限,从而使其能够以更便宜的价格将内容转售给订阅者。因此,这为分发者创造了商业模式和商业机会。我们强调了在此类场景中的安全考虑,并在安全模型中形式化地刻画了其安全需求。随后,我们提出了一个具体方案,该方案在判定性双线性 Diffie‐Hellman指数假设和Diffie‐Hellman指数假设下被证明是安全的。
关键词 广播加密 · 经销商模式 · 可证明安全
1 引言
付费电视(Pay TV),有时也称为基于订阅的电视服务,提供了一种机制,允许订阅者在拥有特定设备(称为“解码器”)的情况下观看由电视广播者提供的加密频道。在实际中,订阅者爱丽丝通常会购买广播者提供的多个频道组合而成的套餐,以获得更优惠的价格。最近,付费电视的场景引入了“经销商模式”的概念。需要注意的是,术语“经销商模式”并不指代一个可信的第三方,而是代表一个与广播者合作、为订阅者提供更优惠价格的实体。在这种情况下,分发者可以从广播者处购买某些频道,并以更低的价格转售。例如,分发者唐可以从广播者处购买100个体育频道的访问权限,从而获得每月20美元的折扣价,而不是支付原本每月30美元的全价来获取相同内容。这样一来,唐便可以通过将该频道转售给已拥有解码器的订阅者来提供服务,而售价略低于广播者,例如每月25美元。如此一来,唐仍可盈利,同时订阅者也能享受折扣价格。当然,唐有动机保护其订阅者的身份不被原始广播者获知,否则广播者可能会直接联系这些订阅者并提供更优惠的价格。
尽管广播加密的场景在密码学文献中已被深入研究[9,10,12,13,22],但尚无工作讨论上述现实场景以实现具有dealership的广播加密。
我们的工作
在本文中,我们将现有的广播加密概念扩展为支持带经销商的广播加密方案(BED)。在新概念中,存在三种类型的参与者:广播者、分发者以及一组订阅者(即接收者)。在设置阶段,订阅者将作为广播者的成员加入(例如通过购买解码器)。然后,分发者可以选择一个订阅者子集并生成辅助信息aux,该信息将被发送给广播者。当广播者接收到aux后,便利用此信息对所购买的频道进行加密,使得只有包含在aux中的订阅者子集才能解密加扰的内容。广播者可以检查aux的大小,但无法知道aux中具体包含了哪些订阅者。
这符合如下场景:只有分发者知道从其处购买内容的订阅者身份,而广播者不知道;否则,广播者可能在后续阶段直接联系这些订阅者,并提供比经销商更优惠的价格。我们为此场景提供了合理的安全模型,并进一步提出了一种具体构造。同时,本方案在判定双线性Diffie‐Hellman指数(DBDHE)和Diffie–Hellman指数(DHE)假设下被证明是安全的。
人们可能会认为我们的构造是直截了当的。然而,我们强调,实现此类方案的困难在于系统中每个实体所需满足的必要安全要求。我们以下说明其中的一些困难。
从分发者的角度来看,他/她希望保护订阅者隐私。这是为了保护分发者的利益,以防止广播者直接联系订阅者并提供更优惠的价格,从而损害分发者的利益。另一方面,必须确保广播者获知分发者提供的订阅者总数是有限的,因此分发者无法通过仅购买n名用户的权限,却最终将内容转售给n+1名订阅者来进行欺诈。此外,我们需要保证分发者无法解密所购买的内容,否则分发者可以随后将信息重新广播给其他非法订阅者。同样,未订阅该频道的用户也不应被允许解密广播信息。
我们需要智能地结合广播加密方案和成员加密方案来实现我们的构造。使用简单的广播加密构造无法使广播者验证分发者所选择的用户数量。广播者将无法与分发者进行交互,以检查分发者选择的用户数量少于n个。这意味着广播者为所有用户生成公钥/私钥对,分发者选择一个未知数量的用户,并为这些用户加密消息,然后广播者将密文转发给所有用户,使得只有被分发者选中的用户才能恢复原始消息。成员加密协议并不保留将密文广播给多个用户的概念。实际上,它仅涉及验证者和证明者之间的交互:证明者希望向验证者证明用户A属于用户组P(G),同时不向验证者泄露G中的其他用户。
在我们提出的框架中,我们采用了一些实际假设,具体如下。我们假设分发者不会与用户串通,因为双方都有各自独立的利益。虽然理论上允许这种串通是可能的,但在本研究中,我们假设这种不切实际的串通不会发生。此外,我们假设分发者也是理性的,即分发者不会通过出售“虚假”会员资格来欺骗用户,否则用户将可向广播者举报该行为,导致分发者被列入黑名单而无法从事未来业务。我们指出,做出这些假设是为了符合现实情况,同时避免方案中出现不必要的复杂性。
有人可能会注意到,基于证据的决策(BED)的概念与另一个称为数字版权管理(DRM)[18]的概念相似。DRM是一种保护高价值数字内容并控制这些数字内容分发和使用的系统。DRM流程涉及四个实体:内容提供商、分销商、清算所和消费者。DRM系统包含在电子商务系统中,用于处理财务支付并启动清算所的功能。在DRM模型中,许可证在数字内容传输之前或同时由清算所发送给请求该许可证的消费者,例如用于临时促销目的。
此外,有研究在[17]中提出了数字版权管理系统的 一种扩展,用于管理由组织持有和控制的个人数据。在[24]中,作者们提出了一种安全的解决方案,适用于由消费类电子设备组成的家庭网络中的数字版权管理。其中一个问题是,许可证可能会泄露有关企业数据的信息;为了解决这一问题,采用隐私偏好平台语言(P3P)向消费者传达企业隐私政策,并使他们能够便捷地构建数据许可证[25]。数字版权管理的概念还可以扩展到医疗领域,以保护存储在云存储中的患者的电子健康记录的隐私[16]。尽管这两个概念之间存在诸多相似之处,但它们之间也存在一些细微而重要的差异,将在下文予以说明。我们注意到,为了便于比较,下文将使用数字版权管理中的术语,但不再进一步详细说明。我们建议读者参考[18]以获取更复杂的描述。
需要注意的是,基于证据的决策(BED)与数字版权管理(DRM)的目标并不相同,因此两者之间存在多种差异。首先,广播加密系统(BED)向订阅者提供长期解码器,而DRM系统则向消费者提供临时许可证。这两种特性意味着DRM仅支持离散访问,而BED过程适用于连续访问。因此,DRM可以处理已知大小的数字内容片段,例如音乐或视频片段。更准确地说,在DRM中,临时许可证规定了对某件数字内容(如音乐、视频)的n次访问(例如,“先试后用”的商业模式)。然而,在BED中,数字内容是通过解码器以信息流的形式从时间t0持续传输到时间tm,中间没有中断(例如电视频道广播)。最后,最显著的区别在于,BED概念设计用于多用户环境:为了降低计算和通信成本,广播者与分发者将所有订阅者作为一个整体进行交互。此外,分发者能够选择全部订阅者中的部分用户;同时,广播者可以验证被选用户的数量。相比之下,DRM方案仅支持一对一过程。
在表1中,我们重点指出了数字版权管理与基于证据的决策系统之间的相似性和差异。
| BED | DRM |
|---|---|
| 长期解码器/许可证 | ✓ |
| 连续流访问 | ✓ |
| 以加密形式分发的内容 | ✓ |
| 多用户环境 | ✓ |
| 根据内容选择用户 | ✓ |
| 验证所选用户的数量 | ✓ |
术语“用户”在数字版权管理(DRM)系统中指的是“消费者”,在广播加密系统(BED)中指的是“订阅者”。
1.1 相关工作
广播加密的概念由菲亚特和纳奥尔[12]提出。在广播加密方案中,若发送方希望与一个动态选择的用户集合S ⊆[1, N]共享一条消息,则会构造一个密文,使得只有集合S中的用户能够解密。随后,他/她可以安全地通过广播信道将该密文传输给所有用户。
构建高效广播系统的主要挑战是使用短密文对消息进行加密。通常,广播加密系统依赖于组合技术。此类系统包含一个合谋界限t,使用较大的t值会影响系统性能。
自纳奥尔等人[19]的研究以来,广播加密的概念受到了广泛关注:他们提出了一种对称密钥结构以及相应的安全模型和安全性分析。多迪斯和法齐奥[11]提出了首个公钥CCA安全广播加密方案。博恩、金特里和沃特斯[2]设计了一个完全抗共谋的方案,并提出了一种安全模型,在该模型中,攻击者可以攻破任意用户,但挑战目标集合S∗中的用户除外。他们通过应用具有双线性映射的群的计算技术,提出了实现具有短密文的完全抗共谋系统的新型方法。在他们的方案中,攻击者必须在得知系统参数之前就精确地提供S∗,因此该模型被称为选择性模型。德勒布拉雷在随机预言模型中构造了选择性安全的基于身份的广播加密[9]。随后,盖内里和沃特斯[13]提出了首个在自适应模型下的方案,其中攻击者可以先攻破用户,然后自适应地选择挑战目标集合。他们在标准模型和随机预言模型中都提供了自适应安全方案。同时,[26]利用对偶加密技术构建了比基于半静态安全方案的通用构造更高效的自适应安全广播加密系统。此后,一种方案实现了所有期望的特性(常数大小密文、自适应CCA安全性),并在[22]中被提出,但它依赖于较为非标准的假设。
潘、波因特切瓦尔和斯特雷弗勒[21]最近给出了广播加密安全概念之间关系的总体视图。然而,他们并未考虑多通道广播加密的场景,因为攻击者可能通过攻破某一通道的部分用户来破坏其他通道的安全性。所有通道的会话密钥实际上应被压缩到单一密文中,因此同一会话内的密钥之间存在一定的关系,而安全模型必须考虑到这些密钥之间的关系。最后,潘、波因特切瓦尔和阮[23]通过采用dummyhelper技术,对多通道广播加密问题提出了形式化定义,取得了重大突破。
隐私保护成员证明允许证明某个用户A属于一个用户组G,同时保护隐私。隐私保护成员证明有两种技术:
– 集合成员证明 [5,7,8]用于A ∈ G给定P(A)。在此类证明中,验证者知晓令牌P(A)以及G中的用户。证明者的目标是证明P(A)中的用户属于G,同时不向验证者泄露身份A。此类证明使我们能够保护相关用户的隐私。
– 见证累加器 [1,3,4,6,14,20]用于A ∈ G给定P(G)。在此情况下,验证者知晓令牌P(G)和一个用户A。证明者的目标是证明A属于P(G)中的用户组,同时不向验证者泄露G中其他用户的身分。此类证明使我们能够保护非相关用户的隐私。
在[15]中,郭等人提出了一种加密原语,称为成员加密。在这种方案中,解密满足隐私保护的群组成员资格A ∈ G给定P(G),其中群令牌P(G)由用户集合G和一个秘密令牌S生成。如果加密以A和P(G)作为输入,则当且仅当解密者知道(G,S)且A ∈ G成立时,解密才会成功。他们提供了一个可证明安全的成员加密方案:
– P(G)的大小是固定的,对用户集合S中的用户具有最大可追溯性,且与G中的n个用户数量无关,并且
– 在P(G)中,用户数量的上限是可问责的,密文大小在用户最大数量可问责性下为常数规模,并且与安全参数的长度呈线性关系。
1.2 我们的贡献
本文中,我们提出了带经销商的广播加密方案(BED)的概念。我们的构造受到盖内里和沃特斯[13]广播加密方案以及Guo等人[15]成员加密方案的启发,并进行了一些细微改进。需要注意的是,这两种方案的简单合并将导致一个不安全的方案。我们证明了该方案在n‐双线性DHE问题下是半静态安全的,能够保护隐私,并且在(f,n)‐DHE问题下具有最大数量可问责性且安全。
我们的方案具备以下安全属性:
– 防止非法用户的安全性 :无法解密其非合法订阅者的密文。同样,分发者在接收到广播者发送的内容后也无法解密,因此不能将这些内容重新广播给某些非法用户。
– 隐私 :尽管广播者知道所有订阅者的身份,但由于接收者群体仅由分发者知晓,因此广播者不会知道密文的接收者是谁。
– 最大数量可问责性 :广播者需要确信分发者选择的用户总数是有限的,从而防止分发者通过使加密内容能够以 个订阅者的价格提供给+ 1个订阅者。
继盖内里和沃特斯提出的广播加密方案[13]之后,我们证明了我们的方案在半静态模型中是安全的。在此模型中,攻击者必须在执行设置算法之前承诺一个用户集合S,但随后可以攻击任意集合S∗ ⊆ S。因此,与静态模型相比,攻击者具有更大的灵活性。
论文结构
本文的其余部分组织如下。在下一节中,我们将回顾在安全证明中使用的一些困难问题的定义。第3节介绍了本文将使用的基于证据的决策的语法,并定义了基于证据的决策的安全模型。在第4节中,我们提出了具有经销商模式的广播加密方案的构造,并在第5节中给出其安全性证明。这些证明针对半静态安全性、隐私性和最大数量可追溯性提供。最后,第7节对全文进行总结。
2 复杂性假设
我们首先定义系统安全性证明中采用的两个难题:DBDHE问题和DHE问题。第一个问题由博内、金特里和沃特斯在[2]中提出,第二个问题由Delera‐brée在[9]中提出。
定义1(n‐判定双线性DHE问题) 设 G和 GT是阶为p且具有双线性映射e : G×G →GT的群,g是 G的生成元。令a, s ∈R Z ∗ p,以及b ∈R{0, 1}。若b = 0,则设Z = e(g, g) an+1·s;否则设Z ∈R GT。问题实例包括gs, Z,以及集合{g a i; i ∈[0, n]∪[n + 2, 2n]}。该问题的目标是猜测b。当给定一个由安全参数 1λ生成的问题实例时,如果在t多项式时间内解决该问题的优势至多为 ε(这是 λ的可忽略函数),则称n‐DBDHE问题成立。
定义2((f, n)‐DHE问题) 设 G和 GT是阶为p且具有双线性映射e : G × G → GT的群,令g0, h0, w为 G 的随机生成元。设a ∈R Z ∗ p。问题实例包含一个n′‐次多项式函数f (x) ∈ Z p[x],其中n′ > n,以及g0, g a 0 , ga 2 0 , . . . , ga n 0 。该问题是计算(f (x(, g f(a) 0 )。当给定一个由安全参数 1λ生成的问题实例时,如果在t多项式时间内解决该问题的优势最多为 ε(这是 λ的可忽略函数),则(f,n)‐DHE问题成立。
3 定义和安全模型
3.1 定义
定义3 一种具有经销商模式的广播加密方案(BED),如图1所示,可被视为一种具有成员加密的密钥封装机制。该方案包含以下六个算法:
– 设置 :(广播者)输入一个安全参数 1λ,一个对应于用户上限数量的整数 n,以及一个用户组{A1,…, An},设置算法生成公共参数PP和主私钥MSK,其中 n=poly(1λ)。
– 密钥生成 :(广播者)输入公共参数PP、主私钥MSK以及用户Ai,其中i ∈[1,n],密钥生成算法生成公钥/私钥对(PKi,SKi)。
– GroupGen :(经销商)输入公共参数PP,一个选定用户组G={A1, . . . , Ak},满足 1 ≤k ≤n,以及属于G的用户的公钥{PK1, . . . , PKk},GroupGen算法输出令牌P(G)。
– Verify :(广播者)输入令牌P(G)和整数k,Verify算法若在P(G)中的用户数量满足 |G| ≤ k,则返回True;否则输出False。
– Encrypt :(广播者)输入公共参数PP、令牌P(G)和消息M,Encrypt算法返回消息M的密文C。
– Decrypt :(用户)输入用户Ai,其中i ∈[1,n]属于选定用户组G,公私钥对(PK, SKi),以及密文C,Decrypt算法返回消息M或 ⊥。
正确性 :对于公共参数PP,任何对应于群组G的令牌P(G),以及任何密文C ←加密(PP, P(G), M),我们有:
– 如果Ai ∈G,则有解密(加密(PP,P(G),明文M), Ai,G(公钥PKi,SKi))=明文M;否则,有解密(加密(PP,P(G),明文M),Ai,G(公钥PKi,SKi))=⊥。
3.2 半静态安全模型
下面我们对广播加密系统(BED)的安全概念进行形式化。在广播加密系统中,最强的安全模型是自适应安全系统。在自适应安全系统中,攻击者可以查看公共参数(以及公钥),然后在选择其希望攻击的索引集合之前,请求多个私钥。
然而,在本文中,我们考虑一种较弱的安全性定义:半静态安全性。这一概念由盖内里和沃特斯[13]提出,用于证明其广播加密方案的安全性。他们还提供了一种通用技术,可将半静态安全的广播加密方案转换为自适应安全的方案。我们注意到,他们的这种转换方法同样适用于我们的方案,因此,本文省略了完全安全系统的构造。
在半静态安全性的游戏模型中,攻击者必须在初始化阶段承诺一个用户集合S。攻击者不能查询任何满足Ai ∈S的私钥,并且必须选择一个目标集合S∗用于挑战密文,使得S∗ ⊆ S。
半静态安全模型的游戏
– 初始化 。攻击者提交一个用户集合 S ⊆{A1, . . . , An}。
– 设置 。挑战者运行设置算法以获得公共参数和用户的公钥,并将其发送给攻击者。
– 密钥查询阶段 。攻击者对用户 Ai ∈{A1, . . . , An}\S 进行私钥查询。
– 挑战 。攻击者指定一个挑战集合 S∗ ⊆S,使得对于所有对应于用户 Ai 的私钥查询 SKi,均有 Ai∈/ S∗。挑战者以 S∗ 作为输入运行 GroupGen 算法,并得到 P(S∗ )。然后,其在公钥 PK 和 P(S∗ ) 下对消息 M 进行加密,得到密文 C0 和 C1 ∈R GT。设 b ∈R{0, 1},并将 Cb 发送给攻击者。
– 猜测阶段 。攻击者输出一个关于b ′的猜测,如果b ′= b,则攻击者赢得游戏。
我们定义攻击者的优势为
AdvBED SS A(1 λ )= |Pr[b ′= b] −1/2|.
定义4 当安全参数为 1λ 时生成的基于证据的决策在 (t ε)下是半静态安全的,如果对于所有 t‐多项式时间的对抗者, ε= AdvBEDASS(1λ) 是 λ 的一个可忽略函数。
3.3 隐私
在本文中,我们使用“隐私”一词表示广播者知道所有用户的身份(因为他生成了用户的公钥/私钥对),但他不知道分发者所选择的被选用户的身份(他只知道被选用户的最大数量,因为这是他作为约束条件提供给分发者的)。此处的“隐私”并不指对用户完全的匿名性,而是强调由分发者选择特权用户,并将这些用户的身份对广播者保密。
基于证据的决策(BED)保护组用户的隐私。本质上,这意味着给定一个群令牌 P(G),其中 G 表示一组订阅者,以及两个用户组 G0={A1,…,Ak0} 和 G1={A′ 1,…,A′ k1},在计算上很难判断是 G= G0 还是 G= G1。
隐私游戏
– 设置 。挑战者运行 Setup 算法以生成公共参数 PP,并将它们发送给攻击者。
– 挑战 。攻击者向挑战者提交两个用户集合 G0={A1,…,Ak} 和 G1={A′ 1,…,A′ k},其中 k< n。挑战者随机选择一个比特 b ∈{0, 1},并为 Gb 生成 P(Gb)。然后,挑战者将 P(Gb) 发送给攻击者。
– 获胜 。攻击者输出对 b 的猜测 b′,若 b′= b 成立,则攻击者赢得游戏。
我们定义攻击者的优势为
AdvBEDP A(1 λ )= |Pr[b ′= b] −1/2|.
定义5 当使用安全参数1λ生成的基于证据的决策在对于所有t‐多项式时间攻击者, ε= AdvBEDP A(1 λ )是 λ的可忽略函数时,该系统以(保护群令牌的隐私。如果对于任意时间t以及攻击者生成的公共参数PP,该系统均能保护群令牌的隐私,则称其无条件保护群令牌的隐私。
3.4 最大数量可问责模型
最大数量可问责性属性确保广播者,对于给定的群令牌P(G),广播者可保证加密内容最多只能被n个用户解密,其中 |G| = n。
直观上,如果生成一个包含 n 个用户的用户集合 S 的群令牌 P(G) 在计算上是困难的,但验证算法 Verify 对广播者提供的某个值 k |G| ≤k 输出为真,且 < n,则基于证据的决策 BED 满足最大数量可问责性的属性。
3.4.1 最大数量可问责模型的游戏
– 挑战 。挑战者运行设置 算法以生成公共参数,并选择一个值k<n,然后将其发送给攻击者。
– 获胜 。攻击者输出(P(G∗),G∗),并且如果G∗包含n个用户但验证 算法输出 |G∗| ≤ k,则赢得游戏。
我们定义攻击者的优势为
AdvBEDAMN (1λ).A
定义6 一个使用安全参数 1λ生成的基于证据的决策,如果对于所有t‐多项式时间的对抗者, ε=AdvBEDAMN (1λ)A是 λ的可忽略函数,则该基于证据的决策具有最大数量可问责性且是(t ε)‐安全的。
4 基于证据的决策构造
在本节中,我们提出基于证据的决策(BED)的构造。我们的构造受到Gentry‐Waters广播加密方案[13]和郭等人[15]成员加密方案的启发。
主要困难在于原始构造中所需的公钥“正确顺序”,这将阻止我们构建此类方案。
4.1 关于成员加密的简要回顾
成员加密最近由[15]提出。设P(G)是用户组上的一个隐私保护令牌。假设在给定G的情况下,难以获知P(G)中的用户。成员加密用于构造关于用户及其成员身份的隐私保护成员证明A ∈ P(G)。
在[15]中,作者们将群令牌生成从累加器方案扩展到使用两个密钥a和b。系统参数包括u ∈ G和u, ua, ua 2 , . . . , ua n, ub·a, ub·a 2 , . . . , ub·a n。对于集合G ={A1,…, Ak} ∈ Z p ,他们设置群令牌P(G)=(w1, w2, w3)=(ut∏ k i= 1 (a+Ai), ut·b∏ k i= 1 (a+Ai), u t·b·a n − k ∏ k i= 1 (a+Ai)),其中密钥t从 Z p 中随机选取, w3可被视为用于用户数量验证的元素。他们在系统参数并随机选择r ∈ Zp 。他们的方法可以描述如下:
– If A ∈ G, then w2w1A contains(a+ A)(b+ A) such that e((w2w1A)r, u 1 (a+A)(b+A))= e(u, u)r∏Ai∈G{A}(a+Ai) is computable from ur and the system parameter.
– If A∈/ G, w2wA 1= ut(b+A)∏k i=1(a+Ai) such that e((w2wA 1)r, u 1 (a+A)(b+A))= e(u, u)r t∏Ai∈G(a+Ai) a+A contains the inversion exponent 1 a+A, which is not computable from ur and the system parameter.
最后,作者们利用这些结果来加密消息,使得解密需要 A ∈ G。
4.2 一个简单的解决方案
一个简单的解决方案是将[13]中的广播加密方案与[15]提出的成员加密方案相结合。直观上,按照后者的思路,在密钥生成算法中,广播者为{A1, . . . , An}中的用户生成公钥/私钥对。用户Ai的公钥PKi包含组件ui= h γ αi和vi= hγβαi。随后,在群组生成过程中,分发者从{A1, . . . , An}中选择k个用户来创建群组G,并计算群令牌P(G)。我们注意到,群令牌的生成可以看作是[20]中累加器方案的一种扩展。分发者计算k次多项式F的系数Fi,其中F的根为被选用户Ai的身份标识,然后计算乘积∏ k i=0u Fit i 、∏ k i=0 v Fit i 和∏ k i=0 v Fit n−k+i 。我们注意到,计算这些乘积需要以“正确的顺序”使用用户A1, . . . , Ak公钥中的组件u1, . . . , uk以及 v1, . . . , vk。这意味着分发者在选择用户时存在受限的选择。事实上,对于某个数量k < n,必须选择{A1, . . . , An}中的前k个用户,即{A1, . . . , Ak}。因此,该方法对我们目的而言过于严格且不现实。
在算法GroupGen中,我们设想分发者希望不受顺序限制地选择特权用户。例如,他选取了用户A2, A4, A5, A8(其中k = 4< n)。根据文献[15]中提出的技术,他无法计算P(G),其中G ={A2, A4, A5, A8}。因此,我们找到了另一种技术,使得分发者可以任意选择其索引的特权用户,同时保持P(G)的形式来自[15],以验证被选用户的数量。为此,我们不构造多项式F(x),也不直接将(ui, v i)分配给用户。
相反,我们公开值 (ui, vi),并构造P(G) 的前三个元素 ut1·∏Ai∈G(xi+α) 0 , vt1·∏Ai∈G(xi+α) 0 , vt1·∏Ai∈G(xi+α) n−k .
4.3 我们的解决方案
我们的BED方案如下。
令GroupGen(1λ,n)为一个算法,该算法在输入安全参数 1λ时,输出一个配对群 PG=(G, GT,e,p, g),其中 G, GT是两个素数阶p= p(1λ,n)> n的循环群,g是 G 的一个生成元,且e: G× G → GT是一个双线性映射。该映射e满足以下性质:
– 对于所有 u v ∈ G,对于所有a, b ∈ Zp,e(ua, vb)= e(u v)ab,
– e(g, g)是 GT的一个生成元。
– 对于任意的u v ∈ G,计算e(ua在计算上是高效的。
设置 :输入安全参数 1λ、用户上限数量n以及用户组{A1,…, An},设置过程如下进行:
– Choose a pairing group PG=(G, GT, e, p, g).
– Choose α, β, γ ∈ Zp and h ∈ G at random. Compute e(gγ, g).
– Compute ui= hγ αi and vi= hγβαi fori ∈[0, n].
公共参数 PP定义为 PP=(G, GT,e,p, g, h, e(g γ, g), u0,…, un, v0,…, vn),主私钥 MSK定义为 MSK=(α, β, γ)。
密钥生成 :在输入公共参数 PP、主私钥 MSK 和用户 Ai(其中 i ∈[1,n])后,密钥生成算法执行如下步骤。随机选择 xi, si ∈ Z p 和 fi ∈G。计算私钥 SKi=(di0,…,din,) 为 di0= g −si, dii= g γ f si i , fori =j, dij= f si j . 将公钥PK设置为 PKi=(xi+ α,fi)。
群组生成 :在输入公共参数 PP,群组 G={A1,…, Ak} ∈ Z p (对于任意 1 ≤ k ≤ n),以及公钥 {PK1,…, PKk} 的情况下,群组生成 算法随机选择 t1,t2 ∈ Zp 并计算 P(G) 为 P(G)=(w1, w2, w3, w4, w5, w6) = ⎛ ⎝u t 1·∏A i ∈ G (xi+ α ) 0 , v t 1·∏A i ∈ G (xi+ α ) 0 , v t 1 ·∏A i ∈ G ( x i +α ) n−k , ∏ A i ∈G f t 2 i , g t 2 , e(g γ , g) t 2 ⎞ ⎠ =(hγ t1·∏Ai∈G(xi+α), hγβt1·∏Ai∈G(xi+α), hγβt1αn−k·∏Ai∈G(xi+α), ∏ Ai∈G f it2, gt2, e(gγ, g)t2)
验证 :输入 P(G) 和 k,若 e(w2,un)=e(w3, uk),则接受 | G| ≤k。
加密 :输入公共参数PP、令牌P(G)=(w1, w2, w3, w4, w5)和消息M ∈ GT后,加密算法执行如下步骤:
– 通过验证e(w1, v0)= e(w2, u0)来验证 w2= wβ 1。
– 随机选择r ∈ Zp。计算明文M上的密文C作为 C=(c1, c2, c3) =(wr 5, w r 6) = ⎛ ⎝grt2, ∏ Ai∈G f rt2 i , M · e(g, g)rt2γ ⎞ ⎠
解密 :输入一个用户Ai,其中i ∈[1,n],被选用户集合G,公钥/私钥对(PKi,SKi)以及密文C,解密 算法操作如下:检查集合G的基数:如果 |G| ≤ k则继续;否则中止。
– 计算配对 e1= e ⎛ ⎝dii · ∏ A j ∈G{Ai} dij, c1 ⎞ ⎠ · e(di0, c2) = e ⎛ ⎝g γ · f si i · ∏ A j ∈G{Ai} f si j , g rt2 ⎞ ⎠ · e ⎛ ⎝g −si, ∏ A j ∈G f rt2 j ⎞ ⎠ = e(g γ , g rt2) · e ⎛ ⎝∏ A j ∈G f s i j , g rt2 ⎞ ⎠ · e ⎛ ⎝g −s i , ∏ A j ∈G f rt 2 j ⎞ ⎠ = e(g γ , g rt 2)
– 通过M计算明文M e −1 1 · c3= e(g γ , g rt 2 ) −1 · M · e(g γ , g) rt 2= M
5 安全性分析
在提出我们的安全证明之前,我们回顾以下事实。[15]中提出的成员加密的安全性依赖于若干性质,包括群令牌 P(G) 在最大数量可追溯性方面是安全的(假设 (f,n)‐DHE问题是困难的),并且无条件保护G 中所有用户的隐私。Gentry–Waters广播加密[13]在判定性 BDHE假设下被证明是半静态安全的。
5.1 半静态安全性
直观上,攻击者 A必须恢复e(gγ, g)rt2才能解密密文 C。为此, A必须将密文中的c1= grt2与用户Ai ∈ S∗ 的某个私钥SKi中的组件配对,其中S∗是 A选择的挑战集合。这将得到期望的值e(gγ, g)rt2,该值被 val= e(∏Ai∈S ∗f si, grt2)所隐藏。当且仅当用户拥有正确的密钥组件以消除 val时,该值val才能被恢复。由于隐藏值 val通过用户Ai ∈ S∗的私钥中的随机性s进行了随机化,因此 A的攻击成功的概率可以忽略不计。形式化地,如下所示。
定理1 (半静态安全性)
设 A是针对上述系统的一个半静态攻击者。然后,存在一个算法 B,其运行时间与 A 大致相同,使得
AdvBEDASS(1 λ )= AdvBDHEnB(1 λ )
证明 B接收问题实例,其中包含gs、Z以及集合{gai; i ∈[0, n] ∪[n+ 2,2n]}。
初始化 。 A承诺一个用户集合S ⊆{A1,…,An}。
设置 。首先,B生成y0, . . . , yn ∈R Z p,并为Ai ∈S设置 fi= gyi,为Ai ∈{A1, . . . , An}\S设置fi= gyi+ai。此外,B设置 γ= y0 ·an+1。它随机选取α, β ∈R Z p,并设置 ui=hγ α i=hy0an+1 α i和 vi=h γβα i= hy0a n+1 βα i。它将公共参数设置为PP =(G, GT,e, p, g, h, e(g γ, g), u0, . . . , un, v0, . . . , vn),其中 e(g γ, g)可计算为 e(g a, gan )y 0。第二步,对于i ∈[1,n],随机从 Z p 中选择xi。将公钥 PKi设为PKi=(xi+ α,fi)。最后, B将P P和PKi发送给 A。
私钥查询 。 A仅允许为用户 Ai ∈{A1,…, An}\S 查询私钥。为了响应查询, B生成zi ∈R Z p ,设置si= zi −y0 · an+1−i,并输出SKi=(di0,…, din),其中 di0= g −s i , dii= g γ · f s i i , forj =i, di j = f s i j . B可以从问题实例计算出所有这些组件。例如, dii= gγ · f isi= gy0·an+1+(yi+ai)(zi−y0·an+1−i) 由于指数中的an+1项被约去,因此可以计算。
挑战 。 A选择一个用户集合S∗ ⊆ S,并 B设置s = rt2,其中r, t2 ∈ Zp,以及C =(c1,c2,c3),其中c1= gs,c2= ∏Ai∈S∗f s i且c3=M ·Z y0。它将C发送给 A。 B可以从问题实例中计算这些组件,因为c1和c3直接来自该问题实例。此外,由于B知道所有Ai ∈S∗的DLg(fi),它可以将c2计算为c2=∏Ai∈S∗f s ∗yj。
猜测阶段 。 最后,A输出一位 b′。B将 b′发送给挑战者。
从 A的角度来看, B的模拟与在[13]中定义的半静态游戏具有完全相同的分布。公共密钥和私钥的分布是适当的,因为γ,且值{DLg(fi)},{si}是均匀随机且独立的。当半静态游戏中b = 0时,C的生成方式与真实方案中的分布相同。在B的模拟中,我们验证了这一点也成立:当 b = 0时,c3= M · e(g、g)γ·s,因此挑战密文在随机性s = r t2下是有效的。当半静态游戏中b = 1时,C′=(c1, c2,c′ 3)的生成方式与真实方案中相同,但c′ 3被替换为c3= M · c(其中c ∈R GT),并将C =(c1,c2,c3)发送给 A。该分布与 B的模拟中的分布完全一致,其中c1对随机性s = r t 2,是有效的,但c = Z是 GT中的一个均匀随机元素。
由此可知,B在判定BDHE问题实例上的优势恰好等于 A在半静态攻击模型下的优势。
5.2 隐私
定理2 (隐私) P(G)无条件保护G中所有用户的隐私。
证明
设 P(G) 是由 G={A1,A2,…,Ak} 生成的群令牌,其中 k< n,且 t1 是 Zp 中的一个随机指数。我们有:
P(G)=(w1, w2, w3, w4, w5, w6) =(h γ t 1·∏A i ∈ G (xi+ α) , h γβt 1·∏A i ∈ G (xi+ α) , h γβt 1 α n − k·∏A i ∈ G (xi+ α ) , ∏ A i ∈G f t 2 i , g t 2 , e(g γ , g) t 2)
由于存在G′={A ′ 1 ,A ′ 2 ,…,A ′ k}以及t′ 1 ,t ′ 2 ∈R Z p 满足
t1 · ∏ Ai∈G (xi+ α)= t1′ · ∏ A′i∈G′( xi′+ α)
∏ Ai∈G f it2= ∏ A′i∈G′ f i′t2′
我们有P(G)也可以被视为为G′、t1′和t2′生成的群令牌。因此,P(G)中所有用户的隐私被无条件保留。
5.3 最大数量可问责性
在给出形式化证明之前,我们首先直观解释一下该方案为何具有最大数量可追溯性且是安全的。根据我们构造的设定,对于k个被选用户,我们有
P(G)=(w1, w2, w3, w4, w5, w6) =(w1, w β , w4, w5, w6).
通过Verify算法, w3的指数包含 αn−k,该值可被验证者获知。我们有 w1=hγ t1·∏Ai∈G(x i+α),其中多项式 ∏Ai∈G(xi+x)的次数最多为k 。否则,计算 w3需要 hγβαn+1 ,…, hγβαn′,而这些组件在Setup算法执行期间并未生成。
定理3 (最大数量可问责性) 假设(f,n)-DHE问题是困难的,则群令牌 P(G)具有最大数量可问责性且是安全的。
证明 设 A为在最大数量可问责性模型下破坏上述系统的攻击者。那么,存在一个算法 B能够解决(f,n)‐ DHE问题。 B按如下方式与 A交互。
挑战 。 设 PG=(G, GT, e,p, g)为配对群。B按如下步骤模拟公共参数。
– 它从 Z p中随机选择β0, γ0,并设置 α= a β=β0, γ= γ0,其中a是问题实例中的随机性。
– 它随机选取y ∈ Z p,并设置g= g0, h= g y 0。因此,我们得到: e(g γ , g)= e(g0, g0) y0, ui= h γ α i=(g a i 0) yγ0, vi= h γβα i=(g a i 0) yβ0 γ 0 .
– 对于 i ∈[1, n],随机从 Zp 中选择 si、xi,从 G 中选择 fi。将公钥设为 PKi=(xi+ α, fi)=(xi+a, fi), 私钥设为 SKi=(di0, . . . , din),其中 di0= g −s i= g −s i 0 , dii= g γ f s ii = g γ 0 0 f s ii,且对于 j = i,di j = f s i j。 所有项均可从问题实例中计算得出。 B生成了公共参数和密钥对,并将其发送给 A。
获胜 。 A输出(P(G), G,t),其中G={A1,…,Ak},但验证 算法输出 |G| < k。设P(G)=(w1, w2, w3, w4, w5, w6)。 如果验证 算法输出|G| = k′< k,则我们将P(G)表示为: P(G)=(w1, w2, w3, w4, w5, w6) =(w1, w β , w4, w5, w6) 此外,我们将w1写成 w1=ht1·∏Ai∈G(α+xi)=g y·t1·∏Ai∈G(a + i) 0 x。 B集合 f(x)=yβt1 ·xn−k′∏Ai∈G(x+xi),这是一个关于 Zp[x],的k次多项式函数,并输出(f(x), w3)作为(f, n)‐DHE问题的解。
5.4 分发者发起的一种简单但失败的攻击
除了我们之前给出的安全性证明外,我们还简要描述一种分发者应触发的简单攻击。
分发者可以选择k个用户G1={A1, . . . , Ak},并针对G1,计算 w1, w2, w3,但额外添加用户G2={Ak+1, . . . , Ak′},并针对 G1 ∪G2计算 w4, w5, w6。因此,当广播者验证群组的基数时,分发者将成功,随后广播者会为群组G1 ∪G2,加密消息,即为超过k个被选用户的群组加密。然而,当G1中的某个用户尝试解密密文时,他/她只知道G1中其他用户的身份(如果G2公开,该用户将发现作弊行为,因为被选用户的数量超过了k)。因此,由于缺乏对G2中用户身份的了解,无法恢复明文M,导致解密失败。
更准确地说,在 GroupGen 中,分发者选择两组用户 G1={A1,…,Ak} 和 G2={Ak+1,…,Ak′},其中 k ≤n 且 k< k′,并随机选择 t1,t2 ∈ Zp 。然后,他/她按如下方式计算 P(G):
– 对于值 w1, w2, w3,他/她考虑用户组 G1, 的含义
(w1, w2, w3) =(u t 1·∏A i ∈ G 1 (xi+ α) 0 , v t 1·∏A i ∈ G 1 (xi+ α) 0 , v t 1·∏A i ∈ G (xi+ α ) n−k )
=(h γ t 1·∏A i ∈ G 1 ( x i +α ) , h γβt 1·∏A i ∈ G 1 ( x i +α ) , h γβt 1 α n − k·∏A i ∈ G 1 ( x i +α ))
– 对于值 w4, w5, w6,他/她考虑用户组 G1 ∪G2,,其含义是
(w4, w5, w6)= ⎛ ⎝ ∏ Ai∈G1∪G2 f it2, gt2, e(gγ, g)t2 ⎞ ⎠ = ⎛ ⎝ ∏ Ai∈G1∪G2 f it2, gt2, e(gγ, g)t2 ⎞ ⎠
因此,当运行验证时,广播者接受为e(w2,un)= e(w3, uk)(该等式是由于|G1| ≤ k得到的)。然而,在加密时,广播者正确地验证了 w2= wβ 1,并在选择r ∈ Zp后, 计算密文C为
C=(c1, c2, c3)
=(wr 5, w r 6)
= ⎛ ⎝grt2, ∏ Ai∈G1∪G2 f rt2 i , M · e(g, g)rt2γ ⎞ ⎠
因此,广播者将消息加密给超过k个用户。最后,在运行 Decrypt时,我们有两种情况:
– 该用户属于G1。我们回顾一下,用户会运行Verify算法来验证令牌P(G),以确保G具有正确的基数。如果他/她知道G1 ∪G2,的身份,则由于k< |G1 ∪G 2| ≤ k′而中止操作。如果他/她只知道G1,中的身份,则他/她会按G1 ≤ k继续执行,但无法成功恢复消息
e1= e ⎛ ⎝dii · ∏ A j ∈G1{Ai} dij, c1 ⎞ ⎠ · e(di0, c2)
= e ⎛ ⎝g γ · f si i · ∏ A j ∈G1{Ai} f si j , g rt2 ⎞ ⎠ · e ⎛ ⎝g −si, ∏ A j ∈G1 ∪G2 f rt2 j ⎞ ⎠
= e(g γ , g rt 2 )· e ⎛ ⎝ ∏ A j ∈G1 f s i j , g rt 2 ⎞ ⎠ · e ⎛ ⎝g −s i , ∏ A j ∈G1 ∪ G 2 f rt 2 j ⎞ ⎠
= e(g γ , g rt 2 )· e ⎛ ⎝ g −s i , ∏ A j ∈G 2 f rt 2 j ⎞ ⎠
– 该用户属于G2。我们回顾一下,用户会运行 Verify算法来验证令牌P(G),以确保G具有正确的基数。如果他/她知道G1 ∪G2,中的身份,则由于k< |G1 ∪G2| ≤ k′而中止操作。如果他/她只知道G2,中的身份,则仅当G2 ≤ k时继续执行(否则中止),但无法成功恢复消息M
e1= e ⎛ ⎝dii · ∏ Aj ∈G2{Ai} dij, c1 ⎞ ⎠ · e(di0, c2)
= e ⎛ ⎝gγ · f si i · ∏ Aj ∈G2{Ai} f si j, grt2 ⎞ ⎠ · e ⎛ ⎝g−si, ∏ Aj ∈G1∪G2 f rt2 j ⎞ ⎠
= e(gγ, grt2)· e ⎛ ⎝ ∏ Aj ∈G2 f si j, grt2 ⎞ ⎠ · e ⎛ ⎝g−si, ∏ Aj ∈G1∪G2 f rt2 j ⎞ ⎠
= e(gγ, grt2)· e ⎛ ⎝g−si, ∏ Aj ∈G1 f rt2 j ⎞ ⎠
最终,由于用户组的基数错误而中止后,用户向广播者报告分发者可能存在的不当行为。
备注:识别作弊经销商 。 如前所述,在我们提出的框架中,我们采用了一些实际假设,即经销商确实是理性的。如果经销商作弊,则该经销商将被列入黑名单,并被排除在未来的业务之外。在解密算法的描述中,用户的这种作弊行为实际上是可以被识别的。注意,有效用户在执行解密时会有两种情况。对于情况1的第二个子情况,用户只知道集合G1,中的身份,因此用户可以检查等式e(c1,∏A i ∈G1 fi) =? e(g, c2)是否成立。如果该等式不成立,则说明c2一定是使用不等于G1,的集合进行加密的,这可能表明分发者存在作弊行为。类似地,相同的方法也适用于情况2的第二个子情况,即当用户只知道集合G2中的身份时。我们注意到,我们并不将其视为我们所提出框架的一部分,因为在实际中,只要用户能够成功解密内容,此问题可能并不影响其自身利益。
6 复杂度分析与性能评估
6.1 复杂度分析
在表2中,我们给出了本方案的复杂度分析。
| 算法 | Exp. in G | 指数运算 in G | T 逆运算 in GT | 配对 |
|---|---|---|---|---|
| 设置 | 2n + 3 | 1 | ||
| 密钥生成 | n + 2 | |||
| 群组生成 | k + 4 | 1 | ||
| 验证 | 2 | |||
| 加密 | 3 | 1 | 1 | |
| 解密 | 1 | 2 | ||
| 总计 | 3n +k + 12 | 2 | 1 | 6 |
指数运算和逆运算分别表示在群中的指数运算次数和逆运算次数。n和k分别表示用户集合S中的用户总数和被选中用户的数量。
我们注意到,Setup和KeyGen算法在用户数量n上是线性的。然而,这并不会带来太大问题,因为算法Setup的计算开销仅会被调用一次。有人可能会注意到,该方案中的KeyGen算法还有改进空间,因为该算法需要为每个用户单独执行。然而,我们也要指出,该算法对所有相关用户只需执行一次。更重要的是,GroupGen算法可能比Setup和KeyGen算法更快,即使它在被选用户数量k上是线性的,假设k << n。其余算法均为常数时间,这是理想的。事实上,我们可以设想,一旦为所有用户生成了密钥并创建了被选用户集合,系统便能够快速高效地执行加密和解密操作。
6.2 性能评估
在本节中,我们评估了我们方案的效率。我们使用广泛认可的密码学运算实现(指数运算和配对)来测量结果,这些实现基于Certivox为MIRACL认证服务器项目Wiki提供的MIRACL库。以下实验在Borland C/C++编译器/汇编器上进行,并在2.4 GHz Intel i5 520M处理器上进行了测试。
对于对称的基于配对的系统,使用具有80位密钥的高级加密标准和定义在 GF p 上的超奇异曲线,模数为512位p,嵌入次数等于2。
在表3中,我们评估了本方案的效率。在不失一般性的前提下,我们假设用户数量为n= 1000,被选用户数量为k= 100。
| 算法 | Exp. in G | Exp. in GT | Inv. in GT | 配对 | 时间(毫秒)/计算 |
|---|---|---|---|---|---|
| 1.49 | |||||
| 设置 | 2984.47 | 3.34 | |||
| 密钥生成 | 1492.98 | ||||
| 群组生成 | 154.96 | 0.36 | |||
| 验证 | 6.68 | ||||
| 加密 | 4.47 | 0.36 | 3.34 | ||
| 解密 | 0.36 | 6.68 |
时间为毫秒(ms)。Exp. 和 Inv. 分别表示群中的指数运算和逆运算次数。
7 结论
在本文中,我们提出了具有经销商模式的广播加密方案的概念。我们展示了一个需要此类密码学原语的实际场景。此外,我们讨论了在此类场景中出现的安全问题。我们提出了一组安全模型来捕捉这些需求,并随后给出了一个具体方案,该方案在DBDHE和DHE假设下被证明是安全的。后续工作将致力于获得此类方案的高效通用构造,并将其与本文提出的具体方案进行比较。

被折叠的 条评论
为什么被折叠?



