JP3017725B2 - データ変換装置 - Google Patents

データ変換装置

Info

Publication number
JP3017725B2
JP3017725B2 JP1738899A JP1738899A JP3017725B2 JP 3017725 B2 JP3017725 B2 JP 3017725B2 JP 1738899 A JP1738899 A JP 1738899A JP 1738899 A JP1738899 A JP 1738899A JP 3017725 B2 JP3017725 B2 JP 3017725B2
Authority
JP
Japan
Prior art keywords
data
key
linear
conversion
mid
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 - Lifetime
Application number
JP1738899A
Other languages
English (en)
Other versions
JPH11282345A (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.)
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 JP1738899A priority Critical patent/JP3017725B2/ja
Publication of JPH11282345A publication Critical patent/JPH11282345A/ja
Application granted granted Critical
Publication of JP3017725B2 publication Critical patent/JP3017725B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】この発明は、データの通信又
は蓄積において、データを秘匿するための暗号化装置に
用いられるデータ変換装置、特に、秘密鍵の制御のもと
でデータをブロック単位で暗号化又は復号を行う共通鍵
暗号方式による暗号化装置に適するデータ変換装置に
する。
【0002】
【従来の技術】高速かつ安全な共通鍵暗号を構成するた
めに、暗号化対象のデータを適当な長さのブロックに分
割し、そのデータブロック毎に暗号化する方法をブロッ
ク暗号と呼ぶ。通常、ブロック暗号は、暗号化の対象で
ある入力データを撹乱するためのデータ拡散部と、暗号
装置に入力された秘密の共通鍵(以降ではこの鍵を主鍵
と呼ぶ)を入力としてデータ拡散部が利用する一連の副
鍵を生成するための鍵スケジュール部とから構成されて
いる。データを秘匿するためのこのようなデータ変換装
置に使用される代表的な共通鍵暗号方式には、米国連邦
標準暗号であるDES(Data Encryption Standard)暗
号がある。
【0003】図1は、DES暗号の機能構成を示す。D
ES暗号では、64ビットの秘密鍵(うち8ビットはパ
リティに用いられる)を用い、64ビットのデータブロ
ック単位に暗号化又は復号を行う。図1において、暗号
化処理は、データ拡散部10において平文Mの64ビッ
トを初期転置部11において初期転置で変換した後、3
2ビットごとのブロックデータL0,R0に分割される。次
に、ブロックデータR0は図2の第iラウンド処理部14
i (i=0,1,…,15)に示すデータ変換部である関数演算部
(ラウンド関数とも呼ばれる)12へ入力され、48ビ
ットの副鍵k0の制御のもとにf(R0, k0) に変換される。
この変換データf(R0, k0) とブロックデータL0との排他
的論理和をXOR回路13でとり、更に、その出力値と
ブロックデータR0とを入れ替えて、次のブロックデータ
L1,R1とする。即ち、 R1 =L0(+)f(R0, k0) L1 =R0 である。ここで丸内に+の記号は排他的論理和を表わす
ものとするが文章中においてこれを(+)とも表記する
ことにする。このように2つのブロックデータL0,R0
入力として演算部12と排他的論理和回路13とデータ
の入れ替え(スワップ)とによりL1,R1を出力する第0
段ラウンド処理部140 が構成され、同じようなラウン
ド処理部141〜1415 が縦続的に設けられる。第i段ラ
ウンド処理部14i による処理を第i段のラウンド処
理と呼ぶことにする。ただし、i=0,1,…,15 である。つ
まり各ラウンド処理部14i (0≦i≦15)では、 Ri+1 =Li(+)f(Ri,ki) Li+1 =Ri の処理が行われ、最後にR16,L16を統合して64ビット
にした後、最終転置部15において最終転置で変換して
暗号文64ビットを出力する。なお、最終転置15は初
期転置11の逆変換に相当する。
【0004】復号処理においては、関数f(関数演算部
12)に入力する副鍵k0,k1,…,k1 4,k15の順序だけを
逆転させて、k15,k14,…,k1,k0の順に入力するよう
にする点を除けば、暗号化処理と同じ手順で実行でき
る。その場合、最終段ラウンド処理部1415のスワップ出
力L16, R16を、図に示すように更にスワップするように
構成すれば、復号処理において暗号文を初期転置11に
入力して図1の処理を実行することにより、最終転置1
5の出力に平文がそのまま得られる。鍵スケジュール部
20は、拡大鍵生成ルーチン16で64ビットの主鍵か
ら8ビット分のパリティビットを除いた56ビットを左
右28ビットずつの鍵データに分割し、それら各28ビ
ットの左右鍵データに対し16段の並び替え処理を行
い、各段の並び替え処理結果の左右鍵データ(計56ビ
ット)を縮約転置によりデータ拡散部10の対応するラ
ウンドに与える16個の48ビットの副鍵K0,k1,…,
k14,k1 5として生成する。
【0005】関数演算内部12の処理は、図2に示すよ
うに行われる。まず、32ビットブロックデータRi
拡大転置部17で48ビットデータE(Ri) に変換され
る。これに副鍵kiとで排他的論理和を XOR回路18で取
り、48ビットデータE(Ri)ρk i に変換した後、8個
の6ビットごとのサブブロックデータに分割する。この
8個のサブブロックデータはそれぞれ異なるS-box S0
S7に入力され、各々が4ビットの出力を得る。なお、こ
のS-box Sj(j=0,1,…,7)は6ビットの入力データから
4ビットの出力データに変換する非線形変換テーブルで
あり、DES暗号の本質的な安全性を担っている部分で
ある。S-box S0〜S7の8つの出力データは、再び連結さ
れて32ビットデータになった後、転置変換部19を経
て、図2に示されるように関数演算部12の出力f(Ri
ki) となる。この出力は、図1に示されるように、Li
排他的論理和されてRi+1となる。
【0006】次に、暗号解読法について述べる。DES
暗号を始めとする従来の共通鍵暗号方式についてはさま
ざまな方面から暗号解読が試みられており、そのなかで
も、極めて効果的な解読法は、E. Biham及びA. Shamir
によって“Differential Cryptanalysis of DES-like C
ryptosystems,"Journal of Cryptology, Vol.4, No.1,p
p.3-72に提案された差分解読法と、松井によって“Line
ar Cryptanalysis Method for DES cipher,"Advances i
n Cryptology-EUROCRYPT'93(Lecture Notes inComputer
Science 765), pp.386-397に提案された線形解読法で
ある。
【0007】DES暗号に対する差分解読法は、2つの
データX,X*の差分を ΔX=X(+)X* としたとき、解読者が入手している平文・暗号文の2組
を以下の式に適用して最終ラウンド1415における副
鍵k15 を求めることを目的としている。図1の暗号化
処理において、第1及び第2平文を入力したときの各ラ
ウンド処理部14 i での入力ブロックデータを(Li,
Ri),(L* i, R* c )とする。上記差分の定義により次式 ΔLi=Li(+)L* i ΔRi=Ri(+)R* i が成立する。図1において、L15=R14, L* 15=R* 14, L16=
R15, L* 16=R* 15なので次式 R16=L15(+)f(R15, k15) R* 16=L* 15(+)f(R* 15, k15) が成立し、これら2つの式の両辺の排他的論理和をとる
と次式 ΔR16=ΔL15(+)f(L16, k15)(+)f(L16(+)ΔL16, k15)が
得られ、その両辺とΔR14=ΔL15との排他的論理和をと
ることにより次の式が 得られる: f(L16,k15)(+)f(L16ΔL16), k15)=ΔR16(+)ΔR14 このとき、L16,ΔL16,ΔR16 は暗号文から得られる
データであるので入手済の情報である。このため、解読
者がΔR14 を正しく求めることができるならば、上式
はk15 のみが未知定数となり、入手済の平文・暗号文
の組を用いてk15に関する全数探索を行うことで、解読
者は正しいk15を見つけだすことができる。従って、副
鍵k15が求まってしまえば、残り8(即ち56-48)ビットは
総当たりでも簡単に求まってしまう。
【0008】一方、ΔR14 についてみてみると、この
値は中間差分値であるため、一般には求めることが困難
である。そこで、第0段ラウンドから最終ラウンドの一
つ前までの第14段ラウンドまでにおいて、各ラウンド
(段)が確率piで次式 ΔRi+1 =ΔLi(+)Δ{f(ΔRi)} ΔLi+1 =ΔRi+1 のように近似されるとおく。ここでのポイントは、ある
ΔRiが入力されたとき、副鍵kiの値に関わらず、確率p
iでΔ{f(ΔRi)}を予測できるということにある。この
ように近似できるのは、非線形な変換であるS-box にお
いて、入力差分によっては差分出力の分布に極めて大き
な偏りが生じるためである。例えば、S-box S0では、入
力差分"110100(2)"のとき、1/4 の確率で出力差分"0010
(2)"に変換されるためである。そこで、各々のS-box が
確率psi で入力差分と出力差分との関係が予測できる
とおき、これらを組み合わせることで各ラウンドの近似
を求める。更に、各ラウンドでの近似を連結していくこ
とで、ΔR14 は確率P=Πi=0 13pi でΔL0,ΔR0(Δ
L0,ΔR0は平文から得られるデータであるので入手済の
情報である)から求められることになる。なお、この確
率Pが大きいほど、暗号解読が容易である。このように
して、副鍵k15が求められると、今度は1段少ない15
段DES暗号とみなして、同様の手法で、副鍵k14を求
めていくということを繰り返して、最終的に副鍵k0まで
求めていく。
【0009】この解読法による暗号解読が成功するかど
うかは確率Pに依存し、この値が大きいほど成功しやす
い。Biham らによると、この解読法では、247組の解読
者が選択した平文・暗号文の組を入手できればDES暗
号を解読できるとしている。また、DES暗号に対する
線形解読法は、次の線形近似式 (L0,R0)Γ(L0,R0)(+)(L16, R16)Γ(L16, R16) =(k0,k1,…,k15)Γ(k0,k1,…,k15) を構成し、解読者が入手している平文・暗号文の組によ
る最尤法を用いて副鍵を求めることを目的としている。
ただし、Γ(X) はXの特定のビット位置を選択するベク
トルを表し、マスク値という。
【0010】線形近似式の役割は、暗号アルゴリズム内
部を線形表現で近似的に置き換え、平文・暗号文の組に
関する部分と副鍵に関する部分とに分離することにあ
る。つまり、平文・暗号文の組に関して、平文の特定の
ビット位置の値と暗号文の特定のビット位置の値との全
ての排他的論理和が一定値となり、その値は副鍵の特定
のビット位置の値の排他的論理和に等しくなることを表
している。従って、解読者は (L0,R0)Γ(L0,R0)(+)(L16, R16)Γ(L16, R16) の情報から (k0,k1,…,k15)Γ(k0,k1,…,k15)(1ビット) の情報が得られるということになる。このとき、(L0,R
0),(L16,R16)はそれぞれ平文・暗号文のデータである
ので入手済の情報である。このため、解読者がΓ(L0,R
0),Γ(L16,R16),Γ(k0,k1,…,k15) を正しく求め
ることができるならば、(k0,k1,…,k15)Γ(k0,k1
…,k15)(1ビット)を求めることができる。
【0011】DES暗号では、非線形な変換が起きる部
分はS-box しかないため、S-box についてのみ線形表現
ができれば、容易に線形近似式が構成できる。そこで、
各々のS-box が確率psi で線形表現できるとおく。こ
こでのポイントは、S-box に対する入力マスク値が与え
られたとき、確率psi でその出力マスク値を予測でき
るということにある。これは、非線形変換テーブルであ
るS-box において、入力マスク値によっては差分マスク
値の分布に極めて大きな偏りが生じるためにおこる。例
えば、S-box S4では、入力マスク値"010000(2)"のと
き、3/16の確率で出力マスク値"1111(2)"が予測される
ためである。これらS-box におけるマスク値を組み合わ
せることによって、各ラウンドが確率piで入力マスク値
と出力マスク値との線形表ができ、各ラウンドでの線形
表現を連結していくことで、Γ(L0,R0),Γ(L16
R16),Γ(k0,k1,…,k15) は確率 P =1/2+215Πi=0 15|pi−1/2| で求められることになる。なお、この確率Pが大きいほ
ど、暗号解読が容易である。
【0012】松井によると、この解読法で、243組の既
知平文・暗号文の組を用いて、DES暗号の解読に成功
している。さて、上記の解読法に対抗するためには、確
率Pが十分に小さくなればよい。このため、確率Pを小
さくするための提案がさまざま行われており、なかでも
従来の暗号方式において、もっとも簡単に安全性を高め
るための方法がラウンド数(段数)を増やすことであっ
た。例えば、DES暗号を3つつなげたTriple-DES暗号
は、実質的にDESのラウンド数を16段から48段に
増やした暗号方式であり、確率Pは、DES暗号よりも
はるかに小さい。
【0013】
【発明が解決しようとする課題】しかし、上記の解読法
に対抗するための対策として、ラウンド数(段数)を増
加させることは、暗号化速度を犠牲にすることになる。
例えば、ラウンド数を3倍に増やせば、暗号化速度は1/
3 になる。つまり、現在のDES暗号の暗号化速度はPe
ntium PCクラスで約10Mbpsであるため、Triple−DES
暗号ともなると約3.5Mbps まで暗号化速度が低下する。
一方で、ネットワークやコンピュータなどは年々高速化
しており、データ変換装置もそれらの高速化に対応した
ものが望まれている。このため、従来のデータ変換装置
では、それらの高速化の要求に対して、安全性と高速性
を同時に満たすことはきわめて困難な状況になってい
る。
【0014】この発明の目的は、ラウンド関数f(関数
演算部)を安全性と高速性を同時に満たすような構造に
することによって、ラウンド数(段数)を大幅に増加さ
せることなく安全性を確保し、かつ高速な暗号化処理が
可能となるようなデータ変換装置を提供することにあ
る。
【0015】
【課題を解決するための手段】この発明によれば、複数
の鍵データを保持する鍵記憶手段と、上記複数の鍵デー
タが与えられ、それぞれ鍵依存の非線形変換を行う非線
形関数部をそれぞれ含む縦続接続された複数のラウンド
処理部とを含み、入力データを鍵データに依存して別の
データに変換するデータ変換装置であり、各上記ラウン
ド処理部の上記非線形関数部は:上記ラウンド処理部へ
の入力データを、上記鍵記憶手段に蓄積された第1鍵デ
ータに基づいて線形変換を行う第1鍵依存線形変換手段
と、上記第1鍵依存線形変換手段の出力データを4個の
サブデータに分割する分割手段と、上記4つのサブデー
タのそれぞれに非線形変換を行う第1非線形変換手段
と、上記鍵記憶手段に蓄積された第2鍵データと、上記
第1非線形変換手段の各々の出力サブデータとで線形変
換を行う第2鍵依存線形変換手段と、上記第2鍵依存線
形変換手段の4つの出力サブデータのそれぞれに非線形
変換を行う第2非線形変換手段と、及び上記第2非線形
変換手段の4つの出力サブデータを結合して上記非線形
関数手段の出力とする結合手段、とを含み、上記第2鍵
依存線形変換手段は、その入力に対し4×4行列で規定
される排他的論理和を行う線形変換層を含んでいる。
【0016】また、第2鍵依存線形変換部が、第1非線
形変換部の出力である4つのサブデータA1,A2,A3,A4
に対し、A1とA2とA3と第二の鍵データK2=[k21 k22 k
23k24]中のk21 との排他的論理和、A1とA2とA4とk22
との排他的論理和、A1とA3とA4とk23 との排他的論理
和、A2とA3とA4とk24 との排他的論理和により、前記
第2鍵依存線形変換部の4つの出力サブデータに鍵依存
線形変換を行うことを特徴とする。
【0017】また、第1及び第2非線形変換部におい
て、その非線形変換部への各入力サブデータAを2つの
サブブロックA0,A1に分割し、それぞれのサブブロック
について、線形変換ならびに非線形変換を縦続的に行
い、その出力サブブロックB0,B1を統合して、その非線
形変換部の出力サブデータBとすることを特徴とする。作用 この発明によれば、第1及び第2非線形変換部における
差分確率・線形確率がp(<1)であるとき、各段を近
似するときの差分確率・線形確率はpi≦p2(ただし、差
分解読法では関数f(非線形関数部)への入力差分が0
でないとき、線形解読法では関数fでの出力マスク値が
0でないとき)となることが保証される。また、関数f
が全単射であるとき、暗号装置の段数を3rとすると、
暗号装置としての確率はP≦pi 2r≦p4rとなる。更に、特
に第2鍵依存線形変換部が4つのサブデータから選んだ
3つと鍵データの4分割の1つの排他的論理和の全ての
組合せを演算する構造を有するならば、各段を近似する
ときの確率はpi≦p4、暗号装置としての確率はP≦pi 2r
≦p8rとなる。
【0018】また、第1及び第2非線形変換部はそれぞ
れの手段が完全に並列処理できるような配置となってい
るため、高速化に寄与する。ゆえに、差分解読法や線形
解読法に対する安全性を有した高速な非線形関数を構成
でき、安全性と高速性を両立させたデータ変換装置を提
供することが可能になる。
【0019】また、第1及び第2非線形変換部におい
て、その非線形変換部への入力サブデータAを2つのサ
ブブロックA0,A1に分割し、それぞれのサブブロックに
ついて、線形変換ならびに非線形変換を行い、出力サブ
ブロックB0,B1を統合して、その非線形変換部の出力サ
ブデータBとすることにより、非線形関数が処理するこ
とができる入力ビット長を2倍に延ばすことができる。
これにより、64ビット長の非線形関数であっても、差
分解読法や線形解読法に対する安全性を有した、非線形
変換部にs-b表を用いた構成が実現できる。
【0020】
【発明の実施の形態】第1実施例 以下、この発明の一実施例を図面を用いて説明する。図
3は、この発明の一実施例を示すデータ変換装置におけ
る、暗号化処理手順の機能構成を示したものである。こ
の発明によるデータ変換装置においても、入力データを
左、右ブロックデータL0, R0に分割し、それらを順次ラ
ウンド処理するN段に縦続接続されたラウンド処理部38
0〜38N-1が設けられている。各ラウンド処理部38i(i=0,
1,…,N-1)は図1のラウンド関数部12に対応する非線
形関数部304 と、図1の XOR回路13に対応する線形演
算部305 と、交換部306 とから構成されている。
【0021】平文に相当する入力データMを入力部301
から暗号装置内に入力する。予め、鍵入力部320 から入
力されたデータに基づいて鍵データ生成部321 により鍵
データ {fk; k00,k01,k02; k10,k11,k12; …; k(N-1)0,k
(N-1)1,k(N-1)2; ek} が生成され、鍵記憶部322 に保持される。入力平文デー
タMは、鍵記憶部322 に蓄積されている鍵データfkによ
る初期鍵依存変換部302 で変換された後、初期分割部30
3 で左、右ブロックデータL0,R0に分割される。例えば
64ビットのデータが32ビットずつのブロックデータ
L0,R0にビット分割される。初期鍵依存変換部302 で
は、例えば鍵データfkと入力データMとの排他的論理和
や鍵データfkによる入力データMのビットローテーショ
ン(ビット回転)などの線形変換もしくは乗算などを組
み合わせた非線形変換などが行われる。
【0022】右ブロックデータR0は、鍵記憶部322 に蓄
積されている鍵データk00,k01,k0 2と共にこの発明に
より特徴的に構成された非線形関数部304 に入力され、
非線形関数部304 で非線形変換処理によりデータY0に変
換される。データY0と左ブロックデータL0は線形演算部
305 で線形演算されてデータL0 *に変換される。データL
0 *とR0は交換部306 でデータ位置の交換(スワップ)が
行われ、L1←R0,R1←L0 * とされ、L1, R1が次の第1
段ラウンド処理部381 に入力される。
【0023】以下、第i段ラウンド処理部38i (i=0,1,
…,N-1)において、2つの入力ブロックデータLi, Ri
ついて上記と同様の処理を繰り返し行う。即ち、左、右
ブロックデータLi,Riについて、データRiは、鍵記憶部
322 に蓄積されている鍵データki0,ki1,ki2 と共に非
線形関数部304 に入力され、非線形関数部304 で非線形
変換処理が行われて、データYiに変換される。データYi
とデータLiは線形演算部305 で演算されてデータLi *
に変換される。データLi * とデータRiは交換部306 で
データ位置の交換が行われ、Li+1←Ri,Ri+1←Li *
ように交換される。線形演算部305 は例えば排他的論理
和演算を行うものである。
【0024】暗号化を行うためのデータ変換装置として
の安全性を確保するための適切な繰り返し回数(ラウン
ド回数)をNとすると、ラウンド処理部380〜38N-1によ
る繰り返し処理の結果、左、右ブロックデータLN,RN
得られる。このデータLN,RNを最終結合部307 で結合
し、つまり例えば32ビットの各LN,RNをビット結合し
て64ビットのデータとし、その後、鍵記憶部322 に蓄
積されている鍵データekによる最終鍵依存変換部308 で
変換し、出力部309 から暗号文として出力データCを出
力する。復号については、暗号化処理手順と逆の手順を
たどることによって、暗号文Cから平文Mが得られる。
特に、最終鍵依存変換部308が、初期鍵依存変換部302の
逆変換になっているならば、図3において入力データの
代りに暗号文データを入力し、鍵データを図3とは逆
に、ek,k(N-1)0,k(N-1)1,k(N-1)2,…,k10,k1 1,k
12,k00,k01,k02,fkを順次与えればよい。
【0025】次に、非線形関数部304 の内部を詳細に説
明する。図4は、非線形関数部304の内部の機能構成を
抜き出して示したものである。第i段ラウンド処理部38
i の入力ブロックデータRiは、鍵記憶部322 に蓄積され
ている鍵データki0,ki1,ki2 と共に非線形関数部304
への入力データとなる。ブロックデータRiは、鍵デー
タki0 による第1鍵依存線形変換部341 により例えば
排他的論理和がとられてデータRi *=Ri(ki0 に線形変
換される。次に、データRi * は分割部342 において例
えば8ビットづつの4つのデータin0,in 1,in2,in3
ビット分割される。4つのデータin0,in1,in2,in
3は、それぞれ非線形変換部3430,3431,3432,3433
おいて、データmid00,mid01,mid02,mid03に非線形変
換された後、第2鍵依存線形変換部344 に入力される。
【0026】第2鍵依存線形変換部344 では、4つのデ
ータ系統から入力されたデータmid0 0,mid01,mid02,m
id03を系統間で互いに線形処理(排他的論理和)して新
たな4つの系統のデータとし、更にそれらの系列のデー
タを鍵データki1の4つの部分によりそれぞれ線形処理
(排他的論理和)して4つの系統のデータmid10,mi
d 11,mid12,mid13を出力する。これら4つのデータは
非線形変換部3450, 3451,3452, 3453に入力され、それ
ぞれデータout0, out1, out2, out3とされる。これら4
つの出力データは結合部346 で結合されてデータYi *
され、更に第3鍵依存線形変換部347 においてデータYi
* ト鍵データki2との線形処理によりデータYiを生成して
出力する。
【0027】上述の第2鍵依存線形変換部344 は、デー
タmid00,mid01,mid02,mid03に対応して設けられたデ
ータ処理系統300,301,302,303 間でこの発明に
よるアルゴリズムに従ってデータの排他的論理和をとる
ことにより、図3のデータ変換装置のラウンド数を増や
さずに安全性を高めるよう構成される。図3のデータ拡
散装置の差分解読及び線形解読に対する安全性は、各ラ
ウンドの非線形関数部304 の構成に依存し、特に図4に
示す非線形関数部304 が図5に示すような基本構成のm
ビットの入力データがそれぞれ与えられるn個の非線形
変換部(S-box)から成る第1非線形変換部343 と、そ
れらのn個の出力を線形変換する線形変換部344Aと、そ
のn個のmビット出力をそれぞれ非線形変換するn個の
非線形変換部(S-box)から成る第2非線形変換部345
とによって安全性が決まる。特に、いかにして差分解読
及び線形解読に対する耐性が強い最適な線形変換部344A
を構成するかが重要である。この発明によれば、線形変
換部344Aを{0, 1}上のn×n行列Pとして表現し、その
行列Pの要素を最大差分確率・線形確率p、qが最小と
なるように決定していくことにより、最適な線形変換部
344Aを構成する。ただし、第2鍵依存線形変換部344 に
含まれる副鍵ki1による変換部は行列Pにより決定した
線形変換部層344Aに対し図6に示すように鍵依存変換部
344Bとして付加することとする。なお、"最適である"と
は、上記の構造を有する線形変換部344Aの中で差分解読
・線形解読に対する耐性が最も強くなるということであ
り、必ずしも他の指標、例えばアバランシュ性などにつ
いても最適であることを意味するわけではない。しか
し、経験的にいえば、一般に段数(ラウンド数)を増や
すだけでも差分解読・線形解読以外の攻撃を容易に回避
できる一方、差分解読・線形解読については注意深くラ
ウンド関数の特性を検討しなければ段数を多少増やした
だけで攻撃を回避できるかどうかはわからない。そこ
で、この発明では、ラウンド関数の差分解読・線形解読
に対する耐性を最も重視し、最適な線形変換部344Aを求
める。
【0028】この発明によれば、図5において上述のよ
うに線形変換部344Aを{0, 1}上のn×n行列Pとして
表現する。この行列Pは、mビット単位での線形変換で
あり、その線形変換部344Aが排他的論理和XOR だけで構
成できることを意味する。即ち、この変換を次式
【0029】
【数1】 で表すことができる。特に、m=8の場合はバイト単位
での線形変換となり、ワード幅が8ビット以上のいずれ
のプラットフォームにおいても効率的な実装が可能とな
る。
【0030】例えばn=4の場合の具体例として、次式
【0031】
【数2】 で表される4×4行列PE を説明する。行列PE を用い
て構成したラウンド関数は以下の性質を有する。ただし
S-box は全単射であると仮定する。上記行列式により規
定されるz'0, z'1, z'2, z'3 はそれぞれ以下の演算を
表している。
【0032】 z'0=0・z0(+)1・z1(+)1・z2(+)1・z3=z1(+)z2(+) (3-1) z'1=1・z0(+)0・z1(+)1・z2(+)1・z3=z0(+)z2(+) (3-2) z'2=1・z0(+)1・z1(+)1・z2(+)0・z3=z0(+)z1(+) (3-3) z'3=1・z0(+)1・z1(+)1・z2(+)1・z3=z0(+)z1(+)z2(+)z3 (3-4) 差分解読及び線形解読に対するラウンド関数の耐性は、
active s-boxの最少個数nd, nl から決めることがで
き、これらの値は行列Pを決定した時点で決まる値であ
る(付録参照)。差分解読法では入力差分値Δxが非零
であるs-box をactive s-boxと呼び、線形解読法では出
力マスク値Γyが非零であるs-box をactives-boxと呼
ぶ。
【0033】一般に、ある行列Pが与えられたととき、
それに対応する線形変換部344Aの構成は複数存在する。
なぜなら、行列Pは線形変換部344Aの入力データと出力
データとの関係を表しているだけであり、線形変換部の
具体的構成を規定しているわけではない。線形変換部34
4Aの構成が異なっても、線形変換部344Aの入力データと
出力データとの関係を表す行列Pが同じであるならば、
それらは同じ特性を持つものと判断できる。従って、以
下では差分解読及び線形解読に対する耐性が高く、かつ
アバランシュ性がよくなるような行列Pを決めた後に線
形変換部344Aの構成を決めることにする。その方が、線
形変換部344Aの個々の構成について最適な特性を有する
かどうかを調べて選択していくより効率よく、最適な特
性を有する線形変換部344Aを見つけることができるため
である。
【0034】n×n行列Pの要素は、差分特性に注目し
て以下の探索アルゴリズムによって決定される。 Step 1:安全性閾値T(Tは2≦T≦nなる整数)を設定す
る。 Step 2:ハミング重みがT-1 以上となる列ベクトルの集
合Cを用意する。具体的には要素"1"の数がT-1 以上の
n次元列ベクトルをn個以上用意する。
【0035】Step 3:集合Cからn個の列ベクトルの組
Pcを選択する。全ての組の検査を完了するまで以下の処
理を繰り返す。 Step 3-1:列ベクトルの組Pcについて、ndを求める。こ
のことをnd(Pc)と表す。 Step 3-2:nd(Pc)≧T ならば、そのn個の列ベクトルで
構成される行列P cを候補行列として採用する。
【0036】Step 4:全ての候補行列の中で、最大のnd
の値を与えた行列Pとnd(P)の値を出力する。 上記探索アルゴリズムによる候補行列を採用するなら
ば、ndがT以上の値を持つことが保証される。ndが最大
となるような行列Pを求めるには上記探索アルゴリズム
を実行する毎にTをT=n, n-1, …, 3, 2の順に1ずつ減
らしていくことで、効率よく行列Pを発見できる。
【0037】上記探索アルゴリズムにおいて、差分解読
及び線形解読に対しある程度満足いく耐性が得られるの
であれば、Step 3-2まで実行してnd(Pc)≧Tとなる行列
を目的とする行列Pとして使用してもよい。あるいは、
Step 1を実行し、Step 2でハミング重みがT-1以上とな
るベクトルをn個選択し、それにより構成した行列Pcを
目的とする行列Pとして使用してもよい。
【0038】線形変換部344Aの入力マスク値は、線形変
換部344Aの出力マスク値の排他的論理和によって表現可
能であるので、差分特性の場合と同様に、ある行列とし
て表現できる。幾つかの線形変換部344Aの構成につい
て、差分特性に注目した行列と線形表現に注目した行列
との関係を調べた結果、以下の2つの予測ができた。 予測1:線形変換部344Aが{0, 1}上のn×n行列Pで
与えられたとする。このとき、線形変換部344A層の入力
差分値Δzと出力差分値Δz'との関係(差分値パス)は
行列Pで与えられ、入力マスク値Γz と出力マスク値Γ
z'との関係(マスク値パス)は転置行列TPで与えられ
る。即ち、 Δz'= PΔz (4) Γz =TPΓz' (5) と表すことができる。
【0039】予測2:行列Pを用いた差分値パスにおけ
るactive s-boxの最少個数ndと行列Pの転置行列TPを用
いたマスク値パスにおけるactive s-boxの最少個数nl
同じである。上記予想2から、前述の探索アルゴリズム
による候補行列を採用するならば、nlもT以上の値を持
つ。例えば先の行列PEの場合、差分値パスに対する行列
PEと、マスク値パスに対する行列TPE は以下のようにな
る。
【0040】
【数3】 この2つの行列について、それぞれnd=3, nl=3であるこ
とを証明することができる(付録参照)。行列Pが与え
られたとき、それに対応する線形変換部344Aの構成を決
めるアルゴリズムを以下に示す。ここでは、(1) 排他的
論理和(XOR) の個数を最少にする、又は(2) 同じような
副構成が繰り返し現れる、を満たすようにする。
【0041】Step 1:行列Pにおいて、2つの行を選択
し、一方の行(a行)にもう一方の行(b行)を加える
(基本演算と呼ぶ)。 Step 2:基本演算のみを用いて、行列Pが単位行列Iに
なるまで行を選択し、基本演算を行うことを繰り返し、
そのときに行った基本演算の回数を数え、基本演算の回
数が最少となるような行列変形手順を求める。
【0042】Step 3:線形変換部344A層を構成するため
に、Step 2で求めた変形手順の逆順に、そのときの基本
演算で選択したa行、b行に相当するAライン、Bライ
ンとのXOR 結線を行う。この様にして決められた線形変
換部344Aを有する第2鍵依存形線形変換部344の具体例
を図6に示す。線形変換部344Aにおいて、データmi
d00,mid01,mid02,mid03はそれぞれ処理系300 〜303
に入力され、処理系300 でmid00とmid01との排他的論理
和が XOR回路310 でとられ、また処理系302 でmid02とX
OR回路310の出力との排他的論理和が XOR回路312 でと
られ、更にその回路312の出力は処理系301 のXOR回路31
1でmid01との排他的論理和がとられる。処理系303 でXO
R回路310 の出力とmid03との排他的論理和が XOR回路31
3でとられ、処理系301 でXOR回路311 の出力とXOR回路3
13の出力との排他的論理和が XOR回路321 でとられ、処
理系300でXOR回路321の出力とXOR回路310の出力との排
他的論理和が XOR回路320 でとられる。XOR0で回路3
20,321,312,313の各出力と副鍵データki10,ki11, k
i12, ki13との各排他的論理和が鍵依存変換部344BのXOR
回路350〜353でそれぞれとられて、それぞれmid10,mid
11,mid12,mid13を出力する。つまりデータmid00,mid
01,mid02,mid03は相互に関連づけられた後、それぞれ
各8ビットの副鍵データk1i0, k1i1, k1i2, k1i3 に依
存した線形変換が行われる。論理式で示すと下記の論理
演算がなされる。
【0043】 mid10=mid00(+)mid02(+)mid03(+)ki10 (7-1) mid11=mid01(+)mid02(+)mid03(+)ki11 (7-2) mid12=mid00(+)mid01(+)mid02(+)ki12 (7-3) mid13=mid00(+)mid01(+)mid03(+)ki13 (7-4) なお、副鍵ki1は4つのデータki10,ki11 ,ki12 ,k
i13で構成されている。
【0044】図4に示したように、次に、これらデータ
mid10,mid11,mid12,mid13は、それぞれ非線形変換部
3450,3451,3452,3453において、データout0,out1
out2,out3に非線形変換された後、結合部346 におい
て、一つのデータYi * に結合される。つまり例えば4
つの8ビットのデータが1つの32ビットデータにビッ
ト結合される。最後に、データYi * は、鍵データki2
よる第3鍵依存線形変換部347 において、例えばデータ
Yi * をki2ビット左ローテーションによりデータYiに線
形変換され、非線形関数部304 からの出力データYiが生
成される。非線形変換部3430〜3433,3450 〜3453 のそ
れぞれは、例えばDES暗号のS-box のようなものであ
り、例えばROMにより構成され、それぞれ入力データ
をアドレスとして入力し、対応するデータを読み出すも
のである。
【0045】ここで、非線形変換部3430〜3433は4つ並
列に配置されており、その変換処理は相互に関連してい
ないため、これらは並列実行が可能である。また、非線
形変換部3450〜3453についても同様のことがいえる。こ
のため、これら両非線形変換はそれぞれ1ステップ(非
線形関数部304 としては合計2ステップ)で実行するこ
とができる。また、非線形変換部3430〜3433,3450〜34
53の差分確率・線形確率がpとすると、第2鍵依存線形
変換部344 に図6に示したものを用いた場合、非線形関
数部304 全体における差分確率・線形確率はp4 とな
る。従って、データ変換装置全体では段数(ラウンド
数)を3rとして確率P≦p8rで近似表現でき、例えばr=
4(段数12段)とするとP≦p32である。これはDES
暗号に換算すると48段以上に相当し、差分解読法及び
線形解読法に対して十分安全なデータ変換装置となる。
【0046】なお、鍵データfk,k00,k01,k02,k10
k11,k12,…,k(N-1)0,k(N-1)1,k(N-1)2,ekは図3
において鍵生成スケジュール部20の鍵入力部320 から
入力された主鍵情報Key から鍵データ生成部321 によっ
て変換され、鍵記憶部322 に蓄積されたデータである。
鍵データ生成部321 による鍵データの生成は、図1に示
したDES暗号の拡大鍵生成ルーチン部21と同様に構
成してもよいし、あるいは米国特許No.4,850,019に示さ
れている拡大鍵生成部と同様に構成してもよい。
【0047】図3に示した初期鍵依存変換部302 、最終
鍵依存変換部308 、及び図4に示した各非線形関数部30
4 内の鍵依存線形変換部341,344,347 は鍵に依存する
線形変換部であるため、差分解読法及び線形解読法以外
の解読法に対しても十分な安全性を兼ね備え、最も安全
性を重視した暗号装置である。なお、この発明はこの例
に特定されるだけでなく、例えば高速性を望むのであれ
ば、これら初期鍵依存変換部302 、最終鍵依存変換部30
8 、鍵依存線形変換部341,344,347 については、その
いずれかを削除する、又は鍵に依存しない変換手段に変
更することが可能である。この場合、差分解読法及び線
形解読法に対する安全性をそれほど低下させることな
く、暗号化処理速度の向上が望める。第2実施例 図3に示した第1実施例と同様の構成を有するデータ変
換装置において、図4に示す非線形関数部304 として他
の機能構成を用いた別の実施例を説明する。この実施例
は、図4における非線形変換部3430, 3431, 3432, 3433
の代わりに、それぞれ例えば8ビットの入力in0〜in3
に対して32ビットの拡大データMID00,MID01, MID02,
MID03を非線形変換により出力する等価的に図7A〜7
Dで示す非線形変換部3430'〜3433'を使用し、鍵依存線
形変換部344 として図8に示すものを使用する。
【0048】図4に示したのと同様にデータRiは、鍵記
憶部322 に蓄積されている鍵データki0,ki1,ki2と共
に非線形関数部304 への入力データとなる。データR
iは、鍵データki0による第1鍵依存線形変換部341 で、
例えば排他的論理和によりデータRi *=Ri(ki0に線形変
換される。次に、データRi *5 は分割部342 において
4つのデータin0,in1,in2,in3 に分割される。4つ
のデータin0,in1,in2,in3 は、それぞれ図7A〜
Dに示す非線形変換部3430',3431',3432',3433'にお
いて、拡大データMID00,MID01,MID02,MID03に非線形
変換される。第1実施例では、非線形変換部3430がmビ
ット入力in0 に対し、mビットのデータmid00を出力し
たのに対し、ここでは、非線形変換部3430'は、第1実
施例の図4における非線形変換部3430 と同じmビット
のデータmid00を上位mビットとして出力すると共に、
下位mビットに固定データ"00…0(2)"を出力するよう構
成されたS-box を有し、その上位mビットデータmid00
を布線により3系統に出力すると共にmビットの"00…0
0(2)"を出力するよう構成されている。即ち、非線形変
換部3430'はmビットのデータin0 を4mビットのデータ MID00=[mid00,00…0(2),mid00,mid00] (8-1) に変換する手段である。同様に、非線形変換部3431',3
432',3433' はそれぞれin1, in2, in3 から MID01=[00...0(2),mid01,mid01,mid01] (8-2) MID02=[mid02,mid02,mid02,00…0(2)] (8-3) MID03=[mid03,mid03,00…0,mid03] (8-4) に変換する手段である。式(8-1)で表される拡大データM
ID00の決め方は、予め図6の線形変換部344Aにおいてデ
ータmid00以外の全てのデータmid01, mid02, mid03をそ
れぞれ"00…0"とおいた場合に線形変換部344Aの出力4
系統に得られるデータ全体をMID00とすればよい。以下
同様にして式(8-1), (8-2), (8-3) で表される拡大デー
タMID01, MID02, MID03についてもそれぞれ容易に決め
ることができる。これら非線形変換部3430'〜3433'はそ
れぞれデータin0, in1, in2, in3をアドレスとし、デー
タMID00, MID01, MID02, MID03を直接読み出す変換テー
ブルとしてメモリにより構成してもよい。
【0049】次いで、これら拡大データMID00〜MID03
図8に示す鍵データki1による第2鍵依存線形変換部344
に入力される。MID00とMID01はXOR回路41で排他的論
理和がとられ、MID02とMID03は XOR回路42で排他的論
理和がとられ、XOR回路41,42の両出力の排他的論
理和がXOR回路43でとられ、XOR回路43の出力と鍵デ
ータki1との排他的論理和がXOR回路44でとられる。XO
R回路44の出力MID 1は各mビットの出力mid10,mi
d11,mid12,mid13にビット分割されて出力される。結
局、この第2鍵依存線形変換部344 は次式 MID1=MID00(+)MID01(+)MID02(+)MID03(+)ki1 (9) の演算で入力を線形変換する。
【0050】この線形変換演算による出力MID1=[mi
d10,mid11,mid12,mid13]の成分はそれぞれ次式で表
される: mid10=mid00(+)mid02(+)mid03(+)ki10 (10-1) mid11=mid01(+)mid02(+)mid03(+)ki11 (10-2) mid12=mid00(+)mid01(+)mid02(+)ki12 (10-3) mid13=mid00(+)mid01(+)mid03(+)ki13 (10-4) これは、図6における線形変換式(7-1)〜(7-4)と等価な
線形変換である。このようにして第1実施例と同じデー
タmid10,mid11,mid12,mid13が生成される。なお、k
i1は4つのデータki10,ki11,ki12,ki13で構成されて
いる。
【0051】次いで、データmid10,mid11,mid12,mid
13は、図4に示したのと同様にそれぞれ非線形変換部34
50,3451,3452,3453 において、データout0,out1,o
ut2,out3 に非線形変換された後、結合部346 におい
て、4つのデータout0,out1,out2,out3 が1つのデ
ータYi * に結合される。最後に、データYi * は、鍵デ
ータki2による第3鍵依存線形変換部347 において、例
えばki2ビット左ローテーションによりデータYiに線形
変換され、非線形関数部304 からの出力データYiが生成
される。
【0052】図7A〜7D、図8に示した第2実施例に
おいて、図7A〜7Dの非線形変換部3430〜3433 は第
1実施例と同様にそれぞれ各8ビットのデータmid00〜m
id03を出力するS-box のみで構成し、図7A〜7Dで示
した布線と8ビットの"00…0"を出力するレジスタを図
8の鍵依存線形変換部344 内に設け、その中で拡大デー
タMID00〜MID03を生成するようにしてもよい。
【0053】この第2実施例における第2鍵依存線形変
換部344 では、図8に示したように4つ排他的論理和に
より図6と等価な線形変換(図6では排他的論理和の個
数は10個)を実現しているため、第1実施例より高速
な変換が可能になる。また、第1実施例と同様に、非線
形変換部3430〜3433 と3450〜3453 は4つずつ並列に配
置されており、その非線形変換処理は相互に関連してい
ないため、これらはすべて並列実行が可能である。更
に、非線形変換部3430〜3433,3450〜3453 の差分確率
・線形確率がpとすると、非線形関数部304 全体におけ
る差分確率・線形確率はp4 となる。第3実施例 第1実施例と同様に、図3に示す機能構成を有するデー
タ変換装置において、その非線形関数部304 の内部の機
能構成として更に別のものを用いた実施例を説明する。
【0054】図4に示したように例えば32ビットのデ
ータRiは、鍵記憶部322 に蓄積されている鍵データ
ki0,ki1,ki2と共に非線形関数部304 へ入力される。
データRiは、鍵データki0 による第1鍵依存線形変換
部341 で、例えば排他的論理和によりデータRi *=Ri(k
i0に線形変換される。次に、データRi * は分割部342
において例えば8ビットの4つのデータin0,in1,i
n2,in3 に分割される。
【0055】非線形変換部3430 において、例えば図9
に示すように、in0は更に例えば4ビットの2つのサブ
ブロックin00とin01に分割された後、in00はサブ非線形
変換部51によりデータmid000 に変換され、またin01
との排他的論理和がXOR回路52でとられ、その出力in
00(in01はサブ非線形変換部53によりデータmid001
変換される。ついで、これら出力mid000とmid001の排他
的論理和がXOR回路54でとられ、そのXOR回路54の出
力とmid001を統合してmid00に変換する。つまり、非線
形変換部3430は入力in0を2つのサブブロックに分割
し、これら2つのサブブロックについて、それぞれ線形
変換と非線形変換を行い、その2つの出力サブブロック
を統合して非線形変換部の出力とする。同様に、in1 in
2 in3についても、それぞれ2つの非線形変換部と2つ
の排他的論理和回路とよりなる図9に示した機能構成の
非線形変換部3431,3432,3433 を用いて、データmi
d01,mid02,mid03に変換する。
【0056】変換されたデータmid00,mid01,mid02,m
id03は、図6に示した鍵データki1による第2鍵依存線
形変換部344 に入力される。この変換部344 によりそれ
ぞれ前述の式(7-1)〜(7-4)の演算が行われる。次いで、
データmid10は、非線形変換部3450 においても、例えば
図9に示したのと同様の機能構成により、更に2つのサ
ブブロックmid100とmid101 に分割され、mid100 はサブ
非線形変換部51によりデータout00に変換され、一
方、データmid100とmid101はXOR回路52により排他的
論理和がとられ、その出力mid100(mid101は非線形変換
部53によりデータout01に変換される。ついで、デー
タout 00とout01の排他的論理和がXOR回路54によりと
られ、その出力out00(out01とout01を統合してout0に変
換する。同様に、mid11,mid12,mid13についても、そ
れぞれ2つのサブ非線形変換部51,53と2つの排他
的論理和回路52,54とよりなる図9に示したのと同
様の機能構成の非線形変換部3451,3452,3453によりデ
ータout1,out2,out3 に変換される。
【0057】これら非線形変換された4つのデータou
t0,out1,out2,out3 は、結合部346において一つのデ
ータYi * に結合される。最後に、データYi * は、鍵デ
ータk i2による第3鍵依存線形変換部347 において、例
えばki2ビット左ローテーションによりデータYiに線形
変換され、非線形関数部304 からの出力データYiが生成
される。
【0058】この様に、この第3実施例においては、非
線形変換部3430〜3433,3450〜3453では、それぞれその
内部で入力データが2つのデータに分割されて2つのサ
ブ非線形変換部(図9では51,53)により非線形変
換される。このため、これら16個の各非線形変換部が
それぞれ扱うことのできる2倍のビット長を、非線形変
換部3430〜3433,3450〜3453 への入力データとするこ
とができる。例えば、サブ非線形変換部51,53を8
ビット長のs-boxとすると、非線形変換部3430〜3433,3
450〜3453 への各入力データは16ビット長となり、非
線形変換関数304 への入力データは64ビット長とな
る。これにより、図3の構成を有するデータ変換装置と
して、ブロック長を128 ビットとすることができる。
【0059】また、サブ非線形変換部51,53対応の
ものは8つずつ並列に配置されており、その非線形変換
処理は相互に関連していないため、これらはすべて並列
実行が可能である。更に、サブ非線形変換部51,53
の差分確率・線形確率がpとすると、非線形関数部304
全体における差分確率・線形確率はp4 となる。上述
において第1鍵依存線形変換部341、第2鍵依存線形変
換部344 、第3鍵依存線形変換部347は必ずしも鍵依存
とすることなく、つまり鍵データを入力することなく、
サブデータ内での線形変換を行ってもよい。
【0060】前述の各実施例ではハードウェア構成とし
て説明したが、そのデータ処理をプログラムに従ってコ
ンピュータにより実行するソフトウェアとして実現して
もよい。例えば、その処理手順の要部をフローチャート
として図10に示す。図10は図3の処理全体に対応す
る処理手順を表している。 ステップS1:処理繰り返し回数を表す変数iを0に初
期化する。
【0061】ステップS2:入力平文を初期変換してか
ら左右ブロックデータLi, Ri に分割する。 ステップS3:副鍵kiを使って非線形関数により右ブロ
ックデータRiを処理してブロックデータYiを生成する。 ステップS4:左ブロックデータLiをブロックデータYi
で線形処理してブロックデータL* i を生成する。
【0062】ステップS5:右ブロックデータRiを新し
い左ブロックデータLiとし、ブロックデータL* i を新し
い右ブロックデータRiとする。 ステップS6:iを1だけインクリメントする。 ステップS7:iがNに達したか判定し、達してなけれ
ばステップS3に戻り、前述と同様の処理ステップS3
〜S7を繰り返す。
【0063】ステップS8:前ステップS7でiがNに
達していると判定されると、左右データLi, Ri を結合
し、更に最終変換した結果を拡散データCとして出力す
る。図10のステップS3の処理の詳細は図4の非線形
関数部304 による処理に対応し、その処理手順を図11
に示す。 ステップS31:右データRiに対し第1の鍵依存線形変
換を行いデータR* iとする。
【0064】ステップS32:データR* iをmビットず
つn分割してデータin0, in1,…, in n-1 を生成する
(例えばm=8, n=4である)。 ステップS33:データin0, in1, …, inn-1 をそれぞ
れアドレスとしてn個の第1のS-box からそれぞれデー
タmid00, mid01, …, mid0(n-1)を読み出す。 ステップS34:データmid00〜mid0(n-1)に対し副鍵k
i1を使った鍵依存線形変換を行い、データmid10〜mid
1(n-1)を生成する。
【0065】ステップS35:データmid10〜mid1(n-1)
をそれぞれアドレスとしてn個の第2のS-box からデー
タout0〜outn-1 を読み出す。 ステップS36:データout0〜outn-1 を結合してデー
タY* i を得る。 ステップS37:データY* i に対し第3の鍵依存線形変
換を行いデータYiを生成し、出力する。 上記ステップS34の演算は、式(7-1)〜(7-4)による演
算でもよいし、又は式(8-1)〜(8-4)の定義を使った式
(9) による演算でもよい。更に、図12ではステップS
3〜S7をラウンド数だけ繰り返し実行する処理手順の
場合を示したが、図3に示したN段のラウンド処理部38
0〜38N-1のそれぞれの処理をそのままプログラム化して
この発明のデータ拡散を実施してもよい。
【0066】図12は、第1及び第2実施例で説明した
データ拡散処理手順を表すプログラムを予め記録媒体に
記録しておき、そのプログラムを読み出してこの発明の
データ拡散を実施する構成例を示す。中央演算装置(C
PU)110 、リードオンリーメモリ(ROM)120,ラン
ダムアクセスメモリ(RAM)130,記憶装置(例えばハ
ードディスクHD)140, I/Oインタフェース150,及びこ
れらを互いに接続するバス160 は一般的なコンピュータ
100 を構成している。この発明によるデータ拡散処理を
実施するプログラムは、例えば記録媒体としてのハード
ディスク140 に格納されている。ROM120 にはそれぞ
れのS-box が表として格納されている。データ拡散処理
を実行する際に、RAM130 にそのプログラムをハード
ディスク140 から読み込み、インタフェース150 を介し
て平文Mが入力されるとCPU110 の制御のもとにプロ
グラムが実行され、生成された拡散データCがインタフ
ェース150 を介して出力される。
【0067】データ拡散処理を実行するプログラムは記
録媒体としての任意の外部記憶装置180 に格納したもの
を使用してもよい。その場合、ドライバ170 を介して外
部記憶装置180 からプログラムをハードディスク140 に
一旦移して使用するか、RAM130 に転送して使用する
ことができる。出力された拡散データCは、図示してな
いが、例えば通信回線やインターネットを介して送出さ
れると、共通鍵を有している者のみがこの拡散データC
を復号することができる。この発明により拡散されたデ
ータCは差分解読法及び線形解読法に対し強い耐性を有
しているので、より安全な情報の送信が実現できる。
【0068】
【発明の効果】以上、詳細に説明したように、この発明
によれば、データを秘匿するための暗号化装置に好適な
データ変換装置について、安全性と高速性を同時に満た
すような構造にすることによって、段数を大幅に増加さ
せることなく安全性を確保し、かつ高速な暗号化処理が
可能となるようなデータ変換装置を提供することができ
る。これにより、秘密鍵の制御のもとでデータをブロッ
ク単位で暗号化又は復号を行う共通鍵暗号方式による暗
号化装置に有用である。
【0069】
【付録】表記 #[a|cond]:条件condを満たす集合aの個数。 Δx,Γx:xの差分値、xのマスク値。 a(b:aとbのビット毎の論理積に対する偶数パリティ
値。
【0070】線形変換部:P=[tij], tij∈{0, 1}, 0
i,j n-1 線形変換部の入力:z=T[z0,…,zn-1], zi∈GF(2m), 0
in-1 線形変換部の出力:z'=T[z'0,…,z'n-1]=Pz, z'i∈GF
(2m), 0in-1定義 [定義1] Δx,Δy,Γx,Γy が与えられたとき、s-box
の差分確率DPs(Δx(Δy)と線形確率LPs(Γy→Γx)を以
下のように定める: DPs(Δx→Δy)=#{x∈GF(2m)|s(x)+s(x+Δx)=Δy}/2
m LPs(Γy→Γx)=(2×#{x∈GF(2m)|x・Γx=s(x)・Γy}/
2m−1)2 [定義2] s-boxの最大差分確率psと最大線形確率qs
以下のように定める。
【0071】
【数4】
【0072】
【数5】 [定義3] 差分解読法では入力差分値Δx が非零であるs
-box 、線形解読法では出力マスク値Γy が非零であるs
-box のことをactive s-boxと呼ぶ。 [定義4] 2-round SPN構造で構成されるラウンド関数
において、Δx,Δy,Γx,Γy が与えられたとき、差分確
率p(Δx→Δy)と線形確率q(Γy→Γx)を以下のように定
める。
【0073】
【数6】
【0074】
【数7】 ここで、Δx=(Δx0,…,Δxn-1)であり、Δy,Γx,Γy
も同様である。更に、p(Δz→Δz'i)は、各iに対し
て、Δz が線形変換部によってΔz'iに変換されること
を表しているものとする。即ち、全てのiに対して、∃
Δz'i s.t.p(Δz→Δz'i)=1である。p(Γz'→Γzi)も
同様である。
【0075】[定義5] 2-round SPN構造で構成される
ラウンド関数の最大差分確率pと最大線形確率qを以下
のように定める。
【0076】
【数8】
【0077】
【数9】 [定義6] 2-round SPN構造に対して、全てのs-box が
全単射である時、差分解読法と線形解読法におけるacti
ve s-boxの最少個数nd, nlは以下のように与えられる。
【0078】
【数10】
【0079】
【数11】 ここで、
【0080】
【数12】 とする。また、Δz,Γz は線形変換部の入力差分値と入
力マスク値を表し、Δz', Γz'は線形変換部の出力差分
値と出力マスク値を表す。 [定理1] 2-round SPN構造のラウンド関数における最
大差分確率pと最大線形確率qは以下の関係式を満た
す。
【0081】
【数13】 [Proof sketch]差分解読法の場合について考える。定義
2と定義3より、active s-boxにおける差分確率はps
下である。従って、あるΔx,Δy におけるactive s-box
の個数をndzとすると、そのときのラウンド関数の差分
確率は、定義4より、ps ndz以下となる。一方、ndをact
ive s-boxの最少個数とすると、全てのΔx,Δy に対し
てnd≦ndz, ps≦1であるから、
【0082】
【数14】 となる。従って、このラウンド関数における最大差分確
率pは、p≦ps ndである。同様のことが、線形解読法の
場合についてもいえ、q≦qs nlが導かれる。 [定理2] Concatenation Rules X→(Y, Z)を、データXがデータYとデータZの2つの
データに同じく複製されることを表すとする。即ち、X
=Y=Z が成立する。このとき、以下の関係が成立す
る: X=Y(+)Z ⇒ΔX=ΔY(+)ΔZ,ΓX=ΓY=ΓZ (XOR oper
ation) X→(Y, Z)⇒ΔX=ΔY=ΔZ,ΓX=ΓY(+)ΓZ (Branch o
peration) [差分解読法及び線形解読法に対する耐性]定理1の式で
示したように、差分解読法及び線形解読法に対するラウ
ンド関数の耐性は、active s-boxの最少個数nd, nlから
決めることができる。例えば、行列PEが表す線形変換は
全単射であるので、Hw(Δz)≦2ならばHw(Δz')≦1であ
り、またHw(Δz)=1ならばHw(Δz')3であることから、
active s-boxの個数が2になることはあり得ないので、
n d3となる。ところで、例えば、Δz0=Δz2≠0,Δz1=
Δz3=0の時、Δz'0=Δz2≠0,Δz'1=Δz'2=Δz'3=0 (Hw
(Δz')=1)となり、active s-boxの個数は、Hw(Δz)+H
w(Δz')=3である。従って、nd=3となるので、定理1よ
りこのラウンド関数の耐性はpps 3である。またnlにつ
いても同様の議論ができ、nl=3, q≦qs 3であることが示
せる。
【図面の簡単な説明】
【図1】従来のDES暗号装置の機能構成を示す図。
【図2】図1中のf関数演算部12の機能構成を示す
図。
【図3】この発明の第1実施例の機能構成を示す図。
【図4】第1実施例における非線形関数部304 の機能構
成を示す図。
【図5】線形変換部344Aの変換処理を表す行列を説明す
るための基本構成を示す図。
【図6】探索アルゴリズムにより決定した線形変換部34
4Aを有する第2鍵依存線形変換部344 の構成例を示す
図。
【図7】Aは第2実施例における非線形変換部3430'の
機能構成例を示す図、Bは非線形変換部3431'の機能構
成例を示す図、Cは非線形変換部3432'の機能構成例を
示す図、Dは非線形変換部3433'の機能構成例を示す
図。
【図8】第2実施例における図4中の第2鍵依存線形変
換部344 の機能構成を示す図。
【図9】第3実施例における図4中の非線形変換部343
又は345 の機能構成を示す図。
【図10】データ変換処理をコンピュータで実施する処
理手順を示すフローチャート。
【図11】図10におけるステップS3の詳細な処理手
順を示すフローチャート。
【図12】記録媒体に記録されたデータ処理手順プログ
ラムを実行する構成を示す図。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 松本 勉 神奈川県横浜市青葉区柿の木台13−45 (56)参考文献 神田雅透他“少数のs−boxを用い たラウンド関数の構成法について(その 2)”1998年暗号と情報セキュリティシ ンポジウム(SCIS’98),2.2. D,(1998年1月28日) 神田雅透他“少数のs−boxを用い たラウンド関数の構成法について(その 3)”電子情報通信学会技術研究報告, Vol.98,No.48(1998年5月15 日),P.21−30(ISEC98−3) 神田雅透他“128ビットブロック暗号 E2の提案”電子情報通信学会技術研究 報告,lVo.98,No.227,(1998 年7月30日),p.13−24(ISEC98 −12) (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 - 5/00 H04K 1/00 - 3/00 H04L 9/00 INSPEC(DIALOG) JICSTファイル(JOIS)

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数の鍵データを保持する鍵記憶手段
    と、上記複数の鍵データが与えられ、それぞれ鍵依存の
    非線形変換を行う非線形関数部をそれぞれ含む縦続接続
    された複数のラウンド処理部とを含み、入力データを鍵
    データに依存して別のデータに変換するデータ変換装置
    であり、各上記ラウンド処理部の上記非線形関数部は: 上記ラウンド処理部への入力データを、上記鍵記憶手段
    に蓄積された第1鍵データに基づいて線形変換を行う第
    1鍵依存線形変換手段と、 上記第1鍵依存線形変換手段の出力データを4個のサブ
    データに分割する分割手段と、 上記4つのサブデータのそれぞれに非線形変換を行う第
    1非線形変換手段と、 上記鍵記憶手段に蓄積された第2鍵データと、上記第1
    非線形変換手段の各々の出力サブデータとで線形変換を
    行う第2鍵依存線形変換手段と、 上記第2鍵依存線形変換手段の4つの出力サブデータの
    それぞれに非線形変換を行う第2非線形変換手段と、及
    び上記第2非線形変換手段の4つの出力サブデータを結
    合して上記非線形関数手段の出力とする結合手段、 とを含み、上記第2鍵依存線形変換手段は、その入力に
    対し4×4行列で規定される排他的論理和を行う線形変
    を含んでいることを特徴とするデータ変換装置
  2. 【請求項2】 請求項1記載のデータ変換装置におい
    て、 上記入力データを二つの部分データに分割する初期分割
    手段と、 上記部分データの一つを入力とする上記非線形関数手段
    と、 上記非線形関数手段の出力データを残りの部分データの
    一つに作用させる線形演算手段と、 二つの部分データを一つの出力データに結合する最終結
    合手段、 とを備えることを特徴とするデータ変換装置
  3. 【請求項3】 請求項2に記載のデータ変換装置におい
    て、 上記入力データに変換を行って上記初期分割手段へ供給
    する初期変換手段を備えることを特徴とするデータ変換
    装置。
  4. 【請求項4】 請求項2又は請求項3に記載のデータ変
    換装置において、上記最終結合手段の出力データに変換
    を行って上記データ変換装置の出力データとする最終変
    換手段を備えることを特徴とするデータ変換装置。
  5. 【請求項5】 請求項3又は請求項4に記載のデータ変
    換装置において、上記初期変換手段及び上記最終変換手
    段の少くとも一方は、上記鍵記憶手段に蓄積された鍵デ
    ータに基づいて変換を行う鍵依存変換手段であることを
    特徴とするデータ変換装置。
  6. 【請求項6】 請求項1から請求項5のいずれかに記載
    のデータ変換装置において、 上記非線形関数手段は、上記鍵記憶手段に蓄積された第
    3鍵データにより上記結合手段の出力データを線形変換
    して上記非線形関数手段の出力とする第3鍵依存線形変
    換手段を備えることを特徴とするデータ変換装置。
  7. 【請求項7】 請求項1から請求項6のいずれかに記載
    のデータ変換装置において、 上記第1鍵依存線形変換手段、上記第2鍵依存線形変換
    手段、上記第3鍵依存線形変換手段のいずれかは、固定
    された線形変換を行う線形変換手段であることを特徴と
    するデータ変換装置。
  8. 【請求項8】 請求項1から請求項7のいずれかに記載
    のデータ変換装置において、 上記第2線形変換手段は、上記第1非線形変換手段より
    の4つの出力A1,A2,A3,A4を入力して、 B1=A1(+)A3(+)A4 B2=A2(+)A3(+)A4 B3=A1(+)A2(+)A3 B4=A1(+)A2(+)A4 をそれぞれ演算して、データB1,B2,B3,B4を出力する
    手段であることを特徴とするデータ変換装置。
  9. 【請求項9】 請求項8記載のデータ変換装置におい
    て、 上記第2線形変換手段は鍵依存線形変換手段であって、
    上記鍵記憶手段よりの鍵データk2=[k21,k22,k23,k2
    4]も入力され、上記B1,B2,B3,B4を得る演算に、それ
    ぞれk21,k22,k23,k24も排他的論理和算されることを
    特徴とするデータ変換装置。
  10. 【請求項10】 請求項1から請求項9のいずれかに記
    載のデータ変換装置において、 上記第1非線形変換手段は上記分割手段よりの4個の各
    mビットのサブデータin1,in2,in3,in4についてin1
    を4mビットのMI1=[A1, 00…0(2), A1, A1]に変換する
    手段と、in2を4mビットのMI2=[00…0(2), A2, A2, A2]
    に変換する手段と、in3を4mビットのMI3=[A3, A3, A3,
    00…0(2)]に変換する手段と、in4を4mビットのMI4=[A
    4, A4, 00…0(2), A4]に変換する手段とよりなり、 上記第2線形変換手段は、上記第1非線形変換手段より
    のデータMI1, MI2, MI3, MI4を入力して、B=MI1(+)MI2
    (+)MI3(+)MI4を演算し、B=[B1, B2, B3, B4]を出力す
    る手段であることを特徴とするデータ変換装置。
  11. 【請求項11】 請求項10記載のデータ変換装置にお
    いて、 上記第2線形変換手段は鍵依存線形変換手段であって、
    上記鍵記憶手段よりの4mビットの鍵データk2も入力さ
    れ、上記Bの演算にk2も排他的論理和算されることを特
    徴とするデータ変換装置。
  12. 【請求項12】 請求項1から請求項11のいずれかに
    記載のデータ変換装置において、 上記第1非線形変換手段及び上記第2非線形変換手段
    は、その各入力サブデータを、二つのサブブロックに分
    割する手段と、その分割された二つのサブブロックに対
    し、それぞれ線形変換を行う手段と、非線形変換を行う
    手段とを縦続的に行う手段と、その縦続的に行う手段の
    各変換出力サブブロックを統合して対応入力サブデータ
    に対する非線形変換出力サブデータとする手段を備えて
    いることを特徴とするデータ変換装置。
  13. 【請求項13】 請求項1から12のいずれかに記載の
    データ変換装置において、上記4×4行列は、予め決定
    した安全性閾値Tに対し、それぞれがハミング重みT-1
    以上となる4個の列ベクトルから構成されていることを
    特徴とするデ ータ変換装置
  14. 【請求項14】 請求項13記載のデータ変換装置にお
    いて、上記行列は、上記ハミング重みがT-1 以上となる
    列ベクトルから構成された複数の行列の候補から、最大
    のndを与えるものとして選択されたものであり、上記nd
    はactive s-boxの最少個数であることを特徴とするデー
    タ変換装置
JP1738899A 1998-01-27 1999-01-26 データ変換装置 Expired - Lifetime JP3017725B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP1738899A JP3017725B2 (ja) 1998-01-27 1999-01-26 データ変換装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP10-13572 1998-01-27
JP1357298 1998-01-27
JP1738899A JP3017725B2 (ja) 1998-01-27 1999-01-26 データ変換装置

Publications (2)

Publication Number Publication Date
JPH11282345A JPH11282345A (ja) 1999-10-15
JP3017725B2 true JP3017725B2 (ja) 2000-03-13

Family

ID=26349395

Family Applications (1)

Application Number Title Priority Date Filing Date
JP1738899A Expired - Lifetime JP3017725B2 (ja) 1998-01-27 1999-01-26 データ変換装置

Country Status (1)

Country Link
JP (1) JP3017725B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
神田雅透他"128ビットブロック暗号E2の提案"電子情報通信学会技術研究報告,lVo.98,No.227,(1998年7月30日),p.13−24(ISEC98−12)
神田雅透他"少数のs−boxを用いたラウンド関数の構成法について(その2)"1998年暗号と情報セキュリティシンポジウム(SCIS’98),2.2.D,(1998年1月28日)
神田雅透他"少数のs−boxを用いたラウンド関数の構成法について(その3)"電子情報通信学会技術研究報告,Vol.98,No.48(1998年5月15日),P.21−30(ISEC98−3)

Also Published As

Publication number Publication date
JPH11282345A (ja) 1999-10-15

Similar Documents

Publication Publication Date Title
EP1052611B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
JP4828082B2 (ja) 対称キー暗号用の置換ボックス
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP2002366029A (ja) Dpaに対して安全な暗号化
JPH0863097A (ja) データを暗号化するための対称暗号化方法およびシステム
JP5141558B2 (ja) 共通鍵ブロック暗号化装置、その方法、そのプログラム、及び記録媒体
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
KR19990002840A (ko) 차분 해독법과 선형 해독법에 대해서 안전성을 보장하는 고속 블럭 암호 알고리즘
JP2002505452A (ja) 個々のデータをブロック暗号化するための方法
CN107493164B (zh) 一种基于混沌系统的des加密方法和系统
RU2141729C1 (ru) Способ криптографического преобразования блоков двоичных данных
JP3782210B2 (ja) 暗号装置
JP3017725B2 (ja) データ変換装置
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
JPH1124558A (ja) 暗号装置
JP3017726B2 (ja) データ変換装置
Mihalkovich et al. MPF based symmetric cipher performance comparison to AES and TDES
JPH09269727A (ja) 暗号化方法および暗号化装置
Mirsaid et al. The encryption algorithm AES-RFWKPES32-4
JP2001142395A (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JP3748184B2 (ja) 秘話通信装置
JP2000089666A (ja) 暗号化/復号化装置
Usman et al. A data specific comparative study for choosing best cryptographic technique
Lin et al. Cryptanalysis of a Multiround Image Encryption Algorithm Based on 6D Self-Synchronizing Chaotic Stream Cipher

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071224

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081224

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091224

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20101224

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20111224

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20121224

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20131224

Year of fee payment: 14

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term