公钥算法的基本数论知识
公钥密码学中大部分引用了数论的成果,所以必要在介绍RSA密码体制之前,详细介绍一下所使用的几个数论的知识点
欧几里得算法
欧几里得算法主要是解决最大公约数问题,记两个正整数 r0 和 r1 的 gcd 表示:
gcd(r0,r1)
在公钥体系中,安全性依赖于大整数的因式分解通常是不可能的。所以人们通常使用一种更有效的算法计算gcd,即欧几里得算法,此算法基于一个简单的观察:
gcd(r0,r1)=gcd(r0−r1,r1)
其中,假设 r0>r1 ,且二者均为正整数,不难理解:
gcd(r0−r1,r1)=gcd(g⋅(x−y),g⋅y)=g
显然地,只要满足 (r0−mr1)>0 ,那么可以得到:
gcd(r0,r1)=gcd(r0−