模运算——开启密码学学习之路

模运算——开启密码学学习之路

综述:学完高数,线性代数,概率论,数学已经学了一大半,本以为数学的知识也就到此结束,但没有想到这只是自己自欺欺人。开始看导师密码学的论文的时候,第一眼就吓傻眼,模运算mod ,没想到还有数论这种东西存在,而且用处广泛。其中《密码编码学与网络安全》书中,我就见证其用处是无处不在,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从费马定理到欧拉定理,从孙子问题到凯撒密码问题,从RSA密钥到椭圆曲线。无不充斥着模运算的身影,只怪自己是井底之蛙。于是乎要理解密码学和椭圆曲线,就得学习模运算。

基本概念

概念:就是求余数,11 Mod 2余数值为1

数学上的定义:给定一个正整数p  ,任意一个整数 n(正数,负数,0都行) ,一定存在等式n = p*k+r 0r<n)(备注,这个式子很重要,后面许多性质都要用到这个等式) 例子:-11 mod 7 = 3

部分且重要性质:(这里只列了几个需要证明的性质)

1.同余式:正整数abp取模,它们的余数相同,记做 a b % p或者a b (mod p)

2.p|(a-b),则ab (mod p)  备注:(|是整除性符号,也就是(a- b)是p的因子

证明:令a-b=kp;那么a=kp+b1;所以a mod p = kp+b mod p =b mod ;所以ab (mod p)

3.结合率((x+y )mod p +cmod p =x+ (y +c mod) pmod p ;

证明:存在x= k1p +r1,y = k2p+r2;c=k3p+r3;则代入等式左边,等于r1+r2+r3,等式右边也等于r1+r2+r3

4.非常重要的运算:加法逆元和乘法逆元

  定义:加法逆元 x+ymod p =0

   乘法逆元(x*ymod p =1

 举例:模8加法和乘法逆元

w

-w

W-1

0

0

不存在

1

7

1

2

6

不存在

3

5

3

4

4

不存在

5

3

5

6

2

不存在

7

1

7

 

重大运算规则

费马定理:若p是素数,且a是正整数不能被p整除,意思是a,p 互素。

ap-1 ≡ 1 mod p

构造素数 p 的完全剩余系 P ={1,2,3,4…p-1}

a乘以集合中所有元素并对p去模,则得到X ={1a,2a,3a,4a…(p-1)a}

也是p的一个完全剩余系。由完全剩余系的性质,

1*2*3*…(p-1)=a*2a*3a*…a(p-1)

(p-1)!=(p-1)!ap-1 (mod p)

易知  ,同余式两边可约去(p-1)!  ,得到ap-1 1 (mod p)

欧拉定理;

欧拉定理是在费马定理上进一步的扩展 所以证明和推理是 一样的,

但涉及到欧拉函数(解决给定一个正整数,在其内与它互为素数的个数)

 aφ(n) 1 (mod n)

在欧拉函数中,当n为质数时,φ(n)=n-1;很好验证,比如你n=5,那么5以内有 1,2,3,45为互质,所以φ(5)=4

中国剩余定理

    听说这个定理又叫做孙子定理,比较难懂,用来简化模计算,很牛逼的一个定理,可惜看了两遍没看懂它的证明过程。

熟悉的应用

1)加密解密的证明

对于明文分组M和密文分组C,加密和解密过程中

C =Me mod n;  式子(1

M=Cd mod n;  式子(2

其中收发双方均是已知n,发送方已知是e,只有接收方有d,公钥{en},私钥{e,n},主要是为了证明如何证明式子(2),也就是接收方如何还原数据。

要证明这个M=Cd mod n=(Me mod n)d mod n成立,

先证明Cd mod n=(Me mod n)d mod  = (Me)d mod n

根据模的定义数学上的定义:给定一个正整数p  ,任意一个整数 n(正数,负数,0都行) ,一定存在等式n = p*k+r

Me =k*n+r 所以 (Me mod n)d mod n = rd mod n

 (Me)d=(k*n+r)d

泰勒展开,会发现除了rd,所有项都有k*n。所以(Me)d mod n=(k*n+r)d mod n =rd mod n

所以 (Me mod n)d mod  = (Me)d mod n

接下来在证明 (Me)d mod n = M

因为

n = pq

e满足gcd(φ(n)e=11<e<φ(n)

ed 1 mod φ(n)

d  e-1mod (φ(n));de是模φ(n)的乘法逆元

 

所以 (Me)d mod n = Mkφ(n)+1mod n=(M*Mkφ(n)) mod n

由欧拉定理得:aφ(n)+11 mod n

所以 (M*Mkφ(n)) mod n = M

所以 (Me)d mod n = M

结合之上所证明得:M=(Me)d mod n=(Me mod n)d mod=Cd mod n

所以解密的式子(2)成立。

 

应用(2解决实际问题(循环类)

以下是朋友问我的一道经典题目,当时正好想到用模数的方法解决

问题:如图4个带指针的时钟A,B,C,D,每转动一个方位时,临近的两个时钟也会随之转动方位,例如A顺时针转90°,那么BC,也会顺时针转动90°,那么问该怎么转动四个时钟,使四个指针都朝上。

解:这个问题挺有趣的但又不能一个个去尝试,而且这个问题有一定的可循环性。

分析可得,A总的要比其他三个多转动4k+1(这里假设都是顺时针)。假设A转动a次,B转动b次,C转动c次,D转动d次。

a+b+cmod 4 = 1

a+b+dmod 4 = c+b+dmod 4 = c+a+dmod 4 =0

故:a+b+c = 4k+1

    a+b+d=4n

    a+c+d =4m

    b+c+d=4t

  化简: b-c =4n-m

         a-c=4n-tn-t

a-b =4m-t

求得其中的一个解:b =11,c= 3,a =7,d =2;

  《模运算——开启密码学学习之路》

 

 

 

 

 

 

            

 

 

 

    原文作者:维吉尼亚加密问题
    原文地址: https://blog.csdn.net/lijunping123/article/details/77411201
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞