(57)【特許請求の範囲】
【請求項１】
コンピュータ上で文書の内容を編集し、受領者が受領者のコンピュータ上で前記編集の適切性に対するチャレンジを行えるようにする方法であって、
コンピュータ内の編集ユーティリティによって、前記文書中のテキスト位置ｉからの文字列Ｍiを編集し、
コンピュータ内の文字列生成手段によって、秘密鍵Ｋに基づいて、入力が少なくとも前記Ｍiに基づく逆方向の落とし戸付き一方向性関数ｆK-1を適用することにより、前記文字列Ｍiから文字列Ｒiを作成し、
コミットメント生成手段によって、前記文字列Ｒiをランダムネスとして用いて、前記文字列Ｍiに関するコミットメントＣi＝Ｃ（Ｍi、Ｒi）を作成し、
前記コミットメントＣiをコンピュータに接続された通信機構を通して前記受領者のコンピュータに通信し、
前記通信機構を通して前記受領者のコンピュータからトピック文字列Ｔを受信し、
前記文字列生成手段によって、前記秘密鍵Ｋに基づいて、入力が少なくとも前記Ｔに基づく前記逆方向の落とし戸付き一方向性関数ｆK-1を適用することにより、前記文字列Ｔから文字列ＲTを作成し、
前記通信機構を通して前記受領者のコンピュータに前記文字列ＲTを通信する、
ステップを含み、
前記受領者のコンピュータが、
前記受領者のコンピュータ内のコミットメント生成手段によって、前記文字列ＲTをランダムネスとして用いて前記トピック文字列Ｔに関するコミットメントＣT＝Ｃ（Ｔ、ＲT）を作成し、
前記受領者のコンピュータ内のコミットメント生成手段によって、前記コミットメントＣTを前記コミットメントＣiと比較して、それにより前記文書の編集部分を文字列等価性についてテストする
ことを可能にする、
ことを特徴とする方法。
【請求項２】
前記受領者のコンピュータが、前記秘密鍵Ｋに対応する公開鍵Ｋ’に基づいて文字列Ｔに順方向の落とし戸付き一方向性関数ｆK'を適用することにより、前記受信した文字列ＲTがＴ＝ｆK'（ＲT）である文字列Ｔに対応することをさらに検証できるようにすることを特徴とする、請求項１に記載の方法。
【請求項３】
前記文字列Ｒiを作成するステップ、及び前記コミットメントＣiを作成するステップは、最初に前記文字列Ｍiを変更して前記文書中の他の文字列と区別されるユニークなものとなるようにするステップをさらに含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記文字列Ｍiを変更するステップは、前記Ｍiを前記値ｉと連結して、Ｒi＝ｆK-1（Ｍi｜｜ｉ）及びＣi＝Ｃ（Ｍi｜｜ｉ，Ｒi）を作成するステップを含むことを特徴とする、請求項３に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、編集文書の保全性を検証する方法及び装置に関する。
【背景技術】
【０００２】
注意を要する情報を特定したり、文書からこのような情報を編集することは、困難な仕事である場合が多い。文書が適切に編集されたことを文書の所有者が文書の受領者に納得させる必要があるので、編集完了後の編集プロセスは、ますます複雑になってきている。受領者は、編集された内容が必要な情報でないこと、そして編集されていない内容が改竄されていないことを実証する必要がある。このことは、作成後の段階において対立当事者間で多くのやりとりが含まれることが普通であり、不適切に編集された情報がないことを確認することが必要となる訴訟においては特に一般的なことである。同様に、健康産業においては、ＨＩＰＡＡその他のプライバシー保護の法律（privacy legislation）に沿って医療記録が正しく編集されたことを証明しなければならない医療記録の保持者が記録を編集する際に、彼らをサポートするための標準化された技術は存在しない。残念ながらプライバシーの問題があるので、文書の所有者は、分析のためにオリジナルの編集されていない文書を受領者のための生成するということはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の一実施形態は、文書所有者が文書の内容を編集できるようにし、且つ、編集文書の受領者がその編集の適切性に対するチャレンジを行えるようにするシステムを提供する。
【課題を解決するための手段】
【０００４】
動作中、本システムは、文書所有者が文書中のテキスト位置ｉからの文字列Ｍiを編集できるようにする。それを行う際に本システムは、秘密鍵Ｋに基づいて逆方向の落とし戸付き一方向性関数ｆK-1を適用することにより、文字列Ｍiから文字列Ｒiを作成し、ここで逆方向の落とし戸付き一方向性関数への入力は少なくともＭiに基づく。システムは、文字列Ｒiをランダムネスとして用いて文字列Ｍiに関するコミットメントＣi＝Ｃ（Ｍi、Ｒi）を作成し、コミットメントＣiを受領者に通信する。編集文書の受領者が編集の適切性にチャレンジを行うとき、システムはまず、受領者からトピック文字列Ｔを受信し、秘密鍵Ｋに基づいて逆方向の落とし戸付き一方向性関数ｆK-1を適用することにより、文字列Ｔから文字列ＲTを作成し、ここで逆方向の落とし戸付き一方向性関数への入力は少なくともＴに基づく。次いでシステムは受領者に文字列ＲTを通信し、それにより、受領者が文字列ＲTをランダムネスとして用いて文字列Ｔに関するコミットメントＣT＝Ｃ（Ｔ、ＲT）を作成し、そしてコミットメントＣTをＣiと比較することができるようにする。コミットメントＣTをＣiと比較することにより、受領者は文書の編集部分を、文字列等価性についてテストすることができる。
【０００５】
幾つかの実施形態において、本システムはさらに、受領者が、秘密鍵Ｋに対応する公開鍵Ｋ’に基づいて文字列Ｔに順方向の落とし戸付き一方向性関数ｆK'を適用することにより、受信した文字列ＲTがＴ＝ｆK'（ＲT）である文字列Ｔに対応することを検証できるようにする。
【０００６】
幾つかの実施形態において、本システムは、文字列Ｒiを計算する前、及びコミットメントＣiを計算する前に、文字列Ｍiが文書中の他の文字列と区別されるユニークなものとなるように文字列Ｍiを変更する。
【０００７】
幾つかの実施形態において、本システムは、文字列Ｍiを変更するときにＭiを値ｉと連結し、Ｒi＝ｆK-1（Ｍi｜｜ｉ）、及びＣi＝Ｃ（Ｍi｜｜ｉ，Ｒi）を作成する。
【０００８】
幾つかの実施形態において、本システムは、文字列Ｍiを変更するときに、文字列Ｍiから導かれる値を作成する。
【０００９】
幾つかの実施形態において、本システムは、文書中のテキスト位置ｊにおける未編集文字列Ｎjに関するコミットメントＣj＝Ｃ（Ｎj、Ｒj）を作成する。システムは文字列Ｒjを用いて文字列Ｎjに関するコミットメントＣjを作成する。システムは、秘密鍵Ｋに基づいて逆方向の落とし戸付き一方向性関数ｆK-1を文字列Ｎjに適用することにより、文字列ＮjからＲj＝ｆK-1（Ｎj）である文字列Ｒjを作成する。システムは次いで、コミットメントＣjと文字列Ｎjを受領者に通信する。編集文書の受領者が、文字列Ｎjの保全性に対するチャレンジを行うとき、システムはまず、受領者から編集文書中の文字列Ｎjの保全性に対するチャレンジを受信し、チャレンジへの応答として受領者に文字列Ｒjを通信する。受領者に文字列Ｒjを通信することにより、システムは、受領者が、文字列Ｒjをランダムネスとして用いて文字列Ｎjに関するコミットメントＣj’＝Ｃ（Ｎj、Ｒj）を作成し、コミットメントＣj’をＣjと比較できるようにする。コミットメントＣj’をＣjと比較することにより、受領者は文字列Ｎjが改竄されたかどうかを判断することができる。
【００１０】
幾つかの実施形態において、受領者は、秘密鍵Ｋに対応する公開鍵Ｋ’に基づいて文字列Ｒjに順方向の落とし戸付き一方向性関数ｆKを適用することにより、受信した文字列ＲjがＮj＝ｆK'（Ｒj）である文字列Ｎjに対応することを検証する。
【００１１】
幾つかの実施形態において、本システムは、受領者にコミットメントを通信するとき、複数のコミットメントを単一のコミットメントに圧縮するのにマークル・ハッシュ木を用いる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施形態による文書編集検証システム１００を示す。
【図２】本発明の一実施形態による、文書を編集し、編集文書の受領者からのチャレンジに応答するプロセスを示すフローチャートである。
【図３】本発明の一実施形態による、図２の動作２０２から展開する、文書中の編集文字列に関するコミットメントを作成するプロセスを示すフローチャートである。
【図４】本発明の一実施形態による、図２の動作２１０から展開する、編集文書の受領者からのチャレンジに応答するプロセスを示すフローチャートである。
【図５】本発明の一実施形態による、編集文書を受信し、その編集文書に対する多数のチャレンジを開始するプロセスを示すフローチャートである。
【図６】本発明の一実施形態による、図５の動作５１２から展開する、未編集文字列Ｍiに対するチャレンジを行うプロセスを示すフローチャートである。
【図７】本発明の一実施形態による、図５の動作５１４から展開する、編集領域ｉに対するチャレンジを行うプロセスを示すフローチャートである。
【図８】本発明の一実施形態による、編集文書の保全性の検証を促進するコンピュータ・システムである。
【発明を実施するための形態】
【００１３】
多くの業界において、文書所有者が、文書を公的に入手可能にする前に、その文書からの機密情報を編集することは一般的なことである。文書所有者が秘匿特権文書を自発的に公表する場合を含む単純な状況下では、文書所有者は、機密情報を削除するか又は変えることにより、簡単に文書を変更することができる。
【００１４】
しかしながら、特別な状況下においては、文書所有者は、文書の内容を変更せずに、受領者側に秘匿特権文書を提供することを求められる。しかしながら文書所有者は、受領者側が要求する情報が編集内容に含まれない限り、その文書からの情報を編集することが容認される。受領者側が、文書所有者が文書を適切に編集したことを信じて編集文書の保全性に対するチャレンジ（例えば、文書所有者が内容に変更を加えておらず、受領者に対して利用可能にする必要のある情報を編集していないことに対するチャレンジ）を行わないことを予期することは合理的ではない。現在の実務は、文書が適切に編集されたことを保証するために、信頼できる第三者に、元の文書を編集文書と比較することを要求する。このことは特に訴訟中で一般的なことであり、その場合作成後段階には、典型的には、係争者間の多数の相互作用が関与し、いかなる情報も不適切に編集されてはいないことを判断する判事が関与する。
【００１５】
本発明の実施形態は、編集文書の受領者がその編集の適切性にチャレンジを行えるような形式で、文書所有者が文書からの多数のテキスト文字列を編集できるようにするシステムを提供する。このシステムは、対応する編集文字列に関するコミットメントを生成し、このコミットメントが受領者に編集の適切性に対するチャレンジを行うことを可能にする。一実施形態において、コミットメントは文字列から生成された一組のビットであり、３つの特性、結合性、隠れ性、及びテスト可能性を与える。コミットメントと編集文字列の間には一対一の対応が存在するので、コミットメントは結合している。受領者はコミットメントから編集文字列を回復することができないので、コミットメントは隠れている。受領者は、コミットメントを用いて編集文字列をテストし、それが編集できない情報に対応していないことを保証することができるので、コミットメントはテスト可能である。一実施形態においては、コミットメントのこれらの３つの特性、即ち、結合性、隠れ性、及びテスト可能性は、編集内容が不明のままで、受領者が確実に編集にチャレンジを行えることを保証する。
【００１６】
従来は、文書所有者は、コミットメントを作成せずに編集文書のみを作成することに留意されたい。その結果として、受領者には、公平な第三者の助けなしには、編集文字列の適切性にチャレンジを行う方法は存在しない。本発明の実施形態においては、文書所有者は、受領者がコミットメントに基づいて編集文字列にチャレンジを行って、これらの編集文字列が関心のある特定のトピック・ワードに属さないことを確認できるようにすることができる。また、本発明の実施形態において、本システムは、受領者にコミットメントを通信する前に、複数の編集文字列に対応する多数のコミットメントを組み合せてマークル・ハッシュ木の形式の単一のコミットメントにする。
【００１７】
本発明の幾つかの実施形態は、編集文書の受領者が、その編集文書中の未編集テキスト文字列の保全性を検証できるようにするシステムを提供する。このシステムは、受領者に、チャレンジを受けている未編集テキスト文字列に対応する元の文書からのコミットメントを供給する。このコミットメントは、受領者が、このコミットメントを編集文書の対応するテキスト文字列から生成された第２のコミットメントと比較することにより、未編集テキスト文字列が変更を加えられていないことを検証することを可能にする。
【００１８】
文書所有者が受領者側に、秘匿特権文書の集合をそれらの文書内容を変更せずに提供することを求められる特別な状況下では、理想的には文書所有者は、要求された文書を改竄するのに十分な時間を与えられるべきではない。本発明の実施形態は、文書集合に関するコミットメントを自動的に作成するシステムを提供する。このシステムは、文書所有者が短時間で大量の文書の集合に関するコミットメントを提供できるようにする。結果として、このシステムは、この文書集合の受領者が、文書所有者がこれらの文書を改竄できなくするのに十分に短時間で（即ち同日中に）、要求した文書に対するコミットメントを要求することを妥当なことにする。一旦、文書集合に関するコミットメントが発行されると、文書所有者は、これらの文書からの情報を編集する際に、もはや文書を改竄することはできない。
【００１９】
図１は、本発明の一実施形態による文書編集検証システム１００を示す。文書編集検証システム１００は、ワークステーション１０２、ワークステーション１０４、及び通信媒体１０６を含む。通信媒体１０６は、任意のタイプの有線又は無線の通信チャネルを含むことができる。本発明の一実施形態において、通信媒体１０６はインターネットを含む。
【００２０】
ワークステーション１０２は、計算機能を有する何らかのノードと、ワークステーション１０４と通信媒体１０６を介して通信するための通信機構１３６とを含むことができる。一実施形態において、ワークステーション１０２は、オペレーティング・システム１１２、コミットメント生成器１１４、編集ユーティリティ１１６、及び文字列生成器１１８を含む。編集ユーティリティ１１６は、文書所有者１０８が文書中の編集するテキスト領域を選択して、編集文書１３０を生成することを可能にする。次に、コミットメント生成器１１４は編集された領域に関する暗号コミットメント１２８を作成する。次いでワークステーション１０２は、編集文書１３０及びコミットメント１２８をワークステーション１０４に、通信媒体１０６を介して通信する。ワークステーション１０２がワークステーション１０４から、編集文書１３０の保全性に対するチャレンジを行うチャレンジ１３２を受信するとき、文字列生成器１１８が文字列１３４を作成し、ワークステーション１０２は、文字列１３４をワークステーション１０４に通信媒体１０６を介して通信することにより、チャレンジ１３２に応答する。
【００２１】
ワークステーション１０４は、計算機能を有する何らかのノードと、ワークステーション１０２と通信媒体１０６を介して通信するための通信機構１３８とを含むことができる。一実施形態において、ワークステーション１０４は、オペレーティング・システム１２０、編集分析器１２２、文字列検証器１２４、及びコミットメント生成器１２６を含む。ワークステーション１０４は、初めにコミットメント１２８及び編集文書１３０を、通信媒体１０６を介してワークステーション１０２から、受信する。編集分析器１２２は、受領者１１０が編集文書１３０中のテキスト領域の保全性に対するチャレンジを行えるようにし、トピック文字列に基づいてチャレンジ１３２を生成する。テキスト領域の保全性に対するチャレンジを行うときには、ワークステーション１０４はワークステーション１０２に、通信媒体１０６を介してチャレンジ１３２を通信する。次に、ワークステーション１０４はワークステーション１０２から、チャレンジ１３２に対応する文字列１３４を受信する。文字列検証器１２４が文字列１３４の保全性を検証した後、コミットメント生成器１２６が、トピック文字列に関するコミットメントをローカルに作成し、作成したコミットメントをコミットメント１２８と比較して、編集テキスト領域がトピック・ワードを含んでいるかどうかを判断する。
【００２２】
文書所有者１０８及び受領者１１０は、個人、個人のグループ、組織、組織のグループ、コンピューティング・システム、コンピューティング・システムのグループ、又は文書編集検証システム１００と相互作用できる任意の他のエンティティとすることができる。
【００２３】
本発明の種々の実施形態は種々の構成を用いることができ、文書編集検証システム１００において示される構成には限定されないことに留意されたい。
【００２４】
図２は、本発明の一実施形態による、文書を編集し、編集文書の受領者からのチャレンジに応答するプロセスを示すフローチャートを提示する。開始するには、文書所有者のシステムは最初に、文書中の編集される文字列に関するコミットメントを作成する（動作２０２）。このシステムは次に、編集文書及びこれらのコミットメントを、受領者に通信する（動作２０４）。
【００２５】
次にシステムは、編集文字列に対する１つ又はそれ以上のチャレンジを受領者から受信する（動作２０６）。本発明の一実施形態において、受領者は、トピックＴを多数のトピック文字列ＳTに参照により拡張する。次いで受領者は、編集文字列がこれらのトピック文字列のうちの１つではないことを確認するための、編集文字列に対するチャレンジをこれらのトピック文字列から生成する。
【００２６】
最後に、システムは、受領者からのチャレンジに応答する（動作２１０）。これらの応答に基づいて、受領者は編集の適切性を確認することができる。
【００２７】
図３は、本発明の一実施形態による、図２の動作２０２から展開する、文書中の編集文字列に関するコミットメントを作成するプロセスを示すフローチャートを提示する。最初に、システムは、未編集文書の文字列Ｍiを選択するが、ここでｉは文字列の指標を示す（動作３０２）。次いでシステムは、秘密鍵Ｋに基づいて文字列連結（Ｍi｜｜ｉ）に逆方向の落とし戸付き一方向性関数を適用することにより、文字列ＭiからＲi＝ｆK-1（Ｍi｜｜ｉ）である文字列Ｒiを作成する（動作３０４）。落とし戸付き一方向性関数は、逆方向の秘密落とし戸を有する一方向性関数である。秘密鍵Ｋを知らなければ、この関数を順方向に計算することは容易であるが、逆方向に計算することは難しい。ここで、文書所有者のシステムは秘密鍵Ｋを所有し、従って、Ｒi＝ｆK-1（Ｍi｜｜ｉ）を計算することができる。秘密鍵Ｋを有しないシステムに関しては、順方向に関数（即ち、ｆK）を計算できるだけである。
【００２８】
後の段落で説明するように、文字列Ｒiはコミットメントが隠れていることを保証するために用いられる。文字列Ｍiはｉと連結されてユニークな文字列Ｍi｜｜ｉを効果的に作成し、このＭi｜｜ｉが、Ｍi＝Ｍi+1であるとき、Ｍiと関連する文字列ＲiがＭi+1と関連するＲi+1とは異なるユニークなものであることを保証する。さらに、落とし戸付き一方向性関数を使用することで、コミットメントはテスト可能となる。一実施形態において、文書所有者のシステムは公開鍵・秘密鍵機構を用いることができる。この実施形態においては、文書所有者のシステムは公開／秘密鍵ペアを作成し、秘密鍵Ｋを保管して、公開鍵Ｋ’を受領者に公開する。この機構を用いることにより、受領者は公開鍵Ｋ’を用いて、ＲiからＭiを計算することができる（そして、それにより、Ｒiが文字列Ｍiから生成されていることを検証することができる）。本発明の実施形態において、文書所有者はいつでも公開／秘密鍵ペアを変更することができる。これらの実施形態の変形は、文書所有者が異なる召喚状、異なる文書に対して、又は同一文書の異なる節に対してさえも、異なる公開／秘密鍵ペアを用いることを可能にする。
【００２９】
次に、システムは、Ｒiと連結されたＭiのハッシュを計算し（動作３０６）、Ｍiに関するコミットメントＣi＝Ｃ（Ｍi｜｜ｉ，Ｒi）を作成する。Ｍiに対するコミットメントを計算するのにＲiをランダムネスとして用いることにより、システムは、コミットメントが何らかの力ずくの辞書ベースのクラッキング法によりクラッキングされることを効果的に防止できることに留意されたい。殆どの編集文字列は辞書内に見出すことのできる単語を含むので、この特徴は重要である。また、文字列Ｍiをｉと連結することは、Ｍi＝Ｍi+nであるときに、Ｍiに関するコミットメントがＭi+nに関するコミットメントと区別されるユニークなものであることを保証するユニークな文字列Ｍi｜｜ｉを効果的に作成することに留意されたい。本発明の一実施形態において、メッセージ符号化機構が、一義的な連結解除を保証する形式でＭiをｉと連結する。この実施形態の一変形においては、メッセージ符号化機構は、ｉに関する全ての文字列の値が所定の文字長を有することを保証する。この文字列Ｍi｜｜ｉのユニーク性は、文書所有者が未編集テキストのコミットメントをも受領者に提供した場合に、受領者が対応するコミットメントを同一の文字列データを有する未編集テキスト領域の別のコミットメントと比較することによって、編集文字列の内容を推定することを防ぐことができる。
【００３０】
対応するコミットメントを有しない編集文字列がさらに存在する場合には（動作３０８）、システムは動作３０２に戻り、別のコミットメントを作成する。一実施形態においては、文書所有者は、随意に、文書中の全ての文字列に関するコミットメントを一度に生成し、次いで編集する文字列を選択することができることに留意されたい。文書所有者のシステムは、次いで、編集文書と、全ての文字列（編集及び未編集）に関するコミットメントとの両方を受領者に通信し、それにより、受領者が編集文字列にチャレンジを行うと共に、未編集文字列を確認することを可能にすることができる。
【００３１】
図４は、本発明の一実施形態による、図２の動作２１０から展開する、編集文書の受領者からのチャレンジに応答するプロセスを示すフローチャートを提示する。システムは、未編集文字列の保全性に関するチャレンジを受信するか、又は編集文字列に対する、トピック文字列Ｔについてのチャレンジを受信することができる。
【００３２】
システムが未編集文字列Ｍiの保全性に関するチャレンジを受信するとき（動作４０２）、システムは、対応する文字列Ｒiを受領者に通信する（動作４０４）。そうすることにより、システムは、Ｒiが実際に文字列Ｍiから作成されたことを受領者が検証できるようにする。受領者は一方向性落とし戸関数を順方向に適用することにより、ＲiがＭiから計算されることを容易に検証できることに留意されたい。Ｒiを検証した後、受領者は次いで、文字列Ｒiをランダムネスとして用い、文字列Ｍiに関するコミットメントを計算することができる。本発明の一実施形態において、システムは、（Ｍi｜｜Ｒi）のハッシュを作成することにより、文字列Ｍiに関するコミットメントを計算する。次に受領者は計算されたコミットメントを受信したコミットメントと比較して、文字列Ｍiが改竄されていないことを検証することができる。
【００３３】
システムが、編集文字列Ｍiに対する、トピック文字列Ｔについてのチャレンジを受信するとき（動作４０６）、システムは、連結（Ｔ｜｜ｉ）に一方向性落とし戸関数を逆方向に適用することにより、文字列Ｔに関する文字列ＲTを作成する（ＲT＝ｆK-1（Ｔ｜｜ｉ））（動作４０８）。次いで、システムは文字列ＲTを受領者に通信する（動作４１０）。そうすることにより、文書所有者のシステムは、ＲTが文書所有者のシステムによりトピック文字列Ｔに対して作成されたことを受領者が検証できるようにする。受領者は次に、トピック文字列Ｔに関するコミットメントを計算することができ、これを文書所有者から受信した編集文字列Ｍiに関するコミットメントと比較することができる。
【００３４】
チャレンジがさらに存在する場合には（動作４１２）、システムは進行して別のチャレンジに応答する。
【００３５】
図５は、本発明の一実施形態による、編集文書を受信し、その編集文書に対する多数のチャレンジを開始するプロセスを示すフローチャートを提示する。最初にシステムは、文書所有者からコミットメントの集合を受信する（動作５０２）。これらのコミットメントは文書中の多数の文字列に対応する。コミットメントは、編集文字列と未編集文字列の両方に対応することができることに留意されたい。次に、システムは文書所有者から、その文書の多数のテキスト領域が編集された編集文書を受信する（動作５０４）。
【００３６】
次に受領者は、チャレンジを開始するかどうかを決定する（動作５０６）。受領者が編集文書中のテキスト領域の保全性に対するチャレンジを行うことを望まない場合には、プロセスは終了する。他の場合には、受領者はチャレンジを行う編集文書のテキスト領域ｉを選択する（動作５０８）。テキスト領域ｉは編集テキスト領域又は未編集文字列とすることができることに留意されたい。システムは次いで、テキスト領域ｉが編集されているかどうかを判断する（動作５１０）。テキスト領域ｉが未編集である場合には、システムは、未編集文字列Ｍiに対して、それが変更されていないことを検証するチャレンジを行う（動作５１２）。他の場合には、システムは、編集領域ｉに対して、それが受領者により提供されたトピック文字列Ｔに対応しないことを検証するチャレンジを行う（動作５１４）。
【００３７】
最後にシステムは動作５０６に戻り、受領者は別のチャレンジを開始するかどうかを決定することができる。
【００３８】
図６は、本発明の一実施形態による、図５の動作５１２から展開する、未編集文字列Ｍiに対するチャレンジを行うプロセスを示すフローチャートを提示する。システムは最初に、未編集文字列Ｍiに関するチャレンジを文書所有者に通信する（動作６０２）。このチャレンジに応じて、システムは文書所有者から文字列Ｒiを受信する（動作６０４）。通常の動作においては、文字列Ｒi（Ｒi＝ｆK-1（Ｍi｜｜ｉ））は文書所有者が未編集文字列Ｍiに対するコミットメントを作成するときに作られることに留意されたい。次にシステムは、公開鍵Ｋ’に基づいて文字列Ｒiに順方向に落とし戸付き一方向性関数ｆKを適用する、即ちＭi｜｜ｉ＝ｆK'（Ｒi）を得ることにより、文字列Ｒiが文字列連結（Ｍi｜｜ｉ）に対応することを検証する（動作６０６）。文字列Ｒiが文字列Ｍiに対応することを検証することで、システムは、文書所有者が、不正なチャレンジ結果をもたらし得る恣意的な文字列Ｒ’を提供していないことを保証することができる。
【００３９】
次にシステムは文字列Ｒiをランダムネスとして用いて暗号コミットメントＣ’（Ｍi｜｜ｉ，Ｒi）を作成する（動作６０８）。システムは、コミットメントＣ’（Ｍi｜｜ｉ，Ｒi）が、文書所有者から以前に受信した（図５の動作５０２参照）元のコミットメントＣ（Ｍi｜｜ｉ，Ｒi）と同一であるかどうかを判断する（動作６１０）。同一であれば、システムは文字列Ｍiに検証済みのラベルを付ける（動作６１２）。他の場合には、２つのコミットメントが同一でなければ、システムは文字列Ｍiが改竄されていると識別し、システムは文字列Ｍiに改竄のラベルを付ける（動作６１４）。
【００４０】
図７は、本発明の一実施形態による、図５の動作５１４から展開する、編集領域ｉに対するチャレンジを行うプロセスを示すフローチャートを提示する。システムは最初に、編集領域ｉが文字列Ｔに対応しないことを検証するために、編集領域ｉに対するチャレンジとトピック文字列Ｔを文書所有者のシステムに通信する（動作７０２）。このチャレンジに応じて、システムは文書所有者から文字列ＲTを受信する（動作７０４）。通常の動作中は、文字列ＲTは、受領者が編集文書に含まれることを予期しないトピック文字列Ｔに対応する。文書所有者のシステムは、秘密鍵を用いて連結（Ｔ｜｜ｉ）に逆方向に落とし戸付き一方向性関数を適用することにより、ＲTを生成することに留意されたい（即ち、ＲT＝ｆK-1（Ｔ｜｜ｉ））。次にシステムは、公開鍵Ｋ’に基づいて文字列ＲTに順方向に落とし戸付き一方向性関数ｆKを適用することにより（即ち、Ｔ＝ｆK'（ＲT））、文字列ＲTが文字列連結（Ｔ｜｜ｉ）に対応するかどうかを検証する（動作７０６）。文字列ＲTが文字列連結（Ｔ｜｜ｉ）に対応することを検証することで、システムは、文書所有者が不正なチャレンジ結果をもたらす恣意的な文字列ＲT’を提供してはいないことを保証することができる。
【００４１】
次にシステムは文字列ＲTをランダムネスとして用いて対応するコミットメントＣ’（Ｔ｜｜ｉ，ＲT）を作成する（動作７０８）。さらにシステムは、計算したコミットメントを、文書所有者から以前に受信した（図５の動作５０２参照）元のコミットメントＣ（Ｍi｜｜ｉ，Ｒi）と比較する（動作７１０）。２つのコミットメントが同一でなければ、システムは編集テキスト領域ｉがトピック文字列Ｔと同じではないことを検証し、そのテキスト領域ｉに適切編集のラベルを付ける（動作７１２）。他の場合には、２つのコミットメントが同一であれば、システムは編集テキスト領域ｉがトピック文字列Ｔに対応すると判断し、そのテキスト領域ｉに不適切編集のラベルを付ける（動作７１４）。
【００４２】
一実施形態において、受領者のシステムは、所与のトピックに属するトピック文字列のリストを推論により生成することができる。例えばシステムは、既知のトピック・ワードを用いてコーパス（ウェブなどの）に対するキーワード検索を発行することができる。次いでシステムは検索結果を分析し、同じトピックに属する多数の単語又は語句を抽出することができる。一実施形態において、システムは様々なテキスト・マイニング技術、例えば、検索結果中の用語に関する用語頻度−逆文書頻度（ＴＦ−ＩＤＦ）スコアの計算を用いてトピック文字列のリストを生成する。
【００４３】
図８は、本発明の一実施形態による、編集文書の保全性の検証を促進するコンピュータ・システムを示す。コンピュータ・システム８０２は、プロセッサ８０４、メモリ８０６、及び記憶装置８０８を含む。コンピュータ・システム８０２はまた、ネットワーク８２４及び表示装置８２２に接続される。一実施形態において、ネットワーク８２４はインターネットを含む。記憶装置８０８は、オペレーティング・システム８１０、文書編集アプリケーション８１２、及び未編集文書８１６をストアする。文書編集アプリケーション８１２はＧＵＩモジュール８１４を含み、編集文書８１８及び多数のコミットメント８２０を作成し、これらもまた記憶装置８０８にストアすることができる。ネットワーク８２４にはさらにクライアント８２６が接続され、このクライアントは一実施形態において編集文書８１８及びコミットメント８２０の受領者である。
【００４４】
動作中に、文書編集アプリケーション８１２は記憶装置８０８からメモリ８０６にロードされ、プロセッサ８０４により実行される。文書編集アプリケーション８１２は、文書所有者が、未編集文書８１６から編集するテキスト領域を選択し、編集文書８１８を生成し、編集テキスト領域に関するコミットメント８２０を作成することを可能にする。次いでコンピュータ・システム８０２は、編集文書８１８及びコミットメント８２０をクライアント８２６に、ネットワーク８２４を介して通信する。コンピュータ・システム８０２が、編集文書８１８の保全性に対するチャレンジを行うクライアント８２６からチャレンジを受信するとき、文書編集アプリケーション８１２は、クライアント８２６がチャレンジを実施するのに用いることができる文字列８２１を作成し、コンピュータ・システム８０２はネットワーク８２４を介してクライアント８２６に文字列８２１を通信する。
【００４５】
幾つかの実施形態においては、クライアント８２６は編集文書８１８中のテキスト領域の編集に対するチャレンジを行うことができる。それを行う際に、クライアント８２６はネットワーク８２４を介してコンピュータ・システム８０２にトピック・ワードを通信する。次に、クライアント８２６はコンピュータ・システム８０２から、チャレンジに対応するコミットメント８２０及び文字列８２１を受信する。クライアント８２６は文字列８２１の保全性を検証し、チャレンジに対応するコミットメントをローカルに作成し、作成したコミットメントをコミットメント８２０と比較して、編集テキスト領域がトピック・ワードを含んでいるかどうかを判断する。
【００４６】
幾つかの実施形態においては、クライアント８２６は編集文書８１８中の未編集テキスト領域の保全性に対するチャレンジを行うことができる。それを行う際に、クライアント８２６はネットワーク８２４を介してコンピュータ・システム８０２に編集文書８１８中のテキスト位置を通信する。次いで、クライアント８２６はコンピュータ・システム８０２から、チャレンジに対応するコミットメント８２０及び文字列８２１を受信する。クライアント８２６は文字列８２１の保全性を検証し、チャレンジに対応するコミットメントをローカルに作成し、作成したコミットメントをコミットメント８２０と比較して、テキスト領域が改竄されているかどうかを判断する。
【符号の説明】
【００４７】
１００：文書編集検証システム
１０２、１０４：ワークステーション
１０６：通信媒体
１０８：文書所有者
１１０：受領者
１１２：オペレーティング・システム
１１４、１２６：コミットメント生成器
１１６：編集ユーティリティ
１１８：ランダム文字列生成器
１２０：オペレーティング・システム
１２２：編集分析器
１２４：ランダム文字列検証器
１２８：コミットメント
１３０：編集文書
１３２：チャレンジ
１３４：文字列
１３６、１３８：通信機構
８０２：コンピュータ・システム
８０４：プロセッサ
８０６：メモリ
８０８：記憶装置
８１０：オペレーティング・システム
８１２：文書編集アプリケーション
８１４：ＧＵＩモジュール
８１６：未編集文書
８１８：編集文書
８２０：コミットメント
８２１：文字列
８２２：表示装置
８２４：ネットワーク
８２６：クライアント（受領者）
【図１】
0005415795.tif 000002
【図２】
0005415795.tif 000003
【図３】
0005415795.tif 000004
【図４】
0005415795.tif 000005
【図５】
0005415795.tif 000006
【図６】
0005415795.tif 000007
【図７】
0005415795.tif 000008
【図８】
0005415795.tif 000009