05月08, 2014

伟大的RSA算法

注意:这是一篇从旧博客恢复的文章。

原地址:http://freemeepo.com/blog/archives/112


如果有人问我数学有什么用,我一定会拿RSA算法甩他一脸。

今天下午无意中点开了RSA算法的资料,我决定把它搞清楚。以前我一直以为理解它需要很长时间,所以一直没看。今天学习了下,发现搞懂RSA的原理、看一些RSA的历史,总共也就花了我1个多小时的时间。看完之后不得不感叹这个算法的伟大。

RSA算法解决了如何在一个不安全的空间里安全地传输信息的问题,算法仅仅用到了最基本的数论知识:欧拉函数费马小定理欧拉定理乘法逆元

下面简单介绍一下RSA算法的思想。

如果直接传输信息,显然信息很容易被截取。人们想到使用加密的方法来保证安全,首先想到的是对称密钥加密算法,也就是加密解密使用同一种密钥。一个人用这个密钥加密,另一个人也用这个密钥解密。但是这里有个问题:两个人必须保证密钥的绝对安全。但是密钥又不能直接传送给接收者,只有通过安全的渠道传送密钥,例如当面商量。这极为麻烦。

RSA算法是一种公开密钥加密(非对称密钥加密)算法。用两个密钥就可以实现数据的安全传输。假设乙方要向甲方传输数据,甲方把公钥公开,私钥自己保存。乙方利用甲方的公钥将数据加密,传输到甲方后,甲方用自己的私钥进行解密。可能有人会问:既然别人可以利用公钥加密,那为什么不能利用公钥解密呢?事实上不是不行,而是太难。RSA算法恰好拥有这样一个特性:用公钥加密简单,用私钥解密简单,但是用公钥解密困难。

下面推荐几个不错的学习资料,介绍了RSA算法的具体实现过程:

阮一峰的RSA算法原理(一)RSA算法原理(二)

matrix67的跨越千年的RSA算法

还有个关于RSA算法历史的:

localhost(matrix67女友)的RSA 算法是如何诞生的

还有个视频:

RSA加密算法 RSA_Encryption_Algorithm

本文链接:https://debug.fanzheng.org/post/great-RSA-algorithm.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。