system: [SYSTEM]

user: 4. 安全性分析及证明 4.1. 正确性 当数据接收方的属性列表满L足访问控制策略W时，接收方利用获得的用户私钥 S K L ，可以成功运行解密算法，从而获得数据的明文信息。下面从两个方面验证计算的正确性： 1) 验证外包计算。 C D ∏ i = 1 n e ( C i ， 1 ， D 1 ) = ∏ i = 1 n e ( C i ， 1 ， D i ， 2 ) ∏ i = 1 n e ( g 1 s i ， g 2 r ) = e ( g 1 ， g 2 ) r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i e ( g 1 ， g 2 ) ∑ i = 1 n s i ⋅ r = e ( g 1 ， g 2 ) r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i e ( g 1 ， g 2 ) r s = e ( g 1 ， g 2 ) ∑ i = 1 n a i ， t ⋅ s i ⋅ r i = E 2) 验证解密计算。 C ′ e ( C 0 ， D 0 ) ∏ i = 1 n e ( C i ， t ， 1 ， D i ， 1 ) = C ˜ ⋅ C D e ( h s ， g 2 α + r β ) ∏ i = 1 n e ( A i ， t s i ， g 2 r i ) = C ˜ ⋅ ∏ i = 1 n e ( C i ， 1 ， D i ， 2 ) e ( g 1 β s ， g 2 α + r β ) ∏ i = 1 n e ( g 1 a i ， t ⋅ s ， g 2 r i ) = M Y s ⋅ ∏ i = 1 n e ( C i ， 1 ， D i ， 2 ) e ( g 1 β s ， g 2 α + r β ) ∏ i = 1 n e ( g 1 a i ， t ⋅ s ， g 2 r i ) = M ⋅ e ( g 1 ， g 2 ) α s ⋅ e ( g 1 ， g 2 ) r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i e ( g 1 ， g 2 ) α s + r s ∏ i = 1 n e ( g 1 a i ， t ⋅ s ， g 2 r i ) = M ⋅ e ( g 1 ， g 2 ) α s + r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i e ( g 1 ， g 2 ) α s + r s e ( g 1 ， g 2 ) ∑ i = 1 n a i ， t ⋅ s i ⋅ r i = M ⋅ e ( g 1 ， g 2 ) α s + r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i e ( g 1 ， g 2 ) α s + r s + ∑ i = 1 n a i ， t ⋅ s i ⋅ r i = M 4.2. 安全性 本方案在安全模型下达到了选择明文攻击的不可区分性安全。证明如下： Proof：假设攻击者A在游戏G 0 和G中有不可忽略的优势差异e，构造一个能以e的优势打破DDH假设的模拟器B。 首先给出DDH假设模型，挑战者随机选取 a ， b ， c ∈ Z p ，设置一个四元组 ( g ， g a ， g b ， g c ) 。挑战者随机抛币，任选 u ∈ ( 0 ， 1 ) ，如果 u = 0 ，令 e ( g 1 ， g 2 ) c = e ( g 1 ， g 2 ) a b ，选择G游戏；否则 u = 1 ，令 e ( g 1 ， g 2 ) c ∈ G T 为随机值，进行G 0 游戏。 Init：模拟器B与攻击者A进行初始化交互。攻击者A选择两个要挑战的密文策略 W 0 = [ W 0 ， 1 ， W 0 ， 2 ， ⋯ ， W 0 ， n ] ， W 1 = [ W 1 ， 1 ， W 1 ， 2 ， ⋯ ， W 1 ， n ] 提交给模拟器B，B随机选取 u ∈ { 0 ， 1 } 。 Setup：B任意选取 x ′ ∈ Z p ，设置 α = a b c + x ′ ，则 Y = e ( g 1 ， g 2 ) a b c + x ′ ，对于每个属性 i ( 1 ≤ i ≤ n ) ，模拟器B计算 A i ， t ，计算方法如下： A i ， t = { g 1 a i ， t ， ν i ， t ∈ W i ， t i g 1 b ⋅ a i ， t ， ν i ， t ∉ W i ， t i ( 1 ≤ t ≤ n i )，然后向攻击者A发送公钥PK。 Phase 1：攻击者A在一次密钥查询中提交一个属性列表 L = [ L 1 ， ⋅ ⋅ ⋅ ， L n ] ，我们仅考虑L同时不满足 W 0 和 W 1 的情况(如果L同时满足 W 0 和 W 1 ，则挑战的信息 M 0 和 M 1 相同，即游戏G和G 0 就会相同，因此攻击者A在这两个游戏中的优势将没有区别)， S K L 中的参数如下： D 0 = g 2 a b c + x ′ + r β ， D 1 = g 2 r ，当 L i ∉ W i 时， D i ， 1 = g 2 r i ，密钥 S K L 返回给攻击者A，转换密钥 T K = { r ， { D i ， 1 } 1 ≤ i ≤ n } 发送给外包服务器。 Challenge：攻击者A选择两个挑战信息 M 0 和 M 1 。模拟器B对 { M u } u ∈ { 0 ， 1 } 进行加密，令 s = c ，则密文为： C ˜ = M u Y s = M u e ( g 1 ， g 2 ) ( a b c + x ′ ) c = M u e ( g 1 ， g 2 ) a b ⋅ e ( g 1 ， g 2 ) x ′ c = M u e ( g 1 ， g 2 ) c ⋅ e ( g 1 ， g 2 ) x ′ c ， C 0 = h s = h c 。当 u = 0 时， e ( g 1 ， g 2 ) c = e ( g 1 ， g 2 ) a b ；当 u = 1 时， e ( g 1 ， g 2 ) c 为随机值，因此， C ˜ 为 G T 群中的随机值。模拟器B选取随机值 ，计算 { C i ， t ， 1 } 1 ≤ t ≤ n i = A i ， t s i = g 1 b ⋅ a i ， t ⋅ s i 和 C i ， 1 = g 1 s i ，把密文 C T = { C ˜ ， C 0 ， { C i ， 1 ， { C i ， t ， 1 } 1 ≤ t ≤ n i } 1 ≤ i ≤ n } 发送给外包服务器，外包服务器通过转换密钥TK将密文CT进行转换，首先计算 C D = ∏ i = 1 n e ( C i ， 1 ， D i ， 2 ) = e ( g 1 ， g 2 ) r s + ∑ i = 1 n b ⋅ a i ， t ⋅ s i ⋅ r i = e ( g 1 ， g 2 ) r c + ∑ i = 1 n b ⋅ a i ， t ⋅ s i ⋅ r i ， 1 ≤ t ≤ n i ， ，然后将转换后的密文 C ′ = C ˜ ⋅ C D 发送给攻击者A。 Phase 2：重复Phase 1的过程，继续进行私钥问询。 Guess：攻击者A输出对u的猜测 u ′ 。如果 ，挑战者输出1；否则，输出0。通过我们之前的假设，攻击者A在游戏G中猜测正确u的可能性相比在游戏G 0 中正确猜出u有e的优势。当 e ( g 1 ， g 2 ) c = e ( g 1 ， g 2 ) a b 时，攻击者A猜测游戏为G；当 e ( g 1 ， g 2 ) c 是随机值时，攻击者A猜测游戏为G 0 。因此，模拟器B在DDH游戏中有e的优势，即最后攻破了DDH问题。