当前位置: 首页 > news >正文

石景山手机网站建设站长工具查询域名信息

石景山手机网站建设,站长工具查询域名信息,简书 wordpress 搭建,竞价托管魏大帅背景介绍 约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等…

背景介绍

        约减算法,通常应用在硬件领域,因为模运算mod是一个除法运算,在硬件中实现速度会比乘法慢的多,并且还会占用大量资源,因此需要想办法用乘法及其它简单运算来替代模运算。模约减算法可以利用乘法、加法和移位等操作实现大数的取模,规避了模运算中的除法,常见方法有蒙哥马利模约减,barret模约减等,本篇文章介绍barret 模约减算法原理。

barret reduction

        约减就是用简单运算来规避除法运算,以便于硬件实现,以A mod q为例,如果要计算A对q取模的结果使用barret reduction算法应该怎么做?

        先规定A mod q,则称A为模数,q为基。

        假设A的位宽是w_{1},q的位宽是w_{2},对于硬件实现来说需要预计算出两个常数

\begin{cases} & \ q_1=\frac{A}{2^{w_{2}}} \\ & \ H=\frac{2^{w_{1}+1}}{q} \end{cases}

        \small q_1\small H在进行预计算的时候,都需要对计算结果进行取下整,进而\small q_1\small H满足如下不等式:

\begin{cases} & \ \ \ \frac{A}{2^{w_{2}}}-1 <q_1\leqslant \frac{A}{2^{w_{2}}} \\ & \ \frac{2^{w_{1}+1}}{q}-1<H\leqslant \frac{2^{w_{1}+1}}{q} \end{cases}

        令\small q_2 =q_1\times H,则有如下不等式成立:

\small q_2=\frac{A}{2^{w_{2}}} \times\frac{2^{w_{1}+1}}{q}

\small \frac{2^{w_{1}-w_{2}+1}A}{q}-\frac{A}{2^{w_{2}}}-\frac{2^{w_{1}+1}}{q}+1<q_2\leqslant \frac{2^{w_{1}-w_{2}+1}A}{q}

        令\small q_3=q_2 / 2^{w_{1}-w_{2}+1,即对上面\small q_2不等式,两边同时除以\small 2^{w_{1}-w_{2}+1,得到:

\small \frac{A}{q}-\frac{A}{2^{w_{1}}+1}-\frac{2^{w_{2}}}{q}+\frac{1}{2^{w_{1}-w_{2}+1}}<q_3\leqslant \frac{A}{q}

        由于A的位宽是w_{1},q的位宽是w_{2},所以A和q满足如下不等式:

\begin{cases} & \frac{A}{2^{w_{1}+1}} \leqslant1 \\ & \ \ \frac{2^{w_2}}{q} \leqslant2 \end{cases}

        把A和q所满足的不等式,带入q_3不等式中,得到:

\small \frac{A}{q}-3<q_3\leqslant \frac{A}{q}

        所以两边同时乘以q得到:

A-3q<q_3\times q\leqslant A

        因此得到模运算可以化简为:

A\ mod\ q=(A-q_{3}\times q)\ mod\ q

        又由于A-q_{3}\times q是在A-3q和A之间的,所以它对q取模,只需要判断它在[0,q)、[q,2q)、[2q,3q)的哪个区间,若A-q_{3}\times q落在[q,2q)区间,则:

(A-q_{3}\times q)\ mod\ q=A-q_{3}\times q-q

         以上,完成了barret模约减,同样的,该模约减算法可以应用在模乘领域,即实现barret模乘。而相对于模乘,AB mod q,可以直接把AB的乘积看作是上面公式推导的A,然后再进行模乘。

barret模约减计算流程大体如下图所示:

硬件实现

        看完模约减公式推导过程,肯定有人会疑问:

\begin{cases} & \ q_1=\frac{A}{2^{w_{2}}} \\ & \ H=\frac{2^{w_{1}+1}}{q} \end{cases}

        先前预计算了两个常数,我后面的约减推导全都是依赖于这两个常数。先来看H,为了将多项式系数约束在基的范围内,进而能够实现密码学领域中的一些同态加密算法,选取的基q,通常是定值,因此H的计算量很少可以直接预计算并存储到RAM中,哪怕我A的取值范围是1-200bit,在基q确定的情况下我最多也只需要预计算200个H的值。

        选取基q确定的情况下H好计算,但A是输入变量,有任意种可能,那么q_1该怎么预计算?

        事实上q_1不需要预计算,因为q_1是A除以2的幂次,在硬件中,除以2的幂次可以通过移位操作来实现,至于q_1计算需要对结果向下取整,只需要对A进行移位操作即可。例如

7/4=7>>2=3'b111 >>2=3'b001=1

downfloor(7/4) = downfloor(1.75)=2

        q_1计算对结果向下取整,可以直接用A移位来替代。

        综上,\small q_1的值和\small H的值我们都可以轻易得到了,并且不怎么消耗计算资源,也没有多少计算delay,并且后面\small q_3的计算也是除以2的次幂,也可以转化为移位操作,因此barret模约减主要的计算量在于:

\small \begin{cases} &q_2=q_1\times H=\frac{A}{2^{w_{2}}} \times\frac{2^{w_{1}+1}}{q} \\ & A-q_3\times q \end{cases}

        主要计算量在于上面的两个乘法,q2 = q1*H,和q3*q的计算。

硬件优化

        在之前已经推导出barret模约减主要计算量在两个乘法,q2 = q1*H,和q3*q的计算。

        对于硬件实现来说,第二个计算可以进行优化,因为A-q3*q之后还要对其的范围进行判断,若落在[q,2q)范围,则A mod q = A-q3*q-q,事实上我们关心其落在那个范围,并不需要比较所有bit位,q的位宽为\small w_2,我们只需要比较低\small w_2+2位的大小就可以判断其落在哪个范围,甚至对于q3*q也可以通过取q3的低\small w_2位的数据和q进行乘运算,再取运算结果的低\small w_2+2位进行比较,从而确定范围。

        因此在硬件实现上,利用barret模约减,成功将除法化简为了两个乘法和一(两)个加法计算。

        

http://www.hkea.cn/news/81072/

相关文章:

  • 音乐网站的音乐怎么做seo先上排名后收费
  • 清河做网站报价seo实战培训王乃用
  • wordpress 回收站在哪个文件夹营销方式和手段
  • 垂直型电商网站如何做快速排名软件哪个好
  • 做产品推广有网站比较好的免费自助建站平台
  • 番禺网站建设公司排名百度推广页面投放
  • 沈阳做微网站百度收录刷排名
  • 网站建设与管理技术发展seo是什么意思如何实现
  • 手机游戏开发制作公司最新seo视频教程
  • 网站优化过度被k长春seo排名公司
  • wordpress移除谷歌字体seo网站推广与优化方案
  • 十大景观设计公司排名seo权重查询
  • 水友做的yyf网站十大免费引流平台
  • 东莞公司网站制作百度识图网页版 在线
  • 企业级网站内容管理解决方案网站关键词快速排名服务
  • 影视采集网站怎么做收录关键词是网站seo的核心工作
  • 开发一个网站需要多少时间百度账号免费注册
  • 化妆品网站主页设计长沙关键词优化方法
  • 南阳建网站企业百度推广优化工具
  • 怎样把自己做的网页放在网站里如何做宣传推广营销
  • 七谷网络工作室重庆优化seo
  • 东莞网站建设规范软文内容
  • 项目网站建设业务分析搜索优化的培训免费咨询
  • linux做网站服务器吗关键词上首页软件
  • 西安网站建设行业动态手机营销软件
  • 做推送的网站推荐今日新闻摘抄50字
  • 想在自己的网站做支付优化公司治理结构
  • 国内一家做国外酒店团购的网站网络推广优化是干啥的
  • 手机3d动画制作软件重庆网络seo公司
  • 青海和城乡建设厅网站石家庄自动seo