【解決手段】第1の通信装置10は、第1の情報に対し第1の暗号鍵を用いた暗号化を行い、生成した一次暗号化データ及び第2の情報に対し第2の暗号鍵を用いた暗号化を行い、生成した二次暗号化データを中継装置20へ送信し、中継装置20は、送信された二次暗号化データを受信し、受信した二次暗号化データに対し第2の暗号鍵を用いた復号化を行い、取得した一次暗号化データに基づく転送データを第2の通信装置30へ送信し、第2の通信装置30は、中継装置20から送信された転送データを受信し、受信した転送データに基づいて第1の暗号鍵を用いた復号化を行う。
【発明を実施するための形態】
【0015】
(実施の形態の概要)
まず、実施の形態適用前の参考例について検討する。
図12は、参考例の通信システム900の構成を示している。
図12に示すように、参考例の通信システム900は、システム管理パソコン910、インターネット920、複数の中継パソコン930(930−1〜930−2)、複数の携帯端末装置940(940−1〜940−4)を備えている。
【0016】
携帯端末装置940は、機密情報を扱う装置であり、インターネット920に接続する機能は実装されておらず、シリアル通信で中継パソコン930と通信を行うことが可能である。システム管理パソコン910は、機密情報の管理を行い、インターネット920に接続可能である。携帯端末装置940は、取り扱う機密情報をシステム管理パソコン910と秘匿性を確保して送受信する必要がある。
【0017】
携帯端末装置940は、インターネット920に接続することが不可能なため、中継パソコン930を介してシステム管理パソコン910と通信を行う。この時、機密情報はシステム管理パソコン910と各携帯端末装置940間で秘匿性を確保する必要があるため、中継パソコン930や他の携帯端末装置940に機密情報が開示されてはならない。
【0018】
しかし、インターネットの通信プロトコルを利用した関連する暗号化通信(例えば特許文献1参照)で、システム管理パソコン910と中継パソコン930間の通信を行った場合、中継パソコン930で通信を受信した際に暗号化通信は復号化されてしまうため、機密情報が中継パソコン930に開示されてしまう。また、中継パソコン930と携帯端末装置940間の通信はシリアル通信を使用するため、インターネットの通信プロトコルを利用した暗号化通信は使用できない。すなわち、参考例では次のような問題点がある。
【0019】
第1の問題点は、機密データを送信する装置と受信する装置が直接通信することが不可能であり、中継用パソコンが必要となる場合に、送信装置と受信装置間でのデータの秘匿性が守られないことである。その理由は、インターネットの通信プロトコルを利用した関連する暗号化通信の場合、送信装置と中継パソコンの通信の際に中継パソコンで暗号化された通信データが復号されるので、中継パソコンに通信データが開示されてしまい、送信装置と受信装置間のデータの秘匿性が失われてしまうからである。
【0020】
第2の問題点は、シリアル通信などの場合はインターネットに通信プロトコルを利用した暗号化通信を使用することができないことである。
【0021】
そこで、実施の形態では、インターネットなどを使用してデータ通信を行う際に、送信装置と受信装置の間に中継パソコンなどが必要な場合に、通信データを二重に暗号化して、中継パソコンに通信データを開示することなく送信装置と受信装置間で通信データの秘匿性を確保してデータ通信を行う。
【0022】
図1は、実施の形態に係る通信システムの概要を示している。
図1に示すように、実施の形態に係る通信システムは、第1の通信装置10と、第2の通信装置30と、第1の通信装置10及び第2の通信装置30の間の通信を中継する中継装置20とを備えている。
【0023】
第1の通信装置10は、第1の暗号化部11、第2の暗号化部12、第1の送信部13を備えている。第1の暗号化部11は、第1の情報に対し第1の暗号鍵を用いた暗号化を行い、一次暗号化データを生成する。第2の暗号化部12は、生成した一次暗号化データ及び第2の情報に対し第2の暗号鍵を用いた暗号化を行い、二次暗号化データを生成する。第1の送信部13は、生成した二次暗号化データを中継装置20へ送信する。
【0024】
中継装置20は、第1の受信部21、第1の復号化部22、第2の送信部23を備えている。第1の受信部21は、第1の通信装置10から送信された二次暗号化データを受信する。第1の復号化部22は、受信した二次暗号化データに対し第2の暗号鍵を用いた復号化を行い、一次暗号化データ及び第2の情報を取得する。第2の送信部23は、取得した一次暗号化データに基づく転送データを第2の通信装置30へ送信する。
【0025】
第2の通信装置30は、第2の受信部31、第2の復号化部32を備えている。第2の受信部31は、中継装置20から送信された転送データを受信する。第2の復号化部32は、受信した転送データに基づいて第1の暗号鍵を用いた復号化を行い、第1の情報を取得する。
【0026】
このように、暗号化を二重に行うことにより、データ送信を行う送信側の通信装置とデータ受信を行う受信側の通信装置が直接通信を行うことが不可能で中継装置が必要な場合において、中継装置に送信データの内容を開示することがないため、通信装置間の情報の秘匿性を向上することができる。
【0027】
(実施の形態1)
以下、図面を参照して実施の形態1について説明する。
図2は、本実施の形態に係る通信システム100の構成を示している。
図2に示すように、本実施の形態に係る通信システム100は、送受信装置(第1の通信装置)110、インターネット120、中継パソコン130、送受信装置(第2の通信装置)140を備えている。
【0028】
送受信装置110と中継パソコン130は、インターネット120を介して通信可能に接続されており、中継パソコン130と送受信装置140は、シリアル回線121を介して通信(シリアル通信)可能に接続されている。なお、インターネット120及びシリアル回線121は、一例であり、その他のネットワークや回線を介して接続してもよい。
【0029】
送受信装置110及び140は、送信するデータを暗号化し、暗号化したデータを他方の装置へ送信し、また、他方の装置からデータを受信し、受信したデータを復号化する。中継パソコン130は、送受信装置110とインターネット120を介して通信を行い、通信データを送受信装置140へ中継する。
【0030】
例えば、送受信装置110はシステム管理を行うサーバ(システム管理パソコン)であり、中継パソコン130はパーソナルコンピュータであり、インターネット120に接続可能である。また、送受信装置140はインターネット120に接続することができない携帯端末装置などの装置であり、パーソナルコンピュータとはシリアル通信によるデータ通信が可能である。例えば、中継パソコン130と送受信装置140は同一の場所に存在し、送受信装置110は遠隔地に存在する。送受信装置140が、送受信装置110に保存されている機密情報を受信する場合に、本実施の形態を使用して暗号化通信を行う。
【0031】
図3は、本実施の形態に係る通信システム100における機能ブロックと二重暗号化のデータの流れを示している。
図3では、一例として、送受信装置110が主にデータを送信する送信装置、送受信装置140が主にデータを受信する受信装置として示されている。
【0032】
送受信装置110は、暗号化処理部111、データ通信部112を備え、さらに、暗号鍵K1、暗号鍵K2、通信データ、ヘッダ情報、二重暗号化データを記憶する記憶部(不図示)を備えている。送受信装置110は、予め、暗号鍵K1、暗号鍵K2を保持している。
【0033】
中継パソコン130は、復号化処理部131、暗号化処理部132、データ通信部133及び134を備え、さらに、暗号鍵K2、暗号鍵K3、暗号化データ、二重暗号化データ(受信二重暗号化データ、送信二重暗号化データ)を記憶する記憶部(不図示)を備えている。中継パソコン130は、予め、暗号鍵K2、暗号鍵K3を保持している。
【0034】
送受信装置140は、復号化処理部141、データ通信部142を備え、さらに、暗号鍵K1、暗号鍵K3、二重暗号化データ、通信データを記憶する記憶部(不図示)を備えている。送受信装置140は、予め、暗号鍵K1、暗号鍵K3を備えている。
【0035】
図3を参照しつつ、
図4〜
図7を用いて、本実施の形態に係る通信システム100の動作について説明する。
図4は、本実施の形態に係る通信システム100において、送受信装置110から中継パソコン130を介して送受信装置140へデータを送信する場合の動作を示すフローチャートである。
【0036】
図4に示すように、送受信装置110の暗号化処理部111は、機密情報などの通信データ(第1の情報)に対し暗号鍵K1を使用して暗号化し、暗号化データ(一次暗号化データ)を生成する(S101)。さらに、暗号化処理部111は、生成した暗号化データと暗号鍵K1を使用してメッセージ認証コードを生成する(S102)。暗号化処理部111は、生成した暗号化データに生成したメッセージ認証コードと、中継パソコン130における転送に必要なヘッダ情報(第2の情報)を付与したのちに、暗号鍵K2を使用して暗号化を行い、二重暗号化データ(二次暗号化データ)を生成する(S103)。
【0037】
図5は、
図4のS101〜S103の動作を実現する暗号化処理部111の一例を示している。例えば、暗号化処理部111は、第1の暗号化部201、ハッシュ計算部202、第2の暗号化部203を備えている。
【0038】
暗号化処理部111の第1の暗号化部201は、通信データと暗号鍵K1を使用して暗号化を行い、暗号化データを生成する。暗号化処理部111のハッシュ計算部202は、生成した暗号化データと暗号鍵K1を結合してハッシュ計算を行い、メッセージ認証コードを生成する。暗号化処理部111の第2の暗号化部203は、生成された暗号化データ、メッセージ認証コード、ヘッダ情報を結合して暗号鍵K2で暗号化を行い、二重暗号化データを生成する。
【0039】
図6は、暗号化処理部111で生成される二重暗号化データのデータ構造の一例を示している。通信データは、送信装置(送受信装置110)と受信装置(送受信装置140)間で情報秘匿を確保するデータである。ヘッダ情報は、中継パソコン130が受信装置にデータを転送するために必要な情報であり、中継パソコン130に内容を開示しても良い情報である。メッセージ認証コードは、通信データの改竄を検出するために
図5のハッシュ計算で算出されるコードである。本実施の形態では、通信データを暗号化した暗号化データに、ヘッダ情報、メッセージ認証コードを付与したデータをまとめて暗号化することを特徴とする。
【0040】
図4のS103に続いて、送受信装置110のデータ通信部(第1の送信部)112は、暗号化処理部111が生成した二重暗号化データを、インターネット120を介して中継パソコン130へ送信する(S104)。そうすると、中継パソコン130のデータ通信部(第1の受信部)133は、送受信装置110から送信された二重暗号化データを、インターネット120を介して受信する(S105)。
【0041】
中継パソコン130の復号化処理部(第1の復号化部)131は、受信した二重暗号化データを暗号鍵K2で復号化し、暗号化された通信データ(暗号化データ)とヘッダ情報を生成する(S106)。つまり、
図6のように、二重暗号化データに含まれる暗号化データとヘッダ情報を取得する。取得したヘッダ情報を参照し、送信先の(データを受信する)送受信装置を特定する。送信先の送受信装置の特定は、復号化処理部131、暗号化処理部132、データ通信部134のいずれの処理(タイミング)で行われてもよい。
【0042】
中継パソコン130の暗号化処理部132は、暗号化された通信データ(暗号化データ)を暗号鍵K3で暗号化して、送受信装置140(受信装置)に送信する二重暗号化データを生成する(S107)。例えば、
図6のうち、暗号化データとメッセージ認証コードを含めて暗号化して二重暗号化データを生成する。なお、
図6と同様に、ヘッダ情報、暗号化データ、メッセージ認証コードを含めて暗号化して二重暗号化データを生成してもよい。
【0043】
中継パソコン130のデータ通信部(第2の送信部)134は、生成した二重暗号化データを、シリアル回線121を介して送信先の送受信装置140へ送信する(S108)。そうすると、送受信装置140のデータ通信部(第2の受信部)142は、中継パソコン130から送信された二重暗号化データを、シリアル回線121を介して受信する(S109)。
【0044】
送受信装置140の復号化処理部141は、受信した二重暗号化データを暗号鍵K3で復号化を行い、暗号化データとメッセージ認証コードを取り出す(S110)。復号化処理部141は、暗号化データと暗号鍵K1を使用してメッセージ認証コードを生成し、送られてきたメッセージ認証コードと比較を行い、暗号化データの改竄の有無を確認(認証)する(S111)。復号化処理部141は、暗号化データの改竄がなければ、暗号化データを暗号鍵K1で復号化して通信データを生成する(S112)。
【0045】
図7は、
図4のS110〜S112の動作を実現する復号化処理部141の一例を示している。例えば、復号化処理部141は、第1の復号化部211、ハッシュ計算部212、第2の復号化部213を備えている。
【0046】
復号化処理部141の第1の復号化部211は、二重暗号化データを暗号鍵K3で復号化を行い、暗号化データとメッセージ認証コードを取得する。復号化処理部141のハッシュ計算部212は、取得した暗号化データと暗号鍵K1を結合してハッシュ計算を行い、メッセージ認証コードを生成し、生成したメッセージ認証コードと、二重暗号化データから取得したメッセージ認証コードとを比較する。復号化処理部141の第2の復号化部213は、生成したメッセージ認証コードと、二重暗号化データから取得したメッセージ認証コードとが一致した場合、取得した暗号化データを暗号鍵K1で復号化し、通信データを生成する。
【0047】
なお、送受信装置110を受信装置、送受信装置140を送信装置とした場合、
図3において、送受信装置110に復号化処理部141を設け、送受信装置140に暗号化処理部111を設けて、暗号鍵K2と暗号鍵K3を入れ替えて処理を行うことで、同様に二重暗号化データを用いて通信することができる。
【0048】
以上のような構成とすることにより、本実施の形態では次のような効果が得られる。
【0049】
第1の効果は、送信装置と受信装置間のデータの秘匿性が守られることである。その理由は、送信装置は通信データを中継パソコンで復号できない暗号鍵で暗号化を行い、暗号化された通信データと中継に必要な情報を中継パソコンで復号できる鍵で二重に暗号化して中継パソコンに送信することで、中継パソコンに通信データの内容を開示することなく、受信装置へ送信することが可能であるためである。
【0050】
第2の効果は、インターネットの通信プロトコルを利用した暗号化通信を行えない環境であっても暗号化通信が可能となることである。その理由は、本手法では通信データを暗号化してから通信を行うので、インターネットの通信プロトコルに依存せず、通信データの暗号化が可能である。
【0051】
(実施の形態2)
図8は、通信システム100の他の構成例として、中継パソコン130に複数の受信装置(送受信装置140−1〜140−2)が接続された例を示している。
【0052】
送受信装置140−1と送受信装置140−2が異なる機密情報を扱う場合、送信装置である送受信装置110は、暗号鍵K1、暗号鍵K2を保有し、中継パソコン130は、暗号鍵K2、暗号鍵K3−1、暗号鍵K3−2を保有し、送受信装置140−1は、暗号鍵K1、暗号鍵K3−1を保有し、送受信装置140−2は、暗号鍵K1、暗号鍵K3−2を保有するものとする。
【0053】
送受信装置110はヘッダ情報に転送先の送受信装置140の情報を記載し、中継パソコン130は二重暗号化されたデータを暗号鍵K2で復号化しヘッダ情報から識別される読み取り目的とする送受信装置140へ通信データを転送することが可能である。
【0054】
送受信装置110から送受信装置140−1へ暗号化通信を行う場合は、
図3において、暗号鍵K3を暗号鍵K3−1に置き換えて処理を行い、送受信装置110から送受信装置140−2へ暗号化通信を行う場合は、
図3において、暗号鍵K3を暗号鍵K3−2に置き換えて処理を行うことで、同様に二重暗号化データを用いて通信することができる。
【0055】
この場合、暗号鍵は送受信装置110と送受信装置140で使用する暗号鍵K1、送受信装置110と中継パソコン130で使用する暗号鍵K2、中継パソコン130と送受信装置140−nで使用する暗号鍵K3−nが必要となり、中継パソコン130にn個の受信装置が接続されている場合にn+2種類の暗号鍵が必要となる。
【0056】
このように、通信データを暗号化する暗号鍵K1と、通信相手ごとに異なる暗号鍵K2、暗号鍵K3を組み合わせて二重暗号化したデータで機器間の通信を行うことで、送受信装置間の秘匿性をされに向上することができる。
【0057】
(実施の形態3)
図8のような中継パソコン130に複数の受信装置(送受信装置140−1〜140−2)が接続された例において、送受信装置140−1と送受信装置140−2が同じ機密情報を扱う場合、中継パソコン130から送受信装置140へ暗号化データを転送する際に、二重暗号化を行わずに通信することも可能である。
【0058】
図9は、この場合の機能ブロックとデータの流れを示している。送信側の送受信装置110は、暗号鍵K1、暗号鍵K2を保有し、中継パソコン130は、暗号鍵K2を保有し、受信側の送受信装置140−1および送受信装置140−2は暗号鍵K1を保有するものとする。この場合、暗号鍵は送受信装置110と送受信装置140で使用する暗号鍵K1、送受信装置110と中継パソコン130で使用する暗号鍵K2の2種類の暗号鍵が必要となる。
【0059】
図9の例では、中継パソコン130は、復号化処理部131、データ通信部133及び134を備えている。データ通信部134は、復号化処理部131が復号化した暗号化データを送受信装置140へ送信する。送受信装置140の復号化処理部141は、受信した暗号化データを暗号鍵K1で復号化し、通信データを生成する。これにより、送受信装置140−1と送受信装置140−2とで、同様に情報の秘匿性を確保することができる。
【0060】
(実施の形態4)
図10は、通信システム100の他の構成例として、複数の中継パソコン130(130−1〜130−2)を経由する例を示している。
【0061】
例えば、送信側の送受信装置110は、暗号鍵K1、暗号鍵K2を保有し、中継パソコン130−1は、暗号鍵K2を保有し、中継パソコン130−2は、暗号鍵K2、暗号鍵K3を保有し、受信側の送受信装置140は暗号鍵K1、暗号鍵K3を保有する。
【0062】
中継パソコン130−1から中継パソコン130−2にデータを送信する際、中継パソコン130−1は、送受信装置110から受信した二重暗号化データを暗号鍵K2で復号化及び暗号化することで、二重暗号化データを生成し、中継パソコン130−2へ転送する。さらに、中継パソコン130−2は、
図3と同様に処理することで、中継パソコン130−2から受信側の送受信装置140に通信データを転送することが可能である。これにより、複数の中継装置を介した場合でも、他の実施の形態と同様に情報の秘匿性を確保することができる。
【0063】
(実施の形態5)
図11は、通信システム100の他の構成例として、複数の中継パソコン130(130−1〜130−2)にそれぞれ受信装置(送受信装置140−1〜140−2)が接続された例を示している。
【0064】
受信側の送受信装置140−1と送受信装置140−2で異なる機密情報を扱う場合、送信側の送受信装置110は、暗号鍵K1、暗号鍵K2を保有し、中継パソコン130−1は、暗号鍵K2、暗号鍵K3−1を保有し、中継パソコン130−2は、暗号鍵K2、暗号鍵K3−2を保有し、送受信装置140−1は、暗号鍵K1、暗号鍵K3−1を保有し、送受信装置140−2は、暗号鍵K1、暗号鍵K3−2を保有するものとする。
【0065】
送受信装置110から送受信装置140−1へ暗号化通信を行う場合は、
図3において、暗号鍵K3を暗号鍵K3−1に置き換えて暗号化通信を行い、送受信装置110から送受信装置140−2への暗号化通信を行う場合は、
図3において、暗号鍵K3を暗号鍵K3−2に置き換えて暗号化通信を行うことで、同様に二重暗号化データを用いて通信することができる。
【0066】
中継パソコン130がm個存在しそれぞれ1つの送受信装置140が接続されている場合、暗号鍵は送受信装置110と送受信装置140で使用する暗号鍵K1、送受信装置110と中継パソコン130−mで使用する暗号鍵K2、中継パソコン130−mと送受信装置140で使用する暗号鍵K3−mが必要となり、m+2種類の鍵が必要となる。
【0067】
送受信装置140−1と送受信装置140−2が同じ機密情報を扱う場合、送受信装置110は暗号鍵K1、暗号鍵K2を保有し、中継パソコン130−1および中継パソコン130−2は暗号鍵K2を保有し、送受信装置140−1および送受信装置140−2は暗号鍵K1を保有するものとする。
【0068】
この場合、送受信装置110と送受信装置140−1、送受信装置140−2で暗号化通信を行う際に
図9と同様の処理を行い、暗号鍵は送受信装置110と送受信装置140で使用する暗号鍵K1、送受信装置110と中継パソコン130で使用する暗号鍵K2の2種類の暗号鍵が必要となる。
【0069】
本実施の形態のように、複数の中継装置ごとに送受信装置を接続しても、他の実施の形態と同様に情報の秘匿性を確保することができる。また、
図12のように、複数の中継装置のそれぞれに、複数の送受信装置を接続してもよい。
【0070】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【0071】
上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、1つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。各装置の各機能(各処理)を、CPUやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態における通信方法を行うための通信プログラムを格納し、各機能を、記憶装置に格納された通信プログラムをCPUで実行することにより実現してもよい。
【0072】
これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。