课本或“原始” RSA的定义是什么?

课本RSA的一些属性是什么?

与基于RSA的其他方案有什么不同? br />

#1 楼

RSA教材:

选择两个大质数$ p $和$ q $。
让$ n = p \ cdot q $。选择$ e $使得$ gcd(e,\ varphi(n))= 1 $(其中$ \ varphi(n)=(p-1)\ cdot(q-1)$)。找到$ d $,使$ e \ cdot d \ equiv 1 \ bmod {\ varphi(n)} $。换句话说,$ d $是$ e $的模逆,($ d \ equiv e ^ {-1} \ bmod {\ varphi(n)} $)。

$(e ,n)$是公钥,$(d,n)$是私钥。


要加密消息$ m $,请计算$ c \ equiv m ^ e \ mod n $。
要解密密文$ c $,请计算$ m \ equiv c ^ d \ mod n $。

还定义了签名和验证消息(为简洁起见,省略了此内容。)

教科书RSA的某些(不希望的)属性:


它具有延展性。即,如果您给我一个加密$ m $的密文$ c $,我可以计算出$ c'\ equiv c \ cdot 2 ^ e \ mod n $当私钥的所有者解密$ c'$时,她将获得$ 2m \ mod n $。换句话说,我可以对密文进行可预测的更改。
它是确定性的,因此在语义上也不安全。即,我可以区分$ 0 $和$ 1 $的加密(只需自己对两个值进行加密并比较密文即可)。

与已部署RSA的区别:


填充

有时在已部署的系统中使用汉语剩余定理来更有效地解密。
$ e $通常静态设置为$ 65537 = 2 ^ {16} + 1 $以提高加密速度(因为该数字中只有两个固定位)。
也可以为已部署的系统设置缓解侧信道攻击的方法。

我的清单绝对不是全面的,但希望这会有所帮助。

评论


$ \ begingroup $
一些教科书和实际实现使用$ e \ cdot d \ equiv 1 \ pmod {LCM(p-1,q-1)} $,它涵盖了所有工作的$ d $,而不是某些工作的$ d $。
$ \ endgroup $
–fgrieu♦
2011-12-13 18:03



$ \ begingroup $
它还泄漏了消息的雅各比符号。您可以知道您的药物是否为二次残渣
$ \ endgroup $
– David天宇黄
2014年12月9日,下午1:27

$ \ begingroup $
为了完整性,您可能还需要注意,RSA教科书对于短消息是不安全的。特别是,只要$ m ^ e $ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
16 Sep 24 '16:35

$ \ begingroup $
@David天宇Wong您能解释(或提供参考)雅可比符号泄漏吗?
$ \ endgroup $
–user48832
18年11月22日在13:03

$ \ begingroup $
我试图在此处获取RSA教科书中可能出现的攻击的列表。这种失败的原因是比预期的要多得多。就像这个答案正确指出的那样:“我的清单绝不是全面的”……而且也不应该是一个单独的主题,如果不是的话,它本身就是一个主题。
$ \ endgroup $
–马腾·博德威斯♦
18年11月22日在15:23

#2 楼

RSA既是加密功能又是签名功能。我听说过“教科书RSA”一词主要用于加密功能,但相同的基本原理也适用于RSA签名。它实际上是RSA,没有任何填充。

教科书RSA没有规范的定义(例如,它是否包含对选择安全素数的限制?),因此它可能因上下文而异,但这是在Wikipedia文章上称为“普通RSA”。随着Wikipedia的发展,请同时参阅Dan Boneh的这些幻灯片。

教科书RSA没有语义安全性,因此它不能抵抗选择的明文攻击或密文攻击。这是因为分别是确定性的(两次加密同一消息会产生相同的密文)和乘法同态的(加密值可以在加密下进行乘法修改)。

课本RSA加密的主要替代方法是带有OAEP的RSA。此变体在语义上,CPA和CCA是安全的。 RSA + OAEP是随机的,没有同构。 OAEP本身是第二代填充方案,第一代仅为RSA提供语义/ CPA安全性。

也可以填充RSA签名。带有PSS的RSA使签名随机化。

评论


$ \ begingroup $
首字母缩写词太猛烈地扔在我的脸上,但总的来说是很好的答案。
$ \ endgroup $
– doubleOrt
18年4月14日在16:40

#3 楼

A)RSA
RSA是一种非对称加密方法。 RSA是公钥加密方法之一。此方法使用两个密钥:一个众所周知的公用密钥,用于加密;一个私有密钥,用于保密,用于解密。
RSA中的操作:
RSA算法涉及三个步骤:


密钥生成-生成密钥对:私钥和公钥。


加密-通过使用公钥对消息进行加密。


解密-通过使用私钥对消息进行解密。


B)RSA教科书
关于RSA的一些要点是如下所示:


教科书RSA不安全


教科书RSA加密:


•公钥:$(N,e)$加密:$ C = M ^ e \ pmod N $
•私钥:$ d $解密:$ C ^ d = M \ pmod N $
                           (M Î ZN)



完全不安全的密码系统:
•不满足安全性的基本定义。
•存在许多攻击。


RSA trapdoor置换不是密码系统。


对textb的简单攻击ook RSA





会话密钥$ K $是$ 64 $位。查看$ K \ in \ {0,\ ldots,2 ^ {64} -1 \} $
窃听者看到:$ C = K ^ e \ pmod N $。


假设$ K = K1 \ cdot K2 $,其中$ K1,K2 <234 $。 (大约20%)
然后:$ C / K1 ^ e = K2 ^ e \ pmod N $


构建表:$ C / 1 ^ e,C / 2 ^ e,C / 3 ^ e,\ ldots,C / 2 ^ {34e}。时间:$ 2 ^ 34 $
对于K2 = 0,…,2 ^ 34,测试$ K2 ^ e $是否在表中。时间:$ 2 ^ {34} 34 $


攻击时间:$ 2 ^ {40} \ ll 2 ^ {64} $



由于安全性较低,请不要使用RSA教科书。


评论


$ \ begingroup $
Anu,谢谢您的回答。目前很难阅读。也许您可以看看我们支持的MathJax格式。代替A / B,您可以使用节。对于编号列表,请使用MarkDown列表功能。我当然不确定“(MÎZN)”是什么,但是肯定不应该使用代码格式化功能。
$ \ endgroup $
–马腾·博德威斯♦
18-11-22在15:28



$ \ begingroup $
Maarten,谢谢您的支持,我将使用您提到的应用程序。
$ \ endgroup $
–阿努·戴维斯(Anu Davis)
18年11月23日在4:54

$ \ begingroup $
此答案摘自Dan Boneh,应归功于此。
$ \ endgroup $
– Emolga
20 Dec 9'2 at 2:06