(57)【要約】【課題】電磁的記録の証拠能力及び／又は証拠価値を高めるための情報処理方法を提供する。【解決手段】電磁的記録を補助記憶装置に出力可能な情報処理装置において、書き込み自由な第１の記憶領域と、書込みと書換えと上書きと削除とを禁止し、特定の追記のみを許可する第２の記憶領域を備える。第１の記憶領域への電磁的記録の書込みと第２の記憶領域への電磁的記録の追記のどちらかが成功しないとき、既に書込まれた第１及び第２の記憶領域の電磁的記録を消去する。【選択図】図４
2008077179.tif 000002
【特許請求の範囲】
【請求項１】
電磁的記録を補助記憶装置に出力可能な情報処理装置において、電磁的記録の証拠能力及び／又は証拠価値を高めるための情報処理方法であって、
ユーザによる任意の書込みを許可する第１の記憶領域への電磁的記録の書込みと共に、ユーザによる任意の書込みと書換えと上書きと削除とを禁止し、特定の追記のみを許可する第２の記憶領域へ、第１の記憶領域へ書込むのと同じ電磁的記録を追記するステップと、
第１の記憶領域への電磁的記録の書込みと第２の記憶領域への電磁的記録の追記のどちらかが成功しないとき、既に書込まれた第１及び第２の記憶領域の電磁的記録を消去するステップと、
からなることを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項２】
請求項１に記載の情報処理方法において、時刻情報を第２の記憶領域へ追記するステップをさらに含むことを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項３】
請求項２に記載の情報処理方法において、前記電磁的記録に時刻情報を付加した情報に対してハッシュ演算を行い、該ハッシュ演算により算出されたハッシュ値を第２の記憶領域へ追記するステップをさらに含むことを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項４】
請求項３に記載の情報処理方法において、前記電磁的記録に時刻情報を付加した情報に対して第１のハッシュ演算を行い、該第１のハッシュ演算により算出されたハッシュ値と１つ前の第１のハッシュチェーン値との排他的論理和に対して第２のハッシュ演算を行い、該第２のハッシュ演算により算出された第２のハッシュチェーン値を第２の記憶領域へ追記するステップをさらに含むことを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項５】
請求項４に記載の情報処理方法において、前記第２のハッシュチェーン値に対して、秘密鍵を用いて暗号化することにより電子署名を生成し、該電子署名を前記第２の記憶領域へ追記するステップをさらに含むことを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項６】
請求項５に記載の情報処理方法において、前記第１および第２のハッシュ演算、および秘密鍵による暗号化を、耐タンパ性のある装置で行うことを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法。
【請求項７】
請求項５または６に記載の情報処理方法により前記第２のハッシュチェーン値に対して電子署名を生成し、該電子署名を前記第２の記憶領域へ追記して電磁的記録の証拠能力及び／又は証拠価値を高める２台の情報処理装置の間において、
生成された第１の電子署名を外部の情報処理装置に出力するステップと、
外部の情報処理装置において第１の電子署名に対して生成された第２の電子署名が外部の情報処理装置から入力されると、第２の電子署名に対し第３の電子署名を生成するステップと、
からなることを特徴とするハッシュダイジェスト及び電子署名の連鎖を形成する方法。
【請求項８】
請求項１から６のいずれかに記載の電磁的記録の証拠能力及び／又は証拠価値を高める情報処理方法をコンピュータに実行させるためのプログラム。
【請求項９】
請求項７に記載のハッシュダイジェスト及び電子署名の連鎖を形成する方法をコンピュータに実行させるためのプログラム。
【請求項１０】
バスで結ばれた、中央演算処理装置、主記憶装置、タイマ、一つあるいは複数の補助記憶装置を具備し、請求項１から６のいずれかに記載の情報処理方法を実施することを特徴とする電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電磁的記録に証拠能力又は証拠価値を高める措置を講じてから、該電磁的記録を出力する情報処理方法、プログラム及び装置に関する。
【背景技術】
【０００２】
近年、電子帳簿保存法、電子署名法、電子文書法などの電子文書関連法制度により、電磁的記録の保存、作成、縦覧、交付等が法的に認められるようになった。一方、企業等の組織の法令遵守や善管注意義務を履行するため、組織の内部統制の仕組みを構築し、当該活動の結果を証拠として残すことにより、内部統制監査や株主代表訴訟等に備える必要性が高まっている。一般に、組織の内部統制に係る情報システムが出力する記録は、膨大な量となりがちであるため、経済性、検索の容易性等に鑑み、紙面ではなく電磁的記録のまま保管することが望まれている。
【０００３】
電磁的記録に電子文書としての法的要件を与え、刑事訴訟における証拠能力及び／又は証拠価値並びに民事訴訟における証拠価値を高めるための技術が開示されている。電磁的記録が改竄されていないこと（完全性）を証明するハッシュ技術、署名作成者が誰か（真正性）を証明する電子署名技術、ある時刻以前に電磁的記録が存在していたこと（実在性）並びにある時刻以前に電磁的記録が改竄されていないこと（完全性）を証明するタイムスタンプ技術等が広く知られている（非特許文献１）。
【０００４】
また、過去における電子署名の非生成を証明しようとする技術がある。例えば、電子署名に加えて別の改竄検知措置等を行う方法が提案されている（非特許文献２）。偽造された電子署名に該改竄検知措置が施されていないことを検証することにより、該電子署名の偽造を証明するものである。該改竄検知措置とは、具体的には、生成する複数の電子署名の間に時系列の連鎖構造を持たせるという方法である。該方法によって複数の電子署名間の生成順序を証明し、及び該電子署名間に第三の電子署名の存在しないことを証明しようとするものである。
【非特許文献１】独立行政法人情報処理推進機構、「タイムスタンプ技術に関する調査報告書」、２００４年４月
【非特許文献２】洲崎誠一、松本勉「電子署名アリバイ実現機構−ヒステリシス署名と履歴交差」、情報処理学会論文誌、２００２年８月
【発明の開示】
【発明が解決しようとする課題】
【０００５】
要証事実の存在又は不存在について判断を下す根拠となる電磁的記録は、該記録が必要とされる以前から、上記の完全性、真正性、実在性を満たすための技術的手段を講じていなければ意味がない。監査や訴訟等のため、第三者による提出要求を受けてから事後的に上記の技術的手段を施しても証拠能力や証拠価値が高まることはない。例えば、事件性が指摘された時以降の日時を示すタイムスタンプが押された電磁的記録は、事後の捏造であるとの疑義を払拭することができないからである。したがって、電磁的記録は、出力から時を置かず、完全性、真正性、実在性を満たしておくことが望ましい。
【０００６】
加えて、内部統制等の業務履歴が「業務の通常の過程において作成された書面」（刑事訴訟法３２３条２号）であると認められるためには、業務の通常の過程を継続して連続的に、技け漏れなく（網羅性）、記録すると良い。事件性が指摘される以前から記録された網羅性のある業務履歴は、自己に有利な証拠のみを選択して提出し、不利な証拠を隠蔽しているとの疑義を払拭することができる。それによって、刑事訴訟においては証拠能力及び証拠価値が、また民事訴訟においては証拠価値が認められる蓋然性が高くなるからである。網羅性を論理的な完全さを以って証明するためには、該記録の存在の証明のみならず、該記録以外の記録が他に存在しないことの証明（不存在の証明）が必要である。監査人、訴訟の相手方、第三者等から提出される証拠の不存在を積極的に証明することにより、監査、訴訟等を自己に有利に展開することができる。
【０００７】
しかし、前述の背景技術の実施例は、該電磁的記録が媒体に記録された以後、該記録に対して該技術的手段を講じる。該記録の出力から該技術的手段の措置までの間に一定の、あるいは時として長時間が経過してしまうことがある。すなわち電磁的記録に証拠能力や証拠価値を高めるための措置がなされない期間が存在する（問題１）。
【０００８】
また、業務履歴として出力される電磁的記録は、業務毎に一定の記録単位（メッセージ、帳票、伝票、トランザクション、ファイル、イベント等）を持ち、時系列の履歴として該記録が積み重なるという特性を持つ。一方、前述の背景技術の実施例は、出力された記録単位毎又は該記録単位をさらにまとめた単位毎に該技術的手段を講ずるか否かを任意に選択できる。すなわち、一連の履歴の中から任意の一部を技き出した残りの履歴のみに対して該技術的手段を講じることができ、かつ抜き出された履歴が存在することについて第三者は知ることができない。したがって、該技術的手段を講じた電磁的記録には網羅性がなく、該記録以外の記録が他に存在しないことの証明はできない（問題２）。例えば、前述の電子署名に加えて別の改竄検知措置等を施す電子署名方法の場合、署名者本人に該改竄検知措置等を行わずに電子署名のみを実行する能力や選択肢が残されている。したがって、電子署名に該改竄検知措置等が含まれていないことのみを抗弁として、第三者に対し自己の電子署名の否認又は電子署名の非生成を証明することはできない。この場合、電子署名の非生成を証明するには、自らが行う電子署名には必ず該改竄検知措置を含めるという電子署名生成の運用事実に関する別途の証拠を必要とする。
【０００９】
さらに、上記の網羅性をより困難にする要因の一つに、業務運用はハードウェアの更改期間を超えて継続することが挙げられる。連鎖構造を持つ電磁的記録を生成する情報処理装置をハードウェアごと更改するとき、旧ハードウェアから新ハードウェアへと連鎖構造を持つ電磁的記録を移転しなければ電磁的記録の連鎖構造は維持できない。しかし、従来の実施例では、異なるハードウェアへ電磁的記録を移転する際、任意の電磁的記録から連鎖構造を再開する操作を防止できない（問題３）。連鎖構造のある電磁的記録のうち未だ第三者による公証を受けていない電磁的記録を抹消し、残された電磁的記録の最後の電磁的記録に続けて、その後生成される電磁的記録から新しい連鎖構造を再開するという不正が考えられる。ハードウェア更改に伴う電磁的記録の履歴の承継において、承継される履歴の網羅性が証明できなければ、証拠能力や証拠価値が損なわれかねない。
【００１０】
そこで、本発明は、上記問題に鑑みて下記の解決すべき課題を設定し、これらの課題を解決することを目的とする。すなわち、証拠能力及び／又は証拠価値が要求される電磁的記録は媒体に出力される以前に、証拠能力及び／又は証拠価値を高めるための措置が施される（課題１）、証拠能力及び／又は証拠価値が要求される電磁的記録はすべて課題１の措置が施され、該措置が施されない電磁的記録は出力が制限される（課題２）、電磁的記録の出力主体であるハードウェアに更改があっても、連鎖構造を持つ電磁的記録の網羅性が証明される（課題３）。
【課題を解決するための手段】
【００１１】
本発明は、一面では、電磁的記録を補助記憶装置に出力可能な情報処理装置において、電磁的記録の証拠能力及び／又は証拠価値を高めるための情報処理方法を与える。
【００１２】
この方法は、電磁的記録を補助記憶装置に出力可能な情報処理装置において、電磁的記録の証拠能力及び／又は証拠価値を高めるための情報処理方法であって、ユーザによる任意の書込みを許可する第１の記憶領域への電磁的記録の書込みと共に、ユーザによる任意の書込みと書換えと上書きと削除とを禁止し、特定の追記のみを許可する第２の記憶領域へ、第１の記憶領域へ書込むのと同じ電磁的記録を追記するステップと、第１の記憶領域への電磁的記録の書込みと第２の記憶領域への電磁的記録の追記のどちらかが成功しないとき、既に書込まれた第１及び第２の記憶領域の電磁的記録を消去するステップとからなることを特徴とする。
【００１３】
また、本発明の電磁的記録の証拠能力及び／又は証拠価値を高めるための情報処理方法は、時刻情報を第２の記憶領域へ追記するステップをさらに含んでも良い。前記電磁的記録に時刻情報を付加した情報に対してハッシュ演算を行い、該ハッシュ演算により算出されたハッシュ値を第２の記憶領域へ追記するステップをさらに含んでも良い。
【００１４】
前記電磁的記録に時刻情報を付加した情報に対して第１のハッシュ演算を行い、該第１のハッシュ演算により算出されたハッシュ値と１つ前の第１のハッシュチェーン値との排他的論理和に対して第２のハッシュ演算を行い、該第２のハッシュ演算により算出された第２のハッシュチェーン値を第２の記憶領域へ追記するステップをさらに含んでも良い。前記第２のハッシュチェーン値に対して、秘密鍵を用いて暗号化することにより電子署名を生成し、該電子署名を前記第２の記憶領域へ追記するステップをさらに含んでも良い。
【００１５】
また、前記第１および第２のハッシュ演算、および秘密鍵による暗号化を、耐タンパ性のある装置で行うことが好ましい。
【００１６】
さらに、本発明は、本発明の電磁的記録の証拠能力及び／又は証拠価値を高めるための２台の情報処理装置がハッシュダイジェスト及び電子署名の連鎖を形成する方法を与える。
【００１７】
この方法は、第２のハッシュチェーン値に対して電子署名を生成し、該電子署名を前記第２の記憶領域へ追記して電磁的記録の証拠能力及び／又は証拠価値を高める２台の情報処理装置の間において、生成された第１の電子署名を外部の情報処理装置に出力するステップと、外部の情報処理装置において第１の電子署名に対して生成された第２の電子署名が外部の情報処理装置から入力されると、第２の電子署名に対し第３の電子署名を生成するステップとからなることを特徴とする。
【００１８】
本発明は、別の面では、電磁的記録を補助記憶装置に出力可能な情報処理装置において、電磁的記録の証拠能力及び／又は証拠価値を高めるためのプログラムを与え、かつ、電磁的記録の証拠能力及び／又は証拠価値を高めるための２台の情報処理装置がハッシュダイジェスト及び電子署名の連鎖を形成するプログラムを与える。本発明のプログラムは、上述の電磁的記録の証拠能力及び／又は証拠価値を高めるため情報処理方法と同じステップを有する。
【００１９】
本発明は、さらに別の面では、バスで結ばれた、中央演算処理装置、主記憶装置、タイマ、一つあるいは複数の補助記憶装置を具備し、上述の情報処理方法を実施することにより電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置を与える。
【発明の効果】
【００２０】
本発明によれば、証拠能力及び／又は証拠価値が要求される電磁的記録は、補助記憶装置の媒体に書込まれる前に、証拠能力及び／又は証拠価値を高めるための措置が施され、該措置が施されない電磁的記録は媒体に残ることがない。すなわち、本発明によれば一度出力された電磁的記録に証拠能力や証拠価値を高めるための措置がなされずに放置される期間などあり得ない。さらに、本発明による証拠能力及び／又は証拠価値を高めるための措置は、情報処理装置によって自動的に実行されるため、該自動実行される措置に対してユーザは窓意的に変更を加えることはできない。したがって、証拠となる業務履歴の網羅性が保障され、該記録以外の記録が他に存在しないことの証明（不存在の証明）が容易になる。
【００２１】
さらに、本発明によれば、業務履歴を出力するハードウェアを更改するとき、連鎖構造のある電磁的記録のうち未だ第三者による公証を受けていない電磁的記録を抹消し、残された電磁的記録の最後の電磁的記録に続けて、その後生成される電磁的記録から新しい連鎖構造を再開するという不正を防止することが可能となる。電磁的記録の出力主体であるハードウェアに更改があっても、連鎖構造を持つ電磁的記録の網羅性を証明することが容易になる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態と添付図面とにより本発明を詳細に説明する。なお、複数の図面に同じ要素を示す場合には同一の参照符号を付ける。
【実施例１】
【００２３】
図１Ａは、本発明の第１の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成を示す略ブロック図である。図１Ａにおいて、該情報処理装置は、中央演算処理装置（ＣＰＵ）１００１、主記憶装置１００２、タイマ１Ａ２５、バス１００４、補助記憶装置であるＩ／Ｏ装置１００５、１００６、１００７とを備えた、仮想記憶方式の電子計算機である。図１Ａは１実施例であって、ＣＰＵ及びバスは複数あっても良く、Ｉ／Ｏ装置の数量はこれより少なくても多くても良く、図１Ａの記載に限定されない。
【００２４】
ＣＰＵ１００１は、内部に算術論理ユニット（ＡＬＵ）、レジスタ、プログラムカウンタと付加回路とからなるシーケンサなどを具備し、主記憶上のプログラムに従って各種の演算を行う。ＣＰＵ１００１内部には、その他に割込み制御ユニット（ＩＣＵ）、メモリ管理ユニット（ＭＭＵ）、二次キャッシュなどを備えていても良い。
【００２５】
主記憶装置１００２は、読み書きの可能な大容量のメモリである。主記憶装置１００２内部に振られたアドレスによって語（Ｗｏｒｄ）を指定し、語を単位として命令とデータを保持する。
【００２６】
タイマ１Ａ２５は、クロックの発振器とカウンタと独立した電池とを具備した、情報処理装置内部のいわゆるリアルタイムクロック（ＲＴＣ）である。タイマ１Ａ２５は、問合せに対して時刻情報を返す。
【００２７】
Ｉ／Ｏ装置１００５、１００６、１００７は、入出力の可能な補助記憶装置であり、媒体を具備するか又は媒体を具備した補助記憶装置と通信の可能なネットワークインターフェースである。
【００２８】
該情報処理装置の起動時に、主記憶装置１００２にはＯＳ１０１３及び割込みハンドラ１０００がロードされる。割込みハンドラ１０００は、ＯＳ１０１３の一部であっても良いし、ＯＳ１０１３とハードウェアの間に位置する仮想マシンモニタ（ＶＭＭ）の一部として構成されても良い。該情報処理装置の起動後、主記憶装置１００２上に、ユーザの操作によりアプリケーションソフトウェア１０１２が保持され、さらにアプリケーションソフトウェア１０１２により電磁的記録が作成される。
【００２９】
ページテーブル１００３は、仮想記憶を管理するために仮想アドレス空間を分割したページの配列構造である。ページテーブル１００３は、Ｉ／Ｏ装置１００５、１００６、１００７を制御するアドレスに対して書込み禁止の設定をしたエントリを含むことができる。アプリケーションソフトウェア１０１２が電磁的記録１０１１のファイル書込みを行うと、オペレーティングシステム（ＯＳ）１０１３に含まれるファイルシステムは、デバイスドライバ１０１４を検索し呼び出す。呼び出されたデバイスドライバ１０１４は、Ｉ／Ｏ装置を制御するアドレスに対し、Ｉ／Ｏ装置の書込み命令を発行する。書込みが禁止されたページに対する書込みを受けたＣＰＵ１００１内部には、ＣＰＵの記憶保護機能によって割込みが発生する。なお、ページテーブル１００３は、図１Ａにおいては、主記憶装置１００２の内部に保持されているが、この構成に限定されるものではなく、ＣＰＵ１００１と一体化した又はＣＰＵから独立したメモリ管理ユニット（ＭＭＵ）の内部に保持されていても良い。
【００３０】
該割込みによって、ＣＰＵ１００１は実行中のプログラム（出力ルーチンなど）を中断し、当該プログラムの命令実行中のＣＰＵ内部のレジスタ、フラグ情報などを主記憶装置上に退避した後、割込みハンドラ１０００を呼び出す。割込みによる他に、アプリケーションソフトウェア１０１２によって割込みハンドラ１０００を直接呼び出すこともできる。割込みハンドラ１０００は、次の一連の処理を実行する。
【００３１】
ＣＰＵ割込みによって割込みハンドラ１０００が呼び出された場合、ページテーブルへの書込み制御は、割込み制御処理１０２０に移される。割込み制御処理１０２０は、割込みハンドラ１０００の全体を制御するメインルーチンであり、各サブルーチンの起動と終了、順序制御、サブルーチン間のデータの送受制御、主記憶装置１０００上に一時的に保持されるデータの暗号化及び復号化、及びＩ／Ｏ処理１０２３を通じたデータの送受制御を行う。なお、割込み制御処理１０２０が持つ暗号鍵と暗号アルゴリズムは後述する値保護処理１Ａ２７の暗号鍵と暗号アルゴリズムと同じである。該暗号鍵は、該情報処理装置の使用者のみならず、運用管理者も入手できない状態で、信頼できる第三者により管理されていることが望ましい。
【００３２】
始めに、割込み制御処理１０２０は、Ｉ／Ｏ装置への書込み命令の書込みを受けたページが所定のアドレス（後述する運用領域Ｏ内のアドレス）であるかを判定するため、比較・登録処理１０２１を起動する。次いで、割込み制御処理１０２０は、比較・登録処理１０２１の処理結果に応じて、書込み命令の対象となる電磁的記録をＩ／Ｏ処理１０２３及びハッシュ演算処理１Ａ２６に渡し、又は割込みハンドラ１０００を終了し、割込み前の状態に復帰させる。他方、個別のアプリケーションソフトウェア１０１２によって呼び出された場合には、割込み制御処理１０２０は、比較・登録処理１０２１、Ｉ／Ｏ処理１０２３、署名生成・検証処理１Ａ２９又は鍵保護処理１Ａ３０を呼び出す。
【００３３】
比較・登録処理１０２１は、割込み制御処理１０２０によって起動される。比較・登録処理１０２１は、Ｉ／Ｏ装置への書込み命令の書込みを受けたページのアドレスと、アドレステーブル１０２２に登録済のアドレスとを比較し、又は個別のアプリケーションソフトウェア１０１２を通したユーザ操作により、アドレステーブル１０２２に任意のアドレスの領域指定及び属性指定の登録を行う。アドレステーブル１０２２は、所定の領域（後述する運用領域Ｏ、保護領域Ｐ）を示すアドレス及び該領域同士の対応関係を示し、Ｉ／Ｏ装置１００５、１００６、１００７のいずれかの内部に記憶される。アドレステーブル１０２２は、比較・登録処理１０２１によりＩ／Ｏ処理１０２３を通じて、読出され、書き込まれる。アドレステーブル１０２２は任意のアプリケーションソフトウェア１０１２によってアクセスされ、変更されることはない。
【００３４】
ハッシュ演算処理１Ａ２６は、ハッシュ演算アルゴリズムを持ち、ハッシュ演算を行う。該ハッシュ演算アルゴリズムは、危殆化を考慮して、割込み制御処理１０２０を通じたユーザ操作により、随時変更することができる。ハッシュ演算処理１Ａ２６は、割込み制御処理１０２０から渡された書込み命令の対象となる電磁的記録とタイマ１Ａ２５から得た時刻情報と排他的論理和（ＸＯＲ）演算処理１０２４から渡された処理結果とを対象としてハッシュ演算を行う。ハッシュ演算処理の結果は、排他的論理和（ＸＯＲ）演算処理１０２４、署名生成・検証処理１Ａ２９、Ｉ／Ｏ処理１０２３に渡される。また、割込み制御処理１０２０を通じてユーザが入力した任意の電磁的記録に対して、ハッシュ演算処理１Ａ２６は、ハッシュ演算を行い、演算結果をＩ／Ｏ処理１０２３に返す。
【００３５】
排他的論理和（ＸＯＲ）演算処理１０２４は、ハッシュ演算処理１Ａ２６の演算結果と値保護処理１Ａ２７によって保存された値１Ａ２８との排他的論理和（ＸＯＲ）演算を行う。排他的論理和（ＸＯＲ）演算の結果は、割込み制御処理１０２０を通してハッシュ演算処理１Ａ２６に返される。
【００３６】
署名生成・検証処理１Ａ２９は、公開鍵暗号方式による暗号化アルゴリズムを持ち、暗号化演算を行うことによって、電子署名を生成し又は検証を行う。該暗号化アルゴリズムは危殆化を考慮して、割込み制御処理１０２０を通じたユーザ操作により随時変更することができる。署名生成・検証処理１Ａ２９は、割込み制御処理１０２０を通してハッシュ演算処理１Ａ２６から渡されたハッシュ演算結果から電子署名を生成し、該電子署名はＩ／Ｏ処理１０２３に渡される。該公開鍵暗号方式に用いられる秘密鍵と公開鍵は、鍵保護処理１Ａ３０が保護する秘密鍵・公開鍵１Ａ３１である。署名生成・検証処理１Ａ２９は、署名の生成と検証の都度、鍵保護処理１Ａ３０にアクセスして秘密鍵又は公開鍵を取得する。割込み制御処理１０２０を通じたユーザ操作によって、署名生成・検証処理１Ａ２９は、ユーザが入力した任意の電磁的記録に対して電子署名を生成し、及びユーザが入力したハッシュ値及び電子署名に対しては署名を復号化し、該ハッシュ値との一致を検証することができる。
【００３７】
鍵保護処理１Ａ３０は、暗号鍵と暗号アルゴリズムを持ち、秘密鍵・公開鍵１Ａ３１の暗号化と復号化を行い、これらを保護する。該暗号鍵と該暗号アルゴリズムは割込み制御処理１０２０及び後述する値保護処理１Ａ２７の暗号鍵と暗号アルゴリズムと同じでなくても良いが、該暗号鍵は、該情報処理装置の使用者のみならず、運用管理者も入手できない状態で、信頼できる第三者により管理されていることが望ましい。鍵保護処理１Ａ３０によって暗号化された秘密鍵・公開鍵１Ａ３１は、Ｉ／Ｏ装置１００５、１００６、１００７のいずれかに書込まれ、読出される。署名生成及び検証処理の実行の都度、秘密鍵・公開鍵１Ａ３１は読出され、鍵保護処理１Ａ３０によって復号化された後、署名生成・検証処理１Ａ２９に渡される。秘密鍵・公開鍵１Ａ３１は、公開鍵暗号方式の秘密鍵及び公開鍵であり、秘密鍵と公開鍵のペアは鍵管理の安全性を考慮して随時変更することができる。変更された秘密鍵と公開鍵は、鍵保護処理１Ａ３０によって暗号化された後、Ｉ／Ｏ処理１０２３によってＩ／Ｏ装置１００５、１００６、１００７のいずれかに書込まれる。
【００３８】
Ｉ／Ｏ処理１０２３は、割込み制御処理１０２０よって起動される。Ｉ／Ｏ処理１０２３の出力対象となる電磁的記録は、証拠能力及び／又は証拠価値を高める必要のある電磁的記録、アドレステーブル１０２２中のＩ／Ｏアドレス、タイマ１Ａ２５の生成する時刻情報、ハッシュ演算処理１Ａ２６の演算結果、値１Ａ２８、署名生成・検証処理１Ａ２９の処理結果及び秘密鍵・公開鍵１Ａ３１である。Ｉ／Ｏ装置１００５、１００６、１００７のいずれかに出力する場合、Ｉ／Ｏ処理は、デバイスドライバ１０１４を検索し、デバイスドライバ１０１４によってＩ／Ｏ装置１００５、１００６、１００７のいずれかに書込み命令を行う。Ｉ／Ｏ処理１０２３の入力対象は、アドレステーブル１０２２中のＩ／Ｏアドレス、秘密鍵・公開鍵１Ａ３１、ユーザが入力する任意の電磁的記録である。
【００３９】
値保護処理１Ａ２７は、暗号鍵と暗号アルゴリズムを持ち、値１Ａ２８の暗号化と復号化を行い、これを保護する。該暗号鍵と該暗号アルゴリズムは、割込み制御処理１０２０の暗号鍵と暗号アルゴリズムと同じである。該暗号鍵は、該情報処理装置の使用者のみならず、運用管理者も入手できない状態で、信頼できる第三者により管理されていることが望ましい。値保護処理１Ａ２７は、証拠能力及び／又は証拠価値を高める必要のある電磁的記録の書込みの完了を確認した割込み制御処理１０２０によって起動される。Ｉ／Ｏ装置１００５、１００６、１００７のいずれかに書き込まれたハッシュ演算処理１Ａ２６の結果が、値１Ａ２８となる。値１Ａ２８は、Ｉ／Ｏ装置に書込まれる前の主記憶装置１００２に保持されていたデータを基にして、値保護処理１Ａ２７により暗号化された後、Ｉ／Ｏ処理１０２３によって値１Ａ２８に上書き保存される。値１Ａ２８は、Ｉ／Ｏ装置１００５、１００６、１００７のいずれかに書込まれ、読出される。Ｉ／Ｏ装置１００５、１００６、１００７によって読出された値１Ａ２８は、値保護処理１Ａ２７によって復号化された後、割込み制御処理１０２０を通じて値１Ａ２８を排他的論理和（ＸＯＲ）演算処理１０２４に引渡される。
【００４０】
図２は、証拠能力及び／又は証拠価値を高める必要のある電磁的記録を証拠記録として生成し、保管するレコードのテーブル例を示す。証拠能力及び／又は証拠価値を高める必要のある電磁的記録をＤｋとする。図１Ａのタイマ１Ａ２５によって生成された時刻情報をタイマ値Ｔｋとする。図１Ａのハッシュ演算処理１Ａ２６の演算結果をハッシュ値Ｈｋ及びハッシュチェーン値ＨＣｋとする。図１Ａの署名生成・検証処理１Ａ２９により生成された電子署名をＳｋとする。証拠記録レコードＲｋをＲｋ＝｛Ｄｋ，Ｔｋ，Ｈｋ，ＨＣｋ，Ｓｋ｝とする。各記号の下付き文字ｋはｋ＝｛０，１，２，…，ｎ｝とし、レコードの発生順序を示す序数である。証拠記録レコードＲｋは、生成された順に逐次累積し、履歴として記録される。
【００４１】
ハッシュ値Ｈｎは、２つの値ＤｎとＴｎを連結したデータＤｎ｜Ｔｎのハッシュ関数ｈ（Ｄｎ｜Ｔｎ）である。記号｜は連結を表し、記号ｈ（）はハッシュ関数を表す。ハッシュチェーン値ＨＣｎは、ｎ−１番目のハッシュチェーン値ＨＣｎ−１とｎ番目のハッシュ値Ｈｎとの排他的論理和ＨＣｎ−１(+)Ｈｎのハッシュ関数ｈ（ＨＣｎ−１(+)Ｈｎ）である。記号(+)は排他的論理和（ＸＯＲ）演算を表す。電子署名Ｓｎは、ハッシュチェーン値ＨＣｎの暗号処理ｃ（ＨＣｎ）の結果である。記号ｃ（）は、暗号アルゴリズムによる暗号化を表す。
【００４２】
電磁的記録Ｄ０は、電磁的記録Ｄｋを生成するエンティティ（主体）を示すための初期情報として用いる。電磁的記録Ｄ０は、電磁的記録の生成主体である該情報処理装置又は該情報処理システム、さらには該情報処理装置又は情報処理システムの管理運用主体に固有の情報を含むことが好ましい。電磁的記録Ｄ０に相応しい、主体に固有の情報とは、例えば、該電子計算機の機体番号、ＢＩＯＳ、ブートローダ、拡張ＲＯＭデータ、オペレーティングシステム（ＯＳ）１０１３のライセンス番号、アプリケーションソフトウェア１０１２のライセンス番号、管理者名、運用者名又はこれらの情報のハッシュダイジェスト又は該情報処理システムにおいて使用する全てのプログラム全体のハッシュダイジェストなどに、暗号化された秘密鍵・公開鍵１Ａ３１を加えた情報が考えられる。−１番目のハッシュチェーン値ＨＣ−１が存在しないためＨＣ−１＝０とし、ハッシュチェーン値ＨＣ０は、０とＨ０との排他的論理和０(+)Ｈ０のハッシュ関数ｈ（０(+)Ｈ０）とする。
【００４３】
証拠記録レコードＲｎは、その構造と生成過程に基づき、ハッシュ値Ｈｎによって電磁的記録Ｄｎの完全性への、電子署名Ｓｎによって署名作成者の真正性への、電磁的記録Ｄ０によって電磁的記録Ｄｎを生成する主体への、タイマ値Ｔｎによって電磁的記録Ｄｎの生成時刻又は生成間隔への、ハッシュチェーン値ＨＣｎによって電磁的記録ＤｎとＤｎ−１との連続性への、合理的な保証が与えられる。また、証拠記録レコードＲｎ又は少なくとも電子署名Ｓｎは、可能ならばその全てを生成の都度、タイムスタンプサービスなどの公証サービスを提供する信頼できる第三者（ＴＴＰ）に保管させることが好ましい。ＴＴＰによるタイムスタンプは、証拠記録レコードＲｎの実在性に対する合理的保証を与えることができる。しかし、費用面や運用面の問題により証拠記録レコードＲｎ又は電子署名Ｓｎの全てをＴＴＰに保管させることが困難な場合には、業務運用上、重要な証拠記録レコードＲｎ又は電子署名Ｓｎを選択して、若しくは可能な限り短周期かつ定期的に、証拠記録レコードＲｎ又は電子署名ＳｎをＴＴＰに保管させても良い。
【００４４】
図３Ａは、証拠能力及び／又は証拠価値を高める必要のある電磁的記録の取扱いを定めるための一のＩ／Ｏ装置内における領域指定の例の概念図である。図３Ｂは、証拠能力及び／又は証拠価値を高める必要のある電磁的記録の取扱いを定めるための複数のＩ／Ｏ装置内における領域指定の例の概念図である。
【００４５】
運用領域Ｏとは、アプリケーションソフトウェア１０１２又はオペレーティングシステム（ＯＳ）１０１３が生成する電磁的記録Ｄｋの内、ユーザの指定により証拠能力及び／又は証拠価値を高める必要がある電磁的記録の出力先となるＩ／Ｏ装置の書込み領域である。運用領域Ｏは、アプリケーションソフトウェア１０１２及びオペレーティングシステム（ＯＳ）１０１３によって直接、書込みが可能である。保護領域Ｐとは、運用領域Ｏに書込まれる電磁的記録Ｄｋを運用領域Ｏとは別に証拠記録レコードＲｋ＝｛Ｄｋ，Ｔｋ，Ｈｋ，ＨＣｋ，Ｓｋ｝として書込み、そして保護するＩ／Ｏ装置の領域である。非指定領域とは、運用領域Ｏ又は保護領域Ｐでない領域であって、本発明に必須の構成要素ではない。一方、運用領域Ｏ又は保護領域Ｐ（以下、Ｏ又はＰを「指定領域」という）は、本発明にとり不可欠の構成要素である。非指定領域の存在は、本発明を使用するユーザにとっての本発明の構成の自由度を示すに過ぎない。運用領域Ｏ、保護領域Ｐ、非指定領域は互いに排他的である。指定領域の概念は、電磁的記録Ｄｋに対して別の側面から次の定義を与えることができる。すなわち、電磁的記録Ｄｋとは、運用領域Ｏに書込まれる全ての電磁的記録であり、かつ運用領域Ｏへの書込みの都度、書込みと同時又はそれ以前に保護領域Ｐに証拠記録レコードＲｋ＝｛Ｄｋ，Ｔｋ，Ｈｋ，ＨＣｋ，Ｓｋ｝の一部として書込まれ、そして保護されるところの、電磁的記録である。したがって、ユーザは、アプリケーションソフトウェア１０１２又はオペレーティングシステム（ＯＳ）１０１３が生成する電磁的記録の出力先に運用領域Ｏを指定することによって、証拠能力及び／又は証拠価値を高めることが必要な、ユーザにとっての電磁的記録Ｄｋを定義することが可能となる。
【００４６】
図３Ａは、一のＩ／Ｏ装置３Ａ０２内に、運用領域Ｏ、保護領域Ｐ、非指定領域を割り当てる。Ｉ／Ｏ装置３Ａ０２は、少なくとも１回の書込みと複数回の読出しの可能な補助記憶媒体を含む装置である。他方、図３Ｂは、複数のＩ／Ｏ装置３Ｂ０２、３Ｂ０３、３Ｂ０４のそれぞれに対し、非指定領域、運用領域Ｏ、及び保護領域Ｐを割り当てる。保護領域Ｐを割り当てたＩ／Ｏ装置３Ｂ０４は、少なくとも１回の書込みと複数回の読出し可能な補助記憶媒体を含む装置であるか、又は少なくとも１回の書込みと複数回の読出し可能な補助記憶媒体を含む装置に接続されたネットワークインターフェース装置である。Ｉ／Ｏ装置３Ｂ０２、３Ｂ０３は、記憶媒体を含んでも良いし、記憶媒体を含まない単なる出力装置であっても良い。
【００４７】
バス３Ａ０１、３Ｂ０１は、システムバス又はＩ／Ｏバスであり、ＩＳＡバス、ＰＣＩバス、ＳＣＳＩバスなどのバスの種類は問わない。図３Ｂにおいて、バス３Ｂ０１は、１本のバスとして記載されているが、Ｉ／Ｏ装置３Ｂ０２、３Ｂ０３、３Ｂ０４のそれぞれに対し、各１本ずつのバスを構成しても良い。図３Ｂは、一実施例を概念的に例示するに過ぎず、バス及びＩ／Ｏ装置の数と組み合わせは任意に決定することができる。
【００４８】
図４は、指定領域である運用領域Ｏ及び保護領域Ｐが持つ電磁的記録の属性及び許可／禁止される操作ならびに運用領域Ｏ及び保護領域Ｐの関連を示す図である。前述したように、運用領域Ｏには電磁的記録Ｄｋが出力される。運用領域Ｏに許可される操作は、少なくともＩ／Ｏ装置への出力操作でさえあれば良く、書換え、上書き、空き領域への追記、削除、読出しの各操作への制限は任意である。一方、保護領域Ｐには、これも前述したとおり、証拠記録レコードＲｋが書込まれる。保護領域Ｐには、運用領域Ｏに電磁的記録Ｄｋの出力要求に基づく証拠記録レコードＲｋ以外の書込み操作は一切許容されない。しかも、証拠記録レコードＲｋの書込み操作は、ユーザによる任意の操作は許可されず、該情報処理装置によって自動的に行われ、かつ書換え、上書き及び削除は禁止され、空き領域への追記が許可される。証拠記録レコードＲｋの読出し操作については、ユーザが任意に実行可能である。
【００４９】
図４の運用領域Ｏと保護領域Ｐとを結ぶ実線の下部に記載した記号１．．＊は、運用領域Ｏと保護領域Ｐとの対応関係を表す。すなわち、１の保存領域Ｐに対して、１又は２以上の運用領域Ｏが設定される。その逆、１の運用領域Ｏに対して２以上の保護領域Ｐを設定することもできる。同一の該情報処理装置内に複数の保護領域Ｐと運用領域Ｏとを、上述の指定領域Ｏ、Ｐの対応関係を満たしながら設定することができる。
【００５０】
図５は、本実施例１の図１の情報処理装置が割込みハンドラ１０００を起動するための割込み設定手順及び割込み手順の例を示すフローチャートである。図５の左半分に記載した設定手順とは、割込みハンドラ１０００を起動する割込み手順を実現するための事前準備として必要な設定を行う手順を表す。図５の右半分に記載した割込み手順とは、該設定手順が完了した状態から、アプリケーションソフトウェア１０１３による電磁的記録１０１１の書込み操作から割込みハンドラ１０００の起動に至る割込み手順を表す。ステップＳ５０３及びステップＳ５０４から右に伸びる矢印は、ステップＳ５０３及びステップＳ５０４が、それぞれの矢印の指し示す割込み手順の各ステップの移行過程を実現する上で前提となる設定条件であることを示している。
【００５１】
図５の設定手順は次のとおりである。該情報処理装置の起動によって、割込み設定ルーチンが起動する（Ｓ５０１）。該割込み設定ルーチンは、ＯＳの一部のルーチンでもよいし、仮想マシンモニタの一部のルーチンでも良い。該割り込み設定ルーチンによって、ＣＰＵは特権モードへ移行する（Ｓ５０２）。次いで、アドレステーブル１０２２に基づいて該情報処理装置に接続されたＩ／Ｏ装置の指定領域Ｏ、Ｐの制御用アドレスを割出し、これに対応するページテーブル１００３のエントリのアクセス権を設定する書込み可能ビットをＯＦＦ（書込み禁止）に設定する（Ｓ５０３）。さらに、記憶保護割込みに対応する割込み先アドレス内の分岐命令を割込みハンドラ１０００の実行命令とする設定を行う（Ｓ５０４）。その後、ユーザモードへ復帰する（Ｓ５０５）。以上が、続く割込み手順を実行するための該情報処理装置の起動時に必要な手順である。
【００５２】
図５の割込み手順は次のとおりである。ユーザがアプリケーションソフトウェア１０１２を操作してＩ／Ｏ装置に対し電磁的記録を出力する場合、一般に、アプリケーションソフトウェア１０２１は、ソフトウェア割込みにより出力ルーチンを呼出すことが多い。出力ルーチンとは、すなわちＯＳ１０１３のＡＰＩである（Ｓ５０６）。このシステムコールに応答したＯＳ１０１３のファイルシステムは、書込み先ファイルの論理名から、該ファイルの位置を示す論理アドレスのあるＩ／Ｏ装置にアクセスするためのデバイスドライバ１０１４を検索し、起動する（Ｓ５０７）。起動したデバイスドライバ１０１４は、該Ｉ／Ｏ装置を制御するアドレスに対応するページテーブルエントリに書込み命令を発行する（Ｓ５０８）。このとき既に該ページテーブルエントリは、ステップＳ５０３によって書込み禁止となっているため、ＣＰＵの記憶保護割込みが発生する（Ｓ５０９）。このときＣＰＵは、ステップＳ５０８の書込み命令の完了する前に、ＣＰＵ内部のレジスタ、フラグ情報を主記憶装置１００２内のスタックに退避し、ＣＰＵ内部状態を保存する（Ｓ５１０）。さらに、ＣＰＵは、所定の割込み先アドレスへジャンプし（Ｓ５１１）、該割込み先アドレス内の分岐命令を実行する（Ｓ５１２）。該分岐命令は、事前にステップＳ５０４によって割込みハンドラ１０００の実効命令に設定されている。これにより割込みハンドラ１０００が起動され（Ｓ５１３）、割込み手順は完了する。以上はアプリケーションソフトウェアによって出力ルーチンが呼出され、さらに該割込みルーチンが呼出される過程である。これに続くステップＳ７Ａ０２については、後述の図７Ａにおいて説明する。
【００５３】
図６Ａは、該情報処理装置の指定領域Ｏ、Ｐを指定して運用を開始するまでの手順を示すフローチャートである。ユーザは、割込みハンドラ１０００に含まれる該情報処理装置の運用領域Ｏ及び保護領域Ｐの指定入力を行うためのプログラムを起動することにより、割込みハンドラ１０００に処理を移し、割込み制御処理１０２０によって特権モードへ移行（Ｓ６Ａ０１）し、次いで、比較・登録処理１０２１を起動する。
【００５４】
ユーザは、比較・登録処理１０２１により、対となる運用領域Ｏと保護領域Ｐの指定入力を行う（Ｓ６Ａ０２）。次に、比較・登録処理１０２１は、ユーザの指定先Ｏ及びＰとアドレステーブル１０２２にあるアドレスの領域とを比較することにより、判定（Ｓ６Ａ０３、Ｓ６Ａ０４）を行う。該指定先Ｏが既に保護領域Ｐとして指定済みの場合、その旨エラー表示（Ｓ６Ａ０５）が返され、ステップＳ６Ａ０２に戻る。次に、該指定先Ｏが保存領域Ｐとして未指定の場合、該指定先Ｐの判定（Ｓ６Ａ０４）に移る。該指定先Ｐが既に運用領域Ｏとして指定済みの場合、その旨エラー表示（Ｓ６Ａ０５）が返され、ステップＳ６Ａ０２に戻る。該指定先Ｐが運用領域Ｏとして未指定の場合、該指定領域Ｏ、Ｐを制御するアドレスに対応するページテーブルのエントリのアクセス権を設定する書込み可能ビットを判定（Ｓ６Ａ０６）し、これがＯＮならば、Ｉ／Ｏ処理１０２３によってＯＦＦ（書込み禁止）に設定（Ｓ６Ａ０７）の後、ステップＳ６Ａ０６の判定に戻る。ステップＳ６Ａ０６の判定結果がＹｅｓの場合、ステップＳ６Ａ０８に移る。
【００５５】
ステップＳ６Ａ０８では、ユーザが指定したＯ及びＰの対をそれぞれ運用領域Ｏ、保護領域Ｐとしてアドレステーブル１０２２に登録するため、Ｉ／Ｏ処理１０２３が起動される。Ｉ／Ｏ処理１０２３は、アドレステーブル１０２２を記憶しているＩ／Ｏ装置を制御するアドレスのページテーブルエントリのアクセス権を設定するビットをＯＮ（書込み許可）に設定する（Ｓ６Ａ０８）。Ｉ／Ｏ処理１０２３は、ＣＰＵから該アドレスに対して、ユーザ指定の該アドレステーブルを書込む命令を発行することによって、アドレステーブル１０２２を記憶するＩ／Ｏ装置に、指定領域Ｏ、Ｐがアドレステーブルに書込まれ、登録される（Ｓ６Ａ０９）。次に、Ｉ／Ｏ処理１０２３は、アドレステーブル１０２２の記憶されたＩ／Ｏ装置を制御するアドレスのページテーブルエントリのアクセス権を設定するビットをＯＦＦ（書込み禁止）に設定（Ｓ６Ａ１０）した後、割込み制御処理１０２０は終了してユーザモードに復帰する。以上、ステップＳ６Ａ０１乃至Ｓ６Ａ１１は、ユーザが指定領域Ｏ、Ｐの指定入力を行うためのプログラムによる一連の流れである。
【００５６】
次に、ユーザは、証拠能力及び／又は証拠価値を高める必要のある電磁的記録Ｄｎを生成するアプリケーションソフトウェア又はＯＳを選択して起動する（Ｓ６Ａ１２）。続いて、選択されたアプリケーションソフトウェア又はＯＳの生成する電磁的記録Ｄｎの出力先を運用領域Ｏに設定する（Ｓ６Ａ１３）。以上、ステップＳ６Ａ１２乃至Ｓ６Ａ１３において、ユーザは、電磁的記録の生成履歴を残すべきアプリケーションソフトウェア又はＯＳを決定し、その出力先をＯに設定するだけで、出力された電磁的記録は、全て証拠として生成履歴が残されることになる。
【００５７】
図７Ａは、本実施例１の図１Ａの該情報処理装置の電磁的記録及び証拠記録レコードをＩ／Ｏ装置に書込む処理の流れの例を示すフローチャートである。図６Ａの手順を終え、運用開始準備が整っていることを前提として以下、詳述する。
【００５８】
前述した図５において割込みハンドラ１０００が起動する（Ｓ５１３）と、先ず、割込み制御処理１０２０が呼び出され、割込み制御処理１０２０は、ステップＳ５１０によってスタック内に保存されたＣＰＵ内部のレジスタ、フラグ情報を基にＩ／Ｏ装置への書込み命令の対象となったアドレスを読出す（Ｓ７Ａ０２）。次に、Ｉ／Ｏ装置への書込み命令を受けたページが運用領域Ｏ内のアドレスであるかを判定するため、比較・登録処理１０２１を起動して、読出した該アドレスを比較・登録処理１０２１に渡す。
【００５９】
比較・登録処理１０２１は、Ｉ／Ｏ装置への書込み命令を受けたページのアドレスとアドレステーブル１０２２に登録された指定領域０のアドレスとを比較する。該比較により、ステップＳ７Ａ０３では、該書込み命令の書込みを受けたページのアドレスが運用領域Ｏ内のアドレスであるか否かを判定する。ステップＳ７Ａ０３の判定結果がＮｏの場合、ステップＳ７Ａ１８へ移行し、エラーを処理する。該判定結果がＮｏであるということは書込み禁止を意味し、その旨のエラーをＣＰＵに通知する。
【００６０】
ステップＳ７Ａ０３の判定結果がＹｅｓの場合、比較・登録処理１０２１は、結果を割込み制御処理１０２０に返し、割込み制御処理１０２０は、ステップＳ５１０によってスタック内に保存されたＣＰＵ情報を基にＩ／Ｏ装置への書込み命令の対象となった電磁的記録Ｄｎを読出して（Ｓ７Ａ０４）、該電磁的記録Ｄｎを主記憶に保存する（Ｓ７Ａ０９）。次に、割込み処理１０２０は、Ｉ／Ｏ処理１０２３を介してタイマ１Ａ２５に時刻情報を要求する。
【００６１】
要求を受けたタイマ１Ａ２５は、タイマ値Ｔｎを算出する（Ｓ７ＡＯ５）。該タイマ値Ｔｎは、当該タイマ１Ａ２５が要求を受けた時点の時刻情報である。Ｉ／Ｏ処理１０２３は、タイマ値Ｔｎの入力を受け、これを主記憶に保存し（Ｓ７ＡＯ９）、割込み制御処理１０２０に戻る。
【００６２】
次に、割込み制御処理１０２０は、ハッシュ演算処理１Ａ２６を起動する。ハッシュ演算処理１Ａ２６は、主記憶内に保存された該Ｄｎ及びＴｎの連結データＤｎ｜Ｔｎのハッシュ関数ｈ（Ｄｎ｜Ｔｎ）を演算し、ハッシュ値Ｈｎを求める（Ｓ７Ａ０６）。ハッシュ演算処理１Ａ２６は、ハッシュ値Ｈｎを主記憶に保存し（Ｓ７Ａ０９）、排他的論理和演算処理１０２４にハッシュ値Ｈｎを引き渡す。
【００６３】
排他的論理和演算処理１０２４は、ハッシュ演算処理１Ａ２６からハッシュ値Ｈｎを受取ると、値保護処理１Ａ２７にアクセスして値１Ａ２８に保存されているＨＣｎ−１を取得する。このとき値保護処理１Ａ２７は、ＨＣｎ−１が暗号化されている値１Ａ２８を復号化して、ハッシュ演算処理１Ａ２６に引渡す。排他的論理和演算処理１０２４は、ＨＣｎ−１とＨｎの排他的論理和（ＸＯＲ）であるＨＣｎ−１(+)Ｈｎを演算して、ハッシュ演算処理１Ａ２６に、ＨＣｎ−１(+)Ｈｎの値を返す。
【００６４】
ＨＣｎ−１(+)Ｈｎを受取ったハッシュ演算処理１Ａ２６は、ＨＣｎ−１(+)Ｈｎのハッシュ関数ｈ（ＨＣｎ−１(+)Ｈｎ）の演算を行い、ハッシュチェーン値ＨＣｎを求める（Ｓ７Ａ０７）。ハッシュ演算処理１Ａ２６は、ＨＣｎを主記憶に保存（Ｓ７Ａ０９）し、署名生成・検証処理１Ａ２９を起動する。
【００６５】
起動された署名生成・検証処理１Ａ２９は、鍵保護処理１Ａ３０にアクセスして秘密鍵・公開鍵１Ａ３１から秘密鍵を取得する。このとき鍵保護処理１Ａ３０は、秘密鍵が暗号化されている秘密鍵・公開鍵１Ａ３１を復号化して、秘密鍵を署名生成・検証処理１Ａ２９に引渡す。該秘密鍵を用いて主記憶に保存されたＨＣｎを暗号化処理ｃ（ＨＣｎ）することにより電子署名Ｓｎを演算する（Ｓ７Ａ０８）。電子署名Ｓｎは主記憶に保存される（Ｓ７Ａ０）。
【００６６】
なお、ステップＳ７Ａ０９における各値を保存する主記憶装置１００２上の領域は、所定の一時記憶領域とし、割込み制御処理１０２０による暗号化によって保護されるものとする。割込み制御処理１０２０は、該一時記憶領域への書込み時には暗号化し、読出し時には復号化を行う。
【００６７】
主記憶に証拠記録レコードＲｎ＝｛Ｄｎ，Ｔｎ，Ｈｎ，ＨＣｎ，Ｓｎ｝が揃うと、Ｉ／Ｏ処理１０２３は、指定領域Ｏ、Ｐの空き領域を求め、それぞれ電磁的記録Ｄｎ、証拠記録レコードＲｎを書込むための空き領域の有無を判定する（Ｓ７Ａ１０）。空き領域の有無の判定は、指定領域Ｏの判定結果と保護領域Ｐの判定結果との論理積によって行う。すなわち、指定領域Ｏと保護領域Ｐのいずれか片方でも空き領域が不足する場合には、判定結果をＮｏとする。
【００６８】
判定結果がＮｏの場合、エラー処理Ｓ７Ａ１８を行う。すなわち、空き領域が不足する旨のエラーをＣＰＵに通知し、主記憶装置１００２に保存された電磁的記録Ｄｎと証拠処理レコードＲｎを消去する。
【００６９】
ステップＳ７Ａ１０の判定結果がＹｅｓの場合、Ｉ／Ｏ処理１０２３は、指定領域Ｏ、Ｐの制御用アドレスに対応するページテーブルのエントリのアクセス権の書込み可能ビットをＯＮ（書込み許可）に設定する（Ｓ７Ａ１１）。次に、Ｉ／Ｏ処理１０２３は、指定領域Ｏ、Ｐそれぞれの該アドレスに対応するＩ／Ｏ装置にアクセスするためのデバイスドライバ１０１４を検索し、該デバイスドライバ１０１４に分岐する。起動されたデバイスドライバ１０１４は、保護領域Ｐを制御するアドレスに証拠記録レコードＲｎを、運用領域Ｏを制御するアドレスに電磁的記録Ｄｎを、それぞれ書込む命令を発行する（Ｓ７Ａ１２）。このとき電磁的記録Ｄｎの書込み命令は、ユーザ操作に基づく命令であって、書換え、上書き、空き領域への追記、削除、読出しは任意である。一方、証拠記録レコードＲｎの書込み命令は、書換え、上書き及び削除は行わず、空き領域への追記のみが実行される。
【００７０】
該書込み命令を受けたＩ／Ｏ装置は、Ｒｎ、Ｄｎの順に書込みを実行する（Ｓ７Ａ１３）。該Ｉ／Ｏ装置の書込み動作の完了又は中断は、該Ｉ／Ｏ装置からＣＰＵに送出された状態情報により確認される。何らかの要因により該Ｉ／Ｏ装置の書込み動作が中断された場合には、中断の要因毎にエラー処理Ｓ７Ａ１９が実行される。該書込みの完了と中断の判定は、電磁的記録Ｄｎの書込み完了と証拠記録レコードＲｎの書込み完了との論理積によって行う。すなわち、電磁的記録Ｄｎと証拠記録レコードＲｎのどちらか一方でも書込みを完了しない限り、エラーと判定する。エラー処理Ｓ７Ａ１９は、エラー要因を表示する他、書込み実行Ｓ７Ａ１３によって途中まで書込まれた電磁的記録Ｄｎ又は証拠記録レコードＲｎがある場合には、これを削除することによって、電磁的記録Ｄｎ及び証拠記録レコードＲｎの同時書込みが成立しない状態を回避することができる。
【００７１】
以上によって、電磁的記録ＤｎはＩ／Ｏ装置に出力されるならば証拠記録レコードＲｎも出力され、証拠記録レコードＲｎが出力されないならば電磁的記録Ｄｎは出力されれることがない。すなわち、証拠作りのなされない電磁的記録が媒体に書込まれることはない。
【００７２】
なお、指定領域Ｏに書込まれる電磁的記録Ｄｎは、割込み処理制御１０２０によって復号化される必要があるが、他方、保護領域Ｐに書込まれる証拠記録レコードＲｎは、復号化されず、暗号化されたまま出力されていても良い。暗号化・復号化の判断は、証拠記録レコードＲｎを運用する管理者の判断による。
【００７３】
該Ｉ／Ｏ装置の書込み動作が完了した場合には、割込み制御処理１０２０は、値保護処理１Ａ２７を呼出し、主記憶装置１００２上の一時記憶領域において暗号化されたＨＣｎを引渡す。値保護処理１Ａ２７は、値１Ａ２８に暗号化されて保存されていた値ＨＣｎ−１に暗号化されたハッシュチェーン値ＨＣｎを上書きし、値１Ａ２８に保存する（Ｓ７Ａ１４）。このとき、値１Ａ２８が記憶されているＩ／Ｏ装置の制御用アドレスに対応するページテーブルエントリのアクセス権の書込み可能ビットを確認し、該ビットがＯＦＦ（書込み禁止）ならば、これをＯＮ（書込み許可）に変更し、ハッシュチェーン値ＨＣｎの上書き完了後、またＯＦＦ（書込み禁止）に戻すものとする。
【００７４】
次にステップＳ７Ａ１５に移る。割込み制御処理１０２０は、ここまで終了した処理の状態に基づいて、該割込みハンドラ１０００による割込み発生前にＣＰＵ１００１が実行していたプログラムが、割込みハンドラ１０００の割込みの終了後に実行すべき命令のプログラムカウンタの値を求める。
【００７５】
例えば、該割込み発生前のＣＰＵ１００１が実行していたプログラムがデバイスドライバによる出力ルーチンであったと仮定し説明する。この仮定において、ステップＳ７Ａ１３の書込みが完了したときには、該出力ルーチンが予定していた命令のうち少なくとも一部は、割込みハンドラ１０００によって既に実行されたことになる。したがって、割込みハンドラ１０００が実行済みの命令の次の命令アドレスの行先の番地を新たなプログラムカウンタの値として算出するのである。こうして求められた次の番地を新たにプログラムカウンタに入力することで、割込み発生前にＣＰＵ１００１が実行していたプログラムは、割込まれた時以降に割込みハンドラ１０００によって実行された命令をスキップし、未だ割込みハンドラ１０００によって実行されていない命令から再開することができる。すなわち、これによって該割込みハンドラと該割込まれたプログラムとの重複した命令の実行の回避を図るのである。エラー処理Ｓ７Ａ１９を経た後においても、これと同様に、次に実行すべきプログラムカウンタの値を求めることは言うまでもない。
【００７６】
こうしてプログラムカウンタの値を算出した割込み処理１０２０は、Ｉ／Ｏ処理１０２３によって、該スタック内のプログラムカウンタの値を更新する（Ｓ７Ａ１５）。
【００７７】
ステップＳ７Ａ１６は、ステップＳ７Ａ１１の逆の手順である。指定領域Ｏ、Ｐの制御用アドレスに対応するページテーブルのエントリのアクセス権の書込み可能ビットをＯＦＦ（書込み禁止）に戻す（Ｓ７Ａ１５）。
【００７８】
以上により、割込みハンドラ１０００は終了し、該割込みの発生前に実行していたプログラムへ復帰する（Ｓ７Ａ１７）。ＣＰＵ１００１は、スタックに退避していた各種レジスタ、フラグの内容を読出して、ＣＰＵ１００１内部に保持し、更新されたプログラムカウンタの値が示す命令アドレスに格納された命令の実行に移る。割込みによって中断されていたプログラムは、該割込みの発生及び割込みハンドラによるいくつかの命令のスキップの影響を何ら受けることなく、以後の動作を継続する。
【００７９】
図８は、本実施例１の図１Ａの該情報処理装置を更改しながら運用を継続する場合に、証拠記録レコードの連鎖を承継するデータ構造の例を示す図である。図８の記号の意味は、図２における記号と同一の記号については、同義であるため説明を省略する。また、同一の記号に’（ダッシュ）が付された記号は、属性が同じであることを意味し、具体的な値の異同は問わない。特に、関数を表す記号ｈ’（）、Ｃ’（）は同一のアルゴリズムでも良いし、異なるアルゴリズムでも良い。
【００８０】
エンティティＡとは、更改前の該情報処理装置であり、証拠記録レコードＲｋを出力する主体を表す。エンティティＡ’とは更改後の該情報処理装置であり、証拠記録レコードＲ’ｋを出力する主体を表す。図８において、エンティティＡによる証拠記録レコードＲｋを生成しなければならない業務運用は、Ｒｎを以って終了したものとし、更改されたエンティティＡ’により該業務運用を継続するものとする。
【００８１】
電磁的記録Ｄ’−１は、電磁的記録Ｄ’ｋを生成するエンティティＡ’を示すための初期情報Ｄ’０の基礎データである。電磁的記録Ｄ’−１は、電磁的記録を生成するエンティティＡ’としての該情報処理装置又は該情報処理システム、さらには該情報処理装置又は情報処理システムの管理運用主体に固有の情報を含むことが好ましい。電磁的記録Ｄ’−１に相応しい、主体に固有の情報とは、例えば、該電子計算機の機体番号、オペレーティングシステム（ＯＳ）１０１３のライセンス番号、アプリケーションソフトウェア１０１２のライセンス番号、管理者名、運用者名又はこれらの情報のハッシュダイジェスト又は該情報処理システムにおいて使用する全てのプログラム全体のハッシュダイジェストなどに、暗号化された秘密鍵・公開鍵１Ａ３１を加えた情報が考えられる。
【００８２】
ェンティティＡ’の秘密鍵によってＤ’−１を暗号化して電子署名Ｓ’−１＝ｃ’（Ｄ’−１）を求め（Ｓ９０５）、エンティティＡのｎ＋１番目の電磁的記録Ｄｎ＋１＝Ｓ’−１としてエンティティＡに入力する（Ｓ９０７）。
【００８３】
電磁的記録Ｄｎ＋１の入力に基づいて生成された電子署名Ｓｎ＋１（Ｓ９０８）は、電磁的記録Ｄ’ｋを生成するエンティティＡ’を示すための初期情報Ｄ’０＝Ｓｎ＋１となる（Ｓ９１０）。これは電磁的記録Ｄ０が電磁的記録Ｄｋを生成するエンティティＡを示すための初期情報として用いられるのと同じである。エンティティＡ’に対する電磁的記録Ｄ’０の入力によって、初期レコードＲ’０が生成される（Ｓ９１１）。
【００８４】
以上は、エンティティＡ’しか生成できない電子署名Ｓ’−１をエンティティＡへ渡し、電子署名Ｓ’−１とエンティティＡのハッシュチェーンＨＣｎとを関与させて連続性を持たせたハッシュチェーンＨＣｎ＋１からエンティティＡしか生成できない電子署名Ｓｎ＋１を生成し、さらにエンティティＡ’へ渡し、電子署名Ｓｎ＋１を基にエンティティＡ’しか生成できない電子署名Ｓ’０を生成するプロセスである。各値Ｓ’−１、ＨＣｎ、ＨＣｎ＋１、Ｓｎ＋１、Ｓ’０の構造は、該プロセスの存在を示す証拠となる。
【００８５】
各値Ｓ’−１、ＨＣｎ、ＨＣｎ＋１、Ｓｎ＋１、Ｓ’０の構造は、少なくとも電子署名Ｓｎ＋１が生成される直前までは電子署名ＳｎがエンティティＡにおける最新の電子署名であり、電子署名Ｓｎが生成された後から、つまり事後的に過去に遡って、任意のｎ−α番目の電子署名Ｓｎ−αの直後に電磁的記録をＤｎ−α＋１＝Ｓ’−１とするｎ−α＋１番目の電子署名Ｓｎ−α＋１を生成することは不可能であることを示す。したがって、連鎖構造のある電磁的記録のうち未だ第三者による公証を受けていないエンティティＡの証拠記録レコードを抹消し、残された証拠記録レコードのうち最新の証拠記録レコードに続けて、その後エンティティＡ’において生成される証拠記録レコードから新しい連鎖構造を再開するという不正を防止することができる。
【００８６】
さらに、電子署名Ｓｎ＋１の存在は、エンティティＡ’がエンティティＡの動作可能な時点以前において存在していたこと示す。また、電子署名Ｓ’０の存在は、エンティティＡがエンティティＡ’の動作可能な時点以前において存在していたことを示す。したがって、電子署名Ｓｎ＋１及びＳ’０の存在は、エンティティＡ及びＡ’の双方が同時に動作可能な重複する時期があり得たことを示す。そして電子署名Ｓ’−１をエンティティＡに入力し、該入力に基づく出力結果の一つである電子署名Ｓｎ＋１をエンティティＡ’に入力して電子署名Ｓ’０を出力するということは、すなわち、エンティティＡ及びＡ’の操作を実行し得る者が同一者であるか又は同一者でない場合は、それぞれを操作し得る者が互いに連携していたことを意味する。異なる２つのエンティティＡとＡ’との連携した操作が存在したことを一連の電子署名Ｓ’−１、Ｓｎ＋１、Ｓ’０が示している。
【００８７】
図９は、図８の証拠記録レコードの連鎖を承継するデータ構造の例を実現するための手順の例を示すフローチャートである。図８と同様に、エンティティＡとは更改前の該情報処理装置であり、図８の証拠記録レコードＲｋを出力する主体を表す。エンティティＡ’とは更改後の該情報処理装置であり、図８の証拠記録レコードＲ’ｋを出力する主体を表す。ここで、エンティティＡとＡ’は、少なくともハードウェアが異なるものとし、かつ同一のネットワークに接続され、互いに通信可能であるとする。
【００８８】
図９のステップＳ９０１は、本実施例の該情報処理装置であるエンティティＡが電磁的記録Ｄｎを以って、証拠を必要とする最後の業務運用を終えた状態である。次に、ユーザは、エンティティＡがエンティティＡ’と必要な情報Ｓ’−１及びＳｎ＋１の送受を行うため、業務承継プログラムを起動する（Ｓ９０２）。該プログラムは、割込み制御処理１０２０を経てＩ／Ｏ処理１０２３を起動し、入力待ち状態で待機する。
【００８９】
図９のステップＳ６Ａ１４は、本実施例の該情報処理装置であるエンティティＡ’が運用開始のための準備を終えた状態を表している。次に、ユーザは、エンティティＡ’にＤ’０を入力して電子署名Ｓ’−１を生成し、エンティティＡと必要な情報Ｓ’−１及びＳｎ＋１の送受を行ってＲ’０を生成するため業務承継プログラムを起動する（Ｓ９０３）。
【００９０】
次に、ユーザは、予め定めた電磁的記録Ｄ’−１を該プログラムから入力する（Ｓ９０４）。該プログラムは、割込み制御処理１０２０からＩ／Ｏ処理１０２３を起動し、電磁的記録Ｄ’−１の入力を受ける。割込み制御処理１０２０は、署名生成・検証処理１Ａ２９を起動して電磁的記録Ｄ’−１を署名生成・検証処理１Ａ２９に渡し、署名生成・検証処理１Ａ２９は、秘密鍵・公開鍵１Ａ３１内の秘密鍵を用いて電子署名Ｓ’−１＝ｃ’（Ｄ’−１）の演算を行う（Ｓ９０５）。電子署名Ｓ’−１は、Ｉ／Ｏ処理１０２３の出力によりネットワークを通じてエンティティＡ’からエンティティＡへと送信される（Ｓ９０６）。このとき割込み制御処理１０２０によって、電子署名Ｓ’−１は復号化されるものとする。
【００９１】
エンティティＡ’とネットワークで接続されたエンティティＡは、ネットワークインターフェースからのＩ／Ｏ割込みを受けて、Ｉ／Ｏ処理１０２３により電子署名Ｓ’−１を受信する。電子署名Ｓ’−１を受信したＩ／Ｏ処理１０２３は、運用領域ＯにＳ’−１を書込む。電子署名Ｓ’−１は、エンティティＡのｎ＋１番目の電磁的記録Ｄｎ＋１＝Ｓ’−１としてエンティティＡに入力されたことになる（Ｓ９０７）。この時、割込みが発生し、割込みハンドラ１０００による図７Ａの割込みルーチンが実行されて、保護領域Ｐに電子署名Ｓｎ＋１が生成される（Ｓ９０８）。すると、該割込みルーチンが割込む前にＣＰＵが実行していた業務承継プログラムに復帰する。割込みから復帰した業務承継プログラムは、電子署名Ｓｎ＋１をＩ／Ｏ処理１０２３の出力により、ネットワークを通じてエンティティＡからエンティティＡ’へと送信し（Ｓ９０９）、該プログラムを終了する（Ｓ９１３）。なお、ステップＳ９０９の送信時には、割込み制御処理１０２０によって、電子署名Ｓｎ＋１は復号化されるものとする。
【００９２】
エンティティＡとネットワークで接続されたエンティティＡ’は、ネットワークインターフェースからのＩ／Ｏ割込みを受けて、Ｉ／Ｏ処理１０２３により電子署名Ｓｎ＋１を受信する。電子署名Ｓｎ＋１を受信したＩ／Ｏ処理１０２３は、運用領域Ｏ’にＳｎ＋１を書込む。電子署名Ｓｎ＋１は、エンティティＡ’の初期データＤ’０＝Ｓｎ＋１としてエンティティＡに入力されたことになる（Ｓ９１０）。この時、割込みが発生し、割込みハンドラ１０００による図７Ａの割込みルーチンが実行されて保護領域Ｐ’に電子署名Ｓｎ＋１を含む初期レコードＲ’０が生成され（Ｓ９１１）、該プログラムを終了する。
【００９３】
以上により、本実施例１の図１Ａの該情報処理装置を更改しながら運用を継続する場合に、図８の証拠記録レコードの連鎖を承継するデータ構造の例を実現するための手順が完了する。
【実施例２】
【００９４】
本発明の実施例２は、本発明の実施例１と機能は同じであるが、該機能を実現する構成に違いがある。実施例１と実施例２との異同を明らかにするため、実施例の説明に使用する図の対比を行う。下表に示すとおり、実施例１と実施例２において使用する図面の違いは図１Ａと図１Ｂのみであり、他はすべて同じ図面を使用する。
【表１】
2008077179.tif 000003
【００９５】
したがって、以下の説明は図１Ｂについてのみ行うこととする。
【００９６】
図１Ｂは、本発明の第２の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成を示す略ブロック図である。図１Ａと同一の参照符号を付したものは同じ要素を示し、既に本発明の第１の実施形態を示す実施例１によって説明済みであることから、本実施例２では説明を省略する。ここでは図１Ａに含まれていない構成要素を中心に実施例１との違いを詳細に説明する。
【００９７】
図１Ｂと図１Ａとの最大の違いは、図１Ｂの情報処理装置がトラステッドプラットフォームモジュール（Ｔｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ）１Ｂ０１を具備し、割込みハンドラ１０００内のサブルーチンを構成する処理が少ないことである。
【００９８】
ＴＰＭ１Ｂ０１は、集積回路に物理的及び論理的な攻撃に対して耐タンパ性を持たせた、いわゆるセキュリティチップの一種であり、バス１００４に接続される。ＴＰＭ１Ｂ０１は、タイマ部１Ｂ２５、ハッシュ演算部１Ｂ２６、値格納部１Ｂ２７、暗号演算部１Ｂ２８、鍵格納部１Ｂ３０を構成要素に含む。ＴＰＭ１Ｂ０１は、Ｉ／Ｏ装置の一種としてＩ／０処理１０２３によりアクセスすることができる。
【００９９】
図１Ｂの割込みハンドラ１Ｂ００には、図１Ａの割込みハンドラ１０００にある次の要素を欠く。すなわち、ハッシュ演算処理１Ａ２６、署名生成・検証処理１Ａ２９、鍵保護処理１Ａ３０、秘密鍵・公開鍵１Ａ３１である。
【０１００】
タイマ部１Ｂ２５は、時間間隔を計測し、計測された経過時間に対して電子署名を生成し出力する。タイマ部１Ｂ２５は、図１Ａにおけるタイマ１Ａ２５に相当する機能を果す。したがって、図１Ｂでは、タイマ１Ａ２５は使用されないため、記載を省略しているが、該情報処理装置内にタイマ１Ａ２５が実装されてはならないことを意味するものではない。
【０１０１】
ハッシュ演算部１Ｂ２６は、ハッシュアルゴリズムを格納し、外部から入力されたデータに対して、ハッシュ演算部１Ｂ２６の内部でハッシュ演算を行い、演算結果であるハッシュ値を外部に出力する。ハッシュアルゴリズムは、ＴＰＭ１Ｂ０１の工場出荷後は変更できない。ハッシュ演算部１Ｂ２６は、図１Ａにおけるハッシュ演算処理１Ａ２６に相当する機能を果す。
【０１０２】
値格納部１Ｂ２７は、工場出荷時に格納される値を保持するレジスタである。該情報処理装置に固有の情報（機体番号、ＢＩＯＳ、ブートローダ、拡張ＲＯＭデータなど）のハッシュ値を値格納部１Ｂ２７に保存することができ、ＴＰＭ１Ｂ０１の工場出荷後は該ハッシュ値を変更できない。なお、図１Ａには、値格納部１Ｂ２７に該当する要素はない。値格納部１Ｂ２７に保存された該情報処理装置に固有の情報は、図２及び図８の電磁的記録Ｄ０、図８の電磁的記録Ｄ’−１として使用する。値格納部１Ｂ２７は、電磁的記録Ｄ０、Ｄ’−１を記憶し、出力する機能を提供する。
【０１０３】
暗号演算部１Ｂ２９は、暗号アルゴリズムを格納し、外部から入力されたデータに対して、暗号演算部１Ｂ２９の内部で暗号演算を行い、演算結果である暗号化データ又は復号化データを外部に出力する。暗号アルゴリズムは、ＴＰＭ１Ｂ０１の工場出荷後は変更できない。暗号演算部１Ｂ２９は、図１Ａにおける署名生成・検証処理１Ａ２９に相当する機能を果す。
【０１０４】
鍵格納部１Ｂ３０は、工場出荷時に格納される暗号化鍵のペアを保持するレジスタである。ＴＰＭ１Ｂ０１の工場出荷後は該鍵ペアを変更することはできない。鍵格納部１Ｂ３０は、図１Ａにおける秘密鍵・公開鍵１Ａ３１に該当する機能を果す。
【実施例３】
【０１０５】
本発明の実施例３は、本発明の実施例１と課題を解決するための根本的な思想は同じであるが、該根本思想を実現するための具体的手段と構成に違いがある。実施例１と実施例３との異同を明らかにするため、実施例の説明に使用する図の対比を行う。下表に示すとおり、実施例１と実施例３において使用する図面の違いは、装置構成を示す図１Ａと図１Ｃ、割込み手順を示す図５、開始手順を示す図６Ａと図６Ｂ、処理フローを示す図７Ａと図７Ｂであり、他はすべて同じ図面を使用する。
【表２】
2008077179.tif 000004
【０１０６】
したがって、以下の説明は図１Ｃ、図６Ｂ、図７Ｂについてのみ行うこととする。
【０１０７】
図１Ｃは、本発明の第３の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成を示す略ブロック図である。図１Ａと同一の参照符号を付したものは同じ要素を示し、既に本発明の第１の実施形態を示す実施例１によって説明済みであることから、本実施例３では説明を省略する。ここでは図１Ａに含まれていない構成要素を中心に実施例１との違いを詳細に説明する。
【０１０８】
図１Ｃと図１Ａとの最大の違いは、図１Ｃの情報処理装置がバスブリッジ１Ｃ００を具備し、割込みハンドラ１０００を必要としないことである。図１Ｃの主記憶装置１００２には、ページテーブル１００３、電磁的記録１０１１、アプリケーションソフトウェア１０１２、オペレーティングシステム１０１３、デバイスドライバ１０１４の記載がないが、このことは、これらの構成要素が主記憶装置１００２上に保持されてはならないということを意味するものではない。
【０１０９】
一方、図１Ｃには、図１Ａにはないバス構成を持つ。すなわち、図１Ｃのバスは、システムバス１Ｃ０３とＩ／Ｏバス１Ｃ０４の少なくとも２種類以上、かつ２本以上のバスにより構成され、バスブリッジ１Ｃ００により該複数のバスが相互に接続される。
【０１１０】
バスブリッジ１Ｃ００は、システムバス１Ｃ３１とＩ／Ｏバス１Ｃ０４との間の橋渡しを行って、該２種のバスが持つアドレス線、データ線、制御線の３種の信号線を相互に接続する。発信元アドレスとあて先アドレスが同一バス上にある場合、バスブリッジは、該信号を他方のバスには伝えない。ＣＰＵと主記憶装置間は高速な同期バス、Ｉ／Ｏ装置間はＰＣＩバスや標準バスとし、両バスをバスブリッジで繋ぐことにより、システム全体の高速性を実現するシステムもある。
【０１１１】
本実施例３におけるバスブリッジ１Ｃ００は、上述の高速性の効果を狙ったものではなく、ＣＰＵ１００１からＩ／Ｏ装置１００５、１００６、１００７のいずれかに対する電磁的記録Ｄｎの書込み信号が該Ｉ／Ｏ装置に伝達される前に、証拠記録レコードＲｎを生成し、及び電磁的記録Ｄｎの書込み命令の前に証拠記録レコードＲｎの書込み命令を目的のＩ／０装置に発信することを目的とする。実施例１の割込みハンドラ１０００がＣＰＵの演算処理の過程に割込むのに対して、本実施例３のバスブリッジ１Ｃ００は、バス信号の伝送過程に割込む点に大きな相違がある。したがって、本発明の実施例１において必要とされた図５、すなわち該情報処理装置が割込みハンドラを起動するための割込み設定手順及び割込み手順の例を示すフローチャートは、本実施例３においては必要がない。
【０１１２】
バスブリッジ１Ｃ００によって実現される機能は、大きく次の３点である。
（１）システムバス１Ｃ０３とＩ／Ｏバス１Ｃ０４との間の信号の伝送
（２）電磁的記録の検出、証拠記録レコードの生成、Ｉ／Ｏ装置に対する電磁的記録及び証拠記録レコードの書込みの制御
（３）ユーザ操作によるバスブリッジ１Ｃ００への各種設定及び電子署名の生成と検証
【０１１３】
図１Ｃ内の実線を用いた矢印は、システムバス１Ｃ０３とバスブリッジ１Ｃ００との間及びＩ／Ｏバス１Ｃ０４とバスブリッジ１Ｃ００との間に伝わるアドレス、データ、制御並びにバスブリッジ１Ｃ００の内部に保持又は内部から生成されるデータの流れを表す。同図内の長短破線を用いた矢印は、ＣＰＵからバスブリッジ１Ｃ００に対して発行される命令とそれに対する応答、及びデータの流れを表す。同図内の短破線を用いた矢印は、バスブリッジ１Ｃ００内部の制御及び応答の流れを表す。
【０１１４】
バスブリッジ１Ｃ００は、Ｉ／Ｏインターフェース部１４１１、タイマ部１４１２、ハッシュ演算部１４１３、排他的論理和（ＸＯＲ）演算部１４１４、値格納部１４１５、鍵格納部１４１６、署名生成・検証部１４１７、書込みバッファ部１４１８、制御部１４１９、アドレステーブル格納部１４２０を構成要素とする。
【０１１５】
制御部１４１９は、バスブリッジ１Ｃ００内部の全ての構成要素の動作状態を監視し制御を行う。加えて、ユーザがバスブリッジ１Ｃ００への各種設定及び電子署名の生成と検証を行うため、Ｉ／Ｏインタフェース１４１１を通じてＣＰＵ１００１からバスブリッジ１Ｃ００に対する命令を受付け、応答を行い、命令に応じてハッシュ演算部１４１３、鍵格納部１４１６、署名生成・検証部１４１７、アドレステーブル格納部１４２０に対するデータの送受と制御を行う。
【０１１６】
Ｉ／Ｏインタフェース部１４１１は、ＣＰＵ１００１からＩ／Ｏ装置１００５、１００６、１００７のいずれかに対する命令を書込むコマンドレジスタと、ＣＰＵ１００１からＩ／Ｏ装置１００５、１００６、１００７のいずれかを指定するアドレスを書込むアドレスレジスタと、書込み読出し対象となるデータを書込むデータレジスタと、ＣＰＵ１００１にバスブリッジ１Ｃ００及びＩ／Ｏ装置１００５、１００６、１００７の入出力の状態などを通知する状態情報を書込むステータスレジスタとを具備する。Ｉ／Ｏインタフェース部は、コマンドレジスタからＣＰＵ１００１からの書込み命令を検出し、アドレスレジスタから該書込み命令に係る物理アドレスとアドレステーブル格納部１４２０に格納された物理アドレスとを比較し、判定し、判定結果に応じた動作を行う。
【０１１７】
該判定結果に応じた動作とは、前述のバスブリッジ１Ｃ００の３つの機能に適うものである。Ｉ／Ｏインタフェース部１４１１は、判定結果から機能（１）を実現するため、システムバス１Ｃ０３とＩ／Ｏバス１Ｃ０４との間の各種信号を透過的に転送し、機能（２）を実現するため、該判定結果を制御部１４１９に通知し、データレジスタからバスブリッジ１Ｃ００内部の他の構成要素に対してデータを送信し、ステータスレジスタから特定の書込み命令を実行したＩ／Ｏ装置の実行結果の通知を制御部１４１９に通知し、機能（３）を実現するため、バスブリッジ１Ｃ００に固有のＩ／Ｏアドレスを与え、ＣＰＵ１００１と制御部１４１９との間の命令と応答の交換を行う。
【０１１８】
タイマ部１４１２は、クロックの発振器とカウンタと独立した電池とを具備した、バスブリッジ１Ｃ００内部のいわゆるリアルタイムクロック（ＲＴＣ）である。若しくは時間間隔を計測し、計測された経過時間に対して電子署名を生成し出力するティツクカウンタであっても良い。タイマ部１４１１は、制御部１４１９の問合せに対して時刻又は時間情報を書込みバッファ部１４１８及びハッシュ演算部１４１２に出力する。図１Ｃでは、タイマ１Ａ２５は使用されないため記載を省略しているが、該情報処理装置内にタイマ１Ａ２５が実装されてはならないことを意味するものではない。
【０１１９】
ハッシュ演算部１４１３は、ハッシュ演算アルゴリズムを持ち、ハッシュ演算を行う。該ハッシュ演算アルゴリズムは、危殆化を考慮して、制御部１４１９を通じたユーザ操作により随時変更することができる。ハッシュ演算部１４１３は、Ｉ／Ｏインタフェース部１４１１から受信した電磁的記録とタイマ部１４１２から受信したタイマ値と排他的論理和（ＸＯＲ）演算部１４１４から受信した演算結果とを対象としてハッシュ演算を行う。ハッシュ演算処理の結果は、書込みバッファ部１４１８と排他的論理和（ＸＯＲ）演算部１４１４と署名生成・検証部１４１７に送信される。また、制御部１４１９を通じてユーザが入力した任意の電磁的記録に対して、ハッシュ演算部１４１３は、ハッシュ演算を行い、演算結果を制御部１４１９に返す。
【０１２０】
排他的論理和（ＸＯＲ）演算部１４１４は、ハッシュ演算部１４１３の演算結果と値格納部１４１５に格納された値との排他的論理和（ＸＯＲ）演算を行う。排他的論理和（ＸＯＲ）演算の結果は、ハッシュ演算部１４１３に返される。
【０１２１】
署名生成・検証部１４１７は、公開鍵暗号方式による暗号化アルゴリズムを持ち、暗号化演算を行うことによって、電子署名を生成し又は検証を行う。該暗号化アルゴリズムは、危殆化を考慮して、制御部１４１９を通じたユーザ操作により随時変更することができる。署名生成・検証部１４１７は、ハッシュ演算部１４１３から渡されたハッシュ演算結果から電子署名を生成し、該電子署名は、書込みバッファ部１４１８に送信される。該公開鍵暗号方式に用いられる秘密鍵と公開鍵は、鍵格納部１４１６に格納され、署名生成・検証部１４１７は、署名の生成と検証の都度、鍵格納部１４１６にアクセスして秘密鍵又は公開鍵を取得する。制御部１４１９を通じたユーザ操作によって、署名生成・検証部１４１７は、ユーザが入力した任意の電磁的記録に対して電子署名を生成し、及びユーザが入力したハッシュ値及び電子署名に対しては署名を復号化し、該ハッシュ値との一致を検証することができる。
【０１２２】
鍵格納部１４１６は、集積回路に物理的及び論理的な攻撃に対して耐タンパ性を持たせたセキュリティチップの一種である。鍵格納部１４１６は、署名生成・検証部１４１７及び制御部１４１９による所定の方法によってしかアクセスを受付けない。鍵格納部１４１６が格納するのは、公開鍵暗号方式の秘密鍵及び公開鍵であり、秘密鍵と公開鍵のペアは、鍵管理の安全性を考慮して、制御部１４１９を通じたユーザ操作により随時変更することができる。
【０１２３】
書込みバッファ部１４１８は、制御部１４１９からＩ／Ｏ装置１００５、１００６、１００７のいずれかに対する命令を書込むコマンドレジスタと、制御部１４１９からＩ／Ｏ装置１００５、１００６、１００７のいずれかを指定するアドレスを書込むアドレスレジスタと、書込み対象となる電磁的記録及び証拠記録レコードを書込むデータレジスタとを具備する。書込み対象となる電磁的記録及び証拠記録レコードは、Ｉ／Ｏインタフェース部１４１１から受信した電磁的記録と、タイマ部１４１２から受信したタイマ値と、ハッシュ演算部１４１３から受信した演算結果と、署名生成・検証部１４１７から受信した電子署名とにより構成される。書込みバッファ部１４１８に書込まれた電磁的記録及び証拠記録レコードは、制御部１４１９が発行する命令によって、それぞれ所定のアドレスが指定され、Ｉ／Ｏ装置１００５、１００６、１００７のいずれかに対する書込み命令を構成してＩ／Ｏバス１Ｃ０４に転送される。また、制御部１４１９の制御によって、書込みバッファ部１４１８に書込まれたハッシュ演算部１４１３の演算結果の一部は、値格納部１４１５に送信される。
【０１２４】
値格納部１４１５は、集積回路に物理的及び論理的な攻撃に対して耐タンパ性を持たせたセキュリティチシプの一種である。値格納部１４１５は、書込みバッファ部１４１８及び制御部１４１９による所定の方法によってしかアクセスを受付けない。値格納部１４１５が格納するのは、書込みバッファ部に書込まれたハッシュ演算部１４１３の演算結果の一部である。値格納部１４１５に格納される値は、制御部１４１９による所定の方法以外によっては変更することができず、該値の出力先は、排他的論理和（ＸＯＲ）演算部１４１４に限られている。
【０１２５】
アドレステーブル格納部１４２０は、指定領域Ｏ、Ｐそれぞれの物理アドレス及び運用領域Ｏと保護領域Ｐとの対応関係を示すアドレステーブルを記憶するレジスタである。アドレステーブルは、制御部１４１９を通じたＩ／Ｏインタフェース部１４１１によって読出される他、制御部１４１９を通じたユーザ操作によって書込まれ、読出される。
【０１２６】
図６Ｂは、本発明の実施例３における該情報処理装置の指定領域Ｏ、Ｐを指定して運用を開始するまでの手順を示すフローチャートである。ユーザは、該情報処理装置の運用領域Ｏ及び保護領域Ｐの指定入力を行うためのプログラムを起動することにより、該手順を開始する。該プログラムは、ＣＰＵ１００１よりＩ／Ｏインタフェース部１４１１固有のＩ／０アドレスを指定し、Ｉ／Ｏインタフェース部１４１１を通して制御部１４１９にアクセスする。
【０１２７】
制御部１４１９にアクセスしたユーザは、該プログラムにより、対となる運用領域Ｏと保護領域Ｐの指定入力を行う（Ｓ６Ｂ０１）。これを受けた制御部１４１９は、ユーザの指定先Ｏ及びＰとアドレステーブル格納部１４２０内のアドレステーブルにある領域とを比較することにより、判定（Ｓ６Ｂ０３、Ｓ６Ｂ０４）を行う。該指定先Ｏが既に保護領域Ｐとして指定済みの場合、その旨エラー表示（Ｓ６Ｂ０２）が返され、ステップＳ６Ｂ０１に戻る。次に、該指定先Ｏが保存領域Ｐとして未指定の場合、該指定先Ｐの判定（Ｓ６Ｂ０４）に移る。該指定先Ｐが既に運用領域Ｏとして指定済みの場合、その旨エラー表示（Ｓ６Ｂ０２）が返され、ステップＳ６Ｂ０１に戻る。該指定先Ｐが運用領域Ｏとして未指定の場合、ステップＳ６Ｂ０５に移る。ステップＳ６Ｂ０５では、制御部１４１９は、ユーザが指定したＯ及びＰの対をそれぞれ運用領域Ｏ、保護領域Ｐとしてアドレステーブルに登録する。以上、ステップＳ６Ｂ０１乃至Ｓ６Ｂ０５は、ユーザが指定領域Ｏ、Ｐの指定入力を行うためのプログラムによる一連の流れである。
【０１２８】
次に、ユーザは、証拠能力及び／又は証拠価値を高める必要のある電磁的記録Ｄｎを生成するアプリケーションソフトウェア又はＯＳを選択して起動する（Ｓ６Ｂ０６）。続いて、選択されたアプリケーションソフトウェア又はＯＳの生成する電磁的記録Ｄｎの出力先を運用領域Ｏに設定する（Ｓ６Ｂ０７）。以上、ステップＳ６Ｂ０６乃至Ｓ６Ｂ０７において、ユーザは、電磁的記録の生成履歴を残すべきアプリケーションソフトウェア又はＯＳを決定し、その出力先をＯに設定するだけで、出力された電磁的記録は、全て証拠として生成履歴が残されることになる。
【０１２９】
図７Ｂは、本実施例３の図１Ｃの該情報処理装置の電磁的記録及び証拠記録レコードをＩ／Ｏ装置に書込む処理の流れの例を示すフローチャートである。図６Ｂの手順を終え、運用開始準備が整っていることを前提として以下、詳述する。
【０１３０】
図７Ｂの手順は、ＣＰＵ１００１から何らかの命令がシステムバス１Ｃ０３に発行された時点から開始される。システムバス１Ｃ０３とＩ／Ｏインタフェース部１４１１で接続するバスブリッジ１Ｃ００は、システムバス１Ｃ０３から該命令を受信する（Ｓ７Ｂ０１）。受信した命令と該命令に係るアドレス及びデータは、それぞれＩ／Ｏインタフェース部１４１１内部のコマンドレジスタ、アドレスレジスタ、データレジスタに書込まれる。
【０１３１】
Ｉ／Ｏインタフェース部１４１１は、コマンドレジスタ内に書込まれた命令を読取って、該命令が書込み命令であるか否かを判定する（Ｓ７Ｂ０２）。ステップＳ７Ｂ０２の判定結果がＮｏの場合、コマンドレジスタ、アドレスレジスタ、データレジスタ内の情報は、それぞれ透過的にＩ／Ｏバス１Ｃ０４へ転送される（Ｓ７Ｂ１４）。書込み命令でない場合には電磁的記録Ｄｎが記憶媒体に出力されないからである。該判定結果がＹｅｓの場合、次の判定ステップＳ７Ｂ０３に移行する。
【０１３２】
ステップＳ７Ｂ０３は、Ｉ／Ｏインタフェース部１４１１のアドレスレジスタ内に書込まれた物理アドレスを読取り、該アドレスがアドレステーブル格納部１４２０に登録されたアドレステーブルの運用領域Ｏ内のアドレスであるか否かを判定する（Ｓ７Ｂ０３）。
【０１３３】
ステップＳ７Ｂ０３の判定結果がＮｏの場合、該アドレスが保護領域Ｐであるか否かを判定する（Ｓ７Ｂ１３）。ステップＳ７Ｂ１３の判定結果がＮｏの場合、該アドレスは非指定領域内のアドレスであることから、コマンドレジスタ、アドレスレジスタ、データレジスタ内の情報は、それぞれ透過的にＩ／Ｏバス１Ｃ０４へ転送される（Ｓ７Ｂ１４）。ステップＳ７Ｂ１３の判定結果がＹｅｓの場合、ステップＳ７Ｂ１５へ移行し、エラー処理を行う。該エラー処理によって、Ｉ／Ｏインタフェース部１４１１のコマンドレジスタ、アドレスレジスタ、データレジスタ内の情報は破棄され、保護領域Ｐへの書込みが禁止である旨の通知がＣＰＵ１００１に返される。
【０１３４】
ステップＳ７Ｂ０３の判定結果がＹｅｓの場合、Ｉ／Ｏインタフェース部１４１１のデータレジスタ内のデータは、電磁的記録Ｄｎであると判定され、Ｉ／Ｏインタフェース部１４１１は、制御部１４１９に対し該判定結果を通知する。該通知を受けた制御部１４１９は、電磁的記録及び証拠記録レコードをそれぞれの物理アドレスのＩ／Ｏ装置に対して書込むため、書込みバッファ部１４１８、タイマ部１４１２、ハッシュ演算部１４１３、排他的論理和（ＸＯＲ）演算部１４１４、値格納部１４１５、鍵格納部１４１６、署名生成・検証部１４１７の制御を開始する。
【０１３５】
Ｉ／Ｏインタフェース部１４１１において識別された電磁的記録Ｄｎは、書込みバッファ部１４１８とハッシュ演算部１４１３に送信される。書込みバッファ部１４１８は、制御部１４１９の制御を受けて、電磁的記録Ｄｎを保存する（Ｓ７Ｂ０８）。
【０１３６】
制御部１４１９からタイマ値の出力要求を受けたタイマ部１４１２は、タイマ値Ｔｎを算出（Ｓ７ＢＯ４）し、タイマ値Ｔｎは、書込みバッファ部１４１８とハッシュ演算部１４１３に送信される。書込みバッファ部１４１８は、制御部１４１９の制御を受けて、タイマ値Ｔｎを保存する（Ｓ７Ｂ０８）。
【０１３７】
制御部１４１９からハッシュ演算実行の要求を受けたハッシュ演算部１４１３は、Ｉ／Ｏインタフェース部１４１１から受信した電磁的記録Ｄｎとタイマ部１４１２から受信したタイマ値Ｔｎとを連結し、値Ｄｎ｜Ｔｎのハッシュ関数ｈ（Ｄｎ｜Ｔｎ）からハッシュ値Ｈｎを演算する（Ｓ７Ｂ０５）。ハッシュ値Ｈｎは、書込みバッファ部１４１８と排他的論理和（ＸＯＲ）演算部１４１４に送信される。書込みバッファ部１４１８は、制御部１４１９の制御を受けて、ハッシュ値Ｈｎを保存する（Ｓ７Ｂ０８）。また、このとき制御部１４１９は、値格納部１４１５に対して、格納値ＨＣｎ−１を排他的論理和（ＸＯＲ）演算部１４１４に送信させる。
【０１３８】
制御部１４１９から排他的論理和（ＸＯＲ）演算実行の要求を受けた排他的論理和（ＸＯＲ）演算部１４１４は、ハッシュ演算部１４１３から受信したハッシュ値Ｈｎと値格納部１４１５から受信した格納値ＨＣｎ−１の排他的論理和を演算する。排他的論理和の演算結果ＨＣｎ−１(+)Ｈｎを受信したハッシュ演算部１４１３は、ハッシュ関数ｈ（ＨＣｎ−１(+)Ｈｎ）の演算を行う（Ｓ７Ｂ０６）。ハッシュ関数ｈ（ＨＣｎ−１(+)Ｈｎ）の演算結果であるハッシュチェーン値ＨＣｎは、書込みバッファ部１４１８と署名生成・検証部に送信される。書込みバッファ部１４１８は、制御部１４１９の制御を受けて、ハッシュチェーン値ＨＣｎを保存する（Ｓ７Ｂ０８）。
【０１３９】
制御部１４１８から暗号演算実行の要求を受けた署名生成・検証部１４１７は、鍵格納部１４１６にアクセスして得た秘密鍵を用いて、ハッシュ演算部１４１３から受信したハッシュチェーン値ＨＣｎに対して、暗号演算、すなわち電子署名演算ｃ（ＨＣｎ）を行う（Ｓ７Ｂ０７）。電子署名演算ｃ（ＨＣｎ）の結果である電子署名Ｓｎは、書込みバッファ部１４１８に送信される。書込みバッファ部１４１８は、制御部１４１９の制御を受けて、電子署名Ｓｎを保存する（Ｓ７Ｂ０８）。
【０１４０】
書込みバッファ部１４１８に電磁的記録Ｄｎと証拠記録レコードＲｎ＝｛Ｄｎ，Ｔｎ，Ｈｎ，ＨＣｎ，Ｓｎ｝が揃ったことを検知した制御部１４１９は、電磁的記録Ｄｎと証拠記録レコードＲｎの大きさを算出して、指定領域Ｏ、ＰのあるＩ／Ｏ装置の空き領域の有無を判定する（Ｓ７Ｂ０９）。空き領域の有無の判定は、指定領域Ｏの判定結果と保護領域Ｐの判定結果との論理積によって行う。すなわち、指定領域Ｏと保護領域Ｐのいずれか片方でも空き領域が不足する場合には、判定結果をＮｏとする。判定結果がＮｏの場合、エラー処理Ｓ７Ｂ１５に移行する。該エラー処理によって、書込みバッファ部１４１８のコマンドレジスタ、アドレスレジスタ、データレジスタ内の情報（電磁的記録Ｄｎと証拠記録レコードＲｎ）は破棄され、保護領域Ｐへの書込みが禁止である旨の通知がＣＰＵ１００１に返される。
【０１４１】
ステップＳ７Ｂ０９の判定結果がＹｅｓ、すなわち指定領域Ｏ、Ｐの空き領域がある場合、制御部１４１９は、書き込みバッファ部１４１８のコマンドレジスタ、アドレスレジスタ、データレジスタから、証拠記録レコードＲｎを保護領域Ｐへ、電磁的記録Ｄｎを運用領域Ｏへ書込む命令をＩ／Ｏバス１Ｃ０４へ発行する（Ｓ７Ｂ１０）。このとき、電磁的記録Ｄｎの書込み命令は、ユーザ操作に基づく命令であって、書換え、上書き、空き領域への追記、削除、読出しは任意である。一方、証拠記録レコードＲｎの書込み命令は、書換え、上書き及び削除は行わず、空き領域への追記のみが実行される。
【０１４２】
該書込み命令を受けたＩ／Ｏ装置は、Ｒｎ、Ｄｎの順に書込みを実行する（Ｓ７Ｂ１１）。該Ｉ／Ｏ装置の書込み動作の完了又は中断は、該Ｉ／Ｏ装置からＣＰＵに送出された状態情報を受けたＩ／Ｏインタフェース部１４１１から制御部１４１９への通知により検知される。何らかの要因により該Ｉ／Ｏ装置の書込み動作が中断された場合には、中断の要因毎にエラー処理Ｓ７Ｂ１５が実行される。該書込みの完了と中断の判定は、電磁的記録Ｄｎの書込み完了と証拠記録レコードＲｎの書込み完了との論理積によって判定される。すなわち、電磁的記録Ｄｎと証拠記録レコードＲｎのどちらか一方でも書込みを完了しない限り、エラーと判定する。エラー処理Ｓ７Ｂ１５は、エラー状態及び要因をＣＰＵに通知する他、書込み実行Ｓ７Ｂ１１によって途中まで書込まれた電磁的記録Ｄｎ又は証拠記録レコードＲｎがある場合には、これを削除する命令を発行することによって、電磁的記録Ｄｎ及び証拠記録レコードＲｎの同時書込みが成立しない状態を回避することができる。
【０１４３】
ステップＳ７Ｂ１１の書込み実行が完了した場合には、制御部１４１９は、書込みバッファ部１４１８及び値格納部１４１５を制御して、書込みバッファ１４１９のデータレジスタ内のハッシュチェーン値ＨＣｎを値格納部１４１５に送信し、ハッシュチェーン値ＨＣｎを受信した値格納部１４１５は、値格納部に保存されていた格納値ＨＣｎ−１にハッシュチェーン値ＨＣｎを上書きし、保存する（Ｓ７Ｂ１２）。
【０１４４】
以上により、バスブリッジ１Ｃ００による電磁的記録Ｄｎ及び証拠記録レコードＲｎをＩ／０装置に書込む処理は、ＣＰＵ１００１の書込み命令以外の命令に依存することなく開始、終了することが可能となる。
【実施例４】
【０１４５】
本発明の実施例４は、本発明の実施例３と機能は同じであるが該機能を実現する構成に違いがある。実施例１、実施例３及び実施例４との異同を明らかにするため、実施例の説明に使用する図の対比を行う。下表に示すとおり、実施例３と実施例４において使用する図面の違いは、図１Ｃと図１Ｄのみであり、他はすべて同じ図面を使用する。
【表３】
2008077179.tif 000005
【０１４６】
したがって、以下の説明は図１Ｄについてのみ行うこととする。
【０１４７】
図１Ｄは、本発明の第４の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成を示す略ブロック図である。図１Ａ、図１Ｃと同一の参照符号を付したものは同じ要素を示し、既に本発明の第１の実施形態と第３の実施形態を示す実施例３とによって説明済みであることから、本実施例４では説明を省略する。ここでは、図１Ｃに含まれていない構成要素並びに構造を中心に実施例３との違いを詳細に説明する。
【０１４８】
図１Ｄと図１Ｃとの最大の違いは、図１Ｄの情報処理装置は、図１Ｃのバスブリッジ１Ｃ００内部の構成要素をＩ／Ｏ装置１Ｄ００内部に具備し、Ｉ／Ｏ装置１Ｄ００の外部に複数のバスとバスブリッジを必須とはしないことである。
【０１４９】
本実施例４の情報処理装置の構成において、Ｉ／Ｏ装置１Ｄ００は、Ｉ／Ｏ装置の一つであるという点において、他のＩ／Ｏ装置１００５と変わるところはなく、ハードディスクドライブとして機能する。さらに、Ｉ／Ｏ装置１Ｄ００は、該情報処理装置に接続されたストレージシステムとして構成されても良い。
【０１５０】
Ｉ／Ｏバス１Ｄ２１は、Ｉ／Ｏ装置１Ｄ００内部にあって、ＨＤＤＩＤ２２、１Ｄ２３と、Ｉ／Ｏ装置１Ｄ００内部のその他の構成要素とを接続するためのバスである。ＨＤＤ１Ｄ２２、１Ｄ２３は、ハードテイスクドライブ（ＨＤＤ）である。図１Ｄでは、２台のＨＤＤを記載しているが、２台に限定されるものではなく、１台でも３台以上であっても良い。
【０１５１】
ＨＤＤ１Ｄ２２、１Ｄ２３のいずれかは、運用領域Ｏ又は保護領域Ｐとして設定される。この設定は、工場出荷前に実施されても良いし、ユーザの運用管理者又はエンドユーザにより実施されても良い。非指定領域はあっても良いが、Ｉ／Ｏ装置１Ｄ００の他にＩ／Ｏ装置１００５が接続されている場合には、Ｉ／Ｏ装置１Ｄ００の内部に非指定領域を敢えて残す意義と用途は必ずしも多いとはいえない。
【産業上の利用可能性】
【０１５２】
本発明は、上述の実施例１乃至４によって、工業的に量産が可能な情報処理装置、方法、及びプログラムとして、生産及び使用を可能とするものである。したがって、本発明は、主に情報処理産業として実施できる性質を有していることから、産業上利用することができる発明である。
【図面の簡単な説明】
【０１５３】
【図１Ａ】本発明の実施例１の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成例を示す略ブロック図である。
【図１Ｂ】本発明の実施例２の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成例を示す略ブロック図である。
【図１Ｃ】本発明の実施例３の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成例を示す略ブロック図である。
【図１Ｄ】本発明の実施例４の実施形態による電磁的記録の証拠能力及び／又は証拠価値を高める情報処理装置の構成例を示す略ブロック図である。
【図２】本発明の実施例１の図１Ａ、実施例２の図１Ｂ、実施例３の図１Ｃ及び実施例４の図１Ｄの情報処理装置が生成し保管する証拠記録レコードＲのテーブル例を示す図である。
【図３Ａ】本発明の実施例１の図１Ａ、実施例２の図１Ｂ、実施例３の図１Ｃ及び実施例４の図１Ｄの情報処理装置が対象とする電磁的記録の取扱いを定めるための一のＩ／Ｏ装置内における領域指定の例の概念図である。
【図３Ｂ】本発明の実施例１の図１Ａ、実施例２の図１Ｂ、実施例３の図１Ｃ及び実施例４の図１Ｄの情報処理装置が対象とする電磁的記録の取扱いを定めるための複数のＩ／Ｏ装置間における領域指定の例の概念図である。
【図４】図３Ａ及び図３Ｂの運用領域Ｏ及び保護領域Ｐに出力される電磁的記録の属性及び許可される／されない操作ならびに運用領域Ｏ及び保護領域Ｐの関連を示す図である。
【図５】本発明の実施例１の図１Ａ及び実施例２の図１Ｂの情報処理装置が割込みハンドラを起動するための割込み設定手順及び割込み手順の例を示すフローチャートである。
【図６Ａ】本発明の実施例１の図１Ａ、実施例２の図１Ｂの情報処理装置の運用開始までの手順の例を示すフローチャートである。
【図６Ｂ】本発明の実施例３の図１Ｃ、実施例４の図１Ｄの情報処理装置の運用開始までの手順の例を示すフローチャートである。
【図７Ａ】本発明の実施例１の図１Ａ、実施例２の図１Ｂの情報処理装置の電磁的記録及び証拠記録レコードをＩ／Ｏ装置に書込む処理の流れの例を示すフローチャートである。
【図７Ｂ】本発明の実施例３の図１Ｃ、実施例４の図１Ｄの情報処理装置の電磁的記録及び証拠記録レコードをＩ／Ｏ装置に書込む処理の流れの例を示すフローチャートである。
【図８】本発明の実施例１の図１Ａ、実施例２の図１Ｂ、実施例３の図１Ｃ及び実施例４の図１Ｄの情報処理装置を更改しながら運用を継続する場合に、証拠記録レコードの連鎖を承継するデータ構造の例を示す図である。
【図９】図８の証拠記録レコードの連鎖を承継するデータ構造の例を実現するための手順の例を示すフローチャートである。
【符号の説明】
【０１５４】
１０００，１Ｂ００  割込みハンドラ
１Ｂ０１  トラステッドプラットフォームモジュール（ＴＰＭ）
１Ｃ００  バスブリッジ
１Ｄ００  Ｉ／Ｏ装置
１００１  中央演算処理装置（ＣＰＵ）
１００２  主記憶装置
１００３  ページテーブル
１Ｃ０３  システムバス
１Ｃ０４，１Ｄ２１  Ｉ／Ｏバス
１００４  バス
１００５，１００６，１００７  Ｉ／Ｏ装置
１０１１  電磁的記録
１０１２  アプリケーションソフトウェア
１０１３  オペレーティングシステム（ＯＳ）
１０１４  デバイスドライバ
１０２０  割込み制御処理
１０２１  比較・登録処理
１０２２  アドレステーブル
１０２３  Ｉ／Ｏ処理
１０２４  排他的論理和（ＸＯＲ）演算処理
１Ａ２５  タイマ
１Ａ２６  ハッシュ演算処理
１Ａ２７  値保護処理
１Ａ２８  値
１Ａ２９  署名生成・検証処理
１Ａ３０  鍵保護処理
１Ａ３１  秘密鍵・公開鍵
１Ｂ２５  タイマ部
１Ｂ２６  ハッシュ演算部
１Ｂ２７  値格納部
１Ｂ２９  暗号演算部
１Ｂ３０  鍵格納部
１４１１  Ｉ／Ｏインタフェース部
１４１２  タイマ部
１４１３  ハッシュ演算部
１４１４  排他的論理和（ＸＯＲ）演算部
１４１５  値格納部
１４１６  鍵格納部
１４１７  署名生成・検証部
１４１８  書込みバッファ部
１４１９  制御部
１４２０  アドレステーブル格納部
１Ｄ２２，１Ｄ２３  ハードディスクドライブ（ＨＤＤ）
【図１Ａ】
2008077179.tif 000006
【図１Ｂ】
2008077179.tif 000007
【図１Ｃ】
2008077179.tif 000008
【図１Ｄ】
2008077179.tif 000009
【図２】
2008077179.tif 000010
【図３Ａ】
2008077179.tif 000011
【図３Ｂ】
2008077179.tif 000012
【図４】
2008077179.tif 000013
【図５】
2008077179.tif 000014
【図６Ａ】
2008077179.tif 000015
【図６Ｂ】
2008077179.tif 000016
【図７Ａ】
2008077179.tif 000017
【図７Ｂ】
2008077179.tif 000018
【図８】
2008077179.tif 000019
【図９】
2008077179.tif 000020