您的位置:首页 > 其它

信息安全算法整理

2018-01-13 11:56 239 查看
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请求
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息