当前位置:
文档之家› 网络数据加密与解密PPT课件
网络数据加密与解密PPT课件
8
TripleDESCryptoServiceProvider类常用的 属性和方法
名称
解释
BlockSize属性
获取或设置加密操作的快大小,以位为单位
Key属性 IV属性
获取或设置TripleDES算法的机密密钥 获取或设置TripleDES算法的初始化向量
KeySize属性
获取或设置TripleDES算法所用密钥的大小,以位 为单位
.NET类库使用的私钥算法有RC2、DES、 TripleDES和Rijndael。这些算法通过加密将n字 节的输入块转换为加密字节的输出块。如果要 加密或解密字节序列,必须逐块进行。
3
6.1 对称加密(续)
为了保证数据的安全,.NET基类库中提供 的私钥算法类使用称作密码块链(CBC,Cipher Block Chaining)的链模式,算法使用一个密钥 和一个初始化向量(IV,Initialization Vector) 对数据执行加密转换。密钥和初始化向量IV一起 决定如何加密数据,以及如何将数据解密为原始 数据。通信双方都必须知道这个密钥和初始化向 量才能够加密和解密数据。
128-256 (每64位递增)
RC2加密算法 Rijndael加密算法
128-192
三重DES加密算
(每64位递增)
法
7
TripleDES加密算法介绍
TripleDES使用DES算法的三次连续迭代, 支持从128位到192位(以64位递增)的密钥长度, 其安全性比DES更高。DES的含义是Data Encryption Standard,是美国1977年公布的一种 数据加密标准,DES算法在各超市零售业、银行 自动取款机、磁卡及IC卡、加油站、高速公路收 费站等领域被广泛应用,以此来实现关键数据的 保密,如信用卡持卡人的PIN的加密传输,IC卡 的认证、金融交易数据包的MAC校验等,均用 到DES算法。DES算法具有非常高的安全性,到 目前为止,除了用穷举搜索法对DES算法进行攻 击外,还没有发现更有效的办法。
6
四种对称加密类的主要特点
类 DESCryptoServiceProvider RC2CryptoServiceProvider RijndaelManaged
TripleDESCryptoServiceProvider
可用密钥长度 (bit)
64
加密算法 DES加密算法
40-128 (每8位递增)
CreateEncryptor方法 创建TripleDES加密器对象
CreateDecryptor方法 创建TripleDES解密器对象
GenerateIV方法
生成用于TripleDES算法的随机初始化向量IV
GenerateKey方法 生成用于TripleD续)
在.NET库的System.Security.Cryptography 命名空间中,包含多种加密数据的类,涉及多种 加密算法。加密方法主要分为两大类:对称加密 和不对称加密。
2
6.1 对称加密
对称加密也称为私钥加密,采用私钥算法, 加密和解密数据使用同一个密钥。
私钥算法以块为单位加密数据,一次加密 一个数据块。
4
6.1 对称加密(续)
对称加密算法的优点是保密强度高,加、解 密速度快,适合加密大量数据。攻击者如果对加 密后的数据进行破译,惟一的办法就是对每个可 能的密钥执行穷举搜索。而采用这种加密技术, 即使使用最快的计算机执行这种搜索,耗费的时 间也相当长。如果使用较大的密钥,破译将会更 加困难。
5
6.1 对称加密(续)
CryptoStream对象的用法和其它流的用法相似,这 里不再重复介绍。但是要注意,完成CryptoStream对象 的使用后,不要忘了调用Close方法关闭该对象。Close方 法会刷新流并使所有剩余的数据块都被CryptoStream对 象处理。由于在调用Close方法前对流的读写操作有可能 会出现异常,所以为确保流处理能够正常关闭,一般在 try/catch语句的finally块中调用Close方法。
在.NET Framework中,公共语言运行时 CLR(Common Language Runtime)使用面向 流的设计实现对称加密,该设计的核心是 CryptoStream,实现CryptoStream的任何被加 密的对象都可以和实现Stream的任何对象链接起 来。实现对称加密算法的类有四种: DESCryptoServiceProvider RC2CryptoServiceProvider RijndaelManaged TripleDESCryptoServiceProvider
为了使用流进行加密解密处理,.NET Framework还 提供了CryptoStream类,该类用于定义将数据流链接到 加密转换的流。实现CryptoStream的任何加密对象均可 以和实现Stream的任何对象链接起来,因此一个对象的 流式处理输出可以馈送到另一个对象的输入,而不需要 分别存储中间结果,即不需要存储第一个对象的输出。
textBoxKey textBoxEncrypt textBoxDecrypt
10
例.使用TripleDES加密算法对输入的字符串 进行加密,并输出加密后的字符串和解密后 的结果。
(1) 新建一个名为TdesEncryptExample的 Windows应用程序,修改Form1.cs为 FormTdesEncrypt.cs,设计界面如下图所示。
textBoxInput buttonOK
第6章 网络数据加密与解密
6.1 对称加密 6.2 不对称加密 6.3 通过网络传递加密数据 6.4 Hash算法与数字签名
1
数据在网络传输过程中的保密性是网络安全 中重点要考虑的问题之一。由于通过网络传递数 据是在不安全的信道上进行传输,因此通信双方 要想确保任何可能正在侦听的人无法理解通信的 内容,而且希望确保接收方接收的信息没有在传 输期间被任何人修改,最好的办法就是在传输数 据前对数据进行加密,接收方接收到加密的数据 后再进行解密处理,从而保证数据的安全性。