本文介绍了配对(pairing)在加密技术中的应用,重点讨论了基于身份的密钥交换和签名方案。配对作为一种双线性结构,使得身份加密成为可能,并展示了如何在不需要传统公钥的情况下实现密钥交换和签名。
这是关于加密的文章系列的一部分。如果这是你第一次看到的文章,我强烈建议你从 系列的开头 开始。
在我们 前一篇文章 中,我们了解了 pairings,这一结构开启了一些新的可能性,并且基于 identity 的一些独特加密方式。而我们也看到了 基于身份的加密 ( IBE ) 是如何工作的。
这次,我们将聚焦于更多的 pairing 应用示例,同时在这个过程中也会添加一些其他细节。
和上次一样,pairings 将被视为某种 黑盒,因为我们不关心如何计算它们——我们只会关注它们的 双线性 属性。
对于我们即将介绍的方法,必需有一定的设置或基础设施。这在 上次文章 中已经介绍过,但为了自成体系,这里我们将简要重申这个想法。
假设存在一个 私钥生成器 ( PKG ),负责从用户的 身份 中生成私钥,同时需要公开一些 系统参数。你可以查看 前一篇文章 以了解其工作原理和参数。
不再多说,我们开始吧!
如果你一直在关注这个系列,这听起来可能会很熟悉——因为我们已经在这个系列中 看到过 密钥交换方法。Diffie-Hellman 密钥交换 (DHKE) 算法是加密中的基本方法之一,对于任何使用对称密钥的场景至关重要。
自然,这是开始我们 基于身份的加密 之旅的好地方。
为了实现这一点,我们需要一种 特定 类型的 pairing ——有时被称为 自我-pairing。我们在 上一篇文章 中讨论过这个概念。不过,这里的思想简明易懂,可以在这里重复一下:我们不再假设输入来自两个不相交的群体,而是允许它们来自 同一组:
要使这成为可能,必须满足某些条件,但我们不必过于担心这一点,姑且假设这是可以做到的。为了我们的 sanity。
一旦我们手中有了 自我-pairing,密钥生成就相当简单。假设Alice (Alice) 和Bob (Bob) 想要生成相同的共享密钥。而他们已经获得了他们的 秘密钥匙:
策略很简单:如果我们可以找到两个 pairing 评估得出相同的结果——并且可以由Alice和Bob独立执行,那么我们就成功了。看看这是多么优雅:
或者简单地说:
Alice只需知道她的秘密钥匙和Bob的公钥,她就可以计算左侧的表达式。相反,Bob只需要Alice的公钥和他的私钥,他可以计算右侧的表达式。两者都得到相同的结果!真是令人惊叹。
迪菲-赫尔曼协议 可以扩展,使得多个参与者之间可以生成共享密钥。所以,假设我们有三个参与者想要生成相同的共享密钥。在...
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!