前言
最近做的CTF题目遇到RSA加密总是不会,于是参考资料学习一番,小结自己的学习过程,怕自己某天又忘记了
RSA是属于现代密码学的范畴,现代密码学的终极目标是:发明永远无法破解的加密算法
而他们很多又是跟二进制相关,二进制加密的唯一算法 XOR
下面两个标准就很典型。。。
DES 数据加密标准
AES 高级加密标准
对于上面的东西一知半解。。什么轮子函数都没了解清楚,还有一些什么盒子之类的东西。。。emmm以后在深究吧
正文
跟标题一样,我只是简单了解RSA算法,然后把自己得理解写出来,毕竟那些什么欧拉公式,什么高斯的数论,看也看一到两天,太费时间。。。
RSA是一种非对称加密算法,它由 公钥(n/e),私钥(n/d),明文M和密文C组成。
RSA的大致过程
选取两个大素数生成n,p和q,n=p*q,这里的n目前大都是在1024位左右,难以破解,因为它越长,分解起来就越难
随机选取加密密钥e,保证e和(p-1)(q-1)互素
计算解密私钥 e*d ≡ 1 mod (p-1)(q-1)
加密 c=m^e mod n
解密
m=c^d mod n
这里的c指的是密文,m指的是明文
其中(n,e)为公钥,(n,d)为私钥
介绍一个同余运算的概念
两个整数a,b,它们除以整数M所得的余数相等:a ≡ b(mod m)
,比如说5除3余数为2,11除