P10-网络信息加密传输程序设计解读课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《P10-网络信息加密传输程序设计解读课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- P10 网络 信息 加密 传输 程序设计 解读 课件
- 资源描述:
-
1、5/30/20221计算机网络编程技术计算机网络编程技术第第10章章 网络信息加密传输程序设计网络信息加密传输程序设计5/30/20222网络攻击类型网络攻击类型l网络信息安全网络信息安全: l信息存储安全信息存储安全l信息传输安全信息传输安全5/30/20223本章的主要内容本章的主要内容l数据加密模型数据加密模型l对称加密程序设计对称加密程序设计l非对称加密程序设计非对称加密程序设计l网络信息加密传输程序设计网络信息加密传输程序设计5/30/2022410.1 数据加密模型数据加密模型(1) 数据加密模型描述数据加密模型描述5/30/20225(2) 对称加密模型对称加密模型对称加密算法使
2、用起来简单快捷,密钥较短,且破译困难。对称加密算法使用起来简单快捷,密钥较短,且破译困难。5/30/20226常见的对称加密算法常见的对称加密算法密码算法密码算法作作 者者密钥长度密钥长度说说 明明DESIBM56对于现在使用,太弱了对于现在使用,太弱了IDEAMassey和和Xuejia128好,但是属于专利算法好,但是属于专利算法RC4Ronald Rivest12048小心,有一些弱密钥小心,有一些弱密钥RC5Ronald Rivest128256好,但是属于专利算法好,但是属于专利算法RijndaelDaemen和和Rijmen128256最佳的选择最佳的选择SerpentAnders
3、on,Biham,Knuds128256很强很强三重三重DESIBM168第二最佳选择第二最佳选择TwofishBruce Schneier128256很强,被广泛使用很强,被广泛使用5/30/20227(3) 非对称加密模型非对称加密模型l非对称加密算法研制的最初理念与目标是旨在解决对称加密算非对称加密算法研制的最初理念与目标是旨在解决对称加密算法中密钥的分发问题法中密钥的分发问题.l实际上它不但很好地解决了这个问题,还可利用非对称加密算实际上它不但很好地解决了这个问题,还可利用非对称加密算法来完成对电子信息的数字签名以防止对信息的否认与抵赖;法来完成对电子信息的数字签名以防止对信息的否认与
4、抵赖;同时,还可以利用数字签名较容易地发现攻击者对信息的非法同时,还可以利用数字签名较容易地发现攻击者对信息的非法篡改,以保护数据信息的完整性。篡改,以保护数据信息的完整性。 5/30/20228(4) 数字签名模型数字签名模型数字签名一般采用非对称加密技术(如数字签名一般采用非对称加密技术(如RSA)。 5/30/2022910.2 对称加密程序设计对称加密程序设计10.2.1 对称加密算法对称加密算法lSymmetricAlgorithm类表示所有对称算法的实现都类表示所有对称算法的实现都必须从中继承的抽象基类必须从中继承的抽象基类;l派生了派生了DES、Triple-DES、RC2和和R
5、ijndael等对称加等对称加密算法密算法;l来自于来自于System.Security.Cryptography命名空间。命名空间。 5/30/202210 SymmetricAlgorithm类的主要属性和方法类的主要属性和方法 名名 称称描描 述述BlockSize获取或设置加密操作的块大小获取或设置加密操作的块大小IV获取或设置对称算法的初始化向量获取或设置对称算法的初始化向量Key获取或设置对称算法的密钥获取或设置对称算法的密钥KeySize获取或设置对称算法所用密钥的大小获取或设置对称算法所用密钥的大小Mode获取或设置对称算法的运算模式获取或设置对称算法的运算模式Clear()释
6、放资源释放资源Create()创建用于执行对称算法的加密实例创建用于执行对称算法的加密实例CreateDecryptor()用指定的密钥和初始化向量创建一个对称解密器对象用指定的密钥和初始化向量创建一个对称解密器对象CreateEncryptor()用指定的密钥和初始化向量创建一个对称加密器对象用指定的密钥和初始化向量创建一个对称加密器对象GenerateIV()为对称加密算法生成一个随机的初始化向量(为对称加密算法生成一个随机的初始化向量(IV),并重写),并重写IV属性中所属性中所存储的值存储的值GenerateKey()为对称加密算法生成一个随机密钥(为对称加密算法生成一个随机密钥(Ke
7、y),并重写),并重写Key属性的值属性的值5/30/202211对称算法的实现对称算法的实现:lRijndaelManagedlDESCryptoServiceProviderlRC2CryptoServiceProviderlTripleDESCryptoService Provider5/30/20221210.2.2 基于流的加密解密方法基于流的加密解密方法l由于对称加密往往用于加密大量数据信息,隐藏采用了流由于对称加密往往用于加密大量数据信息,隐藏采用了流式加密方法,以便支持对内存流和文件流等数据的加密和式加密方法,以便支持对内存流和文件流等数据的加密和解密。托管对称加密类与称为解密
8、。托管对称加密类与称为CryptoStream的特殊流类的特殊流类一起使用。一起使用。l可以使用从可以使用从Stream类派生的任何类(包括类派生的任何类(包括FileStream、MemorySteam和和NetworkStream)初始化)初始化CryptoStream类。使用这些类,可以对各种流对象执行类。使用这些类,可以对各种流对象执行对称加密。对称加密。 5/30/202213(1) 加密过程实例加密过程实例: 创建对称加密算法实例:创建对称加密算法实例:cryptoService=new RijndaelManaged();cryptoService.Mode=CipherMode
9、.CBC; /设置为链接模式设置为链接模式 设置初始化参数,包括密钥和初始化向量等。设置初始化参数,包括密钥和初始化向量等。cryptoService.Key=GetLegalKey();/设置密钥设置密钥cryptoService.IV=GetLegalIV();/设置初始向量设置初始向量 创建加密实例:创建加密实例:ICryptoTransform cryptoTransform=cryptoService.CreateEncryptor(); 创建加密流:创建加密流:MemoryStream ms=new MemoryStream();/创建内存流创建内存流CryptoStream cs
10、=new CryptoStream(ms, crytoTransform,CryptoStreamMode.Write); 通过流的写操作实现数据加密:通过流的写操作实现数据加密:cs.Write(plainByte,0,plainByte.Length);cs.FlushFinalBlock();byte cryptoByte=ms.ToArray(); return Convert.ToBase64String(cryptoByte,0,cryptoByte.GetLength(0);5/30/202214(2) 解密过程实例解密过程实例 创建对称加密算法实例:创建对称加密算法实例:cry
11、ptoService=new RijndaelManaged();cryptoService.Mode=CipherMode.CBC; /设置为链接模式设置为链接模式 设置初始化参数,包括密钥和初始化向量等。用户设置方法如下:设置初始化参数,包括密钥和初始化向量等。用户设置方法如下:cryptoService.Key=GetLegalKey();/设置密钥设置密钥cryptoService.IV=GetLegalIV();/设置初始向量设置初始向量 创建解密实例,如:创建解密实例,如:ICryptoTransform cryptoTransform=cryptoService.CreateEn
12、cryptor(); 创建解密流,如:创建解密流,如:MemoryStream ms=new MemoryStream(cryptoByte,0,cryptoByte.Length);/创建内存流创建内存流CryptoStream cs=new CryptoStream(ms, crytoTransform, CryptoStreamMode.Read); 通过解密流进行数据解密:通过解密流进行数据解密:StreamReader sr=new StreamReader(cs);return sr.ReadToEnd();5/30/20221510.2.3 对称加密程序设计示例对称加密程序设计示
展开阅读全文