JP3492988B2 - データ変換装置及びそのプログラム記録媒体 - Google Patents

データ変換装置及びそのプログラム記録媒体

Info

Publication number
JP3492988B2
JP3492988B2 JP2000211244A JP2000211244A JP3492988B2 JP 3492988 B2 JP3492988 B2 JP 3492988B2 JP 2000211244 A JP2000211244 A JP 2000211244A JP 2000211244 A JP2000211244 A JP 2000211244A JP 3492988 B2 JP3492988 B2 JP 3492988B2
Authority
JP
Japan
Prior art keywords
bytes
output
data
input
stage
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
JP2000211244A
Other languages
English (en)
Other versions
JP2002023621A5 (ja
JP2002023621A (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 JP2000211244A priority Critical patent/JP3492988B2/ja
Publication of JP2002023621A publication Critical patent/JP2002023621A/ja
Application granted granted Critical
Publication of JP3492988B2 publication Critical patent/JP3492988B2/ja
Publication of JP2002023621A5 publication Critical patent/JP2002023621A5/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、主に暗号技術で
用いられる共通鍵ブロック暗号に適用されるデータ変換
置及びそのプログラム記録媒体に関するものである。
【0002】
【従来の技術】データを秘匿するためには暗号化技術が
有効である。暗号化の方法は共通鍵暗号と公開鍵暗号が
ある。共通鍵暗号では、暗号作成側と暗号復号側で同一
の鍵を用い、この鍵は秘密に管理されている。一方、公
開鍵暗号では暗号文作成の鍵と暗号文復号の鍵は異なっ
ており、暗号文作成のための鍵は公開しても、復号のた
めの鍵は現実的な時間内に求まらないと広く信じられて
いる。処理速度の観点からは共通鍵暗号の方が有利であ
る。
【0003】高速かつ安全な共通鍵暗号を構成するため
に、暗号化対象のデータを適当な長さのブロックに分割
し、そのブロック毎に暗号化する方法をブロック暗号と
呼ぶ。この様な暗号方式として代表的なDES暗号の構
成は、例えば「Bruce Schneier:“Applied Cryptograp
hy”,2nd Edition,pp.270-277,John Wiley & Sons,I
nc., 1996」に示されている。このDES暗号をはじめ
多くの共通鍵ブロック暗号はFeistel構造と呼ばれる構
造を有している(図9参照)。すなわち、入力をM、出
力をCと置いたときに以下のステップで暗号化される。
【0004】Step1:(L,R)←M、つまりMを
LとRに2分割し、 Step2:i=1,2,…,rに対し、 (L,R)←(Fi (L)+R,L) を繰り返す。つまり第i段の入力Lに対し段関数演算値
i (L)を求め、そのFi (L)と入力Rとの線形演
算を行って、その結果をLとして第i+1段へ出力し、
入力LをRとして第i+1段へ出力する。
【0005】Step3:C←(R,L) ここで、繰り返し回数rを段数、Fi を段関数と呼ぶ。
段関数(図10参照)は、DES暗号をはじめとする多
くの暗号で換字(substitution)と置換(permutatio
n)の組合せから構成されている。換字置換(図11参
照)はかなり広い概念であるが、近年ソフトウェア実装
の要請から
【0006】
【数9】
【0007】という形の換字置換が多く用いられてきて
いる。ここで演算は全て環R上での演算を用い、置換を
【0008】
【数10】
【0009】で、換字をsj :R→R(j=1,2,
…,n)とする。つまり、行列の積を置換と考える。式
(1)に示される換字置換は文献「V.Rijmen,et al,:
“The Cipher SHARK,”Fast Software Encryption−Thi
rd International Workshop,Lecture Notes in Compute
r Science 1039,pp.99-111,Springer-Verlag,1996」
(以下『文献S』と略す)で定義されているSHARK
暗号でも使われている。文献Sには
【0010】
【数11】
【0011】という式変形を用い、予め
【0012】
【数12】
【0013】で示される関数SPj の出力値をメモリな
どに事前計算することにより式(1)を効率的に計算す
る方法も示されている。上記換字置換を用いた暗号とし
て、文献「神田ら:“128ビットブロック暗号Cam
ellia,”信学技報,ISEC2000−6,p
p.47−75,2000」(以下『文献C』と略す)
で提案されたCamellia暗号がある。このCam
ellia暗号は入力16バイト出力16バイトで、F
eistel構造を有し、段関数は次の式により計算さ
れる構造を含む。
【0014】
【数13】
【0015】段関数の計算は以下のように記述できる。 Step1:入力から表引きの鍵(インデックス)を切
り出す。 Step2:表を引く。 Step3:表を引いた結果に線形演算を施す。これに
より段関数計算結果が得られる。 また、Feistel構造ではこの段関数の出力に Step4:線形演算の結果にRを足し込む。というS
tepが繰り返し処理中に入る。
【0016】32ビットCPUでは、一つのレジスタの
サイズは32ビットすなわち4バイトを格納できる。C
amellia暗号の入出力は16バイトであるから、
データ変換途中の状態は4つのレジスタにより保存でき
る。これを(X1 ,X2 ,X 3 ,X4 )と記述する。I
ntelの32ビットCPUであるPentium(登
録商標)などでは、 Xd ←Xs mod28d ←(Xs /28 )mod28 のいずれかを計算する命令がある。すなわちこの前者の
命令を使うと、あるレジスタの最下位バイト又は後者の
命令を使うと2番目の下位バイトを零拡張して他のレジ
スタにコピーすることができる。このレジスタにコピー
されたデータを鍵(インデックス)として表を引くこと
ができる。つまりこの命令は換字置換処理において表引
きの鍵生成に有効であるが、上位2バイトに対する鍵を
生成することができない問題点がある。
【0017】従って、上位2バイトに対する鍵を生成す
るため、ローテーション命令を利用し、段関数の入力を
表すレジスタの上位2バイトと下位2バイトを入れ替え
て、その下位に移された2バイトを前記二つの命令でそ
れぞれ取出して表を引く鍵(インデックス)とすれば解
決できる。しかしこの上位と下位が入れ替えられたLが
次段にRとして出力されると、この段でのFeiste
l構造の加算、すなわちStep4(段関数計算値とR
との加算)を計算する際に、上位下位が入れ替ったまま
であると加算すべきバイト位置が異なり、正しく計算で
きない。そこで、段関数の入力に対し、上位2バイトに
対する鍵を前述したように生成した後にまた、ローテー
ション命令を利用してデータ位置を元に戻す必要があ
る。結局、表を引くための鍵生成に伴うローテーション
命令の数が多くなる。
【0018】またCamellia暗号において、段関
数計算に用いる準備すべき表は、文献Sの方法に従う
と、図12に示す通りである。この表をそのまま使う
と、xは28 個の値をとることができるから合計16キ
ロバイト(8×8×28 バイト)も要し、いくつかのC
PUでは1次キャッシュサイズを越え、大きな性能低下
をもたらす。
【0019】
【発明が解決しようとする課題】この発明の目的はデー
タ変換を計算するために必要な表(テーブル)を引く
(参照する)ための鍵(インデックス)の生成コスト、
つまり所要の命令数を低減することができるデータ変換
装置及びそのプログラム記録媒体を提供することにあ
る。この発明の他の目的はデータ変換を計算するために
必要な表(テーブル)を格納するメモリ量を少なくし、
通常のCPUの一次キャッシュサイズに納まるようにし
たデータ変換装置及びそのプログラム記録媒体を提供す
ることにある。
【0020】
【課題を解決するための手段】この発明の第1観点によ
れば、各4バイトの入力データX1 ,X2 ,X3 ,X 4
が入力されFeistel構造の各段ごとにそのX1
2 の各下位2バイトによる表の参照と、その後、
1 ,X2をそれぞれ上位2バイトと下位2バイトを入
れ替えて、その各新たな下位2バイトによる表の参照を
行い、その入れ替えられたX1 ,X2 を次段へX3 ,X
4 として出力し、第n段において参照される各表は、n
mod4=1及びnmod4=0に対して出力の上位2バイト
と下位2バイトが入れ替えられてないものであり、nmo
d4=2及びnmod4=3に対しては出力の上位2バイト
と下位2バイトが入れ替えられたものである。
【0021】つまりこのような表を用いることにより、
各段のX1 ,X2 は表参照のために下位2バイトと上位
2バイトが入れ替えられたまま、次段へX3 ,X4 とし
て出力されても正しく動作する。この発明の第2観点に
よれば、置換行列Pにおいて、各列中に上位4要素と下
位4要素とが同一なものがあり、かつその同一の4要素
が、他の列の上位又は下位4要素と同一のものがある場
合に、前記上位4要素と下位4要素が同一のものとに対
応する表は省略し、その上位又は下位要素と同一のもの
と対応する表を引いた後、得られたデータ中の同一4バ
イトを並置し、省略した表を参照したものと同一のデー
タを得る。このようにして表の数を省略することができ
る。
【0022】
【発明の実施の形態】図1にこの第1観点の発明の実施
例を示し、この例ではFeistel構造の第1段より
第4段まで示され、図に示した構成におけるLとしてX
1 ,X2 がRとしてX3 ,X4 が入力される。各段にお
いてX1 ,X2 は第1線形変換部で線形変換され、表を
利用する換字置換部により換字置換され、更に第2線形
変換部により線形変換されて、段関数演算結果が得ら
れ、その段関数演算結果が入力X 3 ,X4 と排他的論理
和演算などの線形演算がなされ、次段へX1 ,X2 とし
て出力される。
【0023】各段において、その換字置換部における表
を引く(参照する)ために、図2に示すようにその入力
1 はX1 mod28 によりX1 の最下位バイトによる表
を引くための鍵(インデックス)X11が求められて(S
1)表を引き、計算値SP(X11)を得(S2)、また
(X1 /28 )mod28 によりX1 の2番目の下位バイ
トによる表を引くための鍵X12が求められ(S3)、表
を引きSP(X12)が求められる(S4)。同様にX2
についても、最下位バイト及び2番目の下位バイトによ
る表を引くための鍵X21,X22がそれぞれ求められ(S
1,S3)、それら鍵X21,X22により表が引かれて、
その結果SP(X21),SP(X22)が得られる。
【0024】その後、X1 ,X2 をそれぞれ2バイト循
環シフトして上位2バイトと下位2バイトが入れ替えら
れたX1 ′,X2 ′を求め(S5)、これらについて同
様に、X1 ′mod28 、X2 ′mod28 によりそれぞれ鍵
13,X23を得て(S6)、これらにより表を引いて、
SP(X13),SP(X23)を求める(S7)。更に
(X1 ′/28 )mod28 ,(X2 ′/28 )mod28
より鍵X14,X24を求めて(S8)、これらにより表を
引いてSP(X14),SP(X24)を得る(S9)。以
上のSPは全て異なっていても構わない。
【0025】なお図1では第1段目のX1 の4バイトを
abcd、X2 の4バイトをefgh、X3 の4バイト
をijhl、X4 の4バイトをmnopとして示してい
る。従って、前記鍵X11,X12,X13,X14はそれぞれ
d,c,b,aとなり、鍵X 21,X22,X23,X24はそ
れぞれh,g,f,eとなる。換字置換部の表をこのよ
うにして参照するためその表の参照が終った状態ではX
1 ,X2 はcdab,ghafと上位2バイトと下位2
バイトとが入れ替った状態となっているが、そのまま次
段へX3 ,X4 として出力される。図1中では各データ
1 ,X2 ,X3 ,X4 中の各バイトの上位、下位の入
れ替え状態を解り易くするため、段の移行に伴うX1
2 とX3 ,X4 の入れ替えを行うことなく、その上
位、下位の入れ替えをabcd,efgh,ijkl,
mnopで示してある。
【0026】換字置換部に用いる表は、図1中の第1段
目と第4段目とにおいては本来の上下関係が保持された
ものである。つまり例えば図3BのSPno1 (x)に示
すように、上位2バイトが0,s1 (x)、下位2バイ
トがs1 (x),s1 (x)とすると、その上下関係を
保って出力される。しかし、図1中の第2段目と第3段
目に用いられる表は上位2バイトと下位2バイトが入れ
替えられて出力される。つまり、図3BのSP
no1 (x)に対し、図3CのSPin1 (x)に示すよう
に本来の下位2バイトs1 (x),s1 (x)が上位2
バイトとして出力され、本来の上位2バイト0,s
1 (x)が下位2バイトとして出力される。このように
正常な表に対し、上位2バイトと下位2バイトとが入れ
替えられた出力を出すように作られている。図1中で正
常な上下関係に出力される通常表をSPnoとして示し、
上位2バイトと下位2バイトを入れ替えて出力する入替
表をSPinとして示す。
【0027】このデータ変換装置はコンピュータにより
動作させることもできる。その場合は例えば図4に示す
ように入出力部11、通常表SPnoの各SP1 ,S
2 ,…の各xについて計算されたものが記憶された通
常表記憶部12、この通常表記憶部12の各SPnoの上
位バイトと下位バイトが入れ替えられたものSPinが記
憶された入替表記憶部13、このデータ変換処理をコン
ピュータに行わせるためのプログラムが格納されたプロ
グラムメモリ14、プロセッサ15がバス16に接続さ
れている。
【0028】データX1 ,X2 ,X3 ,X4 が入力され
ると、X1 ,X2 とX3 ,X4 に分けられ、まず図1中
の第1段目の処理が行われる。以下の処理手順は図9に
示した場合と同様であるが、各換字置換部における表を
参照するために図2に示した処理を行っており、表を参
照するデータX1 ,X2 の各上位2バイトと下位2バイ
トが入れ替えられた状態で次段へX3 ,X4 として出力
される。しかしこの発明では正しい処理が行われること
を、そのバイトの入れ替えに影響されない点を重点的に
以下に説明する。 第1段目:X1 (abcd),X2 (efgh)を入力
として段関数を計算する際に通常の表SPnoを引く。こ
の表引きの処理の結果、X1 ,X2 の上位下位は入れ替
わり、cdab,ghefとなり、X3 ,X4 として第
2段目へ出力される。 第2段目:X1 (ijkl),X2 (mnop)を入力
して段関数を計算する際に上位下位が入れ替った表SP
inを引く。従って段関数計算出力は上位下位が入れ替っ
ており、上位下位が入れ替っているX3 (cdab),
4 (ghef)との和演算は対応するバイトごとに行
われる。この上位下位が入れ替った和演算結果がX
1 (cdab),X2 (ghef)として第3段目へ出
力され、また表引き処理に伴って上位下位が入れ替った
1 (klij),X2 (opmn)がX3 ,X4 とし
て第3段目へ出力される。 第3段目:X1 (cdab),X2 (ghef)を入力
として段関数計算に入替表SPinを引き、その際に入力
の上位下位が入れ替っているのでそれに応じて表を引く
順序を修正する。
【0029】 この点について少し説明する。いま簡単
にするため、換字置換関数が図3Aで示される時、xの
8 個の値について図3Bに示す4つの通常表SPno1
(x),SPno2 (x),SPno3 (x),SP
no4 (x)を用意し、また図3Cに示すように4つの入
替表SPin1 (x),SPin2 (x),SP
in3 (x),SPin4 (x)を用意しておく。X1
(a,b,c,d)で通常表を引く場合は、dを鍵とし
SP no (x)を引きSPno4 (d)を得、次にc
を鍵としてSPno3 (x)を引きSPno3 (c)を得、
次にa,bを下位に移動してbを鍵としてSP
no2 (x)を引きSPno2 (b)を得、次にaを鍵とし
てSPno1 (x)を引きSPno1 (a)を得、これらの
和を求める。つまり図5Aに示す式の和演算を行う。こ
の場合は通常表をSPno4 (x),SPno3 (x),S
no2 (x),SPno1 (x)の順に引くことになる。
【0030】一方、X1 =(a,b,c,d)の上位下
位が入れ替えられたX1 ′=(c,d,a,b)で通常
表を引く場合は、図5Bに示すようにbによりSPno2
(x)を引き、次にaによりSPno1 (x)を引き、そ
の後、X1 ′の上位下位を入れ替えてdでSP
no4 (x)を引き、次にcでSPno3 (x)を引くこと
になる。つまりこの場合の通常表を引く順にSP
no2 (x),SPno1 (x),SPno 4 (x),SP
no3 (x)となり、X1 =(a,b,c,d)の場合と
表を引く順が異なる。
【0031】同様にX1 =(a,b,c,d)により入
替表を引いて加算する場合を表を引く順に図5Cに示
し、X1 ′=(c,d,a,b)により入替表を引いた
順に並べてその和を図5Dに示す。第3段目のX1 (c
dab)による入替表SPinを引く順は図5Dに示した
順となる。同様にX2 (ghef)による入替表SPin
を引く順も図5Dに示した順と同様にする。段関数の演
算結果は上位下位が入れ替っているため、X3 (kli
j),X4(opmn)と対応したバイトごとの和演算
を行うことができる。
【0032】表を引く際にX1 ,X2 の上位下位が入れ
替えられ、X3 (abcd),X4(efgh)として
第4段目へ出力される。 第4段目:X1 (klij),X2 (opmn)により
段関数を計算する際に通常の表SPnoを引く。この表を
引く際に、その入力の上位下位が入れ替っているのでそ
れに応じて表を引く順序を修正する。この段関数演算結
果は上位下位が入れ替っていなく、かつこれと和演算を
行うX3 (abcd),X4 (efgh)も上位下位が
入れ替っていないため、正しい和演算が行える。
【0033】表を引く際の処理において、入力X1 (k
lij),X2 (opmn)の上位下位が入れ替えら
れ、X3 (ijkl),X4 (mnop)として出力さ
れ、和演算出力も上位下位の配列が正常になる。このよ
うに第4段目で出力されるX1,X2 とX3 ,X4 は共
に上位と下位は正常なものとなる。一般にはこのFei
stel構造の段数は4以上であり、図6に示すよう
に、参照する(引く)表と、表を引く順の変更について
みれば第5段目以後は第1段目〜第4段目が繰返され
る。
【0034】最終段の出力X1 ,X2 ,X3 ,X4 につ
いては、それが第1段目〜第4段目の繰返しの何れの段
に相当するかにより上位と下位が正しい配列になってい
ない場合はその入れ替え補正処理を行う。つまり最終段
の計算の結果、X1 ,X2 ,X3 ,X4 に対し、全段数
の値rによりデータ構造を以下の様に補正する。rmod
4=0のとき、図1中の第4段目に相当する出力である
からなにもしない。
【0035】rmod4=1のときは図1中の第1段目に
相当する出力であるからX3 ,X4の上位2バイトと下
位2バイトの入れ替えを行う。rmod4=2のときは図
1中の第2段目に相当する出力であるからX1 ,X2
3 ,X4 の全ての上位下位を入れ替える。rmod4=
3のときは図1中の第3段目に相当する出力であるから
1 ,X2の上位下位を入れ替える。
【0036】以上述べたようにこの実施例によれば表引
きのためにローテーションしたデータをそのまま利用し
ているため、つまり、バイトの配列順を元に戻す処理を
行わないで済む。表引きの際の鍵生成のためのローテー
ションのコストが削減できる。なお図3Aに示す表引き
は、X1 とX2で同一でもよいし、異なってもよいこと
に注意されたい。 次に第2観点の発明の実施例を述べ
る。この実施例はCamellia暗号に適用した場合
であり、式(2)に対し、従来において準備すべき表は
図12に示したものであった。この表をよく調べると、
SP1 (x),SP2 (x),SP 3 (x),SP
4 (x)はそれぞれ上位4バイトと下位4バイトが同一
であり、かつSP1 (x),SP2 (x),SP
3 (x),SP4 (x)の各下位4バイトはSP
5 (x),SP6 (x),SP7 (x),SP8 (x)
の各下位バイトとそれぞれ同一である。従って、この実
施例では、SP1 (x),SP2 (x),SP
3 (x),SP4 (x)については表を用意することな
くこれらを求める場合は、SP5 (x),SP
6 (x),SP7 (x),SP8 (x)の表を引き、そ
の引いた出力に対し、その下位4バイトを上位バイトに
コピーして求める。このようなコピーは、Intelの
32ビットCPUであるPentiumなどには下位4
バイトを上位4バイトにコピーする命令があり、この命
令を用いればよい。
【0037】つまり図7に示すように、入出力部21、
記憶部22、それぞれxの28 個の値に対する表SP5
(x),SP6 (x),SP7 (x),SP8 (x)が
格納された表メモリ23、このデータ変換処理をコンピ
ュータに行わせるためのプログラムが格納されたプログ
ラムメモリ24、プロセッサ25がバス26に接続され
ている。図8に示すように、各1バイトのデータx1
8 が入力されると、これを記憶部22に格納し(S
1)、式(2)から理解されるように、記憶部22から
これらデータを取り出し、x8 とx1 により表SP
5 (x)を、x5 とx2 により表SP6 (x)を、x6
とx3 により表SP7 (x)を、x7 とx4 により表S
8 (x)をそれぞれ参照してSP5 (x8 ),SP5
(x1 ),SP6 (x5),SP6 (x2 ),SP
7 (x6 ),SP7 (x3 ),SP8 (x7 ),SP 8
(x4 )をそれぞれ求めて記憶部22に記憶し(S
2)、その後、SP5 (x8 ),SP6 (x5 ),SP
7 (x6 ),SP8 (x7 )を順次取出し、それぞれそ
の下位4バイトを上位4バイトにコピーしてSP1 (x
8 ),SP2 (x5 ),SP3 (x6 ),SP
4 (x7 )を求め、これらを記憶部22に記憶し(S
3)、記憶部22から取り出して、SP1 (x8 )とS
2 (x5 )とSP3 (x6)とSP4 (x7 )とSP
5 (x1 )とSP6 (x2 )とSP7 (x3 )とSP 8
(x4 )との和を求め(S4)、その和演算結果を出力
する(S5)。
【0038】なおステップS4の和演算は加算又は排他
的論理和演算である。また下位4バイトを上位4バイト
にコピーする命令をpunpckldqと書くと、
【0039】
【数14】
【0040】により換字置換を行うことができる。つま
り図8中に破線で示すように、ステップS2で表の読み
出しを行って記憶部22に記憶した後、SP5(x8)と
SP8(x7)とSP7(x6)とSP6(x5)との和演算
を行い(S6)、その和演算の結果の下位4バイトを上
位4バイトにコピーし(S7)、そのコピー結果と、S
8(x4)と、SP7(x3)とSP6(x2)とSP
5(x1)との和演算を行い(S8)、その結果を出力す
る(S5)。このようにすることにより、punpckldqを
一段毎に1回用いるだけで表のためのメモリを、従来の
半分、つまり8キロバイトで済む。この程度の表記憶容
量であれば、多くのCPUの一次キャッシュサイズに納
まる。
【0041】なお、この発明はCamellian暗号
の換字置換のみならず、一般に置換行列Pの何れかの列
において、上位4ビットと下位4ビットが同一であり、
かつその4ビットと同一の上位又は下位4ビットの他の
列がある場合は、その上位下位4ビットが等しいものと
対応する表を省略し、その4ビットと等しい上位又は下
位4ビットをもつ列に対応する表を参照し、その参照結
果に対しその上位又は下位4バイトを下位又は上位4バ
イトにコピーして使用するようにすることにより、それ
だけ、表のためのメモリ容量を小さくすることができ
る。
【0042】
【発明の効果】以上述べたように、データ変換を計算す
る場合にこの発明の第1観点によれば表を参照するため
の鍵生成コストを削減でき高速処理が可能となり、この
発明の第2観点によれば、表のメモリ量を小さくするこ
とができ、第1観点と第2観点を組合せることにより、
表のために少ないメモリ容量でかつ表参照のための鍵生
成コストを削減し、高速処理が可能となる。
【図面の簡単な説明】
【図1】この発明の実施例を示す図。
【図2】表を引くための鍵生成手順の例を示す流れ図。
【図3】換字置換関数と、その演算のための通常表と、
上位2バイトと下位2バイトを入れ替えをデータを出力
する入替表との各例を示す図。
【図4】図1をコンピュータにより処理させる場合の構
成例を示す図。
【図5】上位と下位の入れ替えがないデータによる表参
照の順と、上位と下位の入れ替えがあるデータによる表
参照の順との例を示す図。
【図6】繰返し換字置換処理における各段の表の種類
と、表引き順の変更の有無と、最終段以後での補正処理
を示す流れ図。
【図7】この発明の他の実施例の機能構成を示す図。
【図8】図7に示した実施例の動作手順の例を示す流れ
図。
【図9】一般的なFeistel構造を示す図。
【図10】段関数の処理例を示す図。
【図11】換字置換の処理例を示す図。
【図12】換字置換を用いる表の例を示す図。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 神田雅透,盛合志帆,青木和麻呂,植 田広樹,大久保美也子,高嶋洋一,太田 和夫,松本勉,“128ビットブロック暗 号E2の提案”,電子情報通信学会技術 研究報告(ISEC98−10〜19),日 本,社団法人電子情報通信学会,1998年 7月30日,Vol.98,No.227, p.13−24 (58)調査した分野(Int.Cl.7,DB名) G09C 1/00 610 G09C 1/00 650

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 1命令でX d ←X s mod 8 ,X d
    (X s /2 8 mod 8 を演算することができるプロセ
    ッサを備え、それぞれが4バイトのデータX1 ,X2
    3 ,X4 が入力され、入力されたX1 ,X2 について
    段関数演算 【数15】 を(x1 ,x2 ,x3 ,x4 はデータX1 ,X2 中の各
    上位から1バイトごとのデータをそれぞれ表わす)、 各xについてあらかじめ計算して表として記憶された 【数16】 を参照して求め、その演算結果を入力されたX3 ,X4
    とのバイトごとの線形演算を行ない、その演算結果を次
    段へX1 ,X2 として出力し、かつ上記入力された
    1 ,X2 を次段へX3 ,X4 として出力することを複
    数段繰返すデータ変換装置であって、上記各xについて計算された各SP j (x)が通常表S
    noj (x)として記憶され、上記各SP noj (x)の上
    位2バイトP 1j j (x),P 2j j (x)が下位2バイ
    トと、下位2バイトP 3j j (x),P 4j j (x)が上
    位2バイトとそれぞれされたものが入替表SP inj (x
    )として記憶されている記憶部と、 上記各段に入力されたX1 ,X2 の各下位2バイトによ
    る表の参照と、X 1 ,X2 をそれぞれ上位2バイトと下
    位2バイトとを入れ替えて、その各新たな下位バイトに
    よる表の参照を行い、その入れ替えられたX1 ,X2
    次段へX3 ,X4 として出力する手段と、 第n段の上記段関数演算を、nmod4=1及びnmod4=
    では上記通常表SP noj (x)を参照し、nmod4=2
    及びnmod4=3では上記入替表SP inj (x)を参照し
    て求める手段と、 最終段において、全段数をrとすると、rmod4=0で
    なにもせず、rmod4=1でX3 ,X4 の各上位2バイ
    トと下位2バイトを入れ替え、rmod4=2でX1 ,X 2
    ,X 3 ,X 4 の各上位2バイトと下位2バイトをそれぞ
    れ入れ替え、rmod4=3でX1 ,X2 の上位2バイト
    と下位2バイトを入れ替える手段と、 を備えることを特徴とするデータ変換装置。
  2. 【請求項2】 入力データx1 ,x2 ,…,x8 に対
    し、 【数1】 を演算する装置であって、 【数2】 xのとり得る値の全てについて上記SP5 (x),SP
    6 (x),SP7 (x),SP8 (x)をそれぞれ演算
    した結果がそれぞれ表として格納され、xにより参照さ
    れて対応する演算結果を出力する4つの表メモリと、 x8 とx1 により上記SP5 (x)の表メモリを参照
    してSP5 (x8)とSP5 (x1)を出力し、x5 とx
    2 により上記SP6 (x)の表メモリを参照してSP6
    (x5)とSP6 (x2)を出力し、上記x6 とx3
    より上記SP7 (x)の表メモリを参照してSP7 (x
    6)とSP7 (x3)を出力し、上記x7 とx4 により上
    記SP8 (x)の表メモリを参照してSP8 (x7)と
    SP8 (x4)を出力する表参照手段と、 上記SP5 (x8),SP6 (x5),SP7 (x6),
    SP8 (x7)のそれぞれについて下位4バイトを上位
    4バイトにコピーしてそれぞれSP1 (x8),SP2
    (x5),SP3 (x6),SP4 (x7)を求めるコピ
    ー手段と、 上記SP1 (x8)とSP2 (x5)とSP3 (x6)と
    SP4 (x7)と上記SP5 (x1)とSP6 (x2)と
    SP7 (x3)とSP8 (x4)とを和演算して、出力す
    る和演算手段とを具備するデータ変換装置。
  3. 【請求項3】 入力データx1 ,x2 ,…,x8 に対
    し、 【数3】 を演算する装置であって、 【数4】 xのとり得る値の全てについて上記SP5 (x),SP
    6 (x),SP7 (x),SP8 (x)をそれぞれ演算
    した結果がそれぞれ表として格納され、xにより参照さ
    れて対応する演算結果を出力する4つの表メモリと、 x8 とx1 により上記SP5 (x)の表メモリを参照
    してSP5 (x8)とSP5 (x1)を出力し、x5 とx
    2 により上記SP6 (x)の表メモリを参照してSP6
    (x5)とSP6 (x2)を出力し、上記x6 とx3
    より上記SP7 (x)の表メモリを参照してSP7 (x
    6)とSP7 (x3)を出力し、上記x7 とx4 により上
    記SP8 (x)の表メモリを参照してSP8 (x7)と
    SP8 (x4)を出力する表参照手段と、 上記SP5 (x8)とSP6 (x5)とSP7 (x6)と
    SP8 (x7)との和演算を行う第1和演算手段と、 その第1和演算手段の演算結果について下位4バイトを
    上位4バイトにコピーするコピー手段と、 上記コピー手段のコピー結果と上記SP5 (x1)とS
    6 (x2)とSP7 (x3)とSP8 (x4)とを和演
    算して、出力する第2和演算手段とを具備するデータ変
    換装置。
  4. 【請求項4】 請求項1〜3の何れかに記載のデータ変
    換装置としてコンピュータ実行させるためのプログラ
    ムを記録したコンピュータ読取り可能な記録媒体。
JP2000211244A 2000-07-12 2000-07-12 データ変換装置及びそのプログラム記録媒体 Expired - Lifetime JP3492988B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000211244A JP3492988B2 (ja) 2000-07-12 2000-07-12 データ変換装置及びそのプログラム記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000211244A JP3492988B2 (ja) 2000-07-12 2000-07-12 データ変換装置及びそのプログラム記録媒体

Publications (3)

Publication Number Publication Date
JP2002023621A JP2002023621A (ja) 2002-01-23
JP3492988B2 true JP3492988B2 (ja) 2004-02-03
JP2002023621A5 JP2002023621A5 (ja) 2004-10-14

Family

ID=18707383

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000211244A Expired - Lifetime JP3492988B2 (ja) 2000-07-12 2000-07-12 データ変換装置及びそのプログラム記録媒体

Country Status (1)

Country Link
JP (1) JP3492988B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6292107B2 (ja) * 2014-12-01 2018-03-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
神田雅透,盛合志帆,青木和麻呂,植田広樹,大久保美也子,高嶋洋一,太田和夫,松本勉,"128ビットブロック暗号E2の提案",電子情報通信学会技術研究報告(ISEC98−10〜19),日本,社団法人電子情報通信学会,1998年 7月30日,Vol.98,No.227,p.13−24

Also Published As

Publication number Publication date
JP2002023621A (ja) 2002-01-23

Similar Documents

Publication Publication Date Title
JP3029381B2 (ja) データ変換装置
JP3188940B2 (ja) 暗号化システム
US6578061B1 (en) Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
JP3746098B2 (ja) データの暗号化装置
KR100435052B1 (ko) 암호화장치
JP5112325B2 (ja) 参照テーブルアドレス指定システム及び方法
US6125182A (en) Cryptographic engine using logic and base conversions
US20030103626A1 (en) Programmable data encryption engine
KR20020016624A (ko) 보조 변환을 이용한 블럭 암호 장치
US20070064933A1 (en) Method of symmetric key data encryption
JP2010049127A (ja) データ変換装置、およびデータ変換方法、並びにプログラム
JP5504592B2 (ja) データ変換装置、およびデータ変換方法、並びにプログラム
JPH08179690A (ja) プロダクト暗号装置
CN110034918B (zh) 一种sm4加速方法和装置
JP3492988B2 (ja) データ変換装置及びそのプログラム記録媒体
JP3012732B2 (ja) ブロック暗号処理装置
US7103180B1 (en) Method of implementing the data encryption standard with reduced computation
JP3770584B2 (ja) 暗号鍵生成回路
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
JP3401207B2 (ja) 換字置換装置及びそのプログラム記録媒体
JP4644053B2 (ja) 暗号化装置及び方法、復号化装置及び方法
JP3875495B2 (ja) 暗号設計装置、暗号設計プログラム、および記録媒体
KR100316024B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호화 장치
CN115801227B (zh) 一种生成置换表的方法及装置
KR100788902B1 (ko) 믹스컬럼블록 장치 및 이를 이용한 곱셈연산방법

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R151 Written notification of patent or utility model registration

Ref document number: 3492988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

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

Free format text: PAYMENT UNTIL: 20071114

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20081114

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20091114

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101114

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20101114

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20111114

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20121114

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20131114

Year of fee payment: 10

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