説明

暗号評価装置、暗号評価方法及び暗号評価プログラム

【課題】線形解読法に対して利得の高い線形ふるいマスクを精度よく抽出する。
【解決手段】暗号評価装置100は、予め入力された入力マスク210、線形ふるいマスク230および出力マスク220に対応する非線形変換処理の対応表250を参照し、線形解読法による線形近似式の成立確率(線形確率p)と、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)をそれぞれ計算し、前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値310を計算する。Gain値は、線形ふるいマスクの抽出のほか、ブロック暗号の線形ふるい法への安全性の判断に使用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価装置、暗号評価方法及び暗号評価プログラムに関する。
【背景技術】
【0002】
ブロック暗号の解析手法の一つとして、線形ふるい法が知られている。線形ふるい法は、ブロック暗号の代表的な解析手法である線形解読法(非特許文献1参照)の効率化手法と位置付けられる。
【0003】
線形ふるい法では、入力データと線形ふるいマスクの線形和の値を用いて、入力データを分類(sieving)することによって、線形解読法で利用される線形近似式の成立確率を大きくすることができ、線形解読法と比較して鍵を求めるために必要なデータ量を削減できる手法となっている(非特許文献2参照)。
【0004】
はじめに、非特許文献1に記載の線形解読法の概要を説明する。線形解読法は平文と暗号文の間で線形近似式を構成し、その式の成立確率の偏りを利用することで鍵情報を求める方法である。以降、線形近似式の成立確率を線形確率と呼ぶ。線形解読法では、図16のような暗号装置400の平文P、暗号文C、鍵Kの関係を近似する。その時に得られる線形近似式はP・ΓP xor C・ΓC=K・ΓKとなる。
【0005】
上記近似式のΓPを入力マスク、ΓCを出力マスクとする。ΓPとΓCはそれぞれPとCのどのビットを線形近似式で利用するか定めたものである。P・ΓPは入力Pと入力マスクPの内積を表し、xorは排他的論理和を表す。線形近似式の線形確率が大きい場合、多くの平文/暗号文ペアを与え、線形近似式の左辺を計算すると、0になる回数と1になる回数はどちらかに偏る。0になることが多ければK・ΓKは0と推定し、1になることが多ければK・ΓKは1と推定する。このようにして、鍵情報を得ることができる。
【0006】
次に線形近似式の偏りを利用した1ラウンド消去法について説明する。図17に図16の暗号装置400の非線形関数410に対して、平文側に1ラウンド拡張した暗号装置500を示す。非線形関数520の線形近似式がX2・ΓX2 xor C・ΓC=K2・ΓK2 と与えられているとする。X2は1ラウンド目の非線形関数510の出力となるので、鍵K1を仮定することで計算できる。上記の線形近似式の線形確率が大きい時、前述したように、多くの平文、暗号文ペアを与え、線形近似式の左辺を計算すると、仮定した鍵が正しければ左辺の値は0もしくは1に偏る。よって線形近似式の偏りが最大になる時に仮定した鍵が正解の鍵と知ることができる。鍵を求めるために必要なデータ量は線形確率に依存し、確率が大きいほど少ないデータ量で解読できる。よって、入力マスクと出力マスクの選び方が重要となる。
【0007】
上記のような線形解読法により暗号強度評価法の改良を試みるものとして特許文献1が挙げられる。
【0008】
次に、線形ふるい法の概要を説明する。線形ふるい法は線形ふるい条件を満たす平文/暗号文組を利用することによって、ふるいを適用するラウンドの線形確率を大きくする手法である。平文Pは線形ふるいマスクΓγとの線形和によってP・Γγ=0あるいはP・Γγ=1の条件で分類される。分類された平文データのうち、線形近似式の成立確率が大きくなるグループのデータを利用することで、そのラウンドの線形確率を大きくすることができる。以降、ふるいを適用後の線形確率のことを線形ふるい確率と呼ぶ。線形ふるい確率は入力マスク、出力マスク、線形ふるいマスクの組み合わせによって決まり、線形ふるい確率が大きいほど少ないデータ量で解読できるとされている。
【0009】
次に、線形解読法と比較した時の線形ふるい法適用による必要データ量の削減効果について説明する。線形確率をp、同じ入力マスク、出力マスクを用いている状態での線形ふるい確率をpとした時、線形ふるいによる利得の度合いを示すGain値はそれぞれの確率の偏りを用いて次の式で定義されている。
【0010】
【数1】

【0011】
上式のG>1となる時、線形解読法に比べて、ふるい適用による必要データ量の削減が成功しているとされている。
【0012】
【特許文献1】特開平9−160489号公報
【非特許文献1】M.Matsui, “Linear Cryptanalysis Method for DES Cipher”,Advances in Cryptology EUROCRYPT’93,LNCS 765,pp.386−397,1994.
【非特許文献2】M.Takeda T.Hamade K.Hisamatsu and T.Kaneko ,”Linear Cryptanalysis by Linear Sieve Method”,IEICE Transactions on Fundamentals of Electronics,Communications and Computer Science,E81−A(1),pp.82−87,1998
【発明の開示】
【発明が解決しようとする課題】
【0013】
非特許文献2では、非特許文献1のData Encryption Standard(DES)に対する線形解読法の最良近似のパスに対してふるいを適用することによりさらに線形確率を大きくする手法として提案している。しかしながら、非特許文献2の方法では、必要データ量を削減できない(線形解読法と比較して利得の少ない)線形ふるいマスクを、線形解読法と比較して利得の高いマスクとして抽出してしまい、ひいては暗号自体の評価も誤ってしまうという問題点がある。
【0014】
その理由を以下に説明する。第1の理由は、線形鍵とふるい鍵の独立性を考慮していない点である。
【0015】
線形鍵とふるい鍵の独立性について説明する。図9にふるいを適用するラウンドを2ラウンド目にし、平文側に1ラウンド拡張した場合の暗号装置600を示す。図9において、線形ふるい条件がX2・Γγ2=0、非線形関数620の線形近似式がX2・ΓX2 xor C・ΓC=K2・ΓK2と与えられているとする。この時の線形近似式の成立確率を求める際、2ラウンド目の入力データX2は1ラウンド目の非線形関数610の出力となり、X2を求めるには1ラウンド目の鍵を仮定しなければならない。その際に仮定する鍵が、入力マスクΓX2に関連する線形鍵K1Lと、線形ふるいマスクΓγ2に関連するふるい鍵K1Sとなる。鍵の独立性とは、K1LとK1Sが異なる鍵ビットの時を独立、K1LとK1Sの一部もしくはすべての鍵ビットが同じ時を非独立と考える。
【0016】
上記は2ラウンド目にふるいを適用した場合であり、例えば3ラウンド目に適用しても1ラウンド目、2ラウンド目で仮定する鍵の独立性を同様に考える。
【0017】
第2の理由は、Gain値を求める式に誤りがある点である。前記したとおり、線形ふるい適用による効果の度合いはGain値によって決まるが、非特許文献2においてGain値を求める際、線形ふるい確率の偏りを、[数1]のとおりp−0.5としている。
【0018】
鍵の仮定が影響しないように、最初のラウンドまたは最終ラウンドにふるいを適用する場合はp−0.5で正しいが、図9のように最初のラウンドまたは最終ラウンド以外のラウンドにふるいを適用し、鍵の仮定が影響するような場合は、p−0.5にはならない。その原因は、上記で述べた鍵の独立性によって、鍵の仮定が誤っている時の線形近似式が持つ偏りが変わることが挙げられる。よって非特許文献2のGain値では、線形ふるいの効果を正確に表したものとなっていない。
【0019】
以上のように、非特許文献2の方法では、線形解読法と比較して解読に必要データ量を削減できていないマスク組を効果あり(G>1)と判断してしまう。本発明は、上記した事情に鑑みてなされたものであって、線形鍵とふるい鍵の独立性を考慮し、Gain値を正確に求める式を用いることにより、線形解読法より解読するために必要なデータ量を削減できる線形ふるいマスクを正確に探索する装置(方法)及びこのようなマスクの存否を暗号の評価に用いる装置(方法)を提供することを目的とする。
【課題を解決するための手段】
【0020】
本発明の第1の視点によれば、線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価装置であって、入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を記憶する対応表記憶手段と、前記非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算手段と、前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算手段と、前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算手段と、を備える暗号評価装置が提供される。
【0021】
本発明の第2の視点によれば、線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価プログラムであって、予め保存された入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算処理と、前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算処理と、前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算処理と、をコンピュータに実行させる暗号評価プログラムが提供される。
【0022】
本発明の第3の視点によれば、線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価方法であって、暗号評価装置が、予め入力された入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算ステップと、前記暗号評価装置が、前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算ステップと、前記暗号評価装置が、前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算ステップと、を含む暗号評価方法が提供される。
【発明の効果】
【0023】
本発明によれば、最初のラウンド又は最終ラウンド以外にふるいを適用し、鍵が入力マスク及び線形ふるいマスクに影響を与える場合において、線形ふるい適用による効果の度合いを正確に評価することが可能になる。また、このとき得られたGain値は、暗号アルゴリズムの線形ふるい法に対する安全性の評価に用いることもできる。その理由は、線形鍵とふるい鍵の独立性を考慮し、Gainの式を正しい式に変更したことにある。
【発明を実施するための最良の形態】
【0024】
[発明の概要]
始めに本発明の概要について説明する。
【0025】
図1は本発明の概要を説明するための図である。図1を参照すると、対応表記憶手段102と、線形確率計算手段104と、線形ふるい確率計算手段105と、Gain値計算手段106とを備えた暗号評価装置100が示されている。なお、上記構成は、暗号評価装置を構成するコンピュータに入力マスク、線形ふるいマスク及び出力マスクに対応する非線形変換処理の対応表を記憶させ、線形確率計算手段104、線形ふるい確率計算手段105及びGain値計算手段106として動作させることで、実現することができる。
【0026】
線形確率計算手段104は、線形解読法による線形近似式の成立確率(線形確率p)を計算する。線形ふるい確率計算手段105は、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する。Gain値計算手段106は、線形ふるい確率pの偏りをp−0.5とするのではなく、線形ふるい確率pの偏りをp−pとして、線形解読法に対する線形ふるいマスクの利得を示すGain値310を計算する。
【0027】
以上により、前述した最初のラウンドまたは最終ラウンド以外にふるいを適用し、鍵が入力マスク及び線形ふるいマスクに影響を与える場合における線形解読法に対する利得を示すGain値が適正に算出可能となる。
【0028】
[第1の実施形態]
本実施形態では、図9のように2ラウンド目にふるいを適用し、非線形関数620をDESのF関数とした場合について説明する。DESは64ビットブロック暗号で図10のようなFeistel構造を持つ。
【0029】
F関数は32ビット入出力となっており、図11のように拡大転置E、鍵Kiの排他的論理和、S−box、転置Pという構成になっている。
【0030】
図11の拡大転置Eは入力32ビットに対して、E関数を用いて出力48ビットを生成する拡大転置処理である。図12は、DESのF関数内の拡大転置Eの変換表の例である。数値は、ビットデータを右から0オリジンで数えた時の値である。図中の#がついている値は入力データ32ビットが拡大転置される位置(#0〜#47)を表している。#がついていない数値は入力データのビット位置を表している。
【0031】
例えば図12の左上の0は入力データのビット0つまり32ビット入力データの右端のビットがビット47つまり左端の位置に転置されることを意味する。
【0032】
鍵の排他的論理和は、拡大転置の出力48ビットに対して48ビットの拡大鍵を排他的論理和する。
【0033】
S−Boxは、入力6ビット、出力4ビットの非線形関数であり。S1からS8まで8つある。
【0034】
転置Pは、S−boxの出力のビット位置を転置する処理である。図13は、DESのF関数内の転置Pの変換表の例である。例えば、図13の左上の16は入力データのビット16がビット31の位置に転置されることを意味する。
【0035】
図2は本発明の第1の実施形態の暗号評価装置の構成を表したブロック図である。図2を参照すると、鍵の独立性の定義記憶手段101と、対応表記憶手段102と、鍵の独立性チェック手段103と、線形確率計算手段104と、線形ふるい確率計算手段105と、Gain値計算手段106とを備えた暗号評価装置100が示されている。なお、上記鍵の独立性の定義記憶手段101及び対応表記憶手段102は暗号評価装置を構成するコンピュータの記憶装置により実現することができる。また、鍵の独立性チェック手段103、線形確率計算手段104、線形ふるい確率計算手段105及びGain値計算手段106はコンピュータに下記の処理を実行させるプログラムにより実現することができる。
【0036】
第1の実施形態の暗号評価装置への入力は、入力マスク210、出力マスク220、線形ふるいマスク230、鍵の独立性の定義240、各マスクに対応する非線形変換処理の対応表250となる。
【0037】
ここで、各マスクについて説明する。入力マスク210、出力マスク220、線形ふるいマスク230は、F関数の入出力データ32ビットに対して、線形近似式又は線形ふるい条件で用いるビットのデータ位置を右から0オリジンで数えた場合で表し、例えば入力マスクΓX2=[12]、出力マスクΓC=[7,18,24,29]、線形ふるいマスクΓγ2=[16]のように表す。
【0038】
鍵の独立性の定義記憶手段101は、鍵の独立性の定義240を記憶する手段である。図14に鍵の独立性の定義240の例を示す。上記のマスクの例ではΓX2に対応する鍵の位置は[12]であるので、48ビットの鍵のうちの#29〜#24の6ビットとなり、Γγ2に対応する鍵の位置は[16]であるので、#35〜#30の6ビットとなる。
【0039】
対応表記憶手段102は、非線形変換処理の対応表250を記憶する手段である。図15に各マスクに対応する非線形変換処理の対応表250の例を示す。上記のマスクの組の例では、S5が対象になる。
【0040】
鍵の独立性チェック手段103は、図14の鍵の独立性の定義240を参照して鍵が独立であるか否かの判定結果320を出力する手段である。図9に示した線形鍵K1L及びふるい鍵K1Sで説明すると、両者が独立な時は“独立”を出力し、両者が非独立な時は“非独立”を出力する。例えば、入力マスク、線形ふるいマスクをそれぞれΓX2=[12]、Γγ2=[16]とする。線形鍵K1Lは、図14の鍵の独立性の定義240を参照すると、鍵48ビットの#29〜#24の6ビットとなる。ふるい鍵K1Sは、同様に図14を参照すると、鍵48ビットの#35〜#30の6ビットとなる。この時の独立性は、K1LとK1Sが異なる位置にあるので“独立”となる。
【0041】
また例えば、ΓX2=[12]、Γγ2=[12、16]と与えられている時には、線形鍵K1Lは#29〜#24の6ビットとなり、ふるい鍵K1Sは#24〜#35の12ビットとなる。この時の独立性は、K1LとK1Sが#24〜29の位置で部分的に重なるため、“非独立”となる。
【0042】
線形確率計算手段104は、図15に例示した非線形変換処理の対応表250を参照し、線形解読法による線形近似式の成立確率pを計算する手段である。例えば、入力マスク、出力マスクは、それぞれΓX2=[12]、ΓC=[7,18,24,29]であるものとする。線形解読法では、非線形変換処理の関係を線形近似するので、DESの場合、与えられたマスクがどのS−boxを近似するのか知らなければならない。そこで、図15の非線形変換処理の対応表250を参照すると、上記のマスクがS5の入出力間を近似するマスクだとわかる。
【0043】
また、図15の非線形変換処理の対応表250はマスクがS−boxのどのビット位置に相当しているかも定義しているため、ΓX2=[12]はS5の入力の右から2ビット目、ΓC=[7,18,24,29]はS5出力の4ビットであることがわかる。線形確率計算手段104は、入出力64通り全パターンに関して上記で挙げたビットの線形和をとり、線形確率pを調べる。
【0044】
線形確率pを式で表すと次式[数2]のようになる。なお、[数2]中のnは非線形変換処理の入力データのビットサイズを表し、DESの場合は6となる。なお、p<1−pとなるとき、線形確率は1−pとする。
【0045】
【数2】

【0046】
線形ふるい確率計算手段105は、図15に例示した非線形変換処理の対応表250を参照し、線形ふるい法による線形近似式の成立確率pを計算する手段である。例えば、線形ふるいマスクはΓγ2=[16]とする。図15の非線形変換処理の対応表250を参照すると、Γγ2はS5入力の右から6ビット目であることがわかる。
【0047】
線形ふるい確率計算手段105は、S5の入力データ64通りに対して、Γγ2の線形和を取る。線形和の値X2・Γγ2は必ず32通りずつに分類され、分類されたデータ毎に、線形ふるい確率計算手段105は、線形解読時と同様に線形近似式の成立確率pを調べる。
【0048】
線形ふるい確率pを式で表すと次式[数3]のようになる。
【0049】
【数3】

【0050】
上記[数3]の式は、ふるい条件が0の場合であり、ふるい条件が1の場合は、[数3]中の条件X2∈{X2・Γγ2=0}の部分をX2∈{X2・Γγ2=1}とした同様の式となる。このようにして求めたX2・Γγ2=0の時の確率と、X2・Γγ2=1の時の確率のうち、大きい方の値が線形ふるい確率pとなる。
【0051】
Gain値計算手段106は、上記線形確率計算手段104及び線形ふるい確率計算手段105の計算結果に基づいて、線形ふるいマスクの適用による効果の度合いを示すGain値310を計算する手段である。
【0052】
例えば、Gain値は、線形確率計算手段104と線形ふるい確率計算手段105で計算したp、pを用いて次式[数4]によって求めることができる。
【0053】
【数4】

【0054】
続いて、上記第1の実施形態の暗号評価装置の動作について説明する。図3は、本発明の第1の実施形態の暗号評価装置の動作を表したフローチャートである。
【0055】
最初に、入力マスク210、線形ふるいマスク230が鍵の独立性チェック手段103に入力される。鍵の独立性チェック手段103は、鍵の独立性の定義記憶手段101に記憶された定義を参照しながら、入力マスク210と線形ふるいマスク230に対応する鍵の独立性を判定する(ステップS1)。
【0056】
ステップS1で“独立”と判定した場合、暗号評価装置は、“独立”を出力する(ステップS2)。一方、“非独立” と判定した場合、暗号評価装置は、“非独立”を出力する(ステップS3)。
【0057】
次に線形確率計算手段104は、入力された入力マスク210、出力マスク220について、対応表記憶手段102を参照し、線形確率pを計算する(ステップS4)。
【0058】
次に線形ふるい確率計算手段105は、入力された入力マスク210、出力マスク220、線形ふるいマスク230について、対応表記憶手段102を参照し、線形ふるい確率pを計算する(ステップS5)。
【0059】
Gain値計算手段106は、ステップS4,ステップS5で求めた線形確率p及び線形ふるい確率pを用いて、Gain値を計算し(ステップS6)、Gain値を出力する(ステップS7)。
【0060】
このようにしてステップS2、ステップS3で得られた鍵の独立性判定結果(独立/非独立)320と、Gain値計算手段106のGain値310とを確認し、鍵の独立性判定結果(独立/非独立)320が“独立”かつGain値が1より大きい時、入力された入力マスク210、出力マスク220、線形ふるいマスク230が、線形解読法と比較して、解読に必要なデータ量を削減できているマスクの組と判断することができる。もちろん、上記判定処理を暗号評価装置を構成するコンピュータに実行させてもよい。
【0061】
以上説明したように、本実施形態では、線形鍵とふるい鍵の独立性を考慮し、Gainの式を正しい式に変更しているため、鍵が入力マスク及び線形ふるいマスクに影響を与える場合の線形ふるいマスクの効果を正確に評価することができる。また、鍵の独立性チェック手段を備えているため、線形鍵と独立でないふるい鍵を判別することが可能となる。
【0062】
[第2の実施の形態]
続いて、ふるい適用によって効果が出るマスク組の情報がわかるようにした本発明の第2の実施形態について第1の実施形態との相違点を中心に説明する。
【0063】
図4は、本発明の第2の実施形態の暗号評価装置の構成を表したブロック図である。図4を参照すると、第2の実施形態の暗号評価装置700は、第1の実施形態の暗号評価装置100にマスク生成手段701、ふるい適用効果判定手段702、マスク情報出力手段703を追加した構成となっている。
【0064】
マスク生成手段701は、入力マスク、出力マスク、線形ふるいマスクの組み合わせをマスクの生成個数260だけ、生成する手段である。
【0065】
ふるい適用効果判定手段702は、鍵の独立性チェック手段103の結果が独立でかつGain値計算手段106の計算結果であるGain値が1より大きい時に効果ありと判定し、それ以外は効果なしと判定する手段である。
【0066】
マスク情報出力手段703は、ふるい適用効果判定手段702が効果ありと判定した場合のみ、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクの内の一つ、または二つ以上の組み合わせを出力する手段である。
【0067】
暗号評価装置700には、鍵の独立性の定義240、各マスクに対応する非線形変換処理の対応表250に加えて、マスクの生成個数260が入力される。
【0068】
続いて、上記第2の実施形態の暗号評価装置の動作について説明する。図5は、本発明の第2の実施形態の暗号評価装置の動作を表したフローチャートである。また、第1の実施形態と同様の処理については説明を簡略する。
【0069】
最初にマスク生成手段701によって入力マスク、出力マスク、線形ふるいマスクの組の生成が行なわれる(ステップS8)。生成したマスクの評価が完了している場合、処理は終了となる。
【0070】
生成個数分のマスクを評価していない場合は、ステップS8で生成した入力マスク、線形ふるいマスクが鍵の独立性チェック手段103に入力され、入力マスクと線形ふるいマスクに対応する鍵の独立性が判定される(ステップS1)。判定した結果は以降の処理で用いられる。
【0071】
次に、線形確率計算手段104に、マスク生成手段701で生成した入力マスク、出力マスクが入力され、線形確率pの計算が行なわれる(ステップS4)。
【0072】
次に、線形ふるい確率計算手段105に、マスク生成手段701で生成した入力マスク、出力マスクが入力され、線形ふるい確率pの計算が行なわれる(ステップS5)。
【0073】
次に、Gain値計算手段106で、ステップS4,ステップS5で求めた各確率を用いて、Gain値の計算が行なわれる(ステップS6)。
【0074】
次に、ふるい適用効果判定手段702にステップS1で得られた鍵の独立性判定結果とステップS6で得られたGain値が入力される。ふるい適用効果判定手段702は、鍵が独立でかつGain値が1より大きい時は効果有りと判定し、それ以外のときは効果無しと判定する(ステップS9)。ステップS9の判定で効果無しと判定した場合、ステップS8に戻り同様の処理が繰り返される。
【0075】
ステップS9の判定で、ふるい適用の効果有りと判定した場合、マスク情報出力手段703が、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクを出力する(ステップS10)。ステップS10が終了すると、ステップS8に戻り同様の処理が繰り返される。
【0076】
以上のように、本実施形態によれば、予めマスクを用意するのではなく、指定した個数のマスクを生成し、ふるい適用によって効果が出るマスクあるいはその組み合わせの情報を得ることができる。
【0077】
[第3の実施の形態]
続いて、ふるい適用によって最も効果が出るマスク組の情報がわかるようにした本発明の第3の実施形態について第1、第2の実施形態との相違点を中心に説明する。
【0078】
図6は、本発明の第3の実施形態の暗号評価装置の構成を表したブロック図である。図6を参照すると、第3の実施形態の暗号評価装置800は、第1の実施形態の暗号評価装置100にマスク生成手段701、ふるい適用効果判定手段702、マスク情報記憶手段801、最良マスク選定手段802、最良マスク情報抽出手段803を追加した構成となっている。
【0079】
マスク情報記憶手段801は、ふるい適用効果判定手段702で効果ありと判定された場合のみ、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを記憶する手段である。
【0080】
最良マスク選定手段802は、マスク情報記憶手段801に記憶されたマスクあるいはマスクの組からGain値が最大になるマスクあるいはその組み合わせの情報を選定する手段である。
【0081】
最良マスク情報抽出手段803は、最良マスク選定手段802により選定されたGain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクの内の一つ、または二つ以上の組み合わせを抽出する。
【0082】
続いて、上記第3の実施形態の暗号評価装置の動作について説明する。図7は、本発明の第3の実施形態の暗号評価装置の動作を表したフローチャートである。また、第1、第2の実施形態と同様の処理については説明を簡略する。
【0083】
最初にマスク生成手段701によって入力マスク、出力マスク、線形ふるいマスクの組の生成が行なわれる(ステップS8)。生成したマスクの評価が完了している場合、ステップS12以降の最良マスクの制定処理が開始される。
【0084】
生成個数分のマスクの評価が完了していない場合は、第2の実施形態と同様に、ステップS1、S4、S5、S6、S9の処理が行われる。また、ステップS9の判定で効果無しと判定した場合は、ステップS8に戻り同様の処理が繰り返される。
【0085】
一方、ステップS9の判定で効果有りと判定された場合は、マスク情報記憶手段801にGain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクを記憶する(ステップS11)。ステップS11の終了後、ステップS8に戻り同様の処理が繰り返される。
【0086】
生成個数分のマスクの評価が完了した場合、最良マスク選定手段802は、マスク情報記憶手段801を参照し、Gain値が最大になる時のマスクあるいはその組み合わせの情報を選定する(ステップS12)。
【0087】
次に最良マスク情報抽出手段803が、ステップS12で選定したGain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクを出力する(ステップS13)。
【0088】
以上のように、本実施形態によれば、ふるい適用によって最も効果が出るマスクあるいはその組み合わせの情報を得ることができる。
【0089】
[第4の実施の形態]
続いて、線形ふるい法を考慮した上で暗号の安全性を把握できるようにした本発明の第4の実施形態について第1〜第3の実施形態との相違点を中心に説明する。
【0090】
図8は、本発明の第4の実施形態の暗号評価装置の構成を表したブロック図である。図8を参照すると、第4の実施形態の暗号評価装置900は、第1の実施形態の暗号評価装置100にマスク生成手段701、ふるい適用効果判定手段702、マスク情報記憶手段801、安全性判定手段901を追加した構成となっている。
【0091】
第4の実施形態の暗号評価装置900への入力データは、鍵の独立性の定義240、各マスクに対応する非線形変換処理の対応表250、マスクの生成個数260、入力データサイズ280となる。
【0092】
安全性判定手段901は、暗号の入力データサイズ280(nとする)が入力され、マスク情報記憶手段801に記憶されたマスク組に対して1組ごとに、線形ふるい確率pが2−nより大きくなるか小さくなるかを判定する。前記判定の結果、線形ふるい確率pが2−n以下の時は、暗号の線形ふるい法への耐性有り(OK)と判定し、線形ふるい確率pが2−nよりも大きい時は、暗号の線形ふるい法への耐性無し(NG)と判定する。安全性判定手段901に、判定した結果(OK/NG)に加えて、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクを出力させることができる。
【0093】
上記暗号評価装置によれば、ふるいを適用するふるい適用ラウンドが1ラウンド目またはRラウンド目以外の場合であるという条件下で、ブロック暗号の線形ふるい法に対する安全性を正確に評価できる。もちろん、上記判定結果をOK又はNGの2値ではなく、鍵の独立性やGain値に応じ、段階的な指標を出力するようにしてもよい。
【0094】
なお、ふるいを適用するふるい適用ラウンドが1ラウンド目またはRラウンド目の場合は、以下の変更を行なうことができる。
【0095】
ふるい適用ラウンドが1ラウンド目またはRラウンド目、つまり、暗号の一番外側のラウンドになると、線形鍵とふるい鍵の仮定がなくなるので、Gain値計算手段106の方法よりも非特許文献2のGain値計算方法の方が適切である(数1参照)。
【0096】
また、ふるい適用による効果の判定は、ふるい適用効果判定手段702とは異なり、鍵の独立性チェック手段103の結果は考慮せずに、Gain値が1より大きい時、効果ありと判定する。
【0097】
例えば、ふるい適用ラウンドを入力するふるい適用ラウンド入力手段、及び、Gain値計算手段106に代わって動作する非特許文献2の計算方法に相当する第2のGain値計算手段を設けることも好ましい変形実施形態である。このようにすれば、ふるい適用ラウンドが1ラウンド目またはRラウンド目であるか否かにより、Gain値計算手段106の動作と、ふるい適用効果判定手段702の動作を切り替えることができる。
【0098】
以上、本発明の好適な実施形態を説明したが、本発明は、上記した各実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
【0099】
上記した実施形態1〜4で説明した一連の処理はCPUとメモリを持つコンピュータで動作するプログラム(暗号評価プログラム)にて実行させることができる。また、ハードウェア、ソフトウェア、あるいは、両者の組み合わせにより構成することも可能であり、本発明が適用されるシステムの用途等により、適宜変更を加えることができる。
【0100】
また、本発明の暗号評価プログラムは、記録媒体としてのハードディスク、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、半導体メモリ等の形態で、配布し、任意のコンピュータにおいて実行できるようにすることができる。
【0101】
また、上記した暗号評価プログラムは、ネットワーク上のファイルサーバ等に格納しておき、適宜、ダウンロードして使用できるようにすることもできる。
【産業上の利用可能性】
【0102】
本発明によれば、ブロック暗号に対する安全性評価といった用途に適用できる。
【図面の簡単な説明】
【0103】
【図1】本発明の概要を説明するための図である。
【図2】本発明の第1の実施形態の暗号評価装置の構成を表したブロック図である。
【図3】本発明の第1の実施形態の暗号評価装置の動作を表したフローチャートである。
【図4】本発明の第2の実施形態の暗号評価装置の構成を表したブロック図である。
【図5】本発明の第2の実施形態の暗号評価装置の動作を表したフローチャートである。
【図6】本発明の第3の実施形態の暗号評価装置の構成を表したブロック図である。
【図7】本発明の第3の実施形態の暗号評価装置の動作を表したフローチャートである。
【図8】本発明の第4の実施形態の暗号評価装置の構成を表したブロック図である。
【図9】線形鍵とふるい鍵の独立性を説明するための図である。
【図10】ブロック暗号DESの全体構造を表した図である。
【図11】図10のブロック暗号DESのF関数の構造を表した図である。
【図12】図11のF関数内の拡大転置Eの変換表の例である。
【図13】図11のF関数内の転置Pの変換表の例である。
【図14】鍵の独立性の定義の一例(DES)である。
【図15】各マスクに対応する非線形変換処理の対応表の一例(DES)である。
【図16】線形解読法の線形近似式を説明するための図である。
【図17】線形解読法の1ラウンド消去法を説明するための図である。
【符号の説明】
【0104】
100、700、800、900 暗号評価装置
101 鍵の独立性の定義記憶手段
102 対応表記憶手段
103 鍵の独立性チェック手段
104 線形確率計算手段
105 線形ふるい確率計算手段
106 Gain値計算手段
210 入力マスク
220 出力マスク
230 線形ふるいマスク
240 鍵の独立性の定義
250 非線形変換処理の対応表
260 マスク生成個数
280 入力データサイズ
310、320、330、340 暗号判定装置の出力
400 暗号装置
410 非線形関数
500 暗号装置
510、520 非線形関数
600 暗号装置
610、620 非線形関数
701 マスク生成手段
702 ふるい適用効果判定手段
703 マスク情報出力手段
801 マスク情報記憶手段
802 最良マスク選定手段
803 最良マスク情報抽出手段
901 安全性判定手段

【特許請求の範囲】
【請求項1】
線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価装置であって、
入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を記憶する対応表記憶手段と、
前記非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算手段と、
前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算手段と、
前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算手段と、
を備えることを特徴とする暗号評価装置。
【請求項2】
更に、
入力マスクおよび線形ふるいマスクに関連する鍵の位置の定義を記憶する鍵の独立性の定義記憶手段と、
前記鍵の独立性の定義を参照して前記入力マスクに関連する鍵(線形鍵)と線形ふるいマスクに関連する鍵(ふるい鍵)との独立性を調べる鍵の独立性チェック手段と、
を備えることを特徴とする請求項1に記載の暗号評価装置。
【請求項3】
更に、入力マスク、出力マスク、線形ふるいマスクの組み合わせを一つ以上生成するマスク生成手段を備える請求項1又は2記載の暗号評価装置。
【請求項4】
更に、前記鍵の独立性チェック手段が独立性ありと判定し、かつ、Gain値計算手段が1より大きいGain値を出力した際に、線形ふるいマスクの効果ありと判定し、それ以外は効果なしと判定するふるい適用効果判定手段を備える請求項2又は3に記載の暗号評価装置。
【請求項5】
更に、前記ふるい適用効果判定手段が線形ふるいマスクの効果ありと判定した場合に、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを出力するマスク情報出力手段を備える請求項4に記載の暗号評価装置。
【請求項6】
更に、前記ふるい適用効果判定手段が線形ふるいマスクの効果ありと判定した場合に、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを記憶するマスク記憶手段と、
前記マスク記憶手段からGain値が最大になるデータを選定する最良マスク選定手段と、
前記選定したデータを抽出する最良マスク情報抽出手段と、
を備える請求項4に記載の暗号評価装置。
【請求項7】
更に、線形ふるいマスクを適用するラウンドを入力するふるい適用ラウンド入力手段と、
線形ふるい確率pの偏りをp−0.5として線形ふるいマスクの適用による効果の度合いを示すGain値を計算する第2のGain値計算手段と、を備え、
前記線形ふるいマスクを適用するラウンドに応じて、前記Gain値計算手段及び鍵の独立性チェック手段に代えて、線形ふるい確率pの偏りをp−0.5とした第2のGain値計算手段を動作させる請求項1乃至6いずれか一に記載の暗号評価装置。
【請求項8】
更に、
暗号の入力データサイズをnとすると、前記線形ふるい確率計算手段で計算した確率が2−n以下の時は線形ふるい法への耐性有りと判定し、前記線形ふるい確率計算手段で計算した確率が2−nよりも大きい時は線形ふるい法への耐性無しと判定する安全性判定手段を備える請求項1乃至7いずれか一に記載の暗号評価装置。
【請求項9】
線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価プログラムであって、
予め保存された入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算処理と、
前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算処理と、
前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算処理と、
をコンピュータに実行させることを特徴とする暗号評価プログラム。
【請求項10】
更に、
予め保存された前記入力マスクおよび線形ふるいマスクに関連する鍵の独立性の定義を参照して前記入力マスクに関連する鍵(線形鍵)と線形ふるいマスクに関連する鍵(ふるい鍵)との独立性を調べる鍵の独立性チェック処理を前記コンピュータに実行させることを特徴とする請求項9に記載の暗号評価プログラム。
【請求項11】
更に、入力マスク、出力マスク、線形ふるいマスクの組み合わせを一つ以上生成するマスク生成処理を前記コンピュータに実行させる請求項9又は10に記載の暗号評価プログラム。
【請求項12】
更に、鍵の独立性ありと判定し、かつ、Gain値計算手段が1より大きいGain値を出力した際に、線形ふるいマスクの効果ありと判定し、それ以外は効果なしと判定するふるい適用効果判定処理を前記コンピュータに実行させる請求項10又は11に記載の暗号評価プログラム。
【請求項13】
更に、前記ふるい適用効果判定処理において、線形ふるいマスクの効果ありと判定した場合に、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを出力するマスク情報出力処理を前記コンピュータに実行させる請求項12に記載の暗号評価プログラム。
【請求項14】
更に、前記ふるい適用効果判定処理において、線形ふるいマスクの効果ありと判定した場合に、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを記憶するマスク記憶処理と、
前記マスク記憶処理で記憶したデータの中からGain値が最大になるデータを選定する最良マスク選定処理と、
前記選定したデータを抽出する最良マスク情報抽出処理と、
の前記各処理を前記コンピュータに実行させる請求項12に記載の暗号評価プログラム。
【請求項15】
更に、線形ふるいマスクを適用するラウンドを入力するふるい適用ラウンド入力処理を前記コンピュータに実行させ、
前記線形ふるいマスクを適用するラウンドに応じて、前記Gain値計算処理及び鍵の独立性チェック処理を中止し、線形ふるい確率pの偏りをp−0.5として線形ふるいマスクの適用による効果の度合いを示すGain値を計算する第2のGain値計算処理を実行する請求項9乃至14いずれか一に記載の暗号評価プログラム。
【請求項16】
更に、
暗号の入力データサイズをnとすると、前記線形ふるい確率計算手段で計算した確率が2−n以下の時は線形ふるい法への耐性有りと判定し、前記線形ふるい確率計算手段で計算した確率が2−nよりも大きい時は線形ふるい法への耐性無しと判定する安全性判定処理を前記コンピュータに実行させる請求項9乃至15いずれか一に記載の暗号評価プログラム。
【請求項17】
線形ふるい法に用いる線形ふるいマスクの効率性を評価することにより、ブロック暗号の安全性を評価する暗号評価方法であって、
暗号評価装置が、予め入力された入力マスク、線形ふるいマスクおよび出力マスクに対応する非線形変換処理の対応表を参照し、線形解読法による線形近似式の成立確率(線形確率p)を計算する線形確率計算ステップと、
前記暗号評価装置が、前記非線形変換処理の対応表を参照し、線形ふるい法による線形近似式の成立確率(線形ふるい確率p)を計算する線形ふるい確率計算ステップと、
前記暗号評価装置が、前記線形ふるい確率pの偏りをp−pとして、線形ふるいマスクの適用による効果の度合いを示すGain値を計算するGain値計算ステップと、
を含むことを特徴とする暗号評価方法。
【請求項18】
更に、前記暗号評価装置が、
前記入力マスクおよび線形ふるいマスクに関連する鍵の位置の定義を記憶する鍵の独立性の定義記憶ステップと、
前記鍵の独立性の定義を参照して前記入力マスクに関連する鍵(線形鍵)と線形ふるいマスクに関連する鍵(ふるい鍵)との独立性を調べる鍵の独立性チェックステップと、
の前記各ステップを実行する請求項17に記載の暗号評価方法。
【請求項19】
更に、前記暗号評価装置が、入力マスク、出力マスク、線形ふるいマスクの組み合わせを一つ以上生成するマスク生成ステップを含む請求項17又は18記載の暗号評価方法。
【請求項20】
更に、前記暗号評価装置が、鍵の独立性ありと判定し、かつ、Gain値が1より大きい場合に、前記線形ふるいマスクの効果ありと判定し、それ以外は効果なしと判定するふるい適用効果判定ステップを含む請求項17乃至19いずれか一に記載の暗号評価方法。
【請求項21】
更に、前記ふるい適用効果判定ステップにおいて、前記線形ふるいマスクの効果ありと判定した場合に、前記暗号評価装置が、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを出力するマスク情報出力ステップを含む請求項20に記載の暗号評価方法。
【請求項22】
更に、前記暗号評価装置が、
前記ふるい適用効果判定ステップにおいて、前記線形ふるいマスクの効果ありと判定した場合に、Gain値、線形確率、線形ふるい確率、入力マスク、出力マスク、線形ふるいマスクのうちの一つ、または二つ以上の組み合わせを記憶するマスク記憶ステップと、
前記マスク記憶ステップで記憶したデータの中から、Gain値が最大になるデータを選定する最良マスク選定ステップと、
前記選定したデータを抽出する最良マスク情報抽出ステップと、
の前記各ステップを実行する請求項20に記載の暗号評価方法。
【請求項23】
更に、前記暗号評価装置が、線形ふるいマスクを適用するラウンドの入力を受け付けるふるい適用ラウンド入力ステップを含み、
前記暗号評価装置は、前記線形ふるいマスクを適用するラウンドに応じて、前記Gain値計算ステップ及び鍵の独立性チェックステップに代えて、線形ふるい確率pの偏りをp−0.5として線形ふるいマスクの適用による効果の度合いを示すGain値を計算する第2のGain値計算ステップを実行する請求項17乃至22いずれか一に記載の暗号評価方法。
【請求項24】
更に、前記暗号評価装置が、
暗号の入力データサイズをnとすると、前記線形ふるい確率計算手段で計算した確率が2−n以下の時は線形ふるい法への耐性有りと判定し、前記線形ふるい確率計算手段で計算した確率が2−nよりも大きい時は線形ふるい法への耐性無しと判定する安全性判定ステップを含む請求項17乃至23いずれか一に記載の暗号評価方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2009−282089(P2009−282089A)
【公開日】平成21年12月3日(2009.12.3)
【国際特許分類】
【出願番号】特願2008−131578(P2008−131578)
【出願日】平成20年5月20日(2008.5.20)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000242666)北陸日本電気ソフトウェア株式会社 (11)
【Fターム(参考)】