数据加密算法

数据加密算法

目前企业面临的计算环境和过去有很大的变化,许多数据资源能够依靠网络来远程存取,而且越来越多的通讯依赖于公共网络公共网络(如 Internet ),而这些环境并不保证实体间的安全通信,数据在传输过程可能被其它人读取或篡改。

加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道,它达到以下目的:

保密性:防止用户的标识或数据被读取。

数据完整性:防止数据被更改。

身份验证:确保数据发自特定的一方。

一、数据加密/编码算法列表

常见用于保证安全的加密或编码算法如下:

1、常用密钥算法

密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:

DES (Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;

DES 是一种分组密码,是两种基本的加密组块替 代和换位的细致而复杂的结合,它通过反复依次应用这两项技术来提高其强度,经过共16轮的替代和换位的变换后,使得密码分析者无法获得该算法一般特性以外 更多的信息。对于DES 加密,除了尝试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。

3DES (Triple DES):是基于DES ,对一块数据用三个不同的密钥进行三次加密,强度更高;

RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;

IDEA (International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;

IDEAInternation Data Encryption Algorithm )算法又叫国际数据加密算法.相对于DES 的56位密钥它使用128位密钥.每次加密一个64位的数据块。IDEA 算法的安全性相对DES 算法有很大的提高。其密钥是128位,在穷举攻击的情况下。需要经过2128次加密才能恢复出密钥,假设一个芯片能每秒产生和运行lO 亿个密钥,它将检测1013年。且被认为循环四次就可以抵御差分密码分析。因此IDEA 是非常安全的.而且它比DES 在软件实现上快得多。 IDEA 是一个迭代分组密码,分组长度为64比特,密钥长度为128比特。IDEA 的软件实现速度与DES 差不多。但硬件实现速度要比DES 快得多,快将近10倍。它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8圈迭代。每圈迭代都是4个子块彼此间以及16比特的子密钥进行异或,MOD2加运算,MOD2+1乘运算。任何一轮迭代第三和第四子块互换。该算法

所需要的" 混淆" 可通过连续使用三个" 不相容" 的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的" 扩散" 。

RSA :由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;

DSA (Digital Signature Algorithm):数字签名算法,是一种标准的 DSS (数字签名标准); AES (Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;

BLOWFISH ,它使用变长的密钥,长度可达448位,运行速度很快;

其它算法,如ElGamal 、Deffie-Hellman 、新型椭圆曲线算法ECC 等。

2、单向散列算法

单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:

MD5(Message Digest Algorithm 5):是RSA 数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值;

SHA (Secure Hash Algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;

MAC (Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC (用于消息认证的密钥散列法)就是这种函数的一个例子。

CRC (Cyclic Redundancy Check ):循环冗余校验码,CRC 校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。

3、其它数据算法

其它数据算法包括一些常用编码算法及其与明文(ASCII 、Unicode 等)转换等,如 Base 64、Quoted Printable、EBCDIC 等。

二、算法的 .NET 实现

常见的加密和编码算法都已经在 .NET Framework中得到了实现,为编码人员提供了极大的便利性,实现这些算法的名称空间是:System.Security.Cryptography 。

System.Security.Cryptography 命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。

System.Security.Cryptography 是按如下方式组织的:

1、私钥加密

私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。

.NET Framework 提供以下实现私钥加密算法的类:

DES :DESCryptoServiceProvider

RC2:RC2CryptoServiceProvider

Rijndael (AES ):RijndaelManaged

3DES :TripleDESCryptoServiceProvider

2、公钥加密和数字签名

公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

.NET Framework 提供以下实现公钥加密算法的类:

DSA :DSACryptoServiceProvider

RSA :RSACryptoServiceProvider

3、哈希(Hash )值

哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。

.NET Framework 提供以下实现数字签名算法的类:

HMAC :HMACSHA1 (HMAC 为一种使用密钥的 Hash 算法)

MAC :MACTripleDES

MD5:MD5CryptoServiceProvider

SHA1:SHA1Managed 、SHA256Managed 、SHA384Managed 、SHA512Managed

4、随机数生成

加密密钥需要尽可能地随机,以便使生成的密钥很难再现,所以随机数生成是许多加密操作不可分割的组成部分。

在 .NET Framework 中,RNGCryptoServiceProvider 是随机数生成器算法的实现,对于数据算法,.NET Framework 则在其它命名空间中实现,如 Convert 类实现 Base 64 编码,System.Text 来实现编码方式的转换等。

从以上来看,.NET Framework 对于数据加密/编码还是支持比较好,大大地方便了开发人员,但美中不足的是,.NET Framework 中的数据加密算法仍然不够完全,如 IDEA 、BLOWFISH 、其它算法,如ElGamal 、Deffie-Hellman 、ECC 等,对于一些其它的数据校验算法支持也不够,如 CRC 、SFV 等,开发人员只能去从早期代码做移植或者寻找第三方厂商的实现。

数据加密算法

目前企业面临的计算环境和过去有很大的变化,许多数据资源能够依靠网络来远程存取,而且越来越多的通讯依赖于公共网络公共网络(如 Internet ),而这些环境并不保证实体间的安全通信,数据在传输过程可能被其它人读取或篡改。

加密将防止数据被查看或修改,并在原本不安全的信道上提供安全的通信信道,它达到以下目的:

保密性:防止用户的标识或数据被读取。

数据完整性:防止数据被更改。

身份验证:确保数据发自特定的一方。

一、数据加密/编码算法列表

常见用于保证安全的加密或编码算法如下:

1、常用密钥算法

密钥算法用来对敏感数据、摘要、签名等信息进行加密,常用的密钥算法包括:

DES (Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合;

DES 是一种分组密码,是两种基本的加密组块替 代和换位的细致而复杂的结合,它通过反复依次应用这两项技术来提高其强度,经过共16轮的替代和换位的变换后,使得密码分析者无法获得该算法一般特性以外 更多的信息。对于DES 加密,除了尝试所有可能的密钥外,还没有已知的技术可以求得所用的密钥。

3DES (Triple DES):是基于DES ,对一块数据用三个不同的密钥进行三次加密,强度更高;

RC2和 RC4:用变长密钥对大量数据进行加密,比 DES 快;

IDEA (International Data Encryption Algorithm)国际数据加密算法,使用 128 位密钥提供非常强的安全性;

IDEAInternation Data Encryption Algorithm )算法又叫国际数据加密算法.相对于DES 的56位密钥它使用128位密钥.每次加密一个64位的数据块。IDEA 算法的安全性相对DES 算法有很大的提高。其密钥是128位,在穷举攻击的情况下。需要经过2128次加密才能恢复出密钥,假设一个芯片能每秒产生和运行lO 亿个密钥,它将检测1013年。且被认为循环四次就可以抵御差分密码分析。因此IDEA 是非常安全的.而且它比DES 在软件实现上快得多。 IDEA 是一个迭代分组密码,分组长度为64比特,密钥长度为128比特。IDEA 的软件实现速度与DES 差不多。但硬件实现速度要比DES 快得多,快将近10倍。它将64比特的数据分成4个子块,每个16比特,令这四个子块作为迭代第一轮的输出,全部共8圈迭代。每圈迭代都是4个子块彼此间以及16比特的子密钥进行异或,MOD2加运算,MOD2+1乘运算。任何一轮迭代第三和第四子块互换。该算法

所需要的" 混淆" 可通过连续使用三个" 不相容" 的群运算于两个16比特子块来获得,并且该算法所选择使用的MA-(乘加)结构可提供必要的" 扩散" 。

RSA :由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件快的长度也是可变的;

DSA (Digital Signature Algorithm):数字签名算法,是一种标准的 DSS (数字签名标准); AES (Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,目前 AES 标准的一个实现是 Rijndael 算法;

BLOWFISH ,它使用变长的密钥,长度可达448位,运行速度很快;

其它算法,如ElGamal 、Deffie-Hellman 、新型椭圆曲线算法ECC 等。

2、单向散列算法

单向散列函数一般用于产生消息摘要,密钥加密等,常见的有:

MD5(Message Digest Algorithm 5):是RSA 数据安全公司开发的一种单向散列算法,MD5被广泛使用,可以用来把不同长度的数据块进行暗码运算成一个128位的数值;

SHA (Secure Hash Algorithm)这是一种较新的散列算法,可以对任意长度的数据运算生成一个160位的数值;

MAC (Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息。HMAC (用于消息认证的密钥散列法)就是这种函数的一个例子。

CRC (Cyclic Redundancy Check ):循环冗余校验码,CRC 校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中。占用系统资源少,用软硬件均能实现,是进行数据传输差错检测地一种很好的手段(CRC 并不是严格意义上的散列算法,但它的作用与散列算法大致相同,所以归于此类)。

3、其它数据算法

其它数据算法包括一些常用编码算法及其与明文(ASCII 、Unicode 等)转换等,如 Base 64、Quoted Printable、EBCDIC 等。

二、算法的 .NET 实现

常见的加密和编码算法都已经在 .NET Framework中得到了实现,为编码人员提供了极大的便利性,实现这些算法的名称空间是:System.Security.Cryptography 。

System.Security.Cryptography 命名空间提供加密服务,包括安全的数据编码和解码,以及许多其他操作,例如散列法、随机数字生成和消息身份验证。

System.Security.Cryptography 是按如下方式组织的:

1、私钥加密

私钥加密又称为对称加密,因为同一密钥既用于加密又用于解密。私钥加密算法非常快(与公钥算法相比),特别适用于对较大的数据流执行加密转换。

.NET Framework 提供以下实现私钥加密算法的类:

DES :DESCryptoServiceProvider

RC2:RC2CryptoServiceProvider

Rijndael (AES ):RijndaelManaged

3DES :TripleDESCryptoServiceProvider

2、公钥加密和数字签名

公钥加密使用一个必须对未经授权的用户保密的私钥和一个可以对任何人公开的公钥。用公钥加密的数据只能用私钥解密,而用私钥签名的数据只能用公钥验证。公钥可以被任何人使用;该密钥用于加密要发送到私钥持有者的数据。两个密钥对于通信会话都是唯一的。公钥加密算法也称为不对称算法,原因是需要用一个密钥加密数据而需要用另一个密钥来解密数据。

.NET Framework 提供以下实现公钥加密算法的类:

DSA :DSACryptoServiceProvider

RSA :RSACryptoServiceProvider

3、哈希(Hash )值

哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希值可以检验数据的完整性。

.NET Framework 提供以下实现数字签名算法的类:

HMAC :HMACSHA1 (HMAC 为一种使用密钥的 Hash 算法)

MAC :MACTripleDES

MD5:MD5CryptoServiceProvider

SHA1:SHA1Managed 、SHA256Managed 、SHA384Managed 、SHA512Managed

4、随机数生成

加密密钥需要尽可能地随机,以便使生成的密钥很难再现,所以随机数生成是许多加密操作不可分割的组成部分。

在 .NET Framework 中,RNGCryptoServiceProvider 是随机数生成器算法的实现,对于数据算法,.NET Framework 则在其它命名空间中实现,如 Convert 类实现 Base 64 编码,System.Text 来实现编码方式的转换等。

从以上来看,.NET Framework 对于数据加密/编码还是支持比较好,大大地方便了开发人员,但美中不足的是,.NET Framework 中的数据加密算法仍然不够完全,如 IDEA 、BLOWFISH 、其它算法,如ElGamal 、Deffie-Hellman 、ECC 等,对于一些其它的数据校验算法支持也不够,如 CRC 、SFV 等,开发人员只能去从早期代码做移植或者寻找第三方厂商的实现。


相关内容

  • 分组密码理论与技术综述
  • 东北石油大学研究生作业 东北石油大学(硕士)研究生 课 程 名 称:通信网安全理论与技术 任 课 教 师:陈雪松 开课学年/开课学期:2011-2012学年度/第2学期 学 时 / 学 分:32学时/2学分 所在教学学院:电气信息工程学院 专 业 名 称:通信与信息系统 学 号/姓 名:赵勇 教师评 ...

  • 浅析信息加密技术
  • 浅析信息加密技术 张岭松 (天津轻工职业技术学院中国 天津300380) 引言 随着全球经济一体化的到来,信息技术飞速发展,信息传输的途径越来越依靠计算机网络,也就是互联网.人们生活的方方面面都与互联网紧密相连,例如工作学习资料的交流.购物.娱乐等等,它改变了人们的生活面貌,促进了社会的和谐发展.但 ...

  • 信息安全保密期末考试复习
  • 计科 期末考试复习 <信息安全与保密>课程 期末 考试试卷( B 卷) 考试专业班级计算机科学与技术考试形式 闭卷 考试类型 考查 考试时间 120 分钟 题号 分值 一. 一 二 三 四 五 六 七 总分 26 38 10 10 16 100 填空题,请把答案填写在答题纸上.(每空1分 ...

  • ★毕业论文设计范文(格式+附件)
  • 益阳职业技术学院 高 职 毕 业 论 文 ( 设 计) 题目: 因特网电子商务中加密技术的研究 姓 班 名: 级: 张三 2009122 机电与电子工程系 模具设计与制造 李四 2012 年 05 月 所属系部: 专 业: 指导教师: 完成日期: 1 目 录 摘要 ················· ...

  • 无线局域网安全技术白皮书
  • 无线局域网的安全 文档密级 无线局域网的安全 无线局域网(WLAN)具有安装便捷.使用灵活.经济节约.易于扩展等有线网络无法比拟的优点,因此无线局域网得到越来越广泛的使用.但是由于无线局域网信道开放的特点,使得攻击者能够很容易的进行窃听,恶意修改并转发,因此安全性成为阻碍无线局域网发展的最重要因素. ...

  • 4网上支付与安全交易(题0705)
  • 第五章网上支付与安全交易 一.单选题(4个选项,只能有一个正确答案)1. 电子货币().(A) A .是指用一定金额的现金或存款从发行者处兑换并获得代表相同金额的数据B .是指用一定金额的资金或账款从发行者处兑换并获得代表相同金额的数据C .不具有匿名性D .不可兑换成现金2. 电子货币发行和运行的 ...

  • 数字签名技术
  • 广东海洋大学寸金学院 课程名称:网络安全技术 论文题目:数字签名方案的设计或分析 考查课论文 系 别: 信息技术系 专 业: 信息管理与信息系统 班 级: 1班 姓 名: 张伟兴 学号: [1**********]31 任课老师: 陈瑞志 指导教师: 日 期:2015年 5 月 27 日 教务处制 ...

  • 电子商务安全技术措施
  • 电子商务安全技术措施 电子商务的安全性策略可分为两大部分:一部分是计算机网络安全,第二部分是商务交易安全.电子商务中的安全性技术主要有以下几种: 1.数据加密技术.对数据进行加密是电子商务系统最基本的信息安全防范措施.其原理是利用加密算法将信息明文转换成按一定加密规则生成的密文后进行传输,从而保证数 ...

  • 网络安全技术试题
  • 网络安全技术考试试卷 一.单选题 1.Windows NT 和Windows 2000系统能设置为在几次无效登录后锁定帐号, 这可以防止 B . A. 木马 B. 暴力攻击 C. IP欺骗 D. 缓存溢出攻击 2.在以下认证方式中,最常用的认证方式是 A . A. 基于账户名/口令认证 B. 基于摘 ...