|
我們針對 RSA密碼系統設計一位元心脈式的電路來執行加、解密的過程。 在 RSA密碼系統中,加、解密的過程為模數指數運算,即將某一數取指數 次方後除以另一數求得餘數的運算,這個運算可以利用一連串的模數乘法 來完成,因此整個系統的運作瓶頸即在於如何快速地完成模數乘法運算。 利用 RSA密碼系統中,模數 N為兩個質數相乘因此必定為奇數的特性,我 們可採用Montgomery所提出的演算法來執行模數乘法運算,這種演算法與 一般所採用的以一連串的模數加法和移位動作來完成模數乘法的演算法比 較起來,免掉了試除比較的動作,因此可以較快地完成整個運算;不過這 種演算法的運算結果會落在較大的範圍 [0, 2N),因此需要再加以處理才 能夠使得結果移回正確的範圍,也就是[0, N)的範圍內。在此我們將演算 法的運算做些改變,使得在不增加硬體成本與運算時間的情況下,直接得 到正確的結果。改變後的演算法經由標準的轉化程序可得到一心脈式的模 數乘法器,此模數乘法器所需的電路面積與運算所需的時間與模數的位元 數成正比,而且還具有可拓展與控制電路簡單等特性,因此只需要兩組移 位暫存器與一個計數器即可完成模數指數的動作。整個設計經由電腦輔助 設計工具 CADENCE的協助,利用電通所的標準元件庫來完成512位元的RSA 密碼系統電路佈局,電路結果經模擬可達到24.3k的鮑率。
|