幂、根与不可破密码
前面我们已经了解了k次幂和k次根。
对于一个同余式xk≡b( mod m)xk≡b( mod m) ,如果我们知道了k,b,m 且b和m互质,k和φ(m)φ(m)互质,则可求出解x
这里求解φ(m)φ(m) 是关键。即要对mm进行分解。这是设计许多密码的基础。
首先选取两个大素数 ,接下来将它们相乘得到模m=pqm=pq ,计算φ(m)=φ(p)φ(q)=(p−1)(q−1)φ(m)=φ(p)φ(q)=(p−1)(q−1)
再选取一个和φ(m)φ(m)互素的整数kk
现在我们向全宇宙公开数和kk,用和kk对信息进行加密。
例如对于一个百万级的数,可将信息写成6位数的表,信息数是a1,a2,...,ara1,a2,...,ar,下一步,使用逐次平方法(快速幂)计算ak1( mod m),...,akr( mod m)a1k( mod m),...,ark( mod m) ,这些值记为b1,b2,...,brb1,b2,...,br ,作为传输的数据。
有了b表如何求a表呢?即上一节所讨论的问题。即完成了加密和解密。
上面的加密方案的思想是很简单的一种:容易将两个大数乘起来,但是,很难将大数分解因数。
上述密码学方法称为公钥密码体制,由模m和指数k组成的加密密钥可公布于众,而解密方法是安全的。本节的思想称为RSA公钥密码体制。