各种加密算法总结

 

上图为后续更新


    
一、基础知识:

        1、互联网上中间人攻击通常用的三种方式:1)窃听 2)数据篡改 3)会话劫持
        2、数据加密的常用的三种方式有:对称加密、非对称加密、单向加密。
        3、ssl:secure socket layer,安全的套接字层。
        4、TLS:Transport Layer Security,功能类似于ssl。
        5、随机数生成器:/dev/random 和 /dev/urandom 。   -salt:依赖于随机数生成器。
        6、随机数的来源:熵池和伪随机数生成器熵池中的随机数来自块设备中断和键盘和鼠标的敲击时间间隔;伪随机数生成器中的随机数来自于熵池和软件产生。
        7、openssl rand [base64] num 也可以用来生成随机数。
        8、echo –n “QQ”|openssl base64,表示对QQ做base64编码。

二、对称加密:

        1、加密方和解密方使用同一个密钥。
        2、加密解密的速度比较快,适合数据比较长时的使用。
        3、密钥传输的过程不安全,且容易被破解,密钥管理也比较麻烦。
        4、加密算法:DES(Data Encryption Standard)、3DES、AES(Advanced Encryption Standard,支持128、192、256、512位密钥的加密)、Blowfish。
        5、加密工具:openssl、gpg(pgp工具)


三、非对称加密(公钥加密):

        1、每个用户拥用一对密钥加密:公钥和私钥。
        2、公钥加密,私钥解密;私钥签名,公钥验签。
        3、公钥传输的过程不安全,易被窃取和替换。
        4、由于公钥使用的密钥长度非常长,所以公钥加密速度非常慢,一般不使用其去加密。
        5、某一个用户用其私钥加密,其他用户用其公钥解密,实现数字签名的作用。
        6、公钥加密的另一个作用是实现密钥交换。
        7、加密和签名算法:RSA、ELGamal。
        8、公钥签名算法:DSA。
        9、加密工具:gpg、openssl

四、单向加密:

    1、特征:雪崩效应、定长输出和不可逆。
    2、作用是:确保数据的完整性。
    3、加密算法:md5(标准密钥长度128位)、sha1(标准密钥长度160位)、md4、CRC-32
    4、加密工具:md5sum、sha1sum、openssl dgst。
    5、计算某个文件的hash值,例如:md5sum/shalsum  FileName,openssl dgst –md5/-sha1 FileName。   


什么是 DES 算法?

    DES全称为Data Encryption Standard,即数据加密标准,它采用了年美国IBM公司1972年研制的对称密码体制加密算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。

    DES算法属于对称加密算法,原来DES密码的密钥长度变得容易被暴力破解,因此演变出了3DES算法。3DES是DES向AES过度的加密算法,它使3条56位的密钥对数据进行3次加密,是DES的一个更安全的变形。

 

AES算法

        AES即高级加密标准,已经广为全世界所使用,成为对称加密算法的主流算法之一。
        AES算法作为新一代的数据集加密标准,汇聚了强安全性、高性能、高效率、易用和灵活等优点,设计有三个密钥长度(128,192,256位),比DES算法的加密强度更高,更安全。

        AES是一种高级加密标准,也叫Rijndael算法(可以理解为Rijndael 中标了工程),2002年成为标准。它是用来代替原来的DES加密方法的。它也是一个可逆的对称加密算法。即能加密又能还原,这就是可逆加密算法,这也是我们想用到的。AES程序量比DES要少一些。

 

 

 

对称算法是一个可逆的过程,可以“先加密,后解密”,也可以“先解密,后加密”具体请看这里


    

RC是什么

   =Release Candidate,含义是"发布候选版",它不是最终的版本,而是最终版(RTM=Release To Manufacture)之前的最后一个版本。
    RC为密码学中的一种密码算法,其中RC-2,RC-4,RC-5(注意:没有RC1、RC3)它提供了一种可变长度的密钥加密方法,由RSA数据安全公司授权使用,比较适合用于端-端加密,很多INTERNET客户端和服务器都在用它
    总结:RC 系列算法,是RSA 公司发明的算法,但未被美国政府选作标准


RSA加密算法

  • 是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。
  • RSA缺点:
    它受到素数产生技术的限制,产生密钥时很麻烦;
    出于安全性考虑,分组长度至少也要600位以上,运算代价很高、速度比较慢,比DES之类的对称算法要慢的多。
    它最大的缺点是需要生成大素数及大数取模时可能会产生特别大的数据量,这些都很耗费时间,生成复杂密钥时在单片机上运行可能都不止10分钟,所以解密时尽量让服务器处理。

 

DSA 算法

一种非对称的签名和认证算法。DSA(Digital Signature Algorithm) 是Schnorr和ElGamal签名算法的变种,被美国NIST作为DSS(DigitalSignature Standard)。

  • RSA的安全性是基于极其困难的大整数的分解(两个素数的乘积);
  • DSA 的安全性是基于整数有限域离散对数难题。同等条件下,两个算法安全性相当。
  • RSA 既可以加解密,也可以作数字签名和认证,缺点是计算量大,处理速度慢;
  • DSA和RSA不同之处在于它不能用作加密和解密,也不能进行密钥交换,只用于签名,它比RSA要快很多.

 

ECC签名算法

椭圆曲线算法,ECC(Elliptic Curves Cryptography),集成了 RSA DSA 的优点, 有可能取代RSA成为下一代主流

 ECC RSA 相比,有以下的优点:
(1)相同密钥长度下,安全性能更高,如
160ECC已经与1024RSADSA有相同的安全强度。
(2)计算量小,处理速度快,在私钥的处理速度上(解密和签名),
ECC远 比RSADSA快得多。
(3)存储空间占用小
ECC的密钥尺寸和系统参数与RSADSA相比要小得多, 所以占用的存储空间小得多。
(4)带宽要求低使得
ECC具有广泛得应用前景。

 

ECDSA签名算法

椭圆曲线数字签名算法(ECDSA)是椭圆曲线密码(ECC)对数字签名算法(DSA)的结合,整个签名过程与DSA类似,所不一样的是签名中采取的算法为ECC

在区块链技术中,比特币采用了ECDSA算法



什么是RC2 算法?

RC2是由著名密码学家Ron Rivest设计(RSA创始人)的一种传统对称分组加密算法,它可作为DES算法的建议替代算法
它的输入和输出都是64比特。密钥的长度是从1字节到128字节可变,但目前的实现是8字节(1998年)。

    
什么是RC4 算法

RC4于1987年提出,和DES算法一样,是一种对称加密算法,也就是说使用的密钥为单钥(或称为私钥)。但不同于DES的是,RC4不是对明文进行分组处理,而是字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每一个字节进行解密。
       RC4算法的特点是算法简单,运行速度快,而且密钥长度是可变的,可变范围为1-256字节(8-2048比特),在如今技术支持的前提下,当密钥长度为128比特时,用暴力法搜索密钥已经不太可行,所以可以预见RC4的密钥范围任然可以在今后相当长的时间里抵御暴力搜索密钥的攻击。实际上,如今也没有找到对于128bit密钥长度的RC4加密算法的有效攻击方法。
    RC4是面向字节的序列密码,一个明文的字节(8比特)与一个密钥的字节进行异或就生成了一个密文的字节。一个可以在密钥流中生成一字节的密钥,包含从1到256字节的任何位置。
    RC4算法的结构非常简单,由两部分组成:密钥调度算法KSA和伪随机密钥序列生成算法PRGA。

    学了这么多加密算法,首先要了解的是:对明文使用同一个密钥异或两次最后是得到原文的。
    RC4加密算法其实也是比较简单的,重点是在秘钥流生成器那里,其实按照规定步骤来也是比较简单的。由于RC4算法加密是采用的xor,所以,一旦子密钥序列出现了重复,密文就有可能被破解。RC4算法生成的子密钥序列是否会出现重复呢?经过测试,存在部分弱密钥,使得子密钥序列在不到100万字节内就发生了完全的重复,如果是部分重复,则可能在不到10万字节内就能发生重复,因此,推荐在使用RC4算法时,必须对加密密钥进行测试,判断其是否为弱密钥。

    但在2001年就有以色列科学家指出RC4加密算法存在着漏洞,这可能对无线通信网络的安全构成威胁。以色列魏茨曼研究所和美国思科公司的研究者发现,在使用“有线等效保密规则”(WEP)的无线网络中,在特定情况下,人们可以逆转RC4算法的加密过程,获取密钥,从而将已加密的信息解密。实现这一过程并不复杂,只需要使用一台个人电脑对加密的数据进行分析,经过几个小时的时间就可以破译出信息的全部内容。

 

什么是RC5 算法

分组密码算法是1994由麻萨诸塞技术研究所的Ronald L. Rivest教授发明的,并由RSA实验室分析。它是参数可变的分组密码算法,三个可变的参数是:分组大小、密钥大小和加密轮数。
    在此算法中使用了三种运算:异或、加和循环。


什么是RC6 算法?

 RC6是作为AES(Advanced Encryption Standard)的候选算法提交给NIST(美国国家标准局)的一种新的分组密码,是AES方案征集时的候选算法之一,但是没有Rijndael算法那么幸运。它是在RC5的基础上设计的,以更好地符合AES的要求,且提高了安全性,增强了性能。
    RC6是一种安全、架构完整而且简单的区块加密法。它提供了较好的测试结果和参数方面相当大的弹性。RC6可以抵抗所有已知的攻击,能够提供AES所要求的安全性,可以说是近几年来相当优秀的一种加密法。
 

什么是AES 算法?

密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。
   这个标准用来替代原先的DES(Data Encryption Standard),已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院 (NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。
   该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael之名命之,投稿AES 的甄选流程。
   因为它只是一种标准,所以:
            AES 标准中,有很多算法可以实现,如 Rijndael加密法、RC6等等,但美国政府最终采用了Rijndael加密法 作为标准
            同理,DES 标准中,一样有很多算法,如 IBM 公司的对称算法、RC2 加密法等等,但IBM 公司笑到了最后。

 

TEA 算法

一种分组加密算法,也是可逆算法。短小精悍。它的实现非常简单,超不过10行代码。TEA算法每一次可以操作64位(8字节),采用128位(16字节)作为密钥,算法采用迭代的形式,尽管32轮迭代已经足够了,但是最好的迭代轮数是64轮。数据流加密可能比较适合,因为据说早期的QQ采用过TEA加密算法。


MD5算法

在2004年的国际密码大会上山东大学的王小云教授宣布了她的研究小组完成了对MD5杂凑函数的杂凑冲撞,也就是从理论上说使用MD5的数字签名可以伪造。这也意味着MD5可能需要和其他加密算法共用才可以保证数字签名的安全。
 

SHA算法

著名的哈希算法,不可逆算法。也是多用在数字签名上。SHA-1和MD5一样,也被王小云教授找出杂凑冲撞的漏洞,不过也是停留在理论上的。

ps: SHA和MD5区别请参考 http://blog.csdn.net/lvxiangan/article/details/42195429

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值