常见的几种加密算法比较

一、加密的基本概念

“加密”,是一种限制对网络上传输数据的访问权的技术。原始数据(也称为明文,plaintext)被加密设备(硬件或软件)和**加密而产生的经过编码的数据称为密文(ciphertext)。将密文还原为原始明文的过程称为解密,它是加密的反向处理,但解密者必须利用相同类型的加密设备和**对密文进行解密。

数据存储和传输存在的风险:
常见的几种加密算法比较

加密的基本功能包括:
1.防止不速之客查看机密的数据文件;
2.防止机密数据被泄露或篡改;
3.防止特权用户(如系统管理员)查看私人数据文件;
4.使入侵者不能轻易地查找一个系统的文件。
数据加密是确保计算机网络安全的一种重要机制,虽然由于成本、技术和管理上的复杂性等原因,目前尚未在网络中普及,但数据加密的确是实现分布式系统和网络环境下数据安全的重要手段之一。
数据加密可在网络OSI七层协议(OSI是Open System Interconnect的缩写,意为开放式系统互联。国际标准组织(国际标准化组织)制定了OSI模型。这个模型把网络通信的工作分为7层,分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。)的多层上实现、所以从加密技术应用的逻辑位置看,有三种方式:
①链路加密:通常把网络层以下的加密叫链路加密,主要用于保护通信节点间传输的数据,加解密由置于线路上的密码设备实现。根据传递的数据的同步方式又可分为同步通信加密和异步通信加密两种,同步通信加密又包含字节同步通信加密和位同步通信加密。
②节点加密:是对链路加密的改进。在协议传输层上进行加密,主要是对源节点和目标节点之间传输数据进行加密保护,与链路加密类似.只是加密算法要结合在依附于节点的加密模件中,克服了链路加密在节点处易遭非法存取的缺点。
③端对端加密:网络层以上的加密称为端对端加密。是面向网络层主体。对应用层的数据信息进行加密,易于用软件实现,且成本低,但**管理问题困难,主要适合大型网络系统中信息在多个发方和收方之间传输的情况。
二、数据加密的应用

1.媒体加密:DRM
2.文件加密:文本加密、pdf、word
3.数据加密:ASP.NET(C#)中的数据加密
4.硬件加密:加密狗
三、加密技术发展趋势

①私用**加密技术与公开**加密技术相结合:鉴于两种密码*加密的特点,在实际应用中可以采用折衷方案,即结合使用DES/IDEA和RSA,以DES为”内核”,RSA为”外壳”,对于网络中传输的数据可用DES或IDEA加密,而加密用的**则用RSA加密传送,此种方法既保证了数据安全又提高了加密和解密的速度,这也是目前加密技术发展的新方向之一。
②寻求新算法:跳出以常见的迭代为基础的构造思路,脱离基于某些数学问题复杂性的构造方法。如刘尊全先生提出的刘氏算法,是一种基于**的公开***,它采用了随机性原理构造加解密变换,并将其全部运算控制隐匿于**中,**长度可变。它是采用选取一定长度的分割来构造大的搜索空间,从而实现一次非线性变换。此种加密算法加密强度高、速度快、计算开销低。
③加密最终将被集成到系统和网络中,例如IPV6协议就已有了内置加密的支持,在硬件方面,Intel公司正研制一种加密协处理器。它可以集成到微机的主极上。
四、加密技术的分类

加密类型可以简单地分为四种:
1.根本不考虑解密问题;
2.私用**加密技术:对称式加密(Symmetric Key Encryption):对称式加密方式对加密和解密使用相同的**。通常,这种加密方式在应用中难以实施,因为用同一种安全方式共享**很难。如:RC4、RC2、DES 和 AES 系列加密算法。
3.公开**加密技术:非对称**加密(Asymmetric Key Encryption):非对称**加密使用一组公共/私人**系统,加密时使用一种**,解密时使用另一种**。公共**可以广泛的共享和透露。当需要用加密方式向服务器外部传送数据时,这种加密方式更方便。如:RSA
4.数字证书。(Certificate):数字证书是一种非对称**加密,但是,一个组织可以使用证书并通过数字签名将一组公钥和私钥与其拥有者相关联。
五、加密算法的介绍

1.对称加密
对称加密算法用来对敏感数据等信息进行加密,常用的算法包括:
DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
3DES(Triple DES):是基于DES,对一块数据用三个不同的**进行三次加密,强度更高。
AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高。
AES与3DES的比较
常见的几种加密算法比较

2.非对称加密
RSA:由 RSA 公司发明,是一个支持变长**的公共**算法,需要加密的文件块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
常见的几种加密算法比较

ECC和RSA相比,在许多方面都有对绝对的优势,主要体现在以下方面:
抗攻击性强。相同的**长度,其抗攻击性要强很多倍。
计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。
存储空间占用小。ECC的**尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。
带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。
下面两张表示是RSA和ECC的安全性和速度的比较。
常见的几种加密算法比较

RSA和ECC安全模长得比较
常见的几种加密算法比较

3.散列算法
散列是信息的提炼,通常其长度要比信息小得多,且为一个固定长度。加密性强的散列一定是不可逆的,这就意味着通过散列结果,无法推出任何部分的原始信息。任何输入信息的变化,哪怕仅一位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即找不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以用于验证信息是否被修改。
单向散列函数一般用于产生消息摘要,**加密等,常见的有:
MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的一种单向散列算法,非可逆,相同的明文产生相同的密文。
SHA(Secure Hash Algorithm):可以对任意长度的数据运算生成一个160位的数值;
对称与非对称算法比较
以上综述了两种加密方法的原理,总体来说主要有下面几个方面的不同:
在管理方面:公钥密码算法只需要较少的资源就可以实现目的,在**的分配上,两者之间相差一个指数级别(一个是n一个是n2)。所以私钥密码算法不适应广域网的使用,而且更重要的一点是它不支持数字签名。
在安全方面:由于公钥密码算法基于未解决的数学难题,在**上几乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能**的,但从计算机的发展角度来看。公钥更具有优越性。
从速度上来看:AES的软件实现速度已经达到了每秒数兆或数十兆比特。是公钥的100倍,如果用硬件来实现的话这个比值将扩大到1000倍。
六、加密算法的选择

1.由于非对称加密算法的运行速度比对称加密算法的速度慢很多,当我们需要加密大量的数据时,建议采用对称加密算法,提高加解密速度。
2.对称加密算法不能实现签名,因此签名只能非对称算法。
3.由于对称加密算法的**管理是一个复杂的过程,**的管理直接决定着他的安全性,因此当数据量很小时,我们可以考虑采用非对称加密算法。
4.在实际的操作过程中,我们通常采用的方式是:采用非对称加密算法管理对称算法的**,然后用对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,又实现了安全方便管理**的优点。
5.如果是 RSA建议采用1024位的数字,ECC建议采用160位,AES采用128为即可。