RSA公钥指数的选取
1:什么是RSA公钥指数。
首先了解一下RSA密钥的建立流程。如下图所示:

(1)选择两个不同的大素数p和q;
(2)计算公共模数(n=pq)和欧拉数(eular=(p-1)(q-1));
(3)选择公钥指数e;
(4)计算inverse(d);
(5)生成公钥、私钥;
上述流程中出现的e就是公钥指数。
2:公钥指数的选取。
公钥指数是可以随意选取的,但是为了提高RSA的加密速度实际使用中公钥指数最长用的三个值是3、17、65537(=2^16+1,65537的二进制表示中只有两个1,所以需要17次乘法来实现指数运算)。PEM建议用3。PKCS#1建议用3或65537。X.509建议用65537。这样选取主要是为了提高加密或签名验证的性能,因为3、17或65537分别只需要2或17次模乘运算,而一个随机选择的e(假设n是1024-bit)则大约需要1000次模乘运算。这种方法刻意把公钥指数选的小一点,其对应私钥指数就会很大,这么做的目的是节约公钥运算的时间。因为正常使用中都是用公钥加密,所以需要节约大部分人的时间。而极少部分人也会选用私钥解密,那么就只能少数服从多数了。
在选用公钥指数时,人们普遍会认为3和17没有65537安全。然而这种想法并没有合理的依据。实际上采用这三个值中的任何一个都不存在安全问题。前提是使用正确的填充方案。

RSA公钥指数的选取相关推荐

  1. 为什么RSA 公钥指数(e=65537)

    1. 引言 学术界普遍认为绝对不能选用e=3作为RSA公钥指数,就好像说我们再也不能用md5一样.但实际上,md5今天仍然广泛使用.一个密码算法在理论上被攻破,并不等于实践中就一定会有安全风险.比如, ...

  2. RSA选用小公钥指数(e=3)真的不安全吗?

    http://blog.chinaunix.net/uid-21880738-id-1813145.html 现有的大部分RSA算法实现都遵循PKCS#1 v2.1/v1.5 (2002/1993). ...

  3. 公钥密码体制及RSA公钥加密算法(下)

    一.RSA公钥加密算法安全性 1.RSA安全性假定: 基于分解大整数的困难性假定 如果RSA的模数n被成功的分解成p*q,则立刻可以得到对应的φ(n)=(p-1)*(q-1),从而可以确定e模φ(n) ...

  4. # RSA 公钥加密算法

    Blai 终端之间信息传递安全性的保证始终是业务的刚性需求.不同的加密算法针对不同的业务需求, 因为公司是金融公司性质,又不是传统的金融公司(PS:牵扯到数字货币.常听说的比如:比特币),加密算法这块 ...

  5. 10行代码实现RSA公钥解密

    RSA常用场景是: 1)生成公钥.私钥 2)公钥加密,私钥解密 3)私钥签名,公钥验签(返回成功or失败) 以上场景实现比较简单,网上大把的文章,大部分加密库也都支持,我不再赘述. 如果你遇到稀有场景 ...

  6. 公钥密码体制及RSA公钥加密算法(上)

    一.公钥密码体制 (1)公钥(非对称)密码概述: 优点:免去密钥分发,密钥管理简单 (2)公钥加密的设计原则: 已知公私钥,进行加密解密是简单容易的 单向函数:一个函数f,对于定义域内的任意x,计算f ...

  7. RSA公钥密码体制及C++代码实现

    公钥密码体制即公开密钥密码体制,也称非对称密码体制或双密钥密码体制.1978年由美国麻省理工学院的Rivest.Shamir和Adleman共同提出了第一个有效的公钥密码体制--RSA公钥密码体制,目 ...

  8. 非对称加密算法RSA公钥私钥的模数和指数提取方法

    生成非对称加密算法RSA公钥.私钥的方法: 1. 通过OpenSSL库生成,可参考  https://github.com/fengbingchun/OpenSSL_Test/blob/master/ ...

  9. php pkcs 1格式的公钥,解说--2--微信支付RSA公钥PKCS1格式转化成PKCS8格式的公钥

    最近在开发一个功能:微信自动转账给个人用户(个人微信零钱.银行卡) 今天只讲RSA公钥PKCS1格式转化成PKCS8格式的公钥 先说说解决过程(一路心酸,一万个······): 1.昨晚开始转格式,未 ...

  10. python rsa 公钥解密_python利用rsa库做公钥解密的方法教程

    前言 对于RSA的解密,即密文的数字的 D 次方求mod N 即可,即密文和自己做 D 次乘法,再对结果除以 N 求余数即可得到明文.D 和 N 的组合就是私钥(private key). 算法的加密 ...

最新文章

  1. 苹果谷歌脸书大佬前往游说!欧盟将首次对AI进行监管
  2. 服务器怎么修复插件,如何修复服务器状态代码:302由SQL发现我注入了Firefox插件...
  3. 虚拟机windows xp 下安装配置mysql cluster 7.3.2
  4. HashMap,LinkHashMap和TreeMap的区别
  5. HashMap是如何工作的
  6. android sd卡不可写,Android检查SD卡是否可读写
  7. ArcGIS Server瓦片下载推荐|全能电子地图下载器
  8. Python制作翻译软件(中英文互译)
  9. css pseudo elements,css伪元素(Pseudo-elements)各种使用类型
  10. 排序算法(三)—— 插入法排序算法
  11. 累加数Python解法
  12. PCB芯片散热焊盘如何设计?
  13. 挪威访学2:SOLA UIS 学生宿舍
  14. oracle20c最新版本,Oracle DUL支持Oracle 20c
  15. VVC帧间预测(四)仿射运动补偿预测
  16. 游戏的角色模型是如何创建的?ZBrush中制作3D兽人,全流程解析
  17. 暗黑破坏神 用什么 开发的_软件开发中最具破坏性的五种态度
  18. 火车头采集文章到本地-火车头采集导出各种格式导本地设置
  19. CFA1级 JC网课
  20. 基于Matlab深度学习目标检测算法系统GUI,单目标、多目标检测

热门文章

  1. win10+ubuntu18.04双系统在NVIDIA GTX1050 笔记本上的安装纪实
  2. html实现开关,纯css实现开关、轮播
  3. 如何聘请开发人员:7个基本步骤
  4. 位移传感器数显仪表用于自动化监测系统
  5. 说说如何使用 python-docx 写入 word 文档
  6. 浅析人工智能和计算机网络技术的关系,人工智能技术在计算机网络技术的影响-网络技术论文-计算机论文(7页)-原创力文档...
  7. hibernate 报 Unknown entity错误,问题解决方法
  8. Python Day 8: html 基本知识
  9. 程序员怎么升职?这十点建议值得一看!
  10. 三国争霸 Linux三款音乐播放器全方位PK