常⽤数据加密算法
对称加密
指加密和解密使⽤相同密钥加密算法。对称加密算法的优点在于加解密的⾼速度和使⽤长密钥时的难破解性。
假设两个⽤户需要使⽤对称加密⽅法加密然后交换数据,则⽤户最少需要2个密钥并交换使⽤,如果企业内⽤户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的⽣成和分发将成为企业信息部门的恶梦。
对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每⼀个持有密钥的⼈都保守秘密是不可能的,他们通常会有意⽆意的把密钥泄漏出去——如果⼀个⽤户使⽤的密钥被⼊侵者所获得,⼊侵者便可以读取该⽤户密钥加密的所有⽂档,如果整个企业共⽤⼀个加密密钥,那整个企业⽂档的保密性便⽆从谈起。
常见的对称加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6和AES
⾮对称加密
指加密和解密使⽤不同密钥的加密算法,也称为公私钥加密。假设两个⽤户要加密交换数据,双⽅交换公钥,使⽤时⼀⽅⽤对⽅的公钥加密,另⼀⽅即可⽤⾃⼰的私钥解密。
如果企业中有n个⽤户,企业需要⽣成n对密钥,并分发n个公钥。由于公钥是可以公开的,⽤户只要保管好⾃⼰的私钥即可,因此加密密钥的分发将变得⼗分简单。同时,由于每个⽤户的私钥是唯⼀的,其他⽤户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者⽆法否认曾发送过该信息。
⾮对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚⾄能⽐⾮对称加密慢上1000倍。
常见的⾮对称加密算法:RSA、ECC(移动设备⽤)、Diffie-Hellman、El Gamal、DSA(数字签名⽤)
Hash算法
Hash算法特别的地⽅在于它是⼀种单向算法,⽤户可以通过Hash算法对⽬标信息⽣成⼀段特定长度的唯⼀的Hash值,却不能通过这个Hash值重新获得⽬标信息。因此Hash算法常⽤在不可还原的密码存储、信息完整性校验等。
常见的Hash算法:MD2、MD4、MD5、HAVAL、SHA、SHA-1、HMAC、HMAC-MD5、HMAC-SHA1
张艺谋前妻肖华
加密算法的效能通常可以按照算法本⾝的复杂程度、密钥长度(密钥越长越安全)、加解密速度等来衡量。上述的算法中,除了DES密钥长度不够、MD2速度较慢已逐渐被淘汰外,其他算法仍在⽬前的加密系统产品中使⽤。
加密算法的选择
前⾯的章节已经介绍了对称解密算法和⾮对称加密算法,有很多⼈疑惑:那我们在实际使⽤的过程中究竟该使⽤哪⼀种⽐较好呢?
我们应该根据⾃⼰的使⽤特点来确定,由于⾮对称加密算法的运⾏速度⽐对称加密算法的速度慢很多,当我们需要加密⼤量的数据时,建议采⽤对称加密算法,提⾼加解密速度。
对称加密算法不能实现签名,因此签名只能⾮对称算法。
由于对称加密算法的密钥管理是⼀个复杂的过程,密钥的管理直接决定着他的安全性,因此当数据量很⼩时,我们可以考虑采⽤⾮对称加密算法。
在实际的操作过程中,我们通常采⽤的⽅式是:采⽤⾮对称加密算法管理对称算法的密钥,然后⽤对称加密算法加密数据,这样我们就集成了两类加密算法的优点,既实现了加密速度快的优点,⼜实现了安全⽅便管理密钥的优点。
如果在选定了加密算法后,那采⽤多少位的密钥呢?⼀般来说,密钥越长,运⾏的速度就越慢,应该根据的我们实际需要的安全级别来选择,⼀般来说,RSA建议采⽤1024位的数字,ECC建议采⽤160位,AES采⽤128为即可。
对称加密算法
快乐大本营打码仝卓
对称加密算法⽤来对敏感数据等信息进⾏加密,常⽤的算法包括:
DES(Data Encryption Standard):数据加密标准,速度较快,适⽤于加密⼤量数据的场合;
宛瑜生病3DES(Triple DES):是基于DES,对⼀块数据⽤三个不同的密钥进⾏三次加密,强度更⾼;
AES(Advanced Encryption Standard):⾼级加密标准,是下⼀代的加密算法标准,速度快,安全级别⾼。
⾮对称算法
RSA:由 RSA 公司发明,是⼀个⽀持变长密钥的公共密钥算法,需要加密的⽂件块的长度也是可变的;
DSA(Digital Signature Algorithm):数字签名算法,是⼀种标准的 DSS(数字签名标准);
ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
ECC和RSA相⽐,在许多⽅⾯都有对绝对的优势,主要体现在以下⽅⾯:
抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。
计算量⼩,处理速度快。ECC总的速度⽐RSA、DSA要快得多。
存储空间占⽤⼩。ECC的密钥尺⼨和系统参数与RSA、DSA相⽐要⼩得多,意味着它所占的存贮空间要⼩得多。这对于加密算法在IC卡上的应⽤具有特别重要的意义。
带宽要求低。当对长消息进⾏加解密时,三类密码系统有相同的带宽要求,但应⽤于短消息时ECC带宽要求却低得多。带宽要求低使ECC在⽆线⽹络领域具有⼴泛的应⽤前景。
散列算法
散列是信息的提炼,通常其长度要⽐信息⼩得多,且为⼀个固定长度。加密性强的散列⼀定是不可逆的,这就意味着通过散列结果,⽆法推出任何部分的原始信息。任何输⼊信息的变化,哪怕仅⼀位,都将导致散列结果的明显变化,这称之为雪崩效应。散列还应该是防冲突的,即不出具有相同散列结果的两条信息。具有这些特性的散列结果就可以⽤于验证信息是否被修改。
单向散列函数⼀般⽤于产⽣消息摘要,密钥加密等,常见的有:
MD5(Message Digest Algorithm 5):是RSA数据安全公司开发的⼀种单向散列算法,⾮可逆,相同的明⽂产⽣相同的密⽂;
SHA(Secure Hash Algorithm):可以对任意长度的数据运算⽣成⼀个160位的数值。
SHA-1与MD5的⽐较:
因为⼆者均由MD4导出,SHA-1和MD5彼此很相似。相应的,他们的强度和其他特性也是相似,但还有以下⼏点不同:
对强⾏供给的安全性:最显著和最重要的区别是SHA-1摘要⽐MD5摘要长32 位。使⽤强⾏技术,产⽣任何⼀个报⽂使其摘要等于给定报摘要的难度对MD5是2128数量级的操作,⽽对SHA-1则是2160数量级的操作。这样,SHA-1对强⾏攻击有更⼤的强度;
周秀娜男友对密码分析的安全性:由于MD5的设计,易受密码分析的攻击,SHA-1显得不易受这样的攻击;
速度:在相同的硬件上,SHA-1的运⾏速度⽐MD5慢。
对称与⾮对称算法⽐较
张木易 miki
以上综述了两种加密⽅法的原理,总体来说主要有下⾯⼏个⽅⾯的不同:
在管理⽅⾯:公钥密码算法只需要较少的资源就可以实现⽬的,在密钥的分配上,两者之间相差⼀个指数级别(⼀个是n⼀个是n2)。所以私钥密码算法不适应⼴域⽹的使⽤,⽽且更重要的⼀点是它不⽀持数字签名;
在安全⽅⾯:由于公钥密码算法基于未解决的数学难题,在破解上⼏乎不可能。对于私钥密码算法,到了AES虽说从理论来说是不可能破解的,但从计算机的发展⾓度来看。公钥更具有优越性;
从速度上来看:AES的软件实现速度已经达到了每秒数兆或数⼗兆⽐特。是公钥的100倍,如果⽤硬件来实现的话这个⽐值将扩⼤到1000倍。
非诚勿扰李思李璐