- 剩余系引理2: 若a , b, c为任意3个整数,m为正整数,且(m, c ) = 1, 则当ac ≡ bc (mod m) 时,有a ≡ b (mod m)
- 简单的证实:ac ≡ bc (mod m) 可得 ac – bc ≡ 0 (mod m) 可得 (a - b)c ≡ 0 (mod m) 由于m, c互质,c能够约去,a – b ≡ 0 (mod m) 可得 a ≡ b(mod m)
- 剩余系引理7: m是一个整数,且m > 1,b是一个整数且(m, b) = 1。若是a1, a2, a3, a4, … am是模m的一个彻底剩余系,则ba1, ba2, ba3, ba4, … bam也构成模m的一个彻底剩余系
- 简单的证实:若是不是彻底剩余系,则存在bai ≡ baj (mod m),因为b和m互质 能够得出ai ≡ aj (mod m) 矛盾
- p为质数
- p为质数
- p, q互质
![]()
- 证实:
![]()
- 由于GCD(km+r,m)=GCD(r, m) (gcd(a,b) = gcd(b,a mod b)),因此有
列是和m互质的
![]()
- 根据剩余系定理7得出每列有
和n是互质的
- 得证
![]()
![]()
![]()
消去律的证实 同 剩余系引理2 ![]()
- 若是两个正整数a和n互质,那么必定能够找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1
- a的 φ(n)-1 次方,就是a的模反元素
- KeyGen(密钥生成算法)
- 选择大素数p,q
计算欧拉函数
- 取e (1<e<N),计算e的模反元素d
- 公钥为PK=(N, e),私钥为SK=(N, d)
- Encrypt(加密算法)
- Decrypt(解密算法)
(
例子:算法
- 生成密钥
- p=61,q=53,n=p*q=3233,φ(n) = (p-1)(q-1)=3120
- e选择17,通常e会选择65537
- 计算e对于φ(n)的模反元素d:求解 ed - 1 = kφ(n) --> 17d + 3120y = 1
- 根据扩展欧几里得算法得出 (d,y)=(2753,-15)
- n=3233,e=17,d=2753,因此公钥就是 (3233,17),私钥就是(3233, 2753)
- 加密
- 假设信息m=65
- 解密
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。函数
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。加密
(3)n=pq。只有将n因数分解,才能算出p和q。.net
证实:
3d
- 证实等同于
- 证实等同于
- 证实等同于
- m和n互质的话直接根据欧拉定律获得,不互质时:
- 因为n等于质数p和q的乘积,因此m必然等于kp或kq,假设m = kp
- t为p的整数倍
- KeyGen(密钥生成算法)
- 同加密体制可是生成的秘钥通常不同
- Sign(签名算法)
- Verify(验证算法)
比较M和M'一致则验证成功