问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

对称加密、非对称加密、哈希算法详解

创作时间:
作者:
@小白创作中心

对称加密、非对称加密、哈希算法详解

引用
1
来源
1.
https://www.bilibili.com/read/cv36688754/

加密技术是保障信息安全的重要手段之一,对称加密、非对称加密和哈希算法则是常见的三种技术。本文将分别介绍这三种技术的工作原理、应用场景以及优缺点。

数据加密

数据加密,是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。它的核心是密码学。数据加密是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。

最原始的数据传输方式就是明文传输。所谓“明文”就是输入文件的原始内容、传输文件的内容、最终文件的显示内容一致,别人获取到文件后就知道里面的全部内容了。很显然,这种数据传输方式很不安全,被非法截取后,信息会全部泄露。

古代人类在通信中就已经开始使用各种加密手段,以保护重要信息的安全,比如:凯撒密码、斯巴达密码、埃及纳谷尔密码。中世纪到近代,随着技术的进步和战争的频繁,密码学也得到了进一步的发展,比如:维吉尼亚密码、恩尼格玛机。20世纪末至21世纪初,随着计算机技术的飞速发展,密码学迎来了全新的时代,现代密码学主要包括:对称加密算法、非对称加密算法、哈希算法。

术语

  • 明文:即原始的或未加密的数据。通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;
  • 密文:明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文不应为无密钥的用户理解,用于数据的存储以及传输;
  • 密钥:是由数字、字母或特殊符号组成的字符串,用它控制数据加密、解密的过程;
  • 加密:把明文转换为密文的过程;
  • 加密算法:加密所采用的变换方法;
  • 解密:对密文实施与加密相逆的变换,从而获得明文的过程;
  • 解密算法:解密所采用的变换方法。

流程

如图:

加密过程:通过加密方法E,数据P + 密钥K1 = 密文C;
解密过程:通过解密方法D,密文C + 密钥K2 = 数据P;

密码还被广泛用于身份认证、防止否认等问题上。

对称加密

对称加密,也叫私钥加密,是指加密和解密使用相同密钥的加密算法。在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。

对称密钥的加/解密过程如图所示。甲与乙要事先协商好对称密钥,(1)甲使用对称密钥对明文加密,并将密文发送给乙。 (2)乙接收到密文后,使用相同的对称密钥对密文解密,还原出最初的明文。

对称加密的优点在于加密和解密速度快,加密强度高,但缺点是密钥管理困难,因为如果密钥泄露,则安全无法保障。

  • 缺点:破解相对较容易;密钥管理难度较大,不适用于分布式系统(n个用户的团体就需要协商n*(n-1)/2个不同的密钥);
  • 优点:算法公开;加密/解密运算相对简单,加密和解密速度快、效率高;
  • 对称加密适用于需要快速加解密和较高加密强度的场景,如数据存储、网络通信等。常见算法:DES,3DES,AES,RC2,RC4 等。

非对称加密

非对称加密使用了一对密钥,公钥和私钥。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。公钥,可以对外公开,通常用于数据加密,私钥,是不能对外公布的,通常用于数据解密,。而且公/私钥必须成对使用。乙生成一对非对称秘钥,将公钥向所有人公开,甲拿到乙的公钥后使用乙的公钥对信息加密后发送给乙,经过加密的信息只有乙手中的私钥能解密。这样甲可以通过这种方式将自己的公钥加密后发送给乙,两方建立起通信,可以通过对方的公钥加密要发送的信息,接收方用私钥解密信息。

非对称密钥加/解密的过程如图所示。甲要事先获得乙的公钥,(1)甲使用乙的公钥对明文加密,并将密文发送给乙。(2)乙收到密文后,使用自己的私钥对密文解密,得到最初的明文。

  • 缺点:加解密速度慢,因为需要大量的计算资源;需要大量的存储空间来存储公钥和私钥对;
  • 优点:安全性高,因为私钥不通过网络发送出去;适用于分布式系统,因为每个节点可以拥有不同的公钥和私钥对;
  • 非对称加密适用于需要高安全性、分布式系统的场景,如数字签名、身份认证等。常见的非对称加密算法有RSA、ECC等。

哈希算法

哈希算法是一种数据摘要算法,也称为消息摘要算法或者单项转换,任何一个数据文件都可以通过哈希算法得到一个唯一的、长度相同的消息摘要。哈希加密不需要密钥,只能进行正向的信息摘要,而无法从摘要中恢复出任何原始消息哈希算法,哈希算法不是对称或非对称加密算法,不适用于数据的加密和解密操作。

特点:双方必须在通信的两端各自执行 Hash 算法计算;哈希算法可以表示任意长度数据特征,同一种 Hash 运算会产生固定长度的摘要内容,比如 1MB、1GB 的数据,相同的哈希算法得到的摘要值都是一样的长度;原文改变则哈希运算的结果必定会是不同的,但相同的输入必会产生相同的输出。

哈希加密适合用于验证应用程序中的数据完整性和真实性,例如数字签名、区块链、密码存储等。固定长度的哈希值充当了潜在可变长度输入数据的密码指纹。常见算法:MD5(Message Digest Five):128 bits;SHA-1(Secure Hash Algorithm):160 bits;SHA-256:256 bits。

例:数字签名流程

(1)计算得到原始数据的「摘要信息」;
(2)将「摘要信息」用私钥加密-即签名;
(3)把原数据和「签名后的摘要」打包给目标用户;
(4)用户先计算原数据的「摘要信息」,再用公钥解密「签名后的摘要」得到「待验证的摘要」,最后再与「摘要信息」比对;

匹配一致则能保证原始数据未被篡改,这样便是一个完整的数字签名与验签的过程。

总结

对称加密、非对称加密和哈希算法是现代加密技术的三大支柱,它们在保护数据安全方面发挥着重要作用。对称加密适用于大量数据的加密和解密操作;非对称加密适用于数字签名、身份认证等场景;哈希算法适用于验证数据的完整性和数字签名等场景。在实际应用中,根据不同的需求选择合适的加密技术组合来保障数据的安全性。

具体算法种类

对称性加密算法有:AES、DES、3DES

用途:对称加密算法用来对敏感数据等信息进行加密

  • DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合。
  • 3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。
  • AES(Advanced Encryption Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高;AES是一个使用128为分组块的分组加密算法,分组块和128、192或256位的密钥一起作为输入,对4×4的字节数组上进行操作。众所周之AES是种十分高效的算法,尤其在8位架构中,这源于它面向字节的设计。AES 适用于8位的小型单片机或者普通的32位微处理器,并且适合用专门的硬件实现,硬件实现能够使其吞吐量(每秒可以到达的加密/解密bit数)达到十亿量级。同样,其也适用于RFID系统。

非对称性算法有:RSA、DSA、ECC

  • RSA:由 RSA 公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。RSA在国外早已进入实用阶段,已研制出多种高速的RSA的专用芯片。
  • DSA(Digital Signature Algorithm):数字签名算法,是一种标准的 DSS(数字签名标准),严格来说不算加密算法。
  • ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。ECC和RSA相比,具有多方面的绝对优势,主要有:抗攻击性强。相同的密钥长度,其抗攻击性要强很多倍。计算量小,处理速度快。ECC总的速度比RSA、DSA要快得多。存储空间占用小。ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义。带宽要求低。当对长消息进行加解密时,三类密码系统有相同的带宽要求,但应用于短消息时ECC带宽要求却低得多。带宽要求低使ECC在无线网络领域具有广泛的应用前景。

散列算法(签名算法)有:MD5、SHA1、HMAC

用途:主要用于验证,防止信息被修。具体用途如:文件校验、数字签名、鉴权协议

  • MD5:MD5是一种不可逆的加密算法,目前是最牢靠的加密算法之一,尚没有能够逆运算的程序被开发出来,它对应任何字符串都可以加密成一段唯一的固定长度的代码。
  • SHA1:是由NISTNSA设计为同DSA一起使用的,它对长度小于264的输入,产生长度为160bit的散列值,因此抗穷举(brute-force)性更好。SHA-1设计时基于和MD4相同原理,并且模仿了该算法。SHA-1是由美国标准技术局(NIST)颁布的国家标准,是一种应用最为广泛的Hash函数算法,也是目前最先进的加密技术,被政府部门和私营业主用来处理敏感的信息。而SHA-1基于MD5,MD5又基于MD4。
  • HMAC:是密钥相关的哈希运算消息认证码(Hash-based Message Authentication Code),HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。也就是说HMAC是需要一个密钥的。所以,HMAC_SHA1也是需要一个密钥的,而SHA1不需要。

CRC

(Cyclic Redundancy Check,循环冗余校验)算法出现时间较长,应用也十分广泛,尤其是通讯领域,现在应用最多的就是 CRC32 算法,它产生一个4字节(32位)的校验值,一般是以8位十六进制数,如FA 12 CD 45等。CRC算法的优点在于简便、速度快,严格的来说,CRC更应该被称为数据校验算法,但其功能与数据摘要算法类似,因此也作为测试的可选算法。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号