国密SM2算法的只求理解不求甚解 (1/5)前置数学知识:模运算
国密SM2算法的只求理解不求甚解 (2/5)前置数学知识:平面几何
国密SM2算法的只求理解不求甚解 (3/5)SM2算法数学模型
国密SM2算法的只求理解不求甚解 (4/5)SM2算法加解密协议
国密SM2算法的只求理解不求甚解 (5/5)SM2算法签名验签协议
模运算即为取余运算,运算符为mod或%,程序当中运算优先级低于加减运算。
-
等式简写:
a mod p = b mod p 可简写为 a≡b mod p -
基本运算
公式 | 举例 |
---|---|
正数取模 | 12 mod 23 = 12、56 mod 23 = 10、672 mod 23 = 5 |
负数取模 | -12 mod 23 = 11、-56 mod 23 = 13 |
分数取模(逆元) | 1/3 mod 23 = 16、因 1/3 = 3^-1,故16可以称为3在模23下的逆元 |
- 四则运算
法则 | 公式 | 举例 |
---|---|---|
加法 | a+b mod p = (a mod p) + (b mod p) mod p | 12+44 mod 23 = 56 mod 23 = 10、(12 mod 23) + (44 mod 23) mod 23 = 12+21 mod 23 = 33 mod 23 = 10 |
减法 | a-b mod p = (a mod p) – (b mod p) mod p | 68-12 mod 23 = 56 mod 23 = 10、(68 mod 23) – (12 mod 23) mod 23 = 22-12 mod 23 = 10 mod 23 = 10 |
乘法 | a*b mod p = (a mod p) * (b mod p) mod p | 12×56 mod 23 = 672 mod 23 = 5、(12 mod 23) × (56 mod 23) mod 23 = 12*10 mod 23 = 120 mod 23 = 5 |
次方 | a^b mod p = (a mod p)^b mod p | 56^2 mod 23 = 3136 mod 23 = 8、(56 mod 23)^2 mod 23 = 10^2 mod 23 = 100 mod 23 = 8 |
- 运算定律
定律 | 内容 | 举例 |
---|---|---|
加法交换律 | a+b mod p = b+a mod p | 44+12 mod 23 = 56 mod 23 = 10、12+44 mod 23 = 56 mod 23 = 10 |
乘法交换律 | ab mod p = ba mod p | 7×8 mod 23 = 56 mod 23 = 10、8×7 mod 23 = 56 mod 23 = 10 |
加法结合律 | (a+b mod p) + c mod p = a + (b+c mod p) mod p | (672+12 mod 23) + 44 mod 23 = (684 mod 23) + 44 mod 23 = 17+44 mod 23 = 61 mod 23 = 15、672 + (12+44 mod 23) mod 23 = 672 + (56 mod 23) mod 23 = 672+10 mod 23 = 682 mod 23 = 15 |
乘法结合律 | (ab mod p) * c mod p = a * (bc mod p) mod p | (7×8 mod 23) × 12 mod 23 = (56 mod 23) × 12 mod 23 = 1012 mod 23 = 120 mod 23 = 5、7 * (812 mod 23) mod 23 = 7 * (96 mod 23) mod 23 = 7*4 mod 23 = 28 mod 23 = 5 |
分配率 | (a+b mod p) * c mod p = (ac mod p) + (bc mod p) mod p | (7×8 mod 23) × 12 mod 23 = (56 mod 23) × 12 mod 23 = 10×12 mod 23 = 120 mod 23 = 5、7 × (8×12mod 23) mod 23 = 7 × (96 mod 23) mod 23 = 7×4 mod 23 = 28 mod 23 = 5 |
- 运算定理
定理 | 举例 |
---|---|
若a≡b mod p,则对于任意c,都有(a+c)≡(b+c) mod p | 28+10 mod 23 = 38 mod 23 = 15、120+10 mod 23 = 130 mod 23 = 15 |
若a≡b mod p,则对于任意c,都有(ac)≡(bc) mod p | 28×10 mod 23 = 280 mod 23 = 4、120×10 mod 23 = 1200 mod 23 = 4 |
若a≡b mod p,c≡d mod p,则 a+c ≡ b+d mod p,a-c ≡ b-d mod p | 280+38 mod 23 = 318 mod 23 = 19、1200+130 mod 23 = 1330 mod 23 = 19 ;280-38 mod 23 = 242 mod 23 = 12、1200-130 mod 23 = 1070 mod 23 = 12 |