可交换加密(Commutative Encryption)
如果一个加密算法是 commutative 的,那么
另外,我们可以很容易地算出
大多数对称加密方案(如DES和AES)都不是 commutative 的。
1、SRA
SRA(Shamir、Rivest 和 Adleman。RSA 密码系统的创造者)是一种经典的通信加密。
假设 Alice 和 Bob 共享两个大素数 p,q 并计算相同的半素数 n=pq。
- Alice 生成她的加密密钥e1 和解密密钥 d1,有。
- Bob 生成他的加密密钥e2 和解密密钥 d2,有。
- 然后用 d1,d2 解密可以脱离 e1,e2 的加密顺序。
这就是 SRA 交换加密。
SRA非常像RSA,除了它是对称的,因为加密密钥 e1,e2 应该是私有的,而RSA是一个公钥密码系统。
Pohlig-Hellman exponential cipher
Pohlig-Hellman 指数密码是另一种通信加密方案。但是,它也非常像 SRA。提醒 SRA 使用模 n=pq ,而 Pohlig-Hellman 使用素数。与 SRA 一样,加密密钥和解密密钥都应该保密。
Pohlig-Hellman 的安全性基于离散对数问题,因此应该确保素数模数 p足够大,并且 φ(p)=p-1 有尽可能少的小因子(一个简单的方法:选择 p 使得 (p-1)/2 也是素数)。
Pohlig-Hellman 的性能很差,因为模数总是很大,比如 2048 位。另一方面,它是一种确定性方案,这意味着它在语义上不安全(回想一下,确定性加密永远不可能是 IND-CPA 安全的)。因此,Pohlig-Hellman 在实践中很少见.
算法步骤: