AI学习——rsa加密算法的安全性分析

开课吧开课吧锤锤2021-02-03 15:39

  在RSA密码应用中,公钥KU是被公开的,即e和n的数值是可以被第三方得到的。破解RSA密码的问题就是从已知的e和n的数值(n等于pq),想办法求出d的数值,这样就可以得到私钥来破解密文。

人工智能教程

1. 数据。

  数据在计算机中,其实就是字节串。

  将被加密的数据,分割成一定长度的数据块,每一块就是一个bit串。

  将这个比特串,看成一个二进制整数——以d表示

  2. 密钥

  RSA算法是非对称算法,因此使用两个密钥:

  一个是公钥,用于加密——以e表示,

  一个是私钥,用于解密——以p表示。

  另外,还需要用到一个整数N,他是算法中进行模数运算时的底数。

  一般来说,为了保证安全性,密钥长度应在1024-bit以上。

  总之,e、p、N,这三项数据,决定一次具体的加解密活动。

  同被加密数据d一样,e、p、N,这三个东东,也都是整数。

  e、N,是对外公开的。而p则不对外公开。

  3. 加解密

  a)加密

  c=d^e mod N

  b)解密

  d=c^p mod N

  4. 安全性

  RSA算法的安全在于,e、p、N,是随机生成的。

  知道e和N,想寻找p,在计算上是不可行的。

  问题是,我们使用的软件工具,生成这些随机材料时,真的是“随机”的吗?

  如果算法的提供者留下什么后门,或者提前做了什么准备工作,人家看到e和n,或许就能有办法得到p呢。

  RSA算法是一个基于初等数论定理的公钥密码体制加密算法,它的实现过程为:选取2个大素数p与q,然后算出n=pq,φ(n)=n-p-q+1,再选取一个正整数e,使之满足(e,φ(n))=1,1《E《φ(N);再求出正整数D,使之满足1《D,而密钥是。明文消息m满足0≤m

  例 取2个质数p=11,q=13,p和q的乘积为n=p×q=143,算出φ(n)=n-p-q+1=120;再选取一个与φ(n)互质的数,例如e=7,则公开密钥=n,e=143,7.

  对于这个e值,用欧几里德扩展算法可以算出其逆:d=103.因为e×d=7×103=721,满足e×d mod z=1;即721 mod 120=1成立。则秘密密钥=n,d=143,103,

  设发送方需要发送机密信息(明文)m=85,发送方已经从公开媒体得到了接收方的公开密钥n,e=143,7,于是发送方算出加密后的密文c=me mod n=857 mod 143=123并发送给接收方。

  接收方在收到密文c=123后,利用只有他自己知道的秘密密钥计算m=cd mod n=123103 mod 143=85,所以,接收方可以得到发送方发给他的真正信息m=85,实现了解密。

  用RSA体制加密时,先将明文数字化再进行加密,在实际应用中m值的长度一般要远大于n的长度,因此实际加密消息m时,首先将它分成比n小的数据分组(采用二进制数,选取小于n的2的最大次幂),再每组单独加密和解密。比如说,选用的p和q为100位的素数,那么n将有200位,每个数据分组应小于200位长,但为保证安全性,每个数据的长度应尽量接近n的长度。

以上就是小编整理的,希望大家喜欢。

人工智能在计算机领域内,得到了愈加广泛的重视。并在机器人,经济政治决策,控制系统,仿真系统中得到应用。发展前景很可观,有对人工智能感兴趣的同学就赶快学习起来吧。以上就是小编今天为大家整理发布的“AI学习——rsa加密算法的安全性分析”一文,希望为正在学习人工智能的朋友提供学习参考,更多人工智能教程尽在开课吧广场人工智能教程频道!

有用
分享