(57)【要約】【課題】一般開示データと秘匿データを分離した管理を不要にしながら、秘匿データの漏洩等を防止する。【解決手段】送信元Ａは、送信データについて、送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵との管理テーブルを作成・管理し（Ｓ１，Ｓ２）、送信データのうち秘匿データは共有鍵で暗号化し（Ｓ３）、そのハッシュ値を送信元Ａの秘密鍵で暗号化し（Ｓ４）、これらに管理ＩＤを付したものを送信先Ｂとの間の公開鍵で暗号化して送信する（Ｓ５）。送信先Ｂは、送信されたデータを秘密鍵で復号し（Ｓ６）、秘匿データ内容を知りたいときは管理ＩＤを送信元Ａの公開鍵で暗号化して送信し（Ｓ７）、送信元Ａから送信データに対応する共有鍵を暗号化して送信してもらい（Ｓ８，Ｓ９）、この共有鍵の復号によって秘匿データを復号する（Ｓ１０，Ｓ１１）。【選択図】  図１
2004350084.tif 000002
【特許請求の範囲】
【請求項１】
送信元Ａからネットワーク経由で送信先Ｂに送信するデータを、公開鍵暗号方式および共有鍵暗号方式による暗号化により漏洩、改ざん、なりすまし、否認防止を確保するデータ交換方法において、
送信元Ａは、送信データがもつ一般開示データと秘匿データＤＡＴ１を一括して送信先Ｂに送信し、前記秘匿データＤＡＴ１は、送信元Ａが許諾するときに、送信先Ｂに開示するデータ交換手順を有することを特徴とするデータ交換方法。
【請求項２】
前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵とからなる管理テーブルを作成・管理する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、この復号で得る前記管理ＩＤを送信元Ａの公開鍵で暗号化して送信元Ａに送信する手順とを有し、
送信元Ａは、送信先Ｂから送信された暗号化管理ＩＤを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基に前記管理テーブルから得る前記共有鍵を送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順を有し、
送信先Ｂは、送信元Ａから送信された暗号化共有鍵を自身の秘密鍵で復号する手順と、この復号した共有鍵を使って前記秘匿データＤＡＴ１を復号する手順とを有することを特徴とする請求項１に記載のデータ交換方法。
【請求項３】
前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵とからなる管理テーブルを作成・管理する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、この復号で得る前記管理ＩＤおよび暗号化された前記送信データを送信元Ａの公開鍵で暗号化して送信元Ａに送信する手順とを有し、
送信元Ａは、送信先Ｂから送信された暗号化管理ＩＤおよび送信データを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基に前記管理テーブルから得る前記共有鍵で前記送信データを復号し、この送信データを送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順を有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、送信元Ａの公開鍵で前記ハッシュ値を復号する手順と、このハッシュ値と復号した前記秘匿データＤＡＴ１のハッシュ値と比較することで秘匿データが改ざんされていないことを確認する手順とを有することを特徴とする請求項１に記載のデータ交換方法。
【請求項４】
送信元Ａからネットワーク経由で送信先Ｂに送信するデータを、公開鍵暗号方式および共有鍵暗号方式による暗号化により漏洩、改ざん、なりすまし、否認防止を確保するデータ交換方法において、
送信元Ａは、送信データがもつ一般開示データと秘匿データを一括して送信先Ｂに送信し、前記秘匿データは、送信元Ａが管理を委託した第三者Ｘ経由で許諾するとき、もしくは第三者Ｘの状況判断で許諾するときに、送信先Ｂに開示するデータ交換手順を有することを特徴とするデータ交換方法。
【請求項５】
前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵を第三者Ｘの公開鍵で暗号化して第三者Ｘに送信する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
第三者Ｘは、送信元Ａから暗号化して送信された前記管理ＩＤと共有鍵を自身の秘密鍵で復号する手順と、この復号した管理ＩＤと共有鍵の関連テーブルを作成・管理する手順を有し、
送信先Ｂは、暗号化して送信された前記管理ＩＤと送信データを自身の秘密鍵で復号する手順と、復号した前記管理ＩＤを第三者Ｘの公開鍵で暗号化して第三者Ｘに送信する手順とを有し、
第三者Ｘは、送信先Ｂから暗号化して送信された管理ＩＤを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基にして前記関連テーブルから得る前記共有鍵を送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順とを有し、
送信先Ｂは、第三者Ｘから暗号化して送信された前記共有鍵を自身の秘密鍵で復号する手順と、この復号した共有鍵を使って送信元Ａから送信された前記秘匿データＤＡＴ１を復号する手順とを有することを特徴とする請求項４に記載のデータ交換方法。
【請求項６】
送信先Ｂは、前記共有鍵を使った前記秘匿データＤＡＴ１の復号後、送信元Ａの公開鍵によるハッシュ値を復号する手順と、このハッシュ値と復号した前記秘匿データＤＡＴ１のハッシュ値と比較することで秘匿データが改ざんされていないことを確認する手順とを有することを特徴とする請求項５に記載のデータ交換方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、インターネットなどのネットワーク経由でデータ交換する際に、公開鍵（公開キー）や共有鍵（共有キー）によってデータを暗号化し、その漏洩等を防止するデータ交換方法に関する。
【０００２】
【従来の技術】
物品を売買するような場合に、その売買契約などをネットワーク経由でおこなう事が増えてきている。例えば、図７に示すように、Ａ社からＢ社にネットワーク経由で送付データを送信し、これを受信したＢ社はネットワーク経由で受領データをＡ社に送信する。
【０００３】
この場合、ネットワーク経由でやり取りされるデータには、双方で物品を区別できるように設定した物品番号、価格、数量、契約日、納入予定日、納入日、などを含む事が多い。また、場合によってはその物品を構成している部品などの構成内容の一覧情報などを含む場合もあり得る。
【０００４】
ここで、ネットワーク経由でのデータ交換では、情報の漏れ、当事者になりすまし、データ交換の否認、データの改ざん等の問題がある。これらを防止するため、以下のようなデータの暗号化方式が利用されている。
【０００５】
（Ａ）公開鍵暗号方式
発信元でのデータの暗号化と、受信先でのデータの復号化に異なる鍵（ビット列）を使用する。
【０００６】
この方式は、公開鍵と秘密鍵という２種類の鍵を生成する。秘密鍵はそれを生成したユーザのみが保管し、他人には一切公開されない。公開鍵はデータの送信元となる可能性のある相手に広く配布または管理センターに預けて誰もが参照可能にしておく。
【０００７】
この方式の利用形態としては、データの送信元は公開鍵でデータを暗号化し、受信元は暗号化に使われた公開鍵に対応する秘密鍵を使って復号可能とすることで、送受信データを安全に相手に送り届ける。
【０００８】
他の利用形態としては、データの発信者が間違いなく本人であることを証明する電子署名として利用される。この電子署名では、発信元が自分の秘密鍵でデータを暗号化して相手に送信し、受信側は発信元が発行した公開鍵を使って復号し、これが正しく復号されれば送信元の秘密鍵で暗号化されたことの証明を得る。
【０００９】
（Ｂ）秘密鍵暗号方式
発信元でのデータの暗号化と、受信先でのデータの復号化に同一の鍵（ビット列）を使用する。
【００１０】
具体的には、送信データを一定の固定長ブロックに分割し、各ブロック毎に文字データの位置を一定の規則に従って入れ替える転置処理と、文字データを一定の変換表に基づいて異なる文字に置き換える換字処理などを組み合わせる。
【００１１】
この方式は、共有鍵暗号化方式と同様に、処理が比較的単純で、暗号化や復号を高速にできるが、送信元と受信先が同じ鍵を使う（共通鍵暗号方式）ため、鍵の管理が重要になる。
【００１２】
以上のような暗号化方式は、例えば電子契約方法に利用することが提案されている（例えば、特許文献１参照）。
【００１３】
この電子契約方法では、契約締結の意志表示を受けたユーザ端末Ｂから１回性の数を種とする固有データ（乱数）を生成し、これをユーザＡとの共通鍵で暗号化してユーザＡに送信し、ユーザＡは固有データを共通鍵で復号し、その固有データを鍵として契約内容を暗号化してユーザＢに送信し、ユーザＢに契約を申し込む。ユーザＢは契約内容を固有データをキーとして復号することで契約内容を知ることになる。さらに、ユーザＡは契約内容を自身の秘密鍵により定まるハッシュ関数で変換した認証データをユーザＢに送信する。
【００１４】
【特許文献１】
特開平１０−２４０８２６号
【００１５】
【発明が解決しようとする課題】
図７のようなデータ交換を行うにおいて、商品の受け取り側は、転売時の信頼性確保などの理由から、できるだけ構成内容の詳細情報を要求するのだが、商品の受け渡し側は、商品の構成内容そのものが商品価値であり企業秘密である、などの理由から詳細な構成内容を商品の受け取り側に安易に付与したくない、という状況が起こり得る。
【００１６】
これは、食料品の原材料などのように、外見からは判断できないが、原材料リストを見れば、大体の調理内容がわかってしまう、というような場合に顕著となる。例えば、図８は、商品データＡとして「スープの素」のみでは、その原材料に何がはいっているのか分からないが、商品データＢのようにその原材料リスト「豚、牛、鶏、こぶ、しいたけ」まで開示すると、「スープの素」の作り方のヒントを与えてしまう。
【００１７】
なお、ネットワーク経由でデータ交換する場合、データの機密保持には前記の公開鍵暗号方式や秘密鍵暗号方式を利用することができるが、上記の「スープの素」データのように、送信元が特別に許諾した送信先のみに詳細なデータ部分を開示する場合のデータ交換には対応できない。
【００１８】
この問題には、送信元は送信データを一般開示するデータ部分（例えばスープの素）と秘匿するデータ部分（例えば原材料リスト）とを分離してデータ管理することが考えられるが、多種多様の大量データをそれぞれ分離したデータ管理は複雑になるし、データ管理者の責任負担も大きくなり、秘匿データを誤って開示してしまう恐れがある。
【００１９】
本発明の目的は、一般開示データと秘匿データを分離した管理を不要にしながら、秘匿データの漏洩等を防止したデータ交換方法を提供することにある。
【００２０】
【課題を解決するための手段】
本発明は、前記の課題を解決するため、公開鍵暗号方式および共有鍵暗号方式により暗号化してデータ漏洩等を防止し、送信元は一般開示データと秘匿データを一括管理およびその送信を行い、送信先が秘匿データを知るには送信元が許諾するとき、または管理を委託した第三者を介して許諾されるときのみとするもので、以下のデータ交換方法を特徴とする。
【００２１】
（１）送信元Ａからネットワーク経由で送信先Ｂに送信するデータを、公開鍵暗号方式および共有鍵暗号方式による暗号化により漏洩、改ざん、なりすまし、否認防止を確保するデータ交換方法において、
送信元Ａは、送信データがもつ一般開示データと秘匿データＤＡＴ１を一括して送信先Ｂに送信し、前記秘匿データＤＡＴ１は、送信元Ａが許諾するときに、送信先Ｂに開示するデータ交換手順を有することを特徴とする。
【００２２】
（２）前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵とからなる管理テーブルを作成・管理する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、この復号で得る前記管理ＩＤを送信元Ａの公開鍵で暗号化して送信元Ａに送信する手順とを有し、
送信元Ａは、送信先Ｂから送信された暗号化管理ＩＤを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基に前記管理テーブルから得る前記共有鍵を送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順を有し、
送信先Ｂは、送信元Ａから送信された暗号化共有鍵を自身の秘密鍵で復号する手順と、この復号した共有鍵を使って前記秘匿データＤＡＴ１を復号する手順とを有することを特徴とする。
【００２３】
（３）前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵とからなる管理テーブルを作成・管理する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、この復号で得る前記管理ＩＤおよび暗号化された前記送信データを送信元Ａの公開鍵で暗号化して送信元Ａに送信する手順とを有し、
送信元Ａは、送信先Ｂから送信された暗号化管理ＩＤおよび送信データを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基に前記管理テーブルから得る前記共有鍵で前記送信データを復号し、この送信データを送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順を有し、
送信先Ｂは、送信元Ａから送信された暗号化送信データを自身の秘密鍵で復号する手順と、送信元Ａの公開鍵で前記ハッシュ値を復号する手順と、このハッシュ値と復号した前記秘匿データＤＡＴ１のハッシュ値と比較することで秘匿データが改ざんされていないことを確認する手順とを有することを特徴とする。
【００２４】
（４）送信元Ａからネットワーク経由で送信先Ｂに送信するデータを、公開鍵暗号方式および共有鍵暗号方式による暗号化により漏洩、改ざん、なりすまし、否認防止を確保するデータ交換方法において、
送信元Ａは、送信データがもつ一般開示データと秘匿データを一括して送信先Ｂに送信し、前記秘匿データは、送信元Ａが管理を委託した第三者Ｘ経由で許諾するとき、もしくは第三者Ｘの状況判断で許諾するときに、送信先Ｂに開示するデータ交換手順を有することを特徴とする。
【００２５】
（５）前記データ交換手順は、
送信元Ａは、送信データについて、送信先Ｂおよび送信内容を唯一決定するための管理ＩＤとこれに関連させた共有鍵を第三者Ｘの公開鍵で暗号化して第三者Ｘに送信する手順と、送信データのうち前記秘匿データＤＡＴ１を前記共有鍵で暗号化したもの、および該秘匿データＤＡＴ１のハッシュ値を送信元Ａの秘密鍵で暗号化したものを生成し、これらに前記管理ＩＤを一括した送信データを送信先Ｂとの間の公開鍵で暗号化して送信する手順とを有し、
第三者Ｘは、送信元Ａから暗号化して送信された前記管理ＩＤと共有鍵を自身の秘密鍵で復号する手順と、この復号した管理ＩＤと共有鍵の関連テーブルを作成・管理する手順を有し、
送信先Ｂは、暗号化して送信された前記管理ＩＤと送信データを自身の秘密鍵で復号する手順と、復号した前記管理ＩＤを第三者Ｘの公開鍵で暗号化して第三者Ｘに送信する手順とを有し、
第三者Ｘは、送信先Ｂから暗号化して送信された管理ＩＤを自身の秘密鍵で復号する手順と、この復号した管理ＩＤを基にして前記関連テーブルから得る前記共有鍵を送信先Ｂの公開鍵で暗号化して送信先Ｂに送信する手順とを有し、
送信先Ｂは、第三者Ｘから暗号化して送信された前記共有鍵を自身の秘密鍵で復号する手順と、この復号した共有鍵を使って送信元Ａから送信された前記秘匿データＤＡＴ１を復号する手順とを有することを特徴とする。
【００２６】
（６）送信先Ｂは、前記共有鍵を使った前記秘匿データＤＡＴ１の復号後、送信元Ａの公開鍵によるハッシュ値を復号する手順と、このハッシュ値と復号した前記秘匿データＤＡＴ１のハッシュ値と比較することで秘匿データが改ざんされていないことを確認する手順とを有することを特徴とする。
【００２７】
【発明の実施の形態】
本発明によるデータ交換方法は、送信データの内容を秘匿するために、公開鍵暗号方式および共有鍵暗号方式（または秘密鍵暗号方式）による暗号化手法を利用する。
【００２８】
公開鍵暗号方式では、前記のように、公開鍵と秘密鍵の２つの鍵のペアを使用する。１つの鍵を使用して暗号化したデータは、もう１つの鍵を使用して復号化することができる。２つの鍵のうちの１つを秘密鍵として保存し、もう１つを公開鍵として公開する。
【００２９】
鍵の使い方としては、図６の（ａ）に示すように、送信側Ａから受信側Ｂへデータを送信する場合、送信側ＡはＢの公開鍵ＰｕＢでデータＤＡＴ１を暗号化したデータＰｕＢ（ＤＡＴ１）を受信側Ｂに送信すれば、対応する秘密鍵ＰｒＢを持っている受信側Ｂのみがその内容ＤＡＴ１を復号して見ることができ、通信途中での漏洩を防ぐことができる。
【００３０】
また、図６の（ｂ）に示すように、送信側Ａが、自分の秘密鍵ＰｒＡでデータＤＡＴ１を暗号化してＢに送信すれば、受信側ＢはＡの公開鍵ＰｕＡで復号化して内容ＤＡＴ１を取り出せれば、そのデータはＰｕＡで暗号化されたデータであることがわかり、送信側Ａが送信したものであるということを確認することができ、これによって、なりすましや、否認を防止することができる。
【００３１】
さらに、図６の（ｃ）に示すように、送信側Ａは送信するデータＤＡＴ１のハッシュ関数値Ｈ（ＤＡＴ１））を求めて、それをＡの秘密鍵ＰｒＡで暗号化したものを、送信データＤＡＴ１の末尾に加えたもの全体をＢの公開鍵で暗号化して送信してやると、受信したＢがまず、自分の秘密鍵ＰｒＢで全体を復号した後に、末尾のデーターをＡの公開鍵ＰｕＡで復号してハッシュ値Ｈ（ＤＡＴ１）を取り出し、これをＡから送信されたデータのハッシュ値Ｈ（ＤＡＴ１）を求めた結果と比較し、一致を確認することで、漏洩、なりすまし、否認、改ざんを防止することができる。
【００３２】
一方で、共有鍵暗号方式（または秘密鍵暗号方式）は、前記のように、１つの秘密鍵で暗号化と復号が行える暗号化方式で、この秘密鍵を送信側、受信側双方で共有し、送信側では秘密鍵で暗号化し、受信側では同じ秘密鍵で復号化することで、共有鍵を持っているのが送信側と受信側に限られる、という前提があれば、漏洩、なりすまし、を防ぐことができる。
【００３３】
本発明では、これらの暗号化方式を利用して、内容秘匿と内容証明を可能にし、さらに一般開示データと秘匿データを分離した管理を不要にしたデータ交換を可能にする。以下、実施形態を詳細に説明する。
【００３４】
（実施形態１）
図１は、送信側が共有鍵を管理する方式により、データ送信の前処理と暗号化処理と事後内容検証のためのデータ交換手順を示す。
【００３５】
前処理は、まず、データ送信に際して、送信先および送信内容などを元に、送信側Ａが送信先Ｂと送信内容ＤＡＴを唯一決定するための固有の管理ＩＤを設定し（Ｓ１）、さらには送信先Ｂとの共有鍵を生成して管理ＩＤとの関連テーブルを作成しておく（Ｓ２）。
【００３６】
図２は、共有鍵管理テーブルの例を示し、データとして、送信先Ｂに送信するデータＤＡＴ１とＤＡＴ２があり、データＤＡＴ１は図示省略する送信先Ｃにも送信するデータとする場合、管理ＩＤはＩＤ＿Ｂ＿ＤＡＴ１、ＩＤ＿Ｂ＿ＤＡＴ２、ＩＤ＿Ｃ＿ＤＡＴ１を設定する。また、それらの共有鍵はＳｈｋ＿Ｂ＿ＤＡＴ１、Ｓｈｋ＿Ｂ＿ＤＡＴ２、Ｓｈｋ＿Ｂ＿ＤＡＴ１とする。
【００３７】
ここでは、送信先ＢにデータＤＡＴ１を送信する場合とする。このときの管理ＩＤはＩＤ＿Ｂ＿ＤＡＴ１、共有鍵はＳｈＫ＿Ｂ＿ＤＡＴ１となる。
【００３８】
次に、送信先Ｂへの送信データＤＡＴ１の暗号化処理は、図２の共有鍵管理テーブルを参照して、送信データＤＡＴ１を共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１で暗号化する（Ｓ３）。さらに、送信データＤＡＴ１のハッシュ値Ｈａｓｈ（ＤＡＴ１）を送信元Ａの秘密鍵ＰｒＫ＿Ａで暗号化したものを生成し（Ｓ４）、これらを一括したものを全送信データとし、全送信データをまとめて送信先Ｂの公開鍵ＰｕＫ＿Ｂで暗号化して送信する（Ｓ５）。
【００３９】
この例では、送信データ内容は図３に示すデータ構造になる。例えば、ＤＡＴ１は前記の商品名「スープの素」のうちの原材料リストとし、ＩＤ＿Ｂ＿ＤＡＴ１は商品「スープの素」そのものや商品番号とする。
【００４０】
次に、送信先Ｂは、送信元Ａとの間の秘密鍵になる公開鍵ＰｕＫ＿Ｂで受信データを復号して全送信データを得る（Ｓ６）。この復号で、送信先Ｂは、管理ＩＤ（＝ＩＤ＿Ｂ＿ＤＡＴ１）を知ることができるが、送信元Ａとの共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１は送信元Ａのみが知っているため、送信先Ｂは送信元Ａが送信したデータ（ＤＡＴ１）を知ることはできない。
【００４１】
この状態で、送信先ＢがどうしてもＤＡＴ１の内容を知りたい事が発生（内容検証の要求が発生）した場合、送信先Ｂは送信側Ａに事情を伝え、送信データの管理ＩＤ（＝ＩＤ＿Ｂ＿ＤＡＴ１）を送信元Ａの公開鍵で暗号化して送信し（Ｓ７）、これを送信元Ａはその秘密鍵で管理ＩＤを復号し（Ｓ８）、共有鍵管理テーブルから管理ＩＤに対応する共有鍵Ｓｈｋ＿Ｂ＿ＤＡＴ１を取り出し、この共有鍵を送信先Ｂの公開鍵で暗号化して送信する（Ｓ９）。
【００４２】
送信先Ｂは、その秘密鍵で復号することで（Ｓ１０）、共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を知ることができる。送信先Ｂは共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を使ってデータＤＡＴ１を復号し（Ｓ１１）、送信側Ａが送信したデータＤＡＴ１の内容を知ることができる。
【００４３】
したがって、送信元Ａは、一般開示データ（例えばスープの素）と秘匿データ（例えば原材料リスト）を分離した管理をすることなく送信先ＢやＣに送信するが、秘匿データは送信元Ａと送信先Ｂの同意の下で送信先Ｂのみが知ることができる。
【００４４】
（実施形態２）
図４は、本実施形態のデータ交換手順を示す。本実施形態が実施形態１と異なる部分は、送信先Ｂは、共有鍵Ｓｈｋ＿Ｂ＿ＤＡＴ１を送信側Ａに開示してもらうかわりに、共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１で暗号化されたデータＤＡＴ１を送信側Ａに送り返し、送信側Ａで復号した後に送り返してもらう点にある。
【００４５】
送信先Ｂは、復号した管理ＩＤ（＝ＩＤ＿Ｂ＿ＤＡＴ１）および共有鍵Ｓｈｋ＿Ｂ＿ＤＡＴ１で暗号化されたデータＤＡＴ１を送信側Ａの公開鍵で暗号化して送信する（Ｓ７’）。これを送信側Ａは自身の秘密鍵で復号し（Ｓ８’）、復号した管理ＩＤを基にして管理テーブルから得る共有鍵でデータＤＡＴ１を復号し、このデータＤＡＴ１を送信先Ｂの公開鍵で暗号化して送信する（Ｓ９’）。
【００４６】
送信先Ｂは、送信されたデータをその秘密鍵で復号し（Ｓ１０’）、データＤＡＴ１の内容を知ることができる。このとき、送信先Ｂは復号したデータＤＡＴ１が送信側Ａで改ざんされていないことを確認するため、送信側Ａの公開鍵Ｐｕｋ＿Ａを使ってハッシュ値を復号し（Ｓ１２）、これをデータＤＡＴ１のハッシュ値と比較することで復号したＤＡＴ１が改ざんされていないか確認する（Ｓ１３）。
【００４７】
本実施形態では、送信先Ｂはあらかじめハッシュ値を受け取っているので、送信側Ａで改ざんされることなくＤＡＴ１の内容を知ることができる。
【００４８】
（実施形態３）
本実施形態は、第三者が共有鍵を管理する方式の場合である。実施形態１または実施形態２では、送信側Ａが受信側Ｂの要求に対して共有鍵を開示しているが、状況によっては送信側Ａが共有鍵を管理しきれずに、紛失その他の理由から、開示不能となる場合があり得る。
【００４９】
本実施形態は、それを回避するために、共有鍵の管理を第三者Ｘが行うようにする。なお、本実施形態では、送信側Ａが不当な理由により開示を拒否するような場合にも対応可能とするために、第三者Ｘは、必要に応じて送信側Ａおよび受信側Ｂの要求に対して調停を行い、状況の判定結果に従って、共有鍵の開示を行う役割を担わせる事も可能としている。
【００５０】
図５は、本実施形態のデータ交換手順を示す。データ送信に関しては実施形態１または２と同様の手順（Ｓ１〜Ｓ５）を行って、暗号化データを受信側（送信先）Ｂに送信し、受信側Ｂはその秘密鍵で復号する（Ｓ６）。これに加え、送信側Ａは、第三者Ｘに対して、送信ＩＤであるＩＤ＿Ｂ＿ＤＡＴ１と、共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を第三者Ｘの公開鍵で暗号化して送信する（Ｓ１４）。第三者Ｘはそれらを自身の秘密鍵で復号し（Ｓ１５）、管理ＩＤと共有鍵の関連テーブルを作成・管理する（Ｓ１６）。
【００５１】
この状態で、送信先Ｂがどうしても内容を知りたい事が発生した場合には、送信先Ｂは、第三者Ｘの公開鍵で管理ＩＤ（＝ＩＤ＿Ｂ＿ＤＡＴ１）を暗号化して第三者Ｘに送信し、管理ＩＤに対応する共有鍵の問い合わせを行う（Ｓ１７）。
【００５２】
この問い合わせに対して、第三者Ｘは、管理ＩＤを自身の秘密鍵で復号し（Ｓ１８）、関連テーブルから共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を取り出し、これを受信側Ｂの公開鍵で暗号化して受信側Ｂに送信する（Ｓ１９）。
【００５３】
受信側Ｂは、第三者Ｘから送信された共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を自身の秘密鍵で復号し（Ｓ２０）、この共有鍵を使ってデータＤＡＴ１を復号し（Ｓ２１）、その内容を知ることができる。
【００５４】
なお、第三者Ｘは、受信側Ｂへの共有鍵の送信に際して、送信側Ａに共有鍵を開示してもいいかどうかを間い合わせる方法とすることができる。この問い合わせで、送信側Ａから許諾されたときに、受信側Ｂに共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を開示することで、第三者Ｘに鍵管理を委託する場合にもその安全性を高めることができる。
【００５５】
また、本実施形態において、受信側Ｂは、共有鍵ＳｈＫ＿Ｂ＿ＤＡＴ１を使った復号に際して、秘密鍵Ｐｒｋ＿Ａによるハッシュ値の復号で、データが改ざんされていないことの確認ができる。
【００５６】
【発明の効果】
以上のとおり、本発明によれば、送信元は一般開示データと秘匿データを一括管理およびその送信を行い、送信先が秘匿データを知るには送信元が許諾するとき、または管理を委託した第三者を介して許諾されるときのみとするため、送信元は一般開示データと秘匿データを分離した管理が不要になる。
【００５７】
また、公開鍵暗号方式および共有鍵暗号方式により暗号化してデータ交換するため、秘匿データの漏洩等が発生することはない。
【図面の簡単な説明】
【図１】本発明の実施形態１を示すデータ交換手順。
【図２】実施形態における共有鍵管理テーブルの例。
【図３】実施形態における送信データ構造。
【図４】本発明の実施形態２を示すデータ交換手順。
【図５】本発明の実施形態３を示すデータ交換手順。
【図６】本発明に係る公開鍵と共有鍵によるデータ交換方式。
【図７】従来のネットワーク経由データ交換方式のイメージ図。
【図８】内容開示の功罪のイメージ図。
【符号の説明】
Ａ…送信元（送信側）
Ｂ…送信先（受信側）
Ｘ…第三者
【図１】
2004350084.tif 000003
【図２】
2004350084.tif 000004
【図３】
2004350084.tif 000005
【図４】
2004350084.tif 000006
【図５】
2004350084.tif 000007
【図６】
2004350084.tif 000008
【図７】
2004350084.tif 000009
【図８】
2004350084.tif 000010