RSA

2022/6/24 23:24:40

本文主要是介绍RSA,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、基本原理

公钥与私钥的产生

  1. 随机选择两个不同大质数 \(p\) 和 \(q\),计算 \(n=p\times q\)。
  2. 求得 \(\varphi ( n )\)。
  3. 选择 \(e < \varphi ( n )\),使 $e \perp \varphi (n) $。并求得 \(e\) 在模 \(\varphi ( n )\) 下的逆元 \(d\)。
  4. 销毁 \(p\) 和 \(q\)。

此时,\(( N , e )\) 是公钥,\((N,d)\) 是私钥。

消息加密

将消息以一个双方约定好的格式转化为数 \(m\),使 \(m < n\) 且 \(m \perp n\)。然后加密为:

\[m ^ e \equiv c \pmod { n } \]

消息解密

利用密钥 \(d\):

\[c ^ d \equiv m \pmod { n } \]

正确性证明

根据欧拉定理,解密的正确性是显然的。。。

CTF 的有关题目先咕咕咕。。。

反正密码学这一块还是挺有意思的。



这篇关于RSA的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程