[发明专利]改进的二进制左移模逆算法有效
| 申请号: | 201310261694.X | 申请日: | 2013-06-27 |
| 公开(公告)号: | CN103336680A | 公开(公告)日: | 2013-10-02 |
| 发明(设计)人: | 李树国;马帅 | 申请(专利权)人: | 清华大学 |
| 主分类号: | G06F7/72 | 分类号: | G06F7/72 |
| 代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 贾玉健 |
| 地址: | 100084 北京市海淀区1*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 改进 二进制 左移模逆 算法 | ||
1.一种改进的二进制左移模逆算法,素数域GF(p)上整数a的模逆定义为:对于素数p和整数a∈[1,p-1],存在唯一的整数i∈[1,p-1],使得i·a≡1(mod p),则整数i为a的逆元,记作:i≡a-1(mod p),其特征在于,对于给定的模数p,p的位数在计算模逆过程中,跳出循环的条件为c_u=n-1或c_v=n-1,即c_u、c_v与常数n-1的比较,其中,u、v是用来存储需要左移数据的n位中间变量,分别初始化为p、a,r是用来通过左移得到模逆的中间变量,初始化为0,当算法结束后,r中的值就是所求的模逆结果,c_u表示u左移的次数,c_v表示v左移的次数。
2.根据权利要求1所述的改进的二进制左移模逆算法,其特征在于,算法过程中增加比特变量用于记录多左移的次数。
3.一种改进的二进制左移模逆算法,其特征在于,按以下步骤进行:
输入:a∈[1,p-1]和p
输出:r∈[1,p-1],其中r=a-1(mod p)
⑴u←p,v←a,r←0,s←1
⑵c_u←0,c_v←0,d←0
⑶若a=1,则
返回r=1
否则
执行第4步
⑷当c_u≠n-1且c_v≠n-1时,重复执行步骤(1)-(3);
当un,un-1=0,或:un,un-1=1且OR(un-2,...,u0)=1时:
若c_u≥c_v,则u←2u,r←2r,c_u←c_u+1,d←d+1;
若c_u<c_v,则u←2u,s←s/2,c_u←c_u+1;
当vn,vn-1=0,或:vn,vn-1=1且OR(vn-2,...,v0)=1时:
若c_v≥c_u,则v←2v,s←2s,c_v←c_v+1,d←d+1;
若c_u<c_v,则v←2v,r←r/2,c_v←c_v+1,否则,d←0;
若vn=un,则oper=“-”;
若vn≠un,则oper=“+”;
若c_u≤c_v,则u←u oper v,r←r oper s;
若c_u>c_v,则v←v oper u,s←s oper r;
⑸若c_v=n-1,则r←s,un←vn;
⑹当d>0时,重复执行r←r/2,d←d-1;
⑺若un=1且r<0,则r←-r
若un=1且r≥0,则r←p-r
⑻若r<0,则r←r+p;
⑼返回r;
其中:“+”表示加法,“-”表示减法,“←”表示将右侧的值赋值给左侧的变量,“OR(x)”表示将x逐位进行或运算,“oper”根据第4步中的相应条件代指“+”或“-”,s是用来通过左移得到模逆的中间变量,初始化为1。
4.一种实现权利要求1所述二进制左移模逆算法的电路,主要包括加法器一、加法器二、加法器三、移位器一、移位器二以及控制器,其特征在于,加法器一和加法器二都是n位加法器,加法器三为位特殊加法器,移位器一和移位器二都是n位移位器;加法器一的输入为u和v,加法器二的第1路输入为r,第2路输入通过一个多路选择器选择s、0或p中的一个,加法器三的第1路输入为1,第2路输入通过一个多路选择器选择c_u、c_v或d中的一个,u通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,v通过一个多路选择器选择加法器一的输出或移位器一的输出中的一个,r通过一个多路选择器选择加法器二的输出、移位器二的输出或s中的一个,s通过一个多路选择器选择加法器二的输出或移位器二的输出中的一个,d通过一个多路选择器选择加法器三的输出或0中的一个,移位器一通过一个多路选择器选择u或v中的一个,移位器二通过一个多路选择器选择r或s中的一个,所述各个多路选择器均连接至控制器,由控制器控制选择。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310261694.X/1.html,转载请声明来源钻瓜专利网。





