同余方程、欧拉定理、乘法逆元、定义在Zm上的矩阵求逆

上篇简单介绍了一下仿射密码:仿射密码的加密与解密,很多东西都没有深入去挖掘,这次上完课后对实现它的一些概念公式又有了一个更深的认识。


首先介绍几个概念:

1.模同余

模同余:给定一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b模m同余,记作a≡b(mod m)。对模m同余是整数的一个等价关系。
例如:
3被2除 余1

5被2除 余1

3,5 被2除有相同的余数

所以 3 同余 5 模 1 ,记做:3 ≡ 5 (mod 1)

在这里插入图片描述
其中定义群Zm = {0, 1, 2, …, m-1}

证明:

必要性
若a和b除以m留下相同的余数r,

a=q1m+r , b=q2m+r ,q1和q2为某两个整数

所以a-b=(q1m+r)-(q2m-r)=m(q1-q2)

根据整除定义:(a-b)/m = (q1-q2),整数相减还是整数,由同余式定义得出结论:a≡b(mod m)

充分性
假定(其中r1和r1小于m,q1和q2为整数)

a = q1m+r1 , b = q2m+r2

则: a-b = (q1-q2)*m + (r1-r2)

因为,则r1-r2=0,即r1=r2

2.一次同余方程唯一解定理

设 a ∈ Zm ,对任意的 b ∈ Zm,同余方程 ax ≡ b (mod m) 有唯一解 x ∈ Zm 的充分必要条件是:

gcd(a, m) = 1 (表示a和m的最大公约数等于1)

证明如下:
在这里插入图片描述在这里插入图片描述

3.欧拉函数和欧拉定理

欧拉函数

设a ≥ 1,m ≥ 2, 如果gcd(a, m) = 1,则称a与m 互素,Zm中所有与m互素元素的个数用φ(m)来表示(函数φ称为欧拉函数)
例如φ(10) = 4,因为1,3,7,9均和10互质。
计算方法:

1.先化为标准分解式形式:
在这里插入图片描述
例如:
在这里插入图片描述

2.再依照下式规则计算
在这里插入图片描述
在这里插入图片描述
这其中 {1,5,7,11,13,17,19,23,25,29,31,35} 与36 互质,共计12 个

所以如果 m为质数 则 φ(m) = m-1

欧拉定理

当 𝑎 , 𝑚 互质时, 𝑎^𝜙(𝑚) ≡ 1 mod (𝑚) (这个式子也可以求逆元)

费马小定理

当 𝑚 为质数且 𝑎 不为 𝑚 的倍数时有 𝑎^(𝑚−1)≡1mod(𝑚)
根据费马小定理可知: 𝑎^(𝑚−2) 就是a在模m意义下的逆元.

4.乘法逆元

在这里插入图片描述

乘法逆元求解:

1.遍历,参考上一篇 仿射密码的加密与解密

2.拓展欧几里得:

def ext_gcd(a, b): #扩展欧几里得算法    
    if b == 0:          
        return 1, 0, a     
    else:         
        x, y, gcd = ext_gcd(b, a % b) #递归直至余数等于0(需多递归一层用来判断)        
        x, y = y, (x - (a // b) * y) #辗转相除法反向推导每层a、b的因子使得gcd(a,b)=ax+by成立         
        return x, y, gcd

a, b = 7, 26 # 求7关于模26的逆元

x, y, gcd = ext_gcd(a, b) 

x0 = x % b # x0即为乘法逆元

print(x0)

5. 定义在Zm上的矩阵求逆

设矩阵
在这里插入图片描述
是定义在Zm上的矩阵,
在这里插入图片描述
举个例子:
在这里插入图片描述
在这里插入图片描述
这其中,9 关于模26 的乘法逆元为3.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值