JP2001034162A - 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体 - Google Patents

暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体

Info

Publication number
JP2001034162A
JP2001034162A JP11205003A JP20500399A JP2001034162A JP 2001034162 A JP2001034162 A JP 2001034162A JP 11205003 A JP11205003 A JP 11205003A JP 20500399 A JP20500399 A JP 20500399A JP 2001034162 A JP2001034162 A JP 2001034162A
Authority
JP
Japan
Prior art keywords
input
difference
output
probability
occurrence
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.)
Pending
Application number
JP11205003A
Other languages
English (en)
Inventor
Miyako Okubo
美也子 大久保
Shiho Moriai
志帆 盛合
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP11205003A priority Critical patent/JP2001034162A/ja
Publication of JP2001034162A publication Critical patent/JP2001034162A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 (修正有) 【課題】 小さなメモリで実現できる繰り返し構造をも
つブロック暗号に対して差分を用いて暗号の強度評価を
行なう差分パス探索法。 【解決手段】 平文をブロックごとに第1、第2入力と
して2部し、その第1入力をf関数処理部で処理し、そ
の処理結果と第2入力との排他的論理和をとって、次段
の第1入力とし、第1入力を次段の第2入力として繰り
返し処理を行う暗号装置に対し、入力・出力差分をそれ
ぞれtビット(但し、tは2以上の整数)単位として、
変化の有無で強度を評価する暗号強度評価装置で、f関
数処理部の入力差分と出力差分の発生確率を全て記憶し
た記憶手段と、排他的論理和の出力の発生確率を計算す
る手段と、各段ごとに、f関数処理部の入力差分と出力
差分の発生確率と排他的論理和の出力の発生確率と前段
の出力差分の発生確率との積によりその段の出力差分発
生確率を求める手段とを備え、メモリを小さくする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、暗号装置などへ
入力するデータを変化させることによって出力されるデ
ータにどのような変化が生じるかという入力差分と出力
差分の関係を導出することにより、この装置または組み
込まれている暗号アルゴリズム等の差分解読法に対する
強度を評価する手段を備えた暗号アルゴリズムの強度評
価に用いるデータ変化探索装置及び方法、この方法を記
録した記録媒体に関するものである。
【0002】
【従来の技術】データを秘匿するために暗号化の技術が
重要な役目を担っている。暗号化の方法には共通鍵暗号
方式と公開鍵暗号方式とがある。共通鍵暗号方式におけ
る暗号化処理とは暗号化する対象となるデータ(入力デ
ータ、すなわち、平文)と秘密データ(共通鍵)とから
暗号文と呼ばれるデータを出力するものである。この発
明において用いる解読とは、鍵を知らない第三者が平文
と暗号文のデータのみから鍵を推定導出することを示
す。
【0003】共通鍵暗号方式の代表的な解読法の中に差
分解読法が文献1〔E.Biham,A.Shamir
「Differential Cryptanaly
sis of DES−like cryptosys
temes」 Journarl of Crypto
logy,Vol.4,no.1,pp3−72,Sp
ringer−Verlag,1991〕に示されてい
る。
【0004】この解読法は入力するデータを変化させる
ことによって出力されるデータがどのように変化するか
という入力差分と出力差分の関係を利用して鍵情報を導
出するとともに、高い確率である入力差分からある出力
差分が生じる入出力差分の関係が存在すれば、差分解読
法により解読されることが分かり、このような関係がな
いことが差分解読法に対して高い強度を有する条件であ
る。
【0005】上記文献1における差分とは、入出力デー
タのビット単位での変化の有無に着目していたが、その
後、この差分の概念を拡張した拡張差分が文献2〔L.
R.Knudsen:「Truncated and
Higher OrderDifferential
s,Fast Software Encryptio
n−Second International Wo
rkshop,Lecture Notes in C
omputer Science 1008,pp.1
96−211,Springer−Verlag,19
95」〕で提案された。上記文献2における拡張差分と
はt bitを1単位と決めた場合の入出力差分につい
て、その1単位ごとの変化の有無に着目した概念であ
る。このtは解読者が任意に決定することができる。拡
張差分の例を図1に示す。図1において、4bitの差
分のデータ列{0000 0101 0011 000
0}とすると、拡張差分のデータ列は、差分のデータ4
bitに対して1bitを対応させ、差分のデータに1
が含まれる場合を拡張差分のデータを1とし、差分のデ
ータに1が含まれない場合は拡張差分のデータを0とし
たものである。
【0006】差分は、通常、排他的論理和で定義される
ことが多いがこの発明ではこれに限らない。また、以後
差分は拡張差分を含むものとする。上記文献2で提案さ
れた拡張差分の概念を用いると解読の可能性が広がるこ
となどが記載されており、共通鍵暗号の設計時において
拡張差分を用いた解読法に対する強度についても評価す
る必要が出てきた。
【0007】差分解読を行うために、入出力差分につい
て、ある入力差分からある出力差分へと変換される過程
とその発生確率を求めることは大変重要であり、この探
索を差分パス探索と呼ぶ。この差分パス探索を行うの
に、グラフ理論の分野で研究がなされている最短経路探
索方法の技術を利用した探索方法が文献3{S.Vau
denay,「Onthe Security of
CS−Ciphere,」in Pre−procee
dings of FSE99,pp259−274,
1999」}に記載されている。上記文献3では、暗号
アルゴリズムCS−Cipherに対して8ビットを1
単位と見なした場合の差分パス探索を行っている。
【0008】グラフ理論における最短経路探索方法と
は、頂点の集合Vと弧の集合Aとから構成される有向グ
ラフにおいて全ての頂点から全ての頂点への最短経路を
求める方法である。有向グラフにおける弧とは、2つの
頂点v、wの順序ついて(v、w)であり、v→wで表
現する。また、有向グラフの頂点や弧に何らかの情報が
ついたグラフはラベル付き有向グラフと呼ばれる。
【0009】このグラフ理論における最短経路探索方法
を利用した従来の差分パス探索方法を述べる。図3に示
すようなラウンド関数FをR段繰り返すブロック暗号を
対象とする。ブロック暗号とは、暗号化対象のデータを
適当な長さのブロックに分割し、そのブロック単位で暗
号化を行う方法である。通常、ブロック暗号は暗号学的
にあまり強くない関数を複数回繰り返し適用することに
より安全性を高めている。この繰り返し回数を段数、一
回ごとに用いる関数をラウンド関数と呼ぶ。
【0010】グラフ理論における最短経路探索方法を適
用するために以下のような対応付けを行なう。r段目の
ラウンド関数Fの入力差分の集合をVrとする。r段目
の入力差分vr ∈Vr とr+1段目における入力差分v
r+1∈Vr+1 をそれぞれグラフの頂点と見なし、弧vr
→vr+1 をラウンド関数Fの差分とする。また、その発
生確率p(vr ,vr+1 )を弧vr →vr+1 のラベルと
する。これを頂点vrから頂点vr+1 へのコストとして
C={Cij}、Cij=p(vr (i) ,vr+1 (j ) )をコ
スト行列とする。差分解読法における差分について、1
単位と見なすbit数をtとし、サブブロックn=(ブ
ロック長/t)とすると、コスト行列の大きさは2n ×
n となる。どの段も同じラウンド関数を用いていれば
どの段についても同じコスト行列を利用できる。
【0011】入力差分を表す頂点v1 から出力差分を表
すvR+1 への経路を構成する弧のコストの積を経路の長
さとした時の最短経路問題を解くことで、最大差分確率
を持つ差分パス探索を行なうことができる。グラフ理論
における最短経路探索方法として、Dijkstra法
やWarshall−Floyd法が知られており、参
考文献3記載の差分パス探索法においてはWarsha
ll−Floyd法が利用されている。
【0012】
【発明が解決しようとする課題】差分パス探索に用いる
コスト行列はサブブロックnによってその大きさが決ま
るため、サブブロックnが小さい場合はコスト行列を小
さくすることができ、比較的容易な探索を行なえるが、
サブブロックnが大きな場合に探索を行なうためには、
より大きなコスト行列が必要となり、大容量のメモリを
保持する計算機でなければ適用することが困難となる。
【0013】この発明は繰り返し構造を持つブロック暗
号に対して差分を用いて暗号の強度評価を行なうために
用いられる差分パス探索方法にグラフ理論における最短
経路探索方法の技術を取り入れた探索方法で、より小さ
なコスト行列を活用する方法を示す。したがって、探索
に用いるコスト行列が小さなメモリで実現でき、メモリ
の乏しい環境下でもグラフ理論を用いた探索方法を実現
できる。
【0014】
【発明の実施の形態】この発明は、Feistel構造
を持つブロック暗号、特に、一般のFeistel構造
を持つブロック暗号に対して有効な方法である。一般の
Feistel暗号とは、図4に示されているようなF
eistel暗号を一般化したもので、Feistel
暗号でブロックを2等分割してデータの撹拌を行なうと
ころを図9に示すようにu等分割して処理を行なう暗号
を総称して一般化されたFeistel暗号と呼ぶ。な
お、図9に示されたものはある入力差分(例えば、
r1)のf関数の出力(例えば、yr1)と他の入力差分
(例えば、x(r-1)1)との排他的論理和をとり、上記f
関数とは異なるf関数の入力差分(例えば、xr2)とし
ているが、複数のf関数の出力差分(例えば、yr1、y
r2、・・・)と上記複数のf関数の入力差分(例えば、
r1、xr2、・・・)とは異なる入力差分(例えば、x
(r-1)(u-1))との排他的論理和をとり上記複数のf関数
とは異なるf関数の入力差分としてもよい。
【0015】注目する差分を図3に示す従来の方法のよ
うに、r段目とr−1段目のラウンド関数Fの入力差分
r 、vr-1 とする代わりに、図4に示すようなr段目
とr+1段目のラウンド関数内のf関数への入力差分x
r 、xr+1 に注目する。Warshall−Floyd
のアルゴリズムを用いてtruncateddiffe
rentiai探索を行う場合、探索に2n ×2n の行
列を利用するため、nが大きくなると、探索が困難とな
る。そこで、Feistel構造を持つ暗号に対して、
n/2 ×2n/2 の小さな行列を利用する探索方法を検討
した。2n ×2n の大きさの行列を用いて探索を行う方
法を探索方法Aとし、2n/2×2n/2 の大きさの行列を
用いて探索を行う方法を探索方法Bとする。
【0016】探索方法Aにおけるコスト行列はどの段も
同一のものとなり、その要素はすべて定数で表現する事
ができる。しかし、探索方法Bにおけるxr からxr+1
への経路は、一つの弧で構成されているわけではない。
F関数の出力差分値をyr (yr ∈Yr ただし、Y
r は、ラウンド関数内のF関数の出力差分値の集合)と
した場合、xr+1 はyr ∈Yr とxr-1 ∈Xr-1 を用い
て計算される。探索方法Bで用いる行列を以下のように
定義する。定義3 r段truncated diff
erentialの確率を配列C(r ) で示し、1段目の
入力差分値が(x0 , 1 )の時にr段目の出力差分値
が(xr+1 ,xr )となる最大差分確率をC(r) [x
r , r+1 ]で表す。これを最短経路行列とする。
【0017】最短経路行列の要素は全て段数rによって
変化するため、暗号アルゴリズムの段数rに依存した変
数として表現できる。具体的に、最短経路行列の要素の
求め方を示す。xr からxr+1 への経路は、弧xr →y
r と弧(xr-1 ,yr )→x r+1 とで構成されている。
それぞれの弧の生じる確率を求める。まず、弧xr →y
r の生じる確率を求める。r段目のF関数への入力差分
値から出力差分値の生じる確率は、段に依存せずどの段
も等しい。F関数の入力差分値xから出力差分値yへの
コストについて以下のように定義する。定義4 F関数
の入力差分値から出力差分値へのコストを2次元配列C
Fで示し、F関数の入力差分値xから出力差分値yの生
じる確率をCF[x,y]=p(x,y)で表す。これ
をコスト行列とする。
【0018】次に弧(xr-1,r )→xr+1 の生じる確
率を求める。yr とxr-1 からxr+ 1 を求める場合に同
じ位置のサブブロックの差分値が“1”であったとして
も、そのサブブロックをbit単位で見た場合にも差分
値が同一になる場合と、異なる場合とがあり、それぞれ
の事象が生じる確率は異なることを考慮しなくてはなら
ない。サブブロックをbit単位で見た場合にも差分値
が同一になる場合xr+ 1 のそのサブブロックにおける差
分は0となる。これを差分の打ち消しあいと呼ぶ。この
打ち消しあいの起こる確率は、2-D[但し、D=t×
((Hw(xr-1)∪Hw(yr ))−Hw
(xr+1 ))]である。(ただし、Hw(a)は、aの
ハミング重みを示す。) 最短経路行列の要素C(r)[xr-1 ,xr ]は1段目の
入力差分値が(x0 ,x1)の時にr段目の出力差分値
が(xr+1 ,xr )となる最大差分確率であるから、C
(r-1)[xr-1 ,xr ]にr段における弧xr →yr
弧(xr-1 ,yr )→xr+1 の生じる確率を乗じたもの
である。よって、1段目の入力差分値が(x0 ,x 1
であった時にr段目の出力差分値が(xr+1 ,xr )と
なる最大差分確率は、C(r) [xr ,xr+1 ]=C
(r-1) [xr-1 ,xr ]×CF[xr ,yr ]×2
-D[但し、D=t×((Hw(xr-1 )∪Hw
(yr))−Hw(xr+1))]で求まる。以上のように
すれば、最短経路行列C(r) の要素はすべて求める事が
できる。
【0019】この最短経路行列を利用し、Warsha
ll−Floydのアルゴリズムを適用する事で、すべ
ての入力差分値とすべての出力差分値の組み合わせに対
して、入力差分値から出力差分値への経路の生じる最大
差分確率が求められる。この探索アルゴリズムを示す。
排他的論理演算における差分の打ち消しあいについて図
2を参照して説明する。図2において、左側に示された
差分データ列{0000 0101 0011000
0}、{0000 0101 0000 0000}は
図1拡張差分の概念によれば、拡張差分(0110)、
(0100)となり、右側に示された差分データ列{0
000 0101 0011 0000}、{0000
1110 0000 0000}は拡張差分(011
0)、(0100)となり、一致した拡張差分データ列
となる。左側に示された差分データ列{0000 01
01 0011 0000}と{0000 0101
0000 0000}の排他的論理和は{0000 0
000 0011 0000}となり、ビットレベルで
見た拡張差分が一致した場合、差分が0、すなわち、打
ち消しあう。しかしながら、右側に示された差分データ
列の場合には打ち消しあいは発生しない。言い換えれ
ば、ビットレベルで見た拡張差分が一致した場合におい
て、排他的論理和をとった時にtビットを1単位とした
場合、0となる確率(すなわち、差分が一致する確
率。)は1/2t =2-t、排他的論理和に入力する拡張
差分が1で一致する確率はHw(xr-1 (i)
r (k) )、排他的論理和の拡張差分の1をとる確率は
Hw(xt+1 (d) )となり、打ち消しあいの起きる確率
は2+D(但し、D=−t×{Hw(xr-1 (i) ∪yr
(k) )−Hw(xr+1 (d) )})となる。
【0020】以上のようにして求めたコスト行列を用い
れば、従来の方法で2n ×2n の大きさを必要としたコ
スト行列を2n/2 ×2n/2 に小さくできる。大きさが2
n/2 ×2n/2 のコスト行列CFとC(r) を利用して、グ
ラフ理論の最短経路探索法としてよく知られているDi
jkstra法やWarshall−Floyd法を使
うことで探索を実現できる。
【0021】次に、一般のFeistel暗号について
示す。u列に等分割してデータの撹拌を行なう際、例え
ば、図9に示すような構造の場合、f関数の入出力差分
に着目して、コスト行列を作る。図9に示すようなu列
に等分割された構造を持つ暗号の場合、右から数えてq
列目からq+1列目へのコスト行列(1≦q≦u−1)
を求めるために、一段目の右から数えてq列目のf関数
への入力差分をx1q、r段目における右から数えてq列
目のf関数への入力差分をxrq、出力差分をy rqとし
て、q列目とq+1列目の間のf関数をfq とした場合
にr段目のq列とq+1列目の入力差分についての弧x
rq→xr(q+1)についてのコスト行列をC(r )q={Cij
(r)q}、Cij (t)q=p(xrq (i),xr (q+1)j)とする。
このコスト行列の大きさは2n/2 ×2n/2 であり、この
大きさのコスト行列をu−1個とCFのコスト行列を用
意する。Fesitel暗号の場合と同じ要領で、これ
らのコスト行列を利用して、グラフ理論の最短経路探索
法としてよく知られているDijkstra法やWar
shall−Floyd法を使うことで探索を実現でき
る。 実施例(1) 図4に示すようなFeistel構造を持つブロック暗
号を対象に全ての入力差分と出力差分に関して、ある入
力差分からある出力差分の生ずる確率(差分確率Πr=1
R p(vr ,vr+1 ))が最も高い確率で起こる場合の
入力差分と出力差分の組とその確率(最大差分確率)を
求める手順を示す。
【0022】図5及び図6にその手順のフローチャート
を示す。t bitを1単位と見なし、n=ブロック長
/tとし、暗号アルゴリズムの段数をR段とする。ま
た、m=2n/2 とおく。一段目右半分入力差分をx1
左半分入力差分をx0 、r段目におけるf関数への入力
差分をxr 、出力差分をyr とする。 (Step1)あらかじめ、f関数に関して入力差分x
r と出力差分yr についてのコスト行列CF={c
ij}、cfij=p(xr (i) 、yr (j) )を求めてお
く。
【0023】コスト行列C(r) を初期化しておく。すな
わち、全ての要素に対してcij (r)=0としておく。 (Step2)r=1とする。 (Step3)入力差分の左半分x0 を0からm−1ま
での値から順に一つ選ぶ。
【0024】選んだ値を変数dで表す。 (Step4)一段目のf関数への入力差分x1 を0か
らm−1までの値から順に一つ選ぶ。選んだ値を変数e
で表す。 (Step5)入力差分x1 に対してf関数の出力差分
1 を0からm−1までの値から順に一つ選ぶ。
【0025】選んだ値を変数jで表す。 (Step6)x2 の値wをdとjの排他的論理和から
求める(図2参照)。この時、dとjについて、tビッ
トを1単位と見なした時の同じサブブロック内に差分が
あり、ビットレベルで見た差分が一致した場合には、x
2 のそのサブブロックにおける差分は0となる。これを
差分の打ち消しあいと呼ぶ。dとjの同じサブブロック
内に差分があり、ビットレベルでも差分が一致しない場
合はx 2 のそのサブブロックの差分は1となる。よっ
て、一つのdとjから起こり得るx2 の値wは1種類と
は限らない。起こり得る全ての場合のwを検討する。
【0026】確率は、以下のようにして求める。但し、
Hw(a)と書いた場合には、値aを0と1の二進数で
表現した場合の1の立っている個数を示すものとする。
排他的論理和演算によって差分の打ち消しあいの起きて
いる確率は、2D 〔但し、D=−t×((Hw(d∪
j))−Hw(w))〕である。
【0027】したがって、x1 がeという値をとった時
に、x2 がwという値をとる確率は、p(x1 (e) 、x
2 (w) )=cfej×2D と求まる。cew (1) にp(x1
(e) 、x2 (w) )を入れる。 (Step7)r=r+1とする。 (Step8)f関数の入力差分xr を0からm−1ま
での値から順に一つ選ぶ。
【0028】選んだ値を変数iで表す。 (Step9)f関数の出力差分yr を0からm−1ま
での値から順に一つ選ぶ。選んだ値を変数jで表す。 (Step10)xr-1 を0からm−1までの値から順
に一つ選ぶ。
【0029】選んだ値を変数sで表す。 (Step11)Step6と同様に、xr+1 の値とし
て起こり得る全てのwとその確率をsとjから求める。
p(xr (i) 、xr+1 (w) )=cfij×csi (r-1) ×2
D 〔但し、D=−t×((Hw(s∪j))−Hw
(w))〕を求める。 (Step12)もし、ciw (r) ≦p(xr (i) 、x
r+1 (w) )であれば、ciw (r) にp(xr ( i) 、xr+1
(w) )を入れる。 (Step13)Step9〜Step12までyr
m−1まで、xr-1 をm−1まで行なう。 (Step14)Step8〜Step13までを繰り
かえして、xr についてm−1まで行なう。 (Step15)Step7〜Step14までを繰り
返して、r=R段になるまで続ける。 (Step16)r=Rであれば、iとwがランダムに
生ずる確率2G 〔但し、G=t×((Hw(i)+Hw
(w))−n)〕とciw (R) を比較し、2G ≦ciw (R)
であればその入力差分(x0 、x1 )と出力差分(w、
i)及びその確率ciw (R) を出力する。xR+1 とxR
ついてm−1まで全ての場合を探索すれば、入力差分が
(x0、x1 )の場合の全ての出力差分との組について
の最大差分確率が求まる。以上Step3およびSte
p4について、各々m−1までをStep5〜Step
15を行なえば、全ての入力差分に対する全ての出力差
分への探索が行なえる。 実施例(2) 図4に示すようなFeistel構造を持つブロック暗
号を対象に、ある入力差分からある出力差分が生ずる場
合を全て探索し、その入力差分から出力差分の生ずる最
大平均差分確率Σ(v2、…、vR)Πr=1 R p(vr 、v
r+1 )を求める手順を示す。図7と図8にそのフローチ
ャートを示す。
【0030】t bitを1単位と見なし、n=ブロッ
ク長/tとし、暗号アルゴリズムの段数をR段とする。
また、m=2n/2 とおく。一段目右半分入力差分値をx
1 、左半分入力差分値をx0 、r段目におけるf関数へ
の入力差分をxr 、出力差分をyr とする。 (Step1)あらかじめ、f関数に関して入力差分x
r と出力差分yr についてのコスト行列CF={c
ij}、cfij=p(xr (i) 、yr (j) )を求めてお
く。
【0031】コスト行列C(r) を初期化しておく。すな
わち、全ての要素に対してcij (r )=0としておく。 (Step2)r=1とする。 (Step3)入力差分の左半分のx0 を0からm−1
までの値から順に一つ選ぶ。
【0032】選んだ値を変数dで表す。 (Step4)一段目のf関数への入力差分x1 を0か
らm−1までの値から順に一つ選ぶ。選んだ値を変数e
で表す。 (Step5)入力差分x1 に対してf関数の出力差分
1 を順に0からm−1までの値から順に選ぶ。
【0033】選んだ値を変数jで表す。 (Step6)x2 の値としてとり得る全てのwをdと
jの排他的論理和から求める(図2参照)。この時、d
とjについて、tビットを1単位と見なした時の同じサ
ブブロック内に差分があり、ビットレベルで見た差分が
一致した場合には、x2 のそのサブブロックにおける差
分は0となる。これを差分の打ち消しあいと呼ぶ。dと
jの同じサブブロック内に差分があり、ビットレベルで
も差分が一致しない場合はx 2 のそのサブブロックの差
分は1となる。よって、一つのdとjから起こり得るx
2 の値wは1種類とは限らない。起こり得る全ての場合
のwを検討する。
【0034】確率は、以下のようにして求める。但し、
Hw(a)と書いた場合には、値aを0と1の二進数で
表現した場合の1の立っている個数を示すものとする。
排他的論理和演算(+)によって差分の打ち消しあいの
起きている確率は、2 D 〔但し、D=−t×((Hw
(d∪j))−Hw(w))〕である。
【0035】したがって、x1 がeという値をとった時
に、x2 がwという値をとる確率は、p(x1 (e) 、x
2 (w) )=cfej×2D 〔但し、D=−t×((Hw
(d∪j))−Hw(w))〕と求まる。cew (1) にc
ew (1) +p(x1 (e) 、x2 (w) )を入れる。 (Step7)r=r+1とする。 (Step8)f関数の入力差分xr を0からm−1ま
での値から順に一つ選ぶ。
【0036】選んだ値を変数iで表す。 (Step9)f関数の出力差分yr を0からm−1ま
での値から順に一つ選ぶ。選んだ値を変数jを用いて表
す。 (Step10)xr-1 を0からm−1までの値から順
に一つ選ぶ。
【0037】選んだ値を変数sで表す。 (Step11)Step6と同様に、xr+1 の値とし
て起こり得る全てのwとその確率をsとjから求める。
p(xr (i) ,xr+1 (w) )=cfij×csi (r-1) ×2
D 〔但し、D=−t×((Hw(s∪j))−Hw
(w))〕を求める。 (Step12)ciw (r) にciw (r) +p(xr (i)
r+1 (w) )を入れる。 (Step13)Step9〜Step12までyr
m−1まで、xr-1 をm−1まで行なう。 (Step14)Step8〜Step13までを繰り
かえして、xr についてm−1まで行なう。 (Step15)Step7〜Step14までを繰り
返して、r=R段になるまで続ける。 (Step16)r=Rであればciw (r) を出力する。
iw (r) によって、入力差分が(x0 、x1 )の場合に
出力差分が(w、i)となる最大平均差分確率が求ま
る。
【0038】xR+1 とxR についてm−1まで全て求め
ると、入力差分が(x0 、x1 )の場合の全ての出力差
分との組についての最大平均差分確率が求まる。以上S
tep3およびStep4について、各々m−1までを
Step5〜Step15を行なえば、全ての入力差分
と全ての出力差分の組について最大平均差分確率が求ま
る。 実施例(3) 図9に示すようなu列にデータを等分割してデータ撹拌
を行なうFeistel暗号を対象に全ての入力差分と
出力差分のうち、ある入力差分からある出力差分の生ず
る確率(差分確率Πr=1 R p(vr 、vr+1 ))が最も
高い確率で起こる場合の入力差分と出力差分の組とその
確率(最大差分確率)を求める手順を示す。図10〜1
5にその手順についてのフローチャートを示す。
【0039】t bitを1単位と見なし、n=ブロッ
ク長/tとし、暗号アルゴリズムの段数をR段とする。
また、g=2n/u とおく。q列目とq+1列目の間のf
関数をfq とする。暗号アルゴリズムへの入力時の一番
右の入力差分値をx0u、右からq列目の入力差分をx
0(q-1)(2≦q≦u)、r(r=1−R)段目における
右からq列目のf関数への入力差分をxrq、出力差分を
rqとする。また、xru=x(r+1)1とする。また、C
(r)q={cij (r)q}、cij (r)q=p(xrq (i) 、x
r(q+1) (j) )とする。
【0040】また、行列S(r)q={sij (r)q}をu−1
個用意しておく。必要となるコスト行列の大きさは2
n/u ×2n/u であり、この大きさのコスト行列を2(u
−1)個と、f関数についての入力差分xr と出力差分
r の関係についてのコスト行列CF={cfij}、c
ij=p(xr (i) 、yr (j) )のためのメモリが必
要。 (Step1)あらかじめ、f関数に関して入力差分x
r と出力差分yr についてのコスト行列CF={c
ij}、cfij=p(xr (i) 、yr (j) )を求めてお
く。
【0041】また、C(r)qを全て初期化しておく。すな
わち、全ての要素に対してcij (r)q=0としておく。 (Step2)一段目の入力差分のx01からx0uまでそ
れぞれについて0からg−1までの値から順に一つ選
ぶ。
【0042】選んだ値を変数e1からeuで表す。 (Step3)r=1とする。 (Step4)入力差分x0uに対してf関数の出力差分
11を0からg−1までの値から順に選ぶ。
【0043】選んだ値を変数jで表す。 (Step5)x12の値をe1とjの排他的論理和から
求める(図2参照)。この時、e1とjについて、tビ
ットを1単位と見なした時の同じサブブロック内に差分
があり、ビットレベルで見た差分が一致した場合には、
12のそのサブブロックにおける差分は0となる。これ
を差分の打ち消しあいと呼ぶ。e1とjの同じサブブロ
ック内に差分がありビットレベルでも差分が一致しない
場合はx12のそのサブブロックの差分は1となる。よっ
て、あるe1とあるjから起こり得るx12の値wは1種
類とは限らない。起こり得る全ての場合のwを検討す
る。
【0044】確率は、以下のようにして求める。但し、
Hw(a)と書いた場合には、値aを0と1の二進数で
表現した場合の1の立っている個数を示すものとする。
排他的論理和演算(+)によって差分の打ち消しあいの
起きている確率は、2 D 〔但し、D=−t×((Hw
(e1∪j))−Hw(w))〕である。
【0045】したがってx0uがeuという値をとった時
にx12がwという値をとる確率は、p(x0u (eu)、x12
(w) )=cfeuj ×2D 〔但し、D=−t×((Hw
(e1∪j))−Hw(w))〕と求まる。ceuw (1)1
にp(x0u (eu)、x12 (w) )を入れる。 (Step6)k=2からu−1まで以下の処理を行な
う(図13参照)。 (Step6−1)一段目のq列目の入力差分のx1q
0からg−1までの値から順に一つ選ぶ。
【0046】選んだ値を変数iで表す。 (Step6−2)一段目のq列目の出力差分のy1q
0からg−1までの値から順に一つ選ぶ。選んだ値を変
数jで表す。 (Step6−3)それぞれ選んだx1q、y1q、および
初期段階で選んだx0eq について以下の計算を行なう。
【0047】Step5と同様に、x1(q+1)の値として
起こり得る全てのwとその確率を求める。 p(x1q (i) 、x1(q+1) (w) )=cfij×2D 〔但し、
D=−t×((Hw(eq∪j))−Hw(w))〕 もしciw (1)q≦p(x1q (i) 、x1(q+1) (w) )であれ
ば、ciw (1)qにp(x1q (i) 、x1(q+1) (w) )を入れ
る。
【0048】Siw (1)qにsの値を入れておく。 (Step7)r=2とする。 (Step8)(図11参照)q=1とする。 (Step9−1−1)f1 関数の入力差分x21(=x
1u)を0からg−1までの値から順に一つ選ぶ。
【0049】選んだ値を変数iで表す。 (Step9−1−2)f1 関数の出力差分y21を0か
らg−1までの値から順に一つ選ぶ。選んだ値を変数j
で表す。 (Step9−1−3)Step5と同様に、x22の値
として起こり得る全てのwとその確率を求める。
【0050】p(x21 (i) 、x22 (w) )=cfij×2D
〔但し、D=−t×((Hw(eu∪j))−Hw
(w))〕 もし、ciw (2)1≦p(x21 (i) 、x22 (w) )であれば、
iw (2)1にp(x21 (i ) 、x22 (w) )を入れる。Sij
(2)1にはすべて、euの値を入れておく。
【0051】i、jについて全てg−1まで探索し終え
たら次へ進む。 (Step9−2)以下の処理をq=2からu−1まで
行なう(図14参照)。 (Step9−2−1)fq-1 関数の入力差分x2(q-1)
を0からg−1までの値から順に一つ選ぶ。
【0052】選んだ値を変数dで表す。 (Step9−2−2)fq 関数の入力差分x2qを0か
らg−1までの値から順に一つ選ぶ。選んだ値を変数i
で表す。 (Step9−2−3)fq 関数の出力差分y2qを0か
らg−1までの値から順に一つ選ぶ。
【0053】選んだ値を変数jで表す。 (Step9−2−4)x1qを0からg−1までの値か
ら順に一つ選ぶ。選んだ値を変数sで表す。 (Step9−2−5)Sdi (2)(q-1)に記憶されてい
る、x1(q-1)の値hを求める。
【0054】Step5と同様に、x2(q+1)の値として
起こり得る全てのwとその確率を求める。 p(x2q (i) 、x2(q+1) (w) )=cfij×chi (1)(q-1)
×2D 〔但し、D=−t×((Hw(s∪j))−Hw
(w))〕 もし、ciw (2)q≦p(x2q (i) 、x2(q+1) (w) )であれ
ば、ciw (2)qにp(x 2q (i) 、x2(q+1) (w) )を入れ
る。
【0055】その時の、sの値をSiw (2)qに記録する。 (Step10)r=r+1 (Step11−1−1)(図12参照) r−1段目のf(it-1)関数の入力差分x(r-1)(u-1)を0
からg−1までの値から順に一つ選ぶ。
【0056】選んだ値を変数dで表す。 (Step11−1−2)f1 関数の入力差分xr1(=
(r-1)u)を0からg−1までの値から順に一つ選ぶ。
選んだ値を変数iで表す。 (Step11−1−3)f1 関数の出力差分yr1を0
からg−1までの値から順に選ぶ。
【0057】選んだ値を変数jで表す。 (Step11−1−4)x(r-1)1(=x(r-2)u)を0
からg−1までの値から順に一つ選ぶ。選んだ値を変数
sで表す。 (Step11−1−5)Sdi (r-1)(u-1)に記憶されて
いる、x(r-2)(u-1)の値hを求める。
【0058】Step5と同様に、xr2の値として起こ
り得る全てのw1とその確率を求める。 p(xr1 (i) 、xr2 (w1))=cfij×chs (r-2)(u-1)×
D 〔但し、D=−t×((Hw(s∪j))−Hw
(w1))〕 もし、ciw1 (r)1≦p(xr1 (i) 、xr2 (w1))であれ
ば、ciw1 (r)1にp(x r1 (i) 、xr2 (w1))を入れる。
【0059】その時の、sの値をSiw1 (r)1に記録す
る。 (Step11−2)以下の処理をq=2からu−1ま
で行なう(図15参照)。 (Step11−2−1)fq-1 関数の入力差分x
r(q-1)を0からg−1までの値から順に一つ選ぶ。
【0060】選んだ値を変数dで表す。 (Step11−2−2)fq 関数の入力差分xrqを0
からg−1までの値から順に一つ選ぶ。選んだ値を変数
iで表す。 (Step11−2−3)fq 関数の出力差分yrqを0
からg−1までの値から順に一つ選ぶ。
【0061】選んだ値を変数jで表す。 (Step11−2−4)x(r-1)qを0からg−1まで
の値から順に一つ選ぶ。選んだ値を変数sで表す。 (Step11−2−5)Sd1i (r)q-1に記憶されてい
る、x(r-1)(q-1)の値hを求める。
【0062】Step5と同様に、xr(q-1)の値として
起こり得る全てのwqとその確率をjとsから求める。 p(xrq (i) 、xr(q+1) (wq))=cfij×chs
(r-1)(q-1)×2D 〔但し、D=−t×((Hw(s∪
j))−Hw(wq))〕 もし、ciwq (r)q≦p(xrq (i) 、xr(q+1) (wq))であ
れば、ciwq (r)qにp(xrq (i) 、xr(q+1) (wq))を入
れる。
【0063】その時の、sの値をSiwq (r)qに記録す
る。 (Step12)r=Rであれば、i、w1〜w(u−
1)がランダムに生ずる確率2Y 〔但し、Y=t×(H
w(i)+Hw(w1)+Hw(w2)…Hw(w(u
−1))−n)〕とciw1 (R)1×cw1W2 (R)2…×c
w(u-2)w(u-1) (R)(u-1)を比較し、ciw1 (R)1×cw1W2
(R)2…×cw(u-2)w(u-1) (R)(u-1)≧2Y であれば、入力
差分(e1〜eu)と出力差分(i、w1〜w(u−
1))およびその確率ciw1 ( R)1×cw1W2 (R)2…×c
w(u-2)w(u-1) (R)(u-1)を出力する。
【0064】ある入力差分(e1〜eu)に対する全て
の起こり得る出力差分への最大差分確率が求まる。e1
〜euについてそれぞれg−1まで探索を行なえば、全
ての入力差分と出力差分の組についての探索が行なえ
る。
【0065】
【発明の効果】以上により、本発明によれば、暗号強度
評価装置において、暗号装置等へ入力するデータを変化
させる事により出力されるデータがどのように変化する
かという入力差分と出力差分の関係を効率よく導出する
手段を加える事でこの装置またはそこに組み込まれる暗
号アルゴリズム等の差分解読法に対する強度評価が可能
となる。また、本発明による方法を用いれば、従来の方
法では探索が困難であるようなメモリの乏しい環境下に
おいてもグラフ理論を用いた探索方法を行なう事ができ
る。一例としてある差分パス探索における計算量を比較
してみると、以下に示すように従来法に基づいた探索に
比べて計算量を減らす事もできる。 具体例)暗号の段数をR、n=ブロック長/tとした場
合、例えばグラフ理論の最短経路探索法の中の一つであ
るWarshall−Floyd法を適用した場合、従
来法に基づく適用方法では、O(22n×R)であり、本
発明における適用方法を用いれば、O((2n/2 3 ×
R)にまで減らす事ができる。
【図面の簡単な説明】
【図1】拡張差分の概念を示す図。
【図2】排他的論理和演算における差分の打ち消しあい
の説明図。
【図3】グラフ理論における最短経路探索方法を利用し
た従来法による差分パス探索を示す図。
【図4】Feistel構造をもつ暗号のアルゴリズム
の構成図。
【図5】この発明の実施例(1)の適応方法による探索
法のフローチャートを示す図。
【図6】図5における部分図。
【図7】この発明の実施例(2)の適応方法による探索
法のフローチャートを示す図。
【図8】図7における部分図。
【図9】この発明の実施例(3)の暗号アルゴリズムの
構成図。
【図10】この発明の実施例(3)の適応方法による探
索法のフローチャートを示す図。
【図11】図10における部分図1。
【図12】図10における部分図2。
【図13】図10の詳細図。
【図14】図11の詳細図。
【図15】図12の詳細図。
【図16】この発明の暗号強度評価装置の構成図。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 平文をブロックごとに第1、第2入力と
    して2部し、その第1入力をf関数処理部で処理し、そ
    の処理結果と第2入力との排他的論理和をとって、次段
    の第1入力とし、上記第1入力を次段の第2入力として
    繰り返し処理を行う暗号装置に対し、入力差分と出力差
    分をそれぞれtビット(但し、tは2以上の整数)を1
    単位として、変化の有無に着目して強度を評価する暗号
    アルゴリズムの強度評価に用いるデータ変化探索装置で
    あって、 上記f関数処理部の入力差分と出力差分との発生確率を
    全て記憶した記憶手段と、排他的論理和の出力の発生確
    率を計算する手段と、 各段ごとに、上記f関数処理部の入力差分と出力差分と
    の発生確率と上記排他的論理和の出力の発生確率と前段
    の出力差分の発生確率との積によりその段の出力差分発
    生確率を求める手段とを有することを特徴とする暗号ア
    ルゴリズムの強度評価に用いるデータ変化探索装置。
  2. 【請求項2】 平文をブロックごとに第1、第2入力と
    して2部し、その第1入力をf関数処理部で処理し、そ
    の処理結果と第2入力との排他的論理和をとって、次段
    の第1入力とし、上記第1入力を次段の第2入力として
    繰り返し処理を行う暗号装置に対し、入力差分と出力差
    分をそれぞれtビット(但し、tは2以上の整数)を1
    単位として、変化の有無に着目して暗号アルゴリズムの
    強度評価に用いるデータ変化探索方法であって、 上記f関数処理部の入力差分と出力差分との発生確率を
    全て記憶した記憶手段と、排他的論理和の出力の発生確
    率を計算する手段と、 各段ごとに、上記f関数処理部の入力差分と出力差分と
    の発生確率と上記排他的論理和の出力の発生確率と前段
    の出力差分の発生確率との積によりその段の出力差分発
    生確率を求める手段とを有することを特徴とする暗号ア
    ルゴリズムの強度評価に用いるデータ変化探索方法。
  3. 【請求項3】 平文をブロックごとに第1、第2入力と
    して2部し、その第1入力をf関数処理部で処理し、そ
    の処理結果と第2入力との排他的論理和をとって、次段
    の第1入力とし、上記第1入力を次段の第2入力として
    繰り返し処理を行う暗号装置に対し、入力差分と出力差
    分をそれぞれtビット(但し、tは2以上の整数)を1
    単位として、変化の有無に着目して暗号アルゴリズムの
    強度評価に用いるデータ変化探索方法をプログラムとし
    て記録した記録媒体であって、 上記f関数処理部の入力差分と出力差分との発生確率を
    全て記憶した記憶手段と、排他的論理和の出力の発生確
    率を計算する手段と、 各段ごとに、上記f関数処理部の入力差分と出力差分と
    の発生確率と上記排他的論理和の出力の発生確率と前段
    の出力差分の発生確率との積によりその段の出力差分発
    生確率を求める手段とを有することを特徴とする暗号ア
    ルゴリズムの強度評価に用いるデータ変化探索方法をプ
    ログラムとして記録した記録媒体。
  4. 【請求項4】 それぞれmビット幅のu個の入力系列が
    少なくとも1個のf関数処理部と、1個の排他的論理和
    回路とにより相互に結合されて次段のmビット幅のu個
    の入力系列と接続される処理段が複数縦続接続されてい
    る暗号装置に対し、入力差分と出力差分をそれぞれtビ
    ット(但し、tは2以上の整数)を1単位として、変化
    の有無に着目して、暗号アルゴリズムの強度評価に用い
    るデータ変化探索装置であって、 上記f関数処理部の入力差分と出力差分との発生確率
    と、そのf関数処理部の出力と1つの入力系列が入力さ
    れる排他的論理和回路の出力の発生確率と、その排他的
    論理和回路の入力の発生確率とからf関数処理部の入力
    差分と、排他的論理和回路の出力差分との発生確率を求
    める手段を用いて暗号装置の入力差分とし出力差分の発
    生確率を求めることを特徴とする暗号アルゴリズムの強
    度評価に用いるデータ変化探索装置。
  5. 【請求項5】 それぞれmビット幅のu個の入力系列が
    少なくとも1個のf関数処理部と、1個の排他的論理和
    回路とにより相互に結合されて次段のmビット幅のu個
    の入力系列と接続される処理段が複数縦続接続されてい
    る暗号装置に対し、入力差分と出力差分をそれぞれtビ
    ット(但し、tは2以上の整数)を1単位として、変化
    の有無に着目して、暗号アルゴリズムの強度評価に用い
    るデータ変化探索方法であって、 上記f関数処理部の入力差分と出力差分との発生確率
    と、そのf関数処理部の出力と1つの入力系列が入力さ
    れる排他的論理和回路の出力の発生確率と、その排他的
    論理和回路の入力の発生確率とからf関数処理部の入力
    差分と、排他的論理和回路の出力差分との発生確率を求
    める手段を用いて暗号装置の入力差分と出力差分の発生
    確率を求めることを特徴とする暗号アルゴリズムの強度
    評価に用いるデータ変化探索方法。
  6. 【請求項6】 それぞれmビット幅のu個の入力系列が
    少なくとも1個のf関数処理部と、1個の排他的論理和
    回路とにより相互に結合されて次段のmビット幅のu個
    の入力系列と接続される処理段が複数縦続接続されてい
    る暗号装置に対し、入力差分と出力差分をそれぞれtビ
    ット(但し、tは2以上の整数)を1単位として、変化
    の有無に着目して、暗号アルゴリズムの強度評価に用い
    るデータ変化探索方法のプログラムを記録した記録媒体
    であって、 上記f関数処理部の入力差分と出力差分との発生確率
    と、そのf関数処理部の出力と1つの入力系列が入力さ
    れる排他的論理和回路の出力の発生確率と、その排他的
    論理和回路の入力の発生確率とからf関数処理部の入力
    差分と、排他的論理和回路の出力差分との発生確率を求
    める手段を用いて暗号装置の入力差分と出力差分の発生
    確率を求めることを特徴とする暗号アルゴリズムの強度
    評価に用いるデータ変化探索方法のプログラムを記録し
    た記録媒体。
JP11205003A 1999-07-19 1999-07-19 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体 Pending JP2001034162A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11205003A JP2001034162A (ja) 1999-07-19 1999-07-19 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11205003A JP2001034162A (ja) 1999-07-19 1999-07-19 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体

Publications (1)

Publication Number Publication Date
JP2001034162A true JP2001034162A (ja) 2001-02-09

Family

ID=16499851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11205003A Pending JP2001034162A (ja) 1999-07-19 1999-07-19 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体

Country Status (1)

Country Link
JP (1) JP2001034162A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001316320A (ja) * 2000-05-01 2001-11-13 Mitsubishi Chemicals Corp アルデヒド類の製造方法
JP2008011084A (ja) * 2006-06-28 2008-01-17 Ntt Docomo Inc 暗号強度評価装置及び暗号強度評価方法
CN113475034A (zh) * 2018-12-19 2021-10-01 皇家飞利浦有限公司 电路编译设备和电路评估设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001316320A (ja) * 2000-05-01 2001-11-13 Mitsubishi Chemicals Corp アルデヒド類の製造方法
JP2008011084A (ja) * 2006-06-28 2008-01-17 Ntt Docomo Inc 暗号強度評価装置及び暗号強度評価方法
CN113475034A (zh) * 2018-12-19 2021-10-01 皇家飞利浦有限公司 电路编译设备和电路评估设备
CN113475034B (zh) * 2018-12-19 2023-10-17 皇家飞利浦有限公司 电路编译设备和电路评估设备

Similar Documents

Publication Publication Date Title
Alzaidi et al. Sine‐Cosine Optimization‐Based Bijective Substitution‐Boxes Construction Using Enhanced Dynamics of Chaotic Map
US9002007B2 (en) Efficient, remote, private tree-based classification using cryptographic techniques
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP3499810B2 (ja) 暗号化装置、暗号化方法及び暗号化装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体並びに復号装置、復号方法及び復号装置としてコンピュータを機能させるためのプログラムを記録したコンピュータ読取り可能な記録媒体
US6415032B1 (en) Encryption technique using stream cipher and block cipher
Zhang et al. Cryptanalysis and improvement of an image encryption algorithm based on hyper-chaotic system and dynamic S-box
Chatterjee et al. Accelerating sorting of fully homomorphic encrypted data
Norouzi et al. Breaking a novel image encryption scheme based on an improper fractional order chaotic system
JPWO2009075337A1 (ja) 暗号化方法及び復号化方法、装置並びにプログラム
US20110200186A1 (en) Method of cipher block chaining using elliptic curve cryptography
Mohan et al. Homomorphic encryption-state of the art
US6111952A (en) Asymmetrical cryptographic communication method and portable object therefore
CN112949741B (zh) 基于同态加密的卷积神经网络图像分类方法
CN112580071A (zh) 一种数据处理方法及装置
US6553120B1 (en) Method for data decorrelation
JP2001034162A (ja) 暗号アルゴリズムの強度評価に用いるデータ変化探索装置及び方法、この方法を記録した記録媒体
Tayal et al. Analysis of various cryptography techniques: a survey
Babenko et al. Algebraic analysis of GOST encryption algorithm
Patel et al. A novel verifiable multi-secret sharing scheme based on elliptic curve cryptography
Laud et al. Universally composable privacy preserving finite automata execution with low online and offline complexity
Haraty et al. A comparitive study of elgamal based cryptographic algorithms
Yadav et al. Key Cryptographic Methods in the Cloud: A Comparative Study
US7142673B1 (en) Method for the cryptographic conversion of L-bit input blocks of digital data into L-bit output blocks
Sato et al. Analysis of division property using MILP method for lightweight blockcipher piccolo
Bhattacharyya et al. Post-quantum Cryptography: A Brief Survey of Classical Cryptosystems, Their Fallacy and the Advent of Post-quantum Cryptography with the Deep Insight into Hashed-Based Signature Scheme