RSA加密算法原理

来源:互联网 发布:2016最新网络神曲 编辑:程序博客网 时间:2024/05/19 15:26

转载:

http://www.ruanyifeng.com/blog/2013/07/rsa_algorithm_part_two.html   RSA算法原理    作者: 阮一峰

http://www.cnblogs.com/dami/archive/2007/04/30/733567.html

阮师傅对RSA分析的很简单明了,如读小说一样,读完也就明白理解。

特别推荐:阮神的大作,独立网址:http://www.ruanyifeng.com/blog/

1加密算法概述

加密算法根据内容是否可以还原分为 可逆加密和非可逆加密 

可逆加密根据其加密解密是否使用的同一个密钥而可以分为 对称加密和非对称加密 

所谓对称加密即是指在加密和解密时使用的是同一个密钥:举个简单的例子,对一个字符串C做简单的加密处理,对于每个字符都和A做异或,形成密文S。解密的时候再用密文S和密钥A做异或,还原为原来的字符串C。这种加密方式有一个很大的缺点就是不安全,因为一旦加密用的密钥泄露了之后,就可以用这个密钥破解其他所有的密文。

非对称加密在加密和解密过程中使用不同的密钥,即公钥和私钥。公钥用于加密,所有人都可见,私钥用于解密,只有解密者持有。就算在一次加密过程中原文和密文发生泄漏,破解者在知道原文、密文和公钥的情况下无法推理出私钥,很大程度上保证了数据的安全性。

RSA加密算法是一种非常具有代表性的非对称加密算法。

2、RSA公钥与密钥的产生

随意选择两个大的质数pqp不等于q

计算公钥和私钥的公共模数 n = pq

计算模数n的欧拉函数 φ(n) .

根据欧拉函数,求得r = (p-1)(q-1)

选择一个小于 r的整数 e使1 < e < φ(n) , 且e与φ(n)互质.

求得 e关于模 r模反元素满足 de ≡ 1  (mod φ(n) ), (k为某个正整数).命名为d。(模反元素存在,当且仅当er互质)

 p  q 的记录销毁。

n与e决定公钥, n与d决定私钥.


3、RSA C/C++ 程序示例

参见连接:http://download.csdn.net/detail/xingyuan1hao/9807779

0 0