Skip to content

密码学小记

RSA 算法

符号定义

  • m:message
  • N
  • e:encrypt
  • d:decrypt
  • c:cypher

加密与解密的过程

Encryptian 加密

=> (N,e)

memod N=c

Decryptian 解密

=> (N,d)

cdmod N=m

推导

medmod N=m

欧拉定理:mφ(n)1 (mod n)

  • φ(n):欧拉公式
(mφ(n))k1k (modn)mkφ(n)1 (mod n)mkφ(n)+1m (mod n)mkφ(n)+1modnm
ed=kφ(n)+1d=kφ(n)+1e

关于如何确保d始终是整数这件事我还十分困惑呜呜呜

举个例子

ed 的产生

  • p=17
  • q=23
  • φ(17×23)=φ(391)=352
d=kφ(n)+1e=5×352+13=587

e=3 是人为选取的

模拟加密过程

利用上述 ed 加密字符 "a" -> 97

c=973mod391=79

模拟解密过程

m=79587mod391=97
One day we will climb the highest mountain, and suvey the smallest point.