“RSA全域哈希签名给出单位群编码、惰性预言机模拟及猜测查询索引的成功概率账本。RSA PSS则把盐、掩码、保留高位和严格长度验证变成可运行字节算法;它还说明编码整数不必是单位时,正确性如何借…”
形式陈述
函数、方案和理想哈希
取RSA函数公钥
全域哈希
每个签名须采用
安全证明进一步把
一个可直接执行的归约
设攻击者成功概率为
- 第J个新消息:把哈希答复设为Y,表中记录“逆元未知”
- 其他新消息:自己均匀选单位
,答复 ,表中同时保存u - 签名查询:先确保消息在表中;已知u就返回u,若命中逆元未知项则中止
- 最后输出
时:若消息还没查过,先插入表;检查新消息条件和有效签名。若它正是第J项,则输出 作为Y的RSA逆像
表的不变量是每个答复等于所记u的e次幂,或者恰为唯一挑战Y。因为RSA是置换,均匀u的像仍均匀,所以非中止的答复分布与真实预言机一致。
直觉
模拟器没有长期私钥,却可以先选一个“已经知道签名”的随机u,再把它的公开e次幂安排成哈希答复。攻击者看到的仍是均匀单位;其后请求这条消息的签名,模拟器直接交出u。
唯一例外是被猜中的消息,它的哈希是待反演挑战。模拟器希望攻击者最终在这里伪造,而不提前请求这里的签名。新消息伪造条件正好保证:如果猜中了最终获胜消息,这一项此前不可能被要求签名,中止分支便不会发生。
例子与边界
一张四行模拟表
教学RSA取
若猜
为什么还要处理未查过的消息
攻击者可能直接输出一对消息和猜测签名,从未查询该消息的哈希。真实验证者仍会计算该哈希,成功概率并不被定义为零。因此归约把最后验证所需的新表项也计入,Q中保留加1;不能因“正常攻击者应该先查哈希”就删掉该事件。
不先哈希的textbook方案更直接失守:任取单位
推论与应用
成功概率与唯一签名
将真实的完整获胜轨迹和一个独立均匀J配对。最终新消息有一个不超过Q的首次出现编号;J恰好等于它的概率为
这是直接按全部首次请求编号得到的较松界。更精细的归约可以不为签名先出现的行支付同样损失;这里不把这个简易界称作最紧结果。概率包含密钥生成、随机预言机、挑战、攻击者随机币和模拟器猜测。量子查询、现实哈希替换、相关密钥和侧信道都不在这条经典ROM证明里。
固定公钥和消息后,RSA置换只有一个逆像,规范整数编码又只有一种表示。所以FDH具有唯一接受签名:在相同接口下,强不可伪造的新增获胜情形不会比普通新消息情形更多。若解析器接受
下载器的具体字节实验
下载器另给可执行的教学hash-to-unit:先对包含域、N、e和消息的无歧义编码求SHA-256,再以四字节计数器和MGF1扩展到
本例消息字段为Theoryroad/lesson/v1、signature、allow=demo,结果哈希单位42、签名3,第二次候选才被接受。小N无安全性。换成另一消息类型或域后必须重新哈希;不能把域分离字段只写在显示标签里而不放进实际字节。
模拟器若出现t条表项,在把“均匀抽取单位”作为采样原语时,需要最多t次采样与t次公开模幂、O(t)个RSA域元素及保存消息字节。若从n位均匀整数实现该原语,则每次尝试还要检查范围并做gcd,成功概率为
签名执行实验要求读者改变查询顺序:先签b、再重复哈希b,观察编号只在第一次出现时增加;再输出一个从未查过的新消息,核对最后插入与猜测条件。迁移中若攻击者输出已签过的b,即使碰巧命中J,也应先判定它不满足新消息获胜事件。
参考资料
- Dan Boneh、Victor Shoup,A Graduate Course in Applied Cryptography, v0.6,2023,§13.3、§13.3.1及§13.4.2,纸页534–537、543–544:FDH、RSA实例与查询模拟;教材定理13.3的
界比本页直接证明的界更紧 - Mihir Bellare、Phillip Rogaway,The Exact Security of Digital Signatures: How to Sign with RSA and Rabin,EUROCRYPT 1996;历史出处见作者论文目录,本页具体证明按上述教材接口展开