当前位置:文档之家› 密码学与网络安全最终版(3)

密码学与网络安全最终版(3)

1.AES(97)(1)AES数学基础AES使用有限域GF(28)内的算术,在8位的字节上运算。

有限域GF(28)中的多项式加法等同于按位异或(XOR)运算。

有限域GF(28)中两个元素的乘法为模2元域GF(28)上的一个8次不可约多项式的多项式乘法。

对于AES的8次不可约多项式为:m(x)=x8 + x4 + x3 + x + 1(2)AES总体结构1)明文分组的长度为128位即16字节,密钥长度可以为16字节,24字节或32字节(128位,192位或256位)2)加密和解密算法的输入是一个128位分组。

3)密码由N轮组成,其中轮数依赖于密钥长度:16字节密钥是10轮,24字节密钥对应12轮,32字节密钥对应14轮。

前N—1轮由4个不同的变换组成:字节代替,行移位,列混淆和轮密钥加。

最后一轮仅包括3个变换(字节代替,行移位和轮密钥加),而在第一轮的前面有一个起始的单变换(轮密钥加),可以视为0轮。

(3)AES详细结构(特性)1)AES结构的一个显著特征是它不是Feistel结构。

2)输入的轮密钥被扩展成由44个32位字节所组成的数组w[i]。

3)由4个不同的阶段组成,包括一个置换和3个代替:字节代替:用一个S盒完成分组的字节到字节的代替。

把该字节的高4位作为行值,低4位作为列值,以这些行列值作为索引从S盒的对应位置取出元素作为输出。

行移位:一个简单的置换。

状态的第一行保持不变。

把状态的第二行循环左移一个字节,状态的第三行循环左移两个字节,状态的第四行循环左移三个字节。

列混淆:利用域GF(28)上的算术特性的一个代替。

轮密钥加:当前分组和扩展密钥的一部分进行按位XOR。

4)算法结构非常简单。

对加密和解密操作,算法由轮密钥加开始,接着执行9轮迭代运算,每轮都包含所有四个阶段的代替,接着是第10轮的三个阶段。

5)仅仅在轮密钥加阶段中使用密钥。

6)每个阶段均可逆。

7)AES的加密解密算法不一样。

2.SHA-512算法步骤(251)算法的输入是最大长度小于2128位的消息,输出的是512的消息摘要,输入消息以1024位的分组为单位进行处理。

(1)附加填充位。

填充消息使其长度模1024与896同余[即长度≡896(mod1024)]。

填充位数在1~1024之间,由一个1和后续的0组成。

(2)附加长度。

在消息后附加一个128位的块,将其视为128位的无符号整数(最高有效字节在前),它包含填充前消息的长度。

(3)初始化Hash缓冲区。

(4)以1024位的分组(128个字节)为单位处理消息。

(5)输出。

所有的N个1024位分组都处理完以后,从第N阶段输出的是512位的消息摘要。

总结:H0= IVH1 = SUM64(H i-1,abcdefgh i)MD = H N3.椭圆曲线(223)(1)实数域上的椭圆曲线:y2 = x3 + ax + b椭圆曲线加法的运算规则:1)O是加法的单位元。

这样有O = —O;对椭圆曲线上的任何一点P,有P + O = P。

2)点P的负元具有相同的x坐标和相反的y坐标点,即若P = ( x , y ),则—P = ( x , —y )。

3)要计算x坐标不相同的两点P和Q,则在P和Q间作一条直线并找出第三个交点R,显然存在有唯一的交点R,P + Q = —R。

4)计算具有相同x坐标的两个点P和—P,有P + ( —P ) = O。

5)为计算点Q的两倍,画出一条切线并找出另一交点S,则Q + Q = 2Q = —S。

(2)Z p上的椭圆曲线:y2 mod p = ( x3 + ax + b )mod p1)P + O = P。

2)若P = ( x p , y p ),则P + ( x p , —y p ) = O。

点( x p , —y p )是P的负元,记为—P。

3)若P = ( x p , y p ),Q = ( x Q , y Q ),且P ≠ Q则R = P + Q = ( x R , y R ) 由下列规则确定:x R = (λ2—x p—x Q )mod py R = (λ(x p—x R)—y p)mod p其中,当P ≠ Q,λ= [(y Q—y p) / (x Q—x p)]mod p当P = Q,λ= [(3 x p2 + a ) / (2 y p)]mod p4)乘法定义为重复加(3)GF(2m)上的椭圆曲线:y2 + xy = x3 + ax + bECC Diffie-Hellman 密钥交换全局公开量:E q( a , b ) 参数为a,b和q的椭圆曲线,其中q是素数或形如2m 的整数G 阶为n的椭圆曲线上的点,其中n是大整数用户A的密钥产生:选择私有的n A ,n A < n选择公开的P A,P A = n A * G用户B的密钥产生:选择私有的n B,n B < n选择公开的P B,P B = n B * G用户A产生秘密钥:K = n A * P B用户B产生秘密钥:K = n B * P A椭圆曲线加/解密加/解密系统也需要点G和椭圆群E q(a,b)这些参数(1)每个用户A选择一个私钥n A ,并产生公钥P A = n A * G(2)若A要将消息P m加密后发送给B,则A随机选择一个正整数K,并产生密文C m。

该密文是一个点对C m =(KG,P m + K P B)(3)此处A使用了B的公钥P B。

B要对密文解密,则需用第二个点减去第一个点与B的私钥之积。

P m + K P B— n B(KG)= P m + K(n B G) —n B (KG) = P m4.ElGamal数字签名方案(303)ElGamal数字签名方案的基本元素是素数q和α,其中α是q的原根。

用户A产生公钥/私钥对(1)生成随机整数X A,使得1< X A < q-1。

(2)计算Y A = αXA mod q。

(3)A的私钥是X A,A的公钥是{q, α, Y A}。

为了对消息M进行签名,用户A计算hash值m = H(M),0 <= m <= q-1的整数。

A产生数字签名(1)选择随机整数K,使得满足1 <= K <= q-1以及gcd( K , q-1 ) = 1,即K与q-1互素(2)计算S1 = αk mod q(3)计算K-1 mod (q-1),即计算K模q-1的逆(4)计算S2 = K-1 (m- X A S1) mod (q-1)(5)签名包括(S1,S2)对任意用户B验证签名(1)计算V1 = αm mod q(2)计算V2 = (Y A) S1(S1)S2mod q如果V1= V2则签名合法。

正确性证明假设等式成立,那么有:αm mod q = (Y A) S1(S1)S2 mod q 假设V1= V2αm mod q = αXAS1αKS2mod q 代入Y A和S1αm- XAS1mod q = αKS2 mod q 等式左右移项m- X A S1 = KS2 mod (q-1) 原根的性质m- X A S1 = K K-1 (m-X A S1) mod (q-1) 代入S2ElGamal数字签名方案的安全性(1)ElGamal数字签名方案的安全性依赖于乘法群上的离散对数的困难性(2)要求素数q必须足够大,且q—1至少包含一个大素数(3)ElGamal签名算法对同一个消息M所产生的签名依赖于随机数k,随机数k不能泄露,且每次都不相同。

5.SSL(Safe Socket Layer 安全套接层)(303)(1)SSL概述和体系结构SSL为TCP提供可靠的的端到端安全服务,SSL是两层协议。

SSL包含两个重要概念:SSL会话和SSL连接。

(2)SSL握手协议的处理过程1)建立安全功能,包括协议版本,会话标志,密码套件,压缩方法和初始随机数。

2)服务器认证和密钥交换。

服务器发送证书,发送密钥交换信息,向客户端申请证书,发出问候消息阶段结束信号。

3)客户端认证和密钥交换。

客户端对服务器证书的合法性进行认证,发送密钥交换信息,发送证书验证信息。

4)完成安全连接设置并结束握手协议。

6.密钥协商(216)DH算法实质是一个通信双方进行密钥协定的协议,它的安全性基于有限域上计算离散对数的困难性。

Diffie-Hellman密钥交换协议:首先,Alice和Bob双方约定2个大整数q和α,其中1<α<q,这两个整数无需保密,然后,执行下面的过程1) Alice随机选择一个大整数X A(保密),并计算Y A = αXA mod q2) Bob随机选择一个大整数X B(保密),并计算Y B =αXB mod q3) Alice把Y A发送给Bob,Bob把Y B发送给Alice4) Alice计算K = Y B XA mod q5) Bob计算K = Y A XB mod qK即是共享的密钥。

监听者Oscar在网络上只能监听到Y A和Y B,但无法通过Y A和Y B计算出X A和X B,因此,Oscar无法计算出K= αXAXB mod q。

中间人攻击:第三方C在和A通信时扮演B;和B通信时扮演A。

A和B都与C协商了一个密钥,然后C就可以监听和传递通信量。

中间人的攻击按如下进行:(1)B在给A的报文中发送他的公开密钥。

(2)C截获并解析该报文。

C将B的公开密钥保存下来并给A发送报文,该报文具有B的用户ID但使用C的公开密钥Y C,仍按照好像是来自B的样子被发送出去。

A收到C的报文后,将Y C和B的用户ID存储在一块。

类似地,C使用Y C向B发送好像来自A的报文。

(3)B基于私有密钥X B和Y C计算秘密密钥K1。

A基于私有密钥X A和Y C计算秘密密钥K2。

C使用私有密钥X C和Y B计算K1,并使用X C和Y A计算K2。

(4)从现在开始,C就可以转发A发给B的报文或转发B发给A的报文,在途中根据需要修改它们的密文。

使得A和B都不知道他们在和C共享通信。

7.IPSec(474)(1)IPSec结构(2)传输模式与隧道模式:传输模式:为上层协议提供保护,同时增加IP包载荷的保护。

可用于两台主机之间的端到端通信。

在IPV4上运行AH或ESP时,其载荷是跟在IP报头后面的数据;对IPV6而言,其载荷是跟在IP报头后面的数据和IPV6的任何扩展头。

AH可以认证IP载荷和IP头的选中部分。

ESP可以加密和认证(可选)IP载荷,但不包括IP头隧道模式:对整个IP包提供保护。

其载荷是整个数据包加安全域AH可以认证整个内部IP包和外部IP头中的选中部分。

ESP可以加密和认证(可选)整个内部IP包,包括内部IP包头(3)ESP加密和认证范围8.PGP(447)PGP提供了可用于电子邮件和文件存储应用的认证性和保密性。

相关主题