JP5253456B2 - 共通鍵生成システム及び共通鍵生成方法 - Google Patents

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

Info

Publication number
JP5253456B2
JP5253456B2 JP2010127988A JP2010127988A JP5253456B2 JP 5253456 B2 JP5253456 B2 JP 5253456B2 JP 2010127988 A JP2010127988 A JP 2010127988A JP 2010127988 A JP2010127988 A JP 2010127988A JP 5253456 B2 JP5253456 B2 JP 5253456B2
Authority
JP
Japan
Prior art keywords
key
common key
key generation
divisor
remainder
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
JP2010127988A
Other languages
English (en)
Other versions
JP2011254385A (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.)
Chugoku Electric Power Co Inc
Original Assignee
Chugoku Electric Power Co Inc
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 Chugoku Electric Power Co Inc filed Critical Chugoku Electric Power Co Inc
Priority to JP2010127988A priority Critical patent/JP5253456B2/ja
Publication of JP2011254385A publication Critical patent/JP2011254385A/ja
Application granted granted Critical
Publication of JP5253456B2 publication Critical patent/JP5253456B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、共通鍵生成システム及び共通鍵生成方法に関する。
近年、インターネット等のネットワークをデータの交換手段として利用することが急速に広まっている。しかしながら、インターネット等のネットワークでは、データを交換する際に複数のサーバ及び通信回線を経由してデータが転送される。このため、データを転送するサーバ及び通信回線等では、データの盗聴や、データの改ざんや、なりすましをすることが可能となり、セキュリティ問題に発展している。このようなセキュリティ問題に対応するため、暗号化技術が提案されており、例えば、簡易的な暗号化方式として、共通鍵暗号方式が知られている(例えば、特許文献1参照)。
共通鍵暗号方式では、送信者は、鍵を用いてデータの暗号化を行い、暗号化されたデータを閲覧者に送信する。閲覧者は、データを受信すると、送信者の同一の鍵である共通鍵を用いて暗号化されたデータを復号する。このため、共通鍵暗号方式は、共通鍵を用いて暗号化及び復号を行うので、アルゴリズムが簡易である。
特開2006−91967号公報
しかしながら、共通鍵方式では、生成した共通鍵を、ネットワーク等を用いて相手に共通鍵を渡す必要がある。このため、例えば、共通鍵を電子メール等により平文で相手に送信することによって、第三者に盗聴される恐れがある等、セキュリティ上の問題もある。
本発明は、共通鍵の受け渡しを行わずに、2者間で安全に共通鍵を共有することができる共通鍵生成システム及び共通鍵生成方法を提供することを目的とする。
本発明に係る共通鍵生成システムは、第1共通鍵生成装置及び第2共通鍵生成装置を備え、前記第1共通鍵生成装置及び前記第2共通鍵生成装置において共通鍵を生成する共通鍵生成システムであって、前記第1共通鍵生成装置は、基数、除数、及び第1秘密鍵を生成する第1鍵情報生成手段と、べき乗の剰余を算出する第1べき剰余算出手段と、前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出手段により算出し、当該剰余を第1中間鍵とする第1中間鍵生成手段と、前記基数、前記除数、及び前記第1中間鍵を前記第2共通鍵生成装置に送信する第1送信手段と、を備え、前記第2共通鍵生成装置は、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1中間鍵を受信する第2受信手段と、第2秘密鍵を生成する第2鍵情報生成手段と、べき乗の剰余を算出する第2べき剰余算出手段と、前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出手段により算出し、当該剰余を第2中間鍵とする第2中間鍵生成手段と、前記第1中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出手段により算出し、当該剰余を前記共通鍵とする第2共通鍵生成手段と、前記第2中間鍵を前記第1共通鍵生成装置に送信する第2送信手段と、を備え、前記第1共通鍵生成装置は、前記第2共通鍵生成装置から、前記第2中間鍵を受信する第1受信手段と、前記第2中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出手段により算出し、当該剰余を前記共通鍵とする第1共通鍵生成手段と、をさらに備え、前記第1べき剰余算出手段及び前記第2べき剰余算出手段は、第1中間値及び第2中間値をそれぞれ設け、底、除数、及び指数の入力を受け付ける入力受付手段と、前記第1中間値を受け付けられた前記底の値とするとともに、前記第2中間値を1とする初期設定手段と、受け付けられた前記指数を2進数に変換する変換手段と、2進数に変換された前記指数のビット数を計数する計数手段と、2進数に変換された前記指数の右端の値が1である場合、前記第1中間値及び前記第2中間値を乗算して得られた値を前記入力受付手段により受け付けられた除数で除算した場合の剰余を前記第1中間値とする基数算出手段と、2進数に変換された前記指数の右端の値にかかわらず、前記第1中間値を2乗した値を前記入力受付手段により受け付けられた除数で除算した場合の剰余を前記第2中間値とする剰余算出手段と、2進数に変換された前記指数を右シフトするシフト手段と、前記計数手段により計数された値を反復回数とし、前記基数算出手段、前記剰余算出手段、及び前記シフト手段が、前記反復回数実行されるように制御する反復実行手段と、前記反復実行手段により、前記基数算出手段、前記剰余算出手段、及び前記シフト手段に係る処理が、前記反復回数実行された後、前記第2中間値を剰余として出力する出力手段と、をそれぞれ有する。
また、前記基数算出手段は、前記第1中間値及び第2中間値を10のべき乗の和により構成される多項式に変換し、変換された当該多項式に基づいて前記第1中間値及び前記第2中間値を乗算し、前記剰余算出手段は、前記第1中間値を10のべき乗の和により構成される多項式に変換し、変換された当該多項式に基づいて前記第1中間値の2乗を計算することが好ましい。
本発明に係る共通鍵生成方法は、第1共通鍵生成装置及び第2共通鍵生成装置を備える共通鍵生成システムにおいて、前記第1共通鍵生成装置及び前記第2共通鍵生成装置が共通鍵を生成する共通鍵生成方法であって、前記第1共通鍵生成装置は、基数、除数、及び第1秘密鍵を生成する第1鍵情報生成ステップと、べき乗の剰余を算出する第1べき剰余算出ステップと、前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出ステップにおいて算出させ、当該剰余を第1中間鍵とする第1中間鍵生成ステップと、前記基数、前記除数、及び前記第1中間鍵を前記第2共通鍵生成装置に送信する第1送信ステップと、を含み、前記第2共通鍵生成装置は、前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1中間鍵を受信する第2受信ステップと、第2秘密鍵を生成する第2鍵情報生成ステップと、べき乗の剰余を算出する第2べき剰余算出ステップと、前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出ステップにおいて算出させ、当該剰余を第2中間鍵とする第2中間鍵生成ステップと、前記第1中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出ステップにおいて算出させ、当該剰余を前記共通鍵とする第2共通鍵生成ステップと、前記第2中間鍵を前記第1共通鍵生成装置に送信する第2送信ステップと、を含み、前記第1共通鍵生成装置は、前記第2共通鍵生成装置から、前記第2中間鍵を受信する第1受信ステップと、前記第2中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出ステップにおいて算出させ、当該剰余を前記共通鍵とする第1共通鍵生成ステップと、をさらに含み、前記第1べき剰余算出ステップ及び前記第2べき剰余算出ステップは、第1中間値及び第2中間値をそれぞれ設け、底、除数、及び指数の入力を受け付ける入力受付ステップと、前記第1中間値を受け付けた底の値とするとともに、前記第2中間値を1とする初期設定ステップと、前記入力受付ステップにおいて受け付けられた指数を2進数に変換する変換ステップと、2進数に変換された前記指数のビット数を計数する計数ステップと、2進数に変換された前記指数の右端の値が1である場合、前記第1中間値及び前記第2中間値を乗算して得られた値を前記入力受付ステップにおいて受け付けられた除数で除算した場合の剰余を前記第1中間値とする基数算出ステップと、2進数に変換された前記指数の右端の値にかかわらず、前記第1中間値を2乗した値を前記入力受付ステップにおいて受け付けられた除数で除算した場合の剰余を前記第2中間値とする剰余算出ステップと、2進数に変換された前記指数を右シフトするシフトステップと、前記計数ステップにおいて計数された値を反復回数とし、前記基数算出ステップ、前記剰余算出ステップ、及び前記シフトステップが、前記反復回数実行されるように制御する反復実行ステップと、前記反復実行ステップにおいて、前記基数算出ステップ、前記剰余算出ステップ、及び前記シフトステップに係る処理が、前記反復回数実行された後、前記第2中間値を剰余として出力する出力ステップと、をそれぞれ含む。
本発明によれば、共通鍵の受け渡しを行わずに、2者間で安全に共通鍵を共有することができる。
本実施形態に係る共通鍵生成システムの全体概要を示す図である。 本実施形態に係る第1共通鍵生成装置の機能構成を示す図である。 本実施形態に係る第2共通鍵生成装置の機能構成を示す図である。 本実施形態に係る共通鍵生成システムにおける共通鍵生成に係る処理の流れを示すフローチャートである。 本実施形態に係る共通鍵生成システムにおける第1中間鍵、第2中間鍵、及び共通鍵の生成に係る詳細な処理の流れを示すフローチャートである。
以下、本発明の実施形態について図を参照しながら説明する。
[機能構成]
図1は、本実施形態に係る共通鍵生成システム1の全体概要を示す図である。共通鍵生成システム1は、複数の共通鍵生成装置間で共通鍵を生成するシステムである。共通鍵生成システム1は、第1共通鍵生成装置10と、第2共通鍵生成装置20と、を備える。第1共通鍵生成装置10及び第2共通鍵生成装置20は、LAN(Local Area Network)やインターネット等のコンピュータネットワークにより構成される通信ネットワークNにより、通信可能に接続されている。
この第1共通鍵生成装置10では、基数A、除数B、及び第1秘密鍵Sを生成し、基数A、除数B、及び第1秘密鍵Sに基づいて第1中間鍵Mを生成し、第2共通鍵生成装置20に、基数A、除数B、及び第1中間鍵Mを送信する。また、第2共通鍵生成装置20では、第2秘密鍵Sを生成し、基数A、除数B、及び第2秘密鍵Sに基づいて第2中間鍵Mを生成し、第1共通鍵生成装置10に、第2中間鍵Mを送信する。また、第1共通鍵生成装置10では、第2中間鍵M、除数B、及び第1秘密鍵Sに基づいて共通鍵Cを生成し、第2共通鍵生成装置20では、第1中間鍵M、除数B、及び第2秘密鍵Sに基づいて共通鍵Cを生成する。
本実施形態は、コンピュータ(第1共通鍵生成装置10及び第2共通鍵生成装置20)及びその周辺装置に適用される。本実施形態における各部は、コンピュータ及びその周辺装置が備えるハードウェア並びにこのハードウェアを制御するソフトウェアによって構成される。
上記ハードウェアには、制御部としてのCPUの他、記憶部、通信部、表示部及び入力部が含まれる。記憶部としては、例えば、メモリ(RAM、ROM等)、ハードディスクドライブ(HDD)及び光ディスク(CD、DVD等)ドライブが挙げられる。通信部としては、例えば、各種有線及び無線インターフェース装置が挙げられる。表示部としては、例えば、液晶ディスプレイ、プラズマディスプレイ等の各種ディスプレイが挙げられる。入力部としては、例えば、キーボード及びマウス等が挙げられる。
上記ソフトウェアには、上記ハードウェアを制御するコンピュータ・プログラムやデータが含まれる。コンピュータ・プログラムやデータは、記憶部により記憶され、制御部により適宜実行、参照される。また、コンピュータ・プログラムやデータは、通信回線を介して配布することも可能であり、CD−ROM等のコンピュータ可読媒体に記録して配布することも可能である。
図2は、本実施形態に係る第1共通鍵生成装置10の機能構成を示す図である。
第1共通鍵生成装置10は、第1鍵情報生成手段としての第1鍵情報生成部11と、第1べき剰余算出手段としてのべき剰余算出部12と、第1中間鍵生成手段としての第1中間鍵生成部13と、第1送信手段としての第1送信部14と、第1受信手段としての第1受信部15と、第1共通鍵生成手段としての第1共通鍵生成部16と、を備える。
第1鍵情報生成部11は、共通鍵を生成する情報となる基数A、除数B、及び第1秘密鍵Sを生成する。具体的には、第1鍵情報生成部11は、基数Aとして任意の自然数を生成し、除数Bとして、桁数が大きい素数(例えば、20桁以上の素数)を生成するものとする。また、第1鍵情報生成部11は、第1秘密鍵Sとして、「0」以上かつ「除数B−2」以下である任意の自然数を生成する。
べき剰余算出部12は、底、除数、及び指数の入力を受け付け、この底の指数乗を、除数で除算した場合の剰余を算出し、この算出した剰余を出力する。べき剰余算出部12は、入力受付手段としての入力受付部121と、初期設定手段としての初期設定部122と、変換手段としての変換部123と、計数手段としての計数部124と、基数算出手段としての基数算出部125と、剰余算出手段としての剰余算出部126と、シフト手段としてのシフト部127と、反復実行手段としての反復実行部128と、出力手段としての出力部129と、を備える。また、べき剰余算出部12は、第1中間値Aと、第2中間値Mとを備える。
入力受付部121は、底、除数、及び指数の入力を受け付ける。ここで、入力受付部121により受け付けられた底、除数、及び指数を、それぞれ底A、除数B、指数eとする。
初期設定部122は、第1中間値Aの初期値を底Aとし、第2中間値Mの初期値を1に設定する。
変換部123は、指数eを、10進数から2進数に変換する。
計数部124は、変換部123により2進数に変換された指数eのビット数を計数する。
基数算出部125は、2進数で表現された指数eの右端の値(ビット)が1である場合、第1中間値Aを第2中間値Mで乗算して得られた値を除数Bで除算した場合の剰余を第1中間値Aとすることにより、第1中間値Aを更新する。
なお、第1中間値Aと第2中間値Mとの乗算は、以下のように行われる。すなわち、基数算出部125は、第1中間値A及び第2中間値Mを、以下の(1)式に示すように、複数桁(例えば、1桁目〜5桁目、6桁目〜10桁目等、5桁ずつ)に区切り、10のべき乗により構成される多項式、すなわち、初項を10のべき乗(例えば10の5乗)の0乗、公比を当該10のべき乗(例えば10の5乗)とした数列の和で表される多項式に変換する。
Figure 0005253456
ここで、a…aは、第1中間値Aを満たすためにそれぞれの項に付される係数であり、b…bは、第2中間値Mを満たすためにそれぞれの項に付される係数である。
続いて、基数算出部125は、10のべき乗の和に変換された第1中間値A及び第2中間値Mの多項式を乗算して、(2)式に示すように展開する。その後、展開された値に含まれるそれぞれの項を合計することにより、第1中間値Aと第2中間値Mとを乗算した値を算出する。
Figure 0005253456
剰余算出部126は、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乗することにより計算される。
シフト部127は、2進数に変換された指数eを右シフトする。具体的には、シフト部127は、2進数に変換された指数eを1ビット右に論理シフトする演算(論理シフト演算)を行う。
反復実行部128は、計数部124により計数されたビット数の値を反復回数とし、基数算出部125、剰余算出部126、及びシフト部127に係る処理が、基数算出部125、剰余算出部126、シフト部127の順に、反復回数実行されるように制御する。具体的には、記憶部に初期値を0とするカウンタを設けておき、反復実行部128は、基数算出部125、剰余算出部126、及びシフト部127に係る処理が終了したことに応じて、カウンタに1加算(インクリメント)する。その後、反復実行部128は、カウンタの値が反復回数に達するまで、基数算出部125、剰余算出部126、シフト部127、インクリメントに係る処理を実行する制御を行い、カウンタの値が反復回数に達した場合に、反復実行を終了する。
出力部129は、反復実行部128により、基数算出部125、剰余算出部126、及びシフト部127に係る処理が反復回数実行された後、第2中間値Mを剰余として出力する。
第1中間鍵生成部13は、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第1中間鍵Mとして生成する。具体的には、第1中間鍵生成部13は、基数Aを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部12に入力することにより、べき剰余算出部12から、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第1中間鍵生成部13は、得られた剰余を第1中間鍵Mとすることにより、第1中間鍵Mを生成する。
第1送信部14は、第1鍵情報生成部11により生成された基数A、除数B、及び第1中間鍵生成部13により生成された第1中間鍵Mを第2共通鍵生成装置20に送信する。
第1受信部15は、第2共通鍵生成装置20から、第2中間鍵Mを受信する。
第1共通鍵生成部16は、第2中間鍵Mを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとすることにより、共通鍵Cを生成する。具体的には、第1共通鍵生成部16は、第2中間鍵Mを底、除数Bを除数、第1秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部12に入力することにより、べき剰余算出部12から、第2中間鍵Mを底とし、第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第1共通鍵生成部16は、得られた剰余を共通鍵Cとすることにより、共通鍵Cを生成する。
図3は、本実施形態に係る第2共通鍵生成装置20の機能構成を示す図である。
第2共通鍵生成装置20は、第2受信手段としての第2受信部21と、第2鍵情報生成手段としての第2鍵情報生成部22と、第2べき剰余算出手段としてのべき剰余算出部23と、第2中間鍵生成手段としての第2中間鍵生成部24と、第2送信手段としての第2送信部25と、第2共通鍵生成手段としての第2共通鍵生成部26と、を備える。
第2受信部21は、第1共通鍵生成装置10から、基数A、除数B、及び第1中間鍵Mを受信する。
第2鍵情報生成部22は、共通鍵を生成する情報となる第2秘密鍵Sを生成する。具体的には、第2鍵情報生成部22は、第2秘密鍵Sとして、「0」以上かつ「除数B−2」以下である任意の自然数を生成する。
べき剰余算出部23は、底、除数、及び指数の入力を受け付け、この底の指数乗を、除数で除算した場合の剰余を算出し、この算出した剰余を出力する。べき剰余算出部23は、入力受付部231と、初期設定部232と、変換部233と、計数部234と、基数算出部235と、剰余算出部236と、シフト部237と、反復実行部238と、出力部239と、を備える。なお、べき剰余算出部23は、剰余を算出するにあたり、第1中間値Aと、第2中間値Mを備える。
入力受付部231、初期設定部232、変換部233、計数部234、基数算出部235、剰余算出部236、シフト部237、反復実行部238、及び出力部239それぞれの機能については、入力受付部121、初期設定部122、変換部123、計数部124、基数算出部125、剰余算出部126、シフト部127、反復実行部128、及び出力部129それぞれの処理と同様であるので、説明を省略する。
第2中間鍵生成部24は、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第2中間鍵Mとして生成する。具体的には、第2中間鍵生成部24は、基数Aを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部23に入力することにより、べき剰余算出部23から、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第2中間鍵生成部24は、得られた剰余を第2中間鍵Mとすることで、第2中間鍵Mを生成する。
第2送信部25は、第2中間鍵生成部24により生成された第2中間鍵Mを第1共通鍵生成装置10に送信する。
第2共通鍵生成部26は、第1中間鍵Mを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとすることにより、共通鍵Cを生成する。具体的には、第2共通鍵生成部26は、第1中間鍵Mを底、除数Bを除数、第2秘密鍵Sを指数とし、これら底、除数、及び指数をべき剰余算出部23に入力することにより、べき剰余算出部23から、第1中間鍵Mを底とし、第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の剰余を得る。続いて、第2共通鍵生成部26は、得られた剰余を共通鍵Cとすることにより、共通鍵Cを生成する。
続いて、図4を参照して、共通鍵生成システム1における処理の流れを説明する。
図4は、本実施形態に係る共通鍵生成システム1における共通鍵生成に係る処理の流れを示すフローチャートである。
ステップS1(第1鍵情報生成ステップ)において、第1鍵情報生成部11は、基数A、除数B、及び第1秘密鍵Sを生成する。
ステップS2(第1中間鍵生成ステップ)において、第1中間鍵生成部13は、ステップS1において生成された基数A、除数B、及び第1秘密鍵Sに基づいて、第1中間鍵Mを生成する。すなわち、第1中間鍵生成部13は、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第1中間鍵Mとする。第1中間鍵Mを生成する処理は、べき剰余算出部12において行われるが、詳細については、後述で説明する。
ステップS3(第1送信ステップ)において、第1送信部14は、ステップS1において生成された基数A、除数B、及びステップS2において生成された第1中間鍵Mを第2共通鍵生成装置20に送信する。
ステップS4(第2受信ステップ)において、第2受信部21は、ステップS3において送信された基数A、除数B、及び第1中間鍵Mを受信する。
ステップS5(第2鍵情報生成ステップ)において、第2鍵情報生成部22は、第2秘密鍵Sを生成する。
ステップS6(第2中間鍵生成ステップ)において、第2中間鍵生成部24は、ステップS4において受信された基数A及び除数B、並びにステップS5において生成された第2秘密鍵Sに基づいて、第2中間鍵Mを生成する。すなわち、第2中間鍵生成部24は、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第2中間鍵Mとする。第2中間鍵Mを生成する処理は、べき剰余算出部23において行われるが、詳細については、後述で説明する。
ステップS7(第2共通鍵生成ステップ)において、第2共通鍵生成部26は、ステップS4において受信された第1中間鍵M及び除数B、並びにステップS5において生成された第2秘密鍵Sに基づいて、共通鍵Cを生成する。すなわち、第2共通鍵生成部26は、第1中間鍵Mを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。共通鍵Cを生成する処理は、べき剰余算出部23において行われるが、詳細については、後述で説明する。
ステップS8(第2送信ステップ)において、第2送信部25は、ステップS6において生成された第2中間鍵Mを第1共通鍵生成装置10に送信する。
ステップS9(第1受信ステップ)において、第1受信部15は、ステップS8において送信された第2中間鍵Mを受信する。
ステップS10(第1共通鍵生成ステップ)において、第1共通鍵生成部16は、ステップS9において受信された第2中間鍵M、並びにステップS1において生成された除数B及び第1秘密鍵Sに基づいて、共通鍵Cを生成する。すなわち、第1共通鍵生成部16は、第2中間鍵Mを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。共通鍵Cを生成する処理は、べき剰余算出部12において行われるが、詳細については、後述で説明する。
図5は、本実施形態に係る共通鍵生成システム1における第1中間鍵M、第2中間鍵M、及び共通鍵Cの生成に係る詳細な処理の流れを示すフローチャートである。
ステップS21(入力受付ステップ)において、入力受付部121(入力受付部231)は、底、除数、指数の入力を受け付ける。
ここで、入力受付部121(入力受付部231)は、第1中間鍵生成部13又は第1共通鍵生成部16(第2中間鍵生成部24又は第2共通鍵生成部26)から入力を受け付ける。なお、入力受付部121(入力受付部231)は、第1中間鍵生成部13(第2中間鍵生成部24)から入力を受け付ける場合、底が基数A、除数が除数B、指数が第1秘密鍵S(第2秘密鍵S)となり、第1共通鍵生成部16(第2共通鍵生成部26)から入力を受け付ける場合、底が第2中間鍵M(第1中間鍵M)、除数が除数B、指数が第1秘密鍵S(第2秘密鍵S)となる。
ステップS22(初期設定ステップ)において、初期設定部122(初期設定部232)は、第1中間値Aの初期値をステップS21において受け付けた底Aとし、第2中間値Mの初期値を1に設定する。
ステップS23(変換ステップ)において、変換部123(変換部233)は、ステップS21において受け付けた指数eを、2進数に変換する。
ステップS24(計数ステップ)において、計数部124(計数部234)は、ステップS23において変換された、2進数で表現された指数eのビット数を計数する。
ステップS25(基数算出ステップ)において、基数算出部125(基数算出部235)は、第1中間値Aを更新する。具体的には、基数算出部125(基数算出部235)は、2進数で表現された指数eの右端の値(ビット)が1である場合、第1中間値Aを第2中間値Mで乗算して得られた値を除数Bで除算して剰余を算出する。続いて、基数算出部125(基数算出部235)は、この算出された剰余を第1中間値Aとすることにより、第1中間値Aを更新する。ここで、基数算出部125(基数算出部235)により行われる第1中間値Aと第2中間値Mとの乗算は、第1中間値A及び第2中間値Mそれぞれを10のべき乗の和に変換し、この変換した第1中間値A及び第2中間値Mを乗算することで行われる。
ステップS26(剰余算出ステップ)において、剰余算出部126(剰余算出部236)は、第2中間値Mを更新する。具体的には、剰余算出部126(剰余算出部236)は、2進数に変換された指数eの右端の値(ビット)にかかわらず、第1中間値Aを2乗した値を除数Bで除算した場合の剰余を第2中間値Mとすることにより、第2中間値Mを更新する。なお、第1中間値Aの2乗の計算は、第1中間値Aと第2中間値Mとの乗算と同様に、第1中間値Aを10のべき乗の和に変換し、この変換した第1中間値Aを2乗することにより計算される。
ステップS27(シフトステップ)において、シフト部127(シフト部237)は、2進数に変換された指数eを1ビット右に論理シフトする演算(論理シフト演算)を行う。
ステップS28(反復実行ステップ)において、反復実行部128(反復実行部238)は、ステップS25〜ステップS27の処理が、反復回数行われたか判定する。ここで、反復回数は、ステップS24において計数された値である。反復実行部128(反復実行部238)は、この判定がYESの場合、処理をステップS29に移し、この判定がNOの場合、処理をステップS25に移す。
ステップS29(出力ステップ)において、出力部129(出力部239)は、第2中間値Mを剰余として出力する。
ここで、ステップS21において、入力受付部121(入力受付部231)が第1中間鍵生成部13(第2中間鍵生成部24)から入力を受け付けた場合、出力される剰余は、第1中間鍵M(第2中間鍵M)となり、第1共通鍵生成部16(第2共通鍵生成部26)から入力を受け付けた場合、出力される剰余は、共通鍵C(共通鍵C)となる。
以上のように、本実施形態によれば、共通鍵生成システム1は、第1中間鍵生成部13により、基数Aを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第1中間鍵Mとし、第1共通鍵生成部16により、第2中間鍵Mを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとし、第2中間鍵生成部24により、基数Aを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を第2中間鍵Mとし、第2共通鍵生成部26により、第1中間鍵Mを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余を共通鍵Cとする。
ここで、基数Aを底とし第1秘密鍵Sを指数としたべき乗、及び基数Aを底とし第2秘密鍵Sを指数としたべき乗は、以下の(3)式で表される。
Figure 0005253456
ただし、Xは、基数Aを底とし第1秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とし、Xは、基数Aを底とし第2秘密鍵Sを指数としたべき乗を除数Bで除算した場合の商とする。
さらに、交換法則により、以下の(4)式が成り立つ。
Figure 0005253456
ここで、(4)式に(3)式を代入すると、(5)式が成り立つ。
Figure 0005253456
ここで、(5)式の両辺それぞれを除数Bで除算した場合の剰余した場合、左辺の剰余は、第2中間鍵Mを底とし、第1秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余となり、右辺の剰余は、第1中間鍵Mを底とし、第2秘密鍵Sを指数としたべき乗を、除数Bで除算した場合の剰余(共通鍵C)となる。
よって、第1共通鍵生成装置10及び第2共通鍵生成装置20それぞれにおいて共通鍵を生成することができる。ここで、除数Bを桁数が大きい素数である場合、基数A、除数B、並びに第1中間鍵M及び第2中間鍵Mを知っていたとしても、これらの値から、共通鍵Cを求めるには、膨大な計算量が必要となる。よって、共通鍵生成システム1は、第1共通鍵生成装置10と第2共通鍵生成装置20との間で共通鍵の受け渡しを行うことなく、2者間で安全に共通鍵を共有することができる。
また、共通鍵生成システム1は、べき剰余算出部12及びべき剰余算出部23において第1中間値A及び第2中間値Mを、10のべき乗により構成される多項式に変換し、これら多項式を乗算して、展開することにより、第1中間値Aと第2中間値Mとの乗算、及び第1中間値Aの2乗の計算を行う。
このようにすることで、共通鍵生成システム1は、第1中間値Aと第2中間値Mが長大桁数である場合、この長大桁数よりも桁数が小さい項を複数含む多項式の乗算により、第1中間値Aと第2中間値Mの乗算や第1中間値Aの2乗の計算を行うことができる。このため、共通鍵生成システム1は、第1共通鍵生成装置10及び第2共通鍵生成装置20において、市販の表計算ソフト等を利用して共通鍵を生成する場合に、この表計算ソフト等で有効桁数が限られていても、桁あふれ等による情報落ちを防ぐことができ、問題なく共通鍵を生成することができる。
以上、本発明の実施形態について説明したが、本発明は本実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
1 共通鍵生成システム
10 第1共通鍵生成装置
11 第1鍵情報生成部
12、23 べき剰余算出部
13 第1中間鍵生成部
14 第1送信部
15 第1受信部
16 第1共通鍵生成部
20 第2共通鍵生成装置
21 第2受信部
22 第2鍵情報生成部
24 第2中間鍵生成部
25 第2送信部
26 第2共通鍵生成部
121、231 入力受付部
122、232 初期設定部
123、233 変換部
124、234 計数部
125、235 基数算出部
126、236 剰余算出部
127、237 シフト部
128、238 反復実行部
129、239 出力部

Claims (3)

  1. 第1共通鍵生成装置及び第2共通鍵生成装置を備え、前記第1共通鍵生成装置及び前記第2共通鍵生成装置において共通鍵を生成する共通鍵生成システムであって、
    前記第1共通鍵生成装置は、
    基数、除数、及び第1秘密鍵を生成する第1鍵情報生成手段と、
    べき乗の剰余を算出する第1べき剰余算出手段と、
    前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出手段により算出し、当該剰余を第1中間鍵とする第1中間鍵生成手段と、
    前記基数、前記除数、及び前記第1中間鍵を前記第2共通鍵生成装置に送信する第1送信手段と、を備え、
    前記第2共通鍵生成装置は、
    前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1中間鍵を受信する第2受信手段と、
    第2秘密鍵を生成する第2鍵情報生成手段と、
    べき乗の剰余を算出する第2べき剰余算出手段と、
    前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出手段により算出し、当該剰余を第2中間鍵とする第2中間鍵生成手段と、
    前記第1中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出手段により算出し、当該剰余を前記共通鍵とする第2共通鍵生成手段と、
    前記第2中間鍵を前記第1共通鍵生成装置に送信する第2送信手段と、を備え、
    前記第1共通鍵生成装置は、
    前記第2共通鍵生成装置から、前記第2中間鍵を受信する第1受信手段と、
    前記第2中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出手段により算出し、当該剰余を前記共通鍵とする第1共通鍵生成手段と、をさらに備え、
    前記第1べき剰余算出手段及び前記第2べき剰余算出手段は、
    第1中間値及び第2中間値をそれぞれ設け、
    底、除数、及び指数の入力を受け付ける入力受付手段と、
    前記第1中間値を受け付けられた前記底の値とするとともに、前記第2中間値を1とする初期設定手段と、
    受け付けられた前記指数を2進数に変換する変換手段と、
    2進数に変換された前記指数のビット数を計数する計数手段と、
    2進数に変換された前記指数の右端の値が1である場合、前記第1中間値及び前記第2中間値を乗算して得られた値を前記入力受付手段により受け付けられた除数で除算した場合の剰余を前記第1中間値とする基数算出手段と、
    2進数に変換された前記指数の右端の値にかかわらず、前記第1中間値を2乗した値を前記入力受付手段により受け付けられた除数で除算した場合の剰余を前記第2中間値とする剰余算出手段と、
    2進数に変換された前記指数を右シフトするシフト手段と、
    前記計数手段により計数された値を反復回数とし、前記基数算出手段、前記剰余算出手段、及び前記シフト手段が、前記反復回数実行されるように制御する反復実行手段と、
    前記反復実行手段により、前記基数算出手段、前記剰余算出手段、及び前記シフト手段に係る処理が、前記反復回数実行された後、前記第2中間値を剰余として出力する出力手段と、をそれぞれ有する共通鍵生成システム。
  2. 前記基数算出手段は、前記第1中間値及び第2中間値を10のべき乗の和により構成される多項式に変換し、変換された当該多項式に基づいて前記第1中間値及び前記第2中間値を乗算し、
    前記剰余算出手段は、前記第1中間値を10のべき乗の和により構成される多項式に変換し、変換された当該多項式に基づいて前記第1中間値の2乗を計算する請求項1に記載の共通鍵生成システム。
  3. 第1共通鍵生成装置及び第2共通鍵生成装置を備える共通鍵生成システムにおいて、前記第1共通鍵生成装置及び前記第2共通鍵生成装置が共通鍵を生成する共通鍵生成方法であって、
    前記第1共通鍵生成装置は、
    基数、除数、及び第1秘密鍵を生成する第1鍵情報生成ステップと、
    べき乗の剰余を算出する第1べき剰余算出ステップと、
    前記基数を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出ステップにおいて算出させ、当該剰余を第1中間鍵とする第1中間鍵生成ステップと、
    前記基数、前記除数、及び前記第1中間鍵を前記第2共通鍵生成装置に送信する第1送信ステップと、を含み、
    前記第2共通鍵生成装置は、
    前記第1共通鍵生成装置から、前記基数、前記除数、及び前記第1中間鍵を受信する第2受信ステップと、
    第2秘密鍵を生成する第2鍵情報生成ステップと、
    べき乗の剰余を算出する第2べき剰余算出ステップと、
    前記基数を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出ステップにおいて算出させ、当該剰余を第2中間鍵とする第2中間鍵生成ステップと、
    前記第1中間鍵を底とし、前記第2秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第2べき剰余算出ステップにおいて算出させ、当該剰余を前記共通鍵とする第2共通鍵生成ステップと、
    前記第2中間鍵を前記第1共通鍵生成装置に送信する第2送信ステップと、を含み、
    前記第1共通鍵生成装置は、
    前記第2共通鍵生成装置から、前記第2中間鍵を受信する第1受信ステップと、
    前記第2中間鍵を底とし、前記第1秘密鍵を指数としたべき乗を、前記除数で除算した場合の剰余を前記第1べき剰余算出ステップにおいて算出させ、当該剰余を前記共通鍵とする第1共通鍵生成ステップと、をさらに含み、
    前記第1べき剰余算出ステップ及び前記第2べき剰余算出ステップは、
    第1中間値及び第2中間値をそれぞれ設け、
    底、除数、及び指数の入力を受け付ける入力受付ステップと、
    前記第1中間値を受け付けた底の値とするとともに、前記第2中間値を1とする初期設定ステップと、
    前記入力受付ステップにおいて受け付けられた指数を2進数に変換する変換ステップと、
    2進数に変換された前記指数のビット数を計数する計数ステップと、
    2進数に変換された前記指数の右端の値が1である場合、前記第1中間値及び前記第2中間値を乗算して得られた値を前記入力受付ステップにおいて受け付けられた除数で除算した場合の剰余を前記第1中間値とする基数算出ステップと、
    2進数に変換された前記指数の右端の値にかかわらず、前記第1中間値を2乗した値を前記入力受付ステップにおいて受け付けられた除数で除算した場合の剰余を前記第2中間値とする剰余算出ステップと、
    2進数に変換された前記指数を右シフトするシフトステップと、
    前記計数ステップにおいて計数された値を反復回数とし、前記基数算出ステップ、前記剰余算出ステップ、及び前記シフトステップが、前記反復回数実行されるように制御する反復実行ステップと、
    前記反復実行ステップにおいて、前記基数算出ステップ、前記剰余算出ステップ、及び前記シフトステップに係る処理が、前記反復回数実行された後、前記第2中間値を剰余として出力する出力ステップと、をそれぞれ含む共通鍵生成方法。
JP2010127988A 2010-06-03 2010-06-03 共通鍵生成システム及び共通鍵生成方法 Active JP5253456B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010127988A JP5253456B2 (ja) 2010-06-03 2010-06-03 共通鍵生成システム及び共通鍵生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010127988A JP5253456B2 (ja) 2010-06-03 2010-06-03 共通鍵生成システム及び共通鍵生成方法

Publications (2)

Publication Number Publication Date
JP2011254385A JP2011254385A (ja) 2011-12-15
JP5253456B2 true JP5253456B2 (ja) 2013-07-31

Family

ID=45417925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010127988A Active JP5253456B2 (ja) 2010-06-03 2010-06-03 共通鍵生成システム及び共通鍵生成方法

Country Status (1)

Country Link
JP (1) JP5253456B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5340347B2 (ja) * 2011-05-27 2013-11-13 中国電力株式会社 共通鍵生成システム及び共通鍵生成方法
CN103259711B (zh) * 2012-11-07 2016-05-11 鹤山世达光电科技有限公司 通信信息传输方法和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2713318B2 (ja) * 1991-08-06 1998-02-16 株式会社富士通ゼネラル コードレス電話のスクランブル装置
JP4631289B2 (ja) * 2004-02-23 2011-02-16 パナソニック株式会社 通信システム

Also Published As

Publication number Publication date
JP2011254385A (ja) 2011-12-15

Similar Documents

Publication Publication Date Title
KR101269737B1 (ko) 암호 처리 장치 및 암호 처리 방법과 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
CN103973439B (zh) 一种多变量公钥加密方法
US11201735B2 (en) Apparatus for performing threshold design on secret key and method thereof
KR101329007B1 (ko) 아이디 기반 암호 시스템을 위한 비밀키 생성 장치 및 그 방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
JP4180024B2 (ja) 乗算剰余演算器及び情報処理装置
KR20210128303A (ko) 공간 복잡도를 고려한 동형 암호화 또는 복호화 방법
JP2021086158A (ja) 格子ベースの暗号鍵生成方法及び電子署名方法
JP7170878B2 (ja) 暗号文に対する非多項式演算を行う装置及び方法
JP4690819B2 (ja) 楕円曲線暗号におけるスカラー倍計算方法およびスカラー倍計算装置
JP4177526B2 (ja) 乗算剰余演算方法および乗算剰余回路
JP4170267B2 (ja) 乗算剰余演算器及び情報処理装置
JP5253456B2 (ja) 共通鍵生成システム及び共通鍵生成方法
KR102382952B1 (ko) 근사 계산에 대한 계산 검증
Vollala et al. Efficient modular exponential algorithms compatible with hardware implementation of public‐key cryptography
JP5389001B2 (ja) 共通鍵生成システム及び共通鍵生成方法
Vigila et al. A new elliptic curve cryptosystem for securing sensitive data applications
Manajaih Modular arithmetic in RSA cryptography
KR20230003954A (ko) 영지식 증명을 위한 암호문 처리 방법 및 장치
KR20200099957A (ko) 비밀 키에 대한 정족수 설계를 수행하는 장치 및 방법
Ghayoula et al. RSA-1024 Cryptography on Artix-7 FPGA: Medical Imaging Application
JP5340347B2 (ja) 共通鍵生成システム及び共通鍵生成方法
JP7406108B2 (ja) 暗号復号システム、暗号復号方法、及び暗号復号用プログラム
KR100406138B1 (ko) 엔티알유 암/복호화 장치
JP2022117083A (ja) 演算システム、演算方法およびプログラム
JP4243874B2 (ja) 暗号管理装置

Legal Events

Date Code Title Description
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: 20130409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130416

R150 Certificate of patent or registration of utility model

Ref document number: 5253456

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250