(57)【要約】【課題】機密データの送付における通信路での第三者による盗聴などによる漏洩からの保護と、機密データ送付後の外部関係者組織からの情報持ち出しに伴う漏洩の遮断とを、別途セキュリティ強化のために新たな機器等を導入することなく実現する。【解決手段】送信側計算機２Ａは、受信側計算機２Ｂから、この受信側計算機２Ｂが属するネットワークに接続された機器への通信要求に対する応答結果から生成された鍵情報ｋｅｙ＿ｒを取得し、この鍵情報を用いて送信データを暗号化して受信側計算機２Ｂに送信し、受信側計算機２Ｂは、機器への通信要求に対する応答結果から鍵情報を再生成して、鍵情報により暗号化されたデータを復号するようにした。【選択図】図４
2010141596.tif 000002
【特許請求の範囲】
【請求項１】
送信側計算機から、異なるネットワークに属する受信側計算機に暗号化したデータを送信する機密データ送信方法であって、
前記受信側計算機は、当該受信側計算機が属するネットワークに接続された機器への通信要求に対する応答結果から鍵情報を生成し、
前記送信側計算機は、前記受信側計算機から前記鍵情報を取得して、前記鍵情報を用いて前記データを暗号化して前記受信側計算機に送信し、
前記受信側計算機は、前記機器への通信要求に対する応答結果から前記鍵情報を再生成して、当該鍵情報により前記暗号化されたデータを復号すること特徴とする機密データ送信方法。
【請求項２】
請求項１に記載の機密データ送信方法において、
前記受信側計算機は、前記送信側計算機における前記データの暗号化に先立って、前記生成した鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送信し、
前記送信側計算機は、送付された暗号化された前記鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記鍵情報を取得することを特徴とする機密データ送信方法。
【請求項３】
請求項２に記載の機密データ送信方法において、前記公開鍵にて前記鍵情報を暗号化する際に、適当な文字列による暗号化も付加することを特徴とする機密データ送信方法。
【請求項４】
送信側計算機から、異なるネットワークに属する受信側計算機に暗号化したデータを送信する機密データ送信方法であって、
前記受信側計算機は、当該受信側計算機の属するネットワークに接続された複数の機器への通信要求に対する応答結果から複数の部分鍵情報を生成し、
前記送信側計算機は、前記受信側計算機から前記複数の部分鍵情報を取得し、適当な文字列からなるセッション鍵情報を生成し、前記データを前記セッション鍵情報で暗号化し、前記セッション鍵情報を、前記各部分鍵情報にて暗号化して複数の暗号化された前記セッション情報を生成し、暗号化された前記データ及び暗号化された各セッション鍵情報を前記受信側計算機に送信し、
前記受信側計算機は、前記複数の機器への通信要求に対する応答結果から複数の部分鍵情報を再生成し、生成した部分鍵情報にて、前記送信側計算機から送信された暗号化されたセッション鍵情報の何れかを復号し、復号したセッション鍵情報にて暗号化された前記データを復号することを特徴とする機密データ送信方法。
【請求項５】
請求項４に記載の機密データ送信方法において、
前記受信側計算機は、前記送信側計算機における前記データの暗号化に先立って、前記部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、
前記送信側計算機は、前記暗号化された部分鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記部分鍵情報を取得することを特徴とする機密データ送信方法。
【請求項６】
請求項５に記載の機密データ送信方法において、前記公開鍵にて各部分鍵情報を暗号化する際に、適当な文字列による暗号化も付加することを特徴とする機密データ送信方法。
【請求項７】
請求項１乃至６の何れか１項に記載の機密データ送信方法において、前記応答結果は、ＡＲＰリクエストに対するＭＡＣアドレスの応答であることを特徴とする機密データ送信方法。
【請求項８】
請求項１乃至６の何れか１項に記載の機密データ送信方法において、前記応答結果は、ＳＮＭＰリクエストに対する機器診断情報の応答であることを特徴とする機密データ送信方法。
【請求項９】
データを暗号化して送信する送信側計算機と、該送信側計算機とは異なるネットワークに属し、暗号化された前記データを受信して復号する受信側計算機と、から構成される機密データ送信システムであって、
前記受信側計算機は、当該受信側計算機が属するネットワークに接続された機器への通信要求に対する応答結果から鍵情報を生成する鍵生成処理部と、
前記応答結果から前記鍵情報を再生成して、当該鍵情報により前記送信側計算機から送付された暗号化された前記データを復号するデータ復号部と、
を備え、
前記送信側計算機は、
前記受信側計算機から取得した前記鍵情報を用いて前記データを暗号化して前記受信側計算機に送信するデータ暗号化部を備えたことを特徴とする機密データ送信システム。
【請求項１０】
請求項９に記載の機密データ送信システムにおいて、
前記受信側計算機は、前記送信側計算機における前記送信データの暗号化に先立って、前記生成した部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、
前記送信側計算機は、送付された暗号化された前記鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記鍵情報を取得することを特徴とする機密データ送信システム。
【請求項１１】
請求項１０に記載の機密データ送信システムにおいて、前記公開鍵にて前記鍵情報を暗号化する際に、適当な文字列による暗号化も付加することを特徴とする機密データ送信システム。
【請求項１２】
送信データを暗号化して送信する送信側計算機と、該送信側計算機とは異なるネットワークに属し、暗号化された前記送信データを受信して復号する受信側計算機と、から構成される機密データ送信システムであって、
前記受信側計算機は、該受信側計算機の属するネットワークに接続された複数の機器への通信要求に対する応答結果から複数の部分鍵情報を生成する鍵生成処理部と、
前記応答結果から複数の部分鍵情報を再生成し、再生成した部分鍵情報にて、前記送信側計算機から送信された暗号化されたセッション鍵情報の何れかを復号し、復号したセッション鍵情報にて暗号化された前記データを復号する機密データ復号部と、を備え、
前記送信側計算機は、適当な文字列からなるセッション鍵情報を生成し、前記データを前記セッション鍵情報で暗号化し、前記セッション鍵情報を、前記受信側計算機から取得した前記複数の部分鍵情報にて暗号化して複数の暗号化された前記セッション情報を生成し、暗号化された前記データ及び暗号化された各セッション鍵情報を前記受信側計算機に送信する機密データ暗号部とを備えたことを特徴とする機密データ送信システム。
【請求項１３】
請求項１２に記載の機密データ送信システムにおいて、
前記受信側計算機は、前記送信側計算機における前記送信データの暗号化に先立って、前記部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、
前記送信側計算機は、送付された前記暗号化された部分鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記部分鍵情報を取得することを特徴とする機密データ送信システム。
【請求項１４】
請求項１３に記載の機密データ送信システムにおいて、前記公開鍵にて各部分鍵情報を暗号化する際に、適当な文字列による暗号化も付加することを特徴とする機密データ送信システム。
【請求項１５】
請求項９乃至１４の何れか１項に記載の機密データ送信システムにおいて、前記応答結果は、ＡＲＰリクエストに対するＭＡＣアドレスの応答であることを特徴とする機密データ送信システム。
【請求項１６】
請求項９乃至１４の何れか１項に記載の機密データ送信システムにおいて、前記応答結果は、ＳＮＭＰリクエストに対する機器診断情報の応答であることを特徴とする機密データ送信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密電子データを受信側計算機に安全に送付する方法に関する。
【背景技術】
【０００２】
近年、情報セキュリティの重要性が著しく高まり、特に機密情報の漏洩防止は企業活動において必須となっている。機密情報の漏洩を防ぐためには、漏洩に対する保護が脆弱な所から施策を講じていくのが常道である。しかし、対策を進めていくと、最終的には直接対策を講じることが出来ない要素として、自組織の管理範囲に含まれない他組織の外部関係者との機密情報の授受・共有とそれに伴う管理が残ることが多い。このセキュリティ・リスクは、各種の契約により外部関係者に機密保護の義務を課すことで軽減することはできるが、機密保護対策には相応のコストがかかる以上、どのような保護手段を採るかは、その外部関係者に委ねる場合がどうしても多くなる。機密情報の授受におけるセキュリティは、一方の当事者のみでもある程度管理可能だが、外部関係者に機密情報を渡した後の機密管理は、その関係者組織任せとなることが多くなる。
すなわち、外部契約者組織のセキュリティレベルが、機密保護の義務を履行する水準に達していなければ、機密漏洩後に損害賠償を求めることはできても、漏洩そのものは阻止できない。機密情報の授受より前に、外部関係者組織のセキュリティレベルについて監査することで、漏洩の恐れのある外部関係者を事前に排除することも不可能ではないが、それにも限界がある。また、万が一、外部関係者組織の中に悪意をもって機密漏洩を図る者がいれば、機密保護を課した契約も漏洩に対する抑止力として全く機能しない。
【０００３】
以上のことから、外部関係者に機密情報を配布する場合に、外部関係者の所属組織のセキュリティレベルや構成員の意図とは無関係に、機密を漏洩から自動的に保護する仕組みや、組織外への機密持ち出し自体を不可能にする仕組みがあれば、外部関係者からの機密漏洩のリスクは大幅に低減される。
機密を漏洩から自動的に保護するひとつの方策として、機密情報を契約で定めた機器以外ではアクセスできなくすることが挙げられる。例えば、従来技術である特許文献１や特許文献２では、ＭＡＣアドレス等の計算機の固有識別情報を用いて、あらかじめ定めた機器以外では、機密情報を扱うプログラムを動作させない仕組みを示している。
また、より広範囲なアクセス制限の方法として、ユーザー認証と文書のアクセス権を紐づける方法もある。例えば従来技術である特許文献３では、機密データをあらかじめ暗号化し、データにＡＣＬ（アクセス制御リスト：ユーザーのアクセス権を定義したリスト）を付しておき、ＡＣＬでアクセスが許可されたユーザーが当該文書を開く時のみ、ユーザー認証を行うサーバに保存された復号鍵を一時的に付与する方法を示している。
【特許文献１】特開２００６−１０８９０３公報
【特許文献２】特開２００７−２５７１４４公報
【特許文献３】特開２００４−１５２２６１公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１、２に示された方法の場合、機密を扱う機器がノートパソコンのような可搬性を有する物であれば、機密データを保存した機器自体を持ち出される可能性がある。その場合、そのノートパソコンが盗難に遭えば、その時点で機密は漏洩する。また、当然ながら、そもそも悪意を持って機密を略取しようとする者が外部関係者組織内にいれば、この仕組みでは機密漏洩を防ぐことはできない。
また、特許文献３に示される方法においては、暗号化された機密データを外部に持ち出してもユーザー認証ができず、その結果として復号する鍵も得られないため、データが外部に流出しても機密情報自体を外部に知られる可能性は低くなるが、その反面、この方法を実行するためには、認証サーバを構築・運用する必要があり、そのためには少なからずコストがかかる。外部関係者組織のセキュリティ意識ある程度以上高くなければ、そのような認証サーバの導入・運用は難しい。また、機密の授受を伴う外部関係者との契約がごく短期のものである場合、その契約のためだけに、契約先にそのような認証サーバ導入を強いることは難しい。
以上を鑑みて、本発明は、自組織の管理範囲に含まれない他組織の外部関係者に機密データを送付する場合において、送付における通信路での第三者による盗聴などによる漏洩からの保護と、機密データ送付後の外部関係者組織からの情報持ち出しに伴う漏洩の遮断とを、別途セキュリティ強化のために新たな機器等を導入することなく実現することを目的とする。
【課題を解決するための手段】
【０００５】
上記の課題を解決するために、請求項１の発明は、送信側計算機から、異なるネットワークに属する受信側計算機に暗号化したデータを送信する機密データ送信方法であって、前記受信側計算機は、当該受信側計算機が属するネットワークに接続された機器への通信要求に対する応答結果から鍵情報を生成し、前記送信側計算機は、前記受信側計算機から前記鍵情報を取得して、前記鍵情報を用いて前記データを暗号化して前記受信側計算機に送信し、前記受信側計算機は、前記機器への通信要求に対する応答結果から前記鍵情報を再生成して、当該鍵情報により前記暗号化されたデータを復号する機密データ送信方法特徴とする。
また、請求項２の発明は、請求項１に記載の機密データ送信方法において、前記受信側計算機は、前記送信側計算機における前記データの暗号化に先立って、前記生成した鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送信し、前記送信側計算機は、送付された暗号化された前記鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記鍵情報を取得する機密データ送信方法を特徴とする。
また、請求項３の発明は、請求項２に記載の機密データ送信方法において、前記公開鍵にて前記鍵情報を暗号化する際に、適当な文字列による暗号化も付加する機密データ送信方法を特徴とする。
【０００６】
また、請求項４の発明は、送信側計算機から、異なるネットワークに属する受信側計算機に暗号化したデータを送信する機密データ送信方法であって、前記受信側計算機は、当該受信側計算機の属するネットワークに接続された複数の機器への通信要求に対する応答結果から複数の部分鍵情報を生成し、前記送信側計算機は、前記受信側計算機から前記複数の部分鍵情報を取得し、適当な文字列からなるセッション鍵情報を生成し、前記データを前記セッション鍵情報で暗号化し、前記セッション鍵情報を、前記各部分鍵情報にて暗号化して複数の暗号化された前記セッション情報を生成し、暗号化された前記データ及び暗号化された各セッション鍵情報を前記受信側計算機に送信し、前記受信側計算機は、前記複数の機器への通信要求に対する応答結果から複数の部分鍵情報を再生成し、生成した部分鍵情報にて、前記送信側計算機から送信された暗号化されたセッション鍵情報の何れかを復号し、復号したセッション鍵情報にて暗号化された前記データを復号する機密データ送信方法を特徴とする。
また、請求項５の発明は、請求項４に記載の機密データ送信方法において、前記受信側計算機は、前記送信側計算機における前記データの暗号化に先立って、前記部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、前記送信側計算機は、前記暗号化された部分鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記部分鍵情報を取得する機密データ送信方法を特徴とする。
また、請求項６の発明は、請求項５に記載の機密データ送信方法において、前記公開鍵にて各部分鍵情報を暗号化する際に、適当な文字列による暗号化も付加することを特徴とする機密データ送信方法。
【０００７】
また、請求項７の発明は、請求項１乃至６の何れか１項に記載の機密データ送信方法において、前記応答結果は、ＡＲＰリクエストに対するＭＡＣアドレスの応答である機密データ送信方法を特徴とする。
また、請求項８の発明は、請求項１乃至６の何れか１項に記載の機密データ送信方法において、前記応答結果は、ＳＮＭＰリクエストに対する機器診断情報の応答である機密データ送信方法を特徴とする。
また、請求項９の発明は、データを暗号化して送信する送信側計算機と、該送信側計算機とは異なるネットワークに属し、暗号化された前記データを受信して復号する受信側計算機と、から構成される機密データ送信システムであって、前記受信側計算機は、当該受信側計算機が属するネットワークに接続された機器への通信要求に対する応答結果から鍵情報を生成する鍵生成処理部と、前記応答結果から前記鍵情報を再生成して、当該鍵情報により前記送信側計算機から送付された暗号化された前記データを復号するデータ復号部と、を備え、前記送信側計算機は、前記受信側計算機から取得した前記鍵情報を用いて前記データを暗号化して前記受信側計算機に送信するデータ暗号化部を備えた機密データ送信システムを特徴とする。
【０００８】
また、請求項１０の発明は、請求項９に記載の機密データ送信システムにおいて、前記受信側計算機は、前記送信側計算機における前記送信データの暗号化に先立って、前記生成した部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、前記送信側計算機は、送付された暗号化された前記鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記鍵情報を取得する機密データ送信システムを特徴とする。
また、請求項１１の発明は、請求項１０に記載の機密データ送信システムにおいて、前記公開鍵にて前記鍵情報を暗号化する際に、適当な文字列による暗号化も付加する機密データ送信システムを特徴とする。
また、請求項１２の発明は、送信データを暗号化して送信する送信側計算機と、該送信側計算機とは異なるネットワークに属し、暗号化された前記送信データを受信して復号する受信側計算機と、から構成される機密データ送信システムであって、前記受信側計算機は、該受信側計算機の属するネットワークに接続された複数の機器への通信要求に対する応答結果から複数の部分鍵情報を生成する鍵生成処理部と、前記応答結果から複数の部分鍵情報を再生成し、再生成した部分鍵情報にて、前記送信側計算機から送信された暗号化されたセッション鍵情報の何れかを復号し、復号したセッション鍵情報にて暗号化された前記データを復号する機密データ復号部と、を備え、前記送信側計算機は、適当な文字列からなるセッション鍵情報を生成し、前記データを前記セッション鍵情報で暗号化し、前記セッション鍵情報を、前記受信側計算機から取得した前記複数の部分鍵情報にて暗号化して複数の暗号化された前記セッション情報を生成し、暗号化された前記データ及び暗号化された各セッション鍵情報を前記受信側計算機に送信する機密データ暗号部とを備えた機密データ送信システムを特徴とする。
【０００９】
また、請求項１３の発明は、請求項１２に記載の機密データ送信システムにおいて、前記受信側計算機は、前記送信側計算機における前記送信データの暗号化に先立って、前記部分鍵情報を、公開鍵暗号方式における公開鍵で暗号化して前送信側計算機に送付し、前記送信側計算機は、送付された前記暗号化された部分鍵情報を、前記公開鍵に対応する秘密鍵で復号して前記部分鍵情報を取得する機密データ送信システムを特徴とする。
また、請求項１４の発明は、請求項１３に記載の機密データ送信システムにおいて、前記公開鍵にて各部分鍵情報を暗号化する際に、適当な文字列による暗号化も付加する機密データ送信システムを特徴とする。
また、請求項１５の発明は、請求項９乃至１４の何れか１項に記載の機密データ送信システムにおいて、前記応答結果は、ＡＲＰリクエストに対するＭＡＣアドレスの応答である機密データ送信システムを特徴とする。
また、請求項１６の発明は、請求項９乃至１４の何れか１項に記載の機密データ送信システムにおいて、前記応答結果は、ＳＮＭＰリクエストに対する機器診断情報の応答である機密データ送信システムを特徴とする。
【発明の効果】
【００１０】
以上のように構成したので、本発明によれば、機密データの保有者が、機密データを外部の関係者に漏洩することなく安全に送信することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態を、図面に従って詳細に説明する。
図１は、本発明の実施の形態に係るデータ送信システムの一例の全体構成を示す図である。
図１に示すデータ送信システムは、インターネット｛ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、ＨＴＴＰ（Hyper Text Transfer Protocol）、ＳＳＬ（Secure Socket Layer）等のプロトコルに基づいて相互リンクされたネットワークの集合体｝Ｎを介して通信可能な、例えばローカルエリアネットワークＮ１に接続された機密データ送信計算機１から、ローカルエリアネットワークＮ２に接続された機密データ受信計算機４（４−１、４−２）へ、暗号化された機密データを送付するシステムである。
機密データ送信計算機１や機密データ受信計算機４−１、４−２としては、例えば、ノート型やデスクトップ型のパーソナルコンピュータが考えられる。ネットワークＮ２に接続されているネットワーク機器５としては、例えば、ネットワーク対応複写機や各種のサーバなどが考えられる。
機密データ送信計算機１は、ローカルエリアネットワークＮ１内に設置されたゲートウェイルータ（単にルータとする）２を介して、インターネットＮに通信可能となっている。同様に、機密データ受信計算機４−１、４−２は、ローカルエリアネットワークＮ２内に設置されるルータ３を介して、インターネットＮに通信可能となっている。また、本実施例においては、ルータ２や３などにより、インターネットＮとの通信、特にルータの外側から内側へ発信される通信や、ルータを挟んでのブロードキャスト通信などが制限されている場合に、ローカルエリアネットワークＮ１やＮ２を、「閉じたネットワーク」と呼ぶ。
【００１２】
また、図２は、機密データ送信計算機１、機密データ受信計算機４のハードウェア構成を示す図である。
上述したように、送信側、受信側どちらも汎用的な構成のパーソナルコンピュータでよく、計算機全体の制御を行い本発明の各プログラムを実行する演算装置としてのＣＰＵ１０、ローカルエリアネットワークＮ１又はＮ２に接続するためのネットワークインターフェイス１１、マウスやキーボードなどの入力装置１２、各種データやプログラムを記憶、蓄積するためのハードディスクドライブ１３、ＣＰＵ１０による処理のためにデータやプログラムを展開するめのＲＡＭ（Random Access Memory）１４、液晶モニタ等の表示装置１５から主に構成されている。
本システムの目的は大きく３つある。第一に、機密データの保有者が、自身の所属するローカルエリアネットワークＮ１から、相手側のローカルエリアネットワークＮ２に対して機密データを漏洩することなく安全に送信すること。第二に、いったん送信され相手側で取得された機密データの、ローカルエリアネットワークＮ２からの持ち出しや漏洩を防ぐこと。第三に、以上の目的を、相手側のローカルエリアネットワークＮ２内に、認証サーバのような新たな機器類を増設したり、ネットワーク構成を変更したりすることなく達成することである。
【００１３】
図３は、本発明のデータ送信システムを構成する各計算機において実行されるプログラムの機能ブロック図であり、（ａ）は、機密データ送信計算機１、（ｂ）は機密データ受信計算機４における機能ブロック図を示している。これらの機能ブロックは、図２に示す各計算機におけるＣＰＵ１０によって実行されている。
（ａ）に示すように、機密データ送信計算機１では、送信側鍵生成処理部２４、機密データ暗号化部（データ暗号化部）２６が実行される。
（ｂ）に示すように、機密データ受信計算機４では、受信側鍵生成処理部２５、機密データ復号部（データ復号化部）２７が実行されている。
送信側鍵生成処理部２４は、受信側鍵生成処理部２５とともに、鍵生成処理ブロック２１を構成するものであり、計算機間で機密データをやりとりするための暗号鍵を生成する。
また、機密データ暗号化部２６は、機密データ暗号化・送付処理ブロック２２を構成し、鍵生成処理ブロック２１で生成された暗号鍵によって、機密データを暗号化し、受信側計算機に送付するものである。
また、機密データ復号部２７は、機密データ復号処理ブロック２３を構成し、暗号化されて送付された機密データを復号する機能を果たしている。
【００１４】
以下に、本発明の具体的な実施形態について説明する。
［第１の実施形態］
以下、本発明の第１の実施形態に係るデータ送信システムについて説明する。
図４は、本実施形態のデータ送信システムにおける全体動作のフローチャートを示す図である。
図４は、機密データ送信側計算機１Ａから、機密データ受信側計算機４Ａに機密データを送信するためのものであり、機密データ送信側計算機１Ａは図１における機密データ送信計算機１に、機密データ受信側計算機４Ａは図１における機密データ受信計算機４−１や４−２に相当する。
図４に示す全体動作のフローは、機密データ送信側にて、機密データを暗号化するための鍵を生成し、それを機密データ送信側に送付する鍵生成処理ブロック２１と、機密データ送信側が機密データを暗号化し、機密データ受信側に送信する機密データ暗号化・送付処理ブロック２２と、機密データ受信側が暗号化された機密データを復号する機密データ復号処理ブロック２３からなる。
なお、図４では、処理ブロック２１〜２３を一連の動作として記述しているが、状況によって処理ブロック２１、２２については過去の実行結果を再利用し、当該処理ブロックを省略することができる。具体的には、鍵生成処理ブロック２１で機密データ送信側が機密データ受信側から暗号化に用いる鍵をいったん取得すれば、以後、同一の相手に機密データを暗号化・送付する場合、その鍵を再利用することができ、鍵生成処理ブロック２１を省略できる。また、機密データ暗号化・送付処理ブロック２２で暗号化された機密データを機密データ受信側がいったん取得すれば、以後、受信側が同一の機密データにアクセスする限りは、機密データ暗号化・送付処理ブロック２２も省略できる。
【００１５】
以下、図４の各動作ステップについて説明する。
鍵生成処理ブロック２１では、まず、機密データ送信側計算機１Ａが、鍵情報生成器ｇｅｎ＿ｋｅｙを機密データ受信側計算機４Ａに送信する（ステップＳ２１１）。鍵情報生成器ｇｅｎ＿ｋｅｙは、例えばソフトウェアプログラムの形態をとり、機密データ受信側の計算機上で実行されることで、当該計算機の所属するネットワークの固有応答情報から暗号化に用いる鍵となる情報を生成するものである。鍵情報生成器ｇｅｎ＿ｋｅｙの詳しい動作については図６の説明にて後述する。鍵情報生成器ｇｅｎ＿ｋｅｙを送信する手段としては、一般的な電子メールなどが考えられる。
次に、機密データ受信側計算機４Ａは、鍵情報生成器ｇｅｎ＿ｋｅｙを受信・取得し（ステップＳ２１２）、この鍵情報生成器ｇｅｎ＿ｋｅｙを用いて、機密データ受信側の計算機の所属するネットワークの固有応答情報ｓから、送信側における機密データの暗号化に用いる共通鍵としての受信側鍵情報ｋｅｙ＿ｒを生成する（ステップＳ２１３）。
【００１６】
次に、機密データ受信側計算機４Ａは、受信側鍵情報ｋｅｙ＿ｒを機密データ送信側計算機１Ａに渡す（ステップＳ２１４）。なお、この受信側鍵情報ｋｅｙ＿ｒは、機密データを暗号化するために用いる情報であるため、その漏洩は機密データの漏洩につながる。よって、安全であることが保証されている伝達手段で渡すことが強く求められる。具体的な伝達手段としては、暗号化・署名された電子メールや、手渡しなどが挙げられる。また、安全かつ容易な鍵の送付手段を構成に含むデータ送信システムについては、本発明の第３、４の実施の形態にて説明する。
次に、ステップＳ２１４を受けて、機密データ送信側計算機１Ａは、受信側鍵情報ｋｅｙ＿ｒを取得し（ステップＳ２１５ａ）、それと併せて、機密データ受信側計算機４Ａは受信側鍵情報ｋｅｙ＿ｒを破棄する（ステップＳ２１５ｂ）。なお、ステップＳ２１５ａとステップＳ２１５ｂの実行順序は、どちらが先でも構わないが、機密データ受信側から情報の持ち出しや漏洩を防ぐためには、ステップＳ２１５ｂは確実に実施しなければならない。以上が、鍵生成処理ブロック２１の動作フローである。
【００１７】
次に鍵生成処理ブロック２１で行われる鍵情報生成器ｇｅｎ＿ｋｅｙの動作について説明する。
鍵情報生成器ｇｅｎ＿ｋｅｙは、鍵情報生成器ｇｅｎ＿ｋｅｙが実行される機密データ受信側計算機４Ａと、この機密データ受信側計算４Ａが接続された同じネットワークに属する他のネットワーク機器との通信応答結果を用いて、機密データの暗号化・復号に用いる受信側鍵情報ｋｅｙ＿ｒを生成するものである。よって、当該ネットワーク機器は、常時稼動し、通信応答可能であるものが望ましい。当該ネットワーク機器として用いることのできる機器としては、例えば、機密データ受信側計算機４Ａの属するネットワークを統括し、外部ネットワーク、例えばインターネットとの通信を中継する役割を担うルータなどが考えられる。例えば、図１において、機密データ受信計算機４−１にて鍵情報生成器ｇｅｎ＿ｋｅｙを実行する場合、ルータ３が、ここでいう「他のネットワーク機器」に相当する。
【００１８】
図５は、機密データ受信側計算機４Ａの属するネットワークを統括するルータを通信相手とする場合の、鍵情報生成器ｇｅｎ＿ｋｅｙの実行時の動作フローを示す図である。
鍵情報生成器ｇｅｎ＿ｋｅｙを実行する計算機を鍵情報生成器実行計算機４ａとし、同ルータ３と通信を行う。ただし、本発明の第１の実施形態にて規定するのは、鍵情報生成器実行計算機４ａで実行される動作のみである。ルータ３の動作であるステップＳ３０２、Ｓ３０３、Ｓ３０４は、ステップＳ３０１を受けての一般的なネットワーク機器に共通の挙動であり、本発明固有の動作ではない。この３つの動作ステップは説明のために図示したにすぎない。
まず、鍵情報生成器実行計算機４ａから、ルータ３に対し、適当なネットワークサービス要求パケットを送信する（ステップＳ３０１）。ここで、ステップＳ３０１で利用するサービスはあらかじめ決めておく必要がある。鍵情報生成器ｇｅｎ＿ｋｅｙは、最終的にこのサービス要求の応答結果を暗号・復号の鍵情報の要素として用いるため、ルータ３からの応答が期待できる汎用的なサービスで、かつ、機器によって異なる返答が期待できるサービスを利用する。例えば、ネットワークに接続された機器であれば、ＩＰアドレスからＭＡＣアドレスの名前解決を行うＡＲＰ（Address Resolution Protocol)リクエストのブロードキャストには応答するはずであり、この応答結果は応答を返した機器の固有情報であるＭＡＣアドレスなので、ここで用いるサービスとしては適当である。また、ルータの場合、ネットワーク機器の診断情報を取得するためのＳＮＭＰ（Simple Network Management Protocol）リクエストにも応答する可能性が高い。ＳＮＭＰの応答結果はその機器の固有情報を多数含むので、やはり鍵生成に用いる情報としては適当である。
【００１９】
ステップＳ３０１のパケットをルータ３が受信すると（ステップＳ３０２）、対応するサービスが同ルータ上で動作していれば（Ｓ３０３でＹｅｓ）、鍵情報生成器実行計算機４ａに対し応答パケットが返される（ステップＳ３０４）。鍵情報生成器実行計算機４ａは、一定時間この応答パケットを待ち、応答があれば（ステップＳ３０５でＹｅｓ）、応答パケットを受信して（Ｓ３０６）通信を継続し、正規に通信を完了させる（ステップＳ３０７）。応答がなく、未試行のサービス要求がまだあれば（Ｓ３１１でＹｅｓ）、ステップ３０１に戻り、未試行のサービス要求を試みる。通信応答があった場合は、通信を完了した後、受信した応答パケットから適当な情報を鍵断片情報として抽出する（ステップＳ３０８）。ここで鍵断片情報として用いる適当な情報とは、通信プロトコルがＡＲＰであれば、ルータ３のＭＡＣアドレスであり、ＳＮＭＰであれば、ルータ３の機器診断情報の管理データベースであるＭＩＢ（Management Information Base）を構成するオブジェクトの値の１つ、例えば、機器の名称や構成を示す情報となる。単一の通信応答から鍵情報を生成する場合は、この通信応答情報だけで受信側鍵情報ｋｅｙ＿ｒを生成する（ステップＳ３１０）。複数の通信応答結果を組み合わせて鍵情報を生成する場合、必要な鍵断片情報がそろったかを判断し（Ｓ３０９）、Ｎｏの場合、利用可能なサービス要求が残っていれば（Ｓ１１でＹｅｓ）ステップＳ３０１に戻り、ステップＳ３０１〜Ｓ３０９を繰り返し、応答情報がそろった時点で（Ｓ３０９でＹｅｓ）、それら受信側鍵情報を構成するための情報（以下、「鍵断片情報」と呼称する）を組み合わせて受信側鍵情報ｋｅｙ＿ｒを生成する（ステップＳ３１０）。受信側鍵情報ｋｅｙ＿ｒのデータ構造と値の例を表１に挙げる。
［表１］
2010141596.tif 000003
【００２０】
項目「ＩＰアドレス」はルータ３のＩＰアドレスで、鍵情報生成器実行計算機４ａ自身のネットワーク設定情報から取得できる。なお、ルータを対象とする場合、項目「ＩＰアドレス」はルータと同一ネットワークに属する機器にとっては自明なので、表１（ｂ）のように空欄にしてもよい。項目「鍵断片の識別子」は、鍵断片情報として用いる情報の識別子である。表１の場合、ＡＲＰブロードキャストに対するルータ３からの応答として得られる「ＭＡＣアドレス」（表１の２行目）と、ＳＮＭＰ応答により得られるＭＩＢ格納情報のうち、[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysDescr]に格納されている情報（表１の３行目）と、[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysObjectID]に格納されている情報（表１の４行目）を鍵断片情報として用いている。項目「鍵断片の値」は、「鍵断片の識別子」で識別される値そのものである。なお、表１は説明のために値を平文で示したが、実際のシステムにおいては、表１に例示したような鍵情報は適当な符号化により難読化しておく事が望ましい。なお、ここでいう難読化の範囲は、「鍵断片の値」だけではなく、「鍵断片の識別子」や、断片が幾つあるかといった情報（表１の場合は３つ）までも含む。また、難読化のアルゴリズムは頻繁に変更することが望ましい。さらに、表１では鍵断片情報として３つの項目しか用いていないが、実際に運用する際は、できるだけ多くの通信応答結果を鍵情報に含める方が望ましい。
【００２１】
以上が、機密データ受信側計算機４Ａ上で鍵情報生成器ｇｅｎ＿ｋｅｙを実行して、機密データの暗号化に用いる受信側鍵情報ｋｅｙ＿ｒを生成する動作フローである。
なお、図５の動作フローは、ネットワークを統括するルータ等が鍵情報を生成するための通信相手であったが、ネットワーク接続された複写機など、業務時間中は常時稼動している機器なども、共通鍵を生成するために用いるネットワーク機器として利用できる。
【００２２】
ただし、ルータについては、鍵情報生成器実行計算機４ａ自身があらかじめ通信先のＩＰアドレスを知っているが、その他の機器については、鍵情報生成器実行計算機４ａ自身はＩＰアドレスを知らないことが多い。そのため、まずは鍵情報生成のための適当な通信相手の探索と、その相手のアドレス取得から始める必要がある。鍵情報を生成するための通信相手の探索する際、当該ネットワーク機器は、できれば常時稼動しており、常時稼動でない場合は少なくとも機密データの復号を行う時点で通信応答可能であることが求められる。そのような適当な対象機器を特定する最も簡単な方法は、機密データ受信側の利用者に適当な機器のＩＰアドレスを聞くことだが、自動で行うのであれば、前述のＳＮＭＰを用いる方法がある。単純にＳＮＭＰによる通信に対して応答を返すか否かを判定するだけでも、常時稼動が期待できない一般的なパーソナルコンピュータの類は排除できる。より実用的には、ＳＮＭＰで所得するＭＩＢオブジェクトのうち機器の種類を特定しうるもの、例えば、[dod].[internet].[mgmt].[mib-2].[System].[sysObjectID]や、[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysDescr]などを取得すれば、その値から常時稼動が期待できるＯＡ機器等を特定することも可能である。具体的には、著名な機器で常時稼動が期待できる製品名等の部分文字列の集合（以下、常時稼動機器識別データベースと呼称）を鍵情報生成器ｇｅｎ＿ｋｅｙの内部にあらかじめ文字列群を保持しておき、それを、ＳＮＭＰの応答結果と比較すればよい。
【００２３】
図６は、ＳＮＭＰを用いて鍵情報生成のための適当な通信相手の探索を行う動作フローを示す図である。
まず、鍵情報生成器実行計算機４ａである受信側計算機４Ａが、同一サブネット内の適当なＩＰアドレスａに、ＭＩＢ−２の格納情報を要求するＳＮＭＰパケットを送信する（ステップＳ４０１）。パケット送信後、一定時間待って（ステップＳ４０２）、ＩＰアドレスａのホストから応答があれば、応答結果に含まれるＭＩＢの格納情報と、鍵情報生成器ｇｅｎ＿ｋｅｙ内部の常時稼動機器識別データベースと比較する（ステップＳ４０３）。比較した結果、常時稼動機器識別データベースに格納されている文字列群のいずれかと、ＳＮＭＰ応答結果の部分文字列が合致すれば（ステップＳ４０４でＹｅｓの場合）、ＩＰアドレスａの機器を鍵情報生成のための通信相手とする（ステップＳ４０５）。逆に、ＳＮＭＰ応答結果に合致する文字列が無い場合（ステップＳ４０４でＮｏの場合）、同一サブネット内で未探索のＩＰアドレスがあれば（ステップＳ４０６でＹｅｓの場合）、ステップＳ４０１に戻って繰り返す。以上がＳＮＭＰを用いて鍵情報生成のための適当な通信相手の探索を行う動作フローである。
なお、図６の動作フローを実行してもネットワークを統括するルータ以外に鍵情報生成に適当な機器が見つからない場合もありうる。その場合は、ルータを対象にして鍵情報生成すればよい。逆に、適当な機器が複数存在する場合もありうる。図６の動作フローでは最初に見つけた適当な機器をそのまま鍵情報生成のための通信相手に選んでいるが、より適切な運用としては、鍵情報生成器ｇｅｎ＿ｋｅｙ内部の常時稼動機器識別データベースに格納された文字列群各々に、あらかじめ優先度をもうけておき、一定範囲のアドレスを探索した後に、優先度のより高い文字列に合致した機器を選ぶようにすればよい。基本的には、ルータやファックスのように常時稼動されることが多い機器で、名称に多様性のより少ない機器に対応する文字列の優先度を高くしておけばよい。
【００２４】
また、図６の動作フローとは別に、ＳＮＭＰ通信に応答しないサーバ機器を、鍵情報を生成するための通信相手にすることもできる。その場合は、サーバ特有のサービスに対応する通信プロトコルのパケットを送信して、その応答により判断すればよい。プロトコルの具体例としては、ＨＴＴＰ（HyperText Transfer Protocol）やＳＭＴＰ（Simple Mail Transfer Protocol）などが考えられる。また、より厳格に運用するのであれば、NetBIOS over TCP/IPのような計算機のネットワーク上における位置づけを取得可能な通信プロトコル群を用いてもよい。
図６の動作フローにより、ネットワークを統括するルータ等以外の通信相手を発見し、当該機器との通信により鍵情報を生成する場合でも、通信相手機器が決まった後の動作フローは、図５でルータを相手にする場合と同様である。
【００２５】
次に、図４の機密データ暗号化・送付処理ブロック２２について説明する。なお、同処理ブロックの前提として、機密データ送信側である機密データ送信側計算機１Ａは、鍵生成処理ブロック２１により受信側鍵情報ｋｅｙ＿ｒを取得しているものとする。
まず、機密データ送信側計算機１Ａは受信側鍵情報ｋｅｙ＿ｒを用いて、機密データｄを暗号化して、暗号化機密データｅｎｃ（ｋｅｙ＿ｒ，ｄ）を生成する（ステップＳ２２１）。なお、受信側鍵情報ｋｅｙ＿ｒから実際に暗号化に用いる鍵となるデータを生成する方法としては幾つ考えられるが、単純な方法としては、［表１］に示す受信側鍵情報ｋｅｙ＿ｒの項目「鍵断片の値」の値を、上から順に連結した文字列の場合
“FF1A59C0CF14XYZ Corp. ABC_GatewayRouter123 type N ver.1.2.3enterprises.255.255.255”
となる）を用いることが考えられる。
【００２６】
次に、暗号化機密データｅｎｃ（ｋｅｙ＿ｒ，ｄ）と、鍵断片識別情報ｋｅｙ＿ＩＤと、鍵情報再生成器ｇｅｎ＿ｋｅｙ２をまとめて送付データｐ｛ｅｎｃ（ｋｅｙ＿ｒ，ｄ），ｋｅｙ＿ＩＤ，ｇｅｎ＿ｋｅｙ２｝を生成する（ステップＳ２２２）。この鍵断片識別情報ｋｅｙ＿ＩＤとは、表１における受信側鍵情報ｋｅｙ＿ｒから、項目「鍵断片の値」の部分をのぞいたものである。表２にその具体例を挙げておく。なお、表２は説明のために値を平文で表記しているが、実際に運用する際は、表１の場合同様、適当な符号で難読化しておくことが望ましい。なお、難読化の範囲についても、表１の場合同様、「鍵断片の識別子」だけでなく、断片が幾つあるかといった情報（表１の場合は３つ）までも含む。また、難読化する場合、難読化された情報から元の情報を復元する処理を、鍵情報再生成器ｇｅｎ＿ｋｅｙ２に含めておく必要がある。
［表２］
2010141596.tif 000004
【００２７】
鍵情報再生成器ｇｅｎ＿ｋｅｙ２は、図５にて説明したｇｅｎ＿ｋｅｙと似た動作をするものである。詳しくは、機密データ復号処理ブロック２３の説明で後述する。次に、送付データｐ｛ｅｎｃ（ｋｅｙ＿ｒ，ｄ），ｋｅｙ＿ＩＤ，ｇｅｎ＿ｋｅｙ｝を機密データ受信側に送信する（ステップＳ２２３）。送信手段としては、一般的な電子メールなどを用いることが出来る。最後に、送付データｐ｛ｅｎｃ（ｋｅｙ２，ｄ），ｋｅｙ２＿ｉｄ，ｇｅｎ＿ｋｅｙ｝を、機密データ受信側である機密データ受信側計算機４Ａが取得する（ステップＳ２２４）。以上が機密データ暗号化・送付処理ブロック２２の動作フローである。
さらに、図４の機密データ復号処理ブロック２３について説明する。なお、同処理ブロックの前提として、機密データ受信側である機密データ受信側計算機４Ａは、機密データ暗号化・送付処理ブロック２２にて、送付データｐ｛ｅｎｃ（ｋｅｙ＿ｒ，ｄ），ｋｅｙ＿ＩＤ，ｇｅｎ＿ｋｅｙ２｝を取得しているものとする。また、この処理ブロックは、全て機密データ受信側である機密データ受信側計算機４Ａにて実行されるものとする。なお、機密データ復号処理ブロック２３の処理は、鍵生成処理ブロック２１を実行した計算機と同一のネットワークに接続された計算機であれば、同様に実行可能である。
【００２８】
まず、送付データｐ内の鍵情報再生成器ｇｅｎ＿ｋｅｙ２と鍵断片識別情報ｋｅｙ＿ＩＤとにより、機密データの暗号化に用いる受信側鍵情報ｋｅｙ＿ｒを再度生成する。鍵情報再生成器ｇｅｎ＿ｋｅｙ２が受信側鍵情報ｋｅｙ＿ｒを取得する処理は、図３にて説明した鍵情報生成器ｇｅｎ＿ｋｅｙの動作フローと似たものだが、鍵断片としてどの固有情報を決定する方法が異なる。図５に示した鍵情報生成器ｇｅｎ＿ｋｅｙは、利用可能な情報をｇｅｎ＿ｋｅｙ自身が適当に選ぶ。対して、ｇｅｎ＿ｋｅｙ２は、同時に送付された鍵断片識別情報ｋｅｙ＿ＩＤから、鍵断片として用いる情報を特定する。詳しくは図５にて後述する。次に、受信側鍵情報ｋｅｙ＿ｒで送付データｐ内のｅｎｃ（ｋｅｙ＿ｒ，ｄ）を復号して、機密データｄを取得し（ステップＳ２３２）、復号を終了した時点で受信側鍵情報ｋｅｙ＿ｒを破棄する（ステップＳ２３３）。なお、図５の動作フローでは明示していないが、機密データの漏洩を防ぐためには、受信側鍵情報ｋｅｙ＿ｒと同様に、復号された機密データｄも利用を終了した時点で速やかに破棄する必要がある。また、アクセス中に復号済みの機密データを他の媒体への書き出すことも出来ないよう実装する必要がある。少なくとも、復号に用いる鍵情報や、復号過程や復号結果のデータを、ハードディスクなどの持ち出し可能な記録媒体に、ごく短時間でも保存するような実装は避けるべきである。以上が、機密データ復号処理ブロック２３の動作フローである。
【００２９】
図７は、機密データ復号処理ブロック２３で用いる鍵情報再生成器ｇｅｎ＿ｋｅｙ２の動作フローを示す図である。
図７において、鍵情報再生成器ｇｅｎ＿ｋｅｙ２を実行する計算機を、鍵情報生成器実行計算機４ｂ、共通鍵を構成する鍵断片情報を生成源となるネットワーク機器を鍵生成参照機器５ａとする。なお、本発明の形態の規定する動作は鍵情報生成器実行計算機４ｂのものだけである。ステップＳ５０３、Ｓ５０４、Ｓ５０５、Ｓ５０６は、ステップＳ５０２を受けての一般的なネットワーク機器に共通の挙動であり、本発明固有の動作ではない。この４つの動作ステップは説明のために図示したにすぎない。
【００３０】
まず、鍵情報生成器実行計算機４ｂは、鍵断片識別情報ｋｅｙ＿ＩＤのうち、未処理の行を参照して通信先のＩＰアドレスａと、鍵断片情報として利用する通信要求ｒを特定する。例えば、鍵断片識別情報ｋｅｙ＿ＩＤが表２の場合に、最初の行を参照したとすると「通信先のＩＰアドレスａ」は１２７．０．０．１、通信要求は「ＭＡＣアドレス」の要求となる。次に、ＩＰアドレスａのホスト（鍵生成参照機器５ａ）に対して、通信要求ｒのパケットを送信する（ステップＳ５０２）。ＩＰアドレスａのホストが存在した場合（Ｓ５０３でＹｅｓ）、同ホストは通信要求のパケットｒを受信し（ステップＳ５０３）、ｒに対応するサービスがあれば（Ｓ５０５でＹｅｓ）、応答パケットｒｐを鍵情報生成器実行計算機４ｂに返信され（ステップＳ５０６）、鍵情報生成器実行計算機４ｂは同パケットｒｐを受信する（ステップＳ５０７）。ＩＰアドレスａのホストがネットワーク上に存在しない場合（Ｓ５０３でＮｏ）、もしくは、該当ホスト上で通信要求に対応するサービスが動作していない場合（Ｓ５０５でＮｏ）などの場合には、ステップＳ５０８で応答を確認できず（ステップＳ５０８でＮｏの場合）、その時点で鍵生成不能と判定して（ステップＳ５１３）、処理を終了する。一定時間内に応答があった場合でも、通信要求が受理されず拒絶の返答であった場合（ステップＳ５０９でＮｏの場合）は、その時点で鍵生成不能と判定して（ステップＳ５１３）、同様に処理を終了する。なお、ステップＳ５１３で処理を終了した場合は、当然、機密データは復号されない。通信が受理され要求に対する回答を含む応答があった場合（ステップＳ５０９でＹｅｓの場合）、受け取った応答パケットｒｐから、鍵断片情報を取得する（ステップＳ５１０）。鍵断片識別情報ｋｅｙ＿ＩＤに含まれる全ての鍵断片情報が揃えば（ステップＳ５１１でＹｅｓの場合）、鍵断片情報をまとめて受信側鍵情報ｋｅｙ＿ｒを生成して処理を終了する。
鍵断片識別情報ｋｅｙ＿ＩＤに含まれる全ての鍵断片情報が揃っていなければ（ステップＳ５１１でＮｏの場合）、ステップＳ５０１に戻る。以上が、鍵情報再生成器ｇｅｎ＿ｋｅｙ２の動作フローである。
【００３１】
以上説明したように、機密データの送信側は、機密データ受信側の属する閉じたネットワークに接続された機器への汎用的なネットワーク通信要求に対する応答結果から機密データの暗号化に用いる鍵情報を生成し、同鍵情報を用いて機密データを暗号化して送信し、機密データの受信側は、機密データの復号の都度、受信側機器の所属するネットワークに接続された機器への通信要求に対する応答結果から復号に用いる鍵を再生成し、暗号化された機密データを復号するようにしたことで、機密データの保有者が、機密データを外部の関係者に漏洩することなく安全に送信することが可能となった。
また、機密データ受信側の属する閉じたネットワーク内の応答情報を暗号・復号の鍵情報に用いることで、いったん送信され相手側で取得された機密データの、受信側の特定の閉じた計算機ネットワークの外部への漏洩を防ぐことが可能となった。
さらに、汎用的なネットワーク通信要求に対する応答結果を暗号・復号の鍵情報に用いることで、上記の効果を相手側に認証サーバのような新たな機器類を増設したり、ネットワーク構成を変更したりすることなく得ることが可能となった。
【００３２】
［第２の実施形態］
以下、本発明の第２の実施形態に係るデータ送信システムについて説明する。
前述の第１の実施形態に係るデータ送信システムでは、機密データ暗号化に用いる鍵情報のもとになる、通信応答結果の生成元・通信相手として、ルータなどの単一のネットワーク機器のみを用いていた。
本実施形態のデータ送信システムでは、鍵情報の生成元として、複数の機器を用いる。
本実施形態は、第１の実施形態に加えて、鍵情報生成に用いた通信応答の発信元ネットワーク機器と同様の応答を返す通信ホストを偽装することによる、受信側ネットワーク外への機密データの悪意の持ち出しを困難にすることを更なる目的としている。
例えば、第１の実施形態におけるデータ送信システムにおいては、鍵情報生成に用いる通信応答の発信元機器として、確実な動作が期待できるルータが設定されることが多いと考えられる。これは裏を返せば、一般的なアクセス権限でのルータの応答情報をあらかじめ全て取得しておき、ルータと同一アドレスで当該ルータの応答を偽装する通信ホストを用意すれば、本来機密データの復号が可能なネットワークに接続していなくても、機密データの復号が可能となってしまう。それに対し、鍵情報生成に用いる通信応答の発信元機器が複数あれば、通信ホスト偽装による機密データ持ち出しは、より困難となる。
【００３３】
図８は、第２の実施形態におけるデータ送信システムの全体の動作フローを示す図である。
第２の実施形態の全体の動作フローは、図４に示した第１の実施形態における各ブロック２１、２２、２３の変形である鍵生成処理ブロック２１ａ、機密データ暗号化・送付処理ブロック２２ａ、機密データ復号処理ブロック２３ａの３つに分けられる。
この３つの処理ブロックのうち、鍵生成処理ブロック２１ａの動作は、第１の実施形態とほぼ同様の動作を行う。鍵生成処理ブロック２１ａの目的は鍵情報ｋｅｙ＿ｒを生成することだが、第１の実施形態と第２の実施形態における、鍵情報けｋｅｙ＿ｒの差異は「複数のＩＰアドレスを許容するか否か」だけである。表３に第２の実施形態における鍵情報ｋｅｙ＿ｒの例を挙げる。
［表３］
2010141596.tif 000005
【００３４】
第１の実施形態における鍵情報ｋｅｙ＿ｒの例である表１との差異は、項目「ＩＰアドレス」に複数の値が入っているかどうかだけである。また、鍵生成処理ブロック２１ａに含まれる鍵情報生成機ｇｅｎ＿ｋｅｙの挙動も、第１の実施形態の鍵生成処理ブロック２１におけるそれとほぼ同様で、処理内容は、図６に挙げた通信相手の探索と、図５に挙げた鍵断片の抽出・取得を繰り返すだけである。ただし、図６においては、第１の実施形態では鍵情報の元となる通信応答の生成源とする通信相手を１つ見つけた時点で終了するが、第２の実施形態は適当な範囲のＩＰアドレス全てを探索してから終了する。通信相手の探索範囲としては、単純に同一サブネットに属するＩＰアドレス全てを対象とすることが考えられるが、該当ホスト数が多い場合は、ある程度範囲を限定すべきである。例えば、探索範囲を受信側計算機１ＢのＩＰアドレスと第１〜３セグメントが同一のＩＰアドレス群で限定するなどが考えられる。
【００３５】
次に、機密データ暗号化・送付処理ブロック２２ａについて説明する。この処理ブロックは、第１の実施形態と大きく異なる。最大の相違点は、第１の実施形態では単純に鍵情報ｋｅｙ＿ｒで機密データを暗号化していただけなのに対し、第２の実施形態では、鍵情報ｋｅｙ＿ｒとは別に、暗号化の都度ランダムな値を取るデータを一時的な鍵であるセッション鍵ｋｅｙ＿ｓとして併用する。また、第１の実施形態では、鍵情報ｋｅｙ＿ｒを単一の鍵とみなして暗号化していたが、第２の実施形態では鍵情報ｋｅｙ＿ｒから、さらに複数の鍵を生成する。
【００３６】
例えば、図９に挙げるような項目「ＩＰアドレス」に４つのＩＰアドレスが含まれる鍵情報の場合、２〜４のＩＰアドレスのホストからの鍵断片の値を組み合わせて鍵を生成する。２つのＩＰアドレスのホストからの応答情報から鍵を生成する場合だと、｛ルータ、アドレスＡ｝、｛ルータ、アドレスＢ｝、｛ルータ、アドレスＣ｝、｛アドレスＡ、アドレスＢ｝、｛アドレスＡ、アドレスＣ｝、｛アドレスＢ、アドレスＣ｝の６通りの組み合わせがあり、最大６つの鍵が生成される。ただし、ＭＡＣアドレスのような偽装しやすい情報しか得られなかったホストからの鍵断片のみで構成された組については除外することも考えられる。図９の場合、｛アドレスＡ、アドレスＢ｝がその除外対象に該当する。本実施形態の説明では、以後、これらの部分組み合わせで構成された鍵断片群を受信側部分鍵ｋｅｙ＿ｒｐと呼称する。なお、図７の例の場合、４つのＩＰアドレスの鍵断片全てを使って鍵を生成すれば、組み合わせの数は１つしかできないので、第１の実施形態と構成をほとんど変えず機密データ暗号化・送付処理ブロック２２ａを実装できるが、そのような実装は基本的には推奨できない。なぜなら、受信側鍵情報ｋｅｙ＿ｒに含まれるＩＰアドレスは、鍵情報ｋｅｙ＿ｒを生成した際に探索範囲において通信可能であったネットワーク機器全てから取得したものであるが、機密データを復号する際にも、それら全てと通信可能であるとは限らないからである。要は、ホスト偽装による機密データの持ち出しを防げればよいので、一般的なオフィスを想定するなら、ルータと、ＯＡ機器１台と、計算機２〜３台程度とで部分鍵を構成すれば、ホスト偽装阻止には十分効力を発揮すると考えられる。もちろん、重篤な機密データを扱うのであれば、より大きな組み合わせで部分鍵を構成してもよい。
【００３７】
実際に、機密データを暗号化する際は、まず、セッション鍵で機密データを暗号化し、そのセッション鍵を受信側部分鍵ｋｅｙ＿ｒｐの各々で暗号化する。図９の例であれば、暗号化されたセッション鍵が６つ（全ての組み合わせを用いた場合）、もしくは５つ（部分鍵｛アドレスＡ、アドレスＢ｝を除外した場合）生成されることになる。機密データの受信側には、暗号化されたセッション鍵群全てと、暗号化された機密データの両方ともを送付する。機密データの受信側では、逆の手順で復号すればよい。
なお、機密データの暗号化の際に、セッション鍵による暗号化を挟む主な理由は、送付データサイズの削減にある。例として、鍵情報生成源の対象となりうるネットワーク機器が１０台あり、そのうち３つの組で部分鍵を生成するケースで、セッション鍵による暗号化を挟まない場合と、挟む場合とを比較する。まず、セッション鍵を用いず、直接、受信側部分鍵で機密データを暗号化する場合、鍵断片生成源となる機器の組み合わせの数は１２０通りあり、それに対応して部分鍵は１２０個生成される。暗号化する機密データのサイズが１０ＭＢほどの大きさである場合、暗号化によりデータサイズが変わらないと仮定しても、送付データのサイズは、機密データの部分だけで
１０ＭＢ×１２０組＝１．２ＧＢの大きさになる。
【００３８】
次に、暗号化の際に間にセッション鍵を挟む場合を考える。送付される主なデータは、暗号化された機密データが１つと、暗号化されたセッション鍵が１２０個である（それ以外のデータは、ファイルサイズがごく小さいので、ここでは考慮しない）。一般的な共通鍵暗号方式において鍵のサイズはせいぜい１ＫＢ程度なので、暗号化されたセッション鍵群の総サイズもせいぜい１２０ＫＢ程度であり、送付データの総サイズは１０ＭＢの元データと比べて、せいぜい１％程度しか増えないことになる。
なお、送付する機密データのサイズがセッション鍵のサイズと比べ十分に大きければ、セッション鍵による暗号化を挟まない場合と挟む場合との送付データのサイズ比は、生成しうる部分鍵の数の比と概ね等しくなる。この差は、データ送付の通信路によほど余裕がない限り、許容しがたいものと考えられる。
【００３９】
以上をふまえ、図８の機密データ暗号化・送付処理ブロック２２ａについて説明する。なお、第１の実施形態と同様に、この処理ブロックの前提として、機密データ送信側である機密データ送信側計算機１Ｂは、鍵生成処理ブロック２１により受信側鍵情報ｋｅｙ＿ｒを取得しているものとする。
【００４０】
まず、セッション鍵ｋｅｙ＿ｓをランダムに生成する（ステップＳ６２１）。このセッション鍵は、前述した通り、機密データを暗号化するために用いるもので、数バイト〜１キロバイト程度の大きさのビット列となる。もちろん、セッション鍵ｋｅｙ＿ｓは、人間であるユーザーがハンドリングしやすいように一般的な文字列として表現することもできるが、ユーザーがこのセッション鍵ｋｅｙ＿ｓに直接触れる機会はないため、文字列表記する意味は、ほぼ無いはずである。なお、このセッション鍵ｋｅｙ＿ｓは、暗号化の都度ランダムなデータを生成する。たとえ同じ機密データを暗号化し、同じ宛先に送付するのであっても、同じ鍵を別の暗号化の機会に用いることは避けた方がよい。次に、送付する機密データｄをセッション鍵ｋｅｙ＿ｓで暗号化して、暗号化機密データｅｎｃ（ｋｅｙ＿ｓ，ｄ）を生成する（ステップＳ６２２）。次に、セッション鍵ｋｅｙ＿ｓを鍵情報ｋｅｙ＿ｒから生成した部分鍵ｋｅｙ＿ｒｐの各々で暗号化して、暗号化セッション鍵群Ｅ｛ｅｎｃ（ｋｅｙ＿ｒｐ，ｋｅｙ＿ｓ）｝を生成する（ステップＳ６２３）。なお、ここでいう鍵情報ｋｅｙ＿ｒは、例えば表３のようなものである。表３には、ルータ（項目「ＩＰアドレス」の値が‘−’となっているもの）を含め、４つのネットワーク機器から鍵断片を生成しているが、そのうち幾つを抜き出して部分鍵を構成する組とするか、あらかじめ決めておく必要がある。具体的には、例えば、「ルータ＋ルータ以外の１／３の機器から構成」などの選択条件が考えられる。その場合、表３であればルータ１台（表３の２〜４行目）とそれ以外の３台機器（表３の５行目以降）からの鍵断片が含まれるので、部分鍵はルータとその他の機器１台（＝３台×１／３）とからの鍵断片の組み合わせで１つの部分鍵を構成する。その結果、表３の鍵情報ｋｅｙ＿ｒからは、３つの部分鍵が生成されることになり、暗号化セッション鍵群Ｅ｛ｅｎｃ（ｋｅｙ＿ｒｐ，ｋｅｙ＿ｓ）｝として暗号化されたセッション鍵も３つ生成される。
【００４１】
次に、セッション鍵で暗号化した機密データｅｎｃ（ｋｅｙ＿ｓ，ｄ）と、鍵断片識別情報ｋｅｙ＿ＩＤと、鍵情報再生成器ｇｅｎ＿ｋｅｙ２と、暗号化セッション鍵群Ｅをまとめて、送付データｐ｛ｅｎｃ（ｋｅｙ２，ｄ），ｋｅｙ＿ＩＤ，ｇｅｎ＿ｋｅｙ２｝，Ｅ）を生成する（ステップＳ６２４）。ここでいう鍵断片識別情報ｋｅｙ＿ＩＤとは、表２に挙げたような第１の実施形態で用いるそれとは若干異なり、例えば、表４のようになる。
［表４］
2010141596.tif 000006
【００４２】
第１の実施形態での例である表２の場合、表の１行が１つの鍵断片に対応していたが、第２の実施形態の例である表４の場合、表の１行が１つの部分鍵に対応する。そのため、表中の各升には単一の値ではなく、複数の値のリストが入る。例えば、表４の２行目１列目は、対象となる機器がルータと、ＩＰアドレス１２７．０．０．３の２つの機器であることを示す。表４の２行目１列目は、｛｛ａ，ｂ，ｃ｝，｛ｄ｝｝という構成で記述されており、最初の｛ａ，ｂ，ｃ｝が項目「ＩＰアドレス」の示す１つ目の機器の情報（この例の場合はルータ）、｛ｄ｝が２つ目の機器（この例の場合はＩＰアドレス１２７．０．０．３の機器）に対応する。ａ，ｂ，ｃ，ｄが各々の鍵断片の識別子である。つまり、表４の２行目の示す部分鍵とは、
・ルータのＭＡＣアドレス
・ルータのＭＩＢオブジェクト(MIB{[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysDescr]})
・ルータのＭＩＢオブジェクト
(MIB{[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysObjectID]})
・ＩＰアドレス１２７．０．０．３の機器のＭＡＣアドレス
の４つの鍵断片から構成されることになる。機密データ受信側は、暗号化されたセッション鍵群Ｅのうちのどれかを復号することになるが、その際にはこの鍵断片識別情報ｋｅｙ＿ＩＤを元に復号に必要な部分鍵を取得する。なお、第１の実施形態の場合同様、表４は説明のために値を平文で表記しているが、実際に運用する際は、適当な符号で難読化しておくことが望ましい。なお、難読化の範囲については部分鍵が幾つあるかといった情報（表４の場合は３つ）までも含む。また、難読化する場合、元の情報を復元する処理を、後述の鍵情報再生成器ｇｅｎ＿ｋｅｙ２に含めておく必要がある。送付データを生成した後、それを機密データ受信側に送信し（ステップＳ６２５）、受信側で送付データを取得する（ステップＳ６２６）。送付データの通信路としては、一般的な電子メールなどが考えられる。
【００４３】
次に、図８の機密データ復号処理ブロック２３ａについて説明する。なお、同処理ブロックの前提として、機密データ受信側である機密データ受信側計算機４Ｂは、送付データｐ｛ｅｎｃ（ｋｅｙ２，ｄ），ｋｅｙ＿ＩＤ，ｇｅｎ＿ｋｅｙ２｝，Ｅ）を取得しているものとする。また、この処理ブロックは、全て機密データ受信側である機密データ受信側計算機４Ｂにて実行されるものとする。なお、機密データ復号処理ブロック２３ａの処理は、鍵生成処理ブロック２１ａを実行した計算機と同一のネットワークに接続された計算機であれば、同様に実行可能である。
【００４４】
まず、送付データｐ内の鍵情報再生成器ｇｅｎ＿ｋｅｙ２を用いて、鍵断片識別情報ｋｅｙ＿ＩＤで指定された受信側ネットワークの固有情報ｓから、セッション鍵ｋｅｙ＿ｓの暗号化に用いられた受信側部分鍵ｋｅｙ＿ｒｐのいずれかを生成する（ステップＳ６３１）。鍵情報再生成器ｇｅｎ＿ｋｅｙ２については、後述する。次に、取得した受信側部分鍵ｋｅｙ＿ｒｐで送付データｐ内の暗号化セッション鍵Ｅ｛ｅｎｃ（ｋｅｙ＿ｒ，ｋｅｙ＿ｓ）｝を復号して、セッション鍵ｋｅｙ＿ｓを取得する（ステップＳ６３２）。次に、取得したセッション鍵ｋｅｙ＿ｓで送付データｐ内の暗号化機密データｅｎｃ（ｋｅｙ＿ｓ，ｄ）を復号して、機密データｄを取得する（ステップＳ６３３）。次に、機密データ復号処理ブロック２３ａで取得した受信側部分鍵ｋｅｙ＿ｒｐとセッション鍵ｋｅｙ＿ｓを破棄する。
なお、図８の動作フローでは明示していないが、機密データの漏洩を防ぐためには、受信側部分鍵ｋｅｙ＿ｒｐ及びセッション鍵ｋｅｙ＿ｓと同様に、復号された機密データｄも利用を終了した時点で速やかに破棄する必要がある。また、アクセス中に復号済みの機密データを他の媒体への書き出すことも出来ないよう実装する必要がある。少なくとも、復号に用いる鍵情報や、復号過程や復号結果のデータを、ハードディスクなどの持ち出し可能な記録媒体に、ごく短時間でも保存するような実装は避けるべきである。以上が、機密データ復号処理ブロック２３ａの動作フローである。
【００４５】
図１０は、機密データ復号処理ブロック２３ａで用いる鍵情報再生成器ｇｅｎ＿ｋｅｙ２の動作フローを示す図である。
鍵情報再生成器ｇｅｎ＿ｋｅｙ２を実行する計算機を鍵情報生成機実行計算機４ｃ、同計算機と通信する機器群を鍵生成参照機器群５ｂとする。ただし、本発明の第２の実施形態にて規定するのは、鍵情報再生成器実行計算機８ａで実行される動作のみである。８Ｂの動作であるステップＳ８０７、Ｓ８０８、Ｓ８０９、Ｓ８１０は、ステップＳ８０６を受けての一般的なネットワーク機器に共通の挙動であり、本発明固有の動作ではない。この４つのステップは説明のために図示したにすぎない。
【００４６】
まず、鍵断片識別情報ｋｅｙ＿ＩＤのうち、未判定の部分鍵ｋを取得する（ステップＳ８０１）。鍵断片識別情報ｋｅｙ＿ＩＤは、例えば表４のようなものである。部分鍵ｋとは、表４の表記の場合、各々の行に相当する。表４は項目名を表す１行目を除くと、３つの行（２〜４行目）から構成されているので、表４にて表記される鍵断片識別情報ｋｅｙ＿ＩＤには、部分鍵が３つ含まれることになる。
次に、部分鍵ｋに含まれる未処理のＩＰアドレスａを取得する。表４の２行目に対応する部分鍵の場合、このＩＰアドレス２行目１列目の升に記述されている「｛−，１２７．０．０．３｝」の各要素がそれぞれＩＰアドレスに該当する。１つ目の要素は“−”はルータのアドレスを表し、２つ目の要素はそのままＩＰアドレス「１２７．０．０．３」を表す。ステップＳ８０２を最初に実行する時点では、ルータと１２７．０．０．３のホストと、どちらに対しても何の処理も行っていないので、どちらをＩＰアドレスａとみなしてもよい。
【００４７】
次に、ＩＰアドレスａに対する未取得の鍵断片の識別子ａｒを取得する。表４の２行目に対応する部分鍵の場合、この鍵断片の識別子は、表４の２行２列目の「鍵断片群の識別子」に含まれる。２行２列目の値は、｛｛ａ，ｂ，ｃ｝，｛ｄ｝｝という構成で記述されている。ここでいうａ，ｂ，ｃ，ｄには、それぞれ、
「ＭＡＣアドレス」
「MIB{[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysDescr]}」
「MIB{[iso].[org].[dod].[internet].[mgmt].[mib-2].[System].[sysObjectID]}」
「ＭＡＣアドレス」
という値が入っている。そして、第一階層の最初の要素「｛ａ，ｂ，ｃ｝」が、｛−，１２７．０．０．３｝における１つ目のＩＰアドレス、つまりルータ（［−」と記述）のアドレスに対応し、２つ目の要素｛ｄ｝が｛−，１２７．０．０．３｝における２つ目１２７．０．０．３に対応する。ＩＰアドレスａをルータのアドレスとしたのであれば、ここで取得すべき鍵断片の識別子ａｒとは、第一要素｛ａ，ｂ，ｃ｝に含まれる３つのうちいずれかということになる。最初にステップ８０２を実行する時点では、どの鍵断片の識別子も処理していないので、ａ，ｂ，ｃのいずれをａｒとみなしてもよい。単純に最初の要素から選んでも問題ないが、ネットワークへの負荷の軽い通信プロトコルに対応するものから選ぶという方法もある（表４の２行２列目の場合は、「ＭＡＣアドレス」が該当）。
【００４８】
次に、ＩＰアドレスａのホストに対する、鍵断片識別子ａｒに対応する通信要求の応答結果を取得済みか否かを判定する（ステップＳ８０４）。取得済みであれば（ステップＳ８０４でＮｏの場合）、そのデータを再利用（ステップＳ８０５）すればよいので、ＩＰアドレスａのホストへの通信処理は省略する。取得していなければ（ステップＳ８０４でＮｏの場合）、ＩＰアドレスａのホストに対して、鍵断片識別子ａｒに対応する通信要求パケットｒを送信する（ステップＳ８０６）。例えば、上記の表４をもとに、ＩＰアドレスａとしてルータのアドレスを取得し、鍵断片識別子として第一要素の値「ＭＡＣアドレス」を取得しているのであれば、それに対応して「ＭＡＣアドレス」を取得するためのＡＲＰブロードキャストパケットを、鍵情報再生成器ｇｅｎ＿ｋｅｙ２を実行している計算機のネットワークに送信することになる。ステップＳ８０６を受けて、ＩＰアドレスａのホストが存在すれば（ステップＳ８０７でＹｅｓの場合）、ＩＰアドレスａのホストにて当該パケットは受信され（ステップＳ８０８）、該当するサービスが稼動していれば（ステップＳ８０９でＹｅｓの場合）、その応答であるパケットが鍵情報生成機実行計算機４ｃに向けて送信され（ステップＳ８１０）、鍵情報生成機実行計算機４ｃにてそれを受信する（ステップＳ８１１）。ステップＳ８０６実行後、一定時間内に応答パケットｒｐ取得できない場合（ステップＳ８１２でＮｏの場合）、ここで処理している部分鍵ｋは生成不能と判断して（ステップＳ８１５）、次の部分鍵の生成判定に移る。また、応答パケットが返されても、ＩＰアドレスａからの情報提供の拒絶を示すパケットが返される等の要求自体は失敗した場合も、同様に部分鍵ｋは生成不能と判断して、次の部分鍵の生成判定に移る。ただし、この時点で未判定の部分鍵が残っていなかった場合（ステップＳ８１７でＮｏの場合）、部分鍵ｋｅｙ＿ｒｐはいずれも取得不能と判定して（ステップＳ８２０）、処理を終了する。なお、ステップＳ８２０で処理を終了した場合、機密データ復号処理ブロック２３ａにおいて、暗合された機密データは復号されない。
【００４９】
通信要求に対して正常な応答が得られた場合（ステップＳ８１２でＹｅｓの場合）、受け取った応答パケットｒｐから鍵断片情報を抽出・取得する（ステップＳ８１４）。この時点で、ＩＰアドレスａのホストが生成源である鍵断片情報で未取得のものがあれば（ステップＳ８１７でＮｏの場合）、ステップＳ８０３に戻る。ＩＰアドレスａのホストが生成源である鍵断片情報を全て取得している場合（ステップＳ８１７でＹｅｓの場合）、他のＩＰアドレスのホストが生成源である部分鍵ｋに含まれる鍵断片情報で未取得のものがあれば（ステップＳ８１８でＮｏの場合）、ステップＳ８０２に戻る。部分鍵ｋの鍵断片情報を全て取得していれば（ステップＳ８１８でＹｅｓの場合）、鍵断片情報を合成して部分鍵ｋｅｙ＿ｒｐを生成し（ステップＳ８２０）、処理を終了する。
【００５０】
このように、複数の機器の通信応答結果から機密データの暗号化に用いる鍵情報を生成する場合に、機密データ受信側の属する閉じたネットワークに接続された機器群各々の通信応答結果から、部分鍵としての受信側機器固有鍵情報をそれぞれ生成し、セッション鍵情報として適当な文字列を生成し、機密データをセッション鍵情報で暗号化し、セッション鍵情報を部分鍵の各々で暗号化して、複数の暗号化されたセッション情報を生成し、暗号化された機密データと、複数の暗号化された暗号化セッション情報の全てをまとめて送信するようにしたことで、複数機器の応答情報を用いることによる鍵情報の冗長化・複雑化により、暗号化された機密データの正当でない手段による復号をより困難にし、セッション鍵という中間的な鍵情報を利用することで、鍵情報の冗長化・複雑化を機密データ本体の大きさを肥大させることなく実現することが出来る。
【００５１】
［第３の実施形態］
以下、本発明の第３の実施形態について説明する。
本発明は、機密データを外部関係者に送付する際に、送付時の通信路、及び送付後の保管において、機密漏洩から守るためのものである。機密データの漏洩から安全性を担保するためには、その機密データを暗号化する鍵情報が、機密データ受信者から機密データ送信者へ安全に受け渡されることが前提となる。しかし、第１の実施形態及び第２の実施形態では、鍵情報授受の安全な通信路については規定しておらず、別途それを用意することが要求される。
第３の実施形態は、第１の実施形態、もしくは、第２の実施形態に、鍵情報の安全な授受方法を加えたものである。具体的には、第１の実施形態の動作フローを表す図２における鍵生成処理ブロック２１、もしくは、第２の実施形態の動作フローを表す図６における鍵生成処理ブロック２１ａを、より安全な構成に置き換えたものである。この実施の形態では、公開鍵暗号方式を利用することで、機密データの暗号化に用いる鍵を安全に授受する。
【００５２】
この公開鍵暗号方式の仕組みは当業者には自明であるが、簡単に説明しておく。パスワードによる一般的暗号化の多くで用いられる暗号方式である「共通鍵暗号方式」では、暗号化と復号に「共通鍵」と呼ばれる単一の鍵（パスワードなど）を用いる。つまり、暗号化に用いた鍵があれば、同じ鍵で復号も出来る。それに対し、「公開鍵暗号方式」では、「公開鍵」と「秘密鍵」と呼ばれる２つの鍵を用いて暗号化・復号を行い、暗号化に用いた鍵では復号はできない。「公開鍵」で暗号化したデータは「秘密鍵」でしか復号できず、同様に、「秘密鍵」で暗号化したデータは「公開鍵」でしか復号できない。よって、「公開鍵」だけを一般に公開した場合、誰かが「公開鍵」で暗号化したデータを復号できるのは、対応する「秘密鍵」を持つ者に限られる。つまり、共通鍵暗号化方式では、鍵の漏洩が即、暗号化の機密保護能力の喪失につながるが、公開鍵暗号方式における「公開鍵」は、基本的に「公開」されることが前提で秘匿する必要はなく、当然、鍵を授受する通信路の安全性を確保する必要もない。
【００５３】
次に、第３の実施形態における鍵生成・送付の処理を説明する。
図１１は、図４及び図８で構成が共通である鍵生成処理ブロック２１、２１ａを置き換える変形例である鍵生成・送付処理ブロック２１ｂの動作フローを示す図である。
まず、機密データ送信側計算機１Ｃにて、公開鍵暗号方式における秘密鍵ｓｋと公開鍵ｐｋのペアを生成する（ステップＳ９１１）。次に、鍵情報生成器ｇｅｎ＿ｋｅｙと、公開鍵ｐｋを機密データ受信側に送信する（ステップＳ９１２）。次に、ｇｅｎ＿ｋｅｙを用いて、受信側ネットワークの固有情報ｓから機密データの暗号化に用いる受信側鍵情報ｋｅｙ＿ｒを生成する（ステップＳ９１３）。なお、このステップＳ９１３の動作は、第１の実施形態の動作を示す図２におけるステップＳ２１３、もしくは、第２の実施形態の動作を示す図８におけるステップＳ６１３と同じものである。次に、公開鍵ｐｋを用いて受信側鍵情報ｋｅｙ＿ｒを暗号化して、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）を生成する（ステップＳ９１４）。次に、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）を機密データ送信側に送信する（ステップＳ９１６）。それを受けて、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）を機密データ送信側が取得し（ステップＳ９１７ａ）、あわせて、機密データ受信側は受信側鍵情報ｋｅｙ＿ｒを破棄する（ステップＳ９１７ｂ）。次に、機密データ送信側は、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）を秘密鍵ｓｋで復号し、受信側鍵情報ｋｅｙ＿ｒを取得する。以上で、第３の実施形態における鍵生成処理ブロック２１ｂの処理は終了である。
【００５４】
この構成において、第三者が機密データ送信側と受信側の通信を傍受して取得可能な情報は、鍵情報生成器ｇｅｎ＿ｋｅｙと、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）との２つだけである。鍵情報生成器ｇｅｎ＿ｋｅｙがあっても、受信側ネットワークに物理的に直接接続できなければ、機密データの復号に必要な鍵情報は取得できない。また、暗号化受信側鍵情報ｅｎｃ（ｐｋ，ｋｅｙ＿ｒ）があっても、秘密鍵ｓｋがなければ機密データの復号に必要な鍵情報は取得できない。もちろん、この２つが両方揃っても、機密データの復号に必要な鍵情報は取得できない。よって、基本的に機密データ送信側と受信側との間の通信路は安全なものに限定する必要はなく、第三者に傍受される危険性がある一般的な電子メールなどを、鍵情報授受の通信路として選んでも構わない。
このように、鍵情報を機密データ受信側の属する閉じたネットワーク内で生成した後に、その鍵情報を、公開鍵暗号方式における、機密データ送信側の公開鍵で暗号化して、機密データ受信側から機密データ送信側に送付することで、機密データ送信側が、機密データ受信側で生成された鍵情報を取得することも可能であるようにしたことで、機密データの暗号化に用いる鍵情報を安全に授受することができ、その結果、暗号化された機密データより安全に送信することが可能となる。
【００５５】
［第４の実施形態］
以下、本発明の第４の実施形態について説明する。
第１の実施形態、第２の実施形態、及び第３の実施形態は、機密データ受信側ネットワーク所属機器の固有応答情報を用いて、機密データの暗号化を行うものだった。これは裏を返せば、当該ネットワークに物理的に接続さえすれば、誰でも機密データの暗号を解き、機密を取得できるということを意味する。第４の実施形態では、機密データへのアクセス要件として、機密データを受信したネットワークに接続することに加え、パスワードを用いた暗号化を解くことも含める。
第４の実施形態の構成は、前述してきたデータ送信システムの構成に、パスワードによる共通鍵暗号化の過程を加えるだけである。具体的には、機密データ送信側で、機密データ受信側ネットワークの固有応答情報から生成された鍵情報により機密データを暗号化する前に、機密データを、パスワードを鍵に用いた共通鍵暗号方式で暗号化する。受信側ネットワークで生成された鍵による暗号化は、パスワードで暗号化された機密データに対して行う。
逆に、機密データ受信側では、機密データ受信側ネットワークの固有応答情報から生成された鍵情報により、送付データに含まれる機密データ部分を復号した後、前述のパスワードで復号データをさらに復号して、機密データを取得する。
【００５６】
この構成により、機密データ受信側ネットワークに物理的に接続可能な機器及びその利用者に対して、さらにアクセス可能なユーザーを、パスワードを知っている者に限定できる。
なお、機密データ送信側と受信側のパスワードの共有方法であるが、本実施形態が、第３の実施形態を拡張したものであるなら、機密データ受信側でパスワードを生成して、図１１のステップＳ９１５で公開鍵暗号方式により暗号化するデータに、新たに生成したパスワードも含めてしまえばよい。その構成であれば、機密データ送信側と受信側とで、安全にパスワードを共有できる。また、パスワードの生成方法であるが、機密データ受信側が任意に決定する他にも、鍵情報生成器ｇｅｎ＿ｋｅｙにパスワード文字列を生成する機能と、当該文字列を機密データ受信側ユーザーに表示する機能とを含めてしまうこともできる。
【００５７】
図１２は、パスワードの生成・表示機能まで含めた、図１１におけるステップＳ９１３、Ｓ９１４、Ｓ９１５、Ｓ９１６、Ｓ９１７ｂに相当する部分の実行画面の例を示す図である。
図１２は、機密データ受信側のユーザーが、機密データ送信側から鍵情報生成器ｇｅｎ＿ｋｅｙと、公開鍵ｐｋをまとめた実行ファイルを受け取った際に、当該実行ファイルを実行した際に、図１に示す表示装置１５に表示されるものである。文字列表示エリア１０１に機密データ送信側の組織名が、文字列表示エリア１０２に機密データ送信側の担当者の氏名と電子メールアドレスが表示される。また、文字列表示エリア１０３には、パスワードとなるランダムな文字列が生成され、表示される。この文字列の書式は、機密データ送信側があらかじめ定めておくことも出来る。書式の例としては、「１２文字の文字列で、アルファベットの大文字、小文字、数字がそれぞれ１文字以上含まれ、同じ文字が連続して出現しない」などが考えられる。ここで生成・表示される文字列が、受信側ネットワーク所属機器の応答情報による鍵情報とは別の、本実施の形態における追加構成である共通鍵暗号方式による機密データ暗号化に用いられる鍵である。機密データ受信側ユーザーがボタン１０４を押すと、鍵情報生成器ｇｅｎ＿ｋｅｙが受信側ネットワーク所属機器の応答情報から鍵情報ｋｅｙ＿ｒを生成し、文字列表示エリア１０３に表示されたパスワード文字列と合わせて暗号化し、それを機密データ送信側、すなわち、文字列表示エリア１０１、１０２に示される担当者にメールにて送信する。
【００５８】
図１３は、逆に、機密データ受信側が、暗号化された機密データ受信し、それを開こうとするときに表示される、図８における機密データ復号処理ブロック２３ａに相当する部分の実行画面の例を示す図である。
図１３の文字列表示エリア１１１に機密データ送信側の組織名が、文字列表示エリア１１２に機密データ送信側の担当者の氏名と電子メールアドレスが表示される。チェックボックス付リストボックス１１３には、受信した暗号化機密データに含まれる機密情報の一覧が表示される。このリストボックスに付属するチェックボックスについては、後述する。暗号化された機密データを受け取ったユーザーは、図１２の文字列表示エリア１０３に表示されたパスワード文字列を、図１３の文字列入力エリア１１４に入力し、前述のチェックボックス付リストボックス１１３に表示された一覧から、必要な情報にチェックを入れ、ボタン１１５を押すと、当該ユーザーの利用している計算機が鍵情報ｋｅｙ＿ｒを生成したネットワークに接続されており、かつ、文字列入力エリア１１４に入力したパスワード文字列が、図１２の文字列表示エリア１０３に表示されたパスワード文字列と一致していれば、チェックを入れた情報が、鍵情報ｋｅｙ＿ｒとパスワード文字列とにより暗号化されたデータが復号され、チェックを入れた情報が表示される。なお、ここで機密情報を表示する際は、復号した情報の別の記録媒体への書き出し・保存ができないよう実装する事が強く推奨される。
【００５９】
また、より機密を厳格に扱う場合、復号に必要な条件を満たさなかった回数を鍵情報再生成器ｇｅｎ＿ｋｅｙ２が自身の内部に記録しておき、機密データ送信側があらかじめ定めた回数以上条件を満たさない操作を行った場合には、暗号化された機密データを破壊するという実装も考えられる。また、第４の実施形態において、暗号化された機密データの復号に必要な要件は、正しいパスワード文字列が入力される事と、鍵情報生成器ｇｅｎ＿ｋｅｙが適切なネットワーク上で実行される事との、双方が成立することであるが、機密保護の観点においては、復号不能の際には、それがどちらの要件を欠いたのかをユーザーに提示しない方が望ましい。例えば、単に「開封に必要な要件を満たしませんでした」と通知するなどが考えられる。
このように、適当な文字列による暗号化も併用することが可能としたことで、機密データへアクセス可能なユーザーを制限することが出来、関係者ではない人間への機密データへの接触・漏洩を防ぐことが可能になった。
【図面の簡単な説明】
【００６０】
【図１】本発明の実施の形態に係るデータ送信システムの一例の全体構成を示す図。
【図２】機密データ送信計算機（機密データ受信計算機）のハードウェア構成を示す図。
【図３】本発明を構成する各計算機において実行されるプログラムの機能ブロック図。
【図４】第１の実施形態における全体動作のフローチャートを示す図。
【図５】第１の実施形態における鍵情報生成器実行時の動作フローを示す図。
【図６】ＳＮＭＰを用いて鍵情報生成のための適当な通信相手の探索を行う動作フローを示す図。
【図７】第１の実施形態の機密データ復号処理ブロックで用いる鍵情報再生成器の動作フローを示す図。
【図８】第２の実施形態におけるデータ送信システムの全体の動作フローを示す図。
【図９】第２の実施形態における部分鍵を示す図。
【図１０】第２の実施形態で用いる鍵情報再生成器ｇｅｎ＿ｋｅｙ２の動作フローを示す図。
【図１１】第２の実施形態における鍵の生成・送付処理ブロックの動作フローを示す図。
【図１２】図１０におけるステップＳ９１３〜Ｓ９１７ｂに相当する部分の実行画面の例を示す図。
【図１３】図６における機密データ復号処理ブロック２３ａに相当する部分の実行画面の例を示す図。
【符号の説明】
【００６１】
１  機密データ送信計算機、２、３  ルータ、４  機密データ受信計算機、５  ネットワーク機器、１０  ＣＰＵ、１１  ネットワークインターフェイス、１２  入力装置、１３  ルータ、１４  ＲＡＭ、１５  表示装置、２１  鍵生成処理ブロック、２１ａ  鍵生成処理ブロック、２２  機密データ暗号化・送付処理ブロック、２２ａ  機密データ暗号化・送付処理ブロック、２３  機密データ復号処理ブロック、２３ａ  機密データ復号処理ブロック、２４  送信側鍵生成処理部、２５  受信側鍵生成処理部、２６  機密データ暗号化部、２７  機密データ復号部、１０１  文字列表示エリア、１０２  文字列表示エリア、１０３  文字列表示エリア、１０４  ボタン、１１１  文字列表示エリア、１１２  文字列表示エリア、１１３  チェックボックス付リストボックス、１１４  文字列入力エリア、１１５  ボタン
【図１】
2010141596.tif 000007
【図２】
2010141596.tif 000008
【図３】
2010141596.tif 000009
【図４】
2010141596.tif 000010
【図５】
2010141596.tif 000011
【図６】
2010141596.tif 000012
【図７】
2010141596.tif 000013
【図８】
2010141596.tif 000014
【図９】
2010141596.tif 000015
【図１０】
2010141596.tif 000016
【図１１】
2010141596.tif 000017
【図１２】
2010141596.tif 000018
【図１３】
2010141596.tif 000019