信息安全算法整理

DES加密:

明文(64)密钥(56)密文(64)

明文——>IP置换——>轮函数(16)——>逆IP置换——>密文

轮函数:Li = Ri-1 Ri = Li -1 异或 F(Ri-1,ki)

F(Ri-1,ki):E扩展,密钥加,分组,s盒代换,P置换

密钥编排算法:分为C0 D0 28 + 28 然后循环左移,1 2 9 16 移动一位其余移动两位

懒得写了,crtl + c

AES加密:
密钥加
轮函数10轮:
字节代换s盒:
行移位:0 1 2 3
列混合:和c(x)做多项式乘法
密钥加
输出变换
密文

DSA
参数选取
选取大素数p 和 p 的一个素数因子 q
计算g = pow(h,(p-1) * q的逆)mod p【h∈(1,p-1)】
选取x 计算公钥 y = pow(g,x) mod p【x∈(0,q)】
公钥 y g p q私钥 x


签名过程
随机选取一个小于q的数字k
r = pow(g,k) mod p mod q
s = k的逆 * (H(m)+ x * r) mod q


验证过程
w = s的逆 mod q
u1 = H(m) * w mod q
u2 = r * w mod q
v = pow(g,u1) * pow(y,u2) mod p mod q
判断v 和 r
pow(y,u2) = pow(g,x * r * w)mod p mod q


ELGMAL算法
选取大素数p
选择一个本原元g
选择一个x 计算y = pow(g,x) mod p
y g p 作为公开密钥
x 作为私密密钥
加密过程:发送者选择一个ri
c1 = pow(g,ri) mod p c2 = M * pow(y,ri) mod p
解密过程:因为 y = pow(g,x) mod p
所以M = c2 / pow(c1,x)


ELGMAL的数字签名
选取素数p
本原元g
选择一个x
y = pow(g,x) mod p
y g p 公钥 x私钥
加密
r = pow(g,k) mod p
s = (h(m) - x * r) * k的逆 mod p
验证
pow(r,s) * pow(y,r) = pow(g,h(m)) mod p

椭圆曲线公钥密码体制
由已知式子计算并选择一个生成元G
选择一个XA作为私密密钥
PA = XA * G
PA作为公钥
加密过程:
发送方选择一个k 发送{KG,PM + KPA}
解密过程:
第二个 - 第一个 * 密钥
= PM + KPA(K * XA * G) - K * G * XA


计算两个点相加的公式
x3 = pow(λ,2) - x1 - x2
y3 = λ* (x1 - x3) - y1 


λ = (y2 - y1) / (x2 - x1) = (y2 - y1) * (x2 - x1)的逆 当 两个点不相同的时候
λ = (3 * pow(x1,2) +  a) * (2 * y1 的逆)


#略
椭圆曲线数字签名:
椭圆曲线已知
选择一个生成元G
选择一个数d 计算Q  = d * G
公钥为 p Ep G Q 私钥 d


签名过程
选取一个k
KG = (u,v)
然后
r = u mod p
s = K的逆 * (H(m) + rd) mod p


验证过程同DSA
w = s的逆mod p
u1 = H(m) * w mod p
u2 = r * w mod p
计算u1 * P + u2 * Y = (u,v)则(r,s)签名有效


RC4:

S表初始化 填 0~255
K表初始化 填密钥 不够长则重复
I从0~255
J = J + SI + KI
交换 SI SJ


I从0~255
J = J + SI
交换SI和SJ
t = SI + SJ
z = St


RSA加密算法
选择两个大素数P Q
φ(n) = (P -1) * (Q - 1)
取e gcd(e,φ(n)) = 1
d为e的逆 = e-1 mod φ(n)
e n 为公钥 d为私钥
加密c = pow(m,e) mod n
解密m = pow(c,d) mod n


超递增背包问题
已知超递增背包A
选择k 和 t
使得gcd(t,k) = 1
B = t * A mod k
B k为公钥 t 为私钥
加密过程 : C = B * X MOD K
解密过程 : M'= t逆 * C mod k
对每个数按照超递增背包规则来计算
超递增背包:包括为1 不包括为0 从大到小


CBC-MAC
将明文分组 n 个
P1 和 IV异或然后在密钥K下进行DES加密
P2...PN和前一轮生成的异或然后进行加密
Pn生成的Cn处理截断后生成的即为MAC(消息认证码)


HMAC
1.补充K得到B
2.B异或ipad
3.接上TEXT
4.Hash上面得到的
5.B异或opad
6.第五步接上第四步
7.hash
总公式 H(B异或OPAD || H(B异或IPAD || TEXT))


秘密共享:
秘密是S
参与保管的成员有n个
要求至少t个人才能重构该消息
选定一个足够大的素数p


随机选定t-1个模数s1,s2,...,st-1得到多项式
s(x) = S + s1x + .. + st-1 pow (x,t-1) mod p
随机选取n个数
对每个整数计算得到yi
(xi,yi)发给n个成员


恢复秘密:
计算多项式f(x) = ∑k∈[1,t] yk * 求积 j∈[1,t]且!=k (x-xj)/(xk - xj)
常数项f(0)为所求的秘密S




构造矩阵
1,对应的数
2,~~
3,~~
4,~~
5,~~

无中心密钥分配
A->B发一个请求和随机数N1
B->A发一个响应,用Ek(AB)加密包括了新的密钥KS || F(N1) ||IDB || N2
A->B先验证F(N1)IDB,然后用新的KS加密发送F(N2)
B验证F(N2)


有中心的
三种
A->KDC KDC->TA
A->KDC KDC->TA TB
A->KDC KDC->A TA B TB
A->KDC带随机数N1请求
A->KDC带时间戳TKDC生存期L请求




猜你喜欢

转载自blog.csdn.net/mr_guo_lei/article/details/79050442