前言
在密碼學中,求餘是非常重要的操作,比如在DH算法中,就主要利用了求餘的算法。本文就餘數計算和相關性質進行介紹。
定義
給定 a,b,q,r∈Z, 其中 b=0,0≤r≤b, 滿足 q×b+r=a,則稱 r 是 a 除以 b 的餘數,記作 a÷b=q⋅⋅⋅r。當 r=0 時,稱 a 可以被 b 整除。
推理
根據 a÷b=q⋅⋅⋅r,對表達式中的4個變量求法分別如下:
1)a=b×q+r
2)b=(a−r)÷q
3)q=(a−r)÷b
4)r=a mod b (也記爲 a % b)
性質
給定 a,b,c,r∈Z 且 c=0,0≤r≤c,則有以下三個性質。
性質1 若 a mod c=b mod c,則 (a−b) modc=0。當 a−b 改爲 b−a時,結論同樣成立。
示例:如 22 mod 7 = 1, 15 mod 7 = 1,則(22-15) ÷ 7 = 0 或 (15-22) ÷ 7 = 0。
性質2 若 (a+c) mod b=r, 則 ((a mod b)+(c mod b)) mod c=r。當正號改爲負號時,等式同樣成立。
示例:如 (3 + 8) mod 5 = 1,而 ((3 mod 5) + (8 mod 5)) mod 5 = (3 + 3) mod 5 = 1。
當正號變負時,(3-8) mod 5 = 0, 而 ((3 mod 5) - (8 mod 5)) mod 5 = 0 mod 5 = 0。
性質3 (a×c) mod b=(a mod b)×(b mod b)。當 a mod c=0 時,乘號改爲除號由於不能保證整除,所以無法保證成立。
示例:(7 × 9) mod 5 = 3,而((7 mod 5) × (9 mod 5)) mod 5 = (2 × 4) mod 5 = 3。