数据加密的种类

敏感数据应得到保护,使未授权的用户不能读取它们。这对于在网络中传送的数据和存储在某处的数据都有效。可以用对称或不对称密钥来加密这些数据。

在对称加密中,可以使用同一个密钥进行加密和解密。但在不对称的加密中,加密和解密使用不同的密钥:公钥/私钥。如果使用一个公钥进行加密,就应使用对应的私钥进行解密,而不是使用公钥解密。同样,如果使用一个私钥加密,就应使用对应的公钥解密,而不是使用私钥解密。

公钥/私钥总是成对创建。公钥可以由任何人使用,甚至可以放在Web站点上,但私钥必须安全地加锁。下面看看使用公钥和私钥的例子。

如果AliceBob发了一封电子邮件,Alice希望能保证除了Bob外,其他人都不能阅读该邮件,所以使用Bob的公钥。信息是使用Bob的公钥加密的。Bob打开该邮件,并使用他秘密存储的私钥解密。这种方式可以保证除了Bob外,其他人都不能阅读Alice的邮件。

但这还有一个问题:Bob不能确保邮件是Alice发送来的。Eve可以使用Bob的公钥加密发送给Bob的邮件。我们把这个规则扩展一下。下面再次从AliceBob发电子邮件开始。在Alice使用Bob的公钥加密邮件之前,她添加了自己的签名,再使用自己的私钥加密该签名。然后使用Bob的公钥加密由口件。这样就保证了除Bob外,其他人都不能阅读该邮件。在Bob解密邮件时,检期到一个加密的签名。这个签名可以使用Alice的公钥来解密。而Bob可以访问Alice的公钥,因为这个密钥是公钥。在解密了签名后,Bob就可以确定是Alice发送了电子邮件。

使用对称密钥的加密和解密算法比使用非对称密钥快得多。对称密钥的问题是密钥必须以安全的方式互换。在网络通信中,一种方式是先使用非对称的密钥进行互换,再使用对称密钥加密在线上发送的数据。

.NET Framework中,可以使用System.Security.Cryptography命名空间中的类来加密。它实现了几个对称和非对称算法。有几个不同的算法类用于不同的目的。.NET 3.5中的一些新类以Cng作为前缀或后缀。Cng表示Cryptography Next Generation,用于Windows VistaWindows Server 2008。这个API可以使用基于提供程序的模型,编写独立于算法的程序。如果使用的是Windows Server 2003,就需要注意使用了什么加密类。

下表列出了System.Security.Cryptography命名空间中的加密类及其功能。没有CngManagedCryptoServiceProvider后缀的类是抽象基类,例如MD5Managed后缀表示这个算法用托管代码实现,其他类可能封装了内部的Windows API调用。CyptoService-Provider后缀用于实现了抽象基类的类,Cng后缀用于利用新Cryptography CNG API的类,它只能用于Windows VistaWindows Server 2008

类别

说明

散列

MD5, MD5Cng

SHA1, SHA1Managed

SHA1Cng

SHA256, SHA256Managed,

SHA256Cng

SHA384SHA384Managed,

SHA384Cng

SHA512, SHA512Managed,

SHA512Cng

散列算法的目标是从任意长度的二进制字符串中创建一个长度固定的散列值,这些算法和数字签名一起用于保证数据的完整性。如果再次散列相同的二进制字符串,会返回相同的散列结果。MD5(Message Digest Algonthm5)是由RSA实验室开发的,比SHAI快,SHA1在抵御暴力攻击方面比较强太。SHA算法是由美国国家安全局(NSA)设计的。MD5使用128位的散列值,SHA1使用160位。其他SHA算法在其名称中包含了散列长度。SHA512是这些算法中最强大的,其散列长度为512位,也是最慢的

对称

DES, DESCryptoServiceProvider

TripleDES,

TripleDESCryptoServtceProvider

Aes, AesCryptoServiceProvidert

AesManged

RC2, RC2CyptoSerrviceProvider

Rijandel, RijandelManaged

对称密钥算法使用相同的密钥进行数据的加密和解密。DES(Data Encryption Standard)现在认为是不安全的,因为它只使用56位的密钥。可以在不超过24小时的时间内破解。Triple-DESDES的继任者,其密钥的长度是168位,但它提供的有效安全性只有112位。AES(Advanced EncryptionStandard)的密钥长度是128192256位。Rijandel非常类似于AES。只是在密钥长度方面的选项较多。AES是美国政府采用的加密标准。

非对称

DSA, DSACrytoServicerProvider

ECDsa, ECDsaCng

ECDiffieHellman,

ECDiffieHellmanCng

RSA, RSACryptoServicerPTovider

非对称算法使用不同的密钥进行加密和解密。RSA(RivestShamir, Adleman)是第一个用于签名和加密的算法。这个算法广泛用于电子商务协议。DSA(Digital Signature Algoritlm)是数字签名的一个美国联邦政府标准。ECDSA(EllipticCurve DSA)ECDiffieHellm使用基于椭圆曲线组的算法。这些算法比较安全,且使用较短的密钥长度。例如,DSA的密钥长度为1024位,其安全性类似于160位的ECDSA。因此,ECDSA比较快。ECDiffieHellm算法于以安全的方式在公共信道中互换私钥

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值