密码学基础散记
在这里零散地记载一些遇到的密码学相关知识
(当裁缝)
威尔逊定理
任一素数减去1的阶乘与-1模该素数同余。即对于任何素数p,都有
$$
(p-1)!+1\equiv 0(mod\ p)
$$
引理
设p是素数,f(x)是整系数多项式,再设a1,a2,…,an两两对模不同余,满足
$$
f(a_j)\equiv 0(mod\ p),1\leq j\leq n
$$
则存在整系数多项式q(x),使得
$$
f(x)\equiv q(x)(x-a_1)(x-a_2)…(x-a_n)(mod\ p)
$$
由此可进一步推知,
$$
x^{p-1}-1\equiv (x-1)…(x-p+1)(mod\ p)
$$
群论
参考了百度百科和这篇文章
二元运算
定义
循环群
阿贝尔群
若一个群满足交换律,则称其为阿贝尔群,也称为交换群。
同态
设(M,)和(S,·)是两个群,σ:M→S,∀a,b∈M,有σ(ab)=σ(a)·σ(b),则称σ为M到S的同态或群映射。
也就是说,先运算再映射和先映射再运算得到的结果相等。
如果为单射,则称为单同态。
同构
如果一个同态映射可逆(双射),则称这两个群同构。
半群
只满足定义中的1、2两条
离散对数
当模m有原根时,设l为模m的一个原根,则当x=l^k mod m时,
$$
Ind_lx\equiv k(mod\ \phi(m))
$$
离散对数和一般的对数有着相类似的性质:
$$
Ind_lxy\equiv Ind_lx+Ind_ly(mod\ \phi(m))
$$
$$
Ind_lx^y\equiv yInd_lx(mod\ \phi(m))
$$
在程序中,我们可以用sympy库中的discrete_log函数来实现
1 | import sympy |
环和域
定义
交换环 含幺环 交换含幺环
性质
无零因子环和含零因子环
在有限含幺环中,无零因子等同于(非零元)有逆元。
整环(整区)
交换含幺的无零因子环称为整环。
除环
除环是含幺的无零因子环。
域
接上面的环,参考了百度百科和这篇文章
定义
可以说,可交换的除环是域,或有限整环是域
百度百科上的描述也不错
有限域(伽罗瓦域)
如果域F只包含有限个元素,则称其为有限域。有限域中元素的个数称为有限域的阶。有限域的特征数必为某一素数p,因此它含的素域同构于Zp。若F是特征为p的有限域,则F中元素的个数为pⁿ,n为某一正整数。元素个数相同的有限域是同构的。因此,通常用GF(pⁿ)表示pⁿ元的有限域。GF(pⁿ)的乘法群是(pⁿ-1)阶的循环群。