(57)【要約】【課題】指定した暗号方式のビットの統計的偏りを求め、自動的に安全性評価を行う。【解決手段】パラメータを入力し、秘密鍵Ｋを選択し、Ｋ以外のデータを選択して、これらを結合して入力データＸを生成する。また、ＸのＫデータ以外のビットのうち特定のビットを反転した入力データＸ´を生成する。Ｘ、Ｘ´について、入力された段数まで暗号化関数を演算し、Ｚ、Ｚ´を出力し、Ｚ、Ｚ´について、特定のワードのビットごとに特定の値となる出現回数をカウントする。次に、Ｘ、Ｘ´の選択したＫを固定し、Ｋ以外のデータを選択して、これらを結合した入力データｘと、ｘのＫデータ以外のビットのうち特定のビットを反転した入力データｘ´とに変更して、暗号化関数演算および出現回数算定を任意の回数実行する。そして、すべてのワード、ビットについて上記の処理を実行させ、実行後に、出現頻度を算出し、各ビットにおける出現頻度から、すべてのビットの偏りの中心値を算出して、偏りの中心値が所定の閾値を超えている場合に、警告を行う。【選択図】図２
2012160954.tif 000002
【特許請求の範囲】
【請求項１】
暗号方式の安全性を評価する評価装置であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する実行手段と、
該すべてのワード、すべてのビットについてｔ回の処理を実行後に、前記出現回数算定手段における出現回数から出現頻度を算出する出現頻度算出手段と、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う警告手段と、
を備えたことを特徴とする評価装置。
【請求項２】
暗号方式の安全性を評価する評価装置であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する実行手段と、
該すべてのワード、すべてのビットについてｔ回の処理を実行後に、前記出現回数算定手段における出現回数から出現頻度を算出する出現頻度算出手段と、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う警告手段と、
を備えたことを特徴とする評価装置。
【請求項３】
前記偏り算出手段が、偏りの中心値の算出をワード長ごとに実行することを特徴とする請求項１または請求項２に記載の評価装置。
【請求項４】
前記入力手段に入力されるパラメータに並列度が含まれる場合に、前記出現頻度算出手段および偏り算出手段が並列度に応じて演算の並列処理を行うことを特徴とする請求項１または請求項２に記載の評価装置。
【請求項５】
暗号方式の安全性を評価する評価装置であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行する第１の実行手段と、
該ｔ回実行後の前記出現回数算定手段における出現回数から出現頻度を算出する第１の出現頻度算出手段と、
入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ´回実行する第２の実行手段と、
該ｔ´回実行後の前記出現回数算定手段における出現回数から出現頻度を算出する第２の出現頻度算出手段と、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、
前記演算手段による演算、出現回数算定手段による出現回数の算定、第１の出現頻度算出手段および第２の出現頻度算出手段による出現頻度の算出、偏り算出手段によるすべてのビットにおける偏りの中心値の算出をすべてのワードおよびすべてのビットについて実行する第３の実行手段と、
該算出した偏りが所定の閾値を超えている場合に、警告を行う警告手段と、
を備えたことを特徴とする評価装置。
【請求項６】
前記第１の偏り算出手段および第２の偏り算出手段が、偏りの中心値の算出をワード長ごとに実行することを特徴とする請求項４に記載の評価装置。
【請求項７】
前記入力手段に入力されるパラメータに並列度が含まれる場合に、前記第１の出現頻度算出手段、第１の出現頻度算出手段、第１の偏り算出手段および第２の偏り算出手段が並列度に応じて演算の並列処理を行うことを特徴とする請求項４に記載の評価装置。
【請求項８】
暗号方式の安全性を評価する評価装置における評価方法であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、
すべてのワード、すべてのビットについて第１のステップから第５のステップを実行させる第６のステップと、
該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、
を備えたことを特徴とする評価方法。
【請求項９】
暗号方式の安全性を評価する評価装置における評価方法であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、
すべてのワード、すべてのビットについて第１のステップから第６のステップを実行させる第６のステップと、
該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、
を備えたことを特徴とする評価方法。
【請求項１０】
暗号方式の安全性を評価する評価装置における評価方法であって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する第５のステップと、
該ｔ回実行後に、出現回数から出現頻度を算出する第６のステップと、
入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する第７のステップと、
該ｔ´回実行後に、出現回数から出現頻度を算出する第８のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第９のステップと、
すべてのワードおよびすべてのビットについて前記第３のステップから第９のステップを実行させる第１０のステップと、
該算出した偏りが所定の閾値を超えている場合に、警告を行う第１１のステップと、
を備えたことを特徴とする評価方法。
【請求項１１】
暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、
すべてのワード、すべてのビットについて第１のステップから第５のステップを実行させる第６のステップと、
該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１２】
暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、
すべてのワード、すべてのビットについて第１のステップから第６のステップを実行させる第６のステップと、
該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、
該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、
をコンピュータに実行させるためのプログラム。
【請求項１３】
暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、
パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、
予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、
該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、
前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する第５のステップと、
該ｔ回実行後に、出現回数から出現頻度を算出する第６のステップと、
入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する第７のステップと、
該ｔ´回実行後に、出現回数から出現頻度を算出する第８のステップと、
該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第９のステップと、
すべてのワードおよびすべてのビットについて前記第３のステップから第９のステップを実行させる第１０のステップと、
該算出した偏りが所定の閾値を超えている場合に、警告を行う第１１のステップと、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化関数の安全性を自動的に評価する評価装置、評価方法およびプログラムに関する。
【背景技術】
【０００２】
近年、コンピュータを利用した様々なサービスが提供されている。そのため、多くのサービスにおいては、情報漏えい対策としてデータの暗号化の重要性が増してきている。しかしながら、利用者にとって、暗号方式の安全性を評価することは容易なことではない。
【０００３】
一般に、第三者による攻撃方法としては、ビットに偏りがあることを利用した攻撃法が知られており、このビットの偏りを検出するための１つの手法として差分読解法（例えば、非特許文献１参照。）が提案されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｂｉｈａｍ、Ｓｈａｍｉｒ  “Ｄｉｆｆｅｒｅｎｔｉａｌ  ｃｒｙｐｔａｎａｌｙｓｉｓ  ｏｆ  ＤＥＳ  ｌｉｋｅ  Ｃｒｙｐｔｏｓｙｓｔｅｍｓ、  ”  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｒｙｐｔｏｌｏｇｙ、 ４（１）、  ｐｐ．３−７２、１９９１。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
任意の暗号方式に対して自動的にビットの偏りを統計的に計算し、評価する手法は存在しなかった。
しかしながら、
【０００６】
そこで、本発明は、上述の課題に鑑みてなされたものであり、利用者が指定した任意の暗号方式に対してビットの統計的偏りを求め、自動的に安全性を評価し判定する評価装置、評価方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の事項を提案している。なお、理解を容易にするために、本発明の実施形態に対応する符号を付して説明するが、これに限定されるものではない。
【０００８】
（１）本発明は、暗号方式の安全性を評価する評価装置であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する実行手段と、該すべてのワード、すべてのビットについてｔ回の処理を実行後に、前記出現回数算定手段における出現回数から出現頻度を算出する出現頻度算出手段と、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う警告手段と、を備えたことを特徴とする評価装置を提案している。
【０００９】
この発明によれば、入力手段は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する。入力データ生成手段は、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。演算手段は、２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する。出現回数算定手段は、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。実行手段は、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する。出現頻度算出手段は、すべてのワード、すべてのビットについてｔ回の処理を実行後に、出現回数算定手段における出現回数から出現頻度を算出する。偏り算出手段は、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。警告手段は、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００１０】
（２）本発明は、暗号方式の安全性を評価する評価装置であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する実行手段と、該すべてのワード、すべてのビットについてｔ回の処理を実行後に、前記出現回数算定手段における出現回数から出現頻度を算出する出現頻度算出手段と、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う警告手段と、を備えたことを特徴とする評価装置を提案している。
【００１１】
この発明によれば、入力手段は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する。入力データ生成手段は、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。演算手段は、２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する。出現回数算定手段は、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。実行手段は、２つの入力データＸ、Ｘ´の選択した秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する。出現頻度算出手段は、すべてのワード、すべてのビットについてｔ回の処理を実行後に、出現回数算定手段における出現回数から出現頻度を算出する。偏り算出手段は、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。警告手段は、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００１２】
（３）本発明は、（１）または（２）の評価装置について、前記偏り算出手段が、偏りの中心値の算出をワード長ごとに実行することを特徴とする評価装置を提案している。
【００１３】
この発明によれば、偏り算出手段は、偏りの中心値の算出をワード長ごとに実行する。これにより、計算処理を高速化することができる。
【００１４】
（４）本発明は、（１）または（２）の評価装置について、前記入力手段に入力されるパラメータに並列度が含まれる場合に、前記出現頻度算出手段および偏り算出手段が並列度に応じて演算の並列処理を行うことを特徴とする評価装置を提案している。
【００１５】
この発明によれば、入力手段に入力されるパラメータに並列度が含まれる場合に、出現頻度算出手段および偏り算出手段が並列度に応じて演算の並列処理を行う。これにより、計算時間を短縮することができる。
【００１６】
（５）本発明は、暗号方式の安全性を評価する評価装置であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する入力手段と、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する入力データ生成手段と、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する演算手段と、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする出現回数算定手段と、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行する第１の実行手段と、該ｔ回実行後の前記出現回数算定手段における出現回数から出現頻度を算出する第１の出現頻度算出手段と、入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ´回実行する第２の実行手段と、該ｔ´回実行後の前記出現回数算定手段における出現回数から出現頻度を算出する第２の出現頻度算出手段と、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する偏り算出手段と、前記演算手段による演算、出現回数算定手段による出現回数の算定、第１の出現頻度算出手段および第２の出現頻度算出手段による出現頻度の算出、偏り算出手段によるすべてのビットにおける偏りの中心値の算出をすべてのワードおよびすべてのビットについて実行する第３の実行手段と、該算出した偏りが所定の閾値を超えている場合に、警告を行う警告手段と、を備えたことを特徴とする評価装置を提案している。
【００１７】
この発明によれば、入力手段は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する。入力データ生成手段は、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。演算手段は、２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する。出現回数算定手段は、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。第１の実行手段は、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ回実行する。第１の出現頻度算出手段は、ｔ回実行後の出現回数算定手段における出現回数から出現頻度を算出する。第２の実行手段は、入力データｘ、ｘ´について秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、演算手段による演算および出現回数算定手段による出現回数の算定を任意の回数ｔ´回実行する。第２の出現頻度算出手段は、ｔ´回実行後の出現回数算定手段における出現回数から出現頻度を算出する。偏り算出手段は、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。第３の実行手段は、演算手段による演算、出現回数算定手段による出現回数の算定、第１の出現頻度算出手段および第２の出現頻度算出手段による出現頻度の算出、偏り算出手段によるすべてのビットにおける偏りの中心値の算出をすべてのワードおよびすべてのビットについて実行する。警告手段は、該算出した偏りが所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、第１の実行手段の処理、第１の出現頻度算出手段の処理を行う。また、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、第２の実行手段の処理、第２の出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００１８】
（６）本発明は、（４）の評価装置について、前記第１の偏り算出手段および第２の偏り算出手段が、偏りの中心値の算出をワード長ごとに実行することを特徴とする評価装置を提案している。
【００１９】
この発明によれば、第１の偏り算出手段および第２の偏り算出手段が、偏りの中心値の算出をワード長ごとに実行する。これにより、計算処理を高速化することができる。
【００２０】
（７）本発明は、（４）の評価装置について、前記入力手段に入力されるパラメータに並列度が含まれる場合に、前記第１の出現頻度算出手段、第１の出現頻度算出手段、第１の偏り算出手段および第２の偏り算出手段が並列度に応じて演算の並列処理を行うことを特徴とする評価装置を提案している。
【００２１】
この発明によれば、入力手段に入力されるパラメータに並列度が含まれる場合に、第１の出現頻度算出手段、第１の出現頻度算出手段、第１の偏り算出手段および第２の偏り算出手段が並列度に応じて演算の並列処理を行う。これにより、計算時間を短縮することができる。
【００２２】
（８）本発明は、暗号方式の安全性を評価する評価装置における評価方法であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、すべてのワード、すべてのビットについて第１のステップから第５のステップを実行させる第６のステップと、該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、を備えたことを特徴とする評価方法を提案している。
【００２３】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる。そして、すべてのワード、すべてのビットについて上記の処理を実行させ、ｔ回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出して、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００２４】
（９）本発明は、暗号方式の安全性を評価する評価装置における評価方法であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、すべてのワード、すべてのビットについて第１のステップから第６のステップを実行させる第６のステップと、該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、を備えたことを特徴とする評価方法を提案している。
【００２５】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の選択した秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる。そして、すべてのワード、すべてのビットについて上記の処理を実行させ、ｔ回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出して、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００２６】
（１０）本発明は、暗号方式の安全性を評価する評価装置における評価方法であって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する第５のステップと、該ｔ回実行後に、出現回数から出現頻度を算出する第６のステップと、入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する第７のステップと、該ｔ´回実行後に、出現回数から出現頻度を算出する第８のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第９のステップと、すべてのワードおよびすべてのビットについて前記第３のステップから第９のステップを実行させる第１０のステップと、該算出した偏りが所定の閾値を超えている場合に、警告を行う第１１のステップと、を備えたことを特徴とする評価方法を提案している。
【００２７】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する。ｔ回実行後に、出現回数から出現頻度を算出する。一方、入力データｘ、ｘ´について秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する。ｔ´回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。そして、すべてのワードおよびすべてのビットについて上記の処理を実行させ、算出した偏りが所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、第１のステップ、第６のステップの処理を行う。また、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、第７のステップ、第８のステップ、第９のステップの処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００２８】
（１１）本発明は、暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、
該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、すべてのワード、すべてのビットについて第１のステップから第５のステップを実行させる第６のステップと、該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００２９】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる。そして、すべてのワード、すべてのビットについて上記の処理を実行させ、ｔ回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出して、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００３０】
（１２）本発明は、暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる第５のステップと、すべてのワード、すべてのビットについて第１のステップから第６のステップを実行させる第６のステップと、該ｔ回実行後に、前記出現回数から出現頻度を算出する第７のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第８のステップと、該算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う第９のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００３１】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の選択した秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる。そして、すべてのワード、すべてのビットについて上記の処理を実行させ、ｔ回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出して、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【００３２】
（１３）本発明は、暗号方式の安全性を評価する評価装置における評価方法をコンピュータに実行させるためのプログラムであって、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する第１のステップと、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する第２のステップと、該２つの入力データＸ、Ｘ´について、前記入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する第３のステップと、該演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする第４のステップと、前記２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する第５のステップと、該ｔ回実行後に、出現回数から出現頻度を算出する第６のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第７のステップと、入力データｘ、ｘ´について前記秘密鍵以外のデータを固定し、前記秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、前記暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する第８のステップと、該ｔ´回実行後に、出現回数から出現頻度を算出する第９のステップと、該算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する第１０のステップと、すべてのワードおよびすべてのビットについて前記第３のステップから第１０のステップを実行させる第１１のステップと、該算出した偏りが所定の閾値を超えている場合に、警告を行う第１２のステップと、をコンピュータに実行させるためのプログラムを提案している。
【００３３】
この発明によれば、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力し、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。その２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。次に、２つの入力データＸ、Ｘ´の前記選択した秘密鍵を固定し、該秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する。ｔ回実行後に、出現回数から出現頻度を算出する。一方、入力データｘ、ｘ´について秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する。ｔ´回実行後に、出現回数から出現頻度を算出し、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。そして、すべてのワードおよびすべてのビットについて上記の処理を実行させ、算出した偏りが所定の閾値を超えている場合に、警告を行う。つまり、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、第１のステップ、第６のステップの処理を行う。また、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、第７のステップ、第８のステップ、第９のステップの処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価する。
【発明の効果】
【００３４】
本発明によれば、暗号方式の安全性を利用者が自動的に検証することが可能となるという効果がある。
【図面の簡単な説明】
【００３５】
【図１】本発明の第１の実施形態に係る評価装置の構成ブロックである。
【図２】本発明の第１の実施形態に係る評価装置の処理フローである。
【図３】本発明の第２の実施形態に係る評価装置の構成ブロックである。
【図４】本発明の第２の実施形態に係る評価装置の処理フローである。
【図５】本発明の第３の実施形態に係る評価装置の構成ブロックである。
【図６】本発明の第３の実施形態に係る評価装置の処理フローである。
【図７】本発明の第３の実施形態に係る評価装置の処理フローである。
【発明を実施するための形態】
【００３６】
以下、本発明の実施形態について、図面を用いて、詳細に説明する。
なお、本実施形態における構成要素は適宜、既存の構成要素等との置き換えが可能であり、また、他の既存の構成要素との組合せを含む様々なバリエーションが可能である。したがって、本実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
【００３７】
＜第１の実施形態＞
以下、図１および図２を用いて、本発明の第１の実施形態について説明する。
【００３８】
＜評価装置の構成ブロック＞
本実施形態に係る評価装置は、図１に示すように、入力部１００と、記憶部２００と、入力データ生成部３００と、演算部４００と、出現回数算定部手段５００と、実行部６００と、出現頻度算出部７００と、偏り算出部８００と、警告部９００とから構成されている。
【００３９】
入力部１００は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する。記憶部２００は、複数の秘密鍵とデータ列とを記憶する。入力データ生成部３００は、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データＸ´を生成する。
【００４０】
演算部４００は、２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力する。出現回数算定部５００は、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする。実行部６００は、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算部４００による演算および出現回数算定部５００による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する。
【００４１】
出現頻度算出部７００は、すべてのワード、すべてのビットについてｔ回の処理を実行後に、出現回数算定手段における出現回数から出現頻度を算出する。偏り算出部８００は、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。警告部９００は、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う。
【００４２】
なお、偏り算出部８００は、偏りの中心値の算出をワード長ごとに実行する。これにより、計算処理を高速化することができる。また、入力部１００に入力されるパラメータに並列度が含まれる場合に、出現頻度算出部７００および偏り算出部８００が並列度に応じて演算の並列処理を行う。これにより、計算時間を短縮することができる。
【００４３】
＜評価装置の処理＞
図２を用いて、本実施形態に係る評価装置の処理について説明する。
まず、利用者は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する（ステップＳ１０１）。ここで、パラメータとしては、評価したい暗号方式、評価する段数、サンプル数、安全性を評価する閾値、並列度等がある。
【００４４】
次に、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうちｊビット目を反転した入力データＸ´を生成する（ステップＳ１０２）。
【００４５】
２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数（ラウンド関数）を演算し、演算結果Ｚ、Ｚ´を出力し（ステップＳ１０３）、演算結果Ｚ、Ｚ´について、ｉワードのビットごとに「１」となる出現回数をカウントする（ステップＳ１０４）。なお、このとき、ｉワード目の値だけを保存し、他のワードの値を破棄する。
【００４６】
２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうちｊビット目を反転した入力データｘ´とに変更して、暗号化関数（ラウンド関数）の演算および出現回数の算定を任意の回数ｔ回実行させる（ステップＳ１０５）。
【００４７】
すべてのワード、すべてのビットについてステップＳ１０１からステップＳ１０５を実行させる（ステップＳ１０６）。ｔ回実行後に、出現回数から出現頻度を算出する（ステップＳ１０７）。具体的には、ステップＳ１０４でカウントした出現回数ｃｔｒ＿ｉを計算回数ｔで割り、「１」であった割合を求める。さらに、具体的には、２＊（ｃｔｒ＿ｉ/ｔ）−１を偏りγ＿ｉとして保存する。
【００４８】
次に、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出し（ステップＳ１０８）、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う（ステップＳ１０９）。
【００４９】
したがって、本実施形態によれば、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価できる。
【００５０】
＜第２の実施形態＞
以下、図３および図４を用いて、本発明の第２の実施形態について説明する。
【００５１】
＜評価装置の構成ブロック＞
本実施形態に係る評価装置は、図３に示すように、入力部１００と、記憶部２００と、入力データ生成部３００と、演算部４００と、出現回数算定部手段５００と、実行部６１０と、出現頻度算出部７００と、偏り算出部８００と、警告部９００とから構成されている。なお、第１の実施形態と同一の符号を付す構成要素は、同様の機能を有するため、詳細な説明は省略する。
【００５２】
実行部６１０は、２つの入力データＸ、Ｘ´の選択した秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算部４００による演算および出現回数算定部５００による出現回数の算定を任意の回数ｔ回実行させるとともに、さらに、すべてのワード、すべてのビットについて実行する。
【００５３】
＜評価装置の処理＞
図４を用いて、本実施形態に係る評価装置の処理について説明する。
まず、利用者は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する（ステップＳ２０１）。ここで、パラメータとしては、評価したい暗号方式、評価する段数、サンプル数、安全性を評価する閾値、並列度等がある。
【００５４】
次に、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうちｊビット目を反転した入力データＸ´を生成する（ステップＳ２０２）。
【００５５】
２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数（ラウンド関数）を演算し、演算結果Ｚ、Ｚ´を出力し（ステップＳ２０３）、演算結果Ｚ、Ｚ´について、ｉワードのビットごとに「１」となる出現回数をカウントする（ステップＳ２０４）。なお、このとき、ｉワード目の値だけを保存し、他のワードの値を破棄する。
【００５６】
２つの入力データＸ、Ｘ´の選択した秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行させる（ステップＳ２０５）。
【００５７】
すべてのワード、すべてのビットについてステップＳ２０１からステップＳ２０５を実行させる（ステップＳ２０６）。ｔ回実行後に、出現回数から出現頻度を算出する（ステップＳ２０７）。具体的には、ステップＳ２０４でカウントした出現回数ｃｔｒ＿ｉを計算回数ｔで割り、「１」であった割合を求める。さらに、具体的には、２＊（ｃｔｒ＿ｉ/ｔ）−１を偏りγ＿ｉとして保存する。
【００５８】
次に、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出し（ステップＳ２０８）、算出した偏りの中心値が所定の閾値を超えている場合に、警告を行う（ステップＳ２０９）。
【００５９】
したがって、本実施形態によれば、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、実行手段の処理、出現頻度算出手段、偏り算出手段の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価できる。
【００６０】
＜第３実施形態＞
以下、図５および図６を用いて、本発明の第３の実施形態について説明する。
【００６１】
＜評価装置の構成ブロック＞
本実施形態に係る評価装置は、図５に示すように、入力部１００と、記憶部２００と、入力データ生成部３００と、演算部４００と、出現回数算定部手段５００と、第１の実行部６２０と、第１の出現頻度算出部７１０と、第２の実行部６３０と、第２の出現頻度算出部７２０と、偏り算出部８００と、第３の実行部６４０、警告部９００とから構成されている。なお、第１の実施形態または第２の実施形態と同一の符号を付す構成要素は、同様の機能を有するため、詳細な説明は省略する。
【００６２】
第１の実行部６２０は、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、演算部４００による演算および出現回数算定部５００による出現回数の算定を任意の回数ｔ回実行する。
【００６３】
第１の出現頻度算出部７１０は、ｔ回実行後の出現回数算定手段における出現回数から出現頻度を算出する。
【００６４】
第２の実行部６３０は、入力データｘ、ｘ´について秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、演算部４００による演算および出現回数算定部５００による出現回数の算定を任意の回数ｔ´回実行する。
【００６５】
第２の出現頻度算出部７２０は、ｔ´回実行後の出現回数算定部５００における出現回数から出現頻度を算出する。偏り算出部８００は、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する。
【００６６】
第３の実行部６４０は、演算部４００による演算、出現回数算定部５００による出現回数の算定、第１の出現頻度算出部７１０および第２の出現頻度算出部７２０による出現頻度の算出、偏り算出部８００によるすべてのビットにおける偏りの中心値の算出をすべてのワードおよびすべてのビットについて実行する。
【００６７】
＜評価装置の処理＞
図６を用いて、本実施形態に係る評価装置の処理について説明する。
まず、利用者は、パラメータとして、少なくとも暗号化方式および暗号化の段数を入力する（ステップＳ３０１）。ここで、パラメータとしては、評価したい暗号方式、評価する段数、サンプル数、安全性を評価する閾値、並列度等がある。
【００６８】
次に、予め保有する秘密鍵の中からランダムに任意の秘密鍵を選択するとともに、秘密鍵以外のデータをランダムに選択し、これらを結合して入力データＸを生成するとともに、入力データＸの秘密鍵データ以外のビットのうちｊビット目を反転した入力データＸ´を生成する（ステップＳ３０２）。
【００６９】
２つの入力データＸ、Ｘ´について、入力された段数まで暗号化関数を演算し、演算結果Ｚ、Ｚ´を出力し（ステップＳ３０３）、演算結果Ｚ、Ｚ´について、特定のワードのビットごとに予め決められた値となる出現回数をカウントする（ステップＳ３０４）。
【００７０】
そして、２つの入力データＸ、Ｘ´の選択した秘密鍵を固定し、秘密鍵以外のデータをランダムに選択して、これらを結合した入力データｘと、入力データｘの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｘ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ回実行する（ステップＳ３０５）。
【００７１】
次に、ｔ回実行後に、出現回数から出現頻度を算出し（ステップＳ３０６）、入力データｘ、ｘ´について秘密鍵以外のデータを固定し、秘密鍵をランダムに選択して、これらを結合した入力データｙと、入力データｙの秘密鍵データ以外のビットのうち予め定められたビットを反転した入力データｙ´とに変更して、暗号化関数の演算および出現回数の算定を任意の回数ｔ´回実行する（ステップＳ３０７）。
【００７２】
さらに、ｔ´回実行後に、出現回数から出現頻度を算出し（ステップＳ３０８）、算出した各ビットにおける出現頻度から、すべてのビットにおける偏りの中心値を算出する（ステップＳ３０９）。
【００７３】
そして、すべてのワードおよびすべてのビットについてステップＳ３０３からステップＳ３０９を実行させ（ステップＳ３１０）、算出した偏りが所定の閾値を超えている場合に、警告を行う（ステップＳ３１１）。
【００７４】
したがって、本実施形態によれば、入力データのうち、秘密鍵以外のデータを変更して、差分ペアを生成し、第１の実行部の処理、第１の出現頻度算出部の処理を行う。また、入力データのうち、秘密鍵をランダムに変更して、差分ペアを生成し、第２の実行部の処理、第２の出現頻度算出部、偏り算出部の処理を行い、算出した偏りの中心値が所定の閾値を超えているか否かの判定を行うことにより、暗号方式の安全性を自動的に評価することができる。
【００７５】
なお、評価装置の処理をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムを評価装置に読み込ませ、実行することによって本発明の評価装置を実現することができる。ここでいうコンピュータシステムとは、ＯＳや周辺装置等のハードウェアを含む。
【００７６】
また、「コンピュータシステム」は、ＷＷＷ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ）システムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されても良い。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００７７】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００７８】
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００７９】
１００；入力部
２００；記憶部
３００；入力データ生成部
４００；演算部
５００；出現回数算定部手段
６００、６１０；実行部
６２０；第１の実行部
６３０；第２の実行部
６４０；第３の実行部
７００；出現頻度算出部
７１０；第１の出現頻度算出部
７２０；第２の出現頻度算出部
８００；偏り算出部
９００；警告部
【図１】
2012160954.tif 000003
【図２】
2012160954.tif 000004
【図３】
2012160954.tif 000005
【図４】
2012160954.tif 000006
【図５】
2012160954.tif 000007
【図６】
2012160954.tif 000008
【図７】
2012160954.tif 000009