第2012天:模运算

#每日三件事,第2012天#

模运算就是一个整数m,对模数n,计算余数。即:m mod n。模运算有如下性质:

(1)若q|(a-b),则a≡b (mod q) , 11 ≡4 (mod 7) , 18 ≡ 4(mod 7)
(2)(a mod q) = (b mod q) 意味a≡b mod q
(3)对称性,a≡b mod q等价于b≡a mod q
(4)传递性,若a≡b mod q 且b≡c mod q ,则a≡c mod q

模运算的结果永远在[0 -(n-1)]之间。

模运算是针对整数的运算。那么对于分数和其他一些特殊情况,比如1/2,2^{1/2},怎么计算呢?

1.分数求模运算

比如计算1/2 \ mod\ 7, 可以写成2^{-1} \ mod \ 7 ,根据费马小定理,a和p互素,则有a^{p-1} = 1 \ mod(p)2^{-1}mod7=2^{-1} * 2^6 mod7=2^5mod7=4

前提条件是a和p互素。

  1. 分数幂次方求模运算

比如计算\sqrt2mod 7,同理使用费马小定理,a和p互素,则有a^{p-1} = 1 \ mod(p) ,乘以2^6则有:\sqrt2 mod 7 = 2^{1/2}*2^6 mod 7 = 2^3 mod 7=1

在计算二次模余方程的根时,先计算是否是平方剩余,利用公式Z^{(p-1)/2},如果结果为1,则是平方剩余,有平方根;否则没有。平方根为±Z^{(p+1)/4}(p+1)/4不一定是整数,出现分数的可能性极大。因此需要根据费马小定理来计算幂为分数的模。

此为最近学习公钥密码算法时的一点体会。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容