JP2001042766A - データ暗号化装置及びその方法 - Google Patents

データ暗号化装置及びその方法

Info

Publication number
JP2001042766A
JP2001042766A JP11367523A JP36752399A JP2001042766A JP 2001042766 A JP2001042766 A JP 2001042766A JP 11367523 A JP11367523 A JP 11367523A JP 36752399 A JP36752399 A JP 36752399A JP 2001042766 A JP2001042766 A JP 2001042766A
Authority
JP
Japan
Prior art keywords
data
bit
shift
key
cyclic
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.)
Granted
Application number
JP11367523A
Other languages
English (en)
Other versions
JP3190648B2 (ja
Inventor
Kaoru Yokota
薫 横田
Motoji Omori
基司 大森
Mitsuko Miyaji
充子 宮地
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP36752399A priority Critical patent/JP3190648B2/ja
Publication of JP2001042766A publication Critical patent/JP2001042766A/ja
Application granted granted Critical
Publication of JP3190648B2 publication Critical patent/JP3190648B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 巡回ビットシフト操作を伴うデータ変換を行
なうデータ暗号化装置であって、全単射な変換を行な
い、かつ、ビットアバランシェ性能の高いデータ変換を
行なうデータ暗号化装置を提供する。 【解決手段】 データ変換部300(及び301)は、
入力データFと部分鍵データKiとの2^32を法とす
る算術加算を行う鍵加算部3001と、そこから出力さ
れるデータGを入力として、Gを上位に7ビットだけ巡
回ビットシフトしたデータRot7(G)と、Gを上位
に1ビットだけ巡回ビットシフトしたデータRot1
(G)と、G自身との排他的論理和演算を行うデータ置
換部3002とを備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ暗号化装置
及びその方法に関し、特に、巡回ビットシフトを伴うデ
ータ暗号化技術に関する。
【0002】
【従来の技術】近年、デジタル通信が急速に普及してき
たが、健全な産業の発展やプライバシーを保護する等の
観点から、通信におけるデータの機密性を確保できる安
全性の高いデータ暗号化方式が要求されている。そのよ
うなデータ暗号化方式は、安全性のみならず暗号処理の
高速性及び実装の簡便性も要求される。 (第1の従来技術)データ暗号化方式の第1の従来技術
として、擬似乱数加算型暗号がある。
【0003】この方式では、送信側・受信側双方が同じ
秘密鍵(以下、単に「鍵」という。)を共有しており、
平文データMを一定長の平文データブロックMiに区切
り、区切られた各平文データブロックMiに対して、共
有している鍵をシードとして平文データブロックMiと
同じ長さの乱数データRを発生させる。次に、各平文デ
ータブロックMiとその乱数データRとを対応するビッ
ト毎に排他的論理和をとることにより、暗号文データブ
ロックCiを得る。式に表現すると以下の通りである。
【0004】Ci=Mi(+)R ここで、演算子“(+)”は対応するビット毎の排他的
論理和を意味する。最後に、得られた各暗号文データブ
ロックCiを連結することにより、暗号文Cを得る。こ
のデータ暗号化方式は、暗号化速度が非常に高いという
特徴を有し、画像や音声データのリアルタイム通信にお
けるデータ暗号化方式として適している。
【0005】しかし、この方式はきわめて安全性が低
い。なぜなら、暗号化に用いられる鍵が常に同じである
とすると、わずか1組の平文データブロックMiと暗号
文データブロックCiとを入手しただけで、以下の式か
ら明らかなように、乱数Rが判明するので、他の全ての
平文データブロックMiを解読することができてしまう
からである。
【0006】R=Mi(+)Ci (第2の従来技術)データ暗号化方式の第2の従来技術
としては、DES(DataEncryptionSt
andard)方式やFEAL(FastDataEn
ciphermentAlgorithm)方式といっ
たブロック暗号方式というものがある。なお、DES方
式ならびにFEAL方式は、岡本栄司著「暗号理論入
門」(共立出版)に詳しく述べられている。
【0007】このブロック暗号方式は、64ビットの入
出力データを扱うものであるが、強力にデータを撹乱す
る能力を持っている。このようなブロック暗号方式の具
体的な技術として、特開平1−276189号公報に記
載されたMulti2暗号方式を挙げることができる。
図14は、Multi2暗号方式のデータ暗号化装置に
用いられている3つのデータ変換部のうちの1つである
データ変換部40の構成を示すブロック図である。
【0008】本データ変換部40は、鍵加算部401
と、第1データ置換部402と、第2データ置換部40
3とから構成され、32ビットの入力データAに対し
て、入力される32ビットの部分鍵データKiに基づく
データ変換処理を行うことにより、32ビットの出力デ
ータDを出力する。具体的には、データ変換部40への
入力データA及び部分鍵データKiは、鍵加算部401
に入力される。鍵加算部401は、その入力データAと
部分鍵データKiとを、2^32を法とする算術加算を
行い、32ビットのデータBを出力する。式で表現する
と、 B=(A+Ki)mod2^32 を実行する。ここで、演算子“+”は算術加算を意味
し、“αmodβ”はαをβで割った余りを意味し、
“2^32”は2の32乗を意味する。
【0009】第1データ置換部402は、前記鍵加算部
401から出力されたデータBを入力とし、そのデータ
Bを上位に2ビットだけ巡回シフトしたデータRot2
(B)とデータB自身と定数データ1との2^32を法
とする算術加算を行い、32ビットのデータCを出力す
る。式で表現すると、 C=(Rot2(B)+B+1)mod2^32 を実行する。ここで、“Rotα(X)”は32ビット
のデータXを上位にαビットだけ巡回シフトすること
(及び、そのような巡回シフトによって得られたデー
タ)を意味する。
【0010】第2データ置換部403は、前記第1デー
タ置換部402から出力されたデータCを入力とし、デ
ータCを上位に4ビットだけ巡回シフトしたデータRo
t4(C)とデータC自身とのビットごとの排他的論理
和演算を行い、32ビットのデータDを出力する。式で
表現すると、 D=Rot4(C)(+)C を実行する。このデータDがデータ変換部40の最終結
果として出力される。
【0011】このように、従来のデータ変換部40は、
複数の巡回ビットシフトを組み合わせた演算を行うこと
で、高速なデータ撹乱操作を行っている。
【0012】
【発明が解決しようとする課題】しかしながら、上記従
来技術におけるデータ変換部40は、以下のような点に
おいて、安全性に問題がある。いま、第2データ置換部
403に以下の関係式を満たす2つの入力データM1,
M2それぞれが入力された場合に得られる出力データを
検討する。
【0013】M1(+)M2=55555555h ここで、“h”は16進表記であることを示す。まず、
巡回ビットシフトの線形性から、以下の式が成り立つ。 Rot4(M1)(+)Rot4(M2)=Rot4
(M1(+)M2) また、データ55555555h自体の対称性から、以
下の式が成り立つ。
【0014】 Rot4(55555555h)=55555555h これらより、以下の式が成り立つ。 Rot4(M1)(+)Rot4(M2)=55555
555h 従って、 Rot4(M1)(+)M1(+)Rot4(M2)
(+)M2=00000000h すなわち、 Rot4(M1)(+)M1=Rot4(M2)(+)
M2 が成り立つ。つまり、2つの入力データM1,M2それ
ぞれが入力された場合に得られる出力データは等しくな
る。このことは、第2データ置換部403が全単射な変
換(全射かつ単射な変換)ではないことを意味してお
り、これによって、データ変換部40自体の変換が全単
射でないことがわかる。
【0015】図15は、このような第2データ置換部4
03やデータ変換部40の写像、即ち、全単射でない写
像の性質を示す図である。定義域X中の異なる2つの入
力値が、値域Y中の同一の出力値に写像される様子が示
されている。データ変換部40がこのような性質を持つ
ことは、暗号の安全性上好ましくない。定義域Xに比
べ、値域Yの要素数が減少してしまうので、データ撹乱
性能の点で充分ではないからである。
【0016】ここで、例えば、第2データ置換部403
の操作を、入力データに対して上位に2ビットだけ巡回
シフトしたデータRot2(X)だけを出力するように
変更することが考えられる。そうすれば、第2データ置
換部403は全単射な変換を行なうことが保証される。
しかし、そのような変換Rot2(X)では、ビットア
バランシェ性能が十分でない点で、やはり安全性に欠け
る。なお、ビットアバランシェ性能とは、入力データ中
の1つのビット値の変化が出力データ中の何個のビット
値の変化に波及するか(ビット値の変化をもたらせる
か)の程度をいう。
【0017】そこで、本発明はかかる問題点に鑑みてな
されたものであり、巡回ビットシフト操作を伴うデータ
変換を行なうデータ暗号化装置及びその方法であって、
データ撹乱性能の優れたデータ変換、即ち、全単射な変
換を行ない、かつ、ビットアバランシェ性能の高いデー
タ変換を行なうデータ暗号化装置及びその方法を提供す
ることを目的とする。
【0018】
【課題を解決するための手段】上記目的と達成するため
に、本発明に係るデータ暗号化装置は、nビットの平文
データをnビットの暗号文データに暗号化する装置であ
って、前記平文データを巡回ビットシフトすることによ
り、前記平文データをS1、S2、…、Sk(いずれも0
以上n未満の整数であり、kは3以上の奇数)ビットだ
けそれぞれ巡回シフトしたk個のシフトデータを生成す
る巡回ビットシフト手段と、生成された前記k個のシフ
トデータを融合することにより、前記暗号文データを生
成するシフトデータ融合手段とを備えることを特徴とす
る。
【0019】ここで、前記データ暗号化装置はさらに、
前記巡回ビットシフト手段による巡回ビットシフトに先
立ち、予め与えられた鍵データと平文データとを融合す
る鍵融合手段を備え、前記巡回ビットシフト手段は、前
記鍵融合手段によって前記鍵データが融合された平文デ
ータに対して前記巡回ビットシフトを行なってもよい。
【0020】また、前記シフトデータ融合手段は、前記
k個のシフトデータを融合した後に、その融合によって
得られたnビットのデータと予め与えられた鍵データと
を融合し、その結果得られるnビットのデータを前記暗
号文データとして生成してもよい。また、前記巡回ビッ
トシフト手段は、指示されたビット数だけ前記平文デー
タを巡回シフトするk個の巡回シフト部と、鍵データを
取得する鍵データ取得部と、取得した鍵データに基づい
て前記S1、S2、…、Skを決定し、それぞれ前記k個
の巡回シフト部に指示するシフト量決定部とを有し、前
記k個の巡回シフト部は、それぞれ、前記シフト量決定
部から指示された前記S1、S2、…、Skビットだけ前
記平文データを巡回シフトしてもよい。
【0021】また、前記巡回ビットシフト手段は、前記
平文データをS1、S2、…、Sm(いずれも0以上n未
満の整数であり、mは3以上の整数)ビットだけそれぞ
れ巡回シフトするm個の巡回シフト部と、鍵データを取
得する鍵データ取得部と、取得した鍵データに基づいて
前記m個の巡回シフト部の中からk個の巡回シフト部を
選択し、選択したk個の巡回シフト部による巡回シフト
によって得られたk個のデータを前記シフトデータとし
て生成する選択部とを有してもよい。
【0022】また、上記目的を達成するために、上記デ
ータ暗号化装置の構成要素を含むデータ暗号化方法とし
たり、それら構成要素をステップとするプログラムとし
て実現してもよい。
【0023】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて詳細に説明する。通常、データ暗号化装
置で暗号化された暗号文データは、その暗号化の際に用
いられた鍵データを共有しているデータ復号化装置にお
いて上記暗号化の逆変換となる演算を施され、復号文デ
ータとなって出力される。
【0024】以下の実施形態では、データ暗号化装置を
有する送信機においてある平文データが暗号化されて暗
号文データとなって受信機に送信され、その暗号文デー
タが、データ復号化装置を有する受信機で復号されて復
号文データとなり利用されるという暗号通信システムに
本発明を適用した例を示す。 (暗号通信システムの構成)図1は、本発明の実施形態
における暗号通信システムの構成を示すブロック図であ
る。この暗号通信システムは、送信機1、受信機2及び
伝送路3から構成される。送信機1及び受信機2は、た
とえば、デジタル化された画像情報をそれぞれ送信及び
受信するビデオサーバシステムのサーバ及びその端末等
である。伝送路3は、インタネット等に代表されるネッ
トワーク通信網やデジタル放送におけるトランスポート
ストリーム等である。
【0025】送信機1は、データ暗号化装置10及び送
信部11を備える。データ暗号化装置10には、64ビ
ットの平文データと256ビットの鍵データが入力され
る。この平文データは、デジタル符号化された音声や画
像情報等が64ビットのブロックに区切られて生成され
たものである。また、鍵データは、予め送信機1と受信
機2との間で定めていた共通の秘密鍵である。これら平
文データと鍵データは、データ暗号化装置10に入力さ
れ処理を施されて64ビットの暗号文データとなり、送
信部11により並列to直列変換、変調及び増幅され伝送
路3を経て受信機2に送信される。
【0026】受信機2は、データ復号化装置20及び受
信部21を備える。データ復号化装置20には、受信部
21を介して受信され直列to並列変換された64ビット
の暗号文データと、上述の256ビットの鍵データが入
力される。これら暗号文データと鍵データは、データ復
号化装置20に入力され処理を施されて64ビットの復
号文データとなり、図示されていないデコーダ等によっ
てデコードされた後、ディスプレイやスピーカから映像
や音声として再生出力される。 (データ暗号化装置10の構成)図2は、図1に示され
るデータ暗号化装置10の構成の一例を示すブロック図
である。このデータ暗号化装置10は、第1データ撹乱
部101と、第1段数制御部102と、第1鍵制御部1
03とを備えている。
【0027】第1データ撹乱部101は、入力される6
4ビットの平文データを、第1鍵制御部103から入力
される32ビットの部分鍵データに従ってデータ撹乱
し、64ビットのデータを出力する。第1段数制御部1
02は、第1データ撹乱部101による撹乱を繰り返さ
せるための制御を行なう。具体的には、第1データ撹乱
部101での撹乱の回数が予め指定された回数に満たな
い場合には、第1データ撹乱部101から出力された6
4ビットのデータを再び第1データ撹乱部101に入力
する。予め指定された回数になった場合は、そのデータ
をデータ暗号化装置10からの出力データとして送信部
11に出力する。本実施形態では、上記指定回数を8回
としている。
【0028】第1鍵制御部103は、入力された256
ビットの鍵データを上位桁から32ビットずつ8個の部
分鍵K0,…,K7に分割し、それらを第1データ撹乱
部101での繰り返し回数に同期させて、第1データ撹
乱部101に出力する。具体的には、平文データが第1
データ撹乱部101に最初に入力された場合には部分鍵
K0を第1データ撹乱部101に与え、以下、そのデー
タが繰り返し第1データ撹乱部101に入力される度
に、K1,K2,…,K7を順に第1データ撹乱部10
1に順に与える。 (データ復号化装置20の構成)図3は、図1に示され
るデータ復号化装置20の構成の一例を示すブロック図
である。このデータ復号化装置20は、第2データ撹乱
部201と、第2段数制御部202と、第2鍵制御部2
03とを備えている。
【0029】第2データ撹乱部201は、受信部21か
ら送られてきた64ビットの暗号文データを、第2鍵制
御部203から入力される32ビットの部分鍵データに
従ってデータ撹乱し、64ビットのデータを出力する。
第2段数制御部102は、第2データ撹乱部201によ
る撹乱を繰り返させるための制御を行なう。具体的に
は、第2データ撹乱部201での撹乱の回数が予め指定
された回数に満たない場合には、第2データ撹乱部20
1から出力された64ビットのデータを再び第2データ
撹乱部201に入力する。予め指定された回数になった
場合は、そのデータをデータ復号化装置20からの出力
データとして出力する。本実施形態では、上記指定回数
を8回としている。
【0030】第2鍵制御部203は、入力された256
ビットの鍵データを上位桁から32ビットずつ8個の部
分鍵L7,…,L0に分割し、それらを第2データ撹乱
部201での繰り返し回数に同期させて、第2データ撹
乱部201に出力する。具体的には、暗号文データが第
2データ撹乱部201に最初に入力された場合には部分
鍵L0を第2データ撹乱部201に与え、以下、そのデ
ータが繰り返し第2データ撹乱部201に入力される度
に、L1,L2,…,L7を順に第2データ撹乱部20
1に与える。 (第1データ撹乱部101の構成)図4は、図2に示さ
れる第1データ撹乱部101の構成の一例を示すブロッ
ク図である。この第1データ撹乱部101は、排他的論
理和部1011とデータ変換部300とから構成され
る。なお。この第1データ撹乱部101における桁分離
(1つのデータを2以上の部分桁からなる部分データに
分離すること)、桁交換(1つのデータを構成する複数
の部分データを入れ換えること)、桁連結(2以上の部
分データを桁方向に連結して新たな1つのデータにする
こと)に関する処理は、本図における配線によって示さ
れている。
【0031】入力された64ビットのデータは、上位3
2ビットのブロックX1と下位32ビットのX0に分割
される。また32ビットデータの2個のブロックY1,
Y0を上位32ビットをY1、下位32ビットをY0と
して連結した64ビットデータを出力データ64ビット
としている。ブロックX1は、そのままY0として出力
されると共にデータ変換部300に入力され、このデー
タ変換部300において、第1鍵制御部103から送ら
れてきた32ビットの部分鍵データに基づく変換を施さ
れ、32ビットのデータSとして排他的論理和部101
1に送られる。排他的論理和部1011は、そのデータ
SとブロックX0とのビット毎の排他的論理和演算を行
い、演算値Y1を出力する。
【0032】なお、以上の動作によって出力されるこれ
ら2個のブロックY1,Y0は、図示されていないクロ
ックに同期して64ビットの出力データとして連結さ
れ、この第1データ撹乱部101から出力される。 (第2データ撹乱部201の構成)図5は、図3に示さ
れる第2データ撹乱部201の構成の一例を示すブロッ
ク図である。この第2データ撹乱部201は、データ変
換部301と排他的論理和部2011とから構成され
る。これらデータ変換部301及び排他的論理和部20
11とは、それぞれ、図4に示された第1データ撹乱部
101のデータ変換部300及び排他的論理和部101
1と同一の機能を有する。また、この第2データ撹乱部
201における桁分離、桁交換、桁連結に関する処理
は、本図における配線によって示されている。
【0033】入力されたデータ64ビットは、上位桁3
2ビットのブロックZ1と下位32ビットのブロックZ
0に分割される。また32ビットデータの2個のブロッ
クW1,W0を上位32ビットをW1、下位32ビット
をW0として連結した64ビットデータを出力データ6
4ビットとしている。ブロックZ0は、そのままW1と
して出力されると共にデータ変換部301に入力され、
このデータ変換部301において、第2鍵制御部203
から送られてきた32ビットの部分鍵データに基づく変
換を施され、32ビットのデータTとして排他的論理和
部2011に送られる。排他的論理和部2011は、そ
のデータTとブロックZ1とのビット毎の排他的論理和
演算を行い、演算値W0を出力する。 (データ変換部300及び301の構成)図6は、図4
(及び図5)に示されたデータ変換部300(及び30
1)の構成の一例を示すブロック図である。
【0034】データ変換部300は、32ビットの入力
データF及び32ビットの部分鍵データKiを入力と
し、32ビットのデータOを出力するものであり、鍵加
算部3001とデータ置換部3002と換字テーブルデ
ータ保管部3003を備えている。鍵加算部3001
は、32ビットの2入力1出力の加算器等からなり、入
力データFと部分鍵データKiとの2^32を法とする
算術加算を行い、結果を32ビットのデータGとして出
力する。すなわち、以下の式で示される演算を行なう。
【0035】G=(F+K)mod2^32 データ置換部3002は、巡回ビットシフトのための固
定的な配線パターンの信号線と排他的論理和ゲート等か
らなり、前記データGを入力として、Gを上位に7ビッ
トだけ巡回ビットシフトしたデータRot7(G)と、
Gを上位に1ビットだけ巡回ビットシフトしたデータR
ot1(G)と、G自身との排他的論理和演算を行い、
その結果を32ビットのデータHとして出力する。すな
わち、以下の式で示される演算を行なう。
【0036】 H=Rot7(G)(+)Rot1(G)(+)G 前記データHは、上位桁から8ビットずつの4個のブロ
ックI3,I2,I1,I0に分割され、順に換字テー
ブルデータ保管部3003に入力される。換字テーブル
データ保管部3003は、ROM等からなり、256個
の記憶場所に異なる8ビットデータが予め格納された換
字テーブルデータTab[0〜255]を記憶してお
り、入力された8ビットデータが示す記憶場所に格納さ
れた8ビットデータを出力する変換器である。
【0037】具体的には、この換字テーブルデータ保管
部3003は、盛合志帆,青木和麻呂,神田雅透,高嶋
洋一,松本勉著『既知のブロック暗号攻撃に対する安全
性を考慮したS−boxの構成法』(電子情報通信学会
技術研究報告,ISEC98−13)に記載の8ビット
×256の換字テーブルデータを記憶しており、前記ブ
ロックI3,I2,I1,I0を順に入力データとし
て、対応する記憶場所に格納された8ビットデータを出
力していく。すなわち、入力データI3,I2,I1,
I0に対してそれぞれ、J3=Tab[I3],J2=
Tab[I2],J1=Tab[I1],J0=Tab
[I0]を出力データとする。
【0038】前記4個の8ビットデータJ3,J2,J
1,J0は、上位桁からJ3,J2,J1,J0の順に
連結され、32ビットの出力データOとして、このデー
タ変換部300から出力される。なお、換字テーブルデ
ータ保管部3003への入出力の切り換えは、マルチプ
レクサ回路及びデマルチプレクサ回路等で実現され、こ
れら回路は、入力されたバイトデータI0〜3が対応す
る桁J0〜3に出力されるように同期して動作する。 (第1データ撹乱部101と第2データ撹乱部201と
の関係)図4に示される第1データ撹乱部101と図5
に示される第2データ撹乱部201とは、共に、64ビ
ットの入力データと32ビットの部分鍵データとを入力
とし、64ビットの出力データを出力する。以下、第1
データ撹乱部101と第2データ撹乱部201との関
係、すなわち、第1データ撹乱部101で暗号化された
平文データがデータ撹乱部201での復号化により、必
ず元に復元されることの原理について説明する。
【0039】先に説明したように、図4に示された第1
データ撹乱部101のX1,X0と、Y1,Y0と、S
の間には以下のような関係が成り立つ。ただし、32ビ
ットの部分鍵データをKiとし、F(Ki,α)は部分
鍵データがKiで入力データがαである時のデータ変換
部300の出力を示す。 S=F(Ki,X1) −(式1) Y1=S(+)X0 −(式2) Y0=X1 −(式3) また、Kiの値を同じとした時、図5に示された第2デ
ータ撹乱部201のZ1,Z0と、W1,W0と、Tの
間には以下のような関係が成り立つ。
【0040】T=F(Ki,Z0) −(式4) W1=Z0 −(式5) W0=T(+)Z1 −(式6) 第1データ撹乱部101からの出力データは、そのまま
第2データ撹乱部201に入力されるので、以下の関係
が成り立つ。
【0041】Y1=Z1 −(式7) Y0=Z0 −(式8) 以上の関係より、まず、(式3)と(式8)から、以下
が成り立つ。 Y0=Z0=X1 −(式9) この(式9)より、(式4)を以下の通り変形できる。
【0042】T=F(Ki,X1) −(式10) これら(式10)と(式1)より、以下が成り立つ。 S=T −(式11) この(式11)と(式6)より、以下が成り立つ。 W0=S(+)Z1 −(式12) さらに、この(式12)と(式7)より、以下が成り立
つ。
【0043】W0=S(+)Y1 −(式13) この(式13)と(式2)より、以下が成り立つ。 W0=S(+){S(+)X0} −(式14) となる。ここで、以下のような排他的論理和の性質を利
用する。
【0044】 β(+){β(+)γ}=γ −(式15) この性質(式15)と(式14)より、以下が成り立
つ。 W0=X0 −(式16) となる。一方、(式3)と(式5)と(式8)とから、
以下が成り立つ。
【0045】W1=X1 −(式17) 以上の(式16)と(式17)からわかることは、64
ビットのデータXを、第1データ撹乱部101におい
て、32ビットの部分鍵データKiを用いて撹乱した結
果である64ビットのデータをYとし、そしてこの64
ビットのデータYを、第2データ撹乱部201におい
て、先にXを撹乱してYを生成した時に用いたものと同
じ32ビットの部分鍵データKiで撹乱すると、64ビ
ットのデータXに戻るということである。 (第1鍵制御部103の動作)ここでは、図2に示され
る第1鍵制御部103の動作について述べる。
【0046】64ビットの平文データは、データ暗号化
装置10において暗号化される時、第1データ撹乱部1
01による撹乱が8回繰り返される。この時、第1鍵制
御部103は、1回目の撹乱時にはK0を、2回目の撹
乱時にはK1を、…、8回目の撹乱時にはK7を、それ
ぞれ第1データ撹乱部101に出力する。 (第2鍵制御部203の動作)ここでは、図3に示され
る第2鍵制御部203の動作について述べる。
【0047】64ビットの暗号文データは、データ復号
化装置20において復号化される時、第2データ撹乱部
201での撹乱が8回繰り返される。この時、第2鍵制
御部203は、1回目の撹乱時にはL0を、2回目の撹
乱時にはL1を、…、8回目の撹乱時にはL7を、それ
ぞれ第2データ撹乱部201に出力する。 (データ暗号化装置10とデータ復号化装置20の関
係)図2に示されるデータ暗号化装置10と図3に示さ
れるデータ復号化装置20とは、共に、64ビットの入
力データと256ビットの鍵データとを入力とし、64
ビットの出力データを出力する。以下、データ暗号化装
置10とデータ復号化装置20との関係、すなわち、デ
ータ暗号化装置10で暗号化された平文データがデータ
復号化装置20での復号化により、必ず元に復元される
ことの原理について説明する。
【0048】いま、データ暗号化装置10において、6
4ビットの平文データAを、256ビットの鍵データK
に従って暗号化するものとする。鍵データKは、第1鍵
制御部103において、32ビットずつのブロックに分
割され(上位桁から部分鍵データK0,K1,…,K
6,K7)、部分鍵データK0,K1,…,K6,K7
の順で、第1データ撹乱部101に入力される。
【0049】平文データAは、部分鍵データK0を用い
て第1データ撹乱部101で撹乱され、データA1とな
る。続いて、データA1は、部分鍵データK1を用いて
第1データ撹乱部101で撹乱されてデータA2とな
る。以下、同様にして、データA3,A4,A5,A
6,A7へと撹乱される。そして、データA7は、K7
を用いて第1データ撹乱部101で撹乱され、データA
8となり、このデータA8がデータ暗号化装置10で最
終的に得られた暗号文データとして出力され、送信部1
1及び伝送路3を経て受信機2に伝送され、受信部21
を経てデータ復号化装置20に入力される。
【0050】データ復号化装置20においては、データ
暗号化装置10での暗号化に用いられた鍵データKと同
一の鍵データKが用いられる。256ビットの鍵データ
は、第2鍵制御部203において、32ビットずつのブ
ロックに分割され(上位桁から部分鍵データL7,L
6,…,L1,L0)、部分鍵データL0,L1,…,
L6,L7の順で、第2データ撹乱部201に入力され
る。なお、同じ256ビットの鍵データKを分割したも
のであるから、これら2種類の部分鍵データK0〜K
7、L7〜L0間には、K0=L7,K1=L6,K2
=L5,K3=L4,K4=L3,K5=L2,K6=
L1,K7=L0が成り立っている。
【0051】暗号文データA8は、部分鍵データL0を
用いて第2データ撹乱部201で撹乱されてデータB1
となる。この時、部分鍵データK7=部分鍵データL0
であり、かつ、そのときには第1データ撹乱部101で
の撹乱と第2データ撹乱部201での撹乱とが逆変換の
関係となることから、データB1=データA7が成り立
つ。続いて、データB1は、部分鍵データL1を用いて
第2データ撹乱部201で撹乱されてデータB2とな
る。この時、部分鍵データK6=部分鍵データL1であ
り、かつ、そのときには第1データ撹乱部101での撹
乱と第2データ撹乱部201での撹乱とが逆変換の関係
となることから、データB2=データA6が成り立つ。
【0052】以下、同様にして,データB3,B4,B
5,B6,B7へと撹乱される。同様の理由により、B
3=A5,B4=A4,B5=A3,B6=A2,B7
=A1である。そしてデータB7は、部分鍵データL7
を用いて第2データ撹乱部201で撹乱されてデータB
8となり、このデータB8がこのデータ復号化装置20
で最終的に得られる復号文データとなる。ここで、デー
タB7=データA1であり、さらに、部分鍵データK0
=部分鍵データL7であり、かつ、そのときには第1デ
ータ撹乱部101での撹乱と第2データ撹乱部201で
の撹乱とが逆変換の関係となることから、データB8=
データAとなる。
【0053】以上のことからわかることは、64ビット
の平文データAを、データ暗号化装置10において、2
56ビットの鍵データKを用いて暗号化した結果である
64ビットの暗号文データをBとし、そしてこの64ビ
ットの暗号文データBを、データ復号化装置20におい
て、先に平文データAを撹乱して暗号文データBを生成
した時に用いたものと同じ256ビットの鍵データKで
復号すると、64ビットの平文データAに戻るというこ
とである。 (暗号通信システムの動作)次に、図1〜図6を参照
し、本暗号通信システム全体の動作を説明する。
【0054】まず、送信機1において、入力された一定
時間長の画像情報がデジタル化及び符号化されること
で、64ビットの平文データが生成される。その平文デ
ータと送信機1に予め保持されていた256ビットの鍵
データは、データ暗号化装置10に入力される。256
ビットの鍵データは、第1鍵制御部103に入力され
て、上位桁から32ビットずつの部分鍵データK0,K
1,…,K7に分割される。
【0055】64ビットの平文データは、同時に入力さ
れる部分鍵データKiiに従って第1データ撹乱部10
1で撹乱される。この撹乱は、第1段数制御部102に
よる制御の下で、8回繰り返される。この時、第1デー
タ撹乱部101には、32ビットの部分鍵データとして
K0から順にK1,K2,…,K7が入力される。そし
て最終的に第1データ撹乱部101から出力された64
ビットのデータが暗号文データとしてデータ暗号化装置
10から出力される。
【0056】データ暗号化装置10から出力された64
ビットの暗号文データは、送信部11及び伝送路3を介
して受信機2に伝送される。受信機2では、送信機1か
ら送信されてきた64ビットの暗号文データは、受信部
21で受信され、256ビットの鍵データと共にデータ
復号化装置20に入力される。
【0057】256ビットの鍵データは、第2鍵制御部
203に入力され、上位桁から32ビットずつの部分鍵
データL7,L6,…,L0に分割される。64ビット
の暗号文データは、同時に入力される部分鍵データLi
に従って第2データ撹乱部201で撹乱される。この撹
乱は、第2段数制御部202による制御の下で、8回繰
り返される。この時、第2データ撹乱部201には、3
2ビットの部分鍵データとしてL0から順にL1,L
2,…,L7が入力される。そして最終的に第2データ
撹乱部201から出力された64ビットのデータが復号
文データとしてデータ復号化装置20から出力される。
【0058】出力された復号文データは、受信機2にお
いて画像信号又は音声信号に変換されてディスプレイに
表示されたりスピーカから音声出力される。 (データ暗号化装置10の安全性)次に、本データ暗号
化装置10の安全性について述べる。まず、送信機1及
び受信機2双方が共通に有するデータ変換部300(及
び301)の変換操作が全単射であることを示す。
【0059】鍵加算部3001で行われる操作は、鍵デ
ータから生成される部分鍵データを入力データに加算す
る操作であり、部分鍵データは入力データによらず一定
の値であるから全単射であることが保証される。次に、
データ置換部3002は、1〜(2^32−1)の入力
データに対してその出力値が0にならないことが計算機
を用いた実験によって確認されている。この実験結果
と、データ置換部3002の操作が線形であることか
ら、データ置換部3002の全単射性が保証される。
【0060】また、データ置換部3002の全単射性に
ついては、以下のように理論的に示すこともできる。い
ま、データ置換部3002への32ビット入力データA
の各ビットを上位桁からA31,A30,…,A0と
し、A=(A31,A30,…,A0)と表現すると、 Rot1(A)=(A30,A29,…,A1,A0,
A31) Rot7(A)=(A24,A23,…,A27,A2
6,A25) であるから、 Rot7(A)(+)Rot1(A)(+)A=(A3
1(+)A30(+)A24,A30(+)A29
(+)A23,…,A1(+)A0(+)A26,A0
(+)A31(+)A25) である。この関係は、データ置換部3002の32ビッ
ト出力データをB=(B31,B30,…,B0)とし
たとき、
【0061】
【数1】
【0062】−(式18) というように表現できる。ただし、
【0063】
【数2】
【0064】−(式19) であり、 X0=X1=X6=1、かつ、Xi=0(iは0,1,6以外) −(式20) である。
【0065】ここで、文献「線型代数入門」(齋藤正彦
著,東京大学出版会)のP.90の問題4及びその解答
から、
【0066】
【数3】
【0067】−(式21) が成り立つ。ここで、detXは行列Xの行列式を意味
し、(式21)の右辺は、αが1の32乗根全てを動く
ときの積を意味する。(式19)及び(式20)より、
(式21)を以下の通り変形できる。
【0068】
【数4】
【0069】−(式22) ここで、文献「代数学」(永尾汎著,朝倉書店)のP.
165の例題39.1よりα^32=1なるαはα=1
以外にないことが判明しているので、(式22)を以下
の通り変形できる。 detX=1+1+1=1mod2 −(式23) よって、行列Xは可逆行列であり、データ置換部300
2の出力データが零になるのは入力データが零の時に限
る。このことと、データ置換部3002の操作が線形で
あることから、データ置換部3002の全単射性が保証
される。
【0070】なお、N1=7,N2=1,N3=0以外
の(N1,N2,N3)についても、変換RotN1
(+)RotN2(+)RotN3が全単射であること
は上記と同様にして示すことができる。また、巡回ビッ
トシフト操作を組み合わせる個数が3個以外の奇数個で
あっても同様に示すことができる。つまり、奇数個の巡
回ビットシフト(0ビットの巡回ビットシフトも含む)
を組み合わせる限りは、そのようなデータ変換の全単射
性が保証される。
【0071】さらに、換字テーブルデータ保管部300
3は、重複しない8ビットデータが予め格納された換字
テーブルデータに基づいて入力される8ビットデータを
変換しているので、この換字テーブルデータ保管部30
03も全単射性も保証されている。以上より、データ変
換部300(及び301)を構成する全ての要素におけ
る変換操作が全単射であることから、データ変換部30
0(及び301)全体の変換操作は全単射である。
【0072】図7は、本実施形態のデータ置換部300
2やデータ変換部300(及び301)の写像、即ち、
全単射な変換を示す図である。定義域X中の異なる2つ
の入力値は必ず値域Y中の異なる出力値に写像される様
子が示されている。従来技術における図15に示された
写像とは異なり、本実施形態の写像によれば、定義域X
に比べて値域Yの要素数が減少してしまうという不具合
は回避される。
【0073】このように、従来技術とは異なり、本実施
形態におけるデータ置換部3002及びデータ変換部3
00(及び301)は、全単射な変換を行なうので、デ
ータ撹乱性能、即ち、安全性の点で優れている。次に、
本実施形態におけるデータ変換部300(及び301)
のビットアバランシェ性能について検討する。
【0074】データ変換部300(及び301)が有す
るデータ置換部3002は、入力データ自体Xに加え
て、その入力データXを巡回ビットシフトして得られる
2つのデータRot7(X)及びRot1(X)との排
他的論理和演算を行っているので、入力データXでのビ
ット値の変化は、そのビットだけでなく、他の2つのビ
ットにも波及する。そして、データ置換部3002から
の出力データは換字テーブルデータ保管部3003にお
いて非線形操作を受けるので、ここでの変換によって、
上記ビット値の変化は、さらに多くのビットに波及す
る。
【0075】このように、従来技術とは異なり、本実施
形態におけるデータ変換部300(及び301)及びデ
ータ暗号化装置10は、高いビットアバランシェ性能を
有するので、データ撹乱性能、即ち、安全性の点で優れ
ている。以上のように、本実施形態におけるデータ変換
部300(及び301)は、従来技術と異なり、入力デ
ータに対して3以上かつ奇数個の種類の巡回ビットシフ
ト(0ビットの巡回シフトも含む)を行なって排他的論
理和をとるデータ置換部3002を有するので、巡回ビ
ットシフトという高速な暗号化だけでなく、全単射な変
換で、かつ、ビットアバランシェ性能の高い暗号化、即
ち、極めて安全性の高い暗号化を行なう。 (第1の変形例)次に、上記実施形態におけるデータ変
換部300(及び301)の変形例を示す。以下に説明
する全ての変形例は、上記実施形態のデータ変換部30
0(及び301)と置換可能なものであり、少なくとも
データ変換部300(及び301)が発揮する効果を奏
するものである。
【0076】図8は、第1の変形例に係るデータ変換部
310の構成を示すブロック図である。本図において、
上記実施形態のデータ変換部300(及び301)と同
一の構成要素には同一の符号を付けている(以下、他の
図面についても同様)。このデータ変換部310は、上
記実施形態におけるデータ変換部300(及び301)
の鍵加算部3001とデータ置換部3002との間に、
新たな構成要素であるビット置換部3010が追加され
た構成を有する。
【0077】ビット置換部3010は、鍵加算部300
1から出力された32ビットのデータGの各ビットを不
規則に入れ換える操作を行なう。例えば、データGの第
1ビットを第15ビットに移動させ、第2ビットを第2
7ビットに移動させ、第3ビットを第7ビットに移動さ
せ、・・、それによって得られる32ビットのデータG
Xをデータ置換部3002に出力する。
【0078】このビット置換部3010は全単射な変換
を行なうので、データ変換部310全体としても全単射
性が保証される。従って、このデータ変換部310は、
少なくとも、上記実施形態のデータ変換部300(及び
301)が有するデータ撹乱性能を有すると言える。 (第2の変形例)図9は、第2の変形例に係るデータ変
換部320の構成を示すブロック図である。このデータ
変換部320は、上記実施形態におけるデータ変換部3
00(及び301)の鍵加算部3001とデータ置換部
3002とを入れ換えたもの(接続順序を入れ換えたも
の)に等しい。
【0079】このデータ変換部320は、データ撹乱性
能の点で、上記実施形態のデータ変換部300(及び3
01)と同様の性能を発揮することは言うまでもない。 (第3の変形例)図10は、第3の変形例に係るデータ
変換部330の構成を示すブロック図である。このデー
タ変換部330は、上記実施形態におけるデータ変換部
300(及び301)のデータ置換部3002を新たな
構成要素である回転量可変データ置換部3020に置き
換えたものに等しい。
【0080】回転量可変データ置換部3020は、鍵加
算部3001から出力された32ビットのデータGに対
して、15ビットの回転量鍵データによって定まる回転
量(巡回シフトするビット数)の3種類の巡回ビットシ
フトを同時並列に行ない、得られた3つの32ビットデ
ータを排他的論理和演算して得られる結果を32ビット
のデータHとして出力する。
【0081】図11は、回転量可変データ置換部302
0の詳細な構成を示すブロック図である。この回転量可
変データ置換部3020は、3つのシフタ3021〜3
023、3つの並列to直列変換器3024〜3026及
び排他的論理和部3027から構成される。シフタ30
21〜3023は、32ビットのシフトレジスタであ
り、最上位ビットが最下位ビットに巡回シフトするよう
結線されており、それぞれ、並列to直列変換器3026
〜3024から送られてくるクロックに同期して、上位
桁に巡回ビットシフトする。
【0082】並列to直列変換器3024〜3026は、
5ビットの並列データを入力とし、その5ビットのデー
タが示す値(0〜31)に相当する個数のクロックパル
スを、それぞれ、シフタ3023〜3021に対して直
列に出力する。なお、これら並列to直列変換器3024
〜3026は、それぞれ、15ビットの回転量鍵データ
の上位5ビット、中位5ビット、下位5ビットの並列デ
ータを保持し、新たな32ビットデータがシフタ302
1〜3023に入力されると、保持しているそれら5ビ
ットデータが示す個数のクロックパルスを、それぞれ、
シフタ3023〜3021に出力する。
【0083】排他的論理和部3027は、3つのシフタ
3021〜3023から出力された3つの32ビットデ
ータに対して、ビット毎の排他的論理和演算を行ない、
32ビットのデータHとして出力する。32ビットの入
力データG及び15ビットの回転量鍵データがこの回転
量可変データ置換部3020に入力された場合の処理の
流れは、以下の通りである。
【0084】32ビットの入力データGは、3つのシフ
タ3021〜3023それぞれに入力され保持されると
ともに、15ビットの回転量鍵データは、5ビットずつ
に分割され、それぞれ、3つの並列to直列変換器302
4〜3026に保持され、デコードされ、直列に変換さ
れて、対応する個数のパルス列として、シフタ3023
〜3021に出力される。
【0085】その結果、シフタ3021〜3023に保
持されていたデータGは、同時並行に、それぞれ、並列
to直列変換器3026〜3024から送られてくるパル
スの個数に相当するビット数だけ上位桁に巡回シフトさ
れる。その後、シフタ3021〜3023それぞれに保
持されている3つの32ビットデータは、排他的論理和
部3027に送られ、ここで、同一ビット毎の排他的論
理和が演算されて、データHとして出力される。
【0086】例えば、いま、回転量鍵データが“000
000010110011b”(“b”は2進表記を示
す)である場合には、この回転量可変データ置換部30
20は、入力されたデータGに対して、以下の演算を行
なうことになる。H=Rot19(G)(+)Rot5
(G)(+)Gこのように、この回転量可変データ置換
部3020によれば、3つのシフタ3021〜3023
での回転量は、回転量鍵データによって動的に決定され
る。従って、この変形例におけるデータ変換部330
は、回転量鍵データを秘密鍵としておくことで、固定的
なビット数の巡回シフトによるデータ置換が繰り返され
る上記実施形態のデータ変換部300(及び301)よ
りも秘匿性が増す。
【0087】なお、この回転量可変データ置換部302
0は、入力データに対して3種類の巡回ビットシフトを
行なって排他的論理和をとる点において上記実施形態の
データ置換部3002と共通するので、この第3の変形
例におけるデータ変換部330は、上記実施形態のデー
タ変換部300(及び301)と同様に、全単射な変換
で、かつ、ビットアバランシェ性能の高い暗号化を行な
うことが保証される。
【0088】また、回転量鍵データについては、上記実
施形態における256ビットの鍵データと同様に、予め
送信機1と受信機2それぞれに、共通の秘密鍵として格
納しておけばよい。例えば、上記256ビットの鍵デー
タとは別に、120ビットの鍵データを送信機1と受信
機2それぞれに格納しておき、データ変換部330によ
る8回のデータ変換に対応させて、その120ビットの
鍵データを8分割して得られる8個の15ビットデータ
を順次に回転量鍵データとしてデータ変換部330に与
えていけばよい。
【0089】なお、本変形例で例示した上記3種類の回
転量(19、5、0)は、上記実施形態における回転量
(7、1、0)と以下の点で共通し、好ましい値の組み
合わせのひとつである。つまり、これらの3つの回転量
(N1,N2,N3)における隣接する2つの回転量の
差分値(32を法とする差分値)を算出すると、本変形
例では、(13、14、5)となり、上記実施形態で
は、(25、6、1)となり、3つの差分値は互いに素
である。従って、3種類の巡回ビットシフトによって得
られる3つのシフトデータ間の不規則性が高い、つま
り、より安全性が高いと言える。 (第4の変形例)図12は、第4の変形例に係るデータ
変換部340の構成を示すブロック図である。このデー
タ変換部340は、上記実施形態におけるデータ変換部
300(及び301)のデータ置換部3002を新たな
構成要素である加算数可変データ置換部3030に置き
換えたものに等しい。
【0090】加算数可変データ置換部3030は、鍵加
算部3001から出力された32ビットのデータGに対
して、5ビットの加算数鍵データによって定まる個数の
巡回ビットシフタを用い、それらから出力される32ビ
ットデータを排他的論理和演算して得られる結果を32
ビットのデータHとして出力する。図13は、加算数可
変データ置換部3030の詳細な構成を示すブロック図
である。この加算数可変データ置換部3030は、5つ
の巡回ビットシフタ3031〜3035及び排他的論理
和部3036から構成される。
【0091】巡回ビットシフタ3031〜3035は、
32ビットの入力データXを上位桁にそれぞれ19、
7、5、1、0ビットだけ巡回シフトさせる固定的な配
線パターンからなる信号線と出力バッファゲート等から
なり、イネーブル端子に“1”が入力されている場合に
は、巡回シフトによって得られた32ビットデータRo
tn(X)を排他的論理和部3036に出力し、イネー
ブル端子に“0”が入力されている場合には、巡回シフ
トした結果に拘わらず、零(00000000h)を排
他的論理和部3036に出力する。
【0092】排他的論理和部3036は、5つの巡回ビ
ットシフタ3031〜3035から出力された5つの3
2ビットデータに対して、ビット毎の排他的論理和演算
を行ない、32ビットのデータHとして出力する。32
ビットの入力データG及び5ビットの加算数鍵データが
この加算数可変データ置換部3030に入力された場合
の処理の流れは、以下の通りである。
【0093】32ビットの入力データGは、5つの巡回
ビットシフタ3031〜3035それぞれに入力され、
それぞれのビット数だけ巡回シフトされた後に保持され
るとともに、5ビットの加算数鍵データは、1ビットず
つに分割され、それぞれ、巡回ビットシフタ3031〜
3035のイネーブル端子に出力される。その結果、巡
回ビットシフタ3031〜3035に保持されていたデ
ータRotn(X)は、イネーブル端子に入力された信
号の論理(“1”又は“0”)に従って、排他的論理和
部3036に出力されるか、零(00000000h)
が排他的論理和部3036に出力される。
【0094】このようにして5つの巡回ビットシフタ3
031〜3035から送られてきた5つの32ビットデ
ータは、排他的論理和部3036において、同一ビット
毎の排他的論理和演算が施され、データHとして出力さ
れる。例えば、いま、加算数鍵データが“10101
b”である場合には、この加算数可変データ置換部30
30は、入力されたデータGに対して、以下の演算を行
なうことになる。
【0095】 H=Rot19(G)(+)Rot5(G)(+)G 同様に、加算数鍵データが“11111b”である場合
には、この加算数可変データ置換部3030は、入力さ
れたデータGに対して、以下の演算を行なうことにな
る。 H=Rot19(G)(+)Rot7(G)(+)Ro
t5(G)(+)Rot1(G)(+)G このように、この加算数可変データ置換部3030は、
入力されたデータGに対して、5種類の巡回ビットシフ
タ3031〜3035から動的に選択された巡回ビット
シフタだけを用いて、それぞれの固定ビット数だけ巡回
シフトし、それらの結果をビット毎に排他的論理和演算
し、得られた32ビットデータを出力するのに等しい機
能を有する。
【0096】従って、この変形例におけるデータ変換部
340は、5ビットの加算数鍵データを5ビット中の
“1”のビット合計数が3個又は5個となる秘密値とし
ておくことで、有効化される巡回ビットシフタの数が動
的に変更されるので、常に3個の巡回ビットシフトによ
るデータ置換が繰り返される上記実施形態のデータ変換
部300(及び301)よりも秘匿性が増す。
【0097】なお、この加算数可変データ置換部303
0は、入力データに対して3以上かつ奇数個の巡回ビッ
トシフトを行なって排他的論理和をとる点において上記
実施形態のデータ置換部3002と共通するので、この
第4の変形例におけるデータ変換部340は、上記実施
形態のデータ変換部300(及び301)と同様に、全
単射な変換で、かつ、ビットアバランシェ性能の高い暗
号化を行なうことが保証される。
【0098】なお、加算数鍵データについては、上記実
施形態における256ビットの鍵データと同様に、予め
送信機1と受信機2それぞれに、共通の秘密鍵として格
納しておけばよい。例えば、上記256ビットの鍵デー
タとは別に、40ビットの鍵データを送信機1と受信機
2それぞれに格納しておき、データ変換部340による
8回のデータ変換に対応させて、その40ビットの鍵デ
ータを8分割して得られる8個の5ビットデータを順次
に加算数鍵データとしてデータ変換部340に与えてい
けばよい。
【0099】以上、本発明に係るデータ暗号化装置につ
いて、実施形の態及び変形例に基づいて説明したが、本
発明はこれら実施の形態及び変形例に限られないことは
勿論である。例えば、本実施形態や変形例のデータ変換
部等は、配線パターンやEXOR(Exclusive-OR)ゲー
ト等の論理IC等を用いた専用ハードウェアによって実
現されていたが、これに換えて、汎用のマイクロプロセ
ッサ、制御プログラム、換字テーブルを格納したROM
及び作業域としてのRAM等からなるコンピュータシス
テム上で実行されるプログラムを用いたソフトウェアに
よって実現することができるのは言うまでもない。そし
て、そのようなプログラムは、DVD−ROM等のコン
ピュータ読み取り可能な記録媒体に格納して配布した
り、通信ネットワーク等の伝送媒体を介して配信するこ
とができる。
【0100】なお、プログラムにより実現する場合に
は、上位桁に巡回ビットシフトさせる機械語命令Rotate
-Shift-Leftや、排他的論理和演算させる機械語命令Exo
r等を用いてデータ置換部を構成することで、高速実装
が可能となる。また、プログラム等のシーケンシャル処
理によって巡回ビットシフトを実現する場合には、同一
データに対して7ビット及び1ビットだけシフトさせる
ことでRot7(X)及びRot1(X)を得てもよい
し、1ビットだけシフトした後に、そのデータをさらに
6ビットだけシフトさせることで同様の結果を得てもよ
い。
【0101】また、上記実施の形態や変形例における様
々な構成要素を組み合わせることもできる。例えば、第
3の変形例における回転量可変データ置換部3020と
第4の変形例における加算数可変データ置換部3030
との両方の機能を備えるデータ置換部としてもよい。具
体的には、クロック入力端子とイネーブル入力端子とを
有するシフトレジスタを用いることによって、有効とな
る巡回ビットシフタの数(種類)とそれら有効化された
巡回ビットシフタにおけるビットシフト数とが鍵データ
によって動的に決定されるようなデータ置換部を実現す
ることもできる。
【0102】また、本実施形態の第1及び第2データ撹
乱部101、201を構成する排他的論理和部101
1、2011に換えて、キャリー付きのフルアダー等の
可逆な演算器とすることもできる。つまり、排他的論理
和部1011に換える演算器と排他的論理和部2011
に換える演算器とは、それぞれ逆演算を行なう関係にあ
ればよい。ただし、それら演算器は、高速性を損なうこ
とがない程度の簡易なものが望ましい。
【0103】また、本実施形態のデータ変換部300を
構成する鍵加算部3001に換えて、排他的論理和等の
演算器、即ち、2つの32ビットデータを入力とし1つ
の32ビットデータを出力するような演算器とすること
もできる。ただし、上述したように、その演算器は、高
速性を損なうことがない程度の簡易なものが望ましい。
【0104】また、本実施形態のデータ暗号化装置10
及びデータ復号化装置20において、第1データ撹乱部
101及び第2データ撹乱部201での撹乱は8回繰り
返えされたが、本発明はこのような回数に限定されるも
のではない。その繰り返し回数を8回よりも少なくした
場合には、データ暗号化装置10及びデータ復号化装置
20に入力される鍵データのビット数を256ビットよ
りも少なくすることができる。一方、繰り返し回数を8
回よりも多くした場合には、データ暗号化装置10及び
データ復号化装置20に入力される鍵データのビット数
を256ビットよりも多くすればよい。また、繰り返し
回数を8回よりも多くした場合であっても、鍵データを
256ビットのままにして、分割された部分鍵データを
重複して使用してもよい。
【0105】また、256ビットよりも小さい鍵データ
や部分鍵データについては、DES方式やFEAL方式
で行われているような部分鍵生成手段を用いて、それら
を生成してもよい。また、本実施形態では、データ変換
部300(及び301)等は32ビットのデータを1個
のブロックとし、ブロックを単位として変換したが、本
発明はこのようなビット数やブロック数に限定されるも
のではない。例えば、本発明を汎用の64ビットCPU
を用いて実現する場合であれば64ビットデータを1個
のブロックとして変換してもよい。逆に、処理の高速性
を考慮し、1個のブロック(32ビット)の半分のデー
タ(例えば、下位16ビットデータ)のみを変換するも
のであってもよい。
【0106】
【発明の効果】以上の説明から明らかなように、本発明
に係るデータ暗号化装置は、nビットの平文データをn
ビットの暗号文データに暗号化する装置であって、前記
平文データを巡回ビットシフトすることにより、前記平
文データをS1、S2、…、Sk(いずれも0以上n未満
の整数であり、kは3以上の奇数)ビットだけそれぞれ
巡回シフトしたk個のシフトデータを生成する巡回ビッ
トシフト手段と、生成された前記k個のシフトデータを
融合することにより、前記暗号文データを生成するシフ
トデータ融合手段とを備えることを特徴とする。
【0107】これによって、このデータ暗号化装置に入
力された平文データは、巡回ビットシフトによって3以
上かつ奇数個の異なるシフトデータに変換された後に融
合されるので、このデータ暗号化装置は、データ撹乱性
能の優れたデータ変換、即ち、ビットアバランシェ性能
の高いデータ変換を行ない、かつ、全単射な変換を行な
うことが保証される。
【0108】つまり、平文データは、3個以上のシフト
データに変換され融合されることから、1個のシフトデ
ータに変換される従来技術と比べ、このデータ暗号化装
置のビットアバランシェ性能は高いことが保証され、か
つ、その平文データは、奇数個のシフトデータに変換さ
れ融合されることから、2個のシフトデータに変換され
る従来技術と異なり、このデータ暗号化装置の全単射性
が保証される。
【0109】ここで、前記データ暗号化装置はさらに、
前記巡回ビットシフト手段による巡回ビットシフトに先
立ち、予め与えられた鍵データと平文データとを融合す
る鍵融合手段を備え、前記巡回ビットシフト手段は、前
記鍵融合手段によって前記鍵データが融合された平文デ
ータに対して前記巡回ビットシフトを行なってもよい。
【0110】これによって、平文データは鍵データと融
合された後に、巡回ビットシフトが行われるので、固定
的な変換を繰り返すという不具合が回避され、安全な秘
密鍵暗号が実現される。また、前記巡回ビットシフト手
段は、前記平文データを前記S1、S2、…、Skビット
だけそれぞれ巡回シフトするk個の巡回シフト部を有し
てもよい。
【0111】これによって、平文データは、k個の巡回
シフト部に並列に入力され、そこで同時並行して巡回ビ
ットシフト操作が施されるので、これらk個の巡回ビッ
トシフトをシーケンシャルに行なう場合に比べ、暗号化
の時間が短縮される。また、前記k個の巡回シフト部
は、それぞれ、前記平文データを前記S1、S2、…、S
kビットだけそれぞれ巡回シフトさせる配線パターンが
施された信号線で構成したり、前記鍵融合手段は、算術
加算器で構成し、前記シフトデータ融合手段は、排他的
論理和ゲートで構成することもできる。
【0112】これによって、簡易な回路で、かつ、高速
にデータ撹乱を行なうデータ暗号化装置が実現される。
また、前記シフトデータ融合手段は、前記k個のシフト
データを融合した後に、その融合によって得られたnビ
ットのデータと予め与えられた鍵データとを融合し、そ
の結果得られるnビットのデータを前記暗号文データと
して生成してもよい。
【0113】これによって、平文データは巡回ビットシ
フトされ融合された後に、鍵データと融合されるので、
固定的な変換を繰り返すという不具合が回避され、安全
な秘密鍵暗号が実現される。また、前記巡回ビットシフ
ト手段は、指示されたビット数だけ前記平文データを巡
回シフトするk個の巡回シフト部と、鍵データを取得す
る鍵データ取得部と、取得した鍵データに基づいて前記
S1、S2、…、Skを決定し、それぞれ前記k個の巡回
シフト部に指示するシフト量決定部とを有し、前記k個
の巡回シフト部は、それぞれ、前記シフト量決定部から
指示された前記S1、S2、…、Skビットだけ前記平文
データを巡回シフトしてもよい。
【0114】これによって、k個の巡回ビット部それぞ
れで巡回シフトされるビット数は鍵データによって動的
に決定されるので、暗号化の秘匿性が増す。また、前記
巡回ビットシフト手段は、前記平文データをS1、S2、
…、Sm(いずれも0以上n未満の整数であり、mは3
以上の整数)ビットだけそれぞれ巡回シフトするm個の
巡回シフト部と、鍵データを取得する鍵データ取得部
と、取得した鍵データに基づいて前記m個の巡回シフト
部の中からk個の巡回シフト部を選択し、選択したk個
の巡回シフト部による巡回シフトによって得られたk個
のデータを前記シフトデータとして生成する選択部とを
有してもよい。
【0115】これによって、平文データから生成される
シフトデータの個数及び巡回シフトのビット数は鍵デー
タによって動的に決定されるので、暗号化の秘匿性が増
す。また、上記目的を達成するために、上記データ暗号
化装置の構成要素を含むデータ暗号化方法としたり、そ
れら構成要素をステップとするプログラムとして実現し
てもよい。
【0116】このように、本発明に係るデータ暗号化装
置等は、従来技術における巡回シフト操作を用いた暗号
方式における高速性を維持しつつ、より高いデータ撹乱
性能を実現する暗号化装置であり、特にマルチメディア
技術の進展が望まれる今日における画像情報等のリアル
タイム秘密通信等に好適であり、その実用的効果は極め
て大きい。
【図面の簡単な説明】
【図1】本発明の実施形態における暗号通信システムの
構成を示すブロック図である。
【図2】同システムのデータ暗号化装置の構成を示すブ
ロック図である。
【図3】同システムのデータ復号化装置の構成を示すブ
ロック図である。
【図4】同データ暗号化装置の第1データ撹乱部の構成
を示すブロック図である。
【図5】同データ復号化装置の第2データ撹乱部の構成
を示すブロック図である。
【図6】同第1及び第2データ撹乱部のデータ変換部の
構成を示すブロック図である。
【図7】同データ変換部の写像の性質を示す図である。
【図8】第1の変形例に係るデータ変換部の構成を示す
ブロック図である。
【図9】第2の変形例に係るデータ変換部の構成を示す
ブロック図である。
【図10】第3の変形例に係るデータ変換部の構成を示
すブロック図である。
【図11】同データ変換部の回転量可変データ置換部の
詳細な構成を示すブロック図である。
【図12】第4の変形例に係るデータ変換部の構成を示
すブロック図である。
【図13】同データ変換部の加算数可変データ置換部の
詳細な構成を示すブロック図である。
【図14】従来のデータ暗号化装置におけるデータ変換
部の構成を示すブロック図である。
【図15】従来のデータ変換部の写像の性質を示す図で
ある。
【符号の説明】
1 送信機 2 受信機 3 伝送路 10 データ暗号化装置 11 送信部 20 データ復号化装置 21 受信部 101 データ撹乱部 1011 排他的論理和部 102 段数制御部 103 鍵制御部 201 データ撹乱部 2011 排他的論理和部 202 段数制御部 203 鍵制御部 300 データ変換部 3001 鍵加算部 3002 データ置換部 3003 換字テーブルデータ保管部 301 データ変換部 3010 ビット置換部 3020 回転量可変データ置換部 3021〜3023 シフタ 3024〜3026 直列変換器 3027 排他的論理和部 3030 加算数可変データ置換部 3031〜3035 巡回ビットシフタ 3036 排他的論理和部 310、320、330、340 データ変換部 401 鍵加算部
───────────────────────────────────────────────────── フロントページの続き (72)発明者 宮地 充子 石川県能美郡辰口町旭台一丁目50番D−34 号 Fターム(参考) 5J104 AA36 JA18 NA02 NA27 PA04

Claims (18)

    【特許請求の範囲】
  1. 【請求項1】 nビットの入力データをnビットの出力
    データに変換するデータ変換装置を備えるデータ暗号化
    装置であって、 前記データ変換装置は、 前記入力データを巡回ビットシフトすることにより、前
    記入力データをS1、S2、…、Sk(いずれも0以上n
    未満の整数であり、kは3以上の奇数)ビットだけそれ
    ぞれ巡回シフトしたk個のシフトデータを生成する巡回
    ビットシフト手段と、 生成された前記k個のシフトデータを融合することによ
    り、前記出力データを生成するシフトデータ融合手段と
    を備えることを特徴とするデータ暗号化装置。
  2. 【請求項2】 前記データ変換装置はさらに、 前記巡回ビットシフト手段による巡回ビットシフトに先
    立ち、予め与えられた鍵データと入力データとを融合す
    る鍵融合手段を備え、 前記巡回ビットシフト手段は、前記鍵融合手段によって
    前記鍵データが融合された入力データに対して前記巡回
    ビットシフトを行なうことを特徴とする請求項1記載の
    データ暗号化装置。
  3. 【請求項3】 前記巡回ビットシフト手段は、 前記入力データを前記S1、S2、…、Skビットだけそ
    れぞれ巡回シフトするk個の巡回シフト部を有すること
    を特徴とする請求項2記載のデータ暗号化装置。
  4. 【請求項4】 前記k個の巡回シフト部は、それぞれ、
    前記入力データを前記S1、S2、…、Skビットだけそ
    れぞれ巡回シフトさせる配線パターンが施された信号線
    であることを特徴とする請求項3記載のデータ暗号化装
    置。
  5. 【請求項5】 前記鍵融合手段は、算術加算器及び排他
    的論理和ゲートのいずれかであり、 前記シフトデータ融合手段は、排他的論理和ゲートであ
    ることを特徴とする請求項4記載のデータ暗号化装置。
  6. 【請求項6】 前記シフトデータ融合手段は、前記k個
    のシフトデータを融合した後に、その融合によって得ら
    れたnビットのデータと予め与えられた鍵データとを融
    合し、その結果得られるnビットのデータを前記出力デ
    ータとして生成することを特徴とする請求項1記載のデ
    ータ暗号化装置。
  7. 【請求項7】 前記巡回ビットシフト手段は、 指示されたビット数だけ前記入力データを巡回シフトす
    るk個の巡回シフト部と、 鍵データを取得する鍵データ取得部と、 取得した鍵データに基づいて前記S1、S2、…、Skを
    決定し、それぞれ前記k個の巡回シフト部に指示するシ
    フト量決定部とを有し、 前記k個の巡回シフト部は、それぞれ、前記シフト量決
    定部から指示された前記S1、S2、…、Skビットだけ
    前記入力データを巡回シフトすることを特徴とする請求
    項1記載のデータ暗号化装置。
  8. 【請求項8】 前記巡回ビットシフト手段は、 前記入力データをS1、S2、…、Sm(いずれも0以上
    n未満の整数であり、mは3以上の整数)ビットだけそ
    れぞれ巡回シフトするm個の巡回シフト部と、 鍵データを取得する鍵データ取得部と、 取得した鍵データに基づいて前記m個の巡回シフト部の
    中からk個の巡回シフト部を選択し、選択したk個の巡
    回シフト部による巡回シフトによって得られたk個のデ
    ータを前記シフトデータとして生成する選択部とを有す
    ることを特徴とする請求項1記載のデータ暗号化装置。
  9. 【請求項9】 nビットの入力データをnビットの出力
    データに変換するデータ変換ステップを含むデータ暗号
    化方法であって、 前記データ変換ステップは、 前記入力データを巡回ビットシフトすることにより、前
    記入力データをS1、S2、…、Sk(いずれも0以上n
    未満の整数であり、kは3以上の奇数)ビットだけそれ
    ぞれ巡回シフトしたk個のシフトデータを生成する巡回
    ビットシフトサブステップと、 生成された前記k個のシフトデータを融合することによ
    り、前記出力データを生成するシフトデータ融合サブス
    テップとを含むことを特徴とするデータ暗号化方法。
  10. 【請求項10】 前記データ変換ステップはさらに、 前記巡回ビットシフトステップにおける巡回ビットシフ
    トに先立ち、予め与えられた鍵データと入力データとを
    融合する鍵融合サブステップを含み、 前記巡回ビットシフトサブステップでは、前記鍵融合ス
    テップにおいて前記鍵データが融合された入力データに
    対して前記巡回ビットシフトを行なうことを特徴とする
    請求項9記載のデータ暗号化方法。
  11. 【請求項11】 前記シフトデータ融合サブステップで
    は、前記k個のシフトデータを融合した後に、その融合
    によって得られたnビットのデータと予め与えられた鍵
    データとを融合し、その結果得られるnビットのデータ
    を前記出力データとして生成することを特徴とする請求
    項9記載のデータ暗号化方法。
  12. 【請求項12】 前記巡回ビットシフトサブステップ
    は、 鍵データを取得する鍵データ取得サブステップと、 取得した鍵データに基づいて前記S1、S2、…、Skを
    決定するシフト量決定サブステップと、 決定された前記S1、S2、…、Skビットだけ前記入力
    データを巡回シフトする巡回シフトサブステップとを含
    むことを特徴とする請求項9記載のデータ暗号化方法。
  13. 【請求項13】 前記巡回ビットシフトサブステップ
    は、 鍵データを取得する鍵データ取得サブステップと、 取得した鍵データに基づいて予め定められたm個の数値
    S1、S2、…、Sm(いずれも0以上n未満の整数であ
    り、mは3以上の整数)からk個を選択する選択サブス
    テップと、 選択されたk個の数値S1、S2、…、Skに相当するビ
    ット数だけ前記入力データをそれぞれ巡回シフトする巡
    回シフトサブステップとを含むことを特徴とする請求項
    9記載のデータ暗号化方法。
  14. 【請求項14】 nビットの入力データをnビットの出
    力データに変換するデータ変換ステップを含むデータ暗
    号化プログラムが記録されたコンピュータ読み取り可能
    な記録媒体であって、 前記データ変換ステップは、 前記入力データを巡回ビットシフトすることにより、前
    記入力データをS1、S2、…、Sk(いずれも0以上n
    未満の整数であり、kは3以上の奇数)ビットだけそれ
    ぞれ巡回シフトしたk個のシフトデータを生成する巡回
    ビットシフトサブステップと、 生成された前記k個のシフトデータを融合することによ
    り、前記出力データを生成するシフトデータ融合サブス
    テップとを含むことを特徴とする記録媒体。
  15. 【請求項15】 前記データ変換ステップはさらに、 前記巡回ビットシフトサブステップにおける巡回ビット
    シフトに先立ち、予め与えられた鍵データと入力データ
    とを融合する鍵融合サブステップを含み、 前記巡回ビットシフトサブステップでは、前記鍵融合サ
    ブステップにおいて前記鍵データが融合された入力デー
    タに対して前記巡回ビットシフトを行なうことを特徴と
    する請求項14記載の記録媒体。
  16. 【請求項16】 前記シフトデータ融合サブステップで
    は、前記k個のシフトデータを融合した後に、その融合
    によって得られたnビットのデータと予め与えられた鍵
    データとを融合し、その結果得られるnビットのデータ
    を前記出力データとして生成することを特徴とする請求
    項14記載の記録媒体。
  17. 【請求項17】 前記巡回ビットシフトサブステップ
    は、 鍵データを取得する鍵データ取得サブステップと、 取得した鍵データに基づいて前記S1、S2、…、Skを
    決定するシフト量決定サブステップと、 決定された前記S1、S2、…、Skビットだけ前記入力
    データを巡回シフトする巡回シフトサブステップとを含
    むことを特徴とする請求項14記載の記録媒体。
  18. 【請求項18】 前記巡回ビットシフトサブステップ
    は、 鍵データを取得する鍵データ取得サブステップと、 取得した鍵データに基づいて予め定められたm個の数値
    S1、S2、…、Sm(いずれも0以上n未満の整数であ
    り、mは3以上の整数)からk個を選択する選択サブス
    テップと、 選択されたk個の数値S1、S2、…、Skに相当するビ
    ット数だけ前記入力データをそれぞれ巡回シフトする巡
    回シフトサブステップとを含むことを特徴とする請求項
    14記載の記録媒体。
JP36752399A 1999-05-26 1999-12-24 データ暗号化装置及びその方法 Expired - Lifetime JP3190648B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP36752399A JP3190648B2 (ja) 1999-05-26 1999-12-24 データ暗号化装置及びその方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP14607999 1999-05-26
JP11-146079 1999-05-26
JP36752399A JP3190648B2 (ja) 1999-05-26 1999-12-24 データ暗号化装置及びその方法

Publications (2)

Publication Number Publication Date
JP2001042766A true JP2001042766A (ja) 2001-02-16
JP3190648B2 JP3190648B2 (ja) 2001-07-23

Family

ID=26477012

Family Applications (1)

Application Number Title Priority Date Filing Date
JP36752399A Expired - Lifetime JP3190648B2 (ja) 1999-05-26 1999-12-24 データ暗号化装置及びその方法

Country Status (1)

Country Link
JP (1) JP3190648B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427168B1 (ko) * 2002-05-24 2004-04-14 뮤텔테크놀러지 주식회사 근거리 송수신기의 암호화 키 계산방법
WO2007148665A1 (ja) * 2006-06-23 2007-12-27 Panasonic Corporation 暗号処理装置、データ変換方法、データ変換プログラム、記録媒体及び集積回路
JP2012169964A (ja) * 2011-02-16 2012-09-06 Kddi Corp アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100427168B1 (ko) * 2002-05-24 2004-04-14 뮤텔테크놀러지 주식회사 근거리 송수신기의 암호화 키 계산방법
WO2007148665A1 (ja) * 2006-06-23 2007-12-27 Panasonic Corporation 暗号処理装置、データ変換方法、データ変換プログラム、記録媒体及び集積回路
US8135130B2 (en) 2006-06-23 2012-03-13 Panasonic Corporation Data encryption apparatus, data converting method, data converting program, recording medium and integrated circuit
JP2012169964A (ja) * 2011-02-16 2012-09-06 Kddi Corp アルゴリズム可変型暗号装置、アルゴリズム可変型復号装置、アルゴリズム可変型暗号方法、アルゴリズム可変型復号方法およびプログラム

Also Published As

Publication number Publication date
JP3190648B2 (ja) 2001-07-23

Similar Documents

Publication Publication Date Title
EP1056240B1 (en) Data encrypton apparatus and method
US5351299A (en) Apparatus and method for data encryption with block selection keys and data encryption keys
JP4127472B2 (ja) データ変換装置及びデータ変換装置のデータ変換方法及びプログラム及びコンピュータ読み取り可能な記録媒体
JP3029381B2 (ja) データ変換装置
Brown et al. LOKI—a cryptographic primitive for authentication and secrecy applications
KR100362458B1 (ko) 암호화 처리장치, 암호화 처리방법 및 보안성을 손상시키지 않고 고속으로 암호화 처리를 실현하는 암호화 처리 프로그램을 기록하는 기록매체
JP6052166B2 (ja) 暗号化方法、暗号化装置および暗号化プログラム
JP3190648B2 (ja) データ暗号化装置及びその方法
JP5056860B2 (ja) データ変換関数の処理装置
JPH0697930A (ja) ブロック暗号処理装置
JP4515716B2 (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
EP1001398B1 (en) Ciphering apparatus
JP3154991B2 (ja) 暗号処理装置、暗号処理方法、及び、暗号処理プログラムを記憶した記憶媒体
JPH09251267A (ja) 暗号化装置及び暗号化方法
Ramesh et al. A novel block-cipher mechanism for information security in cloud system
JP3748184B2 (ja) 秘話通信装置
JP3906574B2 (ja) 暗号変換方法、暗号変換装置、復号方法、復号装置及びデータ通信システム
JP3112655B2 (ja) データ暗号化装置及びデータ復号化装置
JPH1022990A (ja) 情報処理装置および方法
RU2127024C1 (ru) Блок шифрования
KR20030087893A (ko) 라운드 키의 온라인 계산 기능을 갖는 모듈화 구조의 AESRijndael 라운드 키 생성 회로
JPH08307411A (ja) 逐次暗号方式
KR20050060301A (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리방법, 이에 적합한 f함수 처리기, 그리고 보안 시스템
KR20200086859A (ko) 블록 암호화 장치
JP2001215874A (ja) 副鍵生成装置およびそのプログラム記録媒体

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
R150 Certificate of patent or registration of utility model

Ref document number: 3190648

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20090518

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100518

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110518

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120518

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20130518

Year of fee payment: 12

EXPY Cancellation because of completion of term