JP4337328B2 - 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム - Google Patents

暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム Download PDF

Info

Publication number
JP4337328B2
JP4337328B2 JP2002319206A JP2002319206A JP4337328B2 JP 4337328 B2 JP4337328 B2 JP 4337328B2 JP 2002319206 A JP2002319206 A JP 2002319206A JP 2002319206 A JP2002319206 A JP 2002319206A JP 4337328 B2 JP4337328 B2 JP 4337328B2
Authority
JP
Japan
Prior art keywords
data
truncated
cryptographic
processing
equation
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.)
Expired - Fee Related
Application number
JP2002319206A
Other languages
English (en)
Other versions
JP2004153733A (ja
JP2004153733A5 (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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Priority to JP2002319206A priority Critical patent/JP4337328B2/ja
Publication of JP2004153733A publication Critical patent/JP2004153733A/ja
Publication of JP2004153733A5 publication Critical patent/JP2004153733A5/ja
Application granted granted Critical
Publication of JP4337328B2 publication Critical patent/JP4337328B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラムに関する。さらに、詳細には、共通鍵ブロック暗号の安全性・強度を評価するための指標を算出する暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラムに関する。
【0002】
【従来の技術】
暗号処理アルゴリズムには様々なものがあるが、大きく分類すると、暗号化鍵と復号化鍵を異なる鍵、例えば公開鍵と秘密鍵として設定する公開鍵暗号方式と、暗号化鍵と復号化鍵を共通の鍵として設定する共通鍵暗号方式とに分類される。
【0003】
共通鍵暗号方式にも様々なアルゴリズムがあるが、その1つに共通鍵をベースとして複数の鍵を生成して、生成した複数の鍵を用いて暗号処理を繰り返し実行する方式がある。このような鍵生成方式を適用したアルゴリズムの代表的なものが共通鍵ブロック暗号方式である。
【0004】
共通鍵ブロック暗号のアルゴリズムは、主として、ラウンド関数部と鍵スケジュール部とに分けることができる。従来、共通鍵ブロック暗号を設計する際には、鍵関連攻撃等に対する安全性を確保するため、暗号の設計者は、ラウンド鍵間の単純な関係式が成立しないように、注意深く鍵スケジュール部の設計を行うことが要請されてきた。
【0005】
共通鍵ブロック暗号に対する代表的な攻撃法である差分攻撃および線形攻撃に対する安全性を示すためには、それぞれ最大差分特性確率および最大線形特性確率と呼ばれる暗号系に固有の値を導出し安全性の根拠とする手段が有効である。高い特性確率が存在すると攻撃に利用されてしまうことから、低い特性確率しかもたないようなアルゴリズムを設計することが望まれている。しかしながら一般的にブロックサイズが大きくなるにつれてそれら特性確率を求める計算量が莫大になるため、安全性の評価が困難となっている。
【0006】
ひとつの代替案としてより取り扱いの容易なトランケイテッド(Truncated)表現されたパスを使って最大差分確率および最大線形確率の上界を求める方法が提案されている。しかしその方式は安全性の下界を示しているもののあくまでも限度を示すものであり実際の暗号系の強度を十分に表現しているものとは言えなかった。またこのような評価法では具体的な値を持つ差分パス、線形近似を用いた攻撃に対する安全性評価が不可能であるという問題がある。
【0007】
【発明が解決しようとする課題】
本発明は、上述の問題点に鑑みてなされたものであり、トランケイテッド(Truncated)差分パスを用いて上界が導出されたSPN型のF関数を持つ共通鍵ブロック暗号において、その上界に近い特性確率をもつような差分パス、線形近似の導出を可能とする暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム提供することを目的とする。
【0008】
本発明ではトランケイテッド差分パスを活用して、具体的な値を持つ差分パス、線形近似を導出する。この手法のメリットとしては、上界に近い確率をもつ差分パス、線形近似を得ることが可能となることである。よって差分攻撃、線形攻撃に対する信頼性の高い安全性評価結果を示すことが可能となる。
【0009】
【課題を解決するための手段】
本発明の第1の側面は、
暗号強度評価処理装置において実行する暗号処理アルゴリズムの暗号強度指標算出方法であり、
データ処理機能を有する前記暗号強度評価処理装置の解析手段が、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部に対して暗号強度解析処理を施す解析ステップを有し、
前記解析ステップは、
前記暗号処理部に対するトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パスステップと、
前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割ステップと、
前記トランケイテッド(Truncated)パスにおいて、前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定ステップと、
前記連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換えステップと、
前記行列置き換えステップによって得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2のデータに対する解の集合を求める解集合算出ステップと、
前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出ステップと、
を有することを特徴とする暗号強度指標算出方法にある。
【0010】
さらに、本発明の暗号強度指標算出方法の一実施態様において、前記トランケイテッド(Truncated)パスステップは、トランケイテッド(Truncated)差分パスステップまたは、トランケイテッド(Truncated)線形パスステップの少なくとも1つを有することを特徴とする。
【0011】
さらに、本発明の暗号強度指標算出方法の一実施態様において、前記トランケイテッド(Truncated)差分パスステップは、前記暗号処理部から抜き出したデータの差分値がゼロであるか非ゼロであるかに応じて0または1を割り当てることを特徴とする。
【0012】
さらに、本発明の暗号強度指標算出方法の一実施態様において、前記トランケイテッド(Truncated)線形パスステップは、前記暗号処理部から抜き出したデータにマスク処理を施すことによりマスク値を生成し、各マスク値がゼロであるか非ゼロであるかに応じて0または1を割り当てることを特徴とする。
【0013】
さらに、本発明の暗号強度指標算出方法の一実施態様において、前記最大特性確立算出ステップは、最大差分特性確率算出ステップまたは、最大線形特性確率算出ステップの少なくとも1つを有することを特徴とする。
【0014】
さらに、本発明の第2の側面は、
暗号処理アルゴリズムの暗号強度評価処理装置であり、
共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理に対して暗号強度解析処理を施す解析手段であり、データ処理機能を有する解析手段を有し、
前記解析手段は、
前記暗号処理部に対してトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パス処理と、
前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割処理と、
前記トランケイテッド(Truncated)パスにおいて、
前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定処理と、
前記連立一次方程式設定処理において設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換え処理と、
前記行列置き換え処理において得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2データに対する解の集合を求める解集合算出処理と、
前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出処理と、
を有することを特徴とする暗号強度評価処理装置にある。
【0017】
さらに、本発明の第3の側面は、
暗号強度評価処理装置において暗号処理アルゴリズムの暗号強度指標算出処理を実行させるコンピュータ・プログラムであり、
暗号強度評価処理装置のプログラム実行部である制御部において、共通鍵ブロック暗号処理アルゴリズムを実行させて、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部に対して暗号強度解析処理を施させる解析ステップを有し、
前記解析ステップは、
前記暗号処理部に対するトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パスステップと、
前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割ステップと、
前記トランケイテッド(Truncated)パスにおいて、前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定ステップと、
前記連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換えステップと、
前記行列置き換えステップによって得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2のデータに対する解の集合を求める解集合算出ステップと、
前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出ステップと、
を含むことを特徴とするコンピュータ・プログラムにある。
【0019】
【作用】
本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理関数の暗号強度解析において、上界により近い確率のパスを算出することが可能となる。
【0020】
また、本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理手段に対して差分データ入力に基づく差分パス解析において、差分データの差分値がゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)差分パスを入力し、暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割し、各チェインに含まれるデータに基づく差分解析を実行して差分特性確率:DCPを計算し、最も高い値を持つ差分特性確率:DCPを、暗号強度指標値としてのトランケイテッド(Truncated)差分パスTに対する最大差分特性確率MDCPTとして算出することが可能となる。
【0021】
さらに、本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理手段に対して、マスク処理データがゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)マスク値を入力し、暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割し、各チェインに含まれるデータに基づく解析を実行して線形特性確率:LCPを計算し、最も高い値を持つ線形特性確率:LCPを、暗号強度指標値としてのトランケイテッド(Truncated)線形パスTに対する最大線形特性確率MLCPTとして算出することが可能となる。
【0022】
なお、本発明のコンピュータ・プログラムは、例えば、様々なプログラム・コードを実行可能な汎用コンピュータ・システムに対して、コンピュータ可読な形式で提供する記憶媒体、通信媒体、例えば、CDやFD、MOなどの記憶媒体、あるいは、ネットワークなどの通信媒体によって提供可能なコンピュータ・プログラムである。このようなプログラムをコンピュータ可読な形式で提供することにより、コンピュータ・システム上でプログラムに応じた処理が実現される。
【0023】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施例や添付する図面に基づくより詳細な説明によって明らかになるであろう。なお、本明細書においてシステムとは、複数の装置の論理的集合構成であり、各構成の装置が同一筐体内にあるものには限らない。
【0024】
【発明の実施の形態】
以下、本発明の暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラムについて詳細に説明する。
【0025】
[1.Feistel構造]
まず、本発明における暗号強度評価処理対象となるFeistel構造と呼ばれる代表的な共通鍵ブロック暗号の構造について、図1を参照して説明する。
【0026】
Feistel構造は、変換関数の単純な繰り返しにより、平文を暗号文に変換する構造を持つ。平文の長さを2mnビットとする。初めにmnビットの2つのデータPL(Plain-Left),PR(Plain-Right)に分割し、これを入力値とする。
【0027】
Feistel構造はラウンド関数とよばれる基本構造の繰り返しで表現され、各ラウンドに含まれるデータ変換関数はF関数と呼ばれる。図1の構成では、ラウンド関数がr段繰り返された構成例を示している。
【0028】
i番目のラウンド関数では、前段から入力される2つの入力データXi(=Wi),Ziのうち左側のデータXi(=Wi)と、鍵生成部(図示せず)から入力されるラウンド鍵KiがF関数に入力され、F関数におけるデータ変換処理の後にデータYiを出力する。F関数の出力はもう片方の入力データZiと排他的論理和され、Xiとともに次のラウンド関数へと出力とされる。この処理、すなわちラウンド関数を定められたラウンド数(r)だけ繰り返し適用して暗号化処理が完了し、暗号文の分割データCL(Cipher-Left)、CR(Cipher-Right)が出力される。
【0029】
本発明の構成において、各ラウンド関数に設定されるF関数は、図2に示すようなSPN型の構成をもつものとする。SPN型のF関数は、鍵加算部121、非線形変換部122、線形変換部123により構成される。
【0030】
例えば、i番目のラウンドのF関数に入力されたデータWiはまず、m個のnビットデータWi[1],Wi[2],...,Wi[m]に分割され、同様に分割された鍵データKi[1],Ki[2],...,Ki[m]と、鍵加算部121において、それぞれ排他的論理和されTi[1],Ti[2],...,Ti[m]となり、非線形変換部122に入力される。
【0031】
つづいて非線形変換部122において、各nビットデータTi[1],Ti[2],...,Ti[m]はS−boxと呼ばれるあらかじめ定められた置換表により変換され、Si[1],Si[2],...,Si[m]を線形変換部123に出力する。
【0032】
Si[1],Si[2],...,Si[m]は線形変換部123において、線形変換処理が実行され、その出力がF関数の出力Yi[1],Yi[2],...,Yi[m]となる。
【0033】
線形変換部123の具体的線形変換処理例を図3に示す。非線形変換部から入力されたm個のnビットデータSi[1],Si[2],...,Si[m]に対してあらかじめ定められた行列の演算の適用により線形変換が施されYi[1],Yi[2],...,Yi[m]に変換される。ただし、このとき各データの行列の要素に対する線形演算はあらかじめ定められた体GF(2n)上で行われるものとする。
【0034】
[2.差分パス]
次に、差分パスについて説明する。2つのデータを排他的論理和したときの値をその2つのデータの差分と呼び、本明細書においては、差分を表す場合にはΔ(デルタ)記号をつけて表す。
【0035】
前述したように、非線形変換部122において、鍵加算部121からの出力データとしての各nビットデータTi[1],Ti[2],...,Ti[m]はS−boxと呼ばれるあらかじめ定められた置換表により変換され、Si[1],Si[2],...,Si[m]を線形変換部123に出力する。
【0036】
S−boxには差分確率が定義される。DPs(ΔA,ΔB)をS−boxに差分ΔAが入力されたときに差分ΔBが出力される確率とし、それを差分確率と呼ぶ。DPs(ΔA,ΔB)は実際のS−boxの置換表を使って以下の(式1)のように計算される。なお、ここでは説明を簡単にするためS−boxは一種類しか用いていないが、S−boxが複数種類ある場合もそれぞれのS−boxの置換表を用いて同様に定義される。
【0037】
【数13】
Figure 0004337328
【0038】
図4に、r段のラウンド関数からなる暗号化関数における差分の伝播を表現した差分パスの例を示す。1段目のラウンド関数210にΔX1,ΔZ1で表される差分をもつ平文のペアを入力すると、1段目のラウンド関数210内のF関数211の非線形変換部に構成されるS−boxの差分確率によって計算されるある差分確率p1で差分ΔX2,ΔZ2が次段のラウンド関数へ出力される。
【0039】
ここではpiをiラウンド目の差分確率と呼ぶ。2段目のラウンド関数220に、ΔX2,ΔZ2が入力されると差分確率p2で差分ΔX3,ΔZ3へと遷移が起こる。このように暗号化関数全体に対して差分の遷移を具体的に表したものが差分パスとよばれ、各ラウンドにおける差分確率pi,(1≦i≦r)をすべて掛け合わせた値を差分特性確率:DCPと呼び差分暗号化関数に対してΔX1,ΔZ1が入力されたときにΔCL,ΔCRが出力される確率を近似的に表す確率として利用する。
【0040】
しかし、上述の差分パスの適用構成では、暗号化ブロックのビットサイズが増大すると複数のラウンド間の接続関係を考慮して最大の差分特性確率をもつ差分パスを容易に求めることはできなくなる。
【0041】
[3.トランケイテッド(Truncated)差分パス]
次に本発明の実施例として、上述の差分パス手法の改善手法であるトランケイテッド(Truncated)差分パスを適用した手法について説明する。
【0042】
トランケイテッド(Truncated)差分とは差分データの表現手法の一つで、差分データをある決められたビット数で区切り、各差分データの差分値がゼロか非ゼロかによって0または1を割り当てたデータである。本明細書においては、δ(スモールデルタ)の記号をつけて表現する。
【0043】
図5に、図4の差分パスをバイトごとに区切り、トランケイテッド(Truncated)形式で表した例を示す。ここで注意すべき点は図4の差分パスとは具体的な差分値が異なっていてもトランケイテッド(Truncated)表現したときに図5のように表現されるパスは複数存在しているということである。それらをまとめて代表的に表現したものがトランケイテッド(Truncated)差分パスであるといえる。
【0044】
トランケイテッド(Truncated)差分パスには具体的な値が存在しないのでラウンド関数に対する差分確率のような固有の確率は定義されない。しかしながら、各ラウンド関数内のF関数内部でトランケイテッド(Truncated)差分として1が入力されるS−boxの個数により差分確率の上界を求めることが可能となる。
【0045】
複数段のラウンド関数によって構成される暗号化関数全体についても同様にすべてのS−boxのなかでトランケイテッド(Truncated)差分1が入力されるS−boxの個数をカウントすることで、このトランケイテッド(Truncated)差分パスに含まれる差分パスのもつ差分確率の上界を導出することができる。具体的にはトランケイテッド(Truncated)差分パスの中に含まれるトランケイテッド(Truncated)差分として1が入力されるS−boxの数をaとし、S−boxの最大差分確率をpsmaxとすると、差分特性確率の上界Uは、以下の(式2)によって示される。
【0046】
【数14】
U=psmax a ...(式2)
【0047】
このようにトランケイテッド(Truncated)差分パスから、トランケイテッド(Truncated)差分として1が入力されるS−boxの数[a]を調べることで差分特性確率の上界がわかり安全性の評価を得ることができる。
【0048】
トランケイテッド(Truncated)差分を用いるメリットとしては通常の差分と比べてデータ量が格段に縮約されており、現実的に処理可能な時間で探索を行うアルゴリズムが構築できるという点である。
【0049】
なお、SPN型のF関数をもつFeistel暗号の場合、数多くのトランケイテッド(Truncated)差分パスの中からもっとも高い上界をもつトランケイテッド(Truncated)差分パスをもとめる効率的なアルゴリズムについては、例えば、T. Shirai, S. Kanamaru and G. Abe, "Improved Upper Bounds of Differential and Linear Characteristic Probability for Camellia", Fast Software Encryption, FSE 2002, LNCS2365(論文1)に記述されている。
【0050】
[4.線形パス]
次に、線形パスについて説明する。あるデータに対して特定の位置のビットを抜き出してきて、抜き出されたビットすべての排他的論理和をとり1ビットの値を得る処理をマスク処理と呼び、そのとき特定の位置を表す情報をマスク値と呼ぶ。マスク値は対象データと同じ長さのビット列で表現され、取り出すビット位置に1を、取り出さない位置に0を対応させる。たとえばビット列[01011011]に対してマスク値[10101010]を施すと1,3,5,7番目のビットを取り出して排他的論理和するので、下式(式3)の結果が得られる。
【0051】
【数15】
Figure 0004337328
【0052】
なお、本明細書においては、マスク値を表現するときにはΓ(ガンマ)を用いて表すものとする。各ラウンド関数のF関数における非線形変換部に設定されるS−boxには線形確率が定義される。S−boxの入力値にマスクΓAが、出力値にマスクΓBが施されたとき、それぞれの結果の排他的論理和が0となる確率をl(ΓA,ΓB)とすると、確率:l(ΓA,ΓB)は、以下の(式4)に従って計算される。
【0053】
【数16】
Figure 0004337328
【0054】
また、特にS−boxの線形確率LP,(ΓA,ΓB)を以下の(式5)に示すように定義する。
【0055】
【数17】
Figure 0004337328
【0056】
図6を参照して、複数段のラウンド関数によって構成される暗号化関数に対してマスク処理を施した処理、すなわち線形近似処理例を説明する。1段目のラウンド関数410の入力値に対してΓX1,ΓZ1で表されるマスク処理を施されて得られる値と、1段目のラウンド関数の出力に対してΓX2,ΓZ2で表されるマスク処理を施されて得られる結果を排他的論理和した値が0となる確率をq1としそのマスク値に対するの線形確率と呼ぶ。q1は、1段目のラウンド関数410のF関数411の非線形変換部に構成されるS−boxの線形確率から計算することができる。
【0057】
また、同様に2段目のラウンド関数420の入力値に対してΓX2,ΓZ2で表されるマスク処理を施されて得られる値と、2段目のラウンド関数の出力に対してΓX3ΓZ3で表されるマスク処理を施されて得られる結果を排他的論理和した値が0となる確率をq2とすると、マスク値に対するの線形確率q2は、2段目のラウンド関数420のF関数421の非線形変換部に構成されるS−boxの線形確率から計算することができる。以降のラウンド関数のマスク値に対しても、それぞれqiが計算される。
【0058】
このとき複数段のラウンド関数によって構成される暗号化関数全体に着目して、一段目のラウンド関数の入力値に対してマスク値ΓX1,ΓZ1が施されて得られる値とr段目のラウンド関数の出力に対してマスク値ΓCL,ΓCRが施されて得られる値を排他的論理和した値が0となる確率qは、各ラウンドで定義されたqiを利用すると以下の(式6)に示すようになる。
【0059】
【数18】
Figure 0004337328
【0060】
また、線形特性確率LCPを、以下の(式7)に示すように定義する。
【0061】
【数19】
Figure 0004337328
【0062】
このように複数段のラウンド関数によって構成される暗号化関数全体に対してマスク値の対応を具体的に表したものが線形近似とよばれ、線形特性確率は安全性の評価指標として利用される。
【0063】
しかし、前述の差分特性確率と同様、暗号化ブロックのビットサイズが増大すると複数のラウンド間の接続関係を考慮して最大の線形特性確率をもつ線形近似を容易に求めることはできなくなる。
【0064】
[5.トランケイテッド(Truncated)線形パス]
次に本発明の実施例として、上述の線形パス手法の改善手法であるトランケイテッド(Truncated)マスクを適用した手法について説明する。
【0065】
トランケイテッド(Truncated)マスクとはマスク値の表現手法の一つで、マスク値をある決められたビット数で区切り、各マスク値がゼロか非ゼロかによって0または1を割り当てたデータである。本明細書においては、γ(スモールガンマ)の記号をつけて示すものとする。
【0066】
図7に、図6の線形近似をバイトごとに区切ったトランケイテッド(Truncated)形式で表した図を示す。なお、図6の線形近似とは具体的なマスク値が異なっていてもトランケイテッド(Truncated)表現したときに図7のように表現される線形近似は複数存在している。それらをまとめて代表的に表現したものがトランケイテッド(Truncated)線形パスである。
【0067】
トランケイテッド(Truncated)線形パスには具体的な値が存在しないのでラウンド関数に対する線形確率のような固有の確率は定義されない。しかし暗号化関数全体のS−boxのなかでトランケイテッド(Truncated)マスクとして1が入力されるS−boxの個数をカウントすることで、このトランケイテッド(Truncated)線形パスに含まれる線形パスのもつ差分特性確率の上界をもとめることができる。
【0068】
具体的には、トランケイテッド(Truncated)線形パスの中に含まれるトランケイテッド(Truncated)マスクとして1が入力されるS−boxの数をbとし、S−boxの最大線形確率をqsmaxとすると、線形特性確率の上界Uは、下式(式8)によって定義される。
【0069】
【数20】
U=qsmax b ...(式8)
【0070】
上記式に基づいて上界を知ることで安全性の評価を得ることができる。
【0071】
トランケイテッド(Truncated)マスクを用いるメリットとしては通常のマスク値と比べてデータ量が格段に縮約されており、現実的な時間で探索を行うアルゴリズムが構築できるという点である。なお、差分パスの場合と同様にSPN型のF関数をもつFeistel暗号の場合、数多くのトランケイテッド(Truncated)線形パスの中からもっとも高い上界をもつトランケイテッド(Truncated)線形パスをもとめる効率的なアルゴリズムが、前述の(論文1)に記載されている。
【0072】
[6.具体的な差分パス、線形近似の導出法]
次に、本発明の実施例であるトランケイテッド(Truncated)差分パスと、トランケイテッド(Truncated)線形パスからその上界に近い特性確率を持つ具体的な差分パスや線形近似を求めるアルゴリズム、すなわち、トランケイテッド(Truncated)差分パスあるいは、トランケイテッド(Truncated)線形パスに基づいて、暗号強度指標値を算出する処理アルゴリズムについて説明する。
【0073】
図8、図9のフローチャートを参照して、トランケイテッド(Truncated)差分パスに基づいて、暗号強度指標値を算出する処理アルゴリズムについて説明する。
【0074】
まず、ステップS101において、複数段のラウンド関数部を持つ暗号処理関数に対して、トランケイテッド(Truncated)差分パスTを入力する。ステップS102において、SPN型のF関数を持つ共通鍵ブロック暗号を左右の2つの部分に分割する。左部分をレフトチェイン(Left Chain)、右部分をライトチェイン(Right Chain)と呼ぶ。
【0075】
ライトチェイン(Right Chain)に含まれるデータは、右側半分の平文(PR)、各ラウンド関数のF関数内の非線形変換部(S−box)出力であるSiの半分の出力(S2i-1)、同様に、各ラウンド関数のF関数内の線形変換部出力であるYiの半分の出力Y2i-1と、次ラウンドへの入力値としてのXiの半分の入力値(X2i)である。同様に、レフトチェイン(Left Chain)に含まれるデータは、左側半分の平文(PL)、各ラウンド関数のF関数内の非線形変換部(S−box)出力であるSiの半分の出力(S2i)、同様に、各ラウンド関数のF関数内の線形変換部出力であるYiの半分の出力Y2iと、次ラウンドへの入力値としてのXiの半分の入力値(X2i-1)である。
【0076】
すなわち、ライトチェイン(Right Chain)に含まれるデータは、
PR,S2i-1,Y2i-1,X2i(1≦i≦r/2)、
レフトチェイン(Left Chain)に含まれるデータは、
PL,S2i,Y2i,X2i-1(1≦i≦r/2)である。
【0077】
ステップS103において、SPN型のF関数の性質に基づいて、ライトチェイン(Right Chain)の差分ΔY2i-1,ΔX2i(1≦i≦r/2)の各nビットデータ:ΔY2i-1[j],ΔX2i[j],(1≦i≦r/2,1≦j≦m)を、差分:ΔPR[j],ΔS2i-1[j],(1≦i≦r/2,1≦j≦m)を用いて以下の等式(式9)に示すように示す。なお、以下の等式の総数はmr個である。
【0078】
【数21】
Figure 0004337328
【0079】
ステップS104において、上記式に含まれるすべてのnビット差分:ΔPR[j],ΔS2i-1[j],ΔY2i-1[j],ΔX2i[j],(1≦i≦r/2,1≦j≦m)を変数とみなし、トランケイテッド(Truncated)差分パスにおいて、各変数に対応するトランケイテッド(Truncated)差分が0となっている変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られるmr個の式を斉次連立一次方程式として設定する。
【0080】
ステップS105において、連立一次方程式を以下の式(式10)に示すように係数行列Mと変数ベクトルνで表現する。
【0081】
【数22】
Mν=0.....(式10)
【0082】
ステップS106において、行列Mに対して行変形を行い変換行列(エセロンマトリックス:reduced row-echelon matrix)を求める。
なお、変換行列(reduced row-echelon matrix)は、以下の条件を満足する行列である。
(条件1)0のみからなる行(もしあるならば)は行列の最下部にある。
(条件2)各行を左から見てはじめの非ゼロの行の要素は1である(この1をリーディング1(leading1))。
(条件3)それぞれのリーディング1(leading1)はそれより上の行にあるリーディング1(leading1)1よりも右に存在する。
(条件4)リーディング1(leading1)の含まれる列はそのリーディング1(leading1)1以外の要素はすべて0である。
なお、任意の行列は行の有限回の基本変形により変換行列(reduced row-echelon matrix)に変換することが可能である。
【0083】
さらに、ステップS106では、得られた変換行列のランクをrank,行列の列数をcとし、(c−rank)個の自由変数とrank個の従属変数を取得する。
【0084】
次に、ステップS107において、自由変数の取りうる値によって得られる連立方程式の解の集合をSとし、ライトチェイン(Right Chain)に対する解の集合:Sを求める。
【0085】
さらに、ステップS108において、ステップS103〜S107の処理を、レフトチェイン(Left Chain)の差分ΔY2i,ΔX2i-1(1≦i≦r/2)について同様の処理を実行し、レフトチェイン(Left Chain)に対する解の集合S≡を取得する。
【0086】
ステップS109において、ライトチェイン(Right Chain)に対する解の集合:Sとレフトチェイン(Left Chain)に対する解の集合:S’すべての解の候補の組み合わせに対し、以下のように差分特性確率:DCPを計算し、最も高い値を持つ差分特性確率:DCPを、そのトランケイテッド(Truncated)差分パスTに対する最大差分特性確率MDCPTとする。
【0087】
なお、トランケイテッド(Truncated)差分が1であるS−boxの個数をa個とし、それぞれS−boxの入出力をΔxi,Δyi(i≦i≦a)とする。差分特性確率DCPは、下式(式11)によって定義される。
【0088】
【数23】
Figure 0004337328
【0089】
ステップS110において、最大差分特性確率MDCPTの値を暗号強度指標値とする。最大差分特性確率MDCPTの値が大きいほど、暗号解読が容易であり、暗号強度は弱く、最大差分特性確率MDCPTの値が小さいほど暗号解読が困難であり、暗号強度が高いと判定することができる。
【0090】
図8、図9を参照して説明した処理は、トランケイテッド(Truncated)差分パスに基づく解析処理である。これに対して、トランケイテッド(Truncated)線形パスからその上界に近い特性確率を持つ具体的な線形近似を求める場合は、入力されるトランケイテッド(Truncated)線形パスT’を用いて、そのパスにおける最大線形特性確率MLCPTを、上記のアルゴリズムと同様の処理に従って計算することができる。
【0091】
なお、その際、線形変換層におけるマスク値変換を行う行列を用い、マスク値ΓPR[j],ΓS2i-1[j],ΓT2i[j],ΓZ2i-1[j],(1≦i≦r/2,1≦j≦m)の間に成り立つ一次式を構成し、S−boxの差分確率DPs(Δxi,Δyi)をS−boxの線形確率LPs(Γxi,Γyi)に置き換えて処理を実行する。
【0092】
共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理手段に対してマスク処理データを入力して、トランケイテッド(Truncated)線形パスからその上界に近い特性確率を持つ具体的な線形近似を求める場合の処理について説明する。
【0093】
線形パス解析ステップは、下記の処理ステップによって構成される。
(S01)マスク処理データがゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)マスク値を入力するトランケイテッド(Truncated)線形パス入力ステップ、
(S02)暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割する分割ステップ、
【0094】
(S03)ライトチェインに含まれるデータ、すなわち、右側半分の入力平文(PR)、各ラウンド関数のF関数内の非線形変換部(S−box)出力であるSiの半分の出力(S2i-1)、各ラウンド関数のF関数内の非線形変換部(S−box)入力であるTiの半分の入力(T2i)、次ラウンドへの入力値としてのZiの半分の入力値(Z2i-1)について、入力平文を2mnビットとし、ラウンド数rとしたとき、ライトチェイン(Right Chain)のマスク値ΓZ2i-1,ΓS2i-1(1≦i≦r/2)の各nビットデータ:ΓZ2i-1[j],ΓS2i-1[j],(1≦i≦r/2,1≦j≦m)を、マスク値:ΓPR[j],ΓT2i[j],(1≦i≦r/2,1≦j≦m)を用いた等式としてmn個の等式を設定する等式設定ステップ、
【0095】
(S04)等式設定ステップにおいて設定された等式に含まれるすべてのnビット差分:ΓPR[j],ΓS2i-1[j],ΓT2i[j],ΓZ2i-1[j],(1≦i≦r/2,1≦j≦m)を変数とみなし、トランケイテッド(Truncated)線形パスにおいて、各変数に対応するトランケイテッド(Truncated)マスク値が0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られるmr個の式を斉次連立一次方程式として設定する連立一次方程式設定ステップ、
【0096】
(S05)連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列Mと変数ベクトルνで、Mν=0と置きかえる行列置き換えステップ、
(S06)行列Mに対して行変形を行い変換行列(エセロンマトリックス:reduced row-echelon matrix)を求める変換行列算出ステップ、
【0097】
(S07)変換行列算出ステップにおいて得られた変換行列のランク(rank)、変換行列の列数(c)としたとき、(c−rank)個の自由変数とrank個の従属変数を取得する変数取得ステップ、
(S08)自由変数の取りうる値によって得られる連立方程式の解の集合をSとし、ライトチェイン(Right Chain)に対する解の集合:Sを求める解集合算出ステップ、
(S09)等式設定ステップ乃至解集合算出ステップをレフトチェイン(Left Chain)のマスク値ΓZ2i,ΓS2i(1≦i≦r/2)データに対して実行し、レフトチェイン(Left Chain)に対する解の集合:S’を求める第2の解集合算出ステップ、
【0098】
(S10)ライトチェイン(Right Chain)に対する解の集合:Sとレフトチェイン(Left Chain)に対する解の集合:S’すべての解の候補の組み合わせに対して線形特性確率:LCPを計算し、最も高い値を持つ線形特性確率:LCPを、暗号強度指標値としてのトランケイテッド(Truncated)線形パスTに対する最大線形特性確率MLCPTとして算出する最大線形特性確率算出ステップである。
【0099】
なお、最大線形特性確率算出ステップにおいて、トランケイテッド(Truncated)差分=1が入力されるS−boxの個数をa個とし、それぞれS−boxの入出力をΓxi,Γyi(i≦i≦a)としたとき、前記差分特性確率LCPを、下式(式12)によって定義される。
【0100】
【数24】
Figure 0004337328
【0101】
ただし、LPs(ΓA,ΓB)は、下式(式13)によって定義される確率とする。
【0102】
【数25】
Figure 0004337328
【0103】
処理結果として取得される最大線形特性確率MLCPTを、暗号強度指標値とする。最大差分特性確率MLCPTの値が大きいほど、暗号解読が容易であり、暗号強度は弱く、最大差分特性確率MLCPTの値が小さいほど暗号解読が困難であり、暗号強度が高いと判定することができる。
【0104】
[システム構成例]
上述の実施例で述べた暗号強度指標算出処理に伴う一連の処理は、ハードウェア、ソフトウェアの組合わせにより行うことができる。即ち、汎用のコンピュータや、マイクロコンピュータにプログラムを実行させることにより行う構成とすることが可能である。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、例えば汎用のコンピュータや1チップのマイクロコンピュータ等にインストールされる。図10は、上述した一連の処理を実行するプログラムをインストール子実行可能なコンピュータの一実施形態としての構成例を示している。
【0105】
図10に示すシステム構成例は1つの例であり、システムは、ここに示すべての機能を必ずしも備えることが要求されるものではない。図10に示すCPU(Central processing Unit)501は、上述したアルゴリズムに従ったプログラムやその他の各種アプリケーションプログラム、OS(Operating System)を実行するプロセッサである。ROM(Read-Only-Memory)502は、CPU501が実行するプログラム、あるいは演算パラメータとしての固定データを格納する。RAM(Random Access Memory)503は、CPU501の処理において実行されるプログラム、およびプログラム処理において適宜変化するパラメータの格納エリア、ワーク領域として使用される。
【0106】
HDD504はハードディスクの制御を実行し、ハードディスクに対する各種データ、プログラムの格納処理および読み出し処理を実行する。暗号処理手段505は、データの暗号処理、復号処理等を実行する。なお、ここでは、暗号処理手段を個別モジュールとした例を示したが、このような独立した暗号処理モジュールを設けず、例えば暗号処理プログラムをROM502に格納し、CPU501がROM格納プログラムを読み出して実行するように構成してもよい。メモリ(セキュアモジュール)506は例えば耐タンパ構造を持つメモリとして構成され、暗号処理に必要な鍵データ等の格納領域として使用可能である。なお、これらのデータは、他のメモリ領域、記憶媒体に格納することも可能である。
【0107】
バス521はPCI(Peripheral Component Internet/Interface)バス等により構成され、各モジュール、入出力インタフェース122を介した各入手力装置とのデータ転送を可能にしている。
【0108】
入力部511は、例えばキーボード、ポインティングデバイス、あるいはその他のデータ入力手段によって構成され、CPU501に各種のデータあるいはコマンドを入力する。出力部512は、例えばCRT、液晶ディスプレイ等であり、各種情報をテキストまたはイメージ等により表示する。
【0109】
通信部513はシステムの接続したエンティテイ、例えば暗号データの通信エンティテイとの通信処理を実行し、CPU501の制御の下に、各記憶部から供給されたデータ、あるいはCPU501によって処理されたデータ、暗号化されたデータ等を送信したり、他エンティテイからのデータを受信する処理を実行する。
【0110】
ドライブ514は、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体515の記録再生を実行するドライブであり、各リムーバブル記録媒体515からのプログラムまたはデータ再生、リムーバブル記録媒体515に対するプログラムまたはデータ格納を実行する。
【0111】
各記憶媒体に記録されたプログラムまたはデータを読み出してCPU501において実行または処理を行なう場合は、読み出したプログラム、データはインタフェース522、バス521を介して例えば接続されているRAM503に供給される。
【0112】
先にフロー図を参照した処理を実行するためのプログラムは例えばROM502に格納されてCPU501によって処理されるか、あるいはハードディスクに格納され、ハードディスクから読み出されてCPU501により実行される。
【0113】
図10に示すシステムを暗号強度評価処理装置として適用する場合には、CPU501が差分パス解析手段、あるいは線形パス解析手段として機能する。例えばCPU501が差分パス解析手段として、データ解析処理を実行する場合のシステムにおける処理について説明する。
【0114】
図10に示すシステムにおいて、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部を暗号処理手段505に設定し、その暗号処理部の強度解析を行なう場合を想定する。
【0115】
CPU501の制御の下、差分データの差分値がゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)差分パスを暗号処理手段505に入力する。次に、差分パス解析手段としてのCPU501の制御の下に、暗号処理手段505におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割する分割し、ライトチェインに含まれるデータ、すなわち、右側半分の入力平文(PR)、各ラウンド関数のF関数内の非線形変換部(S−box)出力であるSiの半分の出力(S2i-1)、各ラウンド関数のF関数内の線形変換部出力であるYiの半分の出力Y2i-1、次ラウンドへの入力値としてのXiの半分の入力値(X2i)について、入力平文を2mnビットとし、ラウンド数rとしたとき、ライトチェイン(Right Chain)の差分ΔY2i-1,ΔX2i(1≦i≦r/2)の各nビットデータ:ΔY2i-1[j],X2i[j],(1≦i≦r/2,1≦j≦m)を、差分:ΔPR[j],ΔS2i-1[j],(1≦i≦r/2,1≦j≦m)を用いた等式としてmn個の等式を設定し、設定等式に含まれるすべてのnビット差分:ΔPR[j],ΔS2i-1[j],ΔY2i-1[j],X2i[j],(1≦i≦r/2,1≦j≦m)を変数とみなし、トランケイテッド(Truncated)差分パスにおいて、各変数に対応するトランケイテッド(Truncated)差分が0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られるmr個の式を斉次連立一次方程式として設定し、連立一次方程式設定処理において設定した連立一次方程式を係数行列Mと変数ベクトルνで、Mν=0と置きかえる行列置き換えを実行し、行列Mに対して行変形を行い変換行列(エセロンマトリックス:reduced row-echelon matrix)を求め、変換行列のランク(rank)、変換行列の列数(c)としたとき、(c−rank)個の自由変数とrank個の従属変数を取得し、自由変数の取りうる値によって得られる連立方程式の解の集合をSとし、ライトチェイン(Right Chain)に対する解の集合:Sを求める。
【0116】
また、上述の等式設定乃至解集合算出処理をレフトチェイン(Left Chain)の差分ΔY2i,ΔX2i-1(1≦i≦r/2)データに対して実行し、レフトチェイン(Left Chain)に対する解の集合:S’を求め、ライトチェイン(Right Chain)に対する解の集合:Sとレフトチェイン(Left Chain)に対する解の集合:S’すべての解の候補の組み合わせに対して差分特性確率:DCPを計算し、最も高い値を持つ差分特性確率:DCPを、暗号強度指標値としてのトランケイテッド(Truncated)差分パスTに対する最大差分特性確率MDCPTとして算出する処理を実行する。
【0117】
また、CPU501が線形パス解析手段として、データ解析処理を実行する場合には、図10に示すシステムにおいて、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部を暗号処理手段505に設定し、マスク処理データがゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)マスク値を入力する。
【0118】
次に、前記暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割し、ライトチェインに含まれるデータ、すなわち、右側半分の入力平文(PR)、各ラウンド関数のF関数内の非線形変換部(S−box)出力であるSiの半分の出力(S2i-1)、各ラウンド関数のF関数内の非線形変換部(S−box)入力であるTiの半分の入力(T2i)、次ラウンドへの入力値としてのZiの半分の入力値(Z2i-1)について、入力平文を2mnビットとし、ラウンド数rとしたとき、ライトチェイン(Right Chain)のマスク値ΓZ2i-1,ΓS2i-1(1≦i≦r/2)の各nビットデータ:ΓZ2i-1[j],ΓS2i-1[j],(1≦i≦r/2,1≦j≦m)を、マスク値:ΓPR[j],ΓT2i[j],(1≦i≦r/2,1≦j≦m)を用いた等式としてmn個の等式を設定する。
【0119】
次に、等式設定処理において設定された等式に含まれるすべてのnビット差分:ΓPR[j],ΓS2i-1[j],ΓT2i[j],ΓZ2i-1[j],(1≦i≦r/2,1≦j≦m)を変数とみなし、トランケイテッド(Truncated)線形パスにおいて、各変数に対応するトランケイテッド(Truncated)マスク値が0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られるmr個の式を斉次連立一次方程式として設定する。
【0120】
さらに、連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列Mと変数ベクトルνで、Mν=0と置きかえ、行列Mに対して行変形を行い変換行列(エセロンマトリックス:reduced row-echelon matrix)を求め、得られた変換行列のランク(rank)、変換行列の列数(c)としたとき、(c−rank)個の自由変数とrank個の従属変数を取得する。さらに、自由変数の取りうる値によって得られる連立方程式の解の集合をSとし、ライトチェイン(Right Chain)に対する解の集合:Sを求める。
【0121】
さらに、等式設定処理乃至解集合算出処理をレフトチェイン(Left Chain)のマスク値ΓZ2i,ΓS2i(1≦i≦r/2)データに対して実行し、レフトチェイン(Left Chain)に対する解の集合:S’を求める。
【0122】
さらに、ライトチェイン(Right Chain)に対する解の集合:Sとレフトチェイン(Left Chain)に対する解の集合:S’すべての解の候補の組み合わせに対して線形特性確率:LCPを計算し、最も高い値を持つ線形特性確率:LCPを、暗号強度指標値としてのトランケイテッド(Truncated)線形パスTに対する最大線形特性確率MLCPTとして算出する処理を実行する。
【0123】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。すなわち、例示という形態で本発明を開示してきたのであり、限定的に解釈されるべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【0124】
なお、明細書中において説明した一連の処理はハードウェア、またはソフトウェア、あるいは両者の複合構成によって実行することが可能である。ソフトウェアによる処理を実行する場合は、処理シーケンスを記録したプログラムを、専用のハードウェアに組み込まれたコンピュータ内のメモリにインストールして実行させるか、あるいは、各種処理が実行可能な汎用コンピュータにプログラムをインストールして実行させることが可能である。
【0125】
例えば、プログラムは記憶媒体としてのハードディスクやROM(Read Only Memory)に予め記録しておくことができる。あるいは、プログラムはフレキシブルディスク、CD−ROM(Compact Disc Read Only Memory),MO(Magneto optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【0126】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、コンピュータに無線転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスク等の記憶媒体にインストールすることができる。
【0127】
なお、明細書に記載された各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0128】
【発明の効果】
以上、説明したように、本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理関数の暗号強度解析において、上界により近い確率のパスを算出することが可能となる。
【0129】
また、本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理手段に対して差分データ入力に基づく差分パス解析において、差分データの差分値がゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)差分パスを入力し、暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割し、各チェインに含まれるデータに基づく差分解析を実行して差分特性確率:DCPを計算し、最も高い値を持つ差分特性確率:DCPを、暗号強度指標値としてのトランケイテッド(Truncated)差分パスTに対する最大差分特性確率MDCPTとして算出することが可能となる。
【0130】
さらに、本発明の構成によれば、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理手段に対して、マスク処理データがゼロであるか非ゼロであるかに応じて0または1を割り当てたトランケイテッド(Truncated)マスク値を入力し、暗号処理部におけるデータを左右の2つの部分、レフトチェイン(Left Chain)と、ライトチェイン(Right Chain)に分割し、各チェインに含まれるデータに基づく解析を実行して線形特性確率:LCPを計算し、最も高い値を持つ線形特性確率:LCPを、暗号強度指標値としてのトランケイテッド(Truncated)線形パスTに対する最大線形特性確率MLCPTとして算出することが可能となる。
【図面の簡単な説明】
【図1】Feistel構造と呼ばれる代表的な共通鍵ブロック暗号の構造について説明する図である。
【図2】各ラウンド関数に設定されるF関数としてのSPN型の構成を説明する図である。
【図3】線形変換部の具体的線形変換処理例を示す図である。
【図4】r段のラウンド関数からなる暗号化関数における差分の伝播を表現した差分パスの例を示す図である。
【図5】図4の差分パスをバイトごとに区切り、トランケイテッド(Truncated)形式で表した例を示す図である。
【図6】複数段のラウンド関数によって構成される暗号化関数に対する線形近似による処理例を説明する図である。
【図7】図6の線形近似をバイトごとに区切ったトランケイテッド(Truncated)形式で表した図をである。
【図8】トランケイテッド(Truncated)差分パスに基づいて、暗号強度指標値を算出する処理アルゴリズムを示すフロー図である。
【図9】トランケイテッド(Truncated)差分パスに基づいて、暗号強度指標値を算出する処理アルゴリズムを示すフロー図である。
【図10】暗号強度指標算出に伴う一連の処理を実行するシステム構成例を示す図である。
【符号の説明】
121 鍵加算部
122 非線形変換部
123 線形変換部
210 ラウンド関数
211 F関数
220 ラウンド関数
221 F関数
410 ラウンド関数
411 F関数
420 ラウンド関数
421 F関数
501 CPU
502 ROM
503 RAM
504 HDD
505 暗号処理手段
506 メモリ
511 入力部
512 出力部
513 通信部
514 リムーバブル記憶媒体
521 バス
522 入出力インタフェース

Claims (7)

  1. 暗号強度評価処理装置において実行する暗号処理アルゴリズムの暗号強度指標算出方法であり、
    データ処理機能を有する前記暗号強度評価処理装置の解析手段が、共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部に対して暗号強度解析処理を施す解析ステップを有し、
    前記解析ステップは、
    前記暗号処理部に対するトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パスステップと、
    前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割ステップと、
    前記トランケイテッド(Truncated)パスにおいて、前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定ステップと、
    前記連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換えステップと、
    前記行列置き換えステップによって得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2のデータに対する解の集合を求める解集合算出ステップと、
    前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出ステップと、
    を有することを特徴とする暗号強度指標算出方法。
  2. 前記トランケイテッド(Truncated)パスステップは、トランケイテッド(Truncated)差分パスステップまたは、トランケイテッド(Truncated)線形パスステップの少なくとも1つを有することを特徴とする請求項1に記載の暗号強度指標算出方法。
  3. 前記トランケイテッド(Truncated)差分パスステップは、前記暗号処理部から抜き出したデータの差分値がゼロであるか非ゼロであるかに応じて0または1を割り当てることを特徴とする請求項2に記載の暗号強度指標算出方法。
  4. 前記トランケイテッド(Truncated)線形パスステップは、前記暗号処理部から抜き出したデータにマスク処理を施すことによりマスク値を生成し、各マスク値がゼロであるか非ゼロであるかに応じて0または1を割り当てることを特徴とする請求項2に記載の暗号強度指標算出方法。
  5. 前記最大特性確立算出ステップは、最大差分特性確率算出ステップまたは、最大線形特性確率算出ステップの少なくとも1つを有することを特徴とする請求項1に記載の暗号強度指標算出方法。
  6. 暗号処理アルゴリズムの暗号強度評価処理装置であり、
    共通鍵ブロック暗号処理アルゴリズムを実行し、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理に対して暗号強度解析処理を施す解析手段であり、データ処理機能を有する解析手段を有し、
    前記解析手段は、
    前記暗号処理部に対してトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パス処理と、
    前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割処理と、
    前記トランケイテッド(Truncated)パスにおいて、
    前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定処理と、
    前記連立一次方程式設定処理において設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換え処理と、
    前記行列置き換え処理において得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2データに対する解の集合を求める解集合算出処理と、
    前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出処理と、
    を有することを特徴とする暗号強度評価処理装置。
  7. 暗号強度評価処理装置において暗号処理アルゴリズムの暗号強度指標算出処理を実行させるコンピュータ・プログラムであり、
    暗号強度評価処理装置のプログラム実行部である制御部において、共通鍵ブロック暗号処理アルゴリズムを実行させて、SPN型のF関数を含む複数段のラウンド関数部を持つFeistel構造からなる暗号処理部に対して暗号強度解析処理を施させる解析ステップを有し、
    前記解析ステップは、
    前記暗号処理部に対するトランケイテッド(Truncated)パスデータを出力するトランケイテッド(Truncated)パスステップと、
    前記暗号処理部におけるトランケイテッド(Truncated)パスデータを第1のデータと、第2のデータに分割する分割ステップと、
    前記トランケイテッド(Truncated)パスにおいて、前記第1のデータ及び前記第2のデータの各変数に対応するトランケイテッド(Truncated)パスデータが0となる変数を等式から削除し、変数消去後、等式の右辺をすべて左辺に移項して得られる式を斉次連立一次方程式として設定する連立一次方程式設定ステップと、
    前記連立一次方程式設定ステップにおいて設定した連立一次方程式を係数行列と変数ベクトルに基づいて、置きかえる行列置き換えステップと、
    前記行列置き換えステップによって得られる連立方程式を用いて、前記第1のデータに対する解の集合及び第2のデータに対する解の集合を求める解集合算出ステップと、
    前記第1のデータに対する解の集合と前記第2のデータに対する解の集合のすべての解の候補の組み合わせに対して特性確率を計算し、最大値を持つ特性確率を、暗号強度指標値としての前記トランケイテッド(Truncated)パスに対する最大特性確率として算出する最大特性確率算出ステップと、
    を含むことを特徴とするコンピュータ・プログラム。
JP2002319206A 2002-11-01 2002-11-01 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム Expired - Fee Related JP4337328B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002319206A JP4337328B2 (ja) 2002-11-01 2002-11-01 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002319206A JP4337328B2 (ja) 2002-11-01 2002-11-01 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム

Publications (3)

Publication Number Publication Date
JP2004153733A JP2004153733A (ja) 2004-05-27
JP2004153733A5 JP2004153733A5 (ja) 2005-12-22
JP4337328B2 true JP4337328B2 (ja) 2009-09-30

Family

ID=32462112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002319206A Expired - Fee Related JP4337328B2 (ja) 2002-11-01 2002-11-01 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム

Country Status (1)

Country Link
JP (1) JP4337328B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9597419B2 (en) 2004-10-25 2017-03-21 Boston Scientific Limited Loadable polymeric particles for enhanced imaging in clinical applications and methods of preparing and using the same
US10973770B2 (en) 2004-10-25 2021-04-13 Varian Medical Systems, Inc. Color-coded and sized loadable polymeric particles for therapeutic and/or diagnostic applications and methods of preparing and using the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100779076B1 (ko) 2005-12-09 2007-11-27 한국전자통신연구원 아리아 암/복호화 장치, 그 방법 및 이를 위한 초기 키생성 방법
JP4891669B2 (ja) * 2006-06-28 2012-03-07 株式会社エヌ・ティ・ティ・ドコモ 暗号強度評価装置及び暗号強度評価方法
EP2808859B1 (en) * 2012-01-23 2016-06-29 NEC Solution Innovators, Ltd. Encryption evaluation device, encryption evaluation method, and encryption evaluation program

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9597419B2 (en) 2004-10-25 2017-03-21 Boston Scientific Limited Loadable polymeric particles for enhanced imaging in clinical applications and methods of preparing and using the same
US10973770B2 (en) 2004-10-25 2021-04-13 Varian Medical Systems, Inc. Color-coded and sized loadable polymeric particles for therapeutic and/or diagnostic applications and methods of preparing and using the same

Also Published As

Publication number Publication date
JP2004153733A (ja) 2004-05-27

Similar Documents

Publication Publication Date Title
EP2105860B1 (en) Method and apparatus for verifying integrity of redacted documents
JP4961909B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7984305B2 (en) Encryption processing apparatus and encryption processing method for setting a mixed encryption processing sequence
US6157720A (en) Method and apparatus for encrypting data
RU2449482C2 (ru) Устройство обработки шифрования, способ обработки шифрования и компьютерная программа
JP5744377B2 (ja) 対称鍵データ暗号化の方法
US20100195822A1 (en) Program converter, encrypting device, and encrypting method
KR20070058370A (ko) 암호 처리 장치, 암호 처리 방법 및 컴퓨터 프로그램
US8600048B1 (en) Format-translating encryption systems
Naskar et al. An efficient block-level image encryption scheme based on multi-chaotic maps with DNA encoding
Norouzi et al. Breaking a novel image encryption scheme based on an improper fractional order chaotic system
EP2693681A1 (en) Encryption processing device, encryption processing method, and programme
JP2007199156A (ja) 暗号処理装置、暗号処理装置製造装置、および方法、並びにコンピュータ・プログラム
Khan et al. A novel statistical analysis of chaotic S-box in image encryption
CN108055121A (zh) 图像的加密方法与解密方法
Rasoolzadeh et al. Cryptanalysis of PRINCE with minimal data
JP4337328B2 (ja) 暗号強度指標算出方法、および暗号強度評価処理装置、並びにコンピュータ・プログラム
CN110299988B (zh) 轻量级分组密码算法抗攻击能力的检测方法及检测装置
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
Rohit et al. Cryptanalysis of reduced round SPEEDY
Kraleva et al. Cryptanalysis of strong physically unclonable functions
WO2013153628A1 (ja) 演算処理システムおよび演算結果認証方法
Fan et al. Differential cryptanalysis of full-round ANU-II ultra-lightweight block cipher
KR20030022484A (ko) 멀티미디어 데이터의 암호화 방법

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051031

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090317

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090514

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: 20090609

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090622

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

Free format text: PAYMENT UNTIL: 20120710

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees