学习理解:椭圆曲线集成加密框架 ECIES

ECIES 加密算法

基本过程

  1. 发送方 Alice 和接收方 Bob 分别利用椭圆曲线密钥函数生成各自的密钥对( R,S) ,( P,Q)
方法1:密钥对生成(KG)
  • 建立椭圆群 Ep ( a,b) ,选取椭圆曲线 E: y2 = x3 + ax + b( mod p)
  • 在椭圆群 Ep 中选择点 G = ( Gx,Gy ) ,G 符合条件 n·G = O,n 代表大素数, O 代表无穷远点
  • 确定私钥,通常将小于 n 的整数 d 确立为私钥
  • 确定公钥,依据公式 P = d·G,得到公钥 P
  1. 发送方 Alice 利用自己的私钥 S 和 Bob 的公钥 P 进行密钥协商,生成共享密钥 P·S
  2. 经过KDF密钥派生模块生成两个密钥Mk,Ek,其中密钥Mk 用于签名生成摘要,Ek 用于明文数据加密
方法2:密钥派生函数 (KDF)

密钥派生函数( KDF) :一个将字符密码(Password)转换成密钥(Key)的函数

  1. 发送方Alice利用上述生成的加密密钥Ek 在Enc加密模块中对明文数据M进行加密操作,得到密文ME
方法3:加密算法 (ENC)

该算法采用 128 位的密钥长度,每隔128 位,消息被分为一组。采用不同顺序的轮密钥,互为逆操作,同时非线性迭代结构被应用于加密过程

  1. 密文 ME 在 签字算法 MAC 模块中通过密钥 Mk,为密文打上标签,生成摘要 D
  2. 发送方 Alice 将公钥 R,密文 ME,标签 D 打包发送给接收方 Bob

ECIES解密算法

基本过程

  1. 接收方Bob接收到密文数据后,首先拆包,得到公钥R,密文ME,标签 D
  2. Bob 同样使用自己的私钥 Q 和发送方 Alice 的公钥 R,经过 KA 密钥交换和 KDF 密钥派生模块生成共享密钥对 Mk,Ek
方法1:密钥派生函数 (KDF)

密钥派生函数( KDF) :一个将字符密码(Password)转换成密钥(Key)的函数

  1. Bob 利用密钥 Mk,通过 签字算法MAC 模块,得到密文的标签值 D’
  2. 比较 D 与 D’ 的值是否一致,如果不一致,则表示接收的信息是不完整的
  3. 如果一致,则利用上述生成的密钥 Ek 在加密算法 ENC 模块中解密密文 ME 得到明文 M
方法2:加密算法 (ENC)

该算法采用 128 位的密钥长度,每隔128 位,消息被分为一组。采用不同顺序的轮密钥,互为逆操作,同时非线性迭代结构被应用于加密过程

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值