20220613现代密码学读书笔记

个人博客
https://blog.hylstudio.cn/archives/981
CSDN
为了良好的阅读体验,建议到个人博客或CSDN,QQ空间就是备份用的,tx看起来彻底放弃日志了。。。。

20220613现代密码学读书笔记
后面即将出现大量数学基础,看不懂的建议直接放弃或者先去复习下离散数学

4 公钥密码

4.1 密码学中亿些常用的数学知识

4.1.1 群 环 域

梦回离散数学抽象代数,主要描述数学对象的集合以及他们之间的运算,运算可以是一元或多元,可以有一个或多个
是集合S上的运算,对任意a,b属于S,ab属于S,则称S对运算是封闭的
是一元运算,对任意a属于S,a属于S,则称S对运算是封闭的
若对任意a,b,c属于S,有(ab)c=a(bc),则称*满足结合律

若代数系统<G,*>同时满足封闭性和结合律,则称之为半群

在半群中,若对任意a,b属于S,有ea=ae,则称e为单位元,也叫幺元
对任意a属于S,存在a的逆(a^-1,公式不好输入后面写-a~a或者a逆都是这个意思)使得a * a逆 = a逆 * a = e,则称S内元素均可逆
在半群<G,>中,若G内任意元素均可逆,则称之为群
若G为有限集,则称<G,
>是有限群,否则为无限群,其中G的元素个数称为群阶

若对任意a,b属于S,有ab=ba,则称满足交换律
若群<G,
>的运算满足交换律则称之为交换群,也叫做Abel群,中文一般叫阿贝尔群
运算
一般称之为乘法,对应的群为乘法群,若运算为+加法则称之为加法群

举例:
<I,+>是Abel群,I是整数集
<Q,*>是Abel群,Q是有理数集
设任意集合A,P为A上双射函数集,<P,+>是群, +表示函数合成,通常这个群不是Abel群
PS:既是单射又是满射的映射称为双射
<Zn,+n>是Abel群,其中Zn={0,1,2,…,n-1},
+n是模加a +n b == (a + b) % n
~x == n - x
<Zn,*n>不是群,因为0没有逆元。*n是模乘a *n b == (a * b) % n

若<G,*>是群,I是整数集合,存在元素g属于G,对任意元素a属于G,都有相应的i属于I,使得a==g^i。则称之为循环群,其中g称为生成元

对任意a,b,c属于S,若a*(b+c)==a*b+a*c且(b+c)*a==b*a+c*a,则称乘法在加法上可分配
若代数系统<R,+,>的二元运算满足<R,+>是Abel群,<R,>是半群,乘法在加法上可分配,则称代数系统<R,+,*>是环

若代数系统<F,+,>满足<F,+>是Abel群,<F-{0},>是Abel群,乘法在加法上可分配,则称之为域
同理,元素数量有限的集合对应的域称为有限域,元素个数称为域的阶
若q是素数的幂即q=p^r,其中p为素数r为自然数,则阶为q的域称为伽罗华(Galois)域,记为GF(q)或F(q)

所有实数作为系数的多项式集合R(x)在多项式加法和乘法运算下构成环
同理任意域F上的(系数属于F)多项式集合F(x)在多项式加法和乘法运算下构成环

F(x)中不可约多项式和整数中的素数类似,指的是F上仅能被非0常数或自身的倍数除尽,但不能被其他多项式除尽的多项式
两个多项式的最高公因式为1时,称他们之间互素

多项式系数取自以素数p为模的域F时,这样的多项式集合记为Fp[x]
若m(x)是Fp[x]上的n次不可约多项式,将Fp[x]上多项式加法和乘法改为以m(x)为模的加法和乘法,此时多项式集合Fp[x]/m(x)记为GF(pn),集合中元素个数为pn,它是一个有限域

4.1.2 素数 互素

也就是质数和互质,这个相对简单,小学二年级学过
若a,b是两个整数,b不为0,存在另一个整数m使得a=mb,则称b整除a记为b|a,称b为a的因子
整数性质:
a|1 --> a=1 || a=-1
a|b && b|a --> a = b || a = -b
对任意b!=0,b|0
b|g, b|h --> b|(mg+nh), 其中m,n为任意整数
证明:显然存在g1,h1使得g=bg1,h=bh1
mg + nh == mbg1 + nbh1 == b(mg1 + nh1)
因此得证b|(mg+nh)

如果p的因子只有p,-p,1,-1称p为素数或质数,否则称之为合数。(p>1)
任意整数a都能唯一被分解为质数之间的乘积(a>1),也就是小学学过的质因数分解(这个不是玩梗,是真的小学学的)

如91=713,11011=711^2*13
11011可表示为{a7=1,a11=2,a13=1},其中an是素数n的指数

若c同时是a,b的因子,则c是a,b的公因子。
若同时a,b的任意公因子均是c的因子,则称c为a,b的最大公因子,记为c=gcd(a,b)
因最大公因子为整数,因此定义gcd(a,b) == gcd(a,-b) == gcd(-a,b) == gcd(-a, -b)
一般gcd(a,b)==gcd(|a|,|b|)。
因a|0可得gcd(a,0)=|a|,其中a!=0

300 = 2^2 * 3^1 * 5^2
18 = 2^1 * 3^2
gcd(18 * 300) == 2^1 * 3^1 * 5^0 == 6

若gcd(a,b)=1则称a,b互素或互质
如果d是a的倍数也是b的倍数,则称之为公倍数
a和b的任意公倍数若都是d的倍数,则称之为最小公倍数,记为d=lcm(a,b)

若a,b互素,则lcm(a,b) = a * b

4.1.3 模运算

也是小学学过的除法相关的运算
若a == qn + r,其中a是整数,n是正整数,若用n/a,商q余r(其中0<=r<n, q=floor(a/n))
floor是像负无穷方向取整
若 a % n == b % n 称a和b模n同余,记为 a===b mod n,[a]为同余类集合,a为代表元素

明天继续第四章公钥密码,一个小时才看了4页,可见这节的信息量密度极大。横穿高数和离散大量的内容
mark当前73页

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值