2023年7月31日发(作者:)

【信息安全课程实验报告】3DES加解密算法信息安全课程实验报告⽂章⽬录1.实验⽬的1.1实验要求1.编程实现DES加密和解密算法,并使⽤DES加解密算法实现3DES加解密算法2.选择⼀种填充⽅式,对需要加密的⽂件进⾏填充(解密要去掉填充部分)。的加解密的⼯作模式,采⽤密码分组链接(CBC)模式4.读取/写⼊被加密/解密⽂件时,采⽤字节流的形式进⾏⽂件读取/写⼊5.完成实验后,需要交实验报告(包括:重要函数的功能分析和流程图)1.2实验任务基于3DES加解密算法,编程实现对任意⽂件实现加解密的⼩软件。1.3实验内容1.掌握DES算法的原理及过程2.完成DES密钥扩展运算3.完成DES数据加解密运算4.基于已经实现的DES模块进⼀步实现3DES加解密算法5.对3DES实现最后⼀个分组填充(本⽂采⽤全零填充⽅式)6.3DES的加解密的分组⼯作模式,采⽤密码分组链接(CBC)模式7.实现⽤户UI界⾯,⽅便⽤户使⽤8.进⾏加解密测试,验证代码正确性2.实验原理以及应⽤2.1实验原理明⽂M,密⽂C,密钥k1,k2和k3,加密算法E解密算法D。3DES算法的过程可表⽰为:加密:C=Ek3(Dk2(Ek1(M))) 即对明⽂数据进⾏,加密,解密,加密的顺序过程,最后得到密⽂数据解密:M=Dk1(Ek2(Dk3©)) 即对密⽂数据进⾏,解密,加密,解密的顺序过程,最后得到明⽂数据。k1可以等于k3,但不能三个密钥均相等(如果相等的话就成了DES算法了,减弱了3DES的安全性)。3DES可以是3DES-CBC,在原来的加密或者解密处增加了异或运算的步骤,⽤来提⾼算法的安全性。3DES使⽤3个8字节长度(64位⼆进制)的密钥,即k1,k2,k3,然后进⾏加密运算和解密运算。3DES(K1≠K2≠K3),在3DES加密时,对加密——解密——加密依次使⽤密钥1、密钥2、密钥3,在3DES解密时对解密加密解密依次使⽤密钥3、密钥2、密钥1。由于DES加解密算法是每8个字节作为⼀个加解密数据块,因此在实现该算法时,需要对数据进⾏分块和补位操作(即最后不⾜8字节时,要补⾜8字节,本⽂采⽤全零填充)。 3DES的CBC⼯作模式:将待处理的数据分组,但是每⼀组数据在加密或者解密之前都要与前⼀块的结果做⼀次异或操作。该模式需要定义⼀个特殊的8字节初始化向量IV,⽤于和第⼀组数据进⾏异或操作。注意IV参数是对应CBC模式的。这样⼀来,每⼀组数据都是有联系的,并且增加了⼀个随机变量IV更加可以提⾼算法的安全性。2.2实验背景在DES中,初始置换IP和初始逆置换IP-1各使⽤⼀次,使⽤这两个置换的⽬的是为了把数据彻底打乱重新排列。它们对数据加密所起的作⽤不⼤,因为它们与密钥⽆关且置换关系固定,所以⼀旦公开,它们对数据的加密便⽆多⼤价值。在DES算法加密过程中除了S盒是⾮线性变换外,其余变换均为线性变换。因此S盒是DES算法安全的关键。任意改变S盒输⼊中的⼀位,其输出⾄少有两位发⽣变化。由于在DES中使⽤了16次送代,所以即使改变明⽂或密钥中的1位,密⽂中都会⼤约有32位发⽣变化。S盒的设计原则⼀直没有完全公开。经过多年来的研究,⼈们的确发现了S盒的许多规律,但⾄今还没有发现S盒的致命缺陷。由于DES算法是公开的,因此其安全性完全依赖于所⽤的密钥(符合柯克霍夫原则,即密码体制的安全性不应依赖加密算法的保密性,⽽应取决于可随时改变的密钥)。在算法使⽤过程中,每次迭代时都有⼀个⼦密钥供加密使⽤。⼦密钥的产⽣也很有特⾊,它确保密钥中各位的使⽤次数基本相等。⼤量实验表明,56位密钥中每位的使⽤次数在12次⾄15次之间。在实际使⽤中,需要注意的是DES算法存在⼀些弱密钥。所谓弱密钥是指⼀个密钥产⽣的所有⼦密钥都是相同的,此时对消息加密两次就可以恢复出明⽂。虽然DES算法有弱密钥现象,但是弱密钥所占⽐例很⼩,可以在选取密钥时避开使⽤,因此对其安全性影响不⼤。随着密码分析技术和计算能⼒的提⾼DES的安全性受到质疑和威胁。密钥长度较短是DES的⼀个主要缺陷。DES 的实际密钥长度为56位,密钥量仅为256≈1017,就⽬前计算设备的计算能⼒⽽⾔,DES不能抵抗对密钥的穷举搜索攻击。1998 年7⽉,电⼦边境基⾦会(EFF)使⽤台价值 25万美元的计算机在56⼩时内成功地破译了DES。在1999年1⽉,电⼦边境基⾦会(EFF)仅⽤22⼩时15分就成功地破译了DES。因此使⽤3DES代替DES提⾼算法的安全性。3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data EncryptionAlgorithm)分组密码的通称。它相当于是对每个数据分组应⽤三次DES加密算法。由于计算机运算能⼒的增强,原版DES密码的密钥长度变得容易被暴⼒破解;3DES即是设计⽤来提供⼀种相对简单的⽅法,即通过增加DES的密钥长度来避免类似的攻击,⽽不是设计⼀种全新的分组密码算法。3DES中的key1,key2,key3决定了算法的安全性,若三个密钥互不相同,本质上就相当于⽤⼀个长为168位的密钥进⾏加密。多年来,它在对付强⼒攻击时是⽐较安全的。若数据对安全性要求不那么⾼,key1可以等于key3。在这种情况下,密钥的有效长度为112位。3DES,也称为 3DESede 或 TripleDES,是三重数据加密算法,相当于是对每个数据应⽤三次DES的对称加密算法。由于DES密码长度容易被暴⼒破解,所以3DES算法通过对DES算法进⾏改进,增加DES的密钥长度来避免类似的攻击,针对每个数据块进⾏三次DES加密;因此,3DES加密算法并⾮什么新的加密算法,是DES的⼀个更安全的变形,它以DES为基本模块,通过组合分组⽅法设计出分组加密算法。3DES是DES向AES过渡的加密算法,它使⽤2个或者3个56位的密钥对数据进⾏三次加密。相⽐DES,3DES因密钥长度变长,安全性有所提⾼,但其处理速度不⾼。因此⼜出现了AES加密算法,AES较于3DES速度更快、安全性更⾼。

2023年7月31日发(作者:)

【信息安全课程实验报告】3DES加解密算法信息安全课程实验报告⽂章⽬录1.实验⽬的1.1实验要求1.编程实现DES加密和解密算法,并使⽤DES加解密算法实现3DES加解密算法2.选择⼀种填充⽅式,对需要加密的⽂件进⾏填充(解密要去掉填充部分)。的加解密的⼯作模式,采⽤密码分组链接(CBC)模式4.读取/写⼊被加密/解密⽂件时,采⽤字节流的形式进⾏⽂件读取/写⼊5.完成实验后,需要交实验报告(包括:重要函数的功能分析和流程图)1.2实验任务基于3DES加解密算法,编程实现对任意⽂件实现加解密的⼩软件。1.3实验内容1.掌握DES算法的原理及过程2.完成DES密钥扩展运算3.完成DES数据加解密运算4.基于已经实现的DES模块进⼀步实现3DES加解密算法5.对3DES实现最后⼀个分组填充(本⽂采⽤全零填充⽅式)6.3DES的加解密的分组⼯作模式,采⽤密码分组链接(CBC)模式7.实现⽤户UI界⾯,⽅便⽤户使⽤8.进⾏加解密测试,验证代码正确性2.实验原理以及应⽤2.1实验原理明⽂M,密⽂C,密钥k1,k2和k3,加密算法E解密算法D。3DES算法的过程可表⽰为:加密:C=Ek3(Dk2(Ek1(M))) 即对明⽂数据进⾏,加密,解密,加密的顺序过程,最后得到密⽂数据解密:M=Dk1(Ek2(Dk3©)) 即对密⽂数据进⾏,解密,加密,解密的顺序过程,最后得到明⽂数据。k1可以等于k3,但不能三个密钥均相等(如果相等的话就成了DES算法了,减弱了3DES的安全性)。3DES可以是3DES-CBC,在原来的加密或者解密处增加了异或运算的步骤,⽤来提⾼算法的安全性。3DES使⽤3个8字节长度(64位⼆进制)的密钥,即k1,k2,k3,然后进⾏加密运算和解密运算。3DES(K1≠K2≠K3),在3DES加密时,对加密——解密——加密依次使⽤密钥1、密钥2、密钥3,在3DES解密时对解密加密解密依次使⽤密钥3、密钥2、密钥1。由于DES加解密算法是每8个字节作为⼀个加解密数据块,因此在实现该算法时,需要对数据进⾏分块和补位操作(即最后不⾜8字节时,要补⾜8字节,本⽂采⽤全零填充)。 3DES的CBC⼯作模式:将待处理的数据分组,但是每⼀组数据在加密或者解密之前都要与前⼀块的结果做⼀次异或操作。该模式需要定义⼀个特殊的8字节初始化向量IV,⽤于和第⼀组数据进⾏异或操作。注意IV参数是对应CBC模式的。这样⼀来,每⼀组数据都是有联系的,并且增加了⼀个随机变量IV更加可以提⾼算法的安全性。2.2实验背景在DES中,初始置换IP和初始逆置换IP-1各使⽤⼀次,使⽤这两个置换的⽬的是为了把数据彻底打乱重新排列。它们对数据加密所起的作⽤不⼤,因为它们与密钥⽆关且置换关系固定,所以⼀旦公开,它们对数据的加密便⽆多⼤价值。在DES算法加密过程中除了S盒是⾮线性变换外,其余变换均为线性变换。因此S盒是DES算法安全的关键。任意改变S盒输⼊中的⼀位,其输出⾄少有两位发⽣变化。由于在DES中使⽤了16次送代,所以即使改变明⽂或密钥中的1位,密⽂中都会⼤约有32位发⽣变化。S盒的设计原则⼀直没有完全公开。经过多年来的研究,⼈们的确发现了S盒的许多规律,但⾄今还没有发现S盒的致命缺陷。由于DES算法是公开的,因此其安全性完全依赖于所⽤的密钥(符合柯克霍夫原则,即密码体制的安全性不应依赖加密算法的保密性,⽽应取决于可随时改变的密钥)。在算法使⽤过程中,每次迭代时都有⼀个⼦密钥供加密使⽤。⼦密钥的产⽣也很有特⾊,它确保密钥中各位的使⽤次数基本相等。⼤量实验表明,56位密钥中每位的使⽤次数在12次⾄15次之间。在实际使⽤中,需要注意的是DES算法存在⼀些弱密钥。所谓弱密钥是指⼀个密钥产⽣的所有⼦密钥都是相同的,此时对消息加密两次就可以恢复出明⽂。虽然DES算法有弱密钥现象,但是弱密钥所占⽐例很⼩,可以在选取密钥时避开使⽤,因此对其安全性影响不⼤。随着密码分析技术和计算能⼒的提⾼DES的安全性受到质疑和威胁。密钥长度较短是DES的⼀个主要缺陷。DES 的实际密钥长度为56位,密钥量仅为256≈1017,就⽬前计算设备的计算能⼒⽽⾔,DES不能抵抗对密钥的穷举搜索攻击。1998 年7⽉,电⼦边境基⾦会(EFF)使⽤台价值 25万美元的计算机在56⼩时内成功地破译了DES。在1999年1⽉,电⼦边境基⾦会(EFF)仅⽤22⼩时15分就成功地破译了DES。因此使⽤3DES代替DES提⾼算法的安全性。3DES(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data EncryptionAlgorithm)分组密码的通称。它相当于是对每个数据分组应⽤三次DES加密算法。由于计算机运算能⼒的增强,原版DES密码的密钥长度变得容易被暴⼒破解;3DES即是设计⽤来提供⼀种相对简单的⽅法,即通过增加DES的密钥长度来避免类似的攻击,⽽不是设计⼀种全新的分组密码算法。3DES中的key1,key2,key3决定了算法的安全性,若三个密钥互不相同,本质上就相当于⽤⼀个长为168位的密钥进⾏加密。多年来,它在对付强⼒攻击时是⽐较安全的。若数据对安全性要求不那么⾼,key1可以等于key3。在这种情况下,密钥的有效长度为112位。3DES,也称为 3DESede 或 TripleDES,是三重数据加密算法,相当于是对每个数据应⽤三次DES的对称加密算法。由于DES密码长度容易被暴⼒破解,所以3DES算法通过对DES算法进⾏改进,增加DES的密钥长度来避免类似的攻击,针对每个数据块进⾏三次DES加密;因此,3DES加密算法并⾮什么新的加密算法,是DES的⼀个更安全的变形,它以DES为基本模块,通过组合分组⽅法设计出分组加密算法。3DES是DES向AES过渡的加密算法,它使⽤2个或者3个56位的密钥对数据进⾏三次加密。相⽐DES,3DES因密钥长度变长,安全性有所提⾼,但其处理速度不⾼。因此⼜出现了AES加密算法,AES较于3DES速度更快、安全性更⾼。