资源描述:
《《对称密钥密码》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2对称密钥密码1对称密钥密码对称密钥密码流密码(StreamCiphers)根据’一次一密‘获得密钥相对较短密钥被扩展为更长的密钥流(keystream)Keystream被用做一次一密的密钥只用到了混淆分组密码(Blockcipher)根据‘电码本密码’获得分组密码密钥决定电码本每个密钥生成一个不同的电码本混淆和扩散都得到利用2对称密钥密码流密码StreamCiphers3对称密钥密码流密码现在已不如分组密码流行本节讨论一种流密码A5/1基于线性移位寄存器(硬件实现)用于GSM移动通信系统4对称密钥密码流密码原理流密码使用n比特长的密钥K,并将其扩展为更长的密钥流。将密钥流与明
2、文做异或运算,得到密文C。密钥流的使用方法与一次一密中的密钥相同。解密时将密文与密钥做异或运算得到明文。函数可表示为StreamCipher(K)=SK是密钥,S是和一次一密中对等的密钥流5对称密钥密码A5/1原理1A5/1使用3个线性移位寄存器(LFSR)寄存器X:19bits(x0,x1,x2,…,x18)寄存器Y:22bits(y0,y1,y2,…,y21)寄存器Z:23bits(z0,z1,z2,…,z22)三个寄存器共有64bits密钥K采用64bits。初始时密钥K被载入3个寄存器6对称密钥密码A5/1原理2对每一步做:m=major(x8,y10,z10)Major(多
3、数)函数定义:major(0,1,0)=0andmajor(1,1,0)=1如果x8=m那么X寄存器进行移位运算t=x13x16x17x18xi=xi1fori=18,17,…,1andx0=t如果y10=m那么Y寄存器进行移位运算t=y20y21yi=yi1fori=21,20,…,1andy0=t如果z10=m那么Z寄存器进行移位运算t=z7z20z21z22zi=zi1fori=22,21,…,1andz0=t密钥流比特最后由x18y21z22产生7对称密钥密码A5/1原理3每次运算获得一个比特密钥用于初始化三个寄存器每个寄存器是否进行移位操作由M(x8
4、,y10,z10)决定密钥流比特由三个最右端比特进行XOR运算获得y0y1y2y3y4y5y6y7y8y9y10y11y12y13y14y15y16y17y18y19y20y21z0z1z2z3z4z5z6z7z8z9z10z11z12z13z14z15z16z17z18z19z20z21z22XYZx0x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x188对称密钥密码A5/1实例在这种情况下,m=maj(x8,y10,z10)=maj(1,0,1)=1寄存器X进行移位,Y不进行移位,Z进行移位密钥流比特由最右端比特进行XOR操作而得此例
5、,密钥流比特是010=1最后用密钥流和明文做XOR运算进行加密和解密110011001100110011000111100001111000011110001XYZ10101010101010101019对称密钥密码流密码总结密钥流的产生看似很复杂,但用硬件实现很简单产生速度与计算机时钟速度相当(可与语音同步)从一个64位密钥可产生无穷多密钥流最终会产生密钥流循环!10对称密钥密码流密码总结因为过去基于软件的密码系统不能产生高速比特流,流密码曾十分辉煌,当今,基于软件的密码系统的出现,使分组密码成为主流密码流的未来?密码学家Shamir:“密码流已步入死亡-thedeat
6、hofstreamciphers”-2004或许太夸张…但分组密码是现今主流11对称密钥密码分组密码BlockCiphers12对称密钥密码(Iterated)分组密码(迭代)密文和明文均是固定长度的分组(block)通过若干轮使用轮函数(roundfunction)迭代产生密文轮函数的输入由前一轮的输出和密钥组成分别设计一个安全的分组密码或者一个高速的算法不难,但既安全又高效的算法则非常困难通常用软件实现13对称密钥密码Feistel密码(Cipher)Feistel密码是分组密码的一种(分组)原则,不是一种特殊的密码将明文分解成右半部分和左半部分:明文=(L0,R0)对于每一轮i
7、=1,2,...,n,计算:Li=Ri1Ri=Li1F(Ri1,Ki)此处F是轮函数,Ki是第i轮的子密钥(subkey)密文=(Ln,Rn)14对称密钥密码Feistel密码解密解密:密文=(Ln,Rn)对每轮i=n,n1,…,1,计算Ri1=LiLi1=RiF(Ri1,Ki)此处F是轮函数,Ki是第i轮的子密钥subkey明文=(L0,R0)此算法对所有函数F都适用但只对特定函数来说是安全的优点在于所有安全性问题可以转化为轮函数F的问