【问题标题】:Digital signature public key [closed]数字签名公钥[关闭]
【发布时间】:2011-12-27 23:24:54
【问题描述】:

我是加密新手。

在公钥密码学中,我们有一对密钥——一个用于加密,一个用于解密。

如果 Alice 希望 Bob 发送她的秘密消息,她会公布她的加密密钥(称为公钥)并将解密密钥保密(称为私钥)。 Bob 使用 Alice 的公钥加密消息,Alice 使用她的私钥解密 Bob 的消息。

到目前为止,我认为我们都同意。

现在让我们看看签名会发生什么。 Alice 想向 Bob 发送一条消息并对其进行签名,以证明 Bob 该消息属于她的 Alice。签名旨在解决身份验证问题。使用公钥密码术,签名是用 Alice 私钥加密的消息摘要(例如校验和),并由 Bob 用 Alice 公钥解密。由于只有 Alice 知道它的私钥,Bob 可以确定消息来自 Alice。

这是如何解释签名here:

RSA 等一些非对称算法(公钥算法)允许 反方向工作的过程也是如此:一条消息可以 用私钥加密并用相应的密钥解密 公钥。如果收件人想用 Bob 的 公钥他/她必须知道消息来自 Bob,因为 没有其他人拥有发件人的私钥。数字签名工作这个 方式。

我很困惑的是,Alice 用来加密签名的私钥是什么? 因此,我们使用的签名:

  1. 相同组密钥,用于从 Bob 向 Alice 发送安全消息, 这意味着 Alice 用来解密从 Bob 收到的消息的同一私钥可以 用于加密消息摘要,由 Alice 发送回 Bob 或 ...
  2. 附加对用于签署 Alice 消息的加密/解密密钥,其中 Alice 发布该对的解密密钥。

【问题讨论】:

  • 在这里查看答案:stackoverflow.com/questions/5133246/…
  • 对于 RSA,加密和解密密钥在功能上是相同的。我们通常区分公共(加密/验证)和私有(解密/签名)密钥。公开的通常有点短,因为它使用一个小的标准指数。

标签: cryptography public-key-encryption


【解决方案1】:

您只能拥有一对密钥,并且只能发布一个公钥,该公钥可用于加密发送给您的消息并检查您创建的消息签名。设置可以更复杂,为不同目的添加额外的键/子键,但这不是必需的。

【讨论】:

  • 那么,你的意思是有问题的选项1是可能的?这意味着消息可以用同一个私钥加密/解密,也可以用同一个公钥解密/加密?
  • 是的,这是可能的,并且在现实生活中使用过。
  • @wRAR:但我认为在加密和签名场景中都使用非对称密钥是一个非常糟糕的主意。对于想要解密消息的攻击者来说,滥用签名部分作为“解密预言机”太容易了。
【解决方案2】:

将签名解释为“用私钥加密”是错误。嗯,大部分。这是对 RSA 签名如何工作的传统解释,但实际上它与 RSA 签名的工作方式真正不匹配,因为有“填充”之类的东西,就是将数据元素转换为大整数然后回来。填充的细节对于安全性至关重要——您不会将相同的填充用于加密和签名。

此外,将签名视为“用私钥加密”的观点仅适用于使用“陷门置换”的非对称算法,而许多签名算法则不能(例如DSA)。所以我建议忘记那个解释,它充其量是令人困惑的。

签名算法是使用私钥在给定消息上生成的。它通过消息和公钥进行验证;如果公钥与用于生成签名的私钥对应,则验证算法只有在这是相同的消息时才会说“ok”(或者,更准确地说,在计算上找到一个不同的消息是不可行的)验证算法仍将接受的消息)。所以签名是一种“非对称”算法,因为它们使用一对密钥,一个是公开的,另一个是私有的。

有几种密钥对类型(实际上是 RSA 密钥对)可用于签名和加密(分别使用 RSA 签名算法和 RSA 加密算法——它们不是同一种算法,尽管它们共享相同的数学核心运算)。您可以在技术上为两者使用相同的密钥对;但是,不推荐

  • 由于算法之间的交互,可能存在隐含的弱点。关于该主题的研究很少。尽管填充差异应该阻止这些,但没有证据。

  • 加密密钥和签名密钥具有不同的生命周期。详情见this answer(简而言之:你要备份加密私钥,而不是签名私钥,所以它们不能是同一个密钥)。

  • 如果在 RSA 中发现了一些严重的弱点,您可能希望将您的密钥替换为其他算法的密钥,并且无法保证替换的加密和签名算法仍然能够共享相同的密钥类型.

【讨论】:

  • 在数学上是否可以同时使用 Diffie-Hellman 进行加密和签名以及 RSA?
  • Diffie-Hellman 不是非对称加密算法本身;它是一种密钥交换算法(它就像一种非对称加密,您无法选择加密的数据);但如果将它与对称加密(称为IES)结合起来,效果几乎一样好。从数学上讲,您可以为 DSA 和 DH 使用相同的密钥对,但没有人这样做(在相关标准中,DSA 密钥和 DH 密钥的标记不同)。
猜你喜欢
  • 2023-03-10
  • 2017-02-18
  • 2020-02-02
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-25
  • 1970-01-01
相关资源
最近更新 更多