学习笔记:DualRing (2):About proof

上一篇博文中,为了简化理解,省略了原文中关于证明的部分,现在来把这部分补上

Proof of Type-T AOS Ring Signature

AOS Ring Signature from Canonical Identification T

Type-T AOS ring signature 的安全性未被证明,用Canonical Identification 代替type-T签名定义AOS环签名:
(1)
在这里插入图片描述
(2)
在这里插入图片描述
在这里插入图片描述

Proof of unforgeability

KR-KOA:在唯密钥攻击(攻击者只知道公钥)下的密钥(私钥)恢复安全性-DLP assumption。
Special Soundness:一个canonical identification被称作是Special Soundness的,如果如果存在一个抽取器算法 E x t {\rm Ext} Ext,对于所有的 ( p k , s k ) ∈ K e y G e n ( ⋅ ) (pk,sk)\in {KeyGen}(\cdot) (pk,sk)KeyGen(),给定任意两个可接受的文本 ( R , c , z ) , ( R , c ′ , z ′ ) (R,c,z),(R,c',z') (R,c,z),(R,c,z)(其中 c ≠ c ′ c\neq c' c=c),有 P r [ ( s k ∗ , p k ) ∈ K e y G e n ( ⋅ ) ∣ s k ∗ ← E x t ( p k , R , c , z , c ′ , z ′ ) ] = 1 Pr[(sk^*,pk)\in{KeyGen}(\cdot)|sk^*\leftarrow Ext(pk,R,c,z,c',z')]=1 Pr[(sk,pk)KeyGen()skExt(pk,R,c,z,c,z)]=1

证明:如果canonical identification满足Special Soundness,则可证明AOS RS在KR-KOA下的不可伪造性安全性
(逆反命题:可伪造 → \rightarrow break KR-KOA)
(再通俗一点,就是敌手已知公钥,(并且可以任意查询签名和其他hash,sk)如果可以伪造新签名,则可(在SS的抽取器帮助下)恢复出私钥,打破KR)
在这里插入图片描述
证明: A : \mathcal{A}: A:打破AOS环签名的不可伪造性的PPT敌手,构建一个算法 B \mathcal{B} B来破解Type-T签名的KR-KOA。假设 B \mathcal{B} B从挑战者 C T \mathcal{C}_T CT得到公共参数 p a r a m param param和公钥 p k ∗ pk^* pk

Setup.

  1. B \mathcal{B} B 随机选择index i ∗ ∈ [ 1 , q k ] i^*\in[1,q_k] i[1,qk].
  2. B \mathcal{B} B运行 K e y G e n ( ) → ( p k i , s k i ) , i ∈ [ 1 , q k ] , i ≠ i ∗ KeyGen()\rightarrow(pk_i,sk_i),i\in[1,q_k],i\neq i^* KeyGen()(pki,ski),i[1,qk],i=i. p k i ∗ = p k ∗ pk_{i^*}=pk^* pki=pk.
  3. C \mathcal{C} C p a r a m param param S : = { p k i } i = 1 q k S:=\{pk_i\}_{i=1}^{q_k} S:={pki}i=1qk发送给 A \mathcal{A} A.
  4. B \mathcal{B} B维护一个初始化为空的表 H \mathcal{H} H.

Oracle Simulation. B \mathcal{B} B回答查询:

  • H : B H:\mathcal{B} H:B H H H模拟为一个random oracle. 对第k个不同的查询with输入 ( m , p k , R ) (m,{\rm pk},R) (m,pk,R),选择一个随机的 c ∈ Δ c c\in\Delta_c cΔc.将 ( k , m , p k , R , c ) (k,m,{\rm pk},R,c) (k,m,pk,R,c)放入 H \mathcal{H} H,返回 c c c.
  • C O : \mathcal{CO}: CO:输入 i i i,返回 s k i sk_i ski(如果 i = i ∗ i=i^* i=i,终止)
  • S O : \mathcal{SO}: SO:输入消息 m m m,公钥集 p k {\rm pk} pk其中签名者的index 是 j j j.
    如果 j ≠ i ∗ j\neq i^* j=i,返回签名 σ ← S I G N ( p a r a m , m , p k , s k j ) \sigma\leftarrow {\rm SIGN}(param,m,{\rm pk},sk_j) σSIGN(param,m,pk,skj).
    如果 j = i ∗ j= i^* j=i, B \mathcal{B} B:
    (1)随机选择 c 1 , z 1 , . . . , z n ∈ Z p c_1,z_1,...,z_n\in\mathbb{Z}_p c1,z1,...,znZp.
    (2) 对于 i = 1 , . . . , n i=1,...,n i=1,...,n计算 R i = V ( p k i , z i , c i ) , c i + 1 = H ( m , p k , R i ) R_i=V(pk_i,z_i,c_i),c_{i+1}=H(m,{\rm pk},R_i) Ri=V(pki,zi,ci),ci+1=H(m,pk,Ri).(如果 ( ⋅ , m , p k , R n , ⋅ ) (\cdot,m,{\rm pk},R_n,\cdot) (,m,pk,Rn,) H \mathcal{H} H中已存在,重新选取 c 1 , z 1 , . . . , z n ∈ Z p c_1,z_1,...,z_n\in\mathbb{Z}_p c1,z1,...,znZp).
    返回 σ = ( c 1 , z 1 , . . . , z n ) \sigma=(c_1,z_1,...,z_n) σ=(c1,z1,...,zn).
    B \mathcal{B} B simulate hash, corrupt secret key, sign可回答 A \mathcal{A} A的任意查询,但 B \mathcal{B} B无法获得 s k i ∗ sk_{i^*} ski

Challenge.

  • A \mathcal{A} A返回一个伪造 ( m ∗ , p k ∗ , σ ∗ = ( c 1 ∗ , z 1 ∗ , . . . , z n ∗ ) ) (m^*,{\rm pk}^*,\sigma^*=(c_1^*,z_1^*,...,z_n^*)) (m,pk,σ=(c1,z1,...,zn)). 定义 p k ∗ = { p k 1 , . . . , p k n } {\rm pk}^*=\{pk_1,...,pk_n\} pk={pk1,...,pkn}.如果 p k ∗ ≠ p k j ∗ pk^*\neq pk_{j^*} pk=pkj,终止;否则有 p k ∗ = p k j ∗ pk^*= pk_{j^*} pk=pkj.
  • B \mathcal{B} B
    (1) 对 i = 1 , . . . , n i=1,...,n i=1,...,n,计算 R i ∗ = V ( p k i , z i ∗ , c i ∗ ) , c i + 1 ∗ = H ( m ∗ , p k ∗ , R i ∗ ) R_i^*=V(pk_i,z_i^*,c_i^*),c_{i+1}^*=H(m^*,{\rm pk}^*,R_i^*) Ri=V(pki,zi,ci),ci+1=H(m,pk,Ri)
    (2) 注意对于任意 i ∈ [ 1 , n ] , ( ⋅ , m ∗ , p k ∗ , R i ∗ , c i + 1 ∗ ) ∉ H i\in[1,n],(\cdot,m^*,{\rm pk}^*,R_i^*,c_{i+1}^*)\notin\mathcal{H} i[1,n],(,m,pk,Ri,ci+1)/H的概率是 1 ∣ Δ c ∣ \frac{1}{|\Delta_c|} Δc1。 所有的 i i i都满足 ( ⋅ , m ∗ , p k ∗ , R i ∗ , c i + 1 ∗ ) ∈ H (\cdot,m^*,{\rm pk}^*,R_i^*,c_{i+1}^*)\in\mathcal{H} (,m,pk,Ri,ci+1)H的概率至少为 ( 1 − 1 ∣ Δ c ∣ ) n ≥ 1 − n ∣ Δ c ∣ (1-\frac{1}{|\Delta_c|})^n\geq1-\frac{n}{|\Delta_c|} (1Δc1)n1Δcn
    (3)在这种情况下,存在至少一个index i i i ( k i , m ∗ , p k ∗ , R i − 1 ∗ , c i ) ∈ H (k_i,m^*,{\rm pk}^*,R_{i-1}^*,c_i)\in\mathcal{H} (ki,m,pk,Ri1,ci)H ( k i + 1 , m ∗ , p k ∗ , R i ∗ , c i + 1 ) ∈ H (k_{i+1},m^*,{\rm pk}^*,R_i^*,c_{i+1})\in\mathcal{H} (ki+1,m,pk,Ri,ci+1)H k i > k i + 1 k_i> k_{i+1} ki>ki+1. 称这种索引为reverse index。 reverse index存在是因为这些H查询形成了一个环,以至少 1 / n 1/n 1/n的概率,index j ∗ j^* j是一个reverse index。
    (4) B \mathcal{B} B rewind回到查询 H ( m ∗ , p k ∗ , R j ∗ − 1 ∗ ) H(m^*,{\rm pk}^*,R_{j^*-1}^*) H(m,pk,Rj1)的点并得到一个不一样的 c j ∗ ′ c_{j^*}' cj A \mathcal{A} A返回另一个签名 σ ′ = ( c 1 ′ , z 1 ′ , . . . , z n ′ ) \sigma'=(c_1',z_1',...,z_n') σ=(c1,z1,...,zn).
    (5) 因为 j ∗ j^* j是reverse index, R j ∗ ∗ R_{j^*}^* Rj σ \sigma σ σ ′ \sigma' σ保持不变。因为 σ \sigma σ σ ′ \sigma' σ都是有效签名,有:
    R j ∗ ∗ = V ( p k j ∗ , z j ∗ ∗ , c j ∗ ∗ ) = V ( p k j ∗ , z j ∗ ′ , c j ∗ ′ ) R_{j^*}^*=V(pk_{j^*},z_{j^*}^*,c_{j^*}^*)=V(pk_{j^*},z_{j^*}',c_{j^*}') Rj=V(pkj,zj,cj)=V(pkj,zj,cj).
    因此,有两个有效的文本 ( R j ∗ ∗ , c j ∗ ∗ , z j ∗ ∗ ) , ( R j ∗ ∗ , c j ∗ ′ , z j ∗ ′ ) , c j ∗ ∗ ≠ c j ∗ ′ (R_{j^*}^*,c_{j^*}^*,z_{j^*}^*),(R_{j^*}^*,c_{j^*}',z_{j^*}'),c_{j^*}^*\neq c_{j^*}' (Rj,cj,zj),(Rj,cj,zj),cj=cj.
    (6) 因为 T T T的special soundness属性,存在一个extractor E x t {\rm Ext} Ext可以输出 p k ∗ pk^* pk对应的 s k ∗ sk^* sk. B \mathcal{B} B s k ∗ sk^* sk攻破key recovery under key only attack(KR-KOA).

问题:证明中用的simulate-rewind是什么原理?

  1. 参考从「模拟」理解零知识证明,其中关于模拟器与理想世界的解释:在这里插入图片描述
  2. 参考读心术:从零知识证明中提取「知识」,安全的交互协议的三个性质分别是完备性、可靠性与零知识。其中完备性(Prover在没有知识的情况下不能通过Verifier的验证)表示:在这里插入图片描述
    如何检验Prover的知识?:借助理想世界中的超能力,可以把对面的Prover 的知识「抽取」出来,而在现实世界中没有超能力,所以还是零知识的。这个超能力就是rewind

Proof of anonymous

在这里插入图片描述
在这里插入图片描述
Challenge.

  • A 1 \mathcal{A}_1 A1 B \mathcal{B} B: m , p k m,{\rm pk} m,pk i 0 , i 1 i_0,i_1 i0,i1
  • B \mathcal{B} B随机选择 c 1 , z 1 , . . . , z n ∈ Z p c_1,z_1,...,z_n\in \mathbb{Z}_p c1,z1,...,znZp,对于 i = 1 , . . . , n i=1,...,n i=1,...,n,计算 R i = V ( p k i , z i , c i ) , c i + 1 = H ( m , p k , R i ) R_i=V(pk_i,z_i,c_i),c_{i+1}=H(m,{\rm pk},R_i) Ri=V(pki,zi,ci),ci+1=H(m,pk,Ri),令 H ( m , p k , R n ) = c 1 H(m,{\rm pk},R_n)=c_1 H(m,pk,Rn)=c1
    (如果哈希值已经被 H H HOracle查询过,重新选取 c 1 , z 1 , . . . , z n ∈ Z p c_1,z_1,...,z_n\in\mathbb{Z}_p c1,z1,...,znZp
  • 返回 σ = ( c 1 , z 1 , . . . , z n ) \sigma=(c_1,z_1,...,z_n) σ=(c1,z1,...,zn) { ω i } i = 1 q k \{\omega_i \}_{i=1}^{q_k} {ωi}i=1qk A 2 \mathcal{A}_2 A2. B \mathcal{B} B随机选择一个bit b b b.
    Output.
    A 2 \mathcal{A}_2 A2输出一个bit b ′ b' b,注意在生成签名 σ \sigma σ中没用到 b b b,所以 A 2 \mathcal{A}_2 A2仅可以1/2的概率赢。

Proof of DualRing

为Canonical Identification定义了新的安全性模型:special impersonation under key only attack,是impersonation attack和 special soundness的结合,敌手通过输出两个具有相同承诺的有效文本而获胜。
在这里插入图片描述
用这个代替special soundness together with key recovery under key only attack的原因:DualRing-LB有效的lattice-based identification不满足标准的special soundness定义,这起源于有效格基ZKP的knowledge gap. 方法中的知识抽取器不能保证恢复给定pk的sk,而是恢复一个与公私钥对的关系密切相关的放松关系的近似见证。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值