JPH11212451A - 暗号処理装置 - Google Patents

暗号処理装置

Info

Publication number
JPH11212451A
JPH11212451A JP10024075A JP2407598A JPH11212451A JP H11212451 A JPH11212451 A JP H11212451A JP 10024075 A JP10024075 A JP 10024075A JP 2407598 A JP2407598 A JP 2407598A JP H11212451 A JPH11212451 A JP H11212451A
Authority
JP
Japan
Prior art keywords
processing
data
transposition
bit
input
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.)
Withdrawn
Application number
JP10024075A
Other languages
English (en)
Inventor
Takahiro Okamoto
隆浩 岡本
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP10024075A priority Critical patent/JPH11212451A/ja
Publication of JPH11212451A publication Critical patent/JPH11212451A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 処理速度が早く、汎用性があり、どのような
種類の暗号にも対応できる暗号処理装置を得ることを目
的とし、特に、DESやFEALのように転置や換字を
主体に、排他的論理和や巡回シフト、剰余演算を行う慣
用暗号の処理に適した、暗号処理装置を提供する 【解決手段】 任意の転置処理を実行するための転置処
理手段と、任意の換字処理を実行するための換字処理手
段と、前記転置処理手段による処理結果、および前記換
字処理手段による処理結果を記憶する記憶手段と、前記
記憶手段の処理結果を用いて、転置処理、または換字処
理を反復する手段とを備えている。また、前記転置処理
手段は、再書き込み可能なスイッチマトリクスで構成さ
れており、さらに、前記換字処理手段は、再書き込み可
能なランダムアクセスメモリで構成されている。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は暗号処理装置に関す
るものであり、特に、処理速度が早く、汎用性があり、
どのような種類の暗号にも適合できる暗号処理装置に関
するものである。
【0002】
【従来の技術】従来から暗号方式として各種の方式が提
案されている。その代表的なものとして、暗号化鍵コー
ドと復号化鍵コードとが同一である対称暗号、いわゆる
慣用暗号と呼ばれる種類がある。その代表的な例とし
て、1977年に米国商務省標準局が制定した、データ
暗号標準DES(Data Encryption S
tandard)がある。また、日本では日本電信電話
(株)が開発提案したFEALと呼ばれる方式がある。
これらの慣用暗号技術の基本は、換字、転置、あるいは
双方を組み合わせた方式で、伝送データやファイルを暗
号処理することにある。
【0003】換字式暗号(substitution
cipher)の歴史は古く、これは、文字を別の文字
に置き換えるもので、各文字ごとに、置き換えられる文
字の対応表をあらかじめ作成しておくコードブック方
式、文字を一定数だけずらしていくシーザ方式、シーザ
方式の鍵を周期的に変化させるビジネル暗号(Vigi
nere cipher)などの種類がある。同様に、
転置式暗号(transposition ciphe
r)は、メッセージを周期という一定の文字数ごとに区
切り、その区切られた文字数ごとに文字の並びを入れ換
えるものである。
【0004】以上のような換字方式と転置方式を組み合
わせたものに混合方式がある。その中の1つがDESで
あり、メッセージを64ビット単位のブロックに分け、
これを64ビットの鍵を用いて換字、転置を16回繰り
返すもので暗号強度が高いのが特徴である。このときに
使用される鍵コードは秘密にしておく必要がある(秘密
鍵方式)。このDESのアルゴリズムは公開されてい
る。DESの場合、鍵の種類は256(約1017)個あ
り、アルゴリズムに則って鍵コードを見つけるには、膨
大な時間がかかるとされている。
【0005】DESでは、先ず、利用者が任意に与える
56ビットの鍵に、次々に換字や転置、またはビットシ
フトを行い、各48ビットの鍵をK1 からK16まで16
種作る。次ぎに、メッセージを64ビットのブロックに
分け、1ブロックごとに64ビットの暗号文に変換す
る。すなわち、先ず、メッセージ1ブロックを32ビッ
トづつの左半分L0 と右半分R0 に分ける。次に、これ
に対して次の操作を16回行う。 Ln =Rn-1 Rn =Ln-1 +f(Kn ,Rn-1 )
【0006】上式の和は、各桁ごとの2を法(Mod
2)とする和、すなわち排他的論理和で、f(K,R)
は、32ビットのRを適切な転置により48ビットに拡
大し、前記48ビットの鍵Kn を用いて一種の換字を行
いつつ、再度、32ビットに変換する操作である。上式
の変換が16回行われて暗号文64ビットが得られる。
【0007】上記DESに代表される暗号方式は、ブロ
ック暗号とも呼ばれ、一定の長さにメッセージを区切っ
て暗号化するのに適している。一方、メッセージを構成
するデータ列を1ビットづつ暗号処理するストリーム暗
号方式がある。その代表的な例として、乱数を用いる換
字暗号、バーナム暗号(Vernam cipher)
が知られている。また、日本でも1993年に岡本氏か
ら発表されたストリーム暗号がある。
【0008】前記DESに代表される暗号方式を実現す
る具体的な手段としては、8ビット、16ビット、また
は32ビットの汎用マイクロプロセッサを用いることが
できる。その場合は、マイクロプロセッサの制御ソフト
で暗号処理を実行し、平均1K〜1Mbpsの処理能力
が得られている。また、暗号処理用の専用LSIも開発
され、その場合は、1M〜100Mbpsの処理能力が
得られている。なお、近年は、パーソナルコンピュータ
に用いられるマイクロプロセッサの処理能力が向上し、
ソフトウェアのみで暗号処理がなされる例も多い。
【0009】暗号方式の他の一つは、前記秘密鍵方式の
鍵管理のわずらわしさを解消するために考案された公開
鍵方式である。公開鍵方式は、暗号化用と復号化用とに
それぞれ別の鍵コードを使用する非対称系暗号である。
公開鍵暗号の原理は1976年にDiffieとHel
lmanとによって発表され、その後、1978年にR
ivest、Shamir、Adlemanにより、R
SA暗号が提案され、また1985年にElGamal
によって、エルガマル暗号が提案された。非対称系暗号
の代表であるRSA暗号では、べき乗剰余演算を用いて
おり、この暗号処理のために開発された専用LSIを用
いても、得られる処理速度は平均1Kbps〜100K
bps程度であり、秘密鍵を用いる慣用暗号と比較して
暗号処理の高速化が難しい。
【0010】
【発明が解決しようとする課題】DESに代表される慣
用暗号は、転置処理、換字処理、排他的論理和、巡回シ
フト、剰余演算などの処理要素を組み合わせて暗号処理
されており、これらの暗号処理要素をすべてソフトウェ
アで実行しようとすると、大きな処理能力は得られな
い。一方、前記処理要素を含めて暗号処理の全ての要素
を専用LSI化すると、高い処理能力は得られるが、暗
号処理の市場規模からみて、非常にコストの高い装置に
なる。従って本発明は、処理速度が早く、汎用性があ
り、どのような種類の暗号にも対応できる暗号処理装置
を得ることを目的とし、特に、DESやFEALのよう
に転置や換字を主体に、排他的論理和や巡回シフト、剰
余演算を行う慣用暗号の処理に適した、暗号処理装置を
提供するものである。
【0011】
【課題を解決するための手段】本発明の暗号処理装置
は、請求項1に示したように、任意の転置処理を実行す
るための転置処理手段と、任意の換字処理を実行するた
めの換字処理手段と、前記転置処理手段による処理結
果、および前記換字処理手段による処理結果を記憶する
記憶手段と、前記記憶手段の処理結果を用いて、転置処
理、または換字処理を反復する手段とを備えている。
【0012】また、本発明の暗号処理装置は、請求項2
に示したように、前記転置処理手段は、再書き込み可能
なスイッチマトリクスで構成されており、また、請求項
3に示したように、前記換字処理手段は、再書き込み可
能なランダムアクセスメモリで構成されている。
【0013】
【発明の実施の形態】(DES暗号の仕組み)本発明の
実施の形態を説明する前に、先ず、秘密鍵を用いる慣用
暗号の代表であるDESについてその概要を説明する。
図11はDESにおける暗号化処理のブロック図であ
る。DESにおいては、先ず、64ビットの鍵コードK
に基づいて、16種類の系列鍵コードK1 〜K16を生成
する。64ビットの鍵コードKは、最初に、縮約転置処
理PC1において、56ビットに縮約されるとともに、
転置処理により所定のコード攪拌を行った後、上位28
ビットC0 と下位28ビットD0 とに分割する。次い
で、得られたC0 とD0 とは、それぞれ所定のビット数
の左巡回シフト処理LS1 を行ってC1 とD1 とに変換
する。
【0014】再び、56ビットに合成されたC1 とD1
は、縮約転置処理PC2において、48ビットに縮約す
るとともに、転置処理を行ってコードを攪拌し、系列鍵
コードK1 を得る。一方、LS1 にて左巡回シフト処理
が施されたC1 とD1 とは、LSn に代表される左巡回
シフト処理が順次施され、それぞれCn 、Dn に変換さ
れる。このCn 、Dn に基づいて、それぞれ縮約転置処
理PC2を施し、48ビットの系列鍵コードKn 、すな
わち16種類の系列鍵コードK1 〜K16を得る。
【0015】DESにおけるメッセージの暗号化は、先
ず、メッセージを64ビットづつに区切り、各64ビッ
トの平文データMに対してそれぞれ暗号化処理を施す。
平文データMの暗号化処理では、先ず、初期転置処理I
Pによって平文データMを攪拌したのち、上位32ビッ
トL0 と下位32ビットR0 とに分割する。暗号化は、
2つに分割された上位下位各32ビットのデータに対し
て、前記系列鍵コードKn 、すなわちK1 〜K16を用い
て処理される。この暗号化処理は次式に基づいて16回
行う。 Ln =Rn-1 Rn =Ln-1 +f(Kn ,Rn-1 )
【0016】上式の和は、各桁ごとの2を法とする和
(Mod2)、すなわち排他的論理和である。また、関
数f(K,R)は、32ビットのRを拡大転置処理によ
り48ビットに拡大した後、前記48ビットの系列鍵コ
ードKn を用いて一種の換字を行いつつ、再度、32ビ
ットに変換する操作である。前記処理を16回繰り返
し、最後に得られたL16とR16を入れ換えたのち、逆初
期転置処理IP-1を施すことによって64ビットの暗号
文データCを得る。
【0017】上記DESにおける関数f(K,R)の処
理の詳細を図13に示す。図に示すように、関数f
(K,R)の処理は、先ず、32ビットの原字列Rn
を、拡大転置処理Eにて48ビットに拡大しつつ、転置
処理を施しデータを攪拌する。次いで、前記系列鍵コー
ド生成処理にて得られた48ビットの鍵コードKn との
排他的論理和を得る。次に、得られた48ビットのデー
タを6ビットづつ、8ブロックに分割し、それぞれS1
〜S8 で示される換字処理を施してデータを攪拌し、各
4ビットの換字データを得る。さらに、前記換字処理S
1 〜S8 で得られた、4×8=32ビットの換字データ
に対して、転置処理Pを施してデータを攪拌し32ビッ
トの換字列を得ている。
【0018】以上の説明は、DESにおける暗号化の処
理例である。次に、暗号化されたデータを、元のメッセ
ージに復号する暗号解読方法について説明する。図12
はDES暗号文の復号化ブロック図である。暗号文の復
号化においては、暗号化と同様に、先ず、復号用の系列
鍵コードを生成する。図に示すように、DESの復号用
鍵コードは、暗号化に用いた鍵コードと同じ64ビット
の鍵コードKを基に、最初に、縮約転置処理PC1にお
いて、56ビットに縮約するとともに、転置処理によっ
て所定のコード攪拌を行った後、上位28ビットC16と
下位28ビットD16とに分割する。次いで、得られたC
16とD16とを合成し、縮約転置処理PC2において、4
8ビットに縮約するともに、転置処理にてコードを攪拌
し、最初の系列鍵コードK16を得る。
【0019】一方、縮約転置処理PC1にて得られたC
16とD16とは、それぞれRS15にて右巡回シフト処理を
施し、C15、D15に変換する。このC15、D15に基づい
て、それぞれ縮約転置処理PC2を施し、48ビットの
鍵系列コードK15を得る。以下同様にして、右巡回シフ
トRS15〜RS1 で得られたCn 、Dn (図示せず)に
基づいて復号用の系列鍵コードKn (図示せず)、すな
わちK16〜K1 を得る。なお、DESでは、これらの復
号用の系列鍵コードK16〜K1 は、前述した暗号化処理
において生成した鍵系列コードK1 〜K16と同一であ
り、生成する順序が逆になっているだけである。
【0020】DESにおける暗号文の復号化では、先
ず、暗号文を64ビットづつに区切り、各64ビットの
暗号文データCに対してそれぞれ復号化処理を施す。暗
号文Cの復号化処理では、先ず、初期転置処理IPによ
って暗号文データCを攪拌したのち、上位32ビットL
16と下位32ビットR16とに分割する。復号化は、2つ
に分割された上位下位各32ビットのデータに対して、
前記復号化用の系列鍵コードKn 、すなわちK16〜K1
を用いて処理される。この復号化処理は次式に基づいて
16回行われる。 Rn-1 =Ln Ln-1 =Rn +f(Kn ,Ln )
【0021】上式の和は、各桁ごとの2を法(Mod
2)とする和、すなわち排他的論理和である。また、関
数f(K,L)は、32ビットのLを拡大転置により4
8ビットに拡大し、前記48ビットの系列鍵コードKn
を用いて一種の換字を行いつつ、再度、32ビットに変
換する操作である。前記処理を16回繰り返し、最後に
得られたL0 とR0 を入れ換えたのち、逆初期転置処理
IP-1を施すことによって64ビットの解読文データM
が得られる。なお、前記復号化処理は、上位と下位の各
32ビットのデータが、暗号化処理の場合と入れ替わっ
て処理されるが、基本的な処理手順は暗号化処理と同じ
論理で実行される。
【0022】以上に説明したDESの暗号処理において
は、各種の転置処理が行われており、その処理の具体的
な例を図10に示す。図10は、DESで実行される各
転置処理IP、E、P、IP-1、PC1、PC2におけ
る入力ビットが、どの出力ビットに出力されるかを表に
示している。例えば、初期転置処理IPにおいては、入
力ビットの第58ビットのデータが、出力ビットの第1
ビットに、また、入力ビットの第50ビットのデータ
が、出力ビットの第2ビットに出力されることを示して
いる。以下同様に、各転置処理における入力ビットと出
力ビットの関係を表している。
【0023】なお、DESの暗号処理においては、初期
転置処理IP、拡大転置処理E、及び逆初期転置処理I
-1は、規約によって入出力ビットの配列が固定されて
いる。一方、鍵コードKから系列鍵コードK1 〜K16を
生成する部分において実行する転置処理PC1、PC
2、および、関数f(K,R)または関数f(K,L)
の処理において実行する転置処理Pの配列は、DESの
利用者によってその配列を変更することができ、図10
に示した変換例は、その一例である。
【0024】同様に、DESの暗号処理において、図1
3に示した関数f(K,R)の処理において実行する換
字処理S1 〜S8 の具体的な例を図9に示す。図9は、
DESで実行される換字処理S1 〜S8 において、各換
字処理における6ビットの入力データに対する4ビット
の出力データの内容を一覧表に示したものである。この
表は、例えば、換字処理S1 における入力データが、2
進数で「000000」のとき、出力データが「1110」である
ことを示している。以下同様に、各換字処理S1 〜S8
における6ビットの入力データ「000000」〜「111111」
に対して、出力される4ビットの換字データを、一部省
略して示している。なお、DESの規約では、前記換字
処理S1 〜S8 の出力データの内容は固定されておら
ず、DESの利用者によってその内容を変更することが
でき、図10に示した配列は、その一例である。
【0025】(FEAL暗号の仕組み)秘密鍵を用いる
慣用暗号の一方式であるFEALは、日本電信電話
(株)が開発した暗号方式であり、128ビットまたは
64ビットの鍵コードを用いて、64ビットづつにブロ
ック化されたメッセージを暗号文に変換する。前記DE
Sでは、暗号化の過程で16回メッセージを攪拌する
が、FEALでは4、8、16、または32回以上、攪
拌処理を行う。また、暗号化の過程では、排他的論理和
処理とともに、系列鍵コードの生成やデータの攪拌に用
いる関数として、2ビット巡回シフトや剰余演算(mo
d256)が用いられる。さらに、系列鍵コードの生成
やデータの攪拌に際し、データ長を8ビットづつにブロ
ック化して処理しており、DESと比較して高速処理や
ソフトウェア処理に適している。
【0026】(本発明の概要)本発明では、上記したD
ESやFEALなどの暗号化処理、および復号化処理
を、処理速度が早く、汎用性があり、どのような種類の
暗号にも対応できる暗号処理装置を得ることを目的と
し、特に、DESやFEALのように転置や換字、、排
他的論理和、巡回シフト、剰余演算を行う慣用暗号の処
理に適した、暗号処理装置を提供するものである。すな
わち、本発明の暗号処理装置は、転置や換字、排他的論
理和、巡回シフト、剰余演算などの暗号処理要素のう
ち、少なくとも転置処理を実行するための専用の手段
と、換字処理を実行するための専用の手段とを備え、前
記いづれかの手段を用いて、転置処理、または換字処理
を所定の回数反復処理するように構成した暗号処理装置
である。
【0027】(装置の構成)次に、本発明の暗号処理装
置に関し、実施例の図面に基づいてその構成を詳細に説
明する。図1は、本発明の暗号処理装置の概念図であ
る。また、図2は、本発明の暗号処理装置全体の構成例
を示すブロック図である。さらに、図3は、暗号処理部
の詳細な実施例を示すブロック図である。
【0028】(装置の概要)先ず、図1を用いて、本発
明の暗号処理装置の概要について説明する。図におい
て、1は暗号処理装置である。暗号処理装置1は、平文
データM、または暗号文データCを入力し、平文データ
Mを暗号文データCに暗号化したり、暗号文データCを
平文データMに復号化する装置である。前記暗号処理装
置1は、暗号処理を実行するための制御部100、およ
び暗号処理の内、転置処理を実行するための専用の転置
処理手段201と、換字処理を実行するための専用の換
字処理手段202とを備えた暗号処理部200とで構成
される。図に示すように、前記暗号処理部200に備え
た転置処理手段201と換字処理手段202とは、それ
ぞれのデータ入力端子が、共通の入力データレジスタ2
03の出力端子に接続されており、また、各処理手段の
出力端子が、出力データセレクタ204の入力端子に接
続されている。さらに、出力データセレクタ204の出
力端子は、前記入力データレジスタ203の入力端子に
接続されている。
【0029】上記構成の暗号処理装置1において、暗号
処理を行う場合、先ず、制御部100によって、暗号処
理部200の入力データレジスタ203に、暗号処理を
実行しようとする最初のデータが入力される。入力デー
タレジスタ203に入力されたデータは、転置処理手段
201、および換字処理手段202に入力され、それぞ
れ転置処理、および換字処理が実行され、その処理結果
は、出力データセレクタ204に入力される。次いで、
制御部100によって、出力データセレクタ204に入
力された処理結果のうち、転置処理、または換字処理の
いづれかの処理結果が選択される。選択された処理結果
は、出力データセレクタ204の出力端子を経て、入力
データレジスタ203に入力され、再び転置処理および
換字処理が行われる。すなわち、一旦入力データレジス
タ201にデータを入力すれば、制御部100によっ
て、転置処理または換字処理の処理結果を、出力データ
セレクタ204にて選択するだけで、転置処理または換
字処理を、連続して次々と実行することができる。
【0030】一方、出力データセレクタ204にて選択
された転置処理または換字処理の処理結果を、出力デー
タセレクタ204の出力端子を介して、制御部100の
図示しないデータ記憶手段に記憶し、必要に応じて、制
御部100によって、暗号処理部200の入力データレ
ジスタ203に再入力することもできる。この場合は、
複数のデータの転置処理や換字処理を、実質的に並行し
て処理することができる。
【0031】例えば、DESの鍵コードKを制御部10
0に入力し、暗号化に用いる系列鍵コードK1 〜K16を
生成する場合、先ず、鍵コードKを転置処理手段201
で縮約転置処理PC1を実行し、次いで得られた結果を
左巡回シフトする。この巡回シフトは、実質的に転置処
理と同じ処理であり、縮約転置処理PC1を実行した
後、その処理結果を、再び転置処理手段201にて転置
処理することによって、系列鍵コードK1 を生成するた
めの左巡回シフトが施されたデータを得られる。
【0032】実質的に左巡回シフトと同じ結果を得られ
る転置処理によって得たデータは、次の系列鍵コードK
2 を生成するための左巡回シフトのためのデータとし
て、一旦、制御部100に記憶しておく。次に、系列鍵
コードK1 を生成するために得たデータを入力データレ
ジスタ203に入力し、転置処理手段201にて、縮約
転置処理PC2を実行すれば、系列鍵コードK1 を得、
これを制御部100に記憶する。
【0033】次いで、先に制御部100に記憶した系列
鍵コードK2 を生成するための次の左巡回シフトのため
のデータを、暗号処理部200の入力データレジスタ2
03に入力し、実質的に左巡回シフトと等価な転置処理
を実行することによって、次に必要な系列鍵コードを生
成するためのデータが得られる。このように、暗号処理
部200の転置処理手段201を用いて、順次転置処理
を実行することによって、暗号化に必要な16種類の系
列鍵コードをK1 〜K16を得ることができる。
【0034】なお、後に詳しく説明するが、暗号処理部
200に設けた転置処理手段201における入力ビット
と出力ビットの関係は、転置処理の内容、例えば、縮約
転置処理PC1、PC2、または左巡回シフトLS1 ・
・・LS15などによって異なるので、転置処理を実行す
る前に、転置処理手段201の入力ビットと出力ビット
の関係を変更する必要がある。
【0035】また、暗号処理部200の換字処理手段2
02は、例えば、DESの暗号化、および復号化で用い
られる非線形関数f(K,R)またはf(K,L)に含
まれるS1 〜S8 の選択換字処理において使用される。
例えば、拡大転置処理Eを施した原字列RまたはLと系
列鍵コードKとの排他的論理和演算で得られた48ビッ
トのデータを、先ず、制御部100に記憶しておく。次
に、前記48ビットのデータを8ブロックに分割し、各
6ビットのデータを、順次、制御部100から暗号処理
部200の入力データレジスタ203に入力し、換字処
理手段202にて、選択換字処理S1 〜S8 を順次実行
する。換字処理は8回実行されるので、その都度、入力
データレジスタ203に6ビットのデータを入力すると
ともに、換字処理手段202で得られた4ビットの換字
処理結果を、出力データレジスタ204で選択し、制御
部100のデータ記憶手段に記憶させ、合計32ビット
の換字データを得る。
【0036】その際、換字処理手段202の入力ビット
と出力ビットの関係は、選択換字処理S1 ・・・S8 ご
とに異なっているので、選択換字処理S1 〜S8 を実行
する都度、換字処理手段202の入力ビットと出力ビッ
トの関係を変更する必要がある。
【0037】つまり、前記、転置処理手段201の入力
ビットと出力ビットの関係、および換字処理手段202
の入力ビットと出力ビットの関係は、暗号処理部200
での転置処理または換字処理の都度、制御部100によ
って変更するように構成する。
【0038】(装置の構成例)前記入力ビットと出力ビ
ットとの関係の変更処理を含めた暗号処理を行うための
暗号処理装置の、具体的な装置構成例を図2に示す。図
2において、10はマイクロプロセッサなどのCPU
(演算制御装置)、20は処理データを一時記憶するた
めのRAM(ランダムアクセスメモリ)、30はCPU
を動作させるためのプログラム、および、転置処理手段
201の入力ビットと出力ビットの関係や、換字処理手
段202の入力ビットと出力ビットの関係を、制御デー
タとして記憶しておくためのROM(リードオンリメモ
リ)、40は図1に示した転置処理手段201、換字処
理手段202、入力データレジスタ203、および出力
データセレクタ204などで構成される暗号処理部(C
LU)である。
【0039】前記CPU10、RAM20、ROM3
0、およびCLU40は、バス11を介して相互に接続
され、プログラムおよびデータを伝送することができ
る。さらに、前記バス11には、I/Oで示されるデー
タ入出力制御部12が接続され、その入力端子13、お
よび出力端子14を介して、外部装置から入力されるメ
ッセージおよび鍵コードを受け取り、メッセージを暗号
文に変換して送り出したり、逆に、暗号文と鍵コードを
受け取り、暗号文を復号して解読文に変換して送り出す
ように構成されている。
【0040】(暗号処理部の構成)次に、前記暗号処理
部(CLU)40のより詳細な回路構成について説明す
る。図3は、暗号処理部40の詳細構成図である。図に
おいて、40は暗号処理部(CLU)である。暗号処理
部40は、半導体集積回路で構成され、内蔵されている
制御レジスタ41を介して、暗号処理装置1のバス11
に接続される。前記制御レジスタ41は、バス11に接
続されたCPU10によって制御され、暗号処理部40
の内部に組み込まれた暗号処理用の各回路の動作を制御
したり、データの入出力を制御する。暗号処理部40内
の各回路は、データバス42、および制御バス43を介
して前記制御レジスタ41に接続され、制御レジスタ4
1に設定されたデータを受け取って暗号処理を実行した
り、処理結果を制御レジスタ41に転送する。なお、デ
ータバス42は64ビット長のデータ幅を有している。
【0041】暗号処理部40には、図3に示すように、
転置処理や換字処理などの暗号処理の対象である64ビ
ットの鍵コード、および64ビットに区切られた平文デ
ータや暗号文データを設定するための2つの入力データ
レジスタ44、45を備えている。前記2つの入力デー
タレジスタ44、45の入力端子は、各々64ビット長
のデータ幅を有し、前記データバス42を介して制御レ
ジスタ41に接続されている。また、前記入力データレ
ジスタ44の出力端子は、転置処理を実行するためのプ
ログラマブルなスイッチマトリクスアレイ50と、換字
処理を実行するためのプログラマブルなRAM(ランダ
ムアクセスメモリ)60、および、他方の入力データレ
ジスタ45に設定されたデータとの排他的論理和演算を
実行するための、排他的論理和演算回路70とに接続さ
れている。
【0042】さらに、前記スイッチマトリクスアレイ5
0の出力端子と、RAM60の出力端子と、排他的論理
和演算回路70の出力端子は、出力データセレクタ46
の入力端子X、Y、Zにそれぞれ接続されている。そし
て前記出力データセレクタ46の出力端子は、データバ
ス42を介して、制御レジスタ41に接続されている。
なお、出力データセレクタ46の出力端子は、64ビッ
ト長のデータ幅を有し、前記X、Y、またはZのいずれ
かの入力端子の内容を選択して制御レジスタ41にデー
タを転送する。
【0043】ここで、転置処理を実行するためのプログ
ラマブルなスイッチマトリクスアレイ50について、よ
り詳しく説明する。プログラマブルスイッチマトリクス
アレイ50は、レジスタ部51とスイッチマトリクス部
52とで構成される。そして前記スイッチマトリクス部
52は、例えば、64入力、64出力の半導体スイッチ
群で構成され、前記レジスタ部51に設定されたデータ
によって、入力ビットと出力ビットの関係が決定され
る。このレジスタ部51に設定されるデータは、64ビ
ット×64ビット=4096ビット、すなわち512バ
イトあり、CPU10によって、ROM30から読み出
された512バイトの転置制御データが、制御レジスタ
41に入力され、データバス42を介してレジスタ部5
1に転送されて設定される。レジスタ部51に設定され
た4096ビットの転置制御データによって、前記スイ
ッチマトリクス部52に設けられた64本の入力線と6
4本の出力線との接、断が決定され、入力データレジス
タ44に設定されたデータが、前記64本の入力線に入
力されることによって、所定の出力線に転置処理された
データが出力される。この転置処理されたデータは、出
力データセレクタ46の入力端子Xに入力される。
【0044】また、換字処理を実行するためのプログラ
マブルなRAM(ランダムアクセスメモリ)60は、例
えば、8ビットのアドレス入力線と8ビットのデータ出
力線を備え、最大で256バイトの換字制御データを保
持することができる。この換字制御データは、転置制御
データと同様に、CPU10によって、ROM30から
読み出されて制御レジスタ41に入力され、データバス
42を介してRAM60に転送されて設定される。この
RAM60に換字制御データを書き込んでおき、入力デ
ータレジスタ44に換字処理すべきデータを設定するこ
とによって、前記入力データレジスタ44に設定された
データの下位8ビットのデータがRAM60のアドレス
入力線に入力され、当該アドレスに対応する換字データ
がRAM60のデータ出力線に出力され、換字処理され
たデータが、出力データセレクタ46の入力端子Yに入
力される。
【0045】本実施例の暗号処理部40では、上述した
転置処理用回路と換字処理用回路とは別に、入力データ
レジスタ44と入力データレジスタ45とに設定された
2つの入力データの排他的論理和を演算するための排他
的論理和演算回路70を備えている。この排他的論理和
演算回路70は、2つの64ビットデータの排他的論理
和を演算し、出力データセレクタ46の入力端子Zに演
算結果を入力する。
【0046】(装置の作用動作)次に、本発明の暗号処
理装置の作用動作について説明する。動作例として、D
ESの暗号化処理の場合について説明する。図4はDE
Sの暗号化処理の動作を説明するためのデータ処理を模
式的に示したフロー図である。DESの暗号化処理で
は、先ず、図4(a)に示すように、64ビットの平文
データMから、初期転置処理IPによって64ビットの
転置データを得る。この処理は、図3に示したスイッチ
マトリクス部52で行われる処理である。
【0047】暗号処理部40にて初期転置処理IPを実
行する場合は、先ず、CPU10がROM30から転置
制御データを読み出し、これを暗号処理部40の制御レ
ジスタ41に入力する。制御レジスタ41に入力された
転置制御データは、データバス42、および制御バス4
3を介して、プログラマブルなスイッチマトリクスアレ
イ50に設けてあるレジスタ部51に転送される。レジ
スタ部51に転送された転置制御データによって、スイ
ッチマトリクス部52の入力線と出力線との各交点に設
けられた半導体スイッチが接、断され、入力ビットと出
力ビットの関係が設定される。
【0048】図5は、初期転置処理IPにおける、スイ
ッチマトリクス部52の64本の入力線が、どの出力線
に接続されるかを示している。図において縦軸が64ビ
ット分の入力線を示し、各入力線が、横軸に示す出力線
のどのビット線と接続されているかを*印で示してい
る。例えば、入力線の第1ビットは、出力線の第40ビ
ットに接続され、入力線の第2ビットは、出力線の第8
ビットに接続されている。従って、スイッチマトリクス
部52の入力線に入力された第1ビットのデータは出力
線の第40ビットに、また第2ビットに入力されたデー
タは出力線の第8ビットに出力されて転置処理されるこ
とになる。なお、このスイッチマトリクス部52は、6
4本の入力線と64本の出力線が設けられ、各交点に1
個づつ、全体で4096個の半導体スイッチを備えてい
るので、入力されたデータの各ビットをどの出力線に出
力するかを自由に設定することができる。
【0049】レジスタ部51に転置制御データが転送さ
れ、初期転置処理IPのためのスイッチマトリクス部5
2の設定が完了すると、次いで、CPU10が、暗号化
すべき64ビットの平文データMを、暗号処理部40の
制御レジスタ41に入力する。制御レジスタ41に入力
された64ビットの平文データMは、データバス42、
制御バス43を介して入力データレジスタ44に転送さ
れる。入力データレジスタ44に転送された64ビット
の平文データMは、入力データレジスタ44の出力線に
接続された、プログラマブルなスイッチマトリクスアレ
イ50のスイッチマトリクス部52と、プログラマブル
なRAM(ランダムアクセスメモリ)60と、排他的論
理和演算回路70とに入力され、それぞれの処理結果
が、出力データセレクタ46の入力端子X、Y、および
Zに出力される。ここで、制御レジスタ41にあらかじ
め設定された、演算結果選択データによって、出力デー
タセレクタ46は、転置処理結果Xを選択する。その結
果、制御レジスタ41に入力された64ビットの平文デ
ータMに対する、スイッチマトリクス部52での初期転
置処理IPの処理結果が、出力データセレクタ46から
出力され、データバス42を介して制御レジスト41に
その結果が設定される。同時に入力データレジスタ44
に初期転置処理IPの処理結果が転送される。
【0050】次に、制御レジスタ41に設定された初期
転置処理IPの結果は、CPU10が読み出しRAM2
0に記憶させる。このとき、64ビットの初期転置処理
IPの結果は、図4(a)に示すように、上位の32ビ
ットL0 と下位の32ビットR0 の2つに分割されて、
RAM20に記憶される。
【0051】次に、CPU10は、鍵コードKに基づい
てあらかじめ生成した系列鍵コードK1 〜K16を用いる
暗号化の主処理を実行する。この主処理は、図4(b)
に示すように、初期転置処理IPを施して得られた結果
の下位の32ビットR0 に対し、先ず、拡大転置処理E
を施し、その結果得られた48ビットのデータと、あら
かじめ生成しておいた48ビットの系列鍵コードK1 と
の排他的論路和を演算し、次に、S1 〜S8 で示される
選択換字処理を施して、32ビットの換字データを得
る。さらに、転置処理Pを施し、その結果と、あらかじ
めらRAM20に記憶しておいた上位の32ビットL0
との排他的論理和を演算し、32ビットのR1 を得てR
AM20に記憶する。一方、あらかじめRAM20に記
憶しておいた下位の32ビットR0 は、次の暗号化処理
の上位32ビットL1 に変換してRAM20に記憶して
おく。次に、前記R1 、L1 とあらかじめ生成しておい
た系列鍵コードK2 を用いて前記と同様な手順でR2 、
L2 を演算する。これらの処理を16回繰り返し、各3
2ビットのR16とL16を得るのが暗号化の主処理であ
る。
【0052】図3に示す暗号処理装置では、上記主処理
を以下の手順で実行する。先ず、拡大転置処理Eを実行
するために、ROM30から転置制御データを読み出
し、制御レジスタ41に入力する。前記転置制御データ
は、データバス42、および制御バス43を介して、制
御レジスタ41からプログラマブルなスイッチマトリク
スアレイ50に設けてあるレジスタ部51に転送され
る。レジスタ部51に転送された転置制御データによっ
て、スイッチマトリクス部52の入力線と出力線との各
交点に設けられた半導体スイッチが接、断され、入力ビ
ットと出力ビットの関係が設定される。図6に、拡大転
置処理Eにおけるスイッチマトリクス部52の入力ビッ
トと出力ビットの関係を示す。図6の縦軸は入力ビッ
ト、横軸は出力ビットを示し、例えば、入力データの第
1ビットは、出力線の第2ビットと第48ビットの出力
線に出力される。以下同様に、拡大転置処理Eにおけ
る、縦軸に示す32ビットの入力データが、横軸に示す
48ビットのどの出力線に出力されるかを示している。
すなわち32ビットの入力データが、48ビットに拡
大、つまり、特定の入力ビットが複数の出力線に出力さ
れるとともに、データのビット位置が攪拌される。
【0053】上記の如くスイッチマトリクス部52の設
定を終えると、CPU10は、RAM20に記憶してお
いた32ビットのR0 を読み出し、制御レジスタ41に
入力する。制御レジスタ41に入力されたR0 は、デー
タバス42、制御バス43を介して入力データレジスタ
44に転送される。入力データレジスタ44に転送され
た32ビットのR0 は、入力データレジスタ44の出力
線に接続された、プログラマブルなスイッチマトリクス
アレイ50のスイッチマトリクス部52と、プログラマ
ブルなRAM(ランダムアクセスメモリ)60と、排他
的論理和演算回路70に入力され、それぞれの処理結果
が、出力データセレクタ46の入力端子X、Y、および
Zに出力される。ここで、制御レジスタ41にあらかじ
め設定された、演算結果選択データによって、出力デー
タセレクタ46は、転置処理結果Xを選択する。その結
果、制御レジスタ41に入力された32ビットのR0 に
対する、スイッチマトリクス部52での拡大転置処理E
の処理結果が、出力データセレクタ46から出力され、
データバス42を介して制御レジスト41に、その処理
結果が設定され、同時に入力データレジスタ44へ拡大
転置処理Eの処理結果が転送される。
【0054】次に、CPU10は、64ビットの鍵コー
ドKに基づいてあらかじめ生成した各48ビットの系列
鍵コードK1 〜K16のうち、第1の系列鍵コードK1 を
RAM20から読み出し、制御レジスタ41を介して第
2入力レジスタ45に設定する。その結果、排他的論理
和演算回路70において、入力データレジスタ44に転
送されていた転置処理Eの処理結果と第1の系列鍵コー
ドK1 との排他的論理和演算が実行され、出力データセ
レクタ46の入力端子Zに48ビットの演算結果が出力
される。出力データセレクタ46では、制御レジスタ4
1の制御バス43によって、入力端子Zが選択され、出
力データセレクタ46の出力端子に、前記排他的論理和
の演算結果が出力される。この48ビットの演算結果
は、制御レジスタ41に設定されるとともに、入力デー
タレジスタ44へ転送される。次いで、制御レジスタ4
1に設定された排他的論理和の演算結果を、CPU10
が読み出し、RAM20に記憶する。
【0055】次に、CPU10は、図4(b)に示す換
字処理Sを実行する。換字処理Sは、48ビットの入力
データに対して32ビットの攪拌された出力データを得
るものであり、具体的には、入力される48ビットのデ
ータを6ビットづつ8ブロックに分割し、S1 〜S8 か
らなる選択換字処理にて、前記6ビットのデータをそれ
ぞれ4ビットの別のデータに変換し、4ビット×8ブロ
ック=32ビットのデータを得る。この換字処理は、図
3に示すプログラマブルなRAM(ランダムアクセスメ
モリ)60を用いて実行する処理である。
【0056】本実施例の暗号処理装置では、前記換字処
理Sを次の手順で実行する。すなわち、先ず、RAM6
0に、あらかじめ決められた換字制御データを書き込
み、次いで、入力データレジスタ44に6ビットの換字
元データを設定する。前記入力データレジスタ44の出
力端子は、RAM60のアドレス制御線に接続してあ
り、入力データレジスタ44に設定された6ビットの換
字元データは、RAM60のアドレス入力線に印加され
る。RAM60には、6ビットのアドレス入力線の対応
する番地に所定の換字データが書き込まれており、この
換字データがRAM60のデータ出力線に出力され、出
力データセレクタ46の入力端子Yに入力される。な
お、本実施例の暗号処理部40に設けたRAM60は、
8ビットのアドレス入力線と8ビットのデータ出力線を
備えているが、DESの換字処理Sを実行する場合は、
アドレス入力線の下位の6ビット、およびデータ出力線
の下位の4ビットが有効な信号となる。
【0057】例えば、前述した排他的論理和の演算結果
を換字処理する場合は、CPU10が、先ず、RAM2
0に格納した48ビットのデータを8ブロックに分割
し、それぞれ6ビットの換字元データを生成する。次
に、選択換字処理S1 に用いる換字制御データをROM
30から読み出して、暗号処理部40の制御レジスタ4
1へ入力する。制御レジスタ41へ入力された換字制御
データは、データバス42、および制御バス43を介し
て、RAM60に転送される。次いで、先に生成した6
ビットの換字元データを、RAM20から読み出して、
暗号処理部40の制御レジスタ41へ入力する。制御レ
ジスタ41へ入力された換字元データは、データバス4
2、および制御バス43を介して、入力データレジスタ
44に転送される。
【0058】この処理の結果、6ビットの換字元データ
に対応する換字データがRAM60から出力され、出力
データセレクタ46の入力端子Yに入力される。ここ
で、制御レジスタ41にあらかじめ設定された、演算結
果選択データによって、出力データセレクタ46は、換
字処理結果Yを選択する。その結果、制御レジスタ41
に入力された6ビットの換字元データに対する、4ビッ
トの換字データが、出力データセレクタ46から出力さ
れ、データバス42を介して制御レジスト41に、その
処理結果が設定される。次いで、CPU10が、制御レ
ジスト41に設定された、4ビットの換字データを読み
出しRAM20に一旦格納する。
【0059】CPU10は、選択換字処理S1 〜S8 に
対応する前記処理を8回繰り返し、あらかじめ8ブロッ
クに分割した、各6ビットの換字元データに対する、そ
れぞれ4ビットの換字データを得る。次に、CPU10
は、得られた4ビットの換字データを合成して32ビッ
トの換字データを得、RAM20に記憶しておく。
【0060】次に、CPU10は、図4(b)に示す転
置処理Pを実行する。転置処理Pは、32ビットの入力
データに対して32ビットの攪拌された出力データを得
るものである。この処理は、前述した拡大転置処理Eと
同様に、暗号処理部40のプログラマブルなスイッチマ
トリクスアレイ50にて実行される処理である。このと
き、レジスタ部51に設定される転置制御データによっ
て制御される、スイッチマトリクス部52の入力線と出
力線の接、断状態を図7に示す。図7の例では、入力さ
れる第1ビットのデータが出力線の第9ビットに、また
入力ビットの第2ビットが出力線の第17ビットに出力
されることを示し、以下同様に、縦軸に示す32ビット
の入力データが、横軸に示す32ビットのどの出力線に
出力されるかを示している。
【0061】転置処理Pにおいては、先ず、CPU10
がROM30から転置制御データを読み出し、暗号処理
部40の制御レジスタ41に前記転置制御データを入力
する。制御レジスタ41に入力された転置制御データ
は、プログラマブルなスイッチマトリクスアレイ50の
レジスタ部51に転送され、前記レジスタ部51の出力
データによって、スイッチマトリクス部52の入力線と
出力線の各交点に設けられた半導体スイッチが接、断さ
れる。次に、CPU10がRAM20に格納しておい
た、換字処理Sを施した32ビットの換字データを読み
出し、暗号処理部40の制御レジスタ41に前記換字デ
ータを入力する。制御レジスタ41に入力された換字デ
ータは、データバス42、および制御バス43を介し
て、制御レジスタ41から入力データレジスタ44に転
送される。
【0062】入力データレジスタ44に転送された32
ビットの換字データは、入力データレジスタ44の出力
線に接続された、プログラマブルなスイッチマトリクス
アレイ50のスイッチマトリクス部52と、プログラマ
ブルなRAM(ランダムアクセスメモリ)60と、排他
的論理和演算回路70に入力され、それぞれの処理結果
が、出力データセレクタ46の入力端子X、Y、および
Zに出力される。ここで、制御レジスタ41にあらかじ
め設定された、演算結果選択データによって、出力デー
タセレクタ46は、転置処理結果Xを選択する。その結
果、制御レジスタ41に入力された32ビットの換字デ
ータに対する、スイッチマトリクス部52での転置処理
Pの処理結果が、出力データセレクタ46から出力さ
れ、データバス42を介して制御レジスト41に、その
処理結果が設定され、同時に入力データレジスタ44へ
転置処理Pの処理結果が転送される。
【0063】次に、CPU10は、図4(b)に示すよ
うに、転置処理Pの処理結果と、あらかじめRAM20
に格納しておいた32ビットのL0 との排他的論理和を
演算し、32ビットの暗号化データR1 を得る。前記排
他的論理和の演算処理は、拡大転置処理Eの処理結果
と、系列鍵コードK1 との排他的論理和の演算処理と同
様の手順で実行される。この排他的論理和の演算処理
は、暗号処理部40の排他的論理和演算回路70で行わ
れる処理である。先ず、CPU10は、RAM20に格
納しておいた32ビットのL0 を読み出し、制御レジス
タ41を介して、入力データレジスタ45に32ビット
のL0 を設定する。
【0064】その結果、排他的論理和演算回路70にお
いて、入力データレジスタ44に転送されていた転置処
理Pの処理結果と、入力データレジスタ45に転送され
た32ビットのL0 との排他的論理和演算が実行され、
出力データセレクタ46の入力端子Zに32ビットの演
算結果R1 が出力される。出力データセレクタ46で
は、制御レジスタ41の制御バス43によって、入力端
子Zが選択され、出力データセレクタ46の出力端子
に、前記排他的論理和の演算結果R1 が出力される。こ
の32ビットの演算結果は、制御レジスタ41に設定さ
れるとともに、入力データレジスタ44へ転送される。
次いで、制御レジスタ41に設定された排他的論理和の
演算結果R1 を、CPU10が読み出し、RAM20に
記憶する。さらに、RAM20に記憶されていた32ビ
ットのR0 を、次の暗号化処理のデータL1 として記憶
しておく。
【0065】以上で、図4(b)に示した暗号化の主処
理を1回実行したことになる。DESの暗号化処理で
は、上記で得られた32ビットのR1 、L1 、およびあ
らかじめ生成した48ビットの系列鍵コードK2 に基づ
いて、上記と同様な手順で、32ビットのR2 、L2 を
得る。同様に、R2 、L2 、およびK3 を用いてR3 、
L3 を得る。DESでは、図4(b)に示した暗号化の
主処理において、上述した処理を16回繰り返し、暗号
化データR16およびL16を得る。
【0066】最後に、CPU10は、上記主処理で得ら
れた各32ビットのR16およびL16を用いて、図4
(c)に示す逆初期転置処理IP-1を実行し、暗号文デ
ータCを得る。この処理は、前述した各種転置処理と同
様に、暗号処理部40のプログラマブルなスイッチマト
リクスアレイ50にて行われる処理である。図7は、逆
初期転置処理IP-1におけるスイッチマトリック部52
の入力ビットと出力ビットの関係を示す。縦軸は入力デ
ータのビット位置を示し、横軸は出力データのビット位
置を示している。例えば、入力データの第1ビットは、
出力線の第58ビットに出力される。また入力データの
第2ビットは、出力線の第50ビットに出力される。初
期転置処理IP-1では、前記主処理で得られた各32ビ
ットのR16およびL16を合成し、64ビットのデータを
構成し、このデータをスイッチマトリック部52に入力
して、攪拌された64ビットの暗号文データCを得る。
【0067】この逆初期転置処理IP-1では、CPU1
0は、先ず、ROM30に記憶されている転置制御デー
タを読み出し、暗号処理部40の制御レジスタ41に前
記転置制御データを入力する。制御レジスタ41に入力
された転置制御データは、プログラマブルなスイッチマ
トリクスアレイ50のレジスタ部51に転送され、前記
レジスタ部51の出力データによって、スイッチマトリ
クス部52の入力線と出力線の各交点に設けられた半導
体スイッチが接、断される。次に、CPU10がRAM
20に格納しておいた、各32ビットの暗号化データR
16およびL16を読み出し、これを合成して64ビットの
暗号化データを構成する。次いで、この64ビットの暗
号化データを、暗号処理部40の制御レジスタ41に入
力する。制御レジスタ41に入力された暗号化データ
は、データバス42、および制御バス43を介して、制
御レジスタ41から入力データレジスタ44に転送され
る。
【0068】入力データレジスタ44に転送された64
ビットの暗号化データは、入力データレジスタ44の出
力線に接続された、プログラマブルなスイッチマトリク
スアレイ50のスイッチマトリクス部52と、プログラ
マブルなRAM(ランダムアクセスメモリ)60と、排
他的論理和演算回路70とに入力され、それぞれの処理
結果が、出力データセレクタ46の入力端子X、Y、お
よびZに出力される。ここで、制御レジスタ41にあら
かじめ設定された、演算結果選択データによって、出力
データセレクタ46は、転置処理結果Xを選択する。そ
の結果、制御レジスタ41に入力された64ビットの暗
号化データに対する、スイッチマトリクス部52での逆
初期転置処理IP-1の処理結果が、出力データセレクタ
46から出力され、データバス42を介して制御レジス
ト41にその結果が設定される。CPU10は、制御レ
ジスト41に設定された逆初期転置処理IP-1の処理結
果を読み出し、暗号文データCを得る。
【0069】以上に述べた暗号処理装置の一連の処理動
作によって、64ビットの平文データMに対するDES
による64ビットの暗号文データCを得ることができ
る。
【0070】なお、上記説明では、暗号化に用いる64
ビットの鍵コードKから、暗号化の主処理で用いる、各
48ビットで構成された16種類の系列鍵コードK1 〜
K16の生成については、詳しく触れなかったが、図4に
示した64ビットの平文データMの暗号化処理を行う前
に、暗号処理部40のプログラマブルなスイッチマトリ
クスアレイ50を用いて、縮約転置処理PC1を実行
し、さらに、実質的に左巡回シフトと同等な転置処理、
および縮約転置処理PC2を繰り返し実行することによ
って、16種類の系列鍵コードK1 〜K16を得ることが
できる。それを一旦RAM20に格納しておき、平文デ
ータMの暗号化処理を実行するとき、RAM20から、
順次系列鍵コードK1 〜K16を読み出して用いることに
より、DESの暗号化を実現できる。
【0071】また、上記実施例では、64ビットで構成
された1つの平文データを64ビットの暗号文に変換す
る場合について説明したが、本実施例の暗号処理装置で
は、複数の平文データを同時並行処理で、それぞれ暗号
文データに変換することができる。もちろん、暗号処理
に用いる鍵コードは、同一であることが前提である。例
えば、複数の平文データM1〜Mnを、複数の暗号文デ
ータC1〜Cnに変換する場合の暗号処理装置の動作は
以下のようになる。
【0072】先ず、64ビットの鍵コードKから生成さ
れた、各48ビットで構成された16種類の系列鍵コー
ドK1 〜K16が、図3に示す暗号処理装置のRAM20
にあらかじめ格納されているものとする。また、平文デ
ータM1〜MnもRAM20にあらかじめ格納されてい
るものとする。さらに、暗号処理装置のROM30に
は、初期転置処理IP、拡大転置処理E、転置処理P、
逆処理転置処理IP-1などの各転置制御データ、および
選択換字処理S1 〜S8 の各換字制御データが格納され
ているものとする。
【0073】複数の平文データM1〜Mnを、複数の暗
号文データC1〜Cnに変換する場合、先ず、CPU1
0が、ROM30に格納されている初期転置処理IPの
転置制御データを読み出し、暗号処理部40の制御レジ
スタ41に入力する。入力された転置制御データはレジ
スタ部51に転送され、初期転置処理IPのためのスイ
ッチマトリクス部52の設定が完了する。
【0074】次いで、CPU10が、暗号化すべき64
ビットの平文データMx(1≦x≦n)を、順次、暗号
処理部40の制御レジスタ41に入力する。制御レジス
タ41に入力された64ビットの平文データMxは、デ
ータバス42、制御バス43を介して入力データレジス
タ44に転送される。入力データレジスタ44に転送さ
れた64ビットの平文データMxは、入力データレジス
タ44の出力線に接続された、プログラマブルなスイッ
チマトリクスアレイ50のスイッチマトリクス部52に
入力され、初期転置処理IPの処理結果が、出力データ
セレクタ46の入力端子Xに順次出力される。
【0075】ここで、制御レジスタ41にあらかじめ設
定された、演算結果選択データによって、出力データセ
レクタ46は、転置処理結果Xを選択する。その結果、
制御レジスタ41に入力された64ビットの平文データ
Mxに対する、スイッチマトリクス部52での初期転置
処理IPの処理結果が、出力データセレクタ46から順
次出力され、データバス42を介して制御レジスト41
にその結果が設定される。
【0076】この間、CPU10は、平文データMx
(1≦x≦n)を、順次、暗号処理部40の制御レジス
タ41に入力する都度、制御レジスト41に設定される
初期転置処理IPの処理結果を読み出しRAM20に格
納する。つまり、初期転置処理IPを実行するための転
置制御データを、最初に一度だけ、暗号処理部40のレ
ジスタ部51に転送するだけで、複数の平文データM1
〜Mnに対する初期転置処理IPを連続して実行するこ
とができる。
【0077】図4(b)に示した暗号処理の主処理にお
いても、上記初期転置処理IPと同様に、例えば、拡大
転置処理Eを実行する場合は、最初に、転置制御データ
を暗号処理部40のレジスタ部51に転送し、拡大転置
処理Eのためのスイッチマトリクス部52の設定を行
う。次に、複数の平文データM1〜Mnに対応する32
ビットのR0X(1≦x≦n)を、RAM20から順次読
み出し、暗号処理部40の制御レジスタ41を介して入
力データレジスタ44に転送する都度、スイッチマトリ
クス部52における拡大転置処理Eの処理結果を、出力
データセレクタ46および制御レジスタ41を介して読
み出し、RAM20に順次格納する。
【0078】以下同様に、図4(b)に示す系列鍵コー
ドKn (1≦n≦16)との排他的論理和演算を実行す
る場合は、RAM20にあらかじめ格納してある系列鍵
コードKn を読み出して、暗号処理部40の制御レジス
タ41を介して入力データレジスタ45に転送する。次
に、複数の平文データM1〜Mnに対応する48ビット
の拡大転置処理Eの処理結果を、RAM20から順次読
み出し、暗号処理部40の制御レジスタ41を介して入
力データレジスタ44に転送する都度、排他的論理和演
算回路70による演算結果を、出力データセレクタ46
および制御レジスタ41を介して読み出し、RAM20
に順次格納する。
【0079】また、同様に、図4(b)に示す選択換字
処理S1 〜S8 を実行する場合は、先ず最初に、ROM
30に格納してある換字制御データを読み出し、暗号処
理部40の制御レジスタ41を介して換字処理用のRA
M60に転送する。次に、複数の平文データM1〜Mn
に対応する48ビットの排他的論理和の演算結果を、そ
れぞれ8ブロックに分割した各6ビットの換字元データ
を、RAM20から順次読み出し、暗号処理部40の制
御レジスタ41を介して入力データレジスタ44に転送
する。次いで、換字処理用のRAM60にて得られた換
字データを、出力データセレクタ46および制御レジス
タ41を介して読み出し、RAM20に順次格納する。
【0080】上記と同様な手順で、転置処理Pや、転置
処理Pの処理結果と暗号化データの上位32ビットLn-
1 (1≦n≦16)との排他的論理和演算、および逆初
期転置処理IP-1を実行することによって、同時並行処
理で複数の平文データM1〜Mnから暗号文データC1
〜Cnを得ることができる。すなわち、前述の動作手順
に従えば、図3に示すような簡単な構造の暗号処理部で
あっても、転置制御データの書き換え処理や、換字制御
データの書き換え回数を必要最小限にとどめることがで
き、長文のデータの暗号処理を、実用的に十分な処理速
度で実行することができる。
【0081】以上の説明において、本実施例の暗号処理
装置における、平文データを暗号文データに変換する暗
号化処理について例示したが、暗号文データを解読文デ
ータに変換する復号化処理にも、本実施例の暗号処理装
置を適用できるものであることは、容易に推量できるの
で、復号化処理に関する詳細な説明は省略する。
【0082】(他の実施例)なお、上記実施例の暗号処
理装置では、ROMに組み込まれた暗号処理制御プログ
ラムと暗号処理制御データとを用いて、CPU10で示
される演算制御装置を駆動し、転置処理手段および換字
処理手段を備えた暗号処理部を制御したが、前記暗号処
理プログラムや暗号処理制御データを固定磁気ディスク
や、フロッピディスクなどの記憶媒体に記録しておき、
それをRAMに読み出して暗号処理を実行するようにし
てもよい。
【0083】また、本実施例の暗号処理部は、転置処理
手段を64ビット入力、64ビット出力として構成した
が、32ビット入出力や、128ビット入出力、256
ビット入出力に変更することもできる。同様に換字処理
手段を8ビット入力、8ビット出力として構成したが、
処理ビット単位を何等制約するものではない。例えば、
6ビット入力、4ビット出力で構成したり、あるいは1
2ビット入力、8ビット出力で構成し、選択換字処理S
1とS2、S3とS4、S5とS6、またはS7とS8
を、それぞれ同時に処理するように構成してもよい。さ
らに、本実施例では、暗号処理部に排他的論理和演算回
路を設けたが、これは、CPU10で示した演算制御装
置自身の有する排他的論理和演算命令を用いて演算処理
するように構成してもよい。
【0084】なお、以上の説明では、DESの暗号処理
の場合について説明したが、FEALの暗号処理も本実
施例の暗号処理装置を用いて実行することができる。例
えば、FEALでは、左巡回シフトや剰余演算が行われ
るが、巡回シフトは実質的に転置処理手段を用いること
で実現することができ、また、剰余演算は実質的に換字
処理で代用演算することができる。また、DESの暗号
処理における転置処理や換字処理の制御データを、暗号
処理部の外部に設けたROMに記憶させる構成にしてあ
るので、本実施例で示した転置制御データや換字制御デ
ータを変更することも容易であり、すなわち、本発明の
暗号処理装置は多様な暗号方式に対応可能である。
【0085】
【発明の効果】以上詳細に説明した如く本発明の暗号処
理装置は、請求項1に示すように、任意の転置処理を実
行するための転置処理手段と、任意の換字処理を実行す
るための換字処理手段と、前記転置処理手段による処理
結果、および前記換字処理手段による処理結果を記憶す
る記憶手段と、前記記憶手段の処理結果を用いて、転置
処理、または換字処理を反復する手段を備えているの
で、DESやFEALなどの秘密鍵方式の慣用暗号に対
する、暗号化処理や復号化処理を、簡便かつ、高速に実
行することができる。また、暗号処理回路は簡単な構成
なので、マイクロプロセッサやROM、RAMなどとと
もに集積化し、ワンチップ化するのが容易である。
【0086】また、本発明の暗号処理装置は、請求項2
に示すように、請求項1の発明に加えて、前記転置処理
手段は、再書き込み可能なスイッチマトリクスで構成さ
れているので、各種の転置処理を1組の転置処理手段に
て実行することができ、また、暗号処理回路を小型化
し、低コスト化を図ることができる。
【0087】さらに、本発明の暗号処理装置は、請求項
3に示すように、請求項1または請求項2の発明に加え
て、前記換字処理手段は、再書き込み可能なランダムア
クセスメモリで構成されているので、各種の換字処理を
1組の換字処理手段にて実行することができ、また、暗
号処理回路を小型化し、低コスト化を図ることができ
る。
【図面の簡単な説明】
【図1】 暗号処理装置の概略構成図である。
【図2】 暗号処理装置の全体構成図である。
【図3】 暗号処理部の詳細構成図である。
【図4】 暗号化処理のデータ処理工程図である。
【図5】 転置処理IPにおけるスイッチマトリクスの
状態図である。
【図6】 転置処理Eにおけるスイッチマトリクスの状
態図である。
【図7】 転置処理Pにおけるスイッチマトリクスの状
態図である。
【図8】 転置処理IP-1におけるスイッチマトリクス
の状態図である。
【図9】 換字処理のデータ変換例である。
【図10】 各種転置処理のビット位置変換例である。
【図11】 DESにおける暗号化処理のブロック図で
ある。
【図12】 DESにおける復号化処理のブロック図で
ある。
【図13】 DESにおける非線形関数のブロック図で
ある。
【符号の説明】
1 暗号処理装置 10 CPU(演算制御装置) 11 バス 12 データ入出力制御部 13 入力端子 14 出力端子 20 RAM 30 ROM 40 暗号処理部(CLU) 41 制御レジスタ 42 データバス 43 制御バス 44、45 入力データレジスタ 46 出力データセレクタ 50 プログラマブルスイッチマトリクスアレイ 51 レジスタ部 52 スイッチマトリクス部 60 プログラマブルランダムアクセスメモリ(RA
M) 70 排他的論理和演算回路 100 制御部 200 暗号処理部 201 転置処理手段 202 換字処理手段 203 入力データレジスタ 204 出力データセレクタ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 任意の転置処理を実行するための転置処
    理手段と、任意の換字処理を実行するための換字処理手
    段と、前記転置処理手段による処理結果、および前記換
    字処理手段による処理結果を記憶する記憶手段と、前記
    記憶手段の処理結果を用いて、転置処理、または換字処
    理を反復する手段を備えていることを特徴とする暗号処
    理装置。
  2. 【請求項2】 前記転置処理手段は、再書き込み可能な
    スイッチマトリクスで構成されていることを特徴とする
    請求項1に記載の暗号処理装置。
  3. 【請求項3】 前記換字処理手段は、再書き込み可能な
    ランダムアクセスメモリで構成されていることを特徴と
    する請求項1に記載の暗号処理装置。
JP10024075A 1998-01-22 1998-01-22 暗号処理装置 Withdrawn JPH11212451A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10024075A JPH11212451A (ja) 1998-01-22 1998-01-22 暗号処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10024075A JPH11212451A (ja) 1998-01-22 1998-01-22 暗号処理装置

Publications (1)

Publication Number Publication Date
JPH11212451A true JPH11212451A (ja) 1999-08-06

Family

ID=12128314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10024075A Withdrawn JPH11212451A (ja) 1998-01-22 1998-01-22 暗号処理装置

Country Status (1)

Country Link
JP (1) JPH11212451A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003037482A (ja) * 2001-01-23 2003-02-07 Hitachi Ltd 疑似乱数生成装置またはそれを用いた暗号復号処理装置
US7283628B2 (en) 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치

Similar Documents

Publication Publication Date Title
JP3029381B2 (ja) データ変換装置
EP0839418B1 (en) Cryptographic method and apparatus for non-linearly merging a data block and a key
US7672455B2 (en) Method and apparatus for data encryption
US7801307B2 (en) Method of symmetric key data encryption
US6189095B1 (en) Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JPH1055135A (ja) プログラマブルな論理素子/装置を用いた暗号化/復号化装置および方法
JP2006317802A (ja) 擬似乱数発生システム、暗号化システム及び復号化システム
KR20050078271A (ko) 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
US20030086564A1 (en) Method and apparatus for cipher encryption and decryption using an s-box
JPH10240500A (ja) 乱数生成装置及び方法、暗号化装置及び方法、復号装置及び方法、並びにストリーム暗号システム
JP2950485B2 (ja) ストリーム暗号処理装置
JPH0946332A (ja) Rsa型手順により暗号化された通信文用通信システム
JP3547474B2 (ja) 暗号演算回路
KR20030051111A (ko) AES Rijndael(라인달) 암호 알고리듬의 하드웨어 구현을위한 라운드 처리부 회로 및 온라인 라운드 키 생성 회로
JPH11212451A (ja) 暗号処理装置
JP5207153B2 (ja) 擬似乱数発生システム
Kareem et al. A new multi-level key block cypher based on the Blowfish algorithm
JP3389210B2 (ja) 拡大鍵生成装置、暗復号装置、拡大鍵生成方法、及び記憶媒体
JPH09269727A (ja) 暗号化方法および暗号化装置
KR100350207B1 (ko) 디지털 데이터의 엘-비트 입력 블록들을 엘-비트 출력비트들로 암호 변환하는 방법
JPH1152850A (ja) 暗号変換方法および装置
JPH10153954A (ja) 暗号装置
JPH09251267A (ja) 暗号化装置及び暗号化方法
JPH10303881A (ja) 暗号化復号化装置および方法
JP5268011B2 (ja) 暗号化システム及び復号化システム

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20050405