跳到主要内容

5.1.2 Authentication Using a Pre-Shared Key (使用预共享密钥进行认证)

5.1.2 Authentication Using a Pre-Shared Key (使用预共享密钥进行认证)

此变体通过允许接收者认证发送者持有给定的 PSK 来扩展基本机制.PSK 还改善了某些对手模型中的机密性保证, 如 9.1 节中更详细描述的那样.我们假设双方都已配置了 PSK 值 psk 和另一个字节串 psk_id, 该字节串用于标识应使用哪个 PSK.

与基本情况的主要区别是 psk 和 psk_id 值用作 KDF 的 ikm 输入 (而不是使用空字符串).

PSK 必须具有至少 32 字节的熵, 并且应该为 Nh 字节或更长的长度.有关更详细的讨论, 请参见 9.5 节.

def SetupPSKS(pkR, info, psk, psk_id):
shared_secret, enc = Encap(pkR)
return enc, KeyScheduleS(mode_psk, shared_secret, info,
psk, psk_id)

def SetupPSKR(enc, skR, info, psk, psk_id):
shared_secret = Decap(enc, skR)
return KeyScheduleR(mode_psk, shared_secret, info, psk, psk_id)