system: [SYSTEM]

user: 3. VF-OO-ABPRE方案定义及安全模型 本方案的系统中，主要包含5个实体：属性授权中心(attribute authority， AA)、数据拥有者(data owner， DO)、数据用户(data user， DU)、存储云服务商(storage-cloud service provider， S-CSP)、解密云服务商(decryption cloud service provider， D-CSP)、云服务代理商Proxy。 属性授权中心AA提供密钥生成服务，是一个完全可信的机构；数据拥有者DO可以使用移动设备加密明文信息并存储在云端；数据用户DU可以使用移动设备从云端下载密文并解密，包含两类：授权用户DU和被授权用户DU，授权用户DU可以直接解密由数据拥有者DO加密的原始密文，当数据需要重加密时，生成重加密密钥发送给云服务代理商Proxy，被授权用户DU用户只能解密被重加密的密文；云服务代理商Proxy提供数据密文重加密服务；存储云服务商S-DCP提供数据存储服务；解密云服务商D-CSP提供数据解密服务，所有的云服务商都是诚实且好奇的。 3.1. 方案形式化定义 离线/在线的可验证外包属性代理重加密方案(VF-OO-ABPRE)包含八个算法：系统初始化算法 S e t u p 、密钥生成算法 K e y G e n 、外包密钥生成算法 K e y G e n o u t 、加密算法Encrypt (包含离线加密算法 O f f l i n e . E n c 和在线加密算法 O n l i n e . E n c 两种)、重加密密钥生成算法 R e K e y G e n 、重加密算法 R e E n c r y p t 、重加密验证算法 R e E n c r y p t V e r i f y 、解密算法Decrypt (包含转换密文生成算法 T r a n s f o r m o u t 、转换密文解密算法 D e c r y p t o u t 两种)。其中，解密算法包含了初始密文解密算法Dec 1 和重加密密文解密算法Dec 2 。算法运行过程如下： 1) 系统初始化算法 S e t u p ( 1 λ ， U ) ：由可信方AA执行，输入系统参数 λ ∈ ℕ 和属性全集U，系统主密钥MSK和系统公钥PK，公开PK。 2) 密钥生成算法 K e y G e n ( P K ， M S K ， S ) ：可信方AA根据系统公钥PK，系统主密钥MSK和与用户相关的属性集S，为用户生成私钥SK S 并通过安全通道分发给用户。 3) 外包密钥生成算法 K e y G e n o u t ( S ， S K S ) ：用户DU输入自己的私钥SK S ，属性集合S，生成解密密钥Key用户秘密保存，外包密钥 D T K S 通过安全通道发给解密云服务商D-CSP。 4) 加密算法Encrypt a) 离线加密算法 O f f l i n e . E n c ( P K ， P ) ：数据拥有DO在闲时执行，输入系统公钥PK和假设用户最大可能的属性集合 P ⊆ U 。生成临时密钥TK保存在本地，输出中间密文ICH并将其上传至存储云服务商S-CSP。 b) 在线加密算法 O n l i n e . E n c ( P K ， m ， I C H ， T K ， ( M ， ρ ) ) ：数据拥有者DO在真正加密时执行，输入系统公钥PK，明文信息m，中间密文ICH，临时密钥TK，以及属性S满足的访问结构 A = ( M ， ρ ) ，生成初始密文 C ( M ， ρ ) 和验证标识 V K m 发送给存储云服务商S-CSP进行存储。 5) 重加密密钥生成算法 R e K e y G e n ( P K ， S K S ， ( M ′ ， ρ ′ ) ) ：授权用户DU根据系统公钥PK，用户自己私钥 S K S 和另一个访问结构 ( M ′ ， ρ ′ ) ，生成重加密密钥 R K S → ( M ′ ， ρ ′ ) 并发送给云服务器代理商Proxy。注意：其中访问结构 ( M ， ρ ) 和访问结构 ( M ′ ， ρ ′ ) 是不相交的。 6) 重加密算法 R e E n c ( P K ， R K S → ( M ′ ， ρ ′ ) ， C T ( M ， ρ ) ) ：云服务代理商Proxy根据系统公钥PK，重加密密文组件 R K S → ( M ′ ， ρ ′ ) ，加密初始密文 C T ( M ， ρ ) 得到重加密密文 C S → ( M ′ ， ρ ′ ) 和验证标识 V K m 并发送给解密云服务商D-CSP。 7) 重加密验证算法 R e E n c V e r i f y ( P K ， δ ， C 6 ， C 7 ) ：授权用户DU输入系统公钥PK，群元素 δ ，重加密密钥组件 ( C 6 ， C 7 ) ，验证重加密密文是否被云服务代理商Proxy正确加密。 8) 解密算法 D e c r y p t a) 初始密文解密算法Dec 1 · 转换密文生成算法 T r a n s f o r m o u t ( P K ， D T K S ， C ( M ， ρ ) ) ：解密云服务商D-CSP输入系统公钥 P K ，外包密钥 D T K S 和初始密文 C ( M ， ρ ) ，系统首先检验外包密钥 D T K S 中的属性集合 S 是否满足 C ( M ， ρ ) 中的访问结构 ( M ， ρ ) ，若满足，则预解密初始密文 C ( M ， ρ ) 得到外包解密转换密文 T C 并发送给授权用户DU。否则，输出 ⊥ ，终止操作。 · 转换密文解密 D e c r y p t o u t ( P K ， K e y ， T C ， V K m ) ：授权用户DU执行，输入解密密钥 K e y 、来自解密云服务商的外包解密转换密文 T C 、验证标识 V K m ，解密并对结果进行验证，验证正确得到明文 m 。否则，输出 ⊥ 。 b) 重加密密文解密算法Dec 2 · 转换密文生成算法 T r a n s f o r m o u t ( P K ， D T K S ′ ， C S → ( M ′ ， ρ ′ ) ) ：解密云服务商D-CSP输入系统公钥 P K ，外包密钥 D T K S ′ 和重加密密文 C S → ( M ′ ， ρ ′ ) ，系统首先检验外包密钥 D T K S ′ 中的属性集合 S ′ 是否满足 C S → ( M ′ ， ρ ′ ) 中的访问结构 ( M ′ ， ρ ′ ) ，若满足，则预解密重加密密文 C S → ( M ′ ， ρ ′ ) 得到外包解密转换密文 T C ′ 并发送给被授权用户DU。否则，输出 ⊥ ，终止操作。 · 转换密文解密 D e c r y p t o u t ( P K ， K e y ′ ， T C ′ ， V K m ) ：被授权用户DU执行，输入解密密钥 K e y ′ 、来自解密云服务商的外包解密转换密文 T C ′ 、验证标识 V K m ，解密并对结果进行验证，验证正确得到明文m。否则，输出 ⊥ 。 3.2. 方案安全模型 选择性选择明文攻击(selective chosen plaintext attack， s-CPA)安全博弈游戏：一个VF-OO-ABPRE方案是s-CPA安全的，则没有一个敌手 A 能在概率多项式时间(PPT)内以不可忽略的优势赢得下面的博弈。定义 C 为挑战者， λ 为系统安全参数， U 为属性全集。博弈游戏如下： 初始化阶段 I n i t A 选择一个挑战的访问结构 ( M * ， ρ * ) 。 系统建立阶段 S e t u p C 运行系统初始化算法 S e t u p ( 1 λ ， U ) 得到系统主密钥 M S K 和系统公钥 P K ，输出系统公钥 P K 给 A ，自己保留主密钥 M S K 。 查询阶段1 P h a s e   1 A 可以重复向预言机进行如下查询： 1) 私钥查询 O s k ( S ) ： A 提交一个属性集合S，该属性集合S不满足挑战访问结构 ( M * ， ρ * ) ， C 运行私钥生成算法 K e y G e n ( P K ， M S K ， S ) 和外包密钥生成算法 K e y G e n o u t ( S ， S K S ) ，并返回私钥 S K S 和外包密钥 D T K S 给 A 。 2) 重加密密钥查询 O r k ( S ， ( M ′ ， ρ ′ ) ) ： A 提交一个属性集合S，该属性集合S不满足挑战访问结构 ( M * ， ρ * ) ，满足访问结构 ( M ′ ， ρ ′ ) ， C 运行重加密密钥生成算法 R e K e y G e n ( P K ， S K S ， ( M ′ ， ρ ′ ) ) 返回 R K S → ( M ′ ， ρ ′ ) 给 A 。其中 S K S 由算法 K e y G e n ( P K ， M S K ， S ) 生成。 挑战阶段 C h a l l e n g e A 输出两个相同长度的消息 m 0 和 m 1 给 C 。 C 随机选择 b ∈ { 0 ， 1 } 并运行加密算法 O n l i n e . E n c ( P K ， m b ， I C H * ， T K * ， ( M * ， ρ * ) ) 得到挑战密文 C b 给 A 。其中 O f f l i n e . E n c ( P K ， P ) → ( T K * ， I C H * ) 。 查询阶段2 P h a s e   2 A 继续查询阶段1中的查询。 猜测阶段 G u e s s A 输出一个猜测 b ′ ∈ { 0 ， 1 } 。如果 b ′ = b ，则 A 获胜。 A 获胜的优势被定义为： ε 1 = A d v A s − C P A ( λ ) = | P r [ b ′ = b ] − 1 2 | 。 定义3.1 一个VF-OO-ABPRE方案是s-CPA安全的，则没有一个敌手 A 能在概率多项式时间(PPT)内以不可忽略的优势赢得上面的博弈，即 ε 1 ≤ n e g l ( λ ) 。 可验证博弈游戏：可验证主要是确保外包解密阶段的转换密文是否被正确执行。一个VF-OO-ABPRE方案具有可验证性，则没有一个敌手 A 能在概率多项式时间(PPT)内以不可忽略的优势赢得下面的博弈。定义 C 为挑战者， λ 为系统安全参数， U 为属性全集。博弈游戏如下： 系统建立阶段 S e t u p C 运行系统初始化算法 S e t u p ( 1 λ ， U ) 得到系统主密钥 M S K 和系统公钥 P K ，输出系统公钥 P K 给 A ，自己保留主密钥 M S K 。 查询阶段1 P h a s e   1 A 可以重复向预言机进行如下查询： 1) 私钥查询 O s k ( S ) ： A 提交一个属性集合S，该属性集合S不满足挑战访问结构 ( M * ， ρ * ) ， C 运行私钥生成算法 K e y G e n ( P K ， M S K ， S ) 和外包密钥生成算法 K e y G e n o u t ( S ， S K S ) ，并返回私钥SK S 和外包密钥 D T K S 给 A 。 2) 重加密密钥查询 O r k ( S ， ( M ′ ， ρ ′ ) ) ： A 提交一个属性集合S，该属性集合S不满足挑战访问结构 ( M * ， ρ * ) ，满足访问结构 ( M ′ ， ρ ′ ) ， C 运行重加密密钥生成算法 R e K e y G e n ( P K ， S ， S K S ， ( M ′ ， ρ ′ ) ) 返回 R K S → ( M ′ ， ρ ′ ) 给 A 。其中SK S 由算法 K e y G e n ( P K ， M S K ， S ) 生成。 挑战阶段 C h a l l e n g e A 输出两个相同长度的消息 m 0 和 m 1 以及一个挑战访问结构 ( M * ， ρ * ) 给 C 。 C 随机选择 b ∈ { 0 ， 1 } 并运行加密算法 O n l i n e . E n c ( P K ， m b ， I C H * ， T K * ， ( M * ， ρ * ) ) 得到挑战密文 C b 给 A 。其中 O f f l i n e . E n c ( P K ， P ) → ( T K ∗ ， I C H ∗ ) 。 查询阶段2 P h a s e   2 C 按照查询阶段1的方式响应 A 的询问。但是 A 不能询问满足访问结构 ( M * ， ρ * ) 的属性集合S。 猜测阶段 G u e s s A 输出满足挑战访问结构 ( M * ， ρ * ) 的属性集合 S * 和满足属性集合 S * 的外包解密转换密文 T C * 。若能成功恢复出明文 m b ，则 A 获胜。 A 获胜的优势为 ε 2 = A d v A V e r . ( λ ) = | P r [ A Wins ] | 。 定义3.2 一个VF-OO-ABPRE方案具有可验证性，则没有一个敌手 A 能在概率多项式时间 ( P P T ) 内以不可忽略的优势赢得上面的博弈，即 ε 2 ≤ n e g l ( λ ) 。 抗共谋攻击博弈游戏：一个VF-OO-ABPRE方案是抗共谋攻击的。则没有一个敌手 A 能在概率多项式时间(PPT)内以不可忽略的优势赢得下面的博弈。定义 C 为挑战者， λ 为系统安全参数， U 为属性全集。博弈游戏如下： 系统建立阶段 S e t u p C 运行系统初始化算法 S e t u p ( 1 λ ， U ) 得到系统主密钥 M S K 和系统公钥 P K ，输出系统公钥 P K 给 A ，自己保留主密钥 M S K 。 查询阶段Phase重加密密钥查询 O r k ( S * ， ( M ′ ， ρ ′ ) ) ： A 提交一个属性集合 S * ⊆ U ，该属性集合 S * 不满足访问结构 ( M ′ ， ρ ′ ) ，如果 S * 从未被询问过， C 首先运行 K e y G e n ( P K ， M K ， S * ) 生成 S K S * ，运行重加密密钥生成算法 R e K e y G e n ( P K ， S * ， S K S * ， ( M ′ ， ρ ′ ) ) 并返回 R K S * → ( M ′ ， ρ ′ ) 给 A 。同时运行 K e y G e n ( P K ， M K ， S ′ ) 得到 S K S ' 发送给 A ，其中 S K S ' 满足访问结构 ( M ′ ， ρ ′ ) 。 挑战阶段 C h a l l e n g e 最后， A 提交一个密钥 S K S ' ' ，如果 S K S ″ = S K S * 则 A 赢得游戏。 A 赢得游戏的优势为 ε 3 = A d v A C R ( λ ) = | P r [ S K S ″ = S K S * ] − 1 2 | 。 定义3.3 一个VF-OO-ABPRE方案是抗共谋攻击的。则没有一个敌手 A 能在概率多项式时间(PPT)内以不可忽略的优势赢得上面的博弈，即 ε 3 ≤ n e g l ( λ ) 。