JP4776906B2 - 署名生成方法及び情報処理装置 - Google Patents

署名生成方法及び情報処理装置 Download PDF

Info

Publication number
JP4776906B2
JP4776906B2 JP2004293075A JP2004293075A JP4776906B2 JP 4776906 B2 JP4776906 B2 JP 4776906B2 JP 2004293075 A JP2004293075 A JP 2004293075A JP 2004293075 A JP2004293075 A JP 2004293075A JP 4776906 B2 JP4776906 B2 JP 4776906B2
Authority
JP
Japan
Prior art keywords
signature
data
message
public key
key
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.)
Expired - Fee Related
Application number
JP2004293075A
Other languages
English (en)
Other versions
JP2006109107A (ja
JP2006109107A5 (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004293075A priority Critical patent/JP4776906B2/ja
Priority to US11/239,623 priority patent/US7685429B2/en
Publication of JP2006109107A publication Critical patent/JP2006109107A/ja
Publication of JP2006109107A5 publication Critical patent/JP2006109107A5/ja
Application granted granted Critical
Publication of JP4776906B2 publication Critical patent/JP4776906B2/ja
Expired - Fee Related 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/20Manipulating the length of blocks of bits, e.g. padding or block truncation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は、入力デジタルデータに対して長期間保存が可能な署名データを作成及び検証する技術に関する。
近年、文書や画像に関するデジタルデータがインターネットなどの広域ネットワークを通して流通する場合、デジタルデータは改変が容易であるため、第三者によってデータが改ざんされる危険性がある。そこで、送信されてきたデータが改ざんされているか否かを受信者が検出するために、改ざん防止用の付加データを検証する方式としてデジタル署名という技術が提案されている。このデジタル署名技術は、データの改ざんだけではなく、インターネット上でのなりすましや否認などを防止する効果も持ち合わせている。
[デジタル署名]
デジタル署名データの生成には、ハッシュ関数と公開鍵暗号とが用いられる。これは、秘密鍵をKs、公開鍵をKpとすれば、送信者は、入力データMにハッシュ処理を施して固定長データH(M)を算出した後、秘密鍵Ksでその固定長データH(M)を変換してデジタル署名データSを作成し、その後、デジタル署名データSと入力データMとを受信者に送信する。
一方、受信者は、そのデジタル署名データSを公開鍵Kpで変換(復号)したデータと、入力データMにハッシュ処理を施したデータとが一致するか否かを検証する。ここで、検証結果が一致していなければ、入力データMに改ざんが行われたと判定する。
デジタル署名にはRSA,DSAなど公開鍵暗号方式が用いられおり、署名の安全性は秘密鍵の所有者以外のエンティティが署名を偽造或いは秘密鍵を解読することが計算的に困難であるという事実に基づいている。
図1は、署名作成処理(Sign process)と署名検証処理(Verify process)を表す模式図である。図1に示すように、上述したデジタル署名データを作成する署名作成処理と、デジタル署名データを用いて入力データを検証する署名検証処理が行われる。
[ハッシュ関数]
次に、デジタル署名データの生成を高速化するために用いられるハッシュ関数について説明する。このハッシュ関数は、任意の長さのデータMに処理を行い、一定の長さの出力データを生成する機能を有する。ここで、出力H(M)を平文データMのハッシュデータと呼ぶ。特に、一方向性ハッシュ関数は、データMを与えたとき、H(M’)=H(M)となる平文データM’の算出が計算量的に困難であるという性質を持っている。ここで、一方向性ハッシュ関数としてはMD2、MD5、SHA−1などの標準的なアルゴリズムが存在しており、これらのアルゴリズムは公開されている。
[公開鍵暗号]
次に、公開鍵暗号について説明する。公開鍵暗号は、2つの異なる鍵を利用し、片方の鍵で暗号処理したデータは、もう片方の鍵でしか復号処理できないという性質を持っている。2つの鍵のうち、一方の鍵は公開鍵と呼ばれ、広く公開するようにしている。また、もう片方の鍵は秘密鍵と呼ばれ、本人のみが持つ鍵である。
この公開鍵暗号方式を用いたデジタル署名としては、例えばDSA署名,RSA署名,Schnorr署名などが挙げられる。ここでは一例としてDSA署名を紹介する。
[DSA署名]
非特許文献1に記載の方式を説明する。p,qを素数とし,p−1はqを割り切るものする。gをZ_p(位数pの巡回群Z_pから0を省いた乗法群)から任意に選択した、位数qの元(生成元)とする。Z_pから任意に選択したxを秘密鍵とし、それに対する公開鍵yをy:=g mod pとおく。H()はハッシュ関数とする。
[DSA署名作成]
文書Mに対する署名の作成手順
1)αをZ_qから任意に選択し、T:=(gα mod p) mod qとおく。
2)c:=H(M)とおく。
3)s:=α−1(c+xT) mod qとおき,(s,T)を署名データとする。
[DSA署名検証]
文書Mに対する署名データ(s,T)の検証手順
T=(gH(M)/sT/s mod p) mod qか否かを検証する。
Federal Information Processing Standards (FIPS) 186-2, Digital Signature Standard (DSS) , January 2000 G. Hanaoka, J. Shikata, Y. Zheng, and H. Imai, Unconditionally secure digital signature schemes admitting transferability, Advances in Cryptology-ASIACRYPT 2000, LNCS 1976, pp.130-142, Springer-Verlag, 2000
以上のように、デジタル署名技術は、インターネット上でのなりすまし、データ改ざん、否認などを防止する効果がある。また、デジタル署名の安全性は、秘密鍵を所有者以外のエンティティが署名を偽造、或いは秘密鍵を解読することが計算的に困難であることに基づいていることが多い。上述したDSA署名も計算量的な安全性を持つ署名方式の一つである。
一方、行政や医療などの分野においては、法律により、5年、10年といった長期的な保存が義務付けられている場合が見受けられる。現在、一般的に利用されているデジタル署名技術では、次のような問題があり、署名の長期保存技術、即ち署名の真正性を長期に渡って保証するための仕組みが必要とされている。特に、電子公証制度、タイムスタンプ制度と組み合わせて利用されることが想定されている。
(1)暗号解読技術の進展及び計算機の性能向上により、10年単位での長期間の保存に耐えられなくなる
(2)公開鍵証明書の有効期限を過ぎた公開鍵/秘密鍵によるデジタル署名の有効性確認を行う場合が想定される。
上述の問題を解決する一つのアプローチとしては、非特許文献2などで提案されている情報量的安全性に基づく署名方式がある。この方式は、計算量に依存しないで安全であることを証明可能な署名技術である。
しかしながら、実用化に向けて検討段階に入っているに過ぎず、概念登場からの歴史が浅く研究の余地があり、これまでの署名技術と互換性がない等の問題点を抱えている。
本発明は、上述の問題点に鑑みてなされたもので、n+1番目の署名データより、n番目の署名データの計算量的安全性を保つことを目的とする。
本発明は、情報処理装置によって実行される署名生成方法であって、入力手段が、署名対象のメッセージを入力する入力工程と、付加手段が、前記メッセージにn(nは1以上Nまでの整数、Nは2以上の整数)番目のパディングデータを付加する付加工程と、生成手段が、前記n番目のパディングデータが付加されたメッセージにハッシュ関数を用いてハッシュ処理を行い、前記ハッシュ処理されたデータから、公開鍵暗号とn番目の秘密鍵を用いてn番目の署名データを生成する生成工程と、繰り返す手段が、前記生成工程で生成されたn番目の署名データを、前記付加工程におけるn+1番目のパディングデータとし、前記付加工程及び前記生成工程を回繰り返す工程と、出力手段が、前記1番目からN番目までのパディングデータと、N番目の署名データを、前記メッセージと共に出力する出力工程とを有し、前記n番目の秘密鍵の鍵長は、n+1番目の秘密鍵の鍵長よりも長いことを特徴とする。
本発明によれば、n+1番目の署名データより、n番目の署名データの計算量的安全性を保つことができ、結果として、署名データの真正性を長期に渡って保証できる。
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
図2は、実施例1における情報処理装置の構成の一例を示す概略図である。尚、本発明を実現する際に、図2に示される全ての機能を使用することが必須でないことは言うまでもない。
情報処理装置200は、図2に示すように、モデム218、モニタ202、CPU203、ROM204、RAM205、HD(ハードディスク)206、ネットワーク接続部207、CD208、FD(フレキシブル・ディスク)209、DVD(デジタル・ビデオ・ディスク又はDigital Versatile Disk)210、プリンタ215とのインターフェース(I/F)217、操作部としてのマウス212やキーボード213などとのインターフェース(I/F)211で構成され、バス216を介して互いに通信可能に接続されている。以下、情報処理装置200を構成する各ユニットについて順に説明する。
まずマウス212及びキーボード213は、情報処理装置200に対する各種指示等をユーザが入力するための操作部である。この操作部を介して入力された情報(操作情報)は、インターフェース211を介して情報処理装置200内に取り込まれる。
情報処理装置200での各種情報(文字情報や画像情報等)は、プリンタ215により印刷出力できるように構成されている。
モニタ202は、ユーザへの各種指示情報や、文字情報或いは画像情報等の各種情報の表示を行う。
CPU203は、情報処理装置200全体の動作制御を司るものであり、実施例1では制御手段として機能している。即ち、CPU203は、HD(ハードディスク)206等から処理プログラム(ソフトウェアプログラム)を読み出して実行することで、情報処理装置200全体を制御する。
特に、実施例1では、CPU203はHD206等から署名作成機能及び署名検証機能を実現する処理プログラムを読み出して実行することで、詳細は後述する情報変換処理を実施する。
ROM204は、システムのブートプログラムや各種処理プログラム或いは制御データが格納されている。
RAM205は、CPU203での各種処理のために、一時的に処理プログラムや処理対象の情報を格納するための作業用エリア等として使用される。
HD206は、大容量記憶装置の一例としての構成要素であり、各種データ或いは各種処理の実行時にRAM205等へ転送される情報変換処理等のための処理プログラム等を保存する。
CD(CDドライブ)208は、外部記憶媒体の一例としてのCD(CD−R)に記憶されたデータを読み込み、また当該CDへデータを書き出す機能を有する。
FD(FDドライブ)209は、上述のCD208と同様に、外部記憶媒体の一例としてのFDに記憶されたデータを読み出す。また種々のデータを当該FDへ書き込む機能を有している。
DVD(DVDドライブ)210は、上述のCD208やFD209と同様に、外部記憶媒体の一例としてのDVDに記憶されたデータを読み出し、また当該DVDへデータを書き込む機能を有している。
尚、CD208、FD209、DVD210等の外部記憶媒体に対して、例えば編集用のプログラム或いはプリンタドライバが記憶されている場合には、これらのプログラムをHD206へインストールしておき、必要に応じて、RAM205へ転送するように構成しても良い。
インターフェース(I/F)211は、マウス212やキーボード213によるユーザからの入力を受け付けるためのものである。
モデム218は、インターフェース(I/F)219を介して、例えば公衆回線等を通じて外部の通信ネットワークに接続された通信機器との間で通信を行うための通信モデムである。
ネットワーク接続部207は、インターフェース(I/F)214を介してLANなどのネットワークへの接続を制御する。
ここで、入力されたメッセージに付加情報(パディングデータ)を付加して署名データを作成する署名作成処理(Sign process)及びその署名データに基づいて入力メッセージを検証する署名検証処理(Verify process)について説明する。
図3は、実施例1における署名作成処理及び署名検証処理を表す模式図である。図3に示すように、実施例1では、入力されたメッセージMにパディングデータ(乱数)Padを付加するものである。まず、図4を用いて署名作成処理の詳細について説明する。
図4は、実施例1における署名作成処理を示すフローチャートである。尚、この処理は図2に示す情報処理装置200、特にマウス212やキーボード213からの入力指示によりHD206等に格納されている所定のプログラムをCPU203などが実行することによって実現される処理である。
まず、ステップS401において、署名対象となるメッセージMを入力し、ステップS402において、適当な擬似乱数生成器(不図示)を用いて乱数Pad_0を発生させ、パディングデータとしてHD206などに格納する。ここで作成されたパディングデータは後述するステップS403で利用される。
次に、ステップS403において、ステップS401で入力されたメッセージMにステップS402又は後述するステップS405で作成されたパディングデータを付加する。即ち、最初はステップS402で作成されたPad_0が付加され、後述するステップS406で規定回数分処理を実行していない場合は後述するステップS405で作成されたデジタル署名データがパディングデータ(Pad_(i−1))として付加される。
尚、Pad_(i−1)のパラメータiは、後述する規定回数をカウントするカウンタ(初期値i=1とする)と同じ値で、ステップS406でインクリメントされる。また、規定回数はHD206などに格納されているか、ステップS401でメッセージMと共に入力されるものとする。
次に、ステップS404において、ステップS403でパディングデータ(Pad_(i−1))が付加されたメッセージMにハッシュ処理を行い、固定長データ(D_i)を算出する。そして、ステップS405において、その固定長データ(D_i)を秘密鍵S_iで変換してデジタル署名データを作成する署名処理を行う。
上述のステップS403〜S405の処理を数式で表すと次のようになる。尚、数式の左にある括弧内の文字は処理ステップを示している。
(S403) M_i:=M || Pad_(i−1)
(S404) D_i:=H(M_i)
(S405) Pad_i:=Sign(S_i;D_i)
ここで、H()はハッシュ関数、Sign(A;B)は秘密鍵AによるBに対する署名処理を表している。また、秘密鍵S_iはHD206などに格納されているか、ステップS401でメッセージMと共に入力されるものとする。
次に、ステップS406において、規定回数上述のステップS403〜S405の処理を実行したか否かを判定し、カウンタの値が規定回数と等しくなければ、パラメータiをインクリメントして上述の処理を繰り返し、またカウンタの値が規定回数と等しい場合はステップS407へ進む。
このステップS407では、規定回数をN回とすると、Pad_0,Pad_1,…,Pad_Nを出力する。そして、検証者には、署名データとしてPad_N、パディングデータとしてPad_(N−1)、メッセージM、秘密鍵S_Nに対応する公開鍵P_Nを送信すれば良い。図5は、規定回数をN回とする実施例1における署名作成処理を表す模式図である。
次に、図6を用いて上述の署名作成処理で作成された署名データに基づき、入力されたメッセージを検証する実施例1における署名検証処理の詳細について説明する。
図6は、実施例1における署名検証処理を示すフローチャートである。尚、この処理は図2に示す情報処理装置200、特にマウス212やキーボード213からの入力指示によりHD206等に格納されている所定のプログラムをCPU203などが実行することによって実現される処理である。
まず、ステップS601において、検証対象メッセージM、パディングデータPad_(N−1)及び署名データPad_Nを入力する。尚、後述するステップS604で利用する公開鍵P_Nを入力する場合もある。
次に、ステップS602において、ステップS601で入力された検証対象メッセージMにパディングデータPad_(N−1)を付加する。そして、ステップS603では、パディングデータPad_(N−1)が付加されたメッセージMにハッシュ処理を行い、固定長データ(D_N)を算出する。
次に、ステップS604において、ステップS601で入力された署名データPad_Nを公開鍵P_Nで変換(復号)したデータと、ステップS603で入力メッセージMにハッシュ処理を施したデータとが一致するか否かを検証する。
上述のステップS602〜S404の処理を数式で表すと次のようになる。尚、数式の左にある括弧内の文字は処理ステップを示している。
(S602) M_N:=M || Pad_(N−1)
(S603) D_N:=H(M_N)
(S604) Verify(P_N;D_N;Pad_N)
ここで、H()はハッシュ関数、Verify(A;B;C)は公開鍵AによりBに対する署名データCを検証する処理を表している。また、このVerify(A;B;C)の処理において、公開鍵Aは図1のPublick Keyに、メッセージBは図1のDigest Valueに、署名データCは図1のSign Dataにそれぞれ対応するものである。尚、公開鍵P_NはHD206などに格納されているか、ステップS601で入力されるものとする。
そして、ステップS605において、ステップS604で検証した検証結果を出力する。図7は、実施例1における署名検証処理を表す模式図である。
[実施例1の変形例]
次に、秘密鍵S_Nが漏洩した場合にも別の新しい公開鍵を公開することで、署名検証が可能な、実施例1の変形例における署名検証処理について説明する。
図4に示すステップS407で、検証者には公開鍵P_Nのみが送信(公開)されている。この公開鍵P_Nに呼応した秘密鍵S_Nが漏洩又は脆弱になった場合、以下の2つを新たに公開する。
a)公開鍵 P_(N−1)
b)パディングデータ Pad_(N−2)
これらを公開することにより、次のような計算によりP_(N−1)を用いた署名検証が可能となる。
(S602+) M_(N−1):=M || Pad_(N−2)
(S603+) D_(N−1):=H(M_(N−1))
(S604+) Verify(P_(N−1);D_(N−1);Pad_(N−1))
即ち、秘密鍵S_Nが漏洩又は脆弱になるまで、公開鍵P_(N−1)及びパディングデータPad_(N−2)に関するデータは事前に知られていないため、新たな鍵による署名として扱うことができる。更に、秘密鍵S_(N−1)が漏洩又は脆弱になった場合には、公開鍵P_(N−2)及びパディングデータPad_(N−3)を公開するというように逐次公開することで署名の有効期間を長くすることができる。図8は、実施例1の変形例における署名検証処理を表す模式図である。
ここで、図9を用いて実施例1の変形例における署名検証処理をよりシステマティックに説明する。
図9は、実施例1の変形例における署名検証処理を示すフローチャートである。まず、ステップS901において、検証対象メッセージM、パディングデータPad_(N−i−1)及び署名データPad_Nを入力する。尚、後述するステップS904で利用する公開鍵P_(N−i)を入力することもある。ここで、パラメータiは0〜Lであり、Lは後述する規定回数−1である。また、規定回数はHD206などに格納されているか、ステップS901でメッセージMと共に入力されるものとする。
次に、ステップS902において、ステップS901で入力されたメッセージMにパディングデータPad_(N−i−1)を付加する。そして、ステップS903において、パディングデータPad_(N−i−1)が付加されたメッセージMにハッシュ処理を行い、固定長データ(D_(N−i))を算出する。そして、ステップS904において、署名データPad_(N−i)を公開鍵P_(N−i)で変換(復号)したデータと、ステップS903で入力メッセージMにハッシュ処理を施したデータとが一致するか否かにより、入力されたメッセージMを検証する。
上述のステップS902〜S904の処理を数式で表すと次のようになる。尚、数式の左にある括弧内の文字は処理ステップを示している。
(S902) M_(N−i):=M || Pad_(N−i−1)
(S903) D_(N−i):=H(M_(N−i))
(S904) Verify(P_(N−i);D_(N−i);Pad_(N−i))
ここで、H()はハッシュ関数、Verify(A;B;C)は公開鍵AによりBに対する署名データCを検証する処理を表している。また、公開鍵P_(N−i)はHD106などに格納されているか、ステップS901で入力されるものとする。
次に、ステップS905において、規定回数上述のステップS902〜S904の処理を実行したか否かを判定し、実行していなければ上述の処理を繰り返し、実行した場合はステップS906へ進み、検証結果を出力する。
尚、図1に示した署名作成処理及び署名検証処理を構成するモジュールが存在する場合、入力データにパディングデータを付加することにより、従来のモジュールを再利用することが可能である。
このように、実施例1によれば、計算能力の向上により計算量的安全性が崩れてしまう既存の署名アルゴリズム及びハッシュアルゴリズムを利用しても、署名の真正性を長期に渡って保証することが可能な署名を作成することができる。
次に、図面を参照しながら本発明に係る実施例2について詳細に説明する。尚、実施例2における情報処理装置の構成は、図2を用いて説明した実施例1の構成と同様であり、その説明は省略する。
実施例1では、図3に示したように、入力メッセージMにパディングデータを付加しているが、実施例2では図10に示すように、ハッシュ処理後の固定長データにパディングデータを付加するものである。
図10は、実施例2における署名作成処理及び署名検証処理を表す模式図である。この実施例2における署名作成処理は、実施例1で説明した図4に示したステップS403とステップS404の処理を入れ替えることで実現できる。
即ち、ステップS404において、メッセージMにハッシュ処理を行い、固定長データ(D_i)を算出し、次のステップS403でその固定長データ(D_i)にステップS402又はステップS405で作成されたパディングデータを付加し、ステップS405で署名作成処理を行う。
また、実施例2における署名検証処理も、実施例1で説明した図6に示したステップS602とステップS603の処理を入れ替えることで実現できる。
即ち、ステップS603において、メッセージMにハッシュ処理を行い、固定長データ(D_N)を算出し、次のステップS602でその固定長データ(D_N)にパディングデータPad_(N−1)を付加し、ステップS604で署名検証処理を行う。
このように、実施例2によれば、計算能力の向上により計算量的安全性が崩れてしまう既存の署名アルゴリズム及びハッシュアルゴリズムを利用しても、署名の真正性を長期に渡って保証することが可能な署名を作成することができる。
次に、本発明に係る実施例3について詳細に説明する。尚、実施例3における情報処理装置の構成は、図2を用いて説明した実施例1の構成と同様であり、その説明は省略する。
実施例1及び実施例2では、署名を施した秘密鍵が漏洩、或いは脆弱になった場合でも署名を有効に保つ方法について説明したが、実施例3では、署名アルゴリズム、ハッシュアルゴリズム自体が安全でなくなった場合の対処方法について説明する。
実施例1及び実施例2のハッシュ計算処理(ステップS404、S603、S903)で用いたハッシュ関数H()と、署名計算処理(ステップS405)及び署名検証処理(ステップS603、S904)で用いた検証アルゴリズムVerify()は同一の関数が利用されているが、繰り返しの都度、別々のアルゴリズムに基づく関数を使用することも可能である。
例えば、P_1,S_1はRSA用の鍵対、P_2,S_2はDSA用の鍵対を用意し、S_1を利用した署名を生成する際にはハッシュアルゴリズムMD5を利用、S_2を利用した署名を生成する際にはハッシュアルゴリズムSHA−1を利用するなどの方法が可能である。場合により、ステップS401、S601、S901の入力処理において、使用アルゴリズムに関するデータを入力するように構成しても良い。
更に、鍵対(P_i,S_i;1≦i≦N)の生成時には、降順に鍵長を長くしておき、長年に渡り利用可能になるように鍵長を選択するように構成しても良い。例えば、鍵対(S_3,P_3)はRSA1024ビット、鍵対(S_2,P_2)はRSA2048ビット、鍵対(S_1,P_1)はRSA4096ビットなどとしておく方法である。
このように、実施例3によれば、署名アルゴリズム、ハッシュアルゴリズム自体が安全でなくなった場合も、署名の真正性を長期に渡って保証することが可能な署名を作成することができる。
次に、図面を参照しながら本発明に係る実施例4について詳細に説明する。尚、実施例4における情報処理装置の構成は、図2を用いて説明した実施例1の構成と同様であり、その説明は省略する。
前述した実施例では、任意のメッセージに対する署名の真正性を長期に渡って保証する方法を説明したが、実施例4では、署名付きメッセージが公開鍵証明書である場合の適用方法について説明する。
クライアント・サーバ間の通信において、サーバのリソースにアクセスする場合、利用者認証が必要であるが、その手段の一つとして、ITU−U勧告のX.509等の公開鍵証明書がよく用いられている。この公開鍵証明書は、公開鍵とその利用者との結び付けを保証するデータであり、認証機関と呼ばれる信用のおける第3者機関による署名が施されたものである。例えば、多くのブラウザで実装されているSSL(Secure Sockets Layer)を用いた利用者認証方式は、ユーザの提示してきた公開鍵証明書内に含まれる公開鍵に対応する秘密鍵をユーザが持っているか否かを確認することで行われる。
公開鍵証明書は認証機関による署名が施されていることで、公開鍵証明書内に含まれているユーザやサーバの公開鍵を信頼することができる。そのため、認証機関が署名作成のために用いられる秘密鍵が漏洩、或いは脆弱になった場合、この認証機関から発行された全ての公開鍵証明書は無効になってしまう。認証機関によっては膨大な数の公開鍵証明書が管理されており,電子商取引の世界などに大きな影響を及ぼすことは避けられない。
そこで、署名の真正性を長期に渡って保証することが可能な署名方式を適用することで、そのような事態を回避することができる。
例として、ITU−U勧告のX.509v.3における適用について示す。X.509v.3ではextensionsというオプショナルなフィールドが設けられ、プリケーション又はプロトコル独自の新しい拡張型を組み込むことが可能である。そこで、実施例で利用するパディングデータをこの拡張部分に格納するものである。これは、図3に示すように署名対象メッセージ内にパディングデータを含む場合と考えて良い。
図11は、X.509v.3で規定されるフォーマットを示す図である。図11に示すextensionsというオプショナルなフィールド1101は認証機関により署名されるデータに含まれていることがわかる。
ここで、図12を用いて公開鍵証明書により署名検証を行う方法について説明する。
認証機関の公開鍵証明書CertCA1201に公開鍵P_CA1202と、上述したパディングデータ拡張部分にPad_CA1203が埋め込まれている場合、公開鍵P_CAに呼応する秘密鍵S_CAが漏洩しても、Pad_CAに呼応する別の公開鍵P_CA_NEW1205が内包された公開鍵証明書CertCA_NEW1204を新しく発行することで、CertCAによって発行されたユーザ公開鍵証明書を無効にすることを防ぐことができる。
ユーザ公開鍵証明書は通常通りの証明書パス検証に加え、P_CA_NEWによる署名検証を行う(ユーザ公開鍵証明書にもパディングデータ拡張部分が内包されている)ことで検証可能となる。
[他の実施例]
本発明は、複数の機器(例えばホストコンピュータ、インターフェース機器、リーダ、プリンタ等)から構成されるシステムの一部として適用しても、ひとつの機器(例えば、複写機、ファクシミリ装置)からなるものの一部に適用してもよい。
また、本発明は上述した実施例を実現するための装置、方法及び実施例で説明した方法を組み合わせて行う方法のみに限定されるものではなく、上述したシステム又は装置内のコンピュータ(CPU又はMPU)に、上述した実施例を実現するためのソフトウェアのプログラムコードを供給し、このプログラムコードに従って上述したシステム或いは装置のコンピュータが上述の各種デバイスを動作させることにより上述した実施例を実現する場合も本発明の範疇に含まれる。
また、この場合、ソフトウェアのプログラムコード自体が上述した実施例の機能を実現することになり、そのプログラムコード自体、及びそのプログラムコードをコンピュータに供給するための手段、具体的には上記プログラムコードを記録した記録媒体は本発明の範疇に含まれる。
このようなプログラムコードを記録する記録媒体としては、例えばフロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、上記コンピュータが、供給されたプログラムコードのみに従って各種デバイスを制御することにより、上述した実施例の機能が実現される場合だけではなく、上記プログラムコードがコンピュータ上で稼働しているOS(オペレーティングシステム)、或いは他のアプリケーションソフト等と共同して上述した実施例が実現される場合にも、かかるプログラムコードは本発明の範疇に含まれる。
更に、この供給されたプログラムコードが、コンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能格納ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって上述した実施例が実現される場合も本発明の範疇に含まれる。
署名作成処理(Sign process)と署名検証処理(Verify process)を表す模式図である。 実施例1における情報処理装置の構成の一例を示す概略図である。 実施例1における署名作成処理及び署名検証処理を表す模式図である。 実施例1における署名作成処理を示すフローチャートである。 規定回数をN回とする実施例1における署名作成処理を表す模式図である。 実施例1における署名検証処理を示すフローチャートである。 実施例1における署名検証処理を表す模式図である。 実施例1の変形例における署名検証処理を表す模式図である。 実施例1の変形例における署名検証処理を示すフローチャートである。 実施例2における署名作成処理及び署名検証処理を表す模式図である。 X.509v.3で規定されるフォーマットを示す図である。 公開鍵証明書により署名検証を行う方法を説明するための図である。
符号の説明
200 情報処理装置
202 モニタ
203 CPU
204 ROM
205 RAM
206 HD
207 ネットワーク接続部
208 CDドライブ
209 FDドライブ
210 DVDドライブ
211 インターフェース
212 マウス
213 キーボード
214 インターフェース
215 プリンタ
216 バス
217 インターフェース
218 モデム
219 インターフェース

Claims (8)

  1. 情報処理装置によって実行される署名生成方法であって、
    入力手段が、署名対象のメッセージを入力する入力工程と、
    付加手段が、前記メッセージにn(nは1以上Nまでの整数、Nは2以上の整数)番目のパディングデータを付加する付加工程と、
    生成手段が、前記n番目のパディングデータが付加されたメッセージにハッシュ関数を用いてハッシュ処理を行い、前記ハッシュ処理されたデータから、公開鍵暗号とn番目の秘密鍵を用いてn番目の署名データを生成する生成工程と、
    繰り返す手段が、前記生成工程で生成されたn番目の署名データを、前記付加工程におけるn+1番目のパディングデータとし、前記付加工程及び前記生成工程を回繰り返す工程と、
    出力手段が、前記1番目からN番目までのパディングデータと、N番目の署名データを、前記メッセージと共に出力する出力工程とを有し、
    前記n番目の秘密鍵の鍵長は、n+1番目の秘密鍵の鍵長よりも長いことを特徴とする署名生成方法。
  2. 前記繰り返す工程では、前記ハッシュ関数に異なるアルゴリズムを利用することを特徴とする請求項1に記載の署名生成方法。
  3. 前記繰り返す工程では、前記公開鍵暗号に異なるアルゴリズムを利用することを特徴とする請求項1に記載の署名生成方法。
  4. 署名対象のメッセージを入力する入力手段と、
    前記メッセージにn(nは1以上Nまでの整数、Nは2以上の整数)番目のパディングデータを付加する付加手段と、
    前記n番目のパディングデータが付加されたメッセージにハッシュ関数を用いてハッシュ処理を行い、前記ハッシュ処理されたデータから、公開鍵暗号とn番目の秘密鍵を用いてn番目の署名データを生成する生成手段と、
    前記生成手段で生成されたn番目の署名データを、前記付加工程におけるn+1番目のパディングデータとし、前記付加手段及び前記生成手段を回繰り返すよう制御する制御手段と、
    前記1番目からN番目までのパディングデータと、N番目の署名データを、前記メッセージと共に出力する出力手段とを有し、
    前記n番目の秘密鍵の鍵長は、n+1番目の秘密鍵の鍵長よりも長いことを特徴とする情報処理装置。
  5. 前記制御手段は、前記ハッシュ関数に異なるアルゴリズムを利用して、繰り返すことを特徴とする請求項4に記載の情報処理装置。
  6. 前記制御手段は、前記公開鍵暗号に異なるアルゴリズムを利用して、繰り返すことを特徴とする請求項4に記載の情報処理装置。
  7. コンピュータを、請求項4乃至6の何れか1項に記載の情報処理装置が有する各手段として機能させるためのコンピュータプログラム。
  8. 請求項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2004293075A 2004-10-05 2004-10-05 署名生成方法及び情報処理装置 Expired - Fee Related JP4776906B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004293075A JP4776906B2 (ja) 2004-10-05 2004-10-05 署名生成方法及び情報処理装置
US11/239,623 US7685429B2 (en) 2004-10-05 2005-09-29 Signature-generation method, signature-verification method, public-key distribution method, and information-processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004293075A JP4776906B2 (ja) 2004-10-05 2004-10-05 署名生成方法及び情報処理装置

Publications (3)

Publication Number Publication Date
JP2006109107A JP2006109107A (ja) 2006-04-20
JP2006109107A5 JP2006109107A5 (ja) 2007-11-22
JP4776906B2 true JP4776906B2 (ja) 2011-09-21

Family

ID=36127049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004293075A Expired - Fee Related JP4776906B2 (ja) 2004-10-05 2004-10-05 署名生成方法及び情報処理装置

Country Status (2)

Country Link
US (1) US7685429B2 (ja)
JP (1) JP4776906B2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162035B1 (en) 2000-05-24 2007-01-09 Tracer Detection Technology Corp. Authentication method and system
US8171567B1 (en) 2002-09-04 2012-05-01 Tracer Detection Technology Corp. Authentication method and system
US7526530B2 (en) * 2006-05-05 2009-04-28 Adobe Systems Incorporated System and method for cacheing web files
WO2008026238A1 (fr) * 2006-08-28 2008-03-06 Mitsubishi Electric Corporation Système de traitement de données, procédé de traitement de données, et programme
CA2676450C (en) * 2007-01-26 2014-09-09 Interdigital Technology Corporation Method and apparatus for securing location information and access control using the location information
US7995196B1 (en) 2008-04-23 2011-08-09 Tracer Detection Technology Corp. Authentication method and system
US8874991B2 (en) * 2011-04-01 2014-10-28 Cleversafe, Inc. Appending data to existing data stored in a dispersed storage network
US11418580B2 (en) 2011-04-01 2022-08-16 Pure Storage, Inc. Selective generation of secure signatures in a distributed storage network
US10298684B2 (en) 2011-04-01 2019-05-21 International Business Machines Corporation Adaptive replication of dispersed data to improve data access performance
US20120314865A1 (en) * 2011-06-07 2012-12-13 Broadcom Corporation NFC Communications Device for Setting Up Encrypted Email Communication
WO2013008778A1 (ja) * 2011-07-11 2013-01-17 Mizunuma Takeshi 識別名管理方法およびシステム
JP6044323B2 (ja) * 2012-12-20 2016-12-14 富士通株式会社 不正メールの検知方法,その検知プログラム及びその検知装置
CN104200154A (zh) * 2014-09-22 2014-12-10 上海众人科技有限公司 一种基于标识的安装包签名方法及其装置
TWI581599B (zh) * 2015-04-30 2017-05-01 鴻海精密工業股份有限公司 金鑰生成系統、資料簽章與加密系統和方法
US9853810B1 (en) * 2016-09-30 2017-12-26 International Business Machines Corporation Message padding for bit-oriented and bit-reversed input messages
US9800403B1 (en) * 2016-09-30 2017-10-24 International Business Machines Corporation Message processing using extended output functions
US11050723B1 (en) * 2018-12-29 2021-06-29 Whatsapp Inc. Methods and systems for transmitting anonymized information
US11711202B2 (en) 2019-05-29 2023-07-25 International Business Machines Corporation Committing data to blockchain based on approximate hash verification
US11570002B2 (en) 2019-05-29 2023-01-31 International Business Machines Corporation Reduced-step blockchain verification of media file
US11516000B2 (en) * 2019-05-29 2022-11-29 International Business Machines Corporation Approximate hash verification of unused blockchain output
US11539527B2 (en) 2019-05-29 2022-12-27 International Business Machines Corporation Peer node recovery via approximate hash verification
US11429738B2 (en) * 2019-05-29 2022-08-30 International Business Machines Corporation Blockchain endorsement with approximate hash verification

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5016274A (en) * 1988-11-08 1991-05-14 Silvio Micali On-line/off-line digital signing
JPH11282350A (ja) * 1998-03-31 1999-10-15 Hitachi Software Eng Co Ltd 任意長ハッシュ値作成方法
DE19822795C2 (de) * 1998-05-20 2000-04-06 Siemens Ag Verfahren und Anordnung zum rechnergestützten Austausch kryptographischer Schlüssel zwischen einer ersten Computereinheit und einer zweiten Computereinheit
US6640301B1 (en) * 1999-07-08 2003-10-28 David Way Ng Third-party e-mail authentication service provider using checksum and unknown pad characters with removal of quotation indents
WO2001011843A1 (en) * 1999-08-06 2001-02-15 Sudia Frank W Blocked tree authorization and status systems
US20020038420A1 (en) * 2000-04-13 2002-03-28 Collins Timothy S. Method for efficient public key based certification for mobile and desktop environments
JP2002207426A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および電子認証装置、並びにプログラム記憶媒体
DE10324507A1 (de) * 2003-05-28 2004-12-30 Francotyp-Postalia Ag & Co. Kg Verfahren zum Laden von Daten in eine Speichereinrichtung

Also Published As

Publication number Publication date
JP2006109107A (ja) 2006-04-20
US7685429B2 (en) 2010-03-23
US20060075246A1 (en) 2006-04-06

Similar Documents

Publication Publication Date Title
JP4776906B2 (ja) 署名生成方法及び情報処理装置
US7672460B2 (en) Mix-net system
JP4741503B2 (ja) 公開鍵を検証可能に生成する方法及び装置
US7730315B2 (en) Cryptosystem based on a Jacobian of a curve
Roy et al. A survey on digital signatures and its applications
AU2016287732A1 (en) Mutual authentication of confidential communication
JP4872908B2 (ja) メンバー証明書獲得装置、メンバー証明書発行装置、グループ署名装置、グループ署名検証装置
US9698984B2 (en) Re-encrypted data verification program, re-encryption apparatus and re-encryption system
WO2006024042A2 (en) Provisional signature schemes
JP2013539295A (ja) メッセージ復元を伴うデジタル署名の認証された暗号化
JP2003503864A (ja) 第1インスタンスおよび第2インスタンスを認証する方法および装置
JP4250429B2 (ja) 連鎖型署名作成装置、及びその制御方法
JP7367230B2 (ja) プライバシー保護署名
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
TW202318833A (zh) 臨界簽章方案
TWI593267B (zh) 具有時戳驗證的免憑證公開金鑰管理方法
US20050240762A1 (en) Cryptographic method and apparatus
JP2011091517A (ja) サインクリプションシステムおよびサインクリプション生成方法
US20050021973A1 (en) Cryptographic method and apparatus
JP2000250408A (ja) ファイル認証システム、署名システム及び署名方法、認証システム及び認証方法、及び記録媒体
JP4748762B2 (ja) 署名生成方法及び情報処理装置
JP2000041035A (ja) 認証システム、認証方法、及び記録媒体
JP2000231330A (ja) ブラインド署名方法、そのシステム、その装置およびプログラム記録媒体
JP2001222218A (ja) 暗号化装置、方法、復号装置、方法、暗号システム及びプログラムを記憶した記憶媒体
JP2003173139A (ja) 公開検証可能暗号化装置、その復号装置、暗号化プログラムおよび復号プログラム

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071005

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071005

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20071005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101215

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101224

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110221

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: 20110624

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: 20110629

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees