(57)【要約】【課題】携帯可能なロギング装置と共に処理を記録する装置、方法及びプログラムを提供すること。【解決手段】一実施例では、第１の携帯装置に格納された第１ログ及び第２装置に関連する第２ログを検査し、第１及び第２ログの中の１つ以上のエントリに基づいて、携帯装置が第２装置と通信したことを確認する。【選択図】図１
2008269591.tif 000002
【特許請求の範囲】
【請求項１】
メディアのメディア識別子を携帯装置で計算する手段と、
前記メディア識別子を用いてローリングチェックサムを生成する手段と、
前記ローリングチェックサムを第２装置に送信する手段と、
を有する装置。
【請求項２】
前記第２装置から前記メディアを受信する手段と、
前記メディアを受信したことに応答して、前記携帯装置が前記第１メディア識別子を生成する手段と、
を更に有し、前記携帯装置が前記ローリングチェックサムを第２装置に送信する手段は、前記ローリングチェックサムが前記第２装置により用意された前記メディアに対応することの指摘を前記第２装置に与える手段を含む請求項１に記載の装置。
【請求項３】
前記ローリングチェックサムを前記携帯装置に提供した後、前記第２装置から第２メディア識別子を受信する手段と、
前記携帯装置が、前記携帯装置により維持されるログの中に前記第２メディア識別子を格納する手段と、
を更に有する請求項２に記載の装置。
【請求項４】
前記第１メディア識別子及び前記第２メディア識別子が、異なるハッシュ関数と共に生成されている請求項３に記載の装置。
【請求項５】
前記メディア識別子は、暗号ハッシュ値で表現される請求項１に記載の装置。
【請求項６】
前記メディア識別子は、ハッシュ関数をメディアの電子形式に適用した結果得られる請求項５に記載の装置。
【請求項７】
前記携帯装置が、前記メディアを前記第２装置に提供する請求項６に記載の装置。
【請求項８】
前記ハッシュ関数が、MD5ハッシュアルゴリズムである請求項６に記載の装置。
【請求項９】
前記メディアが書類であり、前記メディア識別子が書類識別子である請求項１に記載の装置。
【請求項１０】
前記第２装置の機能をアップグレードし、メディア識別子を生成するように、前記携帯装置が前記第２装置に情報を提供する請求項１に記載の装置。
【請求項１１】
メディアのメディア識別子を携帯装置で計算するステップと、
前記メディア識別子を用いてローリングチェックサムを生成するステップと、
前記ローリングチェックサムを第２装置に送信するステップと、
を有する方法。
【請求項１２】
前記第２装置から前記メディアを受信するステップと、
前記メディアを受信したことに応答して、前記携帯装置が前記第１メディア識別子を生成するステップと、
を更に有し、前記携帯装置が前記ローリングチェックサムを第２装置に送信するステップは、前記ローリングチェックサムが前記第２装置により用意された前記メディアに対応することの指摘を前記第２装置に与えるステップを含む請求項１１に記載の方法。
【請求項１３】
前記ローリングチェックサムを前記携帯装置に提供した後、前記第２装置から第２メディア識別子を受信するステップと、
前記携帯装置が、前記携帯装置により維持されるログの中に前記第２メディア識別子を格納するステップと、
を更に有する請求項１２に記載の方法。
【請求項１４】
前記第１メディア識別子及び前記第２メディア識別子が、異なるハッシュ関数と共に生成されている請求項１３に記載の方法。
【請求項１５】
前記メディア識別子は、暗号ハッシュ値で表現される請求項１１に記載の方法。
【請求項１６】
前記メディア識別子は、ハッシュ関数をメディアの電子形式に適用した結果得られる請求項１５に記載の方法。
【請求項１７】
前記携帯装置が、前記メディアを前記第２装置に提供する請求項１６に記載の方法。
【請求項１８】
前記ハッシュ関数が、MD5ハッシュアルゴリズムである請求項６に記載の方法。
【請求項１９】
前記メディアが書類であり、前記メディア識別子が書類識別子である請求項１１に記載の方法。
【請求項２０】
前記第２装置の機能をアップグレードし、メディア識別子を生成するように、前記携帯装置が前記第２装置に情報を提供する請求項１１に記載の方法。
【請求項２１】
請求項１１乃至２０の何れか１項に記載の方法をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にディジタルオブジェクトを配布する技術分野に関連し、特に本発明は書類ログを使って情報を関連付けることに関連する。
【背景技術】
【０００２】
多くの書類管理システムが過去に提案され実現されている。これらの書類管理システムは、書類を格納し且つリクエストと応答の調整を処理するシステムを含む。しかしながら、これらのシステムは組織境界を越えるものではないし、必要な一致を実現するものでもない。
【０００３】
ウェブログ(Web  log)は情報を記録するのに使用されるオンライン書類管理ツールである。ウェブログはクライアントサーバーフレームワークを使って、１つ以上のクライアントロケーションからそのウェブログを主催するサーバにおいて、コンテンツの追加又は取り出しを許可する。１つのサーバが各ウェブログを主催するので、ウェブログは一般に特定のHTTPロケーションに固定される。
【０００４】
Wolff,Gregory  J,et  al.により西暦2004年7月9日に出願された“Synchronizing  distributed  work  through  document  logs”と題する米国出願第10/887,998号(特許文献１)は、書類ログの利用を通じて、分散したワークの同期をとることを開示している。そこに開示されているように、書類のようなディジタルオブジェクトに関連する或るセットにメタデータエントリが付加される。メタデータエントリは、そのメタデータエントリを参照する固有の識別子を使ってアクセスされる。一実施例では、固有の識別子の各々がそのメタデータエントリの内容に基づく。
【特許文献１】米国特許出願公開第20060010095号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の課題は、携帯可能なロギング装置と共に処理を記録する装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００６】
一形態では、第１の携帯可能な装置に格納された第１のログ及び第２の装置に関連する第２のログを検査すること、及び第２の装置と通信する携帯可能な装置が、第１及び第２のログ内の１つ以上のエントリに基づいていることを確認することが行われる。
【発明を実施するための最良の形態】
【０００７】
以下でなされる詳細な説明により及び本発明の様々な実施例の添付図面により、本発明は十分に理解されるであろうが、実施例は本発明を特定の実施例に限定するために使用されるべきでなく、説明及び理解を促すためのものに過ぎない。
【０００８】
携帯可能なロギング装置(携帯ロギング装置)及びそれを利用する方法が開示される。一実施例では、携帯ロギング装置は、メディア識別子を生成し、メディア識別子及びメディアをログに記録し、そのログは、メディアに関連する他の装置(例えば、コピー機、ＭＦＰ、周辺機器、パーソナルコンピュータ(PC)等)との処理(トランザクション)及び／又はやりとりに対応する。一実施例では、携帯ロギング装置はそのような装置に対するアップグレードをもたらすことができる。
【０００９】
以下の説明では、本発明の更なる説明を与えるために多数の詳細が述べられる。しかしながら本発明はそれらの具体的詳細によらず実現されてもよいことは当業者に明らかであろう。また、本発明を曖昧にすることを避けるため、周知の構造や装置は詳細な形式ではなくブロック図形式で示される。
【００１０】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビットを処理するアルゴリズム及び記号表現の観点からなされる。これらのアルゴリズムの説明及び表現は、このデータ処理技術分野の当業者が他の当業者に彼らの仕事内容を最も効率的に伝えるのに使用される手段である。ここで、アルゴリズムは一般に所望の結果に導く首尾一貫した一連のステップと考えられる。そのステップは物理量の物理的処理を必要とするものである。必須ではないが、通常それらの物理量は、格納、転送、結合、比較その他の処理を施すことの可能な電気的な又は磁気的な信号の形態をとる。原則的な一般的な用法の観点から、ビット、値、エレメント、シンボル、キャラクタ、期間、数等としてそれらの信号に言及することが折に触れて便利なことが分かる。
【００１１】
しかしながら、これらの及び類似の用語の全ては、適切な物理量に関連しており且つそれらの量に付された便宜的なラベルにすぎないことに留意を要する。特に断りのない限り、以下の説明から明らかなように、本説明を通じて、「処理」、「演算」、「計算」、「決定」又は「表示」等のような用語を用いる説明は、コンピュータシステム又は同様な電子コンピュータ装置の動作や処理に関連し、その動作や処理は、コンピュータシステムのレジスタ及びメモリの中で物理的な（電子的な）量として表現されるデータを、コンピュータシステムメモリやレジスタその他の情報ストレージ、伝送又は表示装置の中で物理量として同様に表現される他のデータに変換及び処理することが、理解されるであろう。
【００１２】
本発明はここで説明される処理を実行する装置にも関連している。その装置は、必要な目的に応じて特別に構築されてもよいし、コンピュータに格納されているコンピュータプログラムによって選択的にアクティブにされる又は再構成される汎用コンピュータで構築されてもよい。そのようなコンピュータプログラムはコンピュータ読取可能な記憶媒体に格納されてもよく、その記憶媒体は、限定ではないが、フロッピディスク、光ディスク、CD-ROM、磁気光ディスク、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、EPROM、EEPROM、磁気又は光カード等の如何なるタイプのディスクを含んでもよいし、或いは電子的な命令を格納するのに指摘した如何なるタイプの媒体を含んでもよいし、ディスクも媒体もそれぞれコンピュータシステムバスに結合される。
【００１３】
ここで説明されるアルゴリズム及び表示は、特定のコンピュータその他の装置のどれにも固有に関連するものではない。様々な汎用システムがここで教示するものによるプログラムと共に使用されてよく、或いは、必要な方法ステップを実行するように、よりいっそう特化した装置を構築することが便利なことが分かるかもしれない。これら様々なシステムに必要な構造は以下の説明から明らかになるであろう。更に、本発明は特定のプログラミング言語のどれにも依存しない。ここで説明される本発明の教示内容を実現するのに様々なプログラミング言語が使用されてよいことが分かるであろう。
【００１４】
マシン読み取り可能な媒体は、マシン(例えば、コンピュータ)で読み取り可能な形式で情報を記憶又は転送する如何なる手段をも含んでよい。例えば、マシン読み取り可能な媒体は、読み取り専用メモリ(ROM)；ランダムアクセスメモリ(RAM)；磁気ディスク記憶媒体；光記憶媒体；フラッシュメモリ装置；電気、光、音又は他の形式で伝搬する信号(例えば、搬送波、赤外線信号、ディジタル信号等)；等である。
【実施例１】
【００１５】
＜メディア識別子、シーケンシャルログ及びエンタングリング＞
＜物理的及び電子的アイテムのメディア識別子＞
ここで説明される発明の多くは、書類(ドキュメント)、ビデオ、歌、紙の一部又は電子ファイルを識別子で参照できることを要する。このため、書類、ビデオ、歌、紙の一部又は電子ファイルはここではメディアとして言及される。メディアを識別するのに使用される識別子は、メディア識別子と呼ばれ、一実施例では、一連のバイトである。
【００１６】
メディア及びメディア識別子間に本発明で有用な関連付けの特性がいくつかある：Ａ）メディアを有する誰もが同じメディア識別子を確認できることは有用である；Ｂ）同じメディア識別子を有する２つの別個のメディア部分を発見することは誰にとっても困難なことは有用である；Ｃ）メディア識別子はそのメディアの内容については何も明らかにしないことは有用である；及びＤ）メディアに対する如何なる変更も別の識別子をもたらすことは有用である。
【００１７】
メディアの一部に識別子を割り当てる方法は多数存在する。電子ファイルの場合、一実施例では、暗号ハッシュ関数(Cryptographic  hash  function)をファイルのバイトに適用することで識別子が生成される。暗号ハッシュ関数はセキュリティ業界で周知であり、様々な連邦の及び国際的な標準仕様で規格にされているソフトウエアツールキットである。
【００１８】
暗号ハッシュ関数は上記の性質に良く合致するので、識別子を形成するのにたとえ別の技術が使用されていたとしても、一部のメディアの識別子を決定するプロセスを「ハッシュ処理」としばしば言及し、そのメディア識別子を「ハッシュ」としばしば言及する。
【００１９】
ファイルに識別子を割り当てる別の方法もある。例えば、サーバは全てのファイルのコピーを保持し、過去に未使用のストリングを新たなファイル各々にランダムに割り当てる。この方法はＢ，Ｃ及びＤに非常に良く機能するが、誰もがサーバにアクセス可能な場合であって、例えばサービス拒絶でオフラインになる場合でさえサーバを変えることのできない場合にのみ上記のＡの性質に合致する。
【００２０】
ファイルを区別するために暗号ハッシュより簡易な関数を使用することも可能である。例えば、簡易なチェックサムがファイルに使用可能であり、その結果がメディア識別子として使用可能である。これはＡ及びＣの性質を満たすが、Ｂの性質は満たさない。何らかの変更は異なるチェックサムになるが、僅かにそうならない場合もあり、従ってＤの性質は常には満たされない。しかしながら、アプリケーションによってはこれらの性質が重要でないかもしれない。また、２つのメディア部分（何れも同じチェックサムを有し、且つ構造化されたデータの規則に従う）を見つけるのが困難であるように、あるアプリケーションは非常に構造化されたデータを有するかもしれない。
【００２１】
例えば、ある用紙をスキャンし、その結果のスキャンされたファイルの暗号ハッシュを計算することで、一部の紙に識別子を割り当てることができる。しかしながら、スキャン処理中のノイズに起因して、その用紙の別のスキャンがしばしば別の電子ファイルをもたらし、別の識別子をもたらす。この理由のため、バーコード又は他のマシン読み取り可能な識別子(例えば、RFIDタグ)を一部の紙に又は他の部地理装置に取り付けることがしばしば有用である。マシン読み取り可能なIDを利用することは、誰もが同じ識別子を得ることを容易にする；しかしながら、異なるメディアに同じID値を付けることも可能になるので、この場合Ｂの性質は完全には合わない。
【００２２】
一実施例では、マシン読み取り可能なIDの弱点を克服するため、「フィンガープリント処理」形式が物理的なメディアを識別するのに使用される。フィンガープリント処理は或る値を物理装置に関連付けるので、同じフィンガープリント(指紋)を伴う紙の部分又は新たな「フィンガ」を作成することは非常に困難に又は不可能になる。しかしながら多くの場合に「フィンガープリント」は物理メディアに関する何かを露わにしてしまい、フィンガープリントを変えずに物理メディアを僅かに変更できるかもしれない。従ってそのような場合ＣやＤの性質は完全には保たれない。
【００２３】
単独の一部のメディアに関連する複数の識別子が存在してもよい。例えば、SHA1暗号ハッシュ関数をメディアに使用することで形成される識別子や、SHA256又はMD5暗号ハッシュを同じメディアに使用することで形成される識別子があってもよい。一実施例では、鍵の付いたハッシュメッセージ認証コード又はHMACがメディア識別子を計算するのに使用される。HMAC-MD5又はMHAC-SHA1のようなこれらのメッセージ認証コードは、変更可能な鍵を使用するので、B,C,Dの性質に関しては、基礎的な暗号ハッシュ関数(MD5及びSHA1)よりも優れているかもしれない。しかしながら性質Ａはメッセージ認証コードと共に困難になる−なぜなら、同じハッシュを計算するため、それを計算する全ての場所で鍵に対するアクセス権を要するからである。
【００２４】
同じデータの異なるフォーマットに関連する識別子があってもよい。例えば、ファイルのハッシュや、ZIPと共にロスレスに圧縮された同一ファイルのハッシュは、異なる識別子になるが、それらは最終的には同じデータに関連付けられる。
【００２５】
メディアの一部のために形成された識別子があってもよい。例えば、ビデオの場合、異なるフレーム各々について形成された識別子があってもよい。ネットワークでのパケット損失に起因して、同じビデオを見る２人の人々は同じファイルにたどり着けないかもしれないし、従って彼らは同じ識別子を計算できないかもしれない。しかしながら各人はそのビデオのいくつかの同じフレームを受信している。従って、彼らが受信した各フレームのハッシュを彼らが計算した場合、多くの一致するハッシュに起因して、彼らが同じビデオを鑑賞していたことを彼らは確認できる。
【００２６】
同じ例を続けると、同じビデオを鑑賞している２人の人々は、それを異なる解像度で干渉するかもしれない。その場合、２つのフレームは同じハッシュを持たないであろう。しかしながら、例えばJPEG2000パート3のようなスケーラブル法でビデオが格納されていた場合、ビデオの最低解像度の部分は双方の視聴者にとって同じになり、共通するハッシュが確認可能になる。
【００２７】
ビデオがスケーラブルなフォーマットで格納されていなかった場合、一般的にはサーバはビデオの複数のバージョンを異なる解像度で格納する。従ってサーバは全ての解像度の格納しているフレーム全てのハッシュを計算することができ、クライアントに完全に受信されたどのフレームもハッシュ処理可能であり、そのハッシュはビデオを確認するためにサーバ上のものと後に比較される。
【００２８】
ビデオだけでなく、部分的に送信されてよい他のタイプのメディアも存在する。例えば、大きなXML書類の一部が必要とされるかもしれない。このリクエストは例えばXPATHクエリ(問い合わせ語句)によりなされてもよい。クライアントで受信される書類の部分は、サーバで利用可能な書類全体とは異なる。しかしながら、(例えば、XML書類のサブツリーのような)書類の一部について又はXML書類の特定のノードのコンテンツについてでさえハッシュを計算することができる。XML書類の一部分と共にクライアントは、受信したそのサブツリー及びノードのハッシュを計算し、それらはサーバ上の大規模なハッシュリストに適合可能である。
【００２９】
何らかの特定のメディアに関し、関連するデータの一部分がしばしば特定され、これらの一部分は、完全なメディアのハッシュに加えてハッシュ処理可能である。
【００３０】
場合によっては、配布された部分がデータの中で実際に完全には表れないように、データが処理される。例えば、カラーの画像がグレースケールに変換されて配信されてもよいし、或いはスプレッドシート中のエントリの合計が計算されて報告されてもよい。しかしながら、データが２つの場所(例えば、サーバ及びクライアント)に存在する場合、修正されたデータのみが配信される場合でさえ、サーバ及びクライアント双方にとって、修正されたデータのハッシュを記録することが可能であり、受信データ及びそのソース間の関連付けが後に用意されてもよい。
【００３１】
場合によっては「サーバ」は修正されたデータを初めは持っていないかもしれない。例えば、中間的な処理の場合に装置がデータに関する計算を実行する場合である。しかしながら計算のタイプが既知ならば、オリジナルのデータと受信データとを関連付けるようにサーバで後に計算を実行できる。例えば、サーバは高いビットレートのビデオを送信するかもしれないが、ネットワークの輻輳に起因して、途中のルータで品質レイヤを除去することで切り詰めるかもしれない。そしてクライアントはハッシュ処理可能な中程度のビットレートのビデオを受信する。同じハッシュを確認するために、ルータが破棄した品質レイヤなしに、サーバは高ビットレートのビデオについてハッシュ処理を行う。
【００３２】
＜シーケンシャルログ＞
ここで説明される本発明の多くは、イベントシーケンスを読み取ることを含む。イベントの記録は、「ログ」又は「ログ−ファイル」として言及され、船舶や航空機のイベントを記録するログブック(航行日誌)や、コンピュータシステムで行われるアクションを記録するのに使用されるログファイルと同様な関係である。一実施例では、末尾に新たな記録を追加するのは容易であるが、容易に検出される変更を伴わずに、ログの中に既にある記録を変更するのは困難であるという性質を、ログは有する。
【００３３】
従来の「ログブック」又は「ログファイル」とは異なり、一実施例では、記録されているイベントに関する多くの情報をそのログは開示しないことが望ましい。このようにログファイルは非常に多数の人々やシステムに利用可能になるが、その際に、何らかの記録は検査可能であるが、その記録の大部分の内容は秘密のままにするようにできる。
【００３４】
ログのいくつかの可能な実現手段が存在し、それらは追加が容易なこと、変更が困難なこと、情報の部分的な開示等の目的に関して、異なる達成度合いを有する。
【００３５】
ログを実現する概念的に簡易な手段は、不正改ざんできない追記型メモリ(tamper  proof  write  once  memory)である。記録(レコード)の各々はメモリに順番に書き込まれる。これは追加に容易で修正困難な目的には合致するが、「不正改ざんできない」メモリが変更されていないことを遠隔的に確認することは困難である。
【００３６】
ログを実現する１つの方法は、一連のレコードを作成することであり、そのレコードの各々は、以前のレコード中の何らかの情報のハッシュ、及び現在のレコードの内容を含む。例えば、ｉ番目のレコードのメッセージ部分をMiとし、ローリングチェックサム(rolling  checksum)をriとする。ｉ番目のレコードについてのローリングチェックサムは、次のように計算できる：
ri=hash(ri-1．Mi)
この場合に、メッセージ及び以前のチェックサムは連結され(“．”で表現されている)、ハッシュ関数に与えられている。この場合のログは、メッセージ及びチェックサムのシーケンスで構成される(Mi，ri)。一実施例では、そのログへの追加は、最後のチェックサムと現在のメッセージを取り出し、それら２つを連結し、ハッシュを計算することで作成されてもよい。これは図１に示されている。図１を参照するに、新たなメッセージ及びチェックサムのペアを作成するため、メッセージ及びチェックサムのジェネレータ101は、新たなメッセージMi+3及びログ110の中で最後のエントリのチェックサムri+2を受信する。連結モジュール102は以前のチェックサムri+2とメッセージMi+3を連結する。ハッシュモジュール103は上述したようにハッシュ関数を適用し、次のチェックサムri+3を生成する。メッセージMi+3及びチェックサムri+3はログ110に格納される。メッセージ及びチェックサムジェネレータ101は、連結モジュール102及びハッシュユニット103と共に処理ユニット(例えば、マイクロプロセッサ)で構成され、102,103は処理ユニットで実行される命令のソフトウエアモジュールであることに留意を要する。或いは、これらの機能はハードウエアで実現されてもよい。
【００３７】
ログの中のメッセージの1つが修正された場合又はログの中のチェックサムの１つが修正された場合、以後のチェックサムは正しくなくなる。従ってレコードの修正はメッセージ及び以後の全てのチェックサムの修正を要する。チェックサムの１つが複製されてどこかに保存されると、そのチェックサムに先行する如何なる修正も消去可能になる。修正がチェックサムの変更無しになされた場合、ログ中のそのローリングチェックサムのハッシュを再計算するとエラーを表す。ハッシュが全て変更され、ログが自己矛盾しないようになった場合、それらは外部に保存された値とは合わなくなるであろう。
【００３８】
上述したように、ハッシュ関数は簡易なチェックサムでもよいが、好ましくは暗号ハッシュ関数である。
【００３９】
本方法はログの目的にほぼ合致するが、更なる利便性をもたらす変形例もある。
【００４０】
１つの変形例は、メッセージ自身でなくメッセージのハッシュをログに保存することである。従って、miが次のように定義される場合：
mi=hash(Mi)
ログは(mi,ri)の二乗として定義でき、riはメッセージハッシュ及び以前のチェックサムのみのチェックサムである：
ri=hash(ri-1．mi)。
【００４１】
これは図２に示されている。図２を参照するに、新たなメッセージ及びチェックサムのペアを作成するため、メッセージ及びチェックサムジェネレータ201は、新たなメッセージMi+3及びログ210内の最後のエントリのチェックサムri+2を受信する。連結モジュール102は以前のチェックサムri+2とメッセージMi+3を連結する。ハッシュモジュール103は上述したようにハッシュ関数を適用し、次のチェックサムri+3を生成する。ハッシュモジュール203はハッシュ関数をメッセージMi+3に適用し、ハッシュ処理されたメッセージmi+3を生成する。一実施例では、ハッシュモジュール203に適用されるハッシュ関数は、ハッシュモジュール103に適用されたハッシュ関数と同じである；或いは、ハッシュモジュール203に適用されるハッシュ関数は、ハッシュモジュール103に適用されたハッシュ関数と同じでなくてもよい。メッセージmi+3及びチェックサムri+3はログ210に格納される。メッセージ及びチェックサムジェネレータ201は、連結モジュール102、ハッシュユニット103及びハッシュユニット203と共に処理ユニット(例えば、マイクロプロセッサ)で構成され、102,103,203は処理ユニットで実行される命令のソフトウエアモジュールである。或いは、これらの機能はハードウエアで実現されてもよい。
【００４２】
本方法は、ハッシュ関数が固定長を有する場合に(通常的にはこの仮定は正しい)、固定長のレコードを生成するという利点を有する。更に本方法は如何なるメッセージのコンテンツもログに持ち込まない利点を有する。メッセージが何らかの顧客情報であった場合(例えば、名前、住所その他の情報の入った購入依頼であった場合)、メッセージを公表することは好ましくない。しかしながら、ハッシュ関数がそのメッセージに関する情報を明らかにしないのであれば、情報を公表することなく、(mi,ri)のシーケンス全体(即ち、ログ)を公表できる。
【００４３】
場合によっては、メッセージのハッシュ単独よりも多くの情報を伴うログを有することが好ましい。例えば、ログに格納された時間や、公表されたログに格納されたログエントリの情報タイプを有することがしばしば有用である。これは特定のレコードを求めてログをサーチすることを容易にする。読み取り可能なレコードの情報が「プレインテキスト(平文)」(tiと言及する)で規定されていた場合、ログは(ti,mi,ri)のシーケンスで構成され、各々のチェックサムriは次式で計算される。
【００４４】
ri=hash(ri-1．ti．mi)。
この数式は非常に一般的である。なぜなら、tiの部分は更なる構造を含んでもよいし(例えば、日にち、タイプ、ファイル名を常に含んでもよい)、メッセージも構造化されてよいからである。当然に、以前のローリングチェックサム、現在のメッセージ又はメッセージハッシュ及び「平文」情報の順序は、その順序がチェックサムを生成する或いは確認する必要のある全てのアプリケーションに既知である限り、変更可能である。
【００４５】
ログ中の情報への部分的なアクセスをもたらす別の方法は、ログに保存されている情報の一部を暗号化することである。あるログに関する暗号化された情報がEiであり、Eiのハッシュがeiであったとする。一実施例では、Ei又はeiはログに格納可能である。そして、ログエントリは(ti,mi,Ei,ri)で構成され、即ち、平文の部分、メッセージのハッシュ、或る暗号化されたデータ及びログ中の以前のハッシュに関するチェックサムで構成され、それらはメッセージのハッシュと共に連結される。一般に、時間が混ざってもよく、レコードは、いくつかの平文の部分、いくつかの暗号化部分及びいくつかのメッセージのハッシュを含んでもよい。
【００４６】
一実施例では、ログエントリのフォーマットは、データを伴う一群のヘッダ「ライン」及びボディで、例えば次のように表現される。
【００４７】
作者：ゴーミッシュ(gormish)
SHA1：1bff5d8cda307b5f3f3757cb25588a54cfb01ce0
コンテンツ長：５６７
５６７バイトのデータ。
【００４８】
一実施例では、このフォーマットタイプはhttp及び電子メール(email)に使用される。従って、いくつかの周知のヘッダが規定されており、ログで使用可能である。
【００４９】
ログの中の異なる暗号化エントリや異なるタイプの暗号化エントリについて、異なるキー(鍵)が使用されてもよい。例えば、全てのエンタングルメント(entanglement)情報が１つのキーで暗号化され、全ての分類値に異なるキーが付随してもよい。そのログが1つの書類に関連付けられ、その書類が暗号化される場合、ログ中のエントリはその書類に使用されたのと同じキーで暗号化されてもよい。これにより、書類にアクセス権を有する誰でもが、ログ中の情報にアクセスすることを許可される。
【００５０】
一実施例では、異なる複数のローリングハッシュ又は異なるタイプのハッシュをログはサポートし、それらのハッシュは異なる暗号化ハッシュ関数と共に計算されたものである。例えば、一実施例では、値riは次のようになる：
ri=hash(ri-1．ti．mi)。
そして、tiの値は(例えば、MD5、SHA1、SHA256等のような)どのハッシュ関数が使用されていたかを特定する。一実施例では、２つの異なるローリングチェックサムを共なうログエントリは、次のようなエントリを有し：
(ti,mi,ri,si)
ここで、riは次式で計算される：
ri=SHA(ri-1．ti．mi)。
siは次式で計算される：
si=SHA256(si-1．ti．mi)。
これは、唯１種類のハッシュしかサポートしないシステムと共に同じログが使用されることを可能にし、あるハッシュ関数が不具合を生じた場合、他のハッシュ関数が依然として有効であり、双方の組み合わせは不具合に対して強くなる。２つ以上のハッシュ関数を使用するログの他の例は、当業者には明白であろう。
【００５１】
新たなハッシュチェーンをログに遡及的に追加するログエントリが追加可能であることに留意すべきである。ログがメッセージ及びローリングハッシュのペア(Mi,ri)で構成され、ri=SHA(ri-1,Mi)であり、ｉは１乃至Ｎの範囲内にあるとする。新たなメッセージがログに追加可能であり、そのログは、古いメッセージと、異なるハッシュ関数と共に計算された新たなローリングハッシュとを含む。そして、メッセージＮ＋１は新たなハッシュ関数と用いて計算されたローリングチェックサムと共に結合された第１メッセージである。一般に：
MN+1=Mi．si
であり、ここで、
si=SHA256(si-1,Mi)
である。これは、同じものをカバーする新たなハッシュを加えることで、ハッシュ関数に障害のあるログの後の修正を可能にする。ハッシュ関数に障害があり新たな関数が発見される場合、いくつのハッシュ関数がこの形式で遡及的に適用されてもよい。
【００５２】
一実施例では、第２のハッシュ関数はその計算の際に第１のハッシュ関数を利用得する。例えば、
si=SHA256(si-1．ti．mi．ri)。
又は
si=SHA256(ri-1．si．ti．mi)。
でもよい。
【００５３】
＜ログの記憶＞
一実施例では、ログは単独のファイルに順に格納される。この種のログは非常に用に作成できる。なぜなら、最後のエントリによるローリングハッシュが読み取られ、新たなデータはファイルの末尾に加えられるからである。エントリが固定長であった場合、ファイル中で特定のエントリを見つけるのは容易である。多くの場合に単独のファイルで十分であり、特にログが（過剰に多くのエントリを含んでいない）単独の書類に関する場合には十分である。
【００５４】
場合によっては、ログが非常に長くなるかもしれない。なぜなら通常的には一般的なイベントのレコードが作成され続けるからである。ログが複数のソースからのデータを蓄積するように使用される場合、いくつものエントリが毎秒存在するかもしれない。この場合、例えば10,000エントリ毎に、ログを複数のファイルに分断することが有用かもしれない。
【００５５】
別の実施例では、各ログエントリが個別のファイルに格納される。この場合、高速アクセスに備えて、最も新しいエントリを指すポインタが使用される。一実施例では、レコードはその中にシーケンス番号を含み、最も新しい最近のレコードは、全てのレコードの番号を検査することで判定できる。１つの技法は、ローリングハッシュと共にファイルを指名することであり、そのファイル内の以前のレコードのローリングハッシュを含む。こうして、最も新しいエントリから、ポインタに従って全てのエントリに遡って進行することができる。
【００５６】
別の実施例では、ログエントリの各々がデータベースのレコードになる。特定のメッセージハッシュ、ローリングハッシュ、時間範囲又は平文を速やかに、或いはログエントリの残りのコンテンツが含む場合はいつでも、サーチできるようにする点でこれは非常に有用である。データベースは処理の統合性をもたらすので、データベース手段は、大量のエントリがログの中で作成された場合に有用である。
【００５７】
＜ライトワンスメモリ＞
イベントがシーケンスで発生することを保証する数学的方法に加えて、一実施例では、物理的な改ざん防止装置がイベントのシーケンスを記憶するのに使用される。一実施例では、物理的な改ざん防止装置はライトワンスメモリ(write  once  memory)であり、メッセージのハッシュを順番に格納する。この種のログのエントリを変えることは、メモリを変更することを要する。
【００５８】
ライトワンスメモリは簡易であるが、改ざんされてないことを遠隔的に確認することは困難である。従って、一実施例では、改ざん防止システムはディジタル署名又は他の認証手段をそのコンテンツのために用意する。
【００５９】
＜エンタングリング＞
１つのログを修正することは比較的容易なので、一実施例では、ログの間で情報がやりとりされ、或るログの中のエントリの修正が他のログを調べることで検出可能にする。第１ログの中の情報全てに依存する情報を第２ログに格納することは重要である。以前に定義されているログの場合、ローリングチェックサムはその性質を備えている。チェックサムの各々は、ログエントリ中の他のデータ及び以前のチェックサムに依存する。従って、ログエントリの何らかの部分が変更された場合、そのローリングチェックサムが変わり、その時点以後のローリングチェックサムも変わる。「ハッシュ」に使用される計算関数によらず、メッセージ又はレコードがハッシュよりも長かった場合、同じハッシュを持つ複数のメッセージ又はレコードが存在する。しかしながら、ローリングチェックサムに使用される関数が上手に選ばれていたならば、例えば暗号ハッシュ関数は、これらのメッセージを発見することを極めて困難にする。
【００６０】
あるログからの情報を別のログに格納するいくつもの方法がある。このプロセスはエンタングリング(entangling)−相互依存方式−と呼ばれる。なぜなら、あるログからの情報を別のログに格納した後、第２ログでの将来の全てのローリングチェックサムは、第１ログでの情報に依存することになるからである。
【００６１】
一実施例では、使用されるログは、メッセージハッシュ及びローリングハッシュのペア−即ち、(mi,ri)−を格納しており、第２ログ内のエントリのメッセージハッシュは、第１ログからのローリングハッシュで置換される。従って、第２ログ内のそのエントリ以降の全てのローリングハッシュは、第１ログからのそのローリングハッシュに依存する。
【００６２】
これは最も簡潔な例であるが、エンタングリングの際に格納される限られた量の情報により、エンタングリングの性質がどのようであるかを判定しにくくすることができる。従って、一実施例では、エンタングルメントに使用されるログエントリに追加的な情報が含められる。例えば、あるタイプの値を使うこれらのログは、そのタイプを設定し、そのデータが「正規のメッセージ」でなく「エンタングルメントエントリ」であることを示すようにしてもよい。更に、メッセージハッシュの代わりにローリングチェックサムを直接的に使用しないで、第１ログからのローリングハッシュ及び第１ログの場所(例えば、サーバ名、ログ名、ファイル名、URL等)を含むメッセージが形成されてもよい。一実施例では、第１ログのローリングハッシュのロケーション(例えば、シーケンス番号、データ等)が包含される。この例は、ログが後に続くことを可能にし、現在のログが依存する他のログを判定可能にする。
【００６３】
多くの場合に、どのログが第１ログに依存するかを判定することが望ましい。これを支援するため、エンタングルメントがなされる場合に、双方のログに情報が格納されてよい。図３はペアのログにエンタングルメントを施すプロセスの一例を示すフローチャートである。このプロセスは処理ロジックで実行され、処理ロジックは、ハードウエア(回路、専用論理回路等)、ソフトウエア(汎用コンピュータシステム又は専用コンピュータで動作するようなもの)又はそれらの組み合わせで構成されてよい。
【００６４】
図３を参照するに、情報を格納する処理ロジックによりプロセスは始まり、ログＡの現在のローリングチェックサムをログＢのログエントリに含める(処理ブロック301)。
【００６５】
次に、処理ロジックは、ログＢに関する情報をログＡに格納する(処理ブロック302)。一実施例では、ログＡに格納されたログＢに関する情報は、ログＢのサーバ名、ファイル名又はURL、及びエンタングルメントが格納されるログの中の場所を含んでもよい。一実施例では、ログＡに格納される情報もログＢからのローリングチェックサムを含んでよい。チェックサムが格納されると、エンタングルメントがログＢからログＡへ及びログＡからログＢへなされる。
【００６６】
＜確認手順＞
多くの場合に、ログが作成されて以来ログが修正されているか否かを確認する必要がある。これはソフトウエア、コンピュータシステム及び人々(ログ生成のハードウエア、ソフトウエア及び人々と独立な人々)によってなされるべきである。
【００６７】
一実施例では、ログが首尾一貫していることを確認するため、(図８のコンピュータシステム(又は専用マシン)におけるもののような)確認ソフトウエアが、ログの中の各エントリについてローリングハッシュを再計算する。確認ソフトウエアで計算されたローリングハッシュが、ログに格納されているローリングハッシュと合致したならば、そのエントリは、ハッシュ関数が漏洩していない限り、変更されていない。この場合において、ハッシュ関数が「漏洩している」とは、２つの別個のバイトシーケンスが、同じハッシュをもたらすことが発見されていることを意味する。
【００６８】
ログのエントリが複数のログの間で一致するか否かを確認する際、そのエントリは、他のログに格納された(エンタングルされた)ローリングチェックサムを含む及び関心のあるメッセージの中で一貫している必要がある。第２ログの中のエントリは、エンタングルメントエントリの前後で首尾一貫している必要がある。
【００６９】
＜エンタングリング検出手順の具体例＞
エントリが作成されて他のログとエンタングルされた後のある時点で、ログに格納されたメッセージの有効性を第三者が確認することを希望する場合、エンタングルメント検出は、メッセージに一致するエントリを有する全てのサーバが判定されることを可能にする。図４はエンタングルメント検出を実行するプロセスの一例を示すフローチャートである。このプロセスは処理ロジックで実行され、その処理ロジックは、ハードウエア(回路、専用論理回路等)、ソフトウエア(汎用コンピュータ又は専用マシンで動作するようなもの)又はそれらの組み合わせで構成される。
【００７０】
図４を参照するに、空集合の(空であることの)証拠を有するサーバのリストを初期化し、単独のメッセージ又は所望のハッシュに関心のあるメッセージ又はハッシュのリストを初期化し、全ての既知のログについて関心のあるメッセージ又はメッセージハッシュをサーチする(処理ブロック401)処理ロジックによってプロセスは始まる。メッセージ又はそのハッシュが何処にも発見されなかった場合、確認は不可能であり、プロセスは終了する。
【００７１】
関心のあるメッセージ又はハッシュが発見された場合、処理ロジックは、メッセージ又はハッシュに続くローリングチェックサムを、そのメッセージ又はメッセージハッシュの発見されたログ全てについて確認する(処理ブロック402)。一実施例では、これは、確認ソフトウエアを使ってそのログについてチェックサムriを再計算することでなされる。
【００７２】
処理ロジックは、関心のあるハッシュ以後に表れる全てのローリングハッシュにハッシュのリストを付加し、現在のログで参照されるどのログにも、関心のあるログのリストを付加する(処理ブロック403)。あるログは他のログをリスト化せず、その場合そのサブステップを実行するものはない。
【００７３】
処理ロジックは、未探索の既知のログの1つの中で関心のあるリストのハッシュにおける全てのハッシュを探索する(処理ブロック404)。その後、処理ロジックはローリングハッシュがそのログに現れるか否かを検査する(処理ブロック405)。現れなければ、処理は処理ブロック404に移り、その処理を続ける。ローリングハッシュがログに現れた場合、処理ロジックは、オリジナルのメッセージ又はハッシュについての証拠(エビデンス)と共にそのログをログのリストに加え(処理ブロック406)、関心のあるハッシュ以後そのログに現れる全てのローリングチェックサムをそのハッシュリストに加え(処理ブロック407)、そのログで参照されるどのログもそのログリストに加える(処理ブロック408)。
【００７４】
その後処理ロジックは探索する何らかの別の既知のログが存在するか否かを確認する(処理ブロック409)。無ければ処理は終了する。有れば、処理は処理ブロック404に移り、関心のあるハッシュのリストに新たなハッシュが追加されなくなり、新たなログがリストログに追加されなくなるまでプロセスが反復される。
【００７５】
一般に、同じ装置、同じオフィス又は同じ会社に多くのログが保管されている。しかしながら、あるログが、複数の物理装置上の複数のログと関わりを持つ場合(エンタングルされる場合)又は異なる企業の管理下にあるログと関わりを持つ場合、そのログを確認する者は、そのログが変更されていないことについて更に多くの信頼を得るであろう。様々な装置とエンタングリングを行うこの利点は、ログはエンタングルされたログのアドレスを(企業及び装置境界を越えて)格納できるべきであることを意味する。これを行う1つの方法は、ログを特定するURLを利用することである。
【００７６】
以下のパイソン(Python)ソースコードは、他のログの中でメッセージハッシュを確認するログを判定する。このソースコードは、他のログへのリファレンスを含まないログの特定の形式で動作するように設計されている。従って、それは検査に初期化されたそのログの中だけで証拠を見つけ、新たなハッシュが既知のログだけについて探索される。ソースコードは、複数の独立したhttpサーバからログにアクセスするように設計されている。ソースの実行は今の場合サーバ毎に唯1つのログを使用しているが、サーバ当たり複数のログを許容するようにURLが修正されてもよい。
【００７７】
以下のサンプルソフトウエアは、有効なエンタングルメントを確認するのに使用されてよい：
【数１】
2008269591.tif 000003
【数２】
2008269591.tif 000004
【数３】
2008269591.tif 000005
【００７８】
一般に、ログを確認する上記の技法は多くの処理を含むかもしれない。しかしながら、以前に探索したログ及びハッシュの良好な追跡結果を保持することで、その複雑さを減らすことができる。ある時間以前に生じているログエントリを単に考察することで、或いは例えば或るログがエンタングリングに頻繁に使用されていることが分かっていた場合にそのログを先に探すことによっても複雑さを軽減することができる(そのログは早期に探索可能である)。
【００７９】
＜ログによる確認＞
ログの中のローリングチェックサムは、認証機構の一部に使用可能である。例えば、最も新しいローリングチェックサムrNの情報が、あるログに追加的なエントリを書き込むことの許可に使用されてもよい。ログを保持する装置は、最新のチェックサムが新たなログエントリに用意されていることを主張できる。そうすることで、２つの装置がそのチェックサムを知っており且つ双方がそのログに書き込みを要求した場合、一方のみが成功するようにできる。新たなログエントリを用意する第１の装置は、チェックサムの変更を引き起こし、以後、第２の装置は適切なチェックサムを持たなくなる。この技法は、データの提供者がそのログに関して最も最新のデータ情報を有する場合にのみ、新たなデータが追加されることを保証する方法をもたらす。こうして、チェックサムはログについての「ロック(lock)」のように使用可能であり、競合する状況を回避できる。
【００８０】
上記では、ログへのアクセスを管理するためにローリングチェックサムを使用することを説明しているが、ローリングチェックサムは、同じログが再び使用されることを防止するために使用されてもよい。その場合、ログの完全な内容は公に利用可能になっているべきでない。あるログを使って何者かがシステムと最初にやり取りを行い、そのログにメッセージを格納し、ローリングハッシュをシステムに提供する(例えば、ある口座に預金がなされた場合にメッセージが格納されるかもしれない。)。以後、その口座から引き出しが望まれる場合、システムはその預金をするのに使用されたローリングハッシュを要求する。更なるセキュリティが望まれる場合、一実施例では、システムはそのローリングハッシュについての情報(例えば、そのローリングハッシュのハッシュ及びチャレンジストリング)を要求する。システムは以前のやり取りに関する情報の一部分を要求することもでき、それはそのログを所有する者によってのみ回答可能である。
【００８１】
＜携帯ロギング装置＞
一実施例では、上述したロギングの技法は、例えば印刷及びスキャン処理のような処理を記録する携帯可能なロギング装置(携帯ロギング装置)で使用される。一実施例では、携帯ロギング装置は、関連する書類へのアクセス権を用意することを促す。
【００８２】
一実施例では、携帯ロギング装置はSIMカード又は他のカード状の装置で構成され、或る程度の演算機能を有する。カードはコピー機又は他の周辺装置(又はMFP)に挿入可能であり、スキャンされる或いは処理される書類のメディア識別子(例えば、ハッシュ)を計算し、コピー機(又は他の周辺装置等)及び携帯ロギング装置の双方にそのメディア識別子を格納する。例えば、メディア識別子は携帯ロギング装置におけるログに格納されてもよい。
【００８３】
図５は、携帯ロギング装置及び第２装置(コピー機)520を示す。一実施例では、第２装置はMFP、スキャナ又は適切な他の如何なる装置でもよく、コピー機520が第２装置の単なる一例として使用されている。図５を参照するに、携帯装置５００は処理ユニット501(例えば、プロセッサ、マイクロコントローラ等)を有し、処理ユニットは或る機能を実行し、データを処理する。例えば、処理ユニット501は命令を実行し、メディア識別子(例えば、ハッシュ値)及びログエントリを生成し、ログエントリをログ511に格納する。携帯装置500はメモリ502を含み、メモリは、ログ511、ハッシュ関数及び処理装置501により実行される他の関数512に関する指示を格納し、メディア513を格納する。
【００８４】
携帯装置500がコピー機520のスロット521に挿入されると、インターフェース503を介してコピー機520とのインターフェースが機能する。一実施例では、携帯ロギング装置及びコピー機520は、携帯ロギング装置及びコピー機520のログが関わり合うように相互作用する。例えば、装置520がコピー機であった場合、コピー機が書類をスキャンすると、装置520により或いはスキャンしたメディアに対応する携帯ロギング装置により、メディア識別子が生成され、そのメディア識別子は装置520及び／又は携帯ロギング装置500のログに格納される。スキャンの時間及び処理が実行された指示も記録されてよい。一実施例では、装置520により実行された処理、メディアのマシン識別子及び時間情報が記録される。他の処理は、複写すること、送信すること及び印刷すること等を含んでもよい。
【００８５】
装置520はPC、他の携帯装置又は計算機能を備えていない従来の装置(例えば、電子ドアウェイ(electronic  doorway)でもよいがこれに限定されない)でさえよい。一実施例では、携帯ロギング装置は、ローリングチェックサムを他の装置と交換することで他の装置(例えば、いくつかのセキュリティドア)と相互作用する。携帯装置におけるログ及びドアにおけるログを後で検査すると、特定のロギング装置がドアにアクセスするのに使用されたことを確認できる。この場合にやりとりされるメディアは、ランダムな試行文字列(ストリング)でもよい。携帯ロギング装置はそのストリングを付加し、新たなローリングチェックサムを計算し、ドアは確認できる。各々が双方にアクセスすることで、ドア及び携帯ロギング装置は、次のアクセスに使用されるように予測されるストリングを更新できる。
【００８６】
図６は、携帯ロギング装置と第２装置の間の通信プロセスの一例を示すフローチャートである。このプロセスは処理ロジックによって実行され、処理ロジックは、ハードウエア(回路、専用論理回路等)、ソフトウエア(汎用コンピュータシステム又は専用コンピュータで動作するようなもの)又はそれらの組み合わせで構成されてよい。
【００８７】
図６を参照するに、処理ロジックが携帯装置にログを維持することでプロセスは始まり(処理ブロック601)、携帯装置のログに含める情報を第２装置から受信することで、携帯装置のログと第２装置のログを関わり合わせる(エンタングリングする)(処理ブロック602)。
【００８８】
一実施例では、携帯ロギング装置及び第２装置間のやりとりは、第２装置がローリングチェックサム及びメッセージを受信し、新たなローリングチェックサムを用意するようになされる。例えば、携帯ロギング装置は、第２装置のメッセージと共にローリングチェックサムを計算し、ローリングチェックサム及びメッセージ双方を、第２装置のログに格納することに備えて送信する。そして、第２装置は新たなローリングチェックサムを計算し、それを携帯ロギング装置に与える。一実施例では、携帯ロギング装置はこの新たなローリングチェックサムを格納し、２つの装置の間の将来的な通信の際に第２装置の代わりに新たなローリングチェックサムを計算する際にそれを使用する。一実施例では、これら２つのローリングチェックサムは、同じハッシュ関数と共に計算される；或いは異なるハッシュ関数が使用されてもよい。
【００８９】
図７は、携帯ロギング装置と第２装置の間で情報を通信するプロセスの一例を示すフローチャートである。このプロセスは処理ロジックによって実行され、処理ロジックは、ハードウエア(回路、専用論理回路等)、ソフトウエア(汎用コンピュータシステム又は専用コンピュータで動作するようなもの)又はそれらの組み合わせで構成されてよい。
【００９０】
図７を参照するに、プロセスは携帯装置がメディアに関する第２装置と相互作用することで始まる(処理ブロック701)。一実施例では、その相互作用は、携帯ロギング装置がメディアを第２装置に与えることを含む。別の実施例では、その相互作用は、携帯ロギング装置が第２装置からメディアを受信することを含んでよい。
【００９１】
次に、携帯装置の処理ロジックは、そのメディアに対応する第１メディア識別子を生成し(処理ブロック702)、そのメディアに対応するメディア識別子を第２装置に提供し、第２装置に関するログに含めることに備える(処理ブロック703)。携帯装置は、第２装置からメディアを受信したことに応答して、そのメディアに対応するメディア識別子を生成してもよいことに留意を要する。一実施例では、第２装置に関するログに含めることに備えてメディア識別子を第２装置に提供する携帯装置は、そのメディア識別子が第２装置によって提供されたメディアに対応することの指摘を第２装置に与えてもよい。
【００９２】
一実施例では、図７のプロセスは、携帯ロギング装置が第１メディア識別子を第２装置に送った後に、処理ロジックが第２装置から別のメディア識別子を受けることも含み(処理ブロック704)、携帯装置で維持されているログに携帯装置がその第２メディア識別子を記憶することも含む(処理ブロック705)。一実施例では、第１及び第２メディア識別子は、同じハッシュ関数で生成されてもよいし、或いは異なるハッシュ関数が使用されてもよい。
【００９３】
一実施例では、携帯ロギング装置は複合機(MFP)との相互作用を追跡し続けるのに使用されてもよい。一実施例では、携帯ロギング装置はライトワンスメモリだけから構成される。MFPと共に印刷又はスキャンを行う前に(又は他のやりとりを行う前に)、携帯ロギング装置は挿入により又は無線によりMFPに「接続」される。そして書類がMFPの上に置かれ、スキャンされる。MFPは携帯ロギング装置にアクセスし、スキャンしたデータについて計算するハッシュ関数を決める(使用するハッシュ関数は、MFPがアルゴリズムを既に知っている必要のある場合は或る名称として格納されるだけでもよいし、MFPの演算命令一式としてハッシュ関数が格納されてもよい。)。MFPはスキャンした書類のハッシュをハッシュ関数を使って計算し、そのハッシュを携帯ロギング装置に格納する。MFPは携帯ロギング装置による最後のローリングハッシュRNにアクセスし、例えばRN+1=hash(RN．Hash(document))を計算することで携帯ロギング装置の新たなハッシュ関数を計算し、MFPはその新たなハッシュを携帯ロギング装置に格納する。例えば、コピーが何部作成されるか、或いは書類が送信される宛先(アドレス)等のような、スキャンと共に実行される指示をMFPは携帯ロギング装置に格納してもよい。MFPはMFPのログによるローリングチェックサムを携帯ロギング装置に格納してもよい。この情報はMFPにより計算されたローリングハッシュに含められ、ロギング装置に格納されてもよい。最終的にMFPは書類のハッシュをMFPのログに格納してもよい。MFPは携帯可能な装置について計算された何らかのローリングチェックサムをMFPのログに格納してもよい。
【００９４】
そのような動作と共に、MFPで処理した書類(例えば、作成されたコピー)に関する情報を含む２つの独立したログが存在する。ログがスキャンしたデータを含んでおらず、スキャンしたデータが他の何処かに格納されていた場合(例えば、ローカルディスクに格納されていた場合或いはネットワークを介して送信された場合)、どのMFPがそのデータをスキャンしたか及びどの携帯ロギング装置が使用されたかを後に決定することができる。データがスキャンされなかった場合でさえ、MFPログ又は携帯装置ログにより、どの携帯ロギング装置がどのMFPと共に使用されたかを判定できる。更に、例えばその装置を使って書類がスキャンされたことの証拠を削除するように携帯装置が修正された場合、その修正はMFPログを調べることで検出可能である。
【００９５】
別の実施例では、携帯装置でハッシュ関数を計算することができる携帯ロギング装置が使用される。携帯ロギング装置は、出入り口、PC又はMFPに或いは一般的にサービス装置へのアクセス権を得るのに使用される。一実施例では、携帯ロギング装置はローリングチェックサムr0と共に初期化され、そのチェックサムの情報を与えることの可能な携帯装置へのアクセスを可能にするように、サービス装置は構成されてよい。携帯ロギング装置がアクセスを要求すると、サービス装置は試行ストリングMiを発行する。一実施例では、このストリングは、要求されているアクセスの種類、データ及び何らかのランダムなバイトに関する情報を含む。携帯ロギング装置は、ri+1=hash(ri,Mi)を計算し、ri+1をサービス装置に返す。サービス装置は同じ計算を実行し、その携帯装置がriと共に始まっているか否かを確認する。そして、サービス装置及び携帯ロギング装置は新たな値ri+1をログに記録し、そのログは次回アクセスが要求される際に使用される。装置はアクセスの記録も保持するので、更なる認証も可能である。サービス装置は、例えばrk(k＜i)を用意することで、以前の相互作用に関するチャレンジ値を発行し、rkのハッシュ結果をもたらすストリングを返すように携帯装置に要求することができる。Rk=hash(rk-1．Mk-1)を計算した携帯装置はrk-1及びMk-1を返すことができ、同じヒストリ(履歴)を持っていない装置は、要求されたハッシュ値をもたらすストリングを生成することができない。一実施例では、携帯ロギング装置は第２ログのエントリを検査し、追加的なハッシュ関数をその第２ログのオリジナルエントリに適用するエントリをログに加える。装置は行われたそのような全てのエントリのログを保持する。実際、これは携帯装置のログと第２ログを関わらせ(エンタングルし)、エントリが検査されていることを示す確認エントリを第２ログに加える。
【００９６】
そのような場合、携帯ロギング装置は、エントリの一部分として、秘密に連結された第１ログのエントリのハッシュを含んでもよい。この秘密(情報)は携帯ロギング装置によっては決して明らかにされない。しかしながら、装置はいつでも同様なハッシュを実行するように求められ、後の時点でエントリの独立した確認を可能にする。これは第２ログの「外部証明(external  certification)を行う効果をもたらし、第２のログのエントリは特定の装置により読み込まれていることを保証する新たなエントリが追加され、追加的なハッシュ情報を第２ログに適用する。一実施例では、秘密情報に連結されたエントリのハッシュ処理は、改ざん防止(tamper  resistant)ハードウエアによって実行される。
【００９７】
一実施例では、携帯ロギング装置500は１つ以上のハッシュ関数512をメモリに格納し、１つ以上のハッシュ関数をコピー機520に(又は他の周辺装置に)、装置がコピー機520に挿入された際に転送することができる。一実施例では、携帯装置が第２装置に情報を与え、第２装置の機能をアップグレードし、メディア識別子を生成するようにすることを図７のプロセスは更に含む(処理ブロック706)。これは選択的である。その情報は、第２装置が所有していない１つ以上のハッシュ関数を含んでもよい。
【００９８】
携帯ロギング装置はあるログを計算するのに使用されてもよく、そのログは人、ワークグループ、特定のタスク(例えば、商品又は他の業務関連アイテムのパレット及び人々に付随してよい(例えば、フォークリフト、トラック又は検査員がログエントリを作成してもよい))留意を要する。このように、人、ワークグループ又はタスクに関してなされる全てのやりとりが記録可能である。
【００９９】
一実施例では、携帯ロギング装置はコピー機520と共に共有される一群のログエントリを有する。携帯ロギング装置500は一連の１つ以上のチャレンジ値をコピー機520に用意し、自身の身元をコピー機520に確信させる。例えば、携帯ロギング装置500及びコピー機520は、古いローリングチェックサム及びログの中で対応するエントリを使用し、コピー機520への(ログイン)アクセス権を得る。２つの装置は新たなログエントリ及びローリングチェックサムに同意し、両者が次回やりとりするログイン値として提供する。
【０１００】
チャレンジ値を利用する別の例として、携帯ロギング装置500により用意されたランダムシーケンスをコピー機520のログ531内の特定のエントリ(例えば、エントリ36)に加えることを、携帯ロギング装置500はコピー機520に促し、コピー機520が携帯ロギング装置500にその連結のハッシュを返すように促してもよい。携帯ロギング装置500は、何がそのエントリにあるかを知っており、コピー機520にランダムシーケンスを提供し、コピー機520が使用するハッシュ関数を知っているので、携帯ロギング装置500はその回答を決定し、それとコピー機520により与えられた回答とを比較することができる。ランダムシーケンスはメディアでもよい。本プロセスは何回も反復されてよい。ランダムエントリ及びランダムな追加的な秘密情報を選択することで、携帯ロギング装置500は自身の身元を第２装置に確信させる。
【０１０１】
別の実施例では、携帯ロギング装置500及びコピー機520(又は他の周辺装置)間の情報転送は、携帯ロギング装置500(無線通信機能部505として示される)及びコピー機520(図示せず)の双方の無線通信機能を使って無線で実行可能なことに留意を要する。或いは、インターフェース503を利用せずに、有線通信の他の形態も可能である。一実施例では、そのような場合に、処理ユニットはメディア識別子をログに加え、無線通信インターフェースがコピー機520へ情報を送信すること及び／又はコピー機520から情報を受信することを引き起こす。一実施例では、処理ユニットは或るエントリをログに加え、メディアのコンテンツに基づくメディア識別子をエントリは含んでおり、そのメディアは第２装置とのやりとりの対象である。
【０１０２】
携帯ロギング装置は企業バーコード又はIDカードでもよく、公的な企業活動に使用されてもよい。一実施例では、カード上のログはオフィスの様々な装置のログと関わり合っており、その携帯ロギング装置がそれらの装置との処理に参加していたことの動かぬ証拠をもたらす。一実施例では、携帯ロギング装置上のログは、以前のやりとりのリストを含むので、IDカードとして使用されてもよく、そのログはカードからデータにアクセスすることなしに及びカードと共になされる全ての動作なしには複製不可能である。
【０１０３】
図８は、携帯ロギング装置と第２装置の間の通信を認証するプロセスの一例を示すフローチャートである。このプロセスは処理ロジックによって実行され、処理ロジックは、ハードウエア(回路、専用論理回路等)、ソフトウエア(汎用コンピュータシステム又は専用コンピュータで動作するようなもの)又はそれらの組み合わせで構成されてよい。
【０１０４】
図８を参照するに、携帯装置に格納されている第１ログ及び第２装置に関連する第２ログを処理することで、本プロセスは始まる(処理ブロック801)。
【０１０５】
次に、携帯装置及び第２装置に関連するログの少なくとも１つにおける１つ以上のエントリに基づいて、その携帯装置が第２装置とやりとりしたことを処理ブロックは確認する(処理ブロック802)。一実施例では、携帯装置が第２装置と相互作用したことの確認は、第１及び第２ログ双方に現れる１つ以上の一致したエントリに基づく。一実施例では、少なくとも１つのエントリはメディアのコンテンツ(内容)に基づくメディア識別子を含み、そのメディアは、携帯ロギング装置及び第２装置間でのやりとりの対象である。
【０１０６】
一実施例では、携帯ロギング装置が第２装置と相互作用したことの確認は、少なくとも第２装置のログに現れているエントリを使って、携帯ロギング装置により第２装置に用意された１つ以上のチャレンジ値の結果に基づく。一実施例では、携帯ロギング装置が第２装置と相互作用したことの確認は、第２装置に１つ以上のチャレンジ値を送り(その第２装置が携帯ロギング装置に情報を送ることを要求する)、その後に、情報が携帯ロギング装置で生成された情報データと合っているか否かを確認することでなされてもよい。合致していれば、携帯ロギング装置は第２装置の身元を確認することができる。一実施例では、第２装置に関連するログの或るログエントリについて１つ以上の処理を実行すること、及び１つ以上の処理の結果を第２装置から得た情報として提供することを少なくとも１つのチャレンジは含む。
【０１０７】
別の実施例では、携帯ロギング装置及び第２装置のログにアクセスし、第１及び第２ログの１つ以上のエントリに基づいて、携帯装置が第２装置と相互作用したことを確認することで、携帯装置が第２装置と相互作用したか否かを第３の装置が判定する。
【０１０８】
図８のプロセスは、携帯装置の処理ロジックが新たなメディア識別子を確認し、将来第２装置と共に認証を行うのに使用することに備えること(処理ブロック803)、そのメディア識別子を第２装置に送信すること(処理ブロック804)、携帯ロギング装置のログ及び第２装置のログに新たな識別子を格納すること(処理ブロック805)を更に含む。
【０１０９】
＜コンピュータシステムの具体例＞
図９は上記の動作の1つ以上の実行するコンピュータシステムの一例を示すブロック図である。図９を参照するに、コンピュータシステム900は例示的なクライアント又はサーバコンピュータシステムで構成されてよい。コンピュータシステム900は、情報を通信する通信手段又はバス911、及び情報を処理するためにバス911に結合されたプロセッサ912を有する。プロセッサ912は例えばペンティアム(登録商標)等のようなマイクロプロセッサを含むがこれに限定されない。
【０１１０】
システム900は、バス911に結合された、ランダムアクセスメモリ(RAM)又は他のダイナミックストレージデバイス904(メインメモリと言及される)を更に有し、これらのメモリ等はプロセッサ912で実行される命令や情報を格納する。メインメモリ904はプロセッサ912による命令の実行中に変数や他の中間的な情報を一時的に格納する。
【０１１１】
コンピュータシステム900は、バス911に結合されたリードオンリメモリ(ROM)及び／又は他のスタティックストレージデバイス906(これらもプロセッサ912のための命令や静的な情報を格納する)と、磁気ディスク、光ディスク及びディスクドライブに関連するようなデータストレージデバイス907とを更に有する。データストレージデバイス907は情報及び命令を格納するためにバス911に結合される。
【０１１２】
コンピュータシステム900は、バス911に結合され、コンピュータユーザに情報を表示する陰極線管(CRT)液晶ディスプレイ(LCD)のようなディスプレイ装置921に結合される。情報及びコマンド選択内容をプロセッサ912に通知するため、英数字及び他のキーを含む英数字入力装置922もバス911に結合される。更なるユーザ入力装置はカーソル制御部923(例えば、マウス、トラックボール、トラックパッド、スタイラス又はカーソル指示キー)であり、指示情報及びコマンド選択内容をプロセッサ912に通知したり、ディスプレイ装置921でのカーソルの動きを制御するのに使用される。
【０１１３】
バス911に結合される他の装置はハードコピー装置924であり、命令、データ又は他の情報を紙、フィルム又は同様なタイプの媒体に印刷するのに使用される。更に、スピーカ及び／又はマイクロフォン等を備えた音声記録及び再生装置がバス911に選択的に結合され、コンピュータシステム900との音声インターフェースを用意する。バス911に結合されてよい別の装置は、有線の／無線の通信機能部925であり、電話又は携帯用装置と通信する。
【０１１４】
システム900及び関連するハードウエアの要素の全部又はどの一部分でもが本発明で使用されてよいことに留意を要する。しかしながら、コンピュータシステムの他のコンフィギュレーションは本装置の全部又は一部を含んでよいことが理解されるであろう。
【０１１５】
本発明に関する多くの代替例及び変形例は、上記の説明を理解した当業者にとっては  疑う余地無く明らかである。例示的に図示及び説明された如何なる特定の実施例も、限定的に解釈されるべきでないことが理解されるべきである。従って、様々な実施例の詳細に関連するものは、本発明の範囲を限定するように解釈されるべきでなく、特許請求の範囲は、本発明に本質的であると認められる事項のみを列挙している。
【０１１６】
以下、本発明により教示される手段を例示的に列挙する。
【０１１７】
（１）
第１装置からチェックサムを受信するステップと、
前記チェックサムのインスタンスのログを第２装置を用いて探索するステップと、
前記チェックサムが見つかった場合リクエストを許可するステップと、
を有する相互作用を認証する方法。
【０１１８】
（２）
前記第２装置が携帯装置である第１項に記載の方法。
【０１１９】
（３）
前記チェックサムがメディアの内容に基づくメディア識別子から生成され、前記メディアは前記携帯装置及び前記第１装置間での通信の対象である第２項に記載の方法。
【０１２０】
（４）
前記第１及び第２ログに第３装置を用いてアクセスするステップを更に有し、前記第３装置は、前記携帯装置が前記第２装置と通信したことを前記第１及び第２ログの１つ以上のエントリに基づいて確認するようにした第２項に記載の方法。
【０１２１】
（５）
前記携帯装置がSIMカードを構成する第２項に記載の方法。
【０１２２】
（６）
前記携帯装置がIDカードを構成する第２項に記載の方法。
【０１２３】
（７）
前記携帯装置が、前記メディア識別子を前記第２装置に認証に備えて送信するステップを更に有する第２項に記載の方法。
【０１２４】
（８）
前記第２装置と共に将来の認証で使用することに備えて新たなメディア識別子を特定するステップと、
前記新たな識別子を前記第１ログに格納するステップと、
を更に有する第７項に記載の方法。
【０１２５】
（９）
前記第２装置が前記第１装置と通信したことを確認するステップを更に有し、前記ステップは、
１つ以上のチャレンジ値を前記第１装置に送信するステップと、
前記第１装置から情報を受信するステップと、
前記情報が前記第２装置により生成されたデータに合致するか否かを判定するステップと、
照合結果に基づいて前記第１装置が確認されたか否かを判定するステップと、
を有する第１項に記載の方法。
【０１２６】
（１０）
前記少なくとも１つのチャレンジは、前記第１装置に関連するログの中の或るログについて１つ以上の処理を実行し、前記１つ以上の処理結果を前記第１装置から受信した情報として用意することを含む第９項に記載の方法。
【０１２７】
（１１）
メディアのメディア識別子を携帯装置で計算するステップと、
前記メディア識別子を用いてローリングチェックサムを生成するステップと、
前記ローリングチェックサムを第２装置に送信するステップと、
を有する方法。
【０１２８】
（１２）
前記第２装置から前記メディアを受信するステップと、
前記メディアを受信したことに応答して、前記携帯装置が前記第１メディア識別子を生成するステップと、
を更に有し、前記携帯装置が前記ローリングチェックサムを第２装置に送信するステップは、前記ローリングチェックサムが前記第２装置により用意された前記メディアに対応することの指摘を前記第２装置に与えるステップを含む第１１項に記載の方法。
【０１２９】
（１３）
前記ローリングチェックサムを前記携帯装置に提供した後、前記第２装置から第２メディア識別子を受信するステップと、
前記携帯装置が、前記携帯装置により維持されるログの中に前記第２メディア識別子を格納するステップと、
を更に有する第１２項に記載の方法。
【０１３０】
（１４）
前記第１メディア識別子及び前記第２メディア識別子が、異なるハッシュ関数と共に生成されている第１３項に記載の方法。
【０１３１】
（１５）
前記メディア識別子は、暗号ハッシュ値で表現される第１１項に記載の方法。
【０１３２】
（１６）
前記メディア識別子は、ハッシュ関数をメディアの電子形式に適用した結果得られる第１５項に記載の方法。
【０１３３】
（１７）
前記携帯装置が、前記メディアを前記第２装置に提供する第１６項に記載の方法。
【０１３４】
（１８）
前記ハッシュ関数が、MD5ハッシュアルゴリズムである第１６項に記載の方法。
【０１３５】
（１９）
前記メディアが書類であり、前記メディア識別子が書類識別子である第１１項に記載の方法。
【０１３６】
（２０）
前記第２装置の機能をアップグレードし、メディア識別子を生成するように、前記携帯装置が前記第２装置に情報を提供する第１１項に記載の方法。
【０１３７】
（２１）
前記携帯装置がSIMカードを構成する第１１項に記載の方法。
【０１３８】
（２２）
前記携帯装置がIDカードを構成する第１１項に記載の方法。
【０１３９】
（２３）
携帯装置が第１ログを取得し、第２ログのエントリを検査するステップと、
１つ以上のエントリを前記第２ログに加えるステップと、
前記１つ以上のエントリを前記第１ログに含めるステップと、
を有する方法。
【０１４０】
（２４）
情報を無線で送信する無線通信インターフェースと、
第１ログを格納するメモリと、
メディアを受信する入力ユニットと、
メディア識別子を前記第１ログに追加し、前記無線通信インターフェースが情報を送信及び受信することを引き起こすように結合された処理ユニットと、
を有し、前記処理ユニットはエントリを前記第１ログに追加し、前記第２装置との通信の対象であったメディアの内容に基づくメディア識別子を前記エントリは含み、前記第１ログは、前記第２装置から情報を受信し且つ前記情報を前記第１ログに格納することで、前記第２装置に関する第２ログと関わり合うようにした携帯装置。
【０１４１】
（２５）
前記メモリは前記メディア識別子を格納し、前記処理ユニットは前記メディア識別子が前記無線通信インターフェースを介して前記第２装置へ送信されることを引き起こし、前記第２装置に関連するログに含めることに備える第２４項に記載の携帯装置。
【０１４２】
（２６）
前記メモリはハッシュ関数を格納し、前記処理ユニットは、前記ハッシュ関数が前記無線通信インターフェースを介して前記第２装置へ送信されることを引き起こす第２４項に記載の携帯装置。
【０１４３】
（２７）
命令を格納する１つ以上のコンピュータ読み取り可能な記憶媒体を有する製造品であって、前記命令は、システムで実行される際、前記システムが通信を認証する方法を実行することを引き起こし、当該方法は、
第１の携帯装置に格納された第１ログ及び第２装置に関連する第２ログを検査し、
前記第１及び第２ログの中の１つ以上のエントリに基づいて、前記携帯装置が前記第２装置と通信したことを確認するものである製造品。
【図面の簡単な説明】
【０１４４】
【図１】エントリを生成してログの中に格納する様子を示す図である。
【図２】メディアのハッシュを生成してログの中に格納する様子を示す図である。
【図３】ログのペアを関連付けるプロセスの一例を示すフローチャートである。
【図４】エンタングルメント検出を実行するプロセスの一例を示すフローチャートである。
【図５】携帯可能なロギング装置及び第２装置を示す図である。
【図６】携帯可能なロギング装置と第２装置の間の通信プロセスの一例を示すフローチャートである。
【図７】携帯可能なロギング装置と第２装置の間で情報を通信するプロセスの一例を示すフローチャートである。
【図８】携帯可能なロギング装置と第２装置の間の通信を認証するプロセスの一例を示すフローチャートである。
【図９】コンピュータシステムの一例を示すブロック図である。
【符号の説明】
【０１４５】
101  メッセージ及びチェックサムジェネレータ
102  連結モジュール
103，203  ハッシュモジュール
110，210  記録部
500  携帯装置
501  処理ユニット
502  メモリ  
503  インターフェース
511  ログ
512  ハッシュ関数
513  メディア
520  コピー機
521  スロット
531  ログ
541  メディア
904  メインメモリ
906  スタティックメモリ
907  大容量ストレージメモリ
911  バス
912  プロセッサ
920  外部ネットワークインターフェース
921  ディスプレイ
922  キーボード
923  カーソル制御装置
924  ハードコピー装置
【図１】
2008269591.tif 000006
【図２】
2008269591.tif 000007
【図３】
2008269591.tif 000008
【図４】
2008269591.tif 000009
【図５】
2008269591.tif 000010
【図６】
2008269591.tif 000011
【図７】
2008269591.tif 000012
【図８】
2008269591.tif 000013
【図９】
2008269591.tif 000014