(57)【特許請求の範囲】
【請求項１】
アクセス制限された二次記憶装置を有し、電子データの証拠性を認証コードと電子署名で確保する電子データ保管装置であって、
運用開始前に、第１の乱数値と個人識別番号とに基づいて鍵暗号化鍵を生成する第１の鍵暗号化鍵生成手段と、
運用開始前に、任意の秘密鍵に対して所定回数ハッシュ演算を行うことで、“前記認証コードを生成するための第１の鍵”を生成する第１の鍵生成手段と、
運用開始前に、前記第１の鍵と前記ハッシュ演算の回数とを、前記鍵暗号化鍵によって暗号化することで暗号化鍵情報を生成し、該生成した暗号化鍵情報を前記二次記憶装置に格納する暗号化鍵情報生成・記憶手段と、
運用開始前に、前記鍵暗号化鍵を生成する際に使用した前記第１の乱数値を、前記電子データ保管装置から分離して保管可能な記憶媒体に格納する第１の乱数値格納手段と、
運用開始後に、入力された個人識別番号と前記記憶媒体に格納されている前記第１の乱数値から、鍵暗号化鍵を生成する第２の鍵暗号化鍵生成手段と、
該第２の鍵暗号化鍵生成手段が生成した前記鍵暗号化鍵を用いて前記暗号化鍵情報を復号することにより、前記第１の鍵と前記ハッシュ演算回数とを求める復号化手段と、
該復号化手段で求めた前記第１の鍵を用いて新たな認証コードを生成する認証コード生成手段とを有し、
前記認証コード生成手段は、各電子データ毎に、任意の第３の乱数値により、前記第１の鍵に対して第３の乱数値の回数だけハッシュ演算をすることで認証コード生成鍵を生成し、該生成した認証コード生成鍵を用いて任意の電子データに対する前記新たな認証コードを生成することを特徴とする電子データ保管装置。
【請求項２】
運用開始後に、前記認証コード生成手段の処理実行前に、前記復号化手段で求めた前記第１の鍵と前記ハッシュ演算回数とを用いて、新たな暗号化鍵情報を生成して格納する新たな暗号化鍵情報生成・格納手段を更に有し、
該新たな暗号化鍵情報生成・格納手段は、
第２の乱数値を生成し、該第２の乱数値と入力された個人識別番号から新たな鍵暗号化鍵を生成する手段と、
前記復号化手段で求めた前記第１の鍵に対してハッシュ演算を行うことで新たな第１の鍵を生成し、古い第１の鍵を消去する手段と、
前記復号化手段で求めた前記ハッシュ演算回数をインクリメントして新たなハッシュ演算回数を求める手段と、
前記新たな第１の鍵、前記新たなハッシュ演算回数を前記新たな鍵暗号化鍵で暗号化して新たな暗号化鍵情報を生成し、該生成した新たな暗号化鍵情報を前記二次記憶装置に格納する格納手段と、
該格納手段による前記新たな暗号化鍵情報の生成・格納後、前記新たな鍵暗号化鍵を消去する消去手段とを有し、
前記認証コード生成手段が用いる第１の鍵は、該新たな第１の鍵であることを特徴とする請求項１記載の電子データ保管装置。
【請求項３】
前記認証コード生成手段は、
前記新たな認証コードを生成直後に、前記認証コード生成鍵に対して第３の乱数値の回数だけハッシュ演算をすることで認証コード生成鍵を更新することを特徴とする請求項１記載の電子データ保管装置。
【請求項４】
前記消去手段によって前記新たな鍵暗号化鍵を消去する前に、該新たな鍵暗号化鍵を読み書き可能な可搬型記憶媒体に記録する記録手段と、
データ入力処理の対象電子データ待ちの場合、前記可搬型記憶媒体に記録された前記新たな鍵暗号化鍵を用いて前記認証コード生成鍵を暗号化する手段と、
前記データ入力処理の対象電子データが発生した場合、前記可搬型記憶媒体に記録された前記新たな鍵暗号化鍵を用いて、前記認証コード生成鍵を復号する手段とをさらに含む
ことを特徴とする請求項２記載の電子データ保管装置。
【請求項５】
前記の個人識別番号を入力させる際に、指紋や虹彩などバイオメトリクス機器により前記個人識別番号の入力者を識別することを特徴とする請求項１乃至４の何れか一項に記載の電子データ保管装置。
【請求項６】
前記暗号化鍵情報を予め読み書き又は読み込み可能な記憶媒体に格納し、前記暗号化鍵情報を復号する際に、前記の読み書き又は読み込み可能な記憶媒体から前記暗号化鍵情報を読み込んで、これを復号化する
ことを特徴とする請求項１乃至５の何れか一項に記載の電子データ保管装置。
【請求項７】
前記第２の鍵暗号化鍵生成手段が生成した鍵暗号化鍵を用いる代わりに、前記鍵暗号化鍵を読み書き又は読み込み可能な記憶媒体に予め格納しておき、前記認証コードを生成する際に、前記の読み書き又は読み込み可能な記憶媒体から前記鍵暗号化鍵を読み込んで使用する
ことを特徴とする請求項１乃至６の何れか一項に記載の電子データ保管装置。
【請求項８】
アクセス制限された二次記憶装置を有し、電子データの証拠性を認証コードと電子署名で確保する電子データ保管装置のコンピュータを、
運用開始前に、第１の乱数値と個人識別番号とに基づいて鍵暗号化鍵を生成する第１の鍵暗号化鍵生成手段と、
運用開始前に、任意の秘密鍵に対して所定回数ハッシュ演算を行うことで、“前記認証コードを生成するための第１の鍵”を生成する第１の鍵生成手段と、
運用開始前に、前記第１の鍵と前記ハッシュ演算の回数とを、前記鍵暗号化鍵によって暗号化することで暗号化鍵情報を生成し、該生成した暗号化鍵情報を前記二次記憶装置に格納する暗号化鍵情報生成・記憶手段と、
運用開始前に、前記鍵暗号化鍵を生成する際に使用した前記第１の乱数値を、前記電子データ保管装置から分離して保管可能な記憶媒体に格納する第１の乱数値格納手段と、
運用開始後に、入力された個人識別番号と前記記憶媒体に格納されている前記第１の乱数値から、鍵暗号化鍵を生成する第２の鍵暗号化鍵生成手段と、
該第２の鍵暗号化鍵生成手段が生成した前記鍵暗号化鍵を用いて前記暗号化鍵情報を復号することにより、前記第１の鍵と前記ハッシュ演算回数とを求める復号化手段と、
該復号化手段で求めた前記第１の鍵を用いて新たな認証コードを生成する手段であって、各電子データ毎に、任意の第３の乱数値により、前記第１の鍵に対して第３の乱数値の回数だけハッシュ演算をすることで認証コード生成鍵を生成し、該生成した認証コード生成鍵を用いて任意の電子データに対する前記新たな認証コードを生成する認証コード生成手段、
として機能させる為のプログラム。
【請求項９】
前記暗号化鍵情報を予め読み書き又は読み込み可能な記憶媒体に格納し、前記暗号化鍵情報を復号する際に、前記の読み書き又は読み込み可能な記憶媒体から前記暗号化鍵情報を読み込んで、これを復号化する
ことを特徴とする請求項８記載のプログラム。
【請求項１０】
前記第２の鍵暗号化鍵生成手段が生成した鍵暗号化鍵を用いる代わりに、前記鍵暗号化鍵を読み書き又は読み込み可能な記憶媒体に予め格納しておき、前記認証コードを生成する際に、前記の読み書き又は読み込み可能な記憶媒体から前記鍵暗号化鍵を読み込んで使用する
ことを特徴とする請求項８または９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，電子ファイルなどの電子データを保管する電子データ保管装置に関し、さらに詳細には、そのような電子データ保管装置において保管されている電子データが改竄されていないとの証拠性を長期にわたって確保する技術に関する。
【背景技術】
【０００２】
本発明は、「あるデータに対する署名を生成する際にＭＡＣ(Message Authentication Code)をあわせて生成し、署名が偽造されたと疑われる場合にはＭＡＣの検証を行って署名生成をしたハードウェアを確認し、偽造の有無を判定する」（非特許文献１）という技術に関する。従来、電子ファイルなどの電子データが改竄されていないとの証拠性を示す技術にＭＡＣ付きデジタル署名がある。
【０００３】
従来の方式では、外部装置としてＩＣカード、クライアントとしてＰＣ（パーソナルコンピュータ）が想定されている。外部装置であるＩＣカードが電子署名と認証コードの両方の処理を行うため、秒単位の処理時間を必要とする。したがって、クライアントで高速かつ大量の電子データを処理する必要がある場合、処理速度が障害となり、それを解決するためには、多数のパソコンとＩＣカードを用意し並列処理をする必要がある。
【０００４】
そこで、出願人は、ＲＯＭ領域とＲＡＭ領域とを備え、サーバに電気的かつ機械的に結合されるタンパ性のあるＩＣカードまたはＵＳＢキーと、製造時に製造業者により書換え不可能な記憶域に秘密鍵が焼き付けられた読み出し専用記憶媒体を用いて運用する電子データ保管サーバを提案した（特許文献１）。ＩＣカードは、読み出し専用記憶媒体からコピーした秘密鍵をもとに一時秘密鍵を生成するアルゴリズムをＲＯＭ領域に備え、一時秘密鍵をＲＡＭ領域に格納し、かつ一時秘密鍵と所与の電子データから認証コードを生成するプログラムの少なくとも一部をオブジェクトとしてＲＯＭ領域に格納する。サーバは、上記アルゴリズム、上記オブジェクト、および一時秘密鍵を読み出し、読み出したアルゴリズム、上記オブジェクト、および一時秘密鍵と連携し、電子データから電子データの認証コードを生成し、電子データおよび認証コードを保管する。これにより、クライアントから相互認証のち送られてくる保管すべき電子データに対し、データ保管サーバ側で認証コード生成処理および署名生成処理を少なくとも重要な部分はＩＣカードに保存されている認証コード生成オブジェクトにより集中して行うことで、高速かつ大量のデータ処理をＭＡＣ付きデジタル署名の方式で行うことが可能となった。
【非特許文献１】宇根正志、「デジタル署名生成用秘密鍵の漏洩を巡る問題とその対策」、日本銀行金融研究所、Discussion Paper No.2002-J-32（2002年）
【特許文献１】特願２００４−０４１１８３
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上記の方式では、ハードウェアとしてサーバに耐タンパ性を持つＩＣカードリーダライタなどの接続、秘密鍵の読み出し専用記憶媒体からＩＣカードＲＡＭ領域へのコピー作業などが必要であり、このためコストや所要作業の面で不便があった。
【０００６】
本発明は、ＩＣカードリーダライタの接続やＩＣカードなどＲＯＭやＲＡＭへのコピー作業などコスト面、作業面での問題を解決することを目的とする。
本発明は、上記の課題を解決するためになされたものであり、タンパ性のあるＩＣカードやＵＳＢキーなどの使用や面倒なキーのコピー作業などを必要とせず、クライアントを多数接続した環境でも、電子署名と認証コードの処理を高速かつ安全にサーバ側で行うことを可能とするシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の電子データ保管装置は、アクセス制限された二次記憶装置を有し、電子データの証拠性を認証コードと電子署名で確保する電子データ保管装置であって、運用開始前に、第１の乱数値と個人識別番号とに基づいて鍵暗号化鍵を生成する第１の鍵暗号化鍵生成手段と、運用開始前に、任意の秘密鍵に対して所定回数ハッシュ演算を行うことで、“前記認証コードを生成するための第１の鍵”を生成する第１の鍵生成手段と、運用開始前に、前記第１の鍵と前記ハッシュ演算の回数とを、前記鍵暗号化鍵によって暗号化することで暗号化鍵情報を生成し、該生成した暗号化鍵情報を前記二次記憶装置に格納する暗号化鍵情報生成・記憶手段と、運用開始前に、前記鍵暗号化鍵を生成する際に使用した前記第１の乱数値を、前記電子データ保管装置から分離して保管可能な記憶媒体に格納する第１の乱数値格納手段と、運用開始後に、入力された個人識別番号と前記記憶媒体に格納されている前記第１の乱数値から、鍵暗号化鍵を生成する第２の鍵暗号化鍵生成手段と、該第２の鍵暗号化鍵生成手段が生成した前記鍵暗号化鍵を用いて前記暗号化鍵情報を復号することにより、前記第１の鍵と前記ハッシュ演算回数とを求める復号化手段と、該復号化手段で求めた前記第１の鍵を用いて新たな認証コードを生成する認証コード生成手段とを有し、前記認証コード生成手段は、各電子データ毎に、任意の第３の乱数値により、前記第１の鍵に対して第３の乱数値の回数だけハッシュ演算をすることで認証コード生成鍵を生成し、該生成した認証コード生成鍵を用いて任意の電子データに対する前記新たな認証コードを生成することを特徴とする。
【０００８】
また、上述した本発明の電子データ保管装置は、例えば更に、運用開始後に、前記認証コード生成手段の処理実行前に、前記復号化手段で求めた前記第１の鍵と前記ハッシュ演算回数とを用いて、新たな暗号化鍵情報を生成して格納する新たな暗号化鍵情報生成・格納手段を有し、該新たな暗号化鍵情報生成・格納手段は、第２の乱数値を生成し、該第２の乱数値と入力された個人識別番号から新たな鍵暗号化鍵を生成する手段と、前記復号化手段で求めた前記第１の鍵に対してハッシュ演算を行うことで新たな第１の鍵を生成し、古い第１の鍵を消去する手段と、前記復号化手段で求めた前記ハッシュ演算回数をインクリメントして新たなハッシュ演算回数を求める手段と、前記新たな第１の鍵、前記新たなハッシュ演算回数を前記新たな鍵暗号化鍵で暗号化して新たな暗号化鍵情報を生成し、該生成した新たな暗号化鍵情報を前記二次記憶装置に格納する格納手段と、該格納手段による前記新たな暗号化鍵情報の生成・格納後、前記新たな鍵暗号化鍵を消去する手段とを有し、前記認証コード生成手段が用いる第１の鍵は、該新たな第１の鍵であることを特徴とする。
【００１２】
本発明は、別の面では、電子データ保管装置において電子データの証拠性を認証コードと電子署名で確保するプログラムを与える。本発明のプログラムは、上述の電子データ保管装置の各手段と同じ手段をコンピュータ上で実現する。
【発明の効果】
【００１３】
従来は、データ保護のために、ＩＣカードリーダライタをサーバに接続したり、ＩＣカードをクライアントごとに配布しなければならなかったが、本発明によりサーバのＤＡＳＤ内で鍵暗号鍵により暗号化することにより保護することで、ＩＣカードリーダライタの接続やＩＣカードの配布が不要となり、コストおよび運用の両面において好都合である。
【００１４】
鍵暗号鍵自体は、ＰＩＮとフレキシブルディスクなどのＲＡＭに保存した一時的な乱数の両方を必要とすることにより保護されている。ＰＩＮ自体もバイオメトリクス認証など個人認証技術を用いることによりさらに安全性を高めることができる。
【００１５】
主記憶上で復元された鍵暗号鍵は新たに乱数を生成して新暗号鍵を生成した後、消去し、新暗号鍵も新たな乱数をフレキシブルディスクなどのＲＡＭに保存した後、すぐに消去するため盗聴から保護される。
【００１６】
また、主記憶上のオブジェクトで処理待ち状態の時、一時鍵暗号鍵により認証コード生成一時秘密鍵を暗号化することにより、不正アクセス者や管理者により盗聴された場合の安全性を高めることができる。ＲＡＭに格納された一時鍵暗号鍵は、ＲＡＭへのアクセス記録およびＲＡＭへの定期的な読込によるチェックなどにより、不正アクセス、改ざん又は盗難などが発生しても容易に検知することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施形態と添付図面とにより本発明を詳細に説明する。なお、複数の図面に同じ要素を示す場合には同一の参照符号を付ける。
〔第１の実施形態〕
図１は，本発明の第１の実施形態による電子データ保管システムの構成を示す略ブロック図である。図１において，本発明の電子データ保管システム１は、インターネットなどのネットワークに接続された電子データ保管サーバ１０、サーバ１０の操作者がサーバ１０を操作するための入出力装置２０、ネットワークを介してサーバ１０と通信可能な複数または多数のクライアント４０からなる。入出力装置２０は、表示装置、キーボード、ポインティングディバイスなどからなる。また、電子データ保管サーバ１０は、通常のサーバと同様、ＣＰＵ（中央処理装置）１１、ＲＯＭ（read only memory）１２、ＲＡＭ（random access memory）１３、ネットワークを介してクライアント４０と通信を行うための通信インタフェース１４、入出力装置２０へのＩ／Ｏインタフェース１６、フロッピィディスク（ＦＤ）３２を使用するためのＦＤドライブ１８，ＣＤ−ＲＯＭ（compact disc read only memory）３４や読み出し専用または読み書き可能な種々の規格のＤＶＤなどの光ディスク（図１では、ＲＯＭ／ＲＡＭと表記）３６のリード／ライトが可能な光ディスクドライブ１９、およびサーバ１０が使用する種々のプログラムおよびデータを格納する大容量のＤＡＳＤ（direct access storage device）１７を備える。
【００１８】
なお、この電子データ保管サーバ１０を操作するのは、このサーバ１０を運用する組織に属しサーバ１０を管理する管理者、好ましくはサーバ１０を運用する組織に属さずサーバ１０の運用の監査を行う監査者、および上記組織ともクライアント４０の利用者とも利害関係のない調停者の何れかに限ることが好ましい。
【００１９】
図１のシステム１は、サーバ１０を原本性保証サーバ、クライアントを文書管理サーバとして、文書の長期保存原本性保証システムとすることができる。また、図１のシステム１は、サーバ１０を原本性保証サーバ、クライアント４０を電子申請サーバとして、電  子申請データの長期に亘るデータ証拠性保証システムとすることができる。さらに、図１のシステム１は、 サーバ１０をデータ保存サーバ、 クライアントをデータ収集サーバとして、トレーサビリティデータを長期に亘って保証するデータ証拠性保証サーバとすることができる。
【００２０】
図１において、ＲＯＭ／ＲＡＭ３６は、一時秘密キーである認証コード生成鍵Ｋｍ、キーＫｍの生成に用いたハッシュ回数ｍ、認証コード生成アルゴリズムｆ、認証コード生成アルゴリズム識別番号ＦＩＤ、認証コード生成鍵Ｋｍの識別番号ＫＩＤｍを一時鍵暗号化鍵で暗号化されたデータを格納するＣＤ−ＲＯＭなどのＲＯＭまたはフレキシブルディスクなどのＲＡＭである。
【００２１】
フレキシブルディスク（ＲＡＭ）３２には、乱数Ｓoを格納する。乱数Ｓoは鍵暗号鍵ＫＥＫoを生成する時に使用した乱数である。鍵暗号鍵ＫＥＫoは、ＰＩＮ（personal identification number）と乱数Ｓoからハッシュ関数ｈ（ＰＩＮ，Ｓo）により生成される(詳細に後述する)。ＲＡＭ上の乱数Ｓoは認証コード生成処理で生成した乱数により書き換えられる。ＲＡＭ３２は認証コード生成処理の生成時（システム立上時など）にサーバから読み書きされ、通常はサーバから分離して安全な場所に監査者により保管される。
【００２２】
ＲＯＭ３４は、認証コード秘密鍵Ｋoが書き込まれた、例えば、ＣＤ−ＲＯＭのように読み出し専用記憶機能を有するものであればよい。ＲＯＭ３４は、ＩＣカードやＵＳＢキーなどでもよい。ＲＯＭは通常サーバから分離して安全な場所に保管され、認証コードの照合時のみ使用する。
【００２３】
通信インタフェース（ＩＦ）１４は、ネットワークを経由してクライアント４０から保管すべき電子データＸを受け取る。この際、サーバ１０とクライアント４０は相互認証を行い、また伝送路上のデータも暗号化して安全性を確保する。
【００２４】
ＤＡＳＤ１７には、種々のプログラムが格納されている。
例えば、認証コード生成処理７５は、後述するような図５〜８に示す処理を行う。本処理は、アクセス権処理９４で例えばＪａｖａ（登録商標）のＳｅｃｕｒｉｔｙＭａｎａｇｅｒ機能の利用により特定のユーザおよびオブジェクトからのみアクセス可能とするなどカプセル化されたオブジェクトとする。
【００２５】
署名生成処理９７は認証コード生成処理７５からデータと認証コードを受け取り、受け取ったデータに電子署名を行う。電子署名の方式及び秘密鍵は危殆化の防止や安全性を確保するため随時変更することができる。電子署名が生成されると、保管すべきデータは、認証コードおよび電子署名とセットにして図２の形式で保管データ８０として保管される。
【００２６】
署名検証処理９９は保管データ８０から取り出したデータが改竄されていないか、署名の公開鍵で電子署名を復号化してデータのダイジェストとの一致を検証する。
認証コード照合処理９６は、電子署名の偽造の疑いがある場合は疑いのあるデータについて、調停者により起動される。認証コード照合処理９６は、認証コード生成処理７５によって当該データの認証コードを生成する。この場合、ＲＯＭ３４に格納されている認証コード秘密鍵Ｋoを用いる。また、管理者は保管データ８０として保管されている当該データの認証コードを取り出し、調停者に提示する。調停者は両者を比較し、一致していれば電子署名が偽造されていないと判断する。この場合、認証コード一時秘密鍵はサーバ１０内で例えば図５に示すようにｎ回ハッシュ演算を行う。
【００２７】
調停者は、電子署名の偽造の疑いがある場合、当該電子データについて認証コード照合処理９６によって得られた認証コードと管理者から渡される当該電子データの認証コードとを照合し、一致した場合は偽造の疑いはないと判断する。調停者はサーバ１０に付属したコンソール２０から認証コード照合処理９６のみにアクセスできる。
【００２８】
さらに、ＤＡＳＤ１７には、次のようなデータやプログラムが格納されている。
・クライアント４０から保管を依頼された電子データの保管処理を行うデータ保存プログラム９０
・保管データ記憶部８０に保管されている電子データに対してクライアント４０から取り出し要求があった場合にその電子データを要求中のクライアント４０に送るデータ読出しプログラム９２
・アクセスが制限されたプログラムへのアクセス制限を行うアクセス制限プログラム９４
・アクセス制限処理の際に参照されるポリシーテーブル８２
・各種オブジェクトを起動するたびに記録されるログを格納するログテーブル８４
・不正アクセスによる異常なログをチェックするログフィルタ９８
なお、サーバ１０とクライアント４０との間の通信は、図４に示すような相互認証（ＥＣＯＭ  ＩＣカード利用ガイドライン１．０版（１９９８年３月１日））を行った上で実行することにより、不正な利用に対抗している。
【００２９】
管理者はサーバの管理者である。サーバ１０に付属したコンソール２０からサーバ１０内の所定の情報をアクセスできる。監査者はログ保管８４のログデータの監査やログフィルタ処理９８の警告データを参照することによりサーバ１０管理者の作業を監査する。また認証コード生成処理の生成時（システム立上時など）に ＲＡＭ３２を サーバ１０に装着し、ＰＩＮをサーバに付属したコンソール２０から入力する。
【００３０】
一時鍵保管部８１には、一時秘密キーである認証コード生成鍵Ｋｍ、キーＫｍの生成に用いたハッシュ回数ｍ、認証コード生成アルゴリズムｆ、認証コード生成アルゴリズム識別番号ＦＩＤ、認証コード生成鍵Ｋｍの識別番号ＫＩＤｍを一時鍵暗号化鍵ＫＥＫoで暗号化したＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）が保管されている。一時鍵保管部８１へのアクセスは監査者のみが許される。
【００３１】
以上のような構成を有する電子データ保管システム１の運用および動作を説明する。
図３は、本発明の原理による運用開始までの手順を示すフローチャートである。図３において、ＲＯＭ３４の製造業者は、ステップ１００において、製造業者側で認証コード秘密鍵Ｋoを生成しＣＤなどのＲＯＭ３４に焼き付ける。ＲＯＭ３４はメーカまたは調停者または監査者が安全な場所に保管する。ステップ１０２において、認証コード秘密鍵Ｋoに対しｍ回ハッシュ演算を行い一時秘密鍵Ｋｍを生成する。秘密鍵Ｋｍは、Ｋｍ＝ｈm（Ko）で与えられる。ステップ１０４において、製造業者の側で、認証コード秘密鍵Ｋｍ、ハッシュ回数ｍ、認証コード生成オブジェクトｆ、認証コード秘密鍵Ｋｍ識別子ＫＩＤｍおよび認証コード生成オブジェクト識別子ＦＩＤを鍵暗号鍵ＫＥＫoで暗号化し、ＣＤなどのＲＯＭ／ＲＡＭ３６に焼き付ける。秘密鍵ＫＥＫoは、式ＫＥＫo ＝ｈ（ＰＩＮ，Ｓo ）によりＰＩＮと乱数値Ｓoとをハッシュ関数ｈでハッシュ演算して生成する。ここで、ＰＢＥ（password-based encryption）方式によれば、ｈ（ＰＩＮ，Ｓo ）は、ＰＩＮとＳoとの排他的論理和にハッシュ演算を行うことを意味する。したがって、ＫＥＫo ＝ｈ（ＰＩＮ，Ｓo ）＝ｈ（ＰＩＮxorＳo）である。ここで、ＡxorＢは、ＡとＢとの排他的論理和を表す。次ぎに、ステップ１０６において、製造業者の側で、乱数値ＳoをフレキシブルディスクなどのＲＡＭ３２に格納する。ＲＡＭ３２は、ＰＩＮとともに監査者が保管する。続いて、ステップ１０８において、監査者が、ステップ１０４で作成したＣＤなどのＲＯＭ／ＲＡＭ３６内のデータをサーバ１０の監査者以外にアクセス制限されたディスク、即ち、ＤＡＳＤ１７にコピーする。ステップ１１０において、管理者が、サーバの運用を開始する。ステップ１１２において、監査者は、乱数値Ｓoが格納されているフレキシブルディスクなどのＲＡＭ３２をサーバ１０に装着しＰＩＮを入力する。これにより認証コード生成処理７５が開始される。
【００３２】
通常の運用では，クライアントの要求に応じてクライアントからの電子データをサーバ１０に保管するデータ保存処理９０、クライアントの要求に応じて、サーバ１０に保管していたデータをクライアントに送るデータ読出し９２が行われる。
【００３３】
＜データ保存＞
クライアント４０側でデータ保管サーバ１０に保管すべきデータが発生した場合、クライアント４０は、このデータをコンピュータ読み取り可能な形式にして暗号化したものを電子データとして、保管または登録要求とともにネットワークを介してデータ保管サーバ１０に送る。この場合、先ずクライアント４０の操作者は、自分のＰＩＮ（個人識別番号）をデータ保管サーバ１０に送り、データ保管サーバ１０では、そのクライアント４０の使用を許された人員のＰＩＮリスト（図示せず）に、受信したＰＩＮがある場合のみ、そのクライアント４０に以降の操作を許す。また、電子データの通信に先立ち、クライアント４０とデータ保管サーバ１０との間では、上記のように図４に示した相互認証を行う。
【００３４】
データ保管サーバ１０は、クライアント４０から電子データ（Ｘとする）の保管または登録要求を受け取ると、後述の認証コード生成処理を行う。データ保管サーバ１０は、認証コードを生成した後、電子データＸに電子署名を行い、図２で既に述べたように電子データＸ、認証コードおよび電子署名を一組にして保管データ記録部８０に保管する。
【００３５】
〔第１の実施形態〕
図５は、本発明の第１の実施形態によりＣＰＵ１１が認証コードを生成する動作を示すフローチャートである。認証コード生成処理は、例えばＪａｖａ（登録商標）のSecurity Manager機能の利用などアクセス権処理により不正な処理からの利用ができないよう保護される。ハードディスクなどＤＡＳＤ１７には一時鍵暗号化鍵で暗号化された認証コード生成一時秘密鍵とハッシュ回数ｍ、即ち、ＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）が格納されている。認証コード生成処理のプログラムオブジェクト７５も監査者権限以外はアクセスできないよう保護される。図５において認証コードを生成が開始されると、まず、ステップ１２０において、図６の
ＭＡＣ鍵復号／暗号化処理を実行する。
【００３６】
図６において、ＤＡＳＤ１７には、認証コード生成鍵Ｋｍ、キーＫｍの生成に用いたハッシュ回数ｍ、認証コード生成アルゴリズムｆ、認証コード生成アルゴリズム識別番号ＦＩＤ、および認証コード生成鍵Ｋｍの識別番号ＫＩＤｍを一時鍵暗号化鍵ＫＥＫoで暗号化したＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）が保管されている。鍵暗号鍵ＫＥＫoはあらかじめ製造業者によりハッシュ関数ｈ（ＰＩＮ，So）を使用して生成されたものである。ＤＡＳＤは、図１のアクセス権処理９４で監査者以外のアクセスから保護されている。まず、ＣＰＵ１１は、ＤＡＳＤ１７から暗号化鍵情報ＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）を読み出す（ステップ２００）。図１のＲＡＭ３２を管理する監査者がＲＡＭ３２をサーバに装着すると、ＣＰＵ１１は、ＲＡＭであるＦＤ３２からＳoを読み出し（ステップ２０２）、ＰＩＮの入力を要求する（２０４）。監査者は、これに応じて、ＰＩＮを入力し（ステップ２０６）たのち、ＲＡＭ３２をサーバ１０から取り出し、安全な場所に保管する。この場合、ＰＩＮ入力のセキュリティレベルを高めたい場合は、指紋や虹彩などバイオメトリクス機器をサーバに接続し、監査者本人であることを識別するようにしても良い。次に、ステップ２０８において、鍵暗号鍵ＫＥＫoをハッシュ関数ｈ（ＰＩＮ，Ｓo）により再生成する。ステップ２１０において、乱数Ｓ1を生成する。ステップ２１２において、新たな鍵暗号鍵ＫＥＫ1をハッシュ関数ｈ（ＰＩＮ，Ｓ1）により生成し、ＰＩＮを消去する。ステップ２１４において、ステップ２０８で再生成した鍵暗号鍵ＫＥＫoを用いてＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）を復号化し、Ｋｍ，ｍを得たのち、ＫＥＫoを消去する。次に、ステップ２１６において、認証コード生成一時秘密鍵Ｋm+1＝ｈ（Ｋｍ）を計算し、これを秘密鍵として、Ｋｍを消去する。ステップ２１８において、認証コード生成一時秘密鍵Ｋm+1を新たな鍵暗号鍵ＫＥＫ1で暗号化し、ＫＥＫ1（Ｋm+1，ｍ+1，ｆ，ＫＩＤm+1，ＦＩＤ）を生成する。ステップ２２０において、乱数Ｓ1をＲＡＭ３２に書き込む。続いて、新たな暗号化鍵情報ＫＥＫ1（Ｋm+1，ｍ+1，ｆ，ＫＩＤm+1，ＦＩＤ）をＤＡＳＤ１７の一時鍵保持位置８１に書き込み（ステップ２２２）、古い暗号化鍵情報ＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）を消去し（ステップ２２４）、ＫＥＫ１を消去する（２２６）。このようにして、新たな認証コード生成鍵Ｋm+1、即ち、新たな暗号化鍵情報ＫＥＫ1（Ｋm+1，ｍ+1，ｆ，ＫＩＤm+1，ＦＩＤ）を生成する。
【００３７】
ここで、次に、図５に戻り、ステップ１２２において、Ｋm+1をメッセージ認証コード（ＭＡＣ＝message authentication code）の暗号鍵Ｋｍとして用いることにする。次に、ステップ１２４において、データ入力処理により保管対象ファイルＸを取り込み乱数ｎによる秘密鍵Ｋｍのｎ回ハッシュ演算Ｋmn＝ｈn（Ｋｍ） をし、これを秘密鍵とする。なおこの時、性能に配慮しサーバ負荷を低減するなどの理由により、乱数に上限値を設けるといったことも可能である。KｍはＫmnを生成した後消去し、以降はＫmnをKｍに充てる。またｍｎ＝ｍ＋ｎとし、ｍを消去する。なお、ステップ１３０から戻ってきた場合、Ｋｍおよびｍは、Ｋmnおよびｍｎを用いる。
【００３８】
続いて、ステップ１２６において、ステップ１２４で求めたデータＫｍ（実際には、Ｋmnを求めたが、もはやＫｍとして扱っている）から認証コード ＭＡＣ（Ｘ）＝ｆ（Ｘ、Ｋｍ）（＝ｆ（Ｘ、Ｋmn）:Ｋmnはステップ１２４で求めた値）を生成し、乱数ｎによる現在の秘密鍵Ｋmのｎ回ハッシュ演算Ｋmn＝ｈｎ（Ｋｍ）を行い、これを秘密鍵とし、古いＫmnを消去する。ＭＡＣ生成アルゴリズムは、ＨＭＡＣまたはＵＭＡＣなどのアルゴリズムを使用する。またｍｎ＝ｍｎ＋ｎとする。
【００３９】
次に、ステップ１２８において、取得したデータ及び認証コードを署名生成処理９７に渡し、ステップ１２６で使用したＫｍおよびｍｎを消去する。認証コードは、ＭＡＣ（Ｘ）、ハッシュ回数ｍ=0，ｎ＝ｍｎ、認証コード生成アルゴリムＦＩＤおよび認証コード生成秘密鍵ＫＩＤｍから構成される。ハッシュ回数はＩＣカードなどＲＯＭ／ＲＡＭを利用する方式と整合をとるためＩＣカードなどＲＯＭ／ＲＡＭで行うハッシュ回数ｍ＝０としている。この時、秘密情報の盗聴・漏洩防止のためハッシュ回数m，nを暗号化して保存することも可能である。
【００４０】
判断ステップ１３０において、管理者から処理終了を示す指示を受け取ったか否かを判断する。この指示は管理者の判断で随時行うことができる。処理終了を受け取っていなければ、ステップ１２４に戻る。終了処理指示を受け取った場合、ステップ１３２に進み、Ｋmnおよびｍｎを消去して、認証コード生成処理を終了する。
【００４１】
クライアントから送られた保管すべきデータＸに対して、以上のようにして認証コード生成を生成し、図２に示すように、データＸ，認証コードおよび電子署名が保管データ８０として保管される。
【００４２】
＜データ読み出し＞
クライアント４０が、保管データ記録部８０に保管されている電子データを必要とする場合、必要な電子データを識別できる情報（電子データ識別情報）とともに電子データ読み出し要求をネットワークを介してデータ保管サーバ１０に送る。勿論、この場合も、クライアント４０は、図６の相互認証およびＰＩＮによるアクセス制限を受ける。
【００４３】
データ保管サーバ１０では、この電子データ読み出し要求と電子データ識別情報を受け取ると、データ読み出しプログラム９２が、保管データ記録部８０から電子データ識別情報で特定される電子データの記録を取りだし、取り出した電子データが改竄されていないか否かを、署名の公開鍵で電子署名を復号化して、データのダイジェストとの一致を検証する。一致し、署名検証が成功裏に終わった場合、データ読み出しプログラム９２は、読み出した電子データをネットワーク経由で要求元のクライアント４０に送る。一致せず、署名検証に失敗した場合、データ読み出しプログラム９２は、その旨をネットワーク経由でクライアント４０に通知するとともに、視覚的警報、聴覚的警報、またはこれらの両方を発して、管理者にも知らせる。
【００４４】
＜認証コード照合＞
管理者、クライアント４０の操作者、またはクライアント４０を通してサービスを受けた利用者の何れかが、何らかの保管データ（Ｘとする）の電子署名に偽造の疑いがあると判断した場合、調停者に疑いのある保管データＸの認証コード照合を依頼することができる。図９は、本発明の一実施形態による認証コード照合の手順を示すフローチャートである。図９において、認証コード照合を行う場合、ステップ４００において、調停者は認証コード秘密鍵Ｋ０を格納したＣＤなどのＲＯＭ３４をサーバ１０に装着する。ステップ４０２において、管理者は調停者の指定した電子データＸの認証コードＭＡＣ（Ｘ）、ハッシュ回数ｍ，ｎ、認証コード生成アルゴリムＦＩＤ、および認証コード生成秘密鍵ＫＩＤｍを調整者に渡す。システム４０４において、調停者はサーバ１０の認証コード照合処理９６を起動する。
【００４５】
ステップ４０６において、認証コード照合処理は１の認証コード秘密鍵Ｋ０をＣＤなどのＲＯＭから読み込み、またデータＸをＣＤやフレキシブルディスクから読み込む。監査者は乱数値Ｓoが格納されているＲＡＭ３２と認証コード生成アルゴリズムｆが鍵暗号鍵ＫＥＫoで暗号化されて格納されているＣＤなどのＲＯＭ／ＲＡＭ３６をサーバ１０に装着し、ＰＩＮを入力する。これにより鍵暗号鍵ＫＥＫoで暗号化されていた認証コード生成アルゴリズムｆがｈ（ＰＩＮ，Ｓ０）を生成することにより復号化される。調整者によってサーバのコンソールから入力されたハッシュ回数ｍ，ｎにより認証コードＭＡＣｍ＋ｎ（X）＝ｆ（ｈｍ＋ｎ（Ｋ０），Ｘ）を計算する。この際、認証コード照合処理の認証コード生成アルゴリムＦＩＤが調整者によってサーバのコンソールから入力された認証コード生成アルゴリムＦＩＤと一致していることを確認する。
【００４６】
ステップ４０８において、調停者はステップ４０２で渡された認証コードＭＡＣ(X)とステップ４０４で生成した認証コードＭＡＣｍ＋ｎ（X）の一致が確認された場合、電子データＸは改竄されていないと判定する。一致が確認されない場合、電子データＸは改竄されていると判定する。
【００４７】
このようにして、電子データＸの正真性を確かめることができる。
〔第２の実施形態〕
上記の実施形態では、秘密鍵ＫＥＫ１は、Ｋｍやｍを暗号化した後、ステップ２２６において消去した。本発明は、秘密鍵ＫＥＫ１をＫｍ、ｍの暗号化に使用した後、ＲＡＭに格納しておき、サーバ内オブジェクトで処理待ち状態の時、ＲＡＭに格納しておいたＫＥＫ１を用いて、認証コード生成一時秘密鍵を暗号化することによりサーバ内オブジェクトの認証コード生成一時秘密鍵の安全性を高めるようにしたものである。
【００４８】
図７は、主記憶内の書きを暗号化する場合の認証コード生成のフローチャートを示す。図７のフローチャートは、ステップ１２０および１３２がステップ１２０ａおよび３３２に置き換わり、かつステップ３４０および３４２が追加されたことを除けば、図５のフローチャート同じである。また、ステップ１２０ａでは、図８のＭＡＣ鍵復号／暗号化サブルーチンを実行するが、図８のサブルーチンも、ステップ２２６がステップ２３０〜２３８に置き換わった点を除けば、図６のサブルーチンと同じである。したがって、相違点のみを説明する。
【００４９】
まず、図８の主記憶内の鍵を暗号化する場合のＭＡＣ鍵復号／暗号化処理では、
ステップ２２４において、ＤＡＳＤ１７の暗号化鍵情報ＫＥＫo（Ｋｍ，ｍ，ｆ，ＫＩＤｍ，ＦＩＤ）を消去した後、ＣＰＵ１１が、ＲＡＭ入れ替え要求を発すると（ステップ２３０）、監査者はこれに応じてＲＡＭを入れ替え（ステップ２３２）、ＣＰＵ１１がＲＡＭ入れ替え完了を検出する（ステップ２３４）。ステップ２３６において、鍵ＫＥＫ１を入れ替えたＲＡＭ３２ａに書き込み、以降、定期的に、ＲＡＭ３２ａの読み込みチェックを行う。ステップ２３８において、鍵ＫＥＫ１を消去して、ＭＡＣ鍵復号／暗号化処理を修了する。このようにして、新たな認証コード生成鍵Ｋm+1、即ち、新たな暗号化鍵情報ＫＥＫ1（Ｋm+1，ｍ+1，ｆ，ＫＩＤm+1，ＦＩＤ）が生成される。
【００５０】
図７の認証コード生成においては、判断ステップ１３０において、処理終了指示を受信した場合、ステップ３３２において、Ｋmnおよびｍｎを消去し、図８のステップ２３６で開始したＲＡＭ３２ａの定期的な読み込みチェックを停止する。
【００５１】
また、判断ステップ１３０において、処理終了指示を受け取っていない場合、ステップ３４０において、データ入力処理の対象ファイル待の場合、ＲＡＭからＫＥＫ１を読込みＫｍｎ，ｍｎを暗号化してＫＥＫ１（Ｋｍｎ，ｍｎ）を求めた後、ＫＥＫ１を消去する。さらに、ステップ３４２において、
データ入力処理の対象ファイルが発生した場合、ＲＡＭからＫＥＫ１を読込みＫｍｎ，ｍｎを復号化したのち、ＫＥＫ１を消去する。こうして、 認証コード生成処理を終了する。
【００５２】
クライアントから送られた保管すべきデータＸに対して、以上のようにして認証コード生成を生成し、図２に示すように、データＸ，認証コードおよび電子署名が保管データ８０として保管することができる。
【００５３】
以上は、本発明の説明のために実施例を掲げたに過ぎない。したがって、本発明の技術思想または原理に沿って上述の実施例に種々の変更、修正または追加を行うことは、当業者には容易である。
【００５４】
例えば、第１の実施形態では、クライアント４０からの電子データＸ全体に対して認証コードを生成したが、電子データＸを複数に分割し、分割した各データに対して認証コードを生成しもよい。
【００５５】
以上の実施形態では、電子データ保管サーバ１０を１台のみ使用したが、複数の電子データ保管サーバからなる証拠性保証型の電子データ保管システムを構成することも可能である。
【００５６】
上記の例では、データ保管サーバは、ネットワークを介して複数のクライアントと接続されていたが、ネットワークを介さず１台の端末との間で電子データの授受を行うことも可能である。
【００５７】
初期の認証コード秘密鍵を格納するＲＯＭに対して、Alpha-ＲＯＭまたはSecure ＲＯＭなどのコピー防止技術を適用することによって、安全性を高めてもよい。
なお、上述の実施形態では、初期の認証コード秘密鍵Ｋoを製造業者がＲＯＭの焼き付けたが、鍵Ｋoを生成するプログラム自体をサーバ１０のＤＡＳＤ１７にロードし、このプログラムを用いてＫoをサーバ１０で生成し、認証コード生成に用いてもよい。
【００５８】
図６および８のステップ２１６において、Ｋｍを１回ハッシュ化して新たな認証コード生成鍵を生成したが、この時のハッシュ化の回数は１回である必要はない。
【図面の簡単な説明】
【００５９】
【図１】本発明の一実施形態による証拠性保証型の電子データ保管システム１の構成例を示す略ブロックである。
【図２】図１の保管データ記録部８０に保管される電子データの記録例を示す図である。
【図３】本発明によるサーバ運用開始までの手順を示すフローチャートである。
【図４】図１の電子データ保管システム１が行う相互認証におけるデータおよび処理の流れ示す相関チャートである。
【図５】本発明の第１の実施形態により認証コードを生成する動作を示すフローチャートである。
【図６】図５のステップ１２０で実行されるＭＡＣ鍵復号／暗号化サブルーチンのフローチャートである。
【図７】本発明の第２の実施形態により認証コードを生成する（主記憶内暗号化）動作を示すフローチャートである。
【図８】図７のステップ１２０ａで実行されるＭＡＣ鍵復号／暗号化サブルーチンのフローチャートである。
【図９】本発明の一実施形態による認証コード照合処理の流れを示すフローチャートである。
【符号の説明】
【００６０】
１  本発明の電子データ保管システム
１０  本発明のデータ保管サーバ
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  通信インタフェース
１６  Ｉ／Ｏインタフェース
１７  ＤＡＳＤ
１８  ＦＤドライブ
１９  光ディスクドライブ
３２  フロッピィディスク
３４  ＲＯＭ
３６  ＲＯＭまたはＲＡＭ
７５  認証コード生成オブジェクト
８０  保管データ記憶部
８２  ポリシーテーブル
８４  ログテーブル
９０  データ保存プログラム
９２  データ読み出しプログラム
９４  アクセス制限
９６  認証コード照合
９７  署名生成処理プログラム
９８  ログフィルタ処理プログラム
９９  署名検証処理プログラム
【図１】
0004765262.tif 000002
【図２】
0004765262.tif 000003
【図３】
0004765262.tif 000004
【図４】
0004765262.tif 000005
【図５】
0004765262.tif 000006
【図６】
0004765262.tif 000007
【図７】
0004765262.tif 000008
【図８】
0004765262.tif 000009
【図９】
0004765262.tif 000010