RSA选用小公钥指数(e=3)真的不安全吗?
http://blog.chinaunix.net/uid-21880738-id-1813145.html
现有的大部分RSA算法实现都遵循PKCS#1 v2.1/v1.5 (2002/1993)。根据PKCS#1的建议,公钥指数e是可以选取较小的素数3或65537(=2^16+1)。这样选取主要是为了提高加密或签名验证的性能,因为3或65537分别只需要2或17次模乘运算,而一个随机选择的e(假设n是1024-bit)则大约需要1000次。这种选用小公钥指数的方法使用户相信RSA在签名验证和加密操作方面确实要比“以高效著称的ECC”还要高效很多。
选择e=3究竟有什么问题?
(5) 其它攻击
关于RSA的其它相关攻击,如小私钥指数攻击、共模攻击、盲化攻击、时间攻击等,请参见[6, 7].
结论
(I) 对于RSA加密来说,如果在实现上遵循PKCS#1 v2.1 (OAEP填充),目前还没有发现有效的攻击;但如果是遵循PKCS#1 v1.5 (明文尾部直接填充),那么存在Coppersmith攻击。
(II) 对于RSA签名来说,目前对于PKCS#1 v2.1 (PSS填充)和PKCS#1 v1.5 (填充方法:0001FF...FF00||ASN.1||H(M))来说都还没有发现有效的攻击。
综上所述,选用e=3作为RSA的公钥指数,只要使用正确的填充方案,目前仍然是安全的。
关于e=65537的说明
这是一个推荐使用的公钥指数,我认为选这个值的目的只是一个介于低指数攻击和运算效率之间的一个折中考虑,即以防万一"e=3"被攻破而侥幸"e=65537"可能还是安全的。另外,NIST SP800-78 Rev 1 (2007) 也曾强调“不允许使用比65537更低的公钥指数e”,但对于该限制却没有给出任何理由。而PKCS#1却从未有过类似的建议。
[1] J. Hastad, Solving simultaneous modular equations of low degree. SIAM J. of Computing, 17: 336-341, 1988
[7] http://www.rsa.com/rsalabs/node.asp?id=2216
RSA选用小公钥指数(e=3)真的不安全吗?相关推荐
- 为什么RSA 公钥指数(e=65537)
1. 引言 学术界普遍认为绝对不能选用e=3作为RSA公钥指数,就好像说我们再也不能用md5一样.但实际上,md5今天仍然广泛使用.一个密码算法在理论上被攻破,并不等于实践中就一定会有安全风险.比如, ...
- RSA加密算法(公钥+私钥加密)
公开密钥加密 公开密钥加密(public-key cryptography),也成为非对称加密,是密码学的一种算法,他需要两个密钥,一个是公开密钥,另一个是私有密钥,一个用作加密的时候,另一个则用作解 ...
- rsa私钥和公钥_如何创建RSA公钥和私钥?
rsa私钥和公钥 RSA is an algorithm used for Cryptography. It was patented until 2000 in the USA (not the w ...
- python rsa 公钥解密_python利用rsa库做公钥解密的方法教程
前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...
- 签名算法sha256withrsa,RSA数字证书公钥私钥生成,base64转码和文件日志
RSA数字证书公钥密钥生成: 在Linux系统下运行以下命令生成: 如果提示输出密码,可以为空,直接回车 生成的公钥rsa_public_key.pem和密钥rsa_private_key.pem文件 ...
- 怎样选择合适的PoE交换机?POE交换机选用小常识!
交换机除了普通交换机外还有POE交换机,POE交换机主要用来给POE设备进行供电,免去复杂的网络设备供电接线,实现的更加方便网络覆盖,那么,我们如何选择一款合适的交换机至关重要.接下来飞畅科技的小编就 ...
- C#中用RSA算法生成公钥和私钥
转自:https://www.cnblogs.com/micenote/p/7862989.html C#中用RSA算法生成公钥和私钥 方法一: 公钥密钥生成后,保存在同名文件夹下面,如下图: 公钥密 ...
- 使用RSA生成一对公钥和私钥
使用RSA生成一对公钥和私钥 package com.demoinfo.support.utils;import sun.misc.BASE64Decoder; import sun.misc.BAS ...
- iOS安全之RSA加密/生成公钥、秘钥 pem文件
在iOS中使用RSA加密解密,需要用到.der和.p12后缀格式的文件,其中.der格式的文件存放的是公钥(Public key)用于加密,.p12格式的文件存放的是私钥(Private key)用于 ...
最新文章
- 光荣与梦想 | XMove动作捕捉系统(一)
- CentOS如何查看端口是被哪个应用/进程占用
- python 条形图图注怎么集中注意力_如何用每个条形图的总和(Matplotlib)注释堆积条形图?...
- acme云服务器生成证书_使用 acme.sh 申请 SSL 证书并且定期自动更新
- 优秀博客链接(linux c/c++ java go php android ios 前端 j2ee windows linux 算法 ACM 深度/机器学习 AI opencv nlp)
- 一起读懂传说中的经典:受限玻尔兹曼机
- 使用JAVASCRIPT实现弹出框,过一段时间自动消失
- python企业微信特定用户_python3调用企业微信api!开发一款属于自己的企业微信...
- WinPE作为启动硬盘
- 解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示The operation could not be completed. 的问题。...
- UVa 116 (多段图的最短路) Unidirectional TSP
- easymock接口模拟_EasyMock好又严格的模拟
- 【数学建模】模糊综合评价模型
- log4cpp 使用完全手册
- 使用CSS给文字添加描边效果
- python数据标注工具_数据标注工具大全汇总,有了这些工具再也不用自己开发了...
- win10网络诊断为DNS服务器未响应,Win10系统下电脑无法连接网络诊断提示DNS服务器未响应解决方法...
- matlab改变图像像素吗,在图像中随机更改像素值程序——matlab
- 解决方案的四种落地形态
- SVN误删的文件可以恢复
热门文章
- 装饰者设计模式,简单代码实现
- 数据结构与算法之选择排序图文详解及代码 (C++实现)
- Java 接口(interface)的用途和好处
- c++ 多重背包状态转移方程_串讲:控制理论:全状态反馈控制(FSFB)
- 怎么把一台华为路由器配置为FTP服务器?
- gpu的单位表示_GPU编程1--GPU中的基本概念
- 阿里云联合中国信通院发布《云计算开放应用架构》标准
- 安全容器的发展与思考
- 云原生生态周报 Vol.10 | 数据库能否运行在 K8s 当中?
- 加载顺序_JAVA类代码块和属性的加载顺序问题,不要以为静态块始终最先执行了!...