Open SylverQG opened 1 year ago
graph LR;
A(用户A)--m-->DkA2;
DkA2-->EkB1;
EkB1-->DkB2;
DkB2-->EkA1;
EkA1--m-->B(用户B);
DkA2--认证-->EkA1;
EkB1--保密-->DkB2;
随机性
和不可预测性
这个怎么这么丑
graph LR
a3-->a2
a2-->a1
a3-->f
a2---->f
a1-->f
f-->a3
a1--输出-->e[*]
一个三级反馈移位寄存器的状态和输出 | 状态( $a_3,a_2,a_1$) | 输出 |
---|---|---|
1 0 1 | 1 | |
1 1 0 | 0 | |
1 1 1 | 1 | |
0 1 1 | 1 | |
1 0 1 | 1 | |
1 1 0 | 0 |
m序列
(a_6,a_7,a_8,a_9,a_{10})=(c_5,c_4,c_3,c_2,c_1)
\begin{pmatrix}
a_1 & a_2 & a_3 & a_4 & a_5\\
a_2 & a_3 & a_4 & a_5 & a_6\\
a_3 & a_4 & a_5 & a_6 & a_7\\
a_4 & a_5 & a_6 & a_7 & a_8\\
a_5 & a_6 & a_7 & a_8 & a_9\\
\end{pmatrix}
\tag{1}
即:
(0, 1, 0, 0, 0)=(c_5,c_4,c_3,c_2,c_1)
\begin{pmatrix}
1 & 1 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 0\\
0 & 1 & 0 & 0 & 1\\
1 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 0\\
\end{pmatrix}
\tag{2}
求矩阵的逆矩阵:
\begin{pmatrix}
1 & 1 & 0 & 1 & 0\\
1 & 0 & 1 & 0 & 0\\
0 & 1 & 0 & 0 & 1\\
1 & 0 & 0 & 1 & 0\\
0 & 0 & 1 & 0 & 0\\
\end{pmatrix}^{-1}
=
\begin{pmatrix}
0 & 1 & 0 & 0 & 1\\
1 & 0 & 0 & 1 & 0\\
0 & 0 & 0 & 0 & 1\\
0 & 1 & 0 & 1 & 1\\
1 & 0 & 1 & 1 & 0\\
\end{pmatrix}
\tag{3}
从而
(c_5,c_4,c_3,c_2,c_1)=(0, 1, 0, 0, 0)
\begin{pmatrix}
0 & 1 & 0 & 0 & 1\\
1 & 0 & 0 & 1 & 0\\
0 & 0 & 0 & 0 & 1\\
0 & 1 & 0 & 1 & 1\\
1 & 0 & 1 & 1 & 0\\
\end{pmatrix}
\tag{4}
(c_5,c_4,c_3,c_2,c_1)=(1, 0, 0, 1, 0)\tag{5}
则密钥流的递推关系为
a_{i+5} = c_5 a_i\oplus c_2a_{i+3} =a_i\oplus a_{i+3}
置换
常见的置换密码有
例:设有限集 $X = { 1,2,3,4,5,6,7,8 }, \sigma$ 为 $X$上的一个置换,并且满足 $\sigma (1)=2, \sigma (2)=5, \sigma (3)=3, \sigma (4)=6, \sigma (5)=1, \sigma (6)=8, \sigma (7)=4, \sigma (8)=7,$ 因为置换可以对换表示,所以上述置换 $\sigma $可以形式化为:
\sigma=\begin{pmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
2 & 5 & 3 & 6 & 1 & 8 & 4 & 7
\end{pmatrix}
=
(125)(3)(4687)
=
(125)(4687)
则其逆置换 $\sigma ^{-1}$可表示为:
\sigma ^{-1}=\begin{pmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
2 & 5 & 3 & 6 & 1 & 8 & 4 & 7
\end{pmatrix}^{-1} \\
=
\begin{pmatrix}
1 & 2 & 3 & 4 & 5 & 6 & 7 & 8\\
5 & 1 & 3 & 7 & 2 & 4 & 8 & 6
\end{pmatrix}
=(152)(3)(4786)=(152)(4786)
例:
\sigma=\begin{pmatrix}
2 & 3 & 1 & 4 & 5\\
c & r & y & p & t\\
o & g & r & a & p\\
h & y & i & s & a\\
n & a & p & p & l\\
i & e & d & s & c\\
i & e & n & c & e
\end{pmatrix}
=
\begin{pmatrix}
1 & 2 & 3 & 4 & 5\\
y & c & r & p & t\\
r & o & g & a & p\\
i & h & y & s & a\\
p & n & a & p & l\\
d & i & e & s & c\\
n & i & e & c & e
\end{pmatrix}
则 密文: ycrpt rogap ihysa pnapl diesc niece
密钥=\begin{Bmatrix}
a & b & c & d & e & f & g & h & i & j & k & l & m & n & o & p & q & r & s & t & u & v & w & x & y & z\\
f & q & i & s & h & n & c & v & j & t & y & a & u & w & d & r & e & x & l & b & m & z & o & g & k & p
\end{Bmatrix}
\begin{matrix}
& to & be & or & not & to & be\\
加密 &\downarrow\downarrow & \downarrow\downarrow &\downarrow\downarrow &\downarrow\downarrow\downarrow &\downarrow\downarrow &\downarrow\downarrow\\
& bd & qh & dx & wdb & bd & qh\\
解密 &\downarrow\downarrow & \downarrow\downarrow &\downarrow\downarrow &\downarrow\downarrow\downarrow &\downarrow\downarrow &\downarrow\downarrow\\
& to & be & or & not & to & be\\
\end{matrix}
e_k(x)=x+k(mod\ 26)=y\in C
x=d_k(y)=y-k(mod\ 26)
\begin{cases}
L_i = R_{i-1}\\
R_i = L_{i-1}\oplus f(R_{i-1},K_i), i=1,2,…,16\\
\end{cases}
DES的第 $i$ 圈加密结构图
\begin{matrix}
L_{i-1}(32位)& & & & R_{i-1}(32位) & &\\
\downarrow & & & &\downarrow\\
\downarrow & & \downarrow &\leftarrow &\leftarrow &\leftarrow & K_i\\
\oplus & \longleftarrow & f & \leftarrow &\downarrow \\
(L->>R)&&&&(R->>L)\\
L_i(32位)&&&&R_i(32位)
\end{matrix}
分组密码的工作模式
AES
graph TB
start[明文]-->a1(轮密钥加)
subgraph 第一轮
a1-->a2(字节代换)
a2-->a3(行移位)
a3-->a4(列混淆)
a4-->a5(轮密钥加)
end
a5--…-->c1(轮密钥加)
subgraph 第九轮
c1-->c2(字节代换)
c2-->c3(行移位)
c3-->c4(列混淆)
c4-->c5(轮密钥加)
end
c5-->d1(字节代换)
subgraph 第十轮
d1-->d2(字节代换)
d2-->d3(行移位)
d3-->d5(轮密钥加)
end
subgraph key
direction TB
b1("子密钥w[0,3]")-->a1
b2("子密钥w[4,7]")-->a5
b3("子密钥w[36,39]")-->c5
b4("子密钥w[40,43]")-->d5
end
d5-->密文
代数系统 代数系统是对要研究的现象或过程建立起的一种数学模型,模型中包括要处理的数学对象的集合以及集合上的关系或运算 运算可以三一元的也可以三多元的,可以有一个也可以有多个
封闭性 设 $\ast $是集合S上的运算,若对 $\forall a,b \in S $, $a\ast b \in S $, 则称S对运算 $\ast$是封闭的 若 $\ast$是一元运算,若对 $\forall a \in S $, $\ast b \in S $, 则称S对运算 $\ast $是封闭的
结合律 若对 $\ast a,b,c \in S,有 (a \ast b)\ast c = a\ast (b\ast c),$则称 $\ast $满足结合律
半群
群 设 $\lt G,\ast\gt $是一个代数系统, $\ast $满足:
则称 $\lt G,\ast\gt $是群
有限域&无限域 如果G是有限集合,则称 $\lt G,\ast\gt $是有限群,否则三无限群。有限群中, $G $的元素个数称为群的阶数
Abel(交换群) 如果群 $\lt G, \ast>$中的运算 $\ast $还满足交换律,即对 $\forall a,b \in G, 有 a \ast b = b\ast a$,称 $\lt G, \ast\gt $为Abel群或交换群
群中运算 $\ast$一般为乘法,称该群为乘法群 若运算 $\ast $改为 +,则成为加法群。此时逆元 $a^{-1}写成-a$
循环群 设 $\lt G,\ast\gt $是一个群,I是整数集合。如果存在一个元素 $g\in G$,对于每一个元素 $a\in G$,都有一个相应的 $i\in I$, $能把a表示成g^i$,则称 $\lt G,\ast\gt $,是循环群,g称为循环群的生成元。
环 若代数系统 $\lt R,+,\ast>$的二元运算 $+和\ast$满足:
乘法 $\ast$在加法 $+$上可分配,即: 对 $\forall a,b,c \in R,有a\ast (b+c)=a\ast b + a\ast c 和(b+c)\ast a=b\ast a+c\ast a$
则称 $\lt R,+,\ast\gt 是环$
域 若代数系统 $\lt F,+,\ast\gt $的二元运算 $+和\ast 满足$:
乘法 $\ast $在加法+上分配,即: 对 $\forall a,b,c \in R,有a\ast (b+c)=a\ast b + a\ast c 和(b+c)\ast a=b\ast a+c\ast a$
则称 $\lt F,+,\ast\gt $是域
有限域 有限域是指域中元素个数有限的域,元素个数成为域的阶
Galois域 若q是素数的幂,即 $q=p^r$,其中p是素数,r是自然数,则阶为q的域称为Galois域,记为GF(q)或是Fq
同余,同余类 如果 $(a\ mod\ n)=(b\ mod\ n)$,则称两整数a和b模n同余,记为 $a\equiv b\ mod\ n$。称与a模n同余的数的全体为a的同余类,记为 $\lceil a\rceil$,称a为这个同余类的表示元素
费马定理[Fermat定理] 若P是素数,a是正整数且 $gcd(a,p)=1,则a^{p-1}\equiv 1\ mod\ p$ Fermat定理也可以写成如下形式: 设p是素数,a是任意正整数, $a^p\equiv a\ mod\ p$
欧拉函数 设n是一正整数,小于n且与n互素的正整数的个数成为n的欧拉函数,记为 $\phi (n)$若n是素数,则显然 $\phi (n)=n-1$
欧拉定理(Euler) 若a和n互素,则 $a^{\phi (n)}\equiv 1\ mod\ n$
欧几里德算法(Euclid)
对任意的非负整数a和正整数b,有gcd(a,b)=gcd(b,a\ mod\ b)
特点
公钥体制加密
公钥密码体制认证
公钥密码体制认证、保密
公钥密码算法应该满足的要求
对公钥密码体制的攻击
(\frac{a}{p})=
\begin{cases}
0,if\ a\equiv 0(mod p)\\
1, if\ a是模p的平方剩余\\
-1, if\ a是模p的非平方剩余\\
\end{cases}
任何密码系统的强度都与密钥分配到方法有关
密钥分配方法:指将密钥发放给希望交换数据的双方而不让别人知道的方法
A、B双方通信的密钥分配方法:
对分配方法的分析
密钥分类
密钥分发的具体步骤
会话密钥的生命周期
会话密钥的类型
密钥标志
会话密钥的类型保留私钥配发中心(KDC)
基本原理
可用的公钥分配方法
通过更加严格地控制目录中的公钥分配,是公钥分配更加安全
Diffie-Hellman密钥交换
秘密分割
Shamir门陷方案 例: 设 $k=3,n=5,q=19,s=11$,随机选取 $a_1 = 2, a_2 = 7$,得多项式为 $$f(x)=(7x^2 +2x+11)\pmod{19}$$ 分别计算 $$f(1)=(7+2+11)\pmod{19}=20\pmod{19}=1$$ $$f(2)=(28+4+11)\pmod{19}=43\pmod{19}=5$$ $$f(3)=(63+6+11)\pmod{19}=80\pmod{19}=4$$ $$f(4)=(112+8+11)\pmod{19}=131\pmod{19}=17$$ $$f(5)=(175+10+11)\pmod{19}=196\pmod{19}=6$$ 如果知道其中的3个子密钥 $f(2)=5, f(3)=4, f(5)=6,$就可按照以下方式重构 $f(x):$
\begin{aligned}
5\frac{(x-3)(x-5)}{(2-3)(2-5)}
&=5\frac{(x-3)(x-5)}{(-1)(-3)}=5\frac{(x-3)(x-5)}{3}\\
&=5\cdot (3^{-1}\pmod{19})\cdot (x-3)(x-5)\\
&=5\cdot 13\cdot (x-3)(x-5)=65(x-3)(x-5)\\
4\frac{(x-2)(x-5)}{(3-2)(3-5)}
&=4\frac{(x-2)(x-5)}{(1)(-2)}=5\frac{(x-2)(x-5)}{-2}\\
&=4\cdot ((-2)^{-1}\pmod{19})\cdot (x-2)(x-5)\\
&=4\cdot 9\cdot (x-2)(x-5)=36(x-2)(x-5)\\
4\frac{(x-2)(x-3)}{(5-2)(5-3)}
&=6\frac{(x-2)(x-3)}{(3)(2)}=6\frac{(x-2)(x-3)}{6}\\
&=6\cdot (6^{-1}\pmod{19})\cdot (x-2)(x-3)\\
&=6\cdot 16\cdot (x-2)(x-3)=36(x-2)(x-3)\\
\end{aligned}
所以
\begin{aligned}
f(x)&=[65(x-3)(x-5)+36(x-2)(x-5)+96(x-2)(x-3)]\pmod{19}\\
&=[8(x-3)(x-5)+17(x-2)(x-5)+(x-2)(x-3)]\pmod{19}\\
&=(26x^2 -188x+296)\pmod{19}\\
&=7x^2 +2x +11
\end{aligned}
从而得秘密为 $s=11$
基于中国剩余定理的门限方案 例: 设 $k=3,n=5,m_1=97,m_2=98,m_3=99,m_4=101,m_5=103,$ 秘密数据 $s=671875, $满足 $10403=m_3 m_4 \lt s\lt m_1 m_2 m_3 = 941094$ 计算 $M=m_1 m_2 m_3 m_4 m_5=9790200882, s_i \equiv \pmod{m_i}(i=1,…,5)$ 得 $s_1 = 53,s_2 = 85, s_3 = 61, s_4 = 23, s_5 = 6$。5个子密钥 $(53,97,9790200882), (85, 98, 9790200882), (61, 99,9790200882), (23, 101, 9790200882), (6, 103, 9790200882)$ 现在假定 $i_1 、i_2 、i_3 联合起来计算s, 分别计算:$
\begin{cases}
M_1 = \frac{M}{m_1}=100929906\\
N_1 \equiv M_{1}^{-1}\pmod{m_1}\equiv 95
\end{cases}
\begin{cases}
M_2 = \frac{M}{m_2}=99900009\\
N_2 \equiv M_{2}^{-1}\pmod{m_2}\equiv 13
\end{cases}
\begin{cases}
M_3 = \frac{M}{m_3}=98890918\\
N_3 \equiv M_{3}^{-1}\pmod{m_1}\equiv 31
\end{cases}
得到
\begin{aligned}
s &\equiv s_1 M_1 N_1 + s_2 M_2 N_2 + s_3 M_3 N_3 \pmod{m_1 m_2 m_3}\\
&\equiv 53 \cdot 100929906 \cdot 95 + 85 \cdot 99900009 \cdot 13 + 61 \cdot 98890918 \cdot 31 \pmod{97\cdot 98\cdot 99}\\
&\equiv 805574312593 \pmod{941094}\\
&\equiv 671875
\end{aligned}
假定 $i_1 、 i_4$联合起来计算 $ s$ ,分别计算:
\begin{cases}
M_1 = \frac{M}{m_1}=100929906\\
N_1 \equiv M_{1}^{-1}\pmod{m_1}\equiv 95
\end{cases}
\begin{cases}
M_4 = \frac{M}{m_4}=96932682\\
N_4 \equiv M_{4}^{-1}\pmod{m_4}\equiv 61
\end{cases}
\begin{cases}
M_5 = \frac{M}{m_5}=95050494\\
N_5 \equiv M_{5}^{-1}\pmod{m_5}\equiv 100
\end{cases}
得到
\begin{aligned}
s &\equiv s_1 M_1 N_1 + s_4 M_4 N_4 + s_5 M_5 N_5 \pmod{m_1 m_4 m_5}\\
&\equiv 53 \cdot 100929906 \cdot 95 + 23 \cdot 96932682 \cdot 61 + 6 \cdot 95050494 \cdot 100 \pmod{97\cdot 101\cdot 103}\\
&\equiv 701208925956 \pmod{1009091}\\
&\equiv 671875\\
\end{aligned}
假定 $i_1 i_4$ 联合起来计算 $s$,则
\begin{aligned}
s &\equiv s_1 M_1 N_1 + s_4 M_4 N_4 \pmod{m_1 m_4}\\
&\equiv 53 \cdot 100929906 \cdot 95 + 23 \cdot 96932682 \cdot 61 \pmod{97\cdot 101}\\
&\equiv 644178629556 \pmod{9791}\\
&\equiv 5679
\end{aligned}
得到一个不正确结果
密码分配
\begin{align}
TA \xrightarrow{E_{K_{U}}(K, ID(V), T, L)} U \\
TA \xrightarrow{E_{K_{V}}(K, ID(U), T, L)} U \xrightarrow{E_{K_{V}}(K, ID(U), T, L)}V \\
U \xrightarrow{E_{K}(ID(U), T)} V \\
V \xrightarrow{E_{K}(T+1)} U \\
\end{align}
密码协商
\begin{aligned}
(Alice) \xrightarrow{1.\ X=g^{X_A}\pmod{p}}(Bob)\\
(Bob) \xrightarrow{2.\ Y=g^{X_B}\pmod{p_i}E_k (S_B (g^{X_B}, g^{X_A}))} (Alice)\\
(Alice)\xrightarrow{E_k (S_A (g^{X_A}, g^{X_B})) } (Bob)\\
\\
(Alice)[k=Y^{X_A}\pmod{p}=g^{X_A X_B \pmod{p}}]\\
(Bob)[k=X^{X_B}\pmod{p}=g^{X_A X_B \pmod{p}}]
\end{aligned}
可实现:
身份识别 Guillou-Quisquater身份识别方案
sequenceDiagram
participant Alice
participant John
note left of Alice: s:Alice公钥,v:Alice私钥,r:随机数
note over Alice: 1. x=r^e mod n
Alice->>John: 2. 证据 x
John->>Alice: 3. 挑战 c
note over Alice : 4.y=r s^c mod n
Alice->>John: 4. 应答 y
opt
note over Jonh: 5. 判断 x 与y^x v^c是否相等-->是:有可能,否:不可能
end
现代密码学目录(仅目录)
1. 基础
1.1 威胁
1.2 信息安全模型
1.3 密码学基本概念
1.4 古典密码
2. 流密码
2.1 基本概念
2.2 线性反馈移位寄存器
2.3 线性移位寄存器的一元多项式表达式
2.4 m序列的伪随机性
2.5 m序列密码的破译
2.6 非线性序列
3. 分组密码体制
3.1 概述
3.2 数据加密标准
3.3 差分密码分析与线性密码分析
3.4 分组密码的运行模式
3.5 IDEA
3.6 AES|Rijindael
3.7 SM4
3.8 祖冲之
4. 公钥密码
4.1 数学知识
4.2 基本概念
4.3 RSA
4.4 背包密码体制
4.5 NTRU
4.6 椭圆曲线密码体制
4.7 SM2椭圆曲线公钥密码加密算法
5. 密钥分配与密钥管理
5.1 单钥加密体制的密钥分配
5.2 公钥加密体制的密钥分配
5.3 随机数的产生
5.4 秘密分割
6. 消息认证与哈希函数
6.1 消息认证
6.2 哈希函数
6.3 MD5
6.4 安全哈希算法
6.5 HMAC
6.6 SM3
7. 数字签名和认证协议
7.1 基本概念
7.2 数字签名标准
7.3 其他签名方案
7.4 SM2椭圆曲线公钥密码签名算法
7.4 认证协议
8. 密码协议
8.1 基本协议
8.2 零知识证明
8.3 安全多方计算
9. 可证明安全
9.1 语义安全的公钥密码体制定义
9.2 语义安全的RSA的加密方案
9.3 Paillier公钥密码系统
9.4 Cramer-Shoup密码系统
9.5 RSA-FDH签名方案
9.6 BLS短签名方案
9.7 基于身份的密码体制
10. 网络加密与认证
10.1 网络通信加密
10.2 Kerberos认证系统
10.3 X.509认证业务
10.4 PGP