加密:C=Me(mod n)

解密:M=Cd(mod n)

安全性基础:

穷举法攻击:

1.攻击者设计一个M,C=Me(mod n)

2.d的个数至多有n-1个,尝试使用每个d破解,如果M’=Cd‘(mod n)=M,d’是解

3.设p,q分别为100位(十进制),则n-1约200位(十进制)   n=10200

4.假定每秒可以做一亿次搜索(108),每年可以搜索108*60*60*24*365=3*1015

搜索10200个密钥的时间为100200/(3*1015)=3*1015=10184

计算上不可行。

分析RSA锁结构

d=e-1mod (Φ(n))  即 de=1 mod (Φ(n))

问题为:已知e,Φ(n)未知,求d

如果Φ(n)知道,则求d就很容易了

问题变为:已知n,求Φ(n)

求法1:直接求,当n很大,计算Φ(n)很困难,不可行

求法2:利用n=pq,(p,q是素数),Φ(n)=(p-1)(q-1)计算很容易

问题变为:已知n,求n=pq,(p,q是素数) 即数的素分解问题

素因子分解的复杂性:

目前因子分解速度最快的方法的时间复杂度是exp(sqrt(ln n lnln n))

2007年3个机构(EPFL,波恩大学,日本电话电报公司)设计的计算机集群成功分解307位十进制的数21039-1

所以说RSA的安全性依赖于分解大数的难度?数学上还未能证明只有分解大数n才能从C和e中计算出M(即RSA的安全性与大数分解等价)。所以说上面的说法只是一个假定,不过目前为止也未能证明它的错误。

即便无法有效破解RSA算法,但还有一些别的办法是针对协议进行攻击的。

A窃听B的通讯,获得c=me mod n,A的目标是解出m

1.A选一个r,计算x=re mod n (即r=xd mod n)

2.计算y=xc mod n

3.计算t=r-1 mod n

4.A让B在y上签名,u=yd mod n

5.A计算 tu mod n=r-1yd mod n

         =r-1xd cd mod n

         =r-1red cd mod n

         =cd mod n = m

问题出现在B对不明信息签名。

怎么解决:从算法上无法解决,主要措施是采用好的公钥协议

1.工作过程中实体不轻易对其他实体任意产生的信息加解密,不对一无所知的信息签名

2.对其他实体送来的随机文档签名时首先对文档作HASH处理

还有其他一些问题:

1.如果p,q比较接近

2.系统采用公共模数,n一直不变

这样的系统在数学上被证明更容易被破解。

寻找合适的素数:

1.尾数除法,取一数p,用2到该数的平方根之间的每一个素数去除该数,如果都不能整除,该数就是素数。

2.Fermat方法

3.Lehmann测试法

4.Miller-Rabin测试法

...

RSA安全性问题的更多相关文章

  1. RSA加密解密及RSA加签验签

    RSA安全性应用场景说明 在刚接触RSA的时候,会混淆RSA加密解密和RSA加签验签的概念.简单来说加密解密是公钥加密私钥解密,持有公钥(多人持有)可以对数据加密,但是只有持有私钥(一人持有)才可以解 ...

  2. 非对称加密技术- RSA算法数学原理分析

    非对称加密技术,在现在网络中,有非常广泛应用.加密技术更是数字货币的基础. 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密. 但是对于其原理大部分同学应 ...

  3. 技术的极限(6): 密码朋克精神(Cypherpunk Spirit)

    上一篇:技术的极限(5): 识别计算与技术背后的心智 下一篇:技术的极限(7): 处理复杂与分层 目录: ** 0x01 数据和App分离 ** 0x02 蒸汽朋克/赛博朋克/密码朋克 ** 0x03 ...

  4. SM系列国密算法(转)

    原文地址:科普一下SM系列国密算法(从零开始学区块链 189) 众所周知,为了保障商用密码的安全性,国家商用密码管理办公室制定了一系列密码标准,包括SM1(SCB2).SM2.SM3.SM4.SM7. ...

  5. 4、DES和RSA简介

    DES是分组加密算法,速度快,使用单一密钥,加密解密都使用同一个密钥,一般用于大量数据加密,目前处于半淘汰状态. RSA算法是流式加密算法,速度慢,但是使用成对的密钥,加密解密使用不同的密钥,有利于保 ...

  6. Android数据加密之Rsa加密

    前言: 最近无意中和同事交流数据安全传输的问题,想起自己曾经使用过的Rsa非对称加密算法,闲下来总结一下. 其他几种加密方式: Android数据加密之Rsa加密 Android数据加密之Aes加密 ...

  7. 网络安全——数据的加密与签名,RSA介绍

    一. 密码概述 发送者对明文进行加密然后生成密文,接受者再对密文解密得到明文的过程. 现在使用的所有加密算法都是公开的!但是密钥肯定不是公开的. 1 散列(哈希)函数 通常有MD5.SHA1.SHA2 ...

  8. c#与JavaScript实现对用户名、密码进行RSA非对称加密

    博主最近手上这个项目呢(就是有上百个万恶的复杂excel需要解析的那个项目,参见博客:http://www.cnblogs.com/csqb-511612371/p/4885930.html),由于是 ...

  9. rsa互通密钥对生成及互通加解密(c#,java,php)

    摘要 在数据安全上rsa起着非常大的作用,特别是数据网络通讯的安全上.当异构系统在数据网络通讯上对安全性有所要求时,rsa将作为其中的一种选择,此时rsa的互通性就显得尤为重要了. 本文参考网络资料, ...

随机推荐

  1. POJ1873 - Balance(01背包)

    题目大意 现有一个天平,它有C个挂钩和G个砝码,问有多少种方法可以使得天平平衡(砝码必须用完) 题解 其实就是让背包容量为0的方法有多少种方法,但是这样的话背包容量会出现负数,所以可以平移一下,背包容 ...

  2. ubuntu glusterfs 配置调试

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqMAAADpCAIAAACfoakcAAAgAElEQVR4nO2d2XMjSX7f8c+sQ4GwHY

  3. 局域网内Linux服务器时间同步

    局域网内Linux服务器时间同步   1.将一台能够上网的服务器作为时间服务器:  # /usr/bin/rdate -s time-b.timefreq.bldrdoc.gov //将时间服务器与互 ...

  4. Oracle数据库自我总结(转)

    Oracle数据库自我总结 1.Oracle连接远程服务器,需要安装客户端的同时需要覆盖D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora ...

  5. 将list转换为json失败

    估计你是用的hibernate的自动注解,并且里面有一对多,多对一的关系,这是需要在不需要的字段上加上注解@JsonIgnore, 这样的话在list转json的时候就会忽略加上@JsonIgnore ...

  6. iOS Xcode8的适配

    1.打开应用后打印了很多的log信息 解决方法: Xcode8里边 Edit Scheme... -> Run -> Arguments, 在Environment Variables里边 ...

  7. Http、Socket的区别

    转自:http://jingyan.baidu.com/article/08b6a591e07ecc14a80922f1.html 网络由下往上分为 物理层.数据链路层.网络层.传输层.会话层.表示层 ...

  8. oracle11 客户端安装及PLSQL和TOAD中文乱码

    oracle11 客户端安装及PLSQL和TOAD中文乱码 1.从Oracle官方下载“Instant Client Package”的软件,较好的实现了Oracle客户端绿化的解决方案. 下载地址为 ...

  9. 你知道用AngularJs怎么定义指令吗?

    前言 最近学习了下angularjs指令的相关知识,也参考了前人的一些文章,在此总结下. 欢迎批评指出错误的地方.   Angularjs指令定义的API AngularJs的指令定义大致如下 ang ...

  10. orczhou----MYSQL

    https://yq.aliyun.com/users/1597777588650149?spm=5176.blog11192.yqblogcon1.2.5mdGQb