简介
公钥加密也被称为非对称加密。下面是一个例子:
- Bob生成一个密钥对,发布他的公钥, 保管密钥 私有的
- Alice使用 加密明文M,得到密文C,并将其发送给Bob
- 假设: 是真实的
- Bob使用 解密密文C得到M
- 目标:保密
密钥生成算法生成的密钥对由两部分组成,即允许公开的公钥和必须保密的私钥。
IND-CPA安全
加密方案有3种算法:
- 对手被给予
- 它可以运行, 即免费的加密查询(不同于对称加密)
- 不可区分性:对手获胜的概率与偶然获胜的概率相差可忽略不计,比如二分之一。确定性PKE不能是IND-CPA。
IND-CCA安全
- 对手被给予 以及访问解密预言机
- 它可以运行 它本身
- 它可以要求解密除质询密文之外的任何密文
- 不可区分性:对手获胜的概率与偶然获胜的概率相差可忽略不计,比如二分之一。
- IND-CCA相当于非延展性,即能够为相关明文找到密文。
ElGamal加密
ElGamal加密方案
- 密钥生成:随机选取, 设置ℎ =
- 解密:给定一个密文 = (1,2) ,将明文恢复为:
最终式:
NIST ElGamal密钥大小建议