專利名稱:安全處理裝置、安全處理方法、加密信息嵌入方法、程序、存儲介質(zhì)和集成電路的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及防止非法地竄改和分析程序的技術(shù)等。
背景技術(shù):
以前,在檢測數(shù)據(jù)的竄改等的目的中廣泛使用著電子簽名(以下稱作
簽名)。該簽名方法之一有RSA (Rivest Shanir Adkman)簽名生成法。在 RSA簽名生成法中,通過對簽名對象信息M使用簽名密鑰d進(jìn)行S二MM modn的運算,生成簽名S。
上述的簽名密鑰d是必須要保護(hù)的信息,以下將這樣的信息稱作秘密 信息。此外,在本說明書中,記號A表示乘方運算,記號*表示乘法。
在此,在執(zhí)行上述的生成RSA簽名的處理中,由于在計算機(jī)內(nèi)的RAM 和CPU的寄存器等存儲器上出現(xiàn)了簽名密鑰d的值,因此,有通過分析這 些存儲器來非法取得簽名密鑰d的危險性。
作為用于防止這樣的非法取得簽名密鑰d的技術(shù)之一,在非專利文獻(xiàn)1 中公開了一種不使簽名密鑰d的值出現(xiàn)在存儲器上而進(jìn)行簽名生成的方法。
在非專利文獻(xiàn)l的方法中,首先求滿足簽名密鑰生成式(1= (dl*d2) 十d3的dl、 d2、 d3。在此,dl、 d2和d3是上述的分割密鑰,將根據(jù)簽名 密鑰生成分割密鑰稱作簽名密鑰的分割。
基于該分割密鑰(dl、 d2、 d3)和簽名密鑰生成式,按照
Sl=MAdl modn
S2=SlAd2modn
S=S2々MAd3modn 的順序進(jìn)行運算。這樣,不使用簽名密鑰d而得到與RSA簽名生成式S = MAdmodn相同的簽名S。此外,在簽名生成處理中,由于在存儲器上不是 出現(xiàn)簽名密鑰d,而是出現(xiàn)分割密鑰(dl、 d2、 d3),因此,能夠保護(hù)簽名密鑰d。
非專利文獻(xiàn)1:"簽名生成軟件的隨機(jī)數(shù)據(jù)搜索的抗竄改性評價"橫濱國
立大學(xué)本田洋之松本勉SCIS2005
但是,在上述的方法中,由于簽名密鑰生成式總是固定的,因此,能 夠通過對簽名生成部進(jìn)行靜態(tài)分析來確定簽名密鑰生成式。
另外,由于每次利用相同的分割密鑰,因此,通過一邊改變簽名對象 數(shù)據(jù)一邊收集多次的簽名生成時的隨機(jī)數(shù)據(jù),進(jìn)行所謂的看收集到的多個 隨機(jī)數(shù)據(jù)相互之間的差分,抽出不變的數(shù)據(jù)的動態(tài)分析,就能夠確定分割 密鑰。
然后,就產(chǎn)生了若使用利用上述方法確定了的分割密鑰和簽名密鑰生 成式,就能確定簽名密鑰的問題。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明的目的在于,提供一種即使是非法分析者進(jìn)行 了靜態(tài)分析和動態(tài)分析的情況下,也能夠隱匿秘密信息的安全處理裝置。 為了解決上述問題,本發(fā)明的一種安全處理裝置,得到與對消息實施
安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信息,具有存儲
單元,存儲有第一秘密信息生成式和第一安全處理過程,所述第一秘密信
息生成式中輸入將秘密信息至少分割為2個的分割秘密信息作為自變量, 根據(jù)該分割秘密信息計算出上述秘密信息,所述第一安全運算過程示出使 用了上述秘密信息的安全運算的過程;第一生成單元,作為自變量而輸入 運算了至少2個上述分割秘密信息的結(jié)果即結(jié)合秘密信息,生成在運算上 與上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成單元, 基于上述第二秘密信息生成式中包含的算子,作為自變量而輸入上述結(jié)合 秘密信息,生成第二安全運算過程,該第二安全運算過程示出與上述第一 安全運算過程等效的運算過程;執(zhí)行單元,對上述消息實施按照上述第二 安全運算過程的安全運算。
本發(fā)明的安全處理裝置通過具有上述結(jié)構(gòu),通過在每次執(zhí)行安全處理 時,生成上述結(jié)合秘密信息,生成第二安全運算過程,執(zhí)行第二安全運算 過程,由此得到與第一安全運算相同的結(jié)果,因此,取代上述秘密信息,在運算用的存儲器上出現(xiàn)每次安全運算都成為不同值的結(jié)合秘密信息,每 次執(zhí)行安全處理時第二安全運算過程都不同,因此,利用靜態(tài)分析和動態(tài) 分析的上述秘密信息的確定變得困難。這樣就能夠隱匿上述秘密信息。
此外,也可以上述第一秘密信息生成式包含1個以上的運算,上述第 二生成單元從上述第一秘密信息生成式中包含的運算中,隨機(jī)選擇與上述 運算之間滿足交換法則、結(jié)合法則、分配法則中的任一個的替代運算的某 個運算,通過將選擇的運算置換為上述替代運算,生成第二秘密信息生成 式。
此外,也可以上述第一秘密信息生成式包含1個以上的運算,各運算 包含多個操作數(shù)和示出操作數(shù)相互之間的計算內(nèi)容的算子,上述存儲單元 存儲有示出上述第一秘密信息生成式涉及的上述操作數(shù)與上述算子的關(guān)系 的屬性信息,上述第一生成單元使用上述屬性信息,生成上述第二秘密信 息生成式。
此外,也可以在上述第一秘密信息生成式中,向上述操作數(shù)輸入自變 量的值,上述自變量的各個值不重復(fù)地對應(yīng)于上述分割秘密信息的某一個, 上述屬性信息示出對應(yīng)于能結(jié)合的多個操作數(shù)的算子,上述第一生成單元 基于上述屬性信息,用上述算子結(jié)合上述第一秘密信息生成式中的上述多 個操作數(shù),上述第二生成單元通過使用上述算子結(jié)合與上述已結(jié)合的各操 作數(shù)相對應(yīng)的分割秘密信息,來生成上述結(jié)合秘密信息。
此外,也可以上述第二秘密信息生成式包含1個以上的運算,各運算 包含多個操作數(shù)和示出操作數(shù)相互之間的計算內(nèi)容的算子,上述存儲單元 存儲有屬性信息,該屬性信息表示上述第二秘密信息生成式涉及的上述操 作數(shù)與上述算子的關(guān)系,上述第二生成單元使用上述屬性信息,生成上述 第二安全運算過程。
根據(jù)該結(jié)構(gòu),由于能夠隨機(jī)地生成得到與第一秘密信息生成式相同結(jié) 果的第二秘密信息生成式,因此,能夠使利用靜態(tài)分析的秘密信息的確定 變得困難。
此外,也可以上述第一生成單元進(jìn)一步生成隨機(jī)數(shù)信息,生成包含了 上述隨機(jī)數(shù)信息的上述第二秘密信息生成式,上述第二生成單元基于上述 第二秘密信息生成式,使用上述結(jié)合秘密信息和上述隨機(jī)數(shù)信息生成第二安全運算過程,該第二安全運算過程示出與上述第一安全運算過程等效的 運算過程,上述執(zhí)行單元對上述消息使用上述結(jié)合秘密信息和上述隨機(jī)數(shù) 信息,實施按照上述第二安全運算過程的安全運算。
根據(jù)該結(jié)構(gòu),通過包含隨機(jī)數(shù)信息,上述第二秘密信息生成式的分析 就變得困難,能夠使按照使用隨機(jī)數(shù)信息執(zhí)行的第二安全運算過程的安全 運算的靜態(tài)分析變得困難。
此外,也可以上述第一生成單元進(jìn)一步生成使用了上述秘密信息的、 不對運算處理的結(jié)果造成影響的冗余信息,使用該冗余信息生成上述第二 秘密信息生成式。
根據(jù)該結(jié)構(gòu),由于使用冗余信息,因此能夠使第二秘密信息生成式的 靜態(tài)分析變得困難。
此外,也可以上述存儲單元存儲有上述分割秘密信息和上述執(zhí)行單元 不使用的偽信息。
根據(jù)該結(jié)構(gòu),能夠使基于存儲裝置中存儲著的信息來靜態(tài)分析安全處 理變得困難。
此外,也可以上述秘密信息是用于生成數(shù)字簽名的簽名密鑰,上述安 全運算是對上述消息實施數(shù)字簽名的簽名生成運算。
根據(jù)該結(jié)構(gòu),在執(zhí)行數(shù)字簽名處理中,能夠使利用靜態(tài)分析的秘密信 息的確定變得困難。
此外,上述簽名生成處理是RSA (Rivest Shamir Adleman)簽名生成處理。
根據(jù)該結(jié)構(gòu),在執(zhí)行RSA簽名生成處理中,能夠使利用靜態(tài)分析的秘 密信息的確定變得困難。
此外,上述簽名生成處理也可以是利用橢圓曲線數(shù)字簽名方式的簽名 處理。
此外,也可以上述安全處理裝置進(jìn)一步具有生成隨機(jī)數(shù)信息的隨機(jī)數(shù) 信息生成單元,上述執(zhí)行單元不直接利用上述隨機(jī)數(shù)k,而是使用至少2個 上述隨機(jī)數(shù)信息,進(jìn)行上述橢圓曲線數(shù)字簽名方式中的計算定義體GF (p) 上的橢圓曲線的位數(shù)q即基點P的隨機(jī)數(shù)值k倍點的處理、和使用了定義 體GF (q)上的k的逆數(shù)(逆數(shù))的值的處理。根據(jù)該結(jié)構(gòu),在執(zhí)行利用橢圓曲線數(shù)字簽名方式的簽名處理中,能夠 使利用靜態(tài)分析的秘密信息的確定變得困難。
此外,也可以上述秘密信息是上述公開密鑰密碼的上述秘密密鑰,上 述執(zhí)行單元進(jìn)行利用了公開密鑰和秘密密鑰的公開密鑰密碼系統(tǒng)的處理, 作為上述安全運算。
根據(jù)該結(jié)構(gòu),在執(zhí)行利用公開密鑰密碼的安全處理中,能夠使利用靜 態(tài)分析的秘密密鑰的確定變得困難。
此外,上述公開密鑰密碼也可以是RSA密碼。
根據(jù)該結(jié)構(gòu),在執(zhí)行利用RSA密碼的安全處理中,能夠使利用靜態(tài)分 析的秘密密鑰的確定變得困難。
此外,上述公開密鑰密碼也可以是橢圓曲線密碼。
根據(jù)該結(jié)構(gòu),在執(zhí)行利用橢圓曲線密碼的安全處理中,能夠使利用靜 態(tài)分析的秘密密鑰的確定變得困難。
此外,也可以上述安全處理裝置進(jìn)一步包括取得單元,從外部取得 上述第一生成單元的更新用數(shù)據(jù);更新單元,使用上述更新用數(shù)據(jù),更新 上述第一生成單元。
根據(jù)該結(jié)構(gòu),通過更新第一生成裝置,即使是在執(zhí)行安全處理時進(jìn)行 靜態(tài)分析的情況下,也能夠使秘密信息的確定變得困難。此外,能從裝置 外部調(diào)整所生成的分割密鑰的個數(shù)和結(jié)合分割密鑰的個數(shù),能靈活地設(shè)定 安全強(qiáng)度。
此外,也可以上述安全處理裝置進(jìn)一步包括取得單元,從外部取得 更新用的分割秘密信息;更新單元,將上述存儲單元中存儲的分割秘密信 息,更新為上述取得單元取得的更新用的分割秘密信息。
根據(jù)該結(jié)構(gòu),通過更新分割秘密信息,即使是在執(zhí)行安全處理時進(jìn)行 靜態(tài)分析的情況下,也能夠使秘密信息的確定變得困難。
此外,能從裝置外部調(diào)整所生成的分割密鑰的個數(shù)和結(jié)合分割密鑰的 個數(shù),能靈活地設(shè)定安全強(qiáng)度。
本發(fā)明的用于安全處理裝置的安全處理方法,能夠得到與對消息實施 了安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信息,上述安全 處理裝置存儲單元,該存儲單元存儲有第一秘密信息生成式和第一安全處理過程,所述第一秘密信息生成式中輸入將秘密信息至少分割為2個的分 割秘密信息作為自變量,根據(jù)該分割秘密信息計算出上述秘密信息,所述 第一安全運算過程示出使用了上述秘密信息的安全運算的過程,上述安全
處理方法包括第一生成步驟,作為自變量而輸入運算了至少2個上述分 割秘密信息的結(jié)果即結(jié)合秘密信息,生成在運算上與上述第一秘密信息生 成式等效的第二秘密信息生成式;第二生成步驟,基于上述第二秘密信息 生成式中包含的算子,作為自變量而輸入上述結(jié)合秘密信息,生成第二安 全運算過程,該第二安全運算過程示出與上述第一安全運算過程等效的運 算過程;執(zhí)行步驟,對上述消息實施按照上述第二安全運算過程的安全運 算。
本發(fā)明的用于安全處理裝置的計算機(jī)程序,該安全處理裝置能夠得到 與對消息實施了安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信 息,上述安全處理裝置具有存儲單元,該存儲單元存儲有第一秘密信息生 成式和第一安全處理過程,所述第一秘密信息生成式中輸入將秘密信息至 少分割為2個的分割秘密信息作為自變量,根據(jù)該分割秘密信息計算出上 述秘密信息,所述第一安全運算過程示出使用了上述秘密信息的安全運算 的過程,上述計算機(jī)程序包括第一生成步驟,作為自變量而輸入運算了 至少2個上述分割秘密信息的結(jié)果即結(jié)合秘密信息,生成在運算上與上述 第一秘密信息生成式等效的第二秘密信息生成式;第二生成步驟,基于上 述第二秘密信息生成式中包含的算子,作為自變量而輸入上述結(jié)合秘密信 息,生成第二安全運算過程,該第二安全運算過程示出與上述第一安全運 算過程等效的運算過程;執(zhí)行步驟,對上述消息實施按照上述第二安全運 算過程的安全運算。
本發(fā)明的記錄介質(zhì)是計算機(jī)可讀取的記錄介質(zhì),記錄有上述計算機(jī)程序。
本發(fā)明的用于安全處理裝置的集成電路,該安全處理裝置能夠得到與 對消息實施了安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信息, 其特征在于,上述安全處理裝置具有存儲單元,該存儲單元存儲有已預(yù)先 將秘密信息至少分割為2個的分割秘密信息、第一秘密信息生成式和第一 安全運算過程,在所述第一秘密信息生成式中作為自變量而輸入上述分割秘密信息,所述第一秘密信息生成式根據(jù)上述分割秘密信息計算出上述秘 密信息,所述第一安全運算過程示出使用了上述分割秘密信息的安全運算 的過程;上述集成電路具有結(jié)合秘密信息生成單元,生成將至少2個上 述分割秘密信息相互進(jìn)行運算的結(jié)合秘密信息;第一生成單元,作為自變 量而輸入上述結(jié)合秘密信息,生成在運算上與上述第一秘密信息生成式等 效的第二秘密信息生成式;第二生成單元,基于上述第二秘密信息生成式 中包含的算子,作為自變量而輸入上述結(jié)合秘密信息,生成示出與上述第 一安全運算過程等效的運算過程的第二安全運算過程;執(zhí)行單元,對上述 消息實施按照上述第二安全運算過程的安全運算。
根據(jù)該結(jié)構(gòu),通過在每次執(zhí)行安全處理時,生成上述結(jié)合秘密信息, 并生成第二安全運算過程,執(zhí)行第二安全運算過程,由此得到與第一安全 運算相同的結(jié)果,因此,取代上述秘密信息,在運算用的存儲器上出現(xiàn)每 個安全運算都不同值的結(jié)合秘密信息,每次執(zhí)行安全處理時第二安全運算 過程都不同,因此,利用靜態(tài)分析的上述秘密信息的確定變得困難。這樣 就能夠隱匿上述秘密信息。
本發(fā)明的加密信息嵌入方法,將上述秘密信息加密后嵌入到進(jìn)行使用 了秘密信息的運算的安全處理裝置中,其特征在于,包括秘密信息加密 步驟,使用將上述秘密信息變換為很難分析的狀態(tài)的加密裝置,將上述秘 密信息進(jìn)行加密;嵌入步驟,使用加密信息寫入裝置,將加密后的秘密信 息嵌入到上述安全處理裝置中。
根據(jù)該結(jié)構(gòu),通過將秘密信息加密后嵌入到安全處理裝置中,能夠防 止暴露秘密信息。
此外,也可以上述加密裝置具有輸入單元,該輸入單元接受用于決定 上述秘密信息的加密方法的參數(shù)作為輸入,上述秘密信息加密步驟包括 上述輸入單元接受上述參數(shù)的接受步驟;用基于上述參數(shù)決定的加密方法, 將上述秘密信息進(jìn)行加密的加密步驟。
根據(jù)該結(jié)構(gòu),通過從外部給予用于決定上述秘密信息的加密的方法的 參數(shù),就能夠靈活地設(shè)定安全強(qiáng)度。
此外,也可以上述參數(shù)是上述秘密信息的分割個數(shù),上述加密步驟包 括分割步驟,該分割步驟根據(jù)上述分割個數(shù),將上述秘密信息分割為至少2個分割秘密信息。
此外,也可以上述加密步驟進(jìn)一步包括式生成步驟,該式生成步驟基 于上述分割個數(shù),生成至少包含上述分割個數(shù)的項的第一秘密信息生成式, 上述分割步驟分割上述秘密信息,以便從上述第一秘密信息生成式計算出 上述秘密信息。
根據(jù)該結(jié)構(gòu),由于能從裝置外部調(diào)整秘密信息的分割個數(shù),因此,能 夠靈活地設(shè)定安全強(qiáng)度。
此外,也可以上述參數(shù)是第一秘密信息生成式,上述加密步驟包括將
上述秘密信息分割為至少2個分割秘密信息,以便從上述第一秘密信息生 成式計算出上述秘密信息的步驟。
根據(jù)該結(jié)構(gòu),由于能從裝置外部給予第一秘密信息生成式,因此,能 夠靈活地設(shè)定安全強(qiáng)度。
此外,也可以上述秘密信息是從密鑰發(fā)行機(jī)關(guān)發(fā)行的秘密密鑰,上述
加密信息嵌入方法進(jìn)一步具有上述密鑰發(fā)行機(jī)關(guān)用密鑰發(fā)行機(jī)關(guān)的秘密 密鑰加密上述秘密密鑰的加密步驟;上述加密裝置用公開密鑰對已加密了 的上述密鑰進(jìn)行解密和驗證的驗證步驟,上述秘密信息加密步驟將驗證后 的上述秘密密鑰進(jìn)行加密,上述嵌入步驟包括將已利用上述加密裝置加 密后的上述加密信息變換為二進(jìn)制數(shù)據(jù)的二進(jìn)制變換步驟;在安全處理裝 置中嵌入上述二進(jìn)制數(shù)據(jù)的二進(jìn)制嵌入步驟,所述安全處理裝置具有使用 上述加密信息對與使用了上述秘密信息的運算結(jié)果相同的結(jié)果進(jìn)行運算的 功能。
根據(jù)該結(jié)構(gòu),能夠保護(hù)從密鑰發(fā)行機(jī)關(guān)交給制造廠的秘密密鑰不在遞 交途中被盜聽和竄改。
圖1是示出本發(fā)明的實施方式1中的簽名生成單元的結(jié)構(gòu)概要的圖。 圖2是示出本發(fā)明的實施方式1中的分割密鑰識別信息表的結(jié)構(gòu)的圖。 圖3是用樹形結(jié)構(gòu)概念地表現(xiàn)了本發(fā)明的實施方式1中的簽名密鑰生 成式的圖。
圖4是示出本發(fā)明的實施方式1中的分割密鑰信息表的圖。圖5是示出本發(fā)明的實施方式1中的簽名生成的概要的流程圖。 圖6是本發(fā)明的實施方式1中的恒等式生成流程圖。 圖7是表示本發(fā)明的實施方式1中的利用了交換法則的隨機(jī)洗牌處理 的流程圖。
圖8是表示本發(fā)明的實施方式1中的利用了結(jié)合法則的隨機(jī)分組處理 的流程圖。
圖9是示出本發(fā)明的實施方式1中的隨機(jī)洗牌和隨機(jī)分組處理執(zhí)行后 的分割密鑰信息表的圖。
圖IO是示出本發(fā)明的實施方式1中的利用了矩陣的恒等式生成處理的 概念的圖。
圖11是示出本發(fā)明的實施方式1中的結(jié)合分割密鑰識別信息表的圖。 圖12是詳細(xì)示出本發(fā)明的實施方式1中的簽名生成處理的流程圖。 圖13是示出本發(fā)明的實施方式1中的圖12的流程圖的接續(xù)的圖。 圖14是說明本發(fā)明的實施方式1中的生成簽名生成式的具體例的圖。 圖15是本發(fā)明的實施方式2中的ECDSA的流程圖。 圖16是本發(fā)明的實施方式2中的圖15的S1502的詳細(xì)流程圖。 圖17是本發(fā)明的實施方式2中的圖15的S1504的詳細(xì)流程圖。 圖18是示出本發(fā)明的實施方式3中的分割密鑰嵌入工序的圖。 圖19是示出本發(fā)明的實施方式4中的簽名密鑰生成恒等式生成單元 120的程序的更新概要的圖。
圖20是示出本發(fā)明的實施方式4中的簽名密鑰生成恒等式生成程序的
更新的流程圖。
附圖標(biāo)記的說明
10消息M
20簽名密鑰D
21簽名密鑰生成式F
22分割密鑰生成裝置
30簽名S
100簽名生成單元
110分割密鑰存儲單元120簽名密鑰生成恒等式生成單元
121簽名密鑰生成恒等式G
130結(jié)合分割密鑰生成單元
140結(jié)合分割密鑰存儲單元
150簽名生成單元
200分割密鑰識別信息表
201分割密鑰標(biāo)識符
1000矩陣
1001結(jié)合處選擇部
1900網(wǎng)絡(luò)
1901更新服務(wù)器
1902更新用的簽名密鑰生成恒等式生成程序
1903更新用的簽名密鑰生成恒等式生成程序的竄改檢測值
1910收發(fā)單元
1920簽名密鑰生成恒等式生成程序更新單元
具體實施例方式
以下,參照附圖,關(guān)于本發(fā)明的實施方式進(jìn)行說明。 (實施方式l)
關(guān)于使用本發(fā)明的實施方式1涉及的秘密信息進(jìn)行安全處理的安全處 理裝置,以使用簽名密鑰進(jìn)行簽名生成的簽名生成單元為例進(jìn)行說明。
本發(fā)明的一個實施方式涉及的簽名生成裝置,在對于輸入的信息M, 生成基于簽名生成式S=MAdmodn的簽名S的情況下,不直接在存儲器上 出現(xiàn)簽名密鑰d,而是取代簽名密鑰d,在存儲器上出現(xiàn)分割密鑰來生成簽 名,并且,每次生成簽名都動態(tài)地變更分割密鑰的生成過程、分割密鑰的 值、簽名的生成過程。
這樣,就能夠?qū)τ诜欠ǚ治稣叩撵o態(tài)分析和動態(tài)分析,隱匿秘密信息 即簽名密鑰d。
<結(jié)構(gòu)>
圖1是本實施方式1中的包括簽名生成單元100的簽名生成系統(tǒng)的概要圖。
簽名生成系統(tǒng)包括使用簽名密鑰生成式F21,從簽名密鑰D生成后 述的分割密鑰的分割密鑰生成裝置22;使用上述分割密鑰生成簽名的簽名
生成裝置100。
消息M10是簽名對象數(shù)據(jù),是輸入到簽名生成單元100中的數(shù)據(jù)。再 有,在圖1中,消息M10是從外部向簽名生成單元100輸入的,但也可以 是在簽名生成單元100內(nèi)生成的數(shù)據(jù),也可以是簽名密鑰生成裝置的存儲 器內(nèi)存儲著的程序代碼和/或數(shù)據(jù)。
簽名密鑰D20是在簽名生成中利用的秘密密鑰信息,是需要保護(hù)不被 非法分析的信息。具體地說,在使用了公開密鑰密碼系統(tǒng)的RSA簽名生成 的情況下,設(shè)質(zhì)數(shù)p和質(zhì)數(shù)q的積為n時的RSA簽名生成運算MAd mod n 中的變量d,相當(dāng)于秘密密鑰信息,向d代入簽名密鑰D20。
由于生成簽名時不在存儲器上出現(xiàn)簽名密鑰D20的本身的值,因此, 圖2中示出的分割密鑰111 (Dl、 D2、 D3、…、Dn)是分割密鑰生成裝置 22基于簽名密鑰生成恒等式F21,預(yù)先分割簽名密鑰D20的值來得到的分 割密鑰。在此,在簽名密鑰生成式F21與分割密鑰111 (Dl、 D2、 D3、...、 Dn)之間,具有通過使用分割密鑰lll (Dl、 D2、 D3、 ...、 Dn)計算簽名 密鑰生成式F21能計算簽名密鑰D20的值的關(guān)系。
下面,關(guān)于分割密鑰生成裝置22和簽名生成單元100依次進(jìn)行說明。 (1)分割密鑰生成裝置22
分割密鑰生成裝置22從外部接受簽名密鑰生成式F21和簽名密鑰D20 的輸入,基于簽名密鑰生成式F21和簽名密鑰D20,生成分割密鑰識別信 息表200和分割密鑰信息表400,并將分割密鑰識別信息表200和分割密鑰 信息表400寫入到后述的簽名生成裝置IOO所具有的分割密鑰存儲單元110 中。
分割密鑰生成裝置22具體地說是由微處理機(jī)、ROM、 RAM、硬盤單 元、顯示器單元、鍵盤、鼠標(biāo)等構(gòu)成的計算機(jī)系統(tǒng)。在上述ROM或者上述 硬盤單元中存儲有計算機(jī)程序,被上述RAM讀出上述計算機(jī)程序,通過上 述微處理機(jī)按照上述計算機(jī)程序進(jìn)行工作,分割密鑰生成裝置22實現(xiàn)其功在此,作為一例,假設(shè)簽名密鑰生成式F21是設(shè)8個變量(dl d8) 為自變量的下式。
F (dl、 d2、 d3、 d4、 d5、 d6、 d7、 d8) = (dl+d2+d3+d4) * (d5 +d6+d7+d8)
在此,在變量dl中代入分割密鑰D1,在變量d2中代入分割密鑰D2, 同樣地,在變量d3 d8中分別代入分割密鑰D3 D8。
對分割密鑰生成裝置22輸入簽名密鑰生成式F21,作為圖4中示出的 分割密鑰信息表400,但在說明分割密鑰信息表400之前,使用圖3,關(guān)于 簽名密鑰生成式F21的表現(xiàn)形式進(jìn)行說明。
圖3用樹形結(jié)構(gòu)概念地表現(xiàn)了簽名密鑰生成式F21"F (dl、 d2、 d3、 d4、 d5、 d6、 d7、 d8) 二 (dl+d2+d3+d4) * (d5+d6+d7+d8)"。
變量dl、 d2、 d3、 d4與所謂加法組1的組信息相關(guān)聯(lián)。
在此,所述組信息是在簽名生成式F21中表示操作數(shù)(dl d8)與其 他操作數(shù)進(jìn)行何種運算(例如,加法、乘法等)的關(guān)系的屬性信息。此外, 將構(gòu)成上述組的各操作數(shù)和更小的組等稱作成員。
例如,在"加法組"中,利用算子"十(加法)"運算各成員,在"乘法組" 中,利用"* (乘法)"運算各成員。
再有,關(guān)于表示由多個變量構(gòu)成的組彼此之間的關(guān)系和利用何種算子 運算組與其他變量的關(guān)系的屬性信息,也可以稱作組信息。
通過這樣地給予所謂組信息的屬性信息,就能夠識別各變量與簽名密 鑰生成式F21的關(guān)系。
具體地說,在"加法組"中,由于如上所述地用算子"十(加法)"運算各 成員,因此,加法組l就表現(xiàn)了dl+d2+d3+d4的式子。此外,變量d5、 d6、 d7、 d8與所謂加法組2的組信息相關(guān)聯(lián)。加法組2與加法組1的情況 同樣地表現(xiàn)了 d5+d6+d7+d8的式子。另外,所述加法組1和加法組2作 為組信息與乘法組1相關(guān)聯(lián)。
^f謂"乘法組"的組信息如前所述示出了用算子"女(乘法)"運算該組的 各成員,乘法組1表示了加法組1和加法組2相乘的關(guān)系,表現(xiàn)了 (dl十 d2+d3+d4) * (d5+d6+d7+d8)的簽名密鑰生成式F21。
下面,使用圖4,關(guān)于將圖3的簽名密鑰生成式F21的結(jié)構(gòu)具體表示為信息的分割密鑰信息表400進(jìn)行說明。
分割密鑰信息表400如圖4所示,由分割密鑰組標(biāo)識符401和分割密 鑰組成員標(biāo)識符402構(gòu)成。
分割密鑰組標(biāo)識符401是識別上述組的標(biāo)識符,分割密鑰組成員標(biāo)識 符402是示出各組中所屬的成員的標(biāo)識符。
圖4中,在加法組l中分配著"AG001"作為分割密鑰組標(biāo)識符401。在 此,由于在圖3中示出了屬于組"AG001"中的成員是變量dl、 d2、 d3、 d4, 因此,在分割密鑰信息表400中登記著識別各個變量的"id001"、 "id003"、 "id003"、 "id004",作為分割密鑰組成員標(biāo)識符402。
此夕卜,在加法組2中分配著"AG002"作為分割密鑰組標(biāo)識符401 。在此, 由于屬于組"AG002"中的成員是變量d5、 d6、 d7、 d8,因此,在分割密鑰 信息表400中登記著識別各個變量的"id005"、 "id006"、 "id007"、 "id008", 作為分割密鑰組成員標(biāo)識符402。
此外,在乘法組1中分配著"MG001"作為分割密鑰組標(biāo)識符401。由于 屬于組"MG001"中的成員是加法組1和加法組2,因此,在分割密鑰信息表 400中登記著各個分割密鑰組標(biāo)識符401即"AG001"和"AG002",作為分割 密鑰組成員標(biāo)識符402。
使用這樣的數(shù)據(jù)結(jié)構(gòu),簽名密鑰生成恒等式生成單元120通過參照分 割密鑰識別信息表200和分割密鑰信息表400,能夠知道簽名密鑰生成式 F21的結(jié)構(gòu)。
下面,關(guān)于分割密鑰生成裝置22基于簽名密鑰生成式F21,將簽名密 鑰D分割為多個分割密鑰的處理進(jìn)行說明。
在本實施方式中,由于簽名密鑰生成式F21的輸入變量的數(shù)量是8個, 因此,分割密鑰生成裝置22將簽名密鑰D20分割為8個分割密鑰D1 D8。
其中,在D1 D8中,隨機(jī)選擇滿足F (Dl, D2, D3, D4, D5, D6, D7, D8) 二D的值。
在此,在簽名密鑰生成式的自變量dn中代入分割密鑰Dn (n: 1 8)。 即,在簽名密鑰生成式F21的自變量dl中代入分割密鑰D1,同樣地在自 變量d2中代入分割密鑰D2,在自變量d3 d8中代入分割密鑰D3 D8。
作為基于簽名密鑰生成式F21,從簽名密鑰D計算出分割密鑰D1 D8的方法的一例,分割密鑰生成裝置22從用簽名密鑰生成式F21進(jìn)行的最外 側(cè)的運算開始,逐次細(xì)化運算的單位來進(jìn)行。
具體地說,首先,分割密鑰生成裝置22選擇出D二R1女R2成立的隨 機(jī)值R1、 R2。
接著,選擇出R1二 (Dl+D2+D3+D4)成立的隨機(jī)值D1、 D2、 D3、 D4,選擇出R2二 (D5+D6+D7+D8)成立的隨機(jī)值D5、 D6、 D7、 D8。
分割密鑰生成裝置22對選擇出的各個分割密鑰D1 D8分配用于識別 各分割密鑰的識別信息即分割密鑰標(biāo)識符201 。
作為一例,分割密鑰生成裝置22對分割密鑰D1分配"ID001"作為分割 密鑰標(biāo)識符201 ,對分割密鑰D2分配"ID002"作為分割密鑰標(biāo)識符201 ,同 樣地分別對分割密鑰D3、 D4、 D5、 D6、 D7、 D8分配"ID003"、 "ID004"、 "ID005"、 "ID006"、 "ID007"、 "ID008",作為分割密鑰標(biāo)識符201。
分割密鑰生成裝置22生成圖2中示出的、將分割密鑰標(biāo)識符201和分 割密鑰111的對應(yīng)起來的分割密鑰識別信息表200,將分割密鑰識別信息表 200寫入到后述的簽名生成單元100所具有的分割密鑰存儲單元110中。 (2)簽名生成單元100
簽名生成單元100如圖1所示,其結(jié)構(gòu)包括分割密鑰存儲單元110、簽 名密鑰生成恒等式生成單元120、結(jié)合分割密鑰生成單元130、結(jié)合分割密 鑰存儲單元140、簽名生成單元150。
簽名生成單元100具體地說是由微處理機(jī)、ROM、 RAM、硬盤單元、 顯示器單元等構(gòu)成的計算機(jī)系統(tǒng)。在上述ROM或者上述硬盤單元中存儲有 計算機(jī)程序,被上述RAM讀出上述計算機(jī)程序,通過上述微處理機(jī)按照上 述計算機(jī)程序進(jìn)行工作,簽名生成單元100實現(xiàn)其功能。
分割密鑰存儲單元110是存儲器(內(nèi)存)和硬盤等存儲設(shè)備,存儲由 分割密鑰生成裝置22寫入的分割密鑰識別信息表200和分割密鑰信息表 400。
簽名密鑰生成恒等式生成單元120生成與簽名密鑰生成式F21恒等的 式子即簽名密鑰生成恒等式121。在此,所述恒等是指在運算中具有等效的、 運算結(jié)果相同的關(guān)系。
以下,使用圖,關(guān)于簽名密鑰生成恒等式生成單元120根據(jù)簽名密鑰生成式F21和簽名密鑰D20,動態(tài)地生成與簽名密鑰生成式F21恒等的式 子即簽名密鑰生成恒等式G121和如圖11中所示的后述的結(jié)合分割密鑰141 的方法,詳細(xì)地進(jìn)行說明。
再有,以后進(jìn)行以生成RSA簽名為例的說明。
圖5是流程圖,示出動態(tài)地生成簽名生成恒等式G121和后述的結(jié)合分 割密鑰141,直到生成簽名S30并輸出為止的處理的概要。其中,使用圖6 圖11的流程圖詳細(xì)地說明圖5的各步驟。
在圖5中,首先,簽名密鑰生成恒等式生成單元120讀取分割密鑰存 儲單元110中存儲的分割密鑰信息表400,生成與簽名密鑰生成式F21輸出 相同結(jié)果的簽名密鑰生成恒等式G121 (步驟S501)。
接著,簽名密鑰生成恒等式生成單元120基于在步驟S501中生成的簽 名密鑰生成恒等式G121,通過結(jié)合運算分割密鑰存儲單元110中存儲的分 割密鑰lll,生成與分割密鑰111不同的值的結(jié)合分割密鑰141,并將生成 的結(jié)合分割密鑰141寫入到結(jié)合分割密鑰存儲單元140中(步驟S502)。
接著,在簽名生成單元150中,使用簽名對象消息MIO、簽名密鑰生 成恒等式G121和結(jié)合分割密鑰141,計算出不使簽名密鑰D20的值出現(xiàn)在 存儲器中的、成為與MAdmodn相同的結(jié)果的簽名S30,并輸出簽名S30, 結(jié)束簽名生成處理(步驟S503)。
在此,說明書中"AAB"的記載表示A的B次方,"AmodB"的記載表示 用自然數(shù)B除A時的剩余。
接著,使用圖6,關(guān)于上述的圖5的步驟S501的詳細(xì)內(nèi)容進(jìn)行說明。
首先,簽名密鑰生成恒等式生成單元120讀入分割密鑰存儲單元110 中存儲的分割密鑰信息表400,進(jìn)行隨機(jī)地重排各組中所屬的成員的排列的 隨機(jī)洗牌處理(步驟S601)。以后使用圖7,關(guān)于隨機(jī)洗牌的詳細(xì)過程進(jìn)行 敘述。
接著,將隨機(jī)洗牌后的分割密鑰信息表400的各組的成員隨機(jī)地分組 (步驟S602)。以后使用圖8和圖9,關(guān)于隨機(jī)分組的處理的詳細(xì)內(nèi)容進(jìn)行 敘述。
接著,將在步驟S602中隨機(jī)分組后的各組進(jìn)行式展開,變形為后述的 所謂矩陣表現(xiàn)的數(shù)據(jù)結(jié)構(gòu),隨機(jī)選擇展開后的各組中的結(jié)合處來進(jìn)行結(jié)合。其結(jié)果,生成與簽名密鑰生成式F21恒等的簽名密鑰生成恒等式121,所以 將其輸出(步驟S603)。以后使用圖IO,關(guān)于步驟S603進(jìn)行敘述。
下面,使用圖7,關(guān)于步驟S601中的分割密鑰組的成員的隨機(jī)洗牌處 理的詳細(xì)內(nèi)容進(jìn)行說明。
再有,所述本實施方式中的隨機(jī)洗牌是指利用交換法則,將例如式子 dl+d2+d3+d4變換為恒等的式子。此外,在加法等的情況下,將式子1 +2+3的計算結(jié)果和3+2 + 1的計算結(jié)果相同的關(guān)系、即即使調(diào)換式子中 的操作數(shù)的順序,計算結(jié)果也不變的關(guān)系,稱作"交換法則成立"。
首先,簽名密鑰生成恒等式生成單元120取得分割密鑰存儲單元110 中存儲的分割密鑰信息表400的組總數(shù)N (步驟S701)。
在此,設(shè)分割密鑰信息表400表現(xiàn)為二維數(shù)組Table。此夕卜,Table[n][m] 與圖4的分割密鑰組成員標(biāo)識符401相對應(yīng),示出屬于從上數(shù)第n行的組 中的、從左數(shù)第m個的分割密鑰組標(biāo)識符。此外,在僅寫為Table"n"的情 況下,示出屬于從上數(shù)第n行的組中的分割密鑰組標(biāo)識符的集合。
具體地說,若用上述的Table的形式表示圖4中示出的分割密鑰信息表 400,則如下
Table
= {AG001, AG002}、
Table[l] = {id001, id002, id003, id004}、
Table[2] = {id005,畫6,函7,函8}。
再有,在該例子和以下的例子中,設(shè)Table的各索引(index)從O開始。
組總數(shù)N是加法組、乘法組等的組的個數(shù),相當(dāng)于n的最大值+l。 圖4中示出的分割密鑰信息表400的情況下,組總數(shù)N為3。 接著,用O初始化變量i (步驟S702)。
在此,i是變量,對成為當(dāng)前混洗對象的分割密鑰組是第幾個分割密鑰 組進(jìn)行計數(shù)。
接著,產(chǎn)生隨機(jī)數(shù)值,代入到計數(shù)混洗次數(shù)的變量sn中(步驟S703)。 在此,混洗次數(shù)sn是變量,表示以后對各分割密鑰組進(jìn)行幾次混洗。
在此,通過利用隨機(jī)數(shù)作為混洗次數(shù)sn,能夠動態(tài)地設(shè)定混洗的次數(shù),進(jìn)
而能夠動態(tài)地生成簽名密鑰生成恒等式。接著,取得Table[i]中登記著的成員數(shù),即第i個組中登記著的成員數(shù) M (步驟S704)。
接著,產(chǎn)生2個0以上不足M的隨機(jī)整數(shù),分別代入到變量sl、 s2中 (步驟S705)。
在此,通過利用隨機(jī)整數(shù)作為sl、 s2,能夠動態(tài)地設(shè)定成為混洗對象 的成員的位置,進(jìn)而能夠動態(tài)地生成簽名密鑰生成恒等式。
接著,調(diào)換Table[i][sl]和Table[i][s2]的值,減小sn (步驟S706)。
艮P,在調(diào)換了屬于第i個組中的第sl個結(jié)構(gòu)要素和第s2個結(jié)構(gòu)要素之 后,將剩余混洗次數(shù)減l。
接著,判定是否sii>0,即、關(guān)于成為當(dāng)前混洗對象的第i個分割密鑰 組,是否還剩余有混洗次數(shù)(步驟S707)。
若步驟S707的判定結(jié)果是"是",就進(jìn)一步反復(fù)進(jìn)行混洗,向步驟S705 返回。
反之,若判定結(jié)果是"否",就判定i是否等于N—l (步驟S708)。艮卩, 判定關(guān)于全部組混洗是否已結(jié)束。
若步驟S708的判定結(jié)果是"否",就通過增加i后向步驟S703轉(zhuǎn)移,對 下一個分割密鑰組進(jìn)行混洗(步驟S709)。反之,若步驟S708的判定結(jié)果 是"是",則對于全部分割密鑰組的混洗已結(jié)束,因此就結(jié)束了隨機(jī)洗牌處理。
下面,參照圖8的流程圖,關(guān)于步驟S602中的分割密鑰組的成員的隨 機(jī)分組處理的詳細(xì)內(nèi)容進(jìn)行說明。
所述隨機(jī)分組是例如利用結(jié)合法則將式子(dl+d2+d3) +(14變換為 恒等式dl十(d2+d3+d4)的處理。在此,例如式子(1+2) +3與式子1 + (2+3)的結(jié)果是相同值,將這樣的關(guān)系,gp、與一次進(jìn)行計算的單位 的分割方式無關(guān)而結(jié)果為相同值的關(guān)系,稱作"結(jié)合法則成立"。
再有,在圖8中,也如說明圖5時所述,用二維數(shù)組的Table[n][m]表 現(xiàn)分割密鑰信息表400并進(jìn)行說明。
首先,簽名密鑰生成恒等式生成單元120取得分割密鑰存儲單元110 中存儲的分割密鑰信息表400的組總數(shù)N (步驟S801)。
接著,用O初始化變量i (步驟S802)。在此,i是變量,表示成為當(dāng)前 隨機(jī)分組的對象的分割密鑰組的號碼。接著,將組分割位置列表GP設(shè)置為空列表(步驟S803)。在此,組分 割位置列表GP是表示在從前面開始的第幾個位置上分割分割密鑰組的成 員的值的列表。
接著,取得Table[i]中登記著的成員數(shù)M,隨機(jī)選擇1以上M以下的 自然數(shù),將選擇的值作為組分割數(shù)k (步驟S804)。在此,所述組分割數(shù)是 表示將分割密鑰組分割為幾個組的數(shù)。通過將組分割數(shù)k設(shè)定為隨機(jī)自然 數(shù),就能夠動態(tài)地設(shè)定式子的分割數(shù),進(jìn)而能夠動態(tài)地生成簽名密鑰生成 恒等式。
接著,不重復(fù)地隨機(jī)選擇k一1個0以上M—1以下的整數(shù),按降序重 排選擇的值,設(shè)置為組分割位置列表GP (步驟S805)。
這樣地,通過隨機(jī)設(shè)定組分割位置列表GP的內(nèi)容,就能夠動態(tài)地設(shè)定 式子的分割位置,進(jìn)而能夠動態(tài)地生成簽名密鑰生成恒等式。
接著,在位于步驟S804中選擇的組分割列表GP的位置上的成員的后 面,分隔Table內(nèi)的成員的組,分為k個組(步驟S806)。
接著,檢驗i是否等于N—l (步驟S807)。即,關(guān)于全部分割密鑰組, 判定隨機(jī)分組是否己結(jié)束。
若步驟S807的判定結(jié)果是"否",通過增加i并返回步驟S803,進(jìn)一步 關(guān)于下一個分割密鑰組進(jìn)行隨機(jī)分組(步驟S808)。反之,若判定結(jié)果是 "是",就判斷為關(guān)于全部分割密鑰組的隨機(jī)分組已結(jié)束,并結(jié)束隨機(jī)分組。
圖9是示出了對圖4的分割密鑰信息表進(jìn)行了圖7的隨機(jī)洗牌和圖8 的隨機(jī)分組的處理之后的分割密鑰信息表400的狀態(tài)的圖。
圖9中示出了按照圖7的流程隨機(jī)洗牌后的結(jié)果,在MG001中,將 Table
[2] = {AG001 , AG002}的排列混洗為{AG002, AG001},將Table[1][4] ={id001, id002, id003, id004)的排列混洗為(id002, id001, id004, id003}, 將Table[2][4]二《id005, id006, id007, id008)的排列混洗為(id007, id006, id008, id005}。
此外,示出了按照圖8的流程隨機(jī)分組后的結(jié)果,在MG001中,將分 割密鑰組成員標(biāo)識符分組為(AG002)和(AG001)的2個,在AG001中分組 為(id002, id001)和(id004, id003)的2個,在AG002中分組為(id005, id006} 和(id007, id008)的2個。在如圖9所示隨機(jī)洗牌和隨機(jī)分組后的情況下,利用交換法則和結(jié)合 法則,將圖4的分割密鑰信息表400所示的簽名密鑰生成式F21
F (dl,d2,d3,d4,d5,d6,d7,d8) = (dl+d2+d3+d4) * (d5+d6+d7+
d8)
變換為與簽名密鑰生成式F21恒等的簽名密鑰生成恒等式
G, (dl,d2,d3,d4,d5,d6,d7,d8) = ((d7+d6) + (d8+d5) * ((d2+dl) + (d4+d3))。
接著,進(jìn)一步使用后述的矩陣表現(xiàn),將該簽名密鑰生成恒等式G'進(jìn)行 恒等變換。
圖10 (a)將圖9中生成的簽名密鑰生成恒等式121的右邊((d7+d6) + (d8+d5)) * ((d2+dl) + (d4+d3))予以矩陣表現(xiàn)。
在此,所述矩陣表現(xiàn)是一種數(shù)據(jù)結(jié)構(gòu),為了利用分配法則制作與簽名 密鑰生成式F恒等的式子G,例如使(dl+d2) * (d3+d4)與^* (d3 +d4) +d2* (d3+d4)相等。在此,將例如使式子3* (2+1)的值與式 子3*2+3*1的值相等這樣的關(guān)系,S卩、式展開前的值與式展開后的值相 等的關(guān)系,稱作"分配法則成立"。
在此,矩陣1000的各要素是示出關(guān)于隨機(jī)分組后的各組彼此之間實施 了式展開的情況下所產(chǎn)生的乘法的式子,分別示出使用分配法則展開了簽 名密鑰生成恒等式G'時相乘的項。
若示出更具體的例子,用Matrix[2][2]的2x2的數(shù)組表現(xiàn)矩陣1000,則 如下。
Matrix[O][O] = (d7+d6) * (d2+dl) Matrix
[l]=(d7+d6)*(d4+d3) Matrix[l]
= (d8+d5)*(d2+dl) Matrix[l][l] = (d8+d5)*(d4+d3)
在此,Matrix[n][m]是最初的加法組中的第n個要素與下一個加法組中 的第m個要素的積,分別示出了展開了簽名密鑰生成恒等式時相乘的各項 彼此之間的積。再有,假設(shè)索引n和m的號碼從O開始,在各加法組中, 越位于左側(cè)的要素,索引號越小。
例如,Matrix
成為在圖9的表中最初的加法組即AG001中的最初成員(d7+d6)與第2個加法組即AG002中的最初成員(d2+dl)相乘后 的值。再有,當(dāng)然,按照加法組的數(shù)量,數(shù)組的維數(shù)Matrix[n][m]"l"...地增加。
對于這樣的矩陣表現(xiàn)的簽名密鑰生成恒等式G,在上述的步驟S603中, 對矩陣表現(xiàn)的各要素進(jìn)行隨機(jī)選擇結(jié)合之處的處理。gP,在矩陣表現(xiàn)中, 由于屬于相同行或者相同列的要素彼此之間是至少其中之一含有共通項的 式子,因此,利用該性質(zhì),能夠彼此結(jié)合屬于相同行或者列中的式子。
以下,示出更具體的例子。首先,在圖10 (a)中,假設(shè)如1001所圖 示選擇了Matrix[O][l]和Matrix[l][l]作為結(jié)合處。在此,在被選擇為結(jié)合處 的1001的Matrix[O][l]和Matrix[l][l]的兩個要素中,共同存在著(d4+d3)。 因此,通過如
(d4+d3) * ((d7+d6) * (d8+d5)) 這樣地用(d4+d3)總括起來,結(jié)合處1001就能夠結(jié)合。
在此,通過如上所述地隨機(jī)選擇結(jié)合處,能夠動態(tài)地決定結(jié)合處,進(jìn) 進(jìn)而能夠動態(tài)地生成簽名生成密鑰恒等式G。
圖10 (b)用通常的式子的變形,例示了使用矩陣表現(xiàn)直到生成最終的 簽名密鑰生成恒等式G121為止的式變形。
圖9中生成的簽名密鑰生成恒等式G'是
G,=((d7+d6)+(d8+d5))*((d2+dl)+(d4+d3》...(式1) 若使用分配法則展開該式子,就如(式2)所示。
G,=(d7+d6)*(d2+dl)+(d7+d6)*(d4+d3) +(d8+d5) * (d2+dl)+(d8+d5)* (d4+d3)..,(式2)
另外,作為在圖10 (a)的矩陣1000內(nèi)通過步驟S603結(jié)合(式2)的 地方,若結(jié)合相當(dāng)于隨機(jī)指定的1001的項,則成為(式3)。
G,=(d7+d6)*(d2+dl)+(d8+d5)*(d2+dl) +(d4+d3) * ((d7+d6) * (d8+d5))...(式3 )
該(式3)成為經(jīng)過圖6的S601到S603而生成的簽名密鑰生成恒等式 G121。
結(jié)合分割密鑰生成單元130基于簽名密鑰生成恒等式G121,將分割密 鑰存儲單元110中存儲的分割密鑰彼此進(jìn)行結(jié)合運算,生成不同于分割密鑰111的值的結(jié)合分割密鑰141 (CD1、 CD2.....CDm)。對生成后的各
個結(jié)合分割密鑰141,賦予用于識別結(jié)合分割密鑰141的結(jié)合分割密鑰標(biāo)識 符1101,生成將圖11所示的結(jié)合分割密鑰標(biāo)識符1101和結(jié)合分割密鑰141 對應(yīng)起來的結(jié)合分割密鑰識別信息表600,將結(jié)合分割密鑰識別信息表600 寫入到結(jié)合分割密鑰存儲單元140中。
在此,在簽名密鑰生成恒等式G121與結(jié)合分割密鑰141(CD1、CD2、...、 CDm)之間,具有能夠根據(jù)結(jié)合分割密鑰141 (CD1、 CD2、 ...、 CDm)和 簽名密鑰生成恒等式121計算出簽名密鑰D的值的關(guān)系。
此外,所述結(jié)合運算是匯總多個值生成新的值的運算,作為具體的例 子,有加法、乘法和其組合等。艮卩,在所謂1+2=3的運算中,"3"是對于 所謂'T'和"2"的值實施了所謂"+"的結(jié)合運算后得到的值。
具體地說,將如前所述地隨機(jī)分組后的加法組的各要素(id002, idOOl} 和(id004,畫3}、 {id005,函6}、 {id007, id008)作為一組輸入自變量。
若按照簽名密鑰生成恒等式G'的(式3)所示的最小括弧的單位生成 結(jié)合分割密鑰141,則生成以下的7個結(jié)合分割密鑰141。
在變量cdl中存儲運算了 d7+d6的結(jié)果值,在cd2中存儲運算了 d2 +dl的結(jié)果值,在cd3中存儲運算了 d8+d5的結(jié)果值,在cd4中存儲運算 了 d2+dl的結(jié)果值,在cd5中存儲運算了 d4+d3的結(jié)果值,在cd6中存儲 運算了 d7+d6的結(jié)果值,在cd7中存儲運算了 d8+d5的結(jié)果值。即,下 式成立。
G, (dl,d2,d3,d4,d5,d6,d7,d8) =G (Cdl,cd2,cd3,cd4,cd5,cd6,cd7)
在此,在G, (dl, d2, d3, d4, d5, d6, d7, d8)的自變量的變量dl 中,代入具有對應(yīng)于id001的分割密鑰標(biāo)識符IDOOl的分割密鑰D1,同樣 地,在變量d2中代入分割密鑰D2,在各個變量d3、 d4、 d5、 d6、 d7、 d8 中分別代入分割密鑰D3、 D4、 D5、 D6、 D7、 D8。
此外,在G (cdl, cd2, cd3, cd4, cd5, cd6, cd7)的自變量的變量 cdl中代入結(jié)合分割密鑰D1,同樣地,在變量cd2中代入結(jié)合分割密鑰CD2, 在各個變量cd3、 cd4、 cd5、 cd6、 cd7中分別代入結(jié)合分割密鑰CD3、 CD4、 CD5、 CD6、 CD7。在此,CD1=D7+D6成立,CD2=D2+D1成立,CD3=D8+D5成立, CD4=D2+D1成立,CD5二D4+D3成立,CD6二D7+D6成立,CD7=D8 +D5成立。
在此,由于結(jié)合分割密鑰141是運算的結(jié)果值,因此,難以僅從該值 導(dǎo)出原來的分割密鑰111,能夠隱匿分割密鑰111。
圖11示出了在各結(jié)合分割密鑰141 (CD1、 CD2、…、CD7)中分別 賦予了結(jié)合分割密鑰標(biāo)識符1101 (ID001、 ID002、…、ID007)。
從而,若將簽名密鑰生成恒等式G'即(式3)作為使用了結(jié)合分割密 鑰141的表現(xiàn)即簽名密鑰生成恒等式G121,則如下述的(式4)所示。
G (Cdl,cd2,cd3,cd4,cd5,cd6,cd7) =(cdl * cd2)+(cd3 * cd4)+cd5 * (cd6+cd7)…(式4 )
在此,在(式4)的自變量cdl、 cd2.....cd7中代入了結(jié)合分割密鑰
141 (CD1、 CD2、…、CD7)的值的結(jié)果,與在(式3)的自變量dl、 d2、…、 d8中代入了 (Dl、 D2、 ...、 D8)的結(jié)果相等,另外,結(jié)合分割密鑰141 (CD1、 CD2、…、CD7)是對分割密鑰111 (Dl、 D2、…、D8)進(jìn)行結(jié) 合運算的結(jié)果,因此,(式4)就成為能夠得到與簽名密鑰生成式F21相同 結(jié)果的式子,因此,簽名生成單元150就利用(式4)作為簽名密鑰生成恒 等式121。
結(jié)合分割密鑰存儲單元140存儲由結(jié)合分割密鑰生成單元130生成簽 名時動態(tài)地生成的結(jié)合分割密鑰141。
簽名生成單元150將消息M10作為輸入,使用結(jié)合分割密鑰存儲單元 140中存儲的結(jié)合分割密鑰141生成簽名S30。若示出RSA簽名生成中的 例子,則不使用簽名密鑰D20,而僅使用結(jié)合分割密鑰141來生成與S = MMmodn相同運算結(jié)果的簽名S30。
接著,使用圖12和圖13,說明示出簽名生成單元150使用了結(jié)合分割 密鑰141和簽名密鑰生成恒等式G121 (式4)的簽名生成的處理的流程。
首先說明簽名S的生成方法的概略。
根據(jù)簽名密鑰生成恒等式G121的結(jié)構(gòu)決定簽名生成中使用的運算式。 例如在簽名密鑰生成恒等式G的各自變量cdl cd7中代入CD1 CD7,在簽名S是(CD1*CD2) + (CD3*CD4) +CD5* (CD6+CD7)時,使用信息M和n (=p*q),利用下述計算——
S0=(MACDl)ACD2modn 、
SI = S0 * ((MACD3)ACD4) mod n、
S=S1 * (((MACD6) * (MACD7))ACD5) mod n 生成與S=MAd modn相同的結(jié)果。
更具體地說,如(CD1頭CD2)和(CD3女CD4)和CD5女(CD6+CD7) 這樣用"+"算子分隔上式G,利用分隔后的各個式子,對消息M進(jìn)行乘方 運算,通過乘以各自的乘方運算結(jié)果,制作簽名S。
以下轉(zhuǎn)移到流程的詳細(xì)說明,但在以下的例子中,假設(shè)簽名密鑰生成 恒等式G121是(式4)。此外,假設(shè)簽名生成單元150利用使用逆波蘭表 示法表現(xiàn)了 (式4)的方法生成簽名。在此,所述逆波蘭表示法是在運算對 象的后面描述算子的表示法,是用每次出現(xiàn)算子時都對該算子的2個前面 的值和1個前面的值,計算適用了該算子的值的規(guī)則來表示的表示法。
例如,用逆波蘭表示法表示(式4),若示出加入到數(shù)組中的例子,就 成為如下的數(shù)組P。
P[13] = (CD1,CD2, * ,CD3,CD4, * ,+,CD5,CD6,CD7, + , *,+}
以下,使用圖12和圖13,關(guān)于簽名生成流程詳細(xì)地進(jìn)行說明。
首先,如上所述地用逆波蘭表示法表現(xiàn)簽名密鑰生成恒等式G,將其 表現(xiàn)為數(shù)組P (步驟S1201)。
接著,設(shè)定i和j為1,設(shè)定Chk和Flag為O,設(shè)定N為數(shù)組P的尺寸, 將P[O]推入到棧中(步驟S1202)。在此,i是當(dāng)前著眼的數(shù)組的索引,j表 示當(dāng)前堆積在棧中的分割結(jié)合密鑰的個數(shù)。此外,Chk表示是否確認(rèn)了在 數(shù)組中直到哪個索引其算子是否為"+"。在此,在使用上述的j,從當(dāng)前訪 問的數(shù)組P[i]中判定j —l個前面的算子是否是"+",判定是否是"+"算子的 有效區(qū)間內(nèi)時,利用Chk。此外,利用Flag作為表示是否是"+"算子的有 效區(qū)間內(nèi)的標(biāo)志。更具體地說,利用在簽名密鑰生成恒等式G的分隔點的 判定中。
接著,判別P[i]是否是結(jié)合分割密鑰(步驟S1203)。 若步驟S1203的判別結(jié)果是"是",即是結(jié)合分割密鑰,就將P[i]的值推 入到棧中,為了移動l個數(shù)組P中的訪問而增加i,此外,由于棧中堆積的分割結(jié)合密鑰的個數(shù)增加,因此增加j (步驟S1204)。
反之,若判別結(jié)果是"否",即P[i]是算子,則使堆棧中堆積著的高位2 個結(jié)合分割密鑰出棧,分別設(shè)為Vall、 Val2 (步驟S1205)。
接著,判定i+j — 1是否大于Chk的值,并且i+j — 1是否在N以下(步 驟S1206)。
若步驟S1206的判定結(jié)果是"是",就將Chk設(shè)定為i+j — l的值。艮卩, 直到數(shù)組P的第i+j — l個,是否是"+"的判定已結(jié)束,因此更新Chk的值。 反之若是"否",就向步驟S1208轉(zhuǎn)移處理。再有,在步驟S1206也確認(rèn)了i 十j一l是否在N以下,是為了防止Chk表示超過了數(shù)組尺寸的位置。
接著,判定是否jX)并且Flag二l,并且P[Chk]是否是"+"算子(步驟 S1208)。
若步驟S1208的判定結(jié)果是"是",就將Flag設(shè)定為0 (步驟S1209)。 反之,若判定的結(jié)果是否,就向處理"A"轉(zhuǎn)移處理。 下面,使用圖13,關(guān)于圖12的流程的繼續(xù)進(jìn)行說明。 首先,判定Vall和Val2的類型(步驟S1301)。
步驟S1301的判別結(jié)果,在Vall和Val2兩者是結(jié)合分割密鑰的情況下, 向步驟S1310轉(zhuǎn)移處理。
反之,在步驟S1301的判別結(jié)果,Vall和Val2的某一個是結(jié)合分割密 鑰,另一個是簽名乘方中間值的情況下,向步驟S1320轉(zhuǎn)移處理。此處的 所述簽名乘方中間值,示出用至少一個以上的結(jié)合分割密鑰將消息M10乘 方后的值,成為在計算簽名S30的過程中的中間值。具體地說,后述的S0 和Sl等相當(dāng)于它。
反之,在步驟S1301的判別結(jié)果是Vall和Val2兩者都是簽名乘方中間 值的情況下,向步驟S1330轉(zhuǎn)移處理。
以下,關(guān)于在S1301處理后分別分支為S1310、 S1320、 S1330時的各 處理以后的個別處理進(jìn)行說明。
以下,關(guān)于處理轉(zhuǎn)移到步驟S1310的情況進(jìn)行說明。
首先,判別Flag (步驟S1310)。
在步驟S1310的判別結(jié)果是Falg二O,即是"+"算子的有效區(qū)間內(nèi)的情 況下,向步驟S1311轉(zhuǎn)移處理。接著,判別P[i]的算子(步驟S1311)。
若步驟S1311的判別結(jié)果是P[i]是"+"算子,則向步驟S1312轉(zhuǎn)移處理。 反之,若步驟S1311的判別結(jié)果,P[i]是'^"算子,則向步驟S1313轉(zhuǎn)
移處理。
在步驟S1312中,將(MAVal) * (MAVal2) modn的值推入棧中(步 驟S1312)。
在步驟S1313中,將運算了 ((MAVall) AVal2) modn后的值推入到 桟中(步驟S1313)。
在步驟S1312、 S1313的處理之后,設(shè)j二j一2,向步驟S1341轉(zhuǎn)移處 理(步驟S1314)。在此,設(shè)j二j一2是因為,在一系列計算中使用結(jié)合分割 密鑰(相當(dāng)于Vall和Val2),因此要減少堆積在棧中的結(jié)合分割密鑰的數(shù) 量。再有,在步驟S1312和S1313中,將計算結(jié)果推入到棧中,但由于該 值是上述的簽名乘方中間值而不是結(jié)合分割密鑰,因此將j減2。
在步驟S1341中,由于對于該區(qū)間的運算已結(jié)束,因此,重新將Flag 設(shè)定為l (步驟S1341)。即,將Flag設(shè)定為0的期間是從判定為用"+"算 子分隔數(shù)組P[Chk]時開始,直到執(zhí)行S1312和S1313的處理而更新j的值 為止的期間,除此以外的處理是在Flag二l的狀態(tài)下處理各步驟。換言之, 從上一次判定為P[Chk]的用"+ "算子的分隔,到判定為下一個P[Chk]的 用"+ "算子分隔為止,持續(xù)Fkg二l的狀態(tài)。
反之,在步驟S1310的判別結(jié)果是Flag二l的情況下,即、是利用算子 "+"分隔的區(qū)間外的情況下,向步驟S1315轉(zhuǎn)移處理。
接著,在步驟S1315中,判別P[i]的算子(步驟S1315)。
若步驟S1315的判別結(jié)果為P[i]是"+"算子,就向步驟S1316轉(zhuǎn)移處理。
反之,若步驟S1315的判別結(jié)果為P[i]是'^"算子,就向步驟S1317轉(zhuǎn) 移處理。
在步驟S1316中,將運算了 Vall+Va12后的結(jié)果推入棧中(步驟
51316) 。
在步驟S1317中,將運算了 Vall々Val2'后的結(jié)果推入到棧中(步驟
51317) 。再有,在此,在步驟S1316和步驟S1317中推入的值也看作是分割結(jié)合密鑰。即,將作為乘方中間值以外而推入的值看作是分割結(jié)合密鑰。
在步驟S1316和S1317處理之后,向步驟S1340轉(zhuǎn)移處理。以后敘述 步驟S1340以后的處理。
到此為止是關(guān)于S1310以后的個別處理的說明。
以下,關(guān)于向步驟S1320轉(zhuǎn)移了處理的情況,即、是Vall和Val2的組、 結(jié)合分割密鑰和簽名乘方中間值的組的情況進(jìn)行說明。 首先,判別P[i]的算子(步驟S1320)。
若步驟S1320的判別結(jié)果為P[i]是"+"算子,則向步驟S1321轉(zhuǎn)移處理。 反之,若步驟S1320的判別結(jié)果為P[i]是"f算子,就向步驟S1322轉(zhuǎn) 移處理。
以下,首先關(guān)于向步驟S1321分支時的流程進(jìn)行說明。
在步驟S1321中,假設(shè)結(jié)合分割密鑰的值為Vall,乘方中間值為Va12, 向棧推入運算了 (MAVall)女Val2modn后的值(步驟S1321)。
在步驟S1322中,假設(shè)結(jié)合分割密鑰的值為Val2,乘方中間值為Vall, 向棧推入運算了 VallAVal2modn后的值(步驟S1322)。
步驟S1321和S1322處理之后,向步驟S1340轉(zhuǎn)移處理(步驟S1340)。 再有,后面敘述步驟S1340以后的處理。
到此為止是關(guān)于S1310以后的個別處理的說明。 (S1330以后的個別處理)
以下關(guān)于向步驟S1330轉(zhuǎn)移了處理的情況,即、Vall和Val2兩者是簽
名乘方中間值的情況進(jìn)行說明。
在步驟S1330中,利用乘方中間值即Vall和Val2,將運算了 Vall * Val2
modn后的值推入到棧中,并向步驟S1341轉(zhuǎn)移處理(步驟S1330)。 到此為止是關(guān)于S1330以后的個別處理的說明。 以上,結(jié)束關(guān)于S1310、 S1320、 S1330以后的個別流程的說明。 (S1310、 S1320、 S1330以后的共通處理)
以下,關(guān)于在S1310、 S1320、 S1330以后成為共通的流程的部分進(jìn)行 說明。
在步驟S1316或S1317,或者S1321或S1322處理之后,減小j,否則 不進(jìn)行任何處理而向步驟S1341轉(zhuǎn)移處理(步驟S1340)。在此,減小j是因為,在步驟S1316或S1317的情況下,使用結(jié)合分割密鑰即Vall和Va12, 僅推入被看作結(jié)合分割密鑰的值,因此,減1的結(jié)合分割密鑰減少。此外 還因為,在步驟S1321或S1322的情況下,使用乘方中間值和結(jié)合分割密 鑰生成了新的乘方中間值,因此,在該生成中使用的結(jié)合分割密鑰從棧中 消失。
在步驟S1314或者S1340處理之后,置Flag為l,向步驟S1342轉(zhuǎn)移 處理(步驟S1341)。
在步驟S1341的處理之后,判別是否為i〈N (步驟S1342)。
若步驟S1342中的判別結(jié)果是"否",就關(guān)于數(shù)組P的下一個要素繼續(xù) 進(jìn)行同樣的處理,因此,在步驟S1343中增加i,并向B轉(zhuǎn)移處理。
反之,若步驟S1342中的判別結(jié)果是"是",則簽名的生成已結(jié)束,所 以將桟的值設(shè)為簽名S30,輸出簽名S30 (步驟S1344),結(jié)束簽名生成。
利用以上步驟,使用簽名生成恒等式G'和結(jié)合分割密鑰141生成了對 消息M10的簽名S30。
在圖13中,關(guān)于簽名生成流程圖進(jìn)行了說明。在此,使用圖14示出 利用了圖13的流程時的棧的樣子。
圖14是示出了在圖12和圖13中說明的簽名生成流程中的棧的樣子的圖。
對于用逆波蘭表示法表現(xiàn)了簽名生成恒等式G121的P,依次說明簽名 生成。
首先,根據(jù)P[13]二(CD1, CD2, *, CD3, CD4, *, +, CD5, CD6, CD7, +, *, +},向棧中推入P
的結(jié)合分割密鑰CD1和P[1]的結(jié)合分 割密鑰CD2 (步驟S1401)。這時,i和j都是2, i+j — l是3,因此,設(shè)定 Chk的值為3。
接著,由于P[2]是算子"火",因此使棧的高位2個的值出棧,由于Flag =0并且是算子"*",因此,將(MACD1) ACD2modn作為SO,向棧中推 入SO (步驟S1402)。在該處理結(jié)束了的階段,i=2、 j=0、 Chk二3。此夕卜, 利用步驟S1341的工作,將Flag的值返回到1。
接著,向棧中推入P[3]的結(jié)合分割密鑰CD3和P[4]的結(jié)合分割密鑰CD4 (步驟S1403)。這時,i=4、 j=2, Chk的值被更新為5。再有,由于P[Chk〗不是算子"+",因此Flag的值仍是1。
接著,由于P[5]是算子'、",因此使棧的高位2個的值出棧,此外,由 于i-5、 j二2,因此,Chk被更新為6。在此,P[Chk]的算子是"+",因此, Flag的值被更新為0。由于Flag=0并且P[5]的算子是"女",因此,將 (MACD3) ACD4modn作為Sl,向棧中推入S1,將Flag更新為1 (步驟 S1404)。在該處理結(jié)束了的階段,i=5、 j=0、 Chk=6、 Flag=l。
接著,由于P[6]是算子"+", Flag=l,因此使棧的高位2個的值S0和 SI出棧,將S0女Slmodn的運算結(jié)果作為S2,向桟中推入S2。
接著,依次向棧中推入相當(dāng)于P[7]、 P[8]、 P[9]的結(jié)合分割密鑰CD5、 CD6、 CD7 (步驟S1405)。
接著,P[10]是算子"+",這時的i的值是10, j的值是3, Flag二l并 且P[12]二"+",因此設(shè)定Flag為O。之后,使桟的高位2個的值CD6和 CD7出棧,由于Flag=0并且是算子"+",因此,將運算了 (MACD6) * (MACD7) modn后的值作為S3,向棧中推入S3 (步驟S1406)。
接著,由于P[11]是算子"女",因此使棧的高位2個的S3和CD5出棧。 這時S3是簽名乘方中間值,CD5是結(jié)合分割密鑰,是算子"*",因此,將 運算了 S3ACD5modn后的值作為S4,推入到棧中(步驟S1407)。
接著,由于P[12]是算子"+",因此使棧的高位2個的S2和S4出棧。 這時,S2和S4都是簽名乘方中間值,因此,將運算了 S2々S4modn后的 結(jié)果推入到結(jié)果桟中(步驟S1408)。
利用以上步驟,就將運算了S2女S4modn后的結(jié)果作為簽名S30,輸 出簽名S30,且簽名生成結(jié)束。
這樣地,在本實施方式中, 一切都不利用簽名密鑰D21的值,而能生 成簽名S30。另外,由于在生成簽名時動態(tài)地生成結(jié)合分割密鑰141,因此 能使用每次不同的結(jié)合分割密鑰來生成簽名。另外,不僅簽名密鑰D,連 RSA簽名中的秘密信息(p、 q)的值也都不利用就能生成簽名。此外,由 于在每次執(zhí)行簽名生成處理時簽名生成恒等式G也每次不同,因此,即使 取隨機(jī)數(shù)據(jù)的收集結(jié)果的差分,也難以確定成為用于計算簽名密鑰d的密 鑰候補(bǔ)的結(jié)合分割密鑰。另外,即使特定了結(jié)合分割密鑰,為了根據(jù)結(jié)合 分割密鑰求簽名密鑰D,也要確定簽名密鑰生成式G,必須要分析能取得簽名密鑰生成恒等式G的所有類型,簽名密鑰D的分析非常困難。另外, 由于簽名生成流程也每次不同,生成簽名時的功率和簽名生成處理時間也 變化,因此,有對于功率差分攻擊和定時攻擊也很安全的效果。再有,在本實施方式1中,隨機(jī)洗牌和隨機(jī)分組結(jié)合分割密鑰141,然 后使用矩陣表現(xiàn)生成了簽名密鑰生成恒等式G,但這些只不過是一個實施 例,只要使用交換法則、結(jié)合法則和分配法則等,從簽名密鑰生成式F21 生成簽名密鑰生成恒等式G就可以,但也可以是本實施方式中說明的方法 以外的方法。再有,在本實施方式1中,通過彼此結(jié)合運算己預(yù)先存儲在分割密鑰 存儲單元中的分割密鑰來生成了結(jié)合分割密鑰,但用結(jié)合分割密鑰生成單 元生成的結(jié)合分割密鑰也可以是將結(jié)合分割密鑰彼此結(jié)合運算的值。若這 樣做,由于能取結(jié)合分割密鑰的值的變動增加,因此就具有更難確定簽名 密鑰D的效果。再有,在本實施方式1中,通過將已預(yù)先存儲在分割密鑰存儲單元中 的分割密鑰彼此進(jìn)行結(jié)合運算來生成了結(jié)合分割密鑰,但只要生成與作為 使用了簽名密鑰D的簽名生成結(jié)果的簽名S相同的結(jié)果就可以,也可以使用對生成相同結(jié)果的處理沒有影響的冗余密鑰進(jìn)行處理。此外,冗余密鑰 也可以設(shè)定為產(chǎn)生了隨機(jī)數(shù)的值。在利用以隨機(jī)數(shù)值為代表的冗余密鑰的 情況下,也可以設(shè)定為用簽名密鑰生成恒等式生成的式子也包含該值。通 過利用這樣的冗余密鑰,利用在原來的處理中不需要的信息,具有使非法 分析者的分析更困難的效果。(實施方式2)以下,關(guān)于本發(fā)明的實施方式2進(jìn)行說明。在實施方式1中說明了 RSA簽名生成中的本發(fā)明的實施例,但在本實 施方式2中關(guān)于應(yīng)用于ECDSA(Elliptic Curve Digital Signature Algorithm艮P , 橢圓曲線數(shù)字簽名算法)的例子進(jìn)行說明。ECDSA是基于橢圓曲線上的離 散對數(shù)問題考慮的簽名方法。由于ECDSA自身是公知技術(shù),因此省略詳細(xì) 的說明,以下說明對ECDSA適用了本發(fā)明的情況下的實施例。再有,在下 述的圖15的說明中,除了使用分割隨機(jī)數(shù)信息和結(jié)合隨機(jī)數(shù)信息等進(jìn)行不在存儲器上出現(xiàn)秘密信息地計算的處理以外的處理流程,都相當(dāng)于通常的ECDSA簽名的生成流程。圖15是關(guān)于適用了本發(fā)明時的ECDSA的流程概要進(jìn)行說明的圖。再有,適用了本發(fā)明時的簽名生成單元100的結(jié)構(gòu)、簽名密鑰生成恒 等式G121和結(jié)合分割密鑰141的制作方法與實施方式l相同,故省略說明。在本實施方式2中,關(guān)于適用在ECDSA中時與本實施方式1不同的部 分進(jìn)行說明。ECDSA中的簽名生成式如下式所示。S= (h+r女d) /kmodq在此,S是簽名,d是簽名密鑰,r是基點P的k倍點的x坐標(biāo),q是 基點P的位數(shù)。此外,h是M的散列值,表示為h-Hash (M), M是簽名生成對象消 息,Hash (M)示出計算簽名生成對象消息M的散列值。在ECDSA中,必須要保密的信息是在步驟S1502中利用的隨機(jī)數(shù)k 和在步驟S1504中利用的簽名密鑰d的值。在此,必須要保密隨機(jī)數(shù)k的 理由是,在知道了簽名對象消息M和簽名(r、 S)的情況下,能夠利用下 式計算簽名密鑰d。h二Hash(M)d=(k*S-h)/rmodq以后,使用圖15,關(guān)于保密了簽名密鑰d和隨機(jī)數(shù)k這2個信息的情 況下的ECDSA的簽名生成流程進(jìn)行說明。再有,未在圖1的簽名生成裝置 100示出簽名生成單元裝置100,但具有保持著橢圓曲線的系統(tǒng)參數(shù)(,2 =xA3+a*x+b、定義體GF (p)、基點P、基點P的位數(shù)q),生成隨機(jī)數(shù) 的隨機(jī)數(shù)生成單元。首先,對于簽名生成對象消息M,計算散列值Hash(M),將該散列值 設(shè)為h (步驟S1501)。接著,對橢圓曲線的基點P產(chǎn)生隨機(jī)數(shù)k,計算P的k倍點,將k倍后 的點設(shè)為R (步驟S1502)。這時,由于隨機(jī)數(shù)k是秘密信息,因此,生成 多個分割隨機(jī)數(shù)信息,使得不直接在存儲器中出現(xiàn)隨機(jī)數(shù)k的值,僅使用 生成的分割隨機(jī)數(shù)信息計算P的k倍點。以后,使用圖16,關(guān)于步驟S1502中的該處理進(jìn)行詳細(xì)說明。接著,將R的x坐值設(shè)為r (步驟S1503)。接著,進(jìn)行與使用了隨機(jī)數(shù)k和簽名密鑰d的式子S^ (h+r*d) /k modq恒等的運算,不直接在存儲器上保持隨機(jī)數(shù)k和簽名密鑰d的值,取 而代之,在存儲器上保持分割隨機(jī)數(shù)信息和已預(yù)先分割了簽名密鑰d的分 割密鑰,使用它們生成簽名S (步驟S1504)。以后,使用圖17,關(guān)于步驟S1504中的該處理進(jìn)行詳細(xì)說明。最后,根據(jù)步驟S1503和S1504的結(jié)果,輸出(r, S)的對作為簽名, 并結(jié)束ECDSA的簽名生成。下面,使用圖16中示出的流程圖,關(guān)于步驟S1502的詳細(xì)內(nèi)容進(jìn)行說明。首先,生成m個隨機(jī)式Rl...Rm,制作運算其積的隨機(jī)數(shù)生成式T。 在此,Rl...Rm的積相當(dāng)于隨機(jī)數(shù)k (步驟S1601)。 T二Rl頭R2頭…Rm另外,進(jìn)一步將Rl...Rm分別分割為更細(xì)小值(分割隨機(jī)數(shù)信息)的和。T = 2t(l,h)*2:t(2, i)H2t(m,j)…(式T) 在此St(l,h)=t(l,l)+t(l,2)+...+t(l,h) 2t(2,i)=t(2,l)+t(2,2)+.. 十t(2,i)i:t(m,j)=t(m,l)+t(m,2)+ .. +t(m,j)t (1, 1)、 t (1, 2)、…、t (1, h)分別是分割隨機(jī)數(shù)信息,式St (1, h)表示h個分割隨機(jī)數(shù)信息的和。 此外,h、 i、 j...是任意的數(shù)。接著,對于隨機(jī)數(shù)生成式T的項即St (1, h)、 (2, i)、…、St (m, j)中使用著的分割隨機(jī)數(shù)信息t (x, y),即、t (1, 1)、 t (1, 2)、…、t (1, h)、 t (2, 1).....t (2, i)、 t (m, O、…、t (m, j),分別生成并設(shè)置隨機(jī)數(shù)(步驟S1602)。接著,判定2t (1, h)、 2:t (2, i).....St (m, j)的值是否分別與q互為質(zhì)數(shù)(步驟S1603)。在此,所謂的"與q互為質(zhì)數(shù)"的條件是為了隨機(jī)數(shù)k具有逆元而必須 的條件。若歩驟S1603的判定結(jié)果是"否",就向步驟S1602返回處理,再次進(jìn) 行上述的隨機(jī)數(shù)的生成和設(shè)置。反之,若步驟S1603的判定結(jié)果是"是",就制作與隨機(jī)數(shù)生成式T恒 等的隨機(jī)數(shù)生成恒等式U (步驟S1604)。由于能夠用與實施方式1中的從簽名密鑰生成式F21生成簽名密鑰生 成恒等式G121的方法同樣的方法,來進(jìn)行步驟S1604中的從隨機(jī)數(shù)生成式 T制作隨機(jī)數(shù)生成恒等式U,故省略說明。接著,基于隨機(jī)數(shù)生成恒等式U制作結(jié)合隨機(jī)數(shù)信息(步驟S1605)。 在此,結(jié)合隨機(jī)數(shù)信息相當(dāng)于實施方式1中的結(jié)合分割密鑰。從而,步驟 S1605的結(jié)合隨機(jī)數(shù)信息的制作方法與實施方式1中的結(jié)合分割密鑰的制 作相同,故省略說明。接著,使用隨機(jī)數(shù)生成恒等式U和在步驟S1605中制作的結(jié)合隨機(jī)數(shù) 信息,計算基點P的U倍點U^P,將該計算結(jié)果設(shè)為R (步驟S1606)。這時,在隨機(jī)數(shù)生成恒等式U的式子中代入結(jié)合隨機(jī)數(shù)信息的值來計 算出的結(jié)果,對應(yīng)于在ECDSA的本來算法中利用的隨機(jī)數(shù)k。 g卩,不直接 在存儲器上出現(xiàn)與S1502的隨機(jī)數(shù)k相對應(yīng)的值,而僅利用將多個分割隨 機(jī)數(shù)進(jìn)行結(jié)合運算后的值即結(jié)合隨機(jī)數(shù)信息,就能夠計算出P的U倍點。步驟S1606進(jìn)行橢圓曲線上的點彼此之間的加法和點的n倍點運算。 在此,與實施方式1對應(yīng)地說明該計算,在實施方式1中,RSA的簽名生 成處理的乘方運算中的"乘方運算"對應(yīng)于橢圓曲線上的"n倍點運算",RSA 的簽名生成處理的"乘法"對應(yīng)于橢圓曲線上的加法。從而,在RSA的簽名 生成流程中,利用變更了適用的運算種類后的流程,就能夠進(jìn)行橢圓曲線 上的點彼此之間的加法和n倍點運算。在此,為了容易理解,關(guān)于步驟S1601 S1606舉具體例迸行說明。首先,在步驟S1601中,假設(shè)用上述方法生成的隨機(jī)數(shù)生成式T是以下的式子。T二i;t(l,4)線(2,4)…(式T) St(2,4)=t(2,l)+t(2,2)+t(2,3)+t(2,4)接著,對t (1, 1)、 t (1, 2)、…、t (1, 4)、 t (2, 1)、 t (2, 2)、…、 t (2, 4)分別設(shè)定隨機(jī)數(shù)值(步驟S1602)。這時,重新進(jìn)行隨機(jī)數(shù)值的設(shè)定,直到Et(l,4)與St(2,4)互為質(zhì)數(shù)。(步 驟S1603)接著,根據(jù)隨機(jī)數(shù)生成式T= (t(l,l)+t(l,2)+t(l,3)+t(1,4))* (t(2,l)+t(2,2)+t(2,3)+t(2,4)), 利用交換法則、結(jié)合法則、分配法則,例如 T=(((t(l,l)+t(l,3))+((t(l,2)+t(l,4》)*((t(2,l)+t(2,3》+(((t(l,l)+t(l,4))+((t(l,2)+t(l,3》) *((t(2,2)+t(2,4))這樣地將隨機(jī)數(shù)生成恒等式U進(jìn)行恒等變換,將自變量ul u6設(shè)定為ul=t (U) +t (1,3) u2=t (1,2) +t (1,4) u3=t (2,1) +t (2,3) u4=t (l,l) +t (1,4) u5=t (1,2) +t (1,3) u6=t (2,2) +t (2,4)(步驟S1605)。 這樣地,隨機(jī)數(shù)生成恒等式U就成為U (Ul,u2,u3,u4,u5,u6)=(ul+u2) *u3+ (u4+u5) *u6。 在自變量ul中代入結(jié)合隨機(jī)數(shù)信息U1,在自變量u2中代入結(jié)合隨機(jī) 數(shù)信息U2,同樣地,在自變量u3 u6中代入結(jié)合隨機(jī)數(shù)信息U3 U6。U=(U1+U2) *U3+(U4+U5) *U6 此外,能用U * P=U3 * (Ul * P+U2 * P)+U6 * (U4 * P+U5 * P) 計算基點P的U倍點U女P。在此,由于所述隨機(jī)數(shù)生成式T和隨機(jī)數(shù)生成恒等式U恒等,因此, U女P與I^P成為相同結(jié)果。另外,由于T是計算隨機(jī)數(shù)k的隨機(jī)數(shù)生成 式,因此,不在存儲器上裝載隨機(jī)數(shù)k和在其生成中使用的隨機(jī)數(shù)生成式T, 就能計算P的k倍點。此外,由于隨機(jī)數(shù)生成恒等式U和對應(yīng)的結(jié)合隨機(jī) 數(shù)信息等每次都隨機(jī)生成,因此,能夠使隨機(jī)數(shù)k的值的分析變得困難。 這樣,實施方式2的簽名生成單元就能夠使ECDSA簽名生成流程的分析變 得困難。接著,使用圖17說明圖15的步驟S1504的詳細(xì)流程。首先,生成m個隨機(jī)值,分別作為分割冗余密鑰dul、 du2、 ...、 dum, 將相加了各分割冗余密鑰后的dul+du2+…+dum作為分割冗余密鑰生成 式Du (步驟S1701)。Du=dul+du2+...+dum...(式Du)這是用于不在存儲器上直接出現(xiàn)式S=(h+r*d)/k mod q中的1 / k 而進(jìn)行計算的。即,由于1 /k=Du/ (Du*k) 二dul / (Du * k)+du2 / (Du * k)+...+dum / (Du * k) 并且,在S1502中生成的U與k等效,因此,只要取代l/k,計算dul / (Du*U)+du2 / (Du*U)+... +dum / (Du*U)就可以。 另外,若假設(shè)上式的Du*U為式A,用與Du*U恒等的式子Bl、 B2…Bm置換Du女U,則成為1 /k=(dul /Bl)+(du2/B2)+…+(dum/Bm), 若將該(dul/B1)置換為C1,同樣地將(du2 / B2)置換為C2,……,將 (dum / Bm)置換為Cm,則成為1 /k=Cl+C2 + ...Cm。 結(jié)果,為了計算簽名S,只要計算 S=(h/k+r"/k)modn =(h*(Cl+C2+...+Cm)+r*F*(Cl+C2 + ...+Cm)) modn =(h*(Cl+C2 + ...+Cm) +r*H) modn就可以。在此,上式中的F示出了在實施方式1中示出的下式 F (dl,d2,d3,d4,d5,d6,d7,d8)=(dl+d2+d3 + d4) * (d5+d6+d7 + d8) 此外,11是與式子?*((:1+€2+...+011)恒等的式子,F(xiàn)是上述的簽名密鑰生成式。以下,返回到步驟S1702以后的流程圖的說明。下面,判定分割冗余密鑰生成式Du的值是否與q互為質(zhì)數(shù)(步驟 S1702)。若步驟S1702的判定結(jié)果是"否",為了進(jìn)一步生成別的dul…dum,向 步驟S1701返回處理。反之,若步驟S1702的判定結(jié)果是"是",就將在步驟S1502中求得的 隨機(jī)數(shù)生成恒等式U和分割冗余密鑰生成式Du相乘后的式子U*Du作為 A,生成m個與A恒等的式子,作為B1、 B2、…、Bm (步驟S1703)?;谠诓襟ES1703中生成的恒等式B1、 B2、…Bm,生成結(jié)合分割密 鑰bij (i、 j = l、 2、)(步驟S1704)。步驟S1703和S1704將A看作實施方式1中的簽名密鑰生成式F21,將構(gòu)成了 A的式子的分割冗余密鑰dul、 du2.....dum和在步驟S1504中制作的結(jié)合隨機(jī)數(shù)信息U1、 U2.....Ui看作分割密鑰lll,通過進(jìn)行與實施方式l同樣的處理,能夠生成恒等式B1、 B2、…Bm和與各個恒等式相對應(yīng)的結(jié)合分割密鑰bij (i、 j = l、 2、…)。再有,在實施方式1中,僅制作了 1個簽名密鑰生成恒等式G121,但 在此生成m個相當(dāng)于簽名密鑰生成恒等式G121的恒等式B1等,分別制作 m組結(jié)合分割密鑰的組。接著,使用在步驟S1701中生成的m個分割冗余密鑰dul、 du2、…、 dum和m個恒等式Bl、 B2、…Bm,制作如下的m個Cl、 C2、…、Cm (步 驟S1705)。Cl=dul /Bl C2=du2 /B2Cm=dum / Bm這時,能夠利用B1、 B2、 Bm還同與A恒等的情況和Du二dul+du2 +... +dum的性質(zhì),將CI+C2+... +Cm如下地進(jìn)行式變形。 Cl+C2 + ... + Cm=(dul /Bl)+(du2/B2)+...+(dum/Bm) =(dul+du2+."+dum)/A =(dul+du2+...+dum) /U*Du =1 /U由于U相當(dāng)于步驟S1502的隨機(jī)數(shù)k,因此,1/Umodq的值就相當(dāng) 于kA—l mod q。這樣,就能夠不在存儲器上裝載k的值,而計算kA_l mod q的值。此外,由于隨機(jī)地生成恒等式Bl...Bm和分割冗余密鑰dul、 du2.....dum等,因此,能夠每次進(jìn)行簽名生成時都使kA— 1 mod q的計算過程動態(tài) 地變化。這樣,實施方式2的簽名生成裝置就能夠使ECDSA簽名生成流程 的分析變得困難。接著,使用簽名密鑰生成式F和在步驟S1705中生成的m個Ci (i=l, 2,…,m)式,生成(式E)(步驟S1706)。F女(Cl+C2+…+Cm)…(式E) 接著,生成與(式E)恒等的(式H')(步驟S1707)。 接著,基于(式H'),使用實施方式1中說明過的流程,對簽名密鑰生成式F的要素即分割密鑰和C1、 C2.....Cm的要素值進(jìn)行結(jié)合運算,將結(jié)合運算后的值作為結(jié)合分割密鑰(步驟S1708)。再有,由于通過將實施 方式l中的簽名密鑰生成式F21看作(式E),將C1、 ...、 Cm的要素值和 簽名密鑰生成式F21的要素值di看作實施方式1中的簽名密鑰生成式F21 的要素值di,步驟S1807和步驟S1708的處理就成為與實施例1同樣的處 理,故省略詳細(xì)的說明。這樣做,恒等式H'就能夠表示作使用了結(jié)合分割 密鑰的H。這樣,由于每次隨機(jī)地生成對應(yīng)于恒等式H的結(jié)合分割密鑰hi,因此, 能夠使ECDSA簽名生成流程的分析變得困難。接著,使用在步驟S1501中計算出的散列值h、在步驟S1705中生成的 式子Cl、 C2、…、Cm、在步驟S1707中生成的恒等式H、在步驟S1503 中計算出的點R的X坐標(biāo)的值r,用下式S=h*(Cl+C2 + ...+Cm)+r*Hmodq 計算與S二(h+r女d)/kmodq 恒等的運算,將計算值作為S (步驟S1709)。以上,實施方式2的簽名生成裝置能夠不直接在存儲器上出現(xiàn)隨機(jī)數(shù) 值k的值和簽名密鑰d的值而生成簽名S。再有,在步驟S1709的運算中,期望按照h女(Cl+C2 +…+Cm)的運算結(jié)果值不直接出現(xiàn)在存儲器上的順序進(jìn)行運算。這是因為能從^1*(<:1+€2+...+011)的值復(fù)原隨機(jī)數(shù)信息即k。關(guān)于運算順序以后敘述具體例,故省略在此的說明。 接著,舉具體例說明圖17的流程。首先,生成3個隨機(jī)數(shù),分別作為分割冗余密鑰dul、 du2、 du3 (步驟 S1701)。Du=dul+du2+du3在此,在Du與q不是互為質(zhì)數(shù)的情況下,反復(fù)進(jìn)行分割冗余密鑰的生 成,直到Du與q互為質(zhì)數(shù)(步驟S1702)。接著,轉(zhuǎn)移到使用了隨機(jī)數(shù)生成恒等式U的計算的說明,但在以下的 說明中,假設(shè)隨機(jī)數(shù)生成恒等式U為在圖16的說明中生成的以下的(式U)。U=(U1+U2)*U3+(U4+U5)*U6".(式U) 這時,(式A)例如變?yōu)槿缦隆?(U 1 + U2) * U3+(U4+U5) * U6)*(dul+du2+du3) …(式A)接著,生成與(式A)恒等的(式B1)、(式B2)、(式B3)。 作為恒等式Bl的計算過程,首先生成如下的式A的恒等式1, (((Ul +U2) * U3)+((U4+U5) * U6)) * (dul +du2)十((U1 +U2) * U3十(U4+U5) * U6) * du3 基于生成的恒等式l,使結(jié)合分割密鑰分別如下。 bll=(Ul+U2)*U3 bl2=(U4+U5)*U6 bl3二dul+du2bl4=(Ul +U2) * U3+(U4+U5) * U6 bl5=du3于是,使用式A的恒等式1和上述結(jié)合分割密鑰,恒等式Bl變?yōu)橐?下的(式B1)。(bll+bl2)*bl3+bl4*bl5...(式B1)同樣地,作為恒等式B2的計算過程,首先生成如下的式A的恒等式2, (Ul * U3+U2 * U3 +U4女U6+U5大U6) *((dul)+(du2+du3)) 關(guān)于生成的恒等式B2,使結(jié)合分割密鑰分別如下。b21=Ul^U3b22^U2女U3b23二U4女U6b24二U5女U6b25=dulb26=du2+du3于是,使用式A的恒等式2和上述結(jié)合分割密鑰,恒等式B2變?yōu)橐?下的(式B2)。B2=(b21+b22+b23+b24)*(b25+b26),..(式B2) 另外,同樣地,作為恒等式B3的計算過程,首先生成如下的式A的 恒等式3,((U1*U3+ U4*U6)+(U2*U3+U5*U6)) *(dul+du2+du3)按照生成的恒等式3,使結(jié)合分割密鑰分別如下。b31=Ul*U3+U4*U6 b32=U2*U3+U5*U6b33=dul+du2+du3于是,使用式A的恒等式3和上述結(jié)合分割密鑰,恒等式B3變?yōu)橐?下的(式B3)。(b31+b32)*b33...(式B3)接著,使用生成的(式B1)、(式B2)、(式B3),在步驟S1705中生成 以下的3個式子C1、 C2、 C3。Cl=dul /Bl=dul /((bll+bl2)*bl3+bl4*bl5)...(式C1) C2=du2 / B2 = du2 / ((b21 + b22+b23+b24) * (b25 + b26)…(式C2) C3=du3 / B3 = du3 / ((b31 + b32)*b33)...(式C3) 這吋,如上所述地Cl+C2+C3二kA ( — 1) modq成立。 在此,將ECDSA的簽名密鑰d分割為8個分割密鑰,設(shè)簽名密鑰生成 式F為如下的(式F)。F=(dl+d2+d3+d4)*(d5+d6+d7+d8)...(式F) 這時,接著在步驟S1706中生成的(式E)成為(dl+d2 + d3 + d4)*(d5 + d6 + d7 + d8)* (Cl + C2 + C3)(步驟 S1706)。接著,從(式E)生成與(式E)恒等的(式H)(步驟S1707)。 在此,設(shè)(式E)的恒等變換例為H=((d 1 + d3)+(d2+d4)) * ((d6+d7)+(d8+d5)) * C1 +((d2+d3)+(dl + d4))*((d6+d8)+(d7+d5))*(C2+C3), 設(shè)結(jié)合分割密鑰分別為Hl=dl+d3H2=d2+d4H3=d6+d7H4=d8+d5H5 = C1H6 = d2+d3H7 = dl+d4H8 = d6+d8H9=d7+d5H10=C2+C3該情況下,利用上述的結(jié)合信息,恒等式H成為如下的(式H)。 ((H1 +H2) * (H3 * H4) ) * H5+((H6+H7)*(H8*H9))*H10...(式H) 接著,使用交換法則、結(jié)合法則、分配法則,計算 h*(Cl+C2+C3)+r*H =h * (CI +C2+C3)+r * {((HI +H2) * (H3 * H4) * H5 + ((H6+H7) * (H8 * H9)) * HI0}, 使得h女(Cl+C2+C3)的值不直接出現(xiàn)在存儲器上,將計算結(jié)果作為簽名 S。作為使得h^Cl+C2+C3)的值不直接出現(xiàn)在存儲器上的計算順序的一 例,變形為下式進(jìn)行計算。h * (CI +C2+C3)+r * {((HI +H2) * (H3 * H4) * H5 + ((H6+H7) * (H8 * H9)) * H10} =h * (CI +C2)+r * {((HI +H2) * (H3 * H4) ) * H5} +h * C3 +r * {((H6+H7) * (H8 * H9)) * H10} 艮P,在上述的計算式中,將h女(Cl+C2+C3)分為h女(Cl+C2)和h大 C3進(jìn)行計算,并且,通過在該計算之間夾入剩余的計算,使h+(Cl+C2 十C3)的值就不直接出現(xiàn)在存儲器上。通過如上所述的過程,就能不在存儲器上直接出現(xiàn)相當(dāng)于步驟S1502 的隨機(jī)數(shù)k的值和簽名密鑰d的值,并且,能在每次執(zhí)行簽名生成時,使 在每次執(zhí)行簽名S的生成中使用的隨機(jī)數(shù)生成恒等式U和簽名生成式H改 變,因此,具有利用非法分析確定簽名密鑰d變得非常困難的效果。再有,在本實施方式1和2中,關(guān)于RSA簽名和ECDSA進(jìn)行了說明, 但不限定于此,也可以利用在使用了RSA密碼、橢圓密碼、ElGamal密碼 等計算運算的公開密鑰密碼中。此外,由本實施方式1和2例示的過程的 應(yīng)用目的不必須限定于在密碼和簽名中利用的密鑰信息,當(dāng)然也可以對于 不同于它們的需要保護(hù)的秘密信息進(jìn)行適用。(實施方式3)以下,關(guān)于本發(fā)明的實施方式3進(jìn)行說明。在本實施方式3中,將簽名密鑰分割為分割密鑰,使用圖18說明直到將分割密鑰嵌入到終端中的工序。密鑰發(fā)行機(jī)關(guān)是發(fā)行用于進(jìn)行簽名生成的簽名密鑰的機(jī)關(guān)。在密鑰發(fā)行機(jī)關(guān)中,向n臺(信息終端K1810)、信息終端2(1820)、...、 信息終端n (1830))終端發(fā)行各自不同的簽名密鑰1、簽名密鑰2、...、簽 名密鑰n。分割密鑰生成裝置1802是將簽名密鑰生成式作為輸入,基于簽名密鑰 生成式,將從密鑰發(fā)行機(jī)關(guān)發(fā)行的簽名密鑰進(jìn)行分割的裝置,輸出分割密 鑰和簽名密鑰生成式。分割密鑰寫入裝置1805是向進(jìn)行簽名生成的信息終端寫入在分割密鑰 生成裝置1802中生成的分割密鑰和由簽名密鑰生成式構(gòu)成的分割密鑰信息 1804的裝置。例如,在信息終端是內(nèi)裝了便攜式電話機(jī)等的機(jī)器的情況下, 使用ROM記錄器作為分割密鑰寫入裝置。在此,信息終端1 (1810)、信息終端2 (1820)-----信息終端n (1830)是進(jìn)行簽名生成的信息終端。由于這些信息終端的結(jié)構(gòu)是與實施方式1中 說明的簽名生成單元100相同的結(jié)構(gòu),因此僅圖示了本實施方式3的說明 中必要的結(jié)構(gòu)。制造終端的制造廠對分割密鑰生成裝置1802輸入從密鑰發(fā)行機(jī)關(guān)發(fā)行 的簽名密鑰1801和簽名密鑰生成式1803,生成分割密鑰信息1804,所述 分割密鑰信息1804包括分割了簽名密鑰1801的分割密鑰和用于從分割密 鑰生成簽名密鑰的信息即簽名密鑰生成式1803。分割密鑰信息1804包括簽名密鑰1的分割密鑰信息1811、簽名密鑰2 的分割密鑰信息1821、簽名密鑰n的分割密鑰信息1831,示出了簽名密鑰 1的分割密鑰信息1811是面向信息終端1810的分割密鑰信息,簽名密鑰2 的分割密鑰信息1821是面向信息終端2 (1820)的分割密鑰信息,簽名密 鑰n的分割密鑰信息1831是面向信息終端n (1830)的分割密鑰信息。分 割密鑰信息(1811、 1821、 1831)也可以作為實施方式1中示出的分割密 鑰識別信息表200和分割密鑰信息表400,此外,只要是能夠識別分割密鑰 和簽名密鑰生成式F的關(guān)系以便能夠計算出與簽名密鑰d相同的值的信息, 就也可以是其他信息。接著,制造終端的制造廠使用分割密鑰寫入裝置1805,向信息終端1810、 1820、 1830的各分割密鑰存儲單元中寫入由分割密鑰生成裝置1802 生成的分割密鑰信息1804。在此說明直到寫入為止的更具體的一例,由分割密鑰生成裝置生成的 分割密鑰信息(1811、 1821、 1831),是表現(xiàn)了分割密鑰識別信息表200和 分割密鑰信息表400的數(shù)據(jù)文件,將該數(shù)據(jù)文件編譯來作為二進(jìn)制數(shù)據(jù), 使用ROM記錄器等分割密鑰寫入裝置1805,將該二進(jìn)制數(shù)據(jù)寫入到分割 密鑰存儲單元中。以上,就在信息終端l (1810)的分割密鑰存儲單元中寫入簽名密鑰l 的分割密鑰信息1811,在信息終端2 (1820)的分割密鑰存儲單元中寫入 簽名密鑰2的分割密鑰信息1821,在信息終端n (1830)的分割密鑰存儲 單元中寫入簽名密鑰n的分割密鑰信息1831。再有,在本實施方式3中,信息終端(1810、 1820、 1830)的簽名密 鑰生成式設(shè)定為各自不同的簽名密鑰生成式FK F2、 ...Fn,但也可以在全 部信息終端中設(shè)定相同的簽名密鑰生成式。該情況下,為了使各信息終端 進(jìn)行各不相同的處理,最好由分割密鑰生成裝置1802對每個信息終端生成 不同的分割密鑰,將生成的按每個信息終端各不相同的分割密鑰寫入到各 信息終端(1810、 1820、 1830)中。再有,在本實施方式3中,分割密鑰生成裝置1802從外部輸入簽名密 鑰生成式1803,基于輸入的簽名密鑰生成式分割了簽名密鑰,但輸入的信 息不限于此,也可以是用于從簽名密鑰生成分割密鑰的任意的參數(shù)信息。 例如,也可以向分割密鑰生成裝置1802輸入分割簽名密鑰的分割個數(shù)的參 數(shù),按照在分割密鑰生成裝置1802內(nèi)輸入的分割個數(shù),分割簽名密鑰。另 外,也可以按照在分割密鑰生成裝置1802內(nèi)輸入的分割個數(shù)生成簽名密鑰 生成式,并將其輸出。在此,為了生成分割密鑰而輸入的參數(shù)也可以不是 分割個數(shù),而是表示安全等級和CPU性能的參數(shù)信息,該情況下,也可以 按照輸入的參數(shù),在分割密鑰生成裝置1802內(nèi)決定分割個數(shù)。具體地說, 也可以在安全等級低或CPU性能高的情況下,生成更多的分割密鑰。通過 這樣做,就能調(diào)整簽名密鑰d的分割數(shù)量,因此能夠靈活地設(shè)定安全強(qiáng)度。此外,也可以在由密鑰發(fā)行機(jī)關(guān)加密后的狀態(tài)下發(fā)行簽名密鑰1801。 該情況下,制造終端的制造廠在對已加密的簽名密鑰1801進(jìn)行解密之后,將解密后的簽名密鑰輸入到分割密鑰生成裝置1802中。此外,若此處的加 密方式利用公開密鑰加密方式,則密鑰發(fā)行機(jī)關(guān)也可以在簽名密鑰1801中 添加簽名密鑰1801的簽名后進(jìn)行發(fā)送,制造廠通過利用密鑰發(fā)行機(jī)關(guān)的公 開密鑰驗證簽名密鑰1801的簽名,就能夠驗證合法性。通過這樣做,就能 夠保護(hù)從密鑰發(fā)行機(jī)關(guān)交給制造廠的簽名密鑰1801不在遞交途中被盜聽和 竄改。再有,己對終端制造制造廠利用分割密鑰生成裝置1802和分割密鑰寫 入裝置1805進(jìn)行了說明,但現(xiàn)實中,在制造工序中有分割密鑰生成裝置1802 和分割密鑰寫入裝置1805的利用場合不同的情況。作為具體例,有在終端 的制造工廠中實施分割密鑰寫入裝置1805的情況等。該情況下,也可以將 在分割密鑰生成裝置1802中生成的分割密鑰信息1804加密,將加密后的 分割密鑰信息分發(fā)給終端的制造工廠,在終端的制造工廠中對分發(fā)的加密 信息進(jìn)行解密,將解密了的分割密鑰信息1804輸入到分割密鑰寫入裝置 1805中。通過這樣做,能進(jìn)行安全的分割密鑰的分發(fā)。再有,在上述中示出了簽名密鑰1801和分割密鑰信息1804的加密方 法,但關(guān)于該情況下的加密方法不應(yīng)該特殊限定,只要通過使用AES等共 通密鑰密碼或者RSA和橢圓密碼等公開密鑰密碼來實現(xiàn)就可以。(實施方式4)在實施方式4中,使用圖19和圖20,關(guān)于利用簽名密鑰生成恒等式生 成單元120,通過網(wǎng)絡(luò)更新計算簽名密鑰生成恒等式的簽名密鑰生成恒等式 生成程序的方法進(jìn)行說明。圖19是簽名生成單元100從位于網(wǎng)絡(luò)上的更新服務(wù)器1901下載更新 用的簽名密鑰生成恒等式生成程序X1902,更新簽名密鑰生成恒等式生成 單元120的簽名密鑰生成恒等式生成程序的概要圖。與實施方式1的不同 點在于,實施方式4能夠從網(wǎng)絡(luò)上的更新服務(wù)器下載新的簽名密鑰生成恒 等式生成程序,將簽名密鑰生成恒等式生成單元120的簽名密鑰生成恒等 式生成程序更新為下載后的簽名密鑰生成恒等式生成程序X1902。在此,簽名生成單元100和更新服務(wù)器1901通過因特網(wǎng)等網(wǎng)絡(luò)1900 進(jìn)行連接。更新服務(wù)器1901保持著與簽名生成單元100的簽名密鑰生成恒等式生 成單元120的簽名密鑰生成恒等式生成程序不同的簽名密鑰生成恒等式生 成程序X1902。在此,簽名密鑰生成恒等式生成程序X1902具有與簽名生 成程序同等的功能,即、生成與簽名密鑰生成式F21恒等的式子即簽名密 鑰生成恒等式G121的功能。但是,假設(shè)簽名密鑰生成恒等式生成程序X1卯2 制作簽名密鑰生成恒等式G121的流程不同于簽名密鑰生成恒等式生成單 元120的簽名密鑰生成恒等式生成程序。此外,更新服務(wù)器1901也保持著為了驗證更新用的程序即簽名密鑰生 成恒等式生成程序X1902的合法性而利用的簽名密鑰生成恒等式生成程序 X的竄改檢測值1903。再有,作為竄改檢測值1903的具體例,有簽名密鑰 生成恒等式生成程序X的散列值等。簽名生成單元100除了具備在實施方式1的圖1中說明的結(jié)構(gòu)要素之 外,在本實施方式4中還具有收發(fā)單元1910和簽名密鑰生成恒等式生成程 序更新單元1920。收發(fā)單元1910是通過網(wǎng)絡(luò)與更新服務(wù)器1901進(jìn)行數(shù)據(jù)的收發(fā)的裝置。簽名密鑰生成恒等式生成程序更新單元1920利用收發(fā)單元1910,向存 在于網(wǎng)絡(luò)上的更新服務(wù)器1901發(fā)送簽名密鑰生成恒等式生成程序的更新請 求消息。另外,通過收發(fā)單元1910,從更新服務(wù)器1901接收簽名密鑰生成 恒等式生成程序X1902,用接收到的簽名密鑰生成恒等式生成程序Xl卯2 更新簽名密鑰生成恒等式生成單元120的程序。下面,使用圖20,關(guān)于簽名密鑰生成恒等式生成單元120的簽名密鑰 生成恒等式生成程序的更新流程進(jìn)行說明。首先,簽名密鑰生成恒等式生成程序更新單元1920向收發(fā)單元1910 請求簽名密鑰生成恒等式生成程序X1902的下載(步驟S2001)。接著,收到了下載請求的收發(fā)單元1910,通過網(wǎng)絡(luò)1900向更新服務(wù)器 1901發(fā)送簽名密鑰生成恒等式生成程序X1902的下載請求消息(步驟 S2002)。接著,收到了下載請求消息的更新服務(wù)器1901,向收發(fā)單元1910發(fā)送 在更新服務(wù)器1901內(nèi)保持著的簽名密鑰生成恒等式生成程序X1902和簽名 密鑰生成恒等式生成程序X1902的散列值1903 (步驟S2003)。接著,收發(fā)單元1910在從更新服務(wù)器1901接收完了簽名密鑰生成恒 等式生成程序X1902和簽名密鑰生成恒等式生成程序X1902的散列值1903 的時刻,將下載完了通知通知給簽名密鑰生成恒等式生成程序更新單元 1920 (步驟S2004)。接著,簽名密鑰生成恒等式生成程序更新單元1920利用簽名密鑰生成 恒等式生成程序X1902的散列值1903,判定是否竄改了簽名密鑰生成恒等 式生成程序X1902。在該判定結(jié)果是"是",即判定為已竄改的情況下,結(jié)束 更新流程,在該判定結(jié)果是"否",即判定為未竄改的情況下,繼續(xù)更新處理 (步驟S2005)。接著,簽名密鑰生成恒等式生成程序更新單元1920通過用下載的簽名 密鑰生成恒等式生成程序X1902進(jìn)行寫入,來更新簽名密鑰生成恒等式生 成單元120的簽名密鑰生成恒等式生成程序(步驟S2005)。寫入一完了,簽名密鑰生成恒等式生成程序更新單元1920就通知寫入 完了通知,保持著結(jié)束更新流程(步驟S2006)。如上所述地,簽名生成單元100利用網(wǎng)絡(luò)1900,從更新服務(wù)器1901下 載新的簽名密鑰生成恒等式生成程序X1902后,進(jìn)行簽名密鑰生成恒等式 生成單元120的簽名密鑰生成恒等式程序的更新。通過具有這樣的更新功能,通過在非法分析者竄改了簽名密鑰生成恒 等式程序的情況和簽名密鑰生成恒等式生成程序不妥的情況下,更新簽名 密鑰生成恒等式程序,就能夠確保簽名生成裝置IOO的安全性。再有,在實施方式4中,關(guān)于發(fā)送圖20的步驟S2001的下載請求的定 時沒有示出,但也可以例如在簽名生成處理開始的請求之前,在簽名生成 裝置100內(nèi)驗證簽名密鑰生成恒等式生成單元120的程序(相當(dāng)于簽名密 鑰生成恒等式生成程序X)的合法性,在驗證結(jié)果判定為"不合法"的情況下, 進(jìn)行步驟S2001的下載請求。作為驗證簽名密鑰生成恒等式生成單元120 的程序的合法性的更具體的方法,有在簽名生成單元100內(nèi)的安全的存儲 器中保持簽名密鑰生成恒等式生成單元120的程序的散列值,在開始簽名 生成處理之前,計算簽名密鑰生成恒等式生成單元120的簽名密鑰生成恒 等式生成程序的散列值,比較計算出的散列值和存儲器內(nèi)保持著的散列值 的方法等。此外,在實施方式4中,也可以在安全通信線路(SAC)中共有會話 密鑰,將簽名生成單元100與更新服務(wù)器1901間的數(shù)據(jù)通信作為用會話密 鑰加密后的數(shù)據(jù)的收發(fā)。關(guān)于SAC,由于是在Secure Sockets Layer (SSL) 等中利用著的已知的技術(shù),故省略說明。此外,在實施方式4中,通過網(wǎng)絡(luò),從更新服務(wù)器1901下載了更新用 的簽名密鑰生成恒等式生成程序X1902,但也可以不是網(wǎng)絡(luò),而是通過使 用記錄了簽名密鑰生成恒等式生成程序X1902的DVD和CD等的記錄介 質(zhì),來更新簽名密鑰生成恒等式生成單元120的程序。通過使圖20中的收 發(fā)單元1910具有操作與記錄介質(zhì)的數(shù)據(jù)的讀寫的驅(qū)動器功能,能夠?qū)崿F(xiàn)進(jìn) 行該處理的簽名生成單元100。艮P,通過在圖20中,將收發(fā)單元1910作為 記錄介質(zhì)驅(qū)動器,將更新服務(wù)器1901作為記錄媒介,將下載請求置換為來 自媒體的讀入請求,就能夠?qū)崿F(xiàn)如上所述的簽名生成單元100,因此省略詳 細(xì)的說明。此外,在實施方式4中更新了簽名密鑰生成恒等式生成單元120的程 序,但也可以將進(jìn)行更新的對象設(shè)為分割密鑰存儲單元中存儲的分割密鑰 111。該情況下,不僅更新分割密鑰111,也同時更新可知分割密鑰111和 簽名密鑰生成式F21的關(guān)聯(lián)信息的分割密鑰識別信息表200和分割密鑰信 息表400。此外,也可以將進(jìn)行更新的對象設(shè)為結(jié)合分割密鑰生成單元的程 序。通過這樣做,更新服務(wù)器就能調(diào)整生成的分割密鑰的個數(shù)和結(jié)合分割 密鑰的個數(shù),能靈活地設(shè)定安全強(qiáng)度。 <重寫>再有,基于上述實施方式說明了本發(fā)明,但本發(fā)明不限定于上述的實 施方式。如下的情況也包含在本發(fā)明中。(1) 上述的裝置具體地說是由微處理機(jī)、ROM、 RAM、硬盤單元、 顯示單元、鍵盤、鼠標(biāo)等構(gòu)成的計算機(jī)系統(tǒng)。在上述RAM或上述硬盤單元 中存儲有計算機(jī)程序。通過上述微處理機(jī)按照上述計算機(jī)程序進(jìn)行工作, 上述裝置就達(dá)到其功能。在此,為了達(dá)到規(guī)定的功能,組合多個示出對計 算機(jī)的指令的命令代碼來構(gòu)成了計算機(jī)程序。(2) 構(gòu)成上述的各裝置的結(jié)構(gòu)要素的一部分或全部也可以由1個系統(tǒng)LSI (Large Scale Integration:大規(guī)模集成電路)構(gòu)成。系統(tǒng)LSI是在1個芯片上集成多個結(jié)構(gòu)部來制造的超多功能LSI,具體地說是由包含微處理機(jī)、 ROM、 RAM等而構(gòu)成的計算機(jī)系統(tǒng)。在上述RAM中存儲有計算機(jī)程序。 通過上述微處理機(jī)按照上述計算機(jī)程序進(jìn)行工作,系統(tǒng)LSI就達(dá)到其功能。 可以將它們個別地集成為1個芯片,也可以包含其中一部分或全部集成為1 個芯片。此外,在此設(shè)定為系統(tǒng)LSI,但有時也根據(jù)集成度的不同,稱作IC、 系統(tǒng)LSI、超級LSI、極級(ultra) LSI。此外,電路集成化的方法不限于LSI,也可以用專用電路或通用處理器 來實現(xiàn)。也可以在LSI制造后,利用可編程的FPGA(Field Programmable Gate Array:現(xiàn)場可編程門陣列)和可以再組合LSI內(nèi)部的電路單元的連接和設(shè) 定的可重構(gòu)處理器。另外,若出現(xiàn)了利用半導(dǎo)體技術(shù)的進(jìn)步或派生的其他技術(shù)置換為LSI 的集成電路化的技術(shù),當(dāng)然也可以使用該技術(shù)進(jìn)行功能塊的集成化。也能 有適應(yīng)生物技術(shù)等的可能性。(3) 在本實施方式1中,分割密鑰生成裝置22寫入分割密鑰識別信 息表200和分割密鑰信息表400,但當(dāng)然也可以在簽名生成裝置100內(nèi)部生 成這些表。再有,由于具有利用非法分析從分割密鑰信息表400的內(nèi)容確定簽名 密鑰生成式F21的危險,因此,作為更安全的安裝方法,也可以在已加密 的狀態(tài)下保持分割密鑰信息表400,僅在生成簽名時進(jìn)行解密。這樣,由于 利用靜態(tài)解析的簽名密鑰生成式F21的確定變得困難,因此,安全性提高。 此外,若不確定簽名密鑰生成式F21,簽名密鑰d的確定就也困難。(4) 在實施方式中,關(guān)于首先生成簽名密鑰生成恒等式,接著生成符 合上述簽名生成恒等式的結(jié)合分割密鑰的情況進(jìn)行了說明,但不限于此, 只要遵從簽名密鑰生成恒等式和結(jié)合分割密鑰所能生成的過程就可以。例如,也可以首先隨機(jī)地生成結(jié)合分割密鑰,接著生成包含相當(dāng)于該 結(jié)合分割密鑰的部分的簽名生成恒等式。(5) 構(gòu)成上述裝置的結(jié)構(gòu)要素的一部分或全部也可以由可拆裝在裝置 上的IC卡或單體模塊構(gòu)成。上述IC卡或上述模塊是由微處理機(jī)、ROM、RAM等構(gòu)成的計算機(jī)系統(tǒng)。上述IC卡或上述模塊也可以包括上述超多功 能LSI。通過微處理機(jī)按照計算機(jī)程序進(jìn)行工作,上述IC卡或上述模塊就 達(dá)到其功能。該IC卡或該模塊也可以具有抗竄改性。
(6) 本發(fā)明也可以是上述所示的方法。此外,也可以是利用計算機(jī)實 現(xiàn)這些方法的計算機(jī)程序,也可以是由上述計算機(jī)程序構(gòu)成的數(shù)字信號。
此外,本發(fā)明也可以將上述計算機(jī)程序或上述數(shù)字信號記錄在計算機(jī) 可讀取的記錄介質(zhì)中,例如軟磁盤、硬盤、CD—ROM、 MO、 DVD、 DVD 一ROM、 DVD—RAM、 BD (Blu—ray Disc)、半導(dǎo)體存儲器等中。此外, 也可以是這些記錄介質(zhì)中記錄著的上述數(shù)字信號。
此外,本發(fā)明也可以經(jīng)由電氣通信線路、無線或有線通信線路、以因 特網(wǎng)為代表的網(wǎng)絡(luò)、數(shù)據(jù)廣播等,來傳送上述計算機(jī)程序或上述數(shù)字信號。
此外,本發(fā)明也可以是具有微處理機(jī)和存儲器的計算機(jī)系統(tǒng),上述存 儲器存儲有上述計算機(jī)程序,上述微處理機(jī)按照上述計算機(jī)程序進(jìn)行工作。
此外,也可以通過記錄在上述記錄介質(zhì)中來移送上述程序或上述數(shù)字 信號,或者通過經(jīng)由上述網(wǎng)絡(luò)等移送上述程序或者上述數(shù)字信號,利用獨 立的其他計算機(jī)系統(tǒng)來實施。
(7) 也可以分別組合上述實施方式和上述變形例。
(8) 說明書中的有關(guān)用語"交換法則"、"分配法則"、"結(jié)合法則"、"逆 波蘭表示法"的描述,只不過是為便于描述而描述了公知的用語,不是對這 些用語給予新的定義。
工業(yè)上的實用性
本發(fā)明涉及的安全處理裝置和方法通過從運算結(jié)果僅導(dǎo)出分割后的秘 密信息,具有不在程序的執(zhí)行中出現(xiàn)秘密信息而能夠執(zhí)行安全處理的效果。 此外,還具有每次在執(zhí)行利用秘密信息的安全處理時,動態(tài)地生成每次不 同的分割秘密信息,通過使安全處理的執(zhí)行流程動態(tài)地變更,使非法分析 者的動態(tài)分析變得困難的效果。因此,在進(jìn)行若泄露給非法分析者就導(dǎo)致 利益損失的、使用了秘密信息的處理的軟件等的領(lǐng)域中有用。
權(quán)利要求
1、一種安全處理裝置,得到與對消息實施安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信息,其特征在于,具有存儲單元,存儲有第一秘密信息生成式和第一安全處理過程,所述第一秘密信息生成式中輸入將秘密信息至少分割為2個的分割秘密信息作為自變量,根據(jù)該分割秘密信息計算出上述秘密信息,所述第一安全運算過程示出使用了上述秘密信息的安全運算的過程;第一生成單元,作為自變量而輸入運算了至少2個上述分割秘密信息的結(jié)果即結(jié)合秘密信息,生成在運算上與上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成單元,基于上述第二秘密信息生成式中包含的算子,作為自變量而輸入上述結(jié)合秘密信息,生成第二安全運算過程,該第二安全運算過程示出與上述第一安全運算過程等效的運算過程;以及執(zhí)行單元,對上述消息實施按照上述第二安全運算過程的安全運算。
2 (修改后)、如權(quán)利要求l所述的安全處理裝置,其特征在于, 上述第一秘密信息生成式包含1個以上的運算,上述第一生成單元從上述第一秘密信息生成式中包含的運算中,隨機(jī) 選擇與上述運算之間滿足交換法則、結(jié)合法則、分配法則中的任一個的替 代運算的某個運算,通過將選擇的運算置換為上述替代運算,生成第二秘 密信息生成式。
3、 如權(quán)利要求2所述的安全處理裝置,其特征在于, 上述第一秘密信息生成式包含1個以上的運算,各運算包含多個操作數(shù)和示出操作數(shù)相互之間的計算內(nèi)容的算子,上述存儲單元存儲有示出上述第一秘密信息生成式涉及的上述操作數(shù) 與上述算子的關(guān)系的屬性信息,上述第一生成單元使用上述屬性信息,生成上述第二秘密信息生成式。
4、 如權(quán)利要求3所述的安全處理裝置,其特征在于,在上述第一秘密信息生成式中,向上述操作數(shù)輸入自變量的值,上述 自變量的各自的值不重復(fù)地對應(yīng)于上述分割秘密信息的某一個, 上述屬性信息示出對應(yīng)于能結(jié)合的多個操作數(shù)的算子,上述第一生成單元基于上述屬性信息,用上述算子結(jié)合上述第一秘密 信息生成式中的上述多個操作數(shù),上述第二生成單元通過使用上述算子結(jié)合與上述已結(jié)合的各操作數(shù)相 對應(yīng)的分割秘密信息,來生成上述結(jié)合秘密信息。
5、 如權(quán)利要求2所述的安全處理裝置,其特征在于,上述第二秘密信息生成式包含i個以上的運^:,各運算包含多個操作 數(shù)和示出操作數(shù)相互之間的計算內(nèi)容的算子,上述存儲單元存儲有屬性信息,該屬性信息表示上述第二秘密信息生 成式涉及的上述操作數(shù)與上述算子的關(guān)系,上述第二生成單元使用上述廣性信息,生成上述第二安全運算過程。
6、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述第一生成單元進(jìn)一步生成隨機(jī)數(shù)信息,生成包含了上述隨機(jī)數(shù)信息的上述第二秘密信息生成式,上述第二生成單元基于上述第二秘密信息生成式,使用上述結(jié)合秘密 信息和上述隨機(jī)數(shù)信息生成第二安全運算過程,該第二安全運算過程示出 與上述第一安全運算過程等效的運算過程,上述執(zhí)行單元對上述消息使用上述結(jié)合秘密信息和上述隨機(jī)數(shù)信息, 實施按照上述第二安全運算過程的安全運算。
7、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述第一生成單元進(jìn)一步生成使用了上述秘密信息的、不對運算處理的結(jié)果造成影響的冗余信息,使用該冗余信息生成上述第二秘密信息生成 式。
8、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述存儲單元存儲有上述分割秘密信息和上述執(zhí)行單元不使用的偽信息。
9、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述秘密信息是用于生成數(shù)字簽名的簽名密鑰,上述安全運算是對上述消息實施數(shù)字簽名的簽名生成運算。
10、 如權(quán)利要求9所述的安全處理裝置,其特征在于, 上述簽名生成處理是RSA (Rivest Shamir Adleman)簽名生成處理。
11、 如權(quán)利要求9所述的安全處理裝置,其特征在于, 上述簽名生成處理是利用橢圓曲線數(shù)字簽名方式的簽名處理。
12、 如權(quán)利要求ll所述的安全處理裝置,其特征在于, 上述安全處理裝置進(jìn)一步具有生成隨機(jī)數(shù)信息的隨機(jī)數(shù)信息生成單元,上述執(zhí)行單元不直接利用上述隨機(jī)數(shù)k,而是使用至少2個上述隨機(jī)數(shù) 信息,進(jìn)行上述橢圓曲線數(shù)字簽名方式中的計算定義體GF (p)上的橢圓 曲線的位數(shù)q即基點P的隨機(jī)數(shù)值k倍點的處理、和使用了定義體GF (q) 上的k的逆數(shù)的值的處理。
13、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述秘密信息是上述公開密鑰密碼的上述秘密密鑰, 上述執(zhí)行單元進(jìn)行利用了公開密鑰和秘密密鑰的公開密鑰密碼系統(tǒng)的處理,作為上述安全運算。
14、 如權(quán)利要求13所述的安全處理裝置,其特征在于, 上述公開密鑰密碼是RSA密碼。
15、 如權(quán)利要求13所述的安全處理裝置,其特征在于, 上述公開密鑰密碼是橢圓曲線密碼。
16、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述安全處理裝置進(jìn)一步包括取得單元,從外部取得上述第一生成單元的更新用數(shù)據(jù);以及 更新單元,使用上述更新用數(shù)據(jù),更新上述第一生成單元。
17、 如權(quán)利要求1所述的安全處理裝置,其特征在于, 上述安全處理裝置進(jìn)一步包括取得單元,從外部取得更新用的分割秘密信息;以及 更新單元,將上述存儲單元中存儲的分割秘密信息,更新為上述取得 單元取得的更新用的分割秘密信息。
18 (修改后)、 一種用于安全處理裝置的安全處理方法,能夠得到與對消息實施了安全運算的情況相同的運算結(jié)果,該安全運算使用秘密信息, 其特征在于,上述安全處理裝置具有存儲單元,該存儲單元存儲有已預(yù)先將秘密信息至少分割為2個以上的分割秘密信息、第一秘密信息生成式和第一安全運算過程,在所述第一秘密信息生成式中作為自變量而輸入上述分割秘密 信息,所述第一秘密信息生成式根據(jù)上述分割秘密信息計算出上述秘密信 息,所述第一安全運算過程示出使用了上述分割秘密信息的安全運算的過 程,上述安全處理方法包括結(jié)合秘密信息生成歩驟,生成將至少2個上述分割秘密信息相互進(jìn)行運算的結(jié)合秘密信息;第一生成步驟,作為自變量而輸入上述結(jié)合秘密信息,生成輸出與上 述第一秘密信息生成式相同的結(jié)果的第二秘密信息生成式;第二生成步驟,基于上述第二秘密信息生成式中包含的算子,作為自 變量而輸入上述結(jié)合秘密信息,生成第二安全運算過程,該第二安全運算 過程示出與上述第一安全運算過程等效的運算過程;以及執(zhí)行步驟,對上述消息實施按照上述第二安全運算過程的安全運算。
19 (修改后)、 一種用于安全處理裝置的計算機(jī)程序,該安全處理裝置 能夠得到與對消息實施了安全運算的情況相同的運算結(jié)果,該安全運算使 用秘密信息,其特征在于,上述安全處理裝置具有存儲單元,該存儲單元存儲有己預(yù)先將秘密信 息至少分割為2個以上的分割秘密信息、第一秘密信息生成式和第一安全 運算過程,在所述第一秘密信息生成式中作為自變量而輸入上述分割秘密 信息,所述第一秘密信息生成式根據(jù)上述分割秘密信息計算出上述秘密信 息,所述第一安全運算過程示出使用了上述分割秘密信息的安全運算的過 程,上述計算機(jī)程序包括-結(jié)合秘密信息生成步驟,生成將至少2個上述分割秘密信息相互進(jìn)行 運算的結(jié)合秘密信息;第一生成步驟,作為自變量而輸入上述結(jié)合秘密信息,生成輸出與上述第一秘密信息生成式相同的結(jié)果的第二秘密信息生成式;第二生成步驟,基于上述第二秘密信息生成式中包含的算子,作為自 變量而輸入上述結(jié)合秘密信息,生成第二安全運算過程,該第二安全運算 過程示出與上述第一安全運算過程等效的運算過程;以及執(zhí)行步驟,對上述消息實施按照上述第二安全運算過程的安全運算。 20、 一種記錄介質(zhì),是計算機(jī)可讀取的記錄介質(zhì),其特征在于,記錄 有權(quán)利要求19記載的計算機(jī)程序。
21 (修改后)、 一種用于安全處理裝置的集成電路,該安全處理裝置能 夠得到與對消息實施了安全運算的情況相同的運算結(jié)果,該安全運算使用 秘密信息,其特征在于,上述安全處理裝置具有存儲單元,該存儲單元存儲有已預(yù)先將秘密信 息至少分割為2個以上的分割秘密信息、第一秘密信息生成式和第一安全 運算過程,在所述第一秘密信息生成式中作為自變量而輸入上述分割秘密 信息,所述第一秘密信息生成式根據(jù)上述分割秘密信息計算出上述秘密信 息,所述第一安全運算過程示出使用了上述分割秘密信息的安全運算的過 程;上述集成電路具有結(jié)合秘密信息生成單元,生成將至少2個上述分割秘密信息相互進(jìn)行 運算的結(jié)合秘密信息;第一生成單元,作為自變量而輸入上述結(jié)合秘密信息,生成在運算上 與上述第一秘密信息生成式等效的第二秘密信息生成式;第二生成單元,基于上述第二秘密信息生成式中包含的算子,作為自 變量而輸入上述結(jié)合秘密信息,生成示出與上述第一安全運算過程等效的 運算過程的第二安全運算過程;以及執(zhí)行單元,對上述消息實施按照上述第二安全運算過程的安全運算。
22、 一種加密信息嵌入方法,將上述秘密信息加密后嵌入到進(jìn)行使用 了秘密信息的運算的安全處理裝置中,其特征在于,包括秘密信息加密步驟,使用將上述秘密信息變換為很難分析的狀態(tài)的加 密裝置,將上述秘密信息進(jìn)行加密;以及嵌入步驟,使用加密信息寫入裝置,將加密后的秘密信息嵌入到上述安全處理裝置中。
23、 如權(quán)利要求22所述的加密信息嵌入方法,其特征在于, 上述加密裝置具有輸入單元,該輸入單元接受用于決定上述秘密信息的加密方法的參數(shù)作為輸入,上述秘密信息加密步驟包括 上述輸入單元接受上述參數(shù)的接受步驟;以及用基于上述參數(shù)決定的加密方法,將上述秘密信息加密的加密步驟。
24、 如權(quán)利要求23所述的加密信息嵌入方法,其特征在于, 上述參數(shù)是上述秘密信息的分割個數(shù),上述加密步驟包括分割步驟,該分割步驟根據(jù)上述分割個數(shù),將上述 秘密信息分割為至少2個分割秘密信息。
25、 如權(quán)利要求24所述的加密信息嵌入方法,其特征在于, 上述加密步驟進(jìn)一步包括式生成步驟,該式生成步驟基于上述分割個數(shù),生成至少包含上述分割個數(shù)的項的第一秘密信息生成式,上述分割步驟分割上述秘密信息,以便從上述第一秘密信息生成式計 算出上述秘密信息。
26、 如權(quán)利要求23所述的加密信息嵌入方法,其特征在于, 上述參數(shù)是第一秘密信息生成式,上述加密步驟包括將上述秘密信息分割為至少2個分割秘密信息,以 便從上述第一秘密信息生成式計算出上述秘密信息的步驟。
27、 如權(quán)利要求22所述的加密信息嵌入方法,其特征在于,上述秘密信息是從密鑰發(fā)行機(jī)關(guān)發(fā)行的秘密密鑰, 上述加密信息嵌入方法進(jìn)一步具有上述密鑰發(fā)行機(jī)關(guān)用密鑰發(fā)行機(jī)關(guān)的秘密密鑰加密上述秘密密鑰的加 密步驟;以及上述加密裝置用公開密鑰對已加密了的上述密鑰進(jìn)行解密和驗證的驗 證步驟,上述秘密信息加密步驟將驗證后的上述秘密密鑰進(jìn)行加密, 上述嵌入步驟包括將已利用上述加密裝置加密后的上述加密信息變換為二進(jìn)制數(shù)據(jù)的二 進(jìn)制變換步驟;以及在安全處理裝置中嵌入上述二進(jìn)制數(shù)據(jù)的二進(jìn)制嵌入步驟,所述安全 處理裝置具有使用上述加密信息對與使用了上述秘密信息的運算結(jié)果相同 的結(jié)果進(jìn)行運算的功能。
全文摘要
本發(fā)明的目的在于提供一種安全處理裝置、安全處理方法、加密信息嵌入方法。在對信息使用簽名密鑰實施簽名的簽名生成單元中,分割密鑰存儲單元存儲已將簽名密鑰至少分割為2個的分割秘密密鑰、從上述分割秘密密鑰計算出上述簽名密鑰的簽名密鑰生成式F和簽名生成式,簽名密鑰生成恒等式生成單元使用結(jié)合法則、分配法則和交換法則,生成與簽名密鑰生成式F得到相同結(jié)果的簽名密鑰生成恒等式G,結(jié)合分割密鑰生成單元生成需要給予簽名密鑰生成恒等式G作為自變量的、運算了上述分割秘密密鑰后的結(jié)果的結(jié)合分割密鑰,簽名生成單元基于上述簽名密鑰生成恒等式G和上述分割秘密密鑰,對上述信息實施簽名。
文檔編號G09C1/00GK101300775SQ20068004088
公開日2008年11月5日 申請日期2006年10月24日 優(yōu)先權(quán)日2005年10月31日
發(fā)明者佐藤太一, 淺井理惠子, 芳賀智之 申請人:松下電器產(chǎn)業(yè)株式會社