TW201310957A - 資訊處理裝置、資訊處理方法、程式及記錄媒體 - Google Patents
資訊處理裝置、資訊處理方法、程式及記錄媒體 Download PDFInfo
- Publication number
- TW201310957A TW201310957A TW101127902A TW101127902A TW201310957A TW 201310957 A TW201310957 A TW 201310957A TW 101127902 A TW101127902 A TW 101127902A TW 101127902 A TW101127902 A TW 101127902A TW 201310957 A TW201310957 A TW 201310957A
- Authority
- TW
- Taiwan
- Prior art keywords
- algorithm
- ternary
- sequence
- binary
- bits
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/582—Pseudo-random number generators
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3249—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
本發明提供一種資訊處理裝置,其具備:二進制隨機數生成部,其生成以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成部,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且,上述三進制數列生成部係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
Description
本技術係關於資訊處理裝置、資訊處理方法、程式及記錄媒體。
伴隨資訊處理技術或通信技術之快速發展,無論公文或私文皆已在迅即推行文件之電子化。伴隨於此,較多個人或企業對電子文件之安全管理寄予極大關注。鑒於如此高漲之關注,社會各方面已就電子文件之盜聽或偽造等破壞行為之相關對策進行了多種研究。對於盜聽電子文件,例如,藉由加密電子文件而確保其安全性。且,對於偽造電子文件,例如,藉由利用電子署名而確保其安全性。但,若利用之密碼或電子署名不具有較高之破壞耐受性,則無法保證足夠之安全性。
電子署名係用於特定電子文件之作者。因此,電子署名應僅由電子文件之作者作成。假設帶有惡意之第三方可生成同一電子署名,則該第三方便可成為電子文件之作者。即,會被帶有惡意之第三方偽造電子文件。為防止如此之偽造,已就電子署名之安全性進行了各種探討。作為目前已得到廣泛應用之電子署名方式,例如RSA署名方式或DSA署名方式等已為公眾所知。
RSA署名方式係以「對於較大合成數之素因數之難分解性(以下稱作素因數分解問題)」為安全性依據。且,DSA署名方式係以「對於離散對數問題之解開之難導出性」為
安全性依據。該等根據係源自不存在利用古典式電腦有效率地解開素因數分解問題或離散對數問題之演算法。即,上述困難性係指古典式電腦之計算量之困難性。然而,普遍認為,若使用量子電腦,則可有效率地計算出對於素因數分解問題或離散對數問題之解答。
目前所應用之大多數電子署名方式或公開密鑰認證方式係與RSA署名方式或DSA署名方式同樣地,以素因數分解問題或離散對數問題之困難性為安全性依據。因此,如此之電子署名方式或公開密鑰認證方式於實用化量子電腦時則無法確保其安全性。因此,已在尋求實現一種新式電子署名方式及公開密鑰認證方式,其以素因數分解問題或離散對數問題等與利用量子電腦易於解開之問題相異的問題為安全性依據。作為量子電腦不易解開之問題,例如有多變數多項式問題。
作為以多變數多項式問題為安全性依據之電子署名方式,例如,基於MI(Matsumoto-Imai cryptography,松本今井密碼術)、HFE(Hidden Field Equation cryptography,隱域方程)、OV(Oil-Vinegar signature scheme,油醋簽名體制)、TTM(Tamed Transformation Method cryptography,馴順變換方法密碼術)之方式已為公眾所知。例如,下述非專利文獻1、2中,揭示有基於HFE之電子署名方式。
[非專利文獻1] Jacques Patarin Asymmetric Cryptography
with a Hidden Monomial. CRYPTO 1996. pp.45-60。
[非專利文獻2] Patarin, J., Courtois, N., and Goubin, L. QUARTZ, 128-Bit Long Digital Signatures. In Naccache, D., Ed. Topics in Cryptology-CT-RSA 2001 (San Francisco, CA, USA, April 2001),vol. 2020 of Lecture Notes in Computer Science, Springer-Verlag., pp. 282-297。
如上所述,多變式多項式問題係被稱作使用量子電腦仍難以解開之NP困難問題的問題之一例。通常,應用以HFE等為代表之多變數多項式問題之公開密鑰認證方式中應用包含有特殊陷阱門(trap door)之多次多變數聯立方程式。例如,準備與x1,…,xn相關之多次多變數聯立方程式F(x1,…,xn)=y與線形轉換A及B,秘密管理線形轉換A及B。該情形下,多次多變數聯立方程式F、線形轉換A及B成為陷阱門。
知曉陷阱門F、A及B之實體可解開與x1,…,xn相關之方程式B(F(A(x1,…,xn)))=y'。另一方面,不知曉陷阱門F、A及B之實體則無法解開與x1,…,xn相關之方程式B(F(A(x1,…,xn)))=y'。利用該方法可實現以多數多變數聯立方程式之難解答性為安全性依據之公開認證方式或電子署名方式。
如上所述,為了實現如此之公開密鑰認證方式或電子署名方式,需具有如滿足B(F(A(x1,…,xn)))=y般之特殊多次多變數聯立方程式。且,生成署名時需解開多次多變數聯立
方程式F。因此,可利用之多次多變數聯立方程式F限於較易解開者。即,目前之方式中,僅可利用合成有較易解開之3個函數(陷阱門)B、F、A之形式的多次多變數聯立方程式B(F(A(x1,…,xn)))=y,故難以確保足夠之安全性。
因此,本申請案發明者鑒於上述事態而構思出一種有效率之公開密鑰認證方式,其利用不知曉有效率的解開方法(陷阱門)之多次多變數聯立方程式而具有高安全性。該方式之演算法中出現利用三進制隨機數之情形。但,精密之三進制隨機數生成器尚不為公眾所知。鑒於如此之問題,本技術之構思在於提供可自二進制隨機數有效率地抽出三進制隨機數的新穎且經改良之資訊處理裝置、資訊處理方法、程式及記錄媒體。
根據本技術之一觀點可提供一種資訊處理裝置,其具備:二進制隨機數生成部,其生成以M位元(M≧2)之二進制數表示之二進制隨機數列;三進制數列生成部,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成部係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
再者,根據本技術之另一觀點,可提供一種資訊處理方法,其具備以下步驟:生成以M位元(M≧2)之二進制數表
示之隨機二進制數列;及以k位元為單位劃分上述隨機二進制數列而生成二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且,於生成上述三進制數列之步驟,以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
再者,根據本發明之另一觀點,可提供一種程式,其用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述二進制隨機數而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述隨機二進制數列而生成三進制數列;上述三進制數列生成功能以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
再者,根據本技術之另一觀點,可提供一種記錄媒體,其可由電腦讀取且記錄之程式用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且,上述三進制數列生成功能係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三
進制數列。
根據以上所說明之本發明,可有效率地自二進制隨機數抽出三進制隨機數。
以下,一面參照隨附圖式一面就本技術之恰當之實施形態進行詳細說明。另,本說明書及圖式中,對於實質上具有相同功能構成之構成要素附加相同之符號,藉此省略重複說明。
此處,就與以下揭示之本技術之實施形態有關之說明流程進行簡單論述。首先,一面參照圖1,一面就公開密鑰認證方式之演算法構成進行說明。接著,一面參照圖2,一面就電子署名方式之演算法構成進行說明。接著,一面參照圖3,一面就n路徑之公開密鑰認證方式進行說明。
接著,一面參照圖4及圖5,一面就3路徑之公開密鑰認證方式之演算法之構成例進行說明。接著,一面參照圖6及圖7,一面就5路徑之公開密鑰認證方式之演算法之構成例進行說明。接著,一面參照圖8及圖9,一面就將3路徑及5路徑之公開密鑰認證方式之有效率的演算法變更為電子署名方式之演算法的方法進行說明。
接著,一面參照圖10~圖14,一面就削減執行本實施形態之電子署名方式之演算法時之署名驗證所需的記憶量之方法進行說明。接著,一面參照圖15~圖19,一面就有效
率地自二進制隨機數抽出三進制隨機數之方法進行說明。接著,一面參照圖20及圖21,一面就有效率地代入多變數多項式之係數之方法進行說明。接著,一面參照圖22,一面就可實現本技術之實施形態之各演算法的資訊處理裝置之硬體構成例進行說明。最後,就本實施形態之技術思想,總體地對於自該技術思想所得之作用效果進行簡單說明。
1:開篇
1-1:公開密鑰認證方式之演算法
1-2:電子署名方式之演算法
1-3:n路徑之公開密鑰認證方式
2:3路徑之公開密鑰認證方式之演算法之構成
2-1:具體之演算法之構成例
2-2:並行化演算法之構成例
3:5路徑之公開密鑰認證方式之演算法之構成
3-1:具體之演算法之構成例
3-2:並行化演算法之構成例
4:向電子署名方式之變更
4-1:自3路徑之公開密鑰認證方式變更為電子署名方式
4-2:自5路徑之公開密鑰認證方式變更為電子署名方式
5:關於削減署名驗證所需之記憶量之方法
5-1:關於散列函數之構造
5-2:基於3路徑方式之電子署名方式之適用例
5-3:基於5路徑方式之電子署名方式之適用例
6:關於自二進制數之隨機數抽出三進制數之隨機數之方法
6-1:抽出方法#1(2位元劃分)
6-2:抽出方法#2(不劃分)
6-3:抽出方法#3(k位元劃分)
6-3-1:基本構成
6-3-2:追加抽出方法
7:關於有效率地代入多變數多項式之係數之方法
7-1:基本處理
7-2:資料之構造化
7-2-1:構造化方法#1
7-2-2:構造化方法#2
7-2-3:構造化方法#3
8:硬體構成例
9:總結
本實施形態係關於一種公開密鑰認證方式及電子署名方式,其以對於多次多變數聯立方程式之求解問題之困難性為安全性依據。但,本實施形態與HFE電子署名方式等先前技術相異,其係關於利用不具有有效率地解開之方法(陷阱門)之多次多變數聯立方程式的公開密鑰認證方式及電子署名方式。首先,關於公開密鑰認證方式之演算法、電子署名方式之演算法、及n路徑之公開密鑰認證方式,
簡要說明其概要。
首先,一面參照圖1,一面就公開密鑰認證方式之演算法說明其概要。圖1係用於就公開密鑰認證方式之演算法說明概要的說明圖。
公開密鑰認證係某人(證明者)利用公開密鑰pk及私密密鑰sk使他人(驗證者)認可其係本人者。例如,證明者A之公開密鑰pkA公開給驗證者B。另一方面,證明者A之私密密鑰skA由證明者A秘密管理。公開密鑰認證方法中,知曉與公開密鑰pkA對應之私密密鑰skA者被視為證明者A本人。
利用公開密鑰認證的方法向驗證者B證明證明者A係證明者A本人時,亦可經由對話協定,將證明者A知曉與公開密鑰pkA對應之私密密鑰skA的證據提交給驗證者B。又,將證明者A知曉私密密鑰skA之證據提交給驗證者B,驗證者B確認完該證據後,證明證明者A之正當性(係本人)。
但,公開密鑰認證方法中為確保安全性而要求有以下條件。
條件之一係「儘可能減小執行對話協定時由不具有私密密鑰sk之偽證者成立偽證的概率」。將該一個條件之成立稱作「健全性」。即,換言之,所謂「健全性」係指「不存在不具有私密密鑰sk之偽證者於執行對話協定之過程中以無法忽略之概率成立偽證的情況」。第二個條件係「即
使已執行對話協定,證明者A所具有之私密密鑰skA之資訊亦不會洩漏給驗證者B」。將該第2個條件成立之現象稱作「零知識特性」。
安全進行公開密鑰認證時,需利用具有健全性及零知識特性之對話協定。反之,利用不具有健全性及零知識特性之對話協定進行認證處理時,無法排除作偽證之可能性及私密密鑰資訊洩漏之可能性,故即使處理自身成功執行後仍無法證明證明者之正當性。因此,如何保證對話協定之健全性及零知識特性顯得尤為重要。
如圖1所示,公開密鑰認證方式之模式中存在證明者與驗證者此兩個實體。證明者利用密鑰生成演算法Gen生成證明者固有之私密密鑰sk與公開密鑰pk之組合。接著,證明者使用利用密鑰生成演算法Gen生成之私密密鑰sk與公開密鑰pk之組合,與驗證者執行對話協定。此時,證明者利用證明者演算法P執行對話協定。如上所述,證明者利用證明者演算法P於對話中向驗證者提交具有私密密鑰sk之證據。
另一方面,驗證者利用驗證者演算法V執行對話協定,驗證該證明者是否具有與證明者公開之公開密鑰對應之私密密鑰。即,驗證者係驗證證明者是否具有與公開密鑰對應之私密密鑰之實體。如此,公開密鑰認證方式之模式係由證明者與驗證者此兩個實體,及密鑰生成演算法Gen、證明者演算法P、驗證者演算法V此3個演算法構成。
另,以下說明中,雖採用所謂「證明者」與「驗證者」之表達,該該等表達終究表示實體。因此,執行密鑰生成演算法Gen、證明者演算法P之主體係與「證明者」之實體對應之資訊處理裝置。同樣地,執行驗證者演算法V之主體係資訊處理裝置。該等資訊處理裝置之硬體構成例如如圖10所示者。即,密鑰生成演算法Gen、證明者演算法P、驗證者演算法V係基於記錄於ROM904、RAM906、記憶體920、記錄媒體928等中之程式,由CPU902等執行。
密鑰生成演算法Gen為證明者所利用。密鑰生成演算法Gen係向證明者生成固有之私密密鑰sk與公開密鑰pk之組合的演算法。由密鑰生成演算法Gen生成之公開密鑰pk已被公開。又,被公開之公開密鑰pk為驗證者所利用。另一方面,由密鑰生成演算法Gen生成之私密密鑰sk由證明者秘密管理。又,由證明者秘密管理之私密密鑰sk用於向驗證者證明證明者具有與公開密鑰pk對應之私密密鑰sk。形式上,密鑰生成演算法Gen作為輸入安全性參數1λ(λ為0以上之整數)且輸出私密密鑰sk與公開密鑰pk之演算法,如上述算式(1)般予以表示。
[數1](sk,pk) ← Gen(1 λ )………(1)
證明者演算法P為證明者所利用。證明者演算法P係用於
向驗證者證明證明者具有與公開密鑰pk對應之私密密鑰sk的演算法。即,證明者演算法P係輸入私密密鑰sk與公開密鑰pk而執行對話協定之演算法。
驗證者演算法V為驗證者所利用。驗證者演算法V係於對話協定中驗證證明者是否具有與公開密鑰pk對應之私密密鑰sk的演算法。驗證者演算法V係輸入公開密鑰pk且根據對話協定之執行結果輸出0或1(1位元)的演算法。另,驗證者於驗證者演算法V輸出0時判定證明者係不正當者,於輸出1時判定證明者係正當者。形式上,驗證者演算法V如下述算式(2)般予以表示。
[數2]0/1 ← V(pk)………(2)
如上所述,為實現具有意義之公開密鑰認證,對話協定需滿足健全性及零知識特性此2個條件。但,為證明證明者具有私密密鑰sk,需由證明者執行依存於私密密鑰sk之手續,將其結果通知給驗證者後,由驗證者基於該通知內容執行驗證。執行依存於私密密鑰sk之手續係保證健全性之必要條件。另一方面,需確保私密密鑰sk之資訊未洩漏給驗證者。因此,為滿足該等要求,需巧妙設計上述密鑰生成演算法Gen、證明者演算法P、驗證者演算法V。
以上,已就公開密鑰認證方式說明其概要。
接著,一面參照圖2一面就電子署名方式之演算法說明概要。圖2係用於就電子署名方式之演算法說明概要的說明圖。
與書面文件相異,無法對於某被電子化之資料進行蓋章或署名。因此,為證明被電子化之資料之作者,所需之電子化方法需可獲得與對書面文件蓋章或署名相同之效果。該方法係電子署名。所謂電子署名係指將僅資料作者知曉之署名資料與資料對應後提交給接收者,由接收者一方驗證該署名資料之方法。
如圖2所示,電子署名方式之模式中,存在署名者及驗證者此兩個實體。又,電子署名方式之模式係由密鑰生成演算法Gen、署名生成演算法Sig、署名驗證演算法Ver此3個演算法構成。
署名者利用密鑰生成演算法Gen生成署名者固有之署名密鑰sk與驗證密鑰pk之組合。且,署名者利用署名生成演算法Sig生成賦予文件M之電子署名σ。即,署名者係向文件M賦予電子署名之實體。另一方面,驗證者利用署名驗證演算法Ver驗證賦予文件M之電子署名σ。即,驗證者係為確認文件M之作者是否為署名者而驗證電子署名σ之實體。
另,以下說明中雖使用所謂「署名者」「驗證者」之表達,但該等表達終究表示實體。因此,執行密鑰生成演算法Gen、署名生成演算法Sig之主體係與「署名者」之實體對應之資訊處理裝置。同樣地,執行署名驗證演算法Ver
之主體係資訊處理裝置。該等資訊處理裝置之硬體構成例如如圖10所示。即,密鑰生成演算法Gen、署名生成演算法Sig、署名驗證演算法Ver係基於記錄於ROM904、RAM906、記憶體920、移動式記錄媒體928等中之程式,由CPU902等予以執行。
密鑰生成演算法Gen為署名者所利用。密鑰生成演算法Gen係生成署名者固有之署名密鑰sk與驗證密鑰pk之組合之演算法。由密鑰生成演算法Gen生成之驗證密鑰pk被公開。另一方面,由密鑰生成演算法Gen生成之署名密鑰sk由署名者秘密管理。又,署名密鑰sk用於生成賦予文件M之電子署名σ。例如,密鑰生成演算法Gen係輸入安全性參數1λ(λ為0以上之整數)且輸出署名密鑰sk及公開密鑰pk。該情形下,密鑰生成演算法Gen形式上可如下述算式(3)般予以表示。
[數3](sk,pk) ← Gen(1 λ )………(3)
署名生成演算法Sig為署名者所利用。署名生成演算法Sig係生成賦予文件M之電子署名σ之演算法。署名生成演算法Sig係輸入署名密鑰sk與文件M且輸出電子署名σ之演算法。該署名生成演算法Sig形式上可如下述算式(4)般予以表示。
[數4]σ ← Sig(sk,M)………(4)
署名驗證演算法Ver為驗證者所利用。署名驗證演算法Ver係驗證電子署名σ是否為對應於文件M之正當電子署名之演算法。署名驗證演算法Ver係輸入署名者之驗證密鑰pk、文件M、電子署名σ且輸出0或1(1位元)之演算法。該署名驗證演算法Ver形式上可如下述算式(5)般予以表示。另,驗證者於署名驗證演算法Ver輸出0時(公開密鑰pk否決文件M與電子署名σ時),判斷電子署名σ不正當;於輸出1時(公開密鑰pk接受文件M與電子署名σ時),判斷電子署名正當。
[數5]0/1 ← Ver(pk,M,σ)………(5)
以上,已就電子署名方式之演算法說明其概要。
接著,一面參照圖3一面就n路徑之公開密鑰認證方式進行說明。圖3係用於就n路徑之公開密鑰認證方式進行說明的說明圖。
如上所述,公開密鑰認證方式係於對話協定中向驗證者證明證明者具有與公開密鑰pk對應之私密密鑰sk之認證方式。且,對話協定需滿足健全性及零知識特性此2個條
件。因此,如圖3所示,對話協定中,證明者及驗證者雙方一面各自執行處理,一面進行n次資訊交換。
n路徑之公開密鑰認證方式之情形中,利用證明者演算法P,由證明者執行處理(步驟#1),向驗證者發送資訊T1。接著,利用驗證者演算法V,由驗證者進行處理(步驟#2),向證明者發送資訊T2。進而,針對k=3~n,依次進行處理之執行及資訊Tk之發送,最後,執行處理(步驟#n+1)。如此,將n次收發資訊之方式稱作「n路徑」之公開認證方式。
以下,已就n路徑之公開認證方式予以說明。
以下,就3路徑之公開認證方式之演算法進行說明。另,以下說明中,有將3路徑之公開認證方式稱作「3路徑方式」之情形。
首先,一面參照圖4一面就3路徑方式之具體之演算法之構成例進行說明。圖4係用於就3路徑方式之具體之演算法之構成進行說明的說明圖。此處,對於作為公開密鑰pk之一部分而利用二次多項式之組合(f1(x),...,fm(x))之情形進行探討。其中,將二次多項式f1(x)設為如下述算式(6)般表示者。且,將矢量(x1,...,xn)記作x,將二次多項式之組合(f1(x),...,fm(x))記作多變數多項式F(x)。
[數6]
再者,二次多項式之組合(f1(x),...,fm(x))可如下述算式(7)般予以表示。且A1,...,Am係n×n行列。進而,b1,...,bm各係n×1矢量。
利用該表示,多變數多項式F可如下述算式(8)及(9)般予以表示。若該表示成立,則可易於根據下述算式(10)予以確認。
如此般將F(x+y)劃分成依存於x之第1部分、依存於y之第2部分、以及依存於x及y兩者之第3部分時,與第3部分對應之項G(x,y)關於x及y成為雙線形。以下,有將項G(x,y)稱作雙線形項之情形。若利用該性質,則可構築有效率之演算法。
例如,利用矢量t0 Kn、e0 Km,將用於遮蔽多變數多項式F(x+r)之多變數多項式F1(x)表示為F1(x)=G(x,t0)+e0。該情形中,多變數多項式F(x+r0)與G(x)之和係如下述算式(11)般予以表示。此處,若t1=r0+t0、e1=F(r0)+e0,則多變數多項式F2(x)=F(x+r0)+F1(x)可由矢量t1 Kn、e1 Km予以表示。因此,若設為F1(x)=G(x,t0)+e0,則可用Kn上之矢量及Km上之矢量表示F1及F2,可實現通信所需之資料尺寸較少且有效率之運算法。
[數9]
F(x+r 0)+F 1(x)=F(x)+F(r 0)+G(x,r 0)+G(x,t 0)+e 0=F(x)+G(x,r 0+t 0)+F(r 0)+e 0………(11)
另,完全不會自F2(或F1)洩漏與r0有關之資訊。例如,即使賦予e1及t1(或e0及t0),若不知曉e0及t0(或e1及t1),便完全無法獲知r0之資訊。因此,可確保零知識特性。以下,就基於上述邏輯而構築之3路徑方式之演算法進行說明。此處說明之3路徑方式之演算法由如下之密鑰生成演算法Gen、證明者演算法P、驗證者演算法V構成。
密鑰生成演算法Gen生成環K上定義之m個多變數多項式f1(x1,...,xn),...,fm(x1,...,xn)、及矢量s=(s1,…,sn) Kn。接著,密鑰生成演算法Gen計算y=(y1,…,ym)←(f1(s),…,fm(s))。又,密鑰生成演算法Gen將(f1(x1,...,xn),...,fm(x1,...,xn),y)設定為公開密鑰pk,將s設定為私密密鑰。
以下,一面參照圖4一面就於對話協定中證明者演算法P所執行之處理及驗證者演算法V所執行之處理進行說明。該對話協定中,證明者於完全未將私密密鑰s之資訊洩漏給驗證者之情形下,向驗證者提交「自身知曉滿足y=F(s)之s」。另一方面,驗證者驗證證明者是否知曉滿足y=F(s)之s。另,公開密鑰pk係設為對驗證者公開者。且,私密
密鑰s係設為由證明者秘密管理者。以下,依據圖4所示之流程予以說明。
如圖4所示,首先,證明者演算法P隨機生成矢量r0,t0 Kn及e0 Km。接著,證明者演算法P計算r1←s-r0。該計算相當於由矢量r0遮蔽私密密鑰s之操作。進而,證明者演算法P計算t1←r0-t0。接著,證明者演算法P計算e1←F(r0)-e0。
接著,證明者演算法P計算c0←H(r1,G(t0,r1)+e0)。接著,證明者演算法P計算c1←H(t0,e0)。接著,證明者演算法P計算c2←H(t1,e1)。步驟#1中所生成訊息(c0,c1,c2)發送給驗證者演算法V。
已接收訊息(c0,c1,c2)之驗證者演算法V係於3個驗證圖案中選擇利用哪一驗證模式。例如,驗證者演算法V自表示驗證圖案種類之3個數值{0,1,2}中選擇一個數值,將選定之數值設定為請求Ch。該請求Ch被發送給證明者演算法P。
已接收請求Ch之證明者演算法P根據所接收之請求Ch生成發送給驗證者演算法V之回覆Rsp。Ch=0時,證明者演算法P生成回覆Rsp=(r0,t1,e1)。Ch=1時,證明者演算法P生成回覆Rsp=(r1,t0,e0)。Ch=2時,證明者演算法P生成回覆
Rsp=(r1,t1,e1)。步驟#3中所生成之回覆Rsp被發送給驗證者演算法V。
已接收回覆Rsp之驗證者演算法V係利用所接收之Rsp執行以下驗證處理。
Ch=0時,驗證者演算法V驗證c1=H(r0-t1,F(r0)-e1)之等號是否成立。進而,驗證者演算法V驗證c2=H(t1,e1)之等號是否成立。驗證者演算法V於該等驗證全部成功時輸出表示驗證成功之值1,於驗證失敗時輸出表示認證失敗之值0。
Ch=1時,驗證者演算法V驗證c0=H(r1,G(t0,r1)+e0)之等號是否成立。進而,驗證者演算法V驗證c1=H(t0,e0)之等號是否成立。驗證者演算法V於該等驗證全部成功時輸出表示認證成功之值1,於驗證失敗時輸出表示認證失敗之值0。
Ch=2時,驗證者演算法V驗證c0=H(r1,y-F(r1)-G(t1,r1)-e1)之等號是否成立。進而,驗證者演算法V驗證c2=H(t1,e1)之等號是否成立。驗證者演算法V於該等驗證全部成功時輸出表示認證成功之值1,於該等驗證失敗時輸出表示驗證失敗之值0。
以下,已就3路徑方式之有效率之演算法之構成例予以說明。
接著,一面參照圖5一面就將圖4所示之3路徑方式之演算法並列化之方法進行說明。另,省略密鑰生成演算法
Gen之構成之說明。
另,如適當應用上述對話協定,則可將偽證成功之概率抑制在2/3以下。因此,若執行2次該對話協定,則可將偽證成功之概率抑制在(2/3)2以下。進而,若執行N次該對話協定,則偽證成功之概率變為(2/3)N;若將N設定成足夠大之數(例如N=140),則偽證成功之概率將降至可忽略之程度。
作為複數次執行對話協定之方法,認為例如有逐次重複複數次訊息、請求、回覆之處理之串接方法;及於一次處理中進行複數次訊息、請求、回覆之處理之並行方法。進而,亦可考慮組合串接方法與並行方法之混合型方法。此處,一面參照圖5一面就並行執行3路徑方式之上述對話協定之演算法(以下稱作並行化演算法)進行說明。
如圖5所示,首先,證明者演算法P就i=1~N執行以下處理(1)~處理(6)。
處理(1):證明者演算法P隨機生成矢量r0i,t0i Kn及e0i Km。
處理(2):證明者演算法P計算r1i←s-r0i。該計算相當於由矢量roi遮蔽操作私密密鑰s。進而,證明者演算法P計算t1i←r0i+t0i。
處理(3):證明者演算法P計算e1i←F(r0i)-e0i。
處理(4):證明者演算法P計算c0i←H(r1i,G(r1i,t0i)+e0i)。
處理(5):證明者演算法P計算c1i←H(t0i,e0i)。
處理(6):證明者演算法P計算c2i←H(t1i,e1i)。
針對i=1~N執行上述處理(1)~處理(6)後,證明者演算法P計算Cmt←H(c01,c11,c21,…,c0N,c1N,c2N)。步驟#1中所生成之散列值Cmt被發送給驗證者演算法V。如此,藉由將訊息(c01,c11,c21,…,c0N,c1N,c2N)轉換為散列值並發送給證明者演算法V,可削減通信量。
已接收散列值Cmt之驗證者演算法V係針對各i=1~N於3個驗證圖案之中選擇利用哪一驗證圖案。例如,驗證者演算法V針對各i=1~N,自表示驗證圖案種類之3個數值{0,1,2}中選擇1個數值,將選定之數值設定為請求Chi。請求Ch1,…,ChN被發送給證明者演算法P。
已接收請求Ch1,…,ChN之證明者演算法P根據所接收之各請求Ch1,…,ChN,生成發送給驗證者演算法V之回覆Rsp1,…,RspN。Chi=0時,證明者演算法P生成Rspi=(r0i,t1i,e1i,c0i)。Chi=1時,證明者演算法P生成Rspi=(r1i,t0i,e0i,c2i)。Chi=2時,證明者演算法P生成Rspi=(r1i,t1i,t1i,e1i,c1i)。
步驟#3中所生成之回覆Rsp1,…,RspN被發送給驗證者演算法V。
已接收回覆Rsp1,…,RspN之驗證者演算法V利用所接收之回
覆Rsp1,…,RspN,針對i=1~N執行以下處理(1)~處理(3)。其中,驗證者演算法V於Chi=0時執行處理(1);於Chi=1時執行處理(2);於Chi=2時執行處理(3)。
處理(1):Chi=0時,驗證者演算法V自Rspi抽出(r0i,t1i,e1i,c0i)。接著,驗證者演算法V計算c1i=H(r0i-t1i,F(r0i)-e1i)。進而,驗證者演算法V計算c2i=H(t1i,e1i)。又,驗證者演算法V保持(c0i,c1i,c2i)。
處理(2):Chi=1時,驗證者演算法V自Rspi抽出(r1i,t0i,e0i,c2i)。接著,驗證者演算法V計算c0i=H(r1i,G(t0i,r1i)+e0i)。進而,驗證者演算法V計算c1i=H(t0i,e0i)。又,驗證者演算法V保持(c0i,c1i,c2i)。
處理(3):Chi=2時,驗證者演算法V自Rspi抽出(r1i,t1i,e1i,c1i)。接著,驗證者演算法V計算c0i=H(r1i,y-F(r1i)-G(t1i,r1i)-e1i)。進而,驗證者演算法V計算c2i=H(t1i,e1i)。又,驗證者演算法V保持(c0i,c1i,c2i)。
針對i=1~N執行處理(1)~處理(3)後,驗證者演算法V驗證Cmt=H(c01,c11,c21,…,c0N,c1N,c2N)之等號是否成立。驗證者演算法V於該驗證成功時輸出表示驗證成功之值1,於驗證失敗時輸出表示認證失敗之值0。
以上,已就3路徑方式之有效率之並行化演算法之構成例予以說明。
接著,就5路徑之公開密鑰認證方式之演算法進行說明。另,以下說明中,有將5路徑之公開密鑰認證方式稱
作「5路徑方式」之情形。
3路徑方式之情形中,一次對話協定之偽證概率為2/3;而5路徑方式之情形中,一次對話協定之偽證概率為1/2+1/q。且,q係利用之環之階數。因此,環之階數足夠大時,5路徑方式下可降低每一次之偽證概率,從而能以較少之對話協定之執行次數充分地減小偽證概率。
例如,欲使偽證概率降至1/2n以下時,3路徑方式中需執行對話協定n/(log3-1)=1.701 n次以上。另一方面,欲將偽證概率降至1/2n以下時,5路徑方式中需執行對話協定n/(1-log(1+1/q)次以上。因此,若設為q=24,則在用於實現相同安全性水準所需之通信量方面,相較3路徑方式,5路徑方式中較少。
首先,一面參照圖6一面就5路徑方式之具體之演算法之構成例進行說明。圖6係用於就5路徑方式之具體之演算法之構成進行說明的說明圖。此處,對於作為公開密鑰pk之一部分而利用二次多項式之組合(f1(x),...,fm(x))之情形進行探討。且,二次多項式fi(x)係設為如上述算式(6)般予以表示者。且,將矢量(x1,…,xn)記作x,將二次多項式之組合(f1(x),…,fm(x))記作多變數多項式F(x)。
與3路徑方式之演算法同樣地,利用2個矢量t0 Kn、e0 Km,將用於遮蔽多變數多項式F(x+r0)之多變數多項式F1(x)如F1(x)=G(x、t0)+e0般予以表示。若應用該表示,則關於多變數多項式F(x+r0),可獲得由下述算式(12)所表示
之關係。
[數10]Ch A .F(x+r 0)+F 1(x)=Ch A .F(x)+Ch A .F(r 0)+Ch A .G(x,r 0)+G(x,t 0)+e 0=Ch A .F(x)+G(x,Ch A . r0+t 0)+Ch A .F( r0)+e 0………(12)
此,若設t1=ChA.r0+t0、e1=ChA.F(r0)+e0,則遮蔽後之多變數多項式F2(x)=ChA.F(x+r0)+F1(x)亦可由2個矢量t1 Kn、e1 Km予以表示。根據該等理由,若設F1(x)=G(x,t0)+e0,則可利用Kn上之矢量及Km上之矢量表示F1及F2,可實現通信所需之資料尺寸較小且有效率的演算法。
另,完全不會自F2(或F1)洩漏與r0有關之資訊。例如,即使給出e1及t1(或e0及t0),只要不知曉e0及t0(或e1及t1),便完全無法知曉r0之資訊。因此,可確保零知識特性。以下,對於基於上述邏輯而構築之5路徑方式之演算法進行說明。此處說明之5路徑方式之演算法由如下般之密鑰生成演算法Gen、證明者演算法P、驗證者演算法V構成。
密鑰生成演算法Gen係生成環K上定義之多變數多項式f1(x1,…,xn),…,fm(x1,…,xn)、及矢量s=(s1,…,sn) Kn。接著,密鑰生成演算法Gen計算y=(y1,…,ym)←(f1(s),…,fm(s))。又,密鑰生成演算法Gen將(f1,…,fm,y)設定為公開密鑰pk,將s設定為私密密鑰。另,以下,將矢量(x1,…,xn)記作x,將多變數多項式之組合(f1(x),…,fm(x))記作F(x)。
以下,一面參照圖6一面針對於對話協定中由證明者演算法P及驗證者演算法V執行之處理進行說明。該對話協定中,證明者於完全未向驗證者洩漏私密密鑰s之資訊之情形下,將「自身知曉滿足y=F(s)之s」提交給驗證者。另一方面,驗證者驗證證明者是否知曉滿足y=F(s)之s。另,公開密鑰pk係設為對驗證者公開者。且,私密密鑰s係設為由證明者予以秘密管理者。以下,依照圖6所示之流程進行說明。
如圖6所示,首先,證明者演算法P隨機生成矢量r0 Kn、t0 Kn、e0 Km。接著,證明者演算法P計算r1←s-r0。該計算相當於由矢量r0遮蔽私密密鑰s之操作。接著,證明者演算法P生成矢量r0,t0,e0之散列值c0。接著,證明者演算法P計算c0←H(r0,t0,e0)。接著,證明者演算法P生成G(t0,r1)+e0及r1之散列值c1。即,證明者演算法P計算c0←H(r1,G(t0,r1)+e0)。步驟#1中所生成之訊息(c0,c1)被發送給驗證者演算法V。
已接收訊息(c0,c1)之驗證者演算法V自存在之環K的q個元中隨機選擇一個數ChA,將選定之數ChA發送給證明者演算法P。
已接收數ChA之證明者演算法P計算t1←ChA.r0-t0。進
而,證明者演算法P計算e1←ChA.F(r0)-e0。又,證明者演算法P將t1及e1發送給驗證者演算法V。
已接收t1及e1之證明者演算法V係於2個驗證圖案中選擇利用哪一個驗證圖案。例如,驗證者演算法V自表示驗證圖案種類之2個數值{0,1}中選擇一個數值,將選定之數值設定為請求ChB。該請求ChB被發送給證明者演算法P。
已接收ChB之證明者演算法P根據接收之ChB生成返送給驗證者演算法V之回覆Rsp。ChB=0時,證明者演算法P生成回覆Rsp=r0。ChB=1時,證明者演算法P生成回覆Rsp=r1。步驟#5中所生成之回覆Rsp被發送給驗證者演算法V。
已接收Rsp之驗證者演算法V利用接收之Rsp執行以下驗證處理。
ChB=0時,驗證者演算法V執行r0←Rsp。又,驗證者演算法V驗證c0=H(r0,ChA.r0-t1,ChA.F(r0)-e1)之等號是否成立。驗證者演算法V於該驗證成功時輸出表示認證成功之值1,於驗證失敗時輸出表示認證失敗之值0。
ChB=1時,驗證者演算法V執行r1←Rsp。又,驗證者演算法V驗證c1=H1(r1,ChA.(y-F(r1))-G(t1-r1)-e1)之等號是否成立。驗證者演算法V於該驗證成功時輸出表示成功之值1,於驗證失敗時輸出表示認證失敗之值0。
以上,已就5路徑方式之有效率之演算法之構成例予以說明。
接著,一面參照圖7一面就將圖6所示之5路徑方式之演算法並行化的方法進行說明。另,省略密鑰生成演算法Gen之構成之說明。
如先前所述,若適當應用5路徑方式之對話協定,則可將偽證成功之概率抑制在(1/2+1/q)以下。因此,若執行兩次該對話協定,則可將偽證成功之概率抑制在(1/2+1/q)2以下。進而,若執行N次該對話協定,則偽證成功之概率變為(1/2+1/q)N,若將N設定成足夠大之數(例如,N=80),則偽證成功之概率減小至可忽略之程度。
作為執行複數次對話協定之方法,例如可考慮到逐次重複複數次訊息、請求、回覆之處理之串接方法;與藉由一次之處理進行複數次訊息、請求、回覆之處理之並行方法。進而,亦可考慮到組合串接方法與並行方法之混合型方法。此處,就並行執行5路徑方式之上述對話協定之演算法(以下稱作並行化演算法)進行說明。
如圖7所示,首先,證明者演算法P針對i=1~N執行處理(1)~處理(4)。
處理(1):證明者演算法P隨機生成矢量r0i,t0i Kn及e0i Km。
處理(2):證明者演算法P計算r1i←s-r0i。該計算相當於
由矢量r0i遮蔽私密密鑰s之操作。
處理3:證明者演算法P計算c0i←H(r0i,t0i,e0i)。
處理4:證明者演算法P計算c1i←H(r1i,G(t0i,r1i)+e0i)。
針對i=1~N執行處理(1)~處理(4)後,證明者演算法P執行散列值Cmt←H(c01,c11,…,c0N,c1N)。又,步驟#1中所生成之散列值Cmt被發送給驗證者演算法V。
已接收散列值Cmt之驗證者演算法V針對各i=1~N,自存在之環K之q個元中隨機選擇一個數ChAi,將選定之ChAi(i=1~N)發送給證明者演算法P。
已接收數ChAi(i=1~N)之證明者演算法P針對各i=1~N,計算t1i←ChAi.r0i-t0i。進而,證明者演算法P針對各i=1~N計算e1i←ChAi.F(r0i)-e0i。接著,證明者演算法P計算散列值d←H(t11,e11,…,t1N,e1N)。又,證明者演算法P將散列值d發送給驗證者演算法V。
已接收散列值d之驗證者演算法V針對各i=1~N於2個驗證圖案中選擇利用哪一個驗證圖案。例如,驗證者演算法V自表示驗證圖案種類之兩個數值{0,1}中選擇一個數值,將選定之數值設定成ChBi。請求ChBi(i=1-N)被發送給證明者演算法V。
已接收請求ChBi(i=1~N)之證明者演算法P針對各
i=1~N,根據接收之請求ChBi,生成返送給驗證者演算法V之回覆Rspi。ChBi=0時,證明者演算法P生成回覆Rspi=(r0i,t0i,e0i,c1i)。ChBi=1時,證明者演算法P生成回覆Rspi=(r1i,t1i,e1i,c0i)。步驟#5中所生成回覆Rspi(i=1~N)被發送給驗證者演算法V。
已接收回覆Rspi(i=1~N)之驗證者演算法V利用接收之Rspi(i=1~N)執行以下處理(1)及處理(2)
處理(1):ChBi=0時,驗證者演算法V執行(r0i,r0i,e0i,c1i)←Rspi。又,驗證者演算法V計算c0i=H(r0i,t0i,e0i)。進而,驗證者演算法V計算t1i←ChAi.r0i+t0i及e1i←ChAi.F(r0i)-e0i。又,驗證者演算法V保持(c0i,c1i,t1i,e1i)。
處理(2):ChBi=1時,驗證者演算法V執行(r1i,t1i,e1i,coi)←Rspi。又,驗證者演算法V計算c1i=H(r1i,ChAi‧(y-F(r1i))-G(t1i,r1i)-e1i)。又,驗證者演算法V保持(c0i,c1i,t1i,e1i)。
針對i=1~N執行處理(1)及處理(2)後,驗證者演算法V驗證Cmt=H(c01,c11,…,c0N,c1N)之等號是否成立。進而,驗證者演算法V驗證d=H(t11,e11,…,t1N,e1N)之等號是否成立。又,驗證者演算法V於該等驗證全部成功時輸出表示認證成功之值1,於認證失敗時輸出表示認證失敗之值0。
以上,已就5路徑方式之有效率之並行化演算法之構成例予以說明。
接著,介紹將上述公開密鑰認證方式變更為電子署名方式之方法。
若將公開密鑰認證方式之模式下之證明者與電子署名方式中之署名者對應,則就僅證明者使驗證者認可之方面而言,可易於理解的是其近似於電子署名方式之模式。基於如此之構思,就將上述公開密鑰認證方式變更為電子署名方式之方法進行說明。
首先,就自3路徑之公開密鑰認證方式向電子署名方式之變更進行說明。
如圖8所示,3路徑方式之有效率之演算法(例如參照圖5),由3次對話及4個步驟#1~步驟#4予以表示。
步驟#1之構成包含:處理(1),其係針對i=1~N生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i);及處理(2),其係計算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。步驟#1中由證明者演算法P生成之Cmt被發送給驗證者演算法V。
步驟#2係由選擇Ch1,…,ChN之處理構成。步驟#2中由認證者演算法V選定之Ch1,…,ChN被發送給證明者演算法P。
步驟#3係由應用Ch1,…,ChN及a1,…,aN而生成Rsp1,…,RspN之處理構成。將該處理以Rspi←Select(Chi,ai)予以表示。步驟#3中由證明者演算法P生成之Rsp1,…,RspN被發送給驗證者演算法V。
步驟#4之構成包含:處理(1),其係應用Ch1,…,ChN及Rsp1,…,RspN而再生c01,c11,c21,...,c0N,c1N,c2N;及處理(2),其係應用再生之c01,c11,c21,...,c0N,c1N,c2N來驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
上述步驟#1-步驟#4所表示之公開密鑰認證方式之演算法變更為如圖8所示之署名生成演算法Sig及署名驗證演算法Ver。
首先,就署名生成演算法Sig之構成進行論述。署名生成演算法Sig係由以下處理(1)-處理(5)構成。
處理(1):署名生成演算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i,c2i)。
處理(2):署名生成演算法Sig計算Cmt←H(c01,c11,c21,...,c0N,c1N,c2N)。
處理(3):署名生成演算法Sig計算(Ch1,…,ChN)←H(M,Cmt)。該M係賦予署名之文件。
處理(4):署名生成演算法Sig計算Rspi←Select(Chi,ai)。
處理(5):署名生成演算法Sig將(Cmt,Rsp1,...,RspN)設定為署名。
接著,就署名驗證演算法Ver之構成進行論述。署名驗證演算法Ver係由以下處理(1)~處理(3)構成。
處理(1):署名驗證演算法Ver計算(Ch1,...,ChN)←H(M,Cmt)。
處理(2):署名認證演算法Ver應用Ch1,…,ChN及Rsp1,...,RspN而生成c01,c11,c21,...,c0N,c1N,c2N。
處理(3):署名驗證演算法Ver應用再生之c01,c11,c21,...,c0N,c1N,c2N來驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)。
如上所述,藉由使公開認證方式之模式下之證明者與電子署名方式中之署名者對應,可將公開認證方式之演算法變更為電子署名方式之演算法。
接著,就自5路徑之公開密鑰認證方式變更為電子署名方式進行說明。
如圖9所示,5路徑方式之有效率的演算法(例如參照圖7)由5次對話及6個步驟#1~步驟#6予以表示。
步驟#1係由以下處理構成:處理(1),其係針對i=1~N而生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i);及處理(2),其係計算Cmt←H(c01,c11,...,c0N,c1N)。步驟#1中由驗證者演算法P生成之Cmt被發送給驗證者演算法V。
步驟#2係由選擇ChA1,…,ChAN之處理構成。步驟#2中由驗證者演算法V選定之ChA1,…,ChAN被發送給證明者演算法P。
步驟#3係由針對i=1~N生成bi=(t1i,e1i)之處理、及生成d=H(t11,e11,…,t1N,e1N)之處理構成。步驟#3中由證明者演算法P生成之d被發送給驗證者演算法V。
步驟#4係由選擇ChB1,…,ChBN之處理構成。步驟#4中由驗證
者演算法V選定之ChB1,…,ChBN被發送給驗證者演算法P。
步驟#5係由應用ChB1,...,ChBN,a1,...,aN,b1,...,bN而生成Rsp1,...,RspN之處理構成。將該處理以Rspi←Select(ChBi,ai,bi)予以表示。步驟#5中由證明者演算法P生成之Rsp1,...,RspN被發送給驗證者演算法V。
步驟#6係由以下處理構成:應用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN而再生c01,c11,...,c0N,c1N,t11,e11,...,t1N,e1N之處理:應用再生之c01,c11,...,c0N,c1N來驗證Cmt=H(c01,c11,...,c0N,c1N)之處理;及驗證d=H(t11,e11,...,t1N,e1N)之處理。
上述步驟#1~步驟#6所表示之公開密鑰認證方式之演算法變更為如圖9所示之署名生成演算法Sig及署名認證演算法Ver。
首先,就署名生成演算法Sig之構成予以論述。署名生成演算法Sig係由以下處理(1)~處理(7)構成。
處理(1):署名生成演算法Sig生成ai=(r0i,t0i,e0i,r1i,t1i,e1i,c0i,c1i)。
處理(2):署名演算法Sig計算Cmt←H(c01,c11,...,c0N,c1N)。
處理(3):署名生成演算法Sig計算(ChA1,...,ChAN)←H(M,Cmt)。該M係賦予署名之文件。
處理(4):署名生成演算法Sig針對i=1~N而生成bi=(t1i,e1i)。進而,署名生成演算法Sig計算出d=H(t11,
e11,...,t1N,e1N)。
處理(5):署名生成演算法Sig計算(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,d)。另,亦可變更為(ChB1,...,ChBN)←H(ChA1,...,ChAN,d)。
處理(6):署名生成演算法Sig計算Rspi←Select(ChBi,ai,bi)。
處理(7):署名生成演算法Sig將(Cmt,d,Rsp1,...,RspN)設定為電子署名。
接著,就署名驗證演算法Ver之構成予以論述。署名驗證演算法Ver係由以下處理(1)~處理(4)構成。
處理(1):署名驗證演算法Ver計算(ChA1,...,ChAN)←H(M,Cmt)。
處理(2):署名驗證演算法Ver計算(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,d)。另,於署名驗證演算法Ver執行之處理(5)中,已變更為(ChB1,...,ChBN)←H(ChA1,...,ChAN,d)時,署名驗證演算法Ver計算(ChB1,...,ChBN)←H(ChA1,...,ChAN,d)。
處理(3):署名驗證演算法Ver應用ChA1,...,ChAN,ChB1,...,ChBN,Rsp1,...,RspN而生成t11,e11,...,t1N,e1N,c01,c11,...,c0N,c1N。
處理(4):署名驗證演算法Ver應用再生之c01,c11,...,c0N,c1N,來驗證Cmt=H(c01,c11,...,c0N,c1N)及d=H(t11,e11,...,t1N,e1N,)。
如上所述,藉由使公開密鑰認證方式之模式下之認證者與電子署名方式中之署名者對應,可將公開密鑰認證方式之演算法變更為電子署名方式之演算法。
又,上述電子署名方式之演算法中,署名驗證演算法Ver接收電子署名全體後執行署名驗證之處理。但,上述電子署名方式之情形中,電子署名之資料尺寸較大。因此,利用RFID(Radio Frequency IDentification,射頻識別)等僅具有較小記憶容量之設備進行認證之情形中,需注意記憶體之空餘容量或認證處理中之記憶體使用率等。且,利用不具有足夠記憶容量之設備時,亦可預想到其無法進行認證之情形。因此,本申請案發明者構思出一種削減署名驗證所需之記憶量之方法。
首先,本申請案發明者關注散列函數之構造。多數情形下,散列函數具有將輸入劃分為區塊單位而以區塊為單位依次進行處理的構造。例如,SHA-1之情形中,散列函數具有如圖10所示般之構造。圖10所示之散列函數將填充(padding)完畢之輸入M劃分為Z個區塊,m1,...,mz一面遞增指數j,一面逐次將區塊mj與初始值IV或中間值CVj一同作用於特定函數CF而生成散列值。因此,於獲得中間值CVj之時間點無需之前所用之區塊。因此,可利用該特性構思出一種有效率地削減執行演算法所需之記憶量的方法(以下稱作記憶削減方法)。以下,就將該方法適當應用於
電子署名方式中之方法進行說明。
首先,就對基於圖8所示之3路徑方式的電子署名方式之演算法適當應用上述記憶削減方法之方法進行說明。
通常,上述電子署名方式中之署名驗證演算法Ver如圖11所示,一次性接收構成電子署名之(Cmt,Rsp1,...,RspN)(S101)。接著,署名驗證演算法Ver執行(Ch1,...,ChN)←H(M,Cmt)(S102)。接著,署名驗證演算法Ver執行(c01,c11,c21,...,c0N,c1N,c2N)←再生(Ch1,...,ChN;Rsp1,...,RspN)(S103)。接著,署名驗證演算法Ver驗證Cmt=H(c01,c11,c21,...,c0N,c1N,c2N)(S104),結束關於署名驗證之一連串處理。
通常之安裝方法中,如圖11之步驟S101所示,一旦接收電子署名,則需要用於保持(Rsp1,…,RspN)直至結束步驟S103之處理為止的記憶體。但,自圖5之演算法構成可知,步驟S103中所執行之(c0i,c1i,c2i)再生中未利用(Chi;Rspi)以外之資訊。且,若考慮圖10所示之散列函數之構造,則可知步驟S104中所執行之散列函數之計算能以區塊為單位進行劃分後予以執行。因此,將署名認證之相關處理之構成改良為如圖12所示般之構成。
圖12所示之構成之情形中,署名驗證演算法Ver首先僅接收電子署名中所含之Cmt(S111)。接著,署名驗證演算
法Ver執行(Ch1,...,ChN)←H(M,Cmt)(S112)。接著,署名驗證演算法Ver針對i=1~N一面遞增i一面逐次執行步驟S113~S115之處理。
步驟S113中,署名驗證演算法Ver接收Rspi(S113)。接著,署名驗證演算法Ver利用接收之Rspi執行(c0i,c1i,c2i)←再生(Chi;Rspi)(S114)。執行步驟S114之處理後,無需Chi及Rspi。因此,署名驗證演算法Ver於執行步驟S114之處理後自記憶體中刪除Chi及Rspi。
接著,署名驗證演算法Ver執行tmpi←Hi(tmpi-1;c0i,c1i,c2i)(S115)。另,函數Hi係輸出散列函數H之內部計算c0i,c1i,c2i時所生成之中間值的函數。實際上,因相應於選定之散列函數,函數Hi之輸入尺寸有所不同,故根據必要而進行附加位元等適當之輸入長度的校正處理。若應用函數Hi,則散列函數H以由如下所示之處理(1)~處理(3)構成之演算法予以表示。又,tmpN成為散列函數H之最終輸出(散列值)。實際上,根據散列函數之類型而於最終處理中進行填充的追加處理。
處理(1):tmp0←空字符串
處理(2):for i=1 to N tmpi ← Hi(tmpi-1;c0i,c1i,c2i)end for
處理(3):output tmpN
針對i=1~N執行步驟S113~S115之處理後,署名驗證演算
法Ver驗證Cmt=tmpN是否成立(S116),結束關於署名驗證之一連串之處理。如上所述,署名驗證演算法Ver自記憶體中刪除反覆執行步驟S113~S115之處理過程中不需要的資訊。因此,署名驗證所需之記憶量被抑制在最小限度。結果,即便是僅具有較小記憶容量之設備,亦可進行上述署名驗證。
接著,就對基於圖9所示之5路徑方式的電子署名方式之演算法適當應用上述記憶削減方法的方法進行說明。
通常,上述電子署名方式中之署名驗證演算法Ver如圖13所示,一次性接收構成電子署名之(Cmt,d,Rsp1,...,RspN)(S121)。接著,署名驗證演算法Ver執行(ChA1,...,ChAN)←H(M,Cmt)(S122)。接著,署名驗證演算法Ver執行(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,d)(S123)。接著,署名驗證演算法Ver執行(c01,c11,...,c0N,c1N,d11,e11,...,d1N,e1N)←再生(ChA1,...,ChAN,ChB1,...,ChBN;Rsp1,...,RspN)(S124)。接著,署名驗證演算法Ver驗證Cmt=H(c01,c11,...,c0N,c1N)與d=H(d11,e11,...,d1N,e1N)(S125),結束關於署名驗證之一連串處理。
如圖13之步驟S121所示,一旦接收電子署名,則需要於結束步驟S124之處理之前用於保持(Rsp1,…,RspN)的記憶體。
然而,自圖7之演算法構成可知,步驟S124中所執行之(c0i,c1i,d1i,e1i)之再生中未利用(ChAi,ChBi;Rspi)以外之資訊。且,若考慮到圖10所示之散列函數之構造,則可知步驟S125中所執行之散列函數之計算能以區塊為單位進行劃分後予以執行。因此,將署名驗證之相關處理之構成改良為如圖14所示般之構成。
圖14所示之構成之情形中,署名驗證演算法Ver首先僅接收電子署名中所含之Cmt(S131)。接著,署名驗證演算法Ver執行(ChA1,...,ChAN)←H(M,Cmt)(S132)。
接著,署名驗證演算法Ver接收d(S133)。接著,署名驗證演算法Ver應用接收d而執行(ChB1,...,ChBN)←H(M,Cmt,ChA1,...,ChAN,d)(S134)。執行步驟S134之處理後無需d。因此,署名驗證演算法Ver於執行步驟S134之處理後,自記憶體中刪除d。接著,署名驗證演算法Ver針對i=1~N,一面遞增i,一面逐次執行步驟S135~S137之處理。
步驟S135中,署名驗證演算法Ver接收Rspi(S135)。接著,署名驗證演算法Ver應用接收之Rspi而執行(c0i,c1i,t1i,e1i)←再生(ChAi,ChBi,Rspi)(S136)。執行步驟S136之處理後無需ChAi、ChBi及Rspi。因此,署名驗證演算法Ver於執行步驟S136之處理後自記憶體中刪除ChAi、ChBi及Rspi。
接著,署名驗證演算法Ver執行tmpi←Hi(tmpi-1;c0i,c1i)與tmpi'←Hi(tmpi-1';t1i,e1i)(S137)。針對i=1~N執行步
驟S135~S137之處理後,署名驗證演算法Ver驗證Cmt=tmpN與d=tmpN'是否成立(S138),結束關於署名驗證之一連串處理。如上所述,署名驗證演算法Ver自記憶體中刪除於反覆執行步驟S135~S137之處理過程中不需要之資訊。因此,署名驗證所需之記憶量被抑制在最小限度。結果,即便是僅具有較小記憶容量之設備,亦可進行上述署名驗證。
以上,已就署名驗證所需之記憶量之削減方法予以說明。
又,基於3路徑方式之公開認證方式之演算法中,存在生成N個以上三進制數之均勻隨機數之情形。但,生成三進制數之均勻隨機數之精密的隨機數生成器並非普通之設備。因此,需想出利用生成二進制數之均勻隨機數之精密之隨機數生成器生成三進制數之均勻隨機數的方法。因此,本申請案發明者構思出自二進制數之均勻隨機數有效率地生成三進制數之均勻隨機數的方法。以下,就該方法進行詳細說明。另,以下說明中,將以一進制表示(1或2或3)表示之1個數計作1符號。
首先,一面參照圖15一面介紹以每2位元劃分M位元之二進制數而抽出三進制數的方法(以下,稱作抽出方法#1)。如圖15所示,若以每2位元劃分二進制表示之隨機數
列,則可獲得M/2個2位元之隨機數。例如,若將「00」與三進制數之「0」對應、將「01」與三進制數之「1」對應、將「10」與三進制數之「2」對應,則可自以2位元為單位之二進制表示之隨機數列獲得三進制數的隨機數列。但,2位元之值「11」除外。即,抽出方法#1係自以二進制數2符號所表示之22個數中抽出以三進制數1符號所表示之31個數之方法。因此,無法抽出N個以上之三進制數之概率P1成為如下述算式(13)所示者。
接著,一面參照圖16一面就利用未劃分二進制數M符號之隨機數抽出三進制數L符號之隨機數之方法(以下,稱作抽出方法#2)進行介紹。其中,L係成為3L≦2M之最大整數。能以二進制數M符號表示之數存在2M。另一方面,能以三進制數L符號表示之數僅存在3L。因此,能以二進制數M符號表示之2M之數中,2M-3L個數無法用作三進制表示之隨機數。因此,無法抽出N個以上三進制數之概率P2成為如下述算式(14)所示者。
[數12]P 2=1-3 L /2 M ………(14)
上述抽出方法#1係以最小劃分單位來劃分二進制表示之隨機數列之方法。另一方面,上述抽出方法#2係以(因考慮到M位元劃分)最大劃分單位來劃分二進制表示之隨機數列之方法。自上述算式(13)及算式(14)可知,根據劃分之長度,無法抽出N個以上三進制數之概率會有所不同。因此,如圖17所示,以k位元為單位劃分二進制M符號之隨機數列時,無法抽出N個以上三進制數之概率P3成為如下述算式(15)所示者。
只要可使無法抽出N個以上三進制數之概率P3最小化,則可有效率地抽出三進制表示之隨機數列。例如,M=512、N=140之情形中,k=8時概率P3為最小。
此處,一面參照圖18一面對於自二進制M符號之隨機數列中抽出三進制L符號之隨機數列之處理流程進行說明。如圖18所示,首先,生成二進制M符號之隨機數列(S201)。接著,將二進制M符號之隨機數列以k位元為單位予以劃分(S202)。接著,自以k位元劃分後之位元行X2k中抽出成為X2k≦3L之位元行(S203)。接著,以三進制數表示並輸出被抽出之位元行(S204),結束一連串之處理。
計算出以上述算式(15)所表示之概率P3為最小的劃分之長度k,藉由執行如圖18所示之演算法,可有效率地自二進制表示之隨機數列中抽出三進制表示之隨機數列。但,本申請案發明者關注圖18之步驟S204中未利用成為X2k>3L之位元行之方面,而構思出更有效率地抽出三進制表示之隨機數列之方法。以下,一面參照圖19一面對該方法進行說明。
該方法係利用未自圖18之步驟S204中抽出之位元行而抽出三進制表示之符號行之方法。如圖19所示,首先,抽出未自圖18之步驟S204中抽出之成為X2k>3L之位元行之組合(例如,若以y1y2...yN'表示位元行之組合,則各位元行yi為3L≦yi<2k)(S211)。接著,自抽出之位元行yi分別減去3L,計算出新的位元行之組合(例如,若以z1z2...zN'表示新的位元行之組合,則各位元行zi=yi-3L為0≦zi<2k-3L)(S212)。
接著,自新的位元行之組合中抽出位元行X為X<3L'者(S213)。其中,L'係3L'≦2k-3L為最大之整數。接著,以三進制表示並輸出未自步驟S213中抽出之位元行(S214),結束一連串之處理。藉由適當應用該演算法,能以概率3L'/(2k-3L)重新抽出L'個三進制數。另,藉由再度利用該方法,可進一步抽出更多的三進制數。即,可自步驟S213中位元行X為X≧3L'之位元行中同樣地抽出三進制數。
以上,已就有效率地自二進制數之均勻隨機數生成三進制數之均勻隨機數之方法予以說明。
另,目前尚未就證明者(或署名者)與驗證者之間共有多變數多項式之方法予以具體明示。作為共有多變數多項式之方法,可考慮兩者共有生成多變數多項式之係數(隨機數)之際所利用的種子(seed)之方法。但,只要兩者未共有將利用共有之種子所生成之隨機數適用於係數之順序,則無法共有多變數多項式。
因此,對於證明者(或署名者)與驗證者之間,以怎樣之順序將利用共有之種子生成的隨機數列適用於多變數多項式,進行基本規定。又,利用多變數多項式時,根據該基本規定將隨機數列適用於多變數多項式。若利用如此之方法,則證明者(或署名者)與驗證者之間將共有多變數多項式。
但,構成多變數多項式之係數之數巨大。以1位元單位表示一個係數時,為了表示多變數多項式,最低仍需數萬位元以上之資料。因此,將數代入至多變數多項式之係數之處理負荷非常大。因此,本申請案發明者構思出一種以特定單位來使多變數多項式之係數構造化從而有效率地對係數進行代入處理之方法(構造化方法#1及#2)。進而,本申請案發明者構思出一種相對於同一多變數多項式之係數執行複數次代入處理時提高其處理效率之方法(構造化方法#3)。以下,就該等方法進行詳細說明。
首先,就構造化方法#1進行說明。如圖20所示,構造化方法#1係將構成多變數多項式之同一種類的項之係數作為一個資料構造予以整合之方法。圖20之例中,將係數a1IJ~amIJ作為資料構造A予以整合,將係數b1I~bmI作為資料構造B予以整合。
未適當應用構造化方法#1時,相對於m個n變數多項式之係數代入係應用下述之演算法(例1)進行。例1之情形中,需執行2×N×(N-1)×M/2次1位元之AND運算(&)。進而,需執行N×(N-1)×M/2次1位元之XOR運算(^)。
(例1)for L=1 to M for I=1 to N for J=I to M[f的第L位元]^=[aIJL]&[x的第I位元]&[x的第J位元];end for end for end for out put f;
另一方面,如圖20所示般使係數構造化,將生成之隨機數作為多變數多項式之係數,對每一部分逐次適當應用時,係數之代入演算法成為如(例2)般者。例2之情形中,僅執行2×N×(N-1)/2次L位元之AND運算(&)、及N×(N-1)/2次M位元之XOR運算(^)即可。另,aIJ(1~M)分別於循環指令之時機生成。且,亦可任意應用係數。例如,執行N(N-1)/2次之循環時,並非每次都生成[aIJ(1~M)],而係L次中僅
生成1次。且,亦可於M次之循環中,每一位元便使[aIJ(1~M)]循環且予以應用。
(例2)for I=1 to N/k for J=I to N/k[f的第1~M位元]^=[aIJ(1~M)]&[x的第I位元]&[x的第J位元];end for end for out put f;
再者,亦可如圖20所示使係數構造化,將適當應用多變數多項式後之係數的中間結果保持於表格中。該情形下,係數之代入演算法成為如(例3)所示者。另,序列aIJ[0][0]~aIJ[2k-1][2k-1]中分別存儲有aIJ[x1,...,xk][z1,...,zk]=(a(k(I-1)+1)(k(J-1)+1) & x1 & z1)^...^(a(k(1-1)+1)(k(J-1)+k) & x1 & zk)^...^(a(k(I-1)+k)(k(J-1)+1) & xk & z1)^...^(a(k(1-1)+k)(k(J-1)+k) & xk & zk)。例3之情形中,執行(N/k)(N/k-1)/2次L位元之XOR演算(^)即可。但,若與(例2)之演算法相比,則其所需之記憶量為22k/k2倍。
例如,k=1時,L位元XOR運算為120 * 119/2=7140次、所需之記憶量為(例2)之22=4倍、循環次數未變化。且,k=2時,L位元XOR運算為60 * 59/2=1770次、所需之記憶量為24/4=4倍、循環次數為1/4。k=4時,L位元XOR運算為30 * 29/2=435次、所需之記憶量為28/42=16倍、循環次數為1/16.4。k=6時,L位元XOR運算為20 * 19/2=190次、所需之記憶量為212/62=114倍、循環次數為1/37.6。k=8時,L
位元XOR運算為15 * 14/2=135次、所需之記憶量為216/82=1024倍、循環次數為1/52.9。
(例3)for I=1 to N/k for J=I to N/k[f的第1~M位元]^=aIJ(1~M)[x的第k(I-1)+1~k位元][x的第k(J-1)+1~k位元];end for end for out put f;
以上,已就構造化方法#1之具體之係數之代入演算法予以說明。利用該構成,執行演算法時有望進行高速化處理。
接著,就構造化方法#2進行說明。如圖21所示,構造化方法#2係以二次型表示多變數多項式,將二次型之列或行作為一個資料構造予以整合之方法。圖21之例中,沿列方向使資料構造整合。
如圖21所示般使係數構造化,將生成之隨機數作為多變數多項式之係數而對每一部分逐次適當應用時,係數之代入演算法成為如(例4)所示者。例4之情形中,執行(N+1)×M次N位元之AND演算(&)、N×M次N位元之XOR演算(^)、M次函數Q之運算即可。
(例4)for I=1 to N T^=A I &[x的第I位元];end for T &=x;out put Q(T);
Q(z){z=z ^(z>>1);z=z ^(z>>2);z=z ^(z>>4);z=z ^(z>>8);...z=z ^(z>>2Log(N));return z & 1;}
再者,亦可如圖21般使係數構造化,將適當應用多變數多項式係數的中間結果保持於表格中。該情形下,係數之代入演算法成為如(例5)所示者。另,序列A1[0]~A1[2k-1]中分別存儲有AI[x1,...,xk]=(A(k(I-1)+1) & x1)^...^(A(k(I-1)+k) & xk)。例5之情形中,執行(N/k)×M次N位元之XOR運算(^)、M次N位元之函數Q之運算即可。但,與(例4)之演算法相比,所需之記憶量成為2k/k倍。
例如,k=1時,N位元XOR運算為120次、所需之記憶量為(例4)之2倍、循環次數未變化。且,k=4時,N位元XOR運算為30次、所需之記憶量為24/4=4倍、循環次數為1/4倍。k=8時,N位元XOR運算為15次、所需之記憶量為28/8=32倍、循環次數為1/8。k=16時,N位元XOR運算為8次、所需之記憶量為216/16=4096倍、循環次數為1/15。
(例5)for I=1 to N/k T^=A I[x的第k(I-1)+1~k(I-1)+k位元];end for T &=x;out put Q(T);
以上,已就構造化方法#2之具體之係數的代入演算法予以說明。利用該構成,演算法執行時有望進行高速化之處理。
接著,就構造化方法#3進行說明。構造化方法#3於對同一多變數多項式進行N次(N≧2)代入處理時,並非N次自隨機數生成多項式而進行代入處理,而是N次並行進行以「生成一部分係數,進行與該部分相關之N次處理」部分為單位之逐次處理的方法。若適當應用該方法,則於可忽略隨機數生成之成本時,能改善N次之處理總體之處理能力。
例如,圖5所示之演算法中,步驟#1中,一面更新引數,一面反覆執行N次多變數多項式F及G之計算。因此,就如上述般之計算部分,以應用同一係數進行反覆運算之方式構成。應用上述(例2)之演算法計算多變數多項式F(roi)(i=1~N)時,構成為:針對一次生成之[aIJL],適當應用全部N個roi後,執行之後之[aIJL]的相關處理。若如此般構成,可並非N次生成同一係數[aIJL]。
以上,已就構造化方法#3之具體之係數之代入演算法予以說明。利用該構成,可改善N次之處理之總體之處理能力。
上述各演算法例如可利用圖22所示之資訊處理裝置之硬體構成予以執行。即,該各演算法之處理可藉由利用電腦
程式來控制圖22所示之硬體而實現。另,該硬體之形態為任意,例如,其包含個人電腦、行動電話、PHS、PDA等行動資訊終端、遊戲機、接觸式或非接觸式之IC晶片、接觸式或非接觸式之IC卡、或各種資訊家電。其中,上述PHS係Personal Handy-phone System(個人手持式電話系統)之簡稱。且,上述PDA係Personal Digital Assistant(個人數位助理)之簡稱。
如圖22所示,該硬體主要具有:CPU902、ROM904、RAM906、主機匯流排908、橋接部910。進而,該硬體具有:外部匯流排912、介面914、輸入部916、輸出部918、記憶體920、驅動器922、連接埠924、通信部926。其中,上述CPU係Central Processing Unit(中央處理單元)之簡稱。且,上述ROM係Read Only Memory(唯讀記憶體)之簡稱。又,上述RAM係Random Access Memory(隨機存取記憶體)之簡稱。
CPU902例如作為運算處理裝置或控制裝置而發揮功能,其係基於ROM904、RAM906、記憶部920、或移動式記錄媒體928中所記錄之各種程式而控制各構成要素之全部動作或其一部分。ROM904係存儲被讀入CPU902中之程式或運算中應用之資料等的機構。RAM906例如暫時或永久地存儲被讀入CPU902中之程式或執行該程式時進行適當變化之各種參數等。
該等構成要素例如經由可進行高速之資料輸送之主機匯流排908相互連接。另一方面,主機匯流排908例如經由橋
接部910而連接於輸送速度相對較低之外部匯流排912。且,作為輸入部916,例如可利用滑鼠、鍵盤、觸摸式面板、按鈕、開關、及控制桿等。進而,作為輸入部916,例如亦可使用可利用紅外線或其他電波發送控制信號之遙控裝置(以下稱作遙控器)。
作為輸出部918,例如係CRT、LCD、PDP、或ELD等顯示器裝置、揚聲器、耳機等音頻輸出裝置、印表機、行動電話或傳真等可在視覺或聽覺上向利用者通知所取得之資訊的裝置。其中,上述CRT係Cathode Ray Tube(陰極射線管)之簡稱。且,上述LCD係Liquid Crystal Display(液晶顯示器)之簡稱。又,上述PDP係Plasma Display Panel(電漿顯示面板)之簡稱。進而,上述ELD係Electro-Luminescence Display(電致發光顯示器)之簡稱。
記憶部920係用於存儲各種資料之裝置。作為記憶體920,例如使用硬磁碟驅動器(HDD)等之磁性記憶裝置、半導體記憶裝置、光記憶裝置、或磁光記憶裝置等。其中,上述HDD係Hard Disk Drive之簡稱。
驅動器922例如係讀出記憶於磁碟、光碟、磁光碟、或半導體記憶體等移動式記憶媒體928中之資訊,或向移動式記錄媒體928寫入資訊之裝置。移動式記憶媒體928例如係DVD媒體、Blu-ray媒體、HD DVD媒體、各種半導體記憶媒體等。當然,移動式記錄媒體928例如亦可為搭載有非接觸型IC晶片之IC卡、或電子製品等。其中,上述IC係Integrated Circuit(積體電路)之簡稱。
連接埠924係例如如USB埠、IEEE1394埠、SCSI、RS-232C埠、或光音頻端子等般用於連接外部機器930之埠。外部連接機器930例如係印表機、便攜式音樂播放器、數位相機、數位攝影機、或IC錄音機等。其中,上述USB係Universal Serial Bus(通用串列匯流排)之簡稱。且,上述SCSI係Small Computer System Interface(小電腦系統介面)之簡稱。
通信部926係用於連接網路932之通信裝置,例如,係有線或無線LAN、Bluetooth(註冊商標)、或WUSB用之通信卡、光通信用之路由器、ADSL用之路由器、或接觸或非接觸通信用之裝置等。且,連接於通信部926之網路932係由由有線或無線連接之網路構成,例如為網際網路、家庭用LAN、紅外線通信、可視光通信、廣播、或衛星通信等。其中,上述LAN係Local Area Network(區域網路)之簡稱。且,上述WUSB係Wireless USB(無線通用串列匯流排)之簡稱。又,上述ADSL係Asymmetric Digital Subscriber Line(非對稱數位用戶線)之簡稱。
最後,就本技術之實施形態之技術內容予以簡單總結。此處所述之技術內容可相對於例如PC(Personal Computer,個人電腦)、行動電話、遊戲機、資訊終端、資訊家電、汽車導航系統等各種資訊處理裝置而適當應用。另,以下所述之資訊處理裝置之功能可利用一臺資訊處理裝置而實現,亦可利用複數台資訊處理裝置而實現。
且,以下所述之資訊處理裝置執行處理時所利用之資料記憶機構或運算處理機構可設置於該資訊處理裝置中,亦可設置於經由網路而連接之機器中。
上述資訊處理裝置之功能構成可如下般予以表示。例如,下述(1)所揭示之資訊處理裝置具有執行以多次多變數聯立方程式之難解性為安全性依據的有效率的公開密鑰認證方式或電子署名方式之演算法的功能。
(1)一種資訊處理裝置,其具備:二進制隨機數生成部,其生成以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成部,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成部以上述L符號之三進制數表示滿足X≦3L的上述k位元之二進制數列X。
(2)如上述(1)之資訊處理裝置,其中生成N個三進制數時,上述三進制數列生成部基於以上述算式(15)表示之概率P3成為小於特定值的k而生成上述三進制數列。
(3)如上述(2)之資訊處理裝置,其中
上述三進制數列生成部基於上述概率P為最小的k而生成上述三進制數列。
(4)如上述1~3之任一項之資訊處理裝置,其中上述三進制數列生成部自滿足X'>3L之上述k位元之二進制數列X'減去3L而生成新的k位元之二進制數列Y;以L'符號之三進制數表示該k位元之二進制數列Y中之滿足Y'≦3L'(其中,L'係滿足3L'≦2k-3L之最大整數)的上述k位元之二進制數列Y',進一步生成三進制數列。
(5)如上述(1)~(3)之任一項之資訊處理裝置,其中上述三進制數列生成部反覆執行以下處理:設定L(0)=L,自0開始依次更新指數j;自滿足Xj>3L(j)之上述k位元之二進制數列Xj減去3L(j)而生成新的k位元之二進制數列Yj;自上述k位元之二進制數列Yj中,以上述L(j+1)符號之三進制數表示滿足Yj+1≦3L(j+1)(其中,L(j+1)係滿足3L(j+1)≦2k-3L(j)之最大整數)的上述k位元之二進制數列Yj+1,從而進一步生成三進制數列。
(6)如上述(1)~(5)之任一項之資訊處理裝置,其具備:資訊保持部,其保持環K上定義之多次多變數多項式之組合F=(f1,…,fm)及矢量y=(y1,...,ym)=(f1(s),...,fm(s));
訊息取得部,其取得基於上述多次多變數多項式之組合F及矢量s Knk而生成之訊息;圖案資訊提供部,其對於提供上述訊息之證明者,提供自3個驗證圖案中隨機選定之一個驗證圖案之資訊;答覆取得部,其自上述證明者取得與上述選定之驗證圖案對應之答覆資訊;及驗證部,其基於上述訊息、上述多次多變數多項式之組合F、上述矢量y、及上述答覆資訊,而驗證上述證明者是否保持上述矢量s;且上述矢量s係私密密鑰;上述多次多變數多項式之組合F及上述矢量y係公開密鑰;上述訊息係利用上述公開密鑰及上述答覆資訊,而執行與該答覆資訊對應之為驗證圖案所預設之運算後所得的資訊;且自上述隨機二進制數列生成之三進制數係於選擇上述一個驗證圖案時予以應用。
(7)一種資訊處理方法,其包含以下步驟:生成以M位元(M≧2)之二進制數表示之隨機二進制數列;及以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數
列;且於生成上述三進制數列之步驟中,以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
(8)一種程式,其用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成功能係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
(9)一種記錄媒體,其可由電腦讀取,且記錄之程式用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且
上述三進制數列生成功能係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
上述證明者演算法P係隨機數生成部、訊息生成部、訊息提供部、答覆提供部、中間資訊生成部、中間資訊提供部之一例。且,上述署名生成演算法Sig係隨機數生成部、署名生成部、署名提供部之一例。
以上,雖已一面參照隨附圖式一面就本技術之恰當之實施形態予以說明,但毋庸贅言,本技術並非限定於例示。可知,若為本領域之技術人員,則能於專利申請範圍所揭示之範疇內思及各種變更例或修正例;且應明瞭的是,該等變更例或修正例仍屬於本技術之技術範圍內。
上述說明中,雖已介紹應用散列函數H之演算法,但亦可代替散列函數H而應用承諾(commitment)函數COM。承諾函數COM係以字符串S及隨機數ρ作為引數之函數。作為承諾函數之一例,根據Shai Halevi與Silvio Micali,有於國際會議CRYPTO1996上發表之方式等。
Gen‧‧‧密鑰生成演算法
P‧‧‧證明者演算法
Sig‧‧‧署名生成演算法
V‧‧‧驗證者演算法
Ver‧‧‧署名驗證演算法
圖1係用於就公開密鑰認證方式之演算法之構成進行說明的說明圖。
圖2係用於就電子署名方式之演算法之構成進行說明的說明圖。
圖3係用於就n路徑之公開密鑰認證方式之演算法之構成
進行說明的說明圖。
圖4係就3路徑之公開密鑰認證方式之有效率的演算法進行說明的說明圖。
圖5係用於就3路徑之公開密鑰認證方式之有效率的演算法之並行化進行說明的說明圖。
圖6係用於就5路徑之公開密鑰認證方式之有效率的演算法之構成例進行說明的說明圖。
圖7係用於就5路徑之公開密鑰認證方式之有效率的運算法之並行化進行說明的說明圖。
圖8係用於就將3路徑之公開密鑰認證方式之有效率的演算法變更為電子署名方式之演算法之方法進行說明的說明圖。
圖9係用於就將5路徑之公開密鑰認證方式之有效率的演算法變更為電子署名方式之演算法之方法進行說明的說明圖。
圖10係用於就散列函數之構成例進行說明的說明圖。
圖11係用於就基於3路徑方式之電子署名方式之署名驗證方法(一般安裝方法)進行說明的說明圖。
圖12係用於就基於3路徑方式之電子署名方式之署名驗證方法(記憶削減方法)進行說明的說明圖。
圖13係用於就基於5路徑方式之電子署名方式之電子驗證方法(一般安裝方法)進行說明的說明圖。
圖14係用於就基於5路徑方式之電子署名方式之署名驗證方法(記憶削減方法)進行說明的說明圖。
圖15係用於自二進制隨機數抽出三進制隨機數之方法(抽出方法#1)進行說明的說明圖。
圖16係用於就自二進制隨機數抽出三進制隨機數之方法(抽出方法#2)進行說明的說明圖。
圖17係用於就自二進制隨機數抽出三進制隨機數之方法(抽出方法#3)進行說明的說明圖。
圖18係用於就自二進制隨機數抽出三進制隨機數之方法(抽出方法#3)進行說明的說明圖。
圖19係用於就自二進制隨機數抽出三進制隨機數之方法(抽出方法#3)進行說明的說明圖。
圖20係用於就用於有效率地代入多變數多項式之係數的資料構造化技術(構造化技術#1)進行說明的說明圖。
圖21係用於就用於有效率地代入多變數多項式之係數的資料構造化技術(構造化技術#2)進行說明的說明圖。
圖22係用於就可實行本技術之各實施形態之演算法的資訊處理裝置之硬體構成例進行說明的說明圖。
Claims (9)
- 一種資訊處理裝置,其包含:二進制隨機數生成部,其生成以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成部,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成部係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
- 如請求項1之資訊處理裝置,其中於生成N個三進制數時,上述三進制數列生成部基於以下述算式(1)所表示之概率P為小於特定值的k而生成上述三進制數列,
- 如請求項2之資訊處理裝置,其中上述三進制數列生成部基於上述概率P成為最小之k而生成上述三進制數列。
- 如請求項1之資訊處理裝置,其中上述三進制數列生成部自滿足X'>3L之上述k位元之二進制數列X'減去3L而生成新的k位元之二進制數列Y;以 L’符號之三進制數表示該k位元之二進制數列Y中滿足Y'≦3L'(其中,L'係滿足3L'≦2k-3L之最大整數)的上述k位元之二進制數列Y’,而進一步生成三進制數列。
- 如請求項1之資訊處理裝置,其中上述三進制數列生成部反覆執行以下處理:設定L(0)=L,自0開始依次更新指數j;自滿足Xj>3L(j)之上述k位元之二進制數列Xj減去3L(j)而生成新的k位元之二進制數列Yj;以上述L(j+1)符號之三進制數表示上述k位元之二進制數列Yj中滿足Yj+1≦3L(J+1)(其中,L(j+1)係滿足3L(j+1)≦2k-3L(j)之最大整數)的上述k位元之二進制數列Yj+1,而進一步生成三進制數列。
- 如請求項1之資訊處理裝置,其具備:資訊保持部,其保持環K上定義之多次多變數多項式之組合F=(f1,...,fm)及矢量y=(y1,...,ym)=(f1(s),...,fm(s));訊息取得部,其取得基於上述多次多變數多項式之組合F及矢量s Kn而生成之訊息;圖案資訊提供部,其對於提供上述訊息之證明者,提供自3個驗證圖案中隨機選定之一個驗證圖案之資訊;答覆取得部,其自上述證明者取得與上述選定之驗證圖案對應之答覆資訊;及驗證部,其基於上述訊息、上述多次多變數多項式之組合F、上述矢量y、及上述答覆資訊,驗證上述證明者 是否保持上述矢量s;且上述矢量s係私密密鑰;上述多次多變數多項式之組合F及上述矢量y係公開密鑰;上述訊息係利用上述公開密鑰及上述答覆資訊而執行與該答覆資訊對應之為驗證圖案所預設之運算後所得的資訊;且自上述隨機二進制數列生成之三進制數係於選擇上述一個驗證圖案時予以應用。
- 一種資訊處理方法,其包含以下步驟:生成以M位元(M≧2)之二進制數表示之隨機二進制數列;及以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且於生成上述三進制數列之步驟中,以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
- 一種程式,其用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其 中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成功能係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
- 一種記錄媒體,其可由電腦讀取且記錄之程式用於使電腦中實現以下功能:二進制隨機數生成功能,其輸出以M位元(M≧2)之二進制數表示之隨機二進制數列;及三進制數列生成功能,其以k位元為單位劃分上述隨機二進制數列而生成k位元之二進制數列,以L符號(其中,L係滿足3L≦2M之最大整數)之三進制數表示上述k位元之二進制數列而生成三進制數列;且上述三進制數列生成功能係以上述L符號之三進制數表示滿足X≦3L之上述k位元之二進制數列X而生成三進制數列。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011185945A JP2013047727A (ja) | 2011-08-29 | 2011-08-29 | 情報処理装置、情報処理方法、プログラム、及び記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201310957A true TW201310957A (zh) | 2013-03-01 |
Family
ID=47755921
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101127902A TW201310957A (zh) | 2011-08-29 | 2012-08-03 | 資訊處理裝置、資訊處理方法、程式及記錄媒體 |
Country Status (9)
Country | Link |
---|---|
US (1) | US20140211940A1 (zh) |
EP (1) | EP2752837A4 (zh) |
JP (1) | JP2013047727A (zh) |
KR (1) | KR20140054059A (zh) |
CN (1) | CN103782332A (zh) |
BR (1) | BR112014004059A2 (zh) |
RU (1) | RU2014106522A (zh) |
TW (1) | TW201310957A (zh) |
WO (1) | WO2013031413A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5790288B2 (ja) * | 2011-08-12 | 2015-10-07 | ソニー株式会社 | 情報処理装置、及び情報処理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0013349D0 (en) * | 2000-06-01 | 2000-07-26 | Tao Group Ltd | Pseudo-random number generator |
JP2004226852A (ja) * | 2003-01-24 | 2004-08-12 | Sony Corp | 擬似乱数生成装置 |
JP2006080642A (ja) * | 2004-09-07 | 2006-03-23 | Sony Corp | 情報処理装置および方法、プログラム並びに記録媒体 |
JP2006215824A (ja) * | 2005-02-03 | 2006-08-17 | Sanyo Electric Co Ltd | 乱数生成回路 |
JP4398904B2 (ja) * | 2005-06-21 | 2010-01-13 | 株式会社東芝 | 乱数系列生成装置、乱数系列生成方法、演算処理装置、演算処理方法及びプログラム |
JP4586163B2 (ja) * | 2005-09-09 | 2010-11-24 | 国立大学法人岩手大学 | 暗号化システム |
JP6069852B2 (ja) * | 2011-08-29 | 2017-02-01 | ソニー株式会社 | 情報処理装置、情報処理方法、及びプログラム |
JP5790319B2 (ja) * | 2011-08-29 | 2015-10-07 | ソニー株式会社 | 署名検証装置、署名検証方法、プログラム、及び記録媒体 |
JP6041133B2 (ja) * | 2012-06-08 | 2016-12-07 | パナソニックIpマネジメント株式会社 | 画像処理装置、画像処理方法、画像処理プログラムおよびチップ回路 |
-
2011
- 2011-08-29 JP JP2011185945A patent/JP2013047727A/ja active Pending
-
2012
- 2012-07-19 RU RU2014106522/08A patent/RU2014106522A/ru not_active Application Discontinuation
- 2012-07-19 WO PCT/JP2012/068322 patent/WO2013031413A1/ja active Application Filing
- 2012-07-19 CN CN201280040701.7A patent/CN103782332A/zh active Pending
- 2012-07-19 KR KR1020147003782A patent/KR20140054059A/ko not_active Application Discontinuation
- 2012-07-19 EP EP12828489.0A patent/EP2752837A4/en not_active Withdrawn
- 2012-07-19 BR BR112014004059A patent/BR112014004059A2/pt not_active IP Right Cessation
- 2012-07-19 US US14/237,794 patent/US20140211940A1/en not_active Abandoned
- 2012-08-03 TW TW101127902A patent/TW201310957A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
EP2752837A4 (en) | 2015-10-14 |
EP2752837A1 (en) | 2014-07-09 |
US20140211940A1 (en) | 2014-07-31 |
CN103782332A (zh) | 2014-05-07 |
KR20140054059A (ko) | 2014-05-08 |
WO2013031413A1 (ja) | 2013-03-07 |
RU2014106522A (ru) | 2015-08-27 |
JP2013047727A (ja) | 2013-03-07 |
BR112014004059A2 (pt) | 2017-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5790319B2 (ja) | 署名検証装置、署名検証方法、プログラム、及び記録媒体 | |
JP6069852B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US20140192981A1 (en) | Information processing apparatus, signature generation apparatus, information processing method, signature generation method, and program | |
TWI511517B (zh) | Information processing apparatus, information processing method, program and recording medium | |
US10122531B2 (en) | Information processing apparatus, information processing method, and recording medium | |
EP2744148B1 (en) | Information processing device, signature-provision method, signature-verification method, program, and recording medium | |
WO2013129084A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2013129119A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP5790286B2 (ja) | 情報処理装置、署名生成装置、情報処理方法、署名生成方法、及びプログラム | |
TW201310957A (zh) | 資訊處理裝置、資訊處理方法、程式及記錄媒體 | |
TW201325180A (zh) | 資訊處理裝置、署名生成裝置、署名驗證裝置、資訊處理方法、署名生成方法及署名驗證方法 | |
EP2743902B1 (en) | Information processing device and information processing method | |
Al-Saidi et al. | A new idea in zero knowledge protocols based on iterated function systems | |
CN117201041A (zh) | 基于区块链的链下协同门限签名方法及装置 |