專利名稱:信息安全裝置、信息安全方法、計算機程序、計算機可讀取的記錄媒體及集成電路的制作方法
技術領域:
本發(fā)明涉及進行使用私鑰的公鑰加密處理及簽名處理的信息安全裝置 的耐篡改技術。
背景技術:
近年來,隨著信息通信技術的普及,信息安全技術的重要性顯著增加。 作為這樣的信息安全技術之一,加密技術為了進行隱私的保護及通信對方 的確認而使用。
但是,如果想要通過加密技術保護什么,則會出現(xiàn)想要將加密破解而 得到它的人。例如,利用加密處理時的計算時間及消耗功率等根據(jù)私鑰的 值而不同的特性求出私鑰的旁道攻擊成為問題(例如非專利文獻1)。
其中,作為代表性的問題,有對RSA加密方式、更準確地說是使用私 鑰的RSA簽名的簽名處理、或RSA加密的解密處理的簡單功率攻擊(SAP, Simple Power Analysis)。 RSA加密方式的主要的處理是以私鑰為冪的冪乘 運算,冪乘運算通過平方運算與乘法運算的反復進行來實現(xiàn)。在此情況下, 對應的私鑰的位是"0"時不進行乘法運算、僅在"1"時進行乘法運算, 所以在SPA中,根據(jù)通過消耗功率的波形判斷得到的乘法運算及平方運算 的序列信息來求出私鑰。
為了對抗該SPA,只要在私鑰的相應位是"0"的情況下也進行乘法運 算就可以。以下,對兩個具體的現(xiàn)有方法進行說明。
在第1方法中,當私鑰的相應位是"0"時與"1"相乘(例如非專利 文獻2)。由于即使與"l"相乘結果也不變化,所以與實質上不實施乘法運 算是相同的。這樣,由于不依存于私鑰的位值而進行乘法運算,所以不能 根據(jù)乘法運算的有無來求出私鑰。
此外,在對抗該SPA的第2方法中,進行控制,以使得不論位是"0"還是"1",都首先進行乘法運算,僅在位是"1"的情況下使用乘法運算結
果、在"0"的情況下不使用乘法運算結果(例如專利文獻1、專利文獻2)。 該方法也不依存于位值而進行乘法運算,所以不能根據(jù)乘法運算的有無來 求出私鑰。
非專利文獻l:現(xiàn)実O脅威「步,K于卞氺》解析」(1)(現(xiàn)實的威脅
"旁道攻擊解析"(l)),日經(jīng)工^夕卜口二夕7 2005.7.18號
非專利文獻2: "R S A喑號(D電力解析法〖::j:^)攻撃i:^cD対策"
(RSA加密的功率解析法的攻擊和其對策)(Power Analysis and Countermeasure of RSA Cryptosystem),電子情報通^[言學會論文誌A Vol. J88-A, No.5 2005
—一專禾U文獻3: R L. Montgomery, "Modular Multiplication without Trial Division," Mathematics of Computation, Vol.44, No. 170, pp.519-521 (1985)
專利文獻1:日本特開2000-165375號公報
專利文獻2:美國專利第6408075號公報
但是,在對抗SPA的上述第1方法,由于向乘法運算的輸入的一方是 在漢明重量(hammingweight)中有偏倚的"1",所以它對功率變化有影響而 能夠區(qū)別與"1"的相乘,有可能會被非法地解析。
此外,對于第2方法,以乘法運算時為目標,例如通過對電源電壓施 加尖峰噪聲等的、故意產(chǎn)生錯誤的錯誤攻擊,有可能解析私鑰。詳細地講, 如果在乘法運算時發(fā)生錯誤、其影響不在輸出中表現(xiàn)出來,則可以解析出 不使用結果的、即對應的私鑰的位是"0"。相反,如果錯誤的影響表現(xiàn)在 輸出中,則可以解析出私鑰的對應的位是"1"。該解析即使植入了作為對 錯誤攻擊的通常的對策的驗算(proof)功能也可能實現(xiàn)。
發(fā)明內容
所以,在本發(fā)明中,目的是在使用第l方法的情況下,解決上述問題, 提供一種能夠對抗SPA的信息安全裝置、信息安全方法、計算機程序、記 錄媒體及集成電路。另外,在本發(fā)明中,由于以第1方法為基礎,所以上 述第2方法的攻擊不再有意義。
為了達到上述目的,本發(fā)明是一種信息安全裝置,為了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算,對上述整數(shù)的各位的每個重復乘 法運算而計算冪乘值,進行上述輸入值的安全或可靠的處理,其特征在于, 具備判斷機構,判斷上述整數(shù)的1個位的值是否是0;以及乘法運算機構, 在判斷為所取得的位的值是0的情況下,進行使用對于值1的蒙哥馬利變 換值的乘法剩余運算。
根據(jù)該結構,由于使用與對于"1"的蒙哥馬利變換值之間的乘法剩余 運算,所以能夠避免在漢明重量中有偏倚的"1"的使用,能夠對抗SPA 而使非纟去的解析變得困難。
這里,也可以是,上述信息安全裝置是基于RSA方式將RSA密文解 密的RSA解密裝置、或基于RSA方式對簽名對象的消息進行簽名數(shù)據(jù)的 生成的RSA簽名裝置;該信息安全裝置還包括取得機構,取得RSA密 文作為上述輸入值,或者取得簽名對象的消息作為上述輸入值;存儲機構, 存儲有上述整數(shù)作為私鑰;以及輸出機構,作為從上述RSA密文解密而得 到的明文、或者作為對上述消息的簽名數(shù)據(jù),輸出計算出的上述冪乘值。
根據(jù)該結構,在基于RSA方式將RSA密文進行解密的RSA解密中, 以及,在基于RSA方式對簽名對象的消息進行簽名數(shù)據(jù)的生成的RSA簽 名中,能夠避免在漢明重量中有偏倚的"l"的使用,能夠使SPA的非法的 解析變得困難。
這里,也可以是,上述信息安全裝置具備取得機構,取得輸入值; 存儲機構,存儲有整數(shù);初始化機構,在保存運算結果的值的運算值變量 中保存初始值;提取機構,從上述存儲機構中,從上述整數(shù)的高位的位開 始提取1個位的值;平方運算機構,將根據(jù)保存在上述運算值變量中的值 的至少1次平方剩余運算而得到的值,覆蓋寫入至上述運算值變量;上述 判斷機構,判斷所取得的位的值是否是O;上述乘法運算機構,在判斷為所 取得的位的值是0的情況下,將根據(jù)保存在上述運算值變量中的值和對1 的蒙哥馬利變換值之間的乘法剩余運算而得到的值覆蓋寫入至上述運算值 變量,在判斷為是0以外的情況下,將根據(jù)保存在上述運算值變量中的值 和由上述輸入值決定的值之間的乘法剩余運算而得到的值,覆蓋寫入至上 述運算值變量;重復控制機構,對于上述整數(shù)的所有的位,對上述提取機 構、上述平方運算機構、上述判斷機構及上述乘法運算機構進行控制,以重復進行值的取得、平方剩余運算、判斷、和乘法剩余運算;以及輸出機 構,如果對上述整數(shù)的所有的位結束了上述重復,則輸出基于保存在上述 運算值變量中的值的值。
此外,也可以是,上述信息安全裝置具備取得機構,取得輸入值, 保存在輸入值變量中;存儲機構,存儲有整數(shù);初始化機構,在保存運算 結果的值的運算值變量中保存初始值;提取機構,從上述存儲機構中,從 上述整數(shù)的低位的位開始提取1個位的值;平方運算機構,將根據(jù)保存在 上述輸入值變量中的值的至少1次平方剩余運算而得到的值覆蓋寫入至上 述輸入值變量;上述判斷機構,判斷所取得的位的值是否是O;上述乘法運 算機構,在判斷為所取得的位的值是0的情況下,將根據(jù)保存在上述運算 值變量中的值和對1的蒙哥馬利變換值之間的乘法剩余運算而得到的值覆 蓋寫入至上述運算值變量,在判斷為是0以外的情況下,將根據(jù)保存在上 述運算值變量中的值和由上述輸入值變量決定的值之間的乘法剩余運算而 得到的值,覆蓋寫入至上述運算值變量;重復控制機構,對于上述整數(shù)的 所有的位,對上述提取機構、上述平方運算機構、上述判斷機構及上述乘 法運算機構進行控制,以重復進行值的取得、平方剩余運算、判斷、和乘 法剩余運算;以及輸出機構,如果對上述整數(shù)的所有的位結束了上述重復, 則輸出基于保存在上述運算值變量中的值的值。
信息安全裝置對應于實施方式的IC卡100,取得機構對應于輸入輸出 部102,存儲機構對應于私鑰保存部113,初始化機構對應于圖4的步驟 S102,提取機構對應于提取部122,平方運算機構對應于平方運算部115, 判斷機構對應于圖4的步驟S106,乘法運算機構對應于乘法運算部116, 重復控制機構對應于控制部114,輸出機構對應于蒙哥馬利逆變換部120 及輸入輸出部102。
根據(jù)這些結構,能夠進行從上述整數(shù)的高位的位開始或從低位的位開 始的運算。
這里,也可以是,上述信息安全裝置還包括蒙哥馬利變換機構,該蒙 哥馬利變換機構計算對于值1的蒙哥馬利變換值;上述乘法運算機構在上 述乘法剩余運算中,使用由上述蒙哥馬利變換機構計算出的蒙哥馬利變換 值。蒙哥馬利變換機構對應于第2蒙哥馬利變換部112。
根據(jù)該結構,通過蒙哥馬利變換機構計算對于值1的蒙哥馬利變換值,
乘法運算機構使用計算出的蒙哥馬利變換值,所以不進行多次對值1的蒙
哥馬利變換值的計算,而能夠削減運算次數(shù)。
這里,也可以是,上述信息安全裝置還具備模設定機構,設定上述 模的值;以及整數(shù)設定機構,隨機地選擇比上述模的有效位的數(shù)目大的整
數(shù)k;上述蒙哥馬利變換機構根據(jù)所設定的上述模的值,利用上述整數(shù)k,
計算上述蒙哥馬利變換值。
模設定機構對應于模設定部117,整數(shù)設定機構對應于整數(shù)設定部118。 根據(jù)該結構,由于在蒙哥馬利變換值的計算中使用比上述模的有效位
的數(shù)目大、而且是隨機地選擇的整數(shù)k,所以能夠進一步避免關于"1"的
漢明重量的偏倚。
這里,也可以是,上述蒙哥馬利變換機構在上述模下計算值2的k次 冪值,作為上述蒙哥馬利變換值。
根據(jù)該結構,能夠可靠地計算蒙哥馬利變換值。
這里,也可以是,上述蒙哥馬利變換機構在作為上述模的值的隨機倍 的模下計算值2的k次冪值,作為上述蒙哥馬利變換值。
根據(jù)該結構,能夠計算可進一步避免關于"1"的漢明重量的偏倚的蒙 哥馬利變換值。
這里,也可以是,上述信息安全裝置中,上述模設定機構進一步設定 作為上述模的值的隨機倍的模;上述蒙哥馬利變換機構在由模設定機構進 一步設定的上述模下計算值2的k次冪值。
根據(jù)該結構,能夠計算可進一步避免關于"1"的漢明重量的偏倚的蒙 哥馬利變換值。
這里,也可以是,上述整數(shù)設定機構每當取得輸入值時,隨機地變更 上述整數(shù)k的值。
根據(jù)該結構,能夠使利用了最初的輸入值的SPA的結果,在其他的輸 入值下的使用變得困難。
這里,也可以是,上述模設定機構每當取得輸入值時,隨機地變更在 上述蒙哥馬利變換機構中使用的上述模的值。根據(jù)該結構,能夠使利用了最初的輸入值的SPA的結果,在其他的輸 入值下的使用變得困難。
這里,也可以是,上述整數(shù)設定機構在上述重復的中途,隨機地變更 上述整數(shù)k的值。
根據(jù)該結構,能夠使重復的中途的過程中的SPA的結果,在重復的其 他過程中的使用變得困難。
這里,也可以是,上述模設定機構在上述重復的中途,隨機地變更在 上述蒙哥馬利變換機構中使用的上述模的值。
根據(jù)該結構,能夠使重復的中途的過程中的SPA的結果,在重復的其 他過程中的使用變得困難。
這里,也可以是,上述整數(shù)設定機構根據(jù)來自外部的指示,隨機地變 更上述整數(shù)k的值。
根據(jù)該結構,能夠使來自外部的指示之前的SPA的結果,在來自外部 的指示之后的使用變得困難。
這里,也可以是,上述模設定機構根據(jù)來自外部的指示,隨機地變更 在上述蒙哥馬利變換機構中使用的上述模的值。
根據(jù)該結構,能夠使來自外部的指示之前的SPA的結果,在來自外部 的指示之后的使用變得困難。
這里,也可以是,上述信息安全裝置還包括蒙哥馬利變換機構,該蒙 哥馬利變換機構計算對于上述輸入值的蒙哥馬利變換值;上述乘法運算機 構在判斷為所取得的位的值是0以外的情況下,利用由上述蒙哥馬利變換 機構計算出的上述蒙哥馬利變換值進行乘法剩余運算。
蒙哥馬利變換機構對應于第1蒙哥馬利變換部111。
根據(jù)該結構,在判斷為所取得的位的值是0以外的情況下,也能夠對 抗SPA而使非法的解析變得困難。
這里,也可以是,上述信息安全裝置還具備模設定機構,設定上述 模的值;以及整數(shù)設定機構,隨機地選擇比上述模的有效位的數(shù)目大的整 數(shù)k;上述蒙哥馬利變換機構基于設定的上述模的值,利用上述整數(shù)k,計 算上述蒙哥馬利變換值。
模設定機構對應于模設定部117,整數(shù)設定機構對應于整數(shù)設定部118。根據(jù)該結構,由于在蒙哥馬利變換值的計算中使用比上述模的有效位
的數(shù)目大、而且是隨機地選擇的整數(shù)k,所以能夠進一步避免關于輸入值的 漢明重量的偏倚。
這里,也可以是,上述蒙哥馬利變換機構在上述模下計算值2的k次 冪值,并將上述輸入值與計算出的值相乘得到的值,作為上述蒙哥馬利變 換值。
根據(jù)該結構,能夠可靠地計算出蒙哥馬利變換值。
這里,也可以是,上述蒙哥馬利變換機構在作為上述模的值的隨機倍 的模下計算值2的k次冪值,作為上述蒙哥馬利變換值。
根據(jù)該結構,能夠計算出進一步避免關于輸入值的漢明重量的偏倚的 蒙哥馬利變換值。
圖1是表示作為有關本發(fā)明的1個實施方式的內容再現(xiàn)系統(tǒng)1的結構 的系統(tǒng)結構圖。
圖2是表示IC卡100及DVD播放器200的結構的框圖。
圖3是表示公鑰解密部101的結構的框圖。
圖4是表示公鑰解密部101的高速冪乘剩余運算的動作的流程圖。
圖5是表示公鑰解密部101的另一高速冪乘剩余運算的動作的流程圖。
圖6是從私鑰的低位的位開始處理的情況下的公鑰解密部110的高速 冪乘剩余運算的動作的流程圖。
標號說明
1內容再現(xiàn)系統(tǒng)
10網(wǎng)絡
100 IC卡
101公鑰解密部
102輸入輸出部
111第1蒙哥馬利變換部
112第2蒙哥馬利變換部
113私鑰保存部114控制部
115平方運算部
116乘法運算部
117模設定部
118整數(shù)設定部
119設定控制部
120蒙哥馬利逆變換部
200 DVD播放器
201監(jiān)視器
202揚聲器
211通信部
212輸入輸出部
213解密部
214解密部
215再現(xiàn)部
216驅動部
300 DVD
400服務器裝置
具體實施例方式
對作為有關本發(fā)明的1個實施方式是內容再現(xiàn)系統(tǒng)1進行說明。 1、內容再現(xiàn)系統(tǒng)l的結構
內容再現(xiàn)系統(tǒng)1如圖1所示,由IC卡100、 DVD播放器200及服務器 裝置400構成。DVD播放器200及服務器裝置400經(jīng)由網(wǎng)絡10相互連接。
在DVD播放器200中,由使用者安裝DVD300。 DVD300如圖2所示, 記錄有加密內容301及加密內容密鑰302。加密內容301是利用內容密鑰對 由影像及聲音構成的內容實施加密算法AES (Advanced Encryption Standard:高級加密標準)而生成的,加密內容密鑰302是利用表示允許使 用上述內容的許可密鑰L對上述內容密鑰實施加密算、法AES而生成的。
服務器裝置400根據(jù)DVD播放器200的請求,利用IC卡100的使用者的公鑰(e、 p),對許可密鑰L實施加密算法RSA,生成加密許可密鑰C。 C=Le mod p
另外,關于RSA的公鑰的生成,由于是公知的,所以省略說明。
接著,服務器裝置400根據(jù)DVD播放器200的請求,將生成的加密許 可密鑰C經(jīng)由網(wǎng)絡10向DVD播放器200發(fā)送。
DVD播放器200如圖2所示,由通信部211、輸入輸出部212、解密 部213、解密部214、再現(xiàn)部215及驅動部216構成,在DVD播放器200 上連接著監(jiān)視器201及揚聲器202。
DVD播放器200的通信部211從服務器裝置400經(jīng)由網(wǎng)絡10接收加 密許可密鑰C。在DVD播放器200中,由使用者安裝IC卡100。 DVD播 放器200的輸入輸出部212將接收到的加密許可密鑰C向IC卡100輸出。
IC卡100由公鑰解密部101及輸入輸出部102構成。IC卡100的輸入 輸出部102從DVD播放器200獲取加密許可密鑰C,公鑰解密部101將作 為輸入數(shù)據(jù)獲取的加密許可密鑰C如后述那樣解密,作為輸出數(shù)據(jù)而生成 解密許可密鑰,輸入輸出部102將生成的解密許可密鑰向DVD播放器200 輸出。
DVD播放器200的輸入輸出部212從IC卡100獲取解密許可密鑰, 驅動部216從DVD300讀出加密內容301及加密內容密鑰302,解密部213 利用所獲取的解密許可密鑰將加密內容密鑰302解密而生成解密內容密鑰, 解密部214利用生成的解密內容密鑰將加密內容301解密而生成解密內容, 再現(xiàn)部215再現(xiàn)解密內容而生成影像信號及聲音信號,將生成的影像信號 向監(jiān)視器201輸出,將生成的聲音信號向揚聲器202輸出。
這里,IC卡100及DVD播放器200分別具體而言是由微處理器、ROM、 RAM等構成的計算機系統(tǒng)。在上述RAM中存儲有計算機程序。通過上述 微處理器按照上述計算機程序動作,各裝置實現(xiàn)其功能。
另外,在圖2中,表示DVD播放器200的各結構部的各塊通過連接線 與其他塊連接。但是,省略了一部分連接線。這里,各連接線表示傳遞信 號及信息的路徑。此外,連接在表示解密部213的塊上的多個連接線中的、 在連接線上描繪有鑰匙標志的連接線,表示向解密部213傳遞作為密鑰的 信息的路徑。對于表示解密部214的塊也同樣。200680038934.8
說明書第10/24頁
這里,IC卡100是通過在規(guī)定的模下對輸入值進行整數(shù)次冪的冪乘剩
余運算進行輸入值的安全的處理的信息安全裝置。
2、公鑰解密部101的結構
公鑰解密部101如圖3所示,由存儲部121 、第1蒙哥馬禾U(Montgomery) 變換部111、第2蒙哥馬利變換部112、私鑰保存部113、控制部114、平 方運算部115、乘法運算部116、模設定部117、整數(shù)設定部118、設定控 制部119及蒙哥馬利逆變換部120構成。
公鑰解密部101在內部中存儲有私鑰S和模p,將輸入數(shù)據(jù)C作為輸 入進行公鑰加密的計算,輸出計算結果的輸出數(shù)據(jù)M-CSmodp。這里,輸 出數(shù)據(jù)M是以私鑰S為冪、以p為模的輸入數(shù)據(jù)C的冪乘剩余運算值。 mod p表示用p除時的余數(shù)。另外,在本實施方式中,上述公鑰加密的計 算是RSA加密的解密處理。因而,輸入數(shù)據(jù)對應于密文C,輸出數(shù)據(jù)對應 于明文M。具體而言,輸入數(shù)據(jù)是上述加密許可密鑰,輸出數(shù)據(jù)是上述解 密許可密鑰。
公鑰解密部101從上述私鑰S的各位的高位開始,1位1位地重復進 行所設定的模下的蒙哥馬利區(qū)域中的平方運算和乘法運算一一即高速冪指 數(shù)運算。對公鑰解密部101的整體的動作在后面敘述。
(1)模設定部117、整數(shù)設定部118及設定控制部119
模設定部117通過設定控制部119的控制,設定在蒙哥馬利變換、平 方運算、乘法運算中使用的模p。模設定部117將設定后的模p向第1蒙哥 馬利變換部lll、第2蒙哥馬利變換部112、平方運算部115、乘法運算部 116及蒙哥馬利逆變換部120輸出。
整數(shù)設定部118通過設定控制部119的控制,隨機地設定比p的位的 數(shù)目大的整數(shù)k。另外,這里所謂的p的"位的數(shù)目"是p之中的從被設定 為值"l"的最高位的位的位置到最低位的位的位置的位長,是指所謂的"有 效位數(shù)"。整數(shù)設定部118將整數(shù)k向第l蒙哥馬利變換部111、第2蒙哥 馬利變換部112、平方運算部115、乘法運算部116及蒙哥馬利逆變換部120 輸出。
設定控制部119對整數(shù)設定部118控制整數(shù)k的設定范圍及設定變更 的定時。作為設定變更的定時的一例,設定控制部119可以每當輸入數(shù)據(jù)c的值變化時進行變更,也可以在輸入數(shù)據(jù)c的運算中途變更。
這里設定的整數(shù)k和模p在以后的蒙哥馬利變換、平方運算、乘法運 算及蒙哥馬利逆變換中使用。
(2)存儲部121、第1蒙哥馬利變換部111及第2蒙哥馬利變換部112 存儲部121從輸入輸出部102獲取輸入數(shù)據(jù)C,存儲所獲取的輸入數(shù) 據(jù)C。
第1蒙哥馬利變換部111從存儲部121讀出輸入數(shù)據(jù)C,從模設定部 117獲取模p,從整數(shù)設定部118獲取整數(shù)k。接著,使用輸入數(shù)據(jù)C、模 p及整數(shù)k,通過下式計算C的蒙哥馬利變換值B。
蒙哥馬利變換值B-CX (2k) modp
接著,第1蒙哥馬利變換部111將計算出的蒙哥馬利變換值B向控制 部114輸出。
此外,第2蒙哥馬利變換部112從模設定部117獲取模p,從整數(shù)設定 部118獲取整數(shù)k。接著,利用模p及整數(shù)k,通過下式計算"1"的蒙哥 馬利變換值A。
蒙哥馬利變換值A- (2k) modp
接著,第2蒙哥馬利變換部112將計算出的蒙哥馬利變換值A向控制 部114輸出。
另外,以后將蒙哥馬利變換記作Mon一^ p} PO。
<formula>formula see original document page 17</formula>
另外,變換函數(shù)的(k, p)表示蒙哥馬利變換值依存于整數(shù)k、模p。如 果使用該表示方法,則由第1蒙哥馬利變換部111輸出的蒙哥馬利變換值B 是Mon」k,p) (C),由第2蒙哥馬利變換部112輸出的蒙哥馬利變換值A 是Mon」k,p》(1)。(3) 私鑰保存部113
私鑰保存部113保存著公鑰加密的私鑰S。私鑰S為了確保安全性而 至少需要2048位以上。
(4) 提取部122、控制部114、平方運算部115及乘法運算部116 提取部122根據(jù)控制部114的指示,從保存于私鑰保存部113中的私
鑰S的各位的高位開始1位1位地提取,將提取出的位的值向控制部114 輸出。
控制部114從私鑰S的高位開始對1位重復進行平方運算和乘法運算 的處理。例如,在私鑰是2048位的情況下重復2048次平方運算和乘法運 算的處理。在重復結束后,蒙哥馬利逆變換部120對其運算結果進行蒙哥 馬利逆變換,公鑰解密部101輸出M=Csmodp。
控制部114進行上述重復控制,并且,當私鑰的相應位是"l"時選擇 第1蒙哥馬利變換部111的輸出值,當"O"時選擇第2蒙哥馬利變換部112 的輸出值。
平方運算部115及乘法運算部116分別執(zhí)行蒙哥馬利區(qū)域中的平方運 算及乘法運算。
這里的蒙哥馬利區(qū)域的乘法運算是用來對變換到蒙哥馬利區(qū)域的兩個 輸入值、例如Mon」k, p} (X)和Mon—{k, p} (Y)之積進行蒙哥馬利約簡 (Montgomery reduction)處理,求出蒙哥馬利區(qū)域的乘法運算結果Mon—{k, p} (Z)=Mon_{k,p} (XXY)的運算。平方運算對應于上述X與Y相同的情況。
這里,蒙哥馬利約簡處理是將倍長值U (在上述中是XXY)不進行除 法而高速地實現(xiàn)1:乂(2"-1 modp的運算的方法。關于蒙哥馬利約簡的詳細 情況詳見例如非專利文獻3。
另外,假設在位的數(shù)目是2048位的情況下,通過2048位的乘法運算 器實現(xiàn)平方運算部115和乘法運算部116的安裝規(guī)模變得巨大,是不現(xiàn)實 的。因此, 一般通過重復使用例如32位左右的乘法運算器的多倍長運算方 法實現(xiàn)。
(5) 蒙哥馬利逆變換部120
蒙哥馬利逆變換部120對蒙哥馬利區(qū)域中的平方運算與乘法運算的重 復進行的最終結果實施蒙哥馬利逆運算,求出輸出數(shù)據(jù)M。以后,將蒙哥馬利逆運算表示為
<formula>formula see original document page 19</formula>
Mon一(k,p〉"(X)-XX(2k;r1 modp (式2)
另外,關于蒙哥馬利變換和蒙哥馬利逆運算,式3成立。
<formula>formula see original document page 19</formula> (式3 )
蒙哥馬利逆變換部120將輸出數(shù)據(jù)M向輸入輸出部102輸出。 3、公鑰解密部101的動作
利用圖4所示的流程圖,對公鑰解密部101的高速冪乘剩余運算的動 作進行說明。
模設定部117決定模p,整數(shù)設定部118決定整數(shù)k,第l蒙哥馬利變 換部111計算蒙哥馬利變換值B《X (2k)modp,第2蒙哥馬利變換部112 計算蒙哥馬利變換值A- (2k) modp (步驟SIOI)。
控制部114選擇第2蒙哥馬利變換部112的蒙哥馬利變換值A,在作 為設在保存運算結果的值的運算值區(qū)域中的變量的、運算結果W中,寫入 作為初始值而選擇的蒙哥馬利變換值A。
<formula>formula see original document page 19</formula> (步驟S102)
控制部114通過提取部122從保存于私鑰保存部113中的私鑰S的最 高位開始嘗試1位1位地進行提取(步驟S103)。
從私鑰S的最高位的位到最低位的位,結束上述提取后(步驟S104中 是),控制部114對蒙哥馬利逆變換部120進行控制以使其進行運算結果W 的蒙哥馬利逆運算,蒙哥馬利逆變換部120對運算結果W實施蒙哥馬利逆 運算,生成輸出數(shù)據(jù)M。
<formula>formula see original document page 19</formula>接著,蒙哥馬利逆變換部120將輸出數(shù)據(jù)M向輸入輸出部102輸出。 這里,是MK:Smodp (步驟S109)。這樣,公鑰解密部101的高速冪乘剩 余運算結束。
在提取沒有結束的情況下(步驟S104中否),控制部114對平方運算 部115進行控制以使其將運算結果W在蒙哥馬利區(qū)域中平方運算,平方運 算部115將運算結果W在蒙哥馬利區(qū)域中平方運算,將其平方運算值覆蓋 寫入至運算結果W。
W=Mon—{k, p} (W X W)(步驟S105 )。
接著,控制部114判斷所提取的位是"1"還是"0",當從私鑰S提取 的該位是"l"時(步驟S106),選擇由第l蒙哥馬利變換部lll輸出的蒙 哥馬利變換值B,對乘法運算部116控制以使其計算蒙哥馬利乘法運算, 乘法運算部116將運算結果W與由第1蒙哥馬利變換部111輸出的蒙哥馬 利變換值B=Mon—{k, p} (C)相乘,將得到的值覆蓋寫入至運算結果W。
W=Mon_{k,p} (WXB)(步驟S107)。
接著,控制部114將控制向步驟S103轉移。
另一方面,當從私鑰S提取的該位是"0"時,控制部114選擇第2蒙 哥馬利變換部112的輸出值,對乘法運算部116控制以使其計算蒙哥馬利 乘法運算,乘法運算部116將運算結果W與作為第2蒙哥馬利變換部112 的輸出值的A=Mon—{k,p} (l)相乘,將得到的值覆蓋寫入至運算結果W。
W=Mon—{k,p} (WXA)(步驟S108)。
接著,控制部114將控制向步驟S103轉移。 3、實施方式的效果
首先,由圖4所示的流程圖可知,不論私鑰S的相應位是"l"還是"O",乘法運算部116都一定動作。因此,作為通過乘法運算的有無來進行解析 的SPA是很困難的。
在本實施方式中,在私鑰的相應位是"0"的情況下的乘法運算中使用 蒙哥馬利區(qū)域中的"1"(標記為Mon—{k,p} (l))。該蒙哥馬利區(qū)域中的"1" 由于是依存于整數(shù)k和模p而決定的值,所以不知道k及p的攻擊者不能 預測漢明重量。因此,判別蒙哥馬利區(qū)域中的"l"而進行解析是很困難的。
此外,在萬一漢明重量被攻擊者求出的情況下,判別蒙哥馬利區(qū)域中 的"1"的解析也許會成功。在本實施方式中,還在模p的位的數(shù)目以上的 限制的基礎上,通過任意地變更整數(shù)k,漢明重量也變更。由此,解析變得 更加困難。
另外,該變更定時越頻繁、并且該整數(shù)k可取的變化越多,區(qū)別假乘 法運算越困難,安全性越提高。但是,如果將k胡亂地取較大,則1次的 平方運算及乘法運算的處理時間一般會增加,所以設為具有怎樣程度的變 化的k的大小、或者怎樣設定變更的定時,依據(jù)應用所需要的速度和安全 性來決定。圖3中的設定控制部119進行它們的控制。
4、其他變形例
另外,對于上述實施方式說明了本發(fā)明,但本發(fā)明當然并不限于上述 實施方式。以下這樣的情況也包含在本發(fā)明中。
(1)利用圖5所示的流程圖對公鑰解密部101的與上述不同的高速冪 乘剩余運算的動作進行說明。
模設定部117設定模p。這里,模p例如是512位的秘密的素數(shù)。此外, 模設定部117設定比p大的任意的2的冪乘值R。例如,生成隨機數(shù)k,設 R=2k。例如,是11=2512。此外,模設定部117生成隨機數(shù)r (步驟S201)。
接著,第2蒙哥馬利變換部112計算蒙哥馬利變換值y。
y=M(l)=R mod p=R—p
y是設在用來保存運算結果的值的運算值區(qū)域中的變量。
另外,這里,將"Mon—{k, p} (l)"更簡略地表現(xiàn)為"M(l)(步驟S202)。
控制部114通過提取部122從保存于私鑰保存部113中的私鑰S的最高位開始1位1位地嘗試提取(步驟S203)。從私鑰S的最高位的位到最低位的位,提取結束后(步驟S204中是), 輸出y (步驟S209),公鑰解密部101的高速冪乘剩余運算結束。在提取沒有結束的情況下(步驟S204中否),平方運算部115進行下 式的平方運算。y^yXy〉XR" modrXp (步驟S205)。接著,控制部114判斷所提取的位是"1"還是"0",當從私鑰S提取 的該位是"l"時(步驟S206),乘法運算部116進行下式的乘法運算。y= {y X M(C)} X R國1 mod r X p (步驟S207 )。 接著,控制部114將控制向步驟S203轉移。另一方面,當從私鑰S提取的該位是"O"時,乘法運算部116進行下 式的乘法運算。"(yXM(l)〉XR"modrXp (步驟S208)。接著,控制部114將控制向步驟S103轉移。在該變形例中,公鑰解密部101不包含蒙哥馬利逆變換部120。 (2)整數(shù)k的變更定時也可以是每當輸入數(shù)據(jù)時。即,如果取得第l 輸入數(shù)據(jù),則隨機地變更整數(shù)k的值,如果接著取得第2輸入數(shù)據(jù),貝瞎 隨機地變更整數(shù)k的值,如果再取得第3輸入數(shù)據(jù),則再隨機地變更整數(shù)k 的值。此外,也可以對多個輸入數(shù)據(jù)使用相同的k。也可以對接著的多個輸入 數(shù)據(jù)使用另外的相同的整數(shù)。此外,也可以在某個輸入數(shù)據(jù)的運算的中途(重復的中途)隨機地變 更。此外,也可以以應用或用戶從外部指示的定時隨機地變更。關于在第1及第2蒙哥馬利變換部中使用的模,也與上述同樣,也可以按照每個輸入數(shù)據(jù)隨機地變更,也可以對多個輸入數(shù)據(jù)使用相同的模, 也可以對接著的多個輸入數(shù)據(jù)使用其他的相同的整數(shù),或者也可以在輸入 數(shù)據(jù)的運算的中途(重復的中途)隨機地變更,也可以以應用或用戶從外 部指示的定時隨機地變更。(3) (a)也可以使用p的隨機倍作為模,求出第2蒙哥馬利變換部112 的輸出。即,模設定部117生成隨機數(shù)r,將生成的隨機數(shù)r向第2蒙哥馬 利變換部112輸出。第2蒙哥馬利變換部112輸出2kmod (rXp)。由此,區(qū)別出使用了第1蒙哥馬利變換部111或第2蒙哥馬利變換部 112的哪個變得更加困難,安全性提高。此時,第2蒙哥馬利變換部112的模既可以是原樣的p,也可以是另外 的隨機倍。這樣,也可以對第1蒙哥馬利變換部111的模和第2蒙哥馬利變換部 112的模獨立地設定。另外,蒙哥馬利逆變換部120的模是p的原狀。(b) 此外,也可以將在第1蒙哥馬利變換部111中使用的模設為p的 隨機倍。此時,第2蒙哥馬利變換部112的模既可以是p的原狀,也可以 是另外的隨機倍。另外,蒙哥馬利逆變換部120的模是p的原狀。由此, 對于計算1個輸入數(shù)據(jù)的運算中的多個部位的功率變化間的相關性的攻擊 提高了安全性。此外,也可以首先求出p的隨機倍作為新的模之后、使用它進行第1 蒙哥馬利變換部lll、第2蒙哥馬利變換部112、以及平方運算部115或乘 法運算部116中的計算。但是,在此情況下,為了得到設定的模的原來的 最終輸出,需要在輸出之前用模p進行剩余運算后進行輸出。(c) 在上述(a)、 (b)中,在第l蒙哥馬利變換部lll中使用p的隨 機倍的模(第1模),在第2蒙哥馬利變換部112中使用p的另外的隨機倍 的模(第2模)的情況下,即第1模與第2模不同的情況下,只要設平方 運算部115和乘法運算部116中使用的模為第1模與第2模的公倍數(shù)、設在蒙哥馬利逆變換部120中使用的模是p的原狀就可以。
(4) 也可以將輸入數(shù)據(jù)及輸出數(shù)據(jù)設為蒙哥馬利區(qū)域的值。在此情況 下,在實施方式中包括的、第1蒙哥馬利變換部111與蒙哥馬利逆變換部 120也可以安裝在公鑰解密部101之外。這是作為例如較大的系統(tǒng)之中的一 部分而安裝公鑰解密部101、不僅是公鑰加密的運算、將全部在蒙哥馬利區(qū) 域中安裝的情況。
(5) 在本實施方式中采用將私鑰1位1位地處理的高速二進制冪乘剩 余運算,但并不僅限于每次1位的處理。
例如,如果是每兩位的處理,則通過平方運算部115進行兩次平方運 算、由控制部114對應于私鑰的兩個位選擇來自4種蒙哥馬利變換部的輸 出值、用乘法運算部116乘以所選擇的輸出值。
另外,該4種蒙哥馬利變換部中的一個為"1"的蒙哥馬利變換部(即, 求出假乘法運算的輸入值的部分),在私鑰的該兩位兩者都是"0"的情況 下被選擇。
這里,當兩位是"00"時,對應的蒙哥馬利變換部輸出"1"的蒙哥馬 利變換值,當兩位是"01"時,對應的蒙哥馬利變換部輸出"C"的蒙哥馬 利變換值。此外,當兩位是"10"時,對應的蒙哥馬利變換部輸出"C2" 的蒙哥馬利變換值,當兩位是"11"時,對應的蒙哥馬利變換部輸出"C3" 的蒙哥馬利變換值。
當然,在每3位以上地處理私鑰的情況下,也能夠通過將上述情況擴 展使用來實現(xiàn)。
此外,在本實施方式中,使用了從高位開始處理私鑰的算法,但也可 以是從低位開始處理的結構。在此情況下,將對應于輸入數(shù)據(jù)的蒙哥馬利 變換值重復平方運算,當私鑰的對應的位是1時,乘以上述平方運算值, 當是C時,與本實施方式同樣,進行使用由整數(shù)k和模p求出的值的假乘 法運算。
對于此情況下的公鑰解密部101的高速冪乘剩余運算的動作,以與圖4 的不同點為中心,利用圖6所示的流程圖進行說明。
代替圖4所示的步驟S103,在步驟S103a中,控制部114通過提取部 122從保存于私鑰保存部113中的私鑰S的最低位開始1位1位地嘗試提取。
如果從私鑰S的最低位的位到最高位的位上述提取結束(步驟S104a 中是),控制部114對蒙哥馬利逆變換部120控制以使其進行運算結果W 的蒙哥馬利逆運算。
在提取沒有結束的情況下(步驟S104a中否),代替圖4所示的步驟 S105,在步驟S105a中,控制部114對平方運算部115控制以使其將輸入 數(shù)據(jù)C在蒙哥馬利區(qū)域中進行平方運算,平方運算部115將輸入數(shù)據(jù)C在 蒙哥馬利區(qū)域中進行平方運算,將該平方運算值覆蓋寫入至輸入數(shù)據(jù)C。
C=Mon—{k, p} (CXC)
(6)在本實施方式中,通過RSA加密的解密處理進行了說明,但也 可以如下所示那樣應用在RSA簽名的簽名生成中。
進行RSA的密鑰生成。RSA的密鑰生成與RSA加密的情況相同,所 以省略詳細情況。
這里,設私鑰為d、設公鑰為e、 p。
簽名生成裝置通過下式對文本m生成簽名數(shù)據(jù)s。
s=h(m)d mod p
這里,h()是單向性的哈希函數(shù)。
本發(fā)明在上述簽名生成裝置中與上述實施方式同樣地應用。上述簽名 生成裝置是通過在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算、進行輸 入值的可靠的處理的信息安全裝置。
另外,簽名驗證裝置通過下式進行簽名的驗證。
h(m)= se mod p
此外,本發(fā)明在RSA加密的加密處理中,可以在隱秘公鑰的應用的情 況下使用。進而,也可以作為橢圓曲線加密或超橢圓曲線加密中的、使用私鑰的處理的SAP對策使用。(7)上述實施方式及變形例在以下所示那樣的情況下適用。 (a)實施方式及變形例在秘密的消息傳送中應用。在本實施方式中,作為秘密的消息傳送的一例,對秘密地傳送許可密 鑰的情況進行說明。如上所述,IC卡100是通過在規(guī)定的模下將輸入值進行整數(shù)次冪的冪 乘剩余運算、進行輸入值的安全的處理的信息安全裝置。這里,所謂的"安 全",是指進行保密以使得消息不會被發(fā)送者及接收者以外的第三者知道。本發(fā)明在由內容加密裝置和內容再現(xiàn)裝置構成的內容分發(fā)系統(tǒng)中適 用,例如也可以以電影、動態(tài)圖像、聲音、音樂、小說、數(shù)據(jù)庫等的數(shù)字 信息為秘密通信的對象。這些內容通過從內容供給者對利用者銷售或租借 記錄有這些內容的記錄媒體而提供。此外,經(jīng)由數(shù)字廣播或因特網(wǎng)從內容 供給者對使用者提供。內容供給者所具有的內容加密裝置將作為數(shù)字作品的電影加密而記錄 在DVD中。使用者所具有的內容再現(xiàn)裝置從DVD讀出加密數(shù)字作品,解 密而生成電影,將生成的電影作為聲音及影像再現(xiàn),顯示及輸出。在上述的例子中,也可以將用來將內容加密及解密的內容密鑰作為實 施方式所示的秘密通信的對象。在此情況下,內容密鑰與實施方式所示的 方法同樣被加密并解密。在此情況下,內容通過內容密鑰使用共用密鑰加密方式被加密、解密。也可以應用在以下所示那樣的金錢的結算系統(tǒng)中。例如,將能夠代替貨幣使用的電子貨幣作為秘密通信對象,IC卡存儲 有電子貨幣,當使用者購入商品時,IC卡將對應于商品的購入額的電子貨 幣加密并發(fā)送,并且從存儲在內部中的電子貨幣中減去已發(fā)送的量。設置 在商店內的出納裝置接收加密電子貨幣,將接收到的電子貨幣解密而再現(xiàn) 電子貨幣并存儲。此外,也可以是,代替上述IC卡,用來利用美術館或博物館等的各種 設施的IC卡類型的電子錢包如上述那樣存儲相當于電子貨幣的信息。也可 以是,設在各種設施的入口的入場管理裝置請求對應于各種設施的使用費用的金額的電子貨幣,上述電子錢包將所請求的金額的電子貨幣加密并發(fā) 送,入場管理裝置接收加密電子貨幣,將接收到的加密電子貨幣解密而生 成電子貨幣并存儲。此外,也可以是,在利用鐵路、公共汽車等的交通工具時使用的IC卡 型的ic卡乘車券如上述那樣存儲有相當于電子貨幣的信息。設在交通工具 的車站的入口的入場管理裝置發(fā)送識別該車站的識別信息,IC卡乘車券接 收上述識別信息并存儲。設在交通工具的車站的出口的出場管理裝置從IC卡乘車券接收上述識別信息,利用接收到的識別信息和設置有該出場管理 裝置的車站,通過費用表計算乘車費用,請求對應于計算出的乘車費用的金額的電子貨幣,IC卡乘車券將所請求的金額的電子貨幣加密并發(fā)送,出場管理裝置接收加密電子貨幣,將接收到的加密電子貨幣解密,生成電子 貨幣并存儲。(b) 實施方式及變形例在認證中適用。所謂認證,是消息是否由如其 所自稱的人物發(fā)送、并且消息是否未被篡改的驗證。此外,實施方式及變 形例在身份的證明中適用。所謂的身份的證明,例如是具有向數(shù)據(jù)的訪問 權、或向設施的訪問權(入室權)的證明,或者是符合如自己所主張的人 物的證明。進而,實施方式及變形例在否認防止中適用。所謂否認防止, 是指對例如實際已同意某事但又主張不同意的人的對抗。在上述變形例中,作為認證的一例,對RSA數(shù)字簽名進行了說明。本 發(fā)明在上述簽名生成裝置中與上述實施方式同樣地適用。上述簽名生成裝 置是通過在規(guī)定的模下將輸入值進行整數(shù)次冪的冪乘剩余運算而進行輸入 值的可靠的處理的信息安全裝置。這里,所謂的"可靠",例如是消息由如其所自稱的人物發(fā)送、且消息 沒有被篡改。此外,例如是具有向數(shù)據(jù)的訪問權、具有向設施的訪問權(入 室權)、或如其自己所主張的人物。(c) 實施方式及變形例在密鑰交換(也稱作密鑰共用)中適用。所謂 的密鑰交換,例如是兩個人使用廣播電波并同意在某個私鑰加密方式中使 用的私鑰。作為密鑰交換的典型的方法,有稱作DH (Diffie-Hellman)密鑰交換 的方法。這里,相互交換密鑰的各自任意地生成秘密的冪數(shù),使用它進行冪乘運算。
在此時的冪乘運算中適用本發(fā)明,能夠將秘密的冪數(shù)隱匿而共享共用 密鑰。
(d) 實施方式及變形例在零知識證明中適用。所謂的零知識證明,例 如是某個人將成功地解決了數(shù)理或組合論問題的情況,連解是什么的很少 的信息都不給予,而使其他人相信該情況。
(e) 如上所述,本發(fā)明可以在采用使用秘密的冪值的冪乘運算的協(xié)議 方式中使用。
(8)本發(fā)明是使用輸入數(shù)據(jù)和私鑰、重復進行設定的模下的乘法運算
而進行冪乘剩余運算的信息安全裝置。上述信息安裝裝置具備求出對應
于上述輸入數(shù)據(jù)的蒙哥馬利變換值的第1蒙哥馬利變換部;求出1的蒙哥 馬利變換值的第2蒙哥馬利變換部;如果私鑰的位是0則選擇上述第2蒙 哥馬利變換部的輸出、否則選擇上述第1蒙哥馬利變換部的輸出的控制部; 和利用到此為止計算的結果和由上述控制部選擇的值來進行乘法運算的乘 法運算部,當設上述模為p、比p的有效位的數(shù)目大的整數(shù)為k時,上述第 2蒙哥馬利變換部輸出以上述p為模、以上述k為冪的2的冪乘值。根據(jù)該 信息安全裝置,第2蒙哥馬利變換部的輸出(蒙哥馬利區(qū)域中的l)依存于 整數(shù)k和模p而決定。因此,在漢明重量中沒有偏倚,利用功率變化來區(qū) 別作為乘法運算的輸入是使用了第1蒙哥馬利變換部的輸出、還是使用了 第2蒙哥馬利變換部的輸出是很困難的。
這里,也可以構成為具備隨機地選擇比上述p的有效位的數(shù)目大的整 數(shù)k的整數(shù)k設定部。根據(jù)該結構,第2蒙哥馬利變換部的輸出依存于隨 機地選擇的整數(shù)k而變化。因此,對于遍及多個數(shù)據(jù)計算功率變化的相關 性的攻擊提高了安全性。
這里,也可以構成為上述第2蒙哥馬利變換部輸出以上述p的隨機倍 為模、以上述k為冪的2的冪乘值。根據(jù)該結構,第2蒙哥馬利變換部的 輸出依存于隨機地選擇的模的值而變化。因此,對于遍及多個數(shù)據(jù)計算功 率變化的相關性的攻擊提高了安全性。
這里,也可以構成為上述第1蒙哥馬利變換部以上述p的隨機倍為模、 輸出對應于上述輸入數(shù)據(jù)的蒙哥馬利變換值。根據(jù)該結構,第1蒙哥馬利變換部的輸出依存于模的變化而變化。因此,對于計算1個輸入數(shù)據(jù)的運 算中的多個部位的功率變化間的相關性的攻擊提高了安全性。
這里,也可以構成為,具備將上述p的隨機倍重新作為模的模變更部,
利用設定的模通過上述第1蒙哥馬利變換部、第2蒙哥馬利變換部及上述 乘法運算部處理規(guī)定的計算。根據(jù)該結構,依存于由變更部變更的模,不 僅第l蒙哥馬利變換部、第2蒙哥馬利變換部,在乘法運算部中使用的模 也被變換,所以功率變化與私鑰的相關性變得更小,安全性提高。
這里,也可以構成為,根據(jù)來自外部的指示變更上述整數(shù)k或上述模。 根據(jù)該結構,通過以外部的應用或用戶指定的定時使整數(shù)k或模變化,能 夠實現(xiàn)具有對應于該定時的性能和安全性的信息安全裝置。
(9) 上述各裝置具體而言是由微處理器、ROM、 RAM等構成的計算 機系統(tǒng)。在上述RAM中存儲有計算機程序。這里,計算機程序是為了實 現(xiàn)規(guī)定的功能、組合多個表示對計算機的指令的命令代碼而構成的。通過 上述微處理器按照上述計算機程序動作,各裝置實現(xiàn)其功能。即,上述微 處理器將包含在上述計算機程序中的各命令1個1個地讀出,將讀出的命 令解讀,按照解讀結果動作。
(10) 構成上述各裝置的結構要素的一部分或全部也可以由1個系統(tǒng) LSI (Large Scale Integration:大規(guī)模集成電路)構成。系統(tǒng)LSI是將多個結 構部集成在1個芯片上而制造的超多功能LSI,具體而言是包括微處理器、 ROM、 RAM等而構成的計算機系統(tǒng)。在上述RAM中存儲有計算機程序。 通過上述微處理器按照上述計算機程序動作,系統(tǒng)LSI實現(xiàn)其功能。
此外,構成上述各裝置的結構要素的各部也可以單獨地單芯片化、也 可以包含一部分或全部而單芯片化。此外,這里設為LSI,但根據(jù)集成度的 差異,也有稱作IC、系統(tǒng)LSI、超(super)LSI、甚(ultra)LSI的情況。
此外,集成電路化的方法并不限于LSI,也可以通過專用電路或通用處 理器實現(xiàn)。也可以利用在LSI制造后能夠編程的FPGA(Field Programmable Gate Array:現(xiàn)場可編程門陣列)及可對LSI內部的電路單元的連接及設定 進行再構成的可重構處理器。
進而,如果因半導體技術的進步或派生的其他技術而出現(xiàn)代替LSI的 集成電路化的技術,貝U當然也可以利用該技術進行功能塊的集成化。有可能是生物技術的應用等。(11 )構成上述各裝置的結構要素的一部分或全部也可以由相對于各裝置可拆裝的IC卡或單體的模塊構成。上述IC卡或上述模塊是由微處理 器、ROM、 RAM等構成的計算機系統(tǒng)。上述IC卡或上述模塊也可以包括 上述超多功能LSI。通過微處理器按照計算機程序動作,上述IC卡或上述 模塊實現(xiàn)其功能。該IC卡或該模塊也可以具有耐篡改性。(12) 本發(fā)明也可以是上述所示的方法。此外,也可以是通過計算機 實現(xiàn)這些方法的計算機程序,也可以是由上述計算機程序構成的數(shù)字信號。此外,本發(fā)明也可以是將上述計算機程序或上述數(shù)字信號記錄在計算 機可讀取的記錄媒體——例如軟盤、硬盤、CD-ROM、 MO、 DVD、 DVD-ROM、 DVD-RAM、 BD (Blu-ray Disc:藍光光盤)、半導體存儲器等 中而成的產(chǎn)品。此外,也可以是記錄在這些記錄媒體中的上述計算機程序 或上述數(shù)字信號。此外,本發(fā)明也可以是將上述計算機程序或上述數(shù)字信號經(jīng)由電氣通 信線路、無線或有線通信線路、以因特網(wǎng)為代表的網(wǎng)絡、數(shù)據(jù)廣播等傳送 的系統(tǒng)。此外,本發(fā)明也可以是具備微處理器和存儲器的計算機系統(tǒng),上述存 儲器存儲有上述計算機程序,上述微處理器按照上述計算機程序動作。此外,也可以通過將上述程序或上述數(shù)字信號記錄在上述記錄媒體中 并移送,或者通過將上述程序或上述數(shù)字信號經(jīng)由上述網(wǎng)絡等移送,由獨 立的其他計算機系統(tǒng)實施。(13) 也可以將上述實施方式及上述變形例分別組合。 工業(yè)實用性本發(fā)明的信息安全裝置及信息安全方法在使用私鑰實現(xiàn)公鑰加密運算 及簽名運算的加密模式中、特別是如IC卡或安全卡那樣有可能傳到解讀者 一方的手中、進行SPA等的攻擊的情況下使用。構成本發(fā)明的各裝置可以在需要秘密的消息傳送及認證的所有產(chǎn)業(yè)中 經(jīng)營性地、并持續(xù)性地及反復地使用。此外,構成本發(fā)明的各裝置可以在 電器設備制造產(chǎn)業(yè)中經(jīng)營性地、并持續(xù)性地及反復地制造、銷售。
權利要求
1、一種信息安全裝置,為了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算,對上述整數(shù)的各位的每個重復乘法運算而計算冪乘值,進行上述輸入值的安全或可靠的處理,其特征在于,具備判斷機構,判斷上述整數(shù)的1個位的值是否是0;以及乘法運算機構,在判斷為所取得的位的值是0的情況下,進行使用對于值1的蒙哥馬利變換值的乘法剩余運算。
2、 如權利要求1所述的信息安全裝置,其特征在于, 上述信息安全裝置是基于RSA方式將RSA密文解密的RSA解密裝置、或基于RSA方式對簽名對象的消息進行簽名數(shù)據(jù)的生成的RSA簽名裝置; 該信息安全裝置還包括取得機構,取得RSA密文作為上述輸入值,或者取得簽名對象的消息 作為上述輸入值;存儲機構,存儲有上述整數(shù)作為私鑰;以及輸出機構,作為從上述RSA密文解密而得到的明文、或者作為對上述 消息的簽名數(shù)據(jù),輸出計算出的上述冪乘值。
3、 如權利要求1所述的信息安全裝置,其特征在于, 上述信息安全裝置具備取得機構,取得輸入值; 存儲機構,存儲有整數(shù);初始化機構,在保存運算結果的值的運算值變量中保存初始值; 提取機構,從上述存儲機構中,從上述整數(shù)的高位的位開始提取1個 位的值;平方運算機構,將根據(jù)保存在上述運算值變量中的值的至少1次平方 剩余運算而得到的值,覆蓋寫入至上述運算值變量; 上述判斷機構,判斷所取得的位的值是否是O;上述乘法運算機構,在判斷為所取得的位的值是0的情況下,將根據(jù) 保存在上述運算值變量中的值和對1的蒙哥馬利變換值之間的乘法剩余運 算而得到的值覆蓋寫入至上述運算值變量,在判斷為是0以外的情況下, 將根據(jù)保存在上述運算值變量中的值和由上述輸入值決定的值之間的乘法剩余運算而得到的值,覆蓋寫入至上述運算值變量;重復控制機構,對于上述整數(shù)的所有的位,對上述提取機構、上述平 方運算機構、上述判斷機構及上述乘法運算機構進行控制,以重復進行值 的取得、平方剩余運算、判斷、和乘法剩余運算;以及輸出機構,如果對上述整數(shù)的所有的位結束了上述重復,則輸出基于 保存在上述運算值變量中的值的值。
4、 如權利要求1所述的信息安全裝置,其特征在于, 上述信息安全裝置具備-取得機構,取得輸入值,保存在輸入值變量中; 存儲機構,存儲有整數(shù);初始化機構,在保存運算結果的值的運算值變量中保存初始值; 提取機構,從上述存儲機構中,從上述整數(shù)的低位的位開始提取1個 位的值;平方運算機構,將根據(jù)保存在上述輸入值變量中的值的至少1次平方 剩余運算而得到的值覆蓋寫入至上述輸入值變量; 上述判斷機構,判斷所取得的位的值是否是O;上述乘法運算機構,在判斷為所取得的位的值是0的情況下,將根據(jù) 保存在上述運算值變量中的值和對1的蒙哥馬利變換值之間的乘法剩余運 算而得到的值覆蓋寫入至上述運算值變量,在判斷為是0以外的情況下, 將根據(jù)保存在上述運算值變量中的值和由上述輸入值變量決定的值之間的 乘法剩余運算而得到的值,覆蓋寫入至上述運算值變量;重復控制機構,對于上述整數(shù)的所有的位,對上述提取機構、上述平 方運算機構、上述判斷機構及上述乘法運算機構進行控制,以重復進行值 的取得、平方剩余運算、判斷、和乘法剩余運算;以及輸出機構,如果對上述整數(shù)的所有的位結束了上述重復,則輸出基于 保存在上述運算值變量中的值的值。
5、 如權利要求1所述的信息安全裝置,其特征在于, 上述信息安全裝置還包括蒙哥馬利變換機構,該蒙哥馬利變換機構計算對于值1的蒙哥馬利變換值;上述乘法運算機構在上述乘法剩余運算中,使用由上述蒙哥馬利變換機構計算出的蒙哥馬利變換值。
6、 如權利要求5所述的信息安全裝置,其特征在于,上述信息安全裝置還具備 模設定機構,設定上述模的值;以及整數(shù)設定機構,隨機地選擇比上述模的有效位的數(shù)目大的整數(shù)k;上述蒙哥馬利變換機構根據(jù)所設定的上述模的值,利用上述整數(shù)k,計 算上述蒙哥馬利變換值。
7、 如權利要求6所述的信息安全裝置,其特征在于, 上述蒙哥馬利變換機構在上述模下計算值2的k次冪值,作為上述蒙哥馬利變換值。
8、 如權利要求6所述的信息安全裝置,其特征在于,上述蒙哥馬利變換機構在作為上述模的值的隨機倍的模下計算值2的 k次冪值,作為上述蒙哥馬利變換值。
9、 如權利要求8所述的信息安全裝置,其特征在于, 上述信息安全裝置中,上述模設定機構進一步設定作為上述模的值的隨機倍的模; 上述蒙哥馬利變換機構在由模設定機構進一步設定的上述模下計算值 2的k次冪值。
10、 如權利要求6所述的信息安全裝置,其特征在于, 上述整數(shù)設定機構每當取得輸入值時,隨機地變更上述整錄k的值。
11、 如權利要求6所述的信息安全裝置,其特征在于, 上述模設定機構每當取得輸入值時,隨機地變更在上述蒙哥馬利變換機構中使用的上述模的值。
12、 如權利要求6所述的信息安全裝置,其特征在于, 上述整數(shù)設定機構在上述重復的中途,隨機地變更上述整數(shù)k的值。
13、 如權利要求6所述的信息安全裝置,其特征在于, 上述模設定機構在上述重復的中途,隨機地變更在上述蒙哥馬利變換機構中使用的上述模的值。
14、 如權利要求6所述的信息安全裝置,其特征在于, 上述整數(shù)設定機構根據(jù)來自外部的指示,隨機地變更上述整數(shù)k的值。
15、 如權利要求6所述的信息安全裝置,其特征在于, 上述模設定機構根據(jù)來自外部的指示,隨機地變更在上述蒙哥馬利變換機構中使用的上述模的值。
16、 如權利要求1所述的信息安全裝置,其特征在于, 上述信息安全裝置還包括蒙哥馬利變換機構,該蒙哥馬利變換機構計算對于上述輸入值的蒙哥馬利變換值;上述乘法運算機構在判斷為所取得的位的值是0以外的情況下,禾U用 由上述蒙哥馬利變換機構計算出的上述蒙哥馬利變換值進行乘法剩余運 算。
17、 如權利要求16所述的信息安全裝置,其特征在于, 上述信息安全裝置還具備模設定機構,設定上述模的值;以及整數(shù)設定機構,隨機地選擇比上述模的有效位的數(shù)目大的整數(shù)k; 上述蒙哥馬利變換機構基于設定的上述模的值,利用上述整數(shù)k,計算 上述蒙哥馬利變換值。
18、 如權利要求17所述的信息安全裝置,其特征在于, 上述蒙哥馬利變換機構在上述模下計算值2的k次冪值,并將上述輸入值與計算出的值相乘得到的值,作為上述蒙哥馬利變換值。
19、 如權利要求17所述的信息安全裝置,其特征在于, 上述蒙哥馬利變換機構在作為上述模的值的隨機倍的模下計算值2的k次冪值,作為上述蒙哥馬利變換值。
20、 一種信息安全方法,在信息安全裝置中使用,該信息安全裝置為 了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算,對上述整數(shù)的各 位的每個重復乘法運算而計算冪乘值,進行上述輸入值的安全或可靠的處 理,其特征在于,該方法包括判斷步驟,判斷上述整數(shù)的1個位的值是否是0;以及乘法運算步驟,在判斷為所取得的位的值是0的情況下,進行使用對于值1的蒙哥馬利變換值的乘法剩余運算。
21、 一種計算機程序,用于在信息安全裝置中使用的信息安全,該信 息安全裝置為了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算,對上述整數(shù)的各位的每個重復乘法運算而計算冪乘值,進行上述輸入值的安全或可靠的處理,其特征在于,該計算機程序包括-判斷步驟,判斷上述整數(shù)的l個位的值是否是0;以及 乘法運算步驟,在判斷為所取得的位的值是0的情況下,進行使用對于值1的蒙哥馬利變換值的乘法剩余運算。
22、 一種記錄媒體,是記錄有計算機程序的計算機可讀取的記錄媒體,該計算機程序用于在信息安全裝置中使用的信息安全,該信息安全裝置為 了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘剩余運算,對上述整數(shù)的各 位的每個重復乘法運算而計算冪乘值,進行上述輸入值的安全或可靠的處理,其特征在于,上述計算機程序包括判斷步驟,判斷上述整數(shù)的1個位的值是否是0;以及 乘法運算步驟,在判斷為所取得的位的值是0的情況下,進行使用對于值1的蒙哥馬利變換值的乘法剩余運算。
23、 一種集成電路,為了進行在規(guī)定的模下將輸入值整數(shù)次冪的冪乘 剩余運算,對上述整數(shù)的各位的每個重復乘法運算而計算冪乘值,進行上 述輸入值的安全或可靠的處理,其特征在于,具備判斷機構,判斷上述整數(shù)的1個位的值是否是0;以及 乘法運算機構,在判斷為所取得的位的值是0的情況下,進行使用對 于值1的蒙哥馬利變換值的乘法剩余運算。
全文摘要
提供一種對抗對RSA加密等的信息安全裝置的簡單功率攻擊(SPA)的信息安全裝置、信息安全方法、計算機程序、計算機可讀取的記錄媒體及集成電路。信息安全裝置使用與蒙哥馬利區(qū)域中的1之間的乘法運算。蒙哥馬利區(qū)域中的1依存于比模p的位的數(shù)目大的整數(shù)k及模而決定,所以不知道p和k的攻擊者難以進行解析。此外,即使萬一在解析者能夠預測到漢明重量的情況下,通過隨機地變更k或模,也進一步提高了對SPA的安全性。
文檔編號H04L9/30GK101292274SQ20068003893
公開日2008年10月22日 申請日期2006年10月18日 優(yōu)先權日2005年10月19日
發(fā)明者布田裕一, 松崎棗 申請人:松下電器產(chǎn)業(yè)株式會社