加密与散列有哪些不同?随着每一分钟的网络攻击数量不断增加,对网络安全的需求比以往任何时候都多。在过去十年中获得大量动力的网络安全领域之一是密码学。密码学有不同的类型;然而,散列和加密是最基本的密码学类型。
加密与散列有什么区别?尽管散列和加密都采用输入文本并以不可读的格式返回该数据,但仍有许多细微差别,例如两种操作都采用不同的方式将原始数据作为输入,应用的算法不同,输出数据的方式也不同。各种格式。最重要的是,它们不同的属性定义了独特的使用范围。
如何区分加密与散列?本文解释了这些机制、它们广泛的特性以及它们的应用领域,同时深入了解了它们的差异。
加密
加密是使用数学技术将人类可读数据或明文打乱成不可读格式的过程。称为密文的不可读或加密形式只能由授权方通过加密密钥访问。
加密如何工作?
加密与散列有哪些不同?加密过程结合使用算法和密钥将明文映射到密文。密文在可以相同(共享)或数学相关(公共/私有)的密钥的帮助下加密/解密。因此,根据密钥的数量,我们将加密分为两种主要类型:对称加密和非对称加密。
对称加密:对称密钥加密包含用于加密和解密的单个/秘密/共享密钥。对称加密的主要优点是它可用于在最短的时间内加密和发送大文件。但是,它确实需要在通信双方之间进行初始的安全密钥交换。一些最常见的示例是 DES、Triple-DES、AES 和 RC。
非对称加密:非对称加密算法/公钥密码术使用一对不同但数学上相关的私钥和公钥。私钥只为选定的一方或可以保密的个人所知,而公钥则为所有人所知。最常见的密码示例是 Diffie-Hellman、RSA (Rivest-Shamir-Adleman) 和 Pretty Good Privacy (PGP)。
加密目的:
加密与散列有什么区别?加密旨在保护静态和传输中的数字数据免受未经授权的访问。因此,加密背后的主要思想是通过将信息隐藏为只有授权个人才能访问的格式来获得机密性。
因此,大多数用例中的加密应用程序都是为了响应业务需求。加密的许多用例中的一些是:
数据库加密最初被视为一种不必要的开销,但最近数据泄露的激增使其成为关系/MySQL/NoSQL 数据库的首要用例。数据库保护的动机是解决数据泄露、隐私保护和遵守州隐私法。
另一个用例是满足支付卡行业数据安全标准,以安全处理支付、购买或任何相关细节的持卡人数据。
它在多租户环境中提供支持,因此云提供商还为用户提供管理他们的加密密钥的服务,以便它只对数据进行加密/解密。
散列
如何区分加密与散列?散列是一种单向函数,它将可变长度的明文转换为一种不可读的格式,称为散列值。因此,散列是一种不可逆的加密过程,它不使用密钥将散列反向工程/解密为其原始文本。最著名的散列函数是消息摘要算法 (MD5)、安全散列算法(SHA-256 和 SHA-512)和 NT LAN Manager (NTLM)。理想的散列算法遵循以下属性集:
- 无论输入大小如何,都返回固定长度的输出。
- 它不能被逆向工程。
- 它不得为不同的输入生成类似的哈希值(防冲突)。
- 轻微的输入变化会产生巨大的输出差异。
- 根据应用领域,它提供快速计算。
哈希是如何工作的?
散列算法采用大小因算法而异的输入数据块,并一次处理每个块。此外,它将最近块的输出合并到下一个块的输入中。由于哈希函数使用数据块的预设大小,例如 SHA-1 接受 512 位块大小,因此文件大小并不总是 512 的倍数。这需要一种称为 Padding 的技术来划分输入数据成长度相似的块大小。
哈希的目的
加密与散列有哪些不同?散列的两个突出用例之一是在 Internet 上的消息/文件传输期间提供数据完整性。哈希的不可逆特性有助于接收方验证是否有任何中间人篡改了数据。
此功能在消息验证代码过程中很明显,其中发送方将其散列值附加到原始消息中。在接收时,接收者重新计算消息散列以比较两个散列。因此,在传输过程中拦截消息所做的任何更改都将生成不同的哈希值,从而验证消息调和。散列的完整性特性打开了其应用程序的各个领域,例如文件/应用程序验证、数字签名和防病毒解决方案用于恶意软件识别的病毒签名等。
散列的第二个最重要的用例是密码保护。系统仅允许基于身份验证的用户访问,因此它们不会以明文格式存储密码。为此,加密不是一种理想的方法,因为将加密密钥放在服务器上很容易被窃取,这是一个固有的弱点。
因此,在密码的前端/末尾使用盐值或添加随机生成的数据进行散列是保护密码免受加密密钥盗窃和冲突攻击的理想方法。
如何区分加密与散列?结论
加密与散列有什么区别?密码学是网络安全最基本的方面之一,具有不同的类型。然而,加密和散列是主要的。加密和散列操作遵循信息安全三角形的两个组成部分,即机密性和完整性。本文简要概述了密码学的这两个最重要的操作。它还突出了它们的细微差别,并阐明了它们独特的特性如何为其应用或使用领域打开不同的大门。