RSA的简介:
RSA公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种"由已知加密密钥推导出解密密钥在计算上是不可行的"密码体制。
在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。
RSA的加密过程:
密文=明文的E次方mod N
也就是说明文的E次方除以N求余即可得到密文,当每个人都知道公钥(E,N)都可以进行加密。
RSA的解密过程:
明文=密文的D次方mod N
明文就等于密文的D次方除以N求余,私钥(D,p,q),只要知道私钥即可求出明文。
求秘钥对的过程:
1、先准备好两个互质的素数p,q。(p,q可能是非常大的两个素数,所以在编程的时候主要借助工具或脚本)
N=p*q
2、求L
L=(p-1)*(q-1)
3、求E(e是和L互质的数,也就是最大公约数为1,只要是互质可以是随机的)
4、求D(D是根据e求出来的,D和e有关)
D*e mod L=1
即可求出D。在CTF比赛过程中可能会给出N的值,倒退过来求。(需要python脚本的协助才能完成)。