CCC数字钥匙设计--什么是SPAKE2+?

1、SPAKE2+什么?

SPAKE2+是一种增强型的PAKE。英文全称为Simple Password Authenticated Key Exchange。

PAKE,英文全称为 Password Authenticated Key Exchange。

该协议运行在双方之间,用于在不泄露密码的情况下生成强共享密钥。 SPAKE2+是一个增强的PAKE协议,因为在协议执行期间只有一方直接使用密码。 另一方只需要协议执行时的验证值,而不需要密码。 验证值可以在脱机初始化阶段计算一次。 直接使用密码的一方通常是客户端,充当证明者。而另一方是服务器,充当验证者。  

2、PAKE是什么?

2.1  PAKE是什么?

PAKE,即Password-authenticated key agreement,密码认证秘钥协商。

在密码学中,PAKE是指:

  1. 两方或多方进行交互
  2. 基于一方或多方知悉某一共享密码建立的密码学秘钥。

2.2 有哪些增强型PAKE

增强型PAKE用于client-server场景,其中server端不存储与密码等效的数据。这就意味着窃取服务器数据的攻击者仍然不能伪装成客户机,除非他们首先密码执行暴力搜索。

增强型PAKE例子主要有:

  1. AMP
  2. 增强型EKE
  3. B-SPEKE
  4. PAK-X
  5. SRP
  6. AugPAKE
  7. OPAQUE
  8. SPAKE2+

3、SPAKE2+流程

SPAKE2+是一个两轮协议,它建立一个共享秘钥,并额外进行密钥确认。 在调用之前,向A和B提供运行协议所需的输入密码等信息。

为了通信交互ID信息、协议版本、与验证相关的PBKDF参数,可能会进行前导Preamble交换。

在第一轮中:

证明者A向验证者B发送一个共享pA

验证者B用自己公共共享pB进行响应。

然后证明者A和验证者B都派生出用于生成加密和身份验证密钥的共享密钥cB和cA。

cB和cA在第二轮中用于密钥确认。

B向A发送一个密钥确认消息cB, A用自己的密钥确认消息cA进行响应(注意pB和cB可以在同一消息中发送)。 在收到并验证这些关键确认消息之前,双方绝对不能认为协议已经完成。

CCC数字钥匙设计--什么是SPAKE2+?_第1张图片

4、总结

证明者A是客户端,直接使用密码,

验证者B是服务端,无需使用密码。

5、参考

  1. 参考文章:https://blog.csdn.net/mutourend/article/details/118929822
  2. 参考标准:SPAKE2+, an Augmented PAKE draft-bar-cfrg-spake2plus-02.pdf

你可能感兴趣的:(网络)