(57)【要約】【課題】  データを暗号化して安全に配送するとともに、配送するデータの完全性の検証を可能にし、かつデータの配送の事実の否認防止にも効果的な暗号化データ配送システム等を提供する。【解決手段】  データを送信する送信装置とデータを受信する受信装置が秘密鍵を共有し、この共有秘密鍵によって暗合化したデータを配送するとともに、送信装置では暗号化前のデータと共有秘密鍵から生成したＨＭＡＣ鍵を用いて演算したＭＡＣ値を、受信装置では復号化後のデータと共有秘密鍵から生成したＨＭＡＣ鍵を用いて演算したＭＡＣ値をそれぞれ管理サーバに送信し、管理サーバでＭＡＣ値の一致を確認することによって、配送したデータの完全性を検証することとあわせて、第三者機関である管理サーバの運営者による検証によって配送事実の否認防止を可能にする。【選択図】        図１
2011114520.tif 000002
【特許請求の範囲】
【請求項１】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する送信装置であって、
前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信手段と、
前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信する第１のＭＡＣ値送信手段と、を備えていて、
前記受信装置は、
前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信して、
前記管理サーバは、
前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認すること
を特徴とする暗号化データ配送のための送信装置。
【請求項２】
前記第１のＭＡＣ値送信手段は、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第１のＭＡＣ値を演算し、
前記受信装置において、
前記第２のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されること
を特徴とする請求項１記載の暗号化データ配送のための送信装置。
【請求項３】
乱数を発生させる乱数生成手段と、
前記管理サーバに前記暗号化データを送信する受信装置を識別する受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信するＤＨ公開鍵受信手段と、
前記乱数生成手段の生成した乱数値と前記受信装置と共有するＤＨパラメータから前記共有秘密鍵を生成する共有秘密鍵生成手段と、
前記乱数値と前記ＤＨ公開鍵から前記受信装置と共有する共有公開鍵を生成し、前記受信装置に送信する共有公開鍵送信手段と、を備えていて、
前記受信装置は、
前記ＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、
前記送信装置から前記共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、
前記管理サーバは、
前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信すること
を特徴とする請求項１又は２記載の暗号化データ配送のための送信装置。
【請求項４】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する受信装置であって、
前記送信装置から送信された暗号化データと前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記送信装置と共有する共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記送信装置において暗号化された配送データに復号化する暗号化データ復号手段と、
前記暗号化データ復号手段が復号化した配送データと前記送信装置と共有するＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信する第２のＭＡＣ値送信手段と、を備えていて、
前記送信装置は、
前記共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、
前記配送データと前記ＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、
前記管理サーバは、
前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認すること
を特徴とする暗号化データ配送のための受信装置。
【請求項５】
前記第２のＭＡＣ値送信手段は、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第２のＭＡＣ値を演算し、
前記送信装置において、
前記第１のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されること
を特徴とする請求項４記載の暗号化データ配送のための受信装置。
【請求項６】
前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成するＤＨ鍵生成手段と、
前記ＤＨ公開鍵を前記受信装置を識別する受信装置ＩＤとともに前記管理サーバに送信するＤＨ公開鍵送信手段と、
前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成する共有秘密鍵生成手段と、を備えていて、
前記管理サーバは、
前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信し、
前記送信装置は、
前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、
前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信すること
を特徴とする請求項４又は５記載の暗号化データ配送のための受信装置。
【請求項７】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する管理サーバであって、
前記送信装置から送信された第１のＭＡＣ値と前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けて記憶するＭＡＣ値記憶手段と、
前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認する配送確認手段と、を備えていて、
前記送信装置は、
前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、
前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、
前記受信装置は、
前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信すること
を特徴とする暗号化データ配送のための管理サーバ。
【請求項８】
前記受信装置から送信されたＤＨ公開鍵と前記受信装置を識別する受信装置ＩＤを受信し、前記ＤＨ公開鍵と前記受信装置ＩＤを関連付けて記憶するＤＨ公開鍵記憶手段を備えていて、
前記受信装置は、
前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、
前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、
前記送信装置は、
前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、
前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信すること
を特徴とする請求項７記載の暗号化データ配送のための管理サーバ。
【請求項９】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する送信装置に備えられる送信プログラムであって、前記送信装置に、
前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信するステップと、
前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信するステップと、を実行させ、
前記受信装置は、
前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信して、
前記管理サーバは、
前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認すること
を特徴とする暗号化データ配送のための送信プログラム。
【請求項１０】
前記第１のＭＡＣ値を前記管理サーバに送信するステップでは、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第１のＭＡＣ値を演算し、
前記受信装置において、
前記第２のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されること
を特徴とする請求項９記載の暗号化データ配送のための送信プログラム。
【請求項１１】
前記送信装置に、
乱数を発生させるステップと、
前記管理サーバに前記暗号化データを送信する受信装置を識別する受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信するステップと、
前記乱数を発生させるステップで生成した乱数値と前記受信装置と共有するＤＨパラメータから前記共有秘密鍵を生成するステップと、
前記乱数値と前記ＤＨ公開鍵から前記受信装置と共有する共有公開鍵を生成し、前記受信装置に送信するステップと、を実行させ、
前記受信装置は、
前記ＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、
前記送信装置から前記共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、
前記管理サーバは、
前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信すること
を特徴とする請求項９又は１０記載の暗号化データ配送のための送信プログラム。
【請求項１２】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する受信装置に備えられる受信プログラムであって、前記受信装置に、
前記送信装置から送信された暗号化データと前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記送信装置と共有する共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記送信装置において暗号化された配送データに復号化するステップと、
前記ステップで復号化した配送データと前記送信装置と共有するＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信するステップと、を実行させ、
前記送信装置は、
前記共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、
前記配送データと前記ＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、
前記管理サーバは、
前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認すること
を特徴とする暗号化データ配送のための受信プログラム。
【請求項１３】
前記第２のＭＡＣ値を前記管理サーバに送信するステップでは、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第２のＭＡＣ値を演算し、
前記送信装置において、
前記第１のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されること
を特徴とする請求項１２記載の暗号化データ配送のための受信プログラム。
【請求項１４】
前記受信装置に、
前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成するステップと、
前記ＤＨ公開鍵を前記受信装置を識別する受信装置ＩＤとともに前記管理サーバに送信するステップと、
前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成するステップと、を実行させ、
前記管理サーバは、
前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信し、
前記送信装置は、
前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、
前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信すること
を特徴とする請求項１２又は１３記載の暗号化データ配送のための受信プログラム。
【請求項１５】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する管理サーバに備えられる管理プログラムであって、前記管理サーバに、
前記送信装置から送信された第１のＭＡＣ値と前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けてＭＡＣ値記憶手段に記憶させるステップと、
前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認するステップと、を実行させ、
前記送信装置は、
前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、
前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、
前記受信装置は、
前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信すること
を特徴とする暗号化データ配送のための管理プログラム。
【請求項１６】
前記管理サーバに、
前記受信装置から送信されたＤＨ公開鍵と前記受信装置を識別する受信装置ＩＤを受信し、前記ＤＨ公開鍵と前記受信装置ＩＤを関連付けてＤＨ公開鍵記憶手段に記憶させるステップを実行させ、
前記受信装置は、
前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、
前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、
前記送信装置は、
前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、
前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信すること
を特徴とする請求項１５記載の暗号化データ配送のための管理プログラム。
【請求項１７】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムであって、
前記送信装置は、
前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信手段と、
前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信する第１のＭＡＣ値送信手段と、を備え、
前記受信装置は、
前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化する暗号化データ復号手段と、
前記暗号化データ復号手段が復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信する第２のＭＡＣ値送信手段と、を備え、
前記管理サーバは、
前記送信装置から送信された第１のＭＡＣ値と配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けて記憶するＭＡＣ値記憶手段と、
前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認する配送確認手段と、を備えること
を特徴とする暗号化データ配送システム。
【請求項１８】
暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバによって実行される暗号化データの配送方法であって、
前記送信装置が、前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信するステップと、
前記送信装置が、前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信するステップと、
前記管理サーバが、前記送信装置から送信された第１のＭＡＣ値と配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けてＭＡＣ値記憶手段に記憶させるステップと、
前記受信装置が、前記送信装置から送信された暗号化データと前記配送ＩＤを受信し、前記送信装置と共有する共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記送信装置において暗号化された配送データに復号化するステップと、
前記受信装置が、前記ステップで復号化した配送データと前記送信装置と共有するＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信するステップと、
前記管理サーバが、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認するステップと、
を有することを特徴とする暗号化データの配送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全かつ確実にデータを暗号化して配送する、暗号化データ配送のための送信装置、受信装置、及び管理サーバ、並びに暗号化データ配送のための送信プログラム、受信プログラム、及び管理プログラム、並びに暗号化データ配送システム、並びに暗号化データの配送方法に関するものである。
【背景技術】
【０００２】
電子メールやファイル等のデータを配送する際には、セキュリティ対策としてデータを暗号化することが広く行われている。データの暗号化には様々な方式があるが、その１つとして共有秘密鍵を用いる方式があり、秘密鍵を安全に共有するために、例えば、初回のメッセージの送信時に共有公開鍵から生成する共有秘密鍵を生成するために必要な初期鍵を鍵サーバから受信者に引渡し、以後は秘密鍵と送信者及び受信者の公開鍵から同一の共有秘密鍵を演算し、継続して送受信するメッセージを共有秘密鍵によって暗号化する発明が開示されている（特許文献１参照）。
【０００３】
また、受信したデータに改ざんや破損がないことを確認するために、ＭＡＣ（Message Authentication Code＝メッセージ認証符号）やＭＩＣ（Message Integrity Code＝メッセージ完全性符号）のアルゴリズムを用いて認証用のコードを生成し、配送するデータとあわせてＭＡＣ値等のコードを送信して、受信者側で受信したデータから演算されるＭＡ値等のコードと照合することによってデータの完全性を検証することが行われている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２９５３６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１記載の発明によると、データ（メッセージ）を暗号化して送信し、暗号化と復号化に用いる共有鍵を、鍵サーバを介することなく共有することができるので、一定の安全性を確保することには効果的である。しかしながら、データの改ざんや破損など完全性を検証する仕組みが開示されていないことに加えて、データが受信者に配送された事実を送信者の側で確実に把握し、受信者が配送事実を否認することを防止する仕組みも備えられていない。
【０００６】
こうした課題のうち、完全性を検証する仕組みについては、前述のＭＡＣ等のアルゴリズムを用いることとすればよいが、一般に配送するデータから演算されたＭＡＣ値等は配送するデータとともに受信者に送信され、受信者側でデータの検証が行われるため、受信者側でデータの完全性を確認することはできるものの、受信者がデータの完全性や配送の事実そのものを否認した場合に、送信者側で配送の事実等を証明することができず、受信者による配送事実の否認に対応することができない。逆に、送信者側が配送の事実を否認した場合に、受信者側で対応できないことも同様である。
【０００７】
また、特許文献１記載の発明は、初回の送信時には公開鍵とあわせて共有秘密鍵の生成に用いられる初期鍵が鍵サーバから提供されるため、鍵サーバにおいて公開鍵を取得すれば初回の暗号化に用いられる共有秘密鍵を生成することが可能であり、初回の暗号化には弱点を残すものとなっている。
【０００８】
本発明は、このような課題に対応するためになされたものであり、データを暗号化して安全に配送するのみでなく、配送するデータの完全性の検証を可能にするとともに、データの配送の事実の否認防止にも効果的な、暗号化データ配送のための送信装置、受信装置、及び管理サーバ、並びに暗号化データ配送のための送信プログラム、受信プログラム、及び管理プログラム、並びに暗号化データ配送システム、並びに暗号化データの配送方法を提供することを目的とするものである。
【課題を解決するための手段】
【０００９】
このような課題に対応するために、本発明においては、データを送信する送信装置とデータを受信する受信装置が秘密鍵を共有し、この共有秘密鍵から生成した暗号鍵、あるいは共有秘密鍵そのものを暗号鍵として用いることによって暗合化したデータを配送するとともに、送信装置では暗号化前のデータから演算したＭＡＣ値を、受信装置では復号化後のデータから演算したＭＡＣ値をそれぞれ管理サーバに送信し、管理サーバでＭＡＣ値の一致を確認することによって、配送したデータの完全性を検証することとあわせて、第三者機関である管理サーバの運営者による検証によって配送事実の否認防止を可能にしている。
【００１０】
このような特徴を有する本発明を構成する送信装置に関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する送信装置であって、前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信手段と、前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信する第１のＭＡＣ値送信手段と、を備えていて、前記受信装置は、前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信して、前記管理サーバは、前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認することを特徴とする暗号化データ配送のための送信装置である。
【００１１】
上記の送信装置に備えられる送信プログラムに関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する送信装置に備えられる送信プログラムであって、前記送信装置に、前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記暗号化データの配送を識別するために採番された配送ＩＤとともに、前記暗号化データを前記受信装置に送信する暗号化データ送信するステップと、前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信するステップと、を実行させ、前記受信装置は、前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信して、前記管理サーバは、前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認することを特徴とする暗号化データ配送のための送信プログラムである。
【００１２】
このような特徴を有する本発明を構成する受信装置に関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する受信装置であって、前記送信装置から送信された暗号化データと前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記送信装置と共有する共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記送信装置において暗号化された配送データに復号化する暗号化データ復号手段と、前記暗号化データ復号手段が復号化した配送データと前記送信装置と共有するＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信する第２のＭＡＣ値送信手段と、を備えていて、前記送信装置は、前記共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、前記配送データと前記ＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、前記管理サーバは、前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認することを特徴とする暗号化データ配送のための受信装置である。
【００１３】
上記の受信装置に備えられる受信プログラムに関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する受信装置に備えられる受信プログラムであって、前記受信装置に、前記送信装置から送信された暗号化データと前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記送信装置と共有する共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記送信装置において暗号化された配送データに復号化するステップと、前記ステップで復号化した配送データと前記送信装置と共有するＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信するステップと、を実行させ、前記送信装置は、前記共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、前記配送データと前記ＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、前記管理サーバは、前記送信装置から送信された第１のＭＡＣ値と配送ＩＤ、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記配送ＩＤが同一の第１のＭＡＣ値と第２のＭＡＣ値を対比して、前記第１のＭＡＣ値と前記第２のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認することを特徴とする暗号化データ配送のための受信プログラムである。
【００１４】
このような特徴を有する本発明を構成する管理サーバに関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する管理サーバであって、前記送信装置から送信された第１のＭＡＣ値と前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けて記憶するＭＡＣ値記憶手段と、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認する配送確認手段と、を備えていて、前記送信装置は、前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、前記受信装置は、前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信することを特徴とする暗号化データ配送のための管理サーバである。
【００１５】
上記の管理サーバに備えられる管理プログラムに関する発明は、暗号化データを送信する送信装置、前記暗号化データを受信する受信装置、前記暗号化データの配送を管理する管理サーバからなる暗号化データ配送システムを構成する管理サーバに備えられる管理プログラムであって、前記管理サーバに、前記送信装置から送信された第１のＭＡＣ値と前記暗号化データの配送を識別するために採番された配送ＩＤを受信し、前記第１のＭＡＣ値と前記配送ＩＤを関連付けてＭＡＣ値記憶手段に記憶させるステップと、前記受信装置から送信された第２のＭＡＣ値と配送ＩＤを受信し、前記第２のＭＡＣ値を、前記配送ＩＤと関連付けて前記ＭＡＣ値記憶手段に記憶された第１のＭＡＣ値と対比して、前記第２のＭＡＣ値と前記第１のＭＡＣ値の一致から前記配送データが前記受信装置に配送されたことを確認するステップと、を実行させ、前記送信装置は、前記受信装置と共有する共有秘密鍵から生成された暗号鍵を用いて配送する配送データを暗号化した暗号化データを生成し、前記配送ＩＤとともに、前記暗号化データを前記受信装置に送信し、前記配送データと前記受信装置と共有するＭＡＣ鍵から第１のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第１のＭＡＣ値を前記管理サーバに送信して、前記受信装置は、前記送信装置から送信された暗号化データと配送ＩＤを受信し、前記共有秘密鍵から生成された暗号鍵を用いて前記暗号化データを前記配送データに復号化して、復号化した配送データと前記ＭＡＣ鍵から第２のＭＡＣ値を演算し、前記配送ＩＤとともに、前記第２のＭＡＣ値を前記管理サーバに送信することを特徴とする暗号化データ配送のための管理プログラムである。
【００１６】
本発明において、完全性の検証と否認防止のために用いられるＭＡＣ値は、配送するデータと送信装置と受信装置が共有するＭＡＣ鍵から演算されるが、ＭＡＣ値の改ざんを防止して完全性の検証を確実にする効果、および送受信者の特定によって配送事実の否認を防止する効果を高める目的から、ＭＡＣ値を算出する鍵に共有秘密鍵から生成されるＨＭＡＣ（Keyed-Hashing for Message Authentication Code、ハッシュ関数を使って秘密鍵と組み合わせて演算するＭＡＣ）鍵を用いることが好ましい。
【００１７】
すなわち、本発明にかかる送信装置は、前記第１のＭＡＣ値送信手段は、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第１のＭＡＣ値を演算し、前記受信装置において、前記第２のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されることを特徴とすることもできる。
【００１８】
本発明にかかる送信プログラムは、前記第１のＭＡＣ値を前記管理サーバに送信するステップでは、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第１のＭＡＣ値を演算し、前記受信装置において、前記第２のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されることを特徴とすることもできる。
【００１９】
本発明にかかる受信装置は、前記第２のＭＡＣ値送信手段は、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第２のＭＡＣ値を演算し、前記送信装置において、前記第１のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されることを特徴とすることもできる。
【００２０】
本発明にかかる受信プログラムは、前記第２のＭＡＣ値を前記管理サーバに送信するステップでは、前記ＭＡＣ鍵に前記共有秘密鍵から生成されたＨＭＡＣ鍵を用いて第２のＭＡＣ値を演算し、前記送信装置において、前記第１のＭＡＣ値は、前記共有秘密鍵から生成されたＨＭＡＣ鍵をＭＡＣ鍵に用いて演算されることを特徴とすることもできる。
【００２１】
本発明では、データを送信する送信装置とデータを受信する受信装置で秘密鍵を共有することが前提となるが、この秘密鍵を安全に共有する方法として、秘密鍵そのものは送受信することなく、乱数と公開鍵から共有秘密鍵を生成するＤＨ（Diffie−Hellman）鍵共有方式がある。特にＤＨ鍵共有方式から派生したヒューズ（Hughes）による鍵共有方式はＤＨ鍵共有方式を根拠とする安全性を有し、かつ公開鍵と共有秘密鍵が独立に生成できる工夫がなされており、本発明の用途には好適である。
【００２２】
すなわち、本発明にかかる送信装置は、乱数を発生させる乱数生成手段と、前記管理サーバに前記暗号化データを送信する受信装置を識別する受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信するＤＨ公開鍵受信手段と、前記乱数生成手段の生成した乱数値と前記受信装置と共有するＤＨパラメータから前記共有秘密鍵を生成する共有秘密鍵生成手段と、前記乱数値と前記ＤＨ公開鍵から前記受信装置と共有する共有公開鍵を生成し、前記受信装置に送信する共有公開鍵送信手段と、を備えていて、前記受信装置は、前記ＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、前記送信装置から前記共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、前記管理サーバは、前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信することを特徴とすることもできる。
【００２３】
本発明にかかる送信プログラムは、前記送信装置に、乱数を発生させるステップと、前記管理サーバに前記暗号化データを送信する受信装置を識別する受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信するステップと、前記乱数を発生させるステップで生成した乱数値と前記受信装置と共有するＤＨパラメータから前記共有秘密鍵を生成するステップと、前記乱数値と前記ＤＨ公開鍵から前記受信装置と共有する共有公開鍵を生成し、前記受信装置に送信するステップと、を実行させ、前記受信装置は、前記ＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、前記送信装置から前記共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、前記管理サーバは、前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信することを特徴とすることもできる。
【００２４】
本発明にかかる受信装置は、前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成するＤＨ鍵生成手段と、前記ＤＨ公開鍵を前記受信装置を識別する受信装置ＩＤとともに前記管理サーバに送信するＤＨ公開鍵送信手段と、前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成する共有秘密鍵生成手段と、を備えていて、前記管理サーバは、前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信し、前記送信装置は、前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信することを特徴とすることもできる。
【００２５】
本発明にかかる受信プログラムは、前記受信装置に、前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成するステップと、前記ＤＨ公開鍵を前記受信装置を識別する受信装置ＩＤとともに前記管理サーバに送信するステップと、前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成するステップと、を実行させ、前記管理サーバは、前記受信装置から送信されたＤＨ公開鍵と受信装置ＩＤを受信し、前記送信装置から要求された受信装置ＩＤに対応するＤＨ公開鍵を前記送信装置に送信し、前記送信装置は、前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信することを特徴とすることもできる。
【００２６】
本発明にかかる管理サーバは、前記受信装置から送信されたＤＨ公開鍵と前記受信装置を識別する受信装置ＩＤを受信し、前記ＤＨ公開鍵と前記受信装置ＩＤを関連付けて記憶するＤＨ公開鍵記憶手段を備えていて、前記受信装置は、前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、前記送信装置は、前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信することを特徴とすることもできる。
【００２７】
本発明にかかる管理プログラムは、前記管理サーバに、前記受信装置から送信されたＤＨ公開鍵と前記受信装置を識別する受信装置ＩＤを受信し、前記ＤＨ公開鍵と前記受信装置ＩＤを関連付けてＤＨ公開鍵記憶手段に記憶させるステップを実行させ、前記受信装置は、前記送信装置と共有するＤＨパラメータからＤＨ公開鍵とＤＨ秘密鍵を生成し、前記ＤＨ公開鍵を前記受信装置ＩＤとともに前記管理サーバに送信し、前記送信装置から前記送信装置と共有する共有公開鍵を受信し、前記共有公開鍵と前記ＤＨパラメータと前記ＤＨ秘密鍵から前記共有秘密鍵を生成して、前記送信装置は、前記管理サーバに前記暗号化データを送信する受信装置の受信装置ＩＤに対応するＤＨ公開鍵の送信を要求して、前記管理サーバから前記ＤＨ公開鍵を受信し、乱数値を生成して前記乱数値と前記ＤＨパラメータから前記共有秘密鍵を生成し、前記乱数値と前記ＤＨ公開鍵から前記共有公開鍵を生成し、前記受信装置に送信することを特徴とすることもできる。
【００２８】
また、本発明は、本発明にかかる送信装置、受信装置、管理サーバから構成される暗号化データ配送システム、本発明にかかる送信装置、受信装置、管理サーバによって実行される暗号化データの配送方法として特定することもできる。
【発明の効果】
【００２９】
本発明によって、データを暗号化して安全に配送することに加えて、配送されたデータの改ざんや破損を検出して完全性の検証が可能になるとともに、データが配送された事実が第三者によって確認されることで、送信者又は受信者による配送事実の否認を防止することが可能になる。
【図面の簡単な説明】
【００３０】
【図１】本発明にかかる暗号化データ配送システムの実施形態の概要を示す図である。
【図２】本発明にかかる暗号化データ配送システムの構成を示すブロック図である。
【図３】本発明にかかる暗号化データ配送システムによるデータ配送の全体の流れを示す図である。
【図４】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第１の図である。
【図５】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第２の図である。
【図６】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第３の図である。
【図７】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第４の図である。
【図８】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第５の図である。
【図９】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第６の図である。
【図１０】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第７の図である。
【図１１】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第８の図である。
【図１２】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第９の図である。
【図１３】本発明にかかる暗号化データ配送システムによるデータ配送の流れを示す第１０の図である。
【図１４】ＤＨ（Diffie−Hellman）鍵共有方式から派生したヒューズ（Hughes）による鍵共有方式の概要を示す図である。
【発明を実施するための形態】
【００３１】
本発明を実施するための形態について、図面を用いて以下に詳細に説明する。尚、以下に説明するシステム構成や処理の流れは、本発明の実施形態の一例を示すものであって、本発明は以下に説明する実施形態に限定されるものではない。
【００３２】
図１は、本発明にかかる暗号化データ配送システムの実施形態の概要を示している。本発明にかかる暗号化データ配送システムは、データを送信する送信装置、データを受信する受信装置、ＭＡＣ値の対比によって完全性の検証と配送事実の確認等を実行する管理サーバから構成されている。
【００３３】
本発明では、送信装置と受信装置が秘密鍵を共有し、この共有秘密鍵（共有秘密鍵から生成した暗号鍵を含む）によって暗合化したデータを配送する。また、送信装置では、共有秘密鍵による暗号化前のデータと、共有秘密鍵から生成したＨＭＡＣ鍵を用いて演算したＭＡＣ値を、受信装置では、共有秘密鍵による復号化後のデータと、共有秘密鍵から生成したＨＭＡＣ鍵を用いて演算したＭＡＣ値をそれぞれ管理サーバに送信し、管理サーバでＭＡＣ値の一致を確認することによって、配送したデータの完全性を検証することとあわせて、第三者機関である管理サーバの運営者による検証によって配送事実の否認防止を可能にする。
【００３４】
図２を用いて、本発明にかかる暗号化データ配送システムの構成について説明する。本発明にかかる暗号化データ配送システムは、管理サーバ１０、送信装置２０、受信装置３０から構成されている。管理サーバ１０、送信装置２０、受信装置３０は、いずれもインターネット等のネットワークへの接続機能を備えたコンピュータであるが、その種別は特に限定されるものではない。
【００３５】
管理サーバ１０には、ＤＨ公開鍵記憶部１１、ＭＡＣ値記憶部１２、ＭＡＣ値対比部１３が備えられている。ＭＡＣ値対比部１３は機能的に特定されるものであって、ＭＡＣ値の対比に必要な処理を実行するためのアプリケーションプログラムが、管理サーバ１０を構成するコンピュータのメインメモリ等のメモリ領域に読み出され、ＣＰＵによって演算処理が実行されることによって、その機能が実現される。
【００３６】
ＤＨ公開鍵記憶部１１、ＭＡＣ値記憶部１２には、コンピュータのＨＤＤ等の所定の記憶領域が割り当てられるが、ハードウェアの構成について特に限定されるものではなく、例えば、ＭＡＣ値対比部１３に対応する処理を実行するサーバコンピュータのＨＤＤ等が用いられてもよいし、かかるサーバコンピュータとネットワークを通じて接続されたデータベースサーバ等のコンピュータのＨＤＤ等が用いられるものであってもよい。
【００３７】
送信装置２０には、ＤＨパラメータ記憶部２１、乱数生成部２２、鍵生成部２３、データ格納部２４、送信処理部２５が備えられている。鍵生成部２３には、共有公開鍵生成部２３１、共有秘密鍵生成部２３２、暗号鍵・ＨＭＡＣ鍵生成部２３３が含まれる。送信処理部２５には、暗号化処理部２５１、ＭＡＣ値演算部２５２、配送ＩＤ割当部２５３が含まれる。
【００３８】
乱数生成部２２、鍵生成部２３（これに含まれる共有公開鍵生成部２３１、共有秘密鍵生成部２３２、暗号鍵・ＨＭＡＣ鍵生成部２３３）、送信処理部２５（これに含まれる暗号化処理部２５１、ＭＡＣ値演算部２５２、配送ＩＤ割当部２５３）は、いずれも機能的に特定されるものであって、各々の機能に必要な処理を実行するためのアプリケーションプログラムが、送信装置２０を構成するコンピュータのメインメモリ等のメモリ領域に読み出され、ＣＰＵによって演算処理が実行されることによって、各々の機能が実現される。
【００３９】
ＤＨパラメータ記憶部２１、データ格納部２４には、コンピュータのＨＤＤ等の所定の記憶領域が割り当てられるが、ハードウェアの構成について特に限定されるものではなく、例えば、送信処理等を実行するコンピュータのＨＤＤ等が用いられてもよいし、このコンピュータとネットワークを通じて接続されたファイルサーバ等のコンピュータのＨＤＤ等が用いられるものであってもよい。
【００４０】
受信装置３０には、ＤＨパラメータ記憶部３１、鍵生成部３２、受信処理部３３が備えられている。鍵生成部３２には、ＤＨ鍵生成部３２１、共有秘密鍵生成部３２２、暗号鍵・ＨＭＡＣ鍵生成部３２３が含まれる。受信処理部３３には、復号化処理部３３１、ＭＡＣ値演算部３３２が含まれる。
【００４１】
鍵生成部３２（これに含まれるＤＨ鍵生成部３２１、共有秘密鍵生成部３２２、暗号鍵・ＨＭＡＣ鍵生成部３２３）、受信処理部３３（これに含まれる復号化処理部３３１、ＭＡＣ値演算部３３２）は、いずれも機能的に特定されるものであって、各々の機能に必要な処理を実行するためのアプリケーションプログラムが、受信装置３０を構成するコンピュータのメインメモリ等のメモリ領域に読み出され、ＣＰＵによって演算処理が実行されることによって、各々の機能が実現される。
【００４２】
ＤＨパラメータ記憶部３１には、コンピュータのＨＤＤ等の所定の記憶領域が割り当てられるが、ハードウェアの構成について特に限定されるものではなく、例えば、受信処理等を実行するコンピュータのＨＤＤ等が用いられてもよいし、このコンピュータとネットワークを通じて接続されたコンピュータのＨＤＤ等が用いられるものであってもよい。
【００４３】
以上の構成を前提にして、本発明にかかる暗号化データ配送システムによるデータ配送の流れを、図３〜図１３を用いて説明する。図３は全体の流れを示したものであるが、処理手順を明確にするために、以下では、データ配送の流れに沿った図４〜図１３を、順に説明する。
【００４４】
まず、本発明を実施する準備段階として、送信装置２０と受信装置３０は、図４に示したように、ＤＨ（Diffie−Hellman）鍵共有方式で用いられるＤＨパラメータを、それぞれＤＨパラメータ記憶部２１、３１に記憶させておくことが必要になる。このＤＨパラメータは秘密情報でない初期値であるが、その導出方法の例としてＩＥＴＦ（Internet Engineering Task Force）によって策定された標準であるＲＦＣ（Request for Comments）２６３１がある。
【００４５】
本発明では、このＤＨパラメータを用いて、ＤＨ（Diffie−Hellman）鍵共有方式から派生したヒューズ（Hughes）による鍵共有方式によって、送信装置２０と受信装置３０が秘密鍵を共有する。ヒューズ（Hughes）による鍵共有方式については、図１４を用いて以下に説明する。
【００４６】
ヒューズ（Hughes）による鍵共有は、送信装置と受信装置の事前のネゴシエーションが不要で、かつ非同期に実施できる鍵共有方式である。送信装置では、データの配送を行う毎に乱数を生成し、生成された乱数値とＤＨパラメータに所定の関数（Ｆ１）を適用して、共有秘密鍵を演算する。また、生成された乱数値と受信装置から受け取ったＤＨ公開鍵に所定の関数（Ｆ２）を適用して、共有公開鍵を演算する。
【００４７】
受信装置では、送信装置から受信した共有公開鍵とＤＨ秘密鍵に所定の関数（Ｆ３）を適用し、さらに演算された値とＤＨパラメータに所定の関数（Ｆ４）を適用すると、送信装置で演算されたものと同じ共有秘密鍵を演算することができる。ここで用いられるＤＨ公開鍵とＤＨ秘密鍵の組み合わせは、受信装置においてＤＨパラメータから生成され、ＤＨ公開鍵は予め送信装置に引き渡されている。
【００４８】
以上に説明したヒューズ（Hughes）による鍵共有方式によって送信装置２０と受信装置３０が秘密鍵を共有するために、受信装置３０はＤＨパラメータ記憶部３１からＤＨパラメータを読み出し、鍵生成部３２のＤＨ鍵生成部３２１を起動して、図５に示したように、ＤＨ公開鍵とＤＨ秘密鍵のペアを生成する。ＤＨ公開鍵は、受信装置３０を識別する受信装置ＩＤとともに管理サーバ１０に送信される。ＤＨ秘密鍵は、受信装置３０の所定の記憶領域に記憶される。
【００４９】
管理サーバ１０に送信されたＤＨ公開鍵は、ＤＨ公開鍵記憶部１１に受信装置３０を識別する受信装置ＩＤと関連付けて記憶される。このようにして、管理サーバ１０に受信装置３０のＤＨ公開鍵が預託された状態となり、送信装置２０はデータの送信先となる受信装置３０の受信装置ＩＤに対応するＤＨ公開鍵を管理サーバ１０から取得することによって、データの送信前に受信者とネゴシエーションすることなく、暗号化したデータを送信することが可能になっている。
【００５０】
送信装置２０から受信装置３０にファイル等の所定のデータを暗号化して配送したい場合には、図６に示したように、データ格納部２４に格納されたファイル等のデータを特定し、データ格納部２４から読み出すとともに、管理サーバ１０に送信先となる受信装置３０の受信装置ＩＤを指定してＤＨ公開鍵の送信を要求し、管理サーバ１０から受信装置ＩＤに関連付けてＤＨ公開鍵記憶部１１に記憶されたＤＨ公開鍵を受信する。
【００５１】
続いて、乱数生成部２２を起動して配送単位（配送対象として特定されたデータ単位）で異なる乱数値を生成し、鍵生成部２３の共有公開鍵生成部２３１と共有秘密鍵生成部２３２を起動して、図７に示したように、共有公開鍵と共有秘密鍵を生成する。先にヒューズ（Hughes）による鍵共有方式に説明したように、共有公開鍵は乱数値とＤＨ公開鍵を、共有秘密鍵は乱数値とＤＨパラメータを、それぞれ所定の関数に適用することによって演算される。
【００５２】
尚、ここで生成される共有公開鍵は、送信先となる受信装置が複数存在する場合（同じデータを複数の受信装置に送信する場合）には、受信装置毎に異なるＤＨ公開鍵が適用されるので、異なる値となる。一方、共有秘密鍵は配送単位で共通の値となるため、後に説明するデータの暗号化は、受信装置の数にかかわりなく一度行えばよい。
【００５３】
続いて、鍵生成部２３の暗号鍵・ＨＭＡＣ鍵生成部２３３を起動して、共有秘密鍵生成部２３２で生成された共有秘密鍵から、図８に示したように、データの暗号化に用いる暗号鍵と、ＭＡＣ値の演算に用いるＨＭＡＣ鍵を生成する。共有秘密鍵からこれらの鍵を生成する方法は特に限定されるものではないが、例えば、共有秘密鍵を単純に分割する（少なくとも１つに共有秘密鍵と同一の値を用いてもよい）、ＫＤＦ（Key Derivation Function）と呼ばれる鍵生成関数を使用するなどの方法によることができる。
【００５４】
送信装置２０は、さらに、送信処理部２５の暗号化処理部２５１、ＭＡＣ値演算部２５２、配送ＩＤ割当部２５３を起動して、図９に示したように、配送するデータの暗号化、ＭＡＣ値の演算、配送単位毎にユニークな配送ＩＤの割り当てを実行する。
【００５５】
暗号化処理部２５１が実行する配送するデータの暗号化処理には、暗号鍵・ＨＭＡＣ鍵生成部２３３において共有秘密鍵から生成された暗号鍵が用いられる。ＭＡＣ値演算部２５２が実行するＭＡＣ値の演算処理には、暗号鍵・ＨＭＡＣ鍵生成部２３３において共有秘密鍵から生成されたＨＭＡＣ鍵が用いられる。後に説明するように、ここでＭＡＣ値の演算に共有秘密鍵から生成された鍵を用いることにより、正しいＭＡＣ値の演算は、データを完全に復号化することに加えて秘密鍵を共有する装置でしか実行できないことになり、ＭＡＣ値による完全性の検証と配送事実の否認防止に優れた効果を発揮することが可能になる。
【００５６】
暗号化処理部２５１において暗号化された暗号化データは、配送ＩＤ割当部２５３で割り当てられた配送ＩＤとともに、図１０に示したように、受信装置３０に送信される。このときに、先に共有公開鍵生成部２３１において生成された共有公開鍵も、あわせて受信装置３０に送信される。尚、これらのデータを受信装置３０に送信する方法は、特に限定されるものではない。
【００５７】
ＭＡＣ値演算部２５２において演算されたＭＡＣ値は、配送ＩＤ割当部２５３で割り当てられた配送ＩＤとともに、図１０に示したように、管理サーバ１０に送信される。管理サーバ１０では、受信したＭＡＣ値が、ＭＡＣ値記憶部１２に配送ＩＤと関連付けて記憶される。
【００５８】
送信装置２０から暗号化データ等とあわせて共有公開鍵を受信した受信装置３０では、鍵生成部３２の共有秘密鍵生成部３２２を起動して、図１１に示したように、共有秘密鍵を生成する。先にヒューズ（Hughes）による鍵共有方式に説明したように、共有秘密鍵は送信装置２０から受信した共有公開鍵と、受信装置３０に記憶されたＤＨ秘密鍵とＤＨパラメータを、それぞれ所定の関数に適用することによって、送信装置２０の共有秘密鍵生成部２３２で生成されたものと同一の共有秘密鍵が、共有秘密鍵生成部３２２において演算される。
【００５９】
さらに鍵生成部３２の暗号鍵・ＨＭＡＣ鍵生成部３２３を起動し、図１１に示したように、データの復号化に用いる暗号鍵と、ＭＡＣ値の演算に用いるＨＭＡＣ鍵を生成する。共有秘密鍵からこれらの鍵を生成する方法は、送信装置２０の場合と同様に特に限定されるものではなく、共有秘密鍵の単純分割やＫＤＦ（Key Derivation Function）等によることとすればよいが、送信装置の鍵生成部２３の暗号鍵・ＨＭＡＣ鍵生成部２３３と同じ方法によって、同一の暗号鍵とＨＭＡＣ鍵を生成することが必要である。
【００６０】
続いて、受信処理部３３の復号化処理部３３１とＭＡＣ値演算部３３２を起動して、図１２に示したように、受信した暗号化データの復号化と、ＭＡＣ値の演算を実行する。
【００６１】
復号化処理部３３１が実行する暗号化データの復号化処理には、暗号鍵・ＨＭＡＣ鍵生成部３２３において共有秘密鍵から生成された暗号鍵が用いられる。ＭＡＣ値演算部３３２が実行するＭＡＣ値の演算処理には、暗号鍵・ＨＭＡＣ鍵生成部３２３において共有秘密鍵から生成されたＨＭＡＣ鍵が用いられる。ここでＭＡＣ値の演算に共有秘密鍵から生成された鍵を用いることにより、正しいＭＡＣ値の演算は、データを暗号鍵によって完全に復号化することに加えて、共有秘密鍵から生成したＨＭＡＣ鍵を用いることが必要になり、送信装置と秘密鍵を共有する正規の受信装置でしか実行できないことになる。そのため、ＭＡＣ値による完全性の検証と配送事実の否認防止において、優れた効果を発揮することが可能になる。
【００６２】
ＭＡＣ値演算部３３２において演算されたＭＡＣ値は、受信処理部３３で暗号化データとあわせて受信した配送ＩＤとともに、図１３に示したように、管理サーバ１０に送信される。このときに、同じ暗号化データが同時に複数の配送先に配送された場合に、受信装置３０での受信を確認できるように、あわせて受信装置３０を識別するための受信装置ＩＤを管理サーバ１０に送信する。
【００６３】
これらのデータを受信した管理サーバ１０はＭＡＣ値対比部１３を起動して、受信装置３０から受信した配送ＩＤをキーにＭＡＣ値記憶部１２を検索して、配送ＩＤに関連付けて記憶されたＭＡＣ値をＭＡＣ値記憶部１２から読み出す。読み出したＭＡＣ値を受信装置３０から受信したＭＡＣ値と対比して、両者の値が一致するかを確認する。
【００６４】
これらのＭＡＣ値が一致すれば、配送されたデータに改ざんや破損はなく、データの完全性が検証されるとともに、配送されたデータが秘密鍵を共有する正規の受信装置３０で受信されたことが証明される。この証明が、当事者である送信装置２０、受信装置３０の利用者ではなく、第三者である管理サーバ１０を運用する者によって行われるので、本発明は配送事実の否認防止に効果的である。
【００６５】
尚、ＭＡＣ値を対比した後に管理サーバ１０によって実行される動作は特に限定されるものではなく、例えば、ＭＡＣ値の一致が確認された後に、送信装置２０、受信装置３０それぞれに配送完了通知を送信することとしてもよいし、ＭＡＣ値の一致が確認されなかった場合には、送信装置２０や受信装置３０になりすましの警告等を送信することとしてもよい。管理サーバ１０での確認結果は、受信装置３０から受信した配送ＩＤ、受信装置ＩＤと関連付けて、事後的な検証のために管理サーバ１０において保存しておくことが好ましい。
【００６６】
以上の説明では、ＭＡＣ値を照合する際のキーになる配送ＩＤを配送単位で割り当てることとしているが、配送対象として特定されたデータと配送先となる受信装置の組み合わせ単位で配送ＩＤを割り当てることとしてもよい。この場合は、同じ暗号化データを同時に複数の配送先に配送する場合であっても、受信装置毎に異なる配送ＩＤが送信されることになるため、前述のように受信装置３０からＭＡＣ値を送信する際にあわせて受信装置ＩＤを送信しなくても、ＭＡＣ値の照合に用いた配送ＩＤから受信装置３０を特定することが可能になる。
【符号の説明】
【００６７】
１０    管理サーバ
１１    ＤＨ公開鍵記憶部
１２    ＭＡＣ値記憶部
１３    ＭＡＣ値対比部
２０    送信装置
２１    ＤＨパラメータ記憶部
２２    乱数生成部
２３    鍵生成部
２３１  共有公開鍵生成部
２３２  共有秘密鍵生成部
２３３  暗号鍵・ＨＭＡＣ鍵生成部
２４    データ格納部
２５    送信処理部
２５１  暗号化処理部
２５２  ＭＡＣ値演算部
２５３  配送ＩＤ割当部
３０    受信装置
３１    ＤＨパラメータ記憶部
３２    鍵生成部
３２１  ＤＨ鍵生成部
３２２  共有秘密鍵生成部
３２３  暗号鍵・ＨＭＡＣ鍵生成部
３３    受信処理部
３３１  復号化処理部
３３２  ＭＡＣ値演算部
【図１】
2011114520.tif 000003
【図２】
2011114520.tif 000004
【図３】
2011114520.tif 000005
【図４】
2011114520.tif 000006
【図５】
2011114520.tif 000007
【図６】
2011114520.tif 000008
【図７】
2011114520.tif 000009
【図８】
2011114520.tif 000010
【図９】
2011114520.tif 000011
【図１０】
2011114520.tif 000012
【図１１】
2011114520.tif 000013
【図１２】
2011114520.tif 000014
【図１３】
2011114520.tif 000015
【図１４】
2011114520.tif 000016