欢迎访问shiker.tech

请允许在我们的网站上展示广告

您似乎使用了广告拦截器,请关闭广告拦截器。我们的网站依靠广告获取资金。

什么是加密与数字签名
(last modified Mar 3, 2024, 3:40 PM )
by
侧边栏壁纸
  • 累计撰写 176 篇文章
  • 累计创建 61 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

什么是加密与数字签名

橙序员
2024-03-03 / 0 评论 / 0 点赞 / 145 阅读 / 3,999 字 / 正在检测百度是否收录... 正在检测必应是否收录...
文章摘要(AI生成)

密码学是一种通过使用编码算法、哈希和签名来保护信息的实践,主要目标包括保密性、完整性、身份验证和不可否认性。密码学使用许多低级密码算法实现这些目标,包括加密算法、数字签名算法和哈希算法等。对称加密是一种常用的加密技术,加密和解密使用相同的密钥,例如AES、Salsa20和Serpent等算法。对称加密速度快,但密钥管理复杂,通常用于大量数据加密,如网络通信和数据存储。密钥的保护和算法的复杂性是确保加密算法安全性的关键因素。

密码学是一种通过使用编码算法、哈希和签名来保护信息的实践。此信息可以处于静态(例如硬盘驱动器上的文件)、传输中(例如两方或多方之间交换的电子通信)或使用中(在对数据进行计算时)。密码学有四个主要目标:

  • 保密性 – 仅将信息提供给授权用户。即只有拥有密钥的用户可以查看信息
  • 完整性 – 确保信息未受到操控。通过数字签名,可以对信息进行完整性校验。
  • 身份验证 – 确认信息的真实性或用户的身份。
  • 不可否认性 – 防止用户否认先前的承诺或操作。

密码学使用许多低级密码算法来实现这些信息安全目标中的一个或多个。这些工具包括加密算法、数字签名算法、哈希算法和其他功能。本页将介绍一些最常用的低级加密算法。

加密算法

加密算法是一种数学和计算方法,用于将数据转换为不可读或难以理解的形式,以确保数据的保密性和安全性。加密算法通过使用密钥对数据进行转换,使得未经授权的用户无法直接访问或理解数据内容。

加密算法的基本原理是将明文(原始数据)通过一定的算法和密钥转换成密文(加密后的数据),而只有持有正确密钥的用户才能解密得到原始数据。加密算法的安全性主要取决于密钥的保护和算法的复杂性。

对称加密算法

对称加密是一种加密技术,也称为私钥加密。在对称加密中,加密和解密使用相同的密钥。这意味着发送方和接收方必须共享同一密钥,该密钥用于加密数据以及解密数据。

对称加密算法通过对数据进行转换,使得未经授权的用户无法直接理解数据内容。加密和解密过程都使用相同的密钥,因此密钥的安全性至关重要。只有持有正确密钥的用户才能解密密文,并且只有知道密钥的用户才能对数据进行加密。

img

特点

  • 对称加密使用相同的密钥进行加密和解密,因此只需要一个密钥。
  • 对称加密的加密和解密过程使用相同的密钥,因此速度通常较快。
  • 对称加密算法通常速度快,但密钥管理相对复杂,因为需要安全地分发和管理密钥。
  • 对称加密通常用于大量数据的加密,例如网络通信、数据存储等。

常用算法

流行且安全的对称加密:

  • AES高级加密标准,也称为Rijndael )是现代 IT 行业中最流行、使用最广泛的对称加密算法。
  • Salsa20及其改进变体ChaChaChaCha8ChaCha12ChaCha20 )和XSalsa20是现代、快速、对称流密码系列,由杰出的密码学家Daniel Bernstein设计。

安全的对称加密

  • Serpent - 安全对称密钥分组密码(密钥大小:128、192 或 256 位),公共领域,未申请专利
  • Twofish - 安全对称密钥分组密码(密钥大小:128、192 或 256 位),免版税,未申请专利
  • Camellia - 安全对称密钥块密码(块大小:128 位;密钥大小:128、192 和 256 位),已获得专利,但免费用于非商业用途
  • RC5 - 安全对称密钥分组密码(密钥大小:128 至 2040 位;块大小:32、64 或 128 位;轮数:1 … 255),使用短密钥不安全(56 位密钥成功暴力破解),已获得专利直至 2015 年,现在免版税
  • RC6 - 安全对称密钥分组密码,与 RC5 类似,但更复杂(密钥大小:128 至 2040 位;块大小:32、64 或 128 位;轮数:1 … 255),已获得专利直至 2017 年,现在免版税
  • IDEA - 安全对称密钥分组密码(密钥大小:128 位),2012 年之前获得专利,现在免版税
  • CASTCAST-128 / CAST5CAST-256 / CAST6) - 安全对称密钥分组密码系列(密钥大小:40 … 256 位),商业和非商业用途的免版税基础
  • ARIA - 安全对称密钥分组密码,类似于 AES(密钥大小:128、192 或 256 位),韩国官方标准,免费供公众使用
  • SM4 - 安全对称密钥分组密码,类似于AES(密钥大小:128位),中国官方标准,免费供公众使用

不安全的对称加密:

  • DES - 56 位密钥大小,几乎已被破解,可以被暴力破解
  • 3DES(三重 DES)- 64 位密码,被认为已损坏
  • RC2 - 64 位密码,被认为已损坏
  • RC4 - 流密码、已破解,已被实际攻击证明
  • Blowfish - 旧的 64 位密码,已被破解,已被实际攻击证明
  • GOST - 俄罗斯 64 位分组密码,安全性有争议,被认为有风险

非对称加密算法

非对称加密,也称为公钥加密,是一种加密技术,与对称加密相比具有不同的特点。在非对称加密中,加密和解密使用不同的密钥对,分别是公钥和私钥。

  • 公钥(Public Key):公钥是可以公开的,用于加密数据的密钥。
  • 私钥(Private Key):私钥是保密的,只有接收方持有私钥才能解密使用公钥加密的数据。

image-1709449931126

特点

  • 非对称加密使用一对密钥,公钥和私钥,其中公钥用于加密,私钥用于解密
  • 非对称加密的加密和解密过程使用不同的密钥,且公钥可以公开,私钥保密。加密过程使用公钥,解密过程使用私钥。
  • 非对称加密算法相对较慢,但密钥管理更容易,因为只需要保护私钥,公钥可以公开。
  • 非对称加密通常用于密钥交换、数字签名、身份认证等场景,以及对对称密钥的安全传输。

常用算法

RSA算法

定义
由 Ron Rivest、Adi Shamir 和 Leonard Adleman(因此称为“RSA”)于 1977 年发明,是迄今为止使用最广泛的非对称加密算法。它的效力在于它所依赖的“素因数分解”方法。基本上,这种方法涉及两个巨大的随机素数,并将这些数字相乘以创建另一个巨大的数字。这里的难题是从这个巨大的相乘数中确定原始素数。
优点
RSA 的一大优势是它的可扩展性。它有多种加密密钥长度,如768位、1024位、2048位、4096位等。因此,即使较低的密钥长度被成功暴力破解,您也可以使用较高密钥长度的加密因为暴力破解密钥的难度随着密钥长度的增加而增加

RSA 基于简单的数学方法,这就是它在公钥基础设施 (PKI) 中的实现变得简单的原因。这种对 PKI 的适应性及其安全性使 RSA 成为当今使用最广泛的非对称加密算法。RSA 广泛用于许多应用程序,包括SSL/TLS 证书、加密货币和电子邮件加密

ECC算法

定义
ECC算法:1985 年,两位数学家 Neal Koblitz 和 Victor S. Miller 提出在密码学中使用椭圆曲线。近二十年后,当 ECC(椭圆曲线加密)算法于 2004 年 5 月投入使用时,他们的想法变成了现实。

在ECC加密过程中,椭圆曲线表示满足数学方程

(y2=x3+ax+b)(y^2= x^3 + ax + b)

的点的集合。

与 RSA 一样,ECC 也遵循不可逆性原则。简而言之,沿一个方向计算它很容易,但反转它并回到原点却非常困难。在 ECC 中,表示曲线上一个点的数字乘以另一个数字,得到曲线上的另一个点。现在,要破解这个难题,您必须找出曲线上的新点。ECC 的数学构建方式使得即使您知道原始点,实际上也不可能找出新点。
优点
与 RSA 相比,ECC 提供了更高的安全性(针对当前的破解方法),因为它相当复杂。它提供与 RSA 类似的保护级别,但它使用更短的密钥长度。因此,使用更长密钥应用的 ECC 将需要更长的时间才能使用暴力攻击进行破解。

ECC 中较短密钥的另一个优点是**性能更快**。较短的密钥需要较少的网络负载和计算能力,这对于存储和处理能力有限的设备来说非常有用。当 ECC 用于 SSL/TLS 证书时,它可以大大减少执行 SSL/TLS 握手所需的时间,并帮助您更快地加载网站。ECC加密算法用于加密应用、应用数字签名、伪随机生成器等。

不过,使用 ECC 的挑战在于,许多服务器软件和控制面板尚未添加对 ECC SSL/TLS 证书的支持。我们希望这种情况在未来能够改变,但这意味着 RSA 同时将继续成为使用更广泛的非对称加密算法。

数字签名

数字签名方案是一种公钥密码学,可确保数据的完整性、真实性和不可否认性。

签名过程可以被认为与使用私钥加密文件非常相似。签名者使用他们的私钥在数字文档(例如文件或一段代码)上生成“签名”。

此签名对于文档/私钥对是唯一的,可以附加到文档并使用签名者的公钥进行验证。

公钥数字签名

在公钥数字签名中,有两个主要的参与者:消息发送方和消息接收方。发送方使用自己的私钥对消息进行签名,而接收方使用发送方的公钥来验证签名。

具体过程如下:

  1. 签名:发送方使用自己的私钥对消息进行签名。签名过程使用加密算法,其中消息的摘要(哈希值)与发送方的私钥一起被加密以生成数字签名。
  2. 传输:发送方将消息和数字签名一起发送给接收方,通常是通过网络或其他通信渠道。
  3. 验证:接收方使用发送方的公钥来解密数字签名,以获取消息的摘要。然后,接收方计算接收到的消息的摘要,如果与解密后的摘要相匹配,则表明消息完整且未被篡改,同时证明了消息的来源是发送方。

公钥数字签名的优势在于:

  • 认证:可以验证消息的真实性和完整性,确保消息的发送方身份。
  • 不可篡改性:签名是基于消息内容和发送方的私钥生成的,因此无法被篡改。
  • 不可抵赖性:发送方无法否认曾经签名过的消息。

消息认证码

消息认证码(Message Authentication Code,MAC)是一种用于验证消息完整性和真实性的技术。它是一种加密算法,用于在通信过程中对消息进行保护,以确保消息的完整性、真实性和认证性。MAC通常使用对称密钥加密算法来生成,并且需要发送方和接收方共享相同的密钥。

消息认证码的主要目的是确保以下几个方面的安全性:

  1. 完整性:验证消息是否在传输过程中被篡改。
  2. 真实性:确认消息的发送者是否是预期的发送方。
  3. 认证性:防止消息的伪造,保证消息的真实性和来源可信度。

生成和验证消息认证码的过程如下:

  1. 生成MAC:发送方使用共享的密钥和加密算法对消息进行处理,生成MAC。
  2. 传输消息和MAC:发送方将消息和生成的MAC一起发送给接收方。
  3. 验证MAC:接收方使用相同的密钥和加密算法对接收到的消息进行处理,生成MAC,并与接收到的MAC进行比较以验证消息的完整性和真实性。

常见的消息认证码算法包括:HMAC(基于哈希函数的消息认证码)、CMAC、GMAC。消息认证码在数据通信和网络安全领域中得到广泛应用,用于保护数据通信的安全性和完整性。

安全摘要函数

安全摘要函数,也称为安全哈希函数,是一种加密技术,用于将任意长度的输入数据转换为固定长度的输出,通常称为摘要或哈希值。安全摘要函数在密码学和信息安全领域中具有重要作用,主要用于数据完整性验证、数字签名、密码学安全等方面。

安全摘要函数具有以下特点:

  1. 固定长度输出:无论输入数据的长度如何,安全摘要函数生成的输出都是固定长度的。
  2. 唯一性:不同的输入数据通常会生成不同的摘要值,即使输入数据仅有微小的变化也会导致摘要值的明显变化。
  3. 不可逆性:从摘要值无法还原出原始输入数据,即使两个不同的输入可能产生相同的摘要值(哈希冲突),但找到这样的输入通常是困难的。
  4. 防篡改性:摘要值的改变会导致输入数据的完整性被破坏,因此安全摘要函数可以用于检测数据是否被篡改。
  5. 高效性:安全摘要函数通常具有高效的计算性能,能够快速生成摘要值。

常见的安全摘要函数包括:MD5、SHA-1、SHA-256、SHA-512、SHA-3。一些早期的摘要函数(如MD5和SHA-1)已经被证明存在安全漏洞,因此在实际应用中,应尽可能选择更安全、更强大的摘要函数,如SHA-256和SHA-512等。

0

评论区