网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

非对称密钥加密是什么?

更新时间:2026年03月27日   作者:spoto   标签(Tag):

在非对称密钥加密中,存在两个密钥,它们也被称为密钥对:一个公钥和一个私钥。公钥是公开分发的,任何人都可以使用这个公钥来加密消息,但只有持有相应私钥的接收者才能解密这些消息。“公钥加密”是另一种用来指代非对称密钥加密的方式。

这种加密系统解决了传统(对称)加密方法中面临的两个主要挑战:密钥分配与数字签名。非对称算法使用一把密钥来加密数据,同时使用另一把相关的密钥来解密数据。这类算法具有一个重要的特点:

  • 仅知道加密密钥和加密算法是无法计算出解密密钥的。
  • 这两个密钥中的任意一个都可以用于加密,而另一个则用于解密。

非对称密码学利用数学函数来转换以数字形式表示的明文和密文,从而实现加密和解密。而对称密码学则通过符号替换或排列来实现加密和解密过程。在非对称密码学中,明文和密文都被视为整数,因此需要分别进行编码和解码操作才能实现加密与解密的功能。

非对称密钥密码系统的总体概念

非对称密钥加密技术的特点

安全责任

  • 在非对称加密中,安全性的责任主要落在接收者身上,比如Bob。
  • Bob必须生成一把私钥和一把公钥,其中公钥会被分发给整个社区。
  • 数据的传输是通过一种公钥通道来实现的。这种传输方式不需要保密性,但要求具备身份验证和完整性机制,以防止身份被冒用。

唯一的关键对

  • Bob和Alice无法共享相同的密钥对来进行双向通信。
  • 社区中的每个实体,包括Bob和Alice,都必须创建自己的私钥和公钥。
  • 艾丽斯使用鲍勃的公钥来加密发送给他的消息,而她则需要自己拥有的密钥对来回复这些消息。

关键管理

  • Bob只需要一个私钥,就可以从社区中的任何人那里接收消息了。
  • 而Alice则需要多个公钥,每个实体都需要一个公钥,以用于与相应的实体进行通信。
  • 这意味着,为了实现有效的通信,Alice需要拥有一组公共密钥。

关键组成部分

  • 明文这指的是被输入到加密算法中的原始、可读的信息或数据。
  • 加密算法该算法以多种方式对明文进行转换。
  • 公众还有私人的钥匙选择了一对密钥,这样,当其中一把密钥用于加密时,另一把密钥则用于解密。具体进行的转换方式取决于输入的是公钥还是私钥。
  • 密文最终生成的,是经过加密和乱序处理的密文。可以通过明文和密钥来恢复该密文。不过,如果使用的密钥不同,那么对于同一条明文或消息,所生成的密文也会有所不同。
  • 解密算法该算法会接收密文以及对应的密钥,然后恢复出原始的明文。

T的概念/定义Rapdoor单向函数

非对称密钥加密技术,其核心在于“陷门单向函数”的概念。我们可以把这个函数想象成数学中一种简单的规则:它从一组元素中取出某个元素,然后将其与另一组元素中的某个元素进行匹配。这就像是在两个集合之间建立联系一样,如下所示。

函数是一种规则,它将一个定义域映射到另一个值域。


现在,让我们来谈谈所谓的“单向函数”吧。这是一种特殊的函数,它具备两个重要的特性:

  • f这个函数很容易计算。同样,也可以说,x和y的关系可以表示为x = f(x),这种关系也很容易计算出来。
  • f−1这种计算非常困难。也就是说,给定 y 的情况下,要计算出 x = f 的值在技术上是不可能的。−1(y)

现在,让我们为我们的单向函数添加一种“秘密成分”,从而将其转变为“陷阱门单向函数”(TOWF)。这种函数具有第三个特性:

  • 如果给定了 y 和一个“陷门”(即秘密信息),那么 x 就可以被轻松计算出來。

如果你拥有“y”以及某个特殊的秘密信息(我们不妨称之为“陷阱”),那么你就很容易推断出“x”到底是什么了。所以,虽然通常情况下从“y”回到“x”是很困难的,但有了这个秘密信息之后,这个过程就变得容易多了。

我们可以将其表述为:坑洞单向函数是一种与可逆函数 f 相关的函数。p这样:

  • Y = fp如果已知p和X的话,那么(X)就很简单了。
  • X = fp-1(Y)很简单,只要知道p和Y的值就可以了。
  • X = fp-1如果Y是已知的,但p却不知道的话,那么(Y)就是不可行的。

主要术语/关键词

  • 非对称密钥:有两个密钥,一个属于公共领域,另一个属于私有领域。这两个密钥被一起使用来完成不同的任务,比如锁定或解锁信息,或者验证签名。
  • 公钥证书:这是一种由可信机构的私钥所签署的数字文档。该文档能够确认一个人的身份,并将其与相应的公钥关联起来。这意味着,该人确实拥有与公钥相关联的私钥。
  • 公钥(非对称)加密算法:这是一种用于编码信息的手段,它使用两个密钥:一个公共密钥和一个私有密钥。这种加密方式的设计使得从公共密钥推导出私有密钥变得极其困难。
  • 公钥基础设施(PKI):它包含了各种政策、程序、服务器平台、软件以及工作站等组件。这些组件共同用于管理证书以及公私钥对。此外,它还具备发布、维护以及撤销公共密钥证书的功能。

工作/运作

  • 关键词/重要事项生成/创造每个用户都会生成一对用于加密和解密消息的密钥。其中,其中一个密钥是公开的,可以存储在注册表或可访问的文件中的;而另一个密钥则保持为私有状态。用户可以从其他人那里获取这些公开的密钥。
  • 加密:发送方使用接收方的公钥来加密消息。这样,消息就被转换成无法读取的格式(即密文)。当Alice想要向Bob发送机密信息时,她会使用Bob的公钥来加密该消息。
  • 解密:接收者使用自己的私钥来解密加密后的信息,将其还原为原始的明文。当鲍勃收到这条消息后,他会用自己的私钥来对其进行解密。因为只有鲍勃拥有自己的私钥,所以他才能成功解密这条消息。

在这种设置中,所有参与者都拥有公钥,而私钥则是由用户本地生成的,且不会被泄露出去。只要用户的私钥保持安全且不被公开,那么收到的通信内容就是安全的。系统可以随时更换自己的私钥,并发布相应的公钥来替换旧的私钥。

算法

在非对称密钥加密技术中,使用了多种算法。其中一些算法如下:

  • RSA(Rivest–Shamir–Adleman算法)
  • 椭圆曲线密码学(ECC)
  • 迪菲-赫尔曼算法
  • DSS(数字签名标准)

RSA(Rivest–Shamir–Adleman算法)

它通常被用来确保通信的安全性,以及生成数字签名。在密钥的生成过程中,它使用大型整数质数作为密钥。它通过公钥对数据进行加密,而通过私钥来解密数据。虽然它的处理速度比其他一些算法要慢,但它的安全性却非常强。

密钥生成

  • 请选择两个较大的质数,分别记为 p 和 q。
  • 计算/运算n = p * q.
  • 计算 φ(n) = (p-1)(q-1),其中 φ 是欧拉函数。
  • 请选择一个整数e。1 < e < φ(n)以及gcd(e, φ(n)) = 1.
  • 计算 d,即 e 在 φ(n) 模下的模乘逆元。
  • 公钥:(e, n)
  • 私钥:(d, n)

加密

  • 将纯文本消息转换为整数 m。
  • 计算密文c = m^e % n.

解密

  • 请计算一下明文消息的内容。m = c^d mod n.

椭圆曲线密码学(ECC)

它为RSA提供了与较短密钥长度相当的同等保护。这一概念的背后,是基于椭圆曲线的数学特性。对于资源有限的设备来说,这种方法更为高效且易于实现。因此,这种技术在移动安全以及物联网领域越来越受到重视。

密钥生成

  • 请选择一个定义在有限域上的椭圆曲线。
  • 在曲线上选择一个基点,再选择一个较大的素数作为该基点的倍数。
  • 请选择一个私钥,这个私钥实际上是一个随机生成的整数k。
  • 现在,利用椭圆曲线的标量乘法,你需要通过将基点与私钥相乘来得到公钥。

加密与解密

  • ECC主要用于密钥交换,例如在椭圆曲线Diffie-Hellman算法中。它并不直接用于加密或解密操作。

迪菲-赫尔曼密钥交换

它并不直接对数据进行加密,而是为安全通信建立了一个共享的密钥。两个方可以在不直接交换密钥的情况下,共同生成一个共享的密钥。这种技术通常与其他算法(如RSA)结合使用,以实现密钥的交换。

密钥交换

  • 发送方和接收方都同意使用一个较大的素数 p,并且约定使用模 p 下的原根 g。
  • 各方各自选择一个秘密密钥:a和b。
  • 甲方负责计算公钥。A = g^a 模 p然后将其发送给乙方。
  • 乙方计算公钥。B = g^b mod p然后将其发送给甲方。
  • 双方共同计算出共享的秘密密钥:s = A^b mod p = B^a mod p .

安全性

  • Diffie-Hellman并不能提供有效的身份验证机制;它只是为双方之间建立了一个共享的秘密。

数字签名标准(DSS)

它采用了ElGamal加密算法的一种变体。这种技术主要用于数字签名,从而确保消息的真实性与完整性。发送方使用自己的私钥对消息进行签名,而接收方则使用发送方的公钥来验证该签名。这种技术常被用于安全的电子邮件以及软件签名方面。

密钥生成

  • DSS使用了数字签名算法(DSA),该算法依赖于有限域中的离散对数问题。
  • 请生成一个素数 p,以及 p-1的素因子 q。
  • 请选择一个生成器 g,使得……g^q mod p = 1.
  • 生成私钥 x,即一个介于 1 到 q-1 之间的随机整数。
  • 请计算一下公钥的值。y = g^x mod p.

签署/签订

  • 计算该消息的哈希值。
  • 生成一个随机数字 k,该数字应位于 1 和 q-1 之间。
  • 计算/运算r = (g^k mod p) mod q.
  • 计算 s = k-1*(哈希值 + x * r) mod q*
  • 这个签名就是这对坐标 (r, s)。

验证/确认

  • 重新计算该消息的哈希值。
  • 计算 w = s-1mod q.
  • 计算/运算u1 = (hash * w) % q还有u2 = (r * w) % q.
  • 现在,我们需要计算 v 的值。公式为:v = ((gu1* yu2) mod p) mod q.
  • 如果 v 等于 r,那就意味着签名已经得到了验证。

应用程序/软件

  • 加密/解密:消息使用接收者的公钥进行加密,这样只有预期的接收者才能解密这些消息。
  • 数字签名:发送者通过用自己的私钥对消息进行签名来确认消息的真实性,同时验证发送者的身份并确保消息的完整性。
  • 密钥交换各方合作,以安全地建立共享的会话密钥,从而实现加密通信。这可能需要使用其中一方或双方的私钥。

算法

加密/解密

数字签名

密钥交换

RSA

是的

是的

是的

椭圆曲线

是的

是的

是的

迪菲-赫尔曼算法

No

No

是的

DSS

No

是的

No

优点/好处

  • 增强的安全性:私钥是保密的,因此很难有人能够解密那些被截获的消息。
  • 安全的密钥分发:与需要安全传输的对称密钥不同,公钥可以公开共享,而不会影响安全性。

公钥密码分析

密码分析是一种研究加密系统的手段,其目的是了解这些系统的漏洞或弱点,进而试图破解或绕过这些安全措施。

在公钥加密方案中,密码分析确实存在一些挑战和风险。

  • 暴力攻击:想象一下,尝试每一种可能的按键组合来解锁那个挂锁吧。这真是……暴力攻击。公钥加密方式同样容易受到暴力攻击的威胁,这与对称加密方式类似。 解决方案类似:使用较大的键。 键的字符越庞大,正确猜测的难度就越大。 此外,公钥加密方式还依赖于复杂的数学运算。 随着密钥大小的增加,这些功能的使用难度也会随之增加,而且其运行速度也会变慢。 我们需要一个足够大的密钥长度,以抵抗暴力攻击,同时又能保证加密和解密过程的效率。 目前,公钥加密技术常被用于诸如密钥管理和数字签名等特定任务中。这是因为公钥加密技术在安全性与效率之间实现了良好的平衡。
  • 从公钥中找出私钥:理想情况下,私钥应该无法从公钥中推测出来。但从数学角度来看,目前还没有任何公开的密钥算法能够真正证明这一点,包括流行的RSA算法。这是一个需要关注的问题,因为未来可能会出现新的数学突破,从而破解这些系统。
  • 可能性消息攻击(仅适用于公钥系统)假设一个这条消息仅包含一个长度为56位的DES密钥。因此,攻击者可以利用公钥来加密所有可能的56位DES密钥,然后通过匹配密文来推断出加密后的密钥。因此,无论公钥方案的密钥长度如何,这种攻击最终都归结为对56位密钥的暴力破解。不过,可以通过在简单消息中附加随机比特来对抗这种攻击。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料