JP3478306B2 - 暗号装置 - Google Patents

暗号装置

Info

Publication number
JP3478306B2
JP3478306B2 JP14036794A JP14036794A JP3478306B2 JP 3478306 B2 JP3478306 B2 JP 3478306B2 JP 14036794 A JP14036794 A JP 14036794A JP 14036794 A JP14036794 A JP 14036794A JP 3478306 B2 JP3478306 B2 JP 3478306B2
Authority
JP
Japan
Prior art keywords
data
key
input
output
block
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
JP14036794A
Other languages
English (en)
Other versions
JPH086498A (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 JP14036794A priority Critical patent/JP3478306B2/ja
Publication of JPH086498A publication Critical patent/JPH086498A/ja
Application granted granted Critical
Publication of JP3478306B2 publication Critical patent/JP3478306B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、例えば通信の秘密を
守るためにその通信を秘密鍵で暗号化する暗号装置、特
に差分暗号攻撃に強い暗号装置に関する。
【0002】
【従来の技術】始めに、この発明を明確に説明するた
め、記法や用語等の定義を行う。記法と定義 アルファベットP,C,L,R,x,y,λ,a,b等
の記号は、特に断らない限り、複数ビット長のデータブ
ロックを表わす。但し、1ビット長ブロックを含む。デ
ータブロックの各成分値は、0,1の値をとる。
【0003】各種の論理演算、即ち、排他的論理和、A
ND,OR,NAND,NORは、データブロック間の
ビット対応の演算を表わす。ビット対応とは、例えば、
AND演算の、a&bの場合、aの左からjビット目と
bの左からjビット目を1ビット毎に対応させてAND
演算することを表わす。他の論理演算も同様とする。
(+)は、排他的論理和演算を表わす。 (AONR論理関数)論理演算AND,OR,NAN
D,NORを、AONR論理関数と呼ぶ。即ち、AND
演算は、y=x&λ、OR演算は、y=x or λ NAND演算は、y=x nand λ、NOR演算は、y=
x norλ、と表わす。
【0004】また、x#yは、4種の論理演算、x&
y,x or y,x nand y,x noryのいづれかを表わ
す。AONR論理関数の機能を具体的に実現する暗号化
処理要素を、AONR論理手段という。a‖bはデータ
ブロックaとbの連結、即ちaとbを並べた1つのデ−
タブロックを表す。等記号=は、特に断らない限り、右
辺を計算し左辺に代入することを表わす。EXG(x)
は、データブロックxの左半分のブロックと右半分のブ
ロックとを交換して出来るデータブロックを表わす。
【0005】第3者に秘密にしない関数を、手順公開関
数という。手順公開関数は、秘密のアルゴリズムやメカ
ニズム、あるいは、秘密パラメータを持たない。xから
yへの変換y=g(x)で、全てのxに対して、x1
2 ならば、y 1 ≠y2 となるものを、1:1写像とい
う。xからyへの変換が1:1写像であり、そのアルゴ
リズムやメカニズムに秘密がないものを、手順を公開し
た1:1写像と呼ぶ。例えば、データブロックxを1ビ
ット左回転する関数、xの左右半分を交換する関数、D
ES暗号の初期転置IPは手順を公開した1:1写像で
あり、また図5aに示す1:1写像(後で説明する)
で、パラメータa、bの値を、例えばa=1010‥1
0,b=0011‥‥0011、と公開した場合は、手
順を公開した1:1写像である。
【0006】この発明は、差分暗号攻撃に強い秘密鍵暗
号の暗号装置を提供することを目的としている。始め
に、暗号化鍵と復号化鍵の値が同一な秘密鍵暗号の一例
としてFEAL暗号を説明し、次に差分暗号攻撃に関連
する技術事項を説明する。 (FEAL暗号)図6において、FEAL暗号装置51
は鍵処理部52とデータ処理部53とよりなり、データ
処理部53は前処理部54と反復処理部55と後処理部
56とよりなる。鍵処理部52には鍵入力線57−1と
暗号化復号化切替え制御線57−2とが接続され、デー
タ処理部53には入力データ線58−1と出力データ線
58−2とが接続される。鍵処理部52からデータ処理
部53の反復処理部にサブ鍵データ線59−1,59−
2〜59−Nが、また前処理部54へサブ鍵データ線6
0−1,60−2かつ、後処理部55へサブ鍵データ線
60−3,60−4がそれぞれ接続されている。
【0007】鍵処理部52は、鍵入力線57−1から6
4ビット長の鍵ブロックKを入力し、16ビット長のサ
ブ鍵Kiを次の方法で出力する。暗号化復号化切替え制
御線57−2で暗号化を指定すると、鍵処理部52の中
で鍵ブロックKを撹拌し、サブ鍵データ線59−1〜5
9−Nからそれぞれ、サブ鍵K0 〜KN -1を出力し、サ
ブ鍵データ線60−1,60−2からそれぞれ、サブ鍵
のKN ‖KN+1 ,KN+2 ‖KN+3 を出力し、サブ鍵デー
タ線60−3,60−4から、それぞれサブ鍵のKN+4
‖KN+5 ,KN+6 ‖KN+7 を出力する。
【0008】鍵処理部52は、暗号化復号化切替え制御
線57−2で復号化を指定すると、暗号化とは異なる次
の順序で、即ち、サブ鍵データ線59−1〜59−Nか
らそれぞれサブ鍵KN-1 〜K0 を出力し、サブ鍵データ
線60−1,60−2からそれぞれサブ鍵のKN+4 ‖K
N+5 ,KN+6 ‖KN+7 を出力し、サブ鍵データ線60−
3,60−4からそれぞれサブ鍵のKN ‖KN+1 ,K
N+2 ‖KN+3 を出力する。
【0009】次に、暗号化動作について説明する。以降
の説明で、L、Rはそれぞれ32ビット長の左データブ
ロックLと、右データブロックRを表し、それらの右下
の添字は処理の段階を表わす。 (全体の動作)鍵入力線57−1から鍵ブロックKを入
力し、かつ、暗号化復号化切替え制御線57−2で暗号
化を指定しておき、入力データ線58−1から平文ブロ
ックを入力すると、出力データ線58−2から暗号文ブ
ロックが出力される。 (動作の詳細)入力データ線58−1から、64ビット
の平文データブロックPを、前処理部54に入力し、デ
ータ分割手段62で、平文データブロックPを各32ビ
ット長の左データL0 と右データR0 とに分け、左デー
タL0 は、排他的論理和回路67−1で、サブ鍵データ
線60ー1から入力するサブ鍵のKN ‖KN+1 との排他
的論理和演算を施こし、更に、右データR0 は、排他的
論理和回路67−2で、サブ鍵データ線60ー2から入
力するサブ鍵のKN+2 ‖KN+3 との排他的論理和演算を
施こし、次に、排他的論理和回路68で、左データL0
を、右データR0に、排他的論理和演算を施こす。
【0010】次に、反復処理部55において、左データ
0 は左レジスタ70ー0に、右データR0 は、右レジ
スタ71ー0に格納する。そして、右データR0 に、サ
ブ鍵データ線59−1から入力するサブ鍵K0 を用いて
FEAL暗号のf関数手段(データランダム化関数手
段)72−1で攪拌処理を施こし、このf関数手段72
−1の出力のデータブロックと左レジスタ70−0から
の左データL0 を、排他的論理和回路73−1で排他的
論理和演算をとり、その結果を新しく右データR1
し、右レジスタ71−1に格納する。また、それまでの
右データR0 を新しく左データL1 とし、左レジスタ7
0−1に格納する。これらの処理を繰り返しN回行な
い、左データLN を左レジスタ70−Nに格納し、右デ
ータRN を右レジスタ71−Nに格納する。最後に、左
データブロックと右データブロックを入れ換えて反復処
理部55での演算を終了する。なおこの入れ換え後の時
点では左データはRN 、右データはLN と表わす。
【0011】次に、後処理部56の排他的論理和回路6
9で、左データRN は、右データL N に、排他的論理和
演算を施こし、また左データRN は、排他的論理和回路
67−3で、サブ鍵データ線60−3から入力するサブ
鍵のKN+4 ‖KN+5 との排他的論理和演算を施こし、一
方、排他的論理和回路69からの右データLN は、排他
的論理和回路67−4で、サブ鍵データ線60−4から
入力するサブ鍵のKN+ 6 ‖KN+7 との排他的論理和演算
を施こし、最後に、データ結合手段63で、左データR
N と右データLN が並べられて、即ち、RN ‖LN が、
暗号文ブロックとして、出力データ線58−2から出力
される。
【0012】以上に述べた暗号化の動作を、数式を用い
て補足説明する。 前処理部54 平文ブロックPを2分割する、即ち、P=L0 ‖R0
に、 L0 =L0 (+)(KN ‖KN+1 ) R0 =R0 (+)(KN+2 ‖KN+3 ) R0 =R0 (+)L0 反復処理部55 次の演算を、i=1から、i=Nまで繰り返す。
【0013】Ri =Li-1 (+)f(Ri-1 ,Ki-1 ) Li =Ri-1 ここで、fはf関数手段72−iの機能(攪拌処理)を
関数として表したものである。N回反復後、左半分と右
半分を入れ換え、左データはRN 、右データはLN で表
わす。後処理部56 LN =LN (+)RNN =RN (+)(KN+4 ‖KN+5 ) LN =LN (+)(KN+6 ‖KN+7 ) RN ‖LN が、暗号文ブロックCとなる、即ち、 C=RN ‖LN (差分に関する技術事項) 1989年、イスラエルのバイハム等は、平文や暗号文
から成る“差分”が、それほど小さくない確率で暗号装
置を通過する性質を用いて、暗号鍵を算出しようという
差分暗号攻撃法を発表した。次に、この発明の理解に必
要となる差分に関する技術事項を説明する。 (差分) 2つのデータブロックxとx* の排他的論理和を、2つ
のブロックの差分x’という。適当な関数y=g(x)
と、変数xとx* に対して、x’=x(+)x* を入力
差分、y(+)y* を、出力差分という。 (差分通過とその予測) 関数y=g(x)において、入力ブロックxの適当なm
個のビットを反転させると、出力ブロックyの適当なn
個のビットが反転する、m≠nでもよい。この事象を、
差分が関数y=g(x)を通過するという。但し、ビッ
ト反転という場合、ビットの反転方向が、0から1の方
向か、1から0への方向かは問わない。
【0014】手順公開関数y=g(x)は、入力ブロッ
クの差分に対して出力の差分が確実に計算できるという
意味で、差分通過を確率100%で予測できるといえ
る。一例として、図4aに示す手順公開関数、y=h
(x,a)=x(+)a、を考える。この関数は、xの
ビットが反転すれば、yのビットは必ず反転する(ビッ
トの反転方向は問わない)。この関数は、パラメータa
が秘密であっても、差分が通過する確率pは、100%
である。
【0015】次に、図4bに示す手順公開関数を考え
る。この関数は、次式で表せる。 y=y1 ‖y2 =h(x,λ), x=x1 ‖x2 ,λ=a‖b, y1 =x1 (+)a,y2 =x1 (+)x2 (+)a
(+)b この関数はパラメータ、λ=a‖b、が定数であると
き、xからyへの変換は1:1写像である。パラメータ
が秘密であっても、xの任意のビット反転に対して、y
のどのビットが反転するかは確実に計算できる。以上を
要約すると、図4bに示す手順公開関数は、パラメータ
λが秘密であっても、差分が通過する確率pは、100
%である。
【0016】
【発明が解決しようとする課題】FEAL暗号の前処理
部54は、データ分岐手段62と、図4bに示した1:
1写像手段とから作られており、差分が確率100%で
通過する1:1写像であることがわかる。同様に、FE
AL暗号の後処理部56も、差分が確率100%で通過
する1:1写像であることがわかる。米国暗号規格のD
ES暗号も、その前処理部と後処理部は、差分が確率1
00%で通過する1:1写像である。差分攻撃を避ける
ためには、差分通過を予測できる確率が小さな前処理部
や後処理部が必要であり、差分通過率の小さな1:1写
像手段を実現できる暗号化処理要素が求められていた。
更に、反復処理部55のf関数手段72−1〜72−N
の差分通過率も100%未満ではあるが、差分通過率を
より小さくするための暗号設計技術が求められていた。
【0017】この発明の目的は差分暗号攻撃に強い、即
ち、差分攻撃により暗号鍵を算出されにくい、暗号装置
を提供する。
【0018】
【課題を解決するための手段】この発明は、差分通過確
率が小さな、動的写像手段、あるいは、AONR論理手
段を暗号化処理要素として用いることにより、差分が暗
号装置を通過する確率を一層小さくして、暗号鍵の算出
が難しい強い暗号を設計しようとするものであり、以下
に、動的写像手段、及び、AONR論理手段について説
明する。
【0019】図4cに示す手順公開関数、y=h(x,
λ)=x&a、但しλは秘密パラメータ、について、差
分が通過する確率について考える。この関数は、a=1
ならば差分が通過し、a=0ならば差分が通過しない。
即ち、パラメータaが秘密であれば、差分が通過する確
率pは50%といえる。次に、図5aに示す手順公開関
数y=MAP1 (x,λ)を考える。入力データブロッ
クxは2分割されたデータブロックx1 ,x2 であっ
て、データブロックx2 とパラメータaとがAND回路
101でAND演算され、その出力データブロックx1
に対し排他的論理和回路102において排他的論理和演
算がなされ、その演算結果が一方の出力データブロック
1 として出力されると共にパラメータbとのAND演
算がAND回路103で行われ、その演算結果でデータ
ブロックx2 に対し排他的論理和演算が回路104で行
われる、その結果が他方の出力データブロックy2 とし
て出力される。この関数は、パラメータλが定数である
とき、1:1写像であり、次式で表せる。
【0020】y=y1 ‖y2 =MAP1 (x,λ) x=x1 ‖x2 ,λ=a‖b y1 =x1 (+)(a&x2 ) ,y2 =x2 (+)(b
and (x1 (+)(a&x2 ))) この関数はパラメータが秘密であれば、差分通過確率p
は、p<1といえ、次に説明する。ここで、x1
2 ,y1 ,y2 ,λ1 ,λ2 ,は、全て32ビットデ
ータブロックであるが、各ブロック内の1ビット対応の
演算に注目して説明する。
【0021】x1 が反転し、x2 が無変化のとき、y1
は必ず反転する。更に、b=0のとき、y2 が反転しな
い、b=1のとき、y2 が反転する。x1 が無変化で、
2 が反転したとき、次のように整理できる。即ち、a
=1、b=1のとき、y1 は反転し、y2 は反転しな
い。
【0022】a=1、b=0のとき、y1 は反転し、y
2 も反転する。a=0のとき、y1 は反転せず、y2
反転する。x1 とx2 が共に反転したときは、次のよう
に整理できる。即ち、a=1のとき、y1 は反転せず、
2 は反転する、a=0、b=1のとき、y1 は反転
し、y2 は反転しない、a=0、b=0のとき、y1
反転し、y2 も反転する。
【0023】 以上を要約すると、図5aに示す手順公
開関数は、パラメータが定数であるとき、xからyへの
変換は1:1写像であり、パラメータλが秘密であれ
ば、差分通過確率pは、p<1である。図5bに示す手
順公開関数、y=MAP2(x,λ)、を考える。この
関数は、図5aの手順公開関数を一般化して拡張したも
のであり、データブロックx,y,λのブロック長をそ
れぞれ32ビット、x,x,y,y,a,b
を、それぞれ16ビットとし、論理演算は、AND,O
R,NAND,NORとしたもので、つまり入力の一方
のデータブロックと、パラメータとのAONR論理演算
を行い、その結果で入力データの他方のデータブロック
に排他的論理和演算を施すことを、各パラメータのブロ
ック数だけ行い、かつその各データブロックとパラメー
タとのAONR論理演算の各入力側と出力側と、左、右
データブロックの通路の所に手順を公開した1:1写
像を組込可能とする。図5b中に○(点線○)印で示す
手順を公開した1:1写像手段は、例えばデータブロッ
クの8ビット左回転機能をもつ関数手段である。図5b
に示す手順公開関数は、パラメータλが秘密であるた
め、差分通過確率pは、p<1となることは、図5aの
説明から明らかである。 (動的写像関数) 図5a,図5bに示した手順公開関数は、パラメータλ
が一定のとき、xからyへの変換は1:1写像であり、
パラメータ値を変化させると他の1:1写像となり、更
に、パラメータλを秘密にすると、差分が通過する確率
は、1より小さい。以上述べた性質を持つ関数を、動的
写像関数と呼び、y=MAP(x,λ)、或いは、y=
MAPi(x,λ)、i=1,2,‥,で表わす。動的
写像関数を実現する具体的な暗号化処理要素を、動的写
像手段という。
【0024】
【作用】この発明は、(1)差分が100%の確率で通
過する暗号化処理要素、例えばFEAL暗号装置の前処
理部で使われている図4bに示す手順公開関数を、例え
ば図5aに示す差分が100%未満の確率で通過する
1:1写像と置き換えた暗号装置とすることにより、又
は、(2)秘密鍵暗号の動的写像手段をf関数手段に並
列に接続し、又は、(3)秘密鍵暗号の動的写像手段を
f関数手段に直列に接続し、又は、(4)秘密鍵暗号の
AONR論理手段をf関数手段に並列に接続する、のい
づれか1以上を採用する。よって(2)(3)の場合
に、差分がf関数手段を確率p1 で通過し、動的写像手
段を確率p2 で通過するなら、差分が暗号装置の反復単
位を通過する確率は、p1 ・p2 となる。同様に(4)
の場合に、差分がf関数手段を確率p1 で通過し、AO
NR論理手段を確率p3 で通過するなら、差分が暗号装
置の反復単位を通過する確率は、p1 ・p3 となる。こ
のため、暗号鍵の算出が難しい、即ち強い暗号を生成す
る暗号装置が得られる。
【0025】
【実施例】実施例1 図1にこの発明をFEAL暗号装置に適用した実施例を
示し、図6と対応する部分に同一符号を付けてある。こ
の実施例では前処理部54中のデータ分岐手段62より
後の処理部分が動的写像手段14に置き換えられ、また
後処理部56のデータ結合手段63の前の処理部分が動
的写像手段15に置き換えられ、更に反復処理部55内
の各f関数手段72−1〜72−Nとそれぞれ並列に動
的写像手段24−1〜24−Nが設けられ、その動的写
像手段24−1〜24−Nの出力はそれぞれ排他的論理
和回路25−1〜25−Nでf関数手段72−1〜72
−Nの出力に対し排他的論理和演算がなされる。
【0026】動的写像手段14においてはAONR論理
手段16−1,16−2で入力ブロックデータとサブ鍵
データとの論理演算がなされ、同様に動的写像手段15
においてAONR論理手段16−3,16−4により、
入力ブロックデータとサブ鍵データとの論理演算がなさ
れる。AONR論理手段16−1,16−4は共に同種
の論理演算、例えば共にAND演算又は共にOR演算な
どを行う。同様に、16−2と16−3は共に同種の論
理演算、例えばAND演算又は共にOR演算などを行
う。動的写像手段14中で排他的論理和回路67−1の
出力を左右半分交換回路18−2を通じてAONR論理
手段16−2へ供給され、動的写像手段15中で反復処
理部55からの左データブロックが左右半分交換回路1
8−3を通じてAONR論理手段16−3へ供給され
る。
【0027】鍵処理部52の動作は図6のそれと同様で
あり、データ処理部53の動作はその全体としての流れ
は図6のそれと同様であるが、以下に説明する。64ビ
ットの平文データブロックPを、入力データ線58−1
から入力し、データ分割手段62で、平文データブロッ
クPを各32ビット長の左データL0 と右データR0
に分け、右データR0 は、AONR論理手段16−1
で、サブ鍵データ線60−1から入力するサブ鍵KV1
と論理演算を施こし、その結果のデータブロックが、排
他的論理和回路67−1により、左データL0 に排他的
論理和演算を施こされる。
【0028】この排他的論理和演算された左データL0
は、左右半分交換回路18−2で、その左半分16ビッ
トと右半分16ビットとが交換され、その結果の32ビ
ット、EXG(L0 )が、AONR論理手段16−2
で、サブ鍵データ線60−2から入力するサブ鍵KV2
と論理演算を施こされ、その結果のデータブロックが、
排他的論理和回路67−2により、右データR0 に排他
的論理和演算を施される。
【0029】反復処理部55において、左データL0
左レジスタ70−0に、右データR0 は、右レジスタ7
1−0に格納する。次に、サブ鍵データ線59−1から
入力するサブ鍵KU1 は、f関数手段72−1と動的写
像手段24−1の双方にそれぞれ入力し、更に、右デー
タR0 はf関数手段72−1と動的写像手段24−1の
双方にそれぞれ入力し、以上の入力をもとに、f関数手
段72−1との動的写像手段24−1とがそれぞれの処
理を施し、このf関数手段72−1の出力のデータブロ
ックと、動的写像手段24−1の出力のデータブロック
とを、排他的論理和回路25−1で排他的論理和演算を
とり、更に、回路25−1の出力のデータブロックと、
左レジスタ70−0からの左データL0 を、排他的論理
和回路73−1で排他的論理和演算をとり、その結果を
新しく右データR1 として右レジスタ71−1に格納す
る。また、それまでの右データR0 を新しく左データL
1 とし、左レジスタ70−1に格納する。これらの処理
を繰り返しN回行ない、左データLN を左レジスタ70
−Nに格納し、右データRN を右レジスタ71−Nに格
納する。
【0030】最後に、左データブロックと右データブロ
ックを入れ換えて反復処理部55での演算を終了する。
なおこの入れ換え後の時点では左データはRN 、右デー
タはLN と表わす。次に、後処理部56において、左デ
ータRN は、左右半分交換回路18−3で、その左半分
16ビットと右半分16ビットとが交換され、その結果
の32ビットEXG(RN )が、AONR論理手段16
ー3で、サブ鍵データ線60−3から入力するサブ鍵K
3 との論理演算を施され、その結果のデータブロック
が、排他的論理和回路67−3で、右データLN に排他
的論理和演算を施される。
【0031】その排他的論理和演算された右データLN
は、AONR論理手段16−4で、サブ鍵データ線60
−4から入力するサブ鍵KV4 と論理演算を施され、そ
の結果のデータブロックが、排他的論理和回路67−4
で、左データRN に排他的論理和演算を施される。最後
に、データ結合手段63で、左データRN と右データL
N は並べられて、即ち、RN ‖LN が、暗号文ブロック
として、出力データ線58−2から出力される。
【0032】以上に述べた暗号化処理を、数式を用いて
補足説明する。 前処理部54 平文ブロックPを2分割する、即ち、P=L0 ‖R0
に、 L0 =L0 (+)(KV1 #R0 ) ここで、#はAONR論理演算を、即ち、AND、O
R、NAND、NORのいづれかの論理演算を表す。
【0033】次に、 R0 =R0 (+)( KV2 #EXG(L0 )) 反復処理部55 次の演算を、i=1から、i=Nまで繰り返す。 Ri =Li-1 (+)f(Ri-1 ,KUi )(+)MAP
(Ri-1 ,KUi ) Li =Ri-1 ここで、fはf関数手段72−iの機能を関数として表
し、MAPは動的写像手段の機能を関数として表したも
のである。f関数手段と動的写像手段は、サブ鍵KUi
の全部または一部の情報を使う。u=64の場合、f関
数手段は、例えば、KUi の左32ビットを使い、動的
写像手段は、KUi 32ビットを使う。また、u=
32の場合、f関数手段と動的写像手段は、それぞれ例
えば、KUi の全32ビットを使う。
【0034】N回反復後に、左半分と右半分を入れ換
え、左データはRN 、右データはLNで表わす。 後処理部56 LN =LN (+)(KV3 #EXG( RN )) RN =RN (+)(KV4 #LN ) RN ‖LN が、暗号文ブロックCとなる、即ち、 C=RN ‖LN 動的写像手段24−1〜24−Nは図5aか図5bに示
したものと、基本構造は同じものであり、例えば図2に
示すものが用いられる。入力データ線33−1からの3
2ビットのデータブロックxは写像手段36−5を通じ
て分岐手段32−1に入力されて16ビットずつの2つ
のデータブロックに分けられ、その一方のデータブロッ
クは写像手段36−1,36−2に入力され、他方は排
他的論理和回路35−2に入力される。一方パラメータ
入力線31−3からの32ビットのパラメータλが分岐
手段32−2で16ビットずつのパラメータブロックに
分けられ、その一方と写像手段36−2の出力とがAO
NR論理手段34−2で論理演算がされて排他的論理和
回路35−2へ供給される。回路35−2の出力は写像
手段36−4,36−3を通じてAONR論理手段34
−1へ供給され、分岐手段32−2の分岐された他方と
論理演算がされて排他的論理和回路35−1へ供給され
る。写像手段36−1の出力は回路35−1で論理手段
34−1の出力と排他的論理和演算がされ、その演算結
果は写像手段36−4の出力と結合手段32−3で32
ビットのデータブロックに結合されて出力データ線33
−2に出力される。写像手段36−1〜36−5は1ビ
ット左回転、8ビット左回転、1:1写像機能をもつ8
ビット入力8ビット出力のROM、無変換などであり、
その機能がそれぞれ適宜定められている手順を公開した
1:1写像機能があるものである。動的写像手段24−
1〜24−Nはこのように構成されているから、入力パ
ラメータが固定のとき1:1写像であり、パラメータが
変化すると、他の1:1写像となる。
【0035】次に、このFEAL暗号装置の復号化の動
作について説明する。 (全体の動作)鍵入力線57−1から鍵ブロックKを入
力し、暗号化復号化切替え制御線57−2で復号化を指
定しておき、入力データ線58−1から暗号文ブロック
を入力すると、出力データ線58−2から、暗号文が復
号化されて、平文ブロックが出力される。 (動作の詳細)前処理部54において、64ビットの暗
号文データブロックCを、入力データ線58−1から、
前処理部54に入力し、データ分割手段62で、暗号文
データブロックCを各32ビット長の左データRN と右
データLN とに分け、次に、右データLN は、AONR
論理手段16ー1で、サブ鍵データ線66−1から入力
するサブ鍵KV4 と論理演算を施され、その結果のデー
タブロックが、排他的論理和回路67ー1で、左データ
N に排他的論理和演算を施される。
【0036】その排他的論理和演算された左データRN
は、左右半分交換回路18−2で、その左半分16ビッ
トと右半分16ビットとが交換され、その結果の32ビ
ット、EXG(RN )が、AONR論理手段16ー2
で、サブ鍵データ線60−2から入力するサブ鍵KV3
と論理演算を施こされ、その結果のデータブロックが、
排他的論理和回路17ー2で、右データLN に排他的論
理和演算を施される。
【0037】次に、反復処理部55において、左データ
N は左レジスタ70−0に、右データLN は、右レジ
スタ71ー0に格納する。その後サブ鍵データ線59−
1から入力するサブ鍵KUN は、f関数手段72ー1と
動的写像手段24−1の双方にそれぞれ入力し、更に、
右データLN はf関数手段72−1と動的写像手段24
−1の双方にそれぞれ入力し、以上の入力をもとに、f
関数手段と72−1と動的写像手段24−1とがそれぞ
れを施され、f関数手段72−1の出力のデータブロッ
クと、動的写像手段24ー1の出力のデータブロックと
を、排他的論理和回路25−1で排他的論理和演算をと
り、更に、回路25−1の出力のデータブロックと、左
レジスタ70ー0からの左データRN を、排他的論理和
回路73−1で排他的論理和演算をとり、その結果を新
しく右データLN-1 とし、右レジスタ21−1に格納す
る。また、それまでの右データLN を新しく左データR
N-1 とし、左レジスタ70−1に格納する。これらの処
理を繰り返しN回行ない、左データR0 を左レジスタ7
0−Nに格納し、右データL0 を右レジスタ71−Nに
格納する。
【0038】最後に、左データブロックと右データブロ
ックを入れ換えて反復処理部55での演算を終了する。
なおこの入れ換え後の時点では左データはL0 、右デー
タはR0 と表わす。次に、後処理部において、左データ
0 は、左右半分交換回路18−3で、その左半分16
ビットと右半分16ビットとが交換され、その結果の3
2ビットEXG(L0 )が、AONR論理手段16ー3
で、サブ鍵データ線60−3から入力するサブ鍵KV2
と論理演算を施され、その結果のデータブロックが、排
他的論理和回路17−3で、右データR0 に排他的論理
和演算を施される。その排他的論理和演算された右デー
タR0 は、AONR論理手段16−4で、サブ鍵データ
線60−4から入力するサブ鍵KV1 と論理演算を施さ
れ、その結果のデータブロックが、排他的論理和回路1
7−4で、左データL0 に排他的論理和演算を施され
る。
【0039】最後に、データ結合手段63で、左データ
0 と右データR0 は並べられて、即ち、L0 ‖R0
平文ブロックとして、出力データ線58−2から出力さ
れる。以上に述べた復号化処理を、数式を用いて補足説
明する。 前処理部54 暗号文ブロックCを2分割する、即ち、C=RN
N 。RN =RN (+)(KV4 #LN ) LN =LN (+)( KV3 #EXG( RN )) 反復処理部55 次の演算を、i=Nから、i=1まで繰り返す。
【0040】Li-1 =Ri (+)f(Li 、KUi
(+)MAP(Li 、KUi ) Ri-1 =Li N回反復後に、左半分と右半分を入れ換え、左データは
0 、右データはR0で表わす。 後処理部56 R0 =R0 (+)(KV2 #EXG(L0 )) L0 =L0 (+)(KV1 #R0 ) L0 ‖R0 が、平文ブロックPとなる、即ち、 P=L0 ‖R0 実施例2 上述では反復処理部55において、動的写像手段はf関
数手段と並列に接続されたが、図2b及び図3aに示す
ように、動的写像手段をf関数手段に直列に接続しても
よい。その他は先の実施例と全て同じであり、反復処理
部についてのみ、次に説明する。
【0041】図2bに示す反復処理部の単位処理段(こ
の例では初段)において、左データL0 は左レジスタ7
0−0に、右データR0 は、右レジスタ71−0に格納
する。次に、サブ鍵データ線59−1から入力するサブ
鍵KU1 は、f関数手段72−1と動的写像手段24−
1の双方にそれぞれ入力し、更に、右データR0 は、動
的写像手段24−1に入力し、動的写像手段24−1の
出力のデータブロックが、f関数手段72−1に入力
し、この出力のデータブロックと、左レジスタ70−0
からの左データL0 を、排他的論理和回路73−1で排
他的論理和演算をとり、その結果を新しく右データR1
とし、右レジスタ71−1に格納する。また、それまで
の右データR0 を新しく左データL1 とし、左レジスタ
70−1に格納する。これらの処理を繰り返しN回行な
い、左データL N を左レジスタ70−Nに格納し、右デ
ータRN を右レジスタ71−Nに格納する。
【0042】最後に、左データブロックと右データブロ
ックを入れ換えて反復処理部での演算を終了する。なお
この入れ換え後の時点では左データはRN 、右データは
Nと表わす。図3aに示す反復処理部の単位処理段
(図では初段)において、左データL0 は左レジスタ7
0−0に、右データR0 は、右レジスタ71−0に格納
する。次に、サブ鍵データ線59−1から入力するサブ
鍵KU1 は、f関数手段72−1と動的写像手段24−
1の双方にそれぞれ入力し、更に、右データR0 は、f
関数手段72−1に入力し、関数手段72−1の出力の
データブロックが、動的写像手段24−1に入力し、こ
の出力のデータブロックと、左レジスタ70ー0からの
左データL0 を、排他的論理和回路73−1で排他的論
理和演算をとり、その結果を新しく右データR1 とし、
右レジスタ71−1に格納する。また、従来の右データ
0 を新しく左データL1 とし、左レジスタ70−1に
格納する。これらの処理を繰り返しN回行ない、左デー
タLN を左レジスタ70−Nに格納し、右データRN
右レジスタ71−Nに格納する。
【0043】最後に、左データブロックと右データブロ
ックを入れ換えて反復処理部での演算を終了する。なお
この入れ換え後の時点では左データはRN 、右データは
Nと表わす。実施例3 反復処理部55でその各単位処理段として図3bに示す
ように、AONR論理手段26−1と転置手段27が、
動的写像手段24−1の替りに使われている点が、実施
例1と異なる点である。ここで転置手段27とは、手順
公開の1:1写像手段であり、例えば入力データブロッ
クxの1ビット回転や、入力データブロックxの左右交
換EXG(x)や、無変換である。反復処理部につい
て、次に説明する。
【0044】図3bに示す反復単位処理段(図では初
段)において、左データL0 は左レジスタ70−0に、
右データR0 は、右レジスタ71−0に格納する。次
に、サブ鍵データ線59−1から入力するサブ鍵KU1
は、f関数手段72−1とAONR論理手段26−1の
双方にそれぞれ入力し、更に、右データR0 は、f関数
手段72−1と転置手段27の双方にそれぞれ入力し、
転置手段27の出力のデータブロックは、AONR論理
手段26−1に入力し、以上の入力をもとに、f関数手
段72−1とAONR論理手段26−1とでそれぞれ処
理が施され、このf関数手段72−1の出力のデータブ
ロックと、AONR論理手段26ー1の出力のデータブ
ロックとを、排他的論理和回路25−1で排他的論理和
演算をとり、更に、回路25ー1の出力のデータブロッ
クと、左レジスタ70ー0からの左データL0 を、排他
的論理和回路73−1で排他的論理和演算をとり、その
結果を新しく右データR1 とし、右レジスタ71−1に
格納する。また、それまでの右データR0 を新しく左デ
ータL1 とし、左レジスタ70−1に格納する。これら
の処理を繰り返しN回行ない、左データLN を左レジス
タ7 0−Nに格納し、右データRN を右レジスタ71−
Nに格納する。最後に、左データブロックと右データブ
ロックを入れ換えて反復処理部での演算を終了する。な
おこの入れ換え後の時点では左データはRN 、右データ
はLN と表わす。実施例4 実施例4は、実施例1,2,3において、動的写像手段
14と、動的写像手段15とを省いたものであり、これ
に対応して、サブ鍵データ線60−1〜60−4は除
く。実施例1のケースで動的写像手段14と15を除い
た実施例の暗号化処理の部分を、数式を用いて次に説明
する。 前処理部54 平文ブロックPを2分割する、 即ち、P=L0 ‖R0 反復処理部55 次の演算を、i=1からi=Nまで繰り返す。
【0045】Ri =Li-1 (+)f(Ri-1 ,KUi
(+)MAP(Ri-1 ,KUi ) Li =Ri-1 数式は、実施例1のものと同じである。N回反復後に、
左半分と右半分を入れ換え、左データはRN ,右データ
はLN で表わす。 後処理部56 RN ‖LN が、暗号文ブロックCとなる。即ち、 C=RN ‖LN
【0046】
【発明の効果】以上述べたように、実施例1では、秘密
鍵暗号の前処理部で動的写像手段14を用い、後処理部
で動的写像手段15を用い、更に、実施例1、4では、
秘密鍵暗号の動的写像をf関数手段に並列に接続し、実
施例2では、秘密鍵暗号の動的写像手段をf関数手段に
直列に接続し、実施例3では、秘密鍵暗号のAONR論
理手段をf関数手段に並列に接続し、実施例4では、実
施例1で用いた動的写像手段14と動的写像手段15を
省き、実施例1、2、4の場合に、差分がf関数手段を
確率p1 で通過し、動的写像手段を確率p2 で通過する
と、差分が暗号装置の反復単位を通過する確率は、p 1
・p2 となり、同様に、実施例3の場合に、差分がf関
数手段を確率p1 で通過し、AONR論理関数を確率p
3 で通過すると、差分が暗号装置の反復単位を通過する
確率は、p1 ・p3 となり、結果として、暗号鍵が算出
され難い、強い暗号が設計できる効果が得られる。
【図面の簡単な説明】
【図1】この発明に基づく暗号装置の一実施例を示す構
成概要図。
【図2】aは図1中の動的写像手段24−1〜24−N
の一実施例を示す構成図、bはこの発明に基づく暗号装
置内部の反復単位の他の一実施例を示す構成図である。
【図3】aはこの発明に基づく暗号装置内部の反復単位
の更に他の実施例を示す構成図、bはその更に他の実施
例を示す構成図である。
【図4】aは差分通過確率100%の関数の構成例を示
す図、bはその他の例を示す図、cは差分通過確率50
%の1:1写像の構成例を示す図である。
【図5】aは差分通過確率100%未満の1:1写像の
他の構成例を示す図、bはその更に他の例を示す図であ
る。
【図6】従来のFEAL暗号装置の処理概要を示すブロ
ック図。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−97930(JP,A) 特開 平6−51698(JP,A) 特開 平6−161353(JP,A) 特開 平2−33182(JP,A) 特開 平2−27389(JP,A) (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 H04L 9/06

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 入力平文ブロックを前処理部で2つのブ
    ロックに分割すると共に鍵処理部で処理されたサブ鍵と
    融合し、その前処理部よりのデータブロックを反復処理
    部で、上記鍵処理部からのサブ鍵を用いてf関数手段で
    攪拌処理することを反復し、その反復処理部よりの左、
    右データブロックを後処理部で、上記鍵処理部からのサ
    ブ鍵と融合すると共に1つのブロックに結合する暗号装
    置において、 上記サブ鍵がパラメータとして入力され、そのパラメー
    タにより機能を変える動的写像手段が上記各f関数手段
    とそれぞれ並列に接続され 上記動的写像手段は、入力データブロックを2つのブロ
    ックに分ける第1分岐手段と、 入力パラメータを二つの
    ブロックに分ける第2分岐手段と、上記第1、第2分岐
    手段の各一方の出力を入力としてAONR論理演算を行
    う第1AONR論理手段と、その演算結果と上記第1分
    岐手段の他方の出力との排他的論理和をとる第1回路
    と、その第1回路の出力と上記第2分岐手段の他方の出
    力とのAONR論理演算を行う第2AONR論理手段
    と、その演算結果と上記第1分岐手段の一方の出力との
    排他的論理和をとる第2回路と、上記第1、第2回路の
    出力を結合して1つのブロックとして出力する結合手段
    と、上記第1分岐手段の入力側と上記結合手段との間の
    通路に直列に挿入された少なくとも1つ写像手段と、か
    らなることを特徴とする暗号装置。
  2. 【請求項2】 入力平文ブロックを前処理部で2つのブ
    ロックに分割すると共に鍵処理部で処理されたサブ鍵と
    融合し、その前処理部よりのデータブロックを反復処理
    部で、上記鍵処理部からのサブ鍵を用いてf関数手段で
    攪拌処理することを反復し、その反復処理部よりの左、
    右データブロックを後処理部で、上記鍵処理部からのサ
    ブ鍵と融合すると共に1つのブロックに結合する暗号装
    置において、 上記サブ鍵がパラメータとして入力され、そのパラメー
    タにより機能を変える動的写像手段が上記各f関数手段
    とそれぞれ直列に接続され 上記動的写像手段は、入力データブロックを2つのブロ
    ックに分ける第1分岐手段と、 入力パラメータを二つの
    ブロックに分ける第2分岐手段と、上記第1、第2分岐
    手段の各一方の出力を入力としてAONR論理演算を行
    う第1AONR論理手段と、その演算結果と上記第1分
    岐手段の他方の出力との排他的論理和をとる第1回路
    と、その第1回路の出力と上記第2分岐手段の他方の出
    力とのAONR論理演算を行う第2AONR論理手段
    と、その演算結果と上記第1分岐手段の一方の出力との
    排他的論理和をとる第2回路と、上記第1、第2回路の
    出力を結合して1つのブロックとして出力する結合手段
    と、上記第1分岐手段の入力側と上記結合手段との間の
    通路に直列に挿入された少なくとも1つ写像手段と、か
    らなることを特徴とする暗号装置。
JP14036794A 1994-06-22 1994-06-22 暗号装置 Expired - Fee Related JP3478306B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14036794A JP3478306B2 (ja) 1994-06-22 1994-06-22 暗号装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP14036794A JP3478306B2 (ja) 1994-06-22 1994-06-22 暗号装置

Publications (2)

Publication Number Publication Date
JPH086498A JPH086498A (ja) 1996-01-12
JP3478306B2 true JP3478306B2 (ja) 2003-12-15

Family

ID=15267181

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14036794A Expired - Fee Related JP3478306B2 (ja) 1994-06-22 1994-06-22 暗号装置

Country Status (1)

Country Link
JP (1) JP3478306B2 (ja)

Also Published As

Publication number Publication date
JPH086498A (ja) 1996-01-12

Similar Documents

Publication Publication Date Title
JP5229315B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
JP4936996B2 (ja) 非線形データ変換器、暗号化装置、および復号装置
EP1052611B1 (en) Data converter and recording medium on which program for executing data conversion is recorded
US5442705A (en) Hardware arrangement for enciphering bit blocks while renewing a key at each iteration
Meier On the security of the IDEA block cipher
WO2001067425A1 (fr) Systeme de chiffrage de blocs utilisant la conversion auxiliaire
Mohan et al. Performance analysis of AES and MARS encryption algorithms
CN110880967B (zh) 采用分组对称密钥算法对多消息并行加解密方法
Golic Techniques for random masking in hardware
Chauhan et al. Quantum free-start collision attacks on double block length hashing with round-reduced AES-256
CN112564890B (zh) 一种加速sm4算法的方法、装置、处理器及电子设备
JP3478306B2 (ja) 暗号装置
Moldovyan On cipher design based on switchable controlled operations
JP3782210B2 (ja) 暗号装置
JP5268001B2 (ja) ストリーム暗号向け擬似乱数生成装置とプログラムと方法
JP2002510058A (ja) 2進データ・ブロックの暗号変換のための方法
JPH1124558A (ja) 暗号装置
JPH09269727A (ja) 暗号化方法および暗号化装置
Seki et al. Cryptanalysis of five rounds of CRYPTON using impossible differentials
Poupard et al. Decorrelated Fast Cipher: an AES Candidate well suited for low cost smart cards applications
JPH10153954A (ja) 暗号装置
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Izotov et al. Controlled operations as a cryptographic primitive
Hassan New Approach for Modifying DES Algorithm Using 4-States Multi-keys
JP2000089666A (ja) 暗号化/復号化装置

Legal Events

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

Free format text: PAYMENT UNTIL: 20081003

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees