发明名称 用于执行多重模数数学运算之电路及方法
摘要 一种能够执行多重模数数学运算之多重模数处理器架构。该模数处理器包括一管线式处理部分,可利用模数数学引数之运算元来覆返地计算旅算部分模数乘积,以获得一或更多最终部分模数乘积。该等最终部分模数乘积再经后端处理以获得最终结果。
申请公布号 TWI244611 申请公布日期 2005.12.01
申请号 TW091112333 申请日期 2002.06.07
申请人 可伦特公司 发明人 李察J. 高桥;凯文J. 大杉
分类号 G06F7/00 主分类号 G06F7/00
代理机构 代理人 林镒珠 台北市中山区长安东路2段112号9楼
主权项 1.一种用以计算模数数学引数之结果的电路,其中包含:一运算元储存部分,此者可运作以接收模数数学引数的运算元;一管线式处理阶段,此者经耦接于该运算元储存部分,且可运作以接收一或更多运算元,并利用该等一或更多既收运算元,藉由按一预定次数而覆返地计算一旅算部分模数乘积,以输出一最终部分模数乘积;及一后端处理阶段,此者经耦接以接收来自于该管线式处理阶段的一或多个最终部分模数乘积,且可运作以利用该最终部分模数乘积来计算出该模数数学引数的结果。2.如申请专利范围第1项之电路,其中该运算元储存部分包含一或更多记忆体装置内的一或更多记忆体状态。3.如申请专利范围第1项之电路,其中该运算元储存部分包含多个暂存器,各者可运作以接收该模数数学引数的各个运算元。4.如申请专利范围第2项之电路,其中该运算元储存部分包含:一第一运算元暂存器,可运作以接收代表一乘数的第一数値;一第二运算元暂存器,可运作以接收代表一乘数的第二数値;以及一第三运算元暂存器,可运作以接收代表一模数的第三数値。5.如申请专利范围第4项之电路,其中该运算元储存部分包含:一第四运算元暂存器,可运作以接收代表一指数的第四数値。6.如申请专利范围第5项之电路,其中该运算元储存部分包含:一第五运算元暂存器,可运作以接收代表一计数値的第五数値。7.如申请专利范围第4项之电路,其中:该管线式处理阶段包括M个的进位-收存处理器,该等处理器系按串接环状组态方式彼此互为接合,各进位-收存处理器可运作以计算一或更多个旅算部分模数乘积;以及当既已按预定次数覆返计算该等旅算部分模数乘积后,由这M个进位-收存处理器输出的旅算部分模数乘积,会是一或更多最终部分模数乘积的其中一者。8.如申请专利范围第7项之电路,其中M等于四。9.如申请专利范围第7项之电路,其中该模数数学引数含有至少一第一运算元、第二运算元及第三运算元,且其中各进位-收存加法的进位-收存处理器包括:一AND闸器阶段,此者经耦接以接收该第一运算元的单一位元以及第二运算元的所有位元,并可运作以输出其逻辑AND的结果;一进位-收存加法器阶段,此者经耦接以接收来自该AND闸器阶段的逻辑AND输出、该第三运算元与来自另一进位-收存处理器之旅算部分模数乘积其一者,并可运作以计算所接收资料各者之中至少部分的第一总和;以及一向右移位阶段,此者经耦接以接收来自该进位-收存加法器阶段的第一总和,将该总和向右移位一预定位元数目,并输出另一个旅算部分模数乘积。10.如申请专利范围第9项之电路,其中该预定位元数目为一。11.如申请专利范围第9项之电路,其中该AND闸器阶段包含C个第一AND闸器,各者具有一第一输入,经耦接以接收该第一运算元的单一位元,以及该第二运算元的个别位元,而各者可运作以输出其逻辑AND値。12.如申请专利范围第11项之电路,其中在该等复数个进位-收存处理器内的各进位-收存加法器阶段,包含:C个第一进位-收存加法器,各者经耦接以接收从各第一AND闸器其一者来的逻辑AND输出,和旅算部分模数乘积其一者,并可运作以计算并输出其具有一最小显着位元之第二总和;C个第二AND闸器,各者经耦接以接收各第三运算元的各别位元和该第二总和的最小显着位元,并可运作以输出其逻辑AND値;以及C个第二进位-收存加法器,各者经耦接以接收该第二总和及各AND闸器其一者的逻辑AND输出,并可运作以按之计算而输出第一总和。13.如申请专利范围第12项之电路,其中C为该模数数学引数其中至少一运算元的位元长度。14.如申请专利范围第12项之电路,其中C为1,024。15如申请专利范围第12项之电路,其中由C个第一及第二进位-收存加法器所输出的第一及第二总和会是按进位-收存加法器形式。16.如申请专利范围第1项之电路,其中:一或更多从管线式处理阶段输出之最终模数乘积各者含有进位位元与总和位元;以及该后端处理阶段可藉由实作一该等进位位元与总和位元的全加器,来计算该模数数学引数的结果。17.如申请专利范围第1项之电路,其中该模数数学引数系模数乘法、模数指数及模数减法运算的其中一者。18.如申请专利范围第1项之电路,其中该后端处理阶段包含一全加器。19.一种用以按预定次数而覆返地计算一或更多运算元之旅算部分模数乘积来算出一或更多最终部分模数乘积之处理器,该处理器其中包括:M个进位-收存处理器,该等系按串接环状组态方式彼此互为接合,且各进位-收存处理器可运作以计算一或更多个旅算部分模数乘积;以及当既已按预定次数覆返计算该等旅算部分模数乘积后,由该等M个进位-收存处理器所输出的旅算部分模数乘积会是一或更多最终部分模数乘积的其中一者。20.如申请专利范围第19项之处理器,其中M等于四。21.如申请专利范围第19项之处理器,其中该等运算元含有至少一第一运算元、第二运算元及第三运算元,且其中该等进位-收存处理器各者包括:一AND闸器阶段,此者经耦接以接收该第一运算元的单一位元以及第二运算元的所有位元,并可运作以输出其逻辑AND的结果;一进位-收存加法器阶段,此者经耦接以接收来自该AND闸器阶段的逻辑AND输出、该第三运算元与来自另一进位-收存处理器之旅算部分模数乘积其一者,并可运作以计算所接收资料各者之中至少部分的第一总和;以及一向右移位阶段,此者经耦接以接收来自该进位-收存加法器阶段的第一总和,将该总和向右移位一预定位元数目,并输出另一个旅算部分模数乘积。22.如申请专利范围第21项之处理器,其中该预定位元数目为一。23.如申请专利范围第21项之处理器,其中该AND闸器阶段包含C个第一AND闸器,各者具有一第一输入,经耦接以接收该第一运算元的单一位元,以及该第二运算元的个别位元,而各者可运作以输出其逻辑AND値。24.如申请专利范围第23项之处理器,其中在该等复数个进位-收存处理器内的各进位-收存加法器阶段,包含:C个第一进位-收存加法器,各者经耦接以接收从各第一AND闸器其一者而来的逻辑AND输出,和旅算部分模数乘积其一者,并可运作以计算并输出其具有一最小显着位元之第二总和;C个第二AND闸器,各者经耦接以接收该第三运算元的各别位元和该第二总和的最小显着位元,并可运作以输出其逻辑AND値;以及C个第二进位-收存加法器,各者经耦接以接收该第二总和及该AND闸器其一者的逻辑AND输出,并可运作以按之计算而输出第一总和。25.如申请专利范围第24项之处理器,其中C为该模数数学引数其中至少一运算元的位元长度。26.如申请专利范围第24项之处理器,其中C为1,024。27.如申请专利范围第24项之处理器,其中由C个第一及第二进位-收存加法器所输出的第一及第二总和会是按进位-收存加法器形式。28.一种用以执行至少一第一运算元、第二运算元及第三运算元之进位-收存加法的进位-收存处理器,该进位收存处理器包括:一AND闸器阶段,该者系经耦接以接收该第一运算元的单一位元以及第二运算元的所有位元,并可运作以输出其逻辑AND的结果;一进位-收存加法器阶段,该者系经耦接以接收来自于该AND闸器阶段的逻辑AND输出、该第三运算元与来自另一进位-收存处理器之旅算部分模数乘积其一者,并可运作以计算所接收资料各者之中至少部分的第一总和;以及一向右移位阶段,该者系经耦接以接收来自于该进位-收存加法器阶段的第一总和,将该总和向右移位一预定位元数目,并输出另一个旅算部分模数乘积。29.如申请专利范围第28项之进位-收存处理器,其中该预定位元数目为一。30.如申请专利范围第28项之进位-收存处理器,其中该AND闸器阶段包含C个第一AND闸器,各者具有一第一输入,经耦接以接收该第一运算元的单一位元,以及该第二运算元的个别位元,而各者可运作以输出其逻辑AND値。31.如申请专利范围第30项之进位-收存处理器,其中该进位-收存加法器阶段包含C个第一进位-收存加法器,各者经耦接以接收从各第一AND闸器其一者来的逻辑AND输出,和旅算部分模数乘积其一者,并可运作以计算并输出其具有一最小显着位元之第二总和;C个第二AND闸器,各者经耦接以接收各第三运算元的各别位元和该第二总和的最小显着位元,并可运作以输出其逻辑AND値;以及C个第二进位-收存加法器,各者经耦接以接收该第二总和及各AND闸器其一者的逻辑AND输出,并可运作以按之计算而输出第一总和。32.如申请专利范围第31项之进位-收存处理器,其中C为该模数数学引数其中至少一运算元的位元长度。33.如申请专利范围第31项之进位-收存处理器,其中C为1,024。34.如申请专利范围第31项之进位-收存处理器,其中由C个第一及第二进位-收存加法器所输出的第一及第二总和会是按进位-收存加法器形式。35.一种用以执行至少一第一运算元(A)及一第二运算元(B)之模数N乘法俾获得其结果(AB mod N)的方法,该方法包括:按一预定次数来覆返地计算A、B与N的部分模数乘积,以获得一最终部分模数乘积;以及从该最终部分模数乘积复原获致此模数N乘法的结果。36.如申请专利范围第35项之方法,其中进一步包含:在覆返地计算该部分模数乘积之前,将A及B运算元转换成Montgomery形式。37.如申请专利范围第35项之方法,其中该部分模数乘积系利用按串接环状组态方式彼此互为接合的M个进位-收存加法器覆返地计算,且其中计算该等部分模数乘积的预定次数会等于N的位元长度除以M。38.如申请专利范围第37项之方法,其中该N的位元长度为1,024而M为4,从而该等部分模数乘积的计算预定次数会是256。39.如申请专利范围第35项之方法,其中该等运算元(A、B)及模数(N)各者为预定位元长度的二元数目,且其中计算该等A、B与N之各个部分模数乘积的步骤包含:执行一第一运算元(A)单一位元及第二运算元(B)所有位元的第一逻辑AND,以获得第一逻辑AND结果;将该第一逻辑AND结果与先前覆返地计算而得之部分模数乘积加总,以获一具有最小显着位元之第一总和;执行第一总和最小显着位元与该模数(N)所有位元的第二逻辑AND,以获得一第二逻辑AND结果;将该第二逻辑AND结果与该第一总和加总,以获得一第二总和;以及将该第二总和位元长度减少一値。40.如申请专利范围第39项之方法,其中将该第二总和位元长度减少一値的步骤包含将该第二总和除以二。41.如申请专利范围第40项之方法,其中将该第二总和除以二的步骤包含将该第二总和向右移位一个位元。42.如申请专利范围第35项之方法,其中该等部分模数乘积及最终部分模数乘积是按进位-收存加法器形式,具有进位位元及总和位元,而其中复原此模数N乘法运算结果的步骤,包含加总该等进位位元及总和位元。43.如申请专利范围第35项之方法,其中当各运算元其一被设定为1时,该模数N乘法方法会为一模数N减法方法。44.一种用以计算二个运算元之部分模数乘积的方法,其中该等运算元(A、B)及模数(N)各者为预定位元长度的二元数目,此方法包括:执行一第一运算元(A)之单一位元及第二运算元(B)所有位元的第一逻辑AND,以获得第一逻辑AND结果;将该第一逻辑AND结果与先前覆返地计算而得之部分模数乘积加总,以获一具有最小显着位元之第一总和;执行第一总和最小显着位元与该模数(N)所有位元的第二逻辑AND,以获得一第二逻辑AND结果;将该第二逻辑AND结果会与该第一总和加总,以获得一第二总和;将该第二总和位元长度会减少一値。45.如申请专利范围第44项之方法,其中将该第二总和位元长度减少一値的步骤包含将该第二总和除以二。46.如申请专利范围第45项之方法,其中将该第二总和除以二的步骤包含对该第二总和执行单一位元向右移位作业。47.如申请专利范围第44项之方法,其中该部分模数乘积是按进位-收存加法器形式。48.如申请专利范围第44项之方法,其中进一步包含:在执行第一逻辑AND运算之前,将A及B运算元转换成Montgomery形式。49.一种用以执行具有指数(E)的第一运算元(A)之模数N指数运算的方法,其中该A、E及N各者为预定位元长度之二元数値,此方法包括:a)设定一计数値(K)为比该指値(E)的预定位元长度少一之値;b)计算一第二运算元(B)乘上本身(即BB mod N)的模数(N)乘法运算;c)当该指値(E)的第K位元为1时,计算该第一(A)与第二(B)运算元乘积(AB mod N)的模数(N)乘法运算;d)将此计数値(K)减去一;以及e)重复所有步骤,一直到该计数値(K)等于一。50.如申请专利范围第49项之方法,其中计算模数N乘法运算的步骤各者包含:按一预定次数来覆返地计算运算元的部分模数乘积,以获得一最终部分模数乘积;以及从该最终部分模数乘积复原获致此模数N乘法的结果。51.如申请专利范围第50项之方法,其中进一步包含:在覆返地计算该部分模数乘积之前,将运算元转换成Montgomery形式。52.如申请专利范围第50项之方法,其中该部分模数乘积系利用按串接环状组态方式彼此互为接合的M个进位-收存加法器所经覆返地计算,且其中计算该等部分模数乘积的预定次数会等于N的位元长度除以M。53.如申请专利范围第52项之方法,其中该N的位元长度为1,024而M为4,从而该等部分模数乘积的计算预定次数会是256。54.如申请专利范围第50项之方法,其中该等运算元及模数各者为预定位元长度的二元数目,且其中计算该运算元部分模数乘积的步骤包含:执行一第一运算元(A)单一位元及第二运算元(B)所有位元的第一逻辑AND,以获得第一逻辑AND结果;将该第一逻辑AND结果与先前覆返地计算而得之部分模数乘积加总,以获一具有最小显着位元之第一总和;执行第一总和最小显着位元与该模数(N)所有位元的第二逻辑AND,以获得一第二逻辑AND结果;将该第二逻辑AND结果与该第一总和加总,以获得一第二总和;以及将该第二总和除以二。55.如申请专利范围第54项之方法,其中将该第二总和除以二的步骤包含将该第二总和向右移位一个位元。56.如申请专利范围第50项之方法,其中该等部分模数乘积及最终部分模数乘积是按进位-收存加法器形式,具有进位位元及总和位元,而其中复原此模数N乘法运算结果的步骤,包含加总该等进位位元及总和位元。57.一种用以执行具有指数(d)的第一运算元(A)之模数N指数运算的方法,其中N等于一第一整数(p)与一第二整数(q)的乘积,且其中第一变数(dp=d mod(p-1))、第二变数(dp=d mod(q-1))和第三变数(Q=q-1 mod p)为已知,此方法包括:计算Ap=Adp mod p;计算Aq=Adq mod q;计算(Y0)=(Ap-Aq) mod p;计算Y1=(QY0) mod p:计算Y2=(qY1);计算X=(Y2+Aq) mod N,其中X等于Ad mod N。58.一种用以将资料加密/解密的系统,其中包括:一输入/输出(I/O)介面,此者可运作以接收及传送资料;一加密/解密引擎,此者系经耦接以自该I/O介面接收及传送资料,并可运作以将所收资料予以加密/解密;以及一或更多处理器,系经耦接以从该加密/解密引擎处接收一或更多运算元,并可运作以计算模数数学引数的结果,其中各个处理器包括:一运算元储存部分,可运作以接收来自该加密/解密引擎的一或更多模数数学引数运算元;一管线式处理阶段,经耦接于该运算元储存部分,且可运作以接收一或更多运算元,并利用该等一或更多既收运算元,藉由按一预定次数而覆返地计算一旅算部分模数乘积,以输出一最终部分模数乘积;以及一后端处理阶段,经耦接以接收来自于该管线式处理阶段的最终部分模数乘积之一或多者,且可运作以利用该一或多个部分模数乘积,计算出该模数数学引数的结果。59.如申请专利范围第58项之系统,其中该运算元储存部分包含一或更多记忆体装置内的一或更多记忆体状态。60.如申请专利范围第58项之系统,其中该运算元储存部分包含多个暂存器,其各者可运作以接收该模数数学引数的一运算元。61.如申请专利范围第59项之系统,其中该运算元储存部分包含:一第一运算元暂存器,可运作以接收代表一乘数的第一数値;一第二运算元暂存器,可运作以接收代表一乘数的第二数値;以及一第三运算元暂存器,可运作以接收代表一模数的第三数値。62.如申请专利范围第61项之系统,其中该运算元储存部分包含:一第四运算元暂存器,可运作以接收代表一指数的第四数値。63.如申请专利范围第62项之系统,其中该运算元储存部分尚包含:一第五运算元暂存器,可运作以接收代表一计数値的第五数値。64.如申请专利范围第58项之系统,其中:该管线式处理阶段包括M个的进位-收存处理器,该等处理器系按串接环状组态方式彼此互为接合,各进位-收存处理器可运作以计算一或更多个旅算部分模数乘积;以及当既已按预定次数覆返计算该等旅算部分模数乘积后,由该M个进位-收存处理器输出的旅算部分模数乘积,会是一或更多最终部分模数乘积的其中一者。65.如申请专利范围第64项之系统,其中M等于四。66.如申请专利范围第64项之系统,其中该模数数学引数之运算元含有至少一第一运算元、第二运算元及第三运算元,且其中各进位-收存处理器各者包括:一AND闸器阶段,其经耦接以接收该第一运算元的单一位元以及第二运算元的所有位元,并可运作以输出其逻辑AND的结果;一进位-收存加法器阶段,此者经耦接以接收来自该AND闸器阶段的逻辑AND输出、该第三运算元与来自另一进位-收存处理器之旅算部分模数乘积其中一者,并可运作以计算所接收资料各者之中至少部分的第一总和;以及一向右移位阶段,此者经耦接以接收来自该进位-收存加法器阶段的第一总和,将该总和向右移位一预定位元数目,并输出另一个旅算部分模数乘积。67.如申请专利范围第66项之系统,其中该预定位元数目为一。68.如申请专利范围第66项之系统,其中该AND闸器阶段包含C个第一AND闸器,各者具有一第一输入,经耦接以接收该第一运算元的单一位元,以及该第二运算元的个别位元,而各者可运作以输出其逻辑AND値。69.如申请专利范围第68项之系统,其中在该等多个进位-收存处理器内的各进位-收存加法器阶段,包含C个第一进位-收存加法器,各者经耦接以接收从各第一AND闸器其中一者的逻辑AND输出,和旅算部分模数乘积其中一者,并可运作以计算并输出其具有一最小显着位元之第二总和;C个第二AND闸器,各者经耦接以接收各第三运算元的各别位元和该第二总和的最小显着位元,并可运作以输出其逻辑AND値;以及C个第二进位-收存加法器,各者经耦接以接收该第二总和及AND闸器其中一者的逻辑AND输出,并可运作以计算而从该处输出第一总和。70.如申请专利范围第69项之系统,其中C为该模数数学引数其中至少一运算元的位元长度。71.如申请专利范围第69项之系统,其中C为1,024。72.如申请专利范围第69项之系统,其中由C个第一及第二进位-收存加法器所输出的第一及第二总和会是按进位一收存加法器形式。73.如申请专利范围第58项之系统,其中:一或更多最终部分模数乘积各者含有进位位元与总和位元;以及后端处理阶段可藉由实作一该等进位位元与总和位元的全加器,来计算该模数数学引数的结果。74.如申请专利范围第58项之系统,其中该模数数学引数系模数乘法、模数指数及模数减法运算的其中一者。75.如申请专利范围第58项之系统,其中该后端处理阶段包含一全加器。76.如申请专利范围第58项之系统,其中该一或更多处理器包含C个按串级方式并接的处理器。77.如申请专利范围第76项之系统,其中C为1,024。图式简单说明:图1系一采用本发明处理器之加密/解密系统的功能性区块图;图2系一采用本发明处理器之模数数学电脑的功能性区块图;图3系一根据本发明具体实施例之模数处理器的功能性区块图;图4系一运用于如图3模数处理器之处理单元的详细功能性区块图;图5系一运用于如图4所绘处理单元之进位-收存加法器阶段的功能性区块图;图6为描述部份模数乘积的计算处理作业流程图,此流程系由根据本发明具体实施例而如图3所绘之处理器所实作;图7系用以计算出如图5进位-收存加法器阶段所实作之部份模数乘积的处理作业;图8系一描述模数运算指数处理程序之流程图,此处理程序系由根据本发明具体实施例,而如图3所绘之模数处理器所实作;图9系一描述独具性处理程序之流程图,此处理程序系由如图3所绘之模数处理器所实作,而用以执算「中国余数定理」;图10说明两种如图3所绘之模数处理器,按如主从式组态所并列表绘;图11描述复数个如图3所绘之模数处理器,在此系按并列方式表绘;图12详细说明两个或更多如图3所绘之模数处理器究系如何按如图10及11所示方式而为并列组态所连接并合。
地址 美国