久闻大名,ctf的密码学题目,easyRSA
因为实验里面需要加密解密,就看了下这个使用最为广泛的非对称加密算法。
加密的宏观上:为了能让Bob安全的给Alice发送消息。
首先Alice生成公钥和私钥(对应锁和钥匙),然后Alice将锁给Bob,那么Bob用锁给信息加密后,将加密后的东西还给Alice,Alice用钥匙解密即可拿到Bob的信息。但是其他人虽然能看到锁,但是无法解密,因为没有钥匙。
原理
模运算是单向运算
有e容易求c,但是有c难求e
加密解密过程:e和N是给大家都能看到,但是d是Alice持有的钥匙,只有Alice能计算的
mod的模数e和余数c是互质的,所以上面吧m^e带入下面的c得到下面公式
欧拉函数
定理
所以建立式子
所以,取两个质数,p*q=n
其他人来说:已知n,但φ(n)难以求解
拥有私钥p、q的人来说:p和q因为是质数很好求容易求得
1 | φ(n)=φ(p)*φ(q)=(p-1)*(q-1) |
就可以求得d,成功解出答案