Goldwasser–Micali Cryptosystem
今天看了一个新的密码系统Goldwasser–Micali Cryptosystem,名字很复杂,原理很简单,记录一下!
Goldwasser–Micali Cryptosystem是基于概率加密,什么是概率加密呢?举个简单的例子,我们通常把加密中,发送方记为Alice,接收方记为Bob, 截取破解方称为Eve.
如果A通过公钥加密系统加密信息,然而只想发送0,1给B,那么他只需要加密两个数0,1
所以E所做的很简单,就是用同样的加密系统加密0, 1,然后和A的密文作比较,对比得出明文。
为了解决问题,Goldwasser and Micali发明了新密码。其实现在于每次传输明文m时选择一个随机字符串r,然后用B的公钥加密(m, r)
r在其所有可能的值之间变化。假如有两个明文m1, m2,其密文范围就为
在实际加密方案中,它每次只用来加密1位,尽管有点不切实际,,但是很安全。
加密方案如下:
对于B来说, 他知道N = pq, 他就可以轻松解出这个密码,因为
然而E只知道N, 只能计算
然而可能得到-1.1这并不能告诉他a是模N的二次剩余。所以,利用这一点,概率密码出生了!
密钥选择:
加密:
解密:
下面做一个简单的证明,
然而对于EVE来说,他只有N的值,
所以肯定拿不到明文啊。只不过需要按位加密,这里也很好实现,代码如下
1 | c = [] |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Comment