筑基篇·抽象代数·有限域
密码学学习笔记——筑基篇·卷四(有限域) 有限域 有限域(伽罗瓦域) 概念回顾: 有限域:元素个数(阶)有限的域。 特征:$ma=\theta$ ($\forall a\in R)$的最小正整数$m;$ 否则 $m=0$。即 Char $R=m$$(me=\theta\left(e\in R\right)$的最小正整数$m;$ 否则 $m=0)$ 有限域的特征一定是素数 素域:不包含任何真子域的域 (任何真子集都不会构成其子域) 从下面开始,若无特殊说明$p$为素数,$F$为有限域。 定理1:阶为素数的有限域必是素域,其特征是这个素数 定理2:任何有限域都包含一个同构于$Z_p$的子域 引理:$K是F的子域,\quad|K|=q,\quad[F{:}K]=n,\quad则|F|=q^n$ 定理2: $F的特征是p,K是F的素子域,[F;K]=n, 则 |F|=p^n$ 有限域的唯一性定理 (有限域的唯一性):对于任意素数$p$,任意正整数$n$,都存在阶为$p^n$的有限域。任何阶为$p^n$的有限域都同构于$x^{p^n}-x$在$Z_p$上的分裂域。 引理:$F...
筑基篇·抽象代数·环论
密码学学习笔记——筑基篇·卷三(环论) 环论ring啊ring啊ring,爱的和弦铃,yeah! 环(ring)(R,+,\cdot)\\\ R指非空集合,+指加法,\cdot指乘法(加法乘法是抽象概念,不是算数加法和乘法) 加法阿贝尔群:($R,+)$是阿贝尔群 乘法半群:$(R,\cdot)是半群,满足封闭性、结合律$ 分配律:$\forall a, b, c\in R$, $a\cdot ( b+ c) = a\cdot b+ a\cdot c$ $(b+c)\cdot a=b\cdot a+c \cdot a$ 环可以表示形如a_0+a_1\cdot x+\cdots+a_n\cdot x^n\\\text{其中 }a_0,a_1,...a_n\in(R,+,\cdot)的多项式 有限环:环的元素数量是有限的 无限环:环的元素数量是无限的 例1:$整数环(\mathbb{Z},+,\times):$ $(\mathbb{Z},+)是阿贝尔群$ $(\mathbb{Z},\times)满足封闭性、结合律$ $\times 对+满足分配律$ 例2:$\text...
密码算法篇·AES
githublog/2022/6/15/rolling-your-own-crypto-aes.md at main · francisrstokes/githublog 初始变换(initial round)9轮循环运算(9 rounds)字节代换(SubBytes)查表 行移位(ShiftRows)列混合(MixColumns)轮密钥加(AddRoundKey)1轮最终轮(Final Round)
筑基篇·抽象代数·群论
密码学学习笔记——筑基篇·卷二(群论) 群论 代数结构(algebraic structure)$(G,🐱,🥒\dots$) $G指非空集合,\underbrace{🐱, 🥒 ,\dots}_{二元运算(需要两个运算数)}$ \begin{align} 封闭性:\forall\ a,b & \in G, \\ a🐱b & \in G\\a 🥒 b & \in G\\ \dots \\集合中任意两个元素运算&的结果仍然是这个集合里的元素\end{align}代数结构必须满足封闭性 群(Group)定义:若(G,*)是一个群,则它满足以下性质: 封闭性:$ \forall a,b\in \mathbb{G}, a*b \in \mathbb{G}$ 结合律:\forall a,b,c\in \mathbb{G}, a*(b*c)=(a*b)*c 单位元(幺元,identity):\exists e\in \mathbb{G} , \forall a\in \mathbb{G} , a*e=e*a=a 定理1:群里的单位元是唯一的 逆元(inverse...
筑基篇·初等数论
密码学学习笔记——筑基篇·卷一(初等数论) 说在前面在学习、比赛的过程中,感觉没有数竞基础的同学入坑Crypto真的很痛苦,很多概念和符号都不懂。 所以在此分享自己的数学基础学习笔记(九年制义务教育都能看得懂的那种,建议加入中考😀),因为都是基础知识,就命名为《筑基篇》吧,希望能减轻大家入坑密码的痛感,大家一起快乐的学习吧!!! 当然,看我这篇笔记肯定是不够的,有些证明过程我也是直接省略了,大家还是要把密码学涉及到的全部知识系统的学习一遍,很重要的一点是学会动笔!。 如果以后我润别的方向了,也算给自己的CTF的Crypto生涯一份结果。 如果有错误也恳请大家指正,爱来自NJUST。 那么,筑基篇,正式开始!!!!! PS1:由于各人编辑器的使用习惯差异,符号字母也是markdown公式编辑手搓出来的,发布出来的公式渲染可能会出一点点小问题,大家多包涵,对于渲染不出来的公式,大家可以自己复制到typora里看😀。 PS2:编辑器和我个人水平差的缘故,可能排版、内容顺序杂乱,大家轻点喷 PS3:有修改建议的话可以发邮件捏email: Cucumber0703@outlook.c...
密码算法篇·RSA
前置知识 互质:两个正整数只有一个公因数1时,则称其为互质。 欧拉函数$\varphi(N)$:小于或等于$N$的正整数中与$N$互质的数的个数 若$p$为素数,则$\varphi(p)=p-1$ (因为每一个小于$p$的数都与$p$互质。) 由此我们有在RSA中,$\varphi(N)=(p-1)(q-1)$ 乘法逆元: 在加法中,我们有$a+(-a)=0$,我们称其互为相反数。 在乘法中,我们有$a\cdot(1/a)=1$,我们称其互为倒数,但是其实我们可以用一个统一的称呼:逆元,即某种运算下的逆元素,我们会发现,元素和其逆元素进行运算之后总是一个定值 实际上在代数中,他们构成了一个群(不用深究),而我们进行要了解则是在模意义下的乘法逆元在模$p$意义下,指的是后续的所有运算都是在模$p$的条件下满足,例如$3\cdot4\neq1$但$(3\cdot4) mod\ 11=(1) mod\ 11$,对于这种式子我们称其为同余式,并且有专门的同余符号进行表示3\cdot4\equiv1\quad(\mathrm{mod~}11)所以参考上面乘法中的逆元运算规则,在模意义下...
