第11章数据加密与数字签名.ppt
《第11章数据加密与数字签名.ppt》由会员分享,可在线阅读,更多相关《第11章数据加密与数字签名.ppt(55页珍藏版)》请在三一文库上搜索。
1、第11章 数据加密与数字签名,11.1 数据加密与解密技术 11.2 加密解密的具体实现 11.3 网络应用中数据的加密与解密 11.4 Hash算法与数字签名,第11章 数据加密与数字签名(续),本章教学目的 通过学习,使学生能够对数据加密和解密、常用的加密类、如何在网络中传递数据以及数字签名有一个清晰的认识。 本章教学要求 (1)掌握数据加密与解密的基本知识 (2)掌握字符串、一般文件、XML文件加密和解密的具体实现。 (3)掌握网络应用中数据的加密与解密的流程 (4)掌握数字签名的概念和Hash算法,了解其他相关知识 (5)掌握怎样进行简单的数字签名 教学难点和重点 加密类和加密、解密方
2、法、网络应用中数据的加密与解密 教学用时 4学时,11.1 数据加密与解密技术,密码学简介据记载,公元前400年,古希腊人发明了置换密码。 在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。 密码学可以达到以下目的: 保密性:防止用户的标识或数据被读取 数据完整性:防止数据被更改 。,11.1 数据加密与解密技术(续),1977年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、SHA等。 RC2:由著名密码学家Ron Rivest设计的一种传统对称分组加密算法 3DES:基于DES
3、,对一块数据用三个不同的密钥进行三次加密,强度更高 AES:Rijndael被选中成为将来的AES,11.1 数据加密与解密技术,11.1.1 对称加密及其相关类 11.1.2 不对称加密及其相关类 11.1.3 加密流 11.1.4 密钥容器,11.1.1 对称加密及其相关类,对称加密(私钥加密)原理 同一密钥既用于加密又用于解密。 以块为单位加密数据(称为块密码),该方法一次加密一个数据块(数据多于规定的块大小时,将数据分块处理,数据少于规定的块大小时,将其扩充到块大小)。 早期采用密码本(ECB) 模式,即有一个密码对照表,将被加密的数据按照对应关系解密即可,安全性较低。最突出的缺点是相
4、同的原始数据加密后的结果也相同。 改进后的算法是密码块链 (CBC,Cipher Block Chaining) 模式,即使用私钥和初始化向量 (IV,Initialization Vector) 共同加密。实现思路:用“IV”和“私钥”加密第一个纯文本块,每个后续纯文本块都在加密前先与前一个密码文本块进行按位“异或”运算,从而解决了ECB模式存在的安全问题,即:虽然原始数据相同,产生的加密后的数据也不会相同。,11.1.1 对称加密及其相关类(续),对称加密(私钥加密) 特点 优点:保密强度高,加、解密速度快,适合加密大量数据。 缺点:由于双方使用相同的密钥进行加密和解密。在网络传输中,如何
5、传递密钥成为问题所在。如果攻击者截获了密钥,也就等于知道了如何解密数据。,11.1.1 对称加密及其相关类(续),实现对称加密(CBC模式,即“密钥+IV模式”)算法的类有6种: DESCryptoServiceProvider类:DES算法加密类 TripleDESCryptoServiceProvider:TDES算法加密类 RijndaelManaged:AES算法加密类 AesManaged : AES算法加密类(.NET Framework 3.5) RC2CryptoServiceProvider:RC2算法加密类 HMACSHA1:SHA1算法(哈希算法)加密类 说明:使用IV的
6、目的是为了防范穷举搜索而进行的攻击。,11.1.1 对称加密及其相关类(续),DESCryptoServiceProvider类: 对采用数据加密标准(DES,Data Encryption Standard)算法的加密服务提供程序(CSP)版本进行包装(密钥长度为64位), DES是美国1977年公布的加密标准,当时在各超市零售业、银行自动取款机、磁卡及IC卡、加油站、高速公路收费站等领域被广泛应用。 说明:该算法如果不使用IV,目前已经有多种破解方法(最快的破解速度据媒体报导是仅用了3天的时间就破解了),但是使用IV生成随机数配合加密后,破解就变得非常困难。,11.1.1 对称加密及其相关
7、类(续),对采用3DES(三层数据加密标准)算法的加密服务提供程序(CSP)进行包装(密钥长度为128位到192位,以64位递增)。3DES对交换的信息进行3次叠代加密,比DES安全性高。常用属性和方法:,11.1.1 对称加密及其相关类(续),说明: (1)如果对数字或其他值类型数据加密,可以利用 BinaryWriter先得到字节流,然后对其加密即可。 (2)如果对数据库数据加密,只需要将加密后的内容保存到库中即可,读出后再解密。 (3)对于其他不同的加密解密类,调用方法都差不多。,11.1.1 对称加密及其相关类(续),RijndaelManaged类:对采用Rijndael的加密服务提
8、供程序(CSP)进行包装(密钥长度为128、192或256位)。 Rijndael是Vincent Rijmen和Joan Daemen两人提出的加密算法,是最新的高级加密标准之一,比3DES算法更强、更高效。 AesManaged类(在.NET Framework 3.5版中引入):对AES算法进行包装。此类的功能与RijndaelManaged类相同,但它将块限制为 128 位。AES 算法实质上是具有固定块大小和迭代计数的Rijndael对称算法。 说明: 加密服务提供程序(CSP,Cryptographic Service Provider)是微软在Windows操作系统中内置的加密处
9、理模块。,11.1.1 对称加密及其相关类(续),RC2CryptoServiceProvider类:对采用RC2算法的加密服务提供程序(CSP)进行包装(密钥长度为从 40 位到 128 位,以 8 位递增)。RC2是Ron Rivest在1987年设计的一个块密码算法。 HMACSHA1类:从 SHA1构造的一种键控哈希算法,被用作HMAC(基于哈希的消息验证代码)。SHA-1(安全哈希算法,也称为安全哈希标准)是由美国政府发布的一种加密哈希算法。它将从任意长度的字符串生成 160 位的哈希值。HMACSHA1 接受任何大小的密钥,并产生长度为 160 位的哈希序列。,11.1.1 对称加
10、密相关类,对称加密(CBC模式,即“密钥+IV模式”)相关的类有,11.1.1 对称加密相关类,Hash算法相关类 Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用信息完整性校验。,11.1.1 对称加密及其相关类(续),六种对称加密类的主要特点:,11.1.2 不对称加密及其相关类,不对称加密(公钥加密)原理 使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 私钥是保密的,公钥是公开的。用公钥加密的数据只能用私钥解密,
11、反之,用私钥加密的数据只能用公钥解密。 实现方法: 接收方先生成一个公钥/私钥对,在接收被加密的数据前,先将该公钥传递给发送方;注意,从公钥推导出私钥是不可能的,所以不怕通过网络传递时被攻击者截获公钥。发送方得到此公钥后,使用此公钥加密数据,再将加密后的数据通过网络传递给接收方;接收方收到加密后的数据后,再用私钥进行解密。由于没有传递私钥,从而提高了数据的安全性。,11.1.2 不对称加密及其相关类(续),不对称加密(也叫公钥加密)特点 优点:密钥位数多,而且无法根据加密密钥推导出解密密钥。从而使保密强度更高。 缺点:加、解密速度慢,不适合加密大量数据。,11.1.2 不对称加密及其相关类(续
12、),.NET Framework 提供了以下类来实现不对称加密算法: DSACryptoServiceProvider:DSA算法的加密实现。 RSACryptoServiceProvider:RSA算法的加密实现。 ECDiffieHellmanCng 椭圆曲线 Diffie-Hellman (ECDH) 算法的下一代加密技术 (CNG)加密实现,.NET Framework 3.5版开始提供。 ECDsaCng 椭圆曲线数字签名算法 (ECDSA) 的下一代加密技术 (CNG) 实现 , .NET Framework 3.5版开始提供。,11.1.2 不对称加密及其相关类(续),RSACr
13、yptoServiceProvider类: 使用加密服务提供程序 (CSP) 提供的 RSA 算法的实现执行不对称加密和解密。 如果安装了 Microsoft Enhanced Cryptographic Provider,则 RSACryptoServiceProvider 支持长度从 384 位至 16384 位(增量为 8 位)的密钥。如果安装了 Microsoft Base Cryptographic Provider,则支持长度从 384 位至 512 位(增量为 8 位)的密钥。,11.1.2 不对称加密及其相关类(续),RSACryptoServiceProvider类的常用属性
14、和方法,11.1.2 不对称加密相关类-RSA,ToXmlString :以XML文档形式保存 RSA 密钥信息时。 true 时将创建一个包含公钥及私钥XML字符串 false 时将创建的XML字符串仅包含公钥 。 FromXmlString: 用 ToXmlString 方法生成的一个XML 字符串中的密钥信息来初始化 RSA 对象, 例如: 加密方: RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); String strKeyXml = rsa.ToXmlString(true); 解密方: RSACryptoS
15、erviceProvider rsa = new RSACryptoServiceProvider();rsa. FromXmlString(strKeyXml);,11.1.2 不对称加密相关类-RSA,Encrypt方法:使用RSA算法对数据进行加密 byte dataToEncrypt = Encoding.UTF8.GetBytes(textBoxInput.Text); RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); byte dataToDecrypt = rsa.Encrypt(dataToEncryp
16、t,false); String rsaKeyInfo = rsa.ToXmlString(false); Decrypt方法:使用RSA算法对数据进行解密 RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString(rsaKeyInfo); return rsa.Decrypt(dataToDecrypt, false);,11.1.3 加密流(CryptoStream),加密流(CryptoStream类):继承Stream类,专用于处理被加密或者被解密的数据,而且只能用于对称加密。 Cr
17、yptoStream类 public CryptoStream(Stream stream,ICryptoTransform transform,CryptoStreamMode mode) stream:对其执行加密转换的流。 Transform:要对流执行的加密转换。 Mode:转换方式 ,加密时模式为对写访问模式解密时则为读访问模式。,11.1.3 对称加密相关类加密,加密时: 1、创建CryptoStrem实例。三个参数的含义。 2、将待加密数据数据写入crpytoStrem中。 3、获取加密后的数据 4、关闭流,11.1.3 加密流(CryptoStream),例如(P254): F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 数据 加密 数字签名
链接地址:https://www.31doc.com/p-3123304.html