批量RSA:高效加密与签名方案解析
1. 引言
当今,几乎所有基于数论的加密方案都涉及模乘运算,模乘运算的模数通常是一个合数或质数。我们会设定一个安全参数 n ,它等于模数 N 的长度。实际上,分解合数或解决离散对数问题的时间复杂度与 $\sqrt{n}$ 呈指数关系,所以真正的安全参数近似为 $\sqrt{n}$。在本文中, N 代表模数, n = log(N) 。
无论采用何种加密方案,私钥操作(如解密、生成数字签名)都依赖于一个至少与安全参数等长的秘密字符串。若私钥操作中使用的秘密信息短于安全参数,攻击者就有可能猜出这个秘密,从而破解加密方案。
目前,已经提出了多种密钥交换、公钥加密系统和数字签名方案。在一些方案中,私钥操作会将秘密信息作为指数,因此所需的模乘运算次数至少等于安全参数。例如,在RSA方案中,如果选择的解密指数小于安全参数,攻击者就可以通过猜测该指数来破解方案。Fiat - Shamir签名方案虽然不使用秘密指数,但它所需的乘法次数也与安全参数相当,这与证明者在零知识证明中作弊的概率有关,每次乘法都会将作弊概率降低一半。
一般来说,公钥操作(如加密、验证数字签名)不一定需要多项式级别的模乘运算。一些方案具有快速的公钥操作,例如RSA使用小的加密指数。
本文的主要成果是突破上述“下限”,实现快速的公钥和私钥操作。我们实现了每个私钥操作仅需多项式对数级别的模乘运算,这与之前的多项式“下限”相悖。虽然我们无法避免使用长的秘密字符串,但可以将工作平均分配到多个批量处理的私钥操作中。
在实际应
批量RSA高效加密与签名方案
超级会员免费看
订阅专栏 解锁全文
56

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



