加密算法理解

什么是加密?

密码学中,加密是将明文信息改变为难以读取的密文内容,使之不可读。只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。

加密的方法称之为加密算法。

加密算法分类

  • 对称加密算法

    加密和解密使用的是同一个秘钥。

  • 非对称加密算法

    加密和解密使用的不是同一个秘钥。公钥加密就得用私钥解密。

常见的对称加密算法

DES

美国加密数据标准算法,明文按照64位进行分组,秘钥长64位。密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。了解更多

3DES

3DES (Triple DES)三重数据加密数据块算法。相当于对每个数据快进行三次DES加密。由于计算机计算能力的提升,DES算法容易被破解,3DES是通过增加数据块密钥的长度,来增加暴力破解的难度,而不是一种全新的加密算法。

AES

AES (Advance Encryption Standard)高级加密标准,在密码学中又称为Rijndael 算法,是美国联邦政府采用的一种区域块加密标准。这个标准为了替代原先的DES标准,2001有NIST发布,并与2002年5月26日成为标准。了解更多

RC2/RC4

RC2/RC4 ,RC2和RC4由RSA数据安全公司的里维斯特(RonRivest)设计,是两种可变密钥长度的加密算法,而且都是RSA数据安全公司的专有算法。有关两种算法的细节尚未公开披露。RC2是一种可变密钥长度的对称分组密码,打算作为DES的一种代替物。它以64比特分组加密数据。据公司声称,RC2软件实现的速度为DES的两倍。Rc4是一种可变密钥长度的对称流密码。据公司声称.其速度为DES的10~100倍。两种算法的编码规模非常紧凑,其速度与密钥长度无关。

常见的非对称加密算法

RSA

RSA 是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成的。了解更多

ECC

ECC (Elliptic Curves Cryptography)椭圆曲线加密算法,最初由Koblitz和Miller两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。

DSA

DSA (Digital Signature Algorithm)数字签名算法,是Schnorr和EIGamal 签名算法的变种,被美国NIST称作标准的数字签名标准(DSS, Digital Signature Standard), 严格来说不算加密算法。通常用于签名,而不用做加密。

哈希算法

哈希(Hash)和加密(Encrypt)区别

哈希是把目标文本转换为具有相同长度、不可逆的杂凑字符串(消息摘要)。

加密是指把目标文件转换为长度不同、可逆的密文。详细介绍

常见的哈希算法

MD5

MD5 (Message Digest Algorithm5) 消息摘要算法第五版,是RSA公司研发的一种单向散列算法,非可逆,相同的明文产生相同的密文。常用于信息一致性验证;数字签名;安全访问认证等。

特性:

  • 压缩性:任意长度的数据,算出的MD5值长度都是固定的。128位的MD5散列被表示为32位16进制数字;
  • 容易计算:从原数据计算出MD5值很容易;
  • 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别;
  • 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

SHA1

SHA 1(Secure Hash Algorithm) 可以对任意长度的数据运算生成一个160位的数值。主要适用于数字签名标准里定义的DSA算法。对于长度小于2^64位的消息,SHA-1 会产生一个160位的消息摘要。

特性:不可以从消息摘要中复原信息;

MD5与SHA1都是Hash算法,两个相比。MD5输出是128位的,SHA1输出是160位的,MD5比SHA1快,SHA1比MD5强度高。

参考资料:

http://www.jianshu.com/p/c0c05aa7c306

http://www.jianshu.com/p/cd126497fadc

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。