1.乘法逆元

A.定义

如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p的乘法逆元为x。

既然有ax≡1 (mod p),那么有ax - py = 1,x是a关于模p的乘法逆元。

B.分数的乘法逆元

对于实数域,一个数的乘法逆元就是其倒数,所谓乘法逆元就是相乘等于单位元的那个数。

对于ecc算法的离散曲线域,m的乘法逆元为n,满足m * n = 1 (mod p),即满足m*n mod p = 1 mod p,称作n就是m关于的p乘法逆元。在离散曲线域中,单位元就是1。如果在离散曲线域碰到一个表达式2/5,单纯的碰到一个表达式2/5没有任何意义,要看mod数是多少,如果是10,那么a=2/5的真正值是求5关于10的乘法逆元,然后再乘以2 md 10。

2.负数的取模运算

在整数范围内,自然数的求余法则并不被很多人所接收,大家大多认可的是下面的这个定义2。

如果a与d是整数,d非零,那么余数r满足这样的关系:a = qd + r,q为整数,且0 <= |r| <|d|

根据定义. 7 = (-3)*(-2) + 1或7 = (-3)*(-3)-2,所以余数为1或-2,在ecc算法的离散曲线域中,我们只考虑非负整数所以这里余数会取1。

3.推演

例如:求5关于模72的乘法逆元。

5X - 72Y = 1

解:72 = 14 *5+2

5 = 2*2 + 1

2 = 2*1 + 0

所以有1 = 5 - 2*2

= 5 - 2* (72-14*5)

= 5 - 2*72 + 28*5

= 29*5 - 2*72

最后有乘法逆元为29。

例如:求-1/2在离散曲线域(E23(1,1))中的值。

解:首先求2关于模23的乘法逆元为

2X-23Y = 1

23 = 11*2 + 1

2 = 2*1 +0

所以有1 = 23- 2*11 = 23 * (2-1) - 2*11 = 12*2 - 23,得乘法逆元为12

然后求 (-1 )*12 mod 23 ,因为有 (-12)*(-1) + 11 = 23,所以得值为11。

5.备注

以上为研究ecc算法推导的基础知识难点,有这些概念才能更好的理解ecc算法。

分数的乘法逆元和负数的取模运算相关推荐

  1. python负数取模_负数的取模运算

    我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的.例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1. truncate除法 && ...

  2. java求负数取模_负数参与取模运算

    学习Python看到数值运算这部分,看到取模运算,原来不仅正数负数都可以取模,浮点数,甚至复数都可以取模: 对于x%y, 如果都是整数,则返回x/y的余数: 如果是浮点数,返回的是x - int(x/ ...

  3. 取模运算(包括负数)

    取模运算只能运用于整数运算,得到余数. 负数的取模运算: 如果第一个操作数为负数,则得到的模也是负数:如果第一个操作数是正数,则得到的模也是正数.与第二个操作数的正负没有关系,只跟第一个操作数有关.实 ...

  4. python的取负运算_python 负数取模运算实例

    举例: 340%60 = 40 ,怎么来的? 340 - 60*5 = 40 340 - (比340小的那个可以被60整除的正整数) =. 40 如果是负数: -340%60 = -340 - (比- ...

  5. php 求余 负数,PHP的求余(取模)运算

    这篇文章主要介绍了关于PHP的求余(取模)运算 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 先来看下个小案例:$n = 8.45; $result = $n*100; echo g ...

  6. 取模运算总结 - 数论

    引入 编程竞赛有相当一部分题目的结果过于庞大,整数类型无法存储,往往只要求输出取模的结果. 例如(a+b)%p,若a+b的结果我们存储不了,再去取模,结果显然不对,我们为了防止溢出,可以先分别对a取模 ...

  7. 大数取模运算,快速幂取模运算

    1.快速幂取模 http://www.cnblogs.com/yinger/archive/2011/06/08/2075043.html 快速幂取模就是在O(logn)内求出a^n mod b的值. ...

  8. java中的取模和取余_取模运算

    本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 取模运算是求两个数相除的余数.[1] 取模运算("Modulus Operation")和取余运算(&qu ...

  9. java个人学习笔记:取模运算 整数除运算 +运算

    如果对负数取模,可以把模数负号忽略不记,如:5%-2=1.但被模数是负数则不可忽略.此外,取模运算的结果不一定总是整数. 对于除号"/",它的整数除和小数除是有区别的:整数之间做除 ...

最新文章

  1. ROS Indigo下安装测试Xtion Pro
  2. Android之布局RelativeLayout
  3. BS程序代码与安全与基本攻击/防御模式
  4. Javascript Throttle Debounce
  5. [Windowns C]递归遍历指定目录下的子目录和文件
  6. 100个WordPress常用插件精选
  7. LaTeX常用的符号
  8. Lidar Studio点云处理与分析软件V1.1
  9. Qt编写onvif搜索和云台控制工具源码
  10. linux的镜像文件有什么用,【iso】iso是什么?iso是什么意思?
  11. 计算机技术在图形图像处理中的应用,计算机图形图像处理技术综述
  12. 协议实例说明--租房
  13. 数学中倒三角:梯度;正三角:拉普拉斯
  14. PGM学习之四 Factor,Reasoning
  15. 高清HDMI高清编码器(HDMI网络传输器)使用及前景
  16. 控制极限(UCL,LCL) 和规格极限(USL,LSL)
  17. 配置Ubuntu以及ssh
  18. html不间断滚动图片,不间断循环滚动图片,jsp网页代码
  19. 法里昂第一大学一座大楼楼顶爆炸起火 致至少3人伤
  20. windows计算机管理快捷键,windows系统常见快捷键大全

热门文章

  1. 十二、泛型、反射和异常
  2. MACIOS Socket编程
  3. 数据结构——树的C语言实现
  4. 存储器容量扩展——位扩展、字扩展
  5. JSP中get和post请求方式的区别及乱码解决方法
  6. 网页字段位置php改变,php实现子字符串位置相互对调互换的方法
  7. docker port如何增加端口_docker部署redis实战
  8. python关系运算符和逻辑运算符的优先级_python中逻辑运算符的优先级问题
  9. 装入归档文件时出现了一个错误linux_静态链接与动态链接(Linux)
  10. python自动搜索请求失败_http请求 request失败自动重新尝试代码示例