- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据的完整性验证:报文鉴别技术 Hash函数 也称消息摘要(MD:Message Digest),将可变长度的报文M作为单向散列函数的输入,然后得出一个固定长度的标志 H(M),称为Hash值(哈希值) 表达式:MD=H(M) Hash算法 MD算法(MD5,128位) SHA算法(SHA-1,160位) HMAC算法 报文鉴别码 MAC (Message Authentication Code) 用一个密钥生成的一个小的数据块追加在报文的后面。 表达式:MAC = F(K,M) 数据的不可抵赖性:数字签名技术 数字签名就是为了达到签名的效果,附加在数据单元上的一些数据。 数字签名的要素: 签名信息能被接收者读取 发送者事后不能抵赖(信息内容及签名事实) 接受者不能伪造签名 数字签名的实现 产生信息原文的摘要 用私钥对摘要进行加密(签名) 将原文和签名一起传输 接收者用发送者的公钥解密签名得到摘要 产生信息原文的摘要并与上述签名摘要比较 数字签名技术示意图 6.2 .NET密码术编程基础 System.Security.Cryptography /zh-cn/library/system.security.cryptography.aspx 提供包括安全的数据加密与解密、确保数据的完整性,以及处理数字签名和证书等加密服务 核心加密类分为三层,如右图 6.2.1 哈希(散列)算法及编程 哈希函数是现代密码系统的基础。 哈希函数将任意长度的二进制字符串映射为固定长度的小二进制字符串(称为哈希值/散列值)。 哈希值用作表示大量数据的固定大小的唯一值。 哈希函数通常用于数字签名和保持数据完整性等。 哈希函数的特点: 在计算时不可能将两个不同的输入通过哈希算法获取相同的值。 如果相应的数据匹配,则两个数据集的哈希应该匹配。 数据的少量更改会在哈希值中产生不可预知的大量更改。 哈希算法的编程实现 .NET 哈希算法类都继承自HashAlgorithm抽象类。 类 说明 KeyedHashAlgorithm 显示所有加密哈希算法实现均必须从中派生的抽象类。 MD5CryptoServiceProvider 使用加密服务提供程序 (CSP) 提供的实现,计算输入数据的 MD5 哈希值。 SHA1CryptoServiceProvider 使用加密服务提供程序 (CSP) 提供的实现计算输入数据的 SHA1 哈希值。 MD5 表示?MD5?哈希算法的所有实现均从中继承的抽象类。 RIPEMD160 表示 MD160 哈希算法的所有实现均从中继承的抽象类。 SHA1 计算输入数据的?SHA1?哈希值。 SHA256 计算输入数据的?SHA256?哈希值。 SHA384 计算输入数据的?SHA384?哈希值。 SHA512 计算输入数据的?SHA512?哈希值。 哈希(散列)编程实例 //获取字符编码 byte[] aaa = Encoding.UTF8.GetBytes(str); //使用MD5CryptoServiceProvider类创建md5对象 MD5CryptoServiceProvider md = new MD5CryptoServiceProvider(); //也可以使用MD5类创建md5对象 //MD5 md = MD5.Create(); //计算md5值 byte[] bbb = md.ComputeHash(aaa); //显示处理 StringBuilder sb = new StringBuilder(); foreach (byte tmp in bbb) { sb.Append(tmp.ToString(X2)); } return sb.ToString(); 6.2.2 对称加密算法及编程 特点:算法公开、计算量小、加密速度快、加密效率高。 主要算法:DES、3DES、RC5、AES等 分组密码的工作模式 电子密码本 (electronic codebook mode,ECB ) 密码分组链接 (cipher block chaining, CBC ) 密码反馈 (cipher feedback, CFB) 输出反馈 (output feedback, OFB) 计数器 (counter, CTR ) 算法工作模式中的初始向量 IV SymmetricAlgorithm类 (留意CBC,Key,IV) /zh-cn/library/system.security.cryptography.symmetricalgorithm(v=VS.80).aspx 对称加密的主要算法(一) DEA/DES 数据加密算法(Data Encryption Algorithm,DEA),数据加密标准(D
文档评论(0)