质数域的算数运算[通俗易懂]

质数域的算数运算[通俗易懂]本文介绍了在质数域FpF_pFp​中的算数运算执行算法。包括任意质数p的算法,当模数p具有特性形式时,该算法揭示约化步骤的执行效率能够获得提升;还提出了针对NIST质数的高效约化算法,对诸如p=2192−264−1p=2^{192}-2^{64}-1p=2192−264−1形式的质数具有适用性。本文提出的算法尤适合软件执行。假设工作台通常为64位或32位,算法运行在WWW-位(W-位,W是8的倍数)框架基础上。低位或更廉价的组件的W值更小,比如嵌入式系统一般是16位,智能卡一般是8位。W-位的位数词U从0

“有限域算数运算”介绍了有限域的基本概念,进一步阐述了椭圆曲线系统的三种经典有限域(质数域,二元域和扩展域)以及其相应的算数运算方法(加法,减法,乘法和求逆运算)。本文重点阐述在质数域 F p F_p Fp​中的算数运算执行算法,包括任意质数p的算法,当模数p具有特性形式时,该算法揭示约化步骤的执行效率能够获得提升;还提出了针对NIST质数的高效约化算法,对诸如 p = 2 192 − 2 64 − 1 p=2^{192}-2^{64}-1 p=2192−264−1形式的质数具有适用性。
以上算法适合软件执行:假设工作台通常为64位或32位,算法运行在 W W W-位(W-位,W是8的倍数)框架基础上。低位或更廉价的组件的W值更小,比如嵌入式系统一般是16位,智能卡一般是8位。W-位的位数词U从0到W-1编号,个位数约定为位0。
F p F_p Fp​的元素是从0到 p − 1 p-1 p−1的整数。用 m = [ log ⁡ [ 2 ] p ] m=[\log [2]{p} ] m=[log[2]p]表示p的位数, t = [ m / W ] t=[m/W] t=[m/W]表示字节长度。下图展示的例子是用二进制存储单元 A = ( A [ t − 1 ] , . . . , A [ 2 ] , A [ 1 ] , A [ 0 ] ) A=(A[t-1],…,A[2],A[1],A[0]) A=(A[t−1],...,A[2],A[1],A[0])表示字节长度t的元素a。其中,整数a表示为: a = 2 ( t − 1 ) W A [ t − 1 ] + . . . + 2 2 W A [ 2 ] + 2 W A [ 1 ] + A [ 0 ] a=2^{(t-1)^W}A[t-1]+…+2^{2W}A[2]+2^WA[1]+A[0] a=2(t−1)WA[t−1]+...+22WA[2]+2WA[1]+A[0]。
字节元素存储

加法和减法

我们按照用多字节表示整数的方法来介绍有限域的加法和减法算法。以下是常用的术语定义,对于整数 ω \omega ω, ” ( ε , z ) ← ω ” ”(\varepsilon ,z)\leftarrow \omega” ”(ε,z)←ω”有如下约定:
z ← ω m o d    2 W z\leftarrow \omega \mod 2^W z←ωmod2W 且 ε ← 0 \varepsilon \leftarrow 0 ε←0 如果 ω ∈ [ 0 , 2 W ) \omega \in [0,2^W) ω∈[0,2W),否则 ε ← 1 \varepsilon \leftarrow 1 ε←1。
对任意 x , y ∈ [ 0 , 2 W ) x,y\in [0,2^W) x,y∈[0,2W)如果 ω = x + y + ε ′ \omega = x+y+\varepsilon ‘ ω=x+y+ε′且 ε ′ ∈ 0 , 1 \varepsilon ‘\in {0,1} ε′∈0,1,于是 ω = ε 2 W + z \omega =\varepsilon 2^W+z ω=ε2W+z,且 ε \varepsilon ε称为单字节加法的传送位(carry bit, ε = 1 \varepsilon =1 ε=1当且仅当 z < x + ε ′ z<x+\varepsilon ‘ z<x+ε′)。
多字节整数加法的算法描述如下。
在这里插入图片描述需要指出的是,处理传送指令的处理器并不一定需要对传送处理进行事无巨细的检查。多字节减法与加法操作类似,只是将传送位改称为借位而已。
质数域的算数运算[通俗易懂]
加法模运算 ( ( x + y ) m o d    p ) ((x+y)\mod p) ((x+y)modp)和减法模运算 ( ( x − y ) m o d    p ) ((x-y)\mod p) ((x−y)modp)都适用于以上的算法,只是将加法替换成减法并取模。
质数域的算数运算[通俗易懂]

整数乘法

a , b ∈ F p a,b\in F_p a,b∈Fp​的有限域乘法能够通过 a a a和 b b b的乘积,得到一个整数值,然后采用约化模p来获得结果。以下算法展示了整数乘法的思路,包括基本的操作数乘法扫描方法。每种算法都是通过用 W W W-位连接将U和V连接起来,将 ( U V ) (U V) (UV)表示成一个 ( 2 W ) (2W) (2W)-位的量。
质数域的算数运算[通俗易懂]
在步骤2.2中, C [ i + j ] + A [ i ] ⋅ B [ j ] + U C[i+j]+A[i]\cdot B[j]+U C[i+j]+A[i]⋅B[j]+U称为内积操作。操作数是W-位值,内积的界限是 2 ( 2 W − 1 ) + ( 2 W − 1 ) 2 = 2 2 W − 1 2(2^W-1)+(2^W-1)^2=2^{2W}-1 2(2W−1)+(2W−1)2=22W−1,表示为 ( U V ) (U V) (UV)。以下算法描述了内积 c = a b c=ab c=ab从右到左的计算方法。正如前述算法所示,W-位的 ( 2 W ) (2W) (2W)-位内积的操作数是必须的,包括 R 0 , R 1 , R 2 , U R_0,R_1,R_2,U R0​,R1​,R2​,U和V。
质数域的算数运算[通俗易懂]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234646.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JVM内存结构面试问题及解答[通俗易懂]

    JVM内存结构面试问题及解答[通俗易懂]以下是jvm内存的常见面试问题:1、JVM管理的内存结构是怎样的?2、不同的虚拟机在实现运行时内存的时候有什么区别?3、运行时数据区中哪些区域是线程共享的?哪些是独享的?4、除了JVM运行时内存以外,还有什么区域可以用吗?5、堆和栈的区别是什么?6、Java中的数组是存储在堆上还是栈上的?7、Java中的对象创建有多少种方式?8、Java中对象创建的过程是怎么样的?9、Java…

    2022年5月12日
  • 年度总结与来年计划_2016年一2021的工作总结

    年度总结与来年计划_2016年一2021的工作总结  光阴似箭,日月如梭!眨眼间已到年底,今年感慨颇丰,获益良多。因为我认为努力了就肯定会有收获,哪怕是收获那一滴滴辛勤的汗水。  我在公司任务轻松时,加了些前端群(重点推荐豪情群),在群里分享技术以及生活的点滴,同时认识了一些志同道合的朋友。有大牛建议我体验一番分享的乐趣,于是我下下半年开始写博。虽质量不高,但其中的乐趣博友们应该都能感受到。写完每篇博文后,我都能体会到了在这个浮躁的时代我平静…

    2022年9月3日
  • 小树311_森林小道

    小树311_森林小道原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

    2022年8月9日
  • 大数据时代 百度对外分享海量数据处理技术

    大数据时代 百度对外分享海量数据处理技术

    2021年8月17日
  • 软件测试(3) UFT12使用_GUITest

    软件测试(3) UFT12使用_GUITest环境:UFT12,Win10,VS2015&VS2017启动UFT12,为了启动方便修改快捷方式。设置插件,WPF相关的都设置起来。新建项目点击录制按钮(F6),设置启动程序。确定,开始录制。程序启动,显示登录界面。操作:切换IP,点击按钮,登录。点击工具栏按钮,停止录制。点击运行按钮(F5)。

    2022年5月27日
  • 老鼠吃奶酪(老鼠图片大全)

    老鼠吃奶酪(老鼠图片大全)本总结是是个人为防止遗忘而作,不得转载和商用。题目        一只老鼠位于迷宫左上角(0,0),迷宫中的数字9处有块大奶酪。0表示墙,1表示可通过路径。试给出一条可行的吃到奶酪的路径;若没有返回空。        假定迷宫是4连通的,即:老鼠只能上下左右走,不能斜着走。                  算法描述        这实际上就是练习深度优先搜索。

    2022年4月18日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号