Page 350 - 《软件学报》2026年第4期
P. 350
苏航 等: 高效的区块链中可监管身份隐私保护方案 1791
(pp), 将公开参数 pp 和监管者公钥 pk a 发送给 A.
,
,
查询阶段: A 采用自适应策略查询预言机 O R O C O T . B 按照 ElGamal 加密方案 IND-CPA 安全性实验中的生
成方式响应 O R 、 O C 预言机查询. B 按照 ElGamal 加密方案 IND-CPA 安全性实验中的方式模拟执行 ElG.Enc 算
法和引理 3 中的模拟执行 ZK.ProofGen 算法, 由此响应 O T .
挑战阶段: A 将 (pk 0 , pk 1 ) 提交给 , 其中 pk 0 , pk 1 为两个用户的长期公钥. B 将 (pk 0 , pk 1 ) 作为挑战公钥交给
B
ElGamal 加密方案 IND-CPA 安全性实验中的仿真器 S e B 从 S e 处接收 ElGamal 加密方案 IND-CPA 安全性实验
.
R
中的挑战密文作为接收者身份监管密文 . r←{0,1}, 计算 pk r 对应的一次性地址 P r , R r . 将 C, P r , R r 交
C B 随机选取
给交易接收者身份一致性证明实验中仿真器 . S z 处接收交易接收者身份一致性证明 . C, P r , R r , π 作
S z B 从
π B 将
为 RRIPP.Tx 交给敌手 A.
猜测阶段: A 输出对 b 的猜测 . b 作为对 ElGamal 加密方案 IND-CPA 安全性实验的猜测交给 S e . 若 r , b,
′
b B 将
则 B 可将 RRIPP.Tx b 作为打破零知识证明的零知识性的实例.
B 能够以不可忽略的概率赢得 ElGamal 加密方案 IND-CPA 安
假设 A 可以不可忽略的概率 ϵ A 赢得实验, 则
全游戏, 打破交易接收者身份一致性证明的零知识性, 与假设矛盾, 定理得证, 即方案满足匿名性. 证毕.
(2) 交易接收者身份可监管性证明
定理 3. 在随机预言机模型下, 若零知识证明满足可靠性, 则 RRIPP 方案满足交易接收者身份可监管性.
证明: 假设 A 为可赢得 RRIPP 方案交易接收者身份可监管性实验的概率多项式时间敌手, 则仿真器 S 可利用
A 的能力, 构造打破交易接收者身份一致性证明可靠性的算法 B.
敌手 A 与算法 B 定义之间的实验如下.
( )
λ
初始化阶段: B 运行初始化算法 pp ← RRIPP.SetUp 1 , 执行监管者密钥生成算法 (sk a , pk a ) ← RRIPP.KeyGen
(pp), 将公开参数 pp 和监管者公钥 pk a 发送给 A.
,
查询阶段: A 采用自适应策略查询预言机 O R O C O T .
,
( ( ) ) ( )
*
*
*
*
*
*
*
伪造阶段: A 计算 RRIPP.Tx = P ,R ,C ,π * , 其中 P = pk g , C = C 1 = g ,C 2 = pk r pk r e 或者 P = pk r g ,
r t
′ r t
r e
r a
(
*
C = C 1 = g ,C 2 = pk r pk ′r e ) 提交给 B .
r e
a
(P ,C ,π ) 作为打破交易接收者身份一致性证明可靠性
*
*
*
假设 A 可以不可忽略的概率 ϵ A 赢得实验, 则 B 可将
的实例, 与假设矛盾, 定理得证, 即方案满足交易接收者身份可监管性. 证毕.
5 可监管的交易发送者身份隐私保护方案 RSIPP
本节首先提出了 RSIPP 方案所用的无需配对的可追踪环签名方案及其安全性证明, 随后给出了 RSIPP 方案
的详细设计, 最后给出方案的安全模型及安全性证明.
5.1 可追踪环签名
5.1.1 方案描述
TRS.SetUp
(1) 初始化算法
*
*
设 G 为素数阶 q 的循环群, g 为 G 的生成元. 设 H : {0,1} → Z 为密码学哈希函数. 环签名追踪者选择 sk a ∈ Z *
q q
作为追踪者私钥, 计算 pk a = g sk a 作为追踪者公钥. 输出公开参数 pp = {G,q,g, pk a ,H}.
(2) 密钥生成算法 TRS.KeyGen
* sk i
用户 i 随机选取 sk i ∈ Z 作为用户私钥, 计算用户公钥为 pk i = g .
q
(3) 环签名算法 TRS.Sig
{ }
环签名生成过程使用知识签名 (I) (M).
PoK ∃sk i ,i ∈ (1,...,n) : log g (pk i ) = log pk a
假设待签名消息为 M, 签名者生成环签名的步骤如下.
1) 签名者任意选取 n−1 个用户公钥, 与自身公钥进行混合得到集合 S = {pk 1 , pk 2 ,..., pk n }, 假设签名者为第 π
个用户 (1 ⩽ π ⩽ r), 签名者公钥为 pk π , 签名者私钥为 sk π .

