RSA算法简述

RSA算法简述52tangzongb+TR/9sbreGJhbKT5U5rQCTUebfRngB0uhNMnvMClf0f/IpPTsM5+7zWJyT9drzVKzV4oR0J8lyMSWepKvv3BR/3Ab6vC8dmo7NDbzuDtLaDLYhYG+bggQNVvuA5C3TolntxdL4+mGZwfd86WoznJM+Y5TO/0C5MSxvaAMTMZuga7yyBKTH4Wl+7GFHDDZqAXmvPHW/Dz0i45vlToz/+E/RnznY5dBhkw3nnNoNsJIutAUDm4T18J

大家好,又见面了,我是你们的朋友全栈君。

简述

RSA公开密钥密码体制是一种使用不同的加密密钥与解密密钥,“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制 [2] 。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK 。

正是基于这种理论,1978年出现了著名的RSA算法,它通常是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,RSA密钥至少为500位长,一般推荐使用1024位。这就使加密的计算量很大。为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到信息后,用不同的密钥解密并可核对信息摘要 。

RSA是被研究得最广泛的公钥算法,从提出到现在已近三十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。1983年麻省理工学院在美国为RSA算法申请了专利 [3] 。
RSA允许你选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了国家安全管理(NSA)外的其他事物的危害;1024位的密钥几乎是安全的。RSA在一些主要产品内部都有嵌入,像 Windows、网景 Navigator、 Quicken和 Lotus Notes 。

安全性编辑

RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,也并没有从理论上证明破译。RSA的难度与大数分解难度等价。因为没有证明激活成功教程RSA就一定需要做大数分解。假设存在一种无须分解大数的算法,那它肯定可以修改成为大数分解算法,即RSA的重大缺陷是无法从理论上把握它的保密性能如何,而且密码学界多数人士倾向于因子分解不是NPC问题 。

目前,RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解n是最显然的攻击方法。现在,人们已能分解140多个十进制位的大素数。因此,模数n必须选大些,视具体适用情况而定 。
RSA算法的保密强度随其密钥的长度增加而增强。但是,密钥越长,其加解密所耗用的时间也越长。因此,要根据所保护信息的敏感程度与攻击者激活成功教程所要花费的代价值不值得以及系统所要求的反应时间来综合考虑,尤其对于商业信息领域更是如此 。

52tangzong Pz8vVBFCMUbhm50VQK8sokGldOhIB08oxAhF/gIHgOZWj4N+NkKxDbyaDYwhCKulxaeeJxh6cgen0NWwqzM2ThND4PWEXaQUfG0EO4Jp8/WrMioMQZ+b/hi8BQzZqrumyUDo0AqfhgFWIprn1FkrJyGEuNtSJKUG8abXa+e1hW17NvTyWj+BSn/Qv+LSaKEuwbL0oTwOFPVMj2QslAc/LGOMBS7h+uwe/zyLKp1yaalkVOV/7k4SY/t7HmJE/ie/5XOj7NmnNY9oXApyyTJYxiKuA6LlU7eBbu6GEaztdTqJH8gamtmVg8XipFVanSD4nifaMlUdD6BRfQlFRA545g==
52tangzong

算法攻击编辑

迄今为止,对RSA的攻击已经很多,但都没有对它构成真正的威胁。在这里,我们讨论一些典型的攻击方法 。

RSA的选择密码攻击

RSA在选择密码攻击面前显得很脆弱。一般攻击者是将某一信息进行下伪装,让拥有私钥的实体签名;然后,经过计算就可得到它所想要的信息。实际上,攻击利用的都是同一个弱点,即存在这样一个事实:乘幂保留了输入的乘法结构。前面已经提到,这个固有的问题来自于公钥密码系统的最基本的特征,即每个人都能使用公钥加密信息。从算法上无法解决这一问题,改进措施有两条:是采用好的公钥协议保证工作过程中实体不对其他实体任意产生的信息解密,不对自己一无所知的信息签名;二是决不对陌生人送来的随机文档签名,或签名时首先对文档作Hash处理,或同时使用不同的签名算法 [8] 。

RSA的小指数攻击

当公钥e取较小的值,虽然会使加密变得易于实现,速度有所提高,但这样做也是不安全的。最简单的办法就是e和d都取较大的值 。
因为密钥的产生受素数产生技术的限制,所以也有它的局限性 。
(1)密钥的产生受素数产生技术的限制,因而难以做到一次一密 ;
(2)分组长度太大,为保证安全性,n至少也要600比特以上,使运算代价很高,尤其是速度较慢,比对称密码算法慢几个数量级;随着大整数素因数分解算法的改进和计算机计算能力的提高,对n的长度在不断增加,不利于实现数据格式的标准化 。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/150320.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm删除所有注释_pycharm怎么取消注释

    pycharm删除所有注释_pycharm怎么取消注释1Pycharm去掉项目所有#注释通过快捷键ctrl+shift+R进入项目全局替换窗口,点击右上角勾选正则,然后搜索框输入(#.*)即可,然后点击replaceall去掉所有注释2去掉单个文件注释ctrl+f

  • 获取计算机用户名 方法是什么_计算机获取视频信息的方法

    获取计算机用户名 方法是什么_计算机获取视频信息的方法StringosUser=System.getProperty(“user.name”);//获取计算机用户名称 StringfilePath=”C:/Users/”+osUser+”/Downloads/”;

    2022年10月15日
  • hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

    hdu 1078 FatMouse and Cheese (dfs+记忆化搜索)

  • 小白勿进!安卓版java游戏盒下载「建议收藏」

    小白勿进!安卓版java游戏盒下载「建议收藏」为什么要分库分表?首先回答一下为什么要分库分表,答案很简单:数据库出现性能瓶颈。用大白话来说就是数据库快扛不住了。数据库出现性能瓶颈,对外表现有几个方面:大量请求阻塞在高并发场景下,大量请求都需要操作数据库,导致连接数不够了,请求处于阻塞状态。SQL操作变慢如果数据库中存在一张上亿数据量的表,一条SQL没有命中索引会全表扫描,这个查询耗时会非常久。存储出现问题业务量剧增,单库数据量越来越大,给存储造成巨大压力。从机器的角度看,性能瓶颈无非就是CPU、内存、磁盘、网络这些,要解决性能瓶颈

  • VIF检验相关性「建议收藏」

    VIF检验相关性「建议收藏」VIF可以用来度量多重共线性问题,VIFj=11−Rj2\quad\mathrm{VIF}_{j}=\frac{1}{1-R_{j}^{2}}VIFj​=1−Rj2​1​式子中,Rj2R_{j}^{2}Rj2​是第jjj个变量在所有变量上回归时的确定系数。如果VIF过大(比如大于5或10),则意味着存在多重共线性问题。#数据df=pd.read_excel(io=’数据.xlsx’,sheet_name=0,usecols=range(1,5))#务必注意:一定要加上常数项,#如果没

  • Java main方法

    Java main方法publicstaticvoidmain(String[]args){}或者 publicstaticvoidmain(Stringargs[]){}main方法是我们学习Java语言学习的第一个方法,也是每个java使用者最熟悉的方法,每个Java应用程序都必须有且仅有一个main方法。在eclipse里可以使用输入main,在按住Alt+/的方式快速创建main方法

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号