JP5784562B2 - 通信装置およびプログラム - Google Patents

通信装置およびプログラム Download PDF

Info

Publication number
JP5784562B2
JP5784562B2 JP2012197249A JP2012197249A JP5784562B2 JP 5784562 B2 JP5784562 B2 JP 5784562B2 JP 2012197249 A JP2012197249 A JP 2012197249A JP 2012197249 A JP2012197249 A JP 2012197249A JP 5784562 B2 JP5784562 B2 JP 5784562B2
Authority
JP
Japan
Prior art keywords
communication
key
application
encryption
cryptographic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012197249A
Other languages
English (en)
Other versions
JP2014053787A (ja
Inventor
佳道 谷澤
佳道 谷澤
英昭 佐藤
英昭 佐藤
川村 信一
信一 川村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012197249A priority Critical patent/JP5784562B2/ja
Priority to US14/018,798 priority patent/US9083682B2/en
Publication of JP2014053787A publication Critical patent/JP2014053787A/ja
Application granted granted Critical
Publication of JP5784562B2 publication Critical patent/JP5784562B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0827Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0855Quantum cryptography involving additional nodes, e.g. quantum relays, repeaters, intermediate nodes or remote nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Description

本発明の実施形態は、通信装置およびプログラムに関する。
複数のリンクによって相互に接続され、ネットワーク化された複数のノードから構成される暗号通信ネットワークが知られている。各ノードは、リンクによって接続された対向ノードとの間で乱数を生成して共有する機能と、その乱数を暗号鍵(以下、リンク鍵)として利用して、リンク上で暗号通信を行う機能とを備える。また、ノードのうちの幾つかは、リンクとは独立に乱数を生成する機能と、別のノードに対し、生成した乱数を送信する機能とを備える。暗号通信ネットワークにおけるアプリケーションは、ノードから、乱数を取得し、これを暗号鍵(以下、アプリケーション鍵)として利用して、別のアプリケーションとの間で暗号通信を行う機能を備える。アプリケーションは、ノードと一体として実現されてもよいし、ノードと独立した端末として実現されてもよい。
ノードにおいて、リンクによって接続された対向ノードとの間で乱数(リンク鍵)を生成・共有する機能は、例えば、一般に量子暗号通信と呼ばれる技術により実現する。この場合、ノードにおいて、リンクとは独立に乱数(アプリケーション鍵)を生成し、生成した乱数を別のノードにリンクを介して送信する技術は、量子鍵配送(Quantum Key Distribution、QKD)と呼ばれることがある。
Dianati, M., Alleaume, R., Gagnaire, M. and Shen, X. (2008), Architecture and protocols of the future European quantum key distribution network. Security and Communication Networks, 1: 57-74. DOI: 10.1002/sec.13
しかしながら、従来技術では、暗号通信ネットワークを利用して暗号通信機能を利用するアプリケーションは、暗号通信ネットワークに対する事前のアドレス登録、暗号通信ネットワークに対する通信指示、および、鍵取得など、煩雑な処理手順が必要である。そのため、既存のアプリケーションから暗号通信ネットワークを利用した暗号通信を実現することは困難であった。
実施形態の通信装置は、暗号処理部と、第1通信部と、制御部と、を備える。暗号処理部は、外部装置と第1ネットワークを介する暗号通信のための暗号機能を実行する。第1通信部は、暗号通信で用いる暗号鍵を生成する鍵生成装置との間で第2ネットワークを介する通信を行う。制御部は、暗号通信で用いられる要求のうち予め定められた特定要求が送信された場合に、アドレス情報を含むアドレス登録要求を、第1通信部を介して鍵生成装置に送信する制御を行う。
本実施形態にかかる通信システムのネットワーク構成図。 本実施形態にかかる通信システムのネットワーク構成図。 本実施形態にかかる通信システムのネットワーク構成図。 本実施形態のクライアント側のライブラリのブロック図。 本実施形態のサーバ側のライブラリのブロック図。 本実施形態のアプリケーションのブロック図。 本実施形態のSSL通信の手順の一例を示す図。 本実施形態のアドレス登録処理、アドレス共有処理、および、アドレス検索処理の例を説明する図。 本実施形態のサービスマッピング情報の一例を示す図。 本実施形態のアドレス登録処理、アドレス検索処理、および、アプリケーション鍵取得処理のシーケンス図。 本実施形態の暗号データ通信処理のシーケンス図。 本実施形態の暗号データ通信終了処理のシーケンス図。 本実施形態にかかる通信装置のハードウェア構成図。
以下に添付図面を参照して、この発明にかかる通信装置の好適な実施形態を詳細に説明する。
(本実施形態)
本実施形態にかかる通信装置は、暗号通信ネットワークの暗号機能を利用するためのアドレス登録処理を自動化する。例えば、一般的な、既存暗号ライブラリのAPI(Application Program Interface)により、アドレス登録、通信指示および鍵取得などの暗号通信ネットワークとの通信処理を適宜呼び出し、適切な暗号通信ネットワーク利用手順を実行する。
図1は、本実施形態にかかる通信システムのネットワーク構成例を示す図である。通信システムは、鍵生成装置としてのノード100a〜100dと、通信装置としてのアプリケーション200a、200bと、を含む。
ノード100a〜100dを区別する必要がない場合は、単にノード100という場合がある。アプリケーション200a、200bを区別する必要がない場合は、単にアプリケーション200という場合がある。ノード100の個数は4に限られるものではない。また、アプリケーション200の個数は2に限られるものではない。
ノード100は、上述のように、対向ノードとの間で乱数を生成して共有する機能と、生成した乱数をリンク鍵として利用して、リンク(図1の「乱数共有・暗号通信」)上で暗号通信を行う機能とを備える。ノード100は、リンクとは独立に乱数を生成する機能と、別のノードに対して生成した乱数を送信する機能とを備えてもよい。
図2は、本実施形態にかかる通信システムのネットワーク構成例を示す図である。図2は、図1に示すネットワーク構成例のアプリケーション200がノードと独立に構成され、且つライブラリ300(300a、300b)を備えることを示す図である。ネットワーク501(第1ネットワーク)は、図1の暗号通信(アプリケーション鍵利用)に対応する。ネットワーク502(第2ネットワーク)は、図1の乱数共有・暗号通信(リンク鍵利用)に対応する。以下では、ネットワーク501をアプリケーションネットワークと言い、ネットワーク502を暗号通信ネットワークと言う場合がある。
図2に示すように、アプリケーション200には、クライアントとして動作するアプリケーション200(アプリケーションクライアント)と、サーバとして動作するアプリケーション200(アプリケーションサーバ)とがある。なお、両者の機能を共に備えるように構成してもよい。以下では、アプリケーション200aがアプリケーションクライアントであり、アプリケーション200bがアプリケーションサーバである場合を例として説明する。
本実施形態では、ライブラリ機能(図2のライブラリ300a、300b)を導入する。図2は、アプリケーション200の一部としてライブラリ機能を実現する例を示す。ライブラリ機能をアプリケーション200から独立し、アプリケーション200とノード100との中間に設置される独立した通信装置(ライブラリ装置)として実現してもよい。図3は、このように構成した通信システムのネットワーク構成例を示す図である。すなわち、図3は、ライブラリ機能を備えないアプリケーション200−2a、200−2bの外部にライブラリ300a、300bを備える例である。
以下では、図2のようにアプリケーション200の一部としてライブラリ機能を実現する場合を例に説明する。
ライブラリ300は、アプリケーション200が、暗号通信ネットワークの機能を利用して暗号通信を行うために必要となる処理を、アプリケーション200に隠蔽した形で行う。図4は、クライアント側のライブラリ機能に相当するライブラリ300aの構成例を示すブロック図である。図4に示すように、ライブラリ300aは、受付部301aと、制御部302aと、第1通信部303aと、鍵管理部304aと、第2通信部305aと、を備えている。
受付部301aは、アプリケーション200aからの、暗号通信に関する要求を受け付ける。制御部302aは、装置全体の動作を制御する。
第1通信部303aは、アプリケーション200aからの要求を受けて、ノード100との間で必要となる暗号通信ネットワークを介した通信(鍵の要求、鍵の取得、アドレス登録、および、アドレス検索等)を行う。
鍵管理部304aは、ノード100から取得した鍵を、アプリケーション200aが利用するまでの間、保持して管理する。
第2通信部305aは、アプリケーション200aの代わりに、アプリケーションネットワーク上の暗号データ通信を行う。なお、通信そのものはアプリケーション200aが行い、第2通信部305aが、通信に必要なデータの暗号化および復号等の一部の機能(暗号機能)のみを担ってもよい。提供可能な暗号機能の1つとして、鍵管理部で保持するアプリケーション鍵を利用して、暗号通信を行う上で必要なデータの暗号化処理と復号処理を行ってもよい。なお、暗号機能が利用する暗号アルゴリズム(暗号方式)の種類・バリエーションについては特に限定は行わない。アプリケーション鍵を利用してもしなくてもよいし、また、例えば、AES(Advanced Encryption Standard)の様なブロック暗号であってもよいし、OTP(One-time Pad)の様なバーナム暗号であってもよい。
図5は、サーバ側のライブラリ機能に相当するライブラリ300bの構成例を示すブロック図である。図5に示すように、ライブラリ300bは、受付部301bと、制御部302bと、第1通信部303bと、鍵管理部304bと、第2通信部305bと、を備えている。
受付部301bは、アプリケーション200bからの、暗号通信に関する要求を受け付ける。
制御部302bは、装置全体の動作を制御する。例えば制御部302bは、暗号通信で用いられる要求のうち予め定められた特定要求が送信された場合に、アドレス情報を含むアドレス登録要求を、第1通信部303bを介してノード100に送信する制御を行う。
鍵管理部304bは、ノード100から取得した鍵を、アプリケーション200bが利用するまでの間、保持して管理する。
第2通信部305bは、アプリケーション200bの代わりに、アプリケーションネットワーク上の暗号データ通信を行う。なお、通信そのものはアプリケーション200bが行い、第2通信部305bが、通信に必要なデータの暗号化および復号等の一部の機能(暗号機能)のみを担ってもよい。提供可能な暗号機能の1つとして、鍵管理部で保持するアプリケーション鍵を利用して、暗号通信を行う上で必要なデータの暗号化処理と復号処理を行ってもよい。なお、暗号機能が利用する暗号アルゴリズム(暗号方式)の種類・バリエーションについては特に限定は行わない。アプリケーション鍵を利用してもしなくてもよいし、また、例えば、AES(Advanced Encryption Standard)の様なブロック暗号であってもよいし、OTP(One-time Pad)の様なバーナム暗号であってもよい。
なお、鍵管理部304a、304bは、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。
図6は、本実施形態におけるアプリケーション200の構成例を示すブロック図である。図6に示すように、アプリケーション200は、実行部201と、暗号通信部202と、プラットフォーム部203と、ライブラリ300と、を備えている。
実行部201は、暗号通信を行うアプリケーション機能を実行する。通信を行うものであれば特にアプリケーション機能の種類は限定しない。例えば、実行部201は、ビデオ送信等の機能を実行する。実行部201は、送信データを暗号通信部202へと受け渡し、受信データを暗号通信部202から受け取る。
暗号通信部202は、他のアプリケーション200などの外部装置とアプリケーションネットワークを介する暗号通信を行う。このとき、暗号通信部202は、前述のライブラリ300の機能を利用して、暗号処理・復号化処理を行なう。また、暗号化したデータの送信処理や、暗号化された(復号化前の)データの受信処理は、ライブラリ300が行なっても良いし、暗号通信部202が行なっても良い。
プラットフォーム部203は、アプリケーション200上の他の構成要素の管理や、動作に必要なコンピュータのオペレーティングシステム機能等を提供する。
図4〜図6の各部は、例えば、CPU(Central Processing Unit)などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
次に、本実施形態における基本的な処理手順について説明する。本実施形態の説明にあたり、アプリケーション200は、一般的な既存暗号(古典暗号)ライブラリであるSSL(またはTLS)のAPIに従って作成されているものとする。実際には、SSLのAPIに限らず、コンテキストの生成、コネクションの確立、暗号データの送受信、および、コネクションの解放、といった手順を実現する暗号通信ライブラリAPIであれば適用可能である。
図7は、本実施形態のSSL通信の手順の一例を示す図である。図7は、SSL通信の手順と、その際に呼び出されるAPIの例を示している。図7に従って、基本的なSSLライブラリによる通信の手順を説明する。
まず、アプリケーション200a、200bは、それぞれ暗号通信ライブラリAPIを初期化する(SSL_Library_init:ステップS101、ステップS102)。アプリケーション200a、200bは、利用する(または利用可能な)暗号パラメータを設定してコンテキストを生成する(SSL_CTX_new:ステップS103、ステップS104)。
アプリケーション200a、200bは、ソケットを作成し(socket:ステップS105、socket,bind,listen:ステップS106)、コネクションを確立する(connect:ステップS107、accept:ステップS108)。この手順はSSLライブラリそのものの手順ではなく、ネットワーク通信に必要な手順である。
アプリケーション200a、200bは、SSLコネクション構造体を生成する(SSL_new:ステップS109、ステップS110)。アプリケーション200a、200bは、生成したSSLコネクション構造体とソケットとを関連付ける(SSL_set_fd:ステップS111、ステップS112)。
アプリケーション200a、200bは、SSLのハンドシェイク(SSL HS)を実行する(SSL_connect:ステップS113、SSL_accept:ステップS114)。このステップで、暗号通信に利用する暗号パラメータのネゴシエーションと、必要な通信相手の認証とを行う。この結果、SSLのコネクションが確立する。
アプリケーション200a、200bは、データ(Data)の送受信を行う(SSL_read/write:ステップS115、ステップS116)。データは送信時に暗号化され、受信時に復号される。
必要な通信を終えると、アプリケーション200a、200bは、SSLのコネクションを開放する(SSL_shutdown:ステップS117、ステップS118)。アプリケーション200a、200bは、SSLコネクション構造体を破棄する(SSL_free:ステップS119、ステップS120)。
アプリケーション200a、200bは、ソケットを閉じる(close:ステップS121、ステップS122)。この手順はSSLライブラリそのものの手順ではなく、ネットワーク通信に必要な手順である。
アプリケーション200a、200bは、コンテキストを破棄する(SSL_CTX_free:ステップS123、ステップS124)。
本実施形態では、ライブラリ300a、300bを用いることにより、以下の(1)〜(4)の手順がさらに実行される。これにより、暗号通信ネットワークを利用した暗号通信が利用可能となる。
(1)ステップS103、ステップS104で暗号パラメータを設定する際、暗号通信ネットワークを利用する暗号についても、選択およびパラメータ設定可能とする。暗号通信ネットワークを利用する暗号のパラメータは、例えば、単純に暗号通信ネットワークによる暗号通信の利用可否を示すパラメータであってもよい。また、このパラメータが、暗号通信ネットワークを利用する暗号通信の場合に、要求する暗号鍵の取得頻度に関する情報を含んでいてもよい。取得した暗号鍵を利用して、どのような暗号アルゴリズムで実際の暗号通信を行うかを指定するパラメータでもよい。もし、複数の暗号通信ネットワークが存在する場合には、いずれの暗号通信ネットワークを利用した暗号通信を行うのかを指定する識別子等であってもよい。具体的なライブラリAPIとして、例えばSSL_CTX_new()を利用してもよい。
(2)ステップS113、ステップS114で暗号パラメータのネゴシエーションを行った結果、暗号通信ネットワークを利用した暗号通信を行うことが決定した場合、さらに、暗号通信ネットワークを利用して暗号通信を行うために必要な様々な初期化処理を行う。1つは、暗号通信ネットワークを介して同一の暗号鍵(アプリケーション鍵)を共有するために必要な、アドレス登録および検索の処理である。もう1つは、暗号通信または認証を行うために必要な、暗号鍵(アプリケーション鍵)の取得である。これらを行うためには、ノード100に対してアドレス情報を通知したり、アプリケーション鍵の取得要求を送信したりしてよい。具体的なライブラリAPIとして、例えばSSL_connect()およびSSL_accept()を利用してもよい。
(3)ステップS115、ステップS116で暗号通信ネットワークを利用した暗号通信(データの暗号通信)を行うためには、アプリケーション鍵を定期的に取得する必要がある。このため、ノード100に対してアプリケーション鍵を要求し、取得する処理と、取得したアプリケーション鍵を利用して通信データを暗号化または復号する処理を行ってもよい。具体的なライブラリAPIとして、例えばSSL_read()およびSSL_write()を利用してもよい。
(4)ステップS117、ステップS118で暗号通信ネットワークを利用した暗号通信(データの暗号通信)を終了するために、ノード100に対してアプリケーション鍵の利用終了を通知してもよい。具体的なライブラリAPIとして、例えばSSL_shutdown()を利用してもよい。
次に、本実施形態のライブラリ300(制御部302)が実行する暗号通信ネットワークにおけるアドレス登録処理、暗号通信ネットワークで行われるアドレス共有処理、および、ライブラリ300(制御部302)が実行するアドレス検索処理について図8および図9を用いて説明する。図8は、アドレス登録処理、アドレス共有処理、および、アドレス検索処理の例を説明するための図である。図9は、ノード100間で共有される情報(サービスマッピング情報)の一例を示す図である。
アプリケーションクライアント(アプリケーション200a)が、あるアプリケーションサーバ(アプリケーション200b)との間で、暗号通信を行うために利用するアプリケーション鍵を取得したいとする。このとき、アプリケーションクライアントが接続しているノード100aは、アプリケーションサーバが接続しているノード100bとの間で、アプリケーション鍵を交換し、それぞれアプリケーションクライアントとアプリケーションサーバに対して同一のアプリケーション鍵を提供する必要がある。
図8は、この機能を実現するための手順を示す図である。なお、「APP(S)」は、アプリケーションサーバであるアプリケーション200(アプリケーション200b)を表す。「APP(C)」は、アプリケーションクライアントであるアプリケーション200(アプリケーション200a)を表す。図8では、通信システムが、4つのアプリケーションサーバ(アプリケーション200b1〜200b4)と、5つのノード100a〜100eを含む例が示されている。
アプリケーションサーバは、自身のサーバ機能を起動すると、そのサービス情報を、接続しているノード100に対して通知する(ステップS201)。サービス情報は、少なくとも、アプリケーションサーバのIPアドレスを含んだ情報である。サービス情報は、サービスが利用するポート番号、サービスの種類を示す識別情報、サービスを利用するために必要なインタフェースに関する情報、および、サービスを利用するために要求されるスループット等を含んでもよい。アプリケーションサーバが、サービス情報をノードに対して通知する処理をアドレス登録処理と呼ぶ。
なお、特に図示しないが、アプリケーションサーバは、例えばアプリケーションサーバが動作するコンピュータが移動する等の影響により、割り当てられるIPアドレス等のサービス情報が変更される場合がある。この場合、アプリケーションサーバは、ステップS201と同様の方式で、ノード100に対して、IPアドレスが変更される旨を通知してよい。また、アブレーションサーバが、サービスを停止する際も、ステップS201と同様の方式で、ノード100に対して、サービスを停止する旨を通知してよい。
ノード100は、上述のサービス情報を、自身の識別子(一般的にはIPアドレス情報)と関連付ける。ノード100は、サービス情報と識別子とを関連づけた情報(サービスマッピング情報)を、暗号通信ネットワークを構成する他のノード100と共有する(ステップS202)。
図9は、サービスマッピング情報の一例を示す図である。サービスマッピング情報は、アプリケーションサーバのIPアドレスと、アプリケーションサーバのポート番号と、対応するノード100のIPアドレスと、を含む。
ノード100同士が、サービスマッピング情報を共有する方法については、特に限定しない。例えば、ノード100が、暗号通信ネットワークを構成するすべてのノード100に対して、自身のサービスマッピング情報を通知することで共有してもよい。また、暗号通信ネットワークにおいて、代表となるノード100(代表ノード)を利用して、サービスマッピング情報を共有してもよい。すなわち、すべてのサービスマッピング情報が代表ノードに通知され、代表ノードがディレクトリサービスとして振る舞うことで、サービスマッピング情報が暗号通信ネットワーク上のすべてのノード100で共有されるように構成してもよい。
次に、アプリケーションクライアントが、あるアプリケーションサーバと通信したいとする。アプリケーションクライアントは、自身が接続するノード100aに対して、自分が通信したいアプリケーションサーバのIPアドレスを通知する(ステップS203)。アプリケーションクライアントが、通信相手と共有されているアプリケーション鍵を取得するために、ノード100に対して通信相手のIPアドレスを通知する処理を、アドレス検索処理と呼ぶ。以下では、アプリケーションクライアントがアプリケーション200b1と通信する場合を例に説明する。
アプリケーションクライアントからアプリケーションサーバ(アプリケーション200b1)のIPアドレスを通知されたノード100aは、サービスマッピング情報から、そのアプリケーションサーバが接続されているノード100bのIPアドレスを取得し、ノード100bとの間で、必要なアプリケーション鍵の共有処理を開始する(ステップS204)。このとき、ノード100aは、アプリケーションクライアントに対して、アドレス検索処理が成功した旨の応答などを行ってもよい。また、ノード100bは、ノード100aとの間でアプリケーション鍵の共有処理を開始する前に、接続されているアプリケーションサーバに対して、アプリケーションクライアントの情報を提示し、アプリケーション鍵の共有開始の可否を問い合わせてもよい。そして、ノード100bは、問い合わせの結果に応じて、アプリケーション鍵の共有処理の実施可否やその頻度等を決定してもよい。あるいは、既に共有済みのアプリケーション鍵が十分に保持されていたり、既にアプリケーション鍵の共有処理が開始されている場合は、改めて共有処理開始(ステップS204)を行なわなくても良い。
この時点で、ノード100aとノード100bとの間で、アプリケーション鍵の共有処理が開始できている。このため、アプリケーションクライアントおよびアプリケーションサーバは、アプリケーションネットワークを介して暗号データ通信を行うためのセッション確立に必要な、認証用アプリケーション鍵の取得処理(ステップS205)、セッション確立時の認証処理(ステップS206)、データの暗号化および復号に使うためのアプリケーション鍵の取得処理(ステップS207)、および、アプリケーションネットワークを介した実際の暗号データ通信処理(ステップS206)、を行ってよい。
本実施形態では、アプリケーション200に代わり、ライブラリ300が、上述した、アドレス登録処理、アドレス検索処理、必要なアプリケーション鍵の取得処理、セッション確立時の認証処理、および、暗号データ通信処理の少なくとも1つを実行する。
次に、本実施形態において、アプリケーション200、ライブラリ300、および、ノード100の間で実施される詳細シーケンスの例について説明する。まず、上記(2)で実施されるアドレス登録処理、アドレス検索処理、および、最初のアプリケーション鍵取得処理について図10を用いて説明する。
アプリケーションサーバにおいて、暗号データ通信の待ち受け状態に移行する。この処理は、例えば、アプリケーションサーバが、接続待ち要求であるSSL_accept()APIを呼び出すことで開始される(ステップS301)。以後、アプリケーションサーバは待ち状態となってもよい。このように、本実施形態では、接続待ち要求(SSL_accept)が特定要求として用いられる。暗号通信で用いられる要求(API)のうち接続待ち要求(SSL_accept)以外の要求を特定要求としてもよい。
ライブラリ300bは、上記処理を検出し、接続関係にあるノード100bとの間で通信を開始する(ステップS302)。このときに初めて、例えば通信のためのコネクションをノード100bと確立してもよい(ステップS303)。同時に、ライブラリ300bは、アプリケーションサーバのIPアドレス情報を含むサービス情報(アドレス登録要求)をノード100bに通知する(ステップS304)。ライブラリ300bは、何らかの方法でサービス情報を事前に取得しておけばよい。これにより、アドレス登録処理が実現される。
この通知を契機として、暗号通信ネットワーク上のノード100bでサービスマッピング情報の共有が行われる(図示せず)。
一方、アプリケーションクライアントでは、アプリケーションサーバのIPアドレスを指定して暗号通信の開始(ハンドシェイク処理)が要求される(ステップS305〜ステップS307)。ハンドシェイク処理は例えば、SSL_connect()APIが呼ばれることで開始される(ステップS305)。この開始要求は、アプリケーションサーバのIPアドレスを含む。アプリケーションクライアントは、アプリケーションサーバとの間で直接、暗号パラメータのネゴシエーションを行う(ハンドシェイク処理の一部(SSL HS:top half)、ステップS307)。なお、本ネゴシエーション処理もアプリケーションクライアントおよびアプリケーションサーバのライブラリを介して行ってもよい。以後、アプリケーションクライアントは待ち状態となってもよい。
ライブラリ300(制御部302)は、ネゴシエーションの結果、アプリケーションサーバが利用する暗号アルゴリズムが、暗号鍵を利用する暗号アルゴリズムである場合に、第2通信部305を介した暗号通信を行うように制御する。すなわち、暗号パラメータのネゴシエーションの結果、暗号通信ネットワークを利用した暗号データ通信を行うことで合意すると、アプリケーションクライアント側のライブラリ300aは、接続関係にあるノード100aに対して、アプリケーションクライアントが通信したいアプリケーションサーバのIPアドレス情報を含む情報を通知する(アドレス検索処理、ステップS309)。なお、ライブラリ300aは、このときに初めて、例えば通信のためのコネクションをノード100aと確立してもよい(ステップS308)。
アプリケーションクライアントから通知を受けたノード100aは、共有しているサービスマッピング情報から、該当のアプリケーションサーバが接続されるノード100を特定する。その後、ノード100aは、アプリケーションクライアントまたは特定したノード100に、アプリケーションサーバを発見した旨を応答してもよい(ステップS310)。
ノード100aは、アプリケーション鍵の共有処理を開始する(ステップS311)。このとき、アプリケーションサーバ側のノード100bは、ライブラリ300bまたはアプリケーションサーバに対して、暗号通信を要求するアプリケーションクライアントのIPアドレス情報等を提示し、暗号通信ネットワークを介した暗号通信を行うことの可否を確認してもよい(ステップS312、ステップS313)。この結果、該当のノード間(ノード100a、ノード100b)でアプリケーション鍵の共有が達成される(ステップS314)。
ノード100aおよびノード100bは、それぞれアプリケーションクライアント(ライブラリ300a)およびアプリケーションサーバ(ライブラリ300b)に対し、共有したアプリケーション鍵と、このアプリケーション鍵の共有を識別するためのセッション識別子の情報とを提供する(ステップS315、ステップS316)。
ライブラリ300a、ライブラリ300bは、取得したアプリケーション鍵情報を利用して、暗号通信開始のための認証処理(ハンドシェイク処理の一部(SSL HS:bottom half)、ステップS317)を行ってもよい。また、ハンドシェイク処理は、アプリケーション鍵情報を利用せずに予め別の認証処理によって完了していてもよい。ハンドシェイク処理が完了した時点で、ライブラリ300の処理を終了し、アプリケーションクライアントおよびアプリケーションサーバに制御を戻してもよい(ステップS318、ステップS319)。
次に、上記(3)で実施される暗号データ通信の処理について図11を用いて説明する。ノード100a、ノード100bの間では、図10の処理などにより暗号通信ネットワーク内の通信が確立されている(ステップS401)。
暗号データの送信側のアプリケーション200bが、データを指定して暗号通信を指示する(ステップS402、ステップS403)。なお、図11ではアプリケーションサーバであるアプリケーション200bが暗号データの送信側になった場合を例に説明するが、アプリケーションクライアント(アプリケーション200a)が送信側であってもよい。暗号通信の指示は、例えば、SSL_write()等のAPI呼び出しであってよい。このとき一般に、通信用のデータとともに、セッションを識別するためのIDも指定される。ここでは、前述のセッション識別子が同時に指定されるものとする。
ライブラリ300bは、送信側のアプリケーション200bが、指定するデータを通信するために必要なアプリケーション鍵をノード100bに対して要求する。このため、ノード100bに対して、セッション識別子、必要なアプリケーション鍵のサイズ、および、鍵の用途(送信用か暗号用かなど)、等を指定したアプリケーション鍵要求を行う(ステップS404)。
ノード100bは、ライブラリ300bからの要求を受けて、そのセッションに関連付けら、指定された用途に利用できるアプリケーション鍵を、指定されたサイズだけ取り出し、ライブラリ300bに提供する(ステップS405)。
ライブラリ300bは、アプリケーション鍵を取得すると、送信側アプリケーションが指定したデータを、取得したアプリケーションを利用して暗号化する。ライブラリ300bは、アプリケーションネットワークを介して、受信側のアプリケーション200aに対して暗号化したデータを送信する(ステップS406)。なお、アプリケーションクライアント(アプリケーション200a)が送信側の場合は、アプリケーションサーバ(アプリケーション200b)が受信側となる。暗号化したデータを送信後、ライブラリ300bの処理を終了し、アプリケーションサーバに制御を戻してもよい(ステップS409、ステップS410)。
ここでは、ライブラリ300自身がデータの暗号化と暗号データの送信まで行う例を示したが、ライブラリ300とアプリケーション200の機能分担はこれに限られるものではない。例えば、ライブラリ300が、アプリケーション鍵を取得してデータの暗号化を行った後、暗号化したアプリケーション鍵をアプリケーション200に渡し、暗号データ送信はアプリケーション200が行ってもよい。また、ライブラリ300がアプリケーション鍵を取得すると、取得したアプリケーション鍵をアプリケーション200に渡し、暗号化と暗号データ送信はアプリケーション200が行ってもよい。この場合、鍵管理部304は、アプリケーション側に存在する構成になる。
またここでは、アプリケーション200が、データの送信を要求してから、ライブラリ300がアプリケーション鍵の取得を開始している。このようにすると、ライブラリ300がノード100からアプリケーション鍵を取得するまでの時間遅延が、暗号データ送信前に発生するため望ましくない。これを避けるために、例えば、ライブラリ300は、アプリケーション200からデータの送信要求を受ける前に、ある程度のアプリケーション鍵を予め取得して、自身に蓄えておくなどの最適化を行ってもよい。
一方、暗号データの受信側のアプリケーション200aは、例えば、SSL_read()等のAPI呼び出しにより暗号通信を指示する(ステップS407、ステップS408)。ライブラリ300aはステップS406で送信された暗号データを受信する。
ライブラリ300aは、受信側のアプリケーション200aが、受信した暗号データを復号するために必要なアプリケーション鍵をノード100aに対して要求する。このため、ライブラリ300aは、ノード100aに対して、セッション識別子、必要なアプリケーション鍵のサイズ、鍵の用途(受信用か復号用かなど)、等を指定したアプリケーション鍵要求を行う(ステップS411)。なお、アプリケーションネットワークから受信した暗号データから、対応するノード100aとの間のセッション識別子を特定するため、ライブラリにおいては、暗号データ通信のセッション識別子と、ノード100aとの間のセッション識別子を関連付けておく。
ノード100aは、ライブラリ300aからの要求を受けて、そのセッションに関連付けられ、指定された用途に利用できるアプリケーション鍵を、指定されたサイズだけ取り出し、ライブラリ300aに提供する(ステップS412)。
ライブラリ300aは、アプリケーション鍵を取得すると、受信したデータを復号し、アプリケーション200aに受け渡す(ステップS413)。
ここでは、ライブラリ300自身がデータの受信と復号まで行う例を示したが、ライブラリ300とアプリケーション200の機能分担はこれに限られるものではない。例えば、ライブラリ300がアプリケーション200からの要求に応じてアプリケーション鍵を取得し、データの暗号化を行った後、暗号化したデータをアプリケーション200に渡してもよい。また、ライブラリ300がアプリケーション200からの要求に応じてアプリケーション鍵を取得してアプリケーション200に渡し、データの受信と復号はアプリケーションが行ってもよい。この場合、鍵管理部304は、アプリケーション側に存在する構成になる。
またここでは、暗号データを実際に受信してから、ライブラリ300がアプリケーション鍵の取得を開始している。このようにすると、ライブラリ300がノード100からアプリケーション鍵を取得するまでの時間遅延が、暗号データ復号前に発生するため望ましくない。これを避けるために、例えば、ライブラリ300は、実際に暗号データを受信する前(例えば、SSL_readライブラリAPI呼び出しがなされた直前、等が一例である)に、ある程度のアプリケーション鍵を予め取得して、自身に蓄えておくなどの最適化を行ってもよい。
次に、上記(4)で実施される暗号データ通信の終了処理について図12を用いて説明する。なお、この処理は、アプリケーションクライアント側であっても、アプリケーションサーバ側であっても同様の処理となる。
暗号データ通信を終了したいアプリケーション200a(アプリケーションサーバであってもアプリケーションクライアントであってもよい)は、セッション識別子を指定して、暗号データ通信の終了を要求する。これは例えば、SSL_shutdown()APIが呼ばれることで開始される(ステップS501、ステップS502)。
ライブラリ300aは、これを受けて、暗号データ通信セッションの終了処理を行う(ステップS503)。暗号データ通信セッションの終了処理そのものは、一般的な方法で行われ、対向のアプリケーション200b(のライブラリ300b)との間でテアダウン処理(SSL TD)が行われる。
ライブラリ300aはさらに、ノード100aに対して、セッション識別子を指定し、暗号通信ネットワークを利用した暗号データ通信をこれ以上行わない旨を通知する(ステップS504)。この通知を受けて、ノード100aは、該当のセッション識別子で指定される対向ノード(ノード100b)との間で行われている、アプリケーション鍵の共有処理を終了してもよいし、しなくてもよい。ただし、ノード100aは、対向のノード100bに対して、該当のセッション識別子で行われていた暗号データ通信が終了する旨を通知する(ステップS505)。
対向のノード100bは、セッションが終了すると、そのセッションに関連付けられているライブラリ300bに対してその旨を通知してもよい。この時点で、ノード100bまたはライブラリ300bは、アプリケーション200bに対して、暗号データ通信が終了したことの通知(例えばclose notify)を送信してもよい(ステップS509、ステップS510)。
ノード100aは、該当のセッション識別子に関連付けられているデータを削除すると、ライブラリ300aに対して、セッション終了の応答通知を行う(ステップS506)。以上を持って、暗号データ通信を終了したいアプリケーション200aにおいて、暗号データ通信が終了する(ステップS507、ステップS508)。
なお、ステップS511〜ステップS520は、アプリケーションサーバであるアプリケーション200bが暗号データ通信を終了する場合の処理である。ステップS511〜ステップS520は、ステップS501〜ステップS510と同様であるため説明を省略する。
このように、本実施形態にかかる通信装置では、暗号ライブラリのAPIの呼び出し手順の中で、アドレス登録、通信指示および鍵取得などの暗号通信ネットワークとの通信処理を実行するため、暗号通信ネットワークの暗号機能を利用するためのアドレス登録処理等の処理を容易に実現できる。また、既存の暗号ライブラリAPIを利用している既存のアプリケーションであっても、本実施形態のライブラリを用いることで、容易に暗号通信ネットワークを利用した暗号通信が実現できる。
次に、本実施形態にかかる通信装置のハードウェア構成について図13を用いて説明する。図13は、本実施形態にかかる通信装置のハードウェア構成を示す説明図である。
本実施形態にかかる通信装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
本実施形態にかかる通信装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
本実施形態にかかる通信装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、本実施形態にかかる通信装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる通信装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
本実施形態にかかる通信装置で実行されるプログラムは、コンピュータを上述した通信装置の各部(受付部、制御部、第1通信部、第2通信部)として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
200 アプリケーション
201 実行部
202 暗号処理部
203 プラットフォーム部
300 ライブラリ
301 受付部
302 制御部
303 第1通信部
304 鍵管理部
305 第2通信部

Claims (6)

  1. 暗号鍵を生成する複数の鍵生成装置のうち第2鍵生成装置との間で第2ネットワークを介した通信を行うことによって、前記第2鍵生成装置から暗号鍵を取得する第1通信部と
    前記複数の鍵生成装置のうち第1鍵生成装置に接続される外部装置との間で、第1ネットワークを介して、取得された前記暗号鍵を用いて暗号通信を行う暗号通信部と、
    記暗号通信で用いられる要求のうち予め定められた特定要求が送信された場合に、アドレス情報を含むアドレス登録要求を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行い、前記暗号通信部が暗号通信を行う場合に、暗号通信の通信相手となる前記外部装置のアドレス情報を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行う制御部と、
    を備える通信装置。
  2. 前記特定要求は、前記暗号通信の接続待ち要求である、
    請求項1に記載の通信装置。
  3. 前記制御部は、前記外部装置が利用する暗号アルゴリズムが、前記暗号鍵を利用する暗号アルゴリズムである場合に、前記暗号通信部を介して前記暗号通信を行う制御を行う、
    請求項1に記載の通信装置。
  4. 前記制御部は、前記暗号通信の開始要求が送信された場合に、前記外部装置との間で暗号通信に利用する暗号パラメータのネゴシエーションを行い、前記外部装置が前記暗号鍵を利用する暗号アルゴリズムを利用することが決定された場合に、前記暗号通信部を介して前記暗号通信を行う制御を行う、
    請求項3に記載の通信装置。
  5. 暗号鍵を生成する複数の鍵生成装置のうち第2鍵生成装置との間で第2ネットワークを介した通信を行うことによって、前記第2鍵生成装置から暗号鍵を取得する第1通信部と、
    前記複数の鍵生成装置のうち第1鍵生成装置に接続される外部装置との間で、第1ネットワークを介して、取得された前記暗号鍵を用いて実行される暗号通信で用いられる要求のうち予め定められた特定要求が送信された場合に、アドレス情報を含むアドレス登録要求を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行い、前記暗号通信部が暗号通信を行う場合に、暗号通信の通信相手となる前記外部装置のアドレス情報を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行う制御部と、
    を備える通信装置。
  6. コンピュータを、
    暗号鍵を生成する複数の鍵生成装置のうち第2鍵生成装置との間で第2ネットワークを介した通信を行うことによって、前記第2鍵生成装置から暗号鍵を取得する第1通信部と、
    前記複数の鍵生成装置のうち第1鍵生成装置に接続される外部装置との間で、第1ネットワークを介して、取得された前記暗号鍵を用いて実行される暗号通信で用いられる要求のうち予め定められた特定要求が送信された場合に、アドレス情報を含むアドレス登録要求を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行い、前記暗号通信部が暗号通信を行う場合に、暗号通信の通信相手となる前記外部装置のアドレス情報を、前記第1通信部を介して前記第2鍵生成装置に送信する制御を行う制御部、
    として機能させるためのプログラム。
JP2012197249A 2012-09-07 2012-09-07 通信装置およびプログラム Active JP5784562B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012197249A JP5784562B2 (ja) 2012-09-07 2012-09-07 通信装置およびプログラム
US14/018,798 US9083682B2 (en) 2012-09-07 2013-09-05 Communication device and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012197249A JP5784562B2 (ja) 2012-09-07 2012-09-07 通信装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2014053787A JP2014053787A (ja) 2014-03-20
JP5784562B2 true JP5784562B2 (ja) 2015-09-24

Family

ID=50611856

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012197249A Active JP5784562B2 (ja) 2012-09-07 2012-09-07 通信装置およびプログラム

Country Status (2)

Country Link
US (1) US9083682B2 (ja)
JP (1) JP5784562B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2968537A1 (en) 2014-12-02 2016-06-09 Carrier Corporation Access control system with virtual card data
WO2016089837A1 (en) 2014-12-02 2016-06-09 Carrier Corporation Capturing user intent when interacting with multiple access controls
WO2016108189A1 (en) * 2014-12-29 2016-07-07 Visa International Service Association Authorizing access to an application library
JP2016171530A (ja) * 2015-03-13 2016-09-23 株式会社東芝 通信装置、通信方法、プログラムおよび通信システム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3296514B2 (ja) * 1993-05-10 2002-07-02 日本電信電話株式会社 暗号通信端末
JP3263878B2 (ja) * 1993-10-06 2002-03-11 日本電信電話株式会社 暗号通信システム
US7188365B2 (en) * 2002-04-04 2007-03-06 At&T Corp. Method and system for securely scanning network traffic
US7460670B1 (en) * 2002-12-20 2008-12-02 Bbn Technologies Corp. Systems and methods for managing quantum cryptographic networks
US7430295B1 (en) * 2003-03-21 2008-09-30 Bbn Technologies Corp. Simple untrusted network for quantum cryptography
JP5424008B2 (ja) 2006-12-19 2014-02-26 日本電気株式会社 共有情報の管理方法およびシステム

Also Published As

Publication number Publication date
JP2014053787A (ja) 2014-03-20
US9083682B2 (en) 2015-07-14
US20140181508A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
US9509510B2 (en) Communication device, communication method, and computer program product
JP5634427B2 (ja) 鍵生成装置、鍵生成方法およびプログラム
JP6495629B2 (ja) 情報処理システム、読出装置、情報処理装置、および、情報処理方法
EP3293934B1 (en) Cloud storage method and system
US20160269176A1 (en) Key Configuration Method, System, and Apparatus
US11303431B2 (en) Method and system for performing SSL handshake
US9306734B2 (en) Communication device, key generating device, and computer readable medium
EP3537652B1 (en) Method for securely controlling smart home appliance and terminal device
CN105993146A (zh) 不访问私钥而使用公钥密码的安全会话能力
CN106411504B (zh) 数据加密***、方法及装置
US20180351737A1 (en) Communication apparatus, communication system, key sharing method, and computer program product
JP6076752B2 (ja) 通信装置、通信システムおよびプログラム
JP5784562B2 (ja) 通信装置およびプログラム
JP2005268903A (ja) 暗号鍵共有装置、暗号鍵共有方法、プログラム及び通信機器
WO2020082226A1 (en) Method and system for transferring data in a blockchain system
JP2007082208A (ja) 電子ドキュメントをセキュリティ面で安全にドメイン間で伝送するシステム、方法、およびプログラム
WO2017091987A1 (zh) 一种终端间的安全交互方法及装置
KR101541165B1 (ko) 모바일 메시지 암호화 방법, 이 방법을 수행하는 프로그램을 기록한 컴퓨터 판독가능 기록매체 및 이 방법을 저장한 다운로드 서버
JP2012100206A (ja) 暗号通信中継システム、暗号通信中継方法および暗号通信中継用プログラム
JP2016019233A (ja) 通信システム、通信装置、鍵管理装置、及び通信方法
JP6456451B1 (ja) 通信装置、通信方法、及びプログラム
JPWO2019026776A1 (ja) 暗号化通信装置、暗号化通信システム、暗号化通信方法、およびプログラム
KR101837064B1 (ko) 보안 통신 장치 및 방법
US20230308264A1 (en) Key management device, quantum cryptography communication system, and computer program product
JP6369094B2 (ja) 情報共有システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140210

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140819

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150310

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150630

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150722

R151 Written notification of patent or utility model registration

Ref document number: 5784562

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151