説明

共通鍵生成システム及び共通鍵生成方法

【課題】共通鍵の受け渡しを行わずに、3者間で安全に共通鍵を共有することができる共通鍵生成システム及び共通鍵生成方法を提供すること。
【解決手段】第1共通鍵生成装置10及び第2共通鍵生成装置20は、2次中間鍵MSを生成し、第3共通鍵生成装置30に送信する。第2共通鍵生成装置20及び第3共通鍵生成装置30は、2次中間鍵MSを生成し、第1共通鍵生成装置10に送信する。第3共通鍵生成装置30及び第1共通鍵生成装置10は、2次中間鍵MSを生成し、第2共通鍵生成装置20に送信する。第1共通鍵生成装置10は、第1秘密鍵S、2次中間鍵MS、除数Bに基づいて、共通鍵Cを生成する。第2共通鍵生成装置20は、第2秘密鍵S、2次中間鍵MS、除数Bに基づいて、共通鍵Cを生成する。第3共通鍵生成装置30は、第3秘密鍵S、2次中間鍵MS、除数Bに基づいて、共通鍵Cを生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、共通鍵生成システム及び共通鍵生成方法に関する。
【背景技術】
【0002】
近年、インターネット等のネットワークをデータの交換手段として利用することが急速に広まっている。しかしながら、インターネット等のネットワークでは、データを交換する際に複数のサーバ及び通信回線を経由してデータが転送される。このため、データを転送するサーバ及び通信回線等では、データの盗聴や、データの改ざんや、なりすましをすることが可能となり、セキュリティ問題に発展している。このようなセキュリティ問題に対応するため、暗号化技術が提案されており、例えば、簡易的な暗号化方式として、共通鍵暗号方式が知られている。
【0003】
共通鍵暗号方式では、例えば、特許文献1に示されるように、生成した共通鍵を、2者間で所有する。続いて、送信者は、共通鍵を用いてデータの暗号化を行い、暗号化されたデータを閲覧者に送信する。閲覧者は、データを受信すると、共通鍵を用いて暗号化されたデータを復号する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−278258号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1に示される共通鍵交換方式は、2者間において共通鍵を生成する方式であり、3者間において、共通鍵を生成する方法については示されていない。このため、3者間において、安全に共通鍵を生成することができる共通鍵生成システム及び共通鍵生成方法の提供が望まれている。
【0006】
本発明は、共通鍵の受け渡しを行わずに、3者間で安全に共通鍵を共有することができる共通鍵生成システム及び共通鍵生成方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明に係る共通鍵生成システムは、第1共通鍵生成装置、第2共通鍵生成装置、及び第3共通鍵生成装置を備え、前記第1共通鍵生成装置、前記第2共通鍵生成装置、及び第3共通鍵生成装置において共通鍵を生成する共通鍵生成システムであって、前記第1共通鍵生成装置は、基数、除数、及び第1秘密鍵を生成する第1鍵情報生成手段と、前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の1次中間鍵とする第1中間鍵生成手段と、前記基数、前記除数、及び前記第1の1次中間鍵を前記第2共通鍵生成装置及び前記第3共通鍵生成装置に送信する第1送信手段と、を備え、前記第2共通鍵生成装置は、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信する第2受信手段と、第2秘密鍵を生成する第2鍵情報生成手段と、前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の1次中間鍵とする第2中間鍵生成手段と、前記第2の1次中間鍵を前記第1共通鍵生成装置及び前記第3共通鍵生成装置に送信する第2送信手段と、を備え、前記第3共通鍵生成装置は、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信する第3受信手段と、第3秘密鍵を生成する第3鍵情報生成手段と、前記基数を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の1次中間鍵とする第3中間鍵生成手段と、前記第3の1次中間鍵を前記第1共通鍵生成装置及び前記第2共通鍵生成装置に送信する第3送信手段と、を備え、前記第1共通鍵生成装置は、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するとともに、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信する第1受信手段を更に備え、前記第1中間鍵生成手段は、前記第1受信手段により受信した前記第2の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするとともに、前記第1受信手段により受信した前記第3の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とし、前記第1送信手段は、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するとともに、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信し、前記第2受信手段は、第3共通鍵生成装置から前記第3の1次中間鍵を更に受信し、前記第2中間鍵生成手段は、前記第2受信手段により受信した前記第3の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするとともに、前記第2受信手段により受信した前記第1の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第1の2次中間鍵とし、前記第2送信手段は、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するとともに、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信し、前記第3受信手段は、第2共通鍵生成装置から前記第2の1次中間鍵を更に受信し、前記第3中間鍵生成手段は、前記第3受信手段により受信した前記第1の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第2の2次中間鍵とするとともに、前記第3受信手段により受信した前記第2の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第3の2次中間鍵とし、前記第3送信手段は、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するとともに、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信し、前記第1受信手段は、前記第2共通鍵生成装置から前記第3の2次中間鍵を受信するとともに、前記第3共通鍵生成装置から前記第3の2次中間鍵を受信し、前記第1共通鍵生成装置は、前記第1受信手段により受信した前記第3の2次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を共通鍵とする第1共通鍵生成手段を更に備え、前記第2受信手段は、前記第3共通鍵生成装置から前記第2の2次中間鍵を受信するとともに、前記第1共通鍵生成装置から前記第2の2次中間鍵を受信し、前記第2共通鍵生成装置は、前記第2受信手段により受信した前記第2の2次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とする第2共通鍵生成手段を更に備え、前記第3受信手段は、前記第1共通鍵生成装置から前記第1の2次中間鍵を受信するとともに、前記第2共通鍵生成装置から前記第1の2次中間鍵を受信し、前記第3共通鍵生成装置は、前記第3受信手段により受信した前記第1の2次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とする第3共通鍵生成手段を更に備える。
【0008】
本発明に係る共通鍵生成方法は、第1共通鍵生成装置、第2共通鍵生成装置、及び第3共通鍵生成装置が共通鍵を生成する共通鍵生成方法であって、前記第1共通鍵生成装置が、基数、除数、及び第1秘密鍵を生成するステップと、前記第1共通鍵生成装置が、前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の1次中間鍵とするステップと、前記第1共通鍵生成装置が、前記基数、前記除数、及び前記第1の1次中間鍵を前記第2共通鍵生成装置及び前記第3共通鍵生成装置に送信するステップと、前記第2共通鍵生成装置が、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信するステップと、前記第2共通鍵生成装置が、第2秘密鍵を生成するステップと、前記第2共通鍵生成装置が、前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の1次中間鍵とするステップと、前記第2共通鍵生成装置が、前記第2の1次中間鍵を前記第1共通鍵生成装置及び前記第3共通鍵生成装置に送信するステップと、前記第3共通鍵生成装置が、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信するステップと、前記第3共通鍵生成装置が、第3秘密鍵を生成するステップと、前記第3共通鍵生成装置が、前記基数を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の1次中間鍵とするステップと、前記第3共通鍵生成装置が、前記第3の1次中間鍵を前記第1共通鍵生成装置及び前記第2共通鍵生成装置に送信するステップと、前記第1共通鍵生成装置が、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するステップと、前記第1共通鍵生成装置が、前記第2の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするステップと、前記第1共通鍵生成装置が、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信するステップと、前記第1共通鍵生成装置が、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信するステップと、前記第1共通鍵生成装置が、前記第3の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とするステップと、前記第1共通鍵生成装置が、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するステップと、前記第2共通鍵生成装置が、前記第1の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするステップと、前記第2共通鍵生成装置が、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信するステップと、前記第2共通鍵生成装置が、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信するステップと、前記第2共通鍵生成装置が、前記第3の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするステップと、前記第2共通鍵生成装置が、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するステップと、前記第3共通鍵生成装置が、前記第1の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とするステップと、前記第3共通鍵生成装置が、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するステップと、前記第3共通鍵生成装置が、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するステップと、前記第3共通鍵生成装置が、前記第2の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするステップと、前記第3共通鍵生成装置が、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するステップと、前記第1共通鍵生成装置が、前記第2共通鍵生成装置又は前記第3共通鍵生成装置から前記第3の2次中間鍵を受信するステップと、前記第1共通鍵生成装置が、前記第3の2次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を共通鍵とするステップと、前記第2共通鍵生成装置が、前記第3共通鍵生成装置又は前記第1共通鍵生成装置から前記第2の2次中間鍵を受信するステップと、前記第2共通鍵生成装置が、前記第2の2次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とするステップと、前記第3共通鍵生成装置が、前記第1共通鍵生成装置又は前記第2共通鍵生成装置から前記第1の2次中間鍵を受信するステップと、前記第3共通鍵生成装置が、前記第1の2次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とするステップと、を含む。
【発明の効果】
【0009】
本発明によれば、共通鍵の受け渡しを行わずに、3者間で安全に共通鍵を共有することができる。
【図面の簡単な説明】
【0010】
【図1】本実施形態に係る共通鍵生成システムの全体概要を示す図である。
【図2】本実施形態に係る共通鍵生成装置の機能構成を示す図である。
【図3】本実施形態に係るべき剰余算出部の機能構成を示す図である。
【図4】本実施形態に係る第1共通鍵生成装置における共通鍵生成に係る処理の流れを示すフローチャートである。
【図5】本実施形態に係るべき剰余算出部における処理の流れを示すフローチャートである。
【図6】本実施形態に係る第2共通鍵生成装置における共通鍵生成に係る処理の流れを示すフローチャートである。
【図7】本実施形態に係る第3共通鍵生成装置における共通鍵生成に係る処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態について図を参照しながら説明する。
【0012】
図1は、本実施形態に係る共通鍵生成システム1の全体概要を示す図である。共通鍵生成システム1は、3台の共通鍵生成装置間で共通鍵を生成するシステムである。共通鍵生成システム1は、第1共通鍵生成装置10と、第2共通鍵生成装置20と、第3共通鍵生成装置30と、を備える。第1共通鍵生成装置10と、第2共通鍵生成装置20と、第3共通鍵生成装置30とは、LAN(Local Area Network)やインターネット等のコンピュータネットワークにより構成される通信ネットワークNにより、通信可能に接続されている。
【0013】
この第1共通鍵生成装置10では、基数A、除数B、及び第1秘密鍵Sを生成し、基数A、除数B、及び第1秘密鍵Sに基づいて第1の1次中間鍵として1次中間鍵MFを生成し、第2共通鍵生成装置20及び第3共通鍵生成装置30に、基数A、除数B、及び1次中間鍵MFを送信する。また、第2共通鍵生成装置20では、第2秘密鍵Sを生成し、基数A、除数B、及び第2秘密鍵Sに基づいて第2の1次中間鍵として1次中間鍵MFを生成し、第3共通鍵生成装置30及び第1共通鍵生成装置10に、1次中間鍵MFを送信する。また、第3共通鍵生成装置30では、第3秘密鍵Sを生成し、基数A、除数B、及び第3秘密鍵Sに基づいて第3の1次中間鍵として1次中間鍵MFを生成し、第1共通鍵生成装置10及び第2共通鍵生成装置20に、1次中間鍵MFを送信する。
【0014】
また、第1共通鍵生成装置10は、第2共通鍵生成装置20から、1次中間鍵MFを受信するとともに、第3共通鍵生成装置30から、1次中間鍵MFを受信し、1次中間鍵MF、除数B、及び第1秘密鍵Sに基づいて第1の2次中間鍵として2次中間鍵MSを生成し、1次中間鍵MF、除数B、及び第1秘密鍵Sに基づいて第2の2次中間鍵として2次中間鍵MSを生成する。続いて、第1共通鍵生成装置10は、2次中間鍵MSを第2共通鍵生成装置20に送信し、2次中間鍵MSを第3共通鍵生成装置30に送信する。
【0015】
また、第2共通鍵生成装置20は、第3共通鍵生成装置30から、1次中間鍵MFを受信するとともに、第1共通鍵生成装置10から、1次中間鍵MFを受信し、1次中間鍵MF、除数B、及び第2秘密鍵Sに基づいて第3の2次中間鍵として2次中間鍵MSを生成し、1次中間鍵MF、除数B、及び第2秘密鍵Sに基づいて第1の2次中間鍵として2次中間鍵MSを生成する。続いて、第2共通鍵生成装置20は、2次中間鍵MSを第3共通鍵生成装置30に送信し、2次中間鍵MSを第1共通鍵生成装置10に送信する。
【0016】
また、第3共通鍵生成装置30は、第1共通鍵生成装置10から、1次中間鍵MFを受信するとともに、第2共通鍵生成装置20から、1次中間鍵MFを受信し、1次中間鍵MF、除数B、及び第3秘密鍵Sに基づいて第2の2次中間鍵として2次中間鍵MSを生成し、1次中間鍵MF、除数B、及び第3秘密鍵Sに基づいて第3の2次中間鍵として2次中間鍵MSを生成する。続いて、第3共通鍵生成装置30は、2次中間鍵MSを第1共通鍵生成装置10に送信し、2次中間鍵MSを第2共通鍵生成装置20に送信する。
【0017】
また、第1共通鍵生成装置10は、第2共通鍵生成装置20及び第3共通鍵生成装置30から2次中間鍵MSを受信し、2次中間鍵MS、除数B、及び第1秘密鍵Sに基づいて共通鍵Cを生成する。
【0018】
また、第2共通鍵生成装置20は、第3共通鍵生成装置30及び第1共通鍵生成装置10から2次中間鍵MSを受信し、2次中間鍵MS、除数B、及び第2秘密鍵Sに基づいて共通鍵Cを生成する。
【0019】
また、第3共通鍵生成装置30は、第1共通鍵生成装置10及び第2共通鍵生成装置20から2次中間鍵MSを受信し、2次中間鍵MS、除数B、及び第3秘密鍵Sに基づいて共通鍵Cを生成する。
【0020】
本実施形態は、コンピュータ(第1共通鍵生成装置10、第2共通鍵生成装置20及び第3共通鍵生成装置30)及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備えるハードウェア並びにこのハードウェアを制御するソフトウェアによって構成される。
【0021】
上記ハードウェアには、制御部としてのCPUの他、記憶部、通信部、表示部及び入力部が含まれる。記憶部としては、例えば、メモリ(RAM、ROM等)、ハードディスクドライブ(HDD)及び光ディスク(CD、DVD等)ドライブが挙げられる。通信部としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示部としては、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイが挙げられる。入力部としては、例えば、キーボード及びマウス等が挙げられる。
【0022】
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布することも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布することも可能である。
【0023】
図2は、本実施形態に係る共通鍵生成装置の機能構成を示す図である。
第1共通鍵生成装置10の制御部は、第1送信手段及び第1受信手段としての第1通信部11と、第1鍵情報生成手段としての第1鍵情報生成部12と、第1中間鍵生成手段としての第1中間鍵生成部13と、第1共通鍵生成手段としての第1共通鍵生成部14と、べき剰余算出部50と、を備える。
【0024】
第1通信部11は、第2共通鍵生成装置20及び第3共通鍵生成装置30と、通信ネットワークNを介して、鍵情報の送受信を行う。具体的には、第1通信部11は、後述の第1鍵情報生成部12により生成される基数A及び除数B、並びに後述の第1中間鍵生成部13により生成される1次中間鍵MFを、第2共通鍵生成装置20及び第3共通鍵生成装置30に送信する。また、第1通信部11は、第2共通鍵生成装置20に、2次中間鍵MSを送信し、第2共通鍵生成装置20から、1次中間鍵MF及び2次中間鍵MSを受信する。また、第1通信部11は、第3共通鍵生成装置30に、2次中間鍵MSを送信し、第3共通鍵生成装置30から、1次中間鍵MF及び2次中間鍵MSを受信する。
【0025】
第1鍵情報生成部12は、共通鍵Cを生成する情報となる基数A、除数B、及び第1秘密鍵Sを生成する。具体的には、第1鍵情報生成部12は、基数Aとして任意の自然数を生成し、除数Bとして、桁数が大きい素数(例えば、20桁以上の素数)を生成するものとする。また、第1鍵情報生成部12は、第1秘密鍵Sとして、「0」以上かつ「除数B−2」以下である任意の自然数を生成する。
【0026】
第1中間鍵生成部13は、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとして生成する。具体的には、第1中間鍵生成部13は、基数Aを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第1中間鍵生成部13は、得られた剰余を1次中間鍵MFとすることにより、1次中間鍵MFを生成する。
【0027】
また、第1中間鍵生成部13は、第1通信部11により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第1中間鍵生成部13は、1次中間鍵MFを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0028】
また、第1中間鍵生成部13は、第1通信部11により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第1中間鍵生成部13は、1次中間鍵MFを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0029】
第1共通鍵生成部14は、第1通信部11により、2次中間鍵MSを受信したことに応じて、2次中間鍵MSを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとして生成する。具体的には、第1共通鍵生成部14は、2次中間鍵MSを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を共通鍵Cとすることにより、共通鍵Cを生成する。
【0030】
べき剰余算出部50は、第1共通鍵生成装置10、第2共通鍵生成装置20、及び第3共通鍵生成装置30の共通機能である。
図3を参照してべき剰余算出部50について説明する。図3は、本実施形態に係るべき剰余算出部50の機能構成を示す図である。
【0031】
べき剰余算出部50は、底、除数、及び指数の入力を受け付け、この底の指数乗を、除数で除算した場合の剰余を算出し、この算出した剰余を出力する。べき剰余算出部50は、入力受付手段としての入力受付部51と、初期設定手段としての初期設定部52と、変換手段としての変換部53と、計数手段としての計数部54と、基数算出手段としての基数算出部55と、剰余算出手段としての剰余算出部56と、シフト手段としてのシフト部57と、反復実行手段としての反復実行部58と、出力手段としての出力部59と、を備える。また、べき剰余算出部50は、第1中間値Aと、第2中間値Mとを備える。
【0032】
入力受付部51は、底、除数、及び指数の入力を受け付ける。ここで、入力受付部51により受け付けられた底、除数、及び指数を、それぞれ底A、除数B、指数eとする。
【0033】
初期設定部52は、第1中間値Aの初期値を底Aとし、第2中間値Mの初期値を1に設定する。
変換部53は、指数eを、10進数から2進数に変換する。
【0034】
計数部54は、変換部53により2進数に変換された指数eのビット数を計数する。
【0035】
基数算出部55は、2進数で表現された指数eの右端の値(ビット)が1である場合、第1中間値Aを第2中間値Mで乗算して得られた値を除数Bで除算した場合の剰余を第1中間値Aとすることにより、第1中間値Aを更新する。
【0036】
なお、第1中間値Aと第2中間値Mとの乗算は、以下のように行われる。すなわち、基数算出部55は、第1中間値A及び第2中間値Mを、以下の(1)式に示すように、複数桁(例えば、1桁目〜5桁目、6桁目〜10桁目等、5桁ずつ)に区切り、10のべき乗により構成される多項式、すなわち、初項を10のべき乗(例えば10の5乗)の0乗、公比を当該10のべき乗(例えば10の5乗)とした数列の和で表される多項式に変換する。
【数1】

【0037】
ここで、a…aは、第1中間値Aを満たすためにそれぞれの項に付される係数であり、b…bは、第2中間値Mを満たすためにそれぞれの項に付される係数である。
【0038】
続いて、基数算出部55は、10のべき乗の和に変換された第1中間値A及び第2中間値Mの多項式を乗算して、(2)式に示すように展開する。その後、展開された値に含まれるそれぞれの項を合計することにより、第1中間値Aと第2中間値Mとを乗算した値を算出する。
【数2】

【0039】
剰余算出部56は、2進数に変換された指数eの右端の値(ビット)にかかわらず、第1中間値Aを2乗した値を除数Bで除算した場合の剰余を第2中間値Mとすることにより、第2中間値Mを更新する。なお、第1中間値Aの2乗の計算は、第1中間値Aと第2中間値Mとの乗算と同様に、第1中間値Aを、初項を10のべき乗(例えば10の5乗)の0乗、公比を当該10のべき乗(例えば10の5乗)とした数列の和で表される多項式に変換し、この多項式の第1中間値Aを2乗することにより計算される。
【0040】
シフト部57は、2進数に変換された指数eを右シフトする。具体的には、シフト部57は、2進数に変換された指数eを1ビット右に論理シフトする演算(論理シフト演算)を行う。
【0041】
反復実行部58は、計数部54により計数されたビット数の値を反復回数とし、基数算出部55、剰余算出部56、及びシフト部57に係る処理が、基数算出部55、剰余算出部56、シフト部57の順に、反復回数実行されるように制御する。具体的には、記憶部に初期値を0とするカウンタを設けておき、反復実行部58は、基数算出部55、剰余算出部56、及びシフト部57に係る処理が終了したことに応じて、カウンタに1加算(インクリメント)する。その後、反復実行部58は、カウンタの値が反復回数に達するまで、基数算出部55、剰余算出部56、シフト部57、インクリメントに係る処理を実行する制御を行い、カウンタの値が反復回数に達した場合に、反復実行を終了する。
【0042】
出力部59は、反復実行部58により、基数算出部55、剰余算出部56、及びシフト部57に係る処理が反復回数実行された後、第2中間値Mを剰余として出力する。
【0043】
第2共通鍵生成装置20の制御部は、第2送信手段及び第2受信手段としての第2通信部21と、第2鍵情報生成手段としての第2鍵情報生成部22と、第2中間鍵生成手段としての第2中間鍵生成部23と、第2共通鍵生成手段としての第2共通鍵生成部24と、べき剰余算出部50と、を備える。
【0044】
第2通信部21は、第3共通鍵生成装置30及び第1共通鍵生成装置10と、通信ネットワークNを介して、鍵情報の送受信を行う。具体的には、第2通信部21は、後述の第2中間鍵生成部23により生成される1次中間鍵MFを、第3共通鍵生成装置30及び第1共通鍵生成装置10に送信する。また、第2通信部21は、第3共通鍵生成装置30に、2次中間鍵MSを送信し、第3共通鍵生成装置30から、1次中間鍵MF及び2次中間鍵MSを受信する。また、第2通信部21は、第1共通鍵生成装置10に、2次中間鍵MSを送信し、第1共通鍵生成装置10から、1次中間鍵MF及び2次中間鍵MSを受信する。
【0045】
第2鍵情報生成部22は、共通鍵を生成する情報となる第2秘密鍵Sを生成する。具体的には、第2鍵情報生成部22は、第2秘密鍵Sとして、「0」以上かつ「除数B−2」以下である任意の自然数を生成する。
【0046】
第2中間鍵生成部23は、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとして生成する。具体的には、第2中間鍵生成部23は、基数Aを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第2中間鍵生成部23は、得られた剰余を1次中間鍵MFとすることにより、1次中間鍵MFを生成する。
【0047】
また、第2中間鍵生成部23は、第2通信部21により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第2中間鍵生成部23は、1次中間鍵MFを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0048】
また、第2中間鍵生成部23は、第2通信部21により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第2中間鍵生成部23は、1次中間鍵MFを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0049】
第2共通鍵生成部24は、第2通信部21により、2次中間鍵MSを受信したことに応じて、2次中間鍵MSを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとして生成する。具体的には、第2共通鍵生成部24は、2次中間鍵MSを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を共通鍵Cとすることにより、共通鍵Cを生成する。
【0050】
べき剰余算出部50は、第1共通鍵生成装置10に備えているべき剰余算出部50と同一であるので、説明を省略する。
【0051】
第3共通鍵生成装置30の制御部は、第3送信手段及び第3受信手段としての第3通信部31と、第3鍵情報生成手段としての第3鍵情報生成部32と、第3中間鍵生成手段としての第3中間鍵生成部33と、第3共通鍵生成手段としての第3共通鍵生成部34と、べき剰余算出部50と、を備える。
【0052】
第3通信部31は、第1共通鍵生成装置10及び第2共通鍵生成装置20と、通信ネットワークNを介して、鍵情報の送受信を行う。具体的には、第3通信部31は、後述の第3中間鍵生成部33により生成される1次中間鍵MFを、第1共通鍵生成装置10及び第2共通鍵生成装置20に送信する。また、第3通信部31は、第1共通鍵生成装置10に、2次中間鍵MSを送信し、第1共通鍵生成装置10から、1次中間鍵MF及び2次中間鍵MSを受信する。また、第3通信部31は、第2共通鍵生成装置20に、2次中間鍵MSを送信し、第2共通鍵生成装置20から、1次中間鍵MF及び2次中間鍵MSを受信する。
【0053】
第3鍵情報生成部32は、共通鍵を生成する情報となる第3秘密鍵Sを生成する。具体的には、第3鍵情報生成部32は、第3秘密鍵Sとして、「0」以上かつ「除数B−2」以下である任意の自然数を生成する。
【0054】
第3中間鍵生成部33は、基数Aを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとして生成する。具体的には、第3中間鍵生成部33は、基数Aを底、除数Bを除数、第3秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から、基数Aを底とし、第3秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第3中間鍵生成部33は、得られた剰余を1次中間鍵MFとすることにより、1次中間鍵MFを生成する。
【0055】
また、第3中間鍵生成部33は、第3通信部31により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第3中間鍵生成部33は、1次中間鍵MFを底、除数Bを除数、第3秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0056】
また、第3中間鍵生成部33は、第3通信部31により、1次中間鍵MFを受信したことに応じて、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして生成する。具体的には、第3中間鍵生成部33は、1次中間鍵MFを底、除数Bを除数、第3秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を2次中間鍵MSとすることにより、2次中間鍵MSを生成する。
【0057】
第3共通鍵生成部34は、第3通信部31により、2次中間鍵MSを受信したことに応じて、2次中間鍵MSを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとして生成する。具体的には、第3共通鍵生成部34は、2次中間鍵MSを底、除数Bを除数、第3秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部50に入力することにより、べき剰余算出部50から得られる剰余を共通鍵Cとすることにより、共通鍵Cを生成する。
【0058】
べき剰余算出部50は、第1共通鍵生成装置10に備えているべき剰余算出部50と同一であるので、説明を省略する。
【0059】
続いて、図4から図7を参照して、共通鍵生成システム1における処理の流れを説明する。
図4は、本実施形態に係る第1共通鍵生成装置10における共通鍵生成に係る処理の流れを示すフローチャートである。
【0060】
ステップS1において、第1鍵情報生成部12は、基数A、除数B、及び第1秘密鍵Sを生成する。
【0061】
ステップS2において、第1中間鍵生成部13は、ステップS1において生成された基数A、除数B、及び第1秘密鍵Sに基づいて、1次中間鍵MFを生成する。すなわち、第1中間鍵生成部13は、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとする。1次中間鍵MFを生成する詳細な処理は、第1共通鍵生成装置10のべき剰余算出部50において行われる。べき剰余算出部50における処理は、後述で説明する。
【0062】
ステップS3において、第1通信部11は、ステップS1において生成された基数A、除数B、及びステップS2において生成された1次中間鍵MFを第2共通鍵生成装置20及び第3共通鍵生成装置30に送信する。
【0063】
ステップS4において、第1共通鍵生成装置10の制御部は、第1通信部11により、第2共通鍵生成装置20又は第3共通鍵生成装置30から、鍵を受信したか否かを判定する。第1共通鍵生成装置10の制御部は、この判定がYESの場合、処理をステップS5に移し、この処理がNOの場合、ステップS4の処理を再実行する。
【0064】
ステップS5において、第1中間鍵生成部13は、ステップS4において受信した鍵が、1次中間鍵MFであるか否かを判定する。第1中間鍵生成部13は、この判定がYESの場合、処理をステップS6に移し、この判定がNOの場合、処理をステップS9に移す。
【0065】
ステップS6において、第1中間鍵生成部13は、1次中間鍵MF、除数B、及び第1秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第1中間鍵生成部13は、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第1共通鍵生成装置10のべき剰余算出部50において行われる。
【0066】
ステップS7において、第1通信部11は、ステップS6において生成された2次中間鍵MSを第3共通鍵生成装置30に送信する。
【0067】
ステップS8において、第1共通鍵生成装置10の制御部は、第1通信部11により、全ての鍵、すなわち、1次中間鍵MF、1次中間鍵MF及び2次中間鍵MSを受信したか否かを判定する。第1共通鍵生成装置10の制御部は、この判定がYESの場合、処理を終了し、この判定がNOの場合、処理をステップS4に移す。
【0068】
ステップS9において、第1中間鍵生成部13は、ステップS4において受信した鍵が、1次中間鍵MFであるか否かを判定する。第1中間鍵生成部13は、この判定がYESの場合、処理をステップS10に移し、この判定がNOの場合、処理をステップS12に移す。
【0069】
ステップS10において、第1中間鍵生成部13は、1次中間鍵MF、除数B、及び第1秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第1中間鍵生成部13は、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第1共通鍵生成装置10のべき剰余算出部50において行われる。
【0070】
ステップS11において、第1通信部11は、ステップS6において生成された2次中間鍵MSを第2共通鍵生成装置20に送信する。この処理が終了すると、ステップS8に移る。
【0071】
ステップS12において、第1共通鍵生成部14は、2次中間鍵MS、除数B、及び第1秘密鍵Sに基づいて、共通鍵Cを生成する。すなわち、ステップS12の処理が実行される場合、第1通信部11は、ステップS4において、2次中間鍵MSを受信していることとなる。この場合、第1共通鍵生成部14は、2次中間鍵MSを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。共通鍵Cを生成する詳細な処理は、第1共通鍵生成装置10のべき剰余算出部50において行われる。この処理が終了すると、ステップS8に移る。
【0072】
図5は、本実施形態に係るべき剰余算出部50における処理の流れを示すフローチャートである。
【0073】
ステップS21(入力受付ステップ)において、入力受付部51は、底、除数、指数の入力を受け付ける。ここで受け付けた底を底Aとし、除数を除数Bとし、指数を指数eとする。
【0074】
ステップS22(初期設定ステップ)において、初期設定部52は、第1中間値Aの初期値をステップS21において受け付けた底Aとし、第2中間値Mの初期値を1に設定する。
【0075】
ステップS23(変換ステップ)において、変換部53は、ステップS21において受け付けた指数eを、2進数に変換する。
【0076】
ステップS24(計数ステップ)において、計数部54は、ステップS23において変換された、2進数で表現された指数eのビット数を計数する。
【0077】
ステップS25(基数算出ステップ)において、基数算出部55は、第1中間値Aを更新する。具体的には、基数算出部55は、2進数で表現された指数eの右端の値(ビット)が1である場合、第1中間値Aを第2中間値Mで乗算して得られた値を除数Bで除算して剰余を算出する。続いて、基数算出部55は、この算出された剰余を第1中間値Aとすることにより、第1中間値Aを更新する。ここで、基数算出部55により行われる第1中間値Aと第2中間値Mとの乗算は、第1中間値A及び第2中間値Mそれぞれを10のべき乗の和に変換し、この変換した第1中間値A及び第2中間値Mを乗算することで行われる。
【0078】
ステップS26(剰余算出ステップ)において、剰余算出部56は、第2中間値Mを更新する。具体的には、剰余算出部56は、2進数に変換された指数eの右端の値(ビット)にかかわらず、第1中間値Aを2乗した値を除数Bで除算した場合の剰余を第2中間値Mとすることにより、第2中間値Mを更新する。なお、第1中間値Aの2乗の計算は、第1中間値Aと第2中間値Mとの乗算と同様に、第1中間値Aを10のべき乗の和に変換し、この変換した第1中間値Aを2乗することにより計算される。
【0079】
ステップS27(シフトステップ)において、シフト部57は、2進数に変換された指数eを1ビット右に論理シフトする演算(論理シフト演算)を行う。
【0080】
ステップS28(反復実行ステップ)において、反復実行部58は、ステップS25〜ステップS27の処理が、反復回数行われたか判定する。ここで、反復回数は、ステップS24において計数された値である。反復実行部58は、この判定がYESの場合、処理をステップS29に移し、この判定がNOの場合、処理をステップS25に移す。
【0081】
ステップS29(出力ステップ)において、出力部59は、第2中間値Mを剰余として出力する。
【0082】
図6は、本実施形態に係る第2共通鍵生成装置20における共通鍵生成に係る処理の流れを示すフローチャートである。
【0083】
ステップS31において、第2通信部21は、第1共通鍵生成装置10から、基数A、除数B、及び1次中間鍵MFを受信する。
【0084】
ステップS32において、第2鍵情報生成部22は、第2秘密鍵Sを生成する。
【0085】
ステップS33において、第2中間鍵生成部23は、ステップS31において受信した基数A、除数B、及びステップS32において生成した第2秘密鍵Sに基づいて、1次中間鍵MFを生成する。すなわち、第2中間鍵生成部23は、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとする。1次中間鍵MFを生成する詳細な処理は、第2共通鍵生成装置20のべき剰余算出部50において行われる。
【0086】
ステップS34において、第2通信部21は、ステップS33において生成された1次中間鍵MFを第3共通鍵生成装置30及び第1共通鍵生成装置10に送信する。
【0087】
ステップS35において、第2中間鍵生成部23は、1次中間鍵MF、除数B、及び第2秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第2中間鍵生成部23は、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第2共通鍵生成装置20のべき剰余算出部50において行われる。
【0088】
ステップS36において、第2通信部21は、ステップS35において生成された2次中間鍵MSを第3共通鍵生成装置30に送信する。
【0089】
ステップS37において、第2共通鍵生成装置20の制御部は、第2通信部21により、第3共通鍵生成装置30から、1次中間鍵MFを受信したか否かを判定する。第2共通鍵生成装置20の制御部は、この判定がYESの場合、処理をステップS38に移し、この処理がNOの場合、処理をステップS41に移す。
【0090】
ステップS38において、第2中間鍵生成部23は、1次中間鍵MF、除数B、及び第2秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第2中間鍵生成部23は、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第2共通鍵生成装置20のべき剰余算出部50において行われる。
【0091】
ステップS39において、第2通信部21は、ステップS38において生成された2次中間鍵MSを第1共通鍵生成装置10に送信する。
【0092】
ステップS40において、第2共通鍵生成装置20の制御部は、第2通信部21により、全ての鍵、すなわち、1次中間鍵MF、1次中間鍵MF及び2次中間鍵MSを受信したか否かを判定する。第2共通鍵生成装置20の制御部は、この判定がYESの場合、処理を終了し、この判定がNOの場合、処理をステップS37に移す。
【0093】
ステップS41において、第2共通鍵生成装置20の制御部は、第2通信部21により、2次中間鍵MSを受信したか否かを判定する。第2共通鍵生成装置20の制御部は、この判定がYESの場合、処理をステップS42に移し、この処理がNOの場合、処理をステップS40に移す。
【0094】
ステップS42において、第2共通鍵生成部24は、2次中間鍵MS、除数B、及び第2秘密鍵Sに基づいて、共通鍵Cを生成する。すなわち、第2共通鍵生成部24は、2次中間鍵MSを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。共通鍵Cを生成する詳細な処理は、第2共通鍵生成装置20のべき剰余算出部50において行われる。この処理が終了すると、ステップS40に移る。
【0095】
図7は、本実施形態に係る第3共通鍵生成装置30における共通鍵生成に係る処理の流れを示すフローチャートである。
【0096】
ステップS51において、第3通信部31は、第1共通鍵生成装置10から、基数A、除数B、及び1次中間鍵MFを受信する。
【0097】
ステップS52において、第3鍵情報生成部32は、第3秘密鍵Sを生成する。
【0098】
ステップS53において、第3中間鍵生成部33は、ステップS51において受信した基数A、除数B、及びステップS52において生成した第3秘密鍵Sに基づいて、1次中間鍵MFを生成する。すなわち、第3中間鍵生成部33は、基数Aを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を1次中間鍵MFとする。1次中間鍵MFを生成する詳細な処理は、第3共通鍵生成装置30のべき剰余算出部50において行われる。
【0099】
ステップS54において、第3通信部31は、ステップS53において生成された1次中間鍵MFを第1共通鍵生成装置10及び第2共通鍵生成装置20に送信する。
【0100】
ステップS55において、第3中間鍵生成部33は、1次中間鍵MF、除数B、及び第3秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第3中間鍵生成部33は、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第3共通鍵生成装置30のべき剰余算出部50において行われる。
【0101】
ステップS56において、第3通信部31は、ステップS55において生成された2次中間鍵MSを第2共通鍵生成装置20に送信する。
【0102】
ステップS57において、第3共通鍵生成装置30の制御部は、第3通信部31により、第2共通鍵生成装置20から、1次中間鍵MFを受信したか否かを判定する。第3共通鍵生成装置30の制御部は、この判定がYESの場合、処理をステップS58に移し、この処理がNOの場合、処理をステップS61に移す。
【0103】
ステップS58において、第3中間鍵生成部33は、1次中間鍵MF、除数B、及び第3秘密鍵Sに基づいて、2次中間鍵MSを生成する。すなわち、第3中間鍵生成部33は、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとする。2次中間鍵MSを生成する詳細な処理は、第3共通鍵生成装置30のべき剰余算出部50において行われる。
【0104】
ステップS59において、第3通信部31は、ステップS58において生成された2次中間鍵MSを第1共通鍵生成装置10に送信する。
【0105】
ステップS60において、第3共通鍵生成装置30の制御部は、第3通信部31により、全ての鍵、すなわち、1次中間鍵MF、1次中間鍵MF及び2次中間鍵MSを受信したか否かを判定する。第3共通鍵生成装置30の制御部は、この判定がYESの場合、処理を終了し、この判定がNOの場合、処理をステップS57に移す。
【0106】
ステップS61において、第3共通鍵生成装置30の制御部は、第3通信部31により、2次中間鍵MSを受信したか否かを判定する。第3共通鍵生成装置30の制御部は、この判定がYESの場合、処理をステップS62に移し、この処理がNOの場合、処理をステップS60に移す。
【0107】
ステップS62において、第3共通鍵生成部34は、2次中間鍵MS、除数B、及び第3秘密鍵Sに基づいて、共通鍵Cを生成する。すなわち、第3共通鍵生成部34は、2次中間鍵MSを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。共通鍵Cを生成する詳細な処理は、第3共通鍵生成装置30のべき剰余算出部50において行われる。この処理が終了すると、ステップS60に移る。
【0108】
以上のように、本実施形態によれば、第1共通鍵生成装置10は、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして第3共通鍵生成装置30に送信し、1次中間鍵MFを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとし、第2共通鍵生成装置20に送信する。また、第2共通鍵生成装置20は、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして第1共通鍵生成装置10に送信し、1次中間鍵MFを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとし、第3共通鍵生成装置30に送信する。また、第3共通鍵生成装置30は、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとして第2共通鍵生成装置20に送信し、1次中間鍵MFを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を2次中間鍵MSとし、第1共通鍵生成装置10に送信する。続いて、第1共通鍵生成装置10は、2次中間鍵MSを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。また、第2共通鍵生成装置20は、2次中間鍵MSを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。また、第3共通鍵生成装置30は、2次中間鍵MSを底とし、第3秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。
【0109】
ここで、基数Aを底とし秘密鍵を指数としたべき乗は、以下の(3)式で表される。
【数3】

ただし、Xは、基数Aを底とし第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とし、Xは、基数Aを底とし第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とし、Xは、基数Aを底とし第3秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とする。
【0110】
また、1次中間鍵を底とし秘密鍵を指数としたべき乗は、以下の(4)式で表される。
【数4】

ただし、Xは、1次中間鍵MFを底とし第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とし、Xは、1次中間鍵MFを底とし第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とし、Xは、1次中間鍵MFを底とし第3秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とする。
【0111】
また、指数法則により、以下の(5)、(6)式が成り立つ。
【数5】

【0112】
【数6】

【0113】
ここで、(6)式に(3)式を代入すると、(7)式が成り立つ。
【数7】

【0114】
ここで、(7)式を部分的に展開すると、(8)式が成り立つ。
【数8】

【0115】
ここで、(8)式に対して、(4)式を代入すると、(9)式が成り立つ。
【数9】

【0116】
そして、(9)式のそれぞれの辺について、除数Bで除算した場合の剰余は、共通鍵Cとなる。
【0117】
よって、第1共通鍵生成装置10、第2共通鍵生成装置20、及び第3共通鍵生成装置30それぞれにおいて、秘密鍵を交換することなく共通鍵を生成することができる。ここで、除数Bが桁数の大きい素数である場合、基数A、除数B、並びに1次中間鍵、2次中間鍵を知っていたとしても、これらの値から、共通鍵Cを求めるには、膨大な計算量が必要となる。よって、共通鍵生成システム1は、3者間で安全に共通鍵を共有することができる。
【0118】
また、共通鍵生成システム1は、べき剰余算出部50において第1中間値A及び第2中間値Mを、10のべき乗により構成される多項式に変換し、これら多項式を乗算して、展開することにより、第1中間値Aと第2中間値Mとの乗算、及び第1中間値Aの2乗の計算を行う。
【0119】
このようにすることで、共通鍵生成システム1は、第1中間値Aと第2中間値Mが長大桁数である場合、この長大桁数よりも桁数が小さい項を複数含む多項式の乗算により、第1中間値Aと第2中間値Mの乗算や第1中間値Aの2乗の計算を行うことができる。このため、共通鍵生成システム1は、第1共通鍵生成装置10、第2共通鍵生成装置20、及び第3共通鍵生成装置30において、市販の表計算ソフト等を利用して共通鍵を生成する場合に、この表計算ソフト等で有効桁数が限られていても、桁あふれ等による情報落ちを防ぐことができ、問題なく共通鍵を生成することができる。
【0120】
以上、本発明の実施形態について説明したが、本発明は本実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0121】
本実施形態では、第3共通鍵生成装置30において、1次中間鍵MFを生成し、第1共通鍵生成装置10において、1次中間鍵MFを用いて2次中間鍵MSを生成するとともに、第2共通鍵生成装置20において、1次中間鍵MFを用いて2次中間鍵MSを生成することとしたが、このように1次中間鍵MF、2次中間鍵MS、及び2次中間鍵MSを生成しなくてもよい。すなわち、2次中間鍵MSは、第2共通鍵生成装置20において、1次中間鍵MFを用いて生成することができ、2次中間鍵MSは、第3共通鍵生成装置30において、1次中間鍵MFを用いて生成することができる。このため、2次中間鍵MS、2次中間鍵MSを冗長に生成しないようにしてもよい。
【0122】
すなわち、共通鍵生成システム1は、第1共通鍵生成装置10、第2共通鍵生成装置20、及び第3共通鍵生成装置30のいずれかにおいて、2次中間鍵MS、2次中間鍵MS、及び2次中間鍵MSをそれぞれ1個のみ生成できるように構成するようにしてもよい。このようにすることで、第1共通鍵生成装置10、第2共通鍵生成装置20、及び第3共通鍵生成装置30間におけるやりとりを減らして通信量を削減することができる。
【符号の説明】
【0123】
1 共通鍵生成システム
10 第1共通鍵生成装置
11 第1通信部
12 第1鍵情報生成部
13 第1中間鍵生成部
14 第1共通鍵生成部
20 第2共通鍵生成装置
21 第2通信部
22 第2鍵情報生成部
23 第2中間鍵生成部
24 第2共通鍵生成部
30 第3共通鍵生成装置
31 第3通信部
32 第3鍵情報生成部
33 第3中間鍵生成部
34 第3共通鍵生成部
50 べき剰余算出部
51 入力受付部
52 初期設定部
53 変換部
54 計数部
55 基数算出部
56 剰余算出部
57 シフト部
58 反復実行部
59 出力部

【特許請求の範囲】
【請求項1】
第1共通鍵生成装置、第2共通鍵生成装置、及び第3共通鍵生成装置を備え、前記第1共通鍵生成装置、前記第2共通鍵生成装置、及び第3共通鍵生成装置において共通鍵を生成する共通鍵生成システムであって、
前記第1共通鍵生成装置は、
基数、除数、及び第1秘密鍵を生成する第1鍵情報生成手段と、
前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の1次中間鍵とする第1中間鍵生成手段と、
前記基数、前記除数、及び前記第1の1次中間鍵を前記第2共通鍵生成装置及び前記第3共通鍵生成装置に送信する第1送信手段と、を備え、
前記第2共通鍵生成装置は、
前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信する第2受信手段と、
第2秘密鍵を生成する第2鍵情報生成手段と、
前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の1次中間鍵とする第2中間鍵生成手段と、
前記第2の1次中間鍵を前記第1共通鍵生成装置及び前記第3共通鍵生成装置に送信する第2送信手段と、を備え、
前記第3共通鍵生成装置は、
前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信する第3受信手段と、
第3秘密鍵を生成する第3鍵情報生成手段と、
前記基数を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の1次中間鍵とする第3中間鍵生成手段と、
前記第3の1次中間鍵を前記第1共通鍵生成装置及び前記第2共通鍵生成装置に送信する第3送信手段と、を備え、
前記第1共通鍵生成装置は、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するとともに、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信する第1受信手段を更に備え、
前記第1中間鍵生成手段は、前記第1受信手段により受信した前記第2の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするとともに、前記第1受信手段により受信した前記第3の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とし、
前記第1送信手段は、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するとともに、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信し、
前記第2受信手段は、第3共通鍵生成装置から前記第3の1次中間鍵を更に受信し、
前記第2中間鍵生成手段は、前記第2受信手段により受信した前記第3の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするとともに、前記第2受信手段により受信した前記第1の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第1の2次中間鍵とし、
前記第2送信手段は、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するとともに、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信し、
前記第3受信手段は、第2共通鍵生成装置から前記第2の1次中間鍵を更に受信し、
前記第3中間鍵生成手段は、前記第3受信手段により受信した前記第1の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第2の2次中間鍵とするとともに、前記第3受信手段により受信した前記第2の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記第3の2次中間鍵とし、
前記第3送信手段は、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するとともに、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信し、
前記第1受信手段は、前記第2共通鍵生成装置から前記第3の2次中間鍵を受信するとともに、前記第3共通鍵生成装置から前記第3の2次中間鍵を受信し、
前記第1共通鍵生成装置は、前記第1受信手段により受信した前記第3の2次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を共通鍵とする第1共通鍵生成手段を更に備え、
前記第2受信手段は、前記第3共通鍵生成装置から前記第2の2次中間鍵を受信するとともに、前記第1共通鍵生成装置から前記第2の2次中間鍵を受信し、
前記第2共通鍵生成装置は、前記第2受信手段により受信した前記第2の2次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とする第2共通鍵生成手段を更に備え、
前記第3受信手段は、前記第1共通鍵生成装置から前記第1の2次中間鍵を受信するとともに、前記第2共通鍵生成装置から前記第1の2次中間鍵を受信し、
前記第3共通鍵生成装置は、前記第3受信手段により受信した前記第1の2次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とする第3共通鍵生成手段を更に備える共通鍵生成システム。
【請求項2】
第1共通鍵生成装置、第2共通鍵生成装置、及び第3共通鍵生成装置が共通鍵を生成する共通鍵生成方法であって、
前記第1共通鍵生成装置が、基数、除数、及び第1秘密鍵を生成するステップと、
前記第1共通鍵生成装置が、前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の1次中間鍵とするステップと、
前記第1共通鍵生成装置が、前記基数、前記除数、及び前記第1の1次中間鍵を前記第2共通鍵生成装置及び前記第3共通鍵生成装置に送信するステップと、
前記第2共通鍵生成装置が、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信するステップと、
前記第2共通鍵生成装置が、第2秘密鍵を生成するステップと、
前記第2共通鍵生成装置が、前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の1次中間鍵とするステップと、
前記第2共通鍵生成装置が、前記第2の1次中間鍵を前記第1共通鍵生成装置及び前記第3共通鍵生成装置に送信するステップと、
前記第3共通鍵生成装置が、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1の1次中間鍵を受信するステップと、
前記第3共通鍵生成装置が、第3秘密鍵を生成するステップと、
前記第3共通鍵生成装置が、前記基数を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の1次中間鍵とするステップと、
前記第3共通鍵生成装置が、前記第3の1次中間鍵を前記第1共通鍵生成装置及び前記第2共通鍵生成装置に送信するステップと、
前記第1共通鍵生成装置が、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するステップと、
前記第1共通鍵生成装置が、前記第2の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするステップと、
前記第1共通鍵生成装置が、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信するステップと、
前記第1共通鍵生成装置が、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信するステップと、
前記第1共通鍵生成装置が、前記第3の1次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とするステップと、
前記第1共通鍵生成装置が、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するステップと、
前記第2共通鍵生成装置が、前記第1の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第1の2次中間鍵とするステップと、
前記第2共通鍵生成装置が、前記第1の2次中間鍵を前記第3共通鍵生成装置に送信するステップと、
前記第2共通鍵生成装置が、前記第3共通鍵生成装置から前記第3の1次中間鍵を受信するステップと、
前記第2共通鍵生成装置が、前記第3の1次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするステップと、
前記第2共通鍵生成装置が、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するステップと、
前記第3共通鍵生成装置が、前記第1の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第2の2次中間鍵とするステップと、
前記第3共通鍵生成装置が、前記第2の2次中間鍵を前記第2共通鍵生成装置に送信するステップと、
前記第3共通鍵生成装置が、前記第2共通鍵生成装置から前記第2の1次中間鍵を受信するステップと、
前記第3共通鍵生成装置が、前記第2の1次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を第3の2次中間鍵とするステップと、
前記第3共通鍵生成装置が、前記第3の2次中間鍵を前記第1共通鍵生成装置に送信するステップと、
前記第1共通鍵生成装置が、前記第2共通鍵生成装置又は前記第3共通鍵生成装置から前記第3の2次中間鍵を受信するステップと、
前記第1共通鍵生成装置が、前記第3の2次中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を共通鍵とするステップと、
前記第2共通鍵生成装置が、前記第3共通鍵生成装置又は前記第1共通鍵生成装置から前記第2の2次中間鍵を受信するステップと、
前記第2共通鍵生成装置が、前記第2の2次中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とするステップと、
前記第3共通鍵生成装置が、前記第1共通鍵生成装置又は前記第2共通鍵生成装置から前記第1の2次中間鍵を受信するステップと、
前記第3共通鍵生成装置が、前記第1の2次中間鍵を底とし、前記第3秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を算出し、当該剰余を前記共通鍵とするステップと、を含む共通鍵生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−124568(P2012−124568A)
【公開日】平成24年6月28日(2012.6.28)
【国際特許分類】
【出願番号】特願2010−271493(P2010−271493)
【出願日】平成22年12月6日(2010.12.6)
【出願人】(000211307)中国電力株式会社 (6,505)
【Fターム(参考)】