亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于執(zhí)行蒙哥馬利型模乘法的裝置及方法

文檔序號(hào):6397281閱讀:153來源:國(guó)知局
專利名稱:用于執(zhí)行蒙哥馬利型模乘法的裝置及方法
技術(shù)領(lǐng)域
本發(fā)明通常涉及加密領(lǐng)域,具體言之是涉及一種用在對(duì)消息加密/解密和數(shù)字簽名技術(shù)中執(zhí)行蒙哥馬利型模乘法的裝置及方法。
背景技術(shù)
在使用智能卡及電子貨幣的用于電子商務(wù)的通信系統(tǒng)中以及在使用諸如移動(dòng)電話、小型計(jì)算機(jī)等移動(dòng)通信裝置的通信系統(tǒng)中,人們希望通過對(duì)消息加密/解密或進(jìn)行數(shù)字簽名處理來安全地傳輸消息(電子文本或數(shù)據(jù))。此處術(shù)語(yǔ)“數(shù)字簽名”是指在消息的電子交換處理中在電子正文上“簽名”的技術(shù),這類似于通常在紙上所做的簽名。隨著互聯(lián)網(wǎng)用戶數(shù)量以及互聯(lián)網(wǎng)上個(gè)人消息傳輸頻率的快速增加,極其需要在不安全的通道上能安全的傳輸消息。
已提出的各種算法例如,RSA(Rivest-Shamir-Adlcman)、ELGamal、Schnorr等已經(jīng)用在使用公開密鑰系統(tǒng)的加密/解密技術(shù)中和數(shù)字簽名技術(shù)中。基于RSA算法的ISO(國(guó)際標(biāo)準(zhǔn)化組織)/IEC(國(guó)際電工委員會(huì))9796已經(jīng)被采用為這些算法的國(guó)際標(biāo)準(zhǔn),美國(guó)已經(jīng)采用了ELGamal的一個(gè)改進(jìn)版DSA(數(shù)字簽名標(biāo)準(zhǔn)),俄羅斯采用了GOSSTANDART(通常簡(jiǎn)寫為“GOST”),韓國(guó)采用了KC-DSA。然而,目前使用的各種通信系統(tǒng)中已經(jīng)采用了多種PKCC(公開密鑰加密標(biāo)準(zhǔn))。上述的算法要求執(zhí)行模冪運(yùn)算memod N,其包括反復(fù)執(zhí)行模乘法運(yùn)算,A·B mod N。
已經(jīng)建議了諸如RSA的用于執(zhí)行模乘法的很多算法,這些算法需要在公開密鑰密碼的基礎(chǔ)上生成和驗(yàn)證數(shù)字簽名,例如,R.L.Rivest等人所著的于1978年發(fā)表在Communication of the ACM,21,pp.120-126上的“A MethodFor Obtaining Signatures And Public-Crytosystems”;P.L.Montgomery所著的于1985年發(fā)表在Math.of Comp.,Vol.44,No.170,pp.519-521上的“Modular Multiplication With Tria1 Division”;S.R.Dusse和B.S.Ka1iski Jr.所著的于199年發(fā)表在Proc.Eurocrypto’90,pp.230-244上的“A Cryptographic Library For The Motorola DSP5600”以及Spronger-Verlag、A.Bosselaers、R.Govaerts和J.Vandewalle所著的于1993年發(fā)表在Advance in Cryto1ogyCRYPTO’93,pp.175-186上的“Comparison Of Three Modular Reduction Function”。從D.R.Stinson所著的于1995年發(fā)表在CRC Press上的“Cryptography”論文中可知,在各種需要模冪的算法中,在用于模冪的模乘的計(jì)算效率上蒙哥馬利算法最有效,但對(duì)于簡(jiǎn)單的模乘而言它不是有效的算法。美國(guó)專利No.6,185,596中公開了一個(gè)實(shí)現(xiàn)蒙哥馬利算法的裝置的例子。
如上所述,已經(jīng)提出了用于公開密鑰加密/解密及電子簽名的許多算法和結(jié)構(gòu)。然而,由于依照大多數(shù)算法和結(jié)構(gòu)的模乘裝置多用于高速的公開密鑰的加密/解密,所以它們存在需要大量的邏輯門及大量的功耗的缺點(diǎn)。

發(fā)明內(nèi)容
因此,本發(fā)明已經(jīng)考慮到上述問題,本發(fā)明的一個(gè)目的是提供一種具有較少邏輯門的模乘裝置,用于在包括智能卡和移動(dòng)終端的移動(dòng)通信環(huán)境中,實(shí)現(xiàn)高速的加密/解密及電子簽名。
本發(fā)明的另一個(gè)目的是提供一種降低了功耗的模乘裝置,用于在包括智能卡和移動(dòng)終端的移動(dòng)通信環(huán)境中,實(shí)現(xiàn)高速的加密/解密及電子簽名。
本發(fā)明的又一目的是提供一種模乘裝置,其能在包括智能卡和移動(dòng)終端的移動(dòng)通信環(huán)境中,實(shí)現(xiàn)高速的加密/解密及電子簽名。
為達(dá)到上述目的,用于實(shí)現(xiàn)其中使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密的消息加密/解密技術(shù)的該模乘裝置消息(A),模塊式乘包括一個(gè)存儲(chǔ)器,具有分開的區(qū)域用于存儲(chǔ)該消息、第一密鑰和第二密鑰,每個(gè)區(qū)域的長(zhǎng)度是n位;一個(gè)記錄邏輯電路,在每個(gè)時(shí)鐘處使用該消息和第一密鑰生成第一n+4位信號(hào);一個(gè)第一進(jìn)位存儲(chǔ)加法器,使用該第一n+4位信號(hào)和兩個(gè)并行的n+4位輸入信號(hào)生成包括一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;一個(gè)商邏輯電路,使用該3位序列和一個(gè)進(jìn)位值生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的3位限定詞;一個(gè)選擇器,用于使用第二密鑰和該3位限定詞生成一個(gè)第二n+4位信號(hào);一個(gè)第二進(jìn)位存儲(chǔ)加法器,使用該第二n+4位信號(hào)和從第一進(jìn)位存儲(chǔ)加法器輸出的各自的和值和進(jìn)位項(xiàng)來輸出和值和進(jìn)位值;一個(gè)第一全加器,通過對(duì)該和值和進(jìn)位值以及在先前時(shí)鐘處從商邏輯電路輸出的進(jìn)位值執(zhí)行全加操作輸出一個(gè)進(jìn)位輸入值。該分開的區(qū)域是移位寄存器,用于存儲(chǔ)各自的消息、第一密鑰和第二密鑰。在每個(gè)時(shí)鐘處該消息被右移2位。第一n+4位信號(hào)是0、B、2B、-B和-2B其中之一。第二n+4位信號(hào)是0、N、2N、-N和-2N其中之一。
該記錄邏輯電路包括一個(gè)Booth記錄電路,用于對(duì)消息的兩個(gè)低階位執(zhí)行Booth記錄;一個(gè)多路復(fù)用器,用于對(duì)該兩位低位和該第一密鑰執(zhí)行多路復(fù)用復(fù)用以輸出0、B和2B其中之一;以及一個(gè)一的補(bǔ)碼器,用于依照兩個(gè)低階位對(duì)從該多路復(fù)用器輸出的該n+1位信號(hào)有選擇的執(zhí)行一的取補(bǔ)運(yùn)算以生成0、B、2B、-B和-2B其中之一。
該第一進(jìn)位存儲(chǔ)加法器包括n+4個(gè)第二全加器,每一個(gè)全加器對(duì)兩個(gè)并行的n+4輸入信號(hào)的相應(yīng)的和值和進(jìn)位以及該第一n+4位輸入信號(hào)的相應(yīng)位執(zhí)行全加操作以生成該3位序列。該兩個(gè)并行的n+4位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的和值項(xiàng)中選擇高階的n+2位并插入兩位作為所選的n+2位的高階位,且這兩個(gè)高階位為零。該兩個(gè)并行的n+4位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的進(jìn)位項(xiàng)中選擇較高的n+3位并插入一位作為所選的n+3位的較高階高位,且這個(gè)較高階位為零。
該商邏輯電路包括一個(gè)D觸發(fā)器,用于臨時(shí)存儲(chǔ)來自第一全加器的進(jìn)位輸入值;一個(gè)第三全加器,用于對(duì)該進(jìn)位輸入值和該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的和值執(zhí)行全加運(yùn)算,該運(yùn)算考慮了該第一密鑰的符號(hào);一個(gè)異或(XOR)邏輯門,用于對(duì)從該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值和從該第一進(jìn)位存儲(chǔ)加法器的次低有效位全加器輸出的和值以及在先前時(shí)鐘處從商邏輯電路輸出的值執(zhí)行異或運(yùn)算;還包括一個(gè)組合電路,用于將第三全加器和異或邏輯門的輸出及第二密鑰的次最低有效位(n1)進(jìn)行組合以輸出該3位限定詞信號(hào)。
該第二進(jìn)位存儲(chǔ)加法器包括n+4個(gè)第四全加器,每一個(gè)全加器對(duì)來自該第一進(jìn)位存儲(chǔ)加法器的除了和值的最低有效位及進(jìn)位的最高有效位之外的相應(yīng)的和值和進(jìn)位以及該第二n+4位信號(hào)的相應(yīng)位執(zhí)行全加操作,以生成和值及進(jìn)位的一對(duì)值。該第一全加器該對(duì)從第二進(jìn)位存儲(chǔ)加法器的次低有效位全加器輸出的和值及從該第二進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值以及在先前時(shí)鐘處商邏輯電路的進(jìn)位值(cin)執(zhí)行全加操作,以生成該進(jìn)位輸入值。
該模乘裝置還包括一個(gè)進(jìn)位傳送加法器,用于在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法器輸出的和值和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中m=n/2。如果該進(jìn)位傳送加法器的輸出是負(fù)值,則該進(jìn)位傳送加法器將模第二密鑰加到該進(jìn)位傳送加法操作的結(jié)果中。
本發(fā)明的另一方面,在用于實(shí)現(xiàn)消息加密/解密技術(shù)的該模乘裝置中,使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘裝置包括一個(gè)存儲(chǔ)器,具有用于存儲(chǔ)n位消息的獨(dú)立區(qū)域、第一密鑰和n位的第二密鑰;一個(gè)記錄邏輯電路,用于在每個(gè)時(shí)鐘處使用該消息和第一密鑰生成第一n+3位信號(hào);一個(gè)第一進(jìn)位存儲(chǔ)加法器,用于通過對(duì)該第一n+3位信號(hào)和兩個(gè)并行的n+3位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,輸出由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;一個(gè)商邏輯電路,用于通過對(duì)該3位序列和一個(gè)進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的2位限定詞;一個(gè)選擇器,使用第二密鑰和該2位限定詞生成一個(gè)第二n+3位信號(hào);一個(gè)第二進(jìn)位存儲(chǔ)加法器,通過對(duì)該第二n+3位信號(hào)和第一進(jìn)位加法操作輸出的分別的和值及進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和進(jìn)位值;還包括一個(gè)與(AND)邏輯門,通過對(duì)該對(duì)和值及進(jìn)位值執(zhí)行與操作,輸出一個(gè)進(jìn)位輸入值。該分開的區(qū)域是移位寄存器,用于存儲(chǔ)各自的消息、第一密鑰和第二密鑰。在每個(gè)時(shí)鐘下該消息移動(dòng)2位。該第一n+3位信號(hào)是0、B、2B和3B其中之一。該第二n+3位信號(hào)是0、N、2N和3N其中之一。
該記錄邏輯電路是一個(gè)多路復(fù)用器,用于對(duì)消息的兩個(gè)較低位和第一密鑰的n位執(zhí)行多路復(fù)用以輸出該第一n+3位信號(hào)。該第一進(jìn)位存儲(chǔ)加法器包括n+3個(gè)第一全加器,每一個(gè)全加器對(duì)兩個(gè)并行的n+3位輸入信號(hào)的相應(yīng)的和值及進(jìn)位以及該第一n+3位輸入信號(hào)的相應(yīng)位執(zhí)行全加操作,以生成該3位序列。該兩個(gè)并行的n+3位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的和值項(xiàng)中選擇高階的n+1位并插入兩位作為所選的n+1位的較高階位,且這兩個(gè)較高階位為零。該兩個(gè)并行的n+3位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的進(jìn)位項(xiàng)中選擇較高階的n+2位并插入一位作為所選的n+2位的較高階位,且這一個(gè)較高階位為零。
該商邏輯電路包括一個(gè)D觸發(fā)器,用于臨時(shí)存儲(chǔ)來自與邏輯門的進(jìn)位輸入值;一個(gè)半加器,用于對(duì)該進(jìn)位輸入值和該第一進(jìn)位存儲(chǔ)加法器的最高有效位全加器輸出的和值執(zhí)行半加運(yùn)算;一個(gè)異或(XOR)邏輯門,用于對(duì)該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值和次低有效位全加器輸出的和值以及該半加器的輸出值執(zhí)行異或運(yùn)算;還包括一個(gè)組合電路,用于對(duì)該半加器和異或邏輯門的輸出及第二密鑰的次最低有效位(n1)進(jìn)行組合以輸出該2位限定詞信號(hào)。
該第二進(jìn)位存儲(chǔ)加法器包括n+3個(gè)第二全加器,每一個(gè)全加器對(duì)來自該第一進(jìn)位存儲(chǔ)加法器的除了和值的最低有效位及進(jìn)位的最高有效位之外的相應(yīng)的和值和進(jìn)位以及該第二n+3位信號(hào)的相應(yīng)位執(zhí)行全加操作,以生成該對(duì)和值和進(jìn)位。該與(AND)邏輯門對(duì)該第二進(jìn)位存儲(chǔ)加法器的次低有效位第二全加器輸出的和值及該第二進(jìn)位存儲(chǔ)加法器的最低有效位第二全加器輸出的進(jìn)位值執(zhí)行與(AND)操作,以生成該進(jìn)位輸入值。該模乘裝置還包括一個(gè)進(jìn)位傳送加法器,用于在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法器輸出的和值和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作。
本發(fā)明的又一方面,在用于實(shí)現(xiàn)消息加密/解密技術(shù)的該模乘方法中,使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘方法包括在各自的存儲(chǔ)器中存儲(chǔ)消息、第一密鑰和n位的第二密鑰;在每個(gè)時(shí)鐘處使用該消息和第一密鑰生成第一n+4位信號(hào);通過對(duì)該第一n+4位信號(hào)和兩個(gè)并行的n+4位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,生成由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;通過對(duì)該3位序列和一個(gè)輸入進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的3位限定詞;使用該第二密鑰和該3位限定詞,生成第二n+4位信號(hào);通過對(duì)該第二n+4位信號(hào)和第一進(jìn)位加法操作輸出的各自和值及進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和進(jìn)位值;通過對(duì)這對(duì)和值和進(jìn)位值以及在先前時(shí)鐘處從商邏輯電路輸出的進(jìn)位值執(zhí)行全加操作輸出一個(gè)進(jìn)位輸入值。在每個(gè)時(shí)鐘處該消息右移2位。
生成該第一n+4位信號(hào)的處理包括利用該消息的兩個(gè)低階位執(zhí)行Booth記錄;根據(jù)該兩個(gè)低階位生成0、B、2B、-B和-2B其中之一。該兩個(gè)并行的n+4位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的和值項(xiàng)中選擇高階的n+2位并插入兩位作為所選的n+2位的較高階的位,且這兩個(gè)較高階位為零。該兩個(gè)并行的n+4位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的進(jìn)位項(xiàng)中選擇較高的n+3位并插入一位作為所選的n+3位的較高位,且這個(gè)較高位為零。該3位序列包括兩個(gè)和值和一個(gè)進(jìn)位值。該兩個(gè)和值是第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的最低有效位和次低有效位,該一個(gè)輸入進(jìn)位值是第一進(jìn)位存儲(chǔ)加法操作輸出的進(jìn)位值項(xiàng)中的最低有效位。該一的輸入進(jìn)位值是由全加操作生成的該進(jìn)位輸入值。根據(jù)3位限定詞的兩個(gè)較低位從0、N、2N-N和-2N中選出該第二n+4位信號(hào)。該對(duì)和值和進(jìn)位值是第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的次低有效位和進(jìn)位值項(xiàng)中的最低有效位。第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位值項(xiàng)中的最高有效位被忽略。該模乘方法還包括在m+2個(gè)時(shí)鐘之后對(duì)該和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中m=n/2。如果該進(jìn)位傳送加法操作的輸出是負(fù)值,則該模乘方法還包括加上模第二密鑰。
本發(fā)明的又一方面,在用于實(shí)現(xiàn)消息加密/解密技術(shù)的該模乘方法中,使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘方法包括在各自的存儲(chǔ)器中存儲(chǔ)消息、第一密鑰和n位的第二密鑰;在每個(gè)時(shí)鐘處使用該消息和第一密鑰生成第一n+3位信號(hào);通過對(duì)該第一n+3位信號(hào)和兩個(gè)并行的n+3位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,輸出由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;通過對(duì)該3位序列和一個(gè)輸入進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的2位限定詞;使用該第二密鑰和該2位限定詞,生成第二n+3位信號(hào);通過對(duì)該第二n+3位信號(hào)和從第一進(jìn)位加法操作輸出的各自的和值和進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和進(jìn)位值;通過對(duì)這對(duì)和值和進(jìn)位值執(zhí)行與(AND)操作輸出一個(gè)進(jìn)位輸入值。在每個(gè)時(shí)鐘處該消息右移2位。通過多路復(fù)用該消息的兩個(gè)低階位及第一密鑰生成該第一n+3位信號(hào)。該第一n+3位信號(hào)是0、B、2B和3B其中之一。該兩個(gè)并行的n+3位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的和值項(xiàng)中選擇高階n+1位并插入兩位作為所選的n+1位的較高階位,且這兩個(gè)較高階位為零。該兩個(gè)并行的n+3位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的進(jìn)位項(xiàng)中選擇較高階n+2位并插入一位作為所選的n+2位的較高階位,且這個(gè)較高階位為零。
該3位序列包括兩個(gè)和值和一個(gè)進(jìn)位值。該兩個(gè)和值是第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的最低有效位和次低有效位,該進(jìn)位值是第一進(jìn)位存儲(chǔ)加法操作輸出的進(jìn)位值項(xiàng)中的最低有效位。該一個(gè)輸入進(jìn)位值是由與(AND)操作生成的該進(jìn)位輸入值。根據(jù)2位限定詞從0、N、2N和3N中選出該第二n+3位信號(hào)。該對(duì)和值和進(jìn)位值是第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的次低有效位和進(jìn)位值項(xiàng)中的最低有效位。從第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位項(xiàng)中的最高有效位被忽略。
該模乘方法還包括在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作。


通過下面結(jié)合附圖的詳細(xì)描述可以更加清楚地理解本發(fā)明的上述和其它目的、特性和其它優(yōu)點(diǎn)。面將參照附圖詳細(xì)說明本發(fā)明,從中可更清楚的理解本發(fā)明上述以及其它的目的、特點(diǎn)和優(yōu)點(diǎn),其中圖1給出了依照本發(fā)明第一實(shí)施例的一個(gè)模乘裝置的結(jié)構(gòu)框圖;圖2給出了圖1中所示的記錄電路的詳細(xì)結(jié)構(gòu)的框圖;圖3給出了圖1中所示的第一進(jìn)位存儲(chǔ)加法器的詳細(xì)結(jié)構(gòu)的框圖;圖4給出了圖1中所示的商邏輯電路的詳細(xì)結(jié)構(gòu)的框圖;圖5給出了圖1中所示的第二進(jìn)位存儲(chǔ)加法器的詳細(xì)結(jié)構(gòu)的框圖;圖6給出了圖1中所示的全加器的詳細(xì)結(jié)構(gòu)的框圖;圖7給出了依照本發(fā)明第二實(shí)施例的一個(gè)模乘裝置的結(jié)構(gòu)框圖;圖8給出了圖7中所示的記錄電路的詳細(xì)結(jié)構(gòu)的框圖;圖9給出了圖7中所示的第一進(jìn)位存儲(chǔ)加法器的詳細(xì)結(jié)構(gòu)的框圖;圖10給出了圖7中所示的商邏輯電路的詳細(xì)結(jié)構(gòu)的框圖;圖11給出了圖7中所示的第二進(jìn)位存儲(chǔ)加法器的詳細(xì)結(jié)構(gòu)的框圖;圖12給出了圖7中所示的全加器的詳細(xì)結(jié)構(gòu)的框圖;圖13給出了一個(gè)依照本發(fā)明實(shí)施例的模乘裝置的應(yīng)用實(shí)例。
具體實(shí)施例下面將參照附圖詳細(xì)說明本發(fā)明的優(yōu)選實(shí)施例。即使在不同的附圖中,相同或類似的元件都是由相同的參考標(biāo)記表示。在下面的說明中,當(dāng)所涉及的已知的功能和結(jié)構(gòu)使本發(fā)明的主題不明確時(shí),就將其省略。
A.發(fā)明概述在隨后的說明中,本發(fā)明披露了一種使用蒙哥馬利算法執(zhí)行模乘A·Bmod N的裝置及方法,其中A=an-1·2n-1+···+a1·2+a0,B=bn-1·2n-1+···+b1·2+b0,以及N=nn-1·2n-1+···+n1·2+n0。
此處,A是乘數(shù),B是被乘數(shù),N是模數(shù),每個(gè)位尺寸可以是很大的數(shù),例如,512或1024。
下面將描述通過兩個(gè)實(shí)施例執(zhí)行模乘A·B mod N。每個(gè)實(shí)施例都提出了一種在m+2個(gè)時(shí)鐘內(nèi)利用A、B和N(其中,R=4m+2,m=n/2,-N<=A,以及B<N)計(jì)算模乘A·B·R-1mod N的模乘裝置和方法,A、B和N中的每一個(gè)都是作為輸入而接收的n位長(zhǎng)度。通過使用由所提出的模乘裝置得出的模乘結(jié)果可以計(jì)算模乘A·B mod N。執(zhí)行RSA運(yùn)算所需的模冪memod N可由算出的A·B mod N導(dǎo)出。圖1至6給出了依照本發(fā)明第一實(shí)施例的該模乘裝置的元件結(jié)構(gòu)框圖,圖7至13給出了依照本發(fā)明第二實(shí)施例的該模乘裝置的元件結(jié)構(gòu)框圖。圖14給出了適用于依照本發(fā)明實(shí)施例的該模乘裝置的一個(gè)IC卡的框圖。
本發(fā)明的實(shí)施例提供模乘裝置,其中順序移動(dòng)乘數(shù)的位生成一個(gè)移位的位串,且該生成的位串的兩個(gè)較低位被Booth記錄。與僅記錄順序移動(dòng)乘數(shù)位所生成的位串的一個(gè)單一較低位的傳統(tǒng)模乘裝置相反,本發(fā)明通過以記錄兩個(gè)較低位的方式處理多個(gè)位允許高速執(zhí)行乘法。依照本發(fā)明實(shí)施例的模乘裝置包括改進(jìn)的記錄邏輯電路和與該改進(jìn)的用于執(zhí)行蒙哥馬利算法模乘操作的記錄邏輯電路一致的其它的元件。
B.第一實(shí)施例B-1.本發(fā)明的結(jié)構(gòu)圖1給出了依照本發(fā)明第一實(shí)施例的一個(gè)模乘裝置的結(jié)構(gòu)框圖。
參照?qǐng)D1,該模乘裝置包括記錄邏輯電路110,第一進(jìn)位存儲(chǔ)加法器(此處簡(jiǎn)寫為“CSA1”)120,商邏輯電路130,選擇器140,第二CSA(“CSA2”)150,以及全加器(FA)160。該模乘裝置是依照蒙哥馬利算法,在m+2個(gè)時(shí)鐘內(nèi)使用A、B和N計(jì)算A·B·R-1mod N的硬件裝置,A、B和N(R=4m+2,m=n/2,-N<=A,以及B<N)的每一個(gè)都具有n位輸入。該模乘裝置計(jì)算A·B·2-(n+4)mod N。
CSA 120和150中的每一個(gè)都由并行的(n+4)個(gè)全加器組成,每個(gè)全加器有一個(gè)3位輸入,輸出一個(gè)進(jìn)位和一個(gè)和位。記錄邏輯電路110基于乘數(shù)A執(zhí)行改進(jìn)的Booth記錄操作,并輸出0、±B和±2B值的其中一個(gè)作為該(n+4)位的帶符號(hào)的擴(kuò)展位。該商邏輯電路130具有作為其輸入的一個(gè)最低有效位(LSB)進(jìn)位值C1,0以及來自CSA1 120的兩個(gè)和值LSB位S1,1和S1,0,一個(gè)輸入(carry-in),以及B的符號(hào)位,輸出3位的q2q1q0,該值用于確定模數(shù)簡(jiǎn)化的倍數(shù)??捎啥嗦窂?fù)用器(MUX)實(shí)現(xiàn)的選擇器140基于確定的值q選擇并輸出0、±N和±2N的其中一個(gè)。該全加器160利用從CSA2 150輸出的兩位S2,1和C2,0以及作為其輸入的進(jìn)位值cin執(zhí)行全加操作,并將生成的結(jié)果值提供給商邏輯電路130作為輸入信號(hào)。
雖然圖1中沒有給出細(xì)節(jié),但應(yīng)該注意,該模乘裝置包括用于將進(jìn)位值以及和值存儲(chǔ)每個(gè)時(shí)鐘長(zhǎng)度的臨時(shí)存儲(chǔ)寄存器C和R,該進(jìn)位值以及和值分別是CSA1 120與CSA2 150的輸出,還包括一個(gè)進(jìn)位傳送加法器,用于將存儲(chǔ)在該臨時(shí)存儲(chǔ)寄存器C和R中的值相加輸出一個(gè)總的值作為模乘的結(jié)果。
圖2給出了圖1中所示的記錄邏輯電路110的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D2,記錄邏輯電路110 Booth記錄由順序移位乘數(shù)A所得的位串的兩位較低位,用被乘數(shù)B多路復(fù)用該Booth記錄結(jié)果,輸出帶符號(hào)的(n+4)位二進(jìn)制數(shù)。為了此目的,在記錄邏輯電路110的前一級(jí)提供一個(gè)用于順序移位乘數(shù)以生成一個(gè)移位串的移位寄存器102以及用于存儲(chǔ)該被乘數(shù)的寄存器104。記錄邏輯電路110也包括一個(gè)Booth記錄電路112,一個(gè)多路復(fù)用器(MUX)114,以及一個(gè)一的補(bǔ)碼器116。Booth記錄電路112 Booth記錄已生成的位串的兩位較低位ai+1和ai。多路復(fù)用器114用被乘數(shù)多路復(fù)用該Booth記錄的結(jié)果zi+1,輸出0、B和2B作為多路復(fù)用的結(jié)果。一的補(bǔ)碼器116依照該已生成的位串的兩位較低位對(duì)多路復(fù)用器114的輸出執(zhí)行一的取補(bǔ)操作,輸出帶符號(hào)的(n+4)位二進(jìn)制數(shù)。根據(jù)乘數(shù)A實(shí)現(xiàn)改進(jìn)Booth記錄的記錄邏輯電路110輸出(n+4)位的一個(gè)帶符號(hào)的擴(kuò)展位,其值可以是0、±B和±2B其中之一。
圖3的框圖詳細(xì)示出了圖1所示CSA1 120的結(jié)構(gòu)。
參照?qǐng)D3,具有(n+4)個(gè)全加器121至125的CSA1 120具有作為其輸入并來自記錄邏輯電路110的二進(jìn)制的(n+2)位的第一信號(hào)S2,2至S2,n+3、(n+3)位的第二信號(hào)C2,1至C2,n+3、以及(n+4)位的第三信號(hào)B0至Bn+3,并借助(n+4)全加器121至125將所有的輸入全加以輸出(n+4)位的進(jìn)位值C1,0至C1,n+3以及和值S1,0至S1+n+3。此處,將該第一信號(hào)的第(n+2)個(gè)較高位S2,n+3輸入到三個(gè)較高位全加器123至125,將該第二信號(hào)的第(n+3)個(gè)較高位C2,n+3輸入到兩個(gè)較高位全加器124和125。
圖4給出了圖1所示的商邏輯電路130的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D4,商邏輯電路130具有作為其輸入的從兩個(gè)較低全加器輸出的和值S1,0和S1,1以及從最低全加器輸出的進(jìn)位值C1,0,這是從CSA1 120的(n+4)個(gè)進(jìn)位值以及和值中選出的,并輸出一個(gè)三位的確定值q1q2q3來確定模數(shù)簡(jiǎn)化的倍數(shù)。商邏輯電路130包括D觸發(fā)器132、全加器134、異或(XOR)邏輯門136以及組合電路138。D觸發(fā)器132臨時(shí)存儲(chǔ)一位來自FA160的進(jìn)位輸入值Carry-in。全加器134將存儲(chǔ)在D觸發(fā)器132內(nèi)的進(jìn)位輸入值Carry-in與CSA1 120的最低有效位全加器121輸出的和值S1,0全加。異或(XOR)邏輯門136在CSA1 120的最低有效位全加器121輸出的該進(jìn)位值C1,0與次低位全加器122輸出的和值S1,1之間執(zhí)行異或運(yùn)算。每一個(gè)全加器134和異或邏輯門136都具有用于修正的預(yù)置進(jìn)位值cin,全加器134還具有被乘數(shù)的一個(gè)符號(hào)位B。組合電路138將全加器134的輸出S0、異或邏輯門136的輸出S1以及預(yù)置輸入位n1合并,輸出三位的確定值q1q2q3。
圖5給出了圖1所示的CSA2 150的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D5,CSA2 150包括(n+4)個(gè)全加器151至156。CSA2 150包括作為第一輸入信號(hào)的從選擇器140選出的(n+4)位的模數(shù)N(N0-Nn+3)、作為第二輸入信號(hào)的來自CSA1 120的(n+4)位進(jìn)位值中除了最高有效位進(jìn)位值的(n+3)位的剩余進(jìn)位值C1,0至C1,n+3以及作為第三輸入信號(hào)的來自CSA1120的(n+4)位和值中除了最低有效位進(jìn)位值的(n+3)位的剩余和值S1,0至S1,n+3,用于借助全加器151至156輸出(n+4)位的進(jìn)位值C2,0至C2,n+3和(n+4)位的和值S2,0至S2,n+3。第一輸入信號(hào)的(n+4)位是從最低有效位的全加器151開始按順序分別輸入到全加器151至156,第二輸入信號(hào)的(n+3)位是從次低位的全加器152開始按順序分別輸入到全加器152至156,第三輸入信號(hào)的(n+3)位是從次低位的全加器152開始按順序分別輸入到全加器152至156。全加器151至156的最低有效位全加器151的輸入是來自商邏輯電路130的全加器134的輸出S0、qi,2以及模數(shù)N的最低有效位N0。
圖6給出了圖1所示全加器160的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D6,全加器160將CSA2 150的最低有效位全加器151輸出的進(jìn)位值C2,0與次低位全加器151輸出的和值S2,0全加,輸出進(jìn)位輸入值Carry-in。全加器160還具有一位用于修正全加操作的的進(jìn)位值cin,輸出進(jìn)位輸入值Carry-in作為全加操作的結(jié)果。該進(jìn)位輸入值被提供給商邏輯電路130。
B-2.發(fā)明原理本發(fā)明提供一種用于在m+2個(gè)時(shí)鐘內(nèi)利用A、B和N((R=4m+2,m=n/2,-N<=A,以及B<N))計(jì)算A·B·R-1mod N的裝置,其中,A、B和N都具有n位的輸入。下面將說明可用于實(shí)現(xiàn)本發(fā)明的三個(gè)原理。該三個(gè)原理包括表示用于模乘的乘數(shù)A和被乘數(shù)B的第一原理,記錄用于模乘的乘數(shù)A的第二原理以及使用本發(fā)明記錄原理的蒙哥馬利算法的第三原理。
B-2a.數(shù)字表示本發(fā)明中,用于模乘的該乘數(shù)A和被乘數(shù)B由帶符號(hào)的二進(jìn)制數(shù)表示。A和B都具有n位,被分別的變換成用于帶符號(hào)操作的(n+4)位。在變換期間,任何的負(fù)值都被轉(zhuǎn)換成它們的一的補(bǔ)碼。
B-2b.Booth記錄本發(fā)明使用一種改進(jìn)的Booth記錄系統(tǒng),該系統(tǒng)是適于本發(fā)明的已為本領(lǐng)域技術(shù)人員所熟知的Booth記錄系統(tǒng)的改進(jìn)。本發(fā)明提高了模乘速度。依靠該改進(jìn)的Booth記錄系統(tǒng)將乘數(shù)A記錄為2位zi(其中0≤i≤m+1)。此處,假設(shè)an+4=an+3,a1=0。下表給出了依照本發(fā)明的改進(jìn)的Booth記錄的規(guī)則。
表1

B-2c.使用Booth記錄的基數(shù)-4蒙哥馬利算法下面方程1中例舉的算法給出了本發(fā)明對(duì)于基數(shù)-4蒙哥馬利算法采用了改進(jìn)的Booth記錄系統(tǒng)。最初的蒙哥馬利算法將結(jié)果值與模數(shù)N進(jìn)行比較,如果結(jié)果值大于模數(shù)N,則執(zhí)行減法運(yùn)算。然而,本發(fā)明下面的算法沒有示出原始蒙哥馬利算法的這種比較和減法。
方程1輸入N、-N≤A、B<N輸出S=A·B·4m+2mod N,-N≤S<NS=0 (1)for i=0 to(n+1)/2(2)S=S+Ai×B (3)qi(2,1,0)=f(s1,s0,n1,n0)(4)S=S+qi×N(5)S=S/22(6)end for (7)在方程1的算法中,Ai在處理(3)是指兩個(gè)Booth記錄位,其值為-2<Ai<2。處理(4)是指能使處理(5)的結(jié)果值的兩個(gè)最低有效位成為“0”的函數(shù)。處理(4)的結(jié)果值取決于輸入位s1、s0、n1和n0,并如表2所示被確定。用于模數(shù)簡(jiǎn)化的值qi的最高有效位(MSB)qi2是一個(gè)符號(hào)位。qi是元素集{0、±1、2}中之一個(gè)元素,并依照方程2來計(jì)算。
方程2q0=s0q1=s0‾s1]]>q2=s0s1‾n1‾+sns1n1]]>表2


B-3.本發(fā)明的操作如圖1所示的本發(fā)明的裝置在m+2個(gè)時(shí)鐘內(nèi)利用N,A、B和N(R=4m+2,m=n/2,-N≤A,以及B<N)計(jì)算A·B·R-1mod N,其中,A、B和N都具有n位的輸入。
下面將說明利用圖1所示的裝置計(jì)算A·B·R-1mod N(其中R=4m+2)的處理。在下面的說明中,步驟a)是初始化步驟,步驟b)至h)是每個(gè)時(shí)鐘將被執(zhí)行的步驟,步驟i)是在(m+2)個(gè)時(shí)鐘期間內(nèi)在執(zhí)行步驟b)到h)之后被執(zhí)行的步驟。
a)都具有n位用于模乘輸入的A、B和N被存儲(chǔ)在各自的寄存器(或存儲(chǔ)器)中。雖然本發(fā)明的裝置給出了輸入A和B存儲(chǔ)在各自的寄存器102和104中,而沒有給出以N位存儲(chǔ)的分開的寄存器,但用在本發(fā)明中的這樣分開的寄存器對(duì)于本領(lǐng)域技術(shù)人員來說是很清楚的。此處,存儲(chǔ)A的寄存器102是一個(gè)移位寄存器,每個(gè)時(shí)鐘A被向右移兩位。出于方便的原因,存儲(chǔ)A的寄存器表示為寄存器A,存儲(chǔ)B的寄存器表示為寄存器B。至于存儲(chǔ)器,則一次一個(gè)字的讀出A和B。用于臨時(shí)存儲(chǔ)圖1所示的CSA2 150的計(jì)算值的臨時(shí)寄存器(或存儲(chǔ)器)C和S(都沒有給出細(xì)節(jié))被初始化為“0”。
b)當(dāng)所有的數(shù)據(jù)都被輸入給寄存器102和104中的每一個(gè)時(shí),記錄邏輯電路110的Booth記錄電路112基于寄存器102中的兩個(gè)LSB位執(zhí)行Booth記錄功能。記錄邏輯電路110的MUX 114具有作為其輸入并存儲(chǔ)在寄存器104中的B的值,并基于寄存器102的兩個(gè)LSB位生成0、±B、±2B值的其中一個(gè),提供給CSA1 120以作為其三個(gè)輸入的一個(gè)。此時(shí),記錄邏輯電路110的一的補(bǔ)碼器116基于寄存器102的兩個(gè)LSB位將0、±B、±2B值的其中一個(gè)變換為它的一的補(bǔ)碼,并將該一的補(bǔ)碼表示成n+4位數(shù),提供給CSA1 120以作為其三個(gè)輸入的一個(gè)。
c)CSA 1120對(duì)三個(gè)輸入的n+4位的帶符號(hào)二進(jìn)制數(shù)執(zhí)行加法操作。CSA1120由n+4個(gè)全加器121至125構(gòu)成。前一級(jí)全加器生成的進(jìn)位提供給后一級(jí)的全加器,而最高有效位(MSB)全加器125生成的進(jìn)位被忽略。
d)商邏輯電路130具有作為其輸入的來自CSA1 120的值S1,1、C1,0和S1,0,來自全加器160的Carry-in信號(hào),被乘數(shù)B的符號(hào)位B,依靠全加器134和異或邏輯門136計(jì)算并輸出S1和S0。用于修正的進(jìn)位信號(hào)cin輸入至全加器134和異或邏輯門136。進(jìn)位信號(hào)cin是用于修正使用二的補(bǔ)碼的已有的Booth記錄系統(tǒng)與使用一位補(bǔ)碼的本發(fā)明的Booth記錄系統(tǒng)之間的差異的信號(hào)。
e)商邏輯電路130的組合電路138其輸入為步驟d)所得的S1和S0,依靠表2的真值表確定一個(gè)三位的值q。雖然沒有給出依靠表2的真值表確定q值的電路的詳細(xì)結(jié)構(gòu),但是通過一般的邏輯門電路實(shí)現(xiàn)用于確定q值的電路對(duì)本領(lǐng)域技術(shù)人員來講是很明顯的。
f)CSA2 150具有作為其輸入的在步驟c)中CSA1 120輸出的進(jìn)位值以及和值,以及通過步驟e)中所得q值的兩位LSB確定的從0、±N和±2N中選擇的n+4位的帶符號(hào)的二進(jìn)制數(shù),其執(zhí)行n+4位帶符號(hào)操作。CSA2 150由n+4個(gè)全加器151至156構(gòu)成。步驟e)中所得q值的MSB值q1,2作為全加器151至156的LSB全加器151的進(jìn)位輸入。
g)全加器160具有作為其輸入的從CSA2 150輸出的值S2,1和C2,0,以及用于修正的進(jìn)位信號(hào)cin,通過全加該輸入以輸出Carry-in。此全加操作是用于修正使用二的補(bǔ)碼的已有的Booth記錄系統(tǒng)與使用一的補(bǔ)碼的本發(fā)明的Booth記錄系統(tǒng)之間的差異。
h)來自CSA2 150輸出的MSB的(n+2)個(gè)和值和(n+3)個(gè)進(jìn)位值被反饋到CSA1 120作為其輸入。此時(shí),CSA2 150的MSB全加器156輸出的和值的MSB S2,n+3被復(fù)制,并在其上添加兩位,CSA2 150的MSB全加器156輸出的進(jìn)位值的MSB C2,n+3被復(fù)制,并在其上添加一位。對(duì)S2,n+3和C2,n+3的復(fù)制與添加的結(jié)果被輸入到CSA1 120。CSA2 150的全加器156輸出的和值S2,n+3被提供給CSA1 120的三個(gè)全加器123至125,以及進(jìn)位值C2,n+3被提供給CSA1120的兩個(gè)全加器124和125。
i)在(m+2)個(gè)時(shí)鐘內(nèi)執(zhí)行完步驟b)和h)之后執(zhí)行下面的操作。一個(gè)進(jìn)位傳送加法器(CPA)(未給出)對(duì)CSA2 150輸出的該進(jìn)位值及和值執(zhí)行加法操作。如果該加法的結(jié)果值為負(fù)數(shù),則在其上加模數(shù)N,但如果該加法的結(jié)果值為正數(shù),則不用在其上加模數(shù)N。
例如,如方程3所示,如果A、B和N每一個(gè)都有12位,則依照上述處理的蒙哥馬利模運(yùn)算結(jié)果如下面的表3和表4所示。
方程3
N=0000.1010.0101.1001(0xA59)B=0000.0101.1100.0011(0x5C3)N’=1111.0101.1010.0110 B’=1111.1010.0011.11002N=0001.0100.1011.0010 2B’=1111.0100.0111.1001A=0000.1001.0011.1110(0x93E)表3

表4


下面將說明通過本發(fā)明上述裝置使用運(yùn)算結(jié)果值計(jì)算模乘A·B mod N的處理。應(yīng)當(dāng)注意,對(duì)于本領(lǐng)域普通技術(shù)人員來講,用于執(zhí)行該處理的硬件結(jié)構(gòu)是很明顯的,因此,此處省略了詳細(xì)的說明。執(zhí)行下面的計(jì)算1)計(jì)算P=22(n+4)modN;2)計(jì)算C=A·B·2-2(n+4)modN;以及3)計(jì)算P·C·2-2(n+4)modN=A·B mod N。
下面將說明使用本發(fā)明上述裝置運(yùn)算的結(jié)果值來計(jì)算RSA運(yùn)算所需的模冪memod N的處理。執(zhí)行下面的運(yùn)算1)在寄存器(或存儲(chǔ)器)中存儲(chǔ)指數(shù)e;2)在臨時(shí)寄存器C中存儲(chǔ)模數(shù)N;3)將寄存器C和S初始化為“0”;4)執(zhí)行蒙哥馬利模乘m’=fm(m,P,N)=m·P·R-1mod N,其中P在模冪中是上述處理定義的預(yù)先計(jì)算的值,以及R=4n+2;
5)將m’載入該寄存器B;6)使用載入寄存器B的值執(zhí)行模平方運(yùn)算,此處,將蒙哥馬利模乘所需的乘數(shù)A從寄存器B中讀出,該值是通過使用改進(jìn)的Booth記錄電路獲得的;7)向左移位該指數(shù)e;8)忽略指數(shù)e的MSB 1,在下一位之后執(zhí)行后面的步驟9)和10);9)忽略指數(shù)e的一位(0或1)執(zhí)行用于模平方運(yùn)算的步驟4)和5),其中該平方運(yùn)算所需的乘數(shù)和被乘數(shù)分別存儲(chǔ)在寄存器A和寄存器B中;10)如果指數(shù)e的當(dāng)前位是1,在步驟9)之后執(zhí)行用于模乘的步驟4)和5),其中該被乘數(shù)是寄存器B中的內(nèi)容,乘數(shù)是在求冪中的底數(shù)m’;以及11)在對(duì)指數(shù)e的所有位執(zhí)行步驟8)至10)之后,再一次使用步驟4)執(zhí)行該模乘,其中被乘數(shù)是寄存器B的內(nèi)容,乘數(shù)是1。
如果在執(zhí)行完上述的步驟1)至11)之后對(duì)保留在寄存器C和S內(nèi)的值執(zhí)行CPA運(yùn)算的結(jié)果值是負(fù)數(shù),則將模數(shù)N添加到其上。反之,如果該結(jié)果值是正數(shù),這就是求冪memod N的最終值,不需加模數(shù)N。
B-4.本發(fā)明的效果從上述說明可見,本發(fā)明提供一種用于計(jì)算A·B·2-2(n+4)modN的電路,依靠此電路可以計(jì)算一般的模乘A·B modN。依照本發(fā)明計(jì)算的A·BmodN適用于硬件裝置,該裝置用于生成和驗(yàn)證數(shù)字簽名的裝置中。此外,本發(fā)明適用于基于IC卡的用于生成電子簽名、驗(yàn)證身份以及加密/解密的硬件裝置中。此外,本發(fā)明依靠執(zhí)行模乘運(yùn)算的電子簽名裝置,能提供用于加密和解密數(shù)據(jù)或消息的裝置。另外,本發(fā)明能夠?qū)崿F(xiàn)現(xiàn)有的基于電子簽名裝置公開密鑰密碼系統(tǒng),例如NIST-DSS,RSA,ELGamal以及Schnorr電子簽名。
C.第二實(shí)施例C-1.本發(fā)明的結(jié)構(gòu)圖7給出了依照本發(fā)明第二實(shí)施例的一個(gè)模乘裝置的結(jié)構(gòu)框圖。
參照?qǐng)D7,該模乘裝置包括記錄邏輯電路210,第一進(jìn)位存儲(chǔ)加法器(此處簡(jiǎn)寫為“CSA1”)220,商邏輯電路230,選擇器240,第二進(jìn)位存儲(chǔ)加法器(CSA2)250,以及與(AND)邏輯門260。該模乘裝置是一個(gè)硬件裝置,用于根據(jù)蒙哥馬利算法在m+2個(gè)時(shí)鐘內(nèi)使用A、B和N(R=4m+2,m=n/2,-N≤A,以及B<N)計(jì)算A·B·R-1mod N,其中,A、B和N每一個(gè)都具有n位輸入。即,該模乘裝置具有用于計(jì)算A·B·2-(n+4)mod N的結(jié)構(gòu)。
每一個(gè)CSA 220和250的都由(n+4)個(gè)并行的全加器構(gòu)成,每個(gè)全加器有一個(gè)3位輸入,輸出一位進(jìn)位和一位和值。邏輯電路210基于乘數(shù)A執(zhí)行改進(jìn)的Booth記錄操作,并輸出(n+3)位的0、B、2B和3B值的其中一個(gè)。商邏輯電路230其輸入有一個(gè)最低有效位(LSB)進(jìn)位值C1,0以及兩位來自CSA1 220和值的LSB位S1,1和S1,0、一個(gè)carry-in、以及B的符號(hào)位,輸出2位的q1q0,該值用于確定模數(shù)簡(jiǎn)化的倍數(shù)。選擇器240可由多路復(fù)用器(MUX)實(shí)現(xiàn),基于確定的q值來選擇并輸出0、N、2N和3N的其中一個(gè)。AND邏輯門260執(zhí)行與操作,CSA2 250輸出的兩位S2,1和C2,0作為其輸入,并將與操作的結(jié)果值提供給商邏輯電路230作為carry-in信號(hào)。
雖然圖7中沒有給出細(xì)節(jié),但應(yīng)該注意該模乘裝置包括用于將進(jìn)位值以及和值存儲(chǔ)長(zhǎng)達(dá)每個(gè)時(shí)鐘的臨時(shí)存儲(chǔ)寄存器C和R,該進(jìn)位值以及和值來自CSA2 250的輸出,還包括一個(gè)進(jìn)位傳送加法器,用于將存儲(chǔ)在該臨時(shí)存儲(chǔ)寄存器C和R中的值相加輸出一個(gè)總的值作為模乘的結(jié)果。
圖8給出了圖7中所示的記錄邏輯電路210的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D8,記錄邏輯電路210 Booth記錄由順序移位乘數(shù)A所得的位串的兩位較低位,多路復(fù)用具有被乘數(shù)B的Booth記錄結(jié)果,輸出(n+3)位二進(jìn)制數(shù)。為了此目的,在記錄邏輯電路210的前一級(jí)提供一個(gè)用于順序移位乘數(shù)以生成一個(gè)移位串的移位寄存器202以及用于存儲(chǔ)該被乘數(shù)的寄存器204。記錄邏輯電路210也包括一個(gè)多路復(fù)用器(MUX)212。多路復(fù)用器212多路復(fù)用所生成的具有被乘數(shù)的位串的兩個(gè)較低位ai+1和ai,并輸出0、B、2B和3B作為多路復(fù)用的結(jié)果。記錄邏輯電路210是基于乘數(shù)A實(shí)現(xiàn)改進(jìn)的Booth記錄的電路,其選擇并輸出(n+3)位0、B、2B和3B值的其中之一。
圖9給出了圖7所示的CSA1的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D9,具有(n+4)個(gè)全加器221至225的CSA1 220具有作為其輸入的(n+1)位的第一信號(hào)S2,2至S2,n+2、(n+2)位的第二信號(hào)C2,1至C2,n+2、以及來自記錄邏輯電路210的(n+3)位二進(jìn)制數(shù)的第三輸入信號(hào)B0至Bn+2,依靠(n+3)個(gè)全加器221至225將所有的輸入全加輸出(n+3)位的進(jìn)位值C1,0至C1,n+2以及和值S1,0至S1,n+2。該第一和第二信號(hào)是CSA2 250提供的信號(hào),第三信號(hào)是記錄邏輯電路210提供的。該第一信號(hào)的最高有效位S2,n+2被輸入到全加器的第三高位全加器223中,該第二信號(hào)的最高有效位C2,n+2被輸入到全加器的第二高位全加器224中。全加器的最高有效位全加器225具有“0”作為第一和第二信號(hào),以及第二高位全加器224具有“0”作為第三信號(hào)。即,(n+1)位的第一信號(hào)S2,2至S2,n+2分別順序的輸入至CSA1 220的最低有效位全加器221和第(n+1)位全加器223,“0”作為第一信號(hào)被輸入至第(n+2)位全加器224和第(n+3)位全加器225。此外,(n+2)位的第二信號(hào)C2,1至C2,n+2分別順序的輸入至CSA1 220的最低有效位全加器221和第(n+2)位全加器224,“0”作為第二信號(hào)分別順序的輸入至CSA1220的最低有效位全加器221和第(n+1)位全加器223。
圖10給出了圖7所示的商邏輯電路230的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D10,商邏輯電路230具有作為其輸入的兩個(gè)較低位全加器輸出的和值S1,0和S1,1以及最低有效位全加器輸出的進(jìn)位值C1,0,這是從CSA1 120的(n+4)位進(jìn)位值以及和值中選出的,并輸出一個(gè)2位的確定值q1q0來確定模數(shù)簡(jiǎn)化的倍數(shù)。商邏輯電路230包括D觸發(fā)器232、半加器234、異或(XOR)邏輯門126以及組合電路238。D觸發(fā)器232臨時(shí)存儲(chǔ)一位來自與邏輯門260的進(jìn)位輸入值Carry-in。半加器234將存儲(chǔ)在D觸發(fā)器232內(nèi)的進(jìn)位輸入值Carry-in與CSA1 220的最低有效位全加器221輸出的和值S1,0半加。異或(XOR)邏輯門236在CSA1 220的最低有效位全加器221輸出的該進(jìn)位值C1,0與次低全加器222輸出的和值S1,1之間執(zhí)行異或運(yùn)算。組合電路238將半加器234的輸出S0、異或邏輯門236的輸出S1以及預(yù)置輸入位n1合并,輸出2位的確定值q1q0。
圖11給出了圖7所示的CSA2 250的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D11,CSA2 250包括(n+3)個(gè)全加器251至256。CSA2 250包括從選擇器240選出的(n+3)位的模數(shù)N(N0-Nn+2)作為第一輸入信號(hào),和來自CSA1 220的(n+3)位進(jìn)位值中除了最高有效位進(jìn)位值的(n+3)位的剩余進(jìn)位值C1,0至C1,n+2作為第二輸入信號(hào),以及來自CSA1 220的(n+3)位和值中除了最低有效位和值的(n+2)位的剩余和值S1,1至S1,n+2作為第三輸入信號(hào),通過(n+3)個(gè)全加器251至256輸出(n+3)位的進(jìn)位值C2,0至C2,n+2和(n+3)位的和值S2,0至S2,n+2。第一輸入信號(hào)的(n+3)位是從最低有效位的全加器251開始到全加器251至256分別依順序輸入的,第二輸入信號(hào)的(n+2)位是從次低有效位的全加器252開始到全加器252至256分別依順序輸入的,第三輸入信號(hào)的(n+2)位是從次低有效位的全加器252開始到全加器252至256分別依順序輸入的。全加器251至256的最低有效位全加器251的輸入是來自商邏輯電路230的全加器234的輸出S0以及來自與(AND)邏輯門260的進(jìn)位輸入值。
圖12給出了圖7所示的AND邏輯門的詳細(xì)結(jié)構(gòu)框圖。
參照?qǐng)D12,AND邏輯門260將CSA2 250的最低有效位全加器251輸出的進(jìn)位值C2,0與次低位全加器251輸出的和值S2,1全加,輸出進(jìn)位輸入值Carry-in。該進(jìn)位輸入值Carry-in被提供給商邏輯電路230。
C-2.發(fā)明原理本發(fā)明提供一種用于在m+2個(gè)時(shí)鐘內(nèi)使用A、B和N(R=4m+2,m=n/2,-N≤A,以及B<N)計(jì)算A·B·R-1mod N的裝置,群眾,A、B和N具有n位的輸入。下面將說明可用于實(shí)現(xiàn)本發(fā)明的兩個(gè)原理。該兩個(gè)原理包括表示用于模乘的乘數(shù)A和被乘數(shù)B的第一原理以及使用本發(fā)明記錄原理的蒙哥馬利算法的第二原理。
C-2a.2位掃描本發(fā)明中,在每個(gè)時(shí)鐘從LSB以兩位掃描(或移位)該乘數(shù)A,然后將其與被乘數(shù)B相乘,該乘的結(jié)果用于蒙哥馬利算法。因此,每個(gè)循環(huán)生成的ai是元素集{0、1、2、3}中的一個(gè)元素,該ai與被乘數(shù)B相乘,相乘的結(jié)果被輸入至CSA1 220。
C-2b.基數(shù)-4蒙哥馬利算法下面方程4中例舉的算法給出了本發(fā)明采用基數(shù)-4蒙哥馬利模乘。原始的蒙哥馬利算法將結(jié)果值與模數(shù)N進(jìn)行比較,如果結(jié)果值大于模數(shù)N,則執(zhí)行減法運(yùn)算。然而,本發(fā)明下面的算法并沒有示出原始蒙哥馬利算法的這種比較和操作。
方程4輸入N、-N<=A、B<N輸出S=A·B·4m+2mod N,0≤S<NS=0(1)for i=0 to (n+1)/2 (2)S=S+Ai×B (3)qi(1,0)=f(s1,s0,n1,n0) (4)S=S+qi×N (5)
S=S/22(6)end for (7)在方程4的算法中,Ai在處理(3)是指兩個(gè)被掃描的位。處理(4)是指能使處理(5)的結(jié)果值的兩個(gè)最低有效位為“0”的函數(shù)。由于N是奇數(shù)且n0一直是1,所以處理(4)的結(jié)果值取決于輸入位s1、s0、n1和n0,且對(duì)于蒙哥馬利模乘來說,該值事實(shí)上如下面的表5所示的被確定。用于模數(shù)簡(jiǎn)化的值qi是元素集{0、1、2、3}中的一個(gè)元素,并依照方程5來計(jì)算。
方程5q0=s0q1=s0s1n1‾+s0s1+s1n1]]>表5

C-3.本發(fā)明的操作如圖7所示本發(fā)明的裝置在m+2個(gè)時(shí)鐘內(nèi)使用A、B和N(R=4m+2,m=n/2,-N≤A,以及B<N)計(jì)算A·B·R-1mod N,作為其輸入的A、B和N都具有n位。
下面將說明利用圖7所示的裝置計(jì)算A·B·R-1mod N(其中R=4m+2)的處理。在下面的說明中,步驟a)是初始化步驟,步驟b)至h)是每個(gè)時(shí)鐘執(zhí)行的步驟,和步驟i)是在(m+2)個(gè)時(shí)鐘期間執(zhí)行步驟b)至h)后將被執(zhí)行的步驟。
a)每一個(gè)都由n位組成并用于模乘的A、B和N被存儲(chǔ)在各自的寄存器(或存儲(chǔ)器)中。此外,n+2位的2B和3B存儲(chǔ)在各自的寄存器(或存儲(chǔ)器)中。雖然本發(fā)明的裝置顯示了在各自的寄存器202和204中存儲(chǔ)輸入A和B,而沒有示出分別存儲(chǔ)2B和3B的獨(dú)立的寄存器,但對(duì)于本領(lǐng)域技術(shù)人員來說很明顯,這種獨(dú)立的寄存器可以被用在本發(fā)明的裝置中。存儲(chǔ)A的寄存器202是一個(gè)移位寄存器,每個(gè)時(shí)鐘將A右移兩位。存儲(chǔ)A的寄存器表示為寄存器A,存儲(chǔ)B的寄存器表示為寄存器B。在使用存儲(chǔ)器的情況下,一次一個(gè)字的讀出A和B。臨時(shí)存儲(chǔ)圖7所示的CSA2 250計(jì)算結(jié)果的臨時(shí)寄存器(或存儲(chǔ)器)C和S(沒有給出細(xì)節(jié))被初始化為“0”。
b)當(dāng)所有的數(shù)據(jù)被輸入至寄存器202和204中的每一個(gè)時(shí),記錄邏輯電路210基于寄存器A 202中的兩個(gè)LSB位執(zhí)行Booth記錄功能。記錄邏輯電路210的MUX 212具有作為其輸入的存儲(chǔ)在寄存器204中的B的值,并基于寄存器A 202中的兩個(gè)LSB位選擇0、B、2B和3B值的其中一個(gè),提供給CSA1220作為其三個(gè)輸入的一個(gè)。
c)CSA1 220對(duì)三個(gè)輸入的n+3位的帶符號(hào)二進(jìn)制數(shù)執(zhí)行加法操作。CSA1220由n+3個(gè)全加器121至125構(gòu)成。
d)商邏輯電路230具有作為其輸入的來自CSA1 220的值S1,1、C1,0和S1,0、及來自與(AND)邏輯門260的Carry-in信號(hào),依靠半加器234和異或邏輯門236計(jì)算并輸出S1和S0。
e)商邏輯電路230的組合電路238其輸入為步驟d)所得的S1和S0,依靠表5的真值表確定一個(gè)2位的值q。雖然沒有給出依靠表5的真值表確定q值的電路的詳細(xì)結(jié)構(gòu),但是通過一般的邏輯門電路實(shí)現(xiàn)用于確定q值的電路對(duì)本領(lǐng)域技術(shù)人員來講是很明顯的。
f)CSA2 250具有作為其輸入的在步驟c)中CSA1 220輸出的進(jìn)位值及和值,以及通過步驟e)中所得q值的兩個(gè)LSB位確定的從0、N、2N和3N中選擇的n+3位的二進(jìn)制數(shù),以執(zhí)行n+3位的無符號(hào)操作。CSA2 250由n+3個(gè)全加器251至256構(gòu)成,類似于CSA1 220。應(yīng)當(dāng)注意,全加器251至256的LSB全加器251具有作為其進(jìn)位輸入的前一級(jí)生成的Carry-in信號(hào)。
g)與邏輯門260具有作為其輸入的CSA2 250的輸出值S2,1和C2,0,通過對(duì)該輸入執(zhí)行與操作輸出Carry-in位。
h)來自CSA2 250輸出的MSB的(n+2)個(gè)和值和(n+3)個(gè)進(jìn)位值被反饋到CSA1 220作為其輸入。該和值的兩個(gè)較高位和進(jìn)位值的一個(gè)較高位是“0”,且在CSA2 250中兩個(gè)位被右移以用于到CSA1 220的反饋。從CSA2 250的全加器256輸出的和值S2,n+2被提供給CSA1 220的第三最高全加器223,和值“0”被提供給MSB全加器225和第二最高全加器224。CSA2 250的全加器256輸出的進(jìn)位值C2,n+2被提供給CSA1 220的第二最高全加器224,進(jìn)位值“0”被提供給MSB全加器225。
i)在(m+2)個(gè)時(shí)鐘內(nèi)執(zhí)行完步驟b)和h)之后執(zhí)行下面的操作。一個(gè)進(jìn)位傳送加法器(CPA)(未示出)對(duì)CSA2 250輸出的該進(jìn)位值及和值執(zhí)行加法操作。
例如,如方程6所示,如果A、B和N中的每一個(gè)都有12位,則依照上述處理的蒙哥馬利模運(yùn)算結(jié)果如下面的表6和表7所示。此時(shí),最終的運(yùn)算結(jié)果如下所示最終結(jié)果0111.1100.0111(0x7C7)+0010.1000.0000(0x280)+1=1010.0100.1000(0xA48)方程6N=000.1010.0101.1001(0xA59) B=000.0101.1100.0011(0x5C3)2N=001.0100.1011.0010((0x13B2) 2B=000.101 1.1000.0110(0xB86)3N=001.1111.0000.1011(0x1F0B)3B=001.0001.0100.1001(0x1149)A=000.1001.0011.1110(0x93E)表6


表7

下面將說明使用本發(fā)明上述裝置運(yùn)算的結(jié)果值來計(jì)算模乘A·B mod N的處理。應(yīng)當(dāng)注意,對(duì)于本領(lǐng)域普通技術(shù)人員來講,用于執(zhí)行該處理的硬件結(jié)構(gòu)是很明顯的,因此,此處省略了詳細(xì)的說明。執(zhí)下面的計(jì)算1)計(jì)算P=22(n+4)modN;2)計(jì)算C=A·B·2-2(n+4)modN;以及3)計(jì)算P·C·2-2(n+4)modN=A·B mod N。
下面將說明使用本發(fā)明上述裝置運(yùn)算的結(jié)果值來計(jì)算RSA運(yùn)算所需的模冪memod N的處理。執(zhí)行下面的處理1)將指數(shù)e存儲(chǔ)在寄存器(或存儲(chǔ)器)中;2)將模數(shù)N存儲(chǔ)在臨時(shí)寄存器C中;3)將寄存器C和S初始化為“0”;4)執(zhí)行蒙哥馬利模乘m’=fm(m,P,N)=m·P·R-1mod N,其中,P在模冪中是上述處理定義的預(yù)先計(jì)算的值,以及R=4n+2;5)將m’載入該寄存器B;6)使用載入寄存器B的值執(zhí)行模平方運(yùn)算,此處,將蒙哥馬利模乘所需的乘數(shù)A從寄存器B中讀出,該值是通過使用基數(shù)-4記錄電路獲得的;7)向左移位該指數(shù)e;8)忽略指數(shù)e的MSB1,在接下來的位之后執(zhí)行后面的步驟9)和10);9)忽略指數(shù)e的一位(0或1)執(zhí)行用于模平方運(yùn)算的步驟4)和5),其中該平方運(yùn)算所需的乘數(shù)和被乘數(shù)分別存儲(chǔ)在寄存器A和寄存器B中;10)如果指數(shù)e的當(dāng)前位是1,在步驟9)之后執(zhí)行用于模乘的步驟4)和5),其中該被乘數(shù)是寄存器B中的內(nèi)容,乘數(shù)是在求冪中的底數(shù)m’;以及11)在對(duì)指數(shù)e的所有位執(zhí)行步驟8)至10)之后,再一次使用步驟4)執(zhí)行該模乘,其中被乘數(shù)是寄存器B的內(nèi)容,乘數(shù)是1。
在執(zhí)行完上述的步驟1)至11)之后,對(duì)留在寄存器C和S內(nèi)的值執(zhí)行CPA運(yùn)算所得的值是求冪memod N的最終值。
C-4.本發(fā)明的效果從上述說明可見,本發(fā)明提供一種用于計(jì)算A·B·2-2(n+4)modN的電路,依靠此電路可能計(jì)算一般的模乘A·B modN。依照本發(fā)明計(jì)算的A·BmodN適用于硬件裝置,該裝置用于生成和驗(yàn)證數(shù)字簽名的裝置中。此外,本發(fā)明適用于基于IC卡的用于生成電子簽名、驗(yàn)證身份以及加密/解密的硬件裝置中。此外,本發(fā)明依靠執(zhí)行模乘運(yùn)算的電子簽名裝置,能提供用于加密和解密數(shù)據(jù)或消息的裝置。另外,本發(fā)明能夠?qū)崿F(xiàn)現(xiàn)有的基于電子簽名裝置的公開密鑰密碼系統(tǒng),例如NIST-DSS,RSA,ELGamal以及Schnorr電子簽名。
D.本發(fā)明的應(yīng)用實(shí)例圖13給出了一個(gè)IC卡的框圖,通過使用本發(fā)明公開的蒙哥馬利型模乘裝置其能夠執(zhí)行加密和電子簽名。
在圖13中,一個(gè)中央處理單元(CPU)310譯出指令來執(zhí)行加密、驗(yàn)證和電子簽名,并為協(xié)同處理器330提供模運(yùn)算所需的控制信號(hào)和數(shù)據(jù)。只讀存儲(chǔ)器(ROM)350包括一個(gè)用于使數(shù)據(jù)安全的安全模塊,例如,加密和電子簽名所需的密鑰。還給出了控制邏輯電路320和隨機(jī)存取存儲(chǔ)器(RAM)340,為執(zhí)行上述操作提供邏輯電路和存儲(chǔ)器。
雖然出于舉例的目的給出了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域技術(shù)人員應(yīng)理解,在沒有脫離后附權(quán)利要求所公開的本發(fā)明的范圍與精神的情況下,可能進(jìn)行不同的修改、添加及刪減。
權(quán)利要求
1.一種用于實(shí)現(xiàn)消息加密/解密技術(shù)的模乘裝置,其中,使用第一密鑰(B)和第二密鑰(N)加密/解密消息(A),該模乘裝置包括存儲(chǔ)裝置,用于存儲(chǔ)長(zhǎng)度都是n位的該消息、第一密鑰和第二密鑰;記錄邏輯電路,用于在每個(gè)時(shí)鐘處使用該消息和該第一密鑰生成第一n+4位信號(hào);第一進(jìn)位存儲(chǔ)加法器,用于使用該第一n+4位信號(hào)和兩個(gè)并行的n+4位輸入信號(hào)生成由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;商邏輯電路,使用該3位序列和一個(gè)進(jìn)位值生成用于確定模數(shù)簡(jiǎn)化倍數(shù)的3位限定詞;選擇器,使用第二密鑰和該3位限定詞生成第二n+4位信號(hào);第二進(jìn)位存儲(chǔ)加法器,使用該第二n+4位信號(hào)和第一進(jìn)位存儲(chǔ)加法器輸出的各自的和值和進(jìn)位項(xiàng)生成一對(duì)和值和一對(duì)進(jìn)位值;以及第一全加器,用于通過對(duì)這對(duì)和值和進(jìn)位值以及在先前時(shí)鐘處從商邏輯電路輸出的進(jìn)位值(cin)執(zhí)行全加操作生成進(jìn)位輸入值。
2.如權(quán)利要求1所述的裝置,其中,該存儲(chǔ)裝置包括用于存儲(chǔ)各自的消息、第一密鑰和第二密鑰的移位寄存器。
3.如權(quán)利要求1所述的裝置,其中,在每個(gè)時(shí)鐘處將消息右移2位。
4.如權(quán)利要求1所述的裝置,其中,該第一n+4位信號(hào)是0、B、2B、-B和-2B其中之一。
5.如權(quán)利要求1所述的裝置,其中,該第二n+4位信號(hào)是0、N、2N、-N和-2N其中之一。
6.如權(quán)利要求1所述的裝置,其中,該記錄邏輯電路包括Booth記錄電路,用于對(duì)該消息的兩位最低有效位執(zhí)行Booth記錄;多路復(fù)用器,用于對(duì)該兩位最低有效位和該第一密鑰執(zhí)行多路復(fù)用以輸出0、B和2B其中之一;以及一的補(bǔ)碼器,依照該兩位最低有效位對(duì)該多路復(fù)用器輸出的該n+1位信號(hào)執(zhí)行一的取補(bǔ)運(yùn)算,以生成0、B、2B、-B和-2B其中之一。
7.如權(quán)利要求1所述的裝置,其中,該第一進(jìn)位存儲(chǔ)加法器包括n+4個(gè)第二全加器,每一個(gè)全加器對(duì)該兩個(gè)并行的n+4位輸入信號(hào)的相應(yīng)的和值和進(jìn)位以及該第一n+4位輸入信號(hào)的相應(yīng)位執(zhí)行全加操作,以生成該3位序列。
8.如權(quán)利要求7所述的裝置,其中,該兩個(gè)并行的n+4位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的和值項(xiàng)中選擇最高有效n+2位并插入兩位作為所選n+2位的最高有效位。
9.如權(quán)利要求8所述的裝置,其中,這兩個(gè)最高有效位為零。
10.如權(quán)利要求8所述的裝置,其中,該兩個(gè)并行的n+4位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的進(jìn)位項(xiàng)中選擇最高有效n+3位并插入一位作為所選n+3位的最高有效位。
11.如權(quán)利要求10所述的裝置,其中,該最高有效位為零。
12.如權(quán)利要求1所述的裝置,其中,該商邏輯電路包括D觸發(fā)器,用于臨時(shí)存儲(chǔ)來自第一全加器的進(jìn)位輸入值;第三全加器,用于對(duì)該進(jìn)位輸入值、該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的和值以及第一n+4位信號(hào)的符號(hào)位執(zhí)行全加運(yùn)算;一個(gè)異或(XOR)邏輯門,用于對(duì)該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值和該第一進(jìn)位存儲(chǔ)加法器的次最低有效位全加器輸出的和值以及第三全加器的進(jìn)位值執(zhí)行異或運(yùn)算;以及一個(gè)組合電路,用于對(duì)第三全加器和異或邏輯門的輸出及第二密鑰的次最低有效位進(jìn)行組合,并輸出該3位限定詞信號(hào)。
13.如權(quán)利要求1所述的裝置,其中,該第二進(jìn)位存儲(chǔ)加法器包括n+4個(gè)第四全加器,每一個(gè)全加器對(duì)來自該第一進(jìn)位存儲(chǔ)加法器的除了和值的最低有效位及進(jìn)位的最高有效位之外的相應(yīng)的和值和進(jìn)位以及該第二n+4位信號(hào)的相應(yīng)位執(zhí)行全加操作,生成該對(duì)和值和進(jìn)位值。
14.如權(quán)利要求1所述的裝置,其中,該第一全加器對(duì)第二進(jìn)位存儲(chǔ)加法器的次低有效位全加器輸出的和值和該第二進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值以及在先前時(shí)鐘處從商邏輯電路輸出的進(jìn)位值(cin)執(zhí)行全加操作,并生成該進(jìn)位輸入值。
15.如權(quán)利要求1所述的裝置,還包括一個(gè)進(jìn)位傳送加法器,在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法器輸出的和值和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中m=n/2。
16.如權(quán)利要求15所述的裝置,其中,如果該進(jìn)位傳送加法器的值是負(fù)的,則該進(jìn)位傳送加法器將第二密鑰的模加到該進(jìn)位傳送加法運(yùn)算的結(jié)果中。
17.一種用于實(shí)現(xiàn)消息加密/解密技術(shù)的模乘裝置,其使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘裝置包括存儲(chǔ)裝置,用于存儲(chǔ)長(zhǎng)度為n位的該消息、第一密鑰和第二密鑰;記錄邏輯電路,用于使用該消息和第一密鑰在每個(gè)時(shí)鐘處生成第一n+3位信號(hào);第一進(jìn)位存儲(chǔ)加法器,通過對(duì)該第一n+3位信號(hào)和兩個(gè)并行的n+3位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,生成由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;商邏輯電路,通過對(duì)該3位序列和一個(gè)進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的2位限定詞;選擇器,使用該第二密鑰和該2位限定詞生成第二n+3位信號(hào);第二進(jìn)位存儲(chǔ)加法器,通過對(duì)該第二n+3位信號(hào)和第一進(jìn)位加法操作輸出的分別的和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和一對(duì)進(jìn)位值;與(AND)邏輯門,通過對(duì)該對(duì)和值和進(jìn)位值執(zhí)行與操作,輸出一個(gè)進(jìn)位輸入值。
18.如權(quán)利要求17所述的裝置,其中,該存儲(chǔ)裝置包括用于存儲(chǔ)各自的消息、第一密鑰和第二密鑰的移位寄存器。
19.如權(quán)利要求18所述的裝置,其中,在每個(gè)時(shí)鐘將該消息移動(dòng)2位。
20.如權(quán)利要求17所述的裝置,其中該第一n+3位信號(hào)是0、B、2B和3B其中之一。
21.如權(quán)利要求17所述的裝置,其中,該第二n+3位信號(hào)是0、N、2N和3N其中之一。
22.如權(quán)利要求17所述的裝置,其中,該記錄邏輯電路是一個(gè)多路復(fù)用器,用于對(duì)消息的兩位最低有效位和n位的第一密鑰執(zhí)行多路復(fù)用,輸出該第一n+3位信號(hào)。
23.如權(quán)利要求12所述的裝置,其中,該第一進(jìn)位存儲(chǔ)加法器包括n+3個(gè)第一全加器,每一個(gè)全加器對(duì)兩個(gè)并行的n+3位輸入信號(hào)的相應(yīng)的和值和進(jìn)位以及該第一n+3位輸入信號(hào)的相應(yīng)位執(zhí)行全加操作,輸出該3位序列。
24.如權(quán)利要求23所述的裝置,其中,該兩個(gè)并行的n+3位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的和值項(xiàng)中選擇最高有效位的n+1位并插入兩位作為所選的n+1位的最高有效位。
25.如權(quán)利要求24所述的裝置,其中,這兩個(gè)最高有效位為零。
26.如權(quán)利要求24所述的裝置,其中,該兩個(gè)并行的n+3位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法器的進(jìn)位項(xiàng)中選擇最高有效位的n+2位并插入一位作為所選的n+2位的最高有效位。
27.如權(quán)利要求26所述的裝置,其中,該最高有效位為零。
28.如權(quán)利要求17所述的裝置,其中,該商邏輯電路包括D觸發(fā)器,用于臨時(shí)存儲(chǔ)來自與(AND)邏輯門的該進(jìn)位輸入值;半加器,用于對(duì)該進(jìn)位輸入值和該第一進(jìn)位存儲(chǔ)加法器的最高有效位全加器輸出的和值執(zhí)行半加運(yùn)算;異或(XOR)邏輯門,用于對(duì)該第一進(jìn)位存儲(chǔ)加法器的最低有效位全加器輸出的進(jìn)位值和次低有效位全加器輸出的和值以及該半加器的輸出值執(zhí)行異或運(yùn)算;組合電路,用于對(duì)該半加器和異或邏輯門的輸出及第二密鑰的次最低有效位(n1)進(jìn)行組合,并輸出該2位限定詞信號(hào)。
29.如權(quán)利要求17所述的裝置,其中,該第二進(jìn)位存儲(chǔ)加法器包括n+3個(gè)第二全加器,每一個(gè)全加器對(duì)來自該第一進(jìn)位存儲(chǔ)加法器的除了和值的最低有效位及進(jìn)位的最高有效位之外的相應(yīng)的和值和進(jìn)位以及該第二n+3位信號(hào)的相應(yīng)位執(zhí)行全加操作,生成該對(duì)和值和進(jìn)位。
30.如權(quán)利要求17所述的裝置,其中,該與(AND)邏輯門對(duì)該第二進(jìn)位存儲(chǔ)加法器的次低有效位第二全加器輸出的和值及該第二進(jìn)位存儲(chǔ)加法器的最低有效位第二全加器輸出的進(jìn)位值執(zhí)行與(AND)操作,生成該進(jìn)位輸入值。
31.如權(quán)利要求17所述的裝置,還包括一個(gè)進(jìn)位傳送加法器,在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法器輸出的和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中m=n/2。
32.一種用于實(shí)現(xiàn)消息加密/解密技術(shù)的模乘方法,其中,使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘方法包括存儲(chǔ)n位的消息、第一密鑰和第二密鑰;在每個(gè)時(shí)鐘使用該消息和第一密鑰生成第一n+4位信號(hào);通過對(duì)該第一n+4位信號(hào)和兩個(gè)并行的n+4位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,生成由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;通過對(duì)該3位序列和一位輸入進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的3位限定詞;使用該第二密鑰和該3位限定詞,生成第二n+4位信號(hào);通過對(duì)該第二n+4位信號(hào)和第一進(jìn)位加法操作輸出的分別的和值和進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和一對(duì)進(jìn)位值;通過對(duì)這對(duì)和值和進(jìn)位值以及在先前時(shí)鐘處從商邏輯電路輸出的進(jìn)位值執(zhí)行全加操作輸出一個(gè)進(jìn)位輸入值。
33.如權(quán)利要求32所述的方法,其中,在每個(gè)時(shí)鐘處將該消息右移2位。
34.如權(quán)利要求32所述的方法,其中,生成該第一n+4位信號(hào)的處理包括對(duì)該消息的兩個(gè)最低有效位執(zhí)行Booth記錄;根據(jù)這兩個(gè)最低有效位生成0、B、2B、-B和-2B其中之一。
35.如權(quán)利要求32所述的方法,其中,該兩個(gè)并行的n+4位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的和值項(xiàng)中選擇最高有效n+2位并插入兩位作為所選的n+2位的最高有效位。
36.如權(quán)利要求32所述的方法,其中,這兩個(gè)最高有效位為零。
37.如權(quán)利要求32所述的方法,其中,該兩個(gè)并行的n+4位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的進(jìn)位項(xiàng)中選擇最高有效n+3位并插入一位作為所選的n+3位的最高有效位。
38.如權(quán)利要求32所述的方法,其中,該最高有效位為零。
39.如權(quán)利要求32所述的方法,其中,該3位序列包括兩個(gè)和值和一個(gè)進(jìn)位值。
40.如權(quán)利要求39所述的方法,其中,該兩個(gè)和值是第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的最低有效位和次低有效位。
41.如權(quán)利要求39所述的方法,其中,該一位輸入進(jìn)位值是第一進(jìn)位存儲(chǔ)加法操作輸出的進(jìn)位值項(xiàng)中的最低有效位。
42.如權(quán)利要求32所述的方法,其中,該一個(gè)輸入進(jìn)位值是由全加操作生成的該進(jìn)位輸入值。
43.如權(quán)利要求32所述的方法,其中,根據(jù)3位限定詞的兩個(gè)最低有效位從0、N、2N-N和-2N中選出該第二n+4位信號(hào)。
44.如權(quán)利要求32所述的方法,其中,該對(duì)和值和進(jìn)位值是第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的次低有效位和進(jìn)位值項(xiàng)中的最低有效位。
45.如權(quán)利要求32所述的方法,其中,第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位值項(xiàng)中的最高有效位被忽略。
46.如權(quán)利要求32所述的方法,還包括在m+2個(gè)時(shí)鐘之后對(duì)該和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中m=n/2。
47.如權(quán)利要求46所述的方法,還包括如果該進(jìn)位傳送加法操作輸出的值是負(fù)的,則加上模第二密鑰。
48.一種用于實(shí)現(xiàn)消息加密/解密技術(shù)的模乘方法,其使用第一密鑰(B)和第二密鑰(N)對(duì)消息(A)加密/解密,該模乘方法包括存儲(chǔ)長(zhǎng)度都為n位的該消息、第一密鑰和第二密鑰;在每個(gè)時(shí)鐘使用該消息和第一密鑰生成第一n+3位信號(hào);通過對(duì)該第一n+3位信號(hào)和兩個(gè)并行的n+3位輸入信號(hào)執(zhí)行第一進(jìn)位存儲(chǔ)加法操作,輸出由一個(gè)進(jìn)位值和兩個(gè)和值組成的3位序列;通過對(duì)該3位序列和一位輸入進(jìn)位值執(zhí)行商操作,生成一個(gè)用于確定模數(shù)簡(jiǎn)化倍數(shù)的2位限定詞;使用該第二密鑰和該2位限定詞,生成第二n+3位信號(hào);通過對(duì)該第二n+3位信號(hào)和第一進(jìn)位加法操作輸出的各自的和值和進(jìn)位項(xiàng)執(zhí)行第二進(jìn)位存儲(chǔ)加法操作,輸出一對(duì)和值和一對(duì)進(jìn)位值;通過對(duì)這對(duì)和值和進(jìn)位值執(zhí)行與(AND)操作輸出一個(gè)進(jìn)位輸入值。
49.如權(quán)利要求48所述的方法,其中,在每個(gè)時(shí)鐘處將該消息右移2位。
50.如權(quán)利要求48所述的方法,其中,通過多路復(fù)用該消息的兩個(gè)最低有效位及第一密鑰生成該第一n+3位信號(hào)。
51.如權(quán)利要求48所述的方法,其中,該第一n+3位信號(hào)是0、B、2B和3B其中之一。
52.如權(quán)利要求48所述的方法,其中,該兩個(gè)并行的n+3位輸入信號(hào)中的第一輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的和值項(xiàng)中選擇最高有效位的n+1位并插入兩位作為所選n+1位的最高有效位。
53.如權(quán)利要求52所述的方法,其中,這兩個(gè)最高有效位為零。
54.如權(quán)利要求52所述的方法,其中該兩個(gè)并行的n+3位輸入信號(hào)中的第二輸入信號(hào)是按以下方式生成的從該第二進(jìn)位存儲(chǔ)加法操作的進(jìn)位項(xiàng)中選擇最高有效位的n+2位并插入一位作為所選n+2位的最高有效位。
55.如權(quán)利要求54所述的方法,其中,該最高有效位為零。
56.如權(quán)利要求48所述的方法,其中,該3位序列包括兩個(gè)和值和一個(gè)進(jìn)位值。
57.如權(quán)利要求56所述的方法,其中,該兩個(gè)和值是第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的最低有效位和次低有效位。
58.如權(quán)利要求56所述的方法,其中,該一個(gè)進(jìn)位值是第一進(jìn)位存儲(chǔ)加法操作輸出的進(jìn)位值項(xiàng)中的最低有效位。
59.如權(quán)利要求48所述的方法,其中,該一個(gè)輸入進(jìn)位值是由與(AND)操作生成的該進(jìn)位輸入值。
60.如權(quán)利要求48所述的方法,其中,根據(jù)2位限定詞從0、N、2N和3N中選出該第二n+3位信號(hào)。
61.如權(quán)利要求48所述的方法,其中,該對(duì)和值和進(jìn)位值是第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)中的次低有效位和進(jìn)位值項(xiàng)中的最低有效位。
62.如權(quán)利要求48所述的方法,其中,第一進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位值項(xiàng)中的最高有效位被忽略。
63.如權(quán)利要求48所述的方法,還包括在m+2個(gè)時(shí)鐘之后對(duì)該第二進(jìn)位存儲(chǔ)加法操作輸出的和值項(xiàng)和進(jìn)位項(xiàng)執(zhí)行進(jìn)位傳送加法操作,其中,m=n/2。
全文摘要
本發(fā)明公開了一種模塊式乘法裝置,在包括智能卡和移動(dòng)終端的移動(dòng)通信環(huán)境中,用于實(shí)現(xiàn)高速的加密/解密及電子簽名。本發(fā)明提供一種用于執(zhí)行蒙哥馬利型模塊式乘法的裝置,在m+2(m=n/2)個(gè)時(shí)鐘內(nèi)利用乘數(shù)A和被乘數(shù)B計(jì)算A·B′·R
文檔編號(hào)G06F7/60GK1530824SQ20041003268
公開日2004年9月22日 申請(qǐng)日期2004年3月14日 優(yōu)先權(quán)日2003年3月14日
發(fā)明者李炅熙, 任范鎮(zhèn), 許美淑 申請(qǐng)人:三星電子株式會(huì)社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1