RSA算法及其安全性

RSA加密原理:


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    /* d的e次方模上N,得到c,即加密后的数据*/


   b)解密
   d = c^p  mod  N    /* c的p次方模上N,得到d,即原始数据*/




4. 安全性
   RSA算法的安全在于,e、p、N,是随机生成的。
   知道e和N,想寻找p,在计算上是不可行的。
   问题是,我们使用的软件工具,生成这些随机材料时,真的是“随机”的吗?
   如果算法的提供者留下什么后门,或者提前做了什么准备工作,人家看到e和n,或许就能有办法得到p呢
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值