overview

An Analysis of Hybrid Public Key Encryption

HPKE: Standardizing public-key encryption

RFC 9180 Hybrid Public Key Encryption

Deterministic Nonce-less Hybrid Public Key Encryption

IND-CCA2 secure ( chosen ciphertext attack )

方案比较简单,主要包含三部分:

  • Key Encapsulation Mechanism (KEM)
  • KDF
  • AEAD

key pair

skE, pkE : 发送方临时key pair

skS, pkS : 发送方长期key pair

skR, pkR : 接收方长期key pair

kem

base模式 Encap: 先基于skE&pkR计算dh,再用hkdf结合dh、kem的上下文信息(dh双方的公钥)派生share_secret;接收方必须获得enc(即pkE)

auth模式 AuthEncap: 先基于skE&pkR、skS&pkR分别计算dh并拼接,再用hkdf结合dh、kem的上下文信息(参与dh计算的三个公钥)派生share_secret; 接收方必须获得enc(pkE)

psk

基于share_secret,结合psk、info,派生key、base_nonceexporter_secret

注意,如果指定了psk,则对应psk模式、auth_psk模式

aead

key, base_nonce用于aead

aes-gcm, chacha20-poly1305

aead nonce misuse

management of AEAD counters: Rolling Sequence Window

Deterministic Authenticated Encryption (DAE): RFC5297 AES-SIV

exporter

exporter_secret用法与tls1.3的exporter类似。基于exporter_secret,结合上下文信息,派生出指定长度的密钥。

detail

Compact Representation

public key compact representation

DeriveKeyPair(ikm)

基于ikm派生key pair

nist curve显然要搞个for循环尝试

x25519/x448由于是扩张域,直接hkdf搞定

security

hpke不提供forward secrecy,这个主要是因为单向处理

vulnerable to key compromise impersonation attack,主要问题是skR、psk的安全性

此外,并未使用skS对(enc, ct)打签名

不搞algorithm agility就不会downgrade attack

有限的replay protection——密文流解密按顺序;其他不保证

psk_id, pkS都可能由于可标识,造成用户隐私泄漏。一种方法是使用base模式先加密一次psk_id+pkS获得(enc2, ciphertext2),再正常加密message获得(enc, ciphertext)。最终传递(enc2, ciphertext2, enc, ciphertext)。。。



Published

17 December 2020

Tags


Share On