发明名称 用于模数运算之全加器后端处理器之方法与系统
摘要 一种全加器后端处理器可用以执行模数运算。该全加器后端处理器系一种能够计算A mod N,(A+B)mod N和(A-B)modN的硬体实作。此处理器包括一全加器,此者能够加出运算元A与B的和,而同时又藉由连续地扣减该模数N的最大可能倍数而在该处理器中完成模数减法,此最大可能倍数条在减除前先按位元移位方式所获得。
申请公布号 TW591558 申请公布日期 2004.06.11
申请号 TW091112332 申请日期 2002.06.07
申请人 可伦特公司 发明人 R. 沃恩 朗史冬;李察J. 高桥;葛瑞格D. 拉提
分类号 G09C1/00 主分类号 G09C1/00
代理机构 代理人 林镒珠 台北市中山区长安东路二段一一二号九楼
主权项 1.一种编密处理系统,其包含:一指数处理器,可运作以执行模数指数运算,包含至少在模数指数运算的过程中,确可减少其中介结果的大小;以及一模数处理器,可运作以执行模数减法运算,包含一加法器,其中该模数处理器系耦接以接收来自于对应于该模数指数运算之指数处理器的运算元,可运作以利用该加法器来相加各运算元以提供一总和,并且可运作以将该总和送返至该指数处理器。2.如申请专利范围第1项之编密处理系统,其中该指数处理器可利用一具有位元大小之模数,并藉由将该中介结果的大小缩减为一不大于该模数之位元大小的大小,如此来执行该模数指数运算。3.如申请专利范围第1项之编密处理系统,其中缩减该中介结果的大小包含藉由移位该中介结果一个位元位置,将该中介结果减少为模数的位元大小。4.如申请专利范围第1项之编密处理系统,其中:该加法器系一全加器;以及从该指数处理器来的运算元,含有进位资料及对应于一部份乘积的加总资料。5.如申请专利范围第1项之编密处理系统,其中该中介结果对应于该部份乘积。6.如申请专利范围第1项之编密处理系统,其中该模数处理器可独立于指数处理器而运作以执行模数减法运算。7.如申请专利范围第1项之编密处理系统,其中:模数指数运算包含复数个模数乘法运算;以及该模数处理器可接收及加总从指数处理器来的运算元,以于进行每一次复数个模数乘法运算之后回返该总和。8.如申请专利范围第1项之编密处理系统,其中该指数处理器可按覆返方式,在模数指数运算过程中计算出此旅动性部分乘积。9.如申请专利范围第8项之编密处理系统,其中该模数处理器可利用加法器,计算模数指数运算的最终结果。10.如申请专利范围第9项之编密处理系统,其中该模数处理器可大致以硬体方式运作计算一蒙哥马利(Montgomery)常数,并提供该蒙哥马利(Montgomery)常数给该模数处理器,以将一运算元转换为蒙哥马利(Montgomery)形式而备以进行模数指数运算。11.一种编密处理系统,其包含:(a)一指数处理器,可运作以执行模数指数运算;以及(b)一模数处理器,可运作以:(i)计算一蒙哥马利(Montgomery)常数,并提供该蒙哥马利(Montgomery)常数给该模数处理器,以将一运算元转换为蒙哥马利(Montgomery)形式而备以进行模数指数运算。12.如申请专利范围第11项之编密处理系统,其中该模数处理器可运作以接收一模数,以及对应于该模数指数运算之模数的位元大小,而其中该模数处理器可利用此模数的位元大小来决定该蒙哥马利常数。13.如申请专利范围第11项之编密处理系统,其中该模数处理器包含一全加器,并利用此全加器来计算蒙哥马利常数。14.如申请专利范围第11项之编密处理系统,其中该蒙哥马利常数条从一硬体内之查核表中所选出。15.如申请专利范围第12项之编密处理系统,其中该蒙哥马利常数对应于r2(n+8)mod N,其中,为一数値,N为模数,且n为该模数的位元大小。16.如申请专利范围第15项之编密处理系统,其中该r系一基底为2的整数倍数。17.一种编密处理系统,其包含:一指数处理器,可运作以执行模数指数运算;以及一模数处理器,可运作以独立于该指数处理器而执行模数减法运算,包含一加法器,其中该模数处理器系耦接以接收来自于对应于该模数指数运算之指数处理器的运算元,可运作以利用该加法器来相加各运算元以提供一总和,并且可运作以将该总和送返至该指数处理器;而其中该模数处理器可进一步包含一模数处理器暂存器,具有一耦接于该加法器输入的输出,该模数处理器暂存器存放在模数减法运算过程中的各中介结果,且该模数处理器暂存器具有至少128位元的大小。18.如申请专利范围第17项之编密处理系统,其中该模数处理器暂存器具有至少1,024位元的大小。19.如申请专利范围第17项之编密处理系统,其中:该指数处理器包含一指数处理器暂存器,以存放在模数指数运算过程中的各中介结果;以及该指数处理器暂存器具有至少128位元的大小。20.如申请专利范围第19项之编密处理系统,其中该模数处理器暂存器及指数处理器暂存器可处理具有大致相同大小的运算元。21.如申请专利范围第17项之编密处理系统,其中该加法器系一全加器。22.一种用以执行模数运算的编密处理系统,其包含:一多工电路;一处理暂存器电路,耦接至该多工电路之输出;一加法器,耦接至该处理暂存器电路;一输出暂存器电路,具有一输入及一耦接于该加法器之输出的输出,并具有一耦接于该多工电路之第一输出的第一输出;以及一指数处理器,用以执行模数指数运算,其中:(i)一指数处理器之输出系耦接于该多工电路之第二输入;(ii)该输出暂存器的第二输出系耦接于该指数处理器的输入;以及(iii)模数指数运算包含在模数指数运算的过程中至少一次降低该中介结果的大小。23.如申请专利范围第22项之编密处理系统,其中该处理暂存器电路包含按覆返方式计算出一旅动性部分乘积。24.如申请专利范围第22项之编密处理系统,其中该处理暂存器电路包含第一暂存器,且可运作以执行该第一暂存器内容的位元移位。25.如申请专利范围第24项之编密处理系统,其中:该处理暂存器电路包含一第二暂存器,以存放一对应于一模数指数运算之模数的数値;该加法器可运作以相加位于第一暂存器和第二暂存器内的数値;以及该加法器系一全加器。26.如申请专利范围第25项之编密处理系统,其中:该多工电路包含一多工器,此者经耦接以载入一数値进入该第二暂存器内;以及该多工电路可运作以反置一自该输出暂存器电路提供给该多工电路的数値,然后再将该数値载入到该第二暂存器内。27.一种利用一模数以执行一数値之模数减法运算俾决定模数结果的方法,该方法包含:测试是否出现相关于该数値之溢出情况;如出现该溢出情况,则利用该模数执行该数値之初始模数减法运算,并依需要执行一或更多该数値之后续模数减法运算以决定该模数结果;以及如并未出现该溢出情况,则决定该数値之最高有效位元的状态,且回应于该数値之最高有效位元的状态来对准该数値,并依需要执行该数値之模数减法运算以决定该模数结果。28.如申请专利范围第27项之方法,其中执行后续模数减法运算可提供复数个中介结果,并进一步包含决定该等复数个中介结果至少一者之最高有效位元的状态。29.如申请专利范围第28项之方法,其中该等复数个中介结果至少一者会回应于该最高有效位元的状态而被移位。30.如申请专利范围第29项之方法,其中进一步包含决定该模数之最高有效位元的状态,并回应于该模数之最高有效位元的状态以对准该模数。31.一种利用一模数以执行一运算元之模数减法运算俾决定模数结果的方法,该方法包含:决定该运算元之最高有效位元的状态,并回应于该运算元之最高有效位元的状态以对准该运算元;根据该运算元状态将一计数器设定为一初始数値;以及当执行模数减法运算时,递减该计数器一直到该计数器触抵一预定数値为止,以决定该模数结果。32.如申请专利范围第31项之方法,其中该初始数値系至少部分地依照该运算元对准作业中位元移位的数目所决定。33.如申请专利范围第32项之方法,其进一步包含:决定该模数之最高有效位元的状态,并回应于该模数之最高有效位元的状态以对准该模数;回应于对该模数所作之位元移位数目来调整该计数器的初始数値。34.如申请专利范围第32项之方法,其中该移位系向左移位。35.如申请专利范围第31项之方法,其中该预定数値系一零値。36.一种利用一模数以执行一运算元之模数减法运算俾决定模数结果之处理器,其包含:一加法器;一第一暂存器,耦接于该加法器之第一输入;一第二暂存器,耦接于该加法器之第二输入;一第三暂存器,耦接于该加法器之输出;以及其中该运算元及该模数各者会先经由该第一暂存器进入该加法器。37.如申请专利范围第36项之处理器,其中该模数之反置会从该第三暂存器透过该加法器而载入该第二暂存器内。38.如申请专利范围第37项之处理器,其中该加法处理器系一全加器。39.如申请专利范围第36项之处理器,其中:会利用该加法器将该模数之反置加到一1的固定値,而对该第三暂存器输出一个二补数数値;以及从该第三暂存器将该二补数数値载入到该第二暂存器内。40.如申请专利范围第39项之处理器,其中在将运算元载入到该第一暂存器前,会先将该二补数数値载入到该第二暂存器内。41.如申请专利范围第39项之处理器,其中在大致所有关于该运算元之模数减法运算计算作业的过程中,该二补数数値都会保持在该第二暂存器内。42.如申请专利范围第36项之处理器,其进一步包含一第一多工器,此者可运作以接收该运算元或该模数作为输入,在此该第一多工器的一输出会被耦接到该第一暂存器。43.如申请专利范围第42项之处理器,其进一步包含一第二多工器,可选择性地接收二补数数値或一零値固定値作为输入,在此该第二多工器的一输出会被耦接到该第二暂存器。44.如申请专利范围第43项之处理器,其中:该第一多工器进一步可运作以接收一第一进位或总和数値作为一输入;以及该第二多工器进一步可运作以接收一第二进位或总和数値作为一对应于该第一进位或总和数値之输入。45.如申请专利范围第44项之处理器,其中该第二多工器进一步可运作以选择该第三暂存器之输出或该第三暂存器之输出的反置作为一输入。46.如申请专利范围第45项之处理器,其中进一步包含一反置器,经耦接于该第三暂存器与与第二多工器间,以提供该第三暂存器输出的反置。47.如申请专利范围第36项之处理器,其中该处理器可运作以按一次一个位元的方式来移位该第一暂存器的内容。48.如申请专利范围第47项之处理器,其中该处理器可运作以按一次一个位元的方式来移位该第三暂存器的内容。49.如申请专利范围第48项之处理器,其中该处理器可运作以按固定多个位元单位的方式来移位该第三暂存器的内容。50.一种利用一模数以执行一第一运算元之模数减法运算俾决定模数结果之处理器,其包含:一加法器;一第一暂存器,耦接于该加法器之第一输入;一第二暂存器,耦接于该加法器之第二输入;一第三暂存器,耦接于该加法器之输出;以及一第一多工器,具有一耦接于该第一暂存器之输出,其中该第一多工器可运作以接收该第一运算元或该模数而作为输入,俾供以载入至该第一暂存器。51.如申请专利范围第50项之处理器,其中该第一多工器进一步可运作以接收一第二运算元而作为输入,俾供以载入至该第一暂存器。52.如申请专利范围第51项之处理器,其进一步包含一第二多工器,具有一耦接于该第二暂存器之输出,其中该第一多工器进一步可运作以接收一第二总和或进位値作为一输入,且该第二多工器进一步可运作以接收一第二总和或进位値。53.如申请专利范围第51项之处理器,其进一步包含一第二多工器,此者具有一耦接于该第二暂存器之输出,以及一耦接于该第三暂存器之输入,其中会藉由将该第二运算元传通过该加法器,将该第二运算元被从该第三暂存器载入该第二y暂存器内。54.如申请专利范围第53项之处理器,其中该处理器加总该第一运算元及该第二运算元,利用加法器,作为计算(A+B) mod N结果的一部分,其中A为第一运算元,B为第二运算元而N为模数。55.如申请专利范围第50项之处理器,其中该第一多工器可运作接收一蒙哥马利常数,俾将一数値转换为蒙哥马利形式,而作为一输入以备进行蒙哥马利指数运算。56.如申请专利范围第55项之处理器,其中该处理器可运作以接收一模数大小并接收该蒙哥马利常数,而此常数条至少部分地依据于该模数大小而定。57.一种利用一模数以执行一第一运算元之模数减法运算俾决定模数结果之处理器,其包含:一加法器;一第一暂存器,耦接于该加法器之第一输入;一第二暂存器,耦接于该加法器之第二输入;一第三暂存器,耦接于该加法器之输出;一第一多工器,具有一耦接于该第一暂存器之输出;一第二多工器,具有一耦接于该第二暂存器之输出;以及其中(i)该第一多工器可运作以选择一第一总和或进位数値而作为输入;(ii)该第二多工器运作以选择一第二总和或进位数値而作为输入;以及(iii)该第一总和或进位数値及该第二总和或进位数値对应于从模数指数运算所计得的部分乘积。58.如申请专利范围第57项之处理器,其中该模数指数运算包含在模数指数运算过程中至少减少一次该中介结果的大小。59.如申请专利范围第58项之处理器,其中该第一多工器可运作选择一蒙哥马利常数,俾将一数値转换为蒙哥马利形式,而作为一输入以备进行蒙哥马利指数运算。60.如申请专利范围第57项之处理器,其中该加法处理器系一全加器。61.如申请专利范围第60项之处理器,其中该第一暂存器具有至少128位元的大小。62.一种用以执行模数减法运算之处理器,其中包含:一加法器;一第一暂存器,耦接于该加法器之第一输入;一第二暂存器,耦接于该加法器之第二输入;一第三暂存器,耦接于该加法器之输出;以及一第一多工器,具有一耦接于该第一暂存器之输出,其中该第一多工器可运作以选择一蒙哥马利常数,俾将一数値转换为蒙哥马利形式,而作为一输入以备进行蒙哥马利指数运算。63.如申请专利范围第62项之处理器,其中该第一暂存器具有至少128位元的大小。64.一种利用一模数以执行一第一运算元之模数减法运算俾决定模数结果的处理器,其包含:一加法器;一第一暂存器,耦接于该加法器之第一输入;一第二暂存器,耦接于该加法器之第二输入;一第三暂存器,耦接于该加法器之输出;以及其中该处理器可按一次一个位元的方式来移位该第一暂存器的内容。65.如申请专利范围第64项之处理器,其中该处理器可按一次一个位元的方式来移位该第三暂存器的内容。66.如申请专利范围第65项之处理器,其中该处理器可按固定多个位元单位的方式来移位该第三暂存器的内容67.如申请专利范围第65项之处理器,其中该第一暂存器系一移位暂存器,且该第三暂存器系移位暂存器。68.如申请专利范围第65项之处理器,其中:该处理器可运作以向左移位该第一暂存器的内容;以及该处理器可运作以向右移位该第三暂存器的内容;69.如申请专利范围第64项之处理器,其进一步包含一计数器,其中该计数器系按该第一暂存器的内容之逐个位元移位所调整。70.如申请专利范围第69项之处理器,其中会检视该计数器数値以决定何时结束该模数减法运算。71.如申请专利范围第69项之处理器,其中该加法处理器系一全加器。72.一种利用一模数以执行一第一运算元之模数减法运算俾决定模数结果的方法,其中该方法包含:一第一指标,经设定一朝向该模数之最低有效位元;一第二指标,经设定一朝向该运算元之最低有效位元;回应于该第一指标与该第二指标的比较结果,透过该运算元之连续性多个模数减法来执行该模数减法运算。73.如申请专利范围第72项之方法,其中当该各连续性减法计算结果其一者为正値,而该第二指标大于该第一指标时,就会停止该模数减法运算。74.如申请专利范围第73项之方法,其中当(i)该各连续性减法计算结果其一者为负値,以及(ii)该第二指标等于该第一指标两者皆成立时,就会停止该模数减法运算。75.如申请专利范围第74项之方法,其进一步包含,如当该各连续性减法计算结果其一者为正値,重复地进行:(i)按1递增该第二指标的数値,且(ii)依需要移位该计算结果一个位元位置,一直到该计算结果的最高有效位元握存1値为止。76.如申请专利范围第72项之方法,其进一步包含,如当该各连续性减法计算结果其一者为正値,则依需要重复地移位该计算结果一个位元位置,一直到该计算结果的最高有效位元握存1値为止。77.如申请专利范围第76项之方法,其进一步包含对于该计算结果的各个位元位置移位,按1递增该第二指标的数値。78.如申请专利范围第76项之方法,其中该计算结果会被按向左方向所移位。79.如申请专利范围第72项之方法,其中该连续性减法包含利用一加法器进行连续性的二补数加法。80.如申请专利范围第36项之处理器,其中该第二暂存器的输出在被输入到该加法器第二输入之前会先被反置。81.如申请专利范围第36项之处理器,其进一步包含一多工器,此者系经耦接于该第二暂存器与该加法器之间,而其中该多工器可运作以选择一存放于该第二暂存器内之真値或反置値,俾将其提供给该加法器。82.一种用以执行一模数减法运算之处理器,其中包含:一第一暂存器,以存放该第一运算元;一第二暂存器,以存放该第二运算元;一加法器,耦接于该第一暂存器之输出及该第二暂存器之输出,该加法器可运作以加总该第一暂存器及该第二暂存器的内容,并提供一输出;一第三暂存器,耦接以存放该加法器之输出;一第二指标暂存器,以追踪该第一暂存器的状态;一第二指标暂存器,以追踪该第二暂存器的状态;以及一比较器,以比较该第一指标暂存器及该第二指标暂存器。83.如申请专利范围第82项之处理器,其进一步包含一控制器,可回应于该第一指标暂存器及该第二指标暂存器的比较结果来控制该第一暂存器内容的位元位置移位作业。84.如申请专利范围第83项之处理器,其中该控制器可决定该第三暂存器的符号位元状态,且其中该符号位元状态可决定该第一暂存器是否载有该加法器的输出。85.如申请专利范围第82项之处理器,其中该第一暂存器、第二暂存器及第三暂存器的大小,会比起该最高输入大小另多出两个位元,其中这另多出的两个位元代表一符号位元及一溢出位元。86.如申请专利范围第85项之处理器,其中该处理器可运作以在一模数减法运算中,计算并将该输入模数的负値存放在该第二暂存器内。87.如申请专利范围第82项之处理器,其进一步包含一补数/真値多工器,耦接于该第二暂存器与该加法器之间,该补数/真値多工器可运作以接收具有反置位元之第二暂存器的内容。88.如申请专利范围第87项之处理器,其中该补数/真値多工器的内容会被加1,而总和会是该第二运算元的负値。89.如申请专利范围第82项之处理器,其进一步包含一储存源,经耦接以存放该第一运算元里超过该第一暂存器之位元长度的各位元。90.一种计算A mod N结果之方法,其中该A及N为运算元及模数,该方法包含:将该N存放于一第一暂存器内;设定一第一指标,以朝向含有该N之最低有效位元的第一暂存器之位元;决定该N的二补数,并将该结果存放在该第一暂存器内;将该A存放于一第二暂存器内;设定一第二指标,以朝向含有该A之最低有效位元的第一暂存器之位元;以及将该第一暂存器的内容与该第二暂存器的内容相加,并将该总和存放于一第三暂存器内。91.如申请专利范围第90项之方法,其进一步包含,如存放于该第三暂存器内的总和含有一零値或正値,则进行下列步骤:将该第二暂存器的内容替换为该第三暂存器的内容;将该第二暂存器的内容向左移位,一直到在该第二暂存器的最高有效位元内出现一个1,且按该第二暂存器内容各次位元位置向左移位而逐一递增该第二指标;如该第二指标大于该第一指标,则输出该第二暂存器的内容作为结果;以及如该第二指标小于或等于该第一指标,则重复相加第一暂存器的内容及第二暂存器的内容。92.如申请专利范围第90项之方法,其进一步包含,如存放于该第三暂存器内的总和含有一负値,则进行下列步骤:如该第二指标等于该第一指标,则输出该第二暂存器的内容作为结果;以及如该第二指标不等于该第一指标,则将该第二暂存器的内容向左移位一个位元,递增该第二指标1値,且重复相加第一暂存器的内容及第二暂存器的内容。93.如申请专利范围第90项之方法,其中决定该二补数包含:将该第一暂存器的内容输出给该补数/真値多工器;将1加到该补数/真値多工器的输出,以获得该二补数;以及将此二补数存放在该第一暂存器内。94.如申请专利范围第91项之方法,其中第一暂存器、第二暂存器与第三暂存器各者系n+2位元大小,而n为N的位元长度。95.如申请专利范围第94项之方法,其中该等第一暂存器、第二暂存器与第三暂存器各者的n+1位元系一符号位元。96.如申请专利范围第95项之方法,其中该等第一暂存器、第二暂存器与第三暂存器各者的n位元系一溢出位元。图式简单说明:图1系一模数运算系统之方块图;图2系一根据本发明教示之全加器后端处理器方块图;图3说明一根据本发明教示,而用以藉图2之全加器后端处理器来计算模数减法的方法流程图;图4系一电脑系统架构之简化方块图,适于运用在实作一根据本发明替代性实施例之后端处理器;图5系一如图4电脑系统架构内之安全处理器的高阶简化方块图;图6系一根据本发明替代性实施例之后端处理器的简化功能方块图,即如运用在图5之安全处理器内;图7系一在如图6后端处理器内之处理器子系统的细部功能方块图;图8系一在如图6后端处理器内之控制器的功能方块图;图9系一对如图7处理器子系统内之X暂存器的资料结构简图;图10系一根据本发明替代性实施例,用以执行模数减法之程序的高阶简化流程图;以及图11A与11B系一用以执行模数减法之程序的细部流程图,而此程序可根据本发明运用如图6之后端处理器。
地址 美国