JP4988448B2 - 一括検証装置、プログラム及び一括検証方法 - Google Patents

一括検証装置、プログラム及び一括検証方法 Download PDF

Info

Publication number
JP4988448B2
JP4988448B2 JP2007165892A JP2007165892A JP4988448B2 JP 4988448 B2 JP4988448 B2 JP 4988448B2 JP 2007165892 A JP2007165892 A JP 2007165892A JP 2007165892 A JP2007165892 A JP 2007165892A JP 4988448 B2 JP4988448 B2 JP 4988448B2
Authority
JP
Japan
Prior art keywords
batch
signature
verification
unit
order
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007165892A
Other languages
English (en)
Other versions
JP2009005213A (ja
Inventor
恵輔 伯田
尚宜 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007165892A priority Critical patent/JP4988448B2/ja
Priority to CN2008100828257A priority patent/CN101335625B/zh
Priority to US12/046,585 priority patent/US20080320557A1/en
Priority to GB0804683A priority patent/GB2450574B/en
Publication of JP2009005213A publication Critical patent/JP2009005213A/ja
Application granted granted Critical
Publication of JP4988448B2 publication Critical patent/JP4988448B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Description

本発明は、複数のデジタル署名を一括して検証する技術に関する。
デジタル署名では、署名者は、署名対象の電子データに対し、署名者が秘密にしている署名生成鍵を用いて署名データを生成し、署名検証者は、公開されている署名検証鍵を用いて署名データを復号して、署名対象となっている電子データと比較することにより、署名者の真偽や電子データに対する改ざんの有無等を検出することができるようにしている。
このようなデジタル署名では、検証を行う際に複雑な処理(数学的な計算)を繰り返し行わなければならないが、例えば、非特許文献1に記載の技術では、複数のデジタル署名を一括して検証することで、デジタル署名の検証処理の効率性を向上させている。
以下、非特許文献1に記載の一括検証方法を説明する。
なお、以下では、Gを、位数をq(qは大きな素数)とする有限巡回群とし、gを群Gの生成元とする。さらに(x,y)(iは順番を示すインデックスであって、1≦i≦nを満たす自然数)は、下記の(1)式を満たすか否かを検証するための組(バッチインスタンス)とする。
Figure 0004988448
但し、各i(i=1,・・・,n)に対してx,yはそれぞれ下記の(2)式及び(3)式を満たす。
Figure 0004988448
Figure 0004988448
バッチインスタンス(x,y)(i=1,・・・,n)は、各i(i=1,・・・,n)に対して(1)式を満たすときに「有効」であるといい、そうでないとき「無効」であるという。なお、バッチインスタンスが有効である場合に、署名データも「有効」と判断され、バッチインスタンスが無効である場合に、署名データも無効と判断される。
なお、一括検証では、有効なバッチインスタンスを常に「有効」として受け入れるが、無効なバッチインスタンスも非常に小さな確率で「有効」として受け入れてしまう場合がある。そして、無効なバッチインスタンスを「有効」として受け入れる確率の上限が高々1/2(mは正の整数)であるとき、mはセキュリティレベルと呼ばれる。近年の計算機の能力からmは80程度に設定することが望ましいことが知られている。なお、セキュリティレベルmが大きいほど、デジタル署名の安全性が高いことが知られている。
ここで、通常の署名検証では、各i(i=1,・・・,n)に対応するデジタル署名に対して(1)式を満たすかどうかを各々別個に検証するのに対して、非特許文献1に記載のRandom Subset Testでは、下記の(4)式及び(5)を満たすか否かを検証する。
Figure 0004988448
Figure 0004988448
ここで、(5)式に示すように、各i(i=1,・・・,n)に対して、sは、0又は1がランダムに選ばれたものとする。
また、非特許文献1に記載のSmall Exponents Testは、下記の(6)式及び(7)式を満たすかどうかを検証する。
Figure 0004988448
Figure 0004988448
ここで、s(i=1,・・・,n)は、[0,・・・,2−1]からランダムに選ばれた整数である。ここで、mは任意の正の整数であり、このmによってセキュリティレベルが定まる。
なお、Random Subset TestのRandomは、(5)式に記載されているように、各i(i=1,2,3,・・・,n)に対してsをランダムに選択することに由来している。そして、Random Subset Testは「無効」なバッチインスタンスを高々1/2の確率で「有効」として受け入れてしまう。そこで実際には、セキュリティレベルをmに設定するために、Random Subset Testをm回独立に実行するAtomic Random Subset Testを用いる。これにより、Random Subset Testをm回独立に実行するAtomic Random Subset Testは「無効」なバッチインスタンスを「有効」として受け入れてしまう確率は高々1/2である。また、上述のSmall Exponents Testにおいても、「無効」なバッチインスタンスを「有効」として受け入れてしまう確率は高々1/2である。
この点、非特許文献1に記載の一括検証の効率性は、バッチインスタンスの個数nとセキュリティレベルmに依存する。
M. Bellare,J. Garay,and T. Rabin, "Fast Batch Verification for Modular Exponentiation and Digital Signatures", Advances in Cryptology - EUROCRYPT 1998,LNCS 1403, pp. 236 - 250, 1998.
非特許文献1に記載の一括検証の効率性は、バッチインスタンスの個数nとセキュリティレベルmに依存し、効率性と安全性(セキュリティレベルm)との間にはトレードオフの関係があり、高い安全性を求めると、高い効率性は望めないようになっている。
そこで、本発明は、高い安全性と高い効率性を兼ね備えた一括検証を実現することを目的とする。
以上の課題を解決するため、本発明は、複数の署名データに順番を特定し、特定した順番に応じた数を作用させる。
例えば、本発明は、複数の署名データのバッチインスタンスを一括して検証する一括検証装置であって、前記複数の署名データには、順番が特定されており、前記バッチインスタンスは、第一の値と、第二の値と、を備え、前記第一の値に対して前記順番に応じて異なる数を乗算した乗算値をべき指数として、有限乗法巡回群の生成元をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、前記順番に応じて異なる数をべき指数として、前記第二の値をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、が一致するか否かにより検証する処理部を備え、前記処理部は、特定された前記バッチインスタンスの順番を少なくとも一組以上入れ替えてから検証を行うこと、を特徴とする。
以上のように、本発明によれば、高い安全性と高い効率性を兼ね備えた一括検証を実現することができる。
図1は、本発明の第一の実施形態である署名一括検証システム100の概略図である。
図示するように、署名一括検証システム100は、署名装置110と、検証装置130と、を備え、これらの署名装置110及び検証装置130は、ネットワーク150を介して相互に情報の送受信を行うことができるようにされている。そして、本実施形態である署名一括検証システム100では、署名装置110でメッセージMに対する署名の生成を行い、検証装置130で署名の一括検証を行う。
図2は、署名装置110の概略図である。
図示するように、署名装置110は、記憶部111と、処理部114と、入力部117と、出力部118と、通信部119と、を備える。
記憶部111には、署名生成鍵記憶領域112と、データ記憶領域113と、が設けられている。
署名生成鍵記憶領域112には、署名を行う際の鍵情報である署名生成鍵が記憶される。
データ記憶領域113には、署名を行う対象となるデータであるメッセージが記憶される。
処理部114は、署名生成処理部115と、数学関数計算部116と、を備える。
署名生成処理部115は、署名を行う対象となるデータであるメッセージに対する署名データを生成する処理を制御する。
例えば、本実施形態では、署名生成処理部115は、署名を行う対象となるデータであるメッセージを、予め定められたハッシュ関数に入力することで、入力データを生成する。
そして、署名生成処理部115は、署名生成鍵記憶領域112に記憶されている署名生成鍵を取得して、入力データとともに、数学関数計算部116に入力する。
そして、署名生成処理部115は、数学関数計算部116より生成された署名を取得して、署名とメッセージとを署名データとして、通信部139を介して検証装置130に送信する。
数学関数計算部116は、署名生成処理部115から入力された入力データに対して、署名生成処理部115から入力された署名生成鍵を用いて、予め定められたアルゴリズムによる暗号化を施して署名を生成する。
そして、数学関数計算部116は、このようにして生成した署名を署名生成処理部115に出力する。
入力部117は、情報の入力を受け付ける。
出力部118は、情報を出力する。
通信部119は、ネットワーク150を介して、情報の送受信を行う。
以上に記載した署名装置110は、例えば、図5(コンピュータ160の概略図)に示すような、CPU161と、メモリ162と、HDD等の外部記憶装置163と、CD−ROMやDVD−ROM等の可搬性を有する記憶媒体164から情報を読み出す読取装置165と、キーボードやマウスなどの入力装置166と、ディスプレイなどの出力装置167と、通信ネットワークに接続するためのNIC(Network Interface Card)等の通信装置168と、を備えた一般的なコンピュータ160で実現できる。
例えば、記憶部111は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部114は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部117は、CPU161が入力装置166を利用することで実現可能であり、出力部118は、CPU161が出力装置167を利用することで実現可能であり、通信部119は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図3は、検証装置130の概略図である。
検証装置130は、記憶部131と、処理部134と、入力部137と、出力部138と、通信部139と、を備える。
記憶部131には、署名検証鍵記憶領域132と、署名データ記憶領域133と、が設けられている。
署名検証鍵記憶領域132には、署名装置110から送信されてきた署名データに含まれている署名を復号化して検証するための鍵情報である署名検証鍵が記憶される。
署名データ記憶領域133には、署名装置110から送信されてきた署名データを記憶する。
処理部134は、署名一括検証処理部135と、数学関数計算部136と、を備える。
署名一括検証処理部135は、署名装置110から送信されてきた署名データを一括して検証する処理を制御する。
例えば、本実施形態においては、署名一括検証処理部135は、署名検証鍵記憶領域132に記憶されている署名検証鍵pk及び署名データ記憶領域133に記憶されている署名データを記憶部131から取得し、数学関数計算部136に入力する。
そして、署名一括検証処理部135は、数学関数計算部136から一括検証の結果を取得して、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果を出力する。
数学関数計算部136は、署名一括検証部135から入力された署名データに含まれている署名に対して、署名一括検証部135から入力された署名検証鍵を用いて、予め定められたアルゴリズムによる署名の一括検証を施して、署名の有効性を確認する。
例えば、本実施形態においては、数学関数計算部136は、図4(数学関数計算部136の概略図)に示されているように、バッチインスタンス生成部136aと、置換部136bと、べき乗剰余計算部136fと、を備える。
バッチインスタンス生成部136aは、署名一括検証部135から入力された署名データに含まれている署名から、バッチインスタンスを生成する。ここで、バッチインスタンスの生成方法は、署名装置110及び検証装置130で使用する署名方式に依存する。なお、署名装置110及び検証装置130で使用する署名方式により生成された署名がバッチインスタンスとなっている場合には、数学関数計算部136にバッチインスタンス生成部136aを設ける必要はない。なお、バッチインスタンスの具体的な生成方法については、後述する実施形態2及び3で説明する。
置換部136bは、バッチインスタンスの順番を入れ替える処理を行う。
バッチインスタンスの順番の入れ替えは、任意の入れ替え方法を採用可能であるが、本実施形態においては、疑似乱数生成部136cと、中間状態格納部136dと、入れ替え部136eと、繰り返し判定部136fと、を用いて入れ替えを行う。なお、具体的な入れ替え方法については、図9を用いて詳細に説明する。
べき乗剰余計算部136fは、置換部136bで入れ替えられたバッチインスタンスをべき乗剰余演算することで、検証を行う。なお、べき乗剰余計算部136fでの処理については、図8を用いて詳細に説明する。
入力部137は、情報の入力を受け付ける。
出力部138は、情報を出力する。
通信部139は、ネットワーク150を介して、情報の送受信を行う。
以上に記載した検証装置130についても、例えば、図5(コンピュータ160の概略図)に示すような、一般的なコンピュータ160で実現できる。
例えば、記憶部131は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部134は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部137は、CPU161が入力装置166を利用することで実現可能であり、出力部138は、CPU161が出力装置167を利用することで実現可能であり、通信部139は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図6は、署名装置110における署名生成処理を示すシーケンス図である。
まず、署名装置110の署名生成処理部115は、入力部117を介して入力された又はデータ記憶領域113に記憶されているメッセージMを取得する(S10)。ここで、メッセージMは、デジタル化されたデータであればよく、テキスト、画像、映像、音等の種類は問わない。
次に、署名生成処理部115は、取得したメッセージMから入力データHを生成する(S11)。入力データHは、例えば、メッセージMのハッシュ値等で、メッセージMや使用する署名方式に依存するものである。
次に、署名生成処理部115は、記憶部111の署名生成鍵記憶領域112に記憶されている署名生成鍵skを読み出す(S12)。
そして、署名生成処理部115は、読み出した署名生成鍵sk及びステップS11で生成した入力データHを数学関数計算部116に入力する(S13)。
数学関数計算部116は、入力された署名生成鍵skと入力データHとから、署名Sを計算する(S14)。ここで、署名Sは、採用する署名方式に依存して計算される値である。
そして、数学関数計算部116は、計算した署名Sを署名生成処理部115に出力する(S15)。
署名生成処理部115は、受け取った署名Sと、メッセージMと、を署名データとして、通信部119を介して検証装置130に送信する(S16)。
なお、ステップS12において記憶部111からの署名生成鍵skの取得タイミングについては、数学関数計算部116へ署名生成鍵skを出力する前であればよく、例えば、メッセージMを取得する(S10)前であってもよい。
図7は、検証装置130における署名の一括検証処理を示すシーケンス図である。
まず、検証装置130の署名一括検証処理部135は、入力部137、通信部139を介して入力された、又は、記憶部131の署名データ記憶領域133に記憶されている署名データを任意の個数取得する(S20)。
また、署名一括検証処理部135は、記憶部131の署名検証鍵記憶領域132に記憶されている署名検証鍵pkを読み出す(S21)。
そして、署名一括検証処理部135は、取得した複数の署名データ及び読み出した署名検証鍵pkを数学関数計算部136に入力する(S22)。
数学関数計算部136では、入力された複数の署名データに含まれる署名Sからバッチインスタンスを生成する(S23)。なお、署名Sが既にバッチインスタンスとなっている場合には、バッチインスタンスを生成する必要はない。
そして、数学関数計算部136は、入力された署名検証鍵pkとバッチインスタンスとから、予め定められた一括検証を行い(S24)、その結果を検証結果として署名一括検証処理部135に出力する(S25)。なお、数学関数計算部136での署名の一括検証処理については、後述の図8を用いた説明で詳述する。
このような検証結果を取得した署名一括検証処理部135は、記憶部131に記憶するか、または、出力部138や通信部139を介して、検証結果(署名データが有効か否か)を出力する(S26)。
なお、記憶部131からの署名検証鍵pkの読み出し(S21)については、数学関数計算部136で一括検証を行う前であればよく、例えば、ステップS20において署名データを受け取る前であってもよい。
図8は、数学関数計算部136での一括検証処理を示すフローチャートである。
ここで、本実施形態では、署名の一括検証において、Gを、位数をq(qは大きな素数)とする有限巡回群、gを群Gの生成元とし、署名検証鍵pkを(G、g、q)とする。以下、複数の署名S(i=1,・・・,n)(nは任意の正の整数)の一括検証方法を具体的に説明する。
数学関数計算部136での一括検証処理は、任意の個数の署名データの入力を署名一括検証処理部135より受けることで開始される(S30)。
任意の個数の署名データの入力を署名一括検証処理部135より受けると、数学関数計算部136のバッチインスタンス生成部136aは、入力された署名データに含まれる複数の署名S(i=1,・・・,n)からバッチインスタンス(x,y)(i=1,・・・,n)を生成する(S31)。ここで、バッチインスタンスの変換方法は、使用する署名方式に依存する。なお、具体的なバッチインスタンスへの変換方法は後述する第二及び第三の実施形態で説明する。また、第二及び第三の実施形態で説明するように、バッチインスタンスへの変換が不要な署名方式として、例えば、非特許文献1に記載のRSA−FDH署名、DSA署名、ECDSA署名があり、バッチインスタンスへの変換が必要な署名方式として、例えば非特許文献1に記載のDSA署名、ECDSA署名等が知られている。
なお、ECDSA署名及びECDSA署名については、A. Antipa, D. Brown, R. Gallant, R. Lambert, R. Struik, and S. Vanstone, "Accelerated Verification of ECDSA Signatures", Selected Areas in Cryptography - SAC 2005, LNCS 3897, pp.307-318, 2006.(以下、非特許文献2という)に記載されている。
そして、数学関数計算部136の置換部136bは、置換群SIFTから置換εをランダムに選び、即ち、任意の置き換え方法により、バッチインスタンス(x,y)(i=1,・・・,n)の順番を(xε(i),yε(i))(i=1,・・・,n)に入れ替える(S32)。ここで、置換群SIFTは、集合{1,2,・・・,n}から集合{1,2,・・・,n}への置換全体の集合であり、当該置換は全単射であることが望ましい。なお、置換の具体例については、後述の図9を用いて詳述する。
次に、数学関数計算部136のべき乗剰余計算部136fは、入れ替えられた(xε(i),yε(i))(i=1,・・・,n)を用いて、下記の(8)式及び(9)式を計算する(S33)。
Figure 0004988448
Figure 0004988448
ここで、(8)式及び(9)式におけるαは、任意の自然数であり、少なくとも一回の検証においては(8)式及び(9)式において同じ数になるように予め定めておく。なお、(8)式及び(9)式におけるαについては、このような形態に限定されず、順番iにより異なる数、例えば、iを変数とする任意の関数f(i)であってもよい。
そして、べき乗剰余計算部136fは、(8)式で計算されたzと、(9)式で計算されたwと、の間で下記の(10)式を満たすか否かを検討し、満たす場合には(ステップS34でYes)、署名が有効であると判断し(S35)、満たさない場合には(ステップS34でNo)、署名が無効であると判断する(S36)。
Figure 0004988448
なお、本実施形態では、z=wで検証処理を行っているが、検証処理を行うことができれば、どのような検証式を用いてもよく、検証式の種類は問わない。
図9は、置換部136bにおける入れ替え処理を示すフローチャートである。
まず、置換部136bの中間状態格納部136dは、バッチインスタンス(x,y)(i=1,・・・,n)を領域Tに格納する(S40)。
次に、置換部136bの擬似乱数生成部136cは、乱数kを生成する(S41)。ここで、擬似乱数生成部136cは、乱数kと予め定められた初期ベクトルIVを擬似乱数生成器に入力し、予め定められた整数tに対して乱数列r,r,・・・,r2t−1を出力する(S42)。ここで、整数tはバッチインスタンスを入れ替える回数を表すものであり、予め定めておく。
繰り返し判定部136fは、iを初期化する(iに1を格納する)(S43)。
次に、繰り返し判定部136fは、i≦tであるかどうかを判定する(S44)。そして、i≦tである場合には(ステップS44においてYes)、ステップS45に進み、i≦tではない場合には(ステップS44においてNo)、処理を終了する。
ステップ45では、入れ替え部136eは、領域Tに格納されているバッチインスタンスの(r2imod n)番目と(r2i+1mod n)番目とを入れ替える(S45)。
なお、擬似乱数生成器については、例えば、D. Wanatabe, S. Furuya, H. Yoshida, K. Takaragi, and B. Preneel, "A New Keystream Generator MUGI", IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, vol. E87-A, No.1, 2004. に詳細に記載されている。
そして、iをインクリメント(i←i+1)して(S46)、ステップS44に戻り処理を繰り返す。
なお、整数tの値については、予め定められた固定値でもよいし、一括検証のたびに変更してもよい。
また、置換の作成方法はこのような態様に限定されるわけではなく、例えば、事前に入れ替えを表すテーブル(入れ替え前の順番と入れ替え後の順番とを対応付けて格納したテーブル)を作成しておき、当該テーブルに基づいて入れ替えを行うようにしてもよく、実現可能であればその方法は問わない。
さらに、置換方法は、一括検証のたびに変更してもよいし、複数回使用してから変更してもよい。ただし、特定の置換方法を複数回にわたって使用する場合は、安全性の観点から署名検証者に当該置換方法を知られないようにする必要がある。
なお、バッチインスタンス(x,y)(i=1,・・・,n)において、各i(i=1,・・・,n)に対して上述の(1)式を満たせば、上述の(10)式を満たす。つまり、上述の署名一括検証方法は有効なバッチインスタンスを常に「有効」として受け入れる。この理由は以下の通りである。
各i(i=1,・・・,n)に対して(1)式を満たせば、各i(i=1,・・・,n)に対して、下記の(11)が成立する。
Figure 0004988448
そして、(11)式より下記の(12)式が成立するからである。
Figure 0004988448
そして、上述の署名の一括検証方法が無効なバッチインスタンスを「有効」として受け入れる確率の上限は高々1/qである。この理由は以下の通りである。
(1≦i≦n)以外のi(i=1,・・・,n)に対応する整数j(i)(1≦j≦n)が決まっているとき、下記の(13)式及び(14)式を満たすj(i)が存在する確立は、高々1/qだからである。但し、1≦j(i)≦nである。
Figure 0004988448
Figure 0004988448
また、非特許文献1に記載の一括検証と本実施形態に記載の一括検証(図10ではRandom Shuffle Testという)における計算コスト(計算時間)との比較図を図10に示す。
上述のとおり、非特許文献1に記載の一括検証の計算コストは、検証したいバッチインスタンスの個数nとセキュリティパラメータmの2つに依存するのに対し、本発明であるRandom Shuffle Testの計算コストは、検証したいバッチインスタンスの個数nにのみ依存する。
従って、本実施形態に記載の一括検証は非特許文献1に記載の一括検証と比較して、より効率的に一括検証が可能であることがわかる。
また、本実施形態に記載の一括検証が高い安全性を備える理由は以下の通りである。
上述の通り、近年の計算機の能力からmは80程度に設定することが望ましいことが知られている。一方、近年の計算機の能力、及び現在までに知られている数学関数に対する攻撃方法からqは160ビット程度以上の素数を用いる必要がある。
このとき、非特許文献1に記載の一括検証におけるセキュリティレベルは80程度なのに対し、本実施形態に記載の一括検証におけるセキュリティレベルは160程度となる。上述の通り、セキュリティレベルは大きいほど、安全性が高いことが知られている。したがって、本実施形態に記載の一括検証は高い安全性も有することがわかる。
以上の通り、本実施形態の一括検証によれば、置換を行うこと、および、効率的に計算可能な検証式を用いること、により高い安全性と高い効率性を兼ね備えた署名一括検証が可能になる。
なお、以上に記載した実施形態においては、下記の(15)式を検証する代わりに、(16)式を検証するようにしているが、このような態様には限定されない。
Figure 0004988448
Figure 0004988448
例えば、下記の(17)式を検証する代わりに、(18)式を検証するようにしてもよい。
Figure 0004988448
Figure 0004988448
但し、有限群Gは、加法群とする。
ここで、(17)式及び(18)式におけるαは、上述と同様、任意の自然数であるが、このような形態に限定されず、順番iにより異なる数、例えば、iを変数とする任意の関数f(i)であってもよい。
次に、第二の実施形態である署名一括検証システムについて説明する。第二の実施形態は、本発明をDSA署名に適用した例である。ここで、本実施形態における署名一括兼用システムも、第一の実施形態と同様に、署名装置210及び検証装置230を備える。
図11は、本実施形態で用いられる署名装置210の概略図である。
図示するように、署名装置210は、記憶部211と、処理部214と、入力部117と、出力部118と、通信部119と、を備え、入力部117、出力部118及び通信部119については第一の実施形態と同様であるため、説明を省略する。
記憶部211には、署名生成鍵記憶領域212と、データ記憶領域213と、が設けられている。
署名生成鍵記憶領域212には、署名を行う際の鍵情報である署名生成鍵が記憶される。ここで、DSA署名における署名生成鍵xは、x:x∈Zq−1なる整数である。
データ記憶領域213には、署名を行う対象となるデータであるメッセージが記憶される。
処理部214は、署名生成処理部215と、数学関数計算部216と、を備える。
署名生成処理部215は、署名を行う対象となるデータであるメッセージに対する署名データを生成する処理を制御する。
例えば、本実施形態では、署名生成処理部215は、署名を行う対象となるデータであるメッセージを、予め定められたハッシュ関数に入力することで、入力データを生成する。
そして、署名生成処理部215は、署名生成鍵記憶領域212に記憶されている署名生成鍵を取得して、入力データとともに、数学関数計算部216に入力する。
そして、署名生成処理部215は、数学関数計算部216より生成された署名を取得して、署名とメッセージとを署名データとして、通信部139を介して検証装置230に送信する。
数学関数計算部216は、署名生成処理部215から入力された入力データに対して、署名生成処理部215から入力された署名生成鍵を用いて、予め定められたアルゴリズムによる暗号化を施して署名を生成する。
DSA署名において、上述の署名生成鍵xを用いたメッセージM(i=1,・・・,n)に対する署名Sは、下記の(19)式及び(20)式で計算される。
Figure 0004988448
Figure 0004988448
但し、kは署名生成時に生成した乱数であり、下記の(21)式を満たす。
Figure 0004988448
また、σは、下記の(22)式を満たす。
Figure 0004988448
ここで、Hは暗号学的ハッシュ関数を意味する。
また、DSA署名におけるシステムパラメータである(p、q、g)は、下記の通りである。
p:2L−1<p<2、512≦L≦1024、Lmod64≡0なる素数。
q:q|(p−1)、2159<q<2160なる素数。
g:あるh∈Z に対してg=h(p−1)/qmodp。
これらのシステムパラメータは、ネットワーク上に公開される。
ここで、Z は、xとqとの最大公約数が1となるようなqより小さい正の整数全体の集合である。
そして、数学関数計算部216は、このようにして生成した署名を署名生成処理部215に出力する。
以上に記載した署名装置210も、例えば、図5に示すような一般的なコンピュータ160で実現できる。
例えば、記憶部211は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部214は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部117は、CPU161が入力装置166を利用することで実現可能であり、出力部118は、CPU161が出力装置167を利用することで実現可能であり、通信部119は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図12は、本実施形態で用いられる検証装置230の概略図である。
検証装置230は、記憶部231と、処理部234と、入力部137と、出力部138と、通信部139と、を備え、入力部137、出力部138及び通信部139は、第一の実施形態と同様であるため、説明を省略する。
記憶部231には、署名検証鍵記憶領域232と、署名データ記憶領域233と、が設けられている。
署名検証鍵記憶領域232には、署名装置210から送信されてきた署名データに含まれている署名を復号化して検証するための鍵情報である署名検証鍵が記憶される。ここで、DSA署名における署名検証鍵は、(y、g、p、q)である。なお、y=gである。
署名データ記憶領域233には、署名装置210から送信されてきた署名データを記憶する。
処理部234は、署名一括検証処理部235と、数学関数計算部236と、を備える。
署名一括検証処理部235は、署名装置210から送信されてきた署名データを一括して検証する処理を制御する。
例えば、本実施形態においては、署名一括検証処理部235は、署名検証鍵記憶領域232に記憶されている署名検証鍵及び署名データ記憶領域233に記憶されている署名データを記憶部231から取得し、数学関数計算部236に入力する。
そして、署名一括検証処理部235は、数学関数計算部236から一括検証の結果を取得して、記憶部231に記憶するか、または、出力部138や通信部139を介して、検証結果を出力する。
数学関数計算部236は、署名一括検証部235から入力された署名データに含まれている署名に対して、署名一括検証部235から入力された署名検証鍵を用いて、予め定められたアルゴリズムによる署名の一括検証を施して、署名の有効性を確認する。
ここで、数学関数計算部236は、図示してはいないが、第一の実施形態と同様に、バッチインスタンス生成部と、置換部と、べき乗剰余計算部と、を備える。
DSA署名方式で生成された署名については、一括検証方式を適用できるように変形する必要があるため、数学関数計算部236のバッチインスタンス生成部は、署名装置210から取得した署名をバッチインスタンスに変形する。
具体的には、数学関数計算部236のバッチインスタンス生成部は、上述の(19)式で算出された署名Sを、上述の(20)式、(21)式及び(22)式を満たすλ、k、σを用いて、下記の(23)式、(24)式及び(25)式によりバッチインスタンスを算出する。
Figure 0004988448
Figure 0004988448
Figure 0004988448
数学関数計算部236の置換部は、バッチインスタンス生成部で変換されたバッチインスタンスを任意の方法で入れ替えを行う。ここでは、第一の実施形態と同様の方法で入れ替えを行うものとする。
例えば、バッチインスタンス(λ,a,b)(i=1,・・・,n)の順番を(λτ(i),aτ(i),bτ(i))(i=1,・・・,n)に入れ替える。ここで、τは、入れ替え方法を識別するための記号である。
そして、数学関数計算部236のべき乗剰余計算部は、下記の(26)式を満たすかどうかで検証を行う。
Figure 0004988448
即ち、(26)式を満たす場合は「有効」として署名Sを受け入れ、(26)式を満たさない場合は「無効」として署名Sを拒否する。なお、(26)式におけるαは任意の自然数である。ここで、(26)式におけるαについては、このような形態に限定されず、順番iにより異なる数、例えば、iを変数とする任意の関数f(i)であってもよい。
以上に記載した検証装置230についても、図5に示すような、一般的なコンピュータ160で実現できる。
例えば、記憶部231は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部234は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部137は、CPU161が入力装置166を利用することで実現可能であり、出力部138は、CPU161が出力装置167を利用することで実現可能であり、通信部139は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図13は、本実施形態における数学関数計算部236での一括検証処理を示すフローチャートである。
数学関数計算部236での一括検証処理は、任意の個数の署名データの入力を署名一括検証処理部235より受けることで開始される(S50)。
任意の個数の署名データの入力を署名一括検証処理部235より受けると、数学関数計算部236のバッチインスタンス生成部は、入力された署名データに含まれる複数の署名Si(i=1,・・・,n)からバッチインスタンス(λ,a,b)(i=1,・・・,n)を生成する(S51)。
そして、数学関数計算部236の置換部は、置換群SIFTから置換τをランダムに選び、即ち、任意の置き換え方法により、バッチインスタンス(λ,a,b)(i=1,・・・,n)の順番を(λτ(i),aτ(i),bτ(i))(i=1,・・・,n)に入れ替える(S52)。
次に、数学関数計算部236のべき乗剰余計算部は、入れ替えられた(λτ(i),aτ(i),bτ(i))を用いて、上述の(26)式を計算する(S53)。
そして、べき乗剰余計算部は、(26)式を満たすか否かを検討し、満たす場合には(ステップS53でYes)、署名が有効であると判断し(S54)、満たさない場合には(ステップS53でNo)、署名が無効であると判断する(S55)。
なお、本実施形態では、(26)式で検証処理を行っているが、検証処理を行うことができれば、どのような検証式を用いてもよく、検証式の種類は問わない。
本実施形態では、ある署名者によって署名された複数の署名(乃至はバッチインスタンス)を一括検証する場合を説明したが、複数の署名者がそれぞれ署名した複数の署名(又はバッチインスタンス)を一括検証することも可能である。
例えば、署名生成鍵skと署名検証鍵pkの組{sk=x,pk=(y,g,p,q)}(ここで、y=gxi)をもつ少なくとも一人以上のユーザA(1≦i≦r)がそれぞれ生成したバッチインスタンス(λ (i),a (i),b (i)){1≦j≦n(i)}に対する一括検証として次の方法がある。
一つ目の方法は、各ユーザのバッチインスタンスを入れ替えて、各々のユーザ毎に上述の(23)式の両辺をそれぞれ掛け合わせた式を満たすか否かを検証する方法である。
二つ目の方法は、二つ目は全ユーザA(1≦i≦r)のバッチインスタンスを入れ替えた後、(26)式を満たすかどうかを検証する方法である。ただし、この方法の場合、(26)式の右辺のyの部分は、bがどのユーザによって生成されたバッチインスタンスであるかどうかによって変更する必要がある。
本実施形態に記載の一括検証が非特許文献1に記載の一括検証と比較して、より効率的に一括検証が可能である理由は第一の実施形態と同様である。
また、本実施形態に記載の一括検証が高い安全性を有する理由も第一の実施形態と同様である。
以上の通り、本実施形態の一括検証によれば、置換を用いること、及び効率的に計算可能な検証式を用いることにより、高い安全性と高い効率性を兼ね備えたDSA署名の一括検証が可能になる。
なお、以上に記載した一括検証方式では、DSA署名方式を利用したが、DSA署名の代わりに、DSA署名を利用することも可能である。
DSA署名では、上述の(23)式、(24)式及び(25)式で算出されるバッチインスタンスが署名となっているため(署名装置で計算されるため)、検証装置230においてバッチインスタンスを生成する必要がなくなる。
なお、DSA署名は、非特許文献1に記載されており、その安全性はDSA署名と等価である。
次に、第三の実施形態である署名一括検証システムについて説明する。第三の実施形態は、本発明をECDSA署名に適用した例である。ここで、本実施形態における署名一括兼用システムも、第一の実施形態と同様に、署名装置310及び検証装置330を備える。
図14は、本実施形態で用いられる署名装置310の概略図である。
図示するように、署名装置310は、記憶部311と、処理部314と、入力部117と、出力部118と、通信部119と、を備え、入力部117、出力部118及び通信部119については第一の実施形態と同様であるため、説明を省略する。
記憶部311には、署名生成鍵記憶領域312と、データ記憶領域313と、が設けられている。
署名生成鍵記憶領域312には、署名を行う際の鍵情報である署名生成鍵が記憶される。ここで、ECDSA署名における署名生成鍵dは、d:d∈Zn−1なる整数である。
データ記憶領域313には、署名を行う対象となるデータであるメッセージが記憶される。
処理部314は、署名生成処理部315と、数学関数計算部316と、を備える。
署名生成処理部315は、署名を行う対象となるデータであるメッセージに対する署名データを生成する処理を制御する。
例えば、本実施形態では、署名生成処理部315は、署名を行う対象となるデータであるメッセージを、予め定められたハッシュ関数に入力することで、入力データを生成する。
そして、署名生成処理部315は、署名生成鍵記憶領域312に記憶されている署名生成鍵を取得して、入力データとともに、数学関数計算部316に入力する。
そして、署名生成処理部315は、数学関数計算部316より生成された署名を取得して、署名とメッセージとを署名データとして、通信部139を介して検証装置330に送信する。
数学関数計算部316は、署名生成処理部315から入力された入力データに対して、署名生成処理部315から入力された署名生成鍵を用いて、予め定められたアルゴリズムによる暗号化を施して署名を生成する。
ECDSA署名において、上述の署名生成鍵dを用いたメッセージM(i=1,・・・,n)に対する署名Sは、下記の(27)式、(28)式、(29)式及び(30)式で計算される。
Figure 0004988448
Figure 0004988448
Figure 0004988448
Figure 0004988448
ここで、Hは暗号学的ハッシュ関数を意味する。また、x(R)は楕円曲線E(F)上の点Rのx座標を表す。
また、kは署名生成時に生成した乱数であり、下記の(31)式を満たす。
Figure 0004988448
なお、ECDSA署名におけるシステムパラメータは、下記の通りである。
E/F:有限体F上定義された楕円曲線。
q:ビットサイズが160以上である素数pのべき。
#E(F)=n×h(但し、hは小さな整数、nは大きな素数)。
P:位数がnであるようなE(F)上の点。
これらのシステムパラメータは、ネットワーク上に公開される。
そして、数学関数計算部316は、このようにして生成した署名を署名生成処理部315に出力する。
以上に記載した署名装置310も、例えば、図5に示すような一般的なコンピュータ160で実現できる。
例えば、記憶部311は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部314は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部117は、CPU161が入力装置166を利用することで実現可能であり、出力部118は、CPU161が出力装置167を利用することで実現可能であり、通信部119は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図15は、本実施形態で用いられる検証装置330の概略図である。
検証装置330は、記憶部331と、処理部334と、入力部137と、出力部138と、通信部139と、を備え、入力部137、出力部138及び通信部139は、第一の実施形態と同様であるため、説明を省略する。
記憶部331には、署名検証鍵記憶領域332と、署名データ記憶領域333と、が設けられている。
署名検証鍵記憶領域332には、署名装置310から送信されてきた署名データに含まれている署名を復号化して検証するための鍵情報である署名検証鍵が記憶される。ここで、ECDSA署名における署名検証鍵Qは、Q=dPである。
署名データ記憶領域333には、署名装置310から送信されてきた署名データを記憶する。
処理部334は、署名一括検証処理部335と、数学関数計算部336と、を備える。
署名一括検証処理部335は、署名装置310から送信されてきた署名データを一括して検証する処理を制御する。
例えば、本実施形態においては、署名一括検証処理部335は、署名検証鍵記憶領域332に記憶されている署名検証鍵及び署名データ記憶領域333に記憶されている署名データを記憶部331から取得し、数学関数計算部336に入力する。
そして、署名一括検証処理部335は、数学関数計算部336から一括検証の結果を取得して、記憶部331に記憶するか、または、出力部138や通信部139を介して、検証結果を出力する。
数学関数計算部336は、署名一括検証部335から入力された署名データに含まれている署名に対して、署名一括検証部335から入力された署名検証鍵を用いて、予め定められたアルゴリズムによる署名の一括検証を施して、署名の有効性を確認する。
ここで、数学関数計算部336は、図示してはいないが、第一の実施形態とは異なり、バッチインスタンス生成部と、置換部と、スカラー倍数計算部と、を備える。
なお、スカラー倍数計算部は、置換部で入れ替えられたバッチインスタンスをスカラー倍数計算することで、検証を行う。
ECDSA署名方式で生成された署名については、一括検証方式を適用できるように変形する必要があるため、数学関数計算部336のバッチインスタンス生成部は、署名装置310から取得した署名をバッチインスタンスに変形する。
具体的には、数学関数計算部336のバッチインスタンス生成部は、上述の(27)式で算出された署名Sを、上述の(28)式、(29)式及び(30)式を用いて、下記の(32)式に示すバッチインスタンスを算出する。
Figure 0004988448
数学関数計算部336の置換部は、バッチインスタンス生成部で変換されたバッチインスタンスを任意の方法で入れ替えを行う。ここでは、第一の実施形態と同様の方法で入れ替えを行うものとする。
例えば、バッチインスタンス(σ,R)(i=1,・・・,n)の順番を(στ(i),Rτ(i))(i=1,・・・,n)に入れ替える。ここで、τは、入れ替え方法を示す記号である。
そして、数学関数計算部336のスカラー倍数計算部は、下記の(33)式を満たすかどうかで検証を行う。
Figure 0004988448
即ち、(33)式を満たす場合は「有効」として署名Sを受け入れ、(33)式を満たさない場合は「無効」として署名Sを拒否する。なお、(33)式におけるαは任意の自然数である。ここで、(33)式におけるαについては、このような形態に限定されず、順番iによりなる数、例えば、iを変数とする任意の関数f(i)であってもよい。
以上に記載した検証装置330についても、図5に示すような、一般的なコンピュータ160で実現できる。
例えば、記憶部331は、CPU161がメモリ162又は外部記憶装置163を利用することにより実現可能であり、処理部334は、外部記憶装置163に記憶されている所定のプログラムをメモリ162にロードしてCPU161で実行することで実現可能であり、入力部137は、CPU161が入力装置166を利用することで実現可能であり、出力部138は、CPU161が出力装置167を利用することで実現可能であり、通信部139は、CPU161が通信装置168を利用することで実現可能である。
この所定のプログラムは、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、外部記憶装置163にダウンロードされ、それから、メモリ162上にロードされてCPU161により実行されるようにしてもよい。また、読取装置165を介して記憶媒体164から、あるいは、通信装置168を介してネットワークから、メモリ162上に直接ロードされ、CPU161により実行されるようにしてもよい。
図16は、本実施形態における数学関数計算部336での一括検証処理を示すフローチャートである。
数学関数計算部336での一括検証処理は、任意の個数の署名データの入力を署名一括検証処理部335より受けることで開始される(S60)。
任意の個数の署名データの入力を署名一括検証処理部335より受けると、数学関数計算部336のバッチインスタンス生成部は、入力された署名データに含まれる複数の署名Si(i=1,・・・,n)からバッチインスタンス(σ,R)(i=1,・・・,n)を生成する(S61)。
そして、数学関数計算部336の置換部は、置換群SIFTから置換τをランダムに選び、即ち、任意の置き換え方法により、バッチインスタンス(σ,R)(i=1,・・・,n)の順番を(στ(i),Rτ(i))(i=1,・・・,n)に入れ替える(S62)。
次に、数学関数計算部336のスカラー倍数計算部は、入れ替えられたバッチインスタンス(στ(i),Rτ(i))(i=1,・・・,n)を用いて、上述の(33)式を計算する(S63)。
そして、スカラー倍数計算部は、(33)式を満たすか否かを検討し、満たす場合には(ステップS63でYes)、署名が有効であると判断し(S64)、満たさない場合には(ステップS53でNo)、署名が無効であると判断する(S65)。
なお、本実施形態では、(33)式で検証処理を行っているが、検証処理を行うことができれば、どのような検証式を用いてもよく、検証式の種類は問わない。
本実施形態では、ある署名者によって署名された複数の署名(乃至はバッチインスタンス)を一括検証する場合を説明したが、複数の署名者がそれぞれ署名した複数の署名(又はバッチインスタンス)を一括検証することも可能である。
例えば、署名生成鍵skと署名検証鍵pkの組(sk=d,pk=Q)(ここで、Q=dP)をもつ少なくとも一人以上のユーザA(1≦i≦r)がそれぞれ生成したバッチインスタンス(σ (i),a (i),b (i)){1≦j≦n(i)}に対する一括検証として次の方法がある。
一つ目の方法は、各ユーザのバッチインスタンスを入れ替えて、各ユーザ毎に上述の(33)式の両辺をそれぞれ掛け合わせた式を満たすか否かを検証する方法である。
二つ目の方法は、二つ目は全ユーザA(1≦i≦r)のバッチインスタンスを入れ替えた後、(33)式を満たすかどうかを検証する方法である。ただし、この方法の場合、(33)式の右辺のQの部分は、Rがどのユーザによって生成されたバッチインスタンスであるかどうかによって変更する必要がある。
本実施形態に記載の一括検証が非特許文献1に記載の一括検証と比較して、より効率的に一括検証が可能である理由は第一の実施形態と同様である。
また、本実施形態に記載の一括検証が高い安全性を有する理由も第一の実施形態と同様である。
以上の通り、本実施形態の一括検証によれば、置換を用いること、及び効率的に計算可能な検証式を用いることにより、高い安全性と高い効率性を兼ね備えたECDSA署名の一括検証が可能になる。
なお、以上に記載した一括検証方式では、ECDSA署名方式を利用したが、ECDSA署名の代わりに、ECDSA署名を利用することも可能である。
ECDSA署名では、上述の(32)式で算出されるバッチインスタンスが署名となっているため(署名装置で計算されるため)、検証装置330においてバッチインスタンスを生成する必要がなくなる。
なお、ECDSA署名は、非特許文献2に記載されており、その安全性はECDSA署名と等価である。
なお、上記各実施形態では、署名生成処理部、署名一括検証処理部を、ソフトウェアで実現するものとして説明したが、専用のハードウェアを用いて実現してもよい。また、数学関数計算部を専用ハードウェアで実現しても良い。
以上に記載した署名一括検証システムについては、署名装置110、210、310から大量の署名データが検証装置130、230、330に送られてくるようなシステムで利用することができる。
例えば、図17(リアルタイム監視システム170の概略図)に示すような監視カメラを用いたリアルタイム監視システム170に利用することができる。
図示するように、リアルタイム監視システム170は、監視カメラ171と、署名装置110、210、310と、検証装置130、230、330と、モニタ172と、を備えており、署名装置110、210、310及び検証装置130、230、330はネットワーク150に接続されている。
そして、例えば、監視対象とするエリアに監視カメラ171を設置し、撮像映像を署名装置110、210、310で署名データにして、ネットワーク150を介して、警備会社等の監視センタに設置されている検証装置130、230、330に送信し、検証装置130、230、330に蓄積しておく。
検証装置130、230、330では、蓄積した署名データに含まれている撮像映像を確認する必要が出てきた場合に、蓄積された署名データの内必要な部分を一括して検証することで、特定の監視カメラ171で撮像され、データに改ざんがなされていないことを検証することができる。
このような検証を行う際に、本発明による一括検証を行うことで、安全性の高い検証を効率的に行うことができるようになる。
第一の実施形態である署名一括検証システムの概略図。 署名装置の概略図。 検証装置の概略図。 数学関数計算部の概略図。 コンピュータの概略図。 署名装置における署名生成処理を示すシーケンス図。 検証装置における署名の一括検証処理を示すシーケンス図。 数学関数計算部での一括検証処理を示すフローチャート。 置換部における入れ替え処理を示すフローチャート。 計算コスト(計算時間)の比較図。 署名装置の概略図。 検証装置の概略図。 数学関数計算部での一括検証処理を示すフローチャート。 署名装置の概略図。 検証装置の概略図。 数学関数計算部での一括検証処理を示すフローチャート。 リアルタイム監視システムの概略図。
符号の説明
100 署名一括検証システム
110、210、310 署名装置
111、211、311 記憶部
114、214、314 処理部
130、230、330 検証装置
131、231、331 記憶部
134、234、334 処理部

Claims (9)

  1. 複数の署名データのバッチインスタンスを一括して検証する一括検証装置であって、
    前記複数の署名データには、順番が特定されており、
    前記バッチインスタンスは、第一の値と、第二の値と、を備え、
    前記第一の値に対して前記順番に応じて異なる数を乗算した乗算値をべき指数として、有限乗法巡回群の生成元をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    前記順番に応じて異なる数をべき指数として、前記第二の値をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    が一致するか否かにより検証する処理部を備え、
    前記処理部は、
    特定された前記バッチインスタンスの順番を少なくとも一組以上入れ替えてから検証を行うこと、
    を特徴とする一括検証装置。
  2. 請求項に記載の一括検証装置であって、
    前記処理部は、
    特定された前記バッチインスタンスの順番を入れ替える複数の入替方法を備えており、
    前記複数の入替方法から選択された位置の入替方法を用いて、特定された前記バッチインスタンスの順番を予め入れ替えること、
    を特徴とする一括検証装置。
  3. 請求項2に記載の一括検証装置であって、
    前記バッチインスタンスを(x 1 , y 1 ),・・・,(x n , y n )、前記有限乗法巡回群の位数をq、生成元をg、集合{1,・・・, n}上の前記置換をεとし、予め定められた自然数をαとすると、
    前記処理部は、
    Figure 0004988448
    が成り立つか否かにより検証すること、
    を特徴とする一括検証装置。
  4. コンピュータに、複数の署名データのバッチインスタンスを一括して検証する処理を行わせるプログラムであって、
    前記複数の署名データには、順番が特定されており、
    前記バッチインスタンスは、第一の値と、第二の値と、を備え、
    前記コンピュータを、
    前記第一の値に対して前記順番に応じて異なる数を乗算した乗算値をべき指数として、有限乗法巡回群の生成元をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    前記順番に応じて異なる数をべき指数として、前記第二の値をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    が一致するか否かにより検証する処理手段として機能させ、
    前記処理手段は、
    特定された前記バッチインスタンスの順番を少なくとも一組以上入れ替えてから検証を行うこと、
    を特徴とするプログラム。
  5. 請求項に記載のプログラムであって、
    前記処理手段は、
    特定された前記バッチインスタンスの順番を入れ替える複数の入替方法を備えており、
    前記複数の入替方法から選択された位置の入替方法を用いて、特定された前記バッチインスタンスの順番を予め入れ替えること、
    を特徴とするプログラム。
  6. 請求項5に記載のプログラムであって、
    前記バッチインスタンスを(x 1 , y 1 ),・・・,(x n , y n )、前記有限乗法巡回群の位数をq、生成元をg、集合{1,・・・, n}上の前記置換をεとし、予め定められた自然数をαとすると、
    前記処理手段は、
    Figure 0004988448
    が成り立つか否かにより検証すること、
    を特徴とするプログラム。
  7. 複数の署名データのバッチインスタンスを一括して検証する処理部を備える一括検証装置が行う一括検証方法であって、
    前記複数の署名データには、順番が特定されており、
    前記バッチインスタンスは、第一の値と、第二の値と、を備え、
    前記処理部が、
    前記第一の値に対して前記順番に応じて異なる数を乗算した乗算値をべき指数として、有限乗法巡回群の生成元をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    前記順番に応じて異なる数をべき指数として、前記第二の値をべき乗した値を全てのバッチインスタンスにおいて算出し、算出した値を全て乗算した値と、
    が一致するか否かにより検証する過程を備え、
    前記処理部は、
    特定された前記バッチインスタンスの順番を少なくとも一組以上入れ替えてから検証を行うこと、
    を特徴とする一括検証方法。
  8. 請求項7に記載の一括検証方法であって、
    前記処理部は、
    特定された前記バッチインスタンスの順番を入れ替える複数の入替方法を備えており、
    前記複数の入替方法から選択された位置の入替方法を用いて、特定された前記バッチインスタンスの順番を予め入れ替えること、
    を特徴とする一括検証方法。
  9. 請求項8に記載の一括検証方法であって、
    前記バッチインスタンスを(x 1 , y 1 ),・・・,(x n , y n )、前記有限乗法巡回群の位数をq、生成元をg、集合{1,・・・, n}上の前記置換をεとし、予め定められた自然数をαとすると、
    前記処理部は、
    Figure 0004988448
    が成り立つか否かにより検証すること、
    を特徴とする一括検証方法。
JP2007165892A 2007-06-25 2007-06-25 一括検証装置、プログラム及び一括検証方法 Active JP4988448B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007165892A JP4988448B2 (ja) 2007-06-25 2007-06-25 一括検証装置、プログラム及び一括検証方法
CN2008100828257A CN101335625B (zh) 2007-06-25 2008-02-28 统一验证装置、程序以及统一验证方法
US12/046,585 US20080320557A1 (en) 2007-06-25 2008-03-12 Batch verification device, program and batch verification method
GB0804683A GB2450574B (en) 2007-06-25 2008-03-13 Batch verification device, program and batch verification method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007165892A JP4988448B2 (ja) 2007-06-25 2007-06-25 一括検証装置、プログラム及び一括検証方法

Publications (2)

Publication Number Publication Date
JP2009005213A JP2009005213A (ja) 2009-01-08
JP4988448B2 true JP4988448B2 (ja) 2012-08-01

Family

ID=39328064

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007165892A Active JP4988448B2 (ja) 2007-06-25 2007-06-25 一括検証装置、プログラム及び一括検証方法

Country Status (4)

Country Link
US (1) US20080320557A1 (ja)
JP (1) JP4988448B2 (ja)
CN (1) CN101335625B (ja)
GB (1) GB2450574B (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890763B1 (en) * 2007-09-14 2011-02-15 The United States Of America As Represented By The Director, National Security Agency Method of identifying invalid digital signatures involving batch verification
KR101876297B1 (ko) 2012-03-16 2018-07-10 삼성전자주식회사 전자 서명 검증 장치 및 방법
WO2013153628A1 (ja) * 2012-04-11 2013-10-17 株式会社日立製作所 演算処理システムおよび演算結果認証方法
CN103428692B (zh) * 2013-08-07 2016-08-10 华南理工大学 可问责且隐私保护的无线接入网络认证方法及其认证系统
KR102070061B1 (ko) * 2014-03-27 2020-01-29 한국전자통신연구원 묶음 검증 방법 및 장치
US10924287B2 (en) * 2017-06-23 2021-02-16 Onboard Security, Inc. Digital signature technique
CN110851803B (zh) * 2019-11-08 2022-03-29 北京明略软件系统有限公司 一种批量注册用户信息的系统及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347581A (en) * 1993-09-15 1994-09-13 Gemplus Developpement Verification process for a communication system
JP2001044987A (ja) * 1999-08-03 2001-02-16 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 一括認証方法
JP2001209308A (ja) * 2000-01-24 2001-08-03 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd 一括署名方法
FR2807246B1 (fr) * 2000-03-28 2002-12-27 Gemplus Card Int Procede de generation de cles electroniques a partir de nombres entiers premiers entre eux et dispositif de mise en oeuvre du procede
US7774435B2 (en) * 2001-07-26 2010-08-10 Oracle America, Inc. System and method for batch tuning intelligent devices
FR2834153B1 (fr) * 2001-12-21 2004-04-23 France Telecom Procede cryptographique permettant de repartir la charge entre plusieurs entites et dispositifs pour mettre en oeuvre ce procede
US7574599B1 (en) * 2002-10-11 2009-08-11 Verizon Laboratories Inc. Robust authentication and key agreement protocol for next-generation wireless networks
US7702105B1 (en) * 2004-04-23 2010-04-20 Oracle America, Inc. Accelerating elliptic curve point multiplication through batched inversions
US7266692B2 (en) * 2004-12-17 2007-09-04 Ntt Docomo, Inc. Use of modular roots to perform authentication including, but not limited to, authentication of validity of digital certificates
CN101107808B (zh) * 2005-01-24 2011-01-26 松下电器产业株式会社 署名生成装置及署名验证装置
KR101089121B1 (ko) * 2005-03-31 2011-12-02 재단법인서울대학교산학협력재단 빠른 집합 검증 방법 및 그 장치
WO2006115021A1 (ja) * 2005-04-18 2006-11-02 Matsushita Electric Industrial Co., Ltd. 署名生成装置及び署名検証装置
US7454435B2 (en) * 2005-05-03 2008-11-18 Microsoft Corporation Systems and methods for granular changes within a data storage system
JP5099003B2 (ja) * 2006-03-16 2012-12-12 日本電気株式会社 グループ署名システムおよび情報処理方法

Also Published As

Publication number Publication date
JP2009005213A (ja) 2009-01-08
CN101335625B (zh) 2012-07-11
GB0804683D0 (en) 2008-04-16
GB2450574A (en) 2008-12-31
CN101335625A (zh) 2008-12-31
GB2450574B (en) 2009-08-12
US20080320557A1 (en) 2008-12-25

Similar Documents

Publication Publication Date Title
EP2787682B1 (en) Key negotiation method and apparatus according to sm2 key exchange protocol
EP1050133B2 (en) Leak-resistant cryptographic method and apparatus
JP4988448B2 (ja) 一括検証装置、プログラム及び一括検証方法
US8972738B2 (en) Incorporating data into an ECDSA signature component
JP2005515659A (ja) ディジタル署名、認証方法及び装置
US8675867B2 (en) Key generation algorithm using secret polynomial over finite ring and transformation
JP2008252299A (ja) 暗号処理システム及び暗号処理方法
CN111262704A (zh) Sm9数字签名生成方法、装置、计算机设备和存储介质
US7587605B1 (en) Cryptographic pairing-based short signature generation and verification
US20160179473A1 (en) Modular exponentiation using look- up tables
Chande et al. An improvement of a elliptic curve digital signature algorithm
CN114221753B (zh) 密钥数据处理方法和电子设备
US20220385954A1 (en) Embedding information in elliptic curve base point
CN111147254A (zh) 两方协同的EdDSA数字签名生成方法和装置
US8135131B2 (en) Method for calculating compressed RSA moduli
RU2356172C1 (ru) Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
CN114710293B (zh) 数字签名方法、装置、电子设备及存储介质
RU2280896C1 (ru) Способ проверки подлинности электронной цифровой подписи, заверяющей электронный документ
KR102236242B1 (ko) 퍼지 추출기를 이용한 공개값 생성 방법 및 그 공개값과 2차 입력값을 입력받아 비밀키를 생성하는 방법
Jinno et al. A study on construction and security of computer-aided security schemes
RU2325767C1 (ru) Способ формирования и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
RU2325768C1 (ru) Способ генерации и проверки подлинности электронной цифровой подписи, заверяющей электронный документ
Durán Díaz et al. A multisignature scheme based on the SDLP and on the IFP
Liu et al. eMLE-Sig 2.0: A Signature Scheme based on Embedded Multilayer Equations with Heavy Layer Randomization
Tran et al. Improved Deterministic Usage of the Elliptic Curve Digital Signature Algorithm with Scrypt

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120426

R151 Written notification of patent or utility model registration

Ref document number: 4988448

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3