ECIES 混合加密方案

许多密码标准都以椭圆曲线集成加密方案ECIES)的名称,对一种与前面所演示代码类似的混合加密方案进行了标准化,例如 SECG SEC-1ISO/IEC 18033-2IEEE 1363aANSI X9.63ECIES 是一种公钥认证加密方案,其工作方式与上述代码示例类似,但它使用 KDF(密钥派生函数)从 ECDH 共享秘密中分别派生 MAC 密钥和对称加密密钥。它有许多变体。

ECIES 标准将基于 ECC 的非对称密码学对称密码结合起来,使用接收方的 EC 公钥加密数据,并使用对应的 EC 私钥解密数据。ECIES 加密方案将 ECC 密码学(公钥密码系统)+ 密钥派生函数(KDF)+ 对称加密算法 + MAC 算法组合在一起,如下图所示:

ECIES 加密的输入由接收方的公钥 + 明文消息组成。输出由发送方的临时公钥(密文公钥)+ 加密消息(密文 + 对称算法参数)+ 认证标签(MAC 码)组成:

  • ECIES-encrypt(recipientPublicKey, plaintextMessage){ cipherTextPublicKey, encryptedMessage, authTag }

ECIES 解密接收加密输出 + 接收方私钥,并生成原始明文消息或检测问题(例如完整性 / 认证错误):

  • ECIES-decrypt(cipherTextPublicKey, encryptedMessage, authTag, recipientPrivateKey, )plaintextMessage

ECIES 加密方案是一个框架,而非某种具体算法。可以通过组合不同算法来实现它,例如使用 secp256k1P-521 椭圆曲线进行公钥计算 + 使用 PBKDF2Scrypt 作为 KDF 函数 + 使用 AES-CTRAES-GCMChaCha20-Poly1305 作为对称密码和认证标签 + 使用 HMAC-SHA512 作为 MAC 算法(用于未经认证的加密时)。

下一节将通过代码示例演示如何在实践中使用 ECIES。

results matching ""

    No results matching ""