国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      驗證裝置的制作方法

      文檔序號:2404498閱讀:425來源:國知局
      專利名稱:驗證裝置的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及在公開密鑰密碼系統(tǒng)等密碼系統(tǒng)中驗證密文等的匹配性的驗證裝置。
      背景技術(shù)
      存在一種利用了由整數(shù)的剩余類關(guān)于乘法形成的群或由橢圓曲線上的點形成的 群等有限群(finite group)的密碼系統(tǒng)。在利用了有限群的密碼系統(tǒng)中,為了驗證密文的匹配性等,有時根據(jù)有限群的元 h、s以及整數(shù)e,來判斷是否為h = e 將有限群的群運算以加法方式描述的情況)或者 h = si將有限群的群運算以乘法方式描述的情況)。專利文獻1 日本特開2004-201124號公報專利文獻2 國際公開00/39668號公報專利文獻3 美國專利7110538號公報非專利文獻 1 :R. P. Gallant、R. J. Lambert、S. A. Vanstone "Faster Point Multiplication on Elliptic Curves with Efficient Endomorphisms" Crypto 2001、 LNCS 2139、第 190 200 頁、2001 年。非專禾Ij 文獻 2 “ 18033-2 information Technology-Security techniques-Encryption algorithms-Part2 :Asymmetric ciphers"IS0/IEC 18033—2、 2006 年。# # ^lJ i K 3 :R. Cramer> V. Shoup "Design and Analysis of Practical Public—Key Encryption Schemes secure against Adaptive Chosn Ciphertext Attack" Cryptology ePrint Archive、http://eprint. iacr. org、2001 年。__專禾Ij文獻 4 :D. Boneh、X. Boyen “Efficient Selective-ID Secure Identity Based Encryption Without Random Oracle”EUR0CRYPT 2004、LNCS 3027、第 223 238 頁、2004年。非專利文獻 5 :Χ· Boyen "The BBl Identity-Based Cryptosystem :A Standard for Encryption and Key Encapsulation" Submissions for IEEE P1363. 3> http:// grouper, ieee. org/groups/1363/IBC/submissions/index, html、2006 年。# # ^lJ ; K 6 :M. Barbosa> L. Chen, Z. Cheng、M. Chimley、A. Dent、P. Farshim> K. Harrison、J. Malone-Lee、N. P. Smart、F. Vercauteren “SK-KEM :An Identity-Based KEM,,Submissions for IEEE P1363. 3> http://grouper, ieee. org/groups/1363/IBC/ submissions/index, html。非專利文獻 7 :M. Bellare> C. Namprempre、G. Neven "Security Proofs for Identity-Based Identification and Signature Schemes"EUR0CRYPT 2004>LNCS 3027、 2004 年。

      發(fā)明內(nèi)容
      (發(fā)明要解決的問題)存在如下情況利用于密碼系統(tǒng)的有限群的階數(shù)非常大,計算機等處理裝置進行 一次群運算需要大量的時間。本發(fā)明是例如為了解決如上所述的問題而完成的,其目的在于使用計算機等處理 裝置來高速地判斷是否為h = s · e。(用于解決問題的方案)本發(fā)明所涉及的驗證裝置的特征在于,具有處理數(shù)據(jù)的處理裝置、整數(shù)分割部、 驗證值算出部以及驗證判斷部,所述整數(shù)分割部使用所述處理裝置,輸入有限群G的階數(shù)ρ和整數(shù)e,根據(jù)所輸入 的階數(shù)P和整數(shù)e,算出滿足ei · e ε e2(mod ρ)的整數(shù)力和整數(shù)e2,所述驗證值算出部使用所述處理裝置,輸入所述有限群G的元s和所述有限群G 的元h,根據(jù)所輸入的元s和元h、以及所述整數(shù)分割部所算出的整數(shù)ei和整數(shù)e2,算出所 述有限群G的元a ( = θι · h-e2 · s),所述驗證判斷部使用所述處理裝置,根據(jù)所述驗證值算出部所算出的元a,在所述 元a為所述有限群G的單位元的情況下,判斷為驗證成功。本發(fā)明所涉及的驗證裝置的特征在于,所述整數(shù)分割部使用所述處理裝置,算出滿足所述整數(shù)ei的絕對值小于所述階數(shù) P的平方根、并且所述整數(shù)e2小于所述階數(shù)ρ的平方根這種條件的整數(shù)ei和整數(shù)e2。本發(fā)明所涉及的驗證裝置的特征在于,所述驗證裝置還具有存儲數(shù)據(jù)的存儲裝置,所述整數(shù)分割部具有第一剩余存儲部、第二剩余存儲部、初始值設(shè)定部、適合性判 斷部、第三剩余算出部以及分割整數(shù)輸出部,所述第一剩余存儲部使用所述存儲裝置存儲整數(shù)V1,所述第二剩余存儲部使用所述存儲裝置存儲整數(shù)v2,所述初始值設(shè)定部使用所述處理裝置,將所述階數(shù)ρ作為所述整數(shù)V1而存儲到所 述第一剩余存儲部中,將所述整數(shù)e作為所述整數(shù)V2而存儲到所述第二剩余存儲部中,所述適合性判斷部使用所述處理裝置,在所述第二剩余存儲部所存儲的整數(shù)V2小 于所述階數(shù)P的平方根的情況下,判斷為滿足輸出條件,所述第三剩余算出部使用所述處理裝置,在所述適合性判斷部沒有判斷為滿足輸 出條件的情況下,根據(jù)所述第一剩余存儲部所存儲的整數(shù)V1和所述第二剩余存儲部所存儲 的整數(shù)V2,算出將所述整數(shù)V1除以所述整數(shù)V2而得到的余數(shù)并設(shè)為整數(shù)V3,將所述第二剩 余存儲部所存儲的整數(shù)V2作為所述整數(shù)V1而存儲到所述第一剩余存儲部中,將所算出的整 數(shù)V3作為所述整數(shù)V2而存儲到所述第二剩余存儲部中,所述分割整數(shù)輸出部使用所述處理裝置,在所述適合性判斷部判斷為滿足輸出條 件的情況下,將所述第二剩余存儲部所存儲的整數(shù)V2作為所述整數(shù)e2而輸出。本發(fā)明所涉及的驗證裝置的特征在于,所述整數(shù)分割部還具有第一系數(shù)存儲部、第二系數(shù)存儲部、商算出部以及第三系 數(shù)算出部,
      所述第一系數(shù)存儲部使用所述存儲裝置,存儲整數(shù)t1;所述第二系數(shù)存儲部使用所述存儲裝置,存儲整數(shù)t2,所述初始值設(shè)定部還使用所述處理裝置,將0作為所述整數(shù)^而存儲到所述第一 系數(shù)存儲部中,將1作為所述整數(shù)t2而存儲到所述第二系數(shù)存儲部中,所述商算出部使用所述處理裝置,根據(jù)所述第一剩余存儲部所存儲的整數(shù)V1和所 述第二剩余存儲部所存儲的整數(shù)V2,算出不超過將所述整數(shù)V1除以所述整數(shù)V2而得到的商 的最大整數(shù)并設(shè)為整數(shù)q,所述第三系數(shù)算出部使用所述處理裝置,在所述適合性判斷部沒有判斷為滿足輸 出條件的情況下,根據(jù)所述第一系數(shù)存儲部所存儲的整數(shù)、、所述第二系數(shù)存儲部所存儲 的整數(shù)t2以及所述商算出部所算出的整數(shù)q,算出從所述整數(shù)、減去所述整數(shù)t2與所述整 數(shù)q之積而得到的整數(shù)并設(shè)為整數(shù)t3,將所述第二系數(shù)存儲部所存儲的整數(shù)t2作為所述整 數(shù)、而存儲到所述第一系數(shù)存儲部中,將所算出的整數(shù)t3作為所述整數(shù)t2而存儲到所述 第二系數(shù)存儲部中,所述分割整數(shù)輸出部還使用所述處理裝置,在所述適合性判斷部判斷為滿足輸出 條件的情況下,將所述第二系數(shù)存儲部所存儲的整數(shù)t2作為所述整數(shù)ei而輸出。本發(fā)明所涉及的驗證裝置的特征在于,所述驗證值算出部使用所述處理裝置,算出Σ (η1 · Pi)(其中,η是大于等于2的 規(guī)定的整數(shù),i是大于等于0且小于等于k的整數(shù),k是以η進制表示所述整數(shù)ei的絕對值 和所述整數(shù)e2時的位數(shù)的最大值,Pi是所述有限群G的元,Pi = ei,sgn · eu · h-e^ · s, θι, sgn是1或-1,i和e2, i是大于等于0且小于等于n-1的整數(shù),θι =吖sgn · Σ (Iii ·吖》、 β2=Σ (H^e2,,))并設(shè)為所述有限群G的元a。本發(fā)明所涉及的密文解密裝置的特征在于,具有存儲數(shù)據(jù)的存儲裝置、處理數(shù)據(jù) 的處理裝置、密鑰存儲部、密文輸入部、密文驗證部、驗證裝置以及解密文生成部,所述密鑰存儲部使用所述存儲裝置,存儲用于解密密文的密鑰,所述密文輸入部使用所述處理裝置,輸入密文,所述密文驗證部使用所述處理裝置,根據(jù)所述密鑰存儲部所存儲的密鑰和所述密 文輸入部所輸入的密文,算出輸入到所述驗證裝置的整數(shù)e、所述有限群G的元S、以及所述 有限群G的元h,所述驗證裝置輸入所述密文驗證部所算出的整數(shù)e、所述有限群G的元S、以及所 述有限群G的元h,判斷是否驗證成功,所述解密文生成部使用所述處理裝置,在所述驗證裝置判斷為驗證成功的情況下, 利用所述密鑰存儲部所存儲的密鑰對所述密文輸入部所輸入的密文進行解密來生成解密文。本發(fā)明所涉及的密文解密裝置的特征在于,所述密文解密裝置還具有密碼參數(shù)存儲部、識別存儲部、識別元算出部以及識別 元存儲部, 所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)ρ、所述有限群 G的生成元gl、以及所述有限群G的元R, 所述識別存儲部使用所述存儲裝置,存儲用于識別所述密文解密裝置的比特串 ID,
      所述識別元算出部使用所述處理裝置,根據(jù)所述識別存儲部所存儲的比特串ID, 算出通過規(guī)定的散列函數(shù)H1對所述比特串ID進行散列得到的散列值并設(shè)為整數(shù)H1(ID),根 據(jù)所述密碼參數(shù)存儲部所存儲的生成元gl、所述密碼參數(shù)存儲部所存儲的元R、以及所算出 的整數(shù)H1(ID),將所述生成元gl的整數(shù)H1 (ID)倍的元與所述元R相加來設(shè)為所述有限群G 的元 Q( = IHH1(ID) · gl),所述識別元存儲部使用所述存儲裝置,存儲所述識別元算出部所算出的元Q,所述密鑰存儲部使用所述存儲裝置,存儲有限群G2的元Did,所述密文輸入部使用所述處理裝置,輸入所述有限群G的元U和比特串V作為所 述密文,所述密文驗證部具有配對值算出部、比特串算出部以及整數(shù)算出部,所述配對值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元U和所述 密鑰存儲部所存儲的元Did,利用規(guī)定的配對函數(shù)e算出所述元U與所述元Did的配對值并 設(shè)為配對值α ( = e(U, Did)),所述比特串算出部使用所述處理裝置,根據(jù)所述配對值算出部所算出的配對值 α,算出通過規(guī)定的散列函數(shù)H2對所述配對值α進行散列得到的散列值并設(shè)為比特串 Η2( α ),根據(jù)所述密文輸入部所輸入的比特串V和所算出的比特串Η2(α ),取得所述比特串 V與所述比特串H2(Ci)的邏輯異或并設(shè)為比特串m( = V XOR Η2(α)),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述比特串算出部所算出的比特串m,算 出通過規(guī)定的散列函數(shù)氏對所述比特串m進行散列得到的散列值并設(shè)為整數(shù)r( = H3Oii)),所述驗證裝置輸入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為 所述整數(shù)e的所述整數(shù)算出部所算出的整數(shù)r、作為所述元S的所述識別元存儲部所存儲的 元Q、以及作為所述元h的所述密文輸入部所輸入的元U,判斷是否驗證成功,所述解密文生成部使用所述處理裝置,在所述驗證裝置判斷為驗證成功的情況 下,根據(jù)所述比特串算出部所算出的比特串m,算出通過規(guī)定的散列函數(shù)H4對所述比特串m 進行散列得到的散列值并設(shè)為共用密鑰K ( = H4 (m)),輸出所算出的共用密鑰K作為所述解 密文。本發(fā)明所涉及的密文解密裝置的特征在于,所述識別元算出部在由所述密文輸入部輸入所述密文之前算出所述元Q。本發(fā)明所涉及的密文解密裝置的特征在于,所述密文解密裝置還具有共用密鑰存儲部、加密消息輸入部以及消息解密部,所述共用密鑰存儲部使用所述存儲裝置,存儲所述解密文生成部所輸出的共用密 鑰K,所述加密消息輸入部使用所述處理裝置輸入加密消息,所述消息解密部使用所述處理裝置,利用所述共用密鑰存儲部所存儲的共用密鑰 K對所述加密消息輸入部所輸入的加密消息進行解密。本發(fā)明所涉及的密文解密裝置的特征在于,所述密文解密裝置還具有密碼參數(shù)存儲部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)p,所述密鑰存儲部使用所述存儲裝置,存儲大于等于1且小于等于P-I的整數(shù)W、大于等于1且小于等于P-I的整數(shù)χ、大于等于1且小于等于P-I的整數(shù)y、以及大于等于1 且小于等于P-I的整數(shù)z,所述密文輸入部使用所述處理裝置,輸入所述有限群G的元U、所述有限群G的元 U’、以及所述有限群G的元ν作為所述密文,所述密文驗證部具有散列值算出部和整數(shù)算出部,所述散列值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元U和元 U’,算出通過規(guī)定的散列函數(shù)H對所述元u和所述元U’進行散列得到的散列值并設(shè)為整數(shù)
      α ( = H(u, U,)),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的階數(shù)ρ、所 述密鑰存儲部所存儲的整數(shù)X和整數(shù)y、以及所述散列值算出部所算出的整數(shù)α,算出將所 述整數(shù)y與所述整數(shù)α之積和所述整數(shù)X的和除以所述階數(shù)P而得到的余數(shù)并設(shè)為整數(shù) t ( = (x+y · α )mod ρ),所述驗證裝置輸入作為所述階數(shù)ρ的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為 所述整數(shù)e的所述密鑰存儲部所存儲的整數(shù)W、作為所述元s的所述密文輸入部所輸入的元 U、以及作為所述元h的所述密文輸入部所輸入的元U’,判斷是否驗證成功并作為第一驗證 結(jié)果;輸入所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算出部所算 出的整數(shù)t、作為所述元s的所述密文輸入部所輸入的元U、以及作為所述元h的所述密文 輸入部所輸入的元V,判斷是否驗證成功并作為第二驗證結(jié)果,所述解密文生成部使用所述處理裝置,在所述驗證裝置在所述第一驗證結(jié)果和所 述第二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)所述密鑰存儲部所存儲的整數(shù)ζ和所 述密文輸入部所輸入的元U,將所述元u相加所述整數(shù)ζ次來設(shè)為所述有限群G的元h(= ζ · u),根據(jù)所述密文輸入部所輸入的元u和所算出的元tT,利用規(guī)定的密鑰導(dǎo)出函數(shù)KDF 根據(jù)所述元u和所述元IT生成共用密鑰K ( = KDF (u,hi),輸出所生成的共用密鑰K作為 所述解密文。本發(fā)明所涉及的密文解密裝置的特征在于,所述密文解密裝置還具有共用密鑰存儲部、加密消息輸入部以及消息解密部,所述共用密鑰存儲部使用所述存儲裝置,存儲所述解密文生成部所輸出的共用密 鑰K,所述加密消息輸入部使用所述處理裝置,輸入加密消息,所述消息解密部使用所述處理裝置,利用所述共用密鑰存儲部所存儲的共用密鑰 K對所述加密消息輸入部所輸入的加密消息進行解密。本發(fā)明所涉及的密文解密裝置的特征在于,所述密文解密裝置還具有密碼參數(shù)存儲部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲加法群G1的階數(shù)P、所述加法群G1的 生成元g、以及以所述階數(shù)P為階數(shù)的乘法群Gt的元Vtl,所述密鑰存儲部使用所述存儲裝置,存儲以所述階數(shù)ρ為階數(shù)的加法群G2的元Cltl 和所述加法群G2的元Cl1,所述密文輸入部使用所述處理裝置,輸入比特串C、所述加法群G1的元Ctl、所述加 法群G1的元Cl、以及大于等于1且小于等于p-1的整數(shù)t作為所述密文,
      13
      所述密文驗證部具有配對值算出部和整數(shù)算出部,所述配對值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元Ctl和所述 秘密密鑰存儲部所存儲的元Cltl,利用規(guī)定的配對函數(shù)e算出所述元Ctl與所述元Cltl的配對值 并設(shè)為所述乘法群Gt的元kd = e(c0, (Ici)),根據(jù)所述密文輸入部所輸入的元C1和所述秘 密密鑰存儲部所存儲的元Cl1,利用所述配對函數(shù)e算出所述元C1與所述元Cl1的配對值并設(shè) 為所述乘法群Gt的元Ic1 ( = e (CljCl1)),根據(jù)所算出的所述元Icci和所算出的所述元Ic1,將所 述元K除以所述元Ic1來設(shè)為所述乘法群Gt的元k( = IvX),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述配對值算出部所算出的元k、所述密 文輸入部所輸入的比特串C、元C(l、以及元C1,算出通過規(guī)定的散列函數(shù)H”對所述元k、所述 比特串C、所述元Ctl、以及所述元C1進行散列得到的散列值并設(shè)為整數(shù)H”(k,c, c0, Cl),根 據(jù)所述密文輸入部所輸入的整數(shù)t、所算出的整數(shù)H”(k,c, c0, C1)、以及所述密碼參數(shù)存儲 部所存儲的階數(shù)P,算出將從所述整數(shù)t減去所述整數(shù)H”(k,c, c0, C1)而得到的整數(shù)除以 階數(shù)P的余數(shù)并設(shè)為整數(shù)s ( = t-H”(k,c, c0, C1)mod ρ),所述驗證裝置將所述加法群G1作為所述有限群G,輸入作為所述階數(shù)ρ的所述密 碼參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算出部所算出的整數(shù)S、作為所 述元s的所述密碼參數(shù)存儲部所存儲的生成元g、以及作為所述元h的所述密文輸入部所輸 入的元Ctl,判斷是否驗證成功并作為第一驗證結(jié)果;將所述乘法群Gt作為所述有限群G,輸 入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算 出部所算出的整數(shù)S、作為所述元s的所述密碼參數(shù)存儲部所存儲的元V(l、以及作為所述元 h的所述配對值算出部所算出的元k,判斷是否驗證成功并作為第二驗證結(jié)果,所述解密文生成部使用所述處理裝置,在所述驗證裝置在所述第一驗證結(jié)果和所 述第二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)所述配對值算出部所算出的元k,算出 通過規(guī)定的散列函數(shù)H’對所述元k進行散列得到的散列值并設(shè)為比特串H’(k),根據(jù)所述 密文輸入部所輸入的比特串c和所算出的比特串H’(k),取得所述比特串c與所述比特串 H’ (k)的邏輯異或并設(shè)為比特串M’( = c XOR H’(k)),輸出所算出的比特串M’作為所述 解密文。本發(fā)明所涉及的簽名驗證裝置的特征在于,具有處理數(shù)據(jù)的處理裝置、消息輸入 部、簽名輸入部、簽名驗證部、驗證裝置以及驗證結(jié)果輸出部,所述消息輸入部使用所述處理裝置,輸入消息,所述簽名輸入部使用所述處理裝置,輸入對于所述消息輸入部所輸入的消息的簽 名,所述簽名驗證部使用所述處理裝置,根據(jù)所述消息輸入部所輸入的消息和所述簽 名輸入部所輸入的簽名,算出輸入到所述驗證裝置的整數(shù)e、所述有限群G的元S、以及所述 有限群G的元h,所述驗證裝置輸入所述簽名驗證部所算出的整數(shù)e、所述有限群G的元S、以及所 述有限群G的元h,判斷是否驗證成功,所述驗證結(jié)果輸出部使用所述處理裝置,根據(jù)所述驗證裝置所驗證的結(jié)果,輸出 表示是否驗證成功的驗證結(jié)果。本發(fā)明所涉及的簽名驗證裝置的特征在于,
      14
      所述簽名驗證裝置還具有存儲數(shù)據(jù)的存儲裝置、密碼參數(shù)存儲部以及識別存儲 部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)P、所述有限群 G的生成元g、以及所述有限群G的元X,所述識別存儲部使用所述存儲裝置,存儲用于識別簽名裝置的比特串ID,所述消息輸入部使用所述處理裝置,輸入比特串M作為所述消息,所述簽名輸入部使用所述處理裝置,輸入所述有限群G O元R、所述有限群G的元 S、所述有限群G的元Y、以及大于等于1且小于等于p-1的整數(shù)ζ作為所述簽名,所述簽名驗證部具有整數(shù)算出部、驗證元算出部、挑戰(zhàn)算出部以及第一驗證部,所述整數(shù)算出部使用所述處理裝置,根據(jù)所述簽名輸入部所輸入的元R和所述識 別存儲部所存儲的比特串ID,算出通過規(guī)定的散列函數(shù)H對所述元R和所述比特串ID進行 散列得到的散列值并設(shè)為整數(shù)h( = H(R,ID)),所述驗證元算出部使用所述處理裝置,根據(jù)所述簽名輸入部所輸入的元R和元S, 將所述元S與所述元R的逆元相加來設(shè)為所述有限群G的元R’ ( = S-R),所述挑戰(zhàn)算出部使用所述處理裝置,根據(jù)所述識別存儲部所存儲的比特串ID、所 述簽名輸入部所輸入的元R、元S和元Y、以及所述消息輸入部所輸入的比特串M,算出通過 規(guī)定的散列函數(shù)H’對所述比特串ID、所述元R、所述元S、所述元Y、以及所述比特串M進行 散列得到的散列值并設(shè)為整數(shù)c ( = H' (I, R,S,Y,M)),所述第一驗證部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的生成元g、 所述簽名輸入部所輸入的元S、元Y和整數(shù)ζ、以及所述挑戰(zhàn)算出部所算出的整數(shù)C,判斷對 將所述元S相加所述整數(shù)c次得到的元c · S加上所述元Y的元Y+c · S是否與將所述元g 相加所述整數(shù)ζ次得到的元ζ · g相等,在所述元Y+c · S與所述元ζ · g相等的情況下,判 斷為驗證成功并作為第一驗證結(jié)果,所述驗證裝置輸入作為所述階數(shù)ρ的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為 所述整數(shù)e的所述整數(shù)算出部所算出的整數(shù)h、作為所述元s的所述密碼參數(shù)存儲部所存儲 的元X、以及作為所述元h的所述驗證元算出部所算出的元R’,判斷是否驗證成功并作為第
      二驗證結(jié)果,所述驗證結(jié)果輸出部使用所述處理裝置,根據(jù)所述第一驗證部所驗證的第一驗證 結(jié)果和所述驗證裝置所驗證的第二驗證結(jié)果,在所述第一驗證結(jié)果和所述第二驗證結(jié)果中 都判斷為驗證成功的情況下,輸出表示驗證成功的驗證結(jié)果。本發(fā)明所涉及的認證裝置的特征在于,具有處理數(shù)據(jù)的處理裝置、發(fā)送數(shù)據(jù)的發(fā) 送裝置、接收數(shù)據(jù)的接收裝置、認證請求接收部、詢問發(fā)送部、回答接收部、簽名驗證部、驗 證裝置以及認證結(jié)果輸出部,所述認證請求接收部使用所述接收裝置,接收認證請求消息,所述詢問發(fā)送部使用所述發(fā)送裝置,作為對于所述認證請求接收部所接收到的認 證請求消息的響應(yīng),發(fā)送詢問消息,所述回答接收部使用所述接收裝置,接收對于所發(fā)送的詢問消息的回答消息,所述簽名驗證部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的認證請 求消息和所述回答接收部所接收到的回答消息,算出輸入到所述驗證裝置的整數(shù)e、所述有
      15限群G的元S、以及所述有限群G的元h,所述驗證裝置輸入所述簽名驗證部所算出的整數(shù)e、所述有限群G的元S、以及所 述有限群G的元h,判斷是否驗證成功,所述認證結(jié)果輸出部使用所述處理裝置,根據(jù)所述驗證裝置所驗證的結(jié)果,輸出 表示是否認證成功的認證結(jié)果。本發(fā)明所涉及的認證裝置的特征在于,所述認證裝置還具有存儲數(shù)據(jù)的存儲裝置、密碼參數(shù)存儲部、識別存儲部以及挑 戰(zhàn)生成部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)P、所述有限群 G的生成元g、以及所述有限群G的元X,所述識別存儲部使用所述存儲裝置,存儲用于識別證明裝置的比特串ID,所述認證請求接收部使用所述接收裝置,從所述證明裝置接收所述有限群G的元 R、所述有限群G的元S、以及所述有限群的元Y作為所述認證請求消息,所述挑戰(zhàn)生成部使用所述處理裝置,隨機地生成大于等于1且小于等于P-I的整 數(shù)C,所述詢問發(fā)送部使用所述發(fā)送裝置,作為所述詢問消息對所述證明裝置發(fā)送所述 挑戰(zhàn)生成部所生成的整數(shù)C,所述回答接收部使用所述接收裝置,從所述證明裝置接收大于等于1且小于等于 P-I的整數(shù)Z作為所述回答消息,所述簽名驗證部具有整數(shù)算出部、驗證元算出部以及第一驗證部,所述整數(shù)算出部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的元R和 所述識別存儲部所存儲的比特串ID,算出通過規(guī)定的散列函數(shù)H對所述元R和所述比特串 ID進行散列得到的散列值并設(shè)為整數(shù)h( = H(R,ID)),所述驗證元算出部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的元R 和元S,對所述元S加上所述元R的逆元來設(shè)為所述有限群G的元R’ ( = S-R),所述第一驗證部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的生成元g、 所述認證請求接收部所接收到的元S和元Y、所述挑戰(zhàn)生成部所生成的整數(shù)C、以及所述回 答接收部所接收到的整數(shù)z,判斷對將所述元S相加所述整數(shù)c次得到的元c · S加上所述 元Y的元Y+c-S是否與將所述元g相加所述整數(shù)ζ次得到的元ζ -g相等,在所述元Y+c -S 與所述元ζ · g相等的情況下,判斷為驗證成功并作為第一驗證結(jié)果,所述驗證裝置輸入作為所述階數(shù)ρ的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為 所述整數(shù)e的所述整數(shù)算出部所算出的整數(shù)h、作為所述元s的所述密碼參數(shù)存儲部所存儲 的元X、以及作為所述元h的所述驗證元算出部所算出的元R’,判斷是否驗證成功并作為第 二驗證結(jié)果,所述認證結(jié)果輸出部使用所述處理裝置,根據(jù)所述第一驗證部所驗證的第一驗證 結(jié)果和所述驗證裝置所驗證的第二驗證結(jié)果,在所述第一驗證結(jié)果和所述第二驗證結(jié)果中 都判斷為驗證成功的情況下,輸出表示認證成功的認證結(jié)果。本發(fā)明所涉及的密碼系統(tǒng)的特征在于,具有所述驗證裝置。本發(fā)明所涉及的計算機程序的特征在于,使具有處理數(shù)據(jù)的處理裝置的計算機作為所述驗證裝置而發(fā)揮功能。本發(fā)明所涉及的驗證方法是使具有處理數(shù)據(jù)的處理裝置的驗證裝置驗證匹配性 的驗證方法,其特征在于,所述處理裝置輸入有限群G的階數(shù)ρ和整數(shù)e,根據(jù)所輸入的階數(shù)ρ和整數(shù)e,算 出滿足ei · e ε e2(mod ρ)的整數(shù)θι和整數(shù)e2,所述處理裝置輸入所述有限群G的元s和所述有限群G的元h,根據(jù)所輸入的元g 和元h、以及所算出的整數(shù)ei和整數(shù)e2,算出所述有限群G的元a( = ei · h-e2 · s),所述處理裝置根據(jù)所算出的元a,在所述元a為所述有限群G的單位元的情況下, 判斷為驗證成功。(發(fā)明的效果)根據(jù)本發(fā)明,例如根據(jù)整數(shù)分割部所算出的整數(shù)ei和整數(shù)e2,在驗證值算出部所 算出的元a為有限群G的單位元的情況下,驗證判斷部判斷為驗證成功,因此在h = e · s 的情況下能夠判斷為驗證成功。如果在驗證值算出部中算出元a的處理所花費的時間小于 算出e 所花費的時間,則起到如下效果能夠縮短判斷是否為h = e 的處理所花費的 時間。


      圖1是表示實施方式1中的密文解密裝置200的功能模塊的結(jié)構(gòu)的一例的模塊結(jié) 構(gòu)圖。圖2是表示實施方式1中的密文解密裝置200的外觀的一例的圖。圖3是表示實施方式1中的密文解密裝置200的硬件資源的一例的圖。圖4是表示實施方式1中的驗證裝置100的內(nèi)部模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。圖5是表示實施方式1中的驗證裝置100判斷是否為h = e · s的驗證處理的流 程的一例的流程圖。圖6是表示實施方式1中的整數(shù)分割部110的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模塊 圖。圖7是表示實施方式1中的整數(shù)分割部110分割整數(shù)e的整數(shù)分割處理的流程的 一例的流程圖。圖8是表示實施方式1中的驗證值算出部130的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模 塊圖。圖9是表示實施方式1中的驗證值算出部130算出有限群G的元a的驗證值算出 處理的流程的一例的流程圖。圖10是表示實施方式2中的基于ID的公開密鑰密碼系統(tǒng)820A的整體結(jié)構(gòu)的一 例的系統(tǒng)結(jié)構(gòu)圖。圖11是表示實施方式2中的密碼參數(shù)設(shè)定裝置810A的一部分功能模塊的結(jié)構(gòu)的 一例的模塊結(jié)構(gòu)圖。圖12是表示實施方式2中的密鑰生成裝置300A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。
      圖13是表示實施方式2中的密文生成裝置400A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖14是表示實施方式2中的密文解密裝置200A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖15是表示實施方式2中的密文解密裝置200A對密文c進行解密的密文解密處 理流程的一例的流程圖。圖16是表示實施方式3中的公開密鑰密碼系統(tǒng)820B的整體結(jié)構(gòu)的一例的系統(tǒng)結(jié) 構(gòu)圖。圖17是表示實施方式3中的密鑰生成裝置300B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖18是表示實施方式3中的密文生成裝置400B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖19是表示實施方式3中的密文解密裝置200B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖20是表示實施方式3中的密文解密裝置200A解密密文c的密文解密處理流程 的一例的流程圖。圖21是表示實施方式4中的基于ID的公開密鑰密碼系統(tǒng)820C的整體結(jié)構(gòu)的一 例的系統(tǒng)結(jié)構(gòu)圖。圖22是表示實施方式4中的密碼參數(shù)設(shè)定裝置810C的一部分功能模塊的結(jié)構(gòu)的 一例的模塊結(jié)構(gòu)圖。圖23是表示實施方式4中的密鑰生成裝置300C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖24是表示實施方式4中的密文生成裝置400C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖25是表示實施方式4中的密文解密裝置200C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖26是表示實施方式4中的驗證裝置100C的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模塊 圖。圖27是表示實施方式4中的密文解密裝置200C解密密文C的密文解密處理流程 的一例的流程圖。圖28是表示實施方式5中的基于ID的簽名系統(tǒng)820D的整體結(jié)構(gòu)的一例的系統(tǒng) 結(jié)構(gòu)圖。圖29是表示實施方式5中的密碼參數(shù)設(shè)定裝置810D的一部分功能模塊的結(jié)構(gòu)的 一例的模塊結(jié)構(gòu)圖。圖30是表示實施方式5中的密鑰生成裝置300D的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。圖31是表示實施方式5中的簽名裝置400D的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。圖32是表示實施方式5中的簽名驗證裝置200D的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu)圖。圖33是表示實施方式5中的簽名驗證裝置200D驗證簽名ο的簽名驗證處理的 流程的一例的流程圖。圖34是表示實施方式6中的基于ID的認證系統(tǒng)820Ε的整體結(jié)構(gòu)的一例的系統(tǒng) 結(jié)構(gòu)圖。圖35是表示實施方式6中的證明裝置400Ε的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。圖36是表示實施方式6中的認證裝置200Ε的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。圖37是表示實施方式6中的認證裝置200Ε認證證明裝置400Ε的認證處理的流 程的一例的流程圖。(附圖標記說明)100、100A、100B、100C、100D 驗證裝置;110U10C 整數(shù)分割部;111 階數(shù)輸入部; 112 整數(shù)輸入部;113 初始值設(shè)定部;114 第一剩余存儲部;115 第二剩余存儲部;116 適合性判斷部;117 第三剩余算出部;124 第一系數(shù)存儲部;125 第二系數(shù)存儲部;126 商算出部;127 第三系數(shù)算出部;129 分割整數(shù)輸出部;130、130C 驗證值算出部;131 分 割整數(shù)輸入部;132 元輸入部;133 索引算出部;134 表生成部;135 表存儲部;141 驗 證初始值設(shè)定部;142 倍算結(jié)果存儲部;143 二基底加法部;144 加法結(jié)果存儲部;145 倍算部149 驗證值輸出部;150、150C 驗證判斷部;200、200A、200B、200C 密文解密裝置; 200D 簽名驗證裝置;200E 認證裝置;210、210A、210B、210C 密鑰存儲部;210D 識別存 儲部;220、220A、220B、220C 密文輸入部;220D 簽名輸入部;225D 消息輸入部;220E 認 證請求接收部;226E 詢問發(fā)送部;227E 回答接收部;230、230A、230B、230C 密文驗證部; 230D 簽名驗證部;231A 配對值算出部;232A 比特串算出部;233A 整數(shù)算出部;231B 散列值算出部;232B 整數(shù)算出部;231C 配對值算出部;232C 整數(shù)算出部;231D 挑戰(zhàn) 算出部;232D 整數(shù)算出部;233D 驗證元算出部;231E 挑戰(zhàn)生成部;241A 識別存儲部; 242A 識別元算出部;243A 識別元存儲部;250D 第一驗證部;260、260A、260B、260C 解密 文生成部;260D 驗證結(jié)果輸出部;260E 認證結(jié)果輸出部;261B 秘密元算出部;262B 共 用密鑰算出部;270A.270B 共用密鑰存儲部;281A.281B 加密消息輸入部;282A.282B 消 息解密部;283A、283B、283C 解密消息輸出部;290A、290B、290C、290D、390A、390B、390C、 390D、490A、490B、490C、490D、819A、819C、819D 密碼參數(shù)存儲部;300A、300B、300C、300D 密鑰生成裝置;330A 秘密隨機數(shù)存儲部;330C、330D 主密鑰存儲部;340A、340C、340D 識別輸入部;350A、350B、350C 秘密密鑰生成部;350D 簽名密鑰生成部;351A 散列值算 出部;352A 整數(shù)加法部;353A:倒數(shù)算出部;354A 秘密密鑰算出部;351B、352B、353B、 354B 秘密隨機數(shù)生成部;351C 秘密隨機數(shù)生成部;352C 第一秘密元算出部;353C 第 二秘密元算出部;351D 秘密隨機數(shù)生成部;352D 密鑰元算出部;353D 密鑰整數(shù)算出部; 360A、360B、360C 秘密密鑰輸出部;360D 簽名密鑰輸出部;370B 公開密鑰生成部;371B、 372B、373B、374B 公開元算出部;380B 公開密鑰輸出部;400A、400B、400C 密文生成裝 置;400D 簽名裝置;400E 證明裝置;410A、410C、410D 識別存儲部;410B 公開密鑰存儲 部;420A、420B 共用密鑰生成部;420D 簽名密鑰存儲部;421A 秘密比特串生成部;422A
      19秘密整數(shù)算出部;423A 識別元算出部;424A 密碼元算出部;425A 秘密配對值算出部; 426A 密碼比特串算出部;427A 共用密鑰算出部;421B 秘密隨機數(shù)生成部;422B 第一 密碼元算出部;423B 第二密碼元算出部;424B 散列值算出部;425B 整數(shù)算出部;426B 第三密碼元算出部;427B 秘密元算出部;428B 共用密鑰算出部;430A、430B 共用密鑰存 儲部;440A、440B、440C、440D 消息輸入部;450A、450B、450C 消息加密部;450D 簽名生成 部;451C 秘密隨機數(shù)生成部;452C 配對值算出部;453C 密碼比特串算出部;454C 第一 密碼元算出部;455C 第二密碼元算出部;456C 密碼整數(shù)算出部;451D 第一簽名元算出 部;452D 秘密隨機數(shù)生成部;453D 第二簽名元算出部;454D 挑戰(zhàn)算出部;455D 簽名整 數(shù)算出部;454E 詢問接收部;460A.460B 加密消息輸出部;470A、470B、470C 密文輸出 部;470D 簽名輸出部;470E 認證請求發(fā)送部;475E 回答發(fā)送部;810A、810B、810C、810D 密碼參數(shù)設(shè)定裝置;811A 公開元生成部;812A 秘密隨機數(shù)生成部;813A 公開元算出部; 814A 秘密隨機數(shù)輸出部;815A 公開元輸出部;812C 主密鑰生成部;813C 公開參數(shù)生 成部;814C 主密鑰輸出部;815C 公開參數(shù)輸出部;816C、817C、818C 秘密隨機數(shù)生成部; 831C 第一公開元算出部;832C 公開配對值算出部;833C 第二公開元算出部;812D 秘密 隨機數(shù)生成部;813D 公開元算出部;814D 主密鑰輸出部;815D 公開參數(shù)輸出部;820A、 820C 基于ID的公開密鑰密碼系統(tǒng);820B 公開密鑰密碼系統(tǒng);820D 基于ID的簽名系統(tǒng); 820E 基于ID的認證系統(tǒng);901 表示裝置;902 鍵盤;903 鼠標;904 =FDD ;905 :CDD ;906 打印機裝置;907 掃描儀裝置;910 系統(tǒng)單元;911 =CPU ;912 總線;913 =ROM ;914 =RAM ; 915 通信裝置;920 磁盤裝置;921 =OS ;922 窗口系統(tǒng);923 程序群;924 文件群;931 電 話機;932 傳真機;940 因特網(wǎng);941 網(wǎng)關(guān);942 =LAN0
      具體實施例方式(實施方式1)使用圖1 圖9來說明實施方式1。在下面的說明中,將密碼系統(tǒng)所利用的有限群設(shè)為G。另外,有限群G中的運算以加法方式描述。此外,這是為了便于說明,并不是排除 以乘法方式描述群運算的群。設(shè)有限群G的階數(shù)ρ是素數(shù)。因而,有限群G是循環(huán)群。圖1是表示本實施方式中的密文解密裝置200的功能模塊的結(jié)構(gòu)的一例的模塊結(jié) 構(gòu)圖。密文解密裝置200輸入密文,對所輸入的密文進行解密來生成解密文。密文解密裝置200具有密鑰存儲部210、密文輸入部220、密文驗證部230、驗證裝 置100以及解密文生成部260。密鑰存儲部210存儲用于對密文進行解密的密鑰(秘密密鑰)。密文輸入部220輸入密文。密文驗證部230根據(jù)密鑰存儲部210所存儲的密鑰和密文輸入部220所輸入的密 文,算出為了驗證密文輸入部220所輸入的密文所需的值。驗證裝置100根據(jù)密文驗證部230所算出的值,驗證密文輸入部220所輸入的密文。
      在驗證裝置100的驗證成功的情況下,解密文生成部260使用密鑰存儲部210所 存儲的密鑰對密文輸入部220所輸入的密文進行解密,來生成解密文。存在如下情況非法者對密文解密裝置200輸入非法的密文,對密文解密裝置200 所生成的解密文進行解析,由此想要得到解讀正規(guī)密文的線索。密文解密裝置200僅在驗證密文的匹配性而驗證成功的情況下生成解密文,由此 防止對非法者提供解讀正規(guī)密文的線索。圖2是表示本實施方式中的密文解密裝置200的外觀的一例的圖。密文解密裝置200具備系統(tǒng)單元910、具有CRT (Cathode · Ray · Tube 陰極 射線管)、IXD (液晶)的顯示畫面的顯示裝置901、鍵盤902 (Key · Board :K/B)、鼠標 903、FDD904 (Flexible · Disk · Drive 軟盤驅(qū)動器)、高密度磁盤(compact disk)裝置 905 (⑶D)、打印機裝置906、掃描儀裝置907等硬件資源,這些部件通過線纜、信號線相連 接。系統(tǒng)單元910是計算機,通過線纜與傳真機932、電話機931相連接,另外,通過局 域網(wǎng)942 (LAN)、網(wǎng)關(guān)941與因特網(wǎng)940相連接。圖3是表示本實施方式中的密文解密裝置200的硬件資源的一例的圖。密文解密裝置200具備執(zhí)行程序的CPU911 (Central · Processing · Unit,還稱為 中央處理裝置、處理裝置、運算裝置、微處理器、微計算機、處理器)。CPU911通過總線912 與R0M913、RAM914、通信裝置915、顯示裝置901、鍵盤902、鼠標903、FDD904、CDD905、打印 機裝置906、掃描儀裝置907、磁盤裝置920相連接,并控制這些硬件設(shè)備。也可以是代替磁 盤裝置920而是光盤裝置、存儲卡讀寫裝置等存儲裝置。RAM914是易失性存儲器的一例。R0M913、FDD904、⑶D905、磁盤裝置920的存儲介 質(zhì)是非易失性存儲器的一例。這些部件是存儲裝置或存儲部的一例。通信裝置915、鍵盤902、掃描儀裝置907、FDD904等是輸入部、輸入裝置的一例。另外,通信裝置915、顯示裝置901、打印機裝置906等是輸出部、輸出裝置的一例。通信裝置915與傳真機932、電話機931、LAN942等相連接。通信裝置915不限于 LAN942,也可以與因特網(wǎng)940、ISDN等WAN(廣域網(wǎng))等相連接。在與因特網(wǎng)940或ISDN等 WAN相連接的情況下,不使用網(wǎng)關(guān)941。磁盤裝置920中存儲有操作系統(tǒng)921(0S)、窗口系統(tǒng)922、程序群923、文件群924。 程序群923的程序由CPU911、操作系統(tǒng)921、窗口系統(tǒng)922執(zhí)行。上述程序群923中存儲有在以下敘述的實施方式的說明中執(zhí)行作為“ 部”說明 的功能的程序。由CPU911讀取并執(zhí)行程序。文件群924中作為“ 文件”、“ 數(shù)據(jù)庫”的各項目而存儲有在以下所述的實施 方式的說明中執(zhí)行作為“ 的判斷結(jié)果”、“ 的計算結(jié)果’’、“ 的處理結(jié)果”說明的信息、 數(shù)據(jù)、信號值、變量值、參數(shù)。“ 文件”、“ 數(shù)據(jù)庫”被存儲在盤、存儲器等記錄介質(zhì)中。存 儲在盤、存儲器等存儲介質(zhì)中的信息、數(shù)據(jù)、信號值、變量值、參數(shù)經(jīng)由讀寫電路被CPU911 讀取到主存儲器、高速緩沖存儲器中,用于進行提取、檢索、參照、比較、運算、計算、處理、輸 出、印刷、顯示等CPU的動作。在進行提取、檢索、參照、比較、運算、計算、處理、輸出、印刷、 顯示的CPU的動作的期間,信息、數(shù)據(jù)、信號值、變量值、參數(shù)暫時被存儲在主存儲器、高速 緩沖存儲器、緩沖存儲器中。
      21
      另外,在以下敘述的實施方式的說明中說明的流程圖的箭頭部分主要表示數(shù)據(jù)、 信號的輸入輸出,數(shù)據(jù)、信號值被記錄到RAM914的存儲器、FDD904的軟盤、⑶D905的高密度 磁盤、磁盤裝置920的磁盤、其它光盤、迷你盤、DVD(Digital · Versatile · Disk)等記錄介 質(zhì)中。另外,數(shù)據(jù)、信號通過總線912、信號線、線纜、其它傳輸介質(zhì)而被聯(lián)機傳輸。另外,在以下敘述的實施方式的說明中作為“ 部”說明的部分既可以是“ 電 路”、“ 裝置”、“ 設(shè)備”,也可以是“ 步驟”、“ 過程〃、“ 處理”。即,作為“ 部”說明 的部分也可以由存儲在R0M913中的固件來實現(xiàn)?;蛘撸部梢詢H由軟件實施,或者僅由元 件、器件、基板、布線等硬件實施,或者由軟件和硬件的組合實施,進而以與固件的組合來實 施。固件和軟件作為程序而存儲在磁盤、軟盤、光盤、高密度磁盤、迷你盤、DVD等記錄介質(zhì) 中。由CPU911讀出并由CPU911執(zhí)行程序。即,程序使計算機作為以下敘述的“ 部”來發(fā) 揮功能?;蛘?,使計算機執(zhí)行以下敘述的“ 部”的過程、方法。圖4是表示本實施方式中的驗證裝置100的內(nèi)部模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。驗證裝置100輸入有限群G的元s及元h、有限群G的階數(shù)ρ、整數(shù)e,判斷是否為 h = e.So此外,設(shè)整數(shù)e大于等于1且小于等于p-1。驗證裝置100具有整數(shù)分割部110、驗證值算出部130以及驗證判斷部150。整數(shù)分割部110使用CPU911輸入有限群G的階數(shù)ρ和整數(shù)e,算出兩個整數(shù)力、
      θ2 ο驗證值算出部130使用CPU911,根據(jù)有限群G的元s及元h、整數(shù)分割部110所算 出的整數(shù)ei及整數(shù)e2,算出有限群G的元a。驗證判斷部150使用CPU911判斷驗證值算出部130所算出的元a是否為有限群 G的單位元。在元a為有限群G的單位元的情況下,驗證判斷部150判斷為驗證成功(即, h = e · s) ο圖5是表示本實施方式中的驗證裝置100判斷是否為h = e · s的驗證處理的流 程的一例的流程圖。在整數(shù)分割處理S701中,整數(shù)分割部110使用CPU911,根據(jù)所輸入的階數(shù)ρ和 整數(shù)e,算出兩個整數(shù)e”e2。整數(shù)分割部110算出滿Me1MEe2 (mod ρ)>|6ι|<λ/ρ ,
      這一條件的整數(shù)ei及整數(shù)e2。在驗證值算出處理S702中,驗證值算出部130使用CPU911,根據(jù)所輸入的元s及 元h、在整數(shù)分割處理S701中整數(shù)分割部110所算出的整數(shù)ei及整數(shù)e2,算出有限群G的 7Π a = G1 · h_e2 · s。在驗證判斷處理S703中,驗證判斷部150使用CPU911判斷在驗證值算出處理 S702中由驗證值算出部130算出的元a是否為有限群G的單位元(下面描述為“0” )。在判斷為元a為單位元0的情況下,進入成功判斷處理S704。在判斷為元a不是單位元0的情況下,進入失敗判斷處理S705。在成功判斷處理S704中,驗證判斷部150使用CPU911判斷為驗證成功,結(jié)束驗證 處理。
      在失敗判斷處理S705中,驗證判斷部150使用CPU911判斷為驗證失敗,結(jié)束驗證處理。圖6是表示本實施方式中的整數(shù)分割部110的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模塊 圖。整數(shù)分割部110根據(jù)有限群G的階數(shù)ρ和整數(shù)e,算出滿Sei*eEe2(m0d ρ)的 整數(shù)ei及整數(shù)e2。S卩,整數(shù)分割部110確定整數(shù)ei及整數(shù)e2,使得將整數(shù)ei和整數(shù)e之積 除以階數(shù)P而得到的余數(shù)與整數(shù)e2相等。此外,為了高速地進行驗證值算出部130中的計算,整數(shù)分割部110從滿足 ei .e ε e2(mod ρ)的整數(shù)ei及整數(shù)e2中選擇絕對值小于階數(shù)ρ的平方根的整數(shù)力和小于 階數(shù)P的平方根的作為大于等于1的整數(shù)的整數(shù)e2。整數(shù)分割部110具有階數(shù)輸入部111、整數(shù)輸入部112、初始值設(shè)定部113、第一剩 余存儲部114、第二剩余存儲部115、適合性判斷部116、第三剩余算出部117、第一系數(shù)存儲 部124、第二系數(shù)存儲部125、商算出部126、第三系數(shù)算出部127以及分割整數(shù)輸出部129。階數(shù)輸入部111使用CPU911輸入表示有限群G的階數(shù)ρ的數(shù)據(jù)。階數(shù)輸入部111 使用RAM914,存儲表示所輸入的階數(shù)ρ的數(shù)據(jù)。整數(shù)輸入部112使用CPU911輸入表示整數(shù)e的數(shù)據(jù)。整數(shù)輸入部112使用RAM914, 存儲表示所輸入的整數(shù)e的數(shù)據(jù)。第一剩余存儲部114使用RAM914,存儲表示整數(shù)V1的數(shù)據(jù)。第二剩余存儲部115使用RAM914,存儲表示整數(shù)V2的數(shù)據(jù)。第一系數(shù)存儲部124使用RAM914,存儲表示整數(shù)、的數(shù)據(jù)。第二系數(shù)存儲部125使用RAM914,存儲表示整數(shù)t2的數(shù)據(jù)。初始值設(shè)定部113對第一剩余存儲部114、第二剩余存儲部115、第一系數(shù)存儲部 124、第二系數(shù)存儲部125設(shè)定初始值。初始值設(shè)定部113使用CPU911輸入階數(shù)輸入部111所存儲的表示階數(shù)P的數(shù)據(jù) 和整數(shù)輸入部112所存儲的表示整數(shù)e的數(shù)據(jù)。初始值設(shè)定部113使用CPU911將所輸入 的表示階數(shù)P的數(shù)據(jù)作為表示整數(shù)V1的數(shù)據(jù)而存儲到第一剩余存儲部114中。初始值設(shè) 定部113使用CPU911將所輸入的表示整數(shù)e的數(shù)據(jù)作為表示整數(shù)V2的數(shù)據(jù)而存儲到第二 剩余存儲部115中。初始值設(shè)定部113使用CPU911將表示0的數(shù)據(jù)作為表示整數(shù)、的數(shù) 據(jù)而存儲到第一系數(shù)存儲部124中。初始值設(shè)定部113使用CPU911將表示1的數(shù)據(jù)作為 表示整數(shù)t2的數(shù)據(jù)而存儲到第二系數(shù)存儲部125中。在此,由于V1 = p、V2 = e、tl = 0、t2 = 1,因此當將I^k2設(shè)為整數(shù)時,[式1]ti · e+ki · ρ = V1[式2]t2 · e+k2 · ρ = V2[式3]V1 > V2 ^ 0[式4]It1I < |t2
      23
      [式δ]V1 · 1121 +V2 · I、I = ρ適合性判斷部116使用CPU911輸入階數(shù)輸入部111所存儲的表示階數(shù)P的數(shù)據(jù) 和第二剩余存儲部115所存儲的表示整數(shù)V2的數(shù)據(jù)。適合性判斷部116使用CPU911根據(jù) 所輸入的數(shù)據(jù)所表示的階數(shù)P和整數(shù)V2,判斷是否滿足輸出條件。具體地說,適合性判斷部 116使用CPU911將整數(shù)V2與階數(shù)ρ的平方根進行比較,在整數(shù)V2小于階數(shù)ρ的平方根的 情況下,判斷為滿足輸出條件。此外,適合性判斷部116也可以預(yù)先使用CPU911來算出不超過階數(shù)ρ的平方根的
      最大整數(shù)。另外,也可以代替算出階數(shù)ρ的平方根而將整數(shù)V2的二進制表述中的位數(shù)和階數(shù) P的二進制表述中的位數(shù)進行比較來判斷是否滿足輸出條件。即,適合性判斷部116預(yù)先使 用CPU911求出表示階數(shù)ρ的數(shù)據(jù)的比特數(shù),將所求出的比特數(shù)除以2(不能整除的情況下 是進位)來設(shè)為平方根比特數(shù)。平方根比特數(shù)表示不超過階數(shù)P的平方根的整數(shù)的二進制 表述中的位數(shù)。適合性判斷部116使用RAM914存儲所算出的平方根比特數(shù),使用CPU911 算出表示整數(shù)V2的數(shù)據(jù)的比特數(shù)。適合性判斷部116使用CPU911將所算出的比特數(shù)與所 存儲的平方根比特數(shù)進行比較,在表示整數(shù)V2的數(shù)據(jù)的比特數(shù)小于等于平方根比特數(shù)的情 況下,視為整數(shù)V2小于階數(shù)P的平方根,判斷為滿足輸出條件。在適合性判斷部116判斷為不滿足輸出條件的情況下,第三剩余算出部117使用 CPU911輸入第一剩余存儲部114所存儲的表示整數(shù)V1的數(shù)據(jù)和第二剩余存儲部115所存 儲的表示整數(shù)V2的數(shù)據(jù)。第三剩余算出部117根據(jù)所輸入的數(shù)據(jù)所表示的整數(shù)V1和整數(shù) V2,算出將整數(shù)V1除以整數(shù)V2而得到的余數(shù)并設(shè)為整數(shù)ν3。另外,在適合性判斷部116判斷為不滿足輸出條件的情況下,商算出部126使用 CPU911輸入第一剩余存儲部114所存儲的表示整數(shù)V1的數(shù)據(jù)和第二剩余存儲部115所存 儲的表示整數(shù)V2的數(shù)據(jù)。商算出部126根據(jù)所輸入的數(shù)據(jù)所表示的整數(shù)V1和整數(shù)ν2,算 出不超過將整數(shù)V1除以整數(shù)V2而得到的商的最大整數(shù)并設(shè)為整數(shù)q。商算出部126使用 RAM914存儲表示所算出的整數(shù)q的數(shù)據(jù)。第三系數(shù)算出部127使用CPU911輸入第一系數(shù)存儲部124所存儲的表示整數(shù)、 的數(shù)據(jù)、第二系數(shù)存儲部125所存儲的表示整數(shù)t2的數(shù)據(jù)以及表示商算出部126所算出的 整數(shù)q的數(shù)據(jù)。第三系數(shù)算出部127使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的整數(shù)、、整 數(shù)t2以及整數(shù)q,算出從整數(shù)、減去整數(shù)q與整數(shù)t2之積而得到的整數(shù)t3( = trq · t2)。在此,當將k3設(shè)為整數(shù)時,[式6]v3_t3 · e = (v「q · v2) - (tj-q · v3) · e= (Vft1 · e)-q · (v2_t2 · e)= (krq · k2) · ρ.·. t3 · e+k3 · ρ = V3另外,整數(shù)V3是將整數(shù)V1除以整數(shù)V2而得到的余數(shù),因此,[式7]V2 > V3 ^ 0
      24
      另外,如果V1 > V2 > 0,貝丨J q彡1,因此如果、彡0、t2 > 0,貝丨J[式8]t3 = trq · t2 < 0如果、>0、t2 < 0,則[式9]t3 = trq · t2 > 0因而,在任意情況下,都是[式10]t3| = |tj+q · |t2因此,[式11]V2 · 1131 +V3 · 112= V2 · I ti I +v2-q· I ti +(V1-Q · v2) · 112= V1 · 1121 +V2 · I、= ρ第三剩余算出部117使用CPU911,將表示所輸入的整數(shù)V2的數(shù)據(jù)作為表示整數(shù)V1 的數(shù)據(jù)而存儲到第一剩余存儲部114中。第三剩余算出部117使用CPU911,根據(jù)所算出的 整數(shù)V3,將表示整數(shù)V3的數(shù)據(jù)作為表示整數(shù)V2的數(shù)據(jù)而存儲到第二剩余存儲部115中。第三系數(shù)算出部127使用CPU911,將表示所輸入的整數(shù)t2的數(shù)據(jù)作為表示整數(shù)、 的數(shù)據(jù)而存儲到第一系數(shù)存儲部124中。第三系數(shù)算出部127使用CPU911,根據(jù)所算出的 整數(shù)t3,將表示整數(shù)t3的數(shù)據(jù)作為表示整數(shù)t2的數(shù)據(jù)而存儲到第二系數(shù)存儲部125中。根據(jù)式6 式11,在第一剩余存儲部114、第二剩余存儲部115、第一系數(shù)存儲部 124、第二系數(shù)存儲部125新存儲的數(shù)據(jù)所表示的整數(shù)V1、整數(shù)V2、整數(shù)、、整數(shù)t2之間也成 立式1 式5。在適合性判斷部116判斷為滿足輸出條件的情況下,分割整數(shù)輸出部129使用 CPU911輸入第二剩余存儲部115所存儲的表示整數(shù)V2的數(shù)據(jù)和第二系數(shù)存儲部125所存 儲的表示整數(shù)t2的數(shù)據(jù)。分割整數(shù)輸出部129使用CPU911將所輸入的表示整數(shù)t2的數(shù)據(jù) 作為表示整數(shù)ei的數(shù)據(jù)而輸出。另外,分割整數(shù)輸出部129使用CPU911將所輸入的表示 整數(shù)V2的數(shù)據(jù)作為表示整數(shù)e2的數(shù)據(jù)而輸出。當?shù)谌S嗨愠霾?17和第三系數(shù)算出部127重復(fù)進行該計算時,V2不久會成為 階數(shù)P與整數(shù)e之間的最大公約數(shù)。階數(shù)P是素數(shù),因此階數(shù)P與整數(shù)e之間的最大公約
      數(shù)為1。因而,必然成為()<V2<‘,分割整數(shù)輸入部129輸出表示整數(shù)ei和整數(shù)e2的數(shù)據(jù)。圖7是表示本實施方式中的整數(shù)分割部110分割整數(shù)e的整數(shù)分割處理的流程的 一例的流程圖。在初始值設(shè)定工序S711中,初始值設(shè)定部113使用CPU911對第一剩余存儲部 114、第二剩余存儲部115、第一系數(shù)存儲部124、第二系數(shù)存儲部125設(shè)定初始值。第一剩 余存儲部114使用RAM914將階數(shù)輸入部111所輸入的階數(shù)ρ作為整數(shù)V1而存儲。第二剩余存儲部115使用RAM914將整數(shù)輸入部112所輸入的整數(shù)e作為整數(shù)V2而存儲。第一系 數(shù)存儲部124使用RAM914,存儲0作為整數(shù)、。第二系數(shù)存儲部125使用RAM914,存儲1 作為整數(shù)t2。在適合性判斷工序S712中,適合性判斷部116使用CPU911,判斷第二剩余存儲部 115所存儲的整數(shù)V2是否小于階數(shù)輸入部111所輸入的階數(shù)P的平方根。在判斷為整數(shù)V2于階數(shù)ρ的平方根的情況下,進入分割整數(shù)輸出工序S718。在判斷為整數(shù)V2大于階數(shù)ρ的平方根的情況下,進入剩余算出工序S713。在剩余算出工序S713中,第三剩余算出部117使用CPU911,算出將第一剩余存儲 部114所存儲的整數(shù)V1除以第二剩余存儲部115所存儲的整數(shù)V2而得到的余數(shù)并設(shè)為整 數(shù)V3O在商算出工序S714中,商算出部126使用CPU911算出不超過將第一剩余存儲部 114所存儲的整數(shù)V1除以第二剩余存儲部115所存儲的整數(shù)V2而得到的商的最大整數(shù)并 設(shè)為整數(shù)q。在系數(shù)算出工序S715中,第三系數(shù)算出部127使用CPU911,算出從第一系數(shù)存儲 部124所存儲的整數(shù)、減去第二系數(shù)存儲部125所存儲的整數(shù)t2與通過商算出工序S714 由商算出部126算出的整數(shù)q之積而得到的整數(shù)并設(shè)為整數(shù)t3。在剩余更新工序S716中,第三剩余算出部117使用CPU911,更新第一剩余存儲部 114、第二剩余存儲部115。第一剩余存儲部114使用RAM914,將第二剩余存儲部115所存 儲的整數(shù)V2作為整數(shù)V1而存儲。第二剩余存儲部115使用RAM914,將通過剩余算出工序 S713由第三剩余算出部117算出的整數(shù)V3作為整數(shù)V2而存儲。在系數(shù)更新工序S717中,第三系數(shù)算出部127使用CPU911,更新第一系數(shù)存儲部 124、第二系數(shù)存儲部125。第一系數(shù)存儲部124使用RAM914,將第二系數(shù)存儲部125所存 儲的整數(shù)t2作為整數(shù)、而存儲。第二系數(shù)存儲部125使用RAM914,將通過系數(shù)算出工序 S715由第三系數(shù)算出部127算出的整數(shù)t3作為整數(shù)t2而存儲。之后,返回到適合性判斷工序S712。在分割整數(shù)輸出工序S718中,分割整數(shù)輸出部129使用CPU911將第二系數(shù)存儲 部125所存儲的整數(shù)t2作為整數(shù)ei輸出。分割整數(shù)輸出部129使用CPU911將第二剩余存 儲部115所存儲的整數(shù)V2作為整數(shù)e2輸出。之后,結(jié)束整數(shù)分割處理。關(guān)于分割整數(shù)輸出部129所輸出的整數(shù)ei及整數(shù)e2,根據(jù)式2得到[式12]θ! · e+k2 · ρ = e2.·. θ! · e = e2 (mod ρ)另外,由于通過適合性判斷工序S712判斷為滿足輸出條件,因此,[式13]e2=V2< λ/Ρ在執(zhí)行了 2次以上適合性判斷工序S712的情況下,由于在前一次的適合性判斷工 序S712中判斷為不滿足輸出條件,因此[式14]
      V\> y/jp此時,根據(jù)式5,[式I5]V1 · 1121 < ρ.·..·. Ie1I 二 | 2| < VP此外,在僅執(zhí)行了一次適合性判斷工序S712的情況下,也是% = 1,因此滿足式 15。如上所述,整數(shù)分割部110利用擴展歐幾里德互除法(extended Euclidean algorithm)來算出滿足力· e 三 e2(mod ρ) >|eij<VP、0<e2<"/^的整數(shù) ei 及整數(shù) %。圖8是表示本實施方式中的驗證值算出部130的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模 塊圖。驗證值算出部130根據(jù)有限群G的元s及元h、整數(shù)分割部110所算出的整數(shù)力 及整數(shù)e2,算出有限群G的元a( = ei · h-e2 · s)。驗證值算出部130具有分割整數(shù)輸入部131、元輸入部132、索引算出部133、表生 成部134、表存儲部135、驗證初始值設(shè)定部141、倍算(multiplication)結(jié)果存儲部142、 二基底加法部143、加法結(jié)果存儲部144、倍算部145以及驗證值輸出部149。分割整數(shù)輸入部131使用CPU911,輸入整數(shù)分割部110所輸出的表示整數(shù)力及整 數(shù)e2的數(shù)據(jù)。分割整數(shù)輸入部131使用RAM914存儲所輸入的表示整數(shù)力及整數(shù)e2的數(shù) 據(jù)。元輸入部132使用CPU911輸入表示有限群G的元s及元h的數(shù)據(jù)。元輸入部132 使用RAM914存儲所輸入的表示元s及元h的數(shù)據(jù)。索引算出部133使用CPU911輸入分割整數(shù)輸入部131所存儲的表示整數(shù)%及整 數(shù)%的數(shù)據(jù)。索引算出部133使用CPU911判斷整數(shù)力是正整數(shù)還是負整數(shù)。索引算出部 133使用RAM914存儲表示判斷結(jié)果的數(shù)據(jù)。索引算出部133使用CPU911,在判斷為整數(shù)ei 是負整數(shù)的情況下,使整數(shù)ei的符號反轉(zhuǎn)來設(shè)為正整數(shù)。索引算出部133使用CPU911根據(jù)所算出的整數(shù)ei的絕對值,來算出作為以η進 制表示整數(shù)ei的絕對值的各位的整數(shù)組(ei,i)(其中,i是大于等于0且小于等于k-1的整 數(shù)。η是預(yù)先確定的大于等于2的整數(shù)。)。即,索引算出部133使用CPU911算出滿足以下 條件的整數(shù)組(eu)。[式16] 同樣地,索引算出部133使用CPU911,根據(jù)整數(shù)%算出作為以η進制表示整數(shù)e2 的各位的整數(shù)組(e2,i)。艮P,[式17]
      例如在η = 2的情況下,索引算出部133使用CPU911,按每個比特分解分別表示整 數(shù)ei的絕對值和整數(shù)e2的數(shù)據(jù)并設(shè)為(eu)、(e2,i)。在η = 4的情況下,索引算出部133 按每兩個比特分解分別表示整數(shù)ei的絕對值和整數(shù)e2的數(shù)據(jù)并設(shè)為(eu)、(e2,i)。此外,k是關(guān)于滿足i≥k的所有i滿足eu = 0、e2a = 0的最小整數(shù)。例如,如果η = 2、ei = 23、e2 = 34 JlJe1 = (IOlll)2, e2 = (100010)2,因此 k = 6。索引算出部133使用RAM914存儲表示所算出的整數(shù)組(e^)及(e2,i)的數(shù)據(jù)。表生成部134使用CPU911,輸入元輸入部132所存儲的表示元s及元h的數(shù)據(jù)、以 及索引算出部133所判斷的表示整數(shù)ei是正還是負的判斷結(jié)果的數(shù)據(jù)。表生成部134使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元S、元h和判斷結(jié)果,算 出nXn個有限群G的元px,y( = eljSgn · χ · h-y · So其中,χ及y是大于等于0且小于等于 n-1的整數(shù)。ei,sgn是在整數(shù)力為正時為1,在整數(shù)力為負時為-1。)。例如,在n = 2的情況下,表生成部134算出四個元Ptl^P1,QA^p1,ρ此外,由于 元P。,。始終為單位元,因此表生成部134也可以僅算出其它三個元。 表存儲部135使用RAM914存儲表示表生成部134所算出的η X η個元px,y的數(shù)據(jù)。倍算結(jié)果存儲部142使用RAM914,存儲表示有限群G的元a’的數(shù)據(jù),該元a’是算 出有限群G的元a的中途的值。加法結(jié)果存儲部144使用RAM914存儲表示有限群G的元a”的數(shù)據(jù),該元a”是算 出有限群G的元a的中途的值。驗證初始值設(shè)定部141使用CPU911,將表示有限群G的單位元的數(shù)據(jù)作為表示元 a’的數(shù)據(jù)而存儲到倍算結(jié)果存儲部142中。二基底加法部143使用CPU911,按i從大到小的順序逐個輸入索引算出部133所 存儲的表示整數(shù)組(eu)及(e2,i)的數(shù)據(jù)。二基底加法部143使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的整數(shù)及整數(shù)%」, 從表存儲部135所存儲的表示有限群G的元px, y的數(shù)據(jù)中獲取表示滿足χ = eu、y = e2,, 的元px,y的數(shù)據(jù)作為表示元Pi的數(shù)據(jù)。二基底加法部143使用CPU911,輸入倍算結(jié)果存儲部142所存儲的表示有限群G 的元a’的數(shù)據(jù)。二基底加法部143使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的有限群G的元a’和元 Pi,算出將元a’和元Pi相加而得到的元a’ +PiO二基底加法部143使用CPU911,將表示所算出的元^+Pi的數(shù)據(jù)作為表示元a”的 數(shù)據(jù)而存儲到加法結(jié)果存儲部144中。倍算部145使用CPU911,輸入加法結(jié)果存儲部144所存儲的表示有限群G的元a” 的數(shù)據(jù)。倍算部145使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元a”算出將元a”相加η次 得到的元η ·&”。在例如η = 2的情況下,倍算部145將元a”與元a”相加而算出元2 ^”。 在η = 4的情況下,倍算部145將元a”與元a”相加而算出2 · a”,進一步將所算出的元2 · a,,與元2 · a,,相力口而算出元4 · a,,。倍算部145使用CPU911,將表示所算出的元η *a”的數(shù)據(jù)作為表示元a’的數(shù)據(jù)而 存儲到倍算結(jié)果存儲部142中。重復(fù)以上處理,在二基底加法部143輸入了所有的索引算出部133所存儲的整數(shù) ei, i及整數(shù)e2, i的情況下,驗證值輸出部149使用CPU911輸入加法結(jié)果存儲部144所存儲 的表示有限群G的元a”的數(shù)據(jù)。驗證值輸出部149使用CPU911,將所輸入的表示元a”的 數(shù)據(jù)作為表示元a的數(shù)據(jù)而輸出。圖9是表示本實施方式中的驗證值算出部130算出有限群G的元a的驗證值算出 處理的流程的一例的流程圖。在索引算出工序S721中,索引算出部133使用CPU911,根據(jù)分割整數(shù)輸入部131 所輸入的整數(shù)ei算出整數(shù)ei,sgn。索引算出部133使用CPU911,如果整數(shù)ei為正,則將整數(shù) ei, sgn設(shè)為1,如果整數(shù)e2為負,則將整數(shù)ei, sgn設(shè)為-1。索引算出部133使用CPU911,根據(jù)分割整數(shù)輸入部131所輸入的整數(shù)力算出k 個整數(shù)ei,i(其中,i是大于等于0且小于等于k-Ι的整數(shù)。)。例如,索引算出部133使用 CPU911算出將如下整數(shù)除以η而得到的余數(shù)并設(shè)為eu 該整數(shù)為不超過將整數(shù)ei的絕對 值除以η的i次方而得到的商的最大整數(shù)。同樣地,索引算出部133使用CPU911,根據(jù)分割整數(shù)輸入部131所輸入的整數(shù)%算 出k個整數(shù)e2,i(其中,i是大于等于0且小于等于k-Ι的整數(shù)。)。例如,索引算出部133 使用CPU911算出將如下整數(shù)除以η而得到的余數(shù)并設(shè)為e2,i 該整數(shù)為不超過將整數(shù)e2除 以η的i次方而得到的商的最大整數(shù)。在表生成工序S722中,表生成部134使用CPU911,根據(jù)元輸入部132所輸入的元s 及元h、通過索引算出工序S721由索引算出部133算出的整數(shù)ei,sgn,算出η2個有限群G的 元Px,y(其中,Χ和y是大于等于0且小于等于η-1的整數(shù)。)。表生成部134使用CPU911, 算出從將元h相加ei, sgn · χ次得到的元中減去將元s相加y次得到的元而得到的元,并設(shè) 為元Ρχ, y°表存儲部135使用RAM914存儲表生成部134所算出的η2個元px,y。在驗證初始值設(shè)定工序S723中,驗證初始值設(shè)定部141使用CPU911將倍算結(jié)果 存儲部142初始化。倍算結(jié)果存儲部142使用RAM914存儲有限群G的單位元作為元a’。在重復(fù)初始值設(shè)定工序S724中,二基底加法部143使用RAM914存儲從整數(shù)k減 去1而得到的整數(shù)作為整數(shù)j。在二基底加法工序S725中,二基底加法部143使用CPU911,根據(jù)所存儲的整數(shù)j, 從通過索引算出工序S721由索引算出部133算出的k個整數(shù)和整數(shù)e2,i中獲取i = j 的整數(shù)ei,j和整數(shù)e2,jt)二基底加法部143使用CPU911,根據(jù)所獲取的整數(shù)和整數(shù)e2a,從表存儲部135 所存儲的η2個有限群G的元px,y中獲取滿足χ = ei,」、y = e2,j的元px,y并設(shè)為元P”二基底加法部143使用CPU911,根據(jù)倍算結(jié)果存儲部142所存儲的有限群G的元 a’和所獲取的元Pi,通過有限群G中的運算來算出將元a’和元Pi相加得到的元a’ +Pio加法結(jié)果存儲部144使用RAM914,存儲二基底加法部143所算出的元a’ +Pi作為 元a "ο
      29
      在重復(fù)更新工序S726中,二基底加法部143使用CPU911,算出從所存儲的整數(shù)j 減去1而得到的整數(shù)j-Ι。二基底加法部143使用RAM914,存儲所算出的整數(shù)j-Ι作為整 數(shù)在所算出的整數(shù)j為正或0的情況下,進入倍算工序S727。在所算出的整數(shù)j為負的情況下,進入驗證值輸出工序S728。在倍算工序S727中,倍算部145使用CPU911,根據(jù)加法結(jié)果存儲部144所存儲的 有限群G的元a”,通過有限群G中的運算來算出將元a”相加η次得到的元η · a”。倍算結(jié)果存儲部142使用RAM914存儲倍算部145所算出的元η · a”作為元a’。之后,返回到二基底加法工序S725。在驗證值輸出工序S728中,驗證值輸出部149使用CPU911,輸出加法結(jié)果存儲部 144所存儲的有限群G的元a”作為元a。之后,結(jié)束驗證值算出處理。如上所述,驗證值算出部130利用加法群中的二基底標量倍算(或者乘法群中的 二基底取冪)算出元a。在以上處理中,將在j = i時通過二基底加法工序S725由加法結(jié)果存儲部144存 儲的元a”寫為叫時,[式I8]ak = Pk, Bi = η · ai+1+Pi
      k-1.·..·. α = α0 = y^ (η2 · Pi)
      i=0在此,有限群G的元Pi*[式19] 因而,[式20]
      k-1 k-1 在此,θ! · e = e2 (mod ρ),因此[式21]a = θ! · (h-e · s)如果h = e · s,則元a成為有限群G的單位元。另外,如果h興e · s,則由于有限 群G的階數(shù)ρ為素數(shù),因此只要不是ei = 0,元a就不會成為有限群G的單位元。因而,通 過判斷驗證值算出部130所算出的元a是否為單位元,能夠判斷是否為h = e · S。接著,說明驗證值算出部130算出有限群G的元a的計算所花費的時間。此外,在下面的說明中,將進行一次有限群G的群運算所花費的時間設(shè)為T。另外,除此之外的計算、數(shù)據(jù)的獲取等所花費的時間遠遠小于T,因此忽視。在表生成工序S722中,表生成部134為了算出元pQ, y(y Φ 0,1)而進行η_2次群 運算,為了算出元Px,Q (X興0,1)而進行Π-2次群運算,為了算出元Px,y(x興0、y興0)而進 行(n-1)2次群運算,因此表生成工序S722所花費的時間為(n2-3)T。在二基底加法工序S725中,二基底加法部143為了算出元a”而進行一次群運算。 二基底加法工序S725被重復(fù)進行k次,因此二基底加法工序S725所花費的時間全部為kT。在η為2的冪的情況下,在倍算工序S727中,倍算部145為了算出元a’而進行 log2n次群運算。倍算工序S727被重復(fù)進行k_l次,因此倍算工序S727所花費的時間全部 為 log2n(k-l)T。因而,整個驗證值算出處理所花費的時間為[n2-3+k+log2n(k-l)]T。例如,在η = 2的情況下是2kT,在η = 4的情況下是(3k+12)T。為了進行比較,說明不分割整數(shù)e而算出e · s的情況下所花費的時間。將以η進制表示整數(shù)e的 情況下的位數(shù)設(shè)為k’。計算過程與驗證值算出處理相同。但是,成為基底的元為1個,因此在預(yù)先算出的 表中存儲η個元χ · s (χ是大于等于0且小于等于n-1的整數(shù)。)。生成表所花費的時間為(n-2)T。加法所花費的時間全部為k’ Τ。倍算所花費的時間全部為lo&n(k’ -DT0因而,算出e · s的整體所花費的時間為[n-2+k’ +Iog2Ii(k’ _1)]T。例如在η = 2 的情況下是(2k’ -1)T,在η = 4的情況下是3k’ Τ。在此,e是大于等于1且小于等于ρ-1的整數(shù),因此k’與以η進制表示ρ時的位 數(shù)在概率上大致相等。與此相對,θι的絕對值及e2是大于等于1且小于▲的整數(shù),因此k與以η進制表 示▲時的位數(shù)在概率上大致相等,是k’的大約一半。因此,當假設(shè)k = k’ /2時,整個驗證值算出處理所花費的時間在η = 2的情況下 為k’T,在η = 4的情況下為(1.5k’+12)T。當設(shè)為有限群G的階數(shù)ρ足夠大時,整個驗證 值算出處理所花費的時間為算出e · s的處理所花費的時間的大約一半。因而,判斷是否為h = e · s所花費的時間成為大約一半。本實施方式中的驗證裝置100具有處理數(shù)據(jù)的處理裝置(CPU911)、整數(shù)分割部 110、驗證值算出部130以及驗證判斷部150。上述整數(shù)分割部110使用上述處理裝置(CPU911)輸入有限群G的階數(shù)ρ和整數(shù) e,根據(jù)所輸入的階數(shù)P和整數(shù)e,算出滿Se1^eEe2 (mod ρ)的整數(shù)力和整數(shù)e2。上述驗證值算出部130使用上述處理裝置(CPU911),輸入上述有限群G的元s和 上述有限群G的元h,根據(jù)所輸入的元s及元h、上述整數(shù)分割部110所算出的整數(shù)ei及整 數(shù)e2,算出上述有限群G的元a( = ei · h-e2 · s)。上述驗證判斷部150使用上述處理裝置(CPU911),根據(jù)上述驗證值算出部130所 算出的元a,在上述元a為上述有限群G的單位元的情況下判斷為驗證成功。根據(jù)本實施方式中的驗證裝置100,在由驗證值算出部130根據(jù)整數(shù)分割部110所算出的整數(shù)ei和整數(shù)e2算出的元a為有限群G的單位元的情況下,驗證判斷部150判斷為 驗證成功,因此,在h = e-s的情況下,能夠判斷為驗證成功。如果在驗證值算出部130中 算出元a的處理所花費的時間小于算出e · s所花費的時間,則起到能夠縮短判斷是否為h =e · s的處理所花費的時間的效果。本實施方式中的整數(shù)分割部110使用上述處理裝置(CPU911),算出滿足如下條件 的整數(shù)ei和整數(shù)e2 上述整數(shù)ei的絕對值小于上述階數(shù)P的平方根,并且上述整數(shù)e2小于 上述階數(shù)P的平方根。根據(jù)本實施方式中的驗證裝置100,由整數(shù)分割部110算出滿足整數(shù)ei的絕對值 小于階數(shù)P的平方根并且整數(shù)e2小于階數(shù)P的平方根這一條件的整數(shù)ei和整數(shù)e2,因此起 到能夠縮短在驗證值算出部130中算出元a的處理所花費的時間的效果。本實施方式中的驗證裝置100還具有存儲數(shù)據(jù)的存儲裝置(RAM914、磁盤裝置920
      等 ο上述整數(shù)分割部110具有第一剩余存儲部114、第二剩余存儲部115、初始值設(shè)定 部113、適合性判斷部116、第三剩余算出部117以及分割整數(shù)輸出部129。上述第一剩余存儲部114使用上述存儲裝置(RAM914)存儲整數(shù)V1。上述第二剩余存儲部115使用上述存儲裝置(RAM914)存儲整數(shù)v2。上述初始值設(shè)定部113使用上述處理裝置(CPU911),將上述階數(shù)ρ作為上述整數(shù) V1而存儲到上述第一剩余存儲部114中,將上述整數(shù)e作為上述整數(shù)V2而存儲到上述第二 剩余存儲部115中。上述適合性判斷部116使用上述處理裝置(CPU911),在上述第二剩余存儲部115 所存儲的整數(shù)V2小于上述階數(shù)P的平方根的情況下,判斷為滿足輸出條件。上述第三剩余算出部117使用上述處理裝置(CPU911),在上述適合性判斷部116 沒有判斷為滿足輸出條件的情況下,根據(jù)上述第一剩余存儲部114所存儲的整數(shù)V1和上述 第二剩余存儲部115所存儲的整數(shù)V2,算出將上述整數(shù)V1除以上述整數(shù)V2而得到的余數(shù)并 設(shè)為整數(shù)v3,將上述第二剩余存儲部115所存儲的整數(shù)V2作為上述整數(shù)V1而存儲到上述 第一剩余存儲部114中,將所算出的整數(shù)V3作為上述整數(shù)V2而存儲到上述第二剩余存儲部 115 中。上述分割整數(shù)輸出部129使用上述處理裝置(CPU911),在上述適合性判斷部116 判斷為滿足輸出條件的情況下,輸出上述第二剩余存儲部115所存儲的整數(shù)V2作為上述整
      數(shù)e2。根據(jù)本實施方式中的驗證裝置100,起到能夠在短時間內(nèi)算出滿足力-e ε e2(mod P) >|ei|<VP、()<&<▲這一條件的整數(shù)e2的效果。本實施方式中的整數(shù)分割部110還具有第一系數(shù)存儲部124、第二系數(shù)存儲部 125、商算出部126以及第三系數(shù)算出部127。上述第一系數(shù)存儲部124使用上述存儲裝置(RAM914)存儲整數(shù)、。上述第二系數(shù)存儲部125使用上述存儲裝置(RAM914)存儲整數(shù)t2。上述初始值設(shè)定部113進一步使用上述處理裝置(CPU911),作為上述整數(shù)、將0 存儲到上述第一系數(shù)存儲部124中,作為上述整數(shù)t2將1存儲到上述第二系數(shù)存儲部125
      32中。上述商算出部126使用上述處理裝置(CPU911),根據(jù)上述第一剩余存儲部114所 存儲的整數(shù)V1和上述第二剩余存儲部115所存儲的整數(shù)V2,算出不超過將上述整數(shù)V1除以 上述整數(shù)V2而得到的商的最大整數(shù)并設(shè)為整數(shù)q。上述第三系數(shù)算出部127使用上述處理裝置(CPU911),在上述適合性判斷部116 沒有判斷為滿足輸出條件的情況下,根據(jù)上述第一系數(shù)存儲部124所存儲的整數(shù)^、上述第 二系數(shù)存儲部125所存儲的整數(shù)t2以及上述商算出部126所算出的整數(shù)q,算出從上述整 數(shù)、減去上述整數(shù)t2與上述整數(shù)q之積而得到的整數(shù)并設(shè)為整數(shù)t3,將上述第二系數(shù)存儲 部125所存儲的整數(shù)t2作為上述整數(shù)^而存儲到上述第一系數(shù)存儲部124中,將所算出的 整數(shù)t3作為上述整數(shù)t2而存儲到上述第二系數(shù)存儲部125中。上述分割整數(shù)輸出部129進一步使用上述處理裝置(CPU911),在上述適合性判斷 部116判斷為滿足輸出條件的情況下,輸出上述第二系數(shù)存儲部125所存儲的整數(shù)t2作為 上述整數(shù)ei。根據(jù)本實施方式中的驗證裝置100,起到能夠在短時間內(nèi)算出滿足ei-e ε e2(mod P) >|ei|<VP >()<e2<A^這一條件的整數(shù)ei的效果。本實施方式中的驗證值算出部130使用上述處理裝置(CPU911),算出Σ (η1 · Pi) (其中,η是大于等于2的規(guī)定的整數(shù)。i是大于等于0且小于等于k的整數(shù)。k是以η進 制表示上述整數(shù)ei的絕對值和上述整數(shù)e2時的位數(shù)的最大值。Pi是上述有限群G的元,Pi =eljSgn · · h-e2ji .s。ei,sgn是1或-1。及e2a是大于等于0且小于等于n_l的整 數(shù),ei = ei,sgn· Σ (η1 · eiji),e2 =Σ (n^eu)。),并設(shè)為上述有限群 G 的元 a。根據(jù)本實施方式中的驗證裝置100,驗證值算出部130算出元a所花費的時間與以 η進制表示整數(shù)ei的絕對值和整數(shù)e2時的位數(shù)k成比例,因此起到能夠縮短算出元a所花 費的時間的效果。本實施方式中的密文解密裝置200具有存儲數(shù)據(jù)的存儲裝置(RAM914、磁盤裝置 920等)、處理數(shù)據(jù)的處理裝置(CPU911等)、密鑰存儲部210、密文輸入部220、密文驗證部 230、驗證裝置100以及解密文生成部260。上述密鑰存儲部210使用上述存儲裝置,存儲用于解密密文的密鑰。上述密文輸入部220使用上述處理裝置輸入密文。上述密文驗證部230使用上述處理裝置,根據(jù)上述密鑰存儲部210所存儲的密鑰 和上述密文輸入部220所輸入的密文,算出輸入到上述驗證裝置100的整數(shù)e、上述有限群 G的元s以及上述有限群G的元h。上述驗證裝置100輸入上述密文驗證部230所算出的整數(shù)e、上述有限群G的元s 以及上述有限群G的元h,判斷驗證是否成功。上述解密文生成部260使用上述處理裝置,在上述驗證裝置100判斷為驗證成功 的情況下,利用上述密鑰存儲部210所存儲的密鑰對上述密文輸入部220所輸入的密文進 行解密來生成解密文。根據(jù)本實施方式中的密文解密裝置200,驗證所輸入的密文的匹配性,在驗證成功 的情況下生成解密文,因此能夠防止對非法者提供解讀密文的線索。另外,通過由驗證裝置
      33100判斷是否為h = e *s,來驗證密文的匹配性,因此起到能夠縮短驗證所花費的時間的效^ ο通過由計算機執(zhí)行使計算機作為驗證裝置100發(fā)揮功能的計算機程序來能夠?qū)?現(xiàn)本實施方式中的驗證裝置100。根據(jù)本實施方式中的計算機程序,在由驗證值算出部130根據(jù)整數(shù)分割部110所 算出的整數(shù)ei和整數(shù)e2算出的元a為有限群G的單位元的情況下,驗證判斷部150判斷為 驗證成功,因此起到能夠?qū)崿F(xiàn)如下驗證裝置100的效果在h = e · s的情況下能夠判斷為 驗證成功,如果在驗證值算出部130中算出元a的處理所花費的時間小于算出e 所花費 的時間,則能夠縮短判斷是否為h = e · s的處理所花費的時間。由本實施方式中的驗證裝置100驗證匹配性的驗證方法具有以下工序。上述處理裝置(CPU911)輸入有限群G的階數(shù)ρ和整數(shù)e,根據(jù)所輸入的階數(shù)ρ和 整數(shù)e算出滿足ei · e ε e2(mod ρ)的整數(shù)力和整數(shù)e2。上述處理裝置(CPU911)輸入上述有限群G的元s和上述有限群G的元h,根據(jù)所 輸入的元s及元h、所算出的整數(shù)ei和整數(shù)e2,算出上述有限群G的元a( = ei · h-e2 · s)。上述處理裝置(CPU911)根據(jù)所算出的元a,在上述元a為上述有限群G的單位元 的情況下,判斷為驗證成功。根據(jù)本實施方式中的驗證方法,在處理裝置(CPU911)根據(jù)所算出的整數(shù)力和整 數(shù)e2算出的元a為有限群G的單位元的情況下,判斷為驗證成功,因此起到如下效果在h =e · s的情況下能夠判斷為驗證成功,如果算出元a的處理所花費的時間小于算出e · s 所花費的時間,則能夠縮短判斷是否為h = e · s的處理所花費的時間。以上說明的密文解密裝置200是公開密鑰密碼解密裝置。密文解密裝置200具有 密文合法性驗證裝置(驗證裝置100),該密文合法性驗證裝置通過整數(shù)的剩余類所形成的 群等乘法群中的指數(shù)取冪或者(超)橢圓曲線上的點所形成的群等加法群中的標量倍算, 驗證將乘法群的元S相乘e次得到的元S6或?qū)⒓臃ㄈ旱脑猄相加e次得到的元e · S是否 與已知的元h —致,由此判斷密文是否正確。密文合法性驗證裝置(驗證裝置100)具有分割指數(shù)部(整數(shù)e)的裝置(整數(shù)分割部110);使用所分割的指數(shù)(整數(shù)ei和整數(shù)e2),計算進行乘法群中的二基底指數(shù)取冪、或 者(超)橢圓曲線上的點所形成的群等的加法群中的二基底標量倍算而得到的值(hel-Se2 或力·!!-^·。的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的整數(shù)分割部110是如下計算裝置輸入指數(shù)(整數(shù))e和在密碼中使用 的乘法群或加法群的群階數(shù)P,計算具有群階數(shù)P的比特長度的一半比特長度的兩個整數(shù) 一工、e2 (其中,G1 · e = e2 (mod ρ))。驗證裝置100驗證Se2 · h_el = 1 (乘法描述)或e2 · S^1 · h = 0 (加法描述)。以上說明的整數(shù)分割部110通過計算擴展歐幾里德互除法來分割指數(shù)部。以上說明的整數(shù)分割部110在兩個整數(shù)的重復(fù)除法中具有計算裝置(第三剩余算出部117),進行除法的整數(shù)V2和被除的整數(shù)V1分別是前一步驟的除法中的剩余V3和前一步驟的進行除法的整數(shù)V2 ;以及計算裝置(適合性判斷部116),判斷各步驟的除法結(jié)果的剩余V2大于等于某一固 定數(shù))、或者小于等于某一固定數(shù)(λ/F )β整數(shù)分割部110除了通過上述說明的過程以外,例如還可以通過以下過程算出整
      數(shù)β!禾口 e2。首先,整數(shù)分割部110使用CPU911,輸入正整數(shù)ρ、滿足1 < e < ρ的整數(shù)e、ρ的 平方根
      O接著,整數(shù)分割部110使用RAM914,將U1 — 1,V1 — p,U2 — 0,V2 — e作為初始值
      而進行存儲。接著,整數(shù)分割部110使用CPU911,檢查是否為。如果’則整數(shù)分割部110使用CPU911,計算q — V1A2(抹去零數(shù)(the fraction is omitted))、v3 一 V1 mod v2、u3 一 u「q ·ιι2,使用 RAM914存儲為 V1 一 v2、v2 一 v3、 U1 — u2、u2 — U30之后,返回到是否為V2<V^的檢查,如果V2>V^,則重復(fù)相同的計算。如果V2<V^,則整數(shù)分割部110使用CPU911,計算力一(V2-U2 · p) A1,并設(shè)為
      e2 一 V2 ο最后,整數(shù)分割部110使用CPU911輸出ei、e2。通過這種過程,也成為ei · e ε e2 (mod ρ),θι、e2的比特長度為ρ的比特長度的大
      約一半。(實施方式2)使用圖10 圖15說明實施方式2。圖10是表示本實施方式中的基于ID的公開密鑰密碼系統(tǒng)820Α的整體結(jié)構(gòu)的一 例的系統(tǒng)結(jié)構(gòu)圖。基于ID的公開密鑰密碼系統(tǒng)820Α是將用于識別密文解密裝置200Α的郵件地址 等識別數(shù)據(jù)用作密文解密裝置200Α的公開密鑰的密碼通信系統(tǒng)。由于不需要證明密文解 密裝置200Α與公開密鑰之間的對應(yīng)關(guān)系,因此不需要公開密鑰證書(certificate)、認證 中心(certificate authority)等。基于ID的公開密鑰密碼系統(tǒng)820A具有密碼參數(shù)設(shè)定裝置810A、密鑰生成裝置 300A、密文生成裝置400A以及密文解密裝置200A。密碼參數(shù)設(shè)定裝置810A確定在基于ID的公開密鑰密碼系統(tǒng)820A中利用的密碼 參數(shù)。密碼參數(shù)設(shè)定裝置810A所確定的密碼參數(shù)被公開于基于ID的公開密鑰密碼系統(tǒng) 820A的用戶。在由密碼參數(shù)設(shè)定裝置810A確定的密碼參數(shù)中例如有階數(shù)P、加法群G1、加 法群G1的元gl、加法群G2、加法群G2的元&、乘法群Gt、配對(pairing) e、散列函數(shù)H1、散列 函數(shù)H2、散列函數(shù)H3、散列函數(shù)H4等。階數(shù)ρ是素數(shù)。
      35生成元。加法群G2的階數(shù)是與加法群G1同樣的P。元&是加法群G2的生成元。乘法群Gt的階數(shù)是與加法群G1和加法群G2同樣的ρ。配對e是將加法群G1的元和加法群G2的元的組轉(zhuǎn)變到乘法群Gt的元(配對值) 的映射。配對e具有雙線性。S卩,關(guān)于所有的U、V、a、b,是e (a· u,b· ν) =e(u,v)ab (其 中,u是加法群&的元。ν是加法群62的元。a和b是整數(shù)。)。另外,加法群G1的元&與 加法群G2的元&的配對值e (gl, g2)不是乘法群Gt的單位元。散列函數(shù)H1是根據(jù)任意長度的比特串生成大于等于1且小于等于P-I的整數(shù)的 散列函數(shù)。散列函數(shù)H2是根據(jù)乘法群Gt的元生成規(guī)定長度的比特串的散列函數(shù)。散列函數(shù)H3是根據(jù)規(guī)定長度的比特串生成大于等于1且小于等于ρ-Ι的整數(shù)的 散列函數(shù)。散列函數(shù)H4是根據(jù)規(guī)定長度的比特串生成規(guī)定長度的比特串的散列函數(shù)。此外,在這些密碼參數(shù)預(yù)先被確定的情況下,密碼參數(shù)設(shè)定裝置810A也可以不確 定這些密碼參數(shù)。另外,密碼參數(shù)設(shè)定裝置810A生成秘密隨機數(shù)s和根據(jù)秘密隨機數(shù)s生成的公 開元R。秘密參數(shù)設(shè)定裝置810A所生成的秘密隨機數(shù)s以保密狀態(tài)通知給密鑰生成裝置 300A。另外,密碼參數(shù)設(shè)定裝置810A所生成的公開元R被公開于基于ID的公開密鑰密碼 系統(tǒng)820A的用戶。公開元R中包含有與秘密隨機數(shù)s有關(guān)的信息,但是事實上無法根據(jù)公 開元R求出秘密隨機數(shù)S。因此,基于ID的公開密鑰密碼系統(tǒng)820A的用戶通過使用公開元 R進行運算,能夠利用秘密信息而不知道秘密信息。密鑰生成裝置300A以保密狀態(tài)保持從密碼參數(shù)設(shè)定裝置810A通知的秘密隨機數(shù) s。密鑰生成裝置300A根據(jù)被公開的密碼參數(shù)、被公開的密文解密裝置200A的識別數(shù)據(jù)ID 以及所保持的秘密隨機數(shù)s,生成密文解密裝置200A的秘密密鑰Did。密鑰生成裝置300A 所生成的秘密密鑰Did以保密狀態(tài)被通知給密文解密裝置200A。密文生成裝置400A根據(jù)被公開的密碼參數(shù)、公開元R、密文解密裝置200A的識別 數(shù)據(jù)ID,生成密文c和共用密鑰K。密文生成裝置400A利用所生成的共用密鑰K對消息M 進行加密,來生成加密消息CM。密文生成裝置400A對密文解密裝置200A發(fā)送所生成的密 文c和加密消息CM。密文解密裝置200A以保密狀態(tài)保持密鑰生成裝置300A所生成的秘密密鑰Did。密 文解密裝置200A接收密文生成裝置400A所發(fā)送的密文c和加密消息CM。密文解密裝置 200A根據(jù)被公開的密碼參數(shù),利用所保持的秘密密鑰Did對所接收到的密文c進行解密,生 成與密文生成裝置400A相同的共用密鑰K。密文解密裝置200A利用所生成的共用密鑰K 對加密消息CM進行解密,來生成與消息M相同的消息M,。此外,密碼參數(shù)設(shè)定裝置810A、密鑰生成裝置300A、密文生成裝置400A、密文解密 裝置200A的外觀、硬件資源與在實施方式1中說明的密文解密裝置200的外觀、硬件資源 相同。圖11是表示本實施方式中的密碼參數(shù)設(shè)定裝置810A的一部分功能模塊的結(jié)構(gòu)的 一例的模塊結(jié)構(gòu)圖。
      36
      密碼參數(shù)設(shè)定裝置8IOA具有密碼參數(shù)存儲部819A、公開元生成部811A、秘密隨機 數(shù)輸出部814A、公開元輸出部815A。密碼參數(shù)存儲部819A使用磁盤裝置920存儲表示所公開的密碼參數(shù)的數(shù)據(jù)。公開元生成部811A根據(jù)密碼參數(shù)存儲部819A所存儲的密碼參數(shù),生成秘密隨機 數(shù)s和公開元R。公開元生成部811A具有秘密隨機數(shù)生成部812A、公開元算出部813A。秘密隨機數(shù)生成部812A使用CPU911,輸入表示密碼參數(shù)存儲部819A所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部812A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P,隨機地生成大于等于1且小于等于P-I的整數(shù)并設(shè)為秘密隨機數(shù)S。秘密隨機數(shù) 生成部812A使用RAM914,存儲表示所生成的秘密隨機數(shù)s的數(shù)據(jù)。公開元算出部813A使用CPU911,輸入表示密碼參數(shù)存儲部819A所存儲的密碼參 數(shù)中的加法群G1和元gl的數(shù)據(jù)、秘密隨機數(shù)生成部812A所存儲的表示秘密隨機數(shù)s的數(shù) 據(jù)。公開元算出部813A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G1、元gl以及秘密 隨機數(shù)s,通過加法群G1中的運算,算出將元gl相加s次得到的元并設(shè)為公開元R。公開元 算出部813A使用RAM914,存儲表示所算出的公開元R的數(shù)據(jù)。秘密隨機數(shù)輸出部814A使用CPU911,輸入秘密隨機數(shù)生成部812A所存儲的表示 秘密隨機數(shù)s的數(shù)據(jù)。秘密隨機數(shù)輸出部814A使用CPU911,輸出表示所輸入的秘密隨機數(shù) s的數(shù)據(jù)。秘密隨機數(shù)輸出部814A所輸出的秘密隨機數(shù)s以保密狀態(tài)被通知給密鑰生成裝 置 300A。公開元輸出部815A使用CPU911,輸入公開元算出部813A所存儲的表示公開元R 的數(shù)據(jù)。公開元輸出部815A使用CPU911,輸出表示所輸入的公開元R的數(shù)據(jù)。公開元輸出部815A所輸出的公開元R被公開于基于ID的公開密鑰密碼系統(tǒng)820A 的用戶。圖12是表示本實施方式中的密鑰生成裝置300A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密鑰生成裝置300A具有密碼參數(shù)存儲部390A、秘密隨機數(shù)存儲部330A、識別輸入 部340A、秘密密鑰生成部350A、秘密密鑰輸出部360A。密碼參數(shù)存儲部390A使用磁盤裝置920,預(yù)先存儲表示所公開的密碼參數(shù)的數(shù) 據(jù)。秘密隨機數(shù)存儲部330A使用具有防篡改性的存儲裝置,以保密狀態(tài)存儲表示從 密碼參數(shù)設(shè)定裝置810A通知的秘密隨機數(shù)s的數(shù)據(jù)。識別輸入部340A使用CPU911,關(guān)于應(yīng)生成秘密密鑰的密文解密裝置200A,輸入作 為用于識別密文解密裝置200A的識別數(shù)據(jù)的任意長度的比特串ID。比特串ID例如是表示 作為密文解密裝置200A的郵件地址的字符串的數(shù)據(jù)。識別輸入部340A使用RAM914存儲 所輸入的比特串ID。秘密密鑰生成部350A根據(jù)密碼參數(shù)存儲部390A所存儲的密碼參數(shù)、秘密隨機數(shù) 存儲部330A所存儲的秘密隨機數(shù)s和識別輸入部340A所輸入的比特串ID,生成秘密密鑰
      DID ο
      秘密密鑰生成部350A具有散列值算出部351A、整數(shù)加法部352A、倒數(shù)算出部 353A、秘密密鑰算出部354A。散列值算出部35IA使用CPU911,輸入表示密碼參數(shù)存儲部390A所存儲的密碼參 數(shù)中的散列函數(shù)H1的數(shù)據(jù)和識別輸入部340A所存儲的比特串ID。散列值算出部351A使 用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)&和所輸入的比特串ID,算出利用散列函 數(shù)氏將比特串ID散列得到的散列值H1 (ID)。此外,散列值H1(ID)是大于等于1且小于等 于P-I的整數(shù)。散列值算出部35認使用肌11914,存儲表示所算出的散列值!11(10)的數(shù)據(jù)。整數(shù)加法部352A使用CPU911,輸入表示密碼參數(shù)存儲部390A所存儲的密碼參數(shù) 中的階數(shù)P的數(shù)據(jù)、表示秘密隨機數(shù)存儲部330A所存儲的秘密隨機數(shù)S的數(shù)據(jù)以及表示散 列值算出部351A所存儲的散列值H1 (ID)的數(shù)據(jù)。整數(shù)加法部352A使用CPU911,根據(jù)所輸 入的數(shù)據(jù)所表示的階數(shù)P、秘密隨機數(shù)s以及散列值H1 (ID),算出作為將秘密隨機數(shù)s與散 列值H1(ID)之和除以階數(shù)ρ而得到的余數(shù)的整數(shù)s+HJID)。整數(shù)加法部352A使用RAM914, 存儲表示所算出的整數(shù)(ID)的數(shù)據(jù)。倒數(shù)算出部353A使用CPU911,輸入表示密碼參數(shù)存儲部390A所存儲的密碼參 數(shù)中的階數(shù)P的數(shù)據(jù)以及表示整數(shù)加法部352A所存儲的整數(shù)s+Hi (ID)的數(shù)據(jù)。倒數(shù)算 出部353A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)ρ和整數(shù)s+HJID),算出整數(shù)1/ [s+HJID)],將該整數(shù)l/ts+H^ID)]與整數(shù)s+H^ID)之積除以階數(shù)ρ而得到的余數(shù)為1。 倒數(shù)算出部353Α使用RAM914,存儲表示所算出的整數(shù)IzT^H1 (ID)]的數(shù)據(jù)。秘密密鑰算出部354A使用CPU911,輸入表示密碼參數(shù)存儲部390A所存儲的密碼 參數(shù)中的加法群G2和元g2的數(shù)據(jù)以及表示倒數(shù)算出部353A所算出的整數(shù)1/ [s+Hi (ID)]的 數(shù)據(jù)。秘密密鑰算出部354A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G2、元g2以及 整數(shù)1/M1 (ID)],通過加法群G2中的運算,算出將元g2相加1/M1 (ID)]次得到的元并 設(shè)為秘密密鑰Did。秘密密鑰算出部354A使用RAM914存儲表示所算出的秘密密鑰Did的數(shù) 據(jù)。秘密密鑰輸出部360A使用CPU911,輸入表示秘密密鑰算出部354A所存儲的秘密 密鑰Did的數(shù)據(jù)。秘密密鑰輸出部360A使用CPU911輸出表示所輸入的秘密密鑰Did的數(shù) 據(jù)。秘密密鑰輸出部360A所輸出的秘密密鑰Did以保密狀態(tài)被通知給密文解密裝置 200A。圖13是表示本實施方式中的密文生成裝置400A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文生成裝置400A具有密碼參數(shù)存儲部490A、識別存儲部410A、共用密鑰生成部 420A、共用密鑰存儲部430A、消息輸入部440A、消息加密部450A、加密消息輸出部460A、密 文輸出部470A。密碼參數(shù)存儲部490A使用磁盤裝置920,預(yù)先存儲表示所公開的密碼參數(shù)(包含 公開元R)的數(shù)據(jù)。識別存儲部410A使用磁盤裝置920,存儲作為密文的發(fā)送對象的密文解密裝置 200A的識別數(shù)據(jù)、即比特串ID。共用密鑰生成部420A根據(jù)密碼參數(shù)存儲部490A所存儲的密碼參數(shù)和識別存儲部410A所存儲的比特串ID,生成共用密鑰K和用于向密文解密裝置200A通知共用密鑰K的 密文。共用密鑰生成部420A具有秘密比特串生成部421A、秘密整數(shù)算出部422A、識別元 算出部423A、密碼元算出部424A、秘密配對值算出部425A、密碼比特串算出部426A、共用密 鑰算出部427A。秘密比特串生成部42IA使用CPU911隨機地生成規(guī)定長度的比特串m。秘密比特 串生成部42IA使用RAM914存儲所生成的比特串m。秘密整數(shù)算出部422A使用CPU911,輸入表示密碼參數(shù)存儲部490A所存儲的密碼 參數(shù)中的散列函數(shù)H3的數(shù)據(jù)和秘密比特串生成部421A所存儲的比特串m。秘密整數(shù)算出 部422A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H3和所輸入的比特串m,算出利 用散列函數(shù)H3將比特串m散列得到的散列值r。散列值r是大于等于1且小于等于p_l的 整數(shù)。秘密整數(shù)算出部422A使用RAM914存儲表示所算出的散列值r的數(shù)據(jù)。識別元算出部423A使用CPU911,輸入表示密碼參數(shù)存儲部490A所存儲的密碼參 數(shù)中的散列函數(shù)H1、加法群G1、元gl以及公開元R的數(shù)據(jù)、識別存儲部410A所存儲的比特 串ID。識別元算出部423A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)&和所輸入 的比特串ID,算出利用散列函數(shù)H1將比特串ID散列得到的散列值H1 (ID)。散列值H1(ID) 是大于等于1且小于等于P-I的整數(shù)。識別元算出部423A使用CPU911,根據(jù)所輸入的數(shù) 據(jù)所表示的加法群G1和元gl以及所算出的散列值H1(ID),通過加法群G1中的運算,算出將 元&相加H1(ID)次得到的元H1(ID) .gl。識別元算出部423A使用CPU911,根據(jù)所輸入的 數(shù)據(jù)所表示的加法群G1、公開元R以及所算出的元&(10) · gl,通過加法群G1中的運算,算 出將公開元R與元H1 (ID) · &相加得到的元并設(shè)為元Q。識別元算出部423A使用RAM914 存儲表示所算出的元Q的數(shù)據(jù)。由于R = s · gl,因此識別元算出部423A所算出的元Q是[式22]Q = IHH1(ID)I1= (s+氏(ID)) · gl密碼元算出部424A使用CPU911,輸入表示密碼參數(shù)存儲部490A所存儲的密碼參 數(shù)中的加法群G1的數(shù)據(jù)、表示秘密整數(shù)算出部422A所存儲的散列值r的數(shù)據(jù)以及表示識 別元算出部423A所存儲的元Q的數(shù)據(jù)。密碼元算出部424A使用CPU911,根據(jù)所輸入的數(shù) 據(jù)所表示的加法群G1、散列值r以及元Q,通過加法群G1中的運算,算出將元Q相加r次得 到的元并設(shè)為元U。密碼元算出部424A使用RAM914存儲表示所算出的元U的數(shù)據(jù)。秘密配對值算出部425A使用CPU911,輸入表示密碼參數(shù)存儲部490A所存儲的密 碼參數(shù)中的元gl、元&、配對e以及乘法群Gt的數(shù)據(jù)、以及秘密整數(shù)算出部422A所存儲的 表示散列值r的數(shù)據(jù)。秘密配對值算出部425A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元 gl、元&以及配對e,算出元81、元&以及配對值e(gl,&)。配對值e(gl,g2)是乘法群Gt的 元。此外,秘密配對值算出部425A也可以預(yù)先算出配對值e(gl,g2),使用磁盤裝置920存 儲表示所算出的配對值e(gl,g2)的數(shù)據(jù)。秘密配對值算出部425A使用CPU911,根據(jù)所輸 入的數(shù)據(jù)所表示的散列值r和所算出的配對值e (gl,,通過乘法群Gt中的運算,算出將配 對值e (gl, g2)相乘r次得到的元并設(shè)為元α。秘密配對值算出部425Α使用RAM914存儲
      39表示所算出的元α的數(shù)據(jù)。密碼比特串算出部426Α使用CPU911,輸入表示密碼參數(shù)存儲部490Α所存儲的密 碼參數(shù)中的散列函數(shù)H2的數(shù)據(jù)、秘密比特串生成部421Α所存儲的比特串m以及秘密配對 值算出部425A所存儲的表示元α的數(shù)據(jù)。密碼比特串算出部426Α使用CPU911,根據(jù)所 輸入的數(shù)據(jù)所表示的散列函數(shù)H2和元α,算出利用散列函數(shù)H2將元α散列得到的散列值 H2(Q)0散列值H2(Ci)是規(guī)定長度的比特串。密碼比特串算出部426Α使用CPU911,根據(jù) 所輸入的比特串m以及所算出的散列值H2 ( α ),取得比特串m與散列值H2 ( α )之間的每個 比特的邏輯異或并設(shè)為比特串V。密碼比特串算出部426Α使用RAM914存儲所算出的比特 串V。共用密鑰算出部427Α使用CPU911,輸入表示密碼參數(shù)存儲部490Α所存儲的密碼 參數(shù)中的散列函數(shù)H4的數(shù)據(jù)以及秘密比特串生成部421Α所存儲的比特串m。共用密鑰算 出部427A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H4和所輸入的比特串m,算出 利用散列函數(shù)H4將比特串m散列得到的散列值并設(shè)為共用密鑰K。共用密鑰K是規(guī)定長度 的比特串。共用密鑰算出部427A使用RAM914存儲所算出的共用密鑰K。共用密鑰存儲部430A使用CPU911,輸入共用密鑰算出部427A所存儲的共用密鑰 K。共用密鑰存儲部430A使用RAM914存儲所輸入的共用密鑰K。密文輸出部470A使用CPU911,輸入密碼元算出部424A所存儲的表示元U的數(shù)據(jù) 以及密碼比特串算出部426A所存儲的比特串V。密文輸出部470A使用CPU911,生成包含 所輸入的表示元U的數(shù)據(jù)和比特串V的數(shù)據(jù)并作為密文c而輸出。消息輸入部440A使用CPU911,輸入要對密文解密裝置200A發(fā)送的消息M。消息 輸入部440A使用磁盤裝置920存儲所輸入的消息M。消息加密部450A使用CPU911,輸入共用密鑰存儲部430A所存儲的共用密鑰K以 及消息輸入部440A所存儲的消息M。消息加密部450A使用CPU911,根據(jù)所輸入的消息M 和共用密鑰K,利用共用密鑰K對消息M進行加密并設(shè)為加密消息CM。消息加密部450A使 用磁盤裝置920存儲所生成的加密消息CM。加密消息輸出部460A使用CPU911,輸入消息加密部450A所存儲的加密消息CM。 加密消息輸出部460A使用CPU911輸出所輸入的加密消息CM。密文輸出部470A所輸出的密文c和加密消息輸出部460A所輸出的加密消息CM 被發(fā)送到密文解密裝置200A。圖14是表示本實施方式中的密文解密裝置200A的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文解密裝置200A具有密碼參數(shù)存儲部290A、識別存儲部241A、識別元算出部 242A、識別元存儲部243A、密鑰存儲部210A、密文輸入部220A、密文驗證部230A、驗證裝置 100A、解密文生成部260A、共用密鑰存儲部270A、加密消息輸入部281A、消息解密部282A、 解密消息輸出部283A。密碼參數(shù)存儲部290A使用磁盤裝置920,預(yù)先存儲表示所公開的密碼參數(shù)(包含 公開元R)的數(shù)據(jù)。識別存儲部241A使用磁盤裝置920存儲用于識別密文解密裝置200A自身的比特 串ID。
      識別元算出部242A使用CPU911,輸入表示密碼參數(shù)存儲部290A所存儲的密碼參 數(shù)中的散列函數(shù)&、加法群&、元gl以及公開元R的數(shù)據(jù)、識別存儲部241A所存儲的比特串 ID。識別元算出部242A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)&、所輸入的比 特串ID,算出利用散列函數(shù)氏將比特串ID散列得到的散列值H1 (ID)。散列值H1(ID)是大 于等于1且小于等于P-I的整數(shù)。識別元算出部242A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表 示的加法群G1、元gl以及所算出的散列值H1(ID),通過加法群G1中的運算,算出將元^相 WH1(ID)次得到的元H1 (ID) *gl。識別元算出部242A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所 表示的加法群G1、公開元R以及所算出的元氏(10) · gl,通過加法群G1中的運算,算出將公 開元R與元H1 (ID) 加得到的元并設(shè)為元Q。識別元算出部242A使用RAM914存儲表 示所算出的元Q的數(shù)據(jù)。識別元存儲部243A使用CPU911,輸入識別元算出部242A所存儲的表示元Q的數(shù) 據(jù)。識別元存儲部243A使用磁盤裝置920存儲表示所輸入的元Q的數(shù)據(jù)。對于密文解密裝置200A來說,用于識別自身的比特串ID是固定的,因此元Q的值 也是固定的。因而,密文解密裝置200A不需要在每次輸入密文c時都重新計算元Q,如果在 輸入密文c之前由識別元算出部242A算出元Q并由識別元存儲部243A存儲,則能夠減少 輸入了密文c時的計算量。密鑰存儲部210A使用具有防篡改性的存儲裝置,以保密狀態(tài)存儲預(yù)先由密鑰生 成裝置300A生成的表示秘密密鑰Did的數(shù)據(jù)。密文輸入部220A使用CPU911,輸入從密文生成裝置400A接收到的密文C。密文 輸入部220A使用CPU911,從所輸入的密文c獲取表示元U和比特串V的數(shù)據(jù)。密文輸入部 220A使用RAM914存儲表示所獲取的元U和比特串V的數(shù)據(jù)。密文驗證部230A根據(jù)密碼參數(shù)存儲部290A所存儲的密碼參數(shù)、密鑰存儲部210 所存儲的秘密密鑰Did、密文輸入部220A所輸入的密文c所表示的元U、比特串V,生成輸入 到驗證裝置100A的數(shù)據(jù)。密文驗證部230A具有配對值算出部231A、比特串算出部232A以及整數(shù)算出部 233A。配對值算出部23IA使用CPU911,輸入表示密碼參數(shù)存儲部290A所存儲的密碼參 數(shù)中的配對e的數(shù)據(jù)、密鑰存儲部210A所存儲的表示秘密密鑰Did的數(shù)據(jù)以及密文輸入部 220所存儲的表示元U的數(shù)據(jù)。配對值算出部23IA使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的配對e、元U以及秘密密鑰Did,利用配對e算出元U與秘密密鑰Did的配對值并設(shè)為配對 值α。配對值α是乘法群Gt的元。配對值算出部231Α使用RAM914存儲表示所算出的配 對值α的數(shù)據(jù)。利用配對e的雙線性,配對值算出部23IA所算出的配對值α為[式 2幻 S卩,由配對值算出部231A算出的配對值α與密文生成裝置400Α的秘密配對值算出部425A所算出的乘法群&的元α相等。比特串算出部232Α使用CPU911,輸入表示密碼參數(shù)存儲部290Α所存儲的密碼參 數(shù)中的散列函數(shù)吐的數(shù)據(jù)、密文輸入部220所存儲的比特串V以及配對值算出部231Α所存 儲的表示配對值α的數(shù)據(jù)。比特串算出部232Α使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的 散列函數(shù)H2和配對值α,算出利用散列函數(shù)H2將配對值α散列得到的散列值H2 ( α )。散 列值H2(Ci)是規(guī)定長度的比特串。比特串算出部232Α使用CPU911,根據(jù)所輸入的比特串 V和所算出的散列值H2 ( α ),取得比特串V與散列值H2 ( α )之間的每個比特的邏輯異或并 設(shè)為比特串m。比特串算出部232A使用RAM914存儲所算出的比特串m。配對值算出部231A所算出的配對值α與密文生成裝置400Α的秘密配對值算出 部425Α所算出的乘法群&的元α相等,因此由比特串算出部232Α算出的比特串m與密 文生成裝置400A的秘密比特串生成部421A所生成的比特串m相等。整數(shù)算出部233A使用CPU911,輸入表示密碼參數(shù)存儲部290A所存儲的密碼參數(shù) 中的散列函數(shù)H3的數(shù)據(jù)以及比特串算出部232A所存儲的比特串m。整數(shù)算出部233A使用 CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)氏和所輸入的比特串m,算出利用散列函數(shù)H3 將比特串m散列得到的散列值并設(shè)為散列值r。散列值r是大于等于1且小于等于p_l的 整數(shù)。整數(shù)算出部233A使用RAM914存儲表示所算出的散列值r的數(shù)據(jù)。比特串算出部232A所算出的比特串m與密文生成裝置400A的秘密比特串生成部 421A所生成的比特串m相等,因此整數(shù)算出部233A所算出的散列值r與密文生成裝置400A 的秘密整數(shù)算出部422A所算出的散列值r相等。因而,如果密文輸入部220A所輸入的密文c是合法密文,則U = r · Q成立。驗證裝置100A判斷是否為U = r*Q,在是U = r*Q的情況下,判斷為驗證成功。驗證裝置100A是與實施方式1中說明的驗證裝置100相同的裝置。驗證裝置100A使用CPU911,輸入表示密碼參數(shù)存儲部290A所存儲的密碼參數(shù)中 的階數(shù)ρ的數(shù)據(jù)作為表示在實施方式ι中說明的階數(shù)P的數(shù)據(jù)。驗證裝置100A使用CPU911,輸入整數(shù)算出部233A所存儲的表示散列值r的數(shù)據(jù) 作為表示在實施方式1中說明的整數(shù)e的數(shù)據(jù)。驗證裝置100A使用CPU911,輸入密文輸入部220所存儲的表示元U的數(shù)據(jù)作為表 示在實施方式1中說明的元h的數(shù)據(jù)。驗證裝置100A使用CPU911,輸入識別元存儲部243A所存儲的表示元Q的數(shù)據(jù)作 為表示在實施方式1中說明的元s的數(shù)據(jù)。驗證裝置100A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)ρ和散列值r,算出
      滿足ei TEe2Onod )、>1|<^、()<^2<^/^的整數(shù)61和整數(shù)%。驗證裝置100A使用
      CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元U、元Q以及所算出的整數(shù)ei和整數(shù)e2,通過加法群 G1中的運算來算出加法群G1的元a = ei · U-e2 · Q0驗證裝置100A使用CPU911,根據(jù)所算 出的元a判斷元a是否為加法群G1的單位元。驗證裝置100A使用CPU911,在元a為加法 群&的單位元的情況下,判斷為“驗證成功”,在元a不是加法群G1的單位元的情況下,判斷 為“驗證失敗”。驗證裝置100A使用CPU911輸出表示驗證結(jié)果的數(shù)據(jù)。
      42
      解密文生成部260A使用CPU911,輸入表示驗證裝置100A所輸出的驗證結(jié)果的數(shù) 據(jù)。在所輸入的數(shù)據(jù)所表示的驗證結(jié)果為“驗證成功”的情況下,解密文生成部260A使用 CPU911生成共用密鑰K。解密文生成部260A在驗證結(jié)果為“驗證失敗”的情況下,不生成 共用密鑰K。此外,在驗證結(jié)果為“驗證失敗”的情況下,解密文生成部260A也可以生成不 對非法者提供線索的隨機的共用密鑰K。在判斷結(jié)果為“驗證成功”的情況下,解密文生成部260A使用CPU911,輸入表示密 碼參數(shù)存儲部290A所存儲的密碼參數(shù)中的散列函數(shù)H4的數(shù)據(jù)以及比特串算出部232A所 存儲的比特串m。解密文生成部260A使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)扎 和所輸入的比特串m,算出利用散列函數(shù)H4將比特串m散列得到的散列值并設(shè)為共用密鑰 K。共用密鑰K是規(guī)定長度的比特串。解密文生成部260A使用RAM914存儲所算出的共用 密鑰K。如果密文輸入部220A所輸入的密文c是合法密文,則比特串算出部232A所算出 的比特串m與密文生成裝置400A的秘密比特串生成部421A所生成的比特串m相等,因此 解密文生成部260A所算出的共用密鑰K與密文生成裝置400A的共用密鑰算出部427A所 算出的共用密鑰K相等。因而,密文生成裝置400A與密文解密裝置200A能夠共有相同的共用密鑰K。共用密鑰存儲部270A使用CPU911,輸入解密文生成部260A所存儲的共用密鑰K。 共用密鑰存儲部270A使用RAM914存儲所輸入的共用密鑰K。加密消息輸入部28IA使用CPU911,輸入從密文生成裝置400A接收到的加密消息 CM。加密消息輸入部281A使用磁盤裝置920存儲所輸入的加密消息CM。消息解密部282A使用CPU911,輸入共用密鑰存儲部270A所存儲的共用密鑰K以 及加密消息輸入部281A所存儲的加密消息CM。消息解密部282A使用CPU911,利用所輸入 的共用密鑰K對所輸入的加密消息CM進行解密來生成消息M’。消息解密部282A使用磁盤 裝置920存儲所生成的消息M,。密文生成裝置400A與密文解密裝置200A共有相同的共用密鑰K,因此由消息解密 部282A生成的消息M,與密文生成裝置400A的消息輸入部440A所輸入的消息M相同。解密消息輸出部283A使用CPU911,輸入消息解密部282A所存儲的消息M,。解密 消息輸出部283A使用CPU911輸出所輸入的消息M,。圖15是表示本實施方式中的密文解密裝置200A對密文c進行解密的密文解密處 理流程的一例的流程圖。在配對值算出工序S731A中,配對值算出部231A使用CPU911,根據(jù)密文輸入部 220A所輸入的元U和密鑰存儲部210A所存儲的秘密密鑰Did,利用配對e算出元U與秘密 密鑰Did之間的配對值并設(shè)為配對值α。在比特串算出工序S732A中,比特串算出部232Α使用CPU911,根據(jù)通過配對值算 出工序S731A由配對值算出部231Α算出的配對值α,算出利用散列函數(shù)H2將配對值α散 列得到的散列值吐…)。比特串算出部232Α使用CPU911,根據(jù)密文輸入部220Α所輸入的 比特串V和所算出的散列值H2 ( α ),取得比特串V與散列值H2 ( α )之間的每個比特的邏輯 異或并設(shè)為比特串m。在整數(shù)算出工序S733A中,整數(shù)算出部233A使用CPU911,根據(jù)通過比特串算出工序S732A由比特串算出部232A算出的比特串m,算出利用散列函數(shù)氏將比特串m散列得到 的散列值并設(shè)為散列值r。在密文驗證工序S734A中,驗證裝置100A使用CPU911,根據(jù)識別元存儲部243A 所存儲的元Q、密文輸入部220A所輸入的元U以及通過整數(shù)算出工序S733A由整數(shù)算出部 233A算出的散列值r,驗證是否為U = r · Q。在U = r · Q的情況下,進入解密文生成工序S735A。在U興r · Q的情況下,結(jié)束密文解密處理。在解密文生成工序S735A中,解密文生成部260A使用CPU911,根據(jù)通過比特串算 出工序S732A由比特串算出部232A算出的比特串m,算出利用散列函數(shù)扎將比特串m散列 得到的散列值并設(shè)為共用密鑰K。之后,結(jié)束密文解密處理,利用所算出的共用密鑰K對加密消息CM進行解密。為了不對想要非法解讀密碼的非法者提供解讀密碼的線索,密文解密裝置200A 需要驗證密文是否具有匹配性。本實施方式中的密文解密裝置200A,為了驗證密文的匹配性,由驗證裝置100A判 斷是否為U = r *Q。如在實施方式1中說明的那樣,驗證裝置100A能夠高速地驗證是否為U = r · Q。因而,密文解密裝置200A能夠高速地對密文進行解密。本實施方式中的密文解密裝置200A具有存儲數(shù)據(jù)的存儲裝置(RAM914、磁盤裝 置920等)、處理數(shù)據(jù)的處理裝置(CPU911)、密鑰存儲部210A、密文輸入部220A、密文驗證 部230A、驗證裝置100A以及解密文生成部260A。上述密鑰存儲部210使用上述存儲裝置存儲用于解密密文的密鑰(秘密密鑰Did)。上述密文輸入部220A使用上述處理裝置(CPU911),輸入密文C。上述密文驗證部230使用上述處理裝置(0 冊11),根據(jù)上述密鑰存儲部21(^所存 儲的密鑰(秘密密鑰Did)和上述密文輸入部220A所輸入的密文c,算出輸入到上述驗證裝 置100A的整數(shù)e(散列值r)、上述有限群G(加法群G1)的元s(元Q)以及上述有限群G(加 法群G1)的元h(元U)。上述驗證裝置100A輸入上述密文驗證部230A所算出的整數(shù)e (散列值r)、上述有 限群G (加法群G1)的元s(元Q)以及上述有限群G (加法群G1)的元h(元U),判斷是否驗 證成功。上述解密文生成部260A使用上述處理裝置(CPU911),在上述驗證裝置100A判斷 為驗證成功的情況下,利用上述密鑰存儲部210A所存儲的密鑰(秘密密鑰Did)對上述密文 輸入部220A所輸入的密文c進行解密來生成解密文(共用密鑰K)。根據(jù)本實施方式中的密文解密裝置200A,在驗證裝置100A驗證密文的匹配性來 判斷為驗證成功的情況下,解密文生成部260A生成解密文,因此能夠防止對非法者提供解 讀密碼的線索,該非法者是對密文解密裝置200A輸入非法密文來想要從解密結(jié)果得到用 于解讀密碼的線索的非法者。另外,能夠縮短驗證裝置100A驗證密文的匹配性的處理所花 費的時間,因此起到如下效果能夠縮短密文解密裝置200A解密密文的處理整體所花費的 時間。本實施方式中的密文解密裝置200A還具有密碼參數(shù)存儲部290A、識別存儲部
      44241A、識別元算出部242A以及識別元存儲部243A。上述密碼參數(shù)存儲部290A使用上述存儲裝置(磁盤裝置920),存儲上述有限群 G(加法群G1)的階數(shù)P、上述有限群G(加法群G1)的生成元&以及上述有限群G(加法群 G1)的元R。上述識別存儲部241A使用上述存儲裝置(磁盤裝置920),存儲用于識別上述密文 解密裝置200A的比特串ID。上述識別元算出部242A使用上述處理裝置,根據(jù)上述識別存儲部241A所存儲的 比特串ID,算出通過規(guī)定的散列函數(shù)H1將上述比特串ID散列得到的散列值并設(shè)為整數(shù)(散 列值)H1 (ID),根據(jù)上述密碼參數(shù)存儲部290A所存儲的生成元gl、上述密碼參數(shù)存儲部290A 所存儲的元R以及所算出的整數(shù)(散列值)H1 (ID),將上述生成元gl的整數(shù)(散列值)H1 (ID) 倍的元與上述元R相加來設(shè)為上述有限群G(加法群G1)的元Q( = IHH1 (ID) · gl)。上述識別元存儲部243A使用上述存儲裝置(磁盤裝置920)存儲上述識別元算出 部242A所算出的元Q。上述密鑰存儲部210A使用上述存儲裝置存儲有限群(加法群)G2的元Did。上述密文輸入部220A使用上述處理裝置(CPU911),輸入上述有限群G (加法群G1) 的元U和比特串V作為上述密文C。上述密文驗證部230A具有配對值算出部231A、比特串算出部232A以及整數(shù)算出 部 233A。上述配對值算出部23IA使用上述處理裝置(CPU911),根據(jù)上述密文輸入部220A 所輸入的元U和上述密鑰存儲部210A所存儲的元Did,利用規(guī)定的配對函數(shù)e算出上述元U 與上述元Did之間的配對值并設(shè)為配對值α ( = e(U,Dm))。上述比特串算出部232A使用上述處理裝置(CPU911),根據(jù)上述配對值算出部 231A所算出的配對值α,算出通過規(guī)定的散列函數(shù)H2將上述配對值α散列得到的散列值 并設(shè)為比特串(散列值)H2 ( α ),根據(jù)上述密文輸入部220Α所輸入的比特串V和所算出的 比特串(散列值)Η2(α),取得上述比特串V與上述比特串(散列值)H2(Ci)之間的邏輯異 或并設(shè)為比特串m( = V XOR H2 (α))。上述整數(shù)算出部233Α使用上述處理裝置(CPU911),根據(jù)上述比特串算出部232Α 所算出的比特串m,算出通過規(guī)定的散列函數(shù)H3將上述比特串m散列得到的散列值并設(shè)為 整數(shù)(散列值)r( = H3On))。上述驗證裝置100A輸入上述密碼參數(shù)存儲部290A所存儲的階數(shù)P、上述整數(shù)算 出部233A作為上述整數(shù)e算出的整數(shù)(散列值)r、上述識別元存儲部243A作為上述元s 存儲的元Q以及上述密文輸入部220A作為上述元h輸入的元U,判斷是否驗證成功。上述解密文生成部260A使用上述處理裝置(CPU911),在上述驗證裝置100A判斷 為驗證成功的情況下,根據(jù)上述比特串算出部232A所算出的比特串m,算出通過規(guī)定的散 列函數(shù)H4將上述比特串m散列得到的散列值并設(shè)為共用密鑰K ( = H4Oii)),將所算出的共 用密鑰K作為上述解密文而輸出。根據(jù)本實施方式中的密文解密裝置200A,驗證裝置100A在驗證是否為U = r · Q 來判斷為驗證成功的情況下,解密文生成部260A生成解密文,因此能夠防止對非法者提供 解讀密碼的線索。另外,能夠縮短驗證裝置100A驗證是否為U = r · Q的處理所花費的時
      45間,因此起到如下效果能夠縮短密文解密裝置200A解密密文的處理整體所花費的時間。本實施方式中的識別元算出部242A在上述密文輸入部220A輸入上述密文c之前 算出上述元Q。根據(jù)本實施方式中的密文解密裝置200A,在密文輸入部220A輸入密文c之前執(zhí)行 算出元Q的處理,因此起到如下效果能夠更進一步縮短從密文輸入部220A輸入密文c起 直到解密文生成部260A算出共用密鑰K為止所花費的時間。本實施方式中的密文解密裝置200A還具有共用密鑰存儲部270A、加密消息輸入 部281A以及消息解密部282A。上述共用密鑰存儲部270A使用上述存儲裝置(RAM914),存儲上述解密文生成部 260A所輸出的共用密鑰K。上述加密消息輸入部28IA使用上述處理裝置(CPU911)輸入加密消息CM。上述消息解密部282A使用上述處理裝置(CPU911),利用上述共用密鑰存儲部 270A所存儲的共用密鑰K對上述加密消息輸入部281A所輸入的加密消息CM進行解密。根據(jù)本實施方式中的密文解密裝置200A,消息解密部282A利用通過密文c與密文 生成裝置400A共有的共用密鑰K對加密消息CM進行解密,因此起到如下效果在加密消息 CM的生成·解密中能夠使用能夠高速地進行處理的共用密鑰密碼方式。本實施方式中的密碼系統(tǒng)(基于ID的公開密鑰密碼系統(tǒng)820A)具有驗證裝置 IOOA0根據(jù)本實施方式中的密碼系統(tǒng)(基于ID的公開密鑰密碼系統(tǒng)820A),驗證裝置 100A驗證密文的匹配性,因此能夠防止對非法者提供解讀密碼的線索。另外,能夠縮短驗證 裝置100A驗證密文的匹配性的處理所花費的時間,因此起到如下效果能夠縮短密碼通信 整體所花費的時間。以上說明的密文解密裝置200A(公開密鑰密碼解密裝置)是公開密鑰密碼系統(tǒng) (基于ID的公開密鑰密碼系統(tǒng)820A)內(nèi)的密鑰解封裝(decapsulation)裝置,具有密文合 法性驗證裝置(驗證裝置100A),該密文合法性驗證裝置通過整數(shù)的剩余類所形成的群等 乘法群中的指數(shù)取冪或者(超)橢圓曲線上的點所形成的群等加法群中的標量倍算,驗證 將乘法群的元s相乘e次得到的元S6或?qū)⒓臃ㄈ旱脑猻相加e次得到的元e · s是否與已 知的元h —致,由此判斷密文是否正確。密文合法性驗證裝置(驗證裝置100A)具有分割指數(shù)部(整數(shù)e)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值M1-Se2或 ei · h-e2 · s的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的密文解密裝置200A是基于ID的密碼解密裝置。密文解密裝置200A具有事先計算裝置(識別元算出部242A),事先計算公開參數(shù)(元gl和公開元R)和根 據(jù)接收者(密文解密裝置200A)的ID計算得到的值(元Q = IHH1 (ID) · gl);以及
      存儲裝置(識別元存儲部243A),存儲該事先計算值(元Q)。以上說明的密文解密裝置200A (基于ID的密碼解密裝置)具有事先計算裝置(識別元算出部242A),事先計算公開參數(shù)(元gl和公開元R)和根 據(jù)接收者(密文解密裝置200A)的ID計算得到的值(元Q);存儲裝置(識別元存儲部243A),存儲該事先計算值(元Q);以及驗證裝置100A,驗證對該事先計算值(元Q)進行乘法群中的取冪或者(超)橢圓 曲線上的點所形成的群等加法群中的標量倍算得到的值(Qlr或r · Q)。驗證裝置100A具有分割指數(shù)部(散列值r)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值儼· (T2或 ei · u-e2 · Q的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的密文解密裝置200A是基于SK(境-笠原)_ID的密碼解密裝置。密文解密裝置200A具有事先計算裝置(識別元算出部242A),事先計算根據(jù)作為公開參數(shù)(密碼參數(shù))的 乘法群或加法群的元1 、元&以及用于識別接收者(密文解密裝置200A)的比特串ID的散 列值h = H1 (ID)計算得到的元Q = R · glh或Q = R+h · gl ;存儲裝置(識別元存儲部243A),存儲該元Q ;以及密文合法性驗證裝置(驗證裝置100A),對作為隨機的比特串m的散列值的整數(shù)r 驗證Qlr或r · Q是否與已知的U —致,由此判斷密文是否正確。以上說明的密文解密裝置200A是基于SK-ID的密碼系統(tǒng)(基于ID的公開密鑰密 碼系統(tǒng)820A)內(nèi)的密鑰解封裝裝置(基于SK-ID的密碼密鑰解封裝裝置)。密文解密裝置200A具有事先計算裝置(識別元算出部242A),事先計算根據(jù)作為公開參數(shù)(密碼參數(shù))的 乘法群或加法群的元1 、元&以及用于識別接收者(密文解密裝置200A)的比特串ID的散 列值h = H1 (ID)計算得到的元Q = R · glh或Q = R+h · gl ;存儲裝置(識別元存儲部243A),存儲該元Q ;以及密文合法性驗證裝置(驗證裝置100A),對作為隨機的比特串m的散列值的整數(shù)r 驗證Qlr或r · Q是否與已知的U —致,由此判斷密文是否正確。以上說明的密文解密裝置200A (基于SK-ID的密碼解密裝置)具有事先計算裝置(識別元算出部242A),事先計算根據(jù)作為公開參數(shù)(密碼參數(shù))的 乘法群或加法群的元1 、元&以及用于識別接收者(密文解密裝置200A)的比特串ID的散 列值h = H1 (ID)計算得到的元Q = R · glh或Q = R+h · gl ;存儲裝置(識別元存儲部243A),存儲該元Q ;計算隨機的比特串m的散列值(整數(shù)r)的裝置(整數(shù)算出部233A);分割指數(shù)部(整數(shù)r)的裝置(整數(shù)分割部110);使用被分割的指數(shù)(整數(shù)ei和整數(shù)e2)進行乘法群中的二基底指數(shù)取冪或者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值Uel哨—或^ -U-e2 .Q 的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的密文解密裝置200A(基于SK-ID的密碼密鑰解封裝裝置)具有事先計算裝置(識別元算出部242A),事先計算根據(jù)作為公開參數(shù)(密碼參數(shù))的 乘法群或加法群的元1 、元&以及用于識別接收者(密文解密裝置200A)的比特串ID的散 列值h = H1 (ID)計算得到的元Q = R · glh或Q = R+h · gl ;存儲裝置(識別元存儲部243A),存儲該元Q ;計算作為隨機的比特串m的散列值的整數(shù)r的裝置(整數(shù)算出部233A);分割指數(shù)部(整數(shù)r)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2)進行乘法群中的二基底指數(shù)取冪或者 (超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值Uel · (T2或 ei · U-e2 · Q的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的基于ID的公開密鑰密碼系統(tǒng)820A是作為利用了(超)橢圓曲線上的 配對運算的基于ID的密碼的SK-IBKEM密碼系統(tǒng)。在基于ID的公開密鑰密碼系統(tǒng)820A中,使用階數(shù)ρ為素數(shù)的加法群G1、加法群 G2、乘法群Gt以及群G1內(nèi)的基點(生成元)gl、群G2內(nèi)的基點g2、配對e。首先,密碼參數(shù)設(shè)定裝置810A (密碼參數(shù)生成裝置)使用CPU911,隨機地選擇大 于等于1且小于等于P-I的整數(shù)S。接著,密碼參數(shù)設(shè)定裝置810A使用CPU911計算群G1 的元R = s · gl。密碼參數(shù)設(shè)定裝置810A使用CPU911,輸出密鑰生成裝置300A (密鑰生成 中心。PKG:Private Key Generator)用的秘密密鑰(秘密隨機數(shù))s和PKG用的公開密鑰 (公開元)R。密鑰生成裝置300A(秘密密鑰導(dǎo)出裝置)使用CPU911,輸入用于識別密文解密裝 置200A的比特串ID。首先,密鑰生成裝置300A使用CPU911計算散列值h = Hl (ID)。接 著,密鑰生成裝置300A使用CPU911計算整數(shù)e= l/(s+h)mod p,計算并輸出作為ID用的 秘密密鑰的群G2的元dID = e · &。密文生成裝置400A(加密裝置)首先使用CPU911,生成隨機的比特串m。接著,密 文生成裝置400A使用CPU911,計算散列值r = H3 (m)、散列值h = H1 (ID),計算群G1的元Q =R+h · gl。密文生成裝置400A使用CPU911計算群G1的元U = r · Q,計算作為比特串m 與散列值H2 (e (gl, g2)r)之間的邏輯異或的比特串V = XOR(m, H2 (e (gl, g2)r))。密文生成裝 置400A使用CPU911輸出密鑰(共用密鑰)K = H4(m)、密文c = (U,V)。密文解密裝置200A(解密裝置)輸入用于識別自身的比特串ID、密鑰生成裝置 300A所生成的秘密密鑰dID以及密文生成裝置400A所輸出的密文C= (U,V)。密文解密裝 置200A計算配對值α =e(U,dID),計算作為比特串V與散列值吐…)之間的邏輯異或的比 特串m = X0R(V,H2 ( α ))。密文解密裝置200Α計算散列值r = H3 (m)、散列值h = H1 (ID), 計算群G1的元Q = R+h *gl。密文解密裝置200A使用CPU911,檢查r = U是否成立。如
      48果不成立,則密文解密裝置200A輸出“拒絕”。如果成立,則密文解密裝置200A使用CPU911 計算并輸出共用密鑰K = H4(Hi)。以上說明的驗證裝置100A使得在這種SK-IBKEM密碼系統(tǒng)中高速地進行檢查r -Q =U是否成立的處理。識別元算出部242A使用CPU911,根據(jù)作為在整體系統(tǒng)中共同使用的密碼參數(shù)的 元gl、元R以及接收者(密文解密裝置200A)自身的ID的散列值h = H1 (ID),不管與密文 生成裝置400A之間的通信內(nèi)容如何,都通過群G1中的二基底標量倍算事先計算出群G1的 元 Q = R+h · gi。在驗證裝置100A中,整數(shù)分割部110使用CPU911輸入r和p,算出成為 ei · r ε e2(mod ρ)的整數(shù)θι、e2,驗證值算出部130使用CPU911,通過群G1中的二基底標 量倍算來計算群G1的元W = e2 · Q-ei · U,驗證判斷部150使用CPU911檢查元W是否為群 G1的單位元0,由此高速地檢查r · Q = U是否成立。(實施方式3)使用圖16 圖20來說明實施方式3。圖16是表示本實施方式中的公開密鑰密碼系統(tǒng)820B的整體結(jié)構(gòu)的一例的系統(tǒng)結(jié) 構(gòu)圖。公開密鑰密碼系統(tǒng)820B是如下系統(tǒng)密文生成裝置400B使用密文解密裝置200B 的公開密鑰來生成密文,密文解密裝置200B使用與公開密鑰對應(yīng)的秘密密鑰來解密密文。公開密鑰密碼系統(tǒng)820B具有密碼參數(shù)設(shè)定裝置810B、密鑰生成裝置300B、密文生 成裝置400B、密文解密裝置200B。密碼參數(shù)設(shè)定裝置810B確定在公開密鑰密碼系統(tǒng)820B中利用的密碼參數(shù)。密碼 參數(shù)設(shè)定裝置810B所確定的密碼參數(shù)被公開于公開密鑰密碼系統(tǒng)820B的用戶。密碼參數(shù) 設(shè)定裝置810B所確定的密碼參數(shù)中例如有階數(shù)P、加法群G、加法群G的元g、散列函數(shù)H、 密鑰導(dǎo)出函數(shù)KDF等。階數(shù)ρ是素數(shù)。加法群G的階數(shù)是ρ。元g是加法群G的生成元。散列函數(shù)H是根據(jù)加法群G的兩個元的有序?qū)?ordered pair)生成大于等于1 且小于等于P-I的整數(shù)的散列函數(shù)。密鑰導(dǎo)出函數(shù)KDF是根據(jù)加法群G的兩個元的有序?qū)ι梢?guī)定長度的比特串的函數(shù)。此外,在這些密碼參數(shù)被預(yù)先確定的情況下,也可以沒有密碼參數(shù)設(shè)定裝置810A。密鑰生成裝置300B根據(jù)被公開的密碼參數(shù),生成秘密密鑰與公開密鑰之間的對。 密鑰生成裝置300B所生成的秘密密鑰以保密狀態(tài)被通知給密文解密裝置200B。密鑰生成 裝置300B所生成的公開密鑰例如以公開密鑰證書等形式作為密文解密裝置200B的公開密 鑰而被公開。密鑰生成裝置300B生成加法群G的四個元g’、c、d、h作為公開密鑰。密鑰生成 裝置300B生成大于等于1且小于等于p-1的四個整數(shù)W、χ、y、ζ作為秘密密鑰。此外,密鑰生成裝置300Β也可以是密文解密裝置200Β的一部分。密文生成裝置400Β根據(jù)被公開的密碼參數(shù)和公開密鑰,生成密文c和共用密鑰K。密文生成裝置400B利用所生成的共用密鑰K對消息M進行加密來生成加密消息CM。密文 生成裝置400B對密文解密裝置200B發(fā)送所生成的密文c和加密消息CM。密文解密裝置200B以保密狀態(tài)保持密鑰生成裝置300B所生成的秘密密鑰。密文 解密裝置200B接收密文生成裝置400B所發(fā)送的密文c和加密消息CM。密文解密裝置200B 根據(jù)被公開的密碼參數(shù),利用所保持的秘密密鑰對接收到的密文c進行解密,生成與密文 生成裝置400B相同的共用密鑰K。密文解密裝置200B利用所生成的共用密鑰對加密消息 CM進行解密,來生成與消息M相同的消息M,。此外,密碼參數(shù)設(shè)定裝置810B、密鑰生成裝置300B、密文生成裝置400B、密文解密 裝置200B的外觀、硬件資源與在實施方式1中說明的密文解密裝置200的外觀、硬件資源 相同。圖17是表示本實施方式中的密鑰生成裝置300B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密鑰生成裝置300B具有密碼參數(shù)存儲部390B、秘密密鑰生成部350B、公開密鑰生 成部370B、秘密密鑰輸出部360B、公開密鑰輸出部380B。密碼參數(shù)存儲部390B使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。秘密密鑰生成部350B根據(jù)密碼參數(shù)存儲部390B所存儲的密碼參數(shù)生成秘密密 鑰。秘密密鑰生成部350B具有四個秘密隨機數(shù)生成部35IB 354B。四個秘密隨機數(shù)生成部35IB 354B分別使用CPU911,輸入表示密碼參數(shù)存儲部 390B所存儲的密碼參數(shù)中的階數(shù)ρ的數(shù)據(jù)。四個秘密隨機數(shù)生成部351B 354B分別使 用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p,隨機地生成大于等于1且小于等于p-1的整數(shù)。第一秘密隨機數(shù)生成部351B將所生成的整數(shù)設(shè)為整數(shù)w,使用RAM914存儲表示所 生成的整數(shù)w的數(shù)據(jù)。第二秘密隨機數(shù)生成部352B將所生成的整數(shù)設(shè)為整數(shù)X,使用RAM914存儲表示所 生成的整數(shù)X的數(shù)據(jù)。第三秘密隨機數(shù)生成部353B將所生成的整數(shù)設(shè)為整數(shù)y,使用RAM914存儲表示所 生成的整數(shù)y的數(shù)據(jù)。第四秘密隨機數(shù)生成部354B將所生成的整數(shù)設(shè)為整數(shù)z,使用RAM914存儲表示所 生成的整數(shù)ζ的數(shù)據(jù)。公開密鑰生成部370B根據(jù)密碼參數(shù)存儲部390B所存儲的密碼參數(shù)和秘密密鑰生 成部350B所生成的秘密密鑰,生成公開密鑰。公開密鑰生成部370B具有四個公開元算出部371B 374B。四個公開元算出部371B 374B分別使用CPU911,輸入表示密碼參數(shù)存儲部390B 所存儲的密碼參數(shù)中的加法群G和元g的數(shù)據(jù)。第一公開元算出部371B使用CPU911,輸入第一秘密隨機數(shù)生成部351B所存儲的 表示整數(shù)w的數(shù)據(jù)。第一公開元算出部371B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加 法群G、元g和整數(shù)w,通過加法群G中的運算,算出將元g相加w次得到的元并設(shè)為元g’。
      50第一公開元算出部371B使用RAM914,存儲表示所算出的元g’的數(shù)據(jù)。第二公開元算出部372B使用CPU911,輸入第二秘密隨機數(shù)生成部352B所存儲的 表示整數(shù)χ的數(shù)據(jù)。第二公開元算出部372B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法 群G、元g和整數(shù)X,通過加法群G中的運算,算出將元g相加χ次得到的元并設(shè)為元C。第 二公開元算出部372B使用RAM914存儲表示所算出的元c的數(shù)據(jù)。第三公開元算出部373B使用CPU911,輸入第三秘密隨機數(shù)生成部353B所存儲的 表示整數(shù)y的數(shù)據(jù)。第三公開元算出部373B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法 群G、元g和整數(shù)y,通過加法群G中的運算,算出將元g相加y次得到的元并設(shè)為元d。第 三公開元算出部373B使用RAM914存儲表示所算出的元d的數(shù)據(jù)。第四公開元算出部374B使用CPU911,輸入第四秘密隨機數(shù)生成部354B所存儲的 表示整數(shù)ζ的數(shù)據(jù)。第四公開元算出部374B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法 群G、元g和整數(shù)z,通過加法群G中的運算,算出將元g相加ζ次得到的元并設(shè)為元h。第 四公開元算出部374B使用RAM914存儲表示所算出的元h的數(shù)據(jù)。秘密密鑰輸出部360B使用CPU911,輸入四個秘密隨機數(shù)生成部351B 354B所存 儲的表示整數(shù)《、整數(shù)χ、整數(shù)y以及整數(shù)ζ的數(shù)據(jù)。秘密密鑰輸出部360B使用CPU911輸 出所輸入的表示整數(shù)W、整數(shù)χ、整數(shù)y以及整數(shù)ζ的數(shù)據(jù)作為秘密密鑰。秘密密鑰輸出部360B所輸出的秘密密鑰以保密狀態(tài)被通知給密文解密裝置 200B。公開密鑰輸出部380B使用CPU911,輸入四個公開元算出部371B 374B所存儲的 表示元g’、元C、元d以及元h的數(shù)據(jù)。公開密鑰輸出部380B使用CPU911,輸出所輸入的表 示元g’、元C、元d以及元h的數(shù)據(jù)作為公開密鑰。公開密鑰輸出部380B所輸出的公開密鑰作為密文解密裝置200的公開密鑰而被 公開于公開密鑰密碼系統(tǒng)820B的用戶。圖18是表示本實施方式中的密文生成裝置400B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文生成裝置400B具有密碼參數(shù)存儲部490B、公開密鑰存儲部410B、共用密鑰生 成部420B、密文輸出部470B、共用密鑰存儲部430B、消息輸入部440B、消息加密部450B、加 密消息輸出部460B。密碼參數(shù)存儲部490B使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。公開密鑰存儲部410B使用磁盤裝置920,存儲表示作為密文的發(fā)送對象的密文解 密裝置200B的公開密鑰的數(shù)據(jù)。共用密鑰生成部420B根據(jù)密碼參數(shù)存儲部490B所存儲的密碼參數(shù)和公開密鑰存 儲部410B所存儲的公開密鑰,生成共用密鑰K和用于向密文解密裝置200B通知共用密鑰 K的密文。共用密鑰生成部420B具有秘密隨機數(shù)生成部421B、第一密碼元算出部422B、第二 密碼元算出部423B、散列值算出部424B、整數(shù)算出部425B、第三密碼元算出部426B、秘密元 算出部427B、共用密鑰算出部428B。秘密隨機數(shù)生成部42IB使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部421B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P隨機地生成大于等于1且小于等于P-I的整數(shù)并設(shè)為秘密隨機數(shù)r。秘密隨機數(shù) 生成部421B使用RAM914存儲表示所生成的秘密隨機數(shù)r的數(shù)據(jù)。第一密碼元算出部422B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)、秘密隨機數(shù)生成部421B所存儲的表示秘密隨機數(shù)r的 數(shù)據(jù)。第一密碼元算出部422B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和 秘密隨機數(shù)r,通過加法群G中的運算,算出將元g相加r次得到的元并設(shè)為元U。第一密 碼元算出部422B使用RAM914存儲表示所算出的元u的數(shù)據(jù)。第二密碼元算出部423B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密 碼參數(shù)中的加法群G的數(shù)據(jù)、表示公開密鑰存儲部410B所存儲的密文解密裝置200B的公 開密鑰中的元g’的數(shù)據(jù)以及秘密隨機數(shù)生成部421B所存儲的表示秘密隨機數(shù)r的數(shù)據(jù)。 第二密碼元算出部423B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g’和秘密隨 機數(shù)r,通過加法群G中的運算,算出將元g’相加r次得到的元并設(shè)為元u’。第二密碼元 算出部423B使用RAM914存儲表示所算出的元U’的數(shù)據(jù)。由于g,= w · g、u = r · g,因此第二密碼元算出部423B算出的元U,為[式24]U' = r · g' = w · u散列值算出部424B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密碼參 數(shù)中的散列函數(shù)H的數(shù)據(jù)、第一密碼元算出部422B所存儲的表示元u的數(shù)據(jù)以及第二密碼 元算出部423B所存儲的表示元U,的數(shù)據(jù)。散列值算出部424B使用CPU911,根據(jù)所輸入的 數(shù)據(jù)所表示的散列函數(shù)H、元u和元U’,算出將元u與元U’的有序?qū)ι⒘械玫降纳⒘兄挡?設(shè)為散列值α。散列值α是大于等于1且小于等于P-I的整數(shù)。散列值算出部424Β使用 RAM914存儲表示所算出的散列值α的數(shù)據(jù)。整數(shù)算出部425Β使用CPU911,輸入表示密碼參數(shù)存儲部490Β所存儲的密碼參數(shù) 中的階數(shù)P的數(shù)據(jù)、秘密隨機數(shù)生成部421Β所存儲的表示秘密隨機數(shù)r的數(shù)據(jù)以及表示散 列值算出部424B所算出的散列值α的數(shù)據(jù)。整數(shù)算出部425Β使用CPU911,根據(jù)所輸入的 數(shù)據(jù)所表示的階數(shù)P、秘密隨機數(shù)r和散列值α,算出將散列值α與秘密隨機數(shù)r之積除 以階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)r’。整數(shù)算出部425B使用RAM914存儲表示所算出的整 數(shù)r’的數(shù)據(jù)。第三密碼元算出部426B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密 碼參數(shù)中的加法群G的數(shù)據(jù)、表示公開密鑰存儲部410B所存儲的密文解密裝置200B的公 開密鑰中的元c和元d的數(shù)據(jù)、秘密隨機數(shù)生成部421B所存儲的表示秘密隨機數(shù)r的數(shù)據(jù) 以及整數(shù)算出部425B所存儲的表示整數(shù)r,的數(shù)據(jù)。第三密碼元算出部426B使用CPU911, 根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元C、元d、秘密隨機數(shù)r和整數(shù)r’,通過加法群G中 的運算,算出將如下兩個元相加得到的元并設(shè)為元ν 將元c相加r次得到的元;將元d相 加r’次得到的元。第三密碼元算出部426B使用RAM914存儲表示所算出的元ν的數(shù)據(jù)。由于c = χ · g、d = y · g、u = r · g,因此由第三密碼元算出部426B算出的元ν 為[式25]
      52
      ν = r · c+r' · d= (r · x+r' · y) · g= (χ+α · y) · u秘密元算出部427B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密碼參 數(shù)中的加法群G的數(shù)據(jù)、表示公開密鑰存儲部410B所存儲的密文解密裝置200B的公開密 鑰中的元h的數(shù)據(jù)以及秘密隨機數(shù)生成部421B所存儲的表示秘密隨機數(shù)r的數(shù)據(jù)。秘密 元算出部427B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元h和秘密隨機數(shù)r,通 過加法群G中的運算,算出將元h相加r次得到的元并設(shè)為元秘密元算出部427B使用 CPU911,存儲表示所算出的元IT的數(shù)據(jù)。由于h = ζ · g、u = r · g,因此由秘密元算出部427B算出的元IT為[式26]J1 = T . h = Z .U共用密鑰算出部428B使用CPU911,輸入表示密碼參數(shù)存儲部490B所存儲的密碼 參數(shù)中的密鑰導(dǎo)出函數(shù)KDF的數(shù)據(jù)、第一密碼元算出部422B所存儲的表示元u的數(shù)據(jù)以及 秘密元算出部427B所存儲的表示元IT的數(shù)據(jù)。共用密鑰算出部428B根據(jù)所輸入的數(shù)據(jù) 所表示的密鑰導(dǎo)出函數(shù)KDF、元u和元h、利用密鑰導(dǎo)出函數(shù)根據(jù)元u和元IT的有序?qū)λ?出比特串并設(shè)為共用密鑰K。共用密鑰算出部428B使用RAM914存儲所算出的共用密鑰K。共用密鑰存儲部430B使用CPU911,輸入共用密鑰算出部428B所存儲的共用密鑰 K。共用密鑰存儲部430B使用RAM914存儲所輸入的共用密鑰K。密文輸出部470B使用CPU911,輸入第一密碼元算出部422B所存儲的表示元u的 數(shù)據(jù)、第二密碼元算出部423B所存儲的表示元U’的數(shù)據(jù)以及第三密碼元算出部426B所存 儲的表示元ν的數(shù)據(jù)。密文輸出部470B使用CPU911輸出所輸入的表示元U、元U’和元ν 的數(shù)據(jù)作為密文C。消息輸入部440Β使用CPU911,輸入想要對密文解密裝置200Β發(fā)送的消息Μ。消 息輸入部440Β使用磁盤裝置920存儲所輸入的消息Μ。消息加密部450Β使用CPU911,輸入共用密鑰存儲部430Β所存儲的共用密鑰K和 消息輸入部440Β所存儲的消息Μ。消息加密部450Β使用CPU911,根據(jù)所輸入的消息M和 共用密鑰K,利用共用密鑰K對消息M進行加密來設(shè)為加密消息CM。消息加密部450B使用 磁盤裝置920存儲所生成的加密消息CM。加密消息輸出部460B使用CPU911,輸入消息加密部450B所存儲的加密消息CM。 加密消息輸出部460B使用CPU911輸出所輸入的加密消息CM。密文輸出部470B所輸出的密文c和加密消息輸出部460B所輸出的加密消息CM 被發(fā)送到密文解密裝置200B。圖19是表示本實施方式中的密文解密裝置200B的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文解密裝置200B具有密碼參數(shù)存儲部290B、密鑰存儲部210B、密文輸入部 220B、密文驗證部230B、驗證裝置100B、解密文生成部260B、共用密鑰存儲部270B、加密消 息輸入部281B、消息解密部282B、解密消息輸出部283B。密碼參數(shù)存儲部290B使用磁盤裝置920預(yù)先存儲表示被公開的密碼參數(shù)的數(shù)據(jù)。
      密鑰存儲部210B使用具有防篡改性的存儲裝置,以保密狀態(tài)存儲表示由密鑰生 成裝置300B預(yù)先生成的秘密密鑰的數(shù)據(jù)。密文輸入部220B使用CPU911,輸入從密文生成裝置400B接收到的密文C。密文 輸入部220B使用CPU911,從所輸入的密文c中獲取表示元U、元U’和元ν的數(shù)據(jù)。密文輸 入部220B使用RAM914存儲表示所獲取的元U、元U’和元ν的數(shù)據(jù)。密文驗證部230Β具有散列值算出部231Β、整數(shù)算出部232Β。散列值算出部23IB使用CPU911,輸入表示密碼參數(shù)存儲部290Β所存儲的密碼參 數(shù)中的散列函數(shù)H的數(shù)據(jù)以及密文輸入部220Β所存儲的表示元u和元U’的數(shù)據(jù)。散列值 算出部231Β使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H、元u以及元U’,算出利用 散列函數(shù)H將元u與元U’的有序?qū)ι⒘械玫降纳⒘兄挡⒃O(shè)為散列值α。散列值α是大于 等于1且小于等于P-I的整數(shù)。散列值算出部231Β使用RAM914,存儲表示所算出的散列值 α的數(shù)據(jù)。散列值算出部231Β所算出的散列值α與密文生成裝置400Β的散列值算出部 424Β所算出的散列值α相等。整數(shù)算出部232Β使用CPU911,輸入表示密碼參數(shù)存儲部290Β所存儲的密碼參數(shù) 中的階數(shù)P的數(shù)據(jù)、表示密鑰存儲部210Β所存儲的秘密密鑰中的整數(shù)X和整數(shù)y的數(shù)據(jù)以 及散列值算出部231B所存儲的散列值α。整數(shù)算出部232Β使用CPU911,根據(jù)所輸入的數(shù) 據(jù)所表示的階數(shù)P、整數(shù)X、整數(shù)y以及散列值α,算出將整數(shù)y與散列值α之積和整數(shù)χ 的和除以階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)t。整數(shù)算出部232B使用CPU911存儲表示所算 出的整數(shù)t的數(shù)據(jù)。如果密文輸入部220A所輸入的密文c為合法密文,則式24和式25成立。因而, 通過驗證是否為u’ = W · U、是否為V = t · u,能夠判斷密文輸入部220A所輸入的密文C 是否為合法密文。驗證裝置100B判斷是否為U,=wu,判斷是否為v = fu,在U,= wu且ν =t · u的情況下,判斷為驗證成功。作為判斷的順序,哪個判斷在前都可以,下面設(shè)為首先判斷是否為U’ = w · !,然后 判斷是否為V = t · U,來進行說明。驗證裝置100B是與在實施方式1中說明的驗證裝置100相同的裝置。首先,驗證裝置100B判斷是否為U,= w · U。驗證裝置100B使用CPU911,輸入表示密碼參數(shù)存儲部290B所存儲的密碼參數(shù)中 的階數(shù)ρ的數(shù)據(jù)作為表示在實施方式ι中說明的階數(shù)P的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入表示密鑰存儲部2IOB所存儲的秘密密鑰中的整 數(shù)w的數(shù)據(jù)作為表示在實施方式1中說明的整數(shù)e的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入密文輸入部220B所存儲的表示元U,的數(shù)據(jù)作為 表示在實施方式1中說明的元h的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入密文輸入部220B所存儲的表示元u的數(shù)據(jù)作為 表示在實施方式1中說明的元s的數(shù)據(jù)。驗證裝置100B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)ρ和整數(shù)w,算出滿
      54Mei*WEe2(m0d p)、|ei|<A/i >()<e2<^的整數(shù)e:和整數(shù)e2。此外,整數(shù)w是密文解
      密裝置200的秘密密鑰的一部分,在密文輸入部220B輸入密文c之前就知道,因此驗證裝 置100B也可以在由密文輸入部220B輸入密文c之前使用CPU911預(yù)先算出整數(shù)ei和整數(shù) e2,使用具有防篡改性的存儲裝置來進行存儲。驗證裝置100B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元U,和元U、以及所算出 的整數(shù)ei和整數(shù)e2,通過加法群G中的運算,算出加法群G的元a = ei · U’ -e2 · U。驗證 裝置100B使用CPU911,根據(jù)所算出的元a,判斷元a是否為加法群G的單位元。驗證裝置 100B使用CPU911,在元a為加法群G的單位元的情況下,判斷為第一驗證成功,在元a不是 加法群G的單位元的情況下,判斷為“驗證失敗”。在判斷為第一驗證成功的情況下,驗證裝置100B判斷是否為ν = t · U。驗證裝置100B使用CPU911,輸入表示密碼參數(shù)存儲部290B所存儲的密碼參數(shù)中 的階數(shù)ρ的數(shù)據(jù)作為表示在實施方式ι中說明的階數(shù)P的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入整數(shù)算出部232B所存儲的表示整數(shù)t的數(shù)據(jù)作 為表示在實施方式1中說明的整數(shù)e的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入密文輸入部220所存儲的表示元ν的數(shù)據(jù)作為表 示在實施方式1中說明的元h的數(shù)據(jù)。驗證裝置100B使用CPU911,輸入密文輸入部220所存儲的表示元u的數(shù)據(jù)作為表 示在實施方式1中說明的元s的數(shù)據(jù)。驗證裝置100B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)ρ和整數(shù)t,算出
      滿足% · t三e2(mod ρ)、|ei|<>/^、0<e2<i的整數(shù)和整數(shù)%。驗證裝置100B使用
      CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元ν和元U、以及所算出的整數(shù)ei和整數(shù)e2,通過加法 群G中的運算,算出加法群G的元a = θι -v-e2-U0驗證裝置100B使用CPU911,根據(jù)所算 出的元a,判斷元a是否為加法群G的單位元。驗證裝置100B使用CPU911,在元a為加法 群G的單位元的情況下,判斷為第二驗證也成功而判斷為“驗證成功”,在元a不是加法群G 的單位元的情況下,判斷為“驗證失敗”。驗證裝置100B使用CPU911,輸出表示驗證結(jié)果的數(shù)據(jù)。解密文生成部260B在由驗證裝置100B判斷為“驗證成功”的情況下,生成共用密 鑰K。解密文生成部260B具有秘密元算出部261B、共用密鑰算出部262B。秘密元算出部261B使用CPU911,輸入表示驗證裝置100B所輸出的驗證結(jié)果的數(shù) 據(jù)。在所輸入的數(shù)據(jù)所表示的驗證結(jié)果為“驗證成功”的情況下,秘密元算出部261B使用 CPU911輸入表示密碼參數(shù)存儲部290B所存儲的密碼參數(shù)中的加法群G的數(shù)據(jù)、表示密鑰 存儲部210B所存儲的秘密密鑰中的整數(shù)ζ的數(shù)據(jù)以及密文輸入部220B所存儲的表示元u 的數(shù)據(jù)。秘密元算出部261B使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、整數(shù)ζ以 及元u,通過加法群G中的運算,算出將元u相加ζ次得到的元并設(shè)為元1Γ。秘密元算出部 261B使用RAM914存儲表示所算出的元tT的數(shù)據(jù)。如果密文輸入部220A所輸入的密文c為合法密文,則秘密元算出部261B利用式
      5526算出的元h 與密文生成裝置400B的秘密元算出部427B所算出的元h 相等。共用密鑰算出部262B使用CPU911,輸入表示密碼參數(shù)存儲部290B所存儲的密碼 參數(shù)中的密鑰導(dǎo)出函數(shù)KDF的數(shù)據(jù)、密文輸入部220B所存儲的表示元u的數(shù)據(jù)以及秘密元 算出部261B所存儲的表示元h 的數(shù)據(jù)。共用密鑰算出部262B使用CPU911,根據(jù)所輸入的 數(shù)據(jù)所表示的密鑰導(dǎo)出函數(shù)KDF、元u以及元h、利用密鑰導(dǎo)出函數(shù)KDF根據(jù)元u與元IT 的有序?qū)λ愠霰忍卮⒃O(shè)為共用密鑰K。共用密鑰算出部262B使用RAM914存儲所算出的 共用密鑰K。秘密元算出部26IB所算出的元h 與密文生成裝置400B的秘密元算出部427B所 算出的元IT相等,因此共用密鑰算出部262B所算出的共用密鑰K與密文生成裝置400B的 共用密鑰算出部428B所算出的共用密鑰K相等。因而,密文生成裝置400B與密文解密裝置200B能夠共有相同的共用密鑰K。共用密鑰存儲部270B使用CPU911,輸入共用密鑰算出部262B所存儲的共用密鑰 K。共用密鑰存儲部270B使用RAM914存儲所輸入的共用密鑰K。加密消息輸入部28IB使用CPU911,輸入從密文生成裝置400B接收到的加密消息 CM。加密消息輸入部281B使用磁盤裝置920存儲所輸入的加密消息CM。消息解密部282B使用CPU911,輸入共用密鑰存儲部270B所存儲的共用密鑰K以 及加密消息輸入部281B所存儲的加密消息CM。消息解密部282B使用CPU911,利用所輸入 的共用密鑰K對所輸入的加密消息CM進行解密來生成消息M’。消息解密部282B使用磁盤 裝置920存儲所生成的消息M,。由于密文生成裝置400B與密文解密裝置200B共有相同的共用密鑰K,因此消息 解密部282B所生成的消息M,與密文生成裝置400B的消息輸入部440B所輸入的消息M相 同。解密消息輸出部283B使用CPU911,輸入消息解密部282B所存儲的消息M,。解密 消息輸出部283B使用CPU911,輸出所輸入的消息M,。圖20是表示本實施方式中的密文解密裝置200A解密密文c的密文解密處理流程 的一例的流程圖。在散列值算出工序S731B中,散列值算出部231B使用CPU911,根據(jù)密文輸入部 220B所輸入的元u和元U’,算出利用散列函數(shù)H將元u與元U’的有序?qū)ι⒘械玫降纳⒘?值并設(shè)為散列值α。在整數(shù)算出工序S732B中,整數(shù)算出部232Β使用CPU911,根據(jù)密碼參數(shù)存儲部 290Β所存儲的階數(shù)ρ、密鑰存儲部210Β所存儲的整數(shù)χ和整數(shù)y、以及通過散列值算出工序 S731B由散列值算出部231B算出的散列值α,算出將整數(shù)y與散列值α之積與整數(shù)χ的 和除以階數(shù)P得到的余數(shù)并設(shè)為整數(shù)t。在第一驗證工序S733B中,驗證裝置100B使用CPU911,根據(jù)密鑰存儲部210所存 儲的整數(shù)W、以及密文輸入部220A所輸入的元u和元U’,驗證是否為u’ = w · u。在u,= w · u的情況下,進入第二驗證工序S734B。在U’興w · u的情況下,結(jié)束密文解密處理。在第二驗證工序S734B中,驗證裝置100B使用CPU911,根據(jù)密文輸入部220B所輸 入的元u和元ν、以及通過整數(shù)算出工序S732B由整數(shù)算出部232B算出的整數(shù)t,驗證是否為 ν = t · U。在ν = t · u的情況下,進入秘密元算出工序S735B。在ν興t · U的情況下,結(jié)束密文解密處理。在秘密元算出工序S735B中,秘密元算出部261B使用CPU911,根據(jù)密鑰存儲部 210B所存儲的整數(shù)ζ、以及密文輸入部220B所輸入的元u,通過加法群G中的運算,算出將 元u相加ζ次得到的元并設(shè)為元1Γ。在共用密鑰算出工序S736中,共用密鑰算出部262B使用CPU911,根據(jù)密文輸入部 220B所輸入的元U、以及通過秘密元算出工序S735B由秘密元算出部261B算出的元tT,利 用密鑰導(dǎo)出函數(shù)KDF根據(jù)元u與元IT的有序?qū)λ愠霰忍卮⒃O(shè)為共用密鑰K。之后,結(jié)束密文解密處理,利用所算出的共用密鑰K對加密消息CM進行解密。本實施方式中的密文解密裝置200B還具有密碼參數(shù)存儲部290B。上述密碼參數(shù)存儲部290B使用上述存儲裝置(磁盤裝置920),存儲上述有限群 (加法群)G的階數(shù)ρ。上述密鑰存儲部210B使用上述存儲裝置,存儲大于等于1且小于等于p_l的整數(shù) W、大于等于1且小于等于P-I的整數(shù)X、大于等于1且小于等于P-I的整數(shù)y、大于等于1 且小于等于P-I的整數(shù)ζ。上述密文輸入部220B使用上述處理裝置(CPU911),輸入上述有限群(加法群)G 的元U、上述有限群(加法群)G的元U’、上述有限群(加法群)G的元ν作為上述密文C。上述密文驗證部230B具有散列值算出部23IB和整數(shù)算出部232B。上述散列值算出部231B使用上述處理裝置(CPU911),根據(jù)上述密文輸入部220B 所輸入的元u和元U’,算出通過規(guī)定的散列函數(shù)H將上述元u和上述元U’散列得到的散列 值并設(shè)為整數(shù)(散列值)α ( = H(u,U’))。上述整數(shù)算出部232B使用上述處理裝置(CPU911),根據(jù)上述密碼參數(shù)存儲部 290B所存儲的階數(shù)ρ、上述密鑰存儲部210B所存儲的整數(shù)χ和整數(shù)y、以及上述散列值算出 部231B所算出的整數(shù)(散列值)α,算出將上述整數(shù)y與上述整數(shù)(散列值)α之積與上 述整數(shù)χ的和除以上述階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)t(= (x+y · α) mod ρ)。上述驗證裝置100Β輸入上述密碼參數(shù)存儲部290Β所存儲的階數(shù)P、作為上述整 數(shù)e的上述密鑰存儲部210B所存儲的整數(shù)W、作為上述元s的上述密文輸入部220B所輸入 的元U、以及作為上述元h的上述密文輸入部220B所輸入的元U’,判斷驗證是否成功來作 為第一驗證結(jié)果;輸入上述密碼參數(shù)存儲部290B所存儲的階數(shù)ρ、作為上述整數(shù)e的上述 整數(shù)算出部232B所算出的整數(shù)t、作為上述元s的上述密文輸入部220B所輸入的元U、以 及作為上述元h的上述密文輸入部220B所輸入的元v,判斷驗證是否成功來作為第二驗證 結(jié)果。上述解密文生成部260B使用上述處理裝置(CPU911),在上述驗證裝置100B在上 述第一驗證結(jié)果和上述第二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)上述密鑰存儲部 210B所存儲的整數(shù)ζ和上述密文輸入部220B所輸入的元u,算出將上述元u相加上述整數(shù) ζ次而得到的元并設(shè)為上述有限群G的元h( = ζ · !),根據(jù)上述密文輸入部220Β所輸入的 元u和所算出的元h、利用規(guī)定的密鑰導(dǎo)出函數(shù)KDF根據(jù)上述元u和上述元IT生成共用密 鑰K( = KDF(u, IT)),輸出所生成的共用密鑰K作為上述解密文。
      57
      根據(jù)本實施方式中的密文解密裝置200B,在驗證裝置100B驗證是否為U,= w ·ιι 且ν = t ·ιι而判斷為驗證成功的情況下,解密文生成部260Β生成解密文,因此可以防止對 非法者提供解讀密碼的線索。另外,能夠縮短驗證裝置100Β驗證是否為u’ = w 且ν = t ·ιι的處理所花費的時間,因此起到如下效果能夠縮短密文解密裝置200Β解密密文的處 理整體所花費的時間。本實施方式中的密文解密裝置200Β還具有共用密鑰存儲部270Β、加密消息輸入 部28IB以及消息解密部282Β。上述共用密鑰存儲部270Β使用上述存儲裝置(RAM914),存儲上述解密文生成部 260Β所輸出的共用密鑰K。上述加密消息輸入部28IB使用上述處理裝置(CPU911)輸入加密消息CM。上述消息解密部282B使用上述處理裝置(CPU911),利用上述共用密鑰存儲部 270B所存儲的共用密鑰K對上述加密消息輸入部281B所輸入的加密消息CM進行解密。根據(jù)本實施方式中的密文解密裝置200B,消息解密部282B利用通過密文c與密文 生成裝置400B共有的共用密鑰K對加密消息CM進行解密,因此起到如下效果在加密消息 CM的生成·解密中,能夠使用能夠高速地進行處理的共用密鑰密碼方式。以上說明的密文解密裝置200B(公開密鑰密碼解密裝置)為了驗證在作為密文的 一部分的乘法群或加法群的元U和元U’與作為秘密密鑰的一部分的整數(shù)W之間是否成立 U’ =Uw(乘法描述)或U’ =WU (加法描述)的關(guān)系,具有分割指數(shù)部(整數(shù)w)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群中的二基底指數(shù)取冪或者 (超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值u’ ·ιΓ2或 ei · u’ -e2 · u的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的密文解密裝置200B(公開密鑰密碼解密裝置)為了驗證在根據(jù)從密文 的一部分(元u和元U’)算出的散列值α計算得到的指數(shù)(整數(shù))t與作為密文的一部分 的元u和元ν之間是否成立ν = Ut (乘法描述)或t · u = ν (加法描述)的關(guān)系,具有分割指數(shù)部(整數(shù)t)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值Z1 ·ιΓ2或 ei · v-e2 · u的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的公開密鑰密碼系統(tǒng)820B是根據(jù)Cramer-Shoup公開密鑰密碼進行標準 化的密鑰封裝方式的ACE-KEM密碼系統(tǒng)。在公開密鑰密碼系統(tǒng)820B中,使用素數(shù)階數(shù)ρ的群(加法群)G與群G內(nèi)的基點 (生成元)go密鑰生成裝置300B使用CPU911,隨機地選擇大于等于0且小于等于p_l的整數(shù) W、整數(shù)X、整數(shù)y、整數(shù)Z。密鑰生成裝置300B使用CPU911,計算群G的元g,= w · g、群G的元c = χ · g、群G的元d = y · g、群G的元h = ζ · g。密鑰生成裝置300B使用CPU911 輸出公開密鑰(g,,c,d,h)、秘密密鑰(w, χ, y,ζ)。密文生成裝置400Β (加密裝置)使用CPU911輸入公開密鑰(g,,c,d,h)。密文生 成裝置400B使用CPU911,生成大于等于0且小于等于p_l的隨機數(shù)r,計算群G的元u = r · g、群G的元u,= r · g,、群G的元h =r · h。密文生成裝置400B使用CPU911,計算將 比特串u Il U’散列得到的散列值α =H(u||u’),計算整數(shù)r’ = α τ mod p,其中,上述 比特串u Il u’是將表示元u的比特串與表示元u’的比特串相連接的比特串。密文生成裝 置400B使用CPU911計算群G的元ν = r · c+r,· d。密文生成裝置400B使用CPU911,計 算根據(jù)將表示元u的比特串與表示元IT的比特串相連接的比特串u Il IT進行密鑰導(dǎo)出的 密鑰K = KDF(u Il h )。密文生成裝置400B使用CPU911輸出密文Ctl = (u,u,,ν)和密鑰 K0密文解密裝置200Β (解密裝置)使用CPU911輸入秘密密鑰(w,χ, y,ζ)和密文C。 =(u,u,,v)。密文解密裝置20( 使用0 冊11,計算將比特串11||11,散列得到的散列值α =H(u Il u’),其中,上述比特串u Il U’是將表示元u的比特串與表示元U’的比特串相連接 的比特串。密文解密裝置200B使用CPU911計算整數(shù)t = x+y · α mod ρ。密文解密裝置 200Β使用CPU911,檢查w · u = U,和t · u = ν是否成立。如果不成立,則密文解密裝置 200B輸出“拒絕”。如果成立,則密文解密裝置200B使用CPU911計算群G的元h =ζ -u, 計算并輸出密鑰K = KDF(UlItT)。以上說明的驗證裝置100B在這種ACE-KEM密碼系統(tǒng)中使檢查w · u = U,和t · u =ν是否成立的處理高速地進行。在驗證裝置100B中,整數(shù)分割部110使用CPU911輸入w和P,算出成為 ei - W^ e2(mod ρ)的整數(shù)ei、e2,驗證值算出部130使用CPU911,通過群G中的二基底標量 倍算,算出群G的元U = e2 -u-ei ·ιι’,驗證判斷部150使用CPU911檢查元U是否為群G的 單位元0,由此高速地檢查是否為wu = u’。另外,整數(shù)分割部110使用CPU911輸入t和 P,算出成為ei K^e2 (mod ρ)的整數(shù)ei、e2,驗證值算出部130使用CPU911,通過群G中的 二基底標量倍算,算出群G的元V = e2 · u-ei · v,驗證判斷部150使用CPU911檢查元V是 否為群G的單位元0,由此高速地檢查t · u = ν是否成立。(實施方式4)使用圖21 圖27說明實施方式4。圖21是表示本實施方式中的基于ID的公開密鑰密碼系統(tǒng)820C的整體結(jié)構(gòu)的一 例的系統(tǒng)結(jié)構(gòu)圖。基于ID的公開密鑰密碼系統(tǒng)820C是與在實施方式2中說明的基于ID的公開密 鑰密碼系統(tǒng)820A同樣地將用于識別密文解密裝置200C的識別數(shù)據(jù)用作密文解密裝置200C 的公開密鑰的密碼通信系統(tǒng)。基于ID的公開密鑰密碼系統(tǒng)820C具有密碼參數(shù)設(shè)定裝置810C、密鑰生成裝置 300C、密文生成裝置400C、密文解密裝置200C。密碼參數(shù)設(shè)定裝置8IOC確定在基于ID的公開密鑰密碼系統(tǒng)820C中利用的密碼 參數(shù)。由密碼參數(shù)設(shè)定裝置810C確定的密碼參數(shù)被公開于基于ID的公開密鑰密碼系統(tǒng) 820C的用戶。由密碼參數(shù)設(shè)定裝置810C確定的密碼參數(shù)中例如有階數(shù)P、加法群G、加法群G的元g、加法群G’、加法群G’的元g’、乘法群Gt、配對e、散列函數(shù)H、散列函數(shù)H’散列函
      數(shù)H”等。階數(shù)ρ是素數(shù)。加法群G的階數(shù)是ρ。元g是加法群G的生成元。加法群G’的階數(shù)是與加法群G同樣的ρ。元g’是加法群G’的生成元。乘法群Gt的階數(shù)是與加法群G和加法群G’同樣的ρ。配對e是將加法群G的元和加法群G’的元的組轉(zhuǎn)變到乘法群Gt的元(配對值) 的映射,配對e具有雙線性。另外,加法群G的元g與加法群G’的元g’的配對值e(g,g’) 不是乘法群Gt的單位元。散列函數(shù)H是根據(jù)任意長度的比特串生成大于等于1且小于等于p-1的整數(shù)的散 列函數(shù)。散列函數(shù)H’是根據(jù)乘法群Gt的元生成規(guī)定長度的比特串的散列函數(shù)。散列函數(shù)H”是根據(jù)乘法群Gt的元、規(guī)定長度的比特串、以及兩個加法群G的元的 有序?qū)Φ慕M,生成大于等于1且小于等于P-I的整數(shù)的散列函數(shù)。此外,加法群G’的元g’僅被密鑰生成裝置300C所使用,因此也可以不對其它用 戶公開。另外,在這些密碼參數(shù)被預(yù)先確定的情況下,密碼參數(shù)設(shè)定裝置810C也可以不確 定這些密碼參數(shù)。另外,密碼參數(shù)設(shè)定裝置810C生成主密鑰和根據(jù)主密鑰生成的公開參數(shù)。密碼參 數(shù)設(shè)定裝置810C所生成的主密鑰包含三個整數(shù)α、β、Y。密碼參數(shù)設(shè)定裝置810C所生 成的公開參數(shù)包含加法群G的元gl、加法群G的元g3以及乘法群Gt的元V(l。密碼參數(shù)設(shè) 定裝置810C所生成的主密鑰以保密狀態(tài)被通知給密鑰生成裝置300C。密碼參數(shù)設(shè)定裝置 810C所生成的公開參數(shù)被公開于基于ID的公開密鑰密碼系統(tǒng)820C的用戶。密鑰生成裝置300C以保密狀態(tài)保持從密碼參數(shù)設(shè)定裝置810C通知的主密鑰。密 鑰生成裝置300A根據(jù)被公開的密碼參數(shù)、被公開的密文解密裝置200C的識別數(shù)據(jù)ID以及 所保持的主密鑰,生成密文解密裝置200C的秘密密鑰。密鑰生成裝置300C所生成的秘密 密鑰包含加法群G’的元dQ和加法群G’的元屯。密鑰生成裝置300A所生成的秘密密鑰以 保密狀態(tài)被通知給密文解密裝置200C。密文生成裝置400C根據(jù)被公開的密碼參數(shù)、公開參數(shù)、密文解密裝置200C的識別 數(shù)據(jù)ID,對消息M進行加密來生成密文C。密文生成裝置400C向密文解密裝置200C發(fā)送 所生成的密文C。密文解密裝置200C以保密狀態(tài)保持密鑰生成裝置300C所生成的秘密密鑰。密文 解密裝置200C接收密文生成裝置400C所發(fā)送的密文C。密文解密裝置200C根據(jù)被公開 的密碼參數(shù)和所保持的秘密密鑰,對接收到的密文C進行解密來生成與消息M相同的消息 M,。此外,密碼參數(shù)設(shè)定裝置810C、密鑰生成裝置300C、密文生成裝置400C、密文解密 裝置200C的外觀、硬件資源與在實施方式1中說明的密文解密裝置200的外觀、硬件資源 相同。圖22是表示本實施方式中的密碼參數(shù)設(shè)定裝置810C的一部分功能模塊的結(jié)構(gòu)的
      60一例的模塊結(jié)構(gòu)圖。密碼參數(shù)設(shè)定裝置810C具有密碼參數(shù)存儲部819C、主密鑰生成部812C、公開參數(shù) 生成部813C、主密鑰輸出部814C以及公開參數(shù)輸出部815C。密碼參數(shù)存儲部819C使用磁盤裝置920,存儲表示被公開的密碼參數(shù)的數(shù)據(jù)。主密鑰生成部812C根據(jù)密碼參數(shù)存儲部819C所存儲的密碼參數(shù),生成主密鑰。主密鑰生成部812C具有三個秘密隨機數(shù)生成部816C 818C。三個秘密隨機數(shù)生成部816C 818C分別使用CPU911,輸入表示密碼參數(shù)存儲部 819C所存儲的密碼參數(shù)中的階數(shù)ρ的數(shù)據(jù)。三個秘密隨機數(shù)生成部816C 818C分別使 用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p,隨機地生成大于等于1且小于等于p-1的整 數(shù)。第一秘密隨機數(shù)生成部816C將所生成的整數(shù)設(shè)為整數(shù)α,使用RAM914存儲表示 所生成的整數(shù)α的數(shù)據(jù)。第二秘密隨機數(shù)生成部817C將所生成的整數(shù)設(shè)為整數(shù)β,使用RAM914存儲表示 所生成的整數(shù)β的數(shù)據(jù)。第三秘密隨機數(shù)生成部818C將所生成的整數(shù)設(shè)為整數(shù)Y,使用RAM914存儲表示 生成的整數(shù)、的數(shù)據(jù)。公開參數(shù)生成部813C根據(jù)密碼參數(shù)存儲部819C所存儲的密碼參數(shù)和主密鑰生成 部812C所生成的主密鑰,生成公開參數(shù)。公開參數(shù)生成部813C具有第一公開元算出部831C、公開配對值算出部832C以及 第二公開元算出部833C。第一公開元算出部83IC使用CPU911,輸入表示密碼參數(shù)存儲部819C所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)以及秘密隨機數(shù)生成部816C所存儲的表示整數(shù)α的數(shù) 據(jù)。第一公開元算出部831C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和整 數(shù)α,通過加法群G中的運算,算出將元g相加α次得到的元并設(shè)為元gl。第一公開元算 出部831C使用RAM914存儲表示所算出的元gl的數(shù)據(jù)。公開配對值算出部832C使用CPU911,輸入表示密碼參數(shù)存儲部819C所存儲的密 碼參數(shù)中的元g、元g’和配對e的數(shù)據(jù)、秘密隨機數(shù)生成部816C所存儲的表示整數(shù)α的數(shù) 據(jù)以及秘密隨機數(shù)生成部817C所存儲的表示整數(shù)β的數(shù)據(jù)。公開配對值算出部832C使用 CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元g、元g’和配對e,利用配對e算出元g與元g’的配 對值e(g,g’)。配對值e(g,g’)是乘法群Gt的元。公開配對值算出部832C使用CPU911, 根據(jù)所輸入的數(shù)據(jù)所表示的整數(shù)α和整數(shù)β、以及所算出的配對值e(g,g’),通過乘法群 Gt中的運算,算出將配對值e(g,g’ )相乘整數(shù)α與整數(shù)β之積α β次得到的元并設(shè)為 元%。公開配對值算出部832C使用RAM914存儲表示所算出的元Y0的數(shù)據(jù)。第二公開元算出部833C使用CPU911,輸入表示密碼參數(shù)存儲部819C所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)、以及秘密隨機數(shù)生成部818C所存儲的表示整數(shù)、的 數(shù)據(jù)。第二公開元算出部833C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和 整數(shù)Y,通過加法群G中的運算,算出將元g相加γ次得到的元并設(shè)為元g3。第二公開元 算出部833C使用RAM914存儲表示所算出的元g3的數(shù)據(jù)。主密鑰輸出部814C使用CPU911,輸入三個秘密隨機數(shù)生成部816C 818C所存儲的表示整數(shù)α、整數(shù)β和整數(shù)Y的數(shù)據(jù)。主密鑰輸出部814C使用CPU911,輸出所輸入的 表示整數(shù)α、整數(shù)β和整數(shù)Υ的數(shù)據(jù)作為主密鑰。主密鑰輸出部814C所輸出的主密鑰以保密狀態(tài)被通知給密鑰生成裝置300C。公開參數(shù)輸出部815C使用CPU911,輸入第一公開元算出部831C所存儲的表示元 gl的數(shù)據(jù)、公開配對值算出部832C所存儲的表示元Vtl的數(shù)據(jù)以及第二公開元算出部833C 所存儲的表示元&的數(shù)據(jù)。公開參數(shù)輸出部815C使用CPU911,輸出所輸入的表示元gl、元 g3和元%的數(shù)據(jù)作為公開參數(shù)。公開參數(shù)輸出部815C所輸出的公開參數(shù)被公開于基于ID的公開密鑰密碼系統(tǒng) 820C的用戶。圖23是表示本實施方式中的密鑰生成裝置300C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密鑰生成裝置300C具有密碼參數(shù)存儲部390C、主密鑰存儲部330C、識別輸入部 340C、秘密密鑰生成部350C、秘密密鑰輸出部360C。密碼參數(shù)存儲部390C使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。主密鑰存儲部330C使用具有防篡改性的存儲裝置,以保密狀態(tài)存儲從密碼參數(shù) 設(shè)定裝置810C通知的主密鑰。識別輸入部340C使用CPU911,關(guān)于應(yīng)生成秘密密鑰的密文解密裝置200C,輸入作 為用于識別密文解密裝置200C的識別數(shù)據(jù)的任意長度的比特串ID。識別輸入部340C使用 RAM914存儲所輸入的比特串ID。秘密密鑰生成部350C根據(jù)密碼參數(shù)存儲部390C所存儲的密碼參數(shù)、主密鑰存儲 部330C所存儲的主密鑰以及識別輸入部340C所輸入的比特串ID,生成密文解密裝置200C 的秘密密鑰。秘密密鑰生成部350C具有秘密隨機數(shù)生成部351C、第一秘密元算出部352C、第二 秘密元算出部353C。秘密隨機數(shù)生成部351C使用CPU911,輸入表示密碼參數(shù)存儲部390C所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部351C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P,隨機地生成大于等于1且小于等于P-I的整數(shù)并設(shè)為秘密隨機數(shù)r。秘密隨機數(shù) 生成部351C使用RAM914存儲表示所生成的秘密隨機數(shù)r的數(shù)據(jù)。第一秘密元算出部352C使用CPU911,輸入表示密碼參數(shù)存儲部390C所存儲的密 碼參數(shù)中的加法群G’、元g’和散列函數(shù)H的數(shù)據(jù)、表示主密鑰存儲部330C所存儲的主密鑰 中的整數(shù)α、整數(shù)β和整數(shù)Υ的數(shù)據(jù)、識別輸入部340C所存儲的比特串ID以及秘密隨機 數(shù)生成部351C所存儲的表示秘密隨機數(shù)r的數(shù)據(jù)。第一秘密元算出部352C使用CPU911, 根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H和所輸入的比特串ID,算出利用散列函數(shù)H將比特 串ID散列得到的散列值H(ID)。第一秘密元算出部352C使用CPU911,根據(jù)所輸入的數(shù)據(jù) 所表示的整數(shù)α、整數(shù)β、整數(shù)Y、秘密隨機數(shù)r以及所算出的散列值H(ID),算出將如下 兩個積相加得到的整數(shù)· β+[α -H(ID) + y] τ}:對整數(shù)α與散列值H(ID)之積加 上整數(shù)Y而得到的整數(shù)(a -H(ID) + y]與秘密隨機數(shù)r之積;整數(shù)α與整數(shù)β之積。 第一秘密元算出部352C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G’和元g’以及
      62所算出的整數(shù)‘ β+[α ·Η(Ι ) + Υ] ·Γ},通過加法群G’中的運算,算出將元g’相加 {α · β+[α · H(ID) +γ] · r}次得到的元并設(shè)為秘密元dQ。第一秘密元算出部352C使用 RAM914存儲表示所算出的秘密元Cltl的數(shù)據(jù)。第二秘密元算出部353C使用CPU911,輸入表示密碼參數(shù)存儲部390C所存儲的密 碼參數(shù)中的加法群G’和元g’的數(shù)據(jù)、秘密隨機數(shù)生成部351C所存儲的表示秘密隨機數(shù)r 的數(shù)據(jù)。第二秘密元算出部353C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G’、元g’ 和秘密隨機數(shù)r,通過加法群G’中的運算,算出將元g’相加r次得到的元并設(shè)為秘密元屯。 第二秘密元算出部353C使用RAM914存儲表示所算出的秘密元(I1的數(shù)據(jù)。秘密密鑰輸出部360C使用CPU911,輸入第一秘密元算出部352C所存儲的表示秘 密元dQ的數(shù)據(jù)、第二秘密元算出部353C所存儲的表示秘密元Cl1的數(shù)據(jù)。秘密密鑰輸出部 360C使用CPU911,輸出表示所輸入的秘密元dQ和秘密元Cl1的數(shù)據(jù)作為密文解密裝置200C 的秘密密鑰。秘密密鑰輸出部360C所輸出的密文解密裝置200C的秘密密鑰以保密狀態(tài)被通知 給密文解密裝置200C。圖24是表示本實施方式中的密文生成裝置400C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文生成裝置400C具有密碼參數(shù)存儲部490C、識別存儲部410C、消息輸入部 440C、消息加密部450C、密文輸出部470C。密碼參數(shù)存儲部490C使用磁盤裝置920,預(yù)先存儲被公開的密碼參數(shù)(包含公開 參數(shù))。識別存儲部410C使用磁盤裝置920,存儲作為密文的發(fā)送對象的密文解密裝置 200C的識別數(shù)據(jù)、即比特串ID。消息輸入部440C使用CPU911,輸入作為想要對密文解密裝置200C發(fā)送的消息的 規(guī)定長度的比特串M。此外,在想要對密文解密裝置200C發(fā)送的消息的長度大于等于規(guī)定 長度的情況下,消息輸入部440C將消息分割為規(guī)定長度,設(shè)為多個比特串M來輸入。消息 輸入部440C使用RAM914存儲所輸入的比特串M。消息加密部450C根據(jù)密碼參數(shù)存儲部490C所存儲的密碼參數(shù)(包含公開參數(shù))、 以及識別存儲部410C所存儲的比特串ID,對消息輸入部440C所輸入的比特串M進行加密 來生成密文C。消息加密部450C具有秘密隨機數(shù)生成部451C、配對值算出部452C、密碼比 特串算出部453C、第一密碼元算出部454C、第二密碼元算出部455C、密碼整數(shù)算出部456C。秘密隨機數(shù)生成部451C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部451C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P,隨機地生成大于等于1且小于等于P-I的整數(shù)并設(shè)為秘密隨機數(shù)S。秘密隨機數(shù) 生成部451C使用RAM914存儲表示所生成的秘密隨機數(shù)s的數(shù)據(jù)。配對值算出部452C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的密碼參 數(shù)中的乘法群Gt和元ν。的數(shù)據(jù)以及秘密隨機數(shù)生成部451C所存儲的表示秘密隨機數(shù)s的 數(shù)據(jù)。配對值算出部452C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的乘法群Gt、元V(l和秘密 隨機數(shù)s,通過乘法群Gt中的運算,算出將元Vtl相乘s次得到的元并設(shè)為元k。配對值算出 部452C使用RAM914存儲表示所算出的元k的數(shù)據(jù)。
      密碼比特串算出部453C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的 密碼參數(shù)中的散列函數(shù)H’的數(shù)據(jù)、消息輸入部440C所存儲的比特串M以及配對值算出部 452C所存儲的表示元k的數(shù)據(jù)。密碼比特串算出部453C使用CPU911,根據(jù)所輸入的數(shù)據(jù) 所表示的散列函數(shù)H’和元k,算出利用散列函數(shù)H’將元k散列得到的散列值H’(k)。散列 值H’ (k)是規(guī)定長度的比特串。密碼比特串算出部453C使用CPU911,根據(jù)所輸入的比特 串M和算出的散列值H’(k),取得比特串M與散列值H(k)之間的每個比特的邏輯異或并設(shè) 為比特串c。密碼比特串算出部453C使用RAM914存儲所算出的比特串c。第一密碼元算出部454C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)、秘密隨機數(shù)生成部451C所存儲的表示秘密隨機數(shù)s的 數(shù)據(jù)。第一密碼元算出部454C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和 秘密隨機數(shù)s,通過加法群G中的運算,算出將元g相加s次得到的元并設(shè)為元C(1。第一密 碼元算出部454C使用RAM914存儲表示所算出的元C(1的數(shù)據(jù)。第二密碼元算出部455C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的密 碼參數(shù)中的加法群G、散列函數(shù)H、元gl和元g3的數(shù)據(jù)、識別存儲部410C所存儲的比特串 ID、以及秘密隨機數(shù)生成部451C所存儲的表示秘密隨機數(shù)s的數(shù)據(jù)。第二密碼元算出部 455C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H、以及所輸入的比特串ID,算出利 用散列函數(shù)H將比特串ID散列得到的散列值H(ID)。散列值H(ID)是大于等于1且小于等 于P-1的整數(shù)。第二密碼元算出部455C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群 G、元gl、元g3和秘密隨機數(shù)s以及所算出的散列值H(ID),通過加法群G中的運算,算出將 如下的元相加得到的元并設(shè)為元Cl 將元^相加作為散列值H(ID)與秘密隨機數(shù)s之積的 H(ID) -S次得到的元;將元g3相加s次得到的元。第二密碼元算出部455C使用RAM914存 儲表示所算出的元(^的數(shù)據(jù)。由于gl= a *g、g3= y g,因此第二密碼元算出部455C所算出的元Cl為[式2了]Cl = s g3+H(ID) s = [a H(ID) + y ] s g密碼整數(shù)算出部456C使用CPU911,輸入表示密碼參數(shù)存儲部490C所存儲的密碼 參數(shù)中的階數(shù)P和散列函數(shù)H”的數(shù)據(jù)、秘密隨機數(shù)生成部451C所存儲的表示秘密隨機數(shù) s的數(shù)據(jù)、配對值算出部452C所存儲的表示元k的數(shù)據(jù)、密碼比特串算出部453C所存儲的 比特串c、第一密碼元算出部454C所存儲的表示元cQ的數(shù)據(jù)以及第二密碼元算出部455C 所存儲的表示元 的數(shù)據(jù)。密碼整數(shù)算出部456C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的散列函數(shù)H”、元k、元C(l和元Cl、以及所輸入的比特串c,算出利用散列函數(shù)H”將元k、比 特串c、元C(1與元Cl的有序?qū)ι⒘械玫降纳⒘兄礖”(k,c, c0, Cl)。散列值H”(k,c, c0, Cl) 是大于等于1且小于等于P-1的整數(shù)。密碼整數(shù)算出部456C使用CPU911,根據(jù)所輸入的數(shù) 據(jù)所表示的階數(shù)P和秘密隨機數(shù)s、以及所算出的散列值H”(k,c, c0, Cl),算出將秘密隨機 數(shù)s與散列值H” (k,c,c0,ci)之和除以階數(shù)p而得到的余數(shù)并設(shè)為整數(shù)t。密碼整數(shù)算出 部456C使用CPU911,存儲表示所算出的整數(shù)t的數(shù)據(jù)。密文輸出部470C使用CPU911,輸入密碼比特串算出部453C所存儲的比特串c、 第一密碼元算出部454C所存儲的表示元C(l的數(shù)據(jù)、第二密碼元算出部455C所存儲的表示
      64元Cl的數(shù)據(jù)、密碼整數(shù)算出部456C所存儲的表示整數(shù)t的數(shù)據(jù)。密文輸出部470C使用 CPU911,生成包含所輸入的比特串c和表示所輸入的元C(l、元Cl、整數(shù)t的數(shù)據(jù)的密文C。密 文輸出部470C使用CPU911,輸出所生成的密文C。密文輸出部470C所輸出的密文C被發(fā)送到密文解密裝置200C。圖25是表示本實施方式中的密文解密裝置200C的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密文解密裝置200C具有密碼參數(shù)存儲部290C、密鑰存儲部210C、密文輸入部 220C、密文驗證部230C、驗證裝置100C、解密文生成部260C、解密消息輸出部283C。密碼參數(shù)存儲部290C使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。密鑰存儲部210C使用具有防篡改性的存儲裝置,以保密狀態(tài)存儲預(yù)先由密鑰生 成裝置300C所生成的秘密密鑰。密文輸入部220C使用CPU911,輸入從密文生成裝置400C接收到的密文C。密文 輸入部220C使用CPU911,根據(jù)所輸入的密文C獲取比特串c和表示元cQ、元Cl、以及整數(shù) t的數(shù)據(jù)。密文輸入部220C使用RAM914,存儲所獲取的比特串c和表示元C(1、元Cl、以及整 數(shù)t的數(shù)據(jù)。密文驗證部230C根據(jù)密碼參數(shù)存儲部290C所存儲的密碼參數(shù)、密鑰存儲部210C 所存儲的秘密密鑰、以及密文輸入部220C所輸入的密文C,生成輸入到驗證裝置100C的數(shù)據(jù)。密文驗證部230C具有配對值算出部231C、整數(shù)算出部232C。配對值算出部231C使用CPU911,輸入表示密碼參數(shù)存儲部290C所表示的密碼參 數(shù)中的乘法群Gt和配對e的數(shù)據(jù)、表示密鑰存儲部210C所存儲的秘密密鑰中的秘密元屯 和秘密元屯的數(shù)據(jù)、以及密文輸入部220C所存儲的表示元C(l、元Cl的數(shù)據(jù)。配對值算出部 231C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的配對e、元C(l、以及秘密元屯,利用配對e算 出元c。與秘密元屯之間的配對值并設(shè)為配對值配對值h是乘法群Gt的元。配對值算 出部231C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的配對e、元Cl、以及秘密元屯,利用配對 e算出元Cl與秘密元屯之間的配對值并設(shè)為配對值h。配對值&是乘法群Gt的元。配對 值算出部231C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的乘法群Gt、以及所算出的配對值kQ 和配對值^,通過乘法群Gt中的運算,算出對配對值h乘以配對值^的逆元得到的元并設(shè)
      配對值算出部231C存儲表示所算出的元k的數(shù)據(jù)。 利用配對e的雙線性,配對值算出部231C所算出的元k為 [式 28]
      k = £ (0), dp) e(ci,di)
      =e (s_ g,{a-P-\-[a-H (ID) + 7] r} g') — e([a.F(ID)+7].s.p’r.p')
      = e(g,g。 =v0s
      65
      為元k。
      因而,如果密文輸入部220C所輸入的密文C為合法密文,則配對值算出部231C所 算出的元k與密文生成裝置400C的配對值算出部452C所算出的元k相等。整數(shù)算出部232C使用CPU911,輸入表示密碼參數(shù)存儲部290C所存儲的密碼參數(shù) 中的階數(shù)P和散列函數(shù)H”的數(shù)據(jù)、密文輸入部220C所存儲的比特串c和表示元C(l、元Cl、 以及整數(shù)t的數(shù)據(jù)、以及配對值算出部231C所存儲的表示元k的數(shù)據(jù)。整數(shù)算出部232C 使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H”、比特串c、元C(l、元Cl、以及所輸入的 元k,算出利用散列函數(shù)H”將元k、比特串c、元C(l、元Cl的有序?qū)ι⒘械玫降纳⒘兄礖”(k, c,c0,ci)。散列值H”(k,C,C(l,Cl)是大于等于1且小于等于p-1的整數(shù)。整數(shù)算出部232C 使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p、整數(shù)t、以及所算出的散列值H”(k,c, c0, Cl),算出將從整數(shù)t減去散列值H” (k,c,c0,ci)得到的整數(shù)除以階數(shù)p而得到的余數(shù)并設(shè) 為整數(shù)s。如果配對值算出部231C所算出的元k與密文生成裝置400C的配對值算出部452C 所算出的元k相等,則整數(shù)算出部232C所算出的整數(shù)s與秘密隨機數(shù)生成部451C所生成 的秘密隨機數(shù)s相等。驗證裝置100C判斷是否為k = v0s以及是否為cQ = s *g,在k = vQs且cQ = s 的情況下,判斷為驗證成功。驗證裝置100C輸出表示驗證結(jié)果的數(shù)據(jù)。解密文生成部260C使用CPU911,輸入表示驗證裝置100C所輸出的驗證結(jié)果的數(shù) 據(jù)。解密文生成部260C在所輸入的數(shù)據(jù)所表示的驗證結(jié)果為“驗證成功”的情況下,使用 CPU911輸入表示密碼參數(shù)存儲部290C所存儲的密碼參數(shù)中的散列函數(shù)H’的數(shù)據(jù)、密文輸 入部220C所存儲的比特串c、以及配對值算出部231C所存儲的表示元k的數(shù)據(jù)。解密文 生成部260C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H’和元k,算出利用散列函 數(shù)H’將元k數(shù)列得到的散列值H’(k)。散列值H’ (k)是規(guī)定長度的比特串。解密文生成 部260C使用CPU911,根據(jù)所輸入的比特串c和所算出的散列值H,(k),取得比特串c與散 列值H’ (k)之間的每個比特的邏輯異或并設(shè)為比特串M’。解密文生成部260C使用RAM914 存儲所算出的比特串M’。如果密文輸入部220C所輸入的密文c為合法密文,則配對值算出部231C所算出 的元k與密文生成裝置400A的配對值算出部452C所算出的元k相等,因此解密文生成部 260C所算出的比特串M’與密文生成裝置400C的消息輸入部440C所輸入的比特串M相等。解密消息輸出部283C使用CPU911,輸入解密文生成部260C所存儲的比特串M,。 解密消息輸出部283C使用CPU911輸出所輸入的比特串M’作為被解密的消息。圖26是表示本實施方式中的驗證裝置100C的內(nèi)部模塊的結(jié)構(gòu)的一例的詳細模塊 圖。驗證裝置100C具有整數(shù)分割部110C、兩個驗證值算出部130(^、130(2、驗證判斷部 150C。驗證裝置100C是與在實施方式1中說明的驗證裝置100相同的裝置,為了進行加 法群G中的運算和乘法群Gt中的運算,具有兩個驗證值算出部130(^、130(2。整數(shù)分割部110C使用CPU911,輸入表示密碼參數(shù)存儲部290C所存儲的密碼參數(shù) 中的階數(shù)P的數(shù)據(jù)作為表示在實施方式1中說明的階數(shù)P的數(shù)據(jù)。
      整數(shù)分割部110C使用CPU911,輸入整數(shù)算出部232C所存儲的表示整數(shù)s的數(shù)據(jù) 作為表示在實施方式1中說明的整數(shù)e的數(shù)據(jù)。整數(shù)分割部110C使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p和整數(shù)s,算出 滿足 ei s 三 e2(mod p) >|ei|<VP、0<e2<i的整數(shù) ei 和整數(shù) %。整數(shù)分割部110C使用RAM914存儲表示所算出的整數(shù)力和整數(shù)e2的數(shù)據(jù)。驗證值算出部130Q通過加法群G中的運算,算出加法群G的元a = % -c0-e2 -go驗證值算出部130Q使用CPU911,輸入密碼參數(shù)存儲部290C所存儲的表示密碼參 數(shù)中的元g的數(shù)據(jù)作為表示在實施方式1中說明的元s的數(shù)據(jù)。驗證值算出部130Q使用CPU911,輸入密文輸入部220C所存儲的表示元cQ的數(shù) 據(jù)作為表示在實施方式1中說明的元h的數(shù)據(jù)。驗證值算出部130Q使用CPU911,輸入整數(shù)分割部110C所存儲的表示整數(shù)和 整數(shù)%的數(shù)據(jù)。驗證值算出部130Q使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元g、元cQ、整數(shù)ei、 以及整數(shù)e2,通過加法群G中的運算,算出將如下兩個元相加得到的元并設(shè)為元a:將元C(l 相加ei次得到的元;將元g相加e2次得到的元的逆元。驗證值算出部130Q使用RAM914,存儲表示所算出的元a的數(shù)據(jù)。驗證值算出部130C2通過乘法群Gt中的運算,算出乘法群Gt的元a’ = kel Vo_e2。 此外,如果以加法方式描述乘法群Gt中的運算,則a’ = ei *k-e2 V(l,因此除了群運算的具 體計算方法不同以外,驗證值算出部130(2所進行的處理實質(zhì)上與驗證值算出部130Q所進 行的處理相同。驗證值算出部130C2使用CPU911,輸入表示密碼參數(shù)存儲部290C所存儲的密碼參 數(shù)中的元V(l的數(shù)據(jù)作為表示在實施方式1中說明的元s的數(shù)據(jù)。驗證值算出部130C2使用CPU911,輸入配對值算出部231C所存儲的表示元k的數(shù) 據(jù)作為表示在實施方式1中說明的元h的數(shù)據(jù)。驗證值算出部130C2使用CPU911,輸入整數(shù)分割部110C所存儲的表示整數(shù)和 整數(shù)%的數(shù)據(jù)。驗證值算出部130C2使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元vQ、元k、整數(shù)ei、 以及整數(shù)e2,通過乘法群Gt中的運算,算出相加如下元而得到的元并設(shè)為元a’ 將元k相乘
      次得到的元;將元V(1相乘e2次得到的元的逆元。驗證值算出部130C2使用RAM914,存儲表示所算出的元a’的數(shù)據(jù)。驗證判斷部150C使用CPU911,輸入驗證值算出部130Q所存儲的表示元a的數(shù)據(jù)、 以及驗證值算出部130(2所存儲的表示元a’的數(shù)據(jù)。驗證判斷部150C使用CPU911,根據(jù) 所輸入的數(shù)據(jù)所表示的元a,判斷元a是否為加法群G的單位元。如果元a為加法群G的單 位元,則q = s g,因此驗證判斷部150C使用CPU911,判斷為第一驗證成功。驗證值算出 部130C2使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元a’,判斷元a’是否為乘法群Gt的單位 元。如果元a’為乘法群Gt的單位元,則k = v0s驗證判斷部150C使用CPU911,判斷為第二 驗證成功。驗證判斷部150C在判斷為第一驗證成功且判斷為第二驗證成功的情況下,判斷 為“驗證成功”,在除此以外的情況下,判斷為“驗證失敗”。
      驗證判斷部150C使用CPU911輸出表示驗證結(jié)果的數(shù)據(jù)。圖27是表示本實施方式中的密文解密裝置200C解密密文C的密文解密處理流程 的一例的流程圖。在配對值算出工序S731C中,配對值算出部231C使用CPU911,根據(jù)密鑰存儲部 210C所存儲的秘密元屯、密文輸入部220C所輸入的元C(1,利用配對e算出元C(1與元屯的 配對值h = e (c0, d0)。配對值算出部231C使用CPU911,根據(jù)密鑰存儲部210C所存儲的秘 密元屯、以及密文輸入部220C所輸入的元Cl,利用配對e算出元Cl與元屯的配對值& = e(Cl,屯)。配對值算出部231C使用CPU911,根據(jù)所算出的配對值kQ和配對值&,通過乘法 群Gt中的運算,算出對配對值h乘以配對值&的逆元得到的元k = IvX。在整數(shù)算出工序S732C中,整數(shù)算出部232C使用CPU911,根據(jù)密文輸入部220C所 輸入的比特串c、元cQ和元Cl、以及通過配對值算出工序S731C由配對值算出部231C算出的 元k,算出利用散列函數(shù)H”將元k、比特串c、元C(l、元Cl的有序?qū)ι⒘械玫降纳⒘兄礖”(k, c,c0, Cl)。整數(shù)算出部232C使用CPU911,根據(jù)密碼參數(shù)存儲部290C所存儲的階數(shù)p、密文 輸入部220所輸入的整數(shù)t、以及所算出的散列值H”(k,c, c0, Cl),算出將從整數(shù)t減去散 列值H” (k, c, c0, Cl)得到的整數(shù)除以階數(shù)p而得到的余數(shù)并設(shè)為整數(shù)s。在整數(shù)分割工序S733C中,整數(shù)分割部110C使用CPU911,根據(jù)密碼參數(shù)存儲部 290C所存儲的階數(shù)p、以及通過整數(shù)算出工序S732C由整數(shù)算出部232C算出的整數(shù)s,算出
      滿足 ei s 三 e2(mod p) >|ei|<VP、0<e2<▲的整數(shù) ei 和整數(shù)在第一驗證工序S734C中,驗證值算出部130Q使用CPU911,根據(jù)密碼參數(shù)存儲部 290C所存儲的元g、密文輸入部220C所輸入的元cQ、以及通過整數(shù)分割工序S733C由整數(shù) 分割部110C算出的整數(shù)ei和整數(shù)e2,通過加法群G中的運算,算出將如下兩個元相加得到 的元并設(shè)為元a 將元C(1相加ei次得到的元;將元g相加e2次得到的元的逆元。驗證判斷部150C使用CPU911,根據(jù)驗證值算出部130Q所算出的元a,判斷元a是 否為加法群G的單位元。在元a為加法群G的單位元的情況下(S卩,C(l = s g的情況下),進入第二驗證 工序S735C。在元a不是加法群G的單位元的情況下(S卩,C(l興s g的情況下)。結(jié)束密文解 密處理。在第二驗證工序S735C中,驗證值算出部130C2使用CPU911,根據(jù)密碼參數(shù)存儲部 290C所存儲的元vQ、通過配對算出工序S731C由配對值算出部231C算出的元k、以及通過 整數(shù)分割工序S733C由整數(shù)分割部110C算出的整數(shù)ei和整數(shù)e2,通過乘法群Gt中的運算, 算出將如下兩個元相乘得到的元并設(shè)為元a’ 將元k相乘ei次得到的元;將元V(l相乘e2次 得到的元的逆元。驗證判斷部150C使用CPU911,根據(jù)驗證值算出部130C2所算出的元a,,判斷元a, 是否為乘法群Gt的單位元。在元a’為乘法群Gt的單位元的情況下(S卩,k = V(ls的情況下),進入解密文生成 工序S736C。在元a’不是乘法群Gt的單位元的情況下(S卩,k興V(ls的情況下),結(jié)束密文解密
      68
      在解密文生成工序S736C中,解密文生成部260C使用CPU911,根據(jù)通過配對值算 出工序S731C由配對值算出部231C算出的元k,算出利用散列函數(shù)H’將元k散列得到的散 列值H,(k)。解密文生成部260C使用CPU911,根據(jù)密文輸入部220C所輸入的比特串c和 所算出的散列值H’(k),取得比特串c與散列值H’(k)之間的每個比特的邏輯異或并設(shè)為 比特串M’。 解密消息輸出部283C使用CPU911,輸出解密文生成部260C所算出的比特串M,作 為所解密的消息。之后,結(jié)束密文解密處理。此外,在本例中,首先驗證是否為C(1 = s *g,之后驗證是否為k = V(1s,但是驗證順 序也可以是相反的。另外,也可以驗證值算出部130(^和驗證值算出部130C2同時并行地算 出元a禾口元a,。本實施方式中的密文解密裝置200C還具有密碼參數(shù)存儲部290C。上述密碼參數(shù)存儲部290C使用上述存儲裝置(磁盤裝置920),存儲加法群(加 法群G)的階數(shù)p、上述加法群GJ加法群G)的生成元g、以及以上述階數(shù)p為階數(shù)的乘法 群Gt的元vQ。上述密鑰存儲部210C使用上述存儲裝置,存儲以上述階數(shù)p為階數(shù)的加法群 G2(加法群G’)的元(秘密元)dQ、以及上述加法群&(加法群G’)的元(秘密元)屯。上述密文輸入部220C使用上述處理裝置(CPU911),輸入比特串c、上述加法群 的元c。、上述加法群&的元Cl、以及大于等于1且小于等于p-1的整數(shù)t作為上述密文C。上述密文驗證部230C具有配對值算出部231C和整數(shù)算出部232C。上述配對值算出部231C使用上述處理裝置(CPU911),根據(jù)上述密文輸入部220 所輸入的元c。、以及上述密鑰存儲部210C所存儲的元(秘密元)d0,利用規(guī)定的配對函數(shù)e 算出上述元C(1與上述元(秘密元)d0之間的配對值并設(shè)為上述乘法群Gt的元h ( = e (c0, d0)),根據(jù)上述密文輸入部220C所輸入的元Cl、以及上述密鑰存儲部210C所存儲的元屯, 利用上述配對函數(shù)e算出上述元Cl與上述元屯之間的配對值并設(shè)為上述乘法群Gt的元 & ( = e (Cl,屯)),根據(jù)所算出的上述元h和所算出的上述元&,對上述元h乘以上述元& 的逆元而設(shè)為上述乘法群Gt的元k( = IvX)。上述整數(shù)算出部232C使用上述處理裝置(CPU911),根據(jù)上述配對值算出部231C 所算出的元k、以及上述密文輸入部220C所輸入的比特串c、元C(1和元Cl,算出利用規(guī)定的 散列函數(shù)H”將上述元k、上述比特串c、上述元C(l和上述元(^散列得到的散列值并設(shè)為整數(shù) (散列值)H” (k,c, c0, Cl),根據(jù)上述密文輸入部220C所輸入的整數(shù)t、所算出的整數(shù)H” (k, c,c0, Cl)、以及上述密碼參數(shù)存儲部290C所存儲的階數(shù)p,算出將從上述整數(shù)t減去上述整 數(shù)H”(k,c, c0, Cl)而得到的整數(shù)除以階數(shù)p而得到的余數(shù)并設(shè)為整數(shù)s ( = t-H”(k,c, c0, c^mod p)。上述驗證裝置100C將上述加法群GJ加法群G)作為上述有限群G,輸入作為上 述階數(shù)P的上述密碼參數(shù)存儲部290C所存儲的階數(shù)p、作為上述整數(shù)e的上述整數(shù)算出部 232C所算出的整數(shù)s、作為上述元s的上述密碼參數(shù)存儲部290C所存儲的生成元g、以及 作為上述元h的上述密文輸入部220C所輸入的元C(l,判斷驗證是否成功來作為第一驗證結(jié)
      69果;將上述乘法群Gt作為上述有限群G,輸入作為上述階數(shù)p的上述密碼參數(shù)存儲部290C 所存儲的階數(shù)P、作為上述整數(shù)e的上述整數(shù)算出部232C所算出的整數(shù)s、作為上述元s的 上述密碼參數(shù)存儲部290C所存儲的元vQ、以及作為上述元h的上述配對值算出部231C所 算出的元k,判斷驗證是否成功來作為第二驗證結(jié)果。上述解密文生成部260C使用上述處理裝置(CPU911),在上述驗證裝置100C在上 述第一驗證結(jié)果和上述第二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)上述配對值算出 部231C所算出的元k,算出利用規(guī)定的散列函數(shù)H’將上述元k散列得到的散列值并設(shè)為比 特串H’(k),根據(jù)上述密文輸入部220C所輸入的比特串c和所算出的比特串H’(k),取得 上述比特串c與上述比特串H’ (k)之間的邏輯異或并設(shè)為比特串M,( = cXOR H’(k)),輸 出所算出的比特串M’作為上述解密文。根據(jù)本實施方式中的密文解密裝置200C,在驗證裝置100C驗證是否為cQ = s g 且k = V(ls而判斷為驗證成功的情況下,解密文生成部260C生成解密文,因此能夠防止對非 法者提供解讀密碼的線索。另外,能夠縮短驗證裝置100C驗證是否為C(l = s 且k = vQs 的處理所花費的時間,因此起到如下效果能夠縮短密文解密裝置200C解密密文的處理整 體所花費的時間。以上說明的密文解密裝置200C是基于BB(B0neh-B0yen) 1-ID的密碼解密裝置。密文解密裝置200C輸入秘密密鑰dID = (d0,屯)和密文C = (c, c0, Cl,t),具有:計算裝置(配對值算出部231C),計算配對值的比k = e(c0, d0)/e(Cl,屯);計算裝置(整數(shù)算出部232C),計算整數(shù)s = t_H”(k,c, c0, Cl);分割指數(shù)部(整數(shù))s的裝置(整數(shù)分割部110C);使用被分割的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群Gt中的二基底指數(shù)取冪,來計 算值kel v0-e2的裝置(驗證值算出部130C2);以及判斷該值是否與乘法群Gt的單位元1相等的裝置(驗證判斷部150C)。以上說明的密文解密裝置200C是基于BB1-ID的密碼系統(tǒng)(基于ID的公開密鑰 密碼系統(tǒng)820C)內(nèi)的密鑰解封裝裝置。密文解密裝置200C (基于BB1-ID的密碼密鑰解封裝裝置)輸入秘密密鑰dID = (d。,di)和密文 C = (c,c0, Cl,t),具有計算裝置(配對值算出部231C),計算配對值的比k = e(c0, d0)/e(Cl,屯);計算裝置(整數(shù)算出部232C),計算整數(shù)s = t_H”(k,c, c0, Cl);分割指數(shù)部(整數(shù))s的裝置(整數(shù)分割部110C);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群Gt中的二基底指數(shù)取冪,來 計算值kel v0-e2的裝置(驗證值算出部130C2);以及判斷該值是否與乘法群Gt的單位元1相等的裝置(驗證判斷部150C)。以上說明的密文解密裝置200C (基于BB1-ID的密碼解密裝置)輸入秘密密鑰dID =(d0, di)和密文 C = (c,c0, Cl,t),具有計算裝置(配對值算出部231C),計算配對值的比k = e(c0, d0)/e(Cl,屯);計算裝置(整數(shù)算出部232C),計算整數(shù)s = t_H”(k,c, c0, Cl);分割指數(shù)部(整數(shù))s的裝置(整數(shù)分割部110C);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群Gt中的二基底指數(shù)取冪,來計算值kel v0-e2的裝置(驗證值算出部130C2);以及判斷該值是否與乘法群Gt的單位元1相等的裝置(驗證判斷部150C)。以上說明的密文解密裝置200C(基于BB1-ID的密碼密鑰解封裝裝置)輸入秘密 密鑰 dID = (d0, cQ 和密文 C = (c, c0, Cl,t),具有計算裝置(配對值算出部231C),計算配對值的比k = e(c0, d0)/e(Cl,屯);計算裝置(整數(shù)算出部232C),計算整數(shù)s = t_H”(k,c, c0, Cl);分割指數(shù)部(整數(shù))s的裝置(整數(shù)分割部110C);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行(超)橢圓曲線上的點所形成的元 等加法群G中的二基底標量倍算,來計算值(ei c0-e2 g)的裝置(驗證值算出部130C》; 以及判斷該值是否與加法群G的單位元0相等的裝置(驗證判斷部150C)。以上說明的基于ID的公開密鑰密碼系統(tǒng)820C是基于BB1-ID的密碼系統(tǒng)。在基于ID的公開密鑰密碼系統(tǒng)820C中,使用階數(shù)p為素數(shù)的加法群G、加法群G’、 乘法群Gt、加法群G的生成元g、加法群G’的生成元g’以及配對e。密碼參數(shù)設(shè)定裝置810C進行設(shè)定處理(Setup)。密碼參數(shù)設(shè)定裝置810C使用 CPU911,生成大于等于1且小于等于p-1的隨機的整數(shù)a、整數(shù)3、整數(shù)Y,計算群G的 元A = a g、群G的元& = g、群G的元g3 = y . go密碼參數(shù)設(shè)定裝置810C使用 CPU911,計算群 G,的元 g, = a .g,、群 G,的元 g,2 = 3 .g,、群 G,的元 g,3 = Y .g,。 密碼參數(shù)設(shè)定裝置810C使用CPU911,計算群G’的元g’Q= (a *g’和作為乘法群Gt 的元的配對值vQ = e (g,g’ Q) ( S卩,vQ = e (g,g’)a e)。密碼參數(shù)設(shè)定裝置810C輸出(g, &,g3,v0)作為PKG的公開密鑰,輸出(g’,a,3,Y)作為PKG的秘密密鑰。密鑰生成裝置300C進行秘密密鑰導(dǎo)出處理(Extract)。密鑰生成裝置300C 使用CPU911,輸入用于識別密文解密裝置200C的比特串ID,生成大于等于1且小于等 于P-1的隨機的整數(shù)(秘密隨機數(shù))r。密鑰生成裝置300C使用CPU911,計算整數(shù)e = a H(ID) + y) 1~、群6’ 的元 dQ = e g’ 以及群 G’ 的元屯^’,輸出(d0, 屯)作為對于ID的秘密密鑰dID。密文生成裝置400C進行加密處理(Encrypt)。密文生成裝置400C使用CPU911, 輸入明文(比特串)M和接收者ID (用于識別密文解密裝置200C的比特串ID)。密文生成 裝置400C使用CPU911,生成大于等于1且小于等于p-1的隨機整數(shù)(秘密隨機數(shù))s。密 文生成裝置400C使用CPU911,計算Gt的元k = v0so密文生成裝置400C使用CPU911,利 用散列函數(shù)H、H,、H”,計算比特串c = X0R(M, H,(k))、群G的元cQ = s g、群G的元Cl = s g3+(H(ID) s) gl、整數(shù) t = s+H”(k,c, c0, Cl)。密文生成裝置 400C 使用 CPU911,輸 出笛、又 C = (c,c0,c1 ? t)。密文解密裝置200C進行解密處理(Decrypt)。密文解密裝置200C使用CPU911輸 入秘密密鑰dID= (do,^)和密文C= (C,C(1,Cl,t)。密文解密裝置200C使用CPU911,計算 乘法群 Gt 的元 k = e (c0, d0) /e (Cl,cQ 和整數(shù) s = t_H”(k,c, c0, Cl),檢查 k = v0s 和 cQ = s*g是否成立。如果不成立,則密文解密裝置200C使用CPU911輸出“拒絕”。如果成立, 則密文解密裝置200C使用CPU911,算出并輸出比特串M = X0R(c,H,(k))。以上說明的驗證裝置100C在這種基于BB1-ID的密碼系統(tǒng)中使檢查k = v0s和cQ=s g是否成立的處理高速地進行。在驗證裝置100C中,整數(shù)分割部110C使用CPU911輸入s和p,算出成為 ei s三e2(mod p)的整數(shù)ei和整數(shù)e2。驗證值算出部130C2使用CPU911,通過乘法群Gt 中的二基底取冪,計算Vi = kel Vo_s2。驗證判斷部150C使用CPU911檢查是否為Vl = 1, 由此高速地檢查k = v0s是否成立。在Vl = 1成立的情況下,驗證值算出部130Q使用CPU911,通過加法群G中的二 基底標量倍算,計算W = ei c0-e2 g。驗證判斷部150C使用CPU911檢查是否為W = 0, 由此高速地檢查C(1 = s g是否成立。(實施方式5)使用圖28 圖33來說明實施方式5。圖28是表示本實施方式中的基于ID的簽名系統(tǒng)820D的整體結(jié)構(gòu)的一例的系統(tǒng) 結(jié)構(gòu)圖?;贗D的簽名系統(tǒng)820D是將用于識別簽名裝置400D的識別數(shù)據(jù)用作簽名裝置 400D的公開密鑰的電子簽名系統(tǒng)?;贗D的簽名系統(tǒng)820D具有密碼參數(shù)設(shè)定裝置810D、密鑰生成裝置300D、簽名 裝置400D、簽名驗證裝置200D。密碼參數(shù)設(shè)定裝置810D確定在基于ID的簽名系統(tǒng)820D中利用的密碼參數(shù)。密 碼參數(shù)設(shè)定裝置810D所確定的密碼參數(shù)被公開于基于ID的簽名系統(tǒng)820D的用戶。密碼 參數(shù)設(shè)定裝置810D所確定的密碼參數(shù)中例如有階數(shù)p、加法群G、加法群G的元g、散列函數(shù) H、散列函數(shù)H,等。階數(shù)p是素數(shù)。加法群G的階數(shù)是階數(shù)p。元g是加法群G的生成元。散列函數(shù)H是根據(jù)加法群G的元和任意長度的比特串的組生成大于等于1且小于 等于P-1的整數(shù)的散列函數(shù)。散列函數(shù)H’是根據(jù)任意長度的兩個比特串的有序?qū)?、以及加法群G的三個元的有 序?qū)Φ慕M生成大于等于1且小于等于P-1的整數(shù)的散列函數(shù)。此外,在這些密碼參數(shù)被預(yù)先確定的情況下,密碼參數(shù)設(shè)定裝置810D也可以不確 定這些密碼參數(shù)。另外,密碼參數(shù)設(shè)定裝置810D生成主密鑰和根據(jù)主密鑰生成的公開參數(shù)。密碼參 數(shù)設(shè)定裝置810D所生成的主密鑰中包含大于等于1且小于等于p-1的整數(shù)x。密碼參數(shù)設(shè) 定裝置810D所生成的主密鑰以保密狀態(tài)被通知給密鑰生成裝置300D。另外,密碼參數(shù)設(shè)定 裝置810D所生成的公開參數(shù)中包含加法群G的元X。密碼參數(shù)設(shè)定裝置810D所生成的公 開參數(shù)被公開于基于ID的簽名系統(tǒng)820D的用戶。密鑰生成裝置300D以保密狀態(tài)保持從密碼參數(shù)設(shè)定裝置810D通知的主密鑰。密 鑰生成裝置300D根據(jù)被公開的密碼參數(shù)、被公開的簽名裝置400D的識別數(shù)據(jù)ID以及所保 持的主密鑰,生成簽名裝置400D的簽名密鑰。密鑰生成裝置300D所生成的簽名密鑰中包 含大于等于1且小于等于P-1的整數(shù)s、以及加法群G的元R。密鑰生成裝置300D所生成 的簽名密鑰以保密狀態(tài)被通知給簽名裝置400D。簽名裝置400D以保密狀態(tài)保持從密鑰生成裝置300D通知的簽名密鑰。簽名裝置
      72400D根據(jù)被公開的密碼參數(shù)、公開參數(shù)和所保持的簽名密鑰,生成對于消息M的簽名o。簽 名o保證消息M的內(nèi)容沒有被改變。簽名驗證裝置200D根據(jù)被公開的密碼參數(shù)、公開參數(shù)和簽名裝置400D的識別數(shù) 據(jù)ID,驗證附加在消息M中的簽名o,來判斷消息M是否被改變。簽名驗證裝置200D輸出 驗證結(jié)果。圖29是表示本實施方式中的密碼參數(shù)設(shè)定裝置810D的一部分功能模塊的結(jié)構(gòu)的 一例的模塊結(jié)構(gòu)圖。密碼參數(shù)設(shè)定裝置810D具有密碼參數(shù)存儲部819D、秘密隨機數(shù)生成部812D、公開 元算出部813D、主密鑰輸出部814D、公開參數(shù)輸出部815D。密碼參數(shù)存儲部819D使用磁盤裝置920存儲被公開的密碼參數(shù)。秘密隨機數(shù)生成部812D使用CPU911,輸入表示密碼參數(shù)存儲部819D所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部812D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P隨機地生成大于等于1且小于等于P-1的整數(shù)并設(shè)為秘密隨機數(shù)x。秘密隨機數(shù) 生成部812D使用RAM914存儲表示所生成的秘密隨機數(shù)x的數(shù)據(jù)。公開元算出部813D使用CPU911,輸入表示密碼參數(shù)存儲部819D所存儲的密碼參 數(shù)中的加法群G和元g的數(shù)據(jù)、以及秘密隨機數(shù)生成部812D所存儲的表示秘密隨機數(shù)x的 數(shù)據(jù)。公開元算出部813D根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和秘密隨機數(shù)x,通過 加法群G中的運算,算出將元g相加x次得到的元并設(shè)為公開元X。公開元算出部813D使 用RAM914存儲表示所算出的公開元X的數(shù)據(jù)。主密鑰輸出部814D使用CPU911,輸入秘密隨機數(shù)生成部812D所存儲的表示秘密 隨機數(shù)x的數(shù)據(jù)。主密鑰輸出部814D使用CPU911輸出表示所輸入的秘密隨機數(shù)x的數(shù)據(jù) 作為主密鑰。主密鑰輸出部814D所輸出的主密鑰以保密狀態(tài)被通知給密鑰生成裝置300D。公開參數(shù)輸出部815D使用CPU911,輸入公開元算出部813D所存儲的表示公開元 X的數(shù)據(jù)。公開參數(shù)輸出部815D使用CPU911,輸出表示所輸入的公開元X的數(shù)據(jù)作為公開參數(shù)。公開參數(shù)輸出部815D所輸出的公開參數(shù)與密碼參數(shù)一起被公開于基于ID的簽名 系統(tǒng)820D的用戶。圖30是表示本實施方式中的密鑰生成裝置300D的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。密鑰生成裝置300D具有密碼參數(shù)存儲部390D、主密鑰存儲部330D、識別輸入部 340D、簽名密鑰生成部350D、簽名密鑰輸出部360D。密碼參數(shù)存儲部390D使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。主密鑰存儲部330D使用具有防篡改性的存儲裝置,存儲從密碼參數(shù)設(shè)定裝置 810D通知的主密鑰。識別輸入部340D使用CPU911,輸入作為用于識別應(yīng)生成簽名密鑰的簽名裝置 400D的識別數(shù)據(jù)的任意長度的比特串ID。識別輸入部340D使用RAM914存儲表示所輸入 的比特串ID的數(shù)據(jù)。[1008]簽名密鑰生成部350D根據(jù)密碼參數(shù)存儲部390D所存儲的密碼參數(shù)、主密鑰存儲 部330D所存儲的主密鑰、以及識別輸入部340D所輸入的比特串ID,生成簽名裝置400D的 簽名密鑰。簽名密鑰生成部350D具有秘密隨機數(shù)生成部351D、密鑰元算出部352D、密鑰整數(shù) 算出部353D。秘密隨機數(shù)生成部351D使用CPU911,輸入表示密碼參數(shù)存儲部390D所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部351D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P隨機地生成大于等于1且小于等于P-1的整數(shù)并設(shè)為秘密隨機數(shù)r。秘密隨機數(shù) 生成部351D使用RAM914存儲表示所生成的秘密隨機數(shù)r的數(shù)據(jù)。密鑰元算出部352D使用CPU911,輸入表示密碼參數(shù)存儲部390D所存儲的密碼參 數(shù)中的加法群G和元g的數(shù)據(jù)、以及秘密隨機數(shù)生成部351D所存儲的表示秘密隨機數(shù)r的 數(shù)據(jù)。密鑰元算出部352D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g和秘密 隨機數(shù)r,通過加法群G中的運算,算出將元g相加r次得到的元r 并設(shè)為元R。密鑰元 算出部352D使用RAM914存儲表示所算出的元R的數(shù)據(jù)。密鑰整數(shù)算出部353D使用CPU911,輸入表示密碼參數(shù)存儲部390D所存儲的密碼 參數(shù)中的階數(shù)P和散列函數(shù)H的數(shù)據(jù)、表示主密鑰存儲部330D所存儲的主密鑰中的秘密隨 機數(shù)x的數(shù)據(jù)、識別輸入部340D所存儲的比特串ID、秘密隨機數(shù)生成部351D所存儲的表 示秘密隨機數(shù)r的數(shù)據(jù)、以及表示密鑰元算出部352D所算出的元R的數(shù)據(jù)。密鑰整數(shù)算出 部353D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H和元R、以及所輸入的比特串 ID,算出利用散列函數(shù)H將元R與比特串ID的組散列得到的散列值H(R,ID)。密鑰整數(shù)算 出部353D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p、秘密隨機數(shù)x、和秘密隨機數(shù)r、 以及所算出的散列值H(R,ID),算出將散列值H(R,ID)與秘密隨機數(shù)x之積和秘密隨機數(shù) r的和除以階數(shù)p而得到的余數(shù)并設(shè)為整數(shù)s。密鑰整數(shù)算出部353D使用RAM914存儲表 示所算出的整數(shù)s的數(shù)據(jù)。簽名密鑰輸出部360D使用CPU911,輸入密鑰元算出部352D所存儲的表示元R的 數(shù)據(jù)、以及密鑰整數(shù)算出部353D所存儲的表示整數(shù)s的數(shù)據(jù)。簽名密鑰輸出部360D使用 CPU911,輸出表示所輸入的整數(shù)s和元R的數(shù)據(jù)作為簽名密鑰。簽名密鑰輸出部360D所輸出的簽名密鑰以保密狀態(tài)被通知給簽名裝置400D。圖31是表示本實施方式中的簽名裝置400D的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。簽名裝置400D具有密碼參數(shù)存儲部490D、識別存儲部410D、簽名密鑰存儲部 420D、消息輸入部440D、簽名生成部450D、簽名輸出部470D。密碼參數(shù)存儲部490D使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)的數(shù) 據(jù)。識別存儲部410D使用磁盤裝置920存儲用于識別簽名裝置400D自身的比特串 ID。簽名密鑰存儲部420D使用具有防篡改性的存儲裝置,存儲表示密鑰生成裝置 300D所生成的簽名密鑰的數(shù)據(jù)。消息輸入部440D使用CPU911,輸入作為應(yīng)簽名的消息的任意長度的比特串M。消息輸入部440D使用RAM914存儲所輸入的比特串M。簽名生成部450D根據(jù)密碼參數(shù)存儲部490D所存儲的密碼參數(shù)、識別存儲部410D 所存儲的比特串ID、簽名密鑰存儲部420D所存儲的簽名密鑰、以及消息輸入部440D所輸入 的比特串M,生成簽名o。簽名生成部450D具有第一簽名元算出部451D、秘密隨機數(shù)生成部452D、第二簽名 元算出部453D、挑戰(zhàn)算出部454D、簽名整數(shù)算出部455D。第一簽名元算出部451D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)、表示簽名密鑰存儲部420D所存儲的簽名密鑰中的整數(shù) s的數(shù)據(jù)。第一簽名元算出部451D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g 和整數(shù)s,通過加法群G中的運算,算出將元g相加s次得到的元并設(shè)為元S。第一簽名元 算出部451D使用RAM914,存儲表示所算出的元S的數(shù)據(jù)。此外,與比特串M無關(guān)地,元S是固定的,因此第一簽名元算出部451D也可以在由 消息輸入部440D輸入比特串M之前預(yù)先算出元S,使用磁盤裝置920進行存儲。秘密隨機數(shù)生成部452D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密 碼參數(shù)中的階數(shù)P的數(shù)據(jù)。秘密隨機數(shù)生成部452D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示 的階數(shù)P,隨機地生成大于等于1且小于等于P-1的整數(shù)并設(shè)為秘密隨機數(shù)y。秘密隨機數(shù) 生成部452D使用RAM914,存儲表示所生成的秘密隨機數(shù)y的數(shù)據(jù)。第二簽名元算出部453D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密 碼參數(shù)中的加法群G和元g的數(shù)據(jù)、以及秘密隨機數(shù)生成部452D所存儲的表示秘密隨機數(shù) y的數(shù)據(jù)。第二簽名元算出部453D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g 和秘密隨機數(shù)1,通過加法群G中的運算,算出將元g相加y次得到的元并設(shè)為元Y。第二 簽名元算出部453D使用RAM914,存儲表示所算出的元Y的數(shù)據(jù)。挑戰(zhàn)算出部454D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密碼參數(shù) 中的散列函數(shù)H’的數(shù)據(jù)、識別存儲部410D所存儲的比特串ID、表示簽名密鑰存儲部420D 所存儲的簽名密鑰中的元R的數(shù)據(jù)、消息輸入部440D所存儲的比特串M、第一簽名元算出 部451D所存儲的表示元S的數(shù)據(jù)、以及第二簽名元算出部453D所存儲的表示元Y的數(shù)據(jù)。 挑戰(zhàn)算出部454D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的元R、元S和元Y、以及所輸入的 比特串ID和比特串M,算出利用散列函數(shù)H’將比特串ID與比特串M的有序?qū)?、和元R、元 S與元Y的有序?qū)Φ慕M散列得到的散列值并設(shè)為散列值c。散列值c是大于等于1且小于 等于P-1的整數(shù)。挑戰(zhàn)算出部454D使用RAM914,存儲表示所算出的散列值c的數(shù)據(jù)。簽名整數(shù)算出部455D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密碼 參數(shù)中的階數(shù)P的數(shù)據(jù)、表示簽名密鑰存儲部420D所存儲的簽名密鑰中的整數(shù)s的數(shù)據(jù)、 秘密隨機數(shù)生成部452D所存儲的表示秘密隨機數(shù)y的數(shù)據(jù)、以及挑戰(zhàn)算出部454D所存儲 的表示散列值c的數(shù)據(jù)。簽名整數(shù)算出部455D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階 數(shù)P、整數(shù)s、秘密隨機數(shù)y和散列值c,算出將散列值c與整數(shù)s之積和秘密隨機數(shù)y的和 除以階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)z。簽名整數(shù)算出部455D使用RAM914,存儲表示所算 出的整數(shù)z的數(shù)據(jù)。簽名輸出部470D使用CPU911,輸入表示簽名密鑰存儲部420D所存儲的簽名密 鑰中的元R的數(shù)據(jù)、第一簽名元算出部451D所存儲的表示元S的數(shù)據(jù)、第二簽名元算出部
      75453D所存儲的表示元Y的數(shù)據(jù)、簽名整數(shù)算出部455D所存儲的表示整數(shù)z的數(shù)據(jù)。簽名輸 出部470D使用CPU911,根據(jù)所輸入的數(shù)據(jù),生成包含表示所輸入的元R、元S、元Y、以及整 數(shù)z的數(shù)據(jù)的簽名o。簽名輸出部470D使用CPU911輸出所生成的簽名0。圖32是表示本實施方式中的簽名驗證裝置200D的功能模塊的結(jié)構(gòu)的一例的模塊 結(jié)構(gòu)圖。簽名驗證裝置200D具有密碼參數(shù)存儲部290D、識別存儲部210D、消息輸入部 225D、簽名輸入部220D、簽名驗證部230D、驗證裝置100D、驗證結(jié)果輸出部260D。密碼參數(shù)存儲部290D使用磁盤裝置920,預(yù)先存儲表示被公開的密碼參數(shù)(還包 含公開參數(shù))的數(shù)據(jù)。識別存儲部210D使用磁盤裝置920,存儲用于識別簽名裝置400D的比特串ID。消息輸入部225D使用CPU911,輸入作為附加有簽名o的消息的比特串M。消息 輸入部225D使用RAM914,存儲所輸入的比特串M。簽名輸入部220D使用CPU911,輸入附加在消息輸入部225D所輸入的比特串M中 的簽名o。簽名輸入部220D使用CPU911,從所輸入的簽名o中獲取表示元R、元S、元Y 和整數(shù)z的數(shù)據(jù)。簽名輸入部220D使用RAM914,存儲表示所獲取的元R、元S、元Y和整數(shù) z的數(shù)據(jù)。簽名驗證部230D具有挑戰(zhàn)算出部231D、整數(shù)算出部232D、驗證元算出部233D、第 一驗證部250D。挑戰(zhàn)算出部231D使用CPU911,輸入密碼參數(shù)存儲部290D所存儲的表示散列函 數(shù)H’的數(shù)據(jù)、識別存儲部210D所存儲的用于識別簽名裝置400D的比特串ID、簽名輸入部 220D所存儲的表示元R、元S和元Y的數(shù)據(jù)、以及消息輸入部225D所存儲的比特串M。挑戰(zhàn) 算出部231D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的散列函數(shù)H’、元R、元S和元Y、以及 所輸入的比特串ID和比特串M,算出利用散列函數(shù)H’將比特串ID與比特串M的有序?qū)Α?和元R、元S與元Y的有序?qū)Φ慕M散列得到的散列值并設(shè)為散列值c。散列值c是大于等于 1且小于等于P-1的整數(shù)。挑戰(zhàn)算出部231D使用RAM914,存儲表示所算出的散列值c的數(shù) 據(jù)。如果比特串M未改變,則挑戰(zhàn)算出部231D所算出的散列值c與簽名裝置400D的 挑戰(zhàn)算出部454D所算出的散列值c相等。整數(shù)算出部232D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參數(shù) 中的散列函數(shù)H的數(shù)據(jù)、識別存儲部210D所存儲的用于識別簽名裝置400D的比特串ID、以 及簽名輸入部220D所存儲的表示元R的數(shù)據(jù)。整數(shù)算出部232D使用CPU911,根據(jù)所輸入 的數(shù)據(jù)所表示的散列函數(shù)H和元R、以及所輸入的比特串ID,算出利用散列函數(shù)H將元R與 比特串ID的組散列得到的散列值并設(shè)為散列值h。散列值h是大于等于1且小于等于p-1 的整數(shù)。整數(shù)算出部232D使用CPU911,存儲表示所算出的散列值h的數(shù)據(jù)。驗證元算出部233D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參 數(shù)中的加法群G的數(shù)據(jù)、以及簽名輸入部220D所存儲的表示元R和元S的數(shù)據(jù)。驗證元 算出部233D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元R和元S,通過加法群G 中的運算、算出將元S與元R的逆元相加得到的元并設(shè)為元R’。驗證元算出部233D使用 RAM914,存儲表示所算出的元R’的數(shù)據(jù)。
      76[1041]第一驗證部250D驗證是否為z g = Y+c S。第一驗證部250D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參數(shù) 中的加法群G和元g的數(shù)據(jù)、簽名輸入部220D所存儲的表示元S、元Y和整數(shù)z的數(shù)據(jù)、挑 戰(zhàn)算出部231D所存儲的表示散列值c的數(shù)據(jù)。第一驗證部250D使用CPU911,根據(jù)所輸入 的數(shù)據(jù)所表示的加法群G、元g、元S、元Y、整數(shù)z和散列值c,通過加法群G中的運算,判斷 對將元S相加c次得到的元加上元Y的元Y+c S是否與將元g相加z次得到的元z g相 等。第一驗證部250D使用CPU911,在元z g與元Y+c S相等的情況下,判斷為“驗證成 功”,在元z g與元Y+c S不相等的情況下,判斷為“驗證失敗”。第一驗證部250D使用 CPU911存儲表示驗證結(jié)果的數(shù)據(jù)。由于 Y = y g、S = s g、z = y+c s mod p,因此,[式四]Y+c S = (y+c s) g = z g因而,如果比特串M未改變,則z g = Y+c S成立。驗證裝置100D驗證是否為R,= h X。驗證裝置100D是與實施方式1中說明的驗證裝置100相同的裝置。驗證裝置100D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參數(shù)中 的階數(shù)P的數(shù)據(jù)作為表示在實施方式1中說明的階數(shù)P的數(shù)據(jù)。驗證裝置100D使用CPU911,輸入整數(shù)算出部232D所存儲的表示散列值h的數(shù)據(jù) 作為表示在實施方式1中說明的整數(shù)e的數(shù)據(jù)。驗證裝置100D使用CPU911,輸入驗證元算出部233D所存儲的表示元R,的數(shù)據(jù)作 為表示在實施方式1中說明的元h的數(shù)據(jù)。驗證裝置100D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參數(shù)中 的公開元X的數(shù)據(jù)作為表示在實施方式1中說明的元s的數(shù)據(jù)。驗證裝置100D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù)p、散列值h、元R,和 公開元X,驗證是否為R’ = h X。驗證裝置100D使用CPU911,在R,= h X的情況下,判斷為“驗證成功”,在 R’興h X的情況下判斷為“驗證失敗”。驗證裝置100D使用CPU911輸出表示驗證結(jié)果的數(shù)據(jù)。由于 R = r*g>S = s*g = r+H(R, ID) x mod p、h = H(R, ID)、X = x g,因此[式30]R' = S-R= (r+H(R, ID) x) g_r g= h X因而,如果比特串M未改變,則R’ =h*X成立。驗證結(jié)果輸出部260D使用CPU911,輸入第一驗證部250D所存儲的表示驗證結(jié)果 的數(shù)據(jù)、以及驗證結(jié)果輸出部260D所輸出的表示驗證結(jié)果的數(shù)據(jù)。驗證結(jié)果輸出部260D使 用CPU911,根據(jù)所輸入的兩個驗證結(jié)果,在第一驗證部250D和驗證裝置100D都判斷為“驗 證成功”的情況下,判斷為“驗證成功”,在除此以外的情況下,判斷為“驗證失敗”。驗證結(jié) 果輸出部260D使用CPU911,輸出表示驗證結(jié)果的數(shù)據(jù)。
      77[1063]圖33是表示本實施方式中的簽名驗證裝置200D驗證簽名o的簽名驗證處理的 流程的一例的流程圖。在挑戰(zhàn)算出工序S731D中,挑戰(zhàn)算出部231D使用CPU911,根據(jù)識別存儲部210D所 存儲的比特串ID、簽名輸入部220D所輸入的元R、元S和元Y、以及消息輸入部22OT所輸入 的比特串M,算出利用散列函數(shù)H’將比特串ID與比特串M的有序?qū)?、和元R、元S與元Y的 有序?qū)Φ慕M散列得到的散列值H’ (ID, R,S, Y,M)并設(shè)為散列值c。在第一驗證工序S732D中,第一驗證部250D使用CPU911,根據(jù)密碼參數(shù)存儲部 290D所存儲的階數(shù)p和元g、簽名輸入部220D所輸入的元S、元Y和整數(shù)z、以及通過挑戰(zhàn) 算出工序S731D由挑戰(zhàn)算出部231D算出的散列值c,驗證是否為z g = Y+c S。在z g = Y+c S的情況下,進入整數(shù)算出工序S733D。在z g乒Y+c S的情況下,進入失敗判斷工序S737D。在整數(shù)算出工序S733中,整數(shù)算出部232D使用CPU911,根據(jù)識別存儲部210D所 存儲的比特串ID、簽名輸入部220D所輸入的元R,算出利用散列函數(shù)H將元R與比特串ID 的組散列得到的散列值H(R,ID)并設(shè)為散列值h。在驗證元算出工序S734D中,驗證元算出部233D使用CPU911,根據(jù)簽名輸入部 220D所輸入的元R和元S,通過加法群G中的運算,算出對元S加上元R的逆元得到的元 S-R并設(shè)為元R’。在第二驗證工序S735D中,驗證裝置100D使用CPU911,根據(jù)密碼參數(shù)存儲部290D 所存儲的階數(shù)P和元X、通過整數(shù)算出工序S733D由整數(shù)算出部232D算出的散列值h、以及 通過驗證元算出工序S734D由驗證元算出部233D算出的元R’,驗證是否為R’ = h X。在R’ = h X的情況下,進入成功判斷工序S736D。在R’乒h X的情況下,進入失敗判斷工序S737D。在成功判斷工序S736中,驗證結(jié)果輸出部260D使用CPU911,判斷為驗證成功并輸 出驗證結(jié)果。之后,結(jié)束簽名驗證處理。在失敗判斷工序S737D中,驗證結(jié)果輸出部260D使用CPU911,判斷為驗證失敗并 輸出驗證結(jié)果。之后,結(jié)束簽名驗證處理。此外,在本例中,首先驗證是否為z g = Y+c S,接著驗證是否為R’ = h X,但 是作為驗證的順序,哪個驗證在前都可以。本實施方式中的簽名驗證裝置200D具有處理數(shù)據(jù)的處理裝置(CPU911)、消息輸 入部225D、簽名輸入部220D、簽名驗證部230D、驗證裝置100D以及驗證結(jié)果輸出部260D。上述消息輸入部22OT使用上述處理裝置(CPU911)輸入消息(比特串M)。上述簽名輸入部220D使用上述處理裝置(CPU911),輸入對于上述消息輸入部 225D所輸入的消息(比特串M)的簽名o。上述簽名驗證部230D使用上述處理裝置(CPU911),根據(jù)上述消息輸入部225D所 輸入的消息(比特串M)、以及上述簽名輸入部220D所輸入的簽名o,算出輸入到上述驗證 裝置100D的整數(shù)e (散列值h)、上述有限群(加法群)G的元s (公開元X)、以及上述有限 群(加法群)G的元h (元R’)。[1082]上述驗證裝置100D輸入上述簽名驗證部230D所算出的整數(shù)e (散列值h)、上述有 限群(加法群)G的元s (公開元X)、以及上述有限群(加法群)G的元h (元R’),判斷驗證 是否成功。上述驗證結(jié)果輸出部260D使用上述處理裝置(CPU911),根據(jù)上述驗證裝置100D 所驗證的結(jié)果,輸出表示驗證是否成功的驗證結(jié)果。根據(jù)本實施方式中的簽名驗證裝置200D,通過驗證裝置100D判斷是否為h = e s,能夠驗證簽名。另外,能夠縮短驗證裝置100D驗證簽名的匹配性的處理所花費的時 間,因此起到如下效果能夠縮短簽名驗證裝置200D驗證簽名的處理整體所花費的時間。本實施方式中的簽名驗證裝置200D還具有存儲數(shù)據(jù)的存儲裝置(磁盤裝置920、 RAM914等)、密碼參數(shù)存儲部290D以及識別存儲部210D。上述密碼參數(shù)存儲部290D使用上述存儲裝置(磁盤裝置920),存儲上述有限群 (加法群)G的階數(shù)p、上述有限群(加法群)G的生成元g、上述有限群(加法群)G的元(公 開元)X。上述識別存儲部210D使用上述存儲裝置(磁盤裝置920),存儲用于識別簽名裝置 400D的比特串ID。上述消息輸入部22OT使用上述處理裝置(CPU911),輸入比特串M作為上述消息。上述簽名輸入部220D使用上述處理裝置(CPU911),輸入上述有限群(加法群)G 的元R、上述有限群(加法群)G的元S、上述有限群(加法群)G的元Y、以及大于等于1且 小于等于P-1的整數(shù)z作為上述簽名o。上述簽名驗證部230D具有整數(shù)算出部232D、驗證元算出部233D、挑戰(zhàn)算出部231D 以及第一驗證部250D。上述整數(shù)算出部232D使用上述處理裝置(CPU911),根據(jù)上述簽名輸入部220D所 輸入的元R、以及上述識別存儲部210D所存儲的比特串ID,算出通過規(guī)定的散列函數(shù)H將 上述元R和上述比特串I散列得到的散列值并設(shè)為整數(shù)h( = H(R,ID))。上述驗證元算出部233D使用上述處理裝置(CPU911),根據(jù)上述簽名輸入部220D 所輸入的元R和元S,對上述元S加上上述元R的逆元而作為上述有限群(加法群)G的元 R, ( = S-R)。上述挑戰(zhàn)算出部231D使用上述處理裝置(CPU911),根據(jù)上述識別存儲部210D所 存儲的比特串ID、上述簽名輸入部220D所輸入的元R、元S和元Y、以及上述消息輸入部 225D所輸入的比特串M,算出通過規(guī)定的散列函數(shù)H’將上述比特串ID、上述元R、上述元 S、上述元Y和上述比特串M散列得到的散列值并設(shè)為整數(shù)(散列值)c( = H’(ID,R,S,Y, M))。上述第一驗證部250D使用上述處理裝置(CPU911),根據(jù)上述密碼參數(shù)存儲部 290D所存儲的生成元g、上述簽名輸入部220D所輸入的元S、元Y和整數(shù)z、以及上述挑戰(zhàn) 算出部231D所算出的整數(shù)(散列值)c,判斷對將上述元S相加上述整數(shù)(散列值)c次得 到的元c S加上上述元Y的元Y+c S是否與將上述生成元g相加上述整數(shù)z次而得到的 元z g相等,在上述元Y+c S與上述元z g相等的情況下,判斷為驗證成功并設(shè)為第一 驗證結(jié)果。上述驗證裝置100D輸入作為上述階數(shù)p的上述密碼參數(shù)存儲部290D所存儲的階數(shù)P、作為上述整數(shù)e的上述整數(shù)算出部232D所算出的整數(shù)h、作為上述元s的上述密碼 參數(shù)存儲部290D所存儲的元X、以及作為上述元h的上述驗證元算出部233D所算出的元 R’,判斷驗證是否成功并設(shè)為第二驗證結(jié)果。上述驗證結(jié)果輸出部260D使用上述處理裝置(CPU911),根據(jù)上述第一驗證部 250D所驗證得到的第一驗證結(jié)果、以及上述驗證裝置100D所驗證得到的第二驗證結(jié)果,在 判斷為上述第一驗證結(jié)果和上述第二驗證結(jié)果中都是驗證成功的情況下,輸出表示驗證成 功的驗證結(jié)果。根據(jù)本實施方式中的簽名驗證裝置200D,驗證裝置100D驗證是否為R,= h X, 因此能夠驗證簽名o。另外,能夠縮短驗證裝置100D驗證是否為R’ = h*X的處理所花費 的時間,因此起到如下效果能夠縮短簽名驗證裝置200D驗證簽名的處理整體所花費的時 間。以上說明的簽名驗證裝置200D是如下的數(shù)字簽名驗證裝置通過乘法群中的指 數(shù)取冪或者(超)橢圓曲線上的點所形成的群等的加法群中的標量倍算,驗證將乘法群的 元s相乘e次得到的元s6或者將加法群的元s相加e次得到的元e s是否與已知的元h 一致,由此判斷簽名是否正確。簽名驗證裝置200D具有分割指數(shù)部(整數(shù)e)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),通過進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值# 或 ei h-e2 s的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的簽名驗證裝置200D(數(shù)字簽名驗證裝置)具有計算裝置(整數(shù)分割部110),輸入指數(shù)(整數(shù))e和在密碼中使用的乘法群或 加法群的群階數(shù)P,計算具有階數(shù)P的比特長度的一半比特長度的兩個整數(shù)ei、e2(其中,
      e = e2 (mod p)。);以及驗證裝置(驗證值算出部130、驗證判斷部150),驗證se2*h_el = 1或者e2*s-ei*h =0。以上說明的整數(shù)分割部110通過計算擴展歐幾里德互除法來分割指數(shù)部(整數(shù)e)。以上說明的整數(shù)分割部110在兩個整數(shù)的重復(fù)除法中具有計算裝置(第三剩余算出部117),進行除法的整數(shù)v2和被除的整數(shù)Vl分別為前 一步驟的除法的剩余v3和前一步驟的進行除法的整數(shù)v2 ;以及計算裝置(適合性判斷部116),判斷各步驟的除法結(jié)果的剩余v3大于等于某個固 定數(shù)(√P)、或者小于等于某個固定數(shù)(√P ).[1110]以上說明的簽名驗證裝置200D是基于BNN(Bellare-Namprempre-Neven)-ID的簽 名驗證裝置。簽名驗證裝置200D為了根據(jù)作為秘密密鑰生成中心(密鑰生成裝置300D)的公開密鑰的乘法群或者加法群的元X、作為簽名者(簽名裝置400D)的秘密密鑰(簽名密鑰) 的一部分的元R、作為簽名o的一部分的元S、以及用于識別簽名者的比特串ID,驗證元 R XH(E'ID)或 R+H (R,ID) X 是否與元 S —致,具有分割指數(shù)部(散列值h = H (R,ID))的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),通過進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值(s/Rr1 -re2 或力 (S-R)-e2 X的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的基于ID的簽名系統(tǒng)820D是依照對基于BNN-ID的認證法進行 Fiat-Shamir變換的基于BNN-ID的簽名法的簽名系統(tǒng)。在基于ID的認證系統(tǒng)820E中,使用階數(shù)p為素數(shù)的乘法群G和乘法群G的生成 元go密碼參數(shù)設(shè)定裝置810D進行PKG用密鑰生成處理。密碼參數(shù)設(shè)定裝置810D使 用CPU911,生成大于等于1且小于等于p-1的隨機的整數(shù)x。密碼參數(shù)設(shè)定裝置810D使用 CPU911,計算乘法群G的元X = gx。密碼參數(shù)設(shè)定裝置810D使用CPU911,輸出群G的元X 作為PKG公開密鑰,輸出整數(shù)x作為PKG秘密密鑰。密鑰生成裝置300D進行用戶秘密密鑰導(dǎo)出處理。密鑰生成裝置300D使用CPU911, 輸入PKG秘密密鑰x、用于識別證明裝置400E的比特串ID。首先,密鑰生成裝置300D使 用CPU911,生成大于等于1且小于等于p-1的隨機的整數(shù)(秘密隨機數(shù))r。密鑰生成裝置 300D使用CPU911,計算群G的元R= 和整數(shù)s = r+H(R,ID) *x,并輸出(R,s)作為用 戶秘密密鑰。簽名裝置400D進行簽名生成處理。簽名裝置400D使用CPU911,輸入消息M和秘 密密鑰(R,s)。首先,簽名裝置400D使用CPU911,生成大于等于1且小于等于p-1的隨機 的整數(shù)(秘密隨機數(shù))y。簽名裝置400D使用CPU911,計算群G的元S = gs和群G的元Y =gy,計算整數(shù)c =氏(S,Y,R,M)。簽名裝置400D使用CPU911,計算整數(shù)z = y+c s mod P,輸出(c,z,S,Y,R)作為簽名。簽名驗證裝置200D進行簽名驗證處理。簽名驗證裝置200D使用CPU911,輸入簽 名(c,z, S,Y,R)和用于識別簽名裝置400D的比特串ID。簽名驗證裝置200D驗證gz = Y 禾p S = R .XH(E'ID)是否成立、元S、元Y是否為G的元、整數(shù)z是否為大于等于1且小于 等于P-1。如果全部成立,則簽名驗證裝置200D使用CPU911,判斷為簽名驗證合格,否則, 判斷為簽名驗證不合格。以上說明的驗證裝置100D在這種基于BNN-ID的簽名系統(tǒng)中使驗證是否為S = R-XH(E'ID)的處理高速地進行。在驗證裝置100D中,整數(shù)分割部110使用CPU911,輸入h( = H(R,ID))和p,算出 成為ei h三e2(mod p)的整數(shù)ei和整數(shù)e2。驗證值算出部130使用CPU911,通過乘法群 G中的二基底取冪,計算^二乂61*! ’ e2(其中,R,= S.IT1。)。驗證裝置100E通過檢查是 否為& = 1,來高速地檢查S = R XH(E'ID)是否成立。(實施方式6)[1124]使用圖34 圖37來說明實施方式6。圖34是表示本實施方式中的基于ID的認證系統(tǒng)820E的整體結(jié)構(gòu)的一例的系統(tǒng) 結(jié)構(gòu)圖?;贗D的認證系統(tǒng)820E是由認證裝置200E認證證明裝置400E不是偽造物的系 統(tǒng)。此時,認證裝置200E將用于識別證明裝置400E的識別數(shù)據(jù)用作證明裝置400E的公開 密鑰?;贗D的認證系統(tǒng)820E具有密碼參數(shù)設(shè)定裝置810D、密鑰生成裝置300D、證明 裝置400E、認證裝置200E。密碼參數(shù)設(shè)定裝置810D、密鑰生成裝置300D與實施方式5中說明的裝置相同,因 此,在此省略說明。證明裝置400E對認證裝置200E發(fā)送認證請求消息。在由證明裝置400E發(fā)送的 認證請求消息中包含加法群G的元R、元S、元Y。認證裝置200E當接收到認證請求消息時,對證明裝置400E發(fā)送詢問消息。在由 認證裝置200E發(fā)送的詢問消息中包含有大于等于1且小于等于p-1的整數(shù)c。證明裝置400E當接收到詢問消息時,對認證裝置200E發(fā)送回答消息。在由證明 裝置400E發(fā)送的回答消息中包含有根據(jù)整數(shù)c算出的大于等于1且小于等于p-1的整數(shù)
      Zo認證裝置200E驗證所接收到的認證請求消息所包含的元R、元S、元Y、以及所接收 到的回答消息所包含的整數(shù)z,如果具有匹配性,則認證為證明裝置400E不是偽造物。圖35是表示本實施方式中的證明裝置400E的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。此外,對與在實施方式5中說明的簽名裝置400D共同的部分附加相同的標記,在 此省略說明。證明裝置400E具有密碼參數(shù)存儲部490D、簽名密鑰存儲部420D、簽名生成部 450D、認證請求發(fā)送部470E、詢問接收部454E、回答發(fā)送部475E。認證請求發(fā)送部470E使用CPU911,輸入表示簽名密鑰存儲部420D所存儲的簽名 密鑰中的元R的數(shù)據(jù)、第一簽名元算出部451D所存儲的表示元S的數(shù)據(jù)、以及第二簽名元 算出部453D所存儲的表示元Y的數(shù)據(jù)。認證請求發(fā)送部470E使用CPU911,生成包含表示所 輸入的元R、元S和元Y的數(shù)據(jù)的認證請求消息。認證請求發(fā)送部470E使用通信裝置915, 對認證裝置200E發(fā)送所生成的認證請求消息。詢問接收部454E使用通信裝置915,接收認證裝置200E所發(fā)送的詢問消息。詢問 接收部454E使用CPU911,獲取包含在所接收到的詢問消息中的表示整數(shù)c的數(shù)據(jù)。詢問接 收部454E使用RAM914,存儲表示所獲取的整數(shù)c的數(shù)據(jù)。簽名整數(shù)算出部455D使用CPU911,輸入表示密碼參數(shù)存儲部490D所存儲的密碼 參數(shù)中的階數(shù)P的數(shù)據(jù)、表示簽名密鑰存儲部420D所存儲的簽名密鑰中的整數(shù)s的數(shù)據(jù)、 秘密隨機數(shù)生成部452D所存儲的表示秘密隨機數(shù)y的數(shù)據(jù)、以及詢問接收部454E所存儲 的表示整數(shù)c的數(shù)據(jù)。簽名整數(shù)算出部455D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的階數(shù) P、整數(shù)s、秘密隨機數(shù)y、以及整數(shù)c,算出將整數(shù)c與整數(shù)s之積和秘密隨機數(shù)y的和除以 階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)z。簽名整數(shù)算出部455D使用RAM914,存儲表示所算出的
      82整數(shù)z的數(shù)據(jù)?;卮鸢l(fā)送部475E使用CPU911,輸入簽名整數(shù)算出部455D所存儲的表示整數(shù)z的 數(shù)據(jù)?;卮鸢l(fā)送部475E使用CPU911,生成包含表示所輸入的整數(shù)z的數(shù)據(jù)的回答消息。回 答發(fā)送部475E使用通信裝置915,對認證裝置200E發(fā)送所生成的回答消息。圖36是表示本實施方式中的認證裝置200E的功能模塊的結(jié)構(gòu)的一例的模塊結(jié)構(gòu) 圖。此外,對與在實施方式5中說明的簽名驗證裝置200D共同的部分附加相同的標 記,在此省略說明。認證裝置200E具有密碼參數(shù)存儲部290D、識別存儲部210D、認證請求接收部 220E、挑戰(zhàn)生成部231E、詢問發(fā)送部226E、回答接收部227E、簽名驗證部230D、驗證裝置 100D、認證結(jié)果輸出部260E。認證請求接收部220E使用通信裝置915,接收證明裝置400E所發(fā)送的認證請求消 息。認證請求接收部220E使用CPU911,獲取包含在所接收到的認證請求消息中的表示元 R、元S和元Y的數(shù)據(jù)。認證請求接收部220E使用RAM914,存儲表示所獲取的元R、元S和 元Y的數(shù)據(jù)。挑戰(zhàn)生成部231E在由認證請求接收部220E接收到認證請求消息的情況下,使用 CPU911隨機地生成大于等于1且小于等于p-1的整數(shù)并設(shè)為整數(shù)c。挑戰(zhàn)生成部231E使 用RAM914,存儲表示所生成的整數(shù)c的數(shù)據(jù)。詢問發(fā)送部226E使用CPU911,輸入挑戰(zhàn)生成部231E所存儲的表示整數(shù)c的數(shù)據(jù)。 詢問發(fā)送部226E使用CPU911,生成包含表示所輸入的整數(shù)c的數(shù)據(jù)的詢問消息。詢問發(fā)送 部226E使用通信裝置915,對證明裝置400E發(fā)送所生成的詢問消息?;卮鸾邮詹?27E使用通信裝置915,接收證明裝置400E所發(fā)送的回答消息?;卮?接收部227E使用CPU911,獲取包含在所接收到的回答消息中的表示整數(shù)z的數(shù)據(jù)。回答接 收部227E使用RAM914,存儲表示所獲取的整數(shù)z的數(shù)據(jù)。第一驗證部250D驗證是否為z g = Y+c S。第一驗證部250D使用CPU911,輸入表示密碼參數(shù)存儲部290D所存儲的密碼參數(shù) 中的加法群G和元g的數(shù)據(jù)、認證請求接收部220E所存儲的表示元S和元Y的數(shù)據(jù)、挑戰(zhàn) 生成部231E所存儲的表示整數(shù)值c的數(shù)據(jù)、以及回答接收部227E所存儲的表示整數(shù)z的 數(shù)據(jù)。第一驗證部250D使用CPU911,根據(jù)所輸入的數(shù)據(jù)所表示的加法群G、元g、元S、元 Y、整數(shù)z和散列值c,通過加法群G中的運算,判斷對將元S相加c次得到的元加上元Y的 元Y+c 是否與將元g相加z次得到的元z 相等。第一驗證部250D使用CPU911,在元 z g與元Y+c S相等的情況下,判斷為“驗證成功”,在元z g與元Y+c S不相等的情況 下,判斷為“驗證失敗”。第一驗證部250D使用CPU911,存儲表示驗證結(jié)果的數(shù)據(jù)。認證結(jié)果輸出部260E使用CPU911,輸入第一驗證部250D所存儲的表示驗證結(jié) 果的數(shù)據(jù)、以及驗證裝置100D所輸出的表示驗證結(jié)果的數(shù)據(jù)。認證結(jié)果輸出部260E使用 CPU911,根據(jù)所輸入的兩個驗證結(jié)果,在判斷為第一驗證部250D和驗證裝置100D都判斷為 “驗證成功”的情況下,判斷為“認證成功”,在除此之外的情況下,判斷為“認證失敗”。認證 結(jié)果輸出部260E使用CPU911,輸出表示認證結(jié)果的數(shù)據(jù)。圖37是表示本實施方式中的認證裝置200E認證證明裝置400E的認證處理的流程的一例的流程圖。此外,對與在實施方式5中說明的簽名驗證處理共同的部分附加相同的標記,在 此省略說明。在秘密隨機數(shù)生成工序S741E中,證明裝置400E的秘密隨機數(shù)生成部452D使用 CPU911,隨機地生成大于等于1且小于等于p-1的秘密隨機數(shù)y。在簽名元算出工序S742E中,第二簽名元算出部453D使用CPU911,根據(jù)秘密隨機 數(shù)生成部452D所生成的秘密隨機數(shù)y,算出加法群G的元Y( = y g)。在認證請求發(fā)送工序S743E中,證明裝置400E的認證請求發(fā)送部470E使用通信 裝置915對認證裝置200E發(fā)送包含簽名密鑰存儲部420D所存儲的元R、第一簽名元算出 部451D所算出的元S ( = s *g)、以及通過秘密隨機數(shù)生成工序S741E由第二簽名元算出部 453D算出的元Y的認證請求消息。在認證請求接收工序S751E中,認證裝置200E的認證請求接收部220E使用通信 裝置915,接收通過認證請求發(fā)送工序S743E由證明裝置400E發(fā)送的認證請求消息。在挑戰(zhàn)生成工序S752E中,認證裝置200E的挑戰(zhàn)生成部231E使用CPU911,隨機地 生成大于等于1且小于等于P-1的整數(shù)c。在詢問發(fā)送工序S753E中,認證裝置200E的詢問發(fā)送部226E使用通信裝置915, 對證明裝置400E發(fā)送包含通過挑戰(zhàn)生成工序S752E由挑戰(zhàn)生成部231E生成的整數(shù)c的詢 問消息。在詢問接收工序S744E中,證明裝置400E的詢問接收部454E使用通信裝置915, 接收通過詢問發(fā)送工序S753E由認證裝置200E發(fā)送的詢問消息。在簽名整數(shù)算出工序S745E中,證明裝置400E的簽名整數(shù)算出部455D使用 CPU911,根據(jù)密碼參數(shù)存儲部490D所存儲的階數(shù)p、簽名密鑰存儲部420D所存儲的整數(shù)s、 通過秘密隨機數(shù)生成工序S741E由秘密隨機數(shù)生成部452D生成的秘密隨機數(shù)y、以及通過 詢問接收工序S744E由詢問接收部454E接收到的詢問消息所包含的整數(shù)y,算出整數(shù)z(= y+c s mod p)。在回答發(fā)送工序S746E中,證明裝置400E的回答發(fā)送部475E使用通信裝置915, 對認證裝置200E發(fā)送包含通過簽名整數(shù)算出工序S745E由簽名整數(shù)算出部455D算出的整 數(shù)z的回答消息。在回答接收工序S754E中,認證裝置200E的回答接收部227E使用通信裝置915, 接收通過回答發(fā)送工序S746E由證明裝置400E發(fā)送的回答消息。第一驗證工序S732D 第二驗證工序S735D與在實施方式5中說明的工序相同。在成功判斷工序S736E中,認證結(jié)果輸出部260E使用CPU911,判斷為認證成功并 輸出認證結(jié)果。之后,結(jié)束認證處理。在失敗判斷工序S737E中,認證結(jié)果輸出部260E使用CPU911,判斷為認證失敗并 輸出認證結(jié)果。本實施方式中的認證裝置200E具有處理數(shù)據(jù)的處理裝置(CPU911)、發(fā)送數(shù)據(jù)的 發(fā)送裝置(通信裝置915)、接收數(shù)據(jù)的接收裝置(通信裝置915)、認證請求接收部220E、 詢問發(fā)送部226E、回答接收部227E、簽名驗證部230D、驗證裝置100D以及認證結(jié)果輸出部
      84260E。上述認證請求接收部220E使用上述接收裝置(通信裝置915)接收認證請求消
      肩、o上述詢問發(fā)送部226E使用上述發(fā)送裝置(通信裝置915),發(fā)送詢問消息作為對于 上述認證請求接收部220E所接收到的認證請求消息的響應(yīng)。上述回答接收部227E使用上述接收裝置(通信裝置915),接收對于所發(fā)送的詢問 消息的回答消息。上述簽名驗證部230D使用上述處理裝置(CPU911),根據(jù)上述認證請求接收部 220E所接收到的認證請求消息、以及上述回答接收部227E所接收到的回答消息,算出輸入 到上述驗證裝置100D的整數(shù)e (散列值h)、上述有限群(加法群)G的元s (元X)、以及上 述有限群(加法群)G的元h (元R’)。上述驗證裝置100D輸入上述簽名驗證部230D所算出的整數(shù)e (散列值h)、上述有 限群(加法群)G的元s (元X)、以及上述有限群(加法群)G的元h (元R’),判斷驗證是否 成功。上述認證結(jié)果輸出部260E使用上述處理裝置(CPU911),根據(jù)上述驗證裝置100D 所驗證的結(jié)果,輸出表示認證是否成功的認證結(jié)果。根據(jù)本實施方式中的認證裝置200E,通過由驗證裝置100D判斷是否為h = e-s, 來能夠認證證明裝置400E。另外,能夠縮短驗證裝置100D驗證簽名的匹配性的處理所花費 的時間,因此起到如下效果能夠縮短認證裝置200E驗證證明裝置400E的處理整體所花費 的時間。本實施方式中的認證裝置200E還具有存儲數(shù)據(jù)的存儲裝置(磁盤裝置920、 RAM914等)、密碼參數(shù)存儲部290D、識別存儲部210D以及挑戰(zhàn)生成部231E。上述密碼參數(shù)存儲部290D使用上述存儲裝置(磁盤裝置920),存儲上述有限群 (加法群)G的階數(shù)p、上述有限群(加法群)G的生成元g、以及上述有限群(加法群)G的 元X。上述識別存儲部210D使用上述存儲裝置(磁盤裝置920),存儲用于識別證明裝置 400E的比特串ID。上述認證請求接收部220E使用上述接收裝置(通信裝置915)從上述證明裝置 400E接收上述有限群(加法群)G的元R、上述有限群(加法群)G的元S、以及上述有限群 (加法群)的元Y作為上述認證請求消息。上述挑戰(zhàn)生成部231E使用上述處理裝置(CPU911),隨機地生成大于等于1且小于 等于P-1的整數(shù)c。上述詢問發(fā)送部226E使用上述發(fā)送裝置(通信裝置915),對上述證明裝置400E 發(fā)送上述挑戰(zhàn)生成部231E所生成的整數(shù)c作為上述詢問消息。上述回答接收部227E使用上述接收裝置(通信裝置915),從上述證明裝置400E 接收大于等于1且小于等于P-1的整數(shù)z作為上述回答消息。上述簽名驗證部230D具有整數(shù)算出部232D、驗證元算出部233D以及第一驗證部 250D。上述整數(shù)算出部232D使用上述處理裝置(CPU911),根據(jù)上述認證請求接收部220E所接收到的元R、以及上述識別存儲部210D所存儲的比特串ID,算出利用規(guī)定的散列 函數(shù)H將上述元R和上述比特串ID散列得到的散列值并設(shè)為整數(shù)h( = H(R,ID))。上述驗證元算出部233D使用上述處理裝置(CPU911),根據(jù)上述認證請求接收部 220E所接收到的元R和元S,對上述元S加上上述元R的逆元來設(shè)為上述有限群G的元 R, ( = S-R)。上述第一驗證部250D使用上述處理裝置(CPU911),根據(jù)上述密碼參數(shù)存儲部 290D所存儲的生成元g、上述認證請求接收部220E所接收到的元S和元Y、上述挑戰(zhàn)生成部 231E所生成的整數(shù)c、以及上述回答接收部227E所接收到的整數(shù)z,判斷對將上述元S相加 上述整數(shù)c次得到的元c S加上上述元Y的元Y+c S是否與將上述元g相加上述整數(shù)z 次得到的元z g相等,在上述元Y+c S與上述元z g相等的情況下,判斷為驗證成功并 設(shè)為第一驗證結(jié)果。上述驗證裝置100D輸入作為上述階數(shù)p的上述密碼參數(shù)存儲部290D所存儲的 階數(shù)P、作為上述整數(shù)e的上述整數(shù)算出部232D所算出的整數(shù)h、作為上述元s的上述密碼 參數(shù)存儲部290D所存儲的元X、以及作為上述元h的上述驗證元算出部233D所算出的元 R’,判斷驗證是否成功并設(shè)為第二驗證結(jié)果。上述認證結(jié)果輸出部260E使用上述處理裝置(CPU911),根據(jù)上述第一驗證部 250D所驗證的第一驗證結(jié)果和上述驗證裝置100D所驗證的第二驗證結(jié)果,在上述第一驗 證結(jié)果和上述第二驗證結(jié)果都判斷為驗證成功的情況下,輸出表示認證成功的認證結(jié)果。根據(jù)本實施方式中的認證裝置200E,由驗證裝置100D驗證是否為R,= h X,因 此能夠認證證明裝置400E。另外,能夠縮短驗證裝置100D驗證是否為R,= h 的處理所 花費的時間,因此起到如下效果能夠縮短認證裝置200E認證證明裝置400E的處理整體所 花費的時間。以上說明的認證裝置200E是如下的認證法驗證裝置通過進行乘法群中的指數(shù) 取冪或(超)橢圓曲線上的點所形成的群等加法群中的標量倍算,驗證將乘法群的元s相 乘e次得到的元s6或?qū)⒓臃ㄈ旱脑猻相加e次得到的元e s是否與已知的元h —致,由 此認證證明裝置400E。認證裝置200E具有分割指數(shù)部(整數(shù)e)的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值# 或 ei h-e2 s的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的認證裝置200E(認證法驗證裝置)具有計算裝置(整數(shù)分割部110),輸入指數(shù)(整數(shù))e和在密碼中使用的乘法群或加法 群的群階數(shù)P,計算具有階數(shù)P的比特長度的一半比特長度的兩個整數(shù)ei、e2(其中,ei e =e2 (mod p)。);以及驗證裝置(驗證值算出部130、驗證判斷部150),驗證se2*h_el = 1或者e2*s-ei*h =0。
      86[1196]以上說明的整數(shù)分割部110通過計算擴展歐幾里德互除法來分割指數(shù)部(整數(shù)
      e) ο以上說明的整數(shù)分割部110在兩個整數(shù)的重復(fù)除法中,具有計算裝置(第三剩余算出部117),進行除法的整數(shù)V2和被除的整數(shù)V1分別為前 一步驟的除法的剩余V3和前一步驟的進行除法的整數(shù)V2 ;以及計算裝置(適合性判斷部116),判斷各步驟的除法結(jié)果的剩余^大于等于某個固 定數(shù))、或者小于等于某個固定數(shù)y以上說明的認證裝置200Ε是基于BNN-ID的認證法驗證裝置。認證裝置200Ε為了根據(jù)作為秘密密鑰生成中心(密鑰生成裝置300D)的公開密 鑰的乘法群或者加法群的元X、作為被認證者(證明裝置400Ε)的秘密密鑰(簽名密鑰) 的一部分的元R、被認證者的承諾值(元)S、以及用于識別被認證者的比特串ID,驗證元 R ‘ X{h(R, ID)或 R+H(R,ID) · X 是否與元 S—致,具有分割指數(shù)部(散列值h = H(R,ID))的裝置(整數(shù)分割部110);使用分割得到的指數(shù)(整數(shù)ei和整數(shù)e2),通過進行乘法群中的二基底指數(shù)取冪或 者(超)橢圓曲線上的點所形成的群等加法群中的二基底標量倍算,來計算值(S/R)el -Fe2 或力· (S-R)-e2 · X的裝置(驗證值算出部130);以及判斷該值是否與乘法群的單位元1或加法群的單位元0相等的裝置(驗證判斷部 150)。以上說明的基于ID的認證系統(tǒng)820E是依照基于BNN-ID的認證法的認證系統(tǒng)?;贗D的認證系統(tǒng)820E具有證明者(證明裝置400E)和認證者(認證裝置 200E)。首先,證明者(證明裝置400E)向驗證者(認證裝置200E)發(fā)送承諾Cmt (認證請 求消息)。驗證者(認證裝置200E)接收承諾Cmt,根據(jù)承諾Cmt和公開信息(密碼參數(shù)、 公開參數(shù))計算挑戰(zhàn)數(shù)據(jù)Ch(詢問消息)并發(fā)送給證明者(證明裝置400E)。證明者(證 明裝置400E)接收挑戰(zhàn)數(shù)據(jù)Ch,計算回答數(shù)據(jù)Rsp并發(fā)送給驗證者(認證裝置200E)。驗 證者(認證裝置200E)接收回答數(shù)據(jù)Rsp,驗證其是否為正確的數(shù)據(jù)。如果回答數(shù)據(jù)正確, 則驗證者(認證裝置200E)判斷為認證合格,否則判斷為認證不合格。在基于ID的認證系統(tǒng)820E中,使用階數(shù)ρ為素數(shù)的乘法群G和乘法群G的生成 元go密碼參數(shù)設(shè)定裝置810D進行PKG用密鑰生成處理。密碼參數(shù)設(shè)定裝置810D使 用CPU911,生成大于等于1且小于等于p-1的隨機的整數(shù)χ。密碼參數(shù)設(shè)定裝置810D使用 CPU911計算乘法群G的元X = gx。密碼參數(shù)設(shè)定裝置810D使用CPU911,輸出群G的元X 作為PKG公開密鑰,輸出整數(shù)χ作為PKG秘密密鑰。密鑰生成裝置300D進行用戶秘密密鑰導(dǎo)出處理。密鑰生成裝置300D使用CPU911, 輸入PKG秘密密鑰χ、以及用于識別證明裝置400E的比特串ID。首先,密鑰生成裝置300D 使用CPU911,生成大于等于1且小于等于p-1的隨機的整數(shù)(秘密隨機數(shù))r。密鑰生成裝 置300D使用CPU911,計算群G的元R= #、以及整數(shù)s = r+H(R,ID) ·χ,輸出(R,s)作為 用戶秘密密鑰。證明裝置400E在Cmt計算處理中,使用CPU911,首先生成大于等于1且小于等于
      87P-I的隨機的整數(shù)(秘密隨機數(shù))y。證明裝置400E使用CPU911,計算群G的元S = gs、以 及群G的元Y = gy,將元S、元Y、以及元R設(shè)為承諾Cmt (認證請求數(shù)據(jù))。認證裝置200E在Ch計算處理中,使用CPU911生成大于等于1且小于等于p_l的 隨機的整數(shù)c并設(shè)為挑戰(zhàn)數(shù)據(jù)Ch (詢問數(shù)據(jù))。證明裝置400E在Rsp計算處理中,使用CPU911計算整數(shù)ζ = y+c · smod ρ并設(shè) 為回答數(shù)據(jù)Rsp。認證裝置200Ε使用CPU911接收Rsp,驗證gz = Y .Sc和S = R -XH(E'ID)是否成立、 元S和元Y是否為群G的元、整數(shù)Z是否為大于等于1且小于等于P-I。如果全部成立,則 認證裝置200E使用CPU911判斷為認證合格,否則判斷為認證不合格。以上說明的驗證裝置100E在這種基于BNN-ID的認證系統(tǒng)中使驗證是否為S = R .Xh(UD)的處理高速地進行。在驗證裝置100E中,整數(shù)分割部110使用CPU911,輸入h( = H(R,ID))和p,算出 成為ei · h = e2(mod ρ)的整數(shù)ei和整數(shù)e2。驗證值算出部130使用CPU911,通過乘法群 G中的二基底取冪,計算X1 = Xe^R' e2(其中,R,= S.IT1。)。驗證裝置100E通過檢查是 否為X1 = 1,高速地檢查S = R · XH(K’ID)是否成立。以上,說明了在幾種密碼通信系統(tǒng)、簽名系統(tǒng)、認證系統(tǒng)中驗證裝置100高速地進 行驗證處理的例子,但是本技術(shù)不限于上述說明的例子,能夠廣泛應(yīng)用于離散對數(shù)型的密 碼通信系統(tǒng)、認證系統(tǒng)、簽名系統(tǒng)等密碼系統(tǒng)中。另外,為了便于說明,主要說明了以加法方式描述群運算的情況。但是以加法方式 描述群運算還是以乘法方式描述群運算并不是本質(zhì)性的。在密碼系統(tǒng)所利用的有限群中,使用計算機等處理裝置能夠計算群運算,如果在1 次的群運算中花費較多的時間,則能夠通過本技術(shù)顯著地提高速度。
      88
      權(quán)利要求
      一種驗證裝置,具有處理數(shù)據(jù)的處理裝置、整數(shù)分割部、驗證值算出部以及驗證判斷部,所述整數(shù)分割部使用所述處理裝置,輸入有限群G的階數(shù)p和整數(shù)e,根據(jù)所輸入的階數(shù)p和整數(shù)e,算出滿足e1·e≡e2(mod p)的整數(shù)e1和整數(shù)e2,所述驗證值算出部使用所述處理裝置,輸入所述有限群G的元s和所述有限群G的元h,根據(jù)所輸入的元s和元h、以及所述整數(shù)分割部所算出的整數(shù)e1和整數(shù)e2,算出所述有限群G的元a(=e1·h e2·s),所述驗證判斷部使用所述處理裝置,根據(jù)所述驗證值算出部所算出的元a,在所述元a為所述有限群G的單位元的情況下,判斷為驗證成功。
      2.根據(jù)權(quán)利要求1所述的驗證裝置,其特征在于,所述整數(shù)分割部使用所述處理裝置,算出滿足所述整數(shù)ei的絕對值小于所述階數(shù)ρ的 平方根、并且所述整數(shù)e2小于所述階數(shù)P的平方根這種條件的整數(shù)ei和整數(shù)e2。
      3.根據(jù)權(quán)利要求2所述的驗證裝置,其特征在于, 所述驗證裝置還具有存儲數(shù)據(jù)的存儲裝置,所述整數(shù)分割部具有第一剩余存儲部、第二剩余存儲部、初始值設(shè)定部、適合性判斷 部、第三剩余算出部以及分割整數(shù)輸出部,所述第一剩余存儲部使用所述存儲裝置存儲整數(shù)V1, 所述第二剩余存儲部使用所述存儲裝置存儲整數(shù)v2,所述初始值設(shè)定部使用所述處理裝置,將所述階數(shù)P作為所述整數(shù)V1而存儲到所述第 一剩余存儲部中,將所述整數(shù)e作為所述整數(shù)V2而存儲到所述第二剩余存儲部中,所述適合性判斷部使用所述處理裝置,在所述第二剩余存儲部所存儲的整數(shù)V2小于所 述階數(shù)P的平方根的情況下,判斷為滿足輸出條件,所述第三剩余算出部使用所述處理裝置,在所述適合性判斷部沒有判斷為滿足輸出條 件的情況下,根據(jù)所述第一剩余存儲部所存儲的整數(shù)V1和所述第二剩余存儲部所存儲的整 數(shù)V2,算出將所述整數(shù)V1除以所述整數(shù)V2而得到的余數(shù)并設(shè)為整數(shù)V3,將所述第二剩余存 儲部所存儲的整數(shù)V2作為所述整數(shù)V1而存儲到所述第一剩余存儲部中,將所算出的整數(shù)V3 作為所述整數(shù)V2而存儲到所述第二剩余存儲部中,所述分割整數(shù)輸出部使用所述處理裝置,在所述適合性判斷部判斷為滿足輸出條件的 情況下,將所述第二剩余存儲部所存儲的整數(shù)V2作為所述整數(shù)e2而輸出。
      4.根據(jù)權(quán)利要求3所述的驗證裝置,其特征在于,所述整數(shù)分割部還具有第一系數(shù)存儲部、第二系數(shù)存儲部、商算出部以及第三系數(shù)算 出部,所述第一系數(shù)存儲部使用所述存儲裝置,存儲整數(shù)t1; 所述第二系數(shù)存儲部使用所述存儲裝置,存儲整數(shù)t2,所述初始值設(shè)定部還使用所述處理裝置,將0作為所述整數(shù)^而存儲到所述第一系數(shù) 存儲部中,將1作為所述整數(shù)t2而存儲到所述第二系數(shù)存儲部中,所述商算出部使用所述處理裝置,根據(jù)所述第一剩余存儲部所存儲的整數(shù)V1和所述第 二剩余存儲部所存儲的整數(shù)V2,算出不超過將所述整數(shù)V1除以所述整數(shù)V2而得到的商的最 大整數(shù)并設(shè)為整數(shù)q,所述第三系數(shù)算出部使用所述處理裝置,在所述適合性判斷部沒有判斷為滿足輸出條 件的情況下,根據(jù)所述第一系數(shù)存儲部所存儲的整數(shù)^、所述第二系數(shù)存儲部所存儲的整 數(shù)t2以及所述商算出部所算出的整數(shù)q,算出從所述整數(shù)、減去所述整數(shù)t2與所述整數(shù)q 之積而得到的整數(shù)并設(shè)為整數(shù)t3,將所述第二系數(shù)存儲部所存儲的整數(shù)t2作為所述整數(shù)、 而存儲到所述第一系數(shù)存儲部中,將所算出的整數(shù)t3作為所述整數(shù)t2而存儲到所述第二系 數(shù)存儲部中,所述分割整數(shù)輸出部還使用所述處理裝置,在所述適合性判斷部判斷為滿足輸出條件 的情況下,將所述第二系數(shù)存儲部所存儲的整數(shù)t2作為所述整數(shù)ei而輸出。
      5.根據(jù)權(quán)利要求1所述的驗證裝置,其特征在于,所述驗證值算出部使用所述處理裝置,算出Σ (η1 · Pi)(其中,η是大于等于2的規(guī)定 的整數(shù),i是大于等于0且小于等于k的整數(shù),k是以η進制表示所述整數(shù)ei的絕對值和所 述整數(shù)e2時的位數(shù)的最大值,Pi是所述有限群G的元,Pi = ^sgnMlii· s,ei,sgn是1或-1,ei, i和e2, i是大于等于0且小于等于n-1的整數(shù),θι = ei, sgn · Σ Oii ·吖i)、e2 = Σ (H^e2,,))并設(shè)為所述有限群G的元a。
      6.一種密文解密裝置,具有存儲數(shù)據(jù)的存儲裝置、處理數(shù)據(jù)的處理裝置、密鑰存儲 部、密文輸入部、密文驗證部、權(quán)利要求1所述的驗證裝置以及解密文生成部,所述密鑰存儲部使用所述存儲裝置,存儲用于解密密文的密鑰,所述密文輸入部使用所述處理裝置,輸入密文,所述密文驗證部使用所述處理裝置,根據(jù)所述密鑰存儲部所存儲的密鑰和所述密文輸 入部所輸入的密文,算出輸入到所述驗證裝置的整數(shù)e、所述有限群G的元S、以及所述有限 群G的元h,所述驗證裝置輸入所述密文驗證部所算出的整數(shù)e、所述有限群G的元S、以及所述有 限群G的元h,判斷是否驗證成功,所述解密文生成部使用所述處理裝置,在所述驗證裝置判斷為驗證成功的情況下,利 用所述密鑰存儲部所存儲的密鑰對所述密文輸入部所輸入的密文進行解密來生成解密文。
      7.根據(jù)權(quán)利要求6所述的密文解密裝置,其特征在于,所述密文解密裝置還具有密碼參數(shù)存儲部、識別存儲部、識別元算出部以及識別元存 儲部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)ρ、所述有限群G的 生成元gl、以及所述有限群G的元R,所述識別存儲部使用所述存儲裝置,存儲用于識別所述密文解密裝置的比特串ID,所述識別元算出部使用所述處理裝置,根據(jù)所述識別存儲部所存儲的比特串ID,算出 通過規(guī)定的散列函數(shù)H1對所述比特串ID進行散列得到的散列值并設(shè)為整數(shù)H1 (ID),根據(jù) 所述密碼參數(shù)存儲部所存儲的生成元gl、所述密碼參數(shù)存儲部所存儲的元R、以及所算出的 整數(shù)H1(ID),將所述生成元gl的整數(shù)H1 (ID)倍的元與所述元R相加來設(shè)為所述有限群G的 元 Q( = IHH1(ID) · gl),所述識別元存儲部使用所述存儲裝置,存儲所述識別元算出部所算出的元Q,所述密鑰存儲部使用所述存儲裝置,存儲有限群G2的元Did,所述密文輸入部使用所述處理裝置,輸入所述有限群G的元U和比特串V作為所述密文,所述密文驗證部具有配對值算出部、比特串算出部以及整數(shù)算出部, 所述配對值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元U和所述密鑰 存儲部所存儲的元Did,利用規(guī)定的配對函數(shù)e算出所述元U與所述元Did的配對值并設(shè)為 配對值 α ( = e(U, Did)),所述比特串算出部使用所述處理裝置,根據(jù)所述配對值算出部所算出的配對值α,算 出通過規(guī)定的散列函數(shù)H2對所述配對值α進行散列得到的散列值并設(shè)為比特$Η2(α), 根據(jù)所述密文輸入部所輸入的比特串V和所算出的比特串Η2( α ),取得所述比特串V與所 述比特串H2(Ci)的邏輯異或并設(shè)為比特串m( = V XOR Η2(α)),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述比特串算出部所算出的比特串m,算出通 過規(guī)定的散列函數(shù)H3對所述比特串m進行散列得到的散列值并設(shè)為整數(shù)r ( = H3 (m)),所述驗證裝置輸入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述 整數(shù)e的所述整數(shù)算出部所算出的整數(shù)r、作為所述元s的所述識別元存儲部所存儲的元 Q、以及作為所述元h的所述密文輸入部所輸入的元U,判斷是否驗證成功,所述解密文生成部使用所述處理裝置,在所述驗證裝置判斷為驗證成功的情況下,根 據(jù)所述比特串算出部所算出的比特串m,算出通過規(guī)定的散列函數(shù)H4對所述比特串m進行 散列得到的散列值并設(shè)為共用密鑰K( = H4Oii)),輸出所算出的共用密鑰K作為所述解密 文。
      8.根據(jù)權(quán)利要求7所述的密文解密裝置,其特征在于,所述識別元算出部在由所述密文輸入部輸入所述密文之前算出所述元Q。
      9.根據(jù)權(quán)利要求7所述的密文解密裝置,其特征在于,所述密文解密裝置還具有共用密鑰存儲部、加密消息輸入部以及消息解密部, 所述共用密鑰存儲部使用所述存儲裝置,存儲所述解密文生成部所輸出的共用密鑰K, 所述加密消息輸入部使用所述處理裝置輸入加密消息,所述消息解密部使用所述處理裝置,利用所述共用密鑰存儲部所存儲的共用密鑰K對 所述加密消息輸入部所輸入的加密消息進行解密。
      10.根據(jù)權(quán)利要求6所述的密文解密裝置,其特征在于, 所述密文解密裝置還具有密碼參數(shù)存儲部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)ρ, 所述密鑰存儲部使用所述存儲裝置,存儲大于等于1且小于等于P-I的整數(shù)W、大于等 于1且小于等于P-I的整數(shù)χ、大于等于1且小于等于P-I的整數(shù)y、以及大于等于1且小 于等于P-I的整數(shù)z,所述密文輸入部使用所述處理裝置,輸入所述有限群G的元U、所述有限群G的元U’、 以及所述有限群G的元ν作為所述密文,所述密文驗證部具有散列值算出部和整數(shù)算出部,所述散列值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元u和元U’,算 出通過規(guī)定的散列函數(shù)H對所述元u和所述元U’進行散列得到的散列值并設(shè)為整數(shù)α (= H(u,u,)),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的階數(shù)P、所述密鑰存儲部所存儲的整數(shù)X和整數(shù)y、以及所述散列值算出部所算出的整數(shù)α,算出將所述整 數(shù)y與所述整數(shù)α之積和所述整數(shù)X的和除以所述階數(shù)P而得到的余數(shù)并設(shè)為整數(shù)t(= (x+y · α )mod ρ),所述驗證裝置輸入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述 整數(shù)e的所述密鑰存儲部所存儲的整數(shù)W、作為所述元s的所述密文輸入部所輸入的元U、 以及作為所述元h的所述密文輸入部所輸入的元U’,判斷是否驗證成功并作為第一驗證結(jié) 果;輸入所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算出部所算出 的整數(shù)t、作為所述元s的所述密文輸入部所輸入的元U、以及作為所述元h的所述密文輸 入部所輸入的元V,判斷是否驗證成功并作為第二驗證結(jié)果,所述解密文生成部使用所述處理裝置,在所述驗證裝置在所述第一驗證結(jié)果和所述第 二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)所述密鑰存儲部所存儲的整數(shù)ζ和所述密 文輸入部所輸入的元u,將所述元u相加所述整數(shù)ζ次來設(shè)為所述有限群G的元h ( = ζ ·ιι), 根據(jù)所述密文輸入部所輸入的元u和所算出的元1Γ,利用規(guī)定的密鑰導(dǎo)出函數(shù)KDF根據(jù)所 述元u和所述元IT生成共用密鑰K ( = KDF (u,hi),輸出所生成的共用密鑰K作為所述解 密文。
      11.根據(jù)權(quán)利要求10所述的密文解密裝置,其特征在于,所述密文解密裝置還具有共用密鑰存儲部、加密消息輸入部以及消息解密部, 所述共用密鑰存儲部使用所述存儲裝置,存儲所述解密文生成部所輸出的共用密鑰K, 所述加密消息輸入部使用所述處理裝置,輸入加密消息,所述消息解密部使用所述處理裝置,利用所述共用密鑰存儲部所存儲的共用密鑰K對 所述加密消息輸入部所輸入的加密消息進行解密。
      12.根據(jù)權(quán)利要求6所述的密文解密裝置,其特征在于, 所述密文解密裝置還具有密碼參數(shù)存儲部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲加法群G1的階數(shù)P、所述加法群G1的生 成元g、以及以所述階數(shù)ρ為階數(shù)的乘法群Gt的元Vtl,所述密鑰存儲部使用所述存儲裝置,存儲以所述階數(shù)P為階數(shù)的加法群G2的元Cltl和所 述加法群G2的元屯,所述密文輸入部使用所述處理裝置,輸入比特串c、所述加法群G1的元Ctl、所述加法群 G1的元C1、以及大于等于1且小于等于P-I的整數(shù)t作為所述密文, 所述密文驗證部具有配對值算出部和整數(shù)算出部,所述配對值算出部使用所述處理裝置,根據(jù)所述密文輸入部所輸入的元Ctl和所述秘密 密鑰存儲部所存儲的元Cltl,利用規(guī)定的配對函數(shù)e算出所述元Ctl與所述元Cltl的配對值并設(shè) 為所述乘法群Gt的元kd = e(c0, Cltl)),根據(jù)所述密文輸入部所輸入的元C1和所述秘密密 鑰存儲部所存儲的元Cl1,利用所述配對函數(shù)e算出所述元C1與所述元Cl1的配對值并設(shè)為所 述乘法群Gt的元Ic1 ( = e (CljCl1)),根據(jù)所算出的所述元Icci和所算出的所述元Ic1,將所述元 k0除以所述元Ic1來設(shè)為所述乘法群Gt的元k( = Vk1),所述整數(shù)算出部使用所述處理裝置,根據(jù)所述配對值算出部所算出的元k、所述密文輸 入部所輸入的比特串C、元Ctl、以及元C1,算出通過規(guī)定的散列函數(shù)H”對所述元k、所述比特 串C、所述元Ctl、以及所述元C1進行散列得到的散列值并設(shè)為整數(shù)H”(k,c, c0, C1),根據(jù)所述密文輸入部所輸入的整數(shù)t、所算出的整數(shù)H”(k,c, c0, C1)、以及所述密碼參數(shù)存儲部所 存儲的階數(shù)P,算出將從所述整數(shù)t減去所述整數(shù)H”(k,c, c0, C1)而得到的整數(shù)除以階數(shù) P 的余數(shù)并設(shè)為整數(shù) s( = t-H”(k,c, c0, C1)mod ρ),所述驗證裝置將所述加法群G1作為所述有限群G,輸入作為所述階數(shù)ρ的所述密碼 參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算出部所算出的整數(shù)S、作為所述 元s的所述密碼參數(shù)存儲部所存儲的生成元g、以及作為所述元h的所述密文輸入部所輸 入的元Ctl,判斷是否驗證成功并作為第一驗證結(jié)果;將所述乘法群Gt作為所述有限群G,輸 入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述整數(shù)e的所述整數(shù)算 出部所算出的整數(shù)S、作為所述元s的所述密碼參數(shù)存儲部所存儲的元V(l、以及作為所述元 h的所述配對值算出部所算出的元k,判斷是否驗證成功并作為第二驗證結(jié)果,所述解密文生成部使用所述處理裝置,在所述驗證裝置在所述第一驗證結(jié)果和所述第 二驗證結(jié)果中都判斷為驗證成功的情況下,根據(jù)所述配對值算出部所算出的元k,算出通過 規(guī)定的散列函數(shù)H’對所述元k進行散列得到的散列值并設(shè)為比特串H’(k),根據(jù)所述密文 輸入部所輸入的比特串c和所算出的比特串H’(k),取得所述比特串c與所述比特串H’ (k) 的邏輯異或并設(shè)為比特串M’( = c XOR H’(k)),輸出所算出的比特串M’作為所述解密文。
      13.一種簽名驗證裝置,具有處理數(shù)據(jù)的處理裝置、消息輸入部、簽名輸入部、簽名驗 證部、權(quán)利要求1所述的驗證裝置以及驗證結(jié)果輸出部,所述消息輸入部使用所述處理裝置,輸入消息,所述簽名輸入部使用所述處理裝置,輸入對于所述消息輸入部所輸入的消息的簽名, 所述簽名驗證部使用所述處理裝置,根據(jù)所述消息輸入部所輸入的消息和所述簽名輸 入部所輸入的簽名,算出輸入到所述驗證裝置的整數(shù)e、所述有限群G的元S、以及所述有限 群G的元h,所述驗證裝置輸入所述簽名驗證部所算出的整數(shù)e、所述有限群G的元S、以及所述有 限群G的元h,判斷是否驗證成功,所述驗證結(jié)果輸出部使用所述處理裝置,根據(jù)所述驗證裝置所驗證的結(jié)果,輸出表示 是否驗證成功的驗證結(jié)果。
      14.根據(jù)權(quán)利要求13所述的簽名驗證裝置,其特征在于,所述簽名驗證裝置還具有存儲數(shù)據(jù)的存儲裝置、密碼參數(shù)存儲部以及識別存儲部, 所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)ρ、所述有限群G的 生成元g、以及所述有限群G的元X,所述識別存儲部使用所述存儲裝置,存儲用于識別簽名裝置的比特串ID, 所述消息輸入部使用所述處理裝置,輸入比特串M作為所述消息, 所述簽名輸入部使用所述處理裝置,輸入所述有限群G的元R、所述有限群G的元S、所 述有限群G的元Y、以及大于等于1且小于等于p-1的整數(shù)ζ作為所述簽名,所述簽名驗證部具有整數(shù)算出部、驗證元算出部、挑戰(zhàn)算出部以及第一驗證部, 所述整數(shù)算出部使用所述處理裝置,根據(jù)所述簽名輸入部所輸入的元R和所述識別存 儲部所存儲的比特串ID,算出通過規(guī)定的散列函數(shù)H對所述元R和所述比特串ID進行散列 得到的散列值并設(shè)為整數(shù)h( = H(R,ID)),所述驗證元算出部使用所述處理裝置,根據(jù)所述簽名輸入部所輸入的元R和元S,將所述元S與所述元R的逆元相加來設(shè)為所述有限群G的元R’ ( = S-R),所述挑戰(zhàn)算出部使用所述處理裝置,根據(jù)所述識別存儲部所存儲的比特串ID、所述簽 名輸入部所輸入的元R、元S和元Y、以及所述消息輸入部所輸入的比特串M,算出通過規(guī)定 的散列函數(shù)H’對所述比特串ID、所述元R、所述元S、所述元Y、以及所述比特串M進行散列 得到的散列值并設(shè)為整數(shù)c( = H,(I, R,S,Y,M)),所述第一驗證部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的生成元g、所述 簽名輸入部所輸入的元S、元Y和整數(shù)ζ、以及所述挑戰(zhàn)算出部所算出的整數(shù)c,判斷對將所 述元S相加所述整數(shù)c次得到的元c · S加上所述元Y的元Y+c · S是否與將所述元g相加 所述整數(shù)ζ次得到的元ζ · g相等,在所述元Y+c · S與所述元ζ · g相等的情況下,判斷為 驗證成功并作為第一驗證結(jié)果,所述驗證裝置輸入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述 整數(shù)e的所述整數(shù)算出部所算出的整數(shù)h、作為所述元s的所述密碼參數(shù)存儲部所存儲的元 X、以及作為所述元h的所述驗證元算出部所算出的元R’,判斷是否驗證成功并作為第二驗 證結(jié)果,所述驗證結(jié)果輸出部使用所述處理裝置,根據(jù)所述第一驗證部所驗證的第一驗證結(jié)果 和所述驗證裝置所驗證的第二驗證結(jié)果,在所述第一驗證結(jié)果和所述第二驗證結(jié)果中都判 斷為驗證成功的情況下,輸出表示驗證成功的驗證結(jié)果。
      15.一種認證裝置,具有處理數(shù)據(jù)的處理裝置、發(fā)送數(shù)據(jù)的發(fā)送裝置、接收數(shù)據(jù)的接 收裝置、認證請求接收部、詢問發(fā)送部、回答接收部、簽名驗證部、權(quán)利要求1所述的驗證裝 置以及認證結(jié)果輸出部,所述認證請求接收部使用所述接收裝置,接收認證請求消息,所述詢問發(fā)送部使用所述發(fā)送裝置,作為對于所述認證請求接收部所接收到的認證請 求消息的響應(yīng),發(fā)送詢問消息,所述回答接收部使用所述接收裝置,接收對于所發(fā)送的詢問消息的回答消息, 所述簽名驗證部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的認證請求消 息和所述回答接收部所接收到的回答消息,算出輸入到所述驗證裝置的整數(shù)e、所述有限群 G的元S、以及所述有限群G的元h,所述驗證裝置輸入所述簽名驗證部所算出的整數(shù)e、所述有限群G的元S、以及所述有 限群G的元h,判斷是否驗證成功,所述認證結(jié)果輸出部使用所述處理裝置,根據(jù)所述驗證裝置所驗證的結(jié)果,輸出表示 是否認證成功的認證結(jié)果。
      16.根據(jù)權(quán)利要求15所述的認證裝置,其特征在于,所述認證裝置還具有存儲數(shù)據(jù)的存儲裝置、密碼參數(shù)存儲部、識別存儲部以及挑戰(zhàn)生 成部,所述密碼參數(shù)存儲部使用所述存儲裝置,存儲所述有限群G的階數(shù)ρ、所述有限群G的 生成元g、以及所述有限群G的元X,所述識別存儲部使用所述存儲裝置,存儲用于識別證明裝置的比特 串ID,所述認證請求接收部使用所述接收裝置,從所述證明裝置接收所述有限群G的元R、所述有限群G的元S、以及所述有限群的元Y作為所述認證請求消息,所述挑戰(zhàn)生成部使用所述處理裝置,隨機地生成大于等于1且小于等于P-I的整數(shù)c, 所述詢問發(fā)送部使用所述發(fā)送裝置,作為所述詢問消息對所述證明裝置發(fā)送所述挑戰(zhàn) 生成部所生成的整數(shù)C,所述回答接收部使用所述接收裝置,從所述證明裝置接收大于等于1且小于等于P-I 的整數(shù)ζ作為所述回答消息,所述簽名驗證部具有整數(shù)算出部、驗證元算出部以及第一驗證部, 所述整數(shù)算出部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的元R和所述 識別存儲部所存儲的比特串ID,算出通過規(guī)定的散列函數(shù)H對所述元R和所述比特串ID進 行散列得到的散列值并設(shè)為整數(shù)h( = H(R,ID)),所述驗證元算出部使用所述處理裝置,根據(jù)所述認證請求接收部所接收到的元R和元 S,對所述元S加上所述元R的逆元來設(shè)為所述有限群G的元R’ ( = S-R),所述第一驗證部使用所述處理裝置,根據(jù)所述密碼參數(shù)存儲部所存儲的生成元g、所述 認證請求接收部所接收到的元S和元Y、所述挑戰(zhàn)生成部所生成的整數(shù)C、以及所述回答接 收部所接收到的整數(shù)z,判斷對將所述元S相加所述整數(shù)c次得到的元c · S加上所述元Y 的元Y+c · S是否與將所述元g相加所述整數(shù)ζ次得到的元ζ · g相等,在所述元Y+c · S與 所述元ζ · g相等的情況下,判斷為驗證成功并作為第一驗證結(jié)果,所述驗證裝置輸入作為所述階數(shù)P的所述密碼參數(shù)存儲部所存儲的階數(shù)P、作為所述 整數(shù)e的所述整數(shù)算出部所算出的整數(shù)h、作為所述元s的所述密碼參數(shù)存儲部所存儲的元 X、以及作為所述元h的所述驗證元算出部所算出的元R’,判斷是否驗證成功并作為第二驗 證結(jié)果,所述認證結(jié)果輸出部使用所述處理裝置,根據(jù)所述第一驗證部所驗證的第一驗證結(jié)果 和所述驗證裝置所驗證的第二驗證結(jié)果,在所述第一驗證結(jié)果和所述第二驗證結(jié)果中都判 斷為驗證成功的情況下,輸出表示認證成功的認證結(jié)果。
      17.—種密碼系統(tǒng),其特征在于,具有權(quán)利要求1所述的驗證裝置。
      18.一種計算機程序,其特征在于,使具有處理數(shù)據(jù)的處理裝置的計算機作為權(quán)利要求 1所述的驗證裝置而發(fā)揮功能。
      19.一種驗證方法,使具有處理數(shù)據(jù)的處理裝置的驗證裝置驗證匹配性,其特征在于, 所述處理裝置輸入有限群G的階數(shù)ρ和整數(shù)e,根據(jù)所輸入的階數(shù)P和整數(shù)e,算出滿足ei · e三e2(mod ρ)的整數(shù)θι和整數(shù)e2,所述處理裝置輸入所述有限群G的元s和所述有限群G的元h,根據(jù)所輸入的元g和元 h、以及所算出的整數(shù)ei和整數(shù)e2,算出所述有限群G的元a( = ei · h_e2 · s),所述處理裝置根據(jù)所算出的元a,在所述元a為所述有限群G的單位元的情況下,判斷 為驗證成功。
      全文摘要
      在整數(shù)分割處理S701中,整數(shù)分割部110輸入有限群G的階數(shù)p和整數(shù)e,根據(jù)所輸入的階數(shù)p和整數(shù)e,算出滿足e1·e≡e2(mod p)的整數(shù)e1和整數(shù)e2。在驗證值算出處理S702中,驗證值算出部130輸入有限群G的元s和加法群G的元h,根據(jù)所輸入的元s和元h、以及通過整數(shù)分割處理S701由整數(shù)分割部110算出的整數(shù)e1和整數(shù)e2,算出有限群G的元a(=e1·h-e2·s)。在驗證判斷處理S703中,驗證判斷部150根據(jù)驗證值算出部130所算出的元a,判斷元a是否為有限群G的單位元O。由此,高速地判斷h=e·s是否成立。
      文檔編號G09C1/00GK101925942SQ20088012535
      公開日2010年12月22日 申請日期2008年2月20日 優(yōu)先權(quán)日2008年2月20日
      發(fā)明者高島克幸 申請人:三菱電機株式會社
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1