RSA加密算法:原理、实现与安全考量
1. RSA的盲化攻击
盲化攻击是一种令人担忧的攻击方式。假设你想让第三方为一条他们绝对不会主动签署的、具有潜在风险的消息 $M$ 签名。为了实施这种攻击,你可以按以下步骤操作:
1. 找到一个值 $R$,使得 $R^eM \mod n$ 成为一个受害者会愿意签名的消息。
2. 说服受害者为这个消息签名,并向你展示签名 $S = (R^eM)^d \mod n$,也就是该消息的 $d$ 次幂。
3. 基于这个签名,通过简单的计算推导出消息 $M$ 的签名 $M^d$。
具体计算过程如下:
由于 $S$ 可以写成 $(R^eM)^d = R^{ed}M^d$,且根据定义 $R^{ed} = R$,所以 $S = (R^eM)^d = RM^d$。为了得到 $M^d$,只需将 $S$ 除以 $R$,即 $M^d = \frac{S}{R}$。
从上述过程可以看出,盲化攻击是一种切实可行且威力较大的攻击手段。
2. PSS签名标准
RSA概率签名方案(PSS)对于RSA签名的作用,类似于OAEP对于RSA加密的作用。它通过添加填充数据,旨在使消息签名更加安全。
2.1 PSS签名的工作原理
PSS将比模数窄的消息与一些随机和固定位相结合,然后对填充过程的结果进行RSA运算。与所有公钥签名方案一样,PSS对消息的哈希值进行操作,而不是对消息本身。只要哈希函数具有抗碰撞性,对 $Hash(M)$ 进行签名就是安全的。PSS的一个显著优点是,它可以用于签署任意长度的消息,因为对消息进行哈希处理后,无论原始消息长度如何,都会得到相
超级会员免费看
订阅专栏 解锁全文
15

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



