欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    对称密码基本加密实验.docx

    • 资源ID:7908197       资源大小:320.87KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    对称密码基本加密实验.docx

    1、对称密码基本加密实验对称密码基本加密实验【实验环境】ISES客户端Microsoft CLR Debugger 2005或其它调试器【实验内容】通过运算器工具实现DES、3DES、AES-128/192/256、SMS4等算法的加解密计算通过运算器流程演示工具完成DES算法加解密运算的逐步演示和实例演示通过轮密钥查看工具查看3DES和AES的轮密钥生成过程查看AES算法逐步计算的动画演示对DES、3DES、AES-128/192/256、SMS4等算法的加解密进行算法跟踪对称密码基本加密实验【实验原理】对称密码体制使用相同的加密密钥和解密密钥,其安全性主要依赖于密钥的保密性。分组密码是对称密码

    2、体制的重要组成部分,其基本原理为:将明文消息编码后的序列m0,m1,m2,mi划分为长度为L(通常为64或128)位的组m=(m0,m1,m2,mL-1),每组分别在密钥k=(k0,k1,k2,kt-1)(密钥长度为t)的控制下变换成等长的一组密文输出序列c=( c0,c1,c2,cL-1)。分组密码的模型如图1.1.41所示。图1.1.41分组密码实际上是在密钥的控制下,从一个足够大和足够好的置换子集中简单而迅速地选出一个置换,用来对当前输入的明文分组进行加密变换。现在所使用的对称分组加密算法大多数都是基于Feistel分组密码结构的,遵从的基本指导原则是Shannon提出的扩散和混乱,扩散

    3、和混乱是分组密码的最本质操作。分组密码与流密码的对比:分组密码以一定大小的分组作为每次处理的基本单元,而流密码则以一个元素(如一个字母或一个比特)作为基本的处理单元;流密码使用一个随时间变化的加密变换,具有转换速度快、低错误传播的优点,软硬件实现简单,缺点是低扩散、插入及修改不敏感;分组密码使用的是一个不对时间变化的固定变换,具有扩散性好、插入敏感等优点,缺点是加解密处理速度慢、存在错误传播。一、 DES算法数据加密标准(Data Encryption Standard, DES)中的算法是第一个也是最重要的现代对称加密算法,其分组长度为64比特,使用的密钥长度为56比特(实际上函数要求一个6

    4、4位的密钥作为输入,但其中用到的有效长度只有56位,剩余8位可作为奇偶校验位或完全随意设置),DES加解密过程类似,加解密使用同样的算法,唯一不同的是解密时子密钥的使用次序要反过来。DES的整个体制是公开的,系统安全性完全依靠密钥的保密。DES的运算可分为如下三步:(1) 对输入分组进行固定的“初始置换”IP,可写为(L0,R0)=IP(输入分组),其中L0和R0称为“(左,右)半分组”,都是32比特的分组,IP是公开的固定的函数,无明显的密码意义。(2) 将下面的运算迭代16轮(i=1,2,16):Li=Ri-1 ,Ri-1=Li-1f(Ri-1,ki);这里ki称为轮密钥,是56比特输入密

    5、钥的一个48比特字串,f称为S盒函数(S表示交换),是一个代换密码,目的是获得很大程度的信息扩散。(3) 将十六轮迭代后得到的结果(L16 ,R16)输入到IP的逆置换来消除初始置换的影响,这一步的输出就是DES算法的输出,即输出分组=IP-1(R16 , L16),此处在输入IP-1之前,16轮迭代输出的两个半分组又进行了一次交换。DES的加密与解密算法都是用上述三个步骤,不同的是如果在加密算法中使用的轮密钥为k1, k2, k16,则解密算法中的轮密钥就应当是k16, k15, k1,可记为(k1, k2, k16)=( k16, k15, k1)。DES算法的一轮迭代处理过程如图1.1.

    6、42所示。图1.1.42DES的计算过程如图1.1.43所示。图1.1.43在加密密钥k下,将明文消息m加密为密文c,使用DES将c在k下解密为明文,解密过程如下:(L0,R0)=IP(c)=IP(IP-1(R16 , L16),即(L0,R0)=(R16 , L16);在第一轮中,L1= R0= L16 =R15,R1=L0f(R0 ,k1)= R16f(L16 ,k1)= L16f(R15 ,k16)f(R15 ,k16)= L15,即(L1,R1)=(R15 , L15);同样的,在接下来的15轮迭代中,可以得到(L2,R2)=(R14 , L14),(L16,R16)=(R0 , L0

    7、);最后一轮结束后,交换L16和R16,即(R16,L16)=( L0, R0),IP-1(L0, R0)= IP-1(IP(m)=m,解密成功。二、 3DES算法DES的一个主要缺点是密钥长度较短,同时也被认为是DES仅有的最严重的弱点,容易遭受穷举密钥搜索攻击。克服密钥较短缺陷的一个解决方法是使用不同的密钥,多次运行DES算法,3DES应运而生。3DES具有四种使用模式,其中的一种为加密-解密-加密的3DES方案,加解密过程可表示为:,其中。三、 AES算法美国国家标准技术协会(NIST)于1997年提出征集一个新的对称密钥分组加密算法作为取代DES的新的加密标准的公告,并将这个新的算法命

    8、名为高级加密标准(Advanced Encryption Standard,AES)。2000年10月2日,NIST宣布选中了Rijndeal算法,建议作为AES使用,并于2001年正式发布了AES标准。Rijndeal算法是具有分组长度和密钥长度均可变的分组密码,密钥长度和分组长度可独立指定为128比特、192比特或256比特。为了满足AES的要求限定处理分组的大小为128比特,密钥长度为128比特、192比特或256比特,相应的迭代轮数为10轮、12轮、14轮,分别记为AES-128/192/256。Rijndeal算法采用Square结构,每一轮都使用代替和混淆并行地处理整个数据分组,包

    9、括3个代替和1个混淆。此处以密钥程度与分组长度均为128比特(此时对应的轮数是10)为例,说明Rijndeal算法的加解密过程。128比特的消息(明文、密文)被分为16个字节,记为:输入分组=m0,m1,m15;同样的密钥分组也如此:k=k0,k1,k15;内部数据结构的表示为一个44矩阵:输入分组= 输入密钥=Rijndeal中的轮变换记为Round(State,RoundKey),这里State是轮消息矩阵,可被看成输入或输出;RoundKey是轮密钥矩阵,由输入密钥通过密钥表导出。一轮的完成将改变State的元素的值,即改变State的状态。轮(除了最后一轮)变换由四个不同的变换组成,如

    10、下所示。Round(State,RoundKey) SubBytes(State); ShiftRows(State); MixColumns(State); AddRoundKey(State,RoundKey);最后一轮稍有不同,记为FinalRound(State,RoundKey),等于不使用MixColumns函数的Round(State,RoundKey)。论变换是可逆的,以便于解密。相应的逆轮变换记为Round-1(State,RoundKey)和FinalRound-1(State,RoundKey)。SubBytes(State)函数为State的每一个字节x提供了一个非线性

    11、代换,任一GF(28)域上的非零字节x被如下变换所代换:y=Ax-1+b;此处A= 和b=ShiftRows(State)函数在State的每行上运算,对于在第i行的元素,循环左移i个位置。MixColumns(State)函数在State的每列上作用,此处只描述对一列的作用:对于一列(s0,s1,s2,s3)-1,将其表示成3次多项式s(x)= s3x3 +s2x2 +s1x +s0;对s(x)做如下运算得到d(x)=c(x)s(x)(mod x4+1),其中c(x)= c3x3 +c2x2 +c1x +c0=03x3 +01 x2+01 x+02,c(x)的系数是GF(28)域中的元素(以

    12、十六进制表示字节)。AddRoundKey(State,RoundKey)函数将RoundKey 中的元素和State中的元素进行逐比特的异或操作。解密运算仅仅是在相反的方向反演加密,即运行AddRoundKey(State,RoundKey) -1;MixColumns(State)-1;ShiftRows(State) -1;SubBytes(State) -1;可以看出Rijndeald密码的加解密必须分别使用不同的电路和代码。四、 SMS4算法SMS4密码算法是我国官方公布的第一个商用密码算法,主要应用于无线局域网产品。SMS4算法是一个分组算法,其分组长度为128比特,密钥长度为12

    13、8比特;加密算法与密钥扩展算法都采用32轮非线性迭代结构;解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。密钥与明密文均以32比特为单位进行划分,轮函数与密钥扩展算法也以32比特为基本单位进行运算。(1) SMS4轮函数设输入X=(X0,X1,X2,X3),轮密钥为rk(由加密密钥通过密钥扩展算法得到),则SMS4算法的轮函数可表示为:F(X0,X1,X2,X3,rk)=X0L(X1X2X3rk).L为线性变换,设输入为A,输出为B,则:B=L(A)= A(A2)(A10)(A18)(A24)其中i表示32比特循环左移i位,A、B均为为32 比特。为非线性

    14、变换,以8比特为基本单位进行运算,由四个S盒组成。设输入A=( a0,a1,a2,a3),输出为B=( b0,b1,b2,b3),则:B=( b0,b1,b2,b3)= (A)=(Sbox(a0), Sbox(a1), Sbox(a2), Sbox(a3)其中ai、bi均为一个字节。(2) SMS4的扩展密钥算法SMS4的扩展密钥算法用来通过输入的加密密钥生成32个轮密钥,算法描述如下:加密密钥MK=(MK0, MK1, MK2, MK3),i=0,1,2,3;中间变量为Ki,i=0,1,35;轮密钥为rki,i=0,1,31;其中MKi、Ki、rki均为32比特;则密钥生成方法为:其中:系统

    15、参数FK的取值用16进制来表示,FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC);L为L的修改,;固定参数CK的取值方法为:设cki,j为CKi的第j字节(i=0,1,31,j=0,1,2,3),即CKi = (cki,0,cki,1,cki,2,cki,3),则cki,j = (4i+j)7(mod 256);32个固定参数CKi,其16进制表示为: 00070e15, 1c232a31, 383f464d, 545b6269,70777e85, 8c939aa1, a8afb6bd, c4cbd2d9,e0e7eef5,

    16、 fc030a11, 181f262d, 343b4249,50575e65, 6c737a81, 888f969d, a4abb2b9,c0c7ced5, dce3eaf1, f8ff060d, 141b2229,30373e45, 4c535a61, 686f767d, 848b9299,a0a7aeb5, bcc3cad1, d8dfe6ed, f4fb0209,10171e25, 2c333a41, 484f565d, 646b7279。(3) SMS4加解密算法设明文输入为(M0,M1,M2,M3),密文输出为(C0,C1,C2,C3),轮密钥为rki,i=0,1,2,31,其中,M

    17、i、Ci、rki均为32比特;则SMS4算法的加密可表示为:SMS4算法的解密与加密变换结构相同,但轮密钥使用顺序相反。对称密码基本加密实验【实验步骤】一、 DES(一) 加解密计算(1) 加密在明文栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入所要加密的明文,如图1.1.44所示。图1.1.44在密钥栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入相应的密钥,如图1.1.45所示。图1.1.45在加密算法选项里选择相应的算法,此处为DES;点击“加密”按钮,在密文文本框内就会出现加密后的密文,如图1.1.46所示。图1.1.46(2) 解密在密文栏相应的文本框内

    18、输入所要解密的密文,如图1.1.47所示。图1.1.47在密钥栏的下拉菜单里选择文本或十六进制,然后在后面相应的文本框内输入相应的密钥,如图1.1.48所示。图1.1.48在加密算法选项里选择相应的算法,此处为DES;点击“解密”按钮,在明文文本框内就会出现解密后的明文,如图1.1.49所示。图1.1.49(二) 分步演示(1) 点击“扩展实验”框中的“DES分步演示”按钮,进入DES分步演示窗口,打开后默认进入分步演示页面。(2) 密钥生成在“子密钥产生过程”框中,选择密钥的输入形式后,输入密钥;DES要求密钥长度为64位,即选择“ASCII”(输入形式为ASCII码)时应输入8个字符,选择

    19、“HEX”(输入形式为十六进制)时应输入16个十六进制码;点击“比特流”按钮生成输入密钥的比特流;点击“等分密钥”按钮,将生成的密钥比特流进行置换选择后,等分为28位的C0和D0两部分;分别点击两侧的“循环左移”按钮,对C0和D0分别进行循环左移操作(具体的循环左移的移位数与轮序有关,此处演示为第一轮,循环左移1位),生成同样为28位的C1和D1;点击“密钥选取”按钮,对C1和D1进行置换选择,选取48位的轮密钥,此处生成第一轮的密钥K1。上述密钥生成过程如图1.1.410所示。图1.1.410(3) 加密过程在“加密过程”框中,选择明文的输入形式后,输入明文;DES要求明文分组长度为64位,

    20、输入要求参照密钥输入步骤;点击“比特流”按钮生成输入的明文分组的比特流;点击“初始置换IP”对明文比特流进行初始置换,并等分为32位左右两部分L0和R0;点击“扩展置换E”按钮对32位R0进行扩展置换,将其扩展到48位;点击“异或计算”按钮,将得到的扩展结果与轮密钥K1进行异或,得到48位异或结果;分别点击“S1”、“S2”、“S8”按钮,将得到的48位异或结果通过S代换产生32位输出;点击“异或计算”按钮,将得到的32位输出与L0进行异或,得到R1;同时令L1=R1,进入下一轮加密计算。上述加密过程如图1.1.411所示。图1.1.411依次进行16轮计算,最终得到L16和R16;点击“终结

    21、置换”按钮,对交换后的L16和R16进行初始逆置换IP-1,即可得到密文。上述加密过程如图1.1.412所示。图1.1.412(三) DES实例(1) 点击DES分步演示窗体中的“DES实例”标签,进入DES实例演示页面。(2) 加密实例输入明文、初始化向量和密钥,选择工作模式和填充模式,点击“加密”按钮,对输入的明文使用DES算法按照选定的工作模式和填充模式进行加密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,加密结果以两种形式显示在密文框中。上述过程如图1.1.413所示。图1.1.413(3) 解密实例输入密文、密钥和初始化向量,选择工作模式和填充模式,点击“解密”按钮,对输入的密

    22、文使用DES算法按照选定的工作模式和填充模式进行解密;在轮密钥显示框内以十六进制显示各轮加密使用的密钥,解密结果以两种形式显示在明文框中。(四) 算法跟踪选择DES算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。二、 3DES(一) 加解密计算选择明/密文和密钥的格式,输入明/密文和密钥;选定算法为3DES,点击“加密”/“解密”按钮,进行加/解密计算;查看计算结果。具体步骤可参照DES的

    23、加解密计算的实验步骤。(二) 查看轮密钥点击“扩展实验”框中的“查看轮密钥”按钮,进入查看轮密钥窗体。输入明文、初始化向量和密钥,密钥长度为128位或192位,对应于原理中的两种情况,此处以输入128位密钥为例;选择工作模式和填充模式,点击“加密”按钮,使用3DES算法按照选定的工作模式和填充模式进行加密;在“密钥”框中查看各轮的密钥,在“密文”框中查看生成的密文。具体如图1.1.414所示。图1.1.414(三) 算法跟踪选择3DES算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计

    24、算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。三、 AES-128/192/256AES-128/192/256的区别仅在于密钥长度的不同,此处以AES-128为例,AES-192/256可参照完成。(一) 加解密计算选择明/密文和密钥的格式,输入明/密文和密钥;选定算法为AES-128,点击“加密”/“解密”按钮,进行加/解密计算;查看计算结果。具体步骤可参照DES的加解密计算的实验步骤。(二) 查看轮密钥点击“扩展实验”框中的“查看轮密钥”按钮,进入查看轮密钥窗体,可窗体在右侧查看相应的原理。输入明文、初始化向量和128位密钥,选择工作模式

    25、和填充模式,点击“加密”按钮,使用AES-128算法按照选定的工作模式和填充模式进行加密;在“密钥”框中查看各轮的密钥,在“密文”框中查看生成的密文。具体如图1.1.415所示。图1.1.415(三) 查看演示动画点击算法跟踪实验框内的“AES动画演示”按钮,进入AES算法加密的逐步计算的动画演示窗体,按回车进行逐步查看。(四) 算法跟踪选择AES-128算法,在算法计算的相应区域输入明/密文和密钥;点击“跟踪加密”/“跟踪解密”按钮,进入调试器,选择对应的算法函数进行算法跟踪;跟踪完成后会自动返回实验界面显示计算结果;切换回调试器,停止调试,关闭调试器,不保存工程。具体步骤可参照古典密码实验中实验步骤二。四、 SMS4(一) 加密计算选择明文和密钥格式,输入明文和密钥;选定算法为SMS4,点击“加密”按钮,进行加密计算;在“密文”框内查看加密计算结果。具体步骤可参照DES的加密计算的实验步骤。(二) 解密计算选择密文和密钥格式,输入密文和密钥;选定算法为SMS4,点击“解密”按钮,进行解密计算;在“明文”框内查看解密计算结果。具体步骤可参照DES的解密计算的实验步骤。对称密码基本加密实验【实验思考】对比DES、3DES、AES-128/192/256、SMS4算法的异同参照实验原理,根据算法跟踪实验画出各个算法函数的主要流程图思考各个对称密码算法的安全性和优缺点


    注意事项

    本文(对称密码基本加密实验.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开