您好,欢迎访问三七文档
对称密匙密码-11思考题解答1.假设已知使用的是凯撒密码,从下面密文恢复明文:VSRQJHEREVTXDUHSDQWV凯撒密码是通过对明文字符移位3进行加密的:A-D,B-E....因此解码(恢复明文)时反向移位3,V-S,S-P....对应密匙,得到明文:VSRQJHEREVTXDUHSDQWV-SPONGEBOBSQUAREPANTSspongebobsquarepants对称密匙密码-12思考题解答2.假设使用移位n位简单替代密码,找出密匙并恢复明文:CSYEVIXIVQMREXIH编制一个程序,密文给定,使用循环(例如,i=1;i26;i++)每次输出相对应的文字,循环停止条件:有明确含义的文字。输出明文。今天作业:编写一个完整的C程序,解决上面问题。下礼拜交对称密匙密码-13思考题解答3.加密消息wearetogether!要求使用4X4双重置换密码进行行置换(1,2,3,4)-(2,4,1,3);列置换(1,2,3,4)-(3,1,2,4)WE_ARE_T_RETRE_THER!RHE!OGET→WE_A→_WEAHER!OGETEOGT密文retrhe!weaeogt对称密匙密码-14思考题解答4.已知KITLKE是根据字母编码表加密而来e=000h=001i=010k=011l=100r=101s=110t=111如果明文是thrill,密匙是什么,如果明文是tiller,密匙又是什么?明文thrill:t-k,h-i,r-t,i-l,l-k,l-e.111K1=011,001K2=010,101K3=111,010K4=100,100K5=011,100K6=000.由异或规则得:K1=100,K2=011,K3=010,K4=110,K5=011,K6=100因此,密匙为:100-011-010-110-011-100明文tiller:t-k,i-i,l-t,l-l,e-k,r-e.111K1=011,010K2=010,100K3=111,100K4=100,000K5=011,101K6=000.由异或规则得:K1=100,K2=001,K3=001,K4=011,K5=111,K6=101因此,密匙为:100-001-001-011-111-101对称密匙密码-152对称密匙密码对称密匙密码-16对称密匙密码流密码(StreamCiphers)根据’一次一密‘获得密匙相对较短密匙被扩展为更长的密匙流(keystream)Keystream被用做一次一密的密匙只用到了混淆分组密码(Blockcipher)根据‘电码本密码’获得分组密码密匙决定电码本每个密匙生成一个不同的电码本混淆和扩散都得到利用对称密匙密码-17流密码StreamCiphers对称密匙密码-18流密码现在已不如分组密码流行本节讨论一种流密码A5/1基于线性移位寄存器(硬件实现)用于GSM移动通信系统对称密匙密码-19流密码原理流密码使用n比特长的密匙K,并将其扩展为更长的密匙流。将密匙流与明文做异或运算,得到密文C。密匙流的使用方法与一次一密中的密匙相同。解密时将密文与密匙做异或运算得到明文。函数可表示为StreamCipher(K)=SK是密匙,S是和一次一密中对等的密匙流对称密匙密码-110A5/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个寄存器对称密匙密码-111A5/1原理2对每一步做:m=major(x8,y10,z10)Major(多数)函数定义: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产生对称密匙密码-112A5/1原理3每次运算获得一个比特密匙用于初始化三个寄存器每个寄存器是否进行移位操作由M(x8,y10,z10)决定密匙流比特由三个最右端比特进行XOR运算获得y0y1y2y3y4y5y6y7y8y9y10y11y12y13y14y15y16y17y18y19y20y21z0z1z2z3z4z5z6z7z8z9z10z11z12z13z14z15z16z17z18z19z20z21z22XYZx0x1x2x3x4x5x6x7x8x9x10x11x12x13x14x15x16x17x18对称密匙密码-113A5/1实例在这种情况下,m=maj(x8,y10,z10)=maj(1,0,1)=1寄存器X进行移位,Y不进行移位,Z进行移位密匙流比特由最右端比特进行XOR操作而得此例,密匙流比特是010=1最后用密匙流和明文做XOR运算进行加密和解密110011001100110011000111100001111000011110001XYZ1010101010101010101对称密匙密码-114流密码总结密匙流的产生看似很复杂,但用硬件实现很简单产生速度与计算机时钟速度相当(可与语音同步)从一个64位密匙可产生无穷多密匙流最终会产生密匙流循环!对称密匙密码-115流密码总结因为过去基于软件的密码系统不能产生高速比特流,流密码曾十分辉煌,当今,基于软件的密码系统的出现,使分组密码成为主流密码流的未来?密码学家Shamir:“密码流已步入死亡-thedeathofstreamciphers”-2004或许太夸张…但分组密码是现今主流对称密匙密码-116分组密码BlockCiphers对称密匙密码-117(Iterated)分组密码(迭代)密文和明文均是固定长度的分组(block)通过若干轮使用轮函数(roundfunction)迭代产生密文轮函数的输入由前一轮的输出和密匙组成分别设计一个安全的分组密码或者一个高速的算法不难,但既安全又高效的算法则非常困难通常用软件实现对称密匙密码-118Feistel密码(Cipher)Feistel密码是分组密码的一种(分组)原则,不是一种特殊的密码将明文分解成右半部分和左半部分:明文=(L0,R0)对于每一轮i=1,2,...,n,计算:Li=Ri1Ri=Li1F(Ri1,Ki)此处F是轮函数,Ki是第i轮的子密匙(subkey)密文=(Ln,Rn)对称密匙密码-119Feistel密码解密解密:密文=(Ln,Rn)对每轮i=n,n1,…,1,计算Ri1=LiLi1=RiF(Ri1,Ki)此处F是轮函数,Ki是第i轮的子密匙subkey明文=(L0,R0)此算法对所有函数F都适用但只对特定函数来说是安全的优点在于所有安全性问题可以转化为轮函数F的问题对称密匙密码-120DES密码20世纪70年代提出DES(DataEncryptionStandard)根据IBM公司提出Feistel密码之一的Lucifer密码设计当时,密码技术除被政府和军方所研究及掌握,民间及商业对此尚无研究但计算机的发展,数据加密对商业至关重要美国标准局(NBS)提出了对密码算法的征集获胜者将成为美国政府及实际上的产业界标准因参与者不多,最终由唯一IBM提出的Lucifer算法获得对称密匙密码-121DES密码由于技术力量不足,NBS求助于政府密码机构NSA(NationalSecurityAgency)由于NSA专门负责政府及军方高级敏感信息加密研究,开始不愿参与民间密码开发后被怀疑在DES中植入‘后门’,使NSA很容易破解DESLucifer算法经过修改成为DES主要修改为将密匙长度由128位减为64位,并且64位中有8位势用来校验奇偶性的,实际密匙长度由为56。破译难度降低了272倍,难怪被指动过手脚对称密匙密码-122DES密码归纳DES是16轮的Feistel结构密码DES的分组长度是64位DES使用56位密匙DES每一轮使用48位的子密匙,每个子密匙是由56位的密匙的子集构成的DES竟是住了时间的考验,其遭受攻击只是因为密匙过短,而不是存在比穷举更为有效的攻击方法对称密匙密码-123作业对于比特x,y,z,函数major(x,y,z)是“多数投票”函数:即如果三个输入中两个或以上为0,函数返回0,否则返回1.写出该函数的真值表,并求出major(x,y,z)的等价布尔函数。编制上节课所讲的简单替代密码解密程序。
本文标题:2_对称密匙密码1
链接地址:https://www.777doc.com/doc-3183430 .html