书签 分享 收藏 举报 版权申诉 / 66
上传文档赚钱

类型《网络安全与管理实验教程》课件第1章.ppt

  • 上传人(卖家):momomo
  • 文档编号:7894805
  • 上传时间:2024-09-01
  • 格式:PPT
  • 页数:66
  • 大小:1.84MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《《网络安全与管理实验教程》课件第1章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    网络安全与管理实验教程 网络安全 管理 实验 教程 课件
    资源描述:

    1、第 1 章 数据加密算法及Hash算法1.1 数据加密概述1.2 DES算法1.3 RSA算法1.4 MD5算法第 1 章 数据加密算法及Hash算法在互联网上进行文件、电子商务往来等信息传输时存在许多不安全因素,尤其是一些机密文件在网络上传输时,信息安全显得尤为重要。不安全性是互联网的存在基础TCP/IP协议所固有的,因此解决这一问题的方案就是加密,加密后的数据被别人获得后,在解密之前是不可读的。数据加密是所有数据安全技术的核心。加密在网络上的作用是,防止重要的或私有化信息在网络上被截获和篡改。需要说明的是,文件加密不只应用于电子邮件等网络上的传输,也可应用于静态文件的保护。1.1 数据加密

    2、概述数据加密概述第 1 章 数据加密算法及Hash算法数据加密是指对原来被称为“明文”的数据按某种算法进行处理,使其成为不可读的一段代码的过程。通常把通过加密得到的代码称为“密文”。数据加密的逆过程称为数据解密,即将密文转化为明文的过程。只有利用相应的密钥对密文进行解密,才能显示出明文的内容,通过这样的途径能够 保 护 数 据 不 被 非 授 权 的 访 问 者 非 法 窃 取。加密技术通常分为两大类:常规密钥密码体制和公开密钥密码体制。第 1 章 数据加密算法及Hash算法所谓常规密钥密码体制,是指加密密钥与解密密钥相同的密码体制。这种加密系统又称为对称密钥系统。美国政府采用的DES加密标准

    3、就是一种典型的对称式加密方法。公开密钥密码体制使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。公开密钥密码体制采用非对称的加密算法,RSA算法是其中使用最广泛的加密算法之一。RSA使用两个密钥:一个公共密钥,一个私有密钥。如果用其中的一个密钥加密,则可用另一个解密。两个密钥需要配对使用,否则不能解密。公共密钥可以对外公布,私有密钥只有持有者自己拥有。使用公开密钥密码体制很好地避免了密钥的传输安全性问题。第 1 章 数据加密算法及Hash算法美国国家标准局1973年开始研究除国防部外的其他部门的计算机系统的数据加密标准,于1973年5月15日和19

    4、74年8月27日先后两次向公众发出了征求加密算法的公告。加密算法要达到的目的(通常称为DES密码算法要求)主要为以下四点:(1)提供高质量的数据保护,防止数据未经授权地泄露和未被察觉地修改;(2)具有相当高的复杂性,使得破译的开销超过可能获得的利益,同时又要便于理解和掌握;1.2 DES算法算法第 1 章 数据加密算法及Hash算法(3)DES密码体制的安全性应该不依赖于算法的保密,其安全性仅以加密密钥的保密为基础;(4)实现经济,运行有效,并且适用于多种不同的应用。1977年1月,美国政府正式许可以IBM公司设计的方案作为非机密数据的数据加密标准(Data Encryption Standa

    5、rd,DES)。DES算法已经应用于许多需要安全加密的场合,UNIX的密码保护算法就是以DES算法为基础的。第 1 章 数据加密算法及Hash算法DES属于常规密钥密码体制,是一种分组密码。在加密前,先对整个明文进行分组。每一个组长为64 bit(位)。然后对每一个64 bit二进制数据进行加密处理,产生一组64 bit密文数据。最后将各组密文串接起来,即得出整个的密文。使用的密钥长度为64 bit(实际密钥长度为56 bit,有8 bit用于奇偶校验)。1.2.1 DES算法分析算法分析第 1 章 数据加密算法及Hash算法1密钥的生成密钥的生成DES算法的实现过程中经过了16次的迭代,每一

    6、次的迭代都需要一个48 bit的密钥。下面介绍如何从用户提供的64 bit的密钥来获得16个48 bit的密钥,实现过程如图1-1所示。第 1 章 数据加密算法及Hash算法图1-1 DES密钥的生成第 1 章 数据加密算法及Hash算法(1)变换密钥。从用户处取得一个64 bit的密钥K,去除其中作为奇偶校验位的第8、16、24、32、40、48、56、64位,剩下的56位作为有效输入密钥K0。根据表1-1进行密钥变换,得到新的56位密钥。将变换后的密钥等分成两个部分,分别为A0和B0。表1-1中的数据表示密钥K中各位的位置序号。第 1 章 数据加密算法及Hash算法表表1-1 变换密钥数据

    7、变换密钥数据57494133251791585042342618102595143352719113605244366355473931231576254463830221466153453729211352820124第 1 章 数据加密算法及Hash算法(2)密钥移位。把步骤(1)中生成的两个28 bit的密钥(A0、B0)分别循环左移,得到两个新的28 bit的密钥,分别为A1和B1。(3)密钥选取。把步骤(2)中生成的两个28 bit的密钥(A1、B1)合并,生成一个56 bit的密钥。根据表1-2把生成的56 bit密钥压缩为一个48 bit的密钥K1。(4)循环执行。利用生成的两个

    8、28 bit的密钥从步骤(2)开始循环执行,直至生成K16结束。循环过程中,根据表1-3来决定步骤(2)循环左移的位数。第 1 章 数据加密算法及Hash算法表表1-2 压缩密钥数据压缩密钥数据1417112415328156211023191242681672720132415231374755304051453348444939563453464250362932第 1 章 数据加密算法及Hash算法表表1-3 循环左移位数循环左移位数序号12345678位数11222222序号910111213141516位数12222221第 1 章 数据加密算法及Hash算法2数据加密数据加密利用D

    9、ES算法对数据加密的过程如图1-2所示。64 bit的明文X进行初始置换IP(Initial Permutation)得出X0,其左半边32 bit和右半边32 bit分别记为L0和R0。然后再经过16次的迭代。如果用Xi表示第i次的迭代结果,同时假设Li和Ri分别代表Xi的左半边和右半边(各32 bit),则从图1-2中不难看出,式中,i=1,2,16,而Ki是48 bit密钥,即从原来的64 bit初始密钥经过若干次变换而得出。)K,R(fLRRLi1i1ii1ii第 1 章 数据加密算法及Hash算法图1-2 DES加密算法第 1 章 数据加密算法及Hash算法 在最后一次的迭代之后,左

    10、右半边没有交换。这是为了使算法既能加密又能解密。最后一次的变换是IP的逆变换IP-1,其输入是R16L16。Y即为输出的密文。(1)初始置换IP。取得64位的数据X,如果数据长度不足64位,应该将其扩展为64位(例如补零)。将64位数据按表1-4变换(IP),得到64位的数据X0。第 1 章 数据加密算法及Hash算法表表1-4 初始置换数据初始置换数据58504234261810260524436282012462544638302214664564840322416857494133251791595143352719113615345372921135635547393123157第 1

    11、 章 数据加密算法及Hash算法(2)数据扩展。把64位数据X0等分成左、右两部分,分别记为L0、R0,各为32位。L0不变,按照表1-5把R0由32位扩展为48位。把扩展后的48位数据与密钥K1进行按位异或操作,形成一个新的48位数据。第 1 章 数据加密算法及Hash算法表表1-5 数据扩展数据扩展3212345456789891011121312131415161716171819202120212223242524252627282928293031321第 1 章 数据加密算法及Hash算法(3)数据压缩。将步骤(2)中异或后生成的48位数据分为8个6位长的部分,第16位称为B1,第

    12、712位称为B2,依此类推,第4348位称为B8。Bi(i=1,2,8)长度为6位,分别根据表1-6表1-13中提供的数据进行变换,得到8个4位长的数据,即32位。表1-6表1-13中提供的所有数据都被当作4位长度处理。具体的变换过程是这样的:将Bi的第1位和第6位组合为一个2位长度的变量M,M作为表中的行号。将Bi的第2位到第5位组合为一个4位长度的变量N,N作为表中的列号。根据M、N从表中查到相应的值来代替Bi。第 1 章 数据加密算法及Hash算法表表1-6 数据压缩数据压缩(一一)144131215 11831061259070157414213110612 1195384114813

    13、6211 15 12973105015 12824917511314 100613第 1 章 数据加密算法及Hash算法表表1-7 数据压缩数据压缩(二二)1518146113497213 12051031347152814 12011069115014711 10413158126932151381013154211671205149第 1 章 数据加密算法及Hash算法表表1-8 数据压缩数据压缩(三三)10091463155113 12711428137093461028514 12 11 1511364981530111212510 147110 1306987415 14311521

    14、2第 1 章 数据加密算法及Hash算法表表1-9 数据压缩数据压缩(四四)713 14306910128511 124151381156150347212110 1491069012 11713 15131452843150610113894511 127214第 1 章 数据加密算法及Hash算法表表1-10 数据压缩数据压缩(五五)21241710 11685315 13014914 11212471315015 10398642111 10 1378159125630141181271142136150910453第 1 章 数据加密算法及Hash算法表表1-11 数据压缩数据压缩(六

    15、六)12110 1592680133414751110 1542712956113 1401138914 1552812370410113 116432129515 10 11 141760813第 1 章 数据加密算法及Hash算法表表1-12 数据压缩数据压缩(七七)411214 150813312975106113011749110 143512215861411 13 123714 10 15680592611 1381410795015 142312第 1 章 数据加密算法及Hash算法表表1-13 数据压缩数据压缩(八八)13284615111 10931450127115 138

    16、10374 12561101492711419121420610 13 153582114741081315 129035611第 1 章 数据加密算法及Hash算法(4)数据变换。对步骤(3)中生成的32位的数据,根据表1-14中的数据进行变换,产生新的32位的数据。步骤(2)至步骤(4)实现的过程,完成了图1-2中函数f的功能。(5)交换数据。将步骤(4)中变换得出的32位数据与L0进行异或运算,所得的结果即为R1的值。把变换的初始值R0赋于L1。至此,完成了一次迭代过程。(6)迭代。DES算法需要进行16次迭代,把第i-1次得到的Li-1和Ri-1的值作为第i次的输入数据,重复执行步骤(

    17、2)至步骤(6)的操作。需要注意的是,第i次迭代要选择密钥Ki与数据进行按位异或操作。第 1 章 数据加密算法及Hash算法表表1-14 数据变换数据变换1672021291228171152326518311028241432273919133062211425第 1 章 数据加密算法及Hash算法为保证加密和解密的对称性,DES算法的前15次迭代需要交换Li和Ri的值,第16次迭代不交换两者的数值。至此,把32位的L16和R16进行合并,生成64位的数据R16L16。(7)IP逆变换。根据表1-15中的数据,重新调整R16L16数据位的位置,结果即为64位的密文Y。第 1 章 数据加密算法

    18、及Hash算法表表1-15 IP逆变换数据逆变换数据40848165624643239747155523633138646145422623037545135321612936444125220602835343115119592734242105018582633141949175725第 1 章 数据加密算法及Hash算法3数据解密数据解密数据解密的算法与加密算法类似,区别在于步骤(2)中,和数据进行按位异或的密钥的使用顺序有所不同。在加密过程中,第i次迭代采用密钥Ki与数据进行异或,而在解密时第i次迭代采用密钥K17-i和数据进行异或。第 1 章 数据加密算法及Hash算法4算法的安全性

    19、算法的安全性DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法。而56位密钥的穷举空间为256,这意味着如果一台计算机的速度是每秒检测100万个密钥,则它搜索完全部密钥需要将近2285年的时间,这是难以实现的。当然,随着科学技术的发展,当出现超高速计算机后,可以考虑增长DES密钥来达到更高的保密程度。第 1 章 数据加密算法及Hash算法从DES算法的实现过程可以看出,DES算法中只用到64位密钥中的56位,第8,16,24,64位共8个位并未参与DES运算。这一点向我们提出了一个应用上的要求,即DES算法的安全性是基于56位的组合变化才得以

    20、保证的。在实际应用中,我们应该避开使用第8,16,24,64位作为有效数据位,而使用其他的56位作为有效数据,如果不这样,对运用DES来达到保密作用的系统将产生数据被破译的危险。第 1 章 数据加密算法及Hash算法【实验目的实验目的】(1)理解常规密钥密码体制的特点。(2)理解DES算法的实现过程。(3)学会利用C语言实现DES算法。【实验环境实验环境】计算机一台,安装有C语言的编译环境。1.2.2 实验实验DES算法的实现算法的实现第 1 章 数据加密算法及Hash算法【实验过程实验过程】(1)学习DES算法的实现过程。(2)利用C语言编写实现DES算法的程序。附录A中给出了利用C语言实现

    21、DES算法的源程序,现对其中出现的主要函数作如下说明:unsigned char*byte2bit(unsigned char byte64,unsigned char bit8)功能:把字节存储转换为比特存储。对于64位(bit)的数据,如果每一位占有1个字节的存储空间,则总共需要64字节的存储空间;如果每一位占有1个比特的存储空间,则总共需要64比特的存储空间,即8个字节。第 1 章 数据加密算法及Hash算法参数:byte64:用来存储64位的数据,每一位占有1个字节。bit8:用来存储64位的数据,每一位占有1个比特。unsigned char*bit2byte(unsigned ch

    22、ar bit8,unsigned char byte64)功能:把比特存储转换为字节存储。参数:bit8:用来存储64位的数据,每一位占有1个比特。byte64:用来存储64位的数据,每一位占有1个字节。第 1 章 数据加密算法及Hash算法 void keychange(unsigned char oldkey8,unsigned char newkey168)功能:利用提供的64位密钥,生成16个48位的子密钥。参数:oldkey8:用来存储提供的64位密钥,每一位占1个比特。newkey168:用来存储生成的16个48位的子密钥,每一位占1个比特。不难看出,每个子密钥占用6个字节的存储空

    23、间。第 1 章 数据加密算法及Hash算法 void endes(unsigned char m_bit8,unsigned char k_bit8,unsigned char e_bit8)功能:对提供的64位明文,利用给定的64位密钥进行加密操作,生成64位密文。参数:m_bit8:用来存储64位明文,每一位占1个比特。k_bit8:用来存储64位密钥,每一位占1个比特。e_bit8:用来存储64位密文,每一位占1个比特。第 1 章 数据加密算法及Hash算法 void undes(unsigned char m_bit8,unsigned char k_bit8,unsigned cha

    24、r e_bit8)功能:对提供的64位密文,利用给定的64位密钥进行解密操作,生成64位明文。参数:m_bit8:用来存储需要解密的64位密文,每一位占1个比特。k_bit8:用来存储64位密钥,每一位占1个比特。e_bit8:用来存储解密后生成的64位明文,每一位占1个比特。第 1 章 数据加密算法及Hash算法 void s_replace(unsigned char s_bit8)功能:对提供的48位数据进行压缩,生成32位的数据,并进行一次变换。参数:s_bit8:用来存储48位的数据。不难看出,这里只有6个字节存储的数据有效。该函数执行完后,s_bit8存储生成的32位数据,即只有4

    25、个字节存储的数据有效。(3)调试、验证编写的程序。第 1 章 数据加密算法及Hash算法1.3.1 RSA算法分析算法分析RSA算法依据数论中的一个原理,即:寻求两个大素数比较简单,而将它们的乘积分解则极其困难。1密钥生成密钥生成(1)根据需要选择两个大素数p和q,计算它们的乘积n=pq,保证n满足一定的长度,例如1024 bit,n称为模数。为了说明问题方便,这里假设p=23,q=29,则n=667。(2)计算n的欧拉函数(n)=(p-1)(q-1),它表示不超过n并与n互素的正整数的个数。这里(n)=616。1.3 RSA算法算法第 1 章 数据加密算法及Hash算法(3)在区间(0,(n

    26、)内,选择一个与(n)互素的数e,作为公开指数或加密指数。这里选择e=3。(4)计算秘密指数(解密指数)d,满足1d(n),并且ed1(mod(n)。可以计算出d=411。这样便得出公开密钥(加密密钥)PK=e,n和秘密密钥SK=d,n,同时需要保密p、q和(n)的值。这里PK=3,667,SK=411,667。第 1 章 数据加密算法及Hash算法2数据加密数据加密(1)假设需要加密的信息(明文)的二进制形式为m,首先把m分成等长的数据块m1,m2,mj,块长为s,其中2sn,且s尽可能地大。(2)对每一个数据块mi执行运算ci=(mi)e mod n,把得到的数据块c1,c2,cj。拼接起

    27、来,即为密文c。第 1 章 数据加密算法及Hash算法3数据解密数据解密(1)解密的过程与加密过程类似,首先把密文的二进制形式c分成等长的数据块c1,c2,cj。(2)对每一个数据块ci执行运算mi=(ci)d mod n,把得到的数据块m1,m2,mj,拼接起来,即为明文m。4算法的安全性算法的安全性RSA算法的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,因为还没有证明破解RSA算法一定需要作大数分解。假设存在一种无需分解大数的算法,那它肯定可以修改成为大数分解算法。目前,RSA算法的一些变种算法已被证明等价于大数分解。第 1 章 数据加密算法及Hash算法1.3.2

    28、 实验实验RSA算法的实现算法的实现【实验目的实验目的】(1)理解公开密钥密码体制的特点。(2)理解RSA算法的实现过程。(3)学会用C语言实现RSA算法。【实验环境实验环境】计算机一台,安装有C语言的编译环境。第 1 章 数据加密算法及Hash算法【实验过程实验过程】(1)学习RSA算法的实现过程。(2)选取较小的素数,手工计算加密密钥、解密密钥,并对明文进行加密、解密操作,加深对RSA算法的理解。(3)利用C语言编写实现RSA算法的程序。附录B中给出了利用C语言实现RSA算法的源程序,其中模数n为512bit,读者可以参考。该源程序中,主要的函数调用关系可以用图1-3表示。第 1 章 数据

    29、加密算法及Hash算法图1-3 RSA算法中主要的函数调用关系第 1 章 数据加密算法及Hash算法现对图1-3中列出的函数加以说明:函数原型:int mpModExp(DIGIT_T y,DIGIT_T x,DIGIT_T e,DIGIT_T m,unsigned int ndigits);功能说明:计算y=xe mod m,其中x、e、m和y均是存储在数组中的大整数。第 1 章 数据加密算法及Hash算法函数原型:int mpModMult(DIGIT_T a,DIGIT_T x,DIGIT_T y,DIGIT_T m,unsigned int ndigits);功能说明:计算a=(x*y

    30、)mod m,其中x、y、m和a均是存储在数组中的大整数。函数原型:int mpMultiply(DIGIT_T w,DIGIT_T u,DIGIT_T v,unsigned int ndigits);功能说明:计算乘积w=u*v,其中u、v和w均是存储在数组中的大整数,并且u、v的长度为ndigits,w的长度为u(或v)的长度的两倍,即ndigits2。第 1 章 数据加密算法及Hash算法函数原型:int spMultiply(DIGIT_T p2,DIGIT_T x,DIGIT_T y);功能说明:计算乘积p=x*y,其中x、y均为DIGIT_T类型的整数,而p的长度是x(或y)长度的

    31、两倍。函数原型:int mpModulo(DIGIT_T r,DIGIT_T u,unsigned int udigits,DIGIT_T v,unsigned int vdigits);功能说明:计算r=u mod v,其中u、v和r均是存储在数组中的大整数,并且u的长度为udigits,r、v的长度为vdigits。第 1 章 数据加密算法及Hash算法函数原型:int mpDivide(DIGIT_T q,DIGIT_T r,DIGIT_T u,unsigned int udigits,DIGIT_T v,unsigned int vdigits);功能说明:计算商q=u/v,余数r=u

    32、 mod v,其中q、r和u的长度为udigits,v的长度为vdigits。函数原型:DIGIT_T mpShortDiv(DIGIT_T q,DIGIT_T u,DIGIT_T v,unsigned int ndigits);功能说明:计算商q=u/v,其中q、u均是存储在数组中的大整数,v是DIGIT_T类型的整数。第 1 章 数据加密算法及Hash算法函数原型:DIGIT_T spDivide(DIGIT_T*q,DIGIT_T*r,DIGIT_T u2,DIGIT_T v);功能说明:计算商q=u/v,余数r=u mod v,其中u的长度是v的长度的两倍。函数原型:static vo

    33、id spMultSub(DIGIT_T uu2,DIGIT_T q,DIGIT_T v1,DIGIT_T v0);功能说明:计算uu=uu-q(v1v0),其中uu的长度是q长度的两倍。需要说明的是,虽然用DIGIT_T类型存储v0、v1,但v0、v1只占用一半的存储空间,且(v1v0)表示二者的拼接(不表示乘积)。第 1 章 数据加密算法及Hash算法函数原型:DIGIT_T mpShiftLeft(DIGIT_T a,DIGIT_T b,unsigned int x,unsigned int ndigits);功能说明:计算a=bx,其中a、b均是存储在数组中的大整数,且xx,其中a、b

    34、均是存储在数组中的大整数,且xBITS_PER_DIGIT。第 1 章 数据加密算法及Hash算法函数原型:static DIGIT_T mpMultSub(DIGIT_T wn,DIGIT_T w,DIGIT_T v,DIGIT_T q,unsigned int n);功能说明:计算w=w-q*v,其中w=wnwn-1w0,返回值为wn。函数原型:DIGIT_T mpAdd(DIGIT_T w,DIGIT_T u,DIGIT_T v,unsigned int ndigits);功能说明:计算w=u+v,其中u、v、w均是存储在数组中的大整数。(4)调试、验证编写的程序。第 1 章 数据加密算

    35、法及Hash算法1.4.1 MD5算法分析算法分析 MD5可对任意长度的报文进行运算,然后得出128 bit的消息摘要,大致的过程如下:(1)增加填充:填充报文,使其长度满足模512(bit)的余数为448。如果原有的报文长度正好是模512为448,则需要增加512 bit的填充。依据原有报文的长度,填充的比特数为1512,填充内容的第1位(比特)为1,其余全部为0。1.4 MD5算法算法第 1 章 数据加密算法及Hash算法(2)补足长度:将原有报文的长度转换为64 bit的数值,如果报文长度超过64 bit所能表示的数据范围,则保留最后64 bit。把该数值增加到上一步填充的数据后面,此时

    36、报文的长度应该为512(bit)的整数倍。(3)数据处理:以512(bit)为单位,对“增加填充”和“补足长度”后的报文进行四轮循环的数据处理。数据处理过程中要借助四个特征常数和四个辅助函数。第 1 章 数据加密算法及Hash算法四个特征常数(低位在前)为:A:0 x01234567B:0 x89abcdefC:0 xfedcba98D:0 x76543210四个辅助函数为:F(X,Y,Z)=XY v not(X)Z G(X,Y,Z)=XZ v Y not(Z)H(X,Y,Z)=X xor Y xor Z I(X,Y,Z)=Y xor(X v not(Z)第 1 章 数据加密算法及Hash算法

    37、以上四个函数中,输入X、Y、Z均为32 bit,XY表示按位与,X v Y表示按位或,not(X)表示按位取反,X xor Y表示按位异或。数据处理结束,A、B、C、D中存储的计算结果即为128bit的消息摘要。第 1 章 数据加密算法及Hash算法1.4.2 实验实验MD5算法的实现算法的实现【实验目的实验目的】(1)掌握如何使用Hash算法对报文进行鉴别;(2)理解MD5算法的实现过程。(3)学会利用C语言实现MD5算法。【实验环境实验环境】计算机一台,安装有C语言的编译环境。第 1 章 数据加密算法及Hash算法【实验过程实验过程】(1)学习MD5算法的实现过程。(2)利用C语言编写实现

    38、MD5算法的程序。附录C中给出了利用C语言实现MD5算法的源程序,其实现的步骤可简单描述如下:调用MD5Init(MD5_CTX*)函数,完成初始化操作,主要对四个特征常数进行定义。调用MD5Update(MD5_CTX*,unsigned char*,unsigned int)函数,对输入的字节串以512 bit(64字节)为单位依次进行四轮循环处理。处理过程通过调用函数MD5Transform(UINT44,unsigned char64)来完成。第 1 章 数据加密算法及Hash算法 对上一步未处理的字节串用变量PADDING64进行填充,使其满足模512(bit)的余数为448。填充结

    39、束后,调用MD5Update(MD5_CTX*,unsigned char*,unsigned int)函数,如果字节串长度超过512(bit),则通过函数MD5Transform(UINT44,unsigned char64)对字节串进行四轮循环处理。根据输入字节串长度的数值(存储在变量bits8中),对字节串进行补足处理,使其长度为512(bit)的整数倍。通过在MD5Update(MD5_CTX*,unsigned char*,unsigned int)函数中调用函数MD5Transform(UINT44,unsigned char64),来对最后的512 bit字节串进行处理。第 1

    40、章 数据加密算法及Hash算法 输出计算结果,即128 bit的消息摘要值。(3)调试、验证编写的程序。这里给出了几个字符串对应的MD5消息摘要的值,可以用来验证编写的程序:MD5(“”)=d41d8cd98f00b204e9800998ecf8427eMD5(“a”)=0cc175b9c0f1b6a831c399e269772661MD5(abc)=900150983cd24fb0d6963f7d28e17f72第 1 章 数据加密算法及Hash算法MD5(“message digest”)=f96b697d7cb7938d525a2f31aaf161d0MD5(“abcdefghijklmnopqrstuvwxyz”)=c3fcd3d76192e4007dfb496cca67e13bMD5(“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789”)=d174ab98d277d9f5a5611c2c9f419d9fMD5(12345678901234567890123456789012345678901234567890123456789012345678901234567890)=57edf4a22be3c955ac49da2e2107b67a

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:《网络安全与管理实验教程》课件第1章.ppt
    链接地址:https://www.163wenku.com/p-7894805.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库