説明

暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラム

【課題】点を生成する処理と各点の衝突を検出する処理との並列化を効率的に行うこと。
【解決手段】データビット長算出部143が、検査データのビット長lを、衝突検知までに必要なデータ量の期待値と、特徴点の出現頻度とを基に算出する。衝突検知依頼部144は、点生成部120a〜120cが生成した特徴点から、ビット長lの検査データを抽出し、衝突検知部130a〜130cに各検査データが一致するか否かの判定依頼を行う。解算出部145は、一致した検査データに対応する特徴点同士を改めて比較して、衝突しているか否かを判定し、解を算出する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラムに関する。
【背景技術】
【0002】
近年、情報漏洩を防止する暗号技術の一つとして、公開鍵暗号が知られている。この公開鍵暗号は、受信者が公開する公開鍵によって送信者が暗号化を行い、受信者は未公開の秘密鍵によって復号を行うものである。
【0003】
現在標準の公開鍵暗号は、公開鍵に基づいて秘密鍵を解読するための計算量が膨大であることを安全性の根拠としている。その一方で解読技術や実装技術は日に日に改良が加えられ、また計算能力も日々増加している。そのため、今後も安全な暗号を利用し続けるためには、現状および今後の計算能力の見積もりを行い、容易に解読できないような計算量となるように、鍵ビット長などの暗号パラメータを適切に設計する必要がある。そのためには、解読実験をおこなって、暗号の安全性、強度を評価することが重要である。
【0004】
公開鍵暗号には、離散対数問題に基づいて設計された楕円曲線暗号等がある。離散対数問題とは、「素数pに対して、有限体GF(p)の生成元αを固定した場合に、有限体GF(p)の元βに対して、β=αを満たす整数xを求めよ」というものである。
【0005】
この離散対数問題を解読する方法の一つにPollardのρ法がある。このρ法は、写像FによってPi−1から次のPを順次算出し、異なるi、jに対してP=Pとなるものを見つけることで、公開鍵暗号の秘密鍵を解くというものである。
【0006】
ここで、写像Fは、下記の式(1)によって示される。この写像により、下記の式(2)が成り立つuおよびvを一意に算出することができる。また、P=Pとなることを衝突と呼ぶ。例えば、P=Pで衝突がおこると、式(3)の関係が成り立ち、解を求めることができる。具体的には、式(4)によって解を求めることができる。ただし、v≠vとする。
【0007】
=F(Pi−1)・・・(1)
=α^{u}*β^{v}・・・(2)
α^{u}*β^{v}=α^{u}*β^{v}・・・(3)
x=(u−u)/(v−v)・・・(4)
【0008】
図7は、ρ法の原理を説明するための図である。図7に示す例では、初期点Pとして、写像Fを繰り返し実行することで、P、P、・・・Pi+5、・・・、Pが順次求められている。図7に示すように写像Fを繰り返し実行していくと、P=Pにおいて衝突が発生する。このため、式(4)に基づいて解が求まる。
【0009】
なお、上記のρ法では、写像Fによって算出した多数の点Pを全て記憶するため、メモリ使用量が膨大になってしまうという問題があった。このメモリ使用量を削減する技術として、特徴点(distinguished point)を導入したρ法が存在する。この特徴点を導入したρ法は、写像Fによって算出した点Pのうち、所定の特徴を有する特徴点のみを記憶し、衝突を検出するものである。
【0010】
図8は、特徴点を導入したρ法を説明するための図である。なお実際の楕円曲線上の点Pは、2変数(X、Y)のベクトル値として表されるが、ここではρ法の簡易な説明のためスカラー値を用いる。図8に示す例では、Pの下2桁が00となる点を特徴点とする。特徴点を白丸で示し、それ以外の点を黒丸で示す。例えば、P、P17、P29、P35は、下2桁が00となるため、P、P17、P29、P35は特徴点となる。したがって、P、P17、P29、P35が保存され、特徴点以外の点は保存されない。このように、特徴点のみを保存する場合でも特徴点同士が一致すれば、衝突を検出でき、解を求めることができる。図8に示す例では、P17=P35となるため、解を求めることができる。
【0011】
図8において、全ての点を保存していれば、P10で初めて衝突を検出可能であるが、P10は特徴点では無い。このため、特徴点を導入したρ法では、P10が保存されておらず、P10で衝突を検出することができない。しかし、写像Fは、一意の写像であるため、特徴点がループ上に存在していれば、いずれは、P=Pとなる特徴点を検出することができる。
【0012】
ところで、従来技術では、ρ法による離散対数問題の解析を並列的に処理することで、点の生成や衝突を検出する処理を効率化させている。ここで、従来の暗号鍵解析装置の一例について説明する。図9は、従来の暗号鍵解析装置の構成を示す図である。図9に示すように、暗号鍵解析装置10は、点生成部1a〜1c、特徴点判定部2、特徴点記憶部3、衝突検出部4a〜4c、解算出部5を有する。
【0013】
点生成部1a〜1cは、式(1)に基づいて写像を繰り返し実行し、写像によって生成した点を特徴点判定部2に出力する。各点生成部1a〜1cは、それぞれ異なる初期点が入力され、この初期点から順に写像を繰り返し実行する。
【0014】
特徴点判定部2は、点生成部1a〜1cから点を取得し、各点のうち、特徴点となる点を判定する処理部である。特徴点判定部2は、特徴点を特徴点記憶部3に登録する。特徴点記憶部3は、特徴点を記憶する記憶部である。
【0015】
衝突検出部4a〜4cは、特徴点記憶部3から2つの特徴点を取得し、各特徴点を比較して、衝突が起こったか否かを判定する処理部である。なお、特徴点は特徴点記憶部3によって一元管理されるため、衝突検出部4a〜4cは、特徴点記憶部3に記憶された特徴点を複製して、自身のメモリに記憶し、衝突を検出する。衝突検出部4a〜4cは、衝突を検出した場合に、衝突した特徴点の識別情報を解算出部5に通知する。
【0016】
解算出部5は、衝突した特徴点の識別情報を取得した場合に、該当する特徴点の情報を特徴点記憶部3から取り出し、各特徴点を比較することによって、秘密鍵を算出する処理部である。具体的に、解算出部5は、式(4)に基づいて、秘密鍵を算出する。
【0017】
図9に示したように、暗号鍵解析装置10は、複数の点生成部1a〜1cが並列的に点を生成し、複数の衝突検出部4a〜4cが並列的に各特徴点の衝突検出を実行する。このため、点の生成や衝突を効率的に実行することができる。
【先行技術文献】
【特許文献】
【0018】
【特許文献1】特開2004−229163号公報
【特許文献2】特開2005−134454号公報
【特許文献3】特開2006−48192号公報
【発明の概要】
【発明が解決しようとする課題】
【0019】
しかしながら、上述した従来技術では、点を生成する処理と各点の衝突を検出する処理との並列化を効率的に行うことができないという問題があった。
【0020】
例えば、図9に示した従来の暗号鍵解析装置10では、各衝突検出部4a〜4cは、特徴点記憶部3に記憶された特徴点を読み出して、特徴点の衝突を検出する。この場合、一時的に、同一の特徴点の情報が、衝突検出部4a〜4cおよび特徴点記憶部3に重複して存在することになるため、メモリ使用量が増加してしまう。
【0021】
これに対して、特徴点記憶部3に記憶される特徴点の数を少なくすることで、メモリ使用量を削減することが考えられる。しかし、特徴点の数を少なくすると、各特徴点が衝突するまでに時間がかかってしまうため、メモリ使用量が削減されるかわりに、計算時間が増加してしまう。
【0022】
開示の技術は、上記に鑑みてなされたものであって、点を生成する処理と各点の衝突を検出する処理との並列化を効率的に行うことができる暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラムを提供することを目的とする。
【課題を解決するための手段】
【0023】
本願の開示する暗号鍵解析方法は、コンピュータが、点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成装置から点をそれぞれ取得し、取得した各点を記憶装置に記憶する記憶ステップと、前記記憶装置に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出ステップと、前記抽出ステップが抽出した各検査データを複数の検出装置に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する判定要求ステップとを実行することを要件とする。
【発明の効果】
【0024】
本願の開示する暗号鍵解析方法の一つの態様によれば、点を生成する処理と各点の衝突を検出する処理との並列化を効率的に行うことができるという効果を奏する。
【図面の簡単な説明】
【0025】
【図1】図1は、本実施例にかかる暗号鍵解析装置の構成を示す図である。
【図2】図2は、特徴点テーブルのデータ構造の一例を示す図である。
【図3】図3は、実験環境定義ファイルのデータ構造の一例を示す図である。
【図4】図4は、本実施例にかかる暗号鍵解析装置の処理手順を示すフローチャートである。
【図5】図5は、点生成部の処理手順を示すフローチャートである。
【図6】図6は、暗号鍵解析プログラムを実行するコンピュータを示す図である。
【図7】図7は、ρ法の原理を説明するための図である。
【図8】図8は、特徴点を導入したρ法を説明するための図である。
【図9】図9は、従来の暗号鍵解析装置の構成を示す図である。
【発明を実施するための形態】
【0026】
以下に、本願の開示する暗号鍵解析方法、暗号鍵解析装置および暗号鍵解析プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【0027】
本実施例にかかる暗号鍵解析装置の構成について説明する。図1は、本実施例にかかる暗号鍵解析装置の構成を示す図である。図1に示すように、この暗号鍵解析装置100は、記憶部110と、点生成部120a〜120cと、衝突検出部130a〜130cと、制御部140を有する。ここでは説明の便宜上、点生成部120a〜120c、衝突検出部130a〜130cを示す。しかし、暗号鍵解析装置100は、その他にも、点生成部120、衝突検出部130を有しても良い。
【0028】
記憶部110は、秘密鍵を解析するために必要となる各種のデータや解析結果を記憶する記憶部である。図1に示すように、記憶部110は、特徴点テーブル111と、初期点テーブル112と、実験環境定義ファイル113と、解析結果データ114を記憶する。
【0029】
特徴点テーブル111は、点生成部120a〜120cが生成する点のうち、所定の特徴を有する特徴点の情報を記憶するテーブルである。図2は、特徴点テーブルのデータ構造の一例を示す図である。図2に示すように、特徴点テーブル111は、i、X、Y、U、Vを対応付けて記憶する。
【0030】
このうち、iは、写像を行った回数である。Pは点の値である。U、Vはそれぞれ、Pを求める際に利用したαの巾指数ならびにβの巾指数であり、PとU、Vとの関係は、上記式(2)となる。Xは、PのX座標である。Yは、PのY座標である。なお、iの値は10進数で表しており、X、Y、U、Vの各値は16進数で表している。
【0031】
例えば、i「93」に対応するものは、X「0x43C9E3140000」、Y「0x371F6BA6FB6A」、U「0x4E49419DFABF」、V「0x032881146C12」となる。
【0032】
初期点テーブル112は、点生成部120a〜120cにそれぞれ入力する複数の初期点を記憶するテーブルである。各初期点は、それぞれ異なる値とする。
【0033】
実験環境定義ファイル113は、点の写像を行う場合に利用するパラメータ等を記憶するファイルである。図3は、実験環境定義ファイルのデータ構造の一例を示す図である。図3に示すように、この実験環境定義ファイル113は、素体標数、楕円曲線、楕円曲線の定数a、b、位数、期待値N、出現頻度θ、調整用パラメータγを含む。また、実験環境定義ファイル113は、αのX座標、αのY座標、βのX座標、βのY座標を含む。
【0034】
解析結果データ114は、制御部140が実行した秘密鍵の解析結果の情報である。
【0035】
点生成部120a〜120cは、式(1)に基づいて写像を繰り返し実行し、写像によって生成した点を特徴点判定部142に出力する処理部である。点生成部120a〜120cは、写像を行う場合に利用する各種のパラメータを、パラメータ通知部141から取得する。また、点生成部120aは、それぞれ異なる初期点が設定され、この初期点から順に写像を繰り返し実行する。
【0036】
衝突検出部130a〜130cは、衝突検知依頼部144から特徴点の一部のデータとなる検査データを2つ取得し、各検査データを比較して、各検査データが一致するか否かを判定する処理部である。衝突検出部130aは、判定結果を衝突検知依頼部144に通知する。例えば、衝突検出部130a〜130cは、各検査データが一致すると判定した場合には、一致した各検査データに付与されるインデックスiを、衝突検知依頼部144に通知する。
【0037】
制御部140は、パラメータ通知部141、特徴点判定部142、データビット長算出部143、衝突検知依頼部144、解算出部145を有する。
【0038】
パラメータ通知部141は、写像を行う場合に利用される各種のパラメータを点生成部120a〜120cに出力する処理部である。具体的に、パラメータ通知部141は、実験環境定義ファイル113に含まれる素体標数、楕円曲線、楕円曲線の定数a,b、位数の情報を、点生成部120a〜120cに出力する処理部である。また、パラメータ通知部141は、初期点テーブル112に含まれる各初期点を点生成部120a〜120cに出力する。各点生成部120a〜120cに入力される初期点はそれぞれ異なる値とする。
【0039】
特徴点判定部142は、点生成部120a〜120cから写像結果となる点を取得し、取得した点のうち、所定の特徴を有する特徴点を特徴点テーブル111に登録する処理部である。例えば、特徴点判定部142は、点の値の下2桁が「00」となるものを特徴点と判定する。
【0040】
データビット長算出部143は、検査データのビット長を算出し、算出結果を衝突検知依頼部144に出力する処理部である。具体的に、データビット長算出部143は、ビット長lを式(5)によって算出する。
l=log(N/θ)+γ・・・(5)
【0041】
ここで、データビット長算出部143は、式(5)に含まれるパラメータN、θ、αを実験環境定義ファイル113から取得する。例えば、Nが「0xBF3D96」、θが「0x10000」、γが「1」の場合には、式(5)より、ビット長lは「9bit」となる。
【0042】
衝突検知依頼部144は、ビット長lに基づいて、複数の特徴点から検査データをそれぞれ抽出し、2つの検査データを一組として、衝突検出部130a〜130cに出力することで、各検査データが一致するか否かの判定要求を行う処理部である。衝突検知依頼部144は、判定結果を取得し、各検査データが一致する場合には、各検査データの抽出元となる特徴点を解算出部145に出力する。
【0043】
ここでは一例として、衝突検知依頼部144が特徴点Pから検査データを抽出する処理について説明する。まず、衝突検知依頼部144は、特徴点Pに対応するXの値を特徴点テーブル111から取得する。例えば、特徴点Pに対応するXの値は、図2に示すように、「0x3F64D9240000」となる。
【0044】
衝突検知依頼部144は、Xの有効数値からビット長lとなる検査データを抽出する。例えば、ビット長lを「9bit」とし、X「0x3F64D9240000」とする場合には、有効数値は「3F64D924」となる。有効数値の基準を最下位ビットとすると、検査データは16進数表記で「0x124」となる。なお、「0x124」を2進数で表すと「100100100」となり、ビット長lは9bitとなる。
【0045】
衝突検知依頼部144は、各特徴点から検査データを抽出し、二つの検査データを組にして、衝突検出部130a〜130cに出力する。衝突検知依頼部144は、各検査データに、該当するインデックスをそれぞれ付与する。例えば、衝突検知依頼部144は、図2のi「3」に対応する特徴点のXから検査データを取得した場合には、この検査データにインデックス「3」を付与する。
【0046】
衝突検知依頼部144は、衝突検出部130a〜130cから判定結果を取得し、各検査データが一致する場合には、一致する検査データのインデックスの組を取得する。衝突検知依頼部144は、インデックスをキーにして、該当する特徴点の情報を解算出部145に出力する。衝突検知依頼部144は、特徴点の情報として、P=(X、Y)、U、V、P=(X、Y)、U、Vの情報を解算出部145に出力する。
【0047】
例えば、衝突検知依頼部144は、一致する各検査データのインデックスが17、53の場合には、特徴点テーブル111に記憶されたP17、U17、V17,P53、U53、V53を解算出部145に出力する。
【0048】
解算出部145は、特徴点P、Pの情報を取得した場合に、各特徴点Pの値が等しいか否かを改めて判定し、各特徴点Pの値が等しい場合には、特徴点の情報に基づいて解を算出する処理部である。解算出部145は、算出結果を解析結果データ114に登録する。具体的には、解算出部145は、上記式(4)に基づいて解を算出する。
【0049】
ここで、解算出部145が改めて各Pの値が等しいか否かを判定する意義について説明する。上記の衝突検出部130a〜130cは、特徴点の情報を全て比較しているわけではないので、各検査データが一致しているからといって、特徴点が衝突しているとはいえない。したがって、解算出部145は、検査データの抽出元となった特徴点を比較することで、各特徴点が衝突しているか否かを判定する。
【0050】
解算出部145が、はじめから何の手がかりもなく、特徴点の情報を全て比較しようとすると、比較対象となる情報が多いため、計算量が膨大なものになってしまう。このため、特徴点が衝突する可能性のある点を衝突検出部130a〜130cに検出させ、衝突する特徴点同士のめぼしをつけた後に、特徴点の衝突を判定することで、計算量を削減することができる。
【0051】
次に、本実施例にかかる暗号鍵解析装置100の処理手順について説明する。図4は、本実施例にかかる暗号鍵解析装置の処理手順を示すフローチャートである。例えば、図4に示す処理は、点生成部120a〜120cに初期点が入力されたことを契機として実行される。暗号鍵解析装置100は、初期点を点生成部120a〜120cに入力し(ステップS100)、点生成部120a〜120cは、写像を繰り返し実行することで順次点を生成する(ステップS101)。
【0052】
暗号鍵解析装置100は、特徴点から検査データを抽出し(ステップS102)、検査データを比較する(ステップS103)。暗号鍵解析装置100は、検査データが一致しない場合には(ステップS104,No)、ステップS101に移行する。
【0053】
一方、暗号鍵解析装置100は、検査データが一致する場合には(ステップS104,Yes)、一致した検査データに対応する特徴点を比較する(ステップS105)。暗号鍵解析装置100は、特徴点が衝突しない場合には(ステップS106,No)、ステップS101に移行する。
【0054】
一方、暗号鍵解析装置100は、特徴点が衝突した場合には(ステップS106,Yes)、解を算出する(ステップS107)。暗号鍵解析装置100は、解読に失敗した場合には(ステップS108,No)、ステップS101に移行する。一方、暗号鍵解析装置100は、解読に成功した場合には(ステップS108,Yes)、処理を終了する。
【0055】
次に、点生成部120aが写像を実行して点を生成する処理手順について説明する。点生成部120b,120cの処理手順は、点生成部120aの処理手順と同じである。図5は、点生成部の処理手順を示すフローチャートである。図5に示す処理は、例えば、初期点Pが入力されたことを契機として実行される。
【0056】
図5に示すように、点生成部120aは、初期値Pを設定し(ステップS200)、iを初期値に設定する(ステップS201)。点生成部120aは、写像Fを用いてPを算出し(ステップS202)、Pを特徴点判定部142に出力する(ステップS203)。
【0057】
点生成部120aは、iに1を加算し(ステップS204)、iが閾値未満の場合には(ステップS205,No)、ステップS202に移行する。一方、iが閾値以上の場合には(ステップS205,Yes)、処理を終了する。
【0058】
次に、本実施例にかかる暗号鍵解析装置100の効果について説明する。従来技術では、特徴点の衝突を検出する場合には、特徴点に含まれる情報を全て衝突検出部130a〜130cに出力していたため、同一の特徴点の情報が暗号鍵解析装置100内で重複してしまい、メモリ使用量が多くなっていた。これに対して、暗号鍵解析装置100は、特徴点の一部を検査データとして抽出し、抽出した検査データを衝突検出部130a〜130cに出力することで、特徴点に衝突が発生している可能性があるか否かの判定要求を行う。このため、暗号鍵解析装置100内で重複するデータ量を削減することができ、メモリ使用量を削減することができる。
【0059】
また、暗号鍵解析装置100は、特徴点に衝突が発生している可能性がある場合には、改めて衝突の可能性がある特徴点同士を比較し、特徴点同士の衝突を検出するので、メモリ使用量を削減した場合であっても、正確に秘密鍵を算出することができる。
【0060】
また、暗号鍵解析装置100は、従来技術と比較して、特徴点テーブル111に記憶する特徴点の数を減らすことなく、メモリ使用量を削減している。このため、暗号鍵解析装置100では、従来技術と比較して、特徴点衝突を発見するまでの時間が遅延することがないので、計算量を増加させることなく、メモリ使用量を削減することができる。
【0061】
また、暗号鍵解析装置100は、検査データのビット長lを、衝突検知までに必要なデータ量の期待値と、特徴点の出現頻度とを基にして算出する。このため、最適なビット長によって、衝突検出部130a〜130cは、特徴点の衝突の可能性を検出することができる。
【0062】
また、暗号鍵解析装置100は、点生成部120a〜120cが生成する点のうち、特徴点のみを特徴点テーブル111に登録する。このため、メモリ使用量を削減することができる。
【0063】
なお、図1に示した暗号鍵解析装置100の構成は一例であり、暗号鍵解析装置100は、必ずしも図1に示した各処理部を全て有していなくてもよい。例えば、暗号鍵解析装置100は、記憶部と、抽出部と、判定要求部とを有していればよい。この場合、暗号鍵解析装置100は、点を生成する複数の点生成装置と、衝突を検出する複数の検出装置に接続されているものとする。
【0064】
記憶部は、点生成部が生成した点をそれぞれ取得し、取得した点を記憶する記憶部である。この記憶部は、図1の記憶部110に対応する。検出部は、記憶部に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する処理部である。判定要求部は、各検査データを複数の検出装置に通知することで、検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する処理部である。抽出部および判定要求部は、図1の衝突検知依頼部144に対応する。
【0065】
ところで、上記の各実施例で説明した暗号鍵解析装置100の各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、図6を用いて、上記の実施例で説明した暗号鍵解析装置100と同様の機能を有する暗号鍵解析プログラムを実行するコンピュータの一例を説明する。図6は、暗号鍵解析プログラムを実行するコンピュータを示す図である。
【0066】
同図に示すように、暗号鍵解析装置100としてコンピュータ200は、入出力制御部210、HDD(Hard Disk Drive)220、RAM(Random Access Memory)230およびCPU(Central Processing Unit)240を有する。各装置210〜240は、バス250で接続して構成される。
【0067】
ここで、入出力制御部210は、各種情報の入出力を制御する。HDD220は、CPU240による各種処理の実行に必要な情報を記憶する。RAM230は、各種情報を一時的に記憶する。CPU240は、各種演算処理を実行する。
【0068】
そして、HDD220には、暗号鍵解析システムデータがあらかじめ記憶されている。この暗号鍵解析システムデータは、図1に示した暗号鍵解析装置100の各処理部と同様の機能を発揮する暗号鍵解析プログラムを含む。また、暗号鍵解析システムデータは、処理に必要な各種パラメータを含む暗号鍵解析用データを含む。なお、この暗号鍵解析システムデータを適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【0069】
そして、CPU240が、この暗号鍵解析システムデータをHDD220から読み出してRAM230に展開することにより、暗号鍵解析システムデータは暗号鍵解析システムとして機能するようになる。この暗号鍵解析システムには暗号鍵解析プロセスが含まれる。
【0070】
すなわち、暗号鍵解析システムやそれに搭載された暗号鍵解析プロセスは、暗号鍵解析用データをHDD220から読み出して、RAM230において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。
【0071】
なお、暗号鍵解読システム及び暗号鍵解析プロセスは、図1に示した制御部140において実行される処理に対応する。なお、上記した暗号鍵解析プログラムについては、必ずしも最初からHDD220に記憶させておく必要はない。
【0072】
例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラムを読み出して実行するようにしてもよい。
【0073】
さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ200に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておく。そして、コンピュータ200がこれらから各プログラムを読み出して実行するようにしてもよい。
【0074】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、図1に示した点生成部120a〜120c、衝突検出部130a〜130cを、それぞれ異なるコンピュータに実装させ、各コンピュータに点の生成、衝突検出を実行させることができる。
【0075】
また、衝突検知依頼部144は、検査データをXから抽出していたがこれに限定されるものではない。例えば、衝突検知依頼部144は、Yから検査データを抽出してもよい。
【0076】
なお、図1に示した制御部140は、例えば、ASIC(Application Specific Integrated Circuit)や、FPGA(Field Programmable Gate Array)などの集積装置に対応する。または、制御部140は、CPUやMPU(Micro Processing Unit)等の電子回路に対応する。また、図1に示した記憶部110は、例えば、RAM、ROM(Read Only Memory)、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、またはハードディスク、光ディスクなどの記憶装置に対応する。
【0077】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0078】
(付記1)コンピュータが、
点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成装置から点をそれぞれ取得し、取得した各点を記憶装置に記憶する記憶ステップと、
前記記憶装置に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出ステップと、
前記抽出ステップが抽出した各検査データを複数の検出装置に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する判定要求ステップと
を実行することを特徴とする暗号鍵解析方法。
【0079】
(付記2)前記検出装置によって各検査データが一致すると判定された場合に、一致すると判定された各検査データの抽出元となる点の値をそれぞれ比較し、各点の値が一致するか否かを判定する判定ステップを更に含んだことを特徴とする付記1に記載の暗号鍵解析方法。
【0080】
(付記3)前記点生成装置によって生成される点が所定の特徴を有する点となる頻度と、前記判定ステップによって各点の値が一致すると判定されるまでに必要となるデータ量の期待値とを基にして、前記検査データのビット長を判定するビット長判定ステップを更に含み、前記抽出ステップは、前記ビット長に基づいて点の値から前記検査データを抽出することを特徴とする付記2に記載の暗号鍵解析方法。
【0081】
(付記4)前記記憶ステップは、前記点生成装置が生成した複数の点のうち、所定の特徴を有する点を前記記憶装置に記憶することを特徴とする付記1〜3のいずれか一つに記載の暗号鍵解析方法。
【0082】
(付記5)点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成部から点をそれぞれ取得し、取得した各点を記憶する記憶部と、
前記記憶部に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出部と、
前記抽出部が抽出した各検査データを複数の検出部に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出部から判定結果を取得する判定要求部と
備えたことを特徴とする暗号鍵解析装置。
【0083】
(付記6)前記検出部によって各検査データが一致すると判定された場合に、一致すると判定された各検査データの抽出元となる点の値をそれぞれ比較し、各点の値が一致するか否かを判定する判定部を更に備えたことを特徴とする付記5に記載の暗号鍵解析装置。
【0084】
(付記7)前記点生成部によって生成される点が所定の特徴を有する点となる頻度と、前記点判定部によって各点の値が一致すると判定されるまでに必要となるデータ量の期待値とを基にして、前記検査データのビット長を判定するビット長判定部を更に備え、前記抽出部は、前記ビット長に基づいて点の値から前記検査データを抽出することを特徴とする付記6に記載の暗号鍵解析装置。
【0085】
(付記8)前記記憶部は、前記点生成部が生成した複数の点のうち、所定の特徴を有する点を記憶することを特徴とする付記5〜7のいずれか一つに記載の暗号鍵解析装置。
【0086】
(付記9)コンピュータに、
点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成装置から点をそれぞれ取得し、取得した各点を記憶装置に記憶する記憶手順と、
前記記憶装置に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出手順と、
前記抽出手順が抽出した各検査データを複数の検出装置に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する判定要求手順と、
を実行させることを特徴とする暗号鍵解析プログラム。
【0087】
(付記10)前記検出装置によって各検査データが一致すると判定された場合に、一致すると判定された各検査データの抽出元となる点の値をそれぞれ比較し、各点の値が一致するか否かを判定する判定手順を更に実行させることを特徴とする付記9に記載の暗号鍵解析プログラム。
【0088】
(付記11)前記点生成装置によって生成される点が所定の特徴を有する点となる頻度と、前記判定手順によって各点の値が一致すると判定されるまでに必要となるデータ量の期待値とを基にして、前記検査データのビット長を判定するビット長判定手順を更に実行させ、前記抽出手順は、前記ビット長に基づいて点の値から前記検査データを抽出することを特徴とする付記10に記載の暗号鍵解析プログラム。
【0089】
(付記12)前記記憶手順は、前記点生成装置が生成した複数の点のうち、所定の特徴を有する点を前記記憶装置に記憶することを特徴とする付記9〜11のいずれか一つに記載の暗号鍵解析プログラム。
【符号の説明】
【0090】
100 暗号鍵解析装置
110 記憶部
120a,120b,120c 点生成部
130a,130b,130c 衝突検出部
140 制御部

【特許請求の範囲】
【請求項1】
コンピュータが、
点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成装置から点をそれぞれ取得し、取得した各点を記憶装置に記憶する記憶ステップと、
前記記憶装置に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出ステップと、
前記抽出ステップが抽出した各検査データを複数の検出装置に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する判定要求ステップと
を実行することを特徴とする暗号鍵解析方法。
【請求項2】
前記検出装置によって各検査データが一致すると判定された場合に、一致すると判定された各検査データの抽出元となる点の値をそれぞれ比較し、各点の値が一致するか否かを判定する判定ステップを更に含んだことを特徴とする請求項1に記載の暗号鍵解析方法。
【請求項3】
前記点生成装置によって生成される点が所定の特徴を有する点となる頻度と、前記判定ステップによって各点の値が一致すると判定されるまでに必要となるデータ量の期待値とを基にして、前記検査データのビット長を判定するビット長判定ステップを更に含み、前記抽出ステップは、前記ビット長に基づいて点の値から前記検査データを抽出することを特徴とする請求項2に記載の暗号鍵解析方法。
【請求項4】
前記記憶ステップは、前記点生成装置が生成した複数の点のうち、所定の特徴を有する点を前記記憶装置に記憶することを特徴とする請求項1〜3のいずれか一つに記載の暗号鍵解析方法。
【請求項5】
点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成部から点をそれぞれ取得し、取得した各点を記憶する記憶部と、
前記記憶部に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出部と、
前記抽出部が抽出した各検査データを複数の検出部に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出部から判定結果を取得する判定要求部と
備えたことを特徴とする暗号鍵解析装置。
【請求項6】
コンピュータに、
点に対して写像を実行し、該写像の実行結果となる点に対して再度前記写像を実行する処理を繰り返し行う複数の点生成装置から点をそれぞれ取得し、取得した各点を記憶装置に記憶する記憶手順と、
前記記憶装置に記憶された複数の点から2つの点を選択し、選択した点の値の一部を検査データとしてそれぞれ抽出する抽出手順と、
前記抽出手順が抽出した各検査データを複数の検出装置に通知することで、前記検査データが一致するか否かの判定要求を行い、各検出装置から判定結果を取得する判定要求手順と、
を実行させることを特徴とする暗号鍵解析プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate


【公開番号】特開2012−32523(P2012−32523A)
【公開日】平成24年2月16日(2012.2.16)
【国際特許分類】
【出願番号】特願2010−170850(P2010−170850)
【出願日】平成22年7月29日(2010.7.29)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成20年度、独立行政法人情報通信研究機構、「適切な暗号技術を選択可能とするための新しい暗号技術の評価手法 〜暗号の技術評価に関する研究開発〜」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】