(57)【特許請求の範囲】
【請求項１】
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置であって、
前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける構造特定情報受付手段と、
前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する安全性指標値算出手段と、
を備える暗号評価装置。
【請求項２】
請求項１に記載の暗号評価装置であって、
前記安全性指標値算出手段は、前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価装置。
【請求項３】
請求項１又は請求項２に記載の暗号評価装置であって、
前記安全性指標値算出手段は、２を底とし、且つ、前記鍵のサイズＬを指数とした、べき乗２Ｌに基づいて前記安全性指標値を算出するように構成された暗号評価装置。
【請求項４】
請求項１乃至請求項３のいずれかに記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記構造特定情報は、前記構造の種類を表す情報と、前記ラウンド数、及び、前記分割数の少なくとも１つを表す情報と、を含む暗号評価装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載の暗号評価装置であって、
前記ブロック暗号方式が有する構造の種類は、フェイステル構造（ＦＳ；Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）、又は、一般化されたフェイステル構造（ＧＦＳ；Ｇｅｎｅｒａｌｉｚｅｄ  Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）である暗号評価装置。
【請求項６】
請求項５に記載の暗号評価装置であって、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、を用いる下記数式４５に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４５】
0005916246.tif 000046
【請求項７】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−１である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４６に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４６】
0005916246.tif 000047
【請求項８】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−２である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４７に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４７】
0005916246.tif 000048
【請求項９】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−３である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４８に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４８】
0005916246.tif 000049
【請求項１０】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＮｙｂｅｒｇのＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４９に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４９】
0005916246.tif 000050
【請求項１１】
請求項５に記載の暗号評価装置であって、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、を用いる下記数式５０に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数５０】
0005916246.tif 000051
【請求項１２】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式５１に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数５１】
0005916246.tif 000052
【請求項１３】
請求項５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｕｎｂａｌａｎｃｅｄ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式５２に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数５２】
0005916246.tif 000053
【請求項１４】
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置により行われる暗号評価方法であって、
前記暗号評価装置が記憶するプログラムを当該暗号評価装置が備える中央処理装置が実行することにより実現される構造特定情報受付手段は、前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付け、
前記暗号評価装置が記憶するプログラムを当該暗号評価装置が備える中央処理装置が実行することにより実現される安全性指標値算出手段は、前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する、暗号評価方法。
【請求項１５】
請求項１４に記載の暗号評価方法であって、
前記安全性指標値算出手段は、前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価方法。
【請求項１６】
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置に、
前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける構造特定情報受付手段と、
前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する安全性指標値算出手段と、を実現させるための暗号評価プログラム。
【請求項１７】
請求項１６に記載の暗号評価プログラムであって、
前記安全性指標値算出手段は、前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック暗号方式の安全性を評価する暗号評価装置に関する。
【背景技術】
【０００２】
ブロック暗号方式に対する中間一致攻撃が知られている。ここで、ブロック暗号方式は、データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行う方式である。【０００３】
中間一致攻撃においては、ブロック暗号方式が有する構造の全体が、第１の部分鍵を用いる第１の処理部、及び、第２の部分鍵を用いる第２の処理部からなる２つの処理部に分割される。第１の部分鍵のサイズ、及び、第２の部分鍵のサイズのそれぞれは、上記構造の全体が用いる鍵のサイズよりも小さい。【０００４】
先ず、第１の部分鍵及び第２の部分鍵が仮定される。そして、仮定された第１の部分鍵に基づいて、第１の処理部が平文を暗号化することにより、第１の中間データが生成される。更に、仮定された第２の部分鍵に基づいて、第２の処理部が、上記平文を暗号化した既知の暗号文を復号化することにより第２の中間データが生成される。【０００５】
第１の中間データと、第２の中間データと、が一致している場合、仮定された第１の部分鍵及び第２の部分鍵に基づいて真の鍵の候補が特定される。従って、中間一致攻撃によれば、仮定された鍵に基づいて、ブロック暗号方式が有する構造の全体が平文を暗号化することにより暗号文を生成し、生成された暗号文と、既知の暗号文と、が一致するか否かに基づいて真の鍵を特定する場合と比較して、真の鍵を特定するために要する計算量を低減することができる。【０００６】
ところで、ブロック暗号方式の安全性を評価する暗号評価装置が知られている。この種の暗号評価装置の一つとして、非特許文献１に記載の暗号評価装置は、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）暗号方式に対する中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を算出する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】A. Bogdanov、D. Khovratovich、C. Rechberger、「Biclique Cryptanalysis of the Full AES」、ASIACRYPT 2011、LNCS 7073、Springer、2011年、pp.344‐371
【発明の概要】
【発明が解決しようとする課題】
【０００８】
ところで、上記暗号評価装置を一般化されたフェイステル構造（ＧＦＳ；Ｇｅｎｅｒａｌｉｚｅｄ  Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）を有するブロック暗号方式に適用することを考える。【０００９】
この場合において、ブロック暗号方式が有する構造（例えば、ラウンド数又は分割数等）が変化したとき、その構造の変化に応じて、安全性指標値を算出する方法も変化する。また、安全性指標値を算出するための処理負荷が比較的大きい。ここで、分割数は、ラウンド処理を構成するサブラウンド処理の数である。各サブラウンド処理は、ブロックを当該分割数に分割したサブブロックの１つに対する処理である。【００１０】
このため、上記暗号評価装置は、中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を迅速に算出することができないという問題があった。【００１１】
このため、本発明の目的は、上述した課題である「安全性指標値を迅速に算出することができない場合が生じること」を解決することが可能な暗号評価装置を提供することにある。
【課題を解決するための手段】
【００１２】
かかる目的を達成するため本発明の一形態である暗号評価装置は、
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する装置である。【００１３】
更に、この暗号評価装置は、
上記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける構造特定情報受付手段と、
上記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって上記鍵を特定するために要する計算量を表す安全性指標値を算出する安全性指標値算出手段と、
を備える。【００１４】
また、本発明の他の形態である暗号評価方法は、
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する方法である。【００１５】
更に、この暗号評価方法は、
上記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付け、
上記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって上記鍵を特定するために要する計算量を表す安全性指標値を算出する方法である。【００１６】
また、本発明の他の形態である暗号評価プログラムは、
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置に、
上記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付け、
上記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって上記鍵を特定するために要する計算量を表す安全性指標値を算出する、処理を実行させるためのプログラムである。
【発明の効果】
【００１７】
本発明は、以上のように構成されることにより、安全性指標値を迅速に算出することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１実施形態に係る暗号評価装置の機能を表すブロック図である。
【図２】ＦＳを概念的に示した説明図である。
【図３】ＦＳに対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図４】ＧＦＳ  Ｔｙｐｅ−１を概念的に示した説明図である。
【図５】ＧＦＳ  Ｔｙｐｅ−１に対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図６】ＧＦＳ  Ｔｙｐｅ−２を概念的に示した説明図である。
【図７】ＧＦＳ  Ｔｙｐｅ−２に対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図８】ＧＦＳ  Ｔｙｐｅ−３を概念的に示した説明図である。
【図９】ＧＦＳ  Ｔｙｐｅ−３に対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図１０】ＮｙｂｅｒｇのＧＦＳを概念的に示した説明図である。
【図１１】ＮｙｂｅｒｇのＧＦＳに対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図１２】Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳを概念的に示した説明図である。
【図１３】Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳに対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図１４】Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳを概念的に示した説明図である。
【図１５】Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳに対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図１６】Ｕｎｂａｌａｎｃｅｄ  ＧＦＳを概念的に示した説明図である。
【図１７】Ｕｎｂａｌａｎｃｅｄ  ＧＦＳに対する中間一致攻撃において使用されないラウンド関数を概念的に示した説明図である。
【図１８】本発明の第２実施形態に係る暗号評価装置の機能を表すブロック図である。
【発明を実施するための形態】
【００１９】
以下、本発明に係る、暗号評価装置、暗号評価方法、及び、暗号評価プログラム、の各実施形態について図１〜図１８を参照しながら説明する。
【００２０】
＜第１実施形態＞
（構成）
図１に示したように、第１実施形態に係る暗号評価装置１は、情報処理装置である。なお、暗号評価装置１は、携帯電話端末、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅ、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、スマートフォン、カーナビゲーション端末、又は、ゲーム端末等であってもよい。
【００２１】
暗号評価装置１は、図示しない中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、記憶装置（メモリ及びハードディスク駆動装置（ＨＤＤ；Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ））、入力装置（本例では、キーボード、及び、マウス）、及び、出力装置（本例では、ディスプレイ）を備える。
【００２２】
暗号評価装置１は、記憶装置に記憶されているプログラムをＣＰＵが実行することにより、後述する機能を実現するように構成されている。本例では、暗号評価装置１は、ブロック暗号方式の安全性を評価する。ここで、ブロック暗号方式は、データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行う方式である。
【００２３】
（機能）
図１は、上記のように構成された暗号評価装置１の機能を表すブロック図である。
暗号評価装置１の機能は、構造特定情報受付部（構造特定情報受付手段）１１と、安全性指標値算出部（安全性指標値算出手段）１２と、評価出力部１３と、を含む。
【００２４】
構造特定情報受付部１１は、ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける。本例では、構造特定情報受付部１１は、入力装置を介してユーザによって入力された構造特定情報を受け付ける。なお、構造特定情報受付部１１は、外部の装置から構造特定情報を受信することにより構造特定情報を受け付けるように構成されていてもよい。
【００２５】
また、本例では、ブロック暗号方式が有する構造は、ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理によりラウンド処理が構成される。
【００２６】
具体的には、ブロック暗号方式が有する構造の種類は、フェイステル構造（ＦＳ；Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）、又は、一般化されたフェイステル構造（ＧＦＳ；Ｇｅｎｅｒａｌｉｚｅｄ  Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）である。ＧＦＳは、変形されたＧＦＳも含む。
【００２７】
また、構造特定情報は、構造の種類を表す情報と、ラウンド数、及び、分割数の少なくとも１つを表す情報と、を含む。
【００２８】
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定する。更に、安全性指標値算出部１２は、特定された不使用数に基づいて、中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を算出する。
【００２９】
本例では、安全性指標値算出部１２は、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、に基づいて安全性指標値を算出する。
【００３０】
評価出力部１３は、安全性指標値算出部１２により算出された安全性指標値を、出力装置を介して出力する。なお、評価出力部１３は、安全性指標値算出部１２により算出された安全性指標値が予め設定された基準値よりも大きいか否かを判定し、安全性指標値が基準値よりも大きいと判定された場合に、ブロック暗号方式が安全であることを表す情報を出力し、一方、安全性指標値が基準値よりも小さいと判定された場合に、ブロック暗号方式が危険であることを表す情報を出力するように構成されていてもよい。
【００３１】
以下、安全性指標値算出部１２が安全性指標値を算出する方法について、より詳細に説明する。
【００３２】
＜＜ＦＳ＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類がＦＳである場合、鍵のサイズＬと、ラウンド数ｒと、を用いる数式１に基づいて安全性指標値Ｓを算出する。
【数１】
0005916246.tif 000002
【００３３】
ここで、数式１の導出方法について説明する。ＦＳは、図２に示したような構造を有する。ＦＳは、例えば、非特許文献２に記載のＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）である。
【非特許文献２】National Bureau of Standards、「Data Encryption Standard」、FIPS-Pub.46. National Bureau of Standards, U.S、Department ofCommerce、Washington D.C.、1977年1月
【００３４】
先ず、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理の対象となるブロックＸｉと、ブロックＸｉを分割数ｄの部分に分割することにより生成されたサブブロックｘｉｊと、の関係を、数式２に示したように定義する。ここで、ｊは、０以上であり且つｄ−１以下である整数である。
【数２】
0005916246.tif 000003
【００３５】
本例では、１つのブロックは、ｂビットのデータである。また、１つのサブブロックは、ｎ（＝ｂ／ｄ）ビットのデータである。また、ラウンド処理は、分割数ｄのサブラウンド処理により構成される。即ち、サブブロックｘｉｊは、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるデータである。
【００３６】
なお、Ｘ０＝Ｐであり、Ｘｒ＝Ｃである。ここで、Ｐは、平文であり、Ｃは、暗号文である。また、数式２に示した関係は、ＦＳ以外の説明においても、同様に用いられる。
【００３７】
ＦＳは、図２に示したように、分割数が２である。即ち、１つのサブブロックは、ｂ／２ビットのデータである。また、本例では、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／２ビットのデータを、各ビットが０又は１を表すｂ／２ビットのデータに変換する（即ち、｛０；１｝ｂ／２→｛０；１｝ｂ／２）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００３８】
ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理は、数式３により表される。また、ｉ番目に実行されるラウンド処理を構成する１番目のサブラウンド処理は、数式４により表される。
【数３】
0005916246.tif 000004
【数４】
0005916246.tif 000005
【００３９】
ここで、「○」の内部に「＋」を描いた記号は、排他的論理和を表す演算子である。また、ｋｉは、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）である。
【００４０】
次に、ＦＳを有するブロック暗号方式に対する中間一致攻撃について検討する。図３に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図３における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／２ビットである。
【非特許文献３】K. Aoki、Y. Sasaki、「Preimage Attacks on One-Block MD4, 63-Step MD5 and More」、SAC2008、LNCS 538、Springer、2009年、pp.103‐119
【００４１】
この場合、中間一致攻撃において、図３にて点線により示した部分が、使用されない。即ち、ＦＳに対する、中間一致攻撃において使用されないラウンド関数の数である不使用数は、１である。
【００４２】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ−１回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒから、特定された不使用数１を減じた値ｒ−１の、当該総数ｒに対する比（ｒ−１）／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【００４３】
従って、数式１における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【００４４】
なお、ｉ番目に実行されるラウンド処理を構成する１番目のサブラウンド処理の対象となるサブブロックｘｉ１に対して、データの一致を確認する場合の計算量も、ｉ−１番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ−１０に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【００４５】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数としての１を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【００４６】
＜＜ＧＦＳ  Ｔｙｐｅ−１＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＧＦＳ  Ｔｙｐｅ−１である場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式５に基づいて安全性指標値Ｓを算出する。
【数５】
0005916246.tif 000006
【００４７】
ここで、数式５の導出方法について説明する。ＧＦＳは、非特許文献４に記載されている。また、ＧＦＳ  Ｔｙｐｅ−１は、図４に示したような構造を有する。ＧＦＳ  Ｔｙｐｅ−１は、例えば、非特許文献５に記載のＣＡＳＴ−２５６である。
【非特許文献４】Y. Zheng、T. Matsumoto、H. Imai、「On the Construction of Block Ciphers Provably Secure and Not Relyingon Any Unproved Hypotheses」、CRYPTO 1989、LNCS 435、Springer、1990年、pp.461‐480
【非特許文献５】C. Adams、J. Gilchrist、「The CAST-256 Encryption Algorithm」、[online]、1999年、Network WorkingGroup RFC 2612、[平成24年1月9日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc2612.txt>
【００４８】
図４に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例では、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ／ｄ）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００４９】
ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理は、数式６により表される。また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式７により表される。ここで、ｊは、０よりも大きく且つｄ−１以下の整数である。
【数６】
0005916246.tif 000007
【数７】
0005916246.tif 000008
【００５０】
また、「％」は、剰余（除算の余り）を求める演算子である。また、ｋｉは、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）である。
【００５１】
次に、ＧＦＳ  Ｔｙｐｅ−１を有するブロック暗号方式に対する中間一致攻撃について検討する。図５に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図５における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【００５２】
この場合、中間一致攻撃において、図５にて点線により示した部分が、使用されない。即ち、ＧＦＳ  Ｔｙｐｅ−１に対する、中間一致攻撃において使用されないラウンド関数の数である不使用数Ｕは、数式８により表される。
【数８】
0005916246.tif 000009
【００５３】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ−Ｕ回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒから、特定された不使用数Ｕを減じた値ｒ−Ｕの、当該総数ｒに対する比（ｒ−Ｕ）／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【００５４】
従って、数式５における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【００５５】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊに対して、データの一致を確認する場合の計算量も、ｉ−ｄ＋ｊ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ−ｄ＋ｊ０に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【００５６】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【００５７】
＜＜ＧＦＳ  Ｔｙｐｅ−２＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＧＦＳ  Ｔｙｐｅ−２である場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式９に基づいて安全性指標値Ｓを算出する。
【数９】
0005916246.tif 000010
【００５８】
ここで、数式９の導出方法について説明する。ＧＦＳ  Ｔｙｐｅ−２は、図６に示したような構造を有する。ＧＦＳ  Ｔｙｐｅ−２は、例えば、非特許文献６に記載のＣＬＥＦＩＡ、又は、非特許文献７に記載のＨＩＧＨＴである。
【非特許文献６】T. Shirai、K. Shibutani、T. Akishita、S. Moriai、T. Iwata、「The 128-Bit Blockcipher CLEFIA (Extended Abstract)」、FSE 2007、LNCS 4593、Springer、2007年、pp.181‐195
【非特許文献７】D. Hong、J. Sung、S.H. Hong、J.-I. Lim、S.-J. Lee、B.-S. Koo、C.-H. Lee、D. Chang、J. Lee, K. Jeong、H. Kim、J.-S. Kim、S. Chee、「HIGHT: A New Block Cipher Suitable for Low-Resource Device」、CHES 2006、LNCS 4249、Springer、2006年、pp.46.59
【００５９】
図６に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例でも、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ／ｄ）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００６０】
ここで、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）ｋｉと、ラウンド鍵ｋｉをｄ／２個の部分に分割することにより生成されたサブラウンド鍵ｋｉ，ｊと、の関係を、数式１０に示したように定義する。ここで、ｊは、０以上であり且つｄ／２−１以下である整数である。
【数１０】
0005916246.tif 000011
【００６１】
ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式１１により表される。ここで、ｊは、０以上であり且つｄ−１以下である偶数である。また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式１２により表される。ここで、ｊは、０よりも大きく且つｄ−１以下である奇数である。
【数１１】
0005916246.tif 000012
【数１２】
0005916246.tif 000013
【００６２】
次に、ＧＦＳ  Ｔｙｐｅ−２を有するブロック暗号方式に対する中間一致攻撃について検討する。図７に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図７における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【００６３】
この場合、中間一致攻撃において、図７にて点線により示した部分が、使用されない。即ち、ＧＦＳ  Ｔｙｐｅ−２に対する、中間一致攻撃において使用されないラウンド関数の数である不使用数Ｕは、数式１３により表される。
【数１３】
0005916246.tif 000014
【００６４】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ・ｄ／２−Ｕ回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒ・ｄ／２から、特定された不使用数Ｕを減じた値ｒ・ｄ／２−Ｕの、当該総数ｒ・ｄ／２に対する比（ｒ−２Ｕ／ｄ）／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【００６５】
従って、数式９における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【００６６】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０よりも大きく且つｄ−１以下である偶数である。）に対して、データの一致を確認する場合の計算量も、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０に対して、データの一致を確認する場合と等価である（各ラウンド処理における処理の対象となるブロックを、ｊ・ｂ／ｄビットだけ右に巡回した状態と等価である）ため、同様に説明される。
【００６７】
また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０よりも大きく且つｄ−１以下である奇数である。）に対して、データの一致を確認する場合の計算量も、ｉ−１番目に実行されるラウンド処理を構成する（ｊ＋１）％ｄ番目のサブラウンド処理の対象となるサブブロックｘｉ−１（ｊ＋１）％ｄに対して、データの一致を確認する場合と等価であるため、同様に説明される。
【００６８】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【００６９】
＜＜ＧＦＳ  Ｔｙｐｅ−３＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＧＦＳ  Ｔｙｐｅ−３である場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式１４に基づいて安全性指標値Ｓを算出する。
【数１４】
0005916246.tif 000015
【００７０】
ここで、数式１４の導出方法について説明する。ＧＦＳ  Ｔｙｐｅ−３は、図８に示したような構造を有する。
【００７１】
図８に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例でも、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ／ｄ）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００７２】
ここで、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）ｋｉと、ラウンド鍵ｋｉをｄ個の部分に分割することにより生成されたサブラウンド鍵ｋｉ，ｊと、の関係を、数式１５に示したように定義する。ここで、ｊは、０以上であり且つｄ−１以下である整数である。
【数１５】
0005916246.tif 000016
【００７３】
ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式１６により表される。ここで、ｊは、０以上であり且つｄ−１よりも小さい整数である。また、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理は、数式１７により表される。
【数１６】
0005916246.tif 000017
【数１７】
0005916246.tif 000018
【００７４】
次に、ＧＦＳ  Ｔｙｐｅ−３を有するブロック暗号方式に対する中間一致攻撃について検討する。図９に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図９における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【００７５】
この場合、中間一致攻撃において、図９にて点線により示した部分が、使用されない。即ち、ＧＦＳ  Ｔｙｐｅ−３に対する、中間一致攻撃において使用されないラウンド関数の数である不使用数Ｕは、数式１８により表される。
【数１８】
0005916246.tif 000019
【００７６】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ・（ｄ−１）−Ｕ回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒ・（ｄ−１）から、特定された不使用数Ｕを減じた値ｒ・（ｄ−１）−Ｕの、当該総数ｒ・（ｄ−１）に対する比｛ｒ−Ｕ／（ｄ−１）｝／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【００７７】
従って、数式１４における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【００７８】
なお、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理の対象となるサブブロックｘｉｄ−１に対して、データの一致を確認する場合の計算量も、ｉ−１番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ−１０に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【００７９】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０よりも大きく且つｄ−１よりも小さい整数である。）に対して、データの一致を確認する場合の計算量は、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０に対して、データの一致を確認する場合よりも大きくなるため、説明を省略する。
【００８０】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【００８１】
＜＜ＮｙｂｅｒｇのＧＦＳ＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＮｙｂｅｒｇのＧＦＳである場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式１９に基づいて安全性指標値Ｓを算出する。
【数１９】
0005916246.tif 000020
【００８２】
ここで、数式１９の導出方法について説明する。ＮｙｂｅｒｇのＧＦＳは、図１０に示したような構造を有する。ＮｙｂｅｒｇのＧＦＳは、非特許文献８に記載されている。
【非特許文献８】K. Nyberg、「Generalized Feistel Network」、ASIACRYP 1996、LNCS 1163、Springer、1996年、pp.91‐104
【００８３】
図１０に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例でも、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ／ｄ）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００８４】
ここで、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）ｋｉと、ラウンド鍵ｋｉをｄ／２個の部分に分割することにより生成されたサブラウンド鍵ｋｉ，ｊと、の関係を、数式２０に示したように定義する。ここで、ｊは、０以上であり且つｄ／２−１以下である整数である。
【数２０】
0005916246.tif 000021
【００８５】
ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理は、数式２１により表される。また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式２２により表される。ここで、ｊは、０よりも大きく且つｄ−１よりも小さい偶数である。また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式２３により表される。ここで、ｊは、０よりも大きく且つｄ−１よりも小さい奇数である。また、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理は、数式２４により表される。
【数２１】
0005916246.tif 000022
【数２２】
0005916246.tif 000023
【数２３】
0005916246.tif 000024
【数２４】
0005916246.tif 000025
【００８６】
次に、ＮｙｂｅｒｇのＧＦＳを有するブロック暗号方式に対する中間一致攻撃について検討する。図１１に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する１番目のサブラウンド処理の対象となるサブブロックｘｉ１（図１１における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【００８７】
この場合、中間一致攻撃において、図１１にて点線により示した部分が、使用されない。即ち、ＮｙｂｅｒｇのＧＦＳに対する、中間一致攻撃において使用されないラウンド関数の数である不使用数Ｕは、数式２５により表される。
【数２５】
0005916246.tif 000026
【００８８】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ・ｄ／２−Ｕ回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒ・ｄ／２から、特定された不使用数Ｕを減じた値ｒ・ｄ／２−Ｕの、当該総数ｒ・ｄ／２に対する比（ｒ−２Ｕ／ｄ）／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【００８９】
従って、数式１９における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【００９０】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、１よりも大きく且つｄ−１よりも小さい奇数である。）に対して、データの一致を確認する場合の計算量も、上述した場合と同じ計算量となる。
【００９１】
また、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０以上であり且つｄ−１よりも小さい偶数、又は、ｄ−１である。）に対して、データの一致を確認する場合の計算量は、ｉ番目に実行されるラウンド処理を構成する１番目のサブラウンド処理の対象となるサブブロックｘｉ１に対して、データの一致を確認する場合よりも大きくなるため、説明を省略する。
【００９２】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【００９３】
＜＜Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳ＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＴａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳである場合、鍵のサイズＬと、ラウンド数ｒと、を用いる数式２６に基づいて安全性指標値Ｓを算出する。
【数２６】
0005916246.tif 000027
【００９４】
ここで、数式２６の導出方法について説明する。Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳは、図１２に示したような構造を有する。Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳは、例えば、非特許文献９に記載のＭＡＲＳである。
【非特許文献９】IBM Corporation、「MARS - A Candidate Cipher for AES」、[online]、1999年、IBM Corporation、[平成24年1月9日検索]、インターネット<URL:http://domino.research.ibm.com/comm/research_projects.nsf/pages/security.mars.html>
【００９５】
図１２に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例では、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ・（ｄ−１）／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ・（ｄ−１）／ｄ）、関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【００９６】
更に、ラウンド関数Ｆは、Ｆ＝（Ｆ０，Ｆ１，・・・，Ｆｄ−２）により表される。即ち、ラウンド関数Ｆは、ｄ−１個のサブラウンド関数Ｆｊ（ここで、ｊは、０以上であり且つｄ−１よりも小さい整数である。）により構成される。
【００９７】
ここで、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）ｋｉと、ラウンド鍵ｋｉをｄ個の部分に分割することにより生成されたサブラウンド鍵ｋｉ，ｊと、の関係を、数式２７に示したように定義する。ここで、ｊは、０以上であり且つｄ−１以下である整数である。
【数２７】
0005916246.tif 000028
【００９８】
ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式２８により表される。ここで、ｊは、０以上であり且つｄ−１よりも小さい整数である。また、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理は、数式２９により表される。
【数２８】
0005916246.tif 000029
【数２９】
0005916246.tif 000030
【００９９】
次に、Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳを有するブロック暗号方式に対する中間一致攻撃について検討する。図１３に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図１３における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【０１００】
この場合、中間一致攻撃において、図１３にて点線により示した部分が、使用されない。即ち、Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳに対する、中間一致攻撃において使用されないラウンド関数の数である不使用数は、１である。
【０１０１】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ−１回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒから、特定された不使用数１を減じた値ｒ−１の、当該総数ｒに対する比（ｒ−１）／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【０１０２】
従って、数式２６における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【０１０３】
なお、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理の対象となるサブブロックｘｉｄ−１に対して、データの一致を確認する場合の計算量も、ｉ−１番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ−１０に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【０１０４】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０よりも大きく且つｄ−１よりも小さい整数である。）に対して、データの一致を確認する場合の計算量は、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０に対して、データの一致を確認する場合よりも大きくなるため、説明を省略する。
【０１０５】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【０１０６】
＜＜Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳ＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＴａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳである場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式３０に基づいて安全性指標値Ｓを算出する。
【数３０】
0005916246.tif 000031
【０１０７】
ここで、数式３０の導出方法について説明する。Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳは、図１４に示したような構造を有する。Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳは、例えば、非特許文献１０に記載のＳＰＥＥＤである。
【非特許文献１０】Y. Zheng、「The SPEED Cipher」、FC 1997、LNCS 1318、Springer、1997年、pp.71‐90
【０１０８】
図１４に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例では、ラウンド関数Ｆは、各ビットが０又は１を表すｂ・（ｄ−１）／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ・（ｄ−１）／ｄ→｛０；１｝ｂ／ｄ）、関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【０１０９】
ここで、ラウンド数がｒである場合における、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）ｋｉと、ラウンド鍵ｋｉをｄ個の部分に分割することにより生成されたサブラウンド鍵ｋｉ，ｊと、の関係を、数式３１に示したように定義する。ここで、ｊは、０以上であり且つｄ−１以下である整数である。
【数３１】
0005916246.tif 000032
【０１１０】
ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式３２により表される。ここで、ｊは、０以上であり且つｄ−１以下である整数のうちの、ｄ−２以外の整数である。また、ｉ番目に実行されるラウンド処理を構成するｄ−２番目のサブラウンド処理は、数式３３により表される。
【数３２】
0005916246.tif 000033
【数３３】
0005916246.tif 000034
【０１１１】
次に、Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳを有するブロック暗号方式に対する中間一致攻撃について検討する。図１５に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理の対象となるサブブロックｘｉｄ−１（図１５における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【０１１２】
この場合、中間一致攻撃において、図１５にて点線により示した部分が、使用されない。即ち、Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳに対する、中間一致攻撃において使用されないラウンド関数の数である不使用数は、ｄ−１である。
【０１１３】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ−（ｄ−１）回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒから、特定された不使用数ｄ−１を減じた値ｒ−（ｄ−１）の、当該総数ｒに対する比｛ｒ−（ｄ−１）｝／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【０１１４】
従って、数式３０における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【０１１５】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０以上であり且つｄ−１よりも小さい整数である。）に対して、データの一致を確認する場合の計算量も、ｉ＋ｊ＋１番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理の対象となるサブブロックｘｉ＋ｊ＋１ｄ−１に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【０１１６】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【０１１７】
＜＜Ｕｎｂａｌａｎｃｅｄ  ＧＦＳ＞＞
安全性指標値算出部１２は、構造特定情報受付部１１により受け付けられた構造特定情報が表す構造の種類が、ＧＦＳの一種であるＵｎｂａｌａｎｃｅｄ  ＧＦＳである場合、鍵のサイズＬと、ラウンド数ｒと、分割数ｄと、を用いる数式３４に基づいて安全性指標値Ｓを算出する。
【数３４】
0005916246.tif 000035
【０１１８】
ここで、数式３４の導出方法について説明する。Ｕｎｂａｌａｎｃｅｄ  ＧＦＳは、非特許文献１１に記載されている。また、Ｕｎｂａｌａｎｃｅｄ  ＧＦＳは、図１６に示したような構造を有する。
【非特許文献１１】J. Choy、G. Chew、K. Khoo、H. Yap、「Cryptographic Properties and Application of a Generalized UnbalancedFeistel Network Structure (Revised Version)」、IACR Cryptology ePrint Archive、2009年、2009-178
【０１１９】
図１６に示した例においては、分割数ｄは、４である。即ち、１つのサブブロックは、ｂ／４ビットのデータである。また、本例では、ラウンド関数Ｆは、各ビットが０又は１を表すｂ／ｄビットのデータを、各ビットが０又は１を表すｂ／ｄビットのデータに変換する（即ち、｛０；１｝ｂ／ｄ→｛０；１｝ｂ／ｄ）、全単射関数である。なお、ラウンド関数は、Ｆ関数とも呼ばれる。
【０１２０】
ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理は、数式３５により表される。ここで、ｊは、０以上であり且つｄ−２以下の整数である。また、ｉ番目に実行されるラウンド処理を構成するｄ−１番目のサブラウンド処理は、数式３６により表される。
【数３５】
0005916246.tif 000036
【数３６】
0005916246.tif 000037
【０１２１】
ここで、ｋｉは、ｉ番目に実行されるラウンド処理において用いられる鍵（ラウンド鍵）である。
【０１２２】
次に、Ｕｎｂａｌａｎｃｅｄ  ＧＦＳを有するブロック暗号方式に対する中間一致攻撃について検討する。図１７に示したように、非特許文献３に記載の部分一致（Ｐａｒｔｉａｌ−ｍａｔｃｈｉｎｇ）手法において、ｉ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ０（図１７における黒塗りの円）に対して、データの一致を確認する場合を想定する。即ち、部分一致手法における、一致を確認するデータ長（データのサイズ）ｍは、ｂ／ｄビットである。
【０１２３】
この場合、中間一致攻撃において、図１７にて点線により示した部分が、使用されない。
即ち、Ｕｎｂａｌａｎｃｅｄ  ＧＦＳに対する、中間一致攻撃において使用されないラウンド関数の数である不使用数は、ｄ−１である。
【０１２４】
従って、中間一致攻撃によって真の鍵を特定するためには、Ｌビットの鍵のそれぞれに対して、ラウンド関数Ｆによるデータの変換をｒ−（ｄ−１）回だけ実行する必要がある。即ち、中間一致攻撃によって真の鍵を特定するために要する計算量は、ラウンド関数の総数ｒから、特定された不使用数ｄ−１を減じた値ｒ−（ｄ−１）の、当該総数ｒに対する比｛ｒ−（ｄ−１）｝／ｒに正比例して増加し、且つ、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌに正比例して増加する。
【０１２５】
従って、数式３４における安全性指標値Ｓは、中間一致攻撃によって真の鍵を特定するために要する計算量をよく表している、と言うことができる。
【０１２６】
なお、ｉ番目に実行されるラウンド処理を構成するｊ番目のサブラウンド処理の対象となるサブブロックｘｉｊ（ここで、ｊは、０よりも大きく且つｄ−１以下である整数である。）に対して、データの一致を確認する場合の計算量も、ｉ＋ｊ番目に実行されるラウンド処理を構成する０番目のサブラウンド処理の対象となるサブブロックｘｉ＋ｊ０に対して、データの一致を確認する場合と等価であるため、同様に説明される。
【０１２７】
このように、安全性指標値算出部１２は、構造特定情報に基づいて、不使用数を特定し、ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、特定された不使用数を減じた値の、当該総数に対する比と、２を底とし且つ鍵のサイズＬを指数としたべき乗２Ｌと、の積を安全性指標値として算出する。
【０１２８】
（作動）
次に、上述した暗号評価装置１の作動について説明する。
先ず、暗号評価装置１は、ユーザにより入力された構造特定情報を受け付ける。次いで、暗号評価装置１は、受け付けられた構造特定情報に基づいて安全性指標値を算出する。そして、暗号評価装置１は、算出された安全性指標値を出力する。
【０１２９】
以上、説明したように、本発明の第１実施形態に係る暗号評価装置１によれば、中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を迅速に算出することができる。
【０１３０】
なお、第１実施形態に係る暗号評価装置１において、ラウンド関数は、Ｆ関数であったが、Ｓ−ｂｏｘ等のデータを変換する部品であってもよい。
【０１３１】
＜第２実施形態＞
次に、本発明の第２実施形態に係る暗号評価装置について図１８を参照しながら説明する。
第２実施形態に係る暗号評価装置１００は、データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する装置である。
【０１３２】
更に、この暗号評価装置１００は、
上記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける構造特定情報受付部（構造特定情報受付手段）１０１と、
上記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって上記鍵を特定するために要する計算量を表す安全性指標値を算出する安全性指標値算出部（安全性指標値算出手段）１０２と、
を備える。
【０１３３】
これによれば、中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を迅速に算出することができる。
【０１３４】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【０１３５】
なお、上記各実施形態において暗号評価装置の各機能は、ＣＰＵがプログラム（ソフトウェア）を実行することにより実現されていたが、回路等のハードウェアにより実現されていてもよい。
【０１３６】
また、上記各実施形態においてプログラムは、記憶装置に記憶されていたが、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１３７】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【０１３８】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【０１３９】
（付記１）
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置であって、
前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付ける構造特定情報受付手段と、
前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する安全性指標値算出手段と、
を備える暗号評価装置。
【０１４０】
これによれば、中間一致攻撃によって真の鍵を特定するために要する計算量を表す安全性指標値を迅速に算出することができる。
【０１４１】
（付記２）
付記１に記載の暗号評価装置であって、
前記安全性指標値算出手段は、前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価装置。
【０１４２】
ブロック暗号方式が有する構造に含まれるラウンド関数の総数から、上記不使用数を減じた値の、当該総数に対する比は、中間一致攻撃によって鍵を特定するために要する計算量をよく表す。従って、上記のように構成された暗号評価装置によれば、上記計算量をよく表す安全性指標値を算出することができる。
【０１４３】
（付記３）
付記１又は付記２に記載の暗号評価装置であって、
前記安全性指標値算出手段は、２を底とし、且つ、前記鍵のサイズＬを指数とした、べき乗２Ｌに基づいて前記安全性指標値を算出するように構成された暗号評価装置。
【０１４４】
べき乗２Ｌは、中間一致攻撃によって鍵を特定するために要する計算量をよく表す。従って、上記のように構成された暗号評価装置によれば、上記計算量をよく表す安全性指標値を算出することができる。
【０１４５】
（付記４）
付記１乃至付記３のいずれかに記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記構造特定情報は、前記構造の種類を表す情報と、前記ラウンド数、及び、前記分割数の少なくとも１つを表す情報と、を含む暗号評価装置。
【０１４６】
（付記５）
付記１乃至付記４のいずれかに記載の暗号評価装置であって、
前記ブロック暗号方式が有する構造の種類は、フェイステル構造（ＦＳ；Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）、又は、一般化されたフェイステル構造（ＧＦＳ；Ｇｅｎｅｒａｌｉｚｅｄ  Ｆｅｉｓｔｅｌ  Ｓｔｒｕｃｔｕｒｅ）である暗号評価装置。
【０１４７】
（付記６）
付記５に記載の暗号評価装置であって、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、を用いる下記数式３７に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数３７】
0005916246.tif 000038
【０１４８】
（付記７）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−１である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式３８に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数３８】
0005916246.tif 000039
【０１４９】
（付記８）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−２である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式３９に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数３９】
0005916246.tif 000040
【０１５０】
（付記９）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＧＦＳ  Ｔｙｐｅ−３である場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４０に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４０】
0005916246.tif 000041
【０１５１】
（付記１０）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、ＮｙｂｅｒｇのＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４１に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４１】
0005916246.tif 000042
【０１５２】
（付記１１）
付記５に記載の暗号評価装置であって、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｔａｒｇｅｔ−Ｈｅａｖｙ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、を用いる下記数式４２に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４２】
0005916246.tif 000043
【０１５３】
（付記１２）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｓｏｕｒｃｅ−Ｈｅａｖｙ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４３に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４３】
0005916246.tif 000044
【０１５４】
（付記１３）
付記５に記載の暗号評価装置であって、
前記構造は、前記ブロックを所定の分割数に分割したサブブロックのそれぞれに対するサブラウンド処理により前記ラウンド処理が構成され、
前記安全性指標値算出手段は、
前記受け付けられた構造特定情報が表す構造の種類が、Ｕｎｂａｌａｎｃｅｄ  ＧＦＳである場合、前記鍵のサイズＬと、前記ラウンド数ｒと、前記分割数ｄと、を用いる下記数式４４に基づいて前記安全性指標値Ｓを算出するように構成された暗号評価装置。
【数４４】
0005916246.tif 000045
【０１５５】
（付記１４）
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価方法であって、
前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付け、
前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する、暗号評価方法。
【０１５６】
（付記１５）
付記１４に記載の暗号評価方法であって、
前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価方法。
【０１５７】
（付記１６）
データを鍵に基づいて変換するラウンド関数を用いるラウンド処理を所定のラウンド数だけ繰り返し実行することにより、所定のサイズを有するデータであるブロック毎に暗号化を行うブロック暗号方式の安全性を評価する暗号評価装置に、
前記ブロック暗号方式が有する構造を特定するための構造特定情報を受け付け、
前記受け付けられた構造特定情報に基づいて、中間一致攻撃において使用されないラウンド関数の数である不使用数を特定し、当該特定された不使用数に基づいて、当該中間一致攻撃によって前記鍵を特定するために要する計算量を表す安全性指標値を算出する、処理を実行させるための暗号評価プログラム。
【０１５８】
（付記１７）
付記１６に記載の暗号評価プログラムであって、
前記ブロック暗号方式が有する構造に含まれる前記ラウンド関数の総数から、前記特定された不使用数を減じた値の、当該総数に対する比に基づいて前記安全性指標値を算出するように構成された暗号評価プログラム。
【０１５９】
なお、本発明は、日本国にて２０１２年１月２３日に特許出願された特願２０１２−０１０６１６の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
【産業上の利用可能性】
【０１６０】
本発明は、ブロック暗号方式の安全性を評価する暗号評価装置等に適用可能である。
【符号の説明】
【０１６１】
１      暗号評価装置
１１    構造特定情報受付部
１２    安全性指標値算出部
１３    評価出力部
１００  暗号評価装置
１０１  構造特定情報受付部
１０２  安全性指標値算出部
【図１】
0005916246.tif 000054
【図２】
0005916246.tif 000055
【図３】
0005916246.tif 000056
【図４】
0005916246.tif 000057
【図５】
0005916246.tif 000058
【図６】
0005916246.tif 000059
【図７】
0005916246.tif 000060
【図８】
0005916246.tif 000061
【図９】
0005916246.tif 000062
【図１０】
0005916246.tif 000063
【図１１】
0005916246.tif 000064
【図１２】
0005916246.tif 000065
【図１３】
0005916246.tif 000066
【図１４】
0005916246.tif 000067
【図１５】
0005916246.tif 000068
【図１６】
0005916246.tif 000069
【図１７】
0005916246.tif 000070
【図１８】
0005916246.tif 000071