TWI290300B - Apparatus and method for calculating a multiplication using shifting of the multiplicand - Google Patents

Apparatus and method for calculating a multiplication using shifting of the multiplicand Download PDF

Info

Publication number
TWI290300B
TWI290300B TW092134262A TW92134262A TWI290300B TW I290300 B TWI290300 B TW I290300B TW 092134262 A TW092134262 A TW 092134262A TW 92134262 A TW92134262 A TW 92134262A TW I290300 B TWI290300 B TW I290300B
Authority
TW
Taiwan
Prior art keywords
value
shift
modulus
bit
multiplication
Prior art date
Application number
TW092134262A
Other languages
English (en)
Other versions
TW200424925A (en
Inventor
Wieland Fischer
Holger Sedlak
Jean-Pierre Seifert
Original Assignee
Infineon Technologies Ag
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies Ag filed Critical Infineon Technologies Ag
Publication of TW200424925A publication Critical patent/TW200424925A/zh
Application granted granted Critical
Publication of TWI290300B publication Critical patent/TWI290300B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/722Modular multiplication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Error Detection And Correction (AREA)

Description

1290300 九、發明說明: 【發明所屬之技術領域】 本發明係無碼學侧H種朗於計算密碼之運算 =’ #計算乘數以及與模數(modulus)相關之被乘數二乘法= 算之發戰念,且該紐、該被絲與賴數係可作為該計曾 密碼之運算的參數。 "以。^ 【先前技術】 密碼學是模數運算的主要應用領域之一。而密碼學中的— 種主要的演异法係為眾所週知的RSA演算法。RSA演算法是 以模數指數運异(modular exponentiation)為基礎,且表示如下· C = Md mod{N) 其中,C是加密訊息,Μ是未加密訊息,d是私密金鑰, 且N是模數。模數N通常係由兩個互為質數的?與q所相乘 得致。由於該模數指數運算係可藉由已知的 square_and-multiply演算法,而將其分解成數個乘法運算。基 此,將指數d分解成為2的次方後,該模數指數運算便可分解 成為數個模數乘法運算。就計算工作而論,為了能有效率地遂 行該模數指數運算,於將該模數指數運算分解成為數個模數乘 法運算後,可再予以進一步分解成為數個模數加法運算。 DE 3631992專利揭露出一種利用預看乘法運算法 (multiplication-lookahead method)與預看簡化運算法 (reduction-lookahead method)來加速進行模數乘法運算的密碼 學方法。而在DE 3631992 C2專利中所描述之該方法^被^作 為一種ZDN方法,且以圖18為一詳細之說明。於該演算法遂 1290300 始步驟_後,即將全 其目的在於用 _ C以及N予以初始化 心―所示之模數乘法運算·· 而N是:^數’C疋被乘數。Z則為模_法運算之運算結果: 化動^此、=區域變數亦會被遂行初始化動作(對此一初始 用不同的預看規則_),t可LA中’利 ^與-個爾乘法運减—個乘法運算移位值 暫在哭恥妙+ 斤>數&。疋以,此時儲存運算結果Ζ之 決定(920)。子的〜’即會由遂行移位&位元之—左移運算所 =此相類似者’為執行預看簡化運算法 〇d—LA(930)後’即可得致一個簡化運算移 個f簡化運算參數b。歸驟帽中,此時模數暫存器内所 储f_N,即會被分別執行-左移與右移Sn位元之2 動^’一以便產生出-經過移位動作之模數N,。步驟95〇係用 以表不執仃該ZDN方法之巾央三運算元運算_卿加 three’erands operation)。其中,於經過步驟後,中間值乙 係將和該預看乘法運算參數a與該被乘數C之相乘法運算,以 及該,看@化運算參數b與該經過移位動作之模數n,之相乘 法運异’二者共同遂行一加法動作。此時,該㈣看運算來 a與b之數值可能為+1、〇或4。 开> 依常例而言,該預看乘法運算參數a之數值通常係為+1, 1290300 且該預看航參數仏數賴為·卜如此—來,該被乘數 c將會被相加至該經過移位動作之中間值z,,且該經過移位動 作之中?值z會減去該經過移位動作之模數N,。如果該預看 乘法運算法允許進行個別左移動作之次數超過預設值時/的 =㈣為G,卩如果所得致之該乘法運算移位值⑽大於可 又=數值域’此情形即被稱之為k。於該預看乘法運算參 =a二於〇、且由於先雨模數簡化運算(即,先前該經過移位動 4之柄數的減法運算)之故,岐縣經·鋪作之中間值 z’相當小’特狀該經過移位動作之中間值z,小於該經過移位 動數N,時,顯無需再遂行—簡化運算,如此將使得該 預看簡化運算參數b等於〇。 右位:r、=95()將會被—直重覆執行,直到該被乘數的所 t兀:已被處理過(即,直至m為G,且參數n亦為0)為止。 其中’讀係用來顯示是否該經過移位動作之模數N,仍大於 原始之減N,抑或雖絲被乘數的所有位^皆已被處理過, 仍需進一步執行自運算結果Z中減去該模數之簡化運 最後’仍需執行判斷運算結果z是否小於〇之步驟。 是,則模數N將與運算結果z相加以完成最後之簡化. 如此一來,柯㈣最終且正奴概乘 Z。於步驟960中,豆得用以矣-4丄 口果 模數細算之程序:表不错由該zdn方法來遂行該 ,據DE細992 ο專利中所描述之該乘數的外能 _>k>gy)與使用該等預看規則,將會造成於步驟91〇中; 1290300 移位值 精由執订該歸乘法運算法而計算得致之該乘法運管 SZ與該乘法運算參數a。 π 在DE 363携2 C2專利中所描述之該簡化運算移 與該簡化縣參數b,射藉由贿料絲z 儲存的目前内容,與數值2㈣之間的比較動作而紐2 删方法之名稱,即係根據此項比較動作而來的㈣拉⑽
Drittel N= N 的 2/3)。 一、=圖18所描述之該ZDN方法中,追潮該模數乘法運算之 二運异=加法運算(即圖18中所示之方塊),其中,該預看 乘法運算法係與該輯簡化運算法—起用以提升計算時間之 效率。因此,就計算時間而言,係可取得相較於m〇啤⑽町 簡化運算更佳的優勢。 、關於圖I8方塊93〇中所示之該預看簡化運算法,將以圖 19為-詳細說明如后。_開始,在方塊麵巾,將該預看簡 化運算參數b與該簡化運算移位值&保留祕域變數。於方 塊1010中,設定該簡化運算移健Sn之初始值為G。隨後於 方塊1〇2〇中’ZDN值投定為等於該模婁⑼的2,3。於方塊1〇2〇 中所決定的該ZDN值,會被儲存在密碼輔助處理器 (Crypto-Coprocessor)中所專用的zm暫存器内。 於方塊1030中,係用以判斷該變數η是否等於〇,抑或 判tN亥簡化運异移位值sN是否為七。k係指由硬體所規定的 取大移位值。於執行第1合時,方塊麵的執行結果應為 NO ’所以執行方塊1040時,即會減少參數n,同時方塊 中所不之该簡化運异移位值亦會被減j。之後於方塊1〇8〇中 1290300 顯不,儲存在該ZDN暫存器中之ZDN值,會因遂行一右移動 作而被重新設定為原始值的1/2。至於方塊讓_以判斷將 目前中間結果遂行-絕對值運算後,是·會較該zdn暫存 器中之ZDN值為高。 於方塊1100内所執行的比較運算,即為該預看簡化運算 法之中央二運异元運算。如果前述方塊11〇〇中之比較結果是 YES牯,程式遞迴流程將會終止,且該預看簡化運算參數匕 將會被定義為如方塊1120所示者。如果方塊聰中之比較結 果疋為NO時,程式遞迴流程將跳回至方塊1〇3〇中以執行檢 查翏數η與該簡化運算移位值Sn。如果方塊1〇3〇於程式遞迴 流程的某些指標點之執行結果為YES時,流程將跳至方塊 1140。其中,該預看簡化運算參數b將會被設為〇。此一結果 即指於圖18之方塊950所示之中央三運算元運算中,沒有模 數需要被加或減。由於Z值的中間結果太小,以致沒有遂行簡 化運异之必要。於方塊116〇,變數n被重新定義,且該簡化 運鼻移位值SN最後被計算並顯示於方塊118〇中。此一情形即 如於圖18之方塊940所示般,該簡化運算移位值^係供作為鲁 執行該模數左移動作之用,俾取得一經過移位動作之模數。 於方塊1200、1220與1240中顯示,檢查η與k之值以尋 找得致另外變數MAX與CUILk之值,以便進一步檢視該n暫 存器之儲存規範,俾確認無任何暫存器出現超過儲存規範之情 幵乂至於對此更多細節討論雖係與本發明無涉,不過於De 3631992 C2專利中仍有詳細之描述。 關於圖18、19所示演算法之硬體實施方式,係如圖1〇所 10 1290300 Γ中啦之中央三運算元縣,需要—個於圖 =中,不為AU之算術單元·來執行。最接近並輕接於 异術早元之暫存器c⑽储作___、暫存哭 數丈使用,且暫存器z 730係供作儲存該模 數太法運#之中間值使用。自圖1G中可得知,該中央三運曾 果會;由箭頭740所標示之流程方向,而將; =饋輸人至暫存器273()。圖…亦清楚顯示出該也 暫存益之間的相互連接關係。於圖19之方塊麵中所計雜 致之ZDN值,必須被儲存於專用的ZDN暫存器乃〇中。該 z通值n動作及/或圖19所示之遞迴流程,係由一供作^ 比較ZDN值朗之狀㈣嶋·,來遂行流程控制。,'、、 用以計算Z:=MxCm〇請之該厕演區法之主要計算工 作,主要係存在於下列兩項運算: 1·對於暫存器Z與N之移位值\及&之計算: 2/3Nx2 $ |z| $ 4/3Nx2-si;以及 2·該三運算元總和之計算: Z := 2SZ Z + a C + b X 2sz'si ]\[ 如前述已知般,預看乘法運算參數a與預看簡化運算參數 b ’係可使用]、〇與+1代入上述運算式中。 =的是,|陶中間結果z、該被乘數c以及該模數 的長數l(l〇ngnumber)’其數字及/或位元之數量係可輕易 512 ’、甚至可達2048位元數字。 一對於前述已知之執行該模數乘法運算之方法,其中亦 有三運算元之加法運算,且射作—少許修改並以下列方式表 1290300 示之: N := N * 2sn 於上述方程式中,sz用以表示該中間結果z之移位值, -係可由已知之B喊演算法計算得致。 法運算法計算得致之。ς 1 _ 前所述。^仔致之sn用以表不N之移位值,其計算方式女 到曰Ιΐ 財,雜健以sn並不可無限她 (Shi If収作絲紐長數隸奴帛的移位丨 一 er)、只可能在長數量(l〇ng_number)暫存器中完成i個1 元之私位動作。於此方法中,依照該已知的方法,介戈 0至5間的移錄sz係可被實施於密碼處職内。關於該= 之移位動作,其所使用之移位值則介於_3至+3之間。x、
…限制移位值之缺失在於,例如,就實際遞迴步驟而古,對 於來自前-次遞迴步驟之中間結果z,進行移位動作之餘值 \其值通常太小。精石崔而論,如果該預看乘法運算演算法所 ^立乘數之性質,例如移位值可能超過5。則,依據前=預看 驗運算朗可知,於乘數巾應會發生緊鄰於-起的〇的個數 ,5,的情形。如果考量乘數乂具有搬4甚或_位元 時’則前述情形相對更易產生。於此特例中,該已知的ZDN 方法原本應藉由一三運算元(three-operands)運算而對於最大移 位值作出回應之情事,由於該移位值受到關之緣故,改為藉 將X預看乘法運异參數vc設成〇而為之。亦即,於此^步 驟中將不會有任何東西被加入該被乘數中。於下一回合的遞 12 1290300 迴步驟中 移位值s. 果所計算得致之新的乘法 5 運算移位值係大於最大 位值。此的乘法運算移位值仍將受限於該最大移 障礙。其中對於桓法運算之執行形成 、數而3,不再考1與被乘數相加,只有該經 相二動作。之中間結果與該經過移位動作之模數,才會進行- k上述㈣所示之特殊案例應可以 許進行一種大的移位動作時,因此項二 :制於«限之移位而使得該 實施過程中無法發揮最纽能。 口此杜知的ZDH演算法不具備運肋預看乘法運算 U曰加效率之能力。故為了能增進效率,即需將用以執行該 已知的厕演算法之移位好以·化。然制的是,對於 以積體電路方式形成之晶片卡而言,此舉祕增加晶片卡所需 之體積’且由於緊縮^製造絲提供之“空間,及/或導 致相當大的價格上揚’此縣難是無法被接受的。 於此階段尚需指iti的是,制是在密碼處職此一領域 中,其係為一個競爭激烈的市#。即使是-點小小的價格差 異,都將會導致某-家供應商存活下來,而且使得另—家供應 商退出市場。造成此-現象之原因,乃因為應用在晶片卡上的 處理器是-種大量生產產品,故晶片卡亦是—種典型須以大量 製造來取勝的產品。 另一方面,對於晶片卡上的處理器有相當大的安全上要 求。雖然晶片卡通常是在使用者手上,但其亦會落入攻擊者手 13 毛290300 中。一旦攻擊者完全掌 於密碼演算法的安全其即會遭受攻擊。因此,對 演管半的忠入α 农疋直增加。已知的是,對於RSA ^法的t性要求乃越來 僅為1024個位元,甚且^ 運异福位兀長度不 以门各 未需達到2048個位元。 定。此意謂“核· 卡製造商事先決 大量空間,以供容納計管罝=商必歧一預定之範圍内安排 風、宙管$ + #早5己憶體。相對應之下,因密碼 予/負法越來越複雜,且需要 -旦設f Π## ^ 作記憶體,如此一來,
*門時,此讀敗目的制來擴Α計算單元部分之 :=舉顯將會影響到工物體之空間設置,而此一結 ^ U°也就是說’若更多的晶Μ間係用在提供作 马计t早兀使用,對於移位哭而古 能配置使用的工作記t咅空,疋晶片區域中所 二U工間將會越小。此一結果將造成某些高 士⑨碼料法無法執行,以或與競爭者之產品比較計 异速度日可,顯現出較差的運算效能。 種對於計算乘法運算更具有
本發明之目的,係用以提供一 效率之觀念。 【發明内容】 本發明之目的,係可藉由申請專·_丨項所述之裝 置、申請專利範圍第I2項所述之方法,抑或申請專利範圍第 Η項所述之電腦產品而達成。 本發明係依據現有可崎狀移位器#源,發現如果以該 模數可被雜固定於其模數暫存H中之某—預定位置,及/或 如果以該縣數之移位動作係與_財敎做法,來取代於 14 1290300 綠巾,職絲顧料蚊於某—預定位置 =做法。如同以下所欲提出者,由該乘瞻乘法運算演算 异得致之該移位值’即於後述說明中被提及之^,並不备立 刻引發讀的移位動作,係與另—移位值相結合。更確ς地 說:係藉由-差㈣與該被餘c錢之該移位值相結合。 此思明者域已知Booth㈣法所較之縣法運算移位值 sm’m·紅知BGGth演算料接作為移位該 ^果日请需之移位量來使用,而係就某種程度而論,藉由 =位:所實現之該乘法運算移位值^,係會被該移位值所 即’依照本發明,係會被於暫存器中保持可變狀態之 違被乘數C所減少。 依…、本么明’於具有上述結果之新的演算法中,該3運算 兀加法運算會被以下顺示之遞迴步驟相執行之:
C c * 2SC
Z:-Z*2sz + vc*C + Vn*N 看乘t紐移健Se,箱計算辦間結果移位值Sz與該預 ^運异移位值Sm之間的差值而得致,更躍切地說,係依 知下列方程式所計算得致:
Sc==S2-Sm 則就叙Z所,:,既然该中間結果移位值、將會-直大於〇, …嫩乘數移健Se係會—D、於棚看乘法運 。此—絲將會導致從該已知Booth演算法中所取 寸為〉曰在胁大缝值之預錄 硬體電路來實現該移㈣ =錄Sm於有關以 W之而衣中,不會再處於一決定性的主 15 丄290300 導因,而# 的衝擊。,舶該中間結果移位值Sz之值,可減少數量方面 觀念既有移位器資源之計算單元而言,本發明 階段,且允位量總和被使用在該模數乘法運算 實際使用位器被使用於簡化運算階段。對應於 中m匕運Γ而μ分成較短的以及較長的移位器,係可使其 最後階量快速地執行之。脚,於賴數乘法運算的 俊认指要使_該較長的移位器。 足以翻亦呈現運贿有移位11之制容量,即具備 歸紐運難算法巾姆A之移位值使用之 3曾來’只有極少數的特例會發生,且該預看乘法運 —貝^法的執行效能會盡量表現得不錯。 本發明裝置包括肋檢查與目前遞迴步驟有關之該乘數 之位70數子的裝置,錢可藉由—歸乘法運算演算法,以便 乘法運算移位參數Sm。此外,該用以決定該中間 、,、。果祕值Sz大於〇之裝置’討使郷域行於目前遞迴步 驟之先前的遞迴步驟所產生以及依據中間結果移位值Sz而向 前移位數個有效位元之-中間結果内有—個最高有效位元,苴 位7G有效性係較接近於該模數之最高有效位元的位元有效 性’而較不接近於由該先前的遞迴步驟所得致中間結果内之最 高有效位元的位元有效性。此外,_計算—被乘數移位值& 之裝置’其係為該中間結果移位值Sz與該預看乘法運算移位值 Sm間的差值。更甚者’利用依據該中間結果移位值而使該中間 結果進行移位,以及依據該被乘數移位值而使與―固定的模數 16 1290300 有關之被乘數進行移位之裝置,以便取得—觸移位動作之中 間結果與一經過移位動作之被乘數。 利用該經過移位動作之中間結果、該經過移位動作之被乘 數以及該模數,係可執行該三運算元加法運算,以便為該目前 遞迴步驟取得一中間結果。 決定該中間結果移健Sz財數射紐。如果於每—案 例中,例如於使該經過移位動作之中間結果的最高有效位元相 等於該模數的最高有效位元之案例中,該中間結果皆以一最大 ί進打移位’亦即’係以最大的速度來遂行之,則將可以取得 =的,法,因為之後會—直取得良好的簡化運算,亦即就其 旦=而5 ’於遂仃該二運算元運算後,該目前的中間結果會盡 ff小傭與並非選擇該中間結果移健U最大值之案例 =為選擇以近財法所宣告取·估計值,或是選擇 = 結果移位11的長度,則於效率上,係會明顯地降 二原則上如果選擇该中間結果移位值&係大於〇,則於執 ^卩可以取得改進的空間。更柄地說,就數量而 ^ f皮乘數移位值SC係小於該預看乘法運算移位值S„,如 大=因1^值就不再成為絕對主導以及支配該移位器尺寸 於-較佳實_中,驗係會被以—向左對齊之方 =調^其==數暫存器内之儲存位置,以便使得一超下 暫^ ° Μ-來’該被乘數可以因應與既有 存益有社雜缝量值,、卿錢人該超下限 tp。 口口 1290300 於本發明之較佳實施例中,亦使用到已被揭露於DE 10111087 A1專利中之模數轉置變換方法。 、 為了能更進-步增進執行效率,於本發明之較佳實施例 ,、=會執行—經簡化過之三運算元加法運算,也就是會執行 :(:咖)柄二魏元加紐算,轉其解行於該精 ^ 運异7L加法運算,以便與於該目前遞迴步驟中所取得之 该中間結果的實際真正值相較,可更快速地取得—巾間結果的 t似值。於該目前遞迴步驟中,係可計算得致該中間結^的實 際真正值,且提供予下一遞迴步驟所使用之該些預看參數,亦 可,该中間結果的近錄之基礎下,祕目前遞迴步驟中先行 Γ算得ίι對於執行三運算元加法運算而言,如果該大型且複 雜的計算單元已經計算完成可提供目前遞迴步驟所使用之該 中間結果’則-較佳之做法,係對於提供下一遞迴步驟所使用 t該些預看參數,_於該時間點同時一併計算完成。如此一 “ ’该二運算元計算單元於完成最後—次遞迴步雜,便可立 即開始計f該中間結果的精確值。如此-來,於-近似的運算 ?力法運r之基礎τ’提供予下—遞迴麵所使狀該些預看 麥數之計算轉動作’倾提供予目_迴步麟使用之該中 1、:果的精確值之杯取得動作,相互平行進行。此即是近似 的三運算元加法運算之簡化(Slimmed)版。 ,於本㈣之更佳實關之做法,係將賴㈣置變換動 ”提t、予下-遞迴步驟所使用之該些預看參數之平行計算 動作相L合’因為於此等情形中,該中間結果的近健之計算 動作’不但可峨高度频化,且基_倾由該模數轉置變 1290300 換動作所事先指定且為已知 加快進行。 “、數的上半部位元,亦可以被 本發明之較佳實施例係可 明。 下歹丨圖式為—更清楚之說 【發明實施方式】
固1所示之舍明裝置方塊示例圖,盆 相關之乘數Μ與被乘數c 收模數N 之遞迴方法,以計算乘法運算。料—包括有數個遞迴步驟 如同依據圖18所為說明’乘法 學計算領域中,是-種#、回、^ ’特別是在密碼 使用數個遞迴步驟。圖H一异概念。計算乘法運算需同時 任-遞迴步驟中包括了數個子不步驟用數個遞迴步驟,及/或於 查與目前翻辣有社雜數Μ之位元數字 係猎由1看乘法運算演算法,以於裝置卿之 輸出1峨文pl6line32,圖一沒有⑽_2)取得 運算移位參數sm。 於本發明之較佳實施财,該預看紐運算係可為已知 的Booth演算法。細Gth演紐運用數個預看運算規則,則 躲了預看乘法運算移位參數Sm之外,亦可產生預看乘法運 算參數V。。此外,如果該預看乘法運算演算法只使用—個或 有限數目的預看運算規則,翁不需要_計算出預看參數 之值,如此一來,假如有提供足夠大的移位器,將因而使該 符號參數vc-直為+1。但對於其它的預看運算規則而言,該 19 1290300 符號參數%亦有可能變成小如果所取的預看祕運算移位參 數sm值太大的話,該預看乘法運算參數%亦討能變成〇。^ 圖1中所示裝置更包括裝置1〇4,其係用以決定該中間結 果移位值sz。原則上,該裝置被賦予決定一中間結果移位值大 ’且該中間結果移位值會造成一事實,即依據該中間結果 移位值sz進行移位動作之中間結果有—最高有效位元 (MSB) ’其位元有效性(significance)係較接近於該模數之最高 有效位元驗元有錄,而較不接近於由該先制遞迴步驟 =仔致中間結果之最高姐位元的位元有錄。胃言之,此1 忍明该中間結果移位值^會造餘於-暫存_之該中間結 果,被至少往左移位Hg]位元,較高有效位元越往左邊安排, 較低有效位元則越往右邊安排。 _於此階段亦可指出的是,存在一暫存器内之最高有效位 二係承载了有用的資訊。例如,若某一數字之長度係小於 娜存裔可允許的長度,且位於該暫存器中之某一數字係被籲 以住右對齊方辆存時’該某—數字之最高有效位元即會被 ,放在4暫存器中之某處位置。然而,由於該最高有效位元 :方将的儲存空_會被填,故該最高有效位元即不再 ' 一可〜義如此一來,‘最高有效位元,,係被理解為用 =表不相對於該某—數字之其它位元,其係為—具有最重要 思義之位元’同時承載了有用的資訊。 20 1290300 於-特定實施例巾’ Μ蚊辦間結果移位值&之裝置 104 ’係被絲使該巾間絲盡可能往左邊最遠的地方來移 位。如此一來’該經過移位動作之中間結果之最高有效位元, 將與該模數之最高有效位元相同。於此例中,模數減法運算 (即’簡化運算)’於簡-三運算元加法運算後,將會導出一 個較小且新的中間結果。因此,於此案例中之簡化運算會被 以更好、快速以及有效之方式執行。無論如何,用以決定該 中間結果移位值之裝置崩,於產生大於〇之該中間結果移位 值sz時,其即已經是具有效用的。 本發明裝置更包括用以計算一被乘數移位值Sc之裝置 廳’其鱗於射_果移錄Sz_歸乘法運算移位值 U的差值。從圖1中方塊觸所示之柿式可知,—個較〇為 大的中間結果移健會導致縣法運算移位氣不再處於獨 佔主導地位,且不再能決定該移位器的體積尺寸。但就&之值 係大於㈣論,會使得縣法移健&之總數減少。 圖1所示之裝置更進-步包括裝置應,其係用以依據該 中間結果移位值㈣對該中間結果z進行一移位動作。其中, 該中間結果移位值Sz係由裝置綱所產生,並經由一輸出端刖 而提供予裝置106與裝置1〇8使用。該用以進行移位動作之裝 置’更進-步被用以依據該被乘數移位值%而對該被乘數[進 行一移位動作,以取得一經過移位動作之被乘數。 21 1290300 、圖1所不之裝置更進—步包括裝置112,其係用以使該經 過移位動作之中間結果、該經過移位動作之縣數以及該模 數逐行-三運算元之加法運算;其中,該模數係為一固定值。 來以便於目月b之遞迴步驟中,自該三運算元加法器 112之輸出端H4處取得一中間*士果。 於現階段要指出的是,若是一運算元的移位動作(即,將 2s與該運算元進躲法運算)不需要崎體方式(即,對實際的 暫存器進行移位動作)來實現,而係原則上可改由以2s遂行乘 法動作之軟體方式來達成時,則該移位裝置⑽以及該三運算 元加法urn並不需要被t歧兩個分離的裝置來實施。於: 情況下,肋執行乘法運算魏贿後進行—加法運算之該 裝置⑽與Π2,即會被結合成為單一的裝置,此結論與圖β 方塊112所示之方程式係一致的。 圖2表示與該模數暫存艱、該被乘數暫存器C 202 以及該中間結果暫存器Ζ綱等三個暫存器有關之内部構造 不例圖。 於該被乘數暫存器202内遂行該被乘數移位動作之事件 中,模數Ν係被固定填入該模數暫存器2〇〇。此外,以靠左對 齊_娜_方法將模數Ν填入該模數暫存器·是^一 較佳做法。如此-來,於阳最麵處,_—衫有效位元 謂储私暫存H㈣輸御,叫緣寫來桿 22 1290300 示之。接著,於相鄰的暫存器基本組成單位中,依序填入模 數N之MSB-卜 MSB_2、MSB_3、…等位元,直至模數n之最 低有效位元(LSB)。例如於一RSA計算中,該模數^^係可為— 正常模數’抑或例如以下所欲描述之較佳做法,於整個遞迴 β十异過私中’該模數N係可為一被固定在該模數暫存器中之轉 化模數。相較之下,使用該移位裝置及/或相對應的移位器之 該被乘數C以及該中間結果2,於它們的暫存獅2、2〇4中, 係為可變動的。此-情形被以圖2中靠近暫存器之雙箭頭符號 所表示於圖2中顯示出-種於任一遞迴步驟中,乘數μ以及籲 與模數Ν有關之該被_之_乘法計算之典型情形。從圖2 可知’該被乘數C已被往右移位5個位元,即被移位至超下限 _erflow)暫存器21〇中。且自其中亦可知,位於該中間結果 暫存器内的該目前中間結果’被定義往前移位3個位元。 於圖2實施射所示,模數N-直是被以靠左對齊方式安 排於該模數暫存器200中。依照該模數N之位元長度,模數Ν # 之最低有錄元(LSB)2_可峨賊在賴數暫存器2〇〇 中之任何位置。於該模數暫存器中,位於模數N2Lsb如8之
後的該些位元21〇,係被錢成超下限緩衝器,而該被乘數C 係可移位進入之。 士下所述’對该被乘婁文C進行移位動作之想法與該已知的 ZDN演算法相較之下’該被乘數c係為一常數。然於習知奶n 23 1290300 演算法中’ 上賴著傳缝學之作法,其係相類似於將 :個二進制的數字進行逐—乘法運算之做法。其中,該中間 、(果係依獅歸乘法料移健而被移位贴邊,且其中 ,數麵後被向前移位’以於每—遞迴步驟中取得有效的 間化運算。就好比說’本發财法亦會對於與暫存器中之儲 存位置有狀減段落標侧f_。_被乘數c 進订移位動作,齡影響顺元段落標記之定義。 在一個進行被乘數移位動作讀佳實施财,該中間結 果暫存器204内之數值2,會被盡量地往高位元方向移位,以4 使得-簡化運算可以被進行。於圖2所示之舉例中,移位值^ 218(3個位兀)會被選擇提供打—遞迴步驟制。如此一來, 於該Z暫存H中之目前數值Z_SB22G,會與該模數之廳 施具有相闕次方。如果自該碑存財減去鋪數N,豆 差值將會非常小,此乃由於此兩數值幾乎鱗。於此應指出 的是,不論是對於正數或負數的計算,皆具有一樣良好的執# 行結果。 關於調W為之朗.目麵妙財所使用之該 乘數之位錄字的檢查_,會在下—麵步财被執行, 以便找出可啸允狀預輕法縣移錄Sm。從圖i方塊 觀可以很清楚地得知,該被乘數暫存器地中之該移位紅, 係由Sz-Sn/斤決定。 24 1290300 .軍Ί δ’如果該歸乘法運算演算法決定該預看乘法 立值sm等於3 ’亦即等私⑽,則被乘數移位值π將會 ?。开出等於G。如麵此—結果與已知ZDH演算軸比較可 於此例中’ sz的選擇亦是會被加她演算法所允許的。因 此’於此位7G縣標記(eQmma)巾並無任_移购作,即於 該被乘數C帽練触^會被餘。 、
以下要注意的⑸小於Sz的例子,如圖2所示之例子即為 Sm僅等於2,㈣218等於3。與已知Bo她演算法相較,此意謂 該中間結果將會齡前移位超出—個位元。此等情形表示以2 的次方係數(即依據暫存器之數字進行移位動作)與Z值相加 時,z值會變得太大。為了抵銷此一現象,該被乘數c亦需依 照該新方法向前移位一個位元。易言之,此將意謂由c及/或C 的LSB212所疋義的位元段落標記(c〇mma),需被調整對應於 該已經選擇之Z移位值Sz 218。於使c向前移位—個位元及/或
該^值之後’ C與Z之間的關係會再一次清楚明白,且於則方 塊112中可以進行無錯誤之加法運算。 此外,基於會盡量地選擇大的Sz值事實,—項有效率的簡 化運算將會發生於圖1所示方塊112之三運算元加法中,因為z 已藉由sz218進行移位動作以與N具有相同的次方值,且因為 該被乘數C被加進來’所以無論如何,z_數值係具有相類 似的次方值。 25 1290300 以下考慮3„1大於Sz之狀況。如前所述,選擇最大型值之^ 218係為一較佳做法。圖2已顯示出&的最大型值不可能超過由 3個位元所旎表示者,因為偏若如此的話,圖2所示之 220,會超出該暫存器2〇4所能接受的範圍。 如果該Booth演算法所決定Sm值係較^值為大時,便未能 使該中間結果往前移位足夠的位元數,例如圖2所示之遞迴方 法,往前移位之位元數會少於i位元。此一情形意指如果沒採 取任何動作,她於C,對於該三運算元加法而言,z值將會 顯得太大。為了抵航等情況,被絲c會齡右移位,例如, 依照s#sm間的差值往右移位恤元,如此一來,〔與冗之間的 對應關係又祕度恢_正雜置。於此懸辦亦會產生 有-良好的簡化運算,此乃由於Z已被往前移位最大型值的移 位虿’ Z與N會有相同的次方值,故將使得之間的差值會 相當地小。亦即,良好的簡化運算會於圖丨所示方塊η〕内之 三運算元加法中被實現。 於圖2所示之觀念巾’有兩項主要優點係與現行移位器資 源之利用效能有關。圖3所示者,即為一可作為圖W移位裝 置⑽之下位實施概念,且肋移位取之移位器。該移位 器結構性地包括用以移位Z值之一第一移位器部分隱,以及 用以移位C值之-第二移㈣部分嶋。該第—移位器部分 10M系為-僅能往正數柏進行移位動作之移位器。其係用 26 1290300 以移位z值。此亦表示該z值之LSB絕不可能被移位到超下限 缓衝器210中。然而,圖2顯示了於進行該3運算元加法運算後 之情形,此正是為何C值之LSB 212與Z值之LSB 214具有相同 的位元權重(valency)之緣故。因為依據該三運算元加法運 异,LSB 214係由圖1方塊η]中所有相關之運算元的LSB所共 同決定,而無關於進行該三運算元加法運算之前,該z值數量 已被向前移位之情事。由於N是固定不變,且c可以被向下移 位,於經該三運算元加法運算之後,c會一直決定Z2LSB。 如上所述般,Z會被一直往左移位sz 218,C及Z之LSB 212、 214會在進行該三運算元加法運算之前,即會先行出現差異, 以便於進彳了該三運算元加法運算之後,再度呈現—致狀態。 由於sm-直是正數,所_乘數將會是以由低有效位元往高 有效位兀方向來進行處理,而非以相反方向來處理,且由於 sz會一直疋正數,Sc值之數量將會小於&,以至於z的是一 直由C來決定。 該可移位+5之大型移位器驗,係提供予&使用,所以依 據該大型移位值Z,任何移位動作皆會受到影響而盡量地往N 靠近。於此階段要指出的是,圖2所示者,並不必要是一個典 型例子。其亦可以是下列情形,即Z與N於前述三運算元加法 運算中,係可為大約相等之大型值,所以雖然向左方移位最 大值,該MSB 22G仍會較該模數j^MSB施有較小的位元權 27 1290300
重下达之例子係為—相當少見的例子,其中,僅可於單方 向私位之献财位器(即該移位龍_觀以移位z值。 由於該被乘數c必需被往兩個方向進行移位動作,所以為了該 被乘數之需要,移郎賴具杨增如,向左)移位的能 、、向下(例如’向右)移位的能力。然而,因%將會一直 為一正的錄’所崎移邮衫需要配置得如此大型。可 以被證明的是,具有部3移位效能之移位器即已足夠滿足 而求。因此’猎由提供可變之被乘數c的新想法,現有之移位 效能,將可被更有效率地發揮,因為縣法運算運算移 、值“不g被直接轉成移位值(此值頃向太大)來使用,且因 為社_位雜為了簡化運算之目㈣被拿來使用,即主 要是為了餘z仙使其射祕近職,如,將會進行一 次良好的簡化運算。 於名白知ZDN方法以及具有可變的被乘數c之此等新方 法之遞迴實施射已證明’與該総縣運算她時,該簡 化運异之執行時機係會稍微落後於該乘法運算運算。 於該習知ZDN方法巾’依據處理完畢該乘數_有位元 數字後之事實更可清楚得知,邮紀厕方法中位動作 之該模數N,健較原始賴料大4言之,於該習知功n 方法中,現有部分賴數健位於該溢位緩衝如。因此, 於其中即使不再檢視乘數之位元數字,仍需執行數次剩餘部 28 1290300 分運算元之加法運算,故有許多次3運算元加法運算,需要配 合一經過移位動作之模數(該模數被向右移位)來執行。直至1 模數之MSB再度被移出該溢位緩衝器,且移位至與計管之起 始位置相同的地方。 此等情形亦將發生於此新的方法中,然而,依靠該模數 位於該溢位緩衝器中之事實並未被觸及。如前所述般,於該 新的方法中該模數係固定且不可以被移位。當所有乘數位元 數字已經被執行,且當該LSB犯之位元有效性確定仍然小於 雜數之LSB 208時,更需進一步執行數次運算元加法運算。_ 更確切地說,應不必考慮該乘數位元數字,因為它們已經被 處理過既然遺乘數位元數字已經被處理過,所以亦不再需 要該被乘數C。因此,由LSB2G8所定義的”零基線"(zer〇line) 即热需遂行移位動作,且被乘數需要利用該較 小型的移位||1_以遂行往上雜之動作。僅允許於某一步 驟可向左移位3位元。易言之,-旦所有乘數位元數字被處理· 完畢’該被乘數即立刻不再重要,且不再被需要。 然而,對於最後之簡化運算而言,該中間結果暫存器z 之LSB 2M仍要予以考慮。因此,該被乘數。之湖犯於最 後久二運异元加法運算中決定該中間結果暫存器Z之LSB 214的位兀有效性時’仍然包含乘數之位元數字。最後一次簡 化運异會被-直搁置著,直至該LSB 214被放置在由該模數暫 29 l29〇3〇〇 存器200中之LSB 208所定義之"零基線”之後,才會被執行。 然而依圖3所示之實施例’利用該較大型移位器驗以使位於 該中間結果暫存器2〇4中之該z值的,,向前移位,,動作,係分別 允許使用五個移位值。因此,該最終簡化運算會於—較大型 I驟中被執行’然於已知方法中,該最終簡化運算則係以 車乂小型的移位H來完成之,為有必要使模數N酬原來的位 置。於新的方法中,基於位元段落標記(c〇mmaM系被被乘數c 所拷貝使用,該模數顺固定不變此一情形,對於該最終簡化 運π係無⑤義的’目為並沒有任何絲位讀字涉人其巾。孀 ,無論如何’該預看乘法運算參數V。會等於G,以使得在該” 簡併的,,(degenerated)最終運算元加法運算中,對ζ值遂行向前 之移位動作,且可—直允許達_位5個位元。 總結而言,圖3所示之示範性移位裝置,係以對Ζ值而言 係為一 5位元移位器以及對C而言係為--3,·..,+3位元移位^ 之方式’提供—虛擬的8位元長度之B〇〇th移位器以及_5位元 · 長度之簡化運算移位器。 關於此新的遞迴乘法運算觀念之詳細描述,稍後會於 圖12至17b中為—說明,且其係為本發明同步以虛擬碼所為之 、紐實補。於雜佳實補巾,馳絲C之移位方法係 ^用以與核數轉置變雜如池_阔觀念以及同時用來計 算該預看乘法運算參數與該預看簡化運算參數之新的方法相 30 1290300 結合。 圖4係為-裝置之方塊圖,其係用以顯示藉由於遞迴步驟 中包含了刖-次遞迴步驟與目前遞迴步驟之數個遞迴步驟的 f迴方法’以計算與模數有關之被乘數與乘數間的乘法運 异。圖4所示之裝置,係可以被同時用來加速計算於彫中所 述具有可移位被乘數C之新方法的預看參數Sm、&以及&,且 用以計算於圖18方塊920與940中之該預看參數5我(即,該已 知ZDN方法中之預看參數)。 圖4所示用以加速執行效能之遞迴方法包括,利用前一次孀 中間結果ZV01^Zpre 402、模數404、被乘數z 406以及經由圖4 所示路徑408所提供之前一次預看參數值,俾對於前一次遞迴 步驟執行-精確三運算元加法運算之裝置4〇〇。用以計算該精 確二運算7C加法運算之裝置4〇〇,提供一中間結果的精確值予 於圖4中以410所表示之目^^迴步驟。圖4所示裝置 更進-步包括,利用前-次中間運算結果‘、該模數N4〇4 # 與至少利用由圖4路徑408所提供之前一次預看參數之部分 值’俾對於箣一次遞迴步驟執行一近似的(叩讲敗如你幻運算 元加法運算之裝置412,以便對於目前遞迴步驟取得一中間結 果的近似值。其中,該中間結果的近似值於圖4中係以 來表示之。對於目前遞迴步驟而言,利用該中間結果的近似 值414(其並非為一中間結果的精確值41〇,而係僅為一估計及 31 1290300 /或預測之中間結果)’以及利用該乘數M416,即可於路魏 裝 所示之輸出處,計算得致目前的預看參數。如前所述般, 置417係利用該中間結果的近似值414以及利用該乘數μ 416,俾計算得致目前的預看參數418。 4裝置亦進-步黯用崎行财3運算元加法運算之 襄置’亦可被細在利用-精確的魏Ν物、該被乘二6 以及來自裝置4Π且經由路徑418所提供之目前預看參數值, 俾於目前遞迴步驟中,執行_精麵3運算元加法運算。 圖
圖4所示之結果係用以顯示,裝置術係對於目前遞迴+ 驟中精確的3運算元加法運算進行計算。裝独2,係對於” 遞迴步驟中近似的運算^加法運算進行計算。|置417,係二 於隨後產生之預看參數進行計算。特別的是,裝置412,係利 用目前的中間結果410與模數Ν,以執行—近似的運算元加法 運算,如此-來,即可對於隨後之步驟估算出該中間結果Ζ, 即Zsubs,approx422。其中’裝置400,係可利用目前的中間結果仙 與模數N而由-精確方法產生出運算結果·。利用該值似 以及考慮乘數Μ,即可至少計算得致靖後_看參數。去 於此階段需指出之-較佳做法,係對於每—遞迴步驟: 5 ’亚非是提供用以計算得致_確的3運算元加法運算之特 絲置(specific means)、用以計算得致該近似的運算元:法運 异之特找置,與用以計算得致該目前預看參數之特定裳 32 !29〇3〇〇 置,而是於-中間結果的近似值的基礎上,提供—密碼處理 器,包含有之用以計算得致該精確的3運算元加法運算之單_ ^置(singlemeans)4〇0、用以計算得致該近_運算元加法運 异之單-裝置、以及用以計算得致該目前預看參數之單一装 置。於此情形中’所提供之控制裝置可以引發前述三種裝置 於每一遞迴步驟中因應輪入新的參數值,就如圖4所示般。 I置417(或417 )係被應用在包含與具有該可移位的被乘 數C之新方法有關之圖丨所示裝置1〇〇、1〇4、1〇6之功能。 關於别述方法,裝置417及/或417,係被應用在包含於圖18 _ 中所示之裝置910、930的功能。裝置417及/或417,亦係被用以 輸入前一步驟之中間結果的近似值,而不是被用以輸入前一 步驟之中間結果的精確值。 自圖4条構中應已清楚顯不’於該精確的三運算元加法運 t中所计异付致之精石崔中間結果的大約估算值,係允許於每 個遞迴步驟中之該精確三運算元加法運算的計算動作,係與 鲁 下一步驟之預看參數的計算動作一併同時執行,如此一來, 三運算元加法運算可以被不斷地執行,也就是說,計算預看 參數的運算動作是不會中斷的。 依據圖18,可以暸解上述觀念。其中,並沒有一精確中 間結果之大約估算值可被執行。每一遞迴迴圈原則上係由兩 個串列步驟所組成。也就是說,一開始是對於目前遞迴步驟 33 1290300 t㈣)之瓣轉,讀,_物目對應的移位 動作(920、940、950)之三運算元加法運算的計算動作。 —相同地,此一新的觀念係包括該被乘數C的移位動作可於 每次遞迴步驟中產生起始作用之方塊⑽、綱、⑽内執行 =便對於目前遞迴步驟執行,且—旦該預看參數已= 异仔致,即可藉由裝置1〇8以執行相對應的移位動作,與藉由 裝置112以執行一三運算元加法運算。 、曰
圖4所示之加速計算觀念係可以克服此一雙時脈 (—-dock)過程所需付出的效率損失。藉由彼此同步 中間結果的近似值之計算動作,係可獲致有關於目前遞迴步 驟之精確中間結果,且盡可能於目前遞迴步驟中獲致與下二 遞迴步驟有關之預看參數的計算結果。 圖18中習知ZDH方法的問題之-,以及圖j中具有可移位 被乘數C之新的遞迴方法的問題之一,皆可以利用圖4所示之
加速觀舒錢服。此問題· _巾之該移位與符號參數 sz、sn、a與b,及/或圖}所示新的方法中之^與〜、、與\,必 需在進行每-次三運算元加法運算之前,即先被計算出來。 如此一來,於圖18所示習知方法中之加法單元95〇,或者圖i 所示新的方法中之加法器單元112,於計算該些該移位與符號 參數時,將會處於閒置狀態。 圖4所示之加速觀念,上述問題係可以藉由執行一既好且 34 1290300 快之執行巾的三運算心法運算錄 此項近似的數值,對於 克服依據 , 於下—遞迴步驟之預看參數,即可以在 剩餘之時間内計算取得。告 a ^ 从在 y . ^ 田下一人的二運异元加法運算要勃 仃日才,其所需之預看表 对要在A〆卩已麵好。因此’此方法的加速 放果係可達到2的次方係數倍。 於本發财柯_魏,未來_似符號值主要是 依細上半部位元數目(例如,12)以及被乘數移位值^而所
決定。其中,被乘數移位值%係由例如圖W所示新觀念之s 與31^的乘數Μ所決定的。 "Ζ 此外錢似的數值主要是依據2的上半部位元數目而非 依據C來决定的。此乃由於如前所述般,簡化運算之運算時機 會猶落後於該乘法運算。考量Ζ、Ν以及C,每當簡化運算之 運算時機餘後闕乘法時,ζ她於㈤言係為一較大 的值。因此-較佳做法,對於方塊412中之該近似的三運算元 加法運异而言,是可以忽略c。所以,事實上該近似的三運算 兀加法運算,於忽略C且僅於上半部位元之數目係小於全部位 兀之數目時,會變成僅與上半部位元之位元有效性相關之2 運算元加法運算。即,例如會變成僅與2與!^之最頂端12位元 有關之加法運算。 一般來說,對於近似的三運算元加法運算,抑或就有關 方塊412中之近似的運算元加法運算之更進一步的加速計算 35 1290300 效果而&,所使用之模數N404並不是原始的模數,而是一經 過轉置變換的模數。其中所謂經過轉置變換的模數,係指經 由遂行於DE 10111987 A1專利中所描述之模數轉置變換原理 而得致之模數。如此結果,將會使得上半部位元中在〗以及依 據該模數轉置變換之任一意欲值之間,進行變動的某些數目 會一直相同,而無關於任何被實際處理的模數。因此,於該 較佳的近似的運算元加法運算中,既然有某些從該模數暫存 裔之MSB處起算的位元被運用,且既然有某些來自該模數暫 存器中相對應的位元被運用,則就實際而論,對於近似的三 運算元加法運算,料會有任何來自模數暫存器中之位元被 運用’因為如何’於模數暫存器中之上半部位元係屬已 知的。對於計算近似的三運算元加法運算的唯—變數,係符 號為vn的模數以及該中間結果暫存器2之最頂端處的12個位 凡如此-較佳做法,該近似的運算元加法運算係可以組合 建輯之硬體方式來實現,且較精確的三運算元加法運算為0 决。所以’在以精確的三運算元加法運算之效能表現為前提 ,下,將可在-中間結果的近似歡―之基礎下 ,有足夠的 時間去為下-步驟計算得致出該些預看參數。 〃於詳細⑻關以執行該近似的運算元加法運算之具體實 也衣置412之刖’將先以圖5至圖1〇說明如同揭露於加 10111987 A1專利中之模數轉置變換運算方式。 36 1290300 圖5顯示利用模數N以使乘數顺被乘數c遂行一乘法運 算之方法流程圖。1始’模數>^於步驟鄕中被遂行轉置變
換動作’以魏下列方程式所示之—經過轉置變換模數NT。 Ντ 二 TXN 於步驟520巾,细該經過轉置模數nt與該經過轉 置變換之模數的分數值(於此—較佳實施例中係為刈,以執 行該模數乘法運算。關於驗指數戦,係幻旨由計算下列 形式之RSA方程式所得致。 CT := Md mod Ντ 如此,模數絲運算之結果c並不會由模數n定義之該剩 餘類聊esidualdas种計算得致,㈣會__轉置變換 模娜定義之該剩餘類別中所計算得致。此亦是為何出現在 上述方程式的左邊處者,係為CT而不是C。由於使用了-過轉置變麵數Ντ,_助簡化運 … 得極為簡單。其中,計曾值政计异動作將變 寺動作係對應於 運算預看方法之遞迴迴圈。 《 T自知間化 於最後步驟540,係藉由執行 、 轉置變換回復為N。 不之私式’以將Ντ
C ~ CT mod N 存在於该經過轉置變換模 變換結果6_由_簡=:餘_該經過轉置 私位/減法之簡化運算而回復 1290300 如此來,c即為該模數指數運算 至該模數N之剩餘類別中 之結果。 的從步驟·中可知,模細緖由該轉置變換因子τ而轉 践換成為模數ΝΤ。如此結果’該經過轉置變換模數之預定 刀數值於此-較佳實施例中係為該經過轉置變換模數的2/3 倍。該經置變換概之預定分數财—具備第—預定值 之一較高有效紅,且有—第二預定值之—較低有效位 兀緊跟其後。如此—來,更確切地說,藉由解亦具有第一 預疋值之Ζ的最純元’該巾聽衫與該_觀賴模數· 乘、3後的數值之間的比較運算’即會變成相當簡單。因 為丄具有該_魅_鐘狀分數值賴第—預定值之 車ΠΙ有效位元,以及具有該第—預定值之中間結果ζ的最高位 元間之差值係等於Si。 上述結淪可以下列之方程式表示之。較佳者,Ντ係於32 一勺CPU而非於該密碼輔助運算處J里器(哪於心坪⑽%沉)φ 中被轉置受換成為該經過轉置變換模數Ντ。 Ντ··=ΤΧν 丁係為一自然數。 如果所有數字都是2進制數字表#之,卿的表達形式即 為: ΝΤ:==110〇-〇Χχ...χχ 38 1290300 該經過轉置魏概細2/3後_值之表辆式即為: 2/3 Ντ ··= 100···0 χ’χ’···χ,χ, 從Ντ以及誦丁可以得知’此兩者皆具有%位元之第一部 份’以及隨後L⑼位元X及/或又,的—部份位元。對於所謂删 比較it算’其僅彻該經過轉置變換模數作後的數值 中位於頂端處的I6位元’因為此已可提供—較rl。為佳的錯誤 機率。此意謂著,並非該經過轉置變換模數乘以2/3後的數值 中所有的512、1024或2_位元皆全部要提供予腳比較運算 來使用是只錢供足輯行該概較運算之該經過轉置 變換核數巾位制端處的崎可以使用細τ 中更少的位絲進行該項比較運算,但錯誤機率會逐漸增 加。惟’因此等增加錯誤機率的情況並不嚴重,且其效能僅 會略差於該歸簡化運算的最佳效能,故轉方式亦可以被 採用。 如此’该經過轉置變換模數Ντ乘以2/3後的數值有一具備 位元值為1之較高有效位元,其後至少接著—具備位元值為 〇(亦即’為-第二預定值)之較低有效位元。於上述較佳實施 例之描述巾,較低有效位元之數量係為15位元。當然、,此處 亦可使用較大或較小的位元數量,端賴該中間結果Ζ與所期望 及/或要被處理之該經過轉置變換模數Ν乘以2/3後的數值之 間’於級數(magnitude)上所顯現的差異。 39 1290300 對於該模數乘法運算之中間結果z的數量,即圖18方塊 H該三運算元加法運算的結果,係為下列形式:
|Z卜 00···〇ιγγ…Y 該辅助移健_依照下财財之計算而得致·· 2/3Ntx2's1 ^ |z| ^ 4/3NTx2'si &由於該經過轉置變換模數Ντ乘以^後的數值之外觀型 恶(topology) ’該值si係一直為該經過轉置變換模數^乘以μ 後的數值中顯示1之處的最高有效位元,與該巾間結果之所有 位兀數量中顯示1之處的最高有效位元之間的位元距離。 、此·位元數字間的差值及/或該值&,係可以由一般的 方法來得致,而不需要使用到遞迴的方式。 此外不再而要使用ZDN暫存器來儲存該經過轉置變換 模數乘以2/3後的數值’因為,依據定義,至少於該經過轉置 變換模數Ντ乘似/3後的數值中頂端處的位元(例如,16位元) 會-直具有相同的形式。位元比較器亦不再需要被使用。該 經過轉置變換模數Ντ乘以2/3後的數值中顯示!之處的最高有 效位元,與斜間結果之所有位元數量巾顯示1之處的最高有 放位元之間位元權重(va〗ency)的差值,舉例而言,係可藉由 對於提供予該經過轉置變換模數使用之暫存器與提供予該中 間結果使用之暫存器,進行位元方式(bitwise)&XOR式 (XORmg)邏輯運算而得致。則,Si會等於x〇R式邏輯運算中 1290300 Λ 輸出第1個“Γ的位置與XOR式邏輯運算中輪出第2個“i” 的位置之間之位元權重(valency)的差值。 由於不需要ZDN暫存器、以及ZDN比較器,整個計算單元 以一較小的晶片面積來容納即已足夠。 此外,該密碼控制部分,亦即作為ZDN比較運算之用的 控制邏輯將較不會複雜,因為將不需去執行_中之遞迴迴 圈。最後’因為計异動作可以較快速,所以對於來自該輔助 移位值β計算動作之整個演算法而言,將不會發生時序 (timing)問題。 _ 關於該較佳的轉置變換動作,兹以圖6至9,俾得一更詳 細之說明。 如前所述,該ZDN演算法的主要部分,係在於需滿足下 列方程式:
2/3 2'siNS |z| ^ 4/3 2'siN 就位元數字而言’ Si既為該辅助移位值,且亦為用以移位 # Z之移位值,以達到與N有相同的位元位置。於習知技術中, 為了計算Si值,係有需要進行丨敬細之間的比較運算。 祿雜何與財關之觀運算之前,藉轉置類祕 數以成為該經過轉置變換模數NT,係可簡化與2/3有關之比較 運算,且該經過轉置變換模數Ντ係大於N。緊接著,即摊 行核數N之所有計异動作。然而,因為該計算動作之結果會 41 1290300 放置於該剩餘類別(residualdass)N中,所以與^^有關之最終簡 化運算仍需被執行。 如圖6所示般,N係為一具有N的位元長度之整數。因為 杈數N —直是為正整數,亦即,於2補數表示法中。則 符號位元將-直為〇,且模數N之次高的有效位元亦 將一直為1。對於ZDN比較運算,並不需要去比較該模數與中 間結果間之所有位元,但需使用若個位元,俾足供進行 該比較運算。模數N巾m個最高有效位元係予以定義成為模數 的第-部份Ντ,而模數關剩餘N_m位元則予以定義成為模數 的第二部份Nr。於較佳實施例中,m等於16。當然,m值亦有 可能更大或更小。 如圖7所示般,轉置變換動作被執行後,該經過轉置變換 模數Ντ係為16位元,且較圖6所示原始的模數為長。 對於ZDN比較運异,運用最前面的16位元係已足夠。例 如,僅有12位元被用以進行比較運算,而4個最低有效位元則 费 用以表示由更低的有效位元所造成的潛在未用位元 (carry-overs)之緩衝器。 於此狀況下,比較運算會產生出錯誤結果的機率,係小 於Γ12。如果該比較運算產生出錯誤結果,且創造出較最佳簡 化移位值sN為差的簡化移位值,該以N為模數之結果仍然备是 正確的。 42 1290300 如果如圖6所示般,該模數係被應用於2的補數表示法 中,則模數N可以被分成如下所示: N - 2n'm NT + Nr 此刻,利用轉置變換因子τ來使N轉置變換成為Ντ。其 中’為了合適性的理由’τ較適合被選擇成為一整數。,將 有下列形式’即Ντ的衫有舰元(msb)&鮮,因為^
被假《χ為-正整數。如下所述般,請參閱圖7中標示數字% 者’該經過轉置變換模數之第二與第三高有效位元皆必須等 於1 ’而該經過轉置變換模數#之頂端部分的其他所有位元應 料“〇,,。僅於如圖8所示之情況,NT乘以2/3後的數值之頂 端處(圖8中標示44者),僅有1個位元為1,其餘位元皆為0。如 此一來’執行前已描述過之比較運算,即可用以決定樣。 然於―開始’即可考慮_轉置變換因子T來進行該㈣ 轉置變換模數Ντ之計算動作。使用下列定義··
ΝΤ = ΤΝ = Τ(2η-Ντ + Νκ) 、 T R; 方程式17 以下列式子應可取得τ: 2Ρ~2 +2Ρ'3
利用方程式17, nt +2^ Ντ 該經過轉置變換模數ΝΤ係為下列結果: {2^Nt+Nr) {2ρ'2+2^)^ Ν丁 ΊΓΤ 43 ί29〇3〇〇 例如’餘滅_典相分職設為32位元以㈣ 位元’則Ντ係為下列結果·· R ~~NT ~~' 於此應㈣岐’心計細作,較健法做由主哪 '成轉父由密碼輔助處理器來處理。該主哪包括可 足^行計算NV —短數字她咖_晰算單元。既然丁
廣疋整數且於該密碼處理器中係以nt為模數來取代以N
模數而進行計算動作,其中·較狀,_τ的最前面 Ρ刪6位元會與—般ZDN比較運算有關以計算得致該輔助移 倾&。至於Ντ的其他推元可以為任何數字且與計算該辅助 移位值Si無關,亦即無關於進行與ζ之比較運算。當然,於該 三運算元加法運算中係需要制該經過轉置變換模數Ντ之所 元且於其中,係利用該經過移位之轉置變換模數,而 不是使用該經過移位的模數。
對於瓜、Ρ所選擇之值,該轉置變換因子Τ是為16位元的 整,此即為何於計算τ,且/或計算Ντ時所需使用到的除法 運算’其僅與32個有效位元有_才會被執行,且因此能被 以一快速且簡單的方式,料程式化並安裝於社CPU中。 圖8顯示了該、經過轉置變換模數Ντ乘以2/3後的數值。由 於圖7中顯示該經過轉置變換模數NT_SB-1與MSB_2係等 於1 ,且依下列所示運算式: 44 1290300 (11)2=(3)10 及(2/3x3)2=(2)1“10)2 取得與該經過轉置變換模數NT乘以2/3後的數值有關的 簡單位元樣本(bit pattem)結果,則該經過轉置變換模數]^乘 以2/3後的數值之長度係等於n-m+p。 由於2/3NT的特殊形式,與|Z|間的比較運算將會變得相當 簡單。2/3N的最高有效位元係處於位置為n+p_m_2之模數運 异的起始運算處。於一較佳實施例中,與z有關之指標器將會 自Z的MSB處移動並開始尋找z中的第一個“〗,,。倘若z的 MSB係為1” ,其即表示Z為一負數,則取而代之者,即改 為開始哥找Z中的第一個“〇”。比較於暫存器N以及暫存器z 中所哥找到上述第一個數值之位元位置之差值,即可決定該 輔助移位值Sj。 由於該依模數運算(modulo operation)之結果必須被放置 在該剩餘類別(residual class)N中,則最終依據N所為的模數減 化運算亦將會被執行,亦即,一逆向轉置變換動作 (back_transformation)(如圖5中所示之步驟540)將會被執行。 從N到Ντ的轉置變換動作與該習知ZDN比較運算相比較 時,仍可發現同樣的優點·· 不再於該密碼輔助處理器中進行2/3N的計算動作,而係 改於該主CPU中進行從N到Ντ此一簡單的轉置變換動作。 於晶片中不需要再配置ZDN暫存器以及比較器邏輯電 45 1290300 且該輔助處理器的計 路。此亦是為何晶片尺寸可以變成較小 算複雜度可以減低的原因。 最後,從N到,轉置變換動作可以與_ 機選擇動作相結合,此一情形係顯示於圖9中。如_、P边 元長度之隨频,_爾__魅義立 式即會如圖9所示者。 、双n之形 藉由隨機選_數掛該經過隨機選 之位元長度❹增加了 s位元 二換域 荦例Γ如FI7辦-u ,、未、、、工逐仃隨機選擇的 =町所吨目較後即可得知’其梅概 而使得位元長度増加。 致予 關於方程式部分’其可以下列方式表Ντ = ΤΝ=Τ(2η-Ντ+Νκ) 該經過隨機選擇的轉置變 示之 示之 換因子Τ係可以下列方程式表 2卜1 + 2Ρ'3
算式二H來’與該經過隨機選_轉置變換模數有關之運 …如下所示: Ντ
+R (r~mNT + NR) Ντ +2—㈣令+(2〜〜w 如果 NT h 則對 P ' m、S係分別為144位元、16位元、112位元, 46 1290300 於包括進彳T 了隨機轉動狀祕轉置㈣模數NT而 言,其結果係為: NT +2n+m+Rr_i6+N 2144+2143j^
R NT的位元長度將會如下所示·· (N ) n+p-m—11+111+8=11+16+112=11+128 位元 圖10顯示-不再具有ZDN暫存器的計算單元,係僅包括 开術單元7GG、-c暫存H71G、-N暫存H72G以及-z暫 且N暫存裔720不再具有該模數及/或該經過移位 動作之她鮮於其巾,而係由驗過轉置變換模數及/或經 過私位動作之轉置變換模數,抑或由經過賴選擇之轉置變 、1 <自、、4移位動作之隨機選擇的轉置變換模數儲 於其中。 明,閱圖11,其係為有關於某一遞迴步驟中用以計算一 近似的運算元加法運算之難電財施示姻。圖n亦键 顯示出模數運算暫存器與z暫存器綱。關於圖叶所示經 過轉置變換模數之例,上半部的位元即如圖7所示般,係為 011000··侧’且例如鼓彳錄元臓_12處》止,且此與 置於計算動作之下的模數無關。對於計算該近似的3運算元二 法運算,被乘數C於i始即可予以忽略。此外,僅於z的頂 立而處之I2條元需要被從暫存獅钟讀出時,才會例如地, 藉由一特殊的Z乘法⑽a予以遂行之。緊接著,利用-小型 47 1290300 的移位器412b以使該些12個位元向左移位^的位元。此—纟士果 會使得近似且經過移位動作之z,可以一中間結果暫存器41七 來儲存之。惟於此處要指出的是,因該值之儲存時間會非常 的短,所以可以不需要對其提供—特別的暫存器,而健提 供一可傳送該些位元之匯流排亦已足夠。
基於該模數係為已知’且因為該模數係為經過轉置變換 的模數,其只有最頂端處之3個位元,特別是只有第2以及第3 位70為1 ’其他位元則皆為〇。只有該經過移位動作之中間結 果的最頂端處3個位元,而不是原先該模數之最頂端處的城 位元(亦即’ “G11”)’會被由—選擇動作他所篩選出來, 且被^至—由硬體所實現之組合㈣電路條巾,而該模 j的符餘itvn亦會被輸人其巾。馳合邏輯電路他更進 V s /、有可供射間結果的近似值之最頂端朗固位元 所儲存使狀"結果暫存器㈣。該中間結果的近似值之
==咖依據則输細g之箭頭符號而直接 :412。中付拷貝至該巾間結果暫存器412f。 攸圖11村广看出’對於使轉置變換模數,其僅需執 仃位,兀的叶异動作,且其”加法運算的搭槽(“addition ΓΓ二〕二了它們的符號位元之外,其餘皆早已知悉,所 快速^行。4中間結果的近似值ZaPPr°X之計算動作將可以报 48 1290300 於此梅的是,於此撕細z〔l心叫方式 t似^且射—魏㈣細之錄婦紐,幾乎都 ί進行計算的。對於其他的情況,使用相較於 取土 Ή續赠伽麟較差的移位與魏辦,並所得 ❿ 總㈣倾糊於太差或场㈣近似值。但是此些相 ^ ;取L触位與符號值關得較差的移位與符號值,並不 1=導致在實際的計算結果中產生錯誤,僅於計算模數乘 异之過財,相較於最佳情況,會額外多執行幾次迴圈 而已。雖然此等所增加之動作會降低執行效能,但可列入考 慮岐其所影響的程度卻是相較於欲藉由平行執行一近似的 運异70加法峨於-遞迴步财計算得財間結果的近 錄之動作,以及當使肋中間結果的近倾,以便決定與 計算中間結果的精確值有關之下—回遞迴步驟中所使用之預 看苓數的動作,所能因此而獲取的好處為小。 用以計算中間結果的近似值之上述方法,僅需小的晶片 面積即已足夠使用。如此一來’該計算單元的計算速度,僅 需以使㈣耗非常小的晶片面積之娜,即可取得近兩倍快 的運算速度。 圖12至17b表示-種流程示例圖,也就是,以一種直觀形 式的虛擬碼來表達本發明方法之流程示例圖。圖12至丨几更進 -步表達料僅可驗_方法實現,亦可視情況而使用軟 49 !29〇3〇〇 體的方式來實現。兮與 現,特° 數位儲存媒體中實 及並特^在具有可以電氣性地讀取控制信號之碟片或①以 f其可與—具有可程式化之電腦系統協同運作之方式下,實 =案之發明方法。_般而論,如果程式化電腦產品可於一 中執仃,則本發明係可由具有儲存於可用機器讀取之媒 介内之程式碼的該程式化電腦產品來遂行本發明方法。易言 之’如果電腦程式可於一電腦中執行的話,本發明將可以具 有作為執行財法之程式碼_電難式來實現。 圖12係為於每—情況中所使用到的變數以及變數型態總I 遭表。變數Csh係定義為3,即如同於圖3中祕所示者,^
Csh指定作為該被乘數c之被乘數移位值^使用,且使該被乘 數移位值&介於-3至+3之間。變數Zsh係定義為5,亦即如同於 圖3中108a所示者,變數zsh作為與中間結果有關之移位器的 位元數值大小(magnitude)使用,亦即該中間結果移位值Sz可能 具有的數值。變數NoZems定義為位於暫存器2〇〇内之該經過 籲 轉置變換模數Ντ中的0的個數,更確切地說,從圖η中所示 MSB-11處往上數〇的個數。為了此一目的,縱使使用其它的 位元數值大小(magnitude),變數NoZeros仍定義為Csh與Zsh之 總和。變數NoToBits則係為該Z暫存器204中上半部位元數的 總數,藉由該Z乘法器412a,以自該Z暫存器204中讀出其上半 部的位元,俾用以計算該中間結果的近似值Zappr〇x。從圖12中 50 1290300 可以得知該變數NoToBits係等於12,亦即N〇Zeros(=8)+4。於 圖12中,變數MaxRegBitLength係指定為該整個計算單元之暫 存器長度。該變數已被任意地指定為如圖12中所示之160。另 一方面,該變數亦可予以指定為1024、2048,抑或例如甚至 局達為2304,或2048,以對於RSA模數提供超下限緩衝哭 210(圖2)之足夠的容納空間,且亦如已知者,該經過轉置變換 模數之位元長度係大於正常的模數,故勢需提供足夠的空間 來容納該經過轉置變換模數。 變數Debug係為一輸出變數,不過其並不重要。 _ 至於圖13,於其中所表示之數個輔助函式(functi〇n),會 被其后的圖式所使用到。例如RetumBit函式可提供數字X在位 置i處之位元值。
SetBit函式能提供以參數“vaiue”所指定之值,亦即〇或 1 ’來疋義數子X在位置i處之位元值。
BitLength函式能計算位於一暫存器中之數字,其從msb 鲁 到LSB之間的位元長度。利用圖4中所示之暫存器204,函式 BitLength將會提供從MSB 220到LSB 214之間該數字的位元 狀態。 於圖14a中所表示之與模數乘法運算有關的各項設定值/ 定義值,及/或調整值與初始化值,就如同於圖丨所概略顯示 般。該外部變數則係已經藉由圖12作一說明。 51 1290300 所需變數的變數型態係定義於方塊,,計算單元之狀態值,, 内。如此一來,變數z表示該中間結果。變數ApproxZ表示例 如係由圖4方塊412所計算,且於圖4中予以指定為414。變數 Lsb可以說是提供作為該被乘數之位元段落標記。於 計异開始時,該變數Lsb指出於該超下限緩衝器21〇中之位元 長度,例如於圖2所示者,故該變數Lsb係為9。再依圖2所示 之中間狀態,其中該被乘數之LSB 212已經被移位進入該超下 限緩衝器210中,則該變數Lsb將會等於4,其係用以顯示於該 超下限緩衝器中,尚可以允許該被乘數往下移位4個位元之 意。 變數cur—Lsb係依據該被乘數之每一次移位動作而進行 改變,且其可限制該移位值化,即將如同於其后所為之說明。 變數Laccu定義該乘數於位元形式方面的長度。變數c係指出 5玄被乘數C應在下移位的移位量。(:與(:111:一Lsb的總和係為一常 數,且與該超下限緩衝器210之位元長度相對應,其中,該總 鲁 和數量可以高達300位元,且較佳範圍係介於3〇至5〇位元。此 值的變化範圍很大,其需視所涉及使用之數字的位元數值大 小(magnitude)而定。
於方塊為该二運异元加法運算定義數量”内,於本發 明之較佳實施例中所使用的該些預看參數,皆有所定義。如 此,變數VZ一C即為圖1方塊112内所示之符號Vc。變數vz N 52 1290300 表示圖1方塊112内所示之該模數之符號Vn。變數s z表示圖j 方塊112内所示之中間結果移位值。最後,變數s〜c即如同於 圖1方塊112内所表示以及由圖1方塊106内所計算得致之今被 乘數移位值。
於方塊“為乘法運算定義數量,,内,述及到該預看乘法 運算演算法。是以,m係為由乘數所考量之位元數,且如已 知般,乘數的位元數中從位於頂端部分之位元到位於底端部 分之位元皆被處理過。只要m大於〇,即表示仍然還有乘數位 兀要處理。Μ的最大值可予以當作成1^(^11,亦即,於開始進 I 行遞迴性的乘法運算之前,應尚無任何乘數位元數字被處理。 雙數LA定義為一已使用的預看規則。其可以使用如同已 定義於專利DE 3631992 C2(與美國專利4870681相同)中所描 述之預看規則。該變數s—M係定義為如同由圖工方塊觸内所 計算得致之該乘法運算移位值Sm。 首先依據所給予的位元數值大小(magnitude)來調整以鲁 及初始化特定的變數。特別是,參考使用到變數Lsb之前置動 作,需要先予以完成,%變數Lsb係需先藉由模(及/或經 ^轉置變換模數Ντ)的位元長度來設定。此一結果顯示,對於 每-次的計算動作,例如對於RSA的計算動作,該超下限緩 衝器都需重新進行初始化動作,亦即,對於具有模數之模數 指數運算而言,需視其所使用之模數而定。如此一來,亦會 53 1290300 需進行向左對齊動作的理 更加清楚知道位於暫存n中之模數 可供較小型模數使用之較大心 一圖14b係以虛擬碼表示相同於由圖j至圖4方塊圖中所顯 不之方法。此遞迴方法會—直執行翁止條件出現為止。於 另—方面,停止條件包他等於〇,亦即表示所有乘數的值元 數字皆已被處理過,且e_G,卿絲於該絲數中位於 送整個模數乘法運算最後端之LSB犯係對齊於該模數N之 LSB 208(茶閱圖2)。典型上來說,一開始m會被起始設定成為 〇 ’然於經過數次迴圈之後,c會等於〇,此乃因為該簡化運算 之執行時機已稍微落後於乘法運算。 一開始,特別利用一中間結果的近似值來執行第一函式 LAModulo。作為表達裝置417之運作原理的該第一函式 LAModulo ’將於后予以詳述之。其中,作為下一遞迴步驟使 用之該些預看參數,係可利用一中間結果的近似值zappr〇x而計 算得致。 緊接著,執行 post_processing_LAModulo 函式、 LAMultiplication 函式與 post_j)rocessing一 LAMultiplication 函 式,以計算得致該乘法運算移位值sz以及該預看乘法運算參數 vn。相對應的預看簡化運算參數32與¥11則係於前述LAModulo 函式中可計算得致。LAModulo函式、 54 1290300 post^processing—LAModulo 函式、LAMultiplication 函式以及 postprocessing— LAMultiplication 函式皆係於裝置々π 中執 行。其中,所計算得致之該些預看參數並不是被用來提供予 目前3運算元加法運算使用,而是被用來提供予下一遞迴步驟 所使用 因此’被乘數C係依據相對應的被乘數移位值進行移位動 作,且其係相對應於圖1裝置108之功能,及/或依據定義,相 對應於圖4裝置4〇〇之用以進行該3運算元加法運算之計算動 作的功能。 cur lsb。
基此,定義與該下-回遞迴步驟有關之該中間結果的 似值,以便難鶴町喊絲執行1 確的3運算元加法運算’特別是執行與目前遞迴步驟有關之, 確的3運算元加法運算。是以,將會調整該變數 u寻此等 迴圈將會不停地重複執行。 於最後的“if,迴圈中,如 值之一高位元係等於10夺,需去^曰存器中一個用以表示負 三運算元加法運算。其(d啊, 之模數N無目前(負的)中間結 "有〜私等於+1 得-正值財聽果。㈠仃加法運算’麟最後取 /、於執行該最後的“div”運算指 55 ?29〇3〇〇 7日寸’ 5玄些位於LSB以下的位元,亦即,該些超下限緩衝器 位元會被截掉。 以下兹對於圖14b中所提出的函式作一更清楚之說明。如 同於圖1方塊II2所執行者,圖ls顯示該三運算元加法運算函 式之内谷。特別是,自圖15中可知,於該被實施之三運算元 加法運异中,c之移位動作係於該三運算元加法運算的外部來 執仃。反之,對Z進行移位\位元之動作,係於該三運算元加 去運异内部進行之。此乃因為於某些實施例中會具有好處。 一至於另-種選擇’係為執行c的移位動作不但可能出現在該 _ 3運异70加法運异之内部,亦可能出現在該三運算元加法運算 之外部。 於此處要指出的是,就軟體而言,藉由模數 2 MaxRegBitLength所遂行之該模數簡化運算,係僅供模擬 之用。且於此亦需要指出的是,於該冗暫存器中之最高有效位 元…於選擇㈣使得圖2中之MSB⑽細犯施係處於相同^ 的If况中…在運作加法運算與進位連波(c㈣卸咖)之過程 中’可以擠壓(prolapse)到相當高的頂端處。惟,就如同於習 知技術所知般,如果有執行—賴定的進赠理副程式 (routines),則上述情形並不會具有嚴重性。 就軟體而論,圖15中所示之該移位函式中關於暫存器内 容X應如何依據-移位值S—X,俾進行向左或向右移位之動 56 1290300 作’應係相當容易瞭解的。亦即,於 左移位方法而言,係以2sx 、不〆中’對於向 方法而言,則以2¾行—除法運# 胁向右移位
於圖施中所表示之LAMduI 運算參數,於草一方β 用於彳异该些簡化 且於另-方面Hr 括該㈣結果移位值sz, 數7 。咖模數之符號值VZ—N。作為輸入變 數,Z、N驗是屬於較麵選擇。-_,魏eurZs^ 被指定為的最傾,騎 《 — I以中間結果移位器的移 為長度以及c之間取最小值。也可以說,自圖2中咖施 開始起算,該被乘數之LSB的时偏差量㈣心)。因此, 原則上執行該近似的三運算元加法運算,其功用係與執行該 精隹的—運异元加法運算相同。兩者會有所差別,係僅出現 在只採用N的該些最前端的12位元及/或該變數觀〇τ〇卿s 之情形’以及於3運算元加法運算公式中S(^c的符號值,亦 即vc,都等於〇之情形。 關於该接下來的〇/1搜尋器(q/1 ,於一開始即提 供暫存益Z中最高有效位元之位元值 ,之後,便逐漸增加移位 變數兑之移位量,直至sz小於該變數cur_Zsh且同時亦不可以 超過該最大的暫存器長度值。 於if迴圈(if-loop)中之最後一種情形,並未顯示於圖2中, 亦即’其中sz可以選擇較由該移位器所允許之Zsh值為大的數 57 1290300 值。也就疋說’除了位於该模數暫存器200中之該模數的μ§β 206之外,該Z暫存器中之MSB與MSB 206之間所相間隔之位 元數目,可以較以Zsh值為範圍之情形為多。於此案例中,& 係經由cur—Zsh而被設為Zsh。既然此處該中間結果z被定義為 較模數N少一個或數個位元,則於3運算元加法運算中以模數 減法運算形式所進行之簡化運算,將會被禁止。其係可由將 該預看簡化運算參數vn設為G之事實便可以知悉。據此而論, 簡化運异係會被禁止實施的。然如果執行簡化運算,則該中 間結果將會變成負值,_是,會變成具有較以前為大驗鲁 元數值大小(magmitude)。於依據一限制的移位器長度而使得 该中間結果Z不能完全向上方移位的情形中,簡化運算係受到 禁止實施的。 圖 16b顯示了一post_processing—LAM〇dul〇 函式。如果瓜大 於0 ’亦即,如果仍然有乘數的位元數字需要被處理,且如果 SZ大於0而c卻相較於與該轉置變換模數相關之〇的個數還小^ 時,則將不會進行任何的移位動作,除非&被改設定為〇。 圖17a中所顯示之LAMul解cati〇n函式,係用以定義該預 看乘法運#轉法。首先,於目17神表示ϋ{触魏eur_Csh 以及先被進行初始化動作。緊接著,執行⑽搜尋器(〇/ι searcher)。於執行期間,變數^會逐漸增加。如果遞迴停止條 件係於無任何特殊的情釘減時,該迴隱會產生如 58 1290300 法運算移位值sm。因此,依
圖1方塊100中所計算得致之該乘 據該預看參數LA,一項相對應白 即,其係為與該乘數的位元進行_ 關於圖17b所顯不之post_pr〇cessing—£施仙 式’於其中,裝置106之功能會被執行,亦即,其中%係由Mm 所計算得致。 如果所取得之Sc值係較C移位器之予員定的長度Csh為大 時,Sc會等同於該最大的移位器長度值,㈣如同圖m所示 :!又且於圖1所示方塊112内,該三運算元加法運算中之該模 數的付號vj汉疋為〇。如此一來,將不會發生任何的簡化運 异,因為於其中並未採用最大的移位值,相反地,是改替採 用了於圖17b所示之後端處理(p0st_processing)函式中所設定 之移位值sz。 本發明得由熟習此技藝之人士任施匠思而為諸般修飾, 然皆不脫如附申請專利範圍所欲保護者。 【圖示簡單說明】 圖1 :其係為說明藉由被乘數之移位動作以計算乘法運 算之發明裝置的方塊示例圖。 59 1290300 c 與Z進行定義之神^。向左對齊動作而胁暫存器N、 圖3:其料具有_移倾之 圖4 ·其係為具有可提供予下一夕口口 預看參數之平行計算動作之該:遞二驟所使用之該些 塊示例圖。 k 運异元加法運算的方 圖5 :其係為該模麵 圖6:其係為模數N區分,:f硯芯之流程示例圖。 第二部份位元Nr之位元結構示例圖弟-部份位元叫以及- 位二置第^^ 示例圖。。 、區域與剩餘區域之位元結構 圖8 ·其係為該經過轉| ^ 之位元數字之位元結構示換她N乘以2/3後的數值 圖9 ··其係為利用隨機選 的位元數字之位元結構示例圖擇動作之-過轉置變換模數 圖10·其係為利用模數轉 法運算有i計算單元的結«純行該模數乘 示例Ξ ί1:其係為執行—近似的運算元加法運算方法之實施 =、係為與本翻㈣之魏 =:=為與本發明方法有關之輔助函式==。 示例圖。u雜—錄實财法有關之初始值設定之 ϊ29〇3〇〇 圖14b ··其係為具有該被乘數之一移位值以及具有為提 供予下一遞迴步驟使用而於目前步驟中進行該些預看參數之 平行δ十异動作之類程式(program-like)之示例圖。 圖15 :其係為應用於圖14b中之該3運算元加法運算的 詳細示例圖。 圖16a:其係為應用於圖14b中之該預看模數函式的詳 細不例圖。 圖16b :其係為應用於圖14b中之該預看模數後端處理 函式的詳細示例圖。
圖Ha:其係為應用於圖14b中之該預看乘法運算函式 的洋細不例圖。 圖17b ·其係為該預看乘法運算後端處理函式的詳細示 例圖。 圖18 :其係為習知ZDN方法之流程步驟示意圖。 圖19:其係為習知預看乘法運算法之流程步驟之示意圖 【主要元件符號說明】 〜 決定裝置 執行運算裝置 被乘數暫存器 最低有效位元
100檢查裝置 104 106計算裴置 108、108A、108B 移位裝置 H0輸出端 114輸出端 2〇〇模數暫存器 202 204中間結果暫存器 208 61 1290300 210超下限缓衝器 214最低有效位元 220最南有效位元 400運算裝置 404模數 408 路徑 412運算裝置 414 近似值 417、417’計算裝置 418 路徑 422中間結果 500、520、540 步驟 700算術單元 720 N暫存器 900〜960 步驟 1000〜1240 步驟 212 最低有效位元 218 移位值 402 中間值 406被乘數 410 中間結果 412’運算裝置 416 乘數Μ 420運算結果 710 C暫存器 730 Ζ暫存器
62

Claims (1)

12903
I今日频6正替換頁 、申請專利範圍: f藉由包5數個遞迴步驟之遞迴方法以計算 M)以 =數(N)相關之被乘數(〇間的乘法運算的裝置,該裝 置包括: 字的查ί目前遞迴步驟有關之該乘數之位元數 得-由—鮮乘法·演算法,以便取 伃頂耆乘法運异移位參數(Sm); H用以决疋大於〇之中間結果移位值sz之裝置(1〇4), 前遞迴步驟之先前的遞迴轉及依據中間 有位更多纽位元之一中間結果具 其位元有效性較接近於該模數之最 為被乘數移位陶之裝置(祕),其係可 的(Sz)與該預看乘法運算移位紙)間 利用』仃一三運算元運算之裝置⑽、m),其係 被乘ϊ移^L間移位值(Sz)而移位之中間結果、依據該 遞迴步驟取被絲,及賊數,而為該目前 2· 錄元⑽)錄雜數暫= 器 63 3' ΙΓΙπ▼著專利範圍第2項所 之容納空間,係被設計成為星模數暫存器, 數字為多的記憶儲存區成域為具有之位元 儲存區域内有一標示為超下限緩衝⑼之兄憶 數之最低纽位元⑽),係具有更低_^較於該模 子°/換數(1^)之一^模數暫在哭、 用以儲存-遞迴步驟之中間結 用^:(=) (C)之-被乘數暫存器(c), 及用以儲存该被乘數 間处係固定設置於該模數暫存器,以及該中 結果與之J:用,位該中間 小㈣使該中間結果朝(向較於,大f多位大 i數移位大小陶使該巾_果朝向較高或較低位元權 7.如申請專利範圍第6項所述之裳置,其中 移位大小㈣係大於該最大的被乘數移位大小㈣。、° 8· 圍T項所述之裝置,其中用以決定該中間 =)之^⑼4),係被設置以促使該中間結果 最古右^支大’至夕為§亥先1Γ的遞迴步驟移位中間結果之 HI:元之位元麵料賴細最高纽位元(獅) 9 第士7項所述之褒置’其中用以決定該中間 二稽心十SZ之^^(1〇4) ’係被設置以使該中間結果移 、:來自於s亥最大的中間結果移位大小卿)的最小 64 12903 Ρί7 _秦替换- I0;s^ ;==的,,大小_^ 11. 步驟遞迴 而晋讨慮使用铺數之i化運算參數(Vn)。 in專r,第6項所述之裝置,其中用以計算被乘數 (曾〇 ,且使付於限制之情形下,決定出導致用以執行三 迴斯不謝 藉由包含數個遞迴步驟之遞迴方法以計算乘 ^熟數⑼相關之被乘數(c)間的乘法運算的方法,( ^於計狀巾,該絲(M)、該縣 ^ 拉數(C)係為該計算密碼之運算的參數,該方法包括〆 ,由-預看乘法運算演算法檢查⑽)與目前遞迴步 ii(s t.該乘數之位兀數字,以取得一預看乘法運算移位 決定(104)-大於0之中間結果移位值&,使得起 目前遞迴倾先前的遞迴步驟及依據巾間結果移位值^ 而向前移位更多有效位元之一中間結果具有一個最^ 效位元,其位元有效性較接近於該模數之最高有效位元的 65 τοοπ^ππ J ^ J '^Ljr " - .v „>.-.. .. . ..... .,··._ 有效性,而較本接近於由該先前遞迴步驟所得致中士 之最高有效位元的有效性; 計算(106)-被乘數移位值(Sc) ’以使其成為該中間姓 果移位值⑹與該歸祕移健(Sm)間缝值;以^ 偏^應、112)三運算元運算,姻依據該中間姓果 ί多位…曰谐果、依據該被餘移位ΐίΪ 間結果卜丨’及_數’而為該目前遞迴步驟取得-中 之ίίΓ用以執行於中請專利範圍第12 之私式碼的電腦程式。
66 129030α 1/19 t Z—C^M MOD H Μ 100 用以檢查之裝置 106 10χβ l\ IN ψ 用以決定之裝置 ,計算 Sc^SrSm k I-^ 110 Sc 移位10 ,108 τ/h G,2sc ▽n mmtm I mmrnm _ Vc 執行三運算元加 法運算之裝置 Zi^+V^+Vn-N 112 ο ^114 67 1290300
1140- 1240- I sN :=sN二 1 Abs(Z)>ZDN? 是i '1040 •1G6Q load 1100 b;=0 是 cur k 瞒+1 b 2-Z[SlGN]-1 \1120 1 n :=n 十 sz -1160 | sN:=sNVsz 卜 〜1180 •1200 n>MAX-k? 否 ir cur k:: -1220
TW092134262A 2002-12-23 2003-12-04 Apparatus and method for calculating a multiplication using shifting of the multiplicand TWI290300B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10260655A DE10260655B3 (de) 2002-12-23 2002-12-23 Vorrichtung und Verfahren zum Berechnen einer Multiplikation mit einer Verschiebung des Multiplikanden, insbesondere bei der kryptographischen Berechnung

Publications (2)

Publication Number Publication Date
TW200424925A TW200424925A (en) 2004-11-16
TWI290300B true TWI290300B (en) 2007-11-21

Family

ID=32336588

Family Applications (1)

Application Number Title Priority Date Filing Date
TW092134262A TWI290300B (en) 2002-12-23 2003-12-04 Apparatus and method for calculating a multiplication using shifting of the multiplicand

Country Status (8)

Country Link
US (1) US7647367B2 (zh)
EP (1) EP1543408B1 (zh)
JP (1) JP4302640B2 (zh)
KR (1) KR100744216B1 (zh)
AU (1) AU2003289909A1 (zh)
DE (2) DE10260655B3 (zh)
TW (1) TWI290300B (zh)
WO (1) WO2004059463A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4619657B2 (ja) * 2001-12-14 2011-01-26 エヌエックスピー ビー ヴィ モンゴメリ乗算器のパイプライン型コア
DE10260660B3 (de) 2002-12-23 2004-06-09 Infineon Technologies Ag Modulare Multiplikation mit paralleler Berechnung der Look-Ahead-Parameter u.a. bei der kryptographischen Berechnung
EP1939838A1 (en) * 2005-10-19 2008-07-02 Matsushita Electric Industrial Co., Ltd. Information security device, information security method, computer program, computer-readable recording medium, and integrated circuit
DE102006025713B9 (de) 2005-10-28 2013-10-17 Infineon Technologies Ag Kryptographie-Vorrichtung und Kryptographie-Verfahren zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025569A1 (de) 2005-10-28 2007-05-03 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen einer Multiplikations-Additions-Operation und zum Berechnen eines Ergebnisses einer modularen Multiplikation
DE102006025673B9 (de) 2005-10-28 2010-12-16 Infineon Technologies Ag Rechenwerk zum Reduzieren einer Eingabe-Zahl bezüglich eines Moduls
DE102006025677B4 (de) 2005-10-28 2020-03-12 Infineon Technologies Ag Vorrichtung und Verfahren zum Berechnen eines Ergebnisses einer Summe mit einem Rechenwerk mit begrenzter Wortlänge
KR100901280B1 (ko) * 2006-12-07 2009-06-09 한국전자통신연구원 모듈러 3 연산 장치 및 방법
US8005210B2 (en) * 2007-06-30 2011-08-23 Intel Corporation Modulus scaling for elliptic-curve cryptography
US8670557B2 (en) * 2007-09-10 2014-03-11 Spansion Llc Cryptographic system with modular randomization of exponentiation
WO2011036746A1 (ja) 2009-09-24 2011-03-31 株式会社東芝 演算装置
KR101685354B1 (ko) 2010-10-14 2016-12-13 삼성전자주식회사 모듈러 연산기와 이를 포함하는 장치들
FI20115490A0 (fi) * 2011-05-20 2011-05-20 Adaptamat Tech Oy Muistimetalliseos ja aktuaattori
US10187208B2 (en) 2013-12-28 2019-01-22 Intel Corporation RSA algorithm acceleration processors, methods, systems, and instructions
FR3050847B1 (fr) * 2016-05-02 2019-04-05 Morpho Procede d'optimisation d'ecritures en memoire dans un dispositif
CN113131948A (zh) * 2020-01-10 2021-07-16 瑞昱半导体股份有限公司 具有多模式的数据移位运算装置及方法
CN114327370B (zh) * 2022-03-10 2022-06-21 湖北芯擎科技有限公司 计算蒙哥马利模乘算法中mr值的方法及电路

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3763872D1 (de) * 1986-03-05 1990-08-30 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens.
DE3631992A1 (de) * 1986-03-05 1987-11-05 Holger Sedlak Kryptographie-verfahren und kryptographie-prozessor zur durchfuehrung des verfahrens
JPH08249161A (ja) 1995-03-13 1996-09-27 Fujitsu Ltd 立方根演算装置
DE10107376A1 (de) * 2001-02-16 2002-08-29 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren und Rechenwerk zum modularen Multiplizieren
DE10111987A1 (de) * 2001-03-13 2002-09-26 Infineon Technologies Ag Verfahren und Vorrichtung zum modularen Multiplizieren
US7426529B2 (en) * 2002-06-06 2008-09-16 Infineon Technologies Ag Processor and method for a simultaneous execution of a calculation and a copying process

Also Published As

Publication number Publication date
EP1543408B1 (de) 2006-01-18
EP1543408A1 (de) 2005-06-22
DE10260655B3 (de) 2004-06-24
DE50302251D1 (de) 2006-04-06
JP2006511833A (ja) 2006-04-06
US7647367B2 (en) 2010-01-12
AU2003289909A1 (en) 2004-07-22
JP4302640B2 (ja) 2009-07-29
WO2004059463A1 (de) 2004-07-15
KR20050089067A (ko) 2005-09-07
US20060010192A1 (en) 2006-01-12
TW200424925A (en) 2004-11-16
KR100744216B1 (ko) 2007-07-30

Similar Documents

Publication Publication Date Title
TWI290300B (en) Apparatus and method for calculating a multiplication using shifting of the multiplicand
US5871400A (en) Random number generator for electronic applications
US6193607B1 (en) Random number generator for electronic applications
Merris Combinatorics
CN100527072C (zh) 用于执行蒙哥马利型模乘法的装置及方法
JP4199937B2 (ja) 耐タンパー暗号処理方法
EP0917047A2 (en) Method and apparatus for modular inversion for information security and recording medium with a program for implementing the method
CN101925875A (zh) 用于非对称加密的对策方法和设备
EP1941349A2 (en) Method of generating pseudo-random numbers
De Cnudde et al. More efficient private circuits II through threshold implementations
Bermudo Mera et al. Scabbard: a suite of efficient learning with rounding key-encapsulation mechanisms
JPH10500502A (ja) 離散対数をベースとした公開キーによる暗号化方法
TW200403584A (en) Apparatus and method for calculating a result of a modular multiplication
JP2004258141A (ja) モンゴメリ乗算剰余の多倍長演算のための演算装置
McKague Design and analysis of RC4-like stream ciphers
CN116915383A (zh) 不经意键值存储编解码方法、系统、装置和介质
JP4047816B2 (ja) 除算の結果を演算する装置および方法
CN110928523A (zh) 用于彩票行业的随机数获取方法及系统
Deng et al. Secure and fast encryption (safe) with classical random number generators
TW480436B (en) Modular multiplier and ciphering/deciphering machine using the modular multiplier
EP0927928B1 (fr) Procédé de production amélioré d'un paramètre JO associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery
US7403965B2 (en) Encryption/decryption system for calculating effective lower bits of a parameter for Montgomery modular multiplication
TWI310516B (en) A method and system for saturating a left shift result using a standard shifter
JP3700002B2 (ja) 乱数列生成装置、乱数列生成方法、ならびに、プログラム
Anwar et al. Study on Random Number Generators

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees