我正在尝试使用crypto++ wiki中的示例进行 ecies 加密,它符合 IEEE P1363 的方案版本。ETSΙ ΤS 102 941 v1.3.1 标准中描述的方案的前两个步骤是:
发送者在 [1, q-1] 中生成一个临时私钥 r,...
发送方从接收方加密公钥 Kr 中导出共享秘密 S。S = Px,其中...
但是,在 crypto++ 示例中,第一行是:
ECIES<ECP>::Decryptor d0(prng, ASN1::secp256r1());
PrintPrivateKey(d0.GetKey());
ECIES<ECP>::Encryptor e0(d0);
PrintPublicKey(e0.GetKey());
它使用私有的解密器并将加密器基于它。我看不出它如何匹配算法的步骤。
此外,wiki 声明加密函数返回一个元组 {K,C,T},其中 K 是加密的公共秘密,C 是密文,T 是身份验证标签。但是,在示例中,它们没有被检索到,我不知道它们是如何检索的。
任何见解和帮助将不胜感激。谢谢!