迭代哈希函数下Fiat - Shamir签名的不安全性
1. 引言
1.1 Fiat - Shamir签名
Fiat - Shamir范式是一种通用方法,它通过使用密码哈希函数“折叠”交互,从三轮公共硬币交互式协议生成数字签名方案。假设(α, β, γ)是三轮公共硬币身份验证协议的一个记录,其中α是证明者发送的第一条消息,β是验证者发送的随机查询,γ是证明者对β的回复。为了消除交互并将其转换为数字签名方案,Fiat - Shamir范式采取以下步骤:
1. 设H是一个函数集合。签名者从H中选取一个哈希函数h,并将vk = (vk′, h)作为公钥发布,其中vk′是底层身份验证协议的验证密钥。
2. 签名者(即初始身份验证协议中的证明者)生成α,自己计算β = h(α, m),最后生成γ,使得(α, β, γ)是底层身份验证协议中的一个接受记录。
3. 由于合法签名者知道与vk′对应的私钥,他可以为任何β生成γ,使得(α, β, γ)是一个接受记录。签名者输出(α, β, γ)作为消息m在基于底层交互式协议和哈希函数h的Fiat - Shamir范式生成的数字签名方案中的签名。
Fiat和Shamir提出,如果底层交互式协议是可靠的,那么生成的Fiat - Shamir签名方案在“理想”模型(其中哈希函数是理想函数)中是安全的。后来,这一结论在随机预言机模型中得到了正式验证。然而,当在“现实”世界中实现(随机预言机被真实的密码函数集合取代)时,出现了负面结果。Goldwasser和Kalai证明,存在一个三轮公共硬币协议,它作为身份验证是可靠的,但对于任何真实的密码哈希函数(集合),生成的FS签名方案都容易受到仅密钥攻击。
超级会员免费看
订阅专栏 解锁全文
95

被折叠的 条评论
为什么被折叠?



