欢迎来到天天文库
浏览记录
ID:43438399
大小:510.50 KB
页数:44页
时间:2019-10-08
《C#网络应用编程(第2版)第11章 人民邮电出版社》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、第11章数据加密与数字签名11.1数据加密与解密技术11.2加密解密的具体实现11.3网络应用中数据的加密与解密11.4Hash算法与数字签名第11章数据加密与数字签名(续)本章教学目的通过学习,使学生能够对数据加密和解密、常用的加密类、如何在网络中传递数据以及数字签名有一个清晰的认识。本章教学要求(1)掌握数据加密与解密的基本知识(2)掌握字符串、一般文件、XML文件加密和解密的具体实现。(3)掌握网络应用中数据的加密与解密的流程(4)掌握数字签名的概念和Hash算法,了解其他相关知识(5)掌握怎样进行简单的数字签名教学难点和重点加
2、密类和加密、解密方法、网络应用中数据的加密与解密11.1数据加密与解密技术密码学简介据记载,公元前400年,古希腊人发明了置换密码。在第二次世界大战期间,德国军方启用“恩尼格玛”密码机,密码学在战争中起着非常重要的作用。密码学可以达到以下目的:保密性:防止用户的标识或数据被读取数据完整性:防止数据被更改。。。。11.1数据加密与解密技术(续)1977年,美国国家标准局公布实施了“美国数据加密标准(DES)”,民间力量开始全面介入密码学的研究和应用中,采用的加密算法有DES、SHA等。RC2:由著名密码学家RonRivest设计的一种传
3、统对称分组加密算法3DES:基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高AES:Rijndael被选中成为将来的AES11.1数据加密与解密技术11.1.1对称加密及其相关类11.1.2不对称加密及其相关类11.1.3加密流11.1.4密钥容器11.1.1对称加密及其相关类对称加密(私钥加密)原理同一密钥既用于加密又用于解密。以块为单位加密数据(称为块密码),该方法一次加密一个数据块(数据多于规定的块大小时,将数据分块处理,数据少于规定的块大小时,将其扩充到块大小)。早期采用密码本(ECB)模式,即有一个密码对照表,将
4、被加密的数据按照对应关系解密即可,安全性较低。最突出的缺点是相同的原始数据加密后的结果也相同。改进后的算法是密码块链(CBC,CipherBlockChaining)模式,即使用私钥和初始化向量(IV,InitializationVector)共同加密。实现思路:用“IV”和“私钥”加密第一个纯文本块,每个后续纯文本块都在加密前先与前一个密码文本块进行按位“异或”运算,从而解决了ECB模式存在的安全问题,即:虽然原始数据相同,产生的加密后的数据也不会相同。11.1.1对称加密及其相关类(续)对称加密(私钥加密)特点优点:保密强度高,加
5、、解密速度快,适合加密大量数据。缺点:由于双方使用相同的密钥进行加密和解密。在网络传输中,如何传递密钥成为问题所在。如果攻击者截获了密钥,也就等于知道了如何解密数据。11.1.1对称加密及其相关类(续)实现对称加密(CBC模式,即“密钥+IV模式”)算法的类有6种:DESCryptoServiceProvider类:DES算法加密类TripleDESCryptoServiceProvider:TDES算法加密类RijndaelManaged:AES算法加密类AesManaged:AES算法加密类(.NETFramework3.5)RC
6、2CryptoServiceProvider:RC2算法加密类HMACSHA1:SHA1算法(哈希算法)加密类说明:使用IV的目的是为了防范穷举搜索而进行的攻击。11.1.1对称加密及其相关类(续)DESCryptoServiceProvider类:对采用数据加密标准(DES,DataEncryptionStandard)算法的加密服务提供程序(CSP)版本进行包装(密钥长度为64位),DES是美国1977年公布的加密标准,当时在各超市零售业、银行自动取款机、磁卡及IC卡、加油站、高速公路收费站等领域被广泛应用。说明:该算法如果不使
7、用IV,目前已经有多种破解方法(最快的破解速度据媒体报导是仅用了3天的时间就破解了),但是使用IV生成随机数配合加密后,破解就变得非常困难。11.1.1对称加密及其相关类(续)对采用3DES(三层数据加密标准)算法的加密服务提供程序(CSP)进行包装(密钥长度为128位到192位,以64位递增)。3DES对交换的信息进行3次叠代加密,比DES安全性高。常用属性和方法:名称解释BlockSize属性获取或设置加密操作的块大小,以位为单位Key属性获取或设置TripleDES算法的机密密钥IV属性获取或设置TripleDES算法的初始化向
8、量KeySize属性获取或设置TripleDES算法所用密钥的大小,以位为单位CreateEncryptor方法创建TripleDES加密器对象CreateDecryptor方法创建TripleDES解密器对象Gener
此文档下载收益归作者所有