密码学数论


整理一下常用的密码学数论知识,不定期更新完善校正……

同余性质

性质一:如果 a ≡ b (   m o d   m ) a\equiv b(\,mod\,m) ab(modm) c ≡ d (   m o d   m ) c\equiv d(\,mod\,m) cd(modm),则 a + c ≡ b + d (   m o d   m ) a+c\equiv b+d(\,mod\,m) a+cb+d(modm)
于是,对k个 a ≡ b (   m o d   m ) a\equiv b(\,mod\,m) ab(modm),有 k a ≡ k b (   m o d   m ) ka\equiv kb(\,mod\,m) kakb(modm)

性质二:如果 a ≡ b (   m o d   m ) a\equiv b(\,mod\,m) ab(modm) c ≡ d (   m o d   m ) c\equiv d(\,mod\,m) cd(modm),则 a c ≡ b d (   m o d   m ) ac\equiv bd(\,mod\,m) acbd(modm)
于是,对k个 a ≡ b (   m o d   m ) a\equiv b(\,mod\,m) ab(modm),有 a k ≡ b k (   m o d   m ) a^k\equiv b^k(\,mod\,m) akbk(modm)

性质三:如果 a c ≡ b c ( m o d   m   ) ac\equiv bc(mod\,m\,) acbc(modm),且c和m互素,则 a ≡ b (   m o d   m ) a\equiv b(\,mod\,m) ab(modm)

素数

任意整数 a > 1 a >1 a>1都可以唯一地因子分解为 a = p 1 α 1 × p 2 α 2 × … × p t α t a = p_1^{\alpha _1}×p_2^{\alpha _2}×… × p_t^{\alpha _t} a=p1α1×p2α2××ptαt,其中 p 1 , p 2 , … , p t p_1,p_2 ,…,p_t p1,p2,,pt均是素数, p 1 < p 2 < … < p t p_1<p_2 <…<p_t p1<p2<<pt,且所有的 a i a_i ai都是正整数。

费马小定理

若p是素数,a是正整数且不能被p整除,则 a p − 1 ≡ 1   (   m o d   p   ) a^{p-1}\equiv1 \,(\,mod\, p\,) ap11(modp)

若p是素数,a是任意正整数,则 a p ≡ a   (   m o d   p   ) a^{p} \equiv a\,(\,mod\,p\,) apa(modp)

欧拉定理

欧拉函数

欧拉函数 ϕ ( n ) \phi (n) ϕ(n)表示小于n且与n互素的正整数的个数,习惯上, ϕ ( 1 ) = 1 \phi (1)= 1 ϕ(1)=1

对素数p有 ϕ ( p ) = p − 1 \phi (p)= p - 1 ϕ(p)=p1

假设有两个素数p和q, p ≠ q p\neq q p=q,那么对 n = p q n =pq n=pq ϕ ( n ) = ϕ ( p q ) = ϕ ( p ) × ϕ ( q ) = ( p − 1 ) × ( q − 1 ) \phi (n) = \phi (pq)= \phi (p) × \phi (q)= (p - 1) ×(q - 1) ϕ(n)=ϕ(pq)=ϕ(p)×ϕ(q)=(p1)×(q1)

欧拉定理

对任意互素的a和n,有 a ϕ ( n ) ≡ 1   (   m o d   n   ) a^{\phi (n)} \equiv1\,(\,mod\,n\,) aϕ(n)1(modn)

对任意的a和n,有 a ϕ ( n ) + 1 ≡ a   (   m o d   n   ) a^{\phi (n)+1} \equiv a\,(\,mod\,n\,) aϕ(n)+1a(modn)

素性检验

Fermat素性检验

费马素性检验就是把费马小定理反过来用:
由费马小定理,对任意素数 p p p和与其互质的整数 a a a a p − 1 ≡ 1   (   m o d   p   ) a^{p-1}\equiv1 \,(\,mod\, p\,) ap11(modp)
合理推测,任意选取一个小于 p p p的整数 a a a,若 a p − 1 ≡ 1   (   m o d   p   ) a^{p-1}\equiv1 \,(\,mod\, p\,) ap11(modp),则试图认为 p p p是素数。
但实际上这个推测并不靠谱。

费马伪素数:对 p ′ p' p和一个与其互素的整数 a a a,如果 p ′ p' p整除 a p ′ − 1 − 1 a^{p'-1}-1 ap11,且 p ′ p' p是一个非偶数的合数,则称 p ′ p' p是关于整数 a a a的费马伪素数。最小的费马伪素数是341,341是关于整数2的费马伪素数(341本身是一个合数:341=11×31)。

卡迈克尔数:如果 p ′ p' p关于任何与其互素的整数都是费马伪素数,则称 p ′ p' p是绝对伪素数(或卡迈克尔数),最小的绝对伪素数是561。

即便如此,大部分情况下适当多选择几个a,可以在一定概率下认为 p ′ p' p是一个素数。

Miller Rabin素性检验

二次探测定理:对于素数 p p p,若 x 2 ≡ 1   (   m o d   p   ) x^2\equiv1 \,(\,mod\, p\,) x21(modp),则小于 p p p的解只有 1 1 1 p − 1 p-1 p1

证明:
x 2 ≡ 1   (   m o d   p   ) x^2\equiv1 \,(\,mod\, p\,) x21(modp)
x 2 − 1 ≡ 0   (   m o d   p   ) ⇒ ( x + 1 ) ( x − 1 ) ≡ 0   (   m o d   p   ) x^2-1\equiv0\,(\,mod\,p\,)\Rightarrow (x+1)(x-1)\equiv0\,(\,mod\,p\,) x210(modp)(x+1)(x1)0(modp)
p ∣ ( x + 1 ) ( x − 1 ) p|(x+1)(x-1) p(x+1)(x1),又因为 p p p为素数,则得 ( x + 1 ) ( x − 1 ) = 0 (x+1)(x-1)=0 (x+1)(x1)=0 ( x + 1 ) ( x − 1 ) = k p (x+1)(x-1)=kp (x+1)(x1)=kp
前式解得 x = 1 x=1 x=1,后式解得 x = p − 1 x=p-1 x=p1

Miller Rabin素性检验原理分析
由费马小定理,对任意素数 p p p和与其互质的整数 a a a,有 a p − 1 ≡ 1   (   m o d   p   ) a^{p-1}\equiv1 \,(\,mod\, p\,) ap11(modp),由于素数 p p p首先应该是个奇数(如果 p p p是个偶数就不用素性检验了,肉眼检验也是该是个合数),那么 p − 1 p-1 p1就应该是个偶数。

那么就可以类比二次探测定理 x 2 ≡ 1   (   m o d   p   ) x^2\equiv1 \,(\,mod\, p\,) x21(modp),改写 a p − 1 ≡ 1   (   m o d   p   ) a^{p-1}\equiv1 \,(\,mod\, p\,) ap11(modp) ( a p − 1 2 ) 2 ≡ 1   (   m o d   p   ) (a^{\frac{p-1}{2}})^2\equiv1\,(\,mod\, p\,) (a2p1)21(modp),即令 x = a p − 1 2 x=a^{\frac{p-1}{2}} x=a2p1,就可以用二次检测定理来判断p是否为素数。

前面在二次探测定理中说“小于 p p p的解只有 1 1 1 p − 1 p-1 p1”,考虑 x = a p − 1 2 x=a^{\frac{p-1}{2}} x=a2p1可能大于 p p p,那么需要先将 a p − 1 2 a^{\frac{p-1}{2}} a2p1进行   m o d   p \,mod\, p modp运算,得到的结果判断是否为 1 1 1或者 p − 1 p-1 p1,如果不是,那么 p p p就不是素数。

如果 a p − 1 2 ≡ 1   (   m o d   p   ) a^{\frac{p-1}{2}}\equiv1 \,(\,mod\, p\,) a2p11(modp),且 a p − 1 2 a^{\frac{p-1}{2}} a2p1不为奇数,那就可以再进行一轮检验,即令 x = a p − 1 4 x=a^{\frac{p-1}{4}} x=a4p1,继续判断 a p − 1 4 a^{\frac{p-1}{4}} a4p1   m o d   p \,mod\, p modp运算结果……直到 a p − 1 n a^{\frac{p-1}{n}} anp1变成奇数。

也就是说,我们可以将 p − 1 = 2 t u p-1=2^tu p1=2tu(u为奇数),对 a u , a 2 u , a 2 2 u . . . a 2 t u a^u,a^{2u},a^{2^2u}...a^{2^tu} au,a2u,a22u...a2tu这一系列数进行   m o d   p \,mod\, p modp运算,得到的结果要么全是1,要么在经过很多不为1的数之后出现的 p − 1 p-1 p1后全是1,否则就不是素数。 p − 1 p-1 p1也不能出现在最后一个数,否则就意味着 a p − 1 ≡ p − 1   (   m o d   p   ) a^{p-1}\equiv p-1 \,(\,mod\, p\,) ap1p1(modp),不满足费马小定理。

Miller Rabin素性检验过程

先筛掉3以下的数与偶数(肉眼素性检验法)。

对待检验数 p ′ p' p,将 p ′ − 1 p'-1 p1化为 2 t u 2^tu 2tu

选取多个底数,分别对 a u , a 2 u , a 2 2 u . . . a^u,a^{2u},a^{2^2u}... au,a2u,a22u...进行检验,判断其解是否全为1,或在经过很多不为1的数之后出现的 p − 1 p-1 p1后全是1 。

如果都满足,认为这个数是素数。

Miller Rabin素性检验和费马素性检验一样,并不能100%保证通过检测的一定是素数。大部分情况下适当多选择几个a,可以在一定概率下认为 p ′ p' p是一个素数。

中国剩余定理

m 1 , . . . , m k m_1,...,m_k m1,...,mk k k k个两两互素的正整数,则对任意的整数 b 1 , . . . , b k b_1,...,b_k b1,...,bk,同余式组
{ x ≡ b 1   (   m o d   m 1   ) . . . x ≡ b k   (   m o d   m k   ) \begin{cases} x\equiv b_1\,(\,mod\,m_1\,) \\ ...\\ x\equiv b_k\,(\,mod\,m_k\,)\\ \end{cases} xb1(modm1)...xbk(modmk)
x x x一定有解,且解唯一

m = m 1 . . . m k m = m i ⋅ M i         i = 1 , . . . , k M i ′ ⋅ M i ≡ 1 (   m o d   m i   )         i = 1 , . . . , k m=m_1...m_k\\m=m_i·M_i\,\,\,\,\,\,\,i=1,...,k\\M'_i·M_i\equiv1(\,mod\,m_i\,)\,\,\,\,\,\,\,i=1,...,k m=m1...mkm=miMii=1,...,kMiMi1(modmi)i=1,...,k则解为 x ≡ b 1 ⋅ M 1 ′ ⋅ M 1 + b 2 ⋅ M 2 ′ ⋅ M 2 + . . . + b k ⋅ M k ′ ⋅ M k (   m o d   m   ) x\equiv b_1·M'_1·M_1+b_2·M'_2·M_2+...+b_k·M'_k·M_k(\,mod\,m\,) xb1M1M1+b2M2M2+...+bkMkMk(modm)

离散对数

对方程: y ≡ g x   m o d   p y\equiv g^x\,mod\,p ygxmodp对给定的g、x和p,可直接计算出y,在最坏情况下需执行x次乘法;但是给定y、g和p,计算x一般非常困难(即求离散对数)。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值