(57)【要約】【課題】  内容を第三者に開示することなく、文書の内容と存在を簡単に立証することが可能な電子公証システムを提供する。【解決手段】  所定の期間中に作成された文書のハッシュ値とその文書が記録された時刻の組をユーザごとに準備する工程と、前記文書のハッシュ値と文書が記録された時刻の組から、それぞれのユーザの混合ハッシュ値を演算する工程と、前記ユーザの混合ハッシュ値から、部分混合ハッシュ値を生成しながら、最終的に前記所定期間に対応する総ハッシュ値を演算する工程と、前記総ハッシュ値を公表する工程と、前記ユーザそれぞれに、対応するユーザの文書のハッシュ値と時刻の組と、総ハッシュ値を計算するために必要となる最小の部分混合ハッシュ値とを公証記録票として提供する工程と、を含む。【選択図】  なし【特許請求の範囲】
【請求項１】
所定の期間中に作成された文書のハッシュ値とその文書が記録された時刻の組をユーザごとに準備する工程と、
前記文書のハッシュ値と文書が記録された時刻の組から、それぞれのユーザの混合ハッシュ値を演算する工程と、
前記ユーザの混合ハッシュ値から、部分混合ハッシュ値を生成しながら、最終的に前記所定期間に対応する総ハッシュ値を演算する工程と、
前記総ハッシュ値を公表する工程と、
前記ユーザそれぞれに、対応するユーザの文書のハッシュ値と時刻の組と、総ハッシュ値を計算するために必要となる最小の部分混合ハッシュ値とを公証記録票として提供する工程と、
を含むことを特徴とする電子公証方法。
【請求項２】
ユーザに提供された公証記録票から計算した総ハッシュ値が、公表された総ハッシュ値と合致することを確認することにより、当該公証記録票が、総ハッシュ値が公表された日に存在していたことを証明することを特徴とする請求項１に記載された電子公証方法。
【請求項３】
ユーザに提供された文書のハッシュ値が、公証記録票に記載された値と合致することを確認することにより、当該文書が公証記録票が生成された日に存在していたことを証明することを特徴とする請求項１に記載された電子公証方法。
【発明の詳細な説明】
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、電子暗号化技術を用いた電子公証システムおよび方法に関し、詳しくは、過去の特定の時点で成立していたか否かを電子的に立証するための電子公証方法に関する。
【背景技術】
【０００２】  近年、急速なスピードで技術開発が行われており、アイディアや発明の着想の先行性がビジネスに大きな影響を与えることとなっている。これに伴ってアイディアや発明の着想が過去の特定の時点で成立していたか否かを電子的に立証する要望が高まってきている。例えば、他人の登録特許発明が存在していた場合、自己あるいは特許権者以外の他人が、先に同一の内容を着想し公知化していることが立証できれば、この登録発明の無効理由となりうる。その他、様々な法律行為の時間的経緯を立証する証拠として使用することも可能となる。【０００３】  他方、ネットワークの普及により、小説・論文・絵画・楽曲等の著作物がネットワーク上等でデジタルコンテンツとして発表されることも多くなっている。ところが、デジタル技術による複製技術も併せて発達しているため、デジタルコンテンツとしての著作物のオリジナリティを立証することが非常に困難となってきている。このため、これらの著作物のオリジナリティや同一性を立証するために、その著作物が過去の特定の時点で存在していたか否かを電子的に立証する要望が高まってきている。【０００４】  上記要望に対して、従来、公開鍵暗号の技術を用いて、内容と存在を証明すべき文書を公証人に開示し、公証人が文書の一方向性のハッシュ値を計算して公証人の秘密鍵で電子署名する技術が提案されている（特許文献１参照）。この技術によれば、必要に応じて、電子署名が公証人によりなされたことを確認することができる。
【特許文献１】    特開２００１−５１５６１２号公報
【発明が解決しようとする課題】
【０００５】  しかしながら、上記特許文献１に記載された方法では、秘密鍵が漏洩した場合に、公証人により秘密鍵を用いて署名された様々な文書や音声や映像を含む著作物（以下、単に文書という）が、公証人自身が漏洩以前に署名したものであるのか、漏洩された秘密鍵を用いて不正に署名されたものであるのかの判別が不可能であるという問題があった。また、公証人が不正直である場合には、文書に意図的に古い時刻を付与して署名することを防止できなかった。
【０００６】  また、上記特許文献１に記載された方法では、実際に証明する時点ではなく、公証人が署名する時点で公証人に対して文書の内容を開示する必要があった。公証人は通常は信用に足る人物・組織であることが仮定されているが、文書の性格によっては開示が必ずしも好ましいものではない場合もあり得る。
【０００７】  さらに、そもそも、上記特許文献１に記載された方法では、各文書に対して１件ごとに署名が必要であるため、日々発生する膨大な量の、個人間の通信・日記・社内内部文書やメモ・原稿の下書き・スケッチ・修作等にいちいち公証人の署名を必要とするため、適用するには煩雑に過ぎるという問題があった。
【０００８】  そこで、上記課題に鑑み、本発明は、内容を第三者に開示することなく文書の内容と存在を簡単に立証することが可能な電子公証方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】  上記目的を達成するため、本発明の電子公証方法は、
（ａ）所定の期間中に作成された文書のハッシュ値とその文書が記録された時刻の組をユーザごとに準備する工程と、
（ｂ）前記文書のハッシュ値と文書が記録された時刻の組から、それぞれのユーザの混合ハッシュ値を演算する工程と、
（ｃ）前記ユーザの混合ハッシュ値から、部分混合ハッシュ値を生成しながら、最終的に前記所定期間に対応する総ハッシュ値を演算する工程と、
（ｄ）前記総ハッシュ値を公表する工程と、
（ｅ）前記ユーザそれぞれに、対応するユーザの文書のハッシュ値と時刻の組と、総ハッシュ値を計算するために必要となる最小の部分混合ハッシュ値とを公証記録票として提供する工程と、
を含むことを特徴とする。
【００１０】  なお、本明細書では、「ハッシュ関数」とは与えられた原文から固定長の疑似乱数を生成する演算手法のうち、不可逆な一方向関数を含むものを示すものとする。また、本明細書では、ハッシュ関数により生成された値を「ハッシュ値」と呼ぶ。ハッシュ関数は、不可逆な一方向関数を含むため、ハッシュ値から原文を再現することはできず、また同じハッシュ値を持つにも関わらず異なる内容を含むデータを作成することが事実上不可能である性質を持つ。このような、ハッシュ関数としては、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）等が公知であるが、同様の性質を持つものであれば利用可能であって、特に特定のハッシュ関数に限定されるものではない。
【発明を実施するための最良の形態】
【００１１】  以下、実施例のハッシュ関数を用いた文書公証システムを説明する。なお、以下の記述で「文書」と記載したものは、文字・図形・音声等あらゆる内容を含んでいてよく、単なるテキストデータには限られないものとする。【００１２】  はじめに、あるユーザ１が所定の時間内（例えば１日）に、ｎ１個の文書を作成する場合を考える。そして、文書に対応するハッシュ値をＤ１＿１，Ｄ１＿２・・・Ｄ１＿ｎ１と表し、各文書が作成された時刻をＴ１＿１，Ｔ１＿２・・・Ｔ１＿ｎ１と表す。同様に、ユーザ２が１日にｎ２個の文書を作成する場合は、文書をＤ２＿１，Ｄ２＿２・・・Ｄ２＿ｎ２と表し、各文書が作成された時刻をＴ２＿１，Ｔ２＿２・・・Ｔ２＿ｎ２と表す。以下、同様の規則でユーザと作成時刻の組を記号で表すこととする。この様子を模式的に表すと、次のようになる。【００１３】
2005108171.tif 000002
【００１４】
2005108171.tif 000003
【００１５】  ここで、指定のハッシュ関数｛例えば、ＳＨＡ−１（Ｓｅｃｕｒｅ  Ｈａｓｈ  Ａｌｇｏｒｉｔｈｍ  １）、ＭＤ５（Ｍｅｓｓａｇｅ  Ｄｉｇｅｓｔ  ５）等｝を用いて、ハッシュ値を計算する。ここで、引数がＡのときに所定のハッシュ関数により計算された結果を、Ｈ（Ａ）と表すこととする。【００１６】  上記の状況で、ユーザ１に対して、Ｈ（Ｄ１＿１，Ｔ１＿１），Ｈ（Ｄ１＿２，Ｔ１＿２），・・・Ｈ（Ｄ１＿ｎ，Ｔ１＿ｎ１）を演算し、これらのハッシュ値を広く頒布されている刊行物（新聞）に公表することにより、公証人の記録が改竄されていないことが証明され、これによって特定の文書がある時点で少なくとも存在していたことを立証することが可能となる。しかしながら、上記の場合、各文書にそれぞれ１つのハッシュ値が発生するため、例えば、一日あたり百万人のユーザが各々３０個の文書を作成したとすると、一日あたり３０００万個のハッシュ値が記録されることになる。このとき、各ハッシュ値が２００ビットの大きさとしても、７５０メガバイトの記録容量が必要となり、現実には不可能なデータの大きさであるといえる。【００１７】  そこで、本実施例ではハッシュ値の圧縮を行う。以下、ハッシュ値の圧縮プロセスについて説明する。【００１８】  第１に、ユーザごとに、その所定期間に作成された文書と時刻の組を結合し、この結合値に対してハッシュ関数を用いてハッシュ値を求める。このハッシュ値を「ユーザの混合ハッシュ値」と呼ぶ。【００１９】
2005108171.tif 000004
【００２０】
2005108171.tif 000005
2005108171.tif 000006
【００２１】  第２に、このようにして求められた各ユーザごとの混合ハッシュ値Ｈ１，Ｈ２・・・・Ｈｎに対して、２個づつの組を作り、さらなる混合ハッシュ値を計算する。なお、ユーザの数が奇数である場合は、そのまま残す規則とする。【００２２】
2005108171.tif 000007
【００２３】  この規則を繰り返すことにより、最終的にその期間中に作成された総ハッシュ値Ｈ＿ａｌｌを作成することができる。例えば、簡単のため１０人のユーザが一日に作成した文書を記録した場合を示す。【００２４】
2005108171.tif 000008
2005108171.tif 000009
【００２５】  このようにして、Ｈ１９を演算する。なお、Ｈ１９を求めるために用いたＨ１１〜Ｈ１８を「部分混合ハッシュ値」という。このＨ１９が「総ハッシュ値」となるため、Ｈ１９を例えば新聞紙上に公表する。一方、すべてのユーザには、対応する日の「公証記録票」を提供しておく。この「公証記録票」には、以下の内容が含まれる。以下、上記ユーザ総数が１０人の時のユーザ６を例に認証のプロセスを説明する。【００２６】  （１）ユーザが提出した全ての文書のハッシュ値と時刻の組
2005108171.tif 000010
（２）総ハッシュ値を計算するために必要となる最小の部分混合ハッシュ値
ユーザ６は、Ｈ１９を演算するために、さらにいくつかの部分混合ハッシュ値が必要である。そこで、部分混合ハッシュ値Ｈ５，Ｈ１４，Ｈ１５，Ｈ１６の提供を受け、これらの４つの部分混合ハッシュ値の情報を加えてＨ１９を演算する。【００２７】  なお、（２）の部分混合ハッシュ値の総数は、ユーザ総数がＮ人の場合でも、ｌｏｇ２Ｎ個のオーダーとなるので、非常に小さいデータとなる。例えば、ユーザ総数が１００万人の場合でも、ユーザに必要な部分混合ハッシュ値は２０個である。【００２８】  ユーザ６は、「公証記録票」を受け取った後、以下のプロセスにより、公表された総ハッシュ値に自身の文書のハッシュ値が含まれているか否かを確認することが可能となる。【００２９】  （１）「公証記録票」の文書のハッシュ値と時刻の組が、自身の提供した文書のハッシュ値と時刻の組と合致するか、を確認する。
（２）合致する場合、それらからユーザの混合ハッシュ値であるＨ６を計算する。
（３）Ｈ６と提供された部分混合ハッシュ値Ｈ５から、Ｈ１３を計算する。
（４）Ｈ１３と提供された部分混合ハッシュ値Ｈ１４から、Ｈ１７を計算する。
（５）Ｈ１７と提供された部分混合ハッシュ値Ｈ１６から、Ｈ１８を計算する。
（６）Ｈ１８と提供された部分混合ハッシュ値Ｈ１５から、Ｈ１９を計算する
（７）演算で得られたＨ１９と、公表されたＨ１９を比較し、合致するか確認する。【００３０】  上記（７）で両者が合致した場合、公表された総ハッシュ値には、ユーザ６の文書のハッシュ値が正しく反映されていることが確認される。このようにして各ユーザは、公証人の記録を参照することなく、また公証人に原文の内容を開示することなく、文書がある時点で存在していたことを立証することが容易となる。すなわち、ユーザが文書の存在立証を行おうとする場合、その文書とその文書のハッシュ値を記録した公証記録票、その日に公表された総ハッシュ値を用意して、上記プロセスと同様に混合ハッシュ値の合致を立証するだけでよい。【００３１】  以上の内容を詳しく説明する。先に説明したプロセスでポイントとなるのは、以下の点である。すなわち、
（ａ）公証記録票から計算した総ハッシュ値が、公表された総ハッシュ値と合致すること。
（ｂ）文書のハッシュ値が公証記録票に記載された値と合致すること。
である。【００３２】  （ａ）が成立した場合、この公証記録票が、総ハッシュ値が公表された日に存在していたことが証明される。公証記録票を後日、偽造してそこに記載されていた文書のハッシュ値と部分混合ハッシュ値とから計算される総ハッシュ値を、すでに過去に公表された総ハッシュ値と意図的に合致するように決定することは、ハッシュ関数の一方向性から不可能であるからである。【００３３】  （ｂ）が成立した場合、この文書が、公証記録票が生成された日に存在していたことが同様に証明される。文書のハッシュ値を、すでに過去に公表された総ハッシュ値とを整合させることは、ハッシュ関数の一方向性からやはり不可能であるからである。
【発明の効果】
【００３４】  以上、説明したように、本発明によれば、内容を第三者に開示することなく文書の内容と存在を簡単に立証することが可能な電子公証システムを提供することが可能となる。