原标题:CTF现代密码
前言:
在CTF的密码题目中,RSA以其加密算法之多且应用之广泛,所以在比赛中是最常见的题目。学习密码学并不难,但首先得打好数学基础,并在攻破密码的学习之路上持之以恒。今天我们就来打开RSA加密世界的第一扇门。
数论基础:
1.素数
2.公约数与公倍数
3.欧拉函数
4.欧几里得算法
5.扩展欧几里得算法
6.同余
7.模运算
8.逆
9.中国剩余定理
10.逆元与同余式定理
1.素数:
定义:
一个大于1的自然数,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数);否则称为合数。
如:
3×4 = 12,不是素数。
11除了等于11×1以外,不能表示为其它任何两个整数的乘积,所以11是一个素数。
关于素数有以下事实:
(1)如果p是素数,且p | ab(表示ab能被p整除),则p | a或 p | b ,即p 至少整除a与b中的一个。
(2)(算术基本定理)每个整数n ≥ 2 ,均可分解成素数幂之积:
n =
若不计因数的顺序,这个分解式是唯一的。其中k ≥ 1,(1 i ≤ k)是两两互不相同的素数,(1 i ≤ k)是正整数。
(3)素数有无穷多个。
2.最大公约数与最小公倍数<