PKCS#3 DH
Key Agreement
RFC2631 PKCS#3 Diffie-Hellman Key Agreement Method
a与b通过DH协商,得到共同的ZZ。
其中,ya/xa为a的key pair,yb/xb为b的key pair
\[ \begin{align}\begin{aligned}ZZ = g ^ (xb * xa) mod p = (yb ^ xa) mod p = (ya ^ xb) mod p\\ya = g ^ xa mod p\\yb = g ^ xb mod p\end{aligned}\end{align} \]
KEK : key-encryption key
KM = H(ZZ || OtherInfo),其中OtherInfo包含counter
根据需要计算拼接出所需长度的KEK
KM(counter=1) || KM(counter=2) || …
KEK 用于加密 CEK
CEK : content-encryption key
CEK用于加密实际content