RSA
Comment前言
数学没学明白就是吃亏 …
RSA
先盗图
RSA是一种非对称加密算法,它由 公钥(ne),私钥(nd),明文M和密文C组成
mod运算
模运算就是取余
5 mod 3 = 2
同余运算就是两个整数a,b 他们除以M所得余数相等
a = b(mod m)
11 = 5(mod 3)
再次盗图…
加密算法
秘钥对生成
n → L → e → d
因式分解
https://factordb.com/
yafu
把N保存到1.txt(最后要有换行符)
简单加密解密脚本
解密
import libnum
import gmpy2
n = 12163241791483524957316806288597760862288981689931968345271813765985026429745857
e = 11
p = 3487583947589437589237958723892346254567
q = 3487583947589437589237958723892346254871
assert n==p*q
c = 3079810359319238928727602198449362532122827974473968422037011227516212995430600
d = gmpy2.invert(e,(p-1)*(q-1))
m = pow(c,d,n)
print libnum.n2s(m)
加密
import libnum
import gmpy2
m = 'flag{just-s0-s0}'
m = libnum.s2n(m)
p = 3487583947589437589237958723892346254567
q = 3487583947589437589237958723892346254871
n = 12163241791483524957316806288597760862288981689931968345271813765985026429745857
e = 11
assert n == p*q
c = pow(m,e,n)
print c