https://blog.csdn.net/jiongxv/article/details/127664010中两种方案的构造:
Claimability
syntax
Commitment
C
o
m
(
μ
;
r
)
→
c
{\rm Com}(\mu;r)\rightarrow c
Com(μ;r)→c.
properties:
- Hiding
I find another definition in other paper:
如果算法 A \mathcal{A} A被限制为PPT算法,则该方案称为computationally hiding。如果不限制这种算法的运行时间,则该方案是statistically hiding的 - Binding
PRF:pseudorandom function
transformation
思路:对环签名RS附加一个 ( v k , σ R S ) (vk,\sigma_{RS}) (vk,σRS)d承诺 c c c;验证算法只检查 σ R S \sigma_{RS} σRS。直观地说,由于承诺方案的隐藏特性,签名者的身份是隐藏的,直到他选择发布一个声明。
问题:
- 如果签名方恶意用不是自己的
v
k
vk
vk提交承诺怎么办
解决:提交 ( v k , σ R S ) (vk, \sigma_{RS}) (vk,σRS)上的标准签名。因此,标准签名的不可伪造性直观地保证,除非知道相应的签名密钥,否则签名者无法令人信服地对任何验证密钥提出声明 - 签名者必须记住承诺随机性,但最好签名者在签名和声明之间不需要是有状态的
解决:用PRF派生出承诺随机性。
Construction
首先生成一个正常环签名RS
用签名和公钥生成一个伪随机数,用于标准签名
(
v
k
,
σ
R
S
)
(vk,\sigma_{RS})
(vk,σRS)的随机数
用签名和公钥再生成一个伪随机数,用于承诺
(
v
k
,
σ
Σ
)
(vk,\sigma_{\Sigma})
(vk,σΣ)的随机数
生成的承诺作为可声明签名的一部分
承诺所用随机数和标准签名作为证明
Repudiability
Building blocks
ZAP
VRF:verifiable random function
VRF的一个重要性质是residualpseudorandomnes,也就是说,在对手没有收到证明的输入上,VRF的输出仍然与随机难以区分。
VRF的剩余伪随机性属性仍然成立,即使对手能够一次查询许多密钥对,并且能够自适应地选择学习一些秘密密钥(在这种情况下,剩余伪随机性只对未腐化的密钥成立)。
Construction
注意公钥的组成4+1+M:一个4维VRF公钥向量,ZAP的初始化参数
ρ
\rho
ρ,M维的v长比特码向量
私钥包括4维VRF对应的私钥,以及公钥本身。
这么做的理由:将验证密钥包含在sk中,以便Sign过程能够识别与signing key相对应的环中的verification key。
以上是准备阶段,开始生成签名:
6 为签名方的4个VRF密钥分别计算Eval和Prove
7 对每个环成员,用
Z
A
P
.
P
r
o
v
e
(
ρ
,
x
,
ω
)
ZAP.Prove(\rho,x,\omega)
ZAP.Prove(ρ,x,ω)证明关系:输入
x
i
x_i
xi包含签名的公共信息和VRF的salt和输出(都是可公开的);witness包括签名者的index和VRF.Prove生成的证明,以及一个随机的witness
问题:为什么只放了
τ
1
,
τ
3
\tau_1,\tau_3
τ1,τ3两个证明,还给另外两个预留了位置?
(或许因为两轮证明的基本做法)
8.生成的证明向量和VRF的输出和公共信息作为签名。
为什么这是一种有效的否认?
4中参与方和Sign中类似地用自己的私钥计算了VRF.Eval和VRF.Prove(用了同样的salt);如果是真正的签名者,计算出的
y
′
y'
y′应该与
y
y
y相等,如果不等的化,把包含这个不等于条件的关系提交一个有效的ZAP证明。验证时只要验证这个ZAP证明的关系的有效性即可。
分析
Claimability 签名可从普通RS转换:用PRF生成所需的所有随机数;用标准签名对环签名者公钥和环签名体生成签名;并将这个标准签名和签名者身份提交承诺;环签名和承诺作为签名。可声明性在于给出这个标准签名和承诺所用的随机值,签名可验证有效且可复现承诺值。
综合来看,可声明性的在于给予签名者以一对标准签名的优势,非签名者无法获知签名者掌握用私钥生成的签名,以及用于承诺的随机值。
Repudiability RS的构造:用VRF保护签名的秘密,用ZAP证明关系并生成环;验证ZAP的关系有效即可;可否认性取决于非签名者的私钥无法生成相同的VRF,故而用ZAP证明非签名者符合这个不相等关系;验证ZAP有效即可。
而可否认性则取决于用ZAP生成的否认关系,VRF保护的签名者信息及其证明和验证关系都被ZAP证明而不泄露知识。
对于前篇中提到疑惑的问题,也有了答案。