数据加密之加密算法RSA公钥加密系统

本来想写一下SQL注入来着,还是写一下这个可爱的算法吧。

加密算法有多中,md5等多中加密算法,但是RSA算法不知各位有没有听说过,它的由来就不阐述了.。我们都知道,密钥加密系统,甲方选择某种加密方式,对消息进行加密。然后乙方根据这个加密规则进行解密,这种类型的加密解密算法是对称加密算法。对称加密算法,乙方必须要知道密钥才行,这也是一种弊端吧。

那么就有了不对称的算法,这是如何呢?

乙方生成两个密钥,一个公钥,一个私钥,公钥是公开的,别人都可以知道,私钥是保密的,只有有乙方知道。

然后,甲方通过乙方的公钥加密消息,传递给乙方;

最后,乙方通过私钥解密即可。

RSA算法用到一点数论的知识点:

1、素数或者强质数,都是一个意思,就是除了1和它本身以外不再有其他的因数;否则称为合数。

2、欧拉函数和欧拉定理。因为原理部分需要有一堆随机质数的参与,对素数的密度测试,需要用到定理。

3、模指运算。模指数运算就是先做指数运算,取其结果再做模运算。为什么不叫指模运算,我也不知道。

通过公钥加密系统,可以对传输两个通信单位之间的消息进行加密,即使窃听者听到被加密的消息,也不能对其进行破译,公钥加密系统还能让通信的一方,在电子消息的末尾附加一个无法伪造的数字签名,这种签名是纸质文件上手写签名的电子版本。

对于上面的定理,就不对说那么多了,有兴趣的可以在单独做一篇推文,还有rsa的正确性,暂时不证明了。

在RSA公钥加密系统中:

1、随机选取两个大素数,p和q,越大越难破解。p!=q;

2、计算n=p*q;

3、计算f(n)=(p-1)(q-1),同时对p, q严加保密,选取一个与f(n)互质的小奇数e。

4、对于模f(n),计算出e的乘法逆元d的的值。

5、计算d,使得de≡1 mod f(n)。这个公式也可以表达为d ≡e-1 mod f(n) ,≡是数论中表示同余的符号。≡符号的左边必须和符号右边同余,就是两边模运算结果相同。不管f(n)取什么值,符号右边1 mod f(n)的结果都等于1;符号的左边d与e的乘积做模运算后的结果也必须等于1。这就需要计算出d的值,让这个同余等式能够成立。

6、将对P=(e,n)公开,并作为参与者的RSA公钥;(加密过程)

7、使对S=(d,n)公开,并作为参与者的RSA密钥;(解密过程)

为了变换与公钥P=(e,n)相关的消息M,计算P(M)=(M^e)mod n;

为了变换与密钥S=(d,n)相关的密文C,计算S(C)=(C^d)mod n;

等式对加密的签名是通用的。

RSA的原理核心已经写完。。。。。。

附带一段代码,是Python的,有兴趣的可以看下。

已经长传之paste.ubuntu.com,放在文章打不开,大家可以回复关键字“1”

查看。

如有错误,肯请指正。

原文发布于微信公众号 - 数据库SQL(SQLdba)

原文发表时间:2016-01-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序你好

区块链科普:非对称加密、椭圆曲线加密算法

区块链技术的应用和开发,数字加密技术是关键。一旦加密方法遭到破解,区块链的数据安全将受到挑战,区块链的不可篡改性将不复存在。

1512
来自专栏上善若水

011各种加密算法比较

算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA

1833
来自专栏java一日一条

DES/3DES/AES 三种对称加密算法在 Java 中的实现

1)算法和数据结构就是编程的一个重要部分,你若失掉了算法和数据结构,你就把一切都失掉了。 2)编程就是算法和数据结构,算法和数据结构是编程的灵魂。

902
来自专栏一名叫大蕉的程序员

RSA 这俩世纪最重要的算法之一No.91

本文大概1000字,读完共需5分钟 Diffie–Hellman加密算法的劣势 上一篇文章我们聊到 Diffie–Hellman key exchange ...

3065
来自专栏安恒网络空间安全讲武堂

学习分享 | Padding Oracle

0x00前言 之前写CBC翻转攻击的时候就在想什么时候能遇到Padding Oracle的题目hhhhh 想不到这么快就遇到了hhhhh ------- 0x0...

2158
来自专栏贾老师の博客

加密与签名算法

1823
来自专栏黑白安全

如何攻破加密算法

当应用加密算法时,有许多地方可能会出错。难点在于识别和分析程序员用来加密的方法,然后寻找其中的漏洞。漏洞的种类也很多,比如弱加密算法、弱密钥生成器、服务端漏洞和...

1322
来自专栏码神联盟

敲一天代码了,轻松下吧,精彩 !看人潮如海

先来首歌曲,耶耶耶..... ? 一边听歌,一遍来看几个算法 一、数字摘要算法 数字摘要也称为消息摘要,它是一个唯一对应一个消息或文本的固定长度的值,它由一个...

2705
来自专栏Albert陈凯

2018-10-11 对称加密、非对称加密、Hash算法看完这篇文章加解密就别蒙了散列函数 加密算法

http://hongyitong.github.io/2016/07/18/%E5%AF%B9%E7%A7%B0%E5%8A%A0%E5%AF%86%E3%8...

2073
来自专栏吴伟祥

加密总结 原

DES(Data Encryption Standard):对称算法,数据加密标准,速度较快,适用于加密大量数据的场合;

1044

扫码关注云+社区