新四季網

一種rsa算法及其ip核的製作方法

2023-06-14 15:23:31

專利名稱:一種rsa算法及其ip核的製作方法
技術領域:
本發明涉及電子信息加密技術,特別是涉及一種RSA算法及其IP核的電子技術。
背景技術:
隨著信息技術的飛速發展,網絡通信中的身份認證和信息安全傳輸問題正 逐漸受到人們的關注和重視。由於公鑰密碼體制能能夠有效的解決數字籤名、信 息驗證和身份認證,因此各個國家都投入了大量的人力、物力進行這方面的研究。 RSA (Rivest-Shamir-Adleman)加密算法自其誕生之日起,就成為被廣泛接受且被實現的通 用公鑰加密方法。實現加密算法,可以用軟體實現,也可以轉換成硬體實現的ASIC (專用集成電路) 晶片,而硬體加密是商業和軍事用途的主要選擇。與傳統的軟體加密相比,硬體加密的主要 特點是一是穩定性和兼容性好,速度更快;二是安全性好,抗解密攻擊強度高,能夠較好 地避免軟體實現中密鑰洩漏,內存被掃描等問題。隨著硬體技術的發展,智慧卡、IC卡(集成電路卡)和電子鑰匙等出現在電子商 務的硬體大家庭中,它們集數據加密和數據存儲兩大功能於一身,有著體積小,使用方便, 功能強大,安全性好,價格便宜等特點,成為了推動電子商務發展的強大動力之一,還廣泛 應用於交通、醫療、身份認證等其他領域,極大地提高了人們生活和工作的現代化程度。在 這些小型行動裝置中實現公鑰密碼體制的RSA密碼協處理器,有著極其重要的意義,但目 前存在兩個主要問題一是RSA的VLSI (超大規模集成電路)實現面積過大,二是RSA的模 冪乘運算速度較低。

發明內容
針對上述現有技術中存在的缺陷,本發明所要解決的技術問題是提供一種注重小 面積,高性能,面向低端的RSA IP核;通過改進的加密算法,並選用合適的硬體結構,大大 縮小了面積,並取得了優良的性能,只需要較少的加法和存儲空間的RSA算法及其IP核 (Intellectual Property,智慧財產權核)。為了解決上述技術問題,本發明所提供的一種RSA算法,其特徵在於,實現RSA模 冪模乘的蒙哥馬利算法中計算R2 mod N的步驟1)計算 Mont2 = 2R mod N = 2*2r mod N ;2)調用模冪單元,將Mont2作為底數,r作為指數,計算H= (Mont2)r mod N。Mont2相當於2的蒙哥馬利表示,經過模冪計算後在去R因子之前得到的結果是H= mod N, 即R2 mod N,從而巧妙的解決了問題,提高了運算效率。進一步的,所述步驟1)中,計算Mont2的算法如下(W是IP核中字的位數)1.令 Nwords = (n/ff);2.對j從0到Nwords,執行如下循環操作2. 1 令 T[j] =〃 00·. 00〃
2. 2 如果 j = (n-2/ff),則令 T 的第(n_2)位為 13.令 i = r-n+14.令 sign = 05.當i≥0時,執行如下循環操作5.1 令 ca = 05. 2 令 cm = 05. 3對j從0到Nwords,執行如下循環操作5. 3. 1 如果 sign = 1,則令{ca, Sum} = {T[j] (ff-2 0),cm} +N[j]+ca否則令{ca,Sum}= T[j] (ff-2:0),cm}-N[j]_ca5. 3. 2 令 cm = T [j] (ff-1)5. 3. 3 令 T[j] = Sum5. 4.令 sign 為 ca 與 cm 異或5· 5 令 i = i-16.如果sign = 1,執行如下操作,即R = T+N 6. 1 令 ca = 06. 2對j從0到Nwords,執行如下循環操作6. 2. 1 令{ca, T[j]} = T[j]+N[j]+ca本發明所提供的一種RSA算法,其特徵在於,實現RSA模冪的蒙哥馬利算法中的模 平方算法,具體算法如下(k是R的字數)1.對i從0到k-Ι,執行如下循環操作1. 1 令 c = 01. 2 對 j 從 0 到 i-Ι,執行循環操作(c,T[j]) = T[j]+2*A[j]*A[i]+c1.3 令(c,T[j]) =T[j]+A[j]*A[i]+c1· 4 令(Τ [j+1],T [j]) =T [j]+c1. 5 令 c = 01· 6 令 m = T
*nacc mod W1. 7 令(c,s) = T
+m*N
1. 8 對 j 從 1 到 k-1,執行循環操作(c,T[j-1]) = T[j]+m*N[j]+c1. 9 令(c,T[k-1]) = T[k]+c
1. 10 令 T [k] = T [k+l]+c1. 11 如果 T > N,則令 T = T-N2.返回 T本發明所提供的一種運行(實現)所述RSA算法的IP核包括接口模塊(IFC)、控 制模塊(CTRL)、存儲器模塊(MEM)、模冪模塊(EXP)和模約減模塊(RED);其中,控制模塊分 別連接模約減模塊(RED)、存儲器模塊(MEM)、模冪模塊(EXP)和接口模塊(IFC);模約減模 塊(RED)分別連接模冪模塊(EXP)、存儲器模塊(MEM);存儲器模塊(MEM)分別連接模冪模 塊(EXP)、接口模塊(IFC);接口模塊完成內外數據的交互,將RSA模乘和模冪的操作數送入存儲器模塊,同 時向控制模塊寫入控制指令,並讀出狀態寄存器的值;
控制模塊實現最頂層的控制邏輯,負責啟動RSA運算;模約減模塊計算Mont2,並完成模冪和模乘後的取模減法調整;存儲器模塊存儲RSA需要計算的大數,中間結果和最終結果;模冪模塊完成RSA IP核的核心運算,即模冪和模乘運算。進一步的,所述控制模塊通過接口模塊接受用戶的指令,調度運算單元——模冪 模塊和模約減模塊,完成整個RSA運算。進一步的,所述控制模塊負責分配存儲單元給模冪模塊,模約減模塊和接口模塊, 在任一時刻只能有一個模塊訪問存儲器模塊,以免產生混亂。進一步的,所述整個運算(AB mod N或A*B mod N)的控制邏輯被分為兩步1)輸入預計算指令RSA_RR,啟動Nacc根據大數N計算得到蒙哥馬利運算中需要 的N 0],然後啟動模約減模塊計算得到Mont2,最後啟動模冪模塊得到R2 mod N;2)根據模冪指令RSA_EXP,或模乘指令RSA_MUL,啟動模冪模塊進行相應的計算, 計算結果與N比較,如果比N大就啟動模約減模塊,執行取模減法運算。由於模約減模塊本 身不能將計算結果放到正確的存儲單元,所以最後由模冪模塊執行搬移的操作。進一步的,所述模冪模塊內設有ExpCtrl單元和連接所述ExpCtrl單元的MMM單 元;所述MMM單元內設有MMMCtrl單元和核心處理單元PE。進一步的,所述ExpCtr 1單元用於實現控制模塊中指定的四種操作即EXP_ EXP (模冪),EXP_MUL (模乘),EXP_MV (搬移),EXP_RR (計算 R2 mod N),使用 RL (Right to Left,從右至左掃描)方式的二進位位掃描算法計算模冪,從低位到高位讀入指數(EXP_ EXP讀入B,EXP_RR讀入r),將整個模冪運算分解為乘法、平方、搬移、比較四個最基本的操 作,向MMM單元發出相應的指令。進一步的,所述MMMctrl單元用於實現ExpCtrl單元中指定的四個基本操作乘 法、平方、搬移、比較;用於控制Cios蒙哥馬利模乘和模平方的運算流程,從存儲器模塊中 讀取大數,根據ExpCtrl的指令,向PE傳遞正確的操作數,執行(c, T) = T+XY+c, (c, Τ)= T+2XX+C兩種運算。進一步的,所述核心處理單元PE包括一個乘法器WxW,一個加法器W+W,以及一個 4-2壓縮器,採用2級流水線設計。使IP的關鍵路徑得到優化,工作頻率得以提高。進一步的,所述模乘器採用兩級流水線,第一級為用於計算CIOS蒙哥馬利算法中 的m = nacc*t0,xiyj = Xi*y」、以及IiiHi = n^m的32位乘法器,第二級使用32位加法器,力口 法器前使用4-2壓縮器把四個操作數轉換成兩個操作數。進一步的,所述核心處理單元PE中採用2W位的單口 SRAM(靜態隨機存取存儲器) 作為中間結果存儲器。這樣每次讀和寫都可以完成2W位的數據傳輸,讀寫交替進行便可以 滿足計算要求,不影響IP的性能。進一步的,所述存儲器模塊中使用SRAM存儲所有操作數和計算結果。利用本發明提供的RSA算法及其IP核,其特點如下支持大於32位,小於等於2048位的模冪和模乘運算;密鑰保護功能,IP使用更加安全;在100MHz頻率下,平均完成1024位模冪運算33次每秒,2048位模冪運算3. 7次 每秒;
操作簡單,不需要外部做任何輔助運算;IP接口採用通用接口設計,更利於S0C(SyStem on Chip,片上系統)集成;通過層次化控制邏輯和高效的數據通路,實現IP核的高性能;本存儲系統具有高性能,小面積,高安全性的特點。


圖1為本發明實施例RSA IP整體框圖;圖2為本發明實施例EXP內部框圖;圖3為本發明實施例MMM內部框圖;圖4為本發明實施例CTRL模塊狀態轉移圖;圖5為本發明實施例PE數據通路。
具體實施例方式以下結合

對本發明的實施例作進一步詳細描述,但本實施例並不用於限 制本發明,凡是採用本發明的相似結構、方法及其相似變化,均應列入本發明的保護範圍。本發明的RSA算法改進蒙哥馬利算法是實現RSA模冪模乘的經典算法,本發明採用蒙哥馬利的改進算法 CIOS算法,這種方法需要較少的加法和存儲空間,比較適合通用處理器實現。蒙哥馬利算法的基本形式如下選擇參數N,,IT1,滿足 0 < IT1 < N,0 < N,< R,使得 Ι^Ι^-ΝΦΝ,= 1Mont (a, b) = a*b*R_lmod N (mod N 艮口對 N 取模)L 令 t = a*b2.令 u= (t+(t*N,mod R)*N)/R注其中R與N互素,為計算方便,R通常是機器字長的倍數。對0 < t < R*N,結 果u的範圍是(0,2N),因此取得最終結果之前需要進行取模減法調整如下如果u彡N則返回u-N,否則返回uR的取值RSA加解密中的模冪運算,就是不斷調用蒙哥馬利算法進行模乘和模平方。本發明
取 R = mod N,r = (、二+二1. tfordlenSth (η 是模數 N 的比特數,wordlength 是設計中乘
法器位寬,即IP核中字的位數W)。計算ab mod N時,取0 < a η.進行取模減法調整。計算R2 mod N蒙哥馬利算法會帶來一定的附加計算,需要將操作數轉換成蒙哥馬利表示,SP弓丨 入R因子。在計算S = a*b mod N之前,先要通過計算Mont (a,R2), Mont (b, R2)將a,b表 小成3 = aRmod N,5 = bRmod M,計算Mont(Sj)得至IjS =. abR mod N,再計算Mont (S,l)去除 R 因
子,得到S = ab mod N。因此R2 mod N是蒙哥馬利算法中一個重要的參數。如果N位數很 高,直接計算R2 mod N會相當複雜。
為解決上述問題,本發明充分利用晶片中算法和數據通路優化最好的MontO算 法,實現RSA模冪模乘的蒙哥馬利算法中計算R2 mod N的步驟1)計算 Mont2 = 2R mod N = 2*2r mod N2)調用模冪單元,將Mont2作為底數,r作為指數,計算H= (Mont2)r mod N。Mont2 相當於2的蒙哥馬利表示,經過模冪計算後在去R因子之前得到的結果是H= mod N, 即R2 mod N,從而巧妙的解決了問題,提高了運算效率。計算所述步驟1)中的Mont2的算法如下(W是IP核中字的位數)1.令 Nwords = (n/ff);2.對j從O到Nwords,執行如下循環操作2. 1 令 T[j] =" 00·. 00〃2. 2 如果 j = (n-2/ff),則令 T 的第(n_2)位為 13.令 i = r-n+14.令 sign = O5.當i彡0時,執行如下循環操作5.1 令 ca = 05. 2 令 cm = 05. 3對j從0到Nwords,執行如下循環操作5. 3. 1 如果 sign = 1,則令{ca, Sum} = {T[j] (ff-2 0), cm} +N[j]+ca否則令{ca,Sum}= T[j] (ff-2:0),cm}-N[j]_ca5. 3. 2 令 cm = T[j] (W-I)5. 3. 3 令 T[j] = Sum5. 4.令 sign 為 ca 與 cm 異或5. 5 令 i = i_l6.如果sign = 1,執行如下操作,即R = T+N 6.1 令 ca = 06.2對j從0到Nwords,執行如下循環操作6. 2. 1 令{ca, T[j]} = T[j]+N[j]+ca採用改進的Montgomery模平方算法模平方算法就是輸入的兩個乘數相等的情況,是一種特殊的模乘。通過改進可以 使計算周期為同等長度下乘法的四分之三。具體算法如下(k是R的字數)1.對i從0到k-Ι,執行如下循環操作1.1 令c = 01. 2 對 j 從 0 到 i_l,執行循環操作(c,T[j]) = T[j]+2*A[j]*A[i]+c1· 3 令(c,T[j]) =T[j]+A[j]*A[i]+c1.4 令(T[j+l],T[j]) = T[j]+c1· 5 令 c = 01· 6 令 m = T
*nacc mod W1· 7 令(c,s) = T
+m*N
1. 8 對 j 從 1 到 k-1,執行循環操作(c,T[j-1]) = T [ j]+m*N[ j] +c
1· 9 令(c,T[k_l]) = T[k]+c1· 10 令 T [k] = T [k+l]+c1. 11 如果 T > N,則令 T = T-N2.返回 T與普通乘法不同,內循環中第一個循環體,j沒有像i那樣從0增加到k-Ι,而是採 用乘以2來改進,由於只需要將乘法器輸出結果向高位映射一位,改進代價比較小。本發明的IP核硬體設計本發明合理劃分模塊,層次化控制邏輯,設計高效的存儲系統,優化數據通路,最 終使晶片達到高性能、小面積。IP核整體上分五個功能模塊接口模塊(IFC)、控制模塊 (CTRL)、存儲器模塊(MEM)、模冪模塊(EXP)和模約減模塊(RED),整體框圖如圖1所示,其 中,控制模塊分別連接模約減模塊(RED)、存儲器模塊(MEM)、模冪模塊(EXP)和接口模塊 (IFC);模約減模塊(RED)分別連接模冪模塊(EXP)、存儲器模塊(MEM);存儲器模塊(MEM) 分別連接模冪模塊(EXP)、接口模塊(IFC); IFC模塊完成內外數據的交互,將RSA模乘和模冪的操作數送入MEM模塊,同時向 CTRL模塊寫入控制指令,並讀出狀態寄存器的值。CTRL實現最頂層的控制邏輯,負責啟動 RSA運算。RED計算Mont2,並完成模冪和模乘後的取模減法調整。MEM模塊存儲RSA需要 計算的大數,中間結果和最終結果。EXP完成RSA IP核的核心運算,即模冪和模乘運算。本 發明適用於智慧卡等面積較小的設備,因此不適合用比較消耗硬體資源的心動陣列實現模 乘器,而是使用基32的高基模乘器。如圖2所示,EXP模塊內設有ExpCtrl單元和連接所述 ExpCtrl單元的MMM單元;如圖3所示,所述MMM單元內設有MMMCtrl和核心處理單元PE ;以下分別針對控制邏輯,Montgomery模乘器數據通路,存儲策略進行詳細闡述。控制邏輯本發明層次化控制邏輯,使運算過程清晰易懂。使用三層狀態機實現RSA模冪模 乘運算,由上至下,運算不斷細化具體化CTRL模塊實現頂層控制;EXP中的ExpCtrl實現 模冪算法流程控制,控制MMM ;MMM中的MMMctrl實現CIOS蒙哥馬利模乘算法,控制核心處 理單元PE。以下分別闡述。CTRL 實現最頂層的控制邏輯。通過IFC接受用戶的指令,調度運算單元EXP和 RED,完成整個RSA運算。除了控制運算單元的工作狀態,CTRL還負責分配存儲單元給EXP, RED和IFC,在任一時刻只能有一個模塊訪問MEM,以免產生混亂。圖4是CTRL模塊的狀態 轉移圖。如圖4所示,整個運算(AB mod N或A*B mod N)被分為兩步1)輸入預計算指令RSA_RR,啟動Nacc根據大數N計算得到蒙哥馬利運算中需要 的N 『 W],然後啟動RED計算得到Mont2,最後啟動EXP得到R2 mod N ;2)根據模冪指令RSA_EXP,或模乘指令RSA_MUL,啟動EXP進行相應的計算,計算結 果與N比較,如果比N大就啟動RED,執行取模減法運算。由於RED本身不能將計算結果放 到正確的存儲單元,所以最後由EXP執行搬移的操作。ExpCtrl 實現CTRL模塊中指定的四種操作EXP_EXP (模冪),EXP_MUL (模乘), EXP_MV (搬移),EXP_RR(計算R2 mod N),使用RL (Right to Left,從右至左掃描)方式的 二進位位掃描算法計算模冪,從低位到高位讀入指數(EXP_EXP讀入B,EXP_RR讀入r),將整個模冪運算分解為乘法、平方、搬移、比較四個最基本的操作,向MMM發出相應的指令。此 夕卜,ExpCtrl還控制每步運算中操作數和結果存放在存儲系統的哪一個SRAM中,以便將數 據搬移的開銷降低到最小。 MMMctrl 實現ExpCtrl模塊中指定的四個基本操作乘法、平方、搬移、比較。主要 控制CIOS蒙哥馬利模乘和模平方的運算流程,從MEM中讀取大數,根據ExpCtrl的指令,向 PE傳遞正確的操作數,執行(c,T) = T+XY+c, (c,T) = T+2XX+C兩種運算。
Montgomery 模乘器優化RSA IP核的核心處理單元PE包括一個乘法器WxW,一個加法器W+W,以及一個4_2 壓縮器,採用2級流水線設計。IP的關鍵路徑得到優化,工作頻率得以提高。優化後的蒙哥 馬利模乘器數據通路如圖5所示
模乘器採用兩級流水線。第一級32位乘法器用來計算CIOS蒙哥馬利算法中的m =nacc*t0,xiyj = Xi^yj,以及nim = njm。為了縮減面積,第二級使用32位加法器,所以64 位乘積需要分兩個時鐘周期送入加法器。在這一級,中間結果,乘積的低32位,前一次的加 法進位,以及前一次乘積的高32位相加,加法器前使用4-2壓縮器把四個操作數轉換成兩 個操作數,優化了面積和關鍵路徑。對於模平方,數據通路與模乘類似,差別在於採用了優化算法,只需要將乘法輸出 結果向高位映射一位,可以少做一些乘法。在PE的工作過程中,一個周期內既需要讀取W位的上一次結果,又需要寫入W位 的本次計算結果。由於SRAM(靜態隨機存取存儲器)一個周期內只能讀取或寫入一個字, 考慮雙口 SRAM面積較單口大,本發明採用2W位的單口 SRAM作為中間結果存儲器,這樣每 次讀和寫都可以完成2W位的數據傳輸,讀寫交替進行便可以滿足計算要求,不影響IP的性 能。存儲策略本發明最高要進行2048位的模冪模乘運算,這麼大的操作數如果用寄存器組存 儲,雖然使用方便,但面積開銷將會相當大。因此使用SRAM存儲所有操作數和計算結果,由 於密鑰長度最長可達2048位,處理位寬為32位,所以使用4個72x32SRAM(A,B,N,R),1個 40x64SRAM(T)。本存儲系統根據高性能,小面積,高安全性進行設計,具備以下特點1)使用SRAM的代價是同一個SRAM —個周期只能讀取或寫入一個字,因此設計了 一套SRAM存儲策略,使運算過程中的數據搬移開銷降到最低。SRAM A,B, N分別用於寫入 RSA操作數A,B, N。R用來存放最終結果,T用來存放Montgomery模乘運算中的64位中間 結果。另外,A和R還用來存放模冪過程中每次模乘或模平方後的中間結果。R2 mod N存 放在R SRAM中。ExpCtrl根據模冪模乘的不同步驟確定具體的SRAM映射方案,解決數據相 關問題,2)考慮到對SRAM的操作絕大多數情況是順序寫入操作數,因此只需要向地址寄 存器寫入一個地址初始值,隨後便可以直接對SRAM讀寫,地址在IP內部自動加1,無需在地 址總線上連續給出地址信號,有利於減少串擾和降低功耗。3)為提高運算單元讀寫SRAM的速度,採用了 SRAM和運算單元採用反相時鐘設計 的技術,使得存取數據的速度提高了 100%。
4)針對運算的不同階段,給存放操作數的SRAM設置了不同的權限,包括只讀、只寫、可讀可寫,以充分保障加解密的安全性。比如在IFC模塊與MEM模塊交互的階段,由於 B SRAM中寫入的可能是私鑰,所以只設置了寫權限,不能讀出。
權利要求
一種RSA算法,其特徵在於,實現RSA模冪模乘的蒙哥馬利算法中計算R2mod N的步驟1)計算Mont2=2R mod N=2*2r mod N;2)調用模冪單元,將Mont2作為底數,r作為指數,計算H=(Mont2)r mod N。Mont2相當於2的蒙哥馬利表示,經過模冪計算後在去R因子之前得到的結果是H=2rR mod N,即R2 mod N,從而巧妙的解決了問題,提高了運算效率。
2.根據權利要求1所述的RSA算法,其特徵在於,所述步驟1)中,計算Mont2的算法如 下(W是IP核中字的位數)1)令Nwords = (n/ff);2)對j從0到Nwords,執行如下循環操作 2)①令 T[j] =" 00. .00〃 ;2)②如果j= (n-2/W),則令T的第(n-2)位為1 ;3)令i = r-n+1 ;4)令sign = 0 ;5)當i彡0時,執行如下循環操作 5)①令 ca = 0 ;5)②令 cm = 0 ;5)③對j從0到Nwords,執行如下循環操作5)③ I 如果 sign = 1,則令{ca, Sum} = {T[j] (ff-2 0), cm}+N[ j]+ca ; 否則令{ca,Sum} = T[j] (ff-2:0),cm}-N[j]_ca ; 5)③ II 令 cm = T[j](W-l); 5)③ III 令 T[j] = Sum; 5)④令sign為ca與cm異或;5)⑤令i = i-1 ;6)如果sign= 1,執行如下操作,即R = T+N 6)①令 ca = 0 ;6)②對j從0到Nwords,執行如下循環操作 6)② I 令{ca, T[j]} = T[j]+N[j]+ca0
3.—種RSA算法,其特徵在於,實現RSA模冪的蒙哥馬利算法中的模平方算法,具體算 法如下(k是R的字數)1)對i從0到k-1,執行如下循環操作 1)①令c = 0 ;1)②對 j 從 0 到 i-1,執行循環操作(c,T[j]) =T[j]+2*A[j]*A[i]+c; 1)③令(c,T[j]) = T[j]+A[j]*A[i]+c ; 1)④令(T[j+l],T[j]) =T[j]+c; 1)⑤令c = 0 ;1)⑥令 m = T
*nacc mod ff ; 1)⑦令(c,s) = T
+m*N
;1)⑧對 j 從 1 到 k-1,執行循環操作(c, T[j-1]) = T[j]+m*N[j]+c ;1)⑨令(c,T[k-l]) = T[k]+c ;1)⑩令 T[k] = T[k+l]+c ;1)(11)如果 T > N,則令 T = T-N ;2)返回T。
4.一種運行權利要求1所述RSA算法的IP核,包括接口模塊、控制模塊、存儲器模塊、 模冪模塊和模約減模塊;其中,控制模塊分別連接模約減模塊、存儲器模塊、模冪模塊和接 口模塊;模約減模塊分別連接模冪模塊、存儲器模塊;存儲器模塊分別連接模冪模塊、接口 模塊;接口模塊完成內外數據的交互,將RSA模乘和模冪的操作數送入存儲器模塊,同時向 控制模塊寫入控制指令,並讀出狀態寄存器的值;控制模塊實現最頂層的控制邏輯,負責啟動RSA運算;模約減模塊計算Mont2,並完成模冪和模乘後的取模減法調整;存儲器模塊存儲RSA需要計算的大數,中間結果和最終結果;模冪模塊完成RSA IP核的核心運算,即模冪和模乘運算。
5.根據權利要求4所述的IP核,其特徵在於,所述控制模塊通過接口模塊接受用戶的 指令,調度運算單元——模冪模塊和模約減模塊,完成整個RSA運算。
6.根據權利要求4所述的IP核,其特徵在於,所述控制模塊負責分配存儲單元給模 冪模塊,模約減模塊和接口模塊,在任一時刻只能有一個模塊訪問存儲器模塊,以免產生混舌L。
7.根據權利要求4所述的IP核,其特徵在於,所述ABmod N或A*B mod N整個運算的 控制邏輯被分為兩步1)輸入預計算指令RSA_RR,啟動Nacc根據大數N計算得到蒙哥馬利運算中需要的 N 0],然後啟動模約減模塊計算得到Mont2,最後啟動模冪模塊得到R2 mod N;2)根據模冪指令RSA_EXP,或模乘指令RSA_MUL,啟動模冪模塊進行相應的計算,計算 結果與N比較,如果比N大就啟動模約減模塊,執行取模減法運算。
8.根據權利要求4所述的IP核,其特徵在於,所述模冪模塊內設有ExpCtrl單元和連 接所述ExpCtrl單元的MMM單元;所述MMM單元內設有MMMCtrl單元和核心處理單元PE。
9.根據權利要求8所述的IP核,其特徵在於,所述ExpCtrl單元用於實現控制模塊 中指定的四種操作即EXP_EXP(模冪),EXP_MUL(模乘),EXP_MV(搬移),EXP_RR(計算 R2modN),使用RURightto Left,從右至左掃描)方式的二進位位掃描算法計算模冪,從低 位到高位讀入指數(EXP_EXP讀入B,EXP_RR讀入r),將整個模冪運算分解為乘法、平方、搬 移、比較四個最基本的操作,向MMM單元發出相應的指令。
10.根據權利要求8所述的IP核,其特徵在於,所述MMMctrl單元用於實現ExpCtrl單 元中指定的四個基本操作乘法、平方、搬移、比較;用於控制Cios蒙哥馬利模乘和模平方 的運算流程,從MEM模塊中讀取大數,根據ExpCtrl單元的指令,向PE傳遞正確的操作數, 執行(c,T) = T+XY+c,(c,T) = T+2XX+C 兩種運算。
11.根據權利要求8所述的IP核,其特徵在於,所述核心處理單元PE包括一個乘法器 WxW, 一個加法器W+W,以及一個4-2壓縮器,採用2級流水線設計。
12.根據權利要求10所述的IP核,其特徵在於,所述模乘器採用兩級流水線,第一級為用於計算Cios蒙哥馬利算法中的m = nacc*t0,xiyj = Xi*y」、以及IiiHi = n^m的32位乘法 器,第二級使用32位加法器,加法器前使用4-2壓縮器把四個操作數轉換成兩個操作數。
13.根據權利要求8所述的IP核,其特徵在於,所述控制核心處理單元PE中採用2W位 的單口 SRAM作為中間結果存儲器。
14.根據權利要求4所述的IP核,其特徵在於,所述存儲器模塊中使用SRAM存儲所有 操作數和計算結果。
全文摘要
本發明公開一種RSA算法及其IP核,涉及電子信息加密技術領域;所要解決的是RSA算法的IP核面積過大、運算速度較低的技術問題;該運行所述RSA算法的IP核,包括接口模塊、控制模塊、存儲器模塊、模冪模塊和模約減模塊;其中,控制模塊分別連接模約減模塊、存儲器模塊、模冪模塊和接口模塊;模約減模塊分別連接模冪模塊、存儲器模塊;存儲器模塊分別連接模冪模塊、接口模塊;本發明具有注重小面積,高性能,面向低端的RSA IP核;通過改進的加密算法,並選用合適的硬體結構,只需要較少的加法和存儲空間的特點。
文檔編號H04L9/32GK101834723SQ20091004731
公開日2010年9月15日 申請日期2009年3月10日 優先權日2009年3月10日
發明者周玉潔, 李佳璐 申請人:上海愛信諾航芯電子科技有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀