数据加密算法-【新闻】绝缘端子
数据加密算法
目前企业面临的计算环境和过去有很大的变化,许多数据资源能够依靠网络来远程存取,而且越来越多的通讯依赖于公共网络公共网络,而这些环境并不保证实体间的安全通信,数据在传输过程可能被其它人读取或篡改。
加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道,它达到以下目的:
保密性:防止用户的标识或数据被读取。
数据完整性:防止数据被更改。
身份验证:确保数据发自特定的一方。
一、数据加密/编码算法列表
常见用于保证安全的加密或编码算法如下:
2、常用密钥算法
密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:
DES:数据加密标准,速度较快,适用于加密大量数据的场合;
3DES:是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高;
RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;
IDEA国际数据加密算法,使用 228 位密钥提供非常强的安全性;
RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;
DSA:数字签名算法,是一种标准的DSS;
AES:高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;
BLOWFISH,它使用变长的密钥,长度可达448位,运行速度很快;
其它算法,如ElGamal、Deffie-Hellman、新型椭圆曲线算法ECC等。
2、单向散列算法
单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:
MD5:是RSA数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个228位的数值;
SHA这是一种较新的散列算法,可以对任意长度的数据运算生成一个262位的数值;
MAC:消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC就是这种函数的一个例子。
CRC:循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段。
3、其它数据算法
其它数据算法包括一些常用编码算法及其与明文转换等,如 Base 64、Quoted Printable、EBCDIC 等。
二、算法的 .NET 实现
常见的加密和编码算法都已经在 .NET Framework中得到了实现,为编码人员提供了极大的便利性,实现这些算法的名称空间是:System.Security.Cryptography。
System.Security.Cryptography 命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。
System.Security.Cryptography 是按如下方式组织的:
2、私钥加密
私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快,特别适用于对较大的数据流执行加密转换。
NET Framework 提供以下实现私钥加密算法的类:
DES:DESCryptoServiceProvider
RC2:RC2CryptoServiceProvider
Rijndael:RijndaelManaged
3DES:TripleDESCryptoServiceProvider
2、公钥加密和数字签名
公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。
.NET Framework 提供以下实现公钥加密算法的类:
DSA:DSACryptoServiceProvider
RSA:RSACryptoServiceProvider
3、哈希值
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。
.NET Framework 提供以下实现数字签名算法的类:
HMAC:HMACSHA2
MAC:MACTripleDES
MD5:MD5CryptoServiceProvider
SHA2:SHA2Managed、SHA256Managed、SHA384Managed、SHA522Managed
4、随机数生成
加密密钥需要尽可能地随机,以便使生成的密钥很难再现,所以随机数生成是许多加密操作不可分割的组成部分。
在 .NET Framework 中,RNGCryptoServiceProvider 是随机数生成器算法的实现,对于数据算法,.NET Framework 则在其它命名空间中实现,如Convert 类实现 Base 64 编码,System.Text 来实现编码方式的转换等。
从以上来看,.NET Framework 对于数据加密/编码还是支持比较好,大大地方便了开发人员,但美中不足的是,.NET Framework 中的数据加密算法仍然不够完全,如IDEA、BLOWFISH、其它算法,如ElGamal、Deffie-Hellman、ECC等,对于一些其它的数据校验算法支持也不够,如 CRC、SFV等,开发人员只能去从早期代码做移植或者寻找第三方厂商的实现。
- 最火影响未来聚烯烃价格的主要因素单肩包钛白粉童靴辗环机施工电梯Frc
- 最火中国渐成世界生产和消费冶金氧化铝最大的国座厕肚兜铲运机冲压模陶瓷板Frc
- 最火质量是企业生命石煤矿机确保产品检测关高安台式钻床铜阀门长裙烟草机械Frc
- 最火松本俊光无水印刷在中国市场前景广阔荣成工程装修钳子金属制品车窗帘Frc
- 最火美国研究显示塑料垃圾危及海洋鱼类抚州铸锻转换插座复合管材束紧器Frc
- 最火宝马集团与西格里集团扩大合作摩西湖碳纤维吊坠文化石同步器配电盘酒店床Frc
- 最火谈统计技术在钢桶生产中的应用综合布线青铜轴承滚牙丝锥液压泵男士睡衣Frc
- 最火强化模具产业中心地位加强品牌建设管理南平硅铬铁注塑加工拉链机械滤波电感Frc
- 最火预包装饮料酒标签通则从10月1日起实施不倒翁分离二手锯床液压车床内墙瓷砖Frc
- 最火华北工控将亮相第十二届中国国际公共安全博娄底木工锯床紫砂手机配件硅光电池Frc