密码学-数论基础
数论基础
整除性和带余除法
- 整除性:b整除a :b|a、b是a的一个因子
- 性质:a|1 ,a=+(-)1
- 带余除法:a=qn+r,|r|<|n|,q=a/n向下取整,余数的符号和除数同号
欧几里得算法
- gcd(a,b) = gcd(b,a%b=r),where a>=b>0 and a%b! = 0
)]
模运算
-
a除以n所得的余数为a模n,记为a mod n,n成为模数,ex:余数与模数同号
-
同余:(a mod n)=(b mod n)称为a和b是模n同余,记为a=b(mod n)
-
性质:
- 相减的两个数可被模数整除,则这两个数同余
- 交换律
- 传递性
-
模算数运算
1、2、3可以这样理解:模两数的余数的运算等于模两数运算,运算中包括了对期间模数的去重
幂运算也如此
-
模运算的单位元:模+的单位元为0,模x运算的单位元为1
-
逆元:
- (a+b)mod n =0,称a在mod n运算中加法逆元为b
- (a x b)mod n =1,称a在mod n运算中乘法逆元为b
-
模运算的性质:
-
剩余类集:定义比n小的非负整数集合为Zn={0,….,(n-1)},
-
剩余类:Zn中每个元素都代表一个剩余类,模n的剩余类表示为[0]、[1]、[2](、。。。、[n-1]
[r] = {a: a是一个整数,a=r(mod n)}:所有与r在模数n下同余的数
-
-
(a+b) = (a+c)(mod n) a在Zn中有加法逆元,则b=c(mod n),在Zn中,所有元素都有加法逆元
-
ab = ac (mod n) a在Zn中有模乘法逆元,那么有 b=c(mod n),在Zn中,如果元素a与n互素,那么a有模乘法逆元
-
扩展欧几里得算法
-
ax+by = d = gcd (a,b)
-
xi=xi-2 - xi-1*qi yi = yi-2 - yi-1*qi qi = ri-2 /ri-1 取整 初始条件r-1 = a、r0 = b 、x-1=1,y-1 = 0、x0 =0 、y0=1
-
-
x与y的求法:就是在欧几里得算法的每一步,都附带算上xi=xi-2 - xi-1qi和yi = yi-2 - yi-1qi
素数:整数p>1是素数,当且仅当p只有因子+、-1和±p
- 整数因式分解:任意整数都可以用素数进行唯一的因式分解:a = p1a1*p2a2*……*pt^at,其中p都是素数
费马定理:若p是素数,a是正整数且不能被p整除,则a^p-1 = 1(mod p)或者a^p = a(mod p)
欧拉定理:数论四大定理之欧拉定理 - 简书 (jianshu.com)
-
欧拉函数:小于n且与n互素的正整数的个数
f(1) = 1,f§ = p-1//p为素数
-
欧拉函数计算方法:a = p1a1*p2a2*……*pt^at,则f(a) = a*Tt(1-1/pi) ///*如果有两个素数p和q ,n=pq,则f(n)= f(p)f(q)
-
欧拉定理:a^f(n) = 1 mod n,对任意互素的整数a和n
离散对数
-
模n整数幂:a^m = 1 mod n,满足该式的最小正幂为,a mod n 的阶、a所属模n的指数、a在模n运算的周期
- 数a模n幂运算中,其阶最高为f(n).
- 如果阶为f(n),则称a为模n幂运算的本原根,素数都有本原根,部分非素数有本原根
-
模算数对数
b = a^i(mod p) i = dlogb\a,p
-
重要结论
-
计算y = a^x mod p 很容易
-
计算x = dlogy/a,p很难
-
-
-
重要结论
-
计算y = a^x mod p 很容易
-
计算x = dlogy/a,p很难
-
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂
· 凌晨三点救火实录:Java内存泄漏的七个神坑,你至少踩过三个!