密码学基础:配对应用及其他

本文介绍了配对(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的公钥和他的私钥,他可以计算右侧的表达式。两者都得到相同的结果!真是令人惊叹。

扩展方案

迪菲-赫尔曼协议 可以扩展,使得多个参与者之间可以生成共享密钥。所以,假设我们有三个参与者想要生成相同的共享密钥。在...

剩余50%的内容订阅专栏后可查看

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
Frank Mangone
Frank Mangone
Software developer based in Uruguay. Math and Cryptography enthusiast.