JP2003288012A - 暗号装置及びデータ転送制御装置 - Google Patents

暗号装置及びデータ転送制御装置

Info

Publication number
JP2003288012A
JP2003288012A JP2002092090A JP2002092090A JP2003288012A JP 2003288012 A JP2003288012 A JP 2003288012A JP 2002092090 A JP2002092090 A JP 2002092090A JP 2002092090 A JP2002092090 A JP 2002092090A JP 2003288012 A JP2003288012 A JP 2003288012A
Authority
JP
Japan
Prior art keywords
data
processing
encryption
circuit
given
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.)
Pending
Application number
JP2002092090A
Other languages
English (en)
Inventor
Tomonori Kumagai
友則 熊谷
Taro Tanaka
太郎 田中
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2002092090A priority Critical patent/JP2003288012A/ja
Publication of JP2003288012A publication Critical patent/JP2003288012A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 処理対象のデータに応じて、最適な暗号強度
と処理速度とを得ることができる暗号装置及びデータ転
送制御装置を提供する。 【解決手段】 暗号装置130は、処理切替信号生成回
路110、処理回路120、データ制御回路132、カ
ウンタ回路134を含む。処理切替信号生成回路110
は、所与の切替信号に基づいて処理切替信号を生成す
る。処理回路120は、データブロック単位で入力され
る入力データに対して、共通鍵暗号化方式の暗号処理を
a(aは正の整数)回行ったa回暗号処理データ又は共
通鍵暗号化方式の暗号処理をb(bはaより大きい正の
整数)回行ったb回暗号処理データを生成し、処理切替
信号に基づいていずれかを出力する。切替信号は、所与
の記憶装置が所与のアクセス単位で前記変換データの書
き込み又は読み出しを行う場合において、アクセス単位
の記憶位置情報に基づいて生成される。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、暗号装置及びデー
タ転送制御装置に関する。
【0002】
【背景技術及び発明が解決しようとする課題】近年、映
像や音楽等各種データのディジタル化が進み、映像等の
データをハードディスク装置等の大容量記憶媒体に保存
して利用することができる。そのため、ハードディスク
装置等へのアクセスを制御するインタフェースIC(In
tegrated Circuit)(広義には、データ転送制御装置)
に対し、データの機密保護の要求が高まっている。
【0003】インタフェースICにおけるデータの機密
保護は、暗号化により実現することができる。この場
合、インタフェースICに採用する暗号方式は、その安
全性に加え、処理の高速化や低コスト化が重要な要素と
なる。
【0004】これまで金融業界等の分野で、共通鍵暗号
化方式が幅広く用いられている。共通鍵暗号化方式は、
暗号化と復号化において同一の鍵を用いる。このような
共通鍵暗号化方式の中でも、DES(Data Encryption
Standard)は、1977年に米国情報処理標準規格(FE
DERAL INFORMATION PROCESSING STANDARDS PUBLICATIO
N:FIPS−PUB)46−3として規定され、最も
広く利用されている方式の1つである。
【0005】しかしながら、近年の情報処理能力の飛躍
的な向上により、DESの暗号強度が、従来ほど強固な
ものではなくなっている。このため、DESに代えてト
リプルDESが利用されることがある。
【0006】以下では、DESとトリプルDESとを区
別するために、DESをSDES(Single DES)、トリ
プルDESをTDES(Triple DES)という。
【0007】TDESは、SDESのアルゴリズムを3
回繰り返す暗号化方式であり、SDESのアルゴリズム
を流用することができる。更に、暗号鍵の鍵長を拡張す
るのと同様の効果を得ることができ、比較的容易に暗号
強度を高めることができる。
【0008】しかしながら、SDES単独の暗号化方式
では十分な暗号強度を維持することができず、TDES
単独の暗号化方式では処理を高速化することができな
い。一方、SDESとTDESを混在させた場合であっ
ても、処理対象のデータに応じて暗号化方式が固定化さ
れていると、最適な処理速度と暗号強度とを得ることが
難しい。したがって、これら暗号化方式を適宜切り替え
られることは、最適な暗号強度と処理速度とを得ること
ができる点で望ましい。
【0009】本発明は、以上のような技術的課題に鑑み
てなされたものであり、その目的とするところは、処理
対象のデータに応じて、最適な暗号強度と処理速度とを
得ることができる暗号装置及びデータ転送制御装置を提
供することにある。
【0010】
【課題を解決するための手段】上記課題を解決するため
に本発明は、所与のデータブロック単位の入力データに
対し、共通鍵暗号化方式の暗号処理を行って変換データ
を生成する暗号装置であって、所与の処理切替信号を生
成する処理切替信号生成回路と、前記入力データに対し
て前記暗号処理をa(aは正の整数)又はb(bはaよ
り大きい正の整数)回行ってa回暗号処理データ又はb
回暗号処理データを生成し、前記所与の処理切替信号に
基づいて前記a回暗号処理データ又は前記b回暗号処理
データを出力する処理回路とを含み、前記処理回路は、
前記所与の処理切替信号に基づく高速処理モードでは、
前記a回暗号処理データを前記変換データとして出力
し、前記所与の処理切替信号に基づく低速処理モードで
は、前記b回暗号処理データを前記変換データとして出
力する暗号装置に関係する。
【0011】更に望ましくは、前記所与の処理切替信号
は、所与の記憶装置が所与のアクセス単位で前記変換デ
ータの書き込み又は読み出しを行う場合において、アク
セス単位の記憶位置情報に基づいて生成されてもよい。
【0012】更にまた望ましくは、前記所与の記憶装置
のアクセス単位はセクタであり、前記アクセス単位の記
憶位置情報はセクタ番号であってもよい。
【0013】ここで記憶装置のアクセス単位としては、
セクタやメモリのワードラインなどがあり、記憶位置情
報としてはセクタ番号や、メモリのアドレスなどがあ
る。
【0014】本発明においては、共通鍵暗号化方式の暗
号処理を行って変換データを生成する場合において、該
暗号処理をa回繰り返して生成したa回暗号処理データ
と、該暗号処理をa回より多いb回繰り返して生成した
b回暗号処理データとを切り替えて出力するようにして
いる。その際、a回暗号処理データはb回暗号処理デー
タに比べてより高速な処理で生成することができるが、
その分b回暗号処理データに比べて暗号強度が低下す
る。そこで、少なくとも高速処理モードと低速処理モー
ドとを設け、高速処理が必要な場合には暗号強度を犠牲
にして高速に変換データを生成し、低速処理が必要な場
合にはより暗号強度を高めた変換データを生成するよう
にする。これにより、暗号強度と高速処理との最適化を
図ることができるようになる。
【0015】しかも、変換データが所与の記憶装置に対
して所与のアクセス単位でアクセスされる場合におい
て、アクセス単位の記憶位置情報に基づいて処理の切り
替えを行うようにしたので、該記憶位置情報によりどの
処理を行わせるかの設定を変更するだけで、記憶装置に
変換データを最適な速度と暗号強度を維持した状態でア
クセスすることができるようになる。
【0016】また該記憶位置情報と処理切替信号とを関
連付けることにより、変換データに対してどの暗号処理
が行われたかを特定することができ、復号処理も容易に
実現することができる。
【0017】また本発明に係る暗号装置は、複数のブロ
ックに分割されるセクタごとに、前記低速処理モード又
は前記高速処理モードを開始するブロック及び処理ブロ
ック数の少なくとも1つが任意に設定可能に構成されて
もよい。
【0018】本発明によれば、セクタを分割するブロッ
クごとに、暗号処理の方法を変更するため、鍵の特定を
より困難にすることができる。
【0019】また本発明に係る暗号装置は、所与のデー
タブロック単位の入力データに対し、共通鍵暗号化方式
の暗号処理を行って変換データを生成する暗号装置であ
って、所与の処理切替信号を生成する処理切替信号生成
回路と、前記入力データに対して前記暗号処理をa(a
は正の整数)又はb(bはaより大きい正の整数)回行
ってa回暗号処理データ又はb回暗号処理データを生成
し、前記所与の処理切替信号に基づいて前記a回暗号処
理データ又は前記b回暗号処理データを出力する処理回
路とを含み、前記処理回路は、前記所与の処理切替信号
に基づく高速処理モードでは、前記a回暗号処理データ
を前記変換データとして出力し、前記所与の処理切替信
号に基づく低速処理モードでは、前記所与の処理切替信
号に基づいて、前記b回暗号処理データを前記変換デー
タとして出力し、前記所与の処理切替信号は、装置固有
の識別情報に基づいて生成される暗号装置に関係する。
【0020】ここで装置固有の識別情報は、暗号装置固
有の識別情報(番号)であってもよいし、当該暗号装置
が含まれる装置固有の識別情報であってもよい。また当
該暗号装置が実現される回路の識別情報や、該回路が形
成されるウェハの識別情報(例えば製造ロット)などが
考えられる。
【0021】本発明によれば、装置ごとに高速処理モー
ドと低速処理モードとを切り替え制御を行うことができ
るので、鍵の特定をより困難にして暗号強度を高めるこ
とができる。また、セクタ番号やデータブロックのカウ
ント数と、該識別情報とに基づいて切り替え制御するこ
とで、更に鍵の特定をより困難にする一方、処理速度と
の最適化を容易に図ることができるようになる。
【0022】また本発明に係る暗号装置は、所与のデー
タブロック単位の入力データに対し、共通鍵暗号化方式
の暗号処理を行って変換データを生成する暗号装置であ
って、所与の処理切替信号を生成する処理切替信号生成
回路と、前記入力データに対して前記暗号処理をa(a
は正の整数)又はb(bはaより大きい正の整数)回行
ってa回暗号処理データ又はb回暗号処理データを生成
し、前記所与の処理切替信号に基づいて前記a回暗号処
理データ又は前記b回暗号処理データを出力する処理回
路とを含み、前記処理回路は、前記所与の処理切替信号
に基づく高速処理モードでは、前記a回暗号処理データ
を前記変換データとして出力し、前記所与の処理切替信
号に基づく低速処理モードでは、前記b回暗号処理デー
タを前記変換データとして出力し、前記所与の処理切替
信号は、前記データブロックのカウント数に基づいて生
成される暗号装置に関係する。
【0023】本発明においては、暗号処理の処理単位で
あるデータブロックの数をカウントし、そのカウント数
に応じて、高速処理モードと低速処理モードとを切り替
えるようにしている。したがって、カウント数に応じて
どちらの処理を選択するかの設定を変更するだけで、処
理速度と暗号強度との最適化を容易に図ることができる
ようになる。
【0024】また、データブロックごとに、いずれの暗
号処理が行われたかを容易に特定することができるの
で、該暗号処理で暗号化されたデータを復号化すること
もできる。
【0025】また本発明に係る暗号装置は、所与のデー
タブロック単位の入力データに対し、共通鍵暗号化方式
の暗号処理を行って変換データを生成する暗号装置であ
って、所与の処理切替信号を生成する処理切替信号生成
回路と、前記入力データに対して前記暗号処理をa(a
は正の整数)又はb(bはaより大きい正の整数)回行
ってa回暗号処理データ又はb回暗号処理データを生成
し、前記所与の処理切替信号に基づいて前記a回暗号処
理データ又は前記b回暗号処理データを出力する処理回
路とを含み、前記処理回路は、前記所与の処理切替信号
に基づく高速処理モードでは、前記a回暗号処理データ
を前記変換データとして出力し、前記所与の処理切替信
号に基づく低速処理モードでは、前記b回暗号処理デー
タを前記変換データとして出力し、前記所与の処理切替
信号は、前記入力データ又は前記変換データを記憶する
メモリの蓄積状態に応じて生成される暗号装置に関係す
る。
【0026】本発明によれば、暗号処理の処理対象であ
る入力データ、又は該暗号処理の処理結果である変換デ
ータを記憶するメモリの蓄積状況に応じて、処理を切り
替えるようにしたので、暗号強度と処理速度との最適化
を図ることが可能となる。
【0027】また本発明に係る暗号装置は、前記処理回
路は、第(n−1)(nは2以上の整数)のデータブロ
ックの演算データ、又は該第(n−1)のデータブロッ
クの次の第nのデータブロックの入力データに基づい
て、前記所与の暗号処理を行って第nの演算データを生
成する演算回路と、前記高速処理モードでは前記第nの
演算データを前記変換データとして出力し、前記低速処
理モードでは前記第nの演算データを前記演算回路に供
給する処理切替回路とを含むことができる。
【0028】本発明によれば、演算回路を流用するよう
にしたので、暗号処理と高速処理の最適化を、より小さ
い回路規模で実現することができる。
【0029】また本発明に係る暗号装置は、前記演算回
路は、所与の演算処理を複数回繰り返して前記所与の暗
号処理が行われる場合において、前記所与の演算処理を
1又は複数回行う第1〜第L(Lは2以上の整数)の暗
号処理回路を含み、第1のタイミングにおいて、前記第
k(1≦k≦L−1、kは整数)の暗号処理回路は、第
nのデータブロックについて処理すると共に、前記第
(k+1)の暗号処理回路は、第(n−1)のデータブ
ロックについて処理し、前記第1のタイミングの次の第
2のタイミングでは、前記第kの暗号処理回路は、第
(n+1)のデータブロックについて処理すると共に、
前記第(k+1)の暗号処理回路は、前記第1のタイミ
ングにおける前記第kの暗号処理回路の処理結果を用い
て処理することができる。
【0030】本発明によれば、暗号処理が、SDESの
ように所与の演算処理を複数繰り返す場合のいて、各演
算処理をパイプライン動作で処理させるようにしたの
で、暗号処理をより高速化することができる。
【0031】また本発明に係る暗号装置は、前記共通鍵
暗号化方式の暗号処理は、DESの暗号処理であり、前
記a回暗号処理データは、DESの暗号処理を1回行っ
た暗号処理データであり、前記b回暗号処理データは、
DESの暗号処理を3回繰り返し行った暗号処理データ
であってもよい。
【0032】本発明においては、SDESとTDESと
の切替制御を行うようにしたので、実績のある暗号強度
を維持しつつ、最適な処理速度を実現する暗号装置を提
供することができる。
【0033】また本発明に係る暗号装置は、前記暗号処
理に代えて、復号処理を行うことができる。
【0034】本発明によれば、データの復号処理におい
て、該データの暗号処理の暗号強度と処理速度との最適
化を図ることができる。
【0035】また本発明に係るデータ転送制御装置は、
メモリと、外部に接続された所与の記憶装置にアクセス
するためのインタフェース回路と、前記メモリと前記イ
ンタフェース回路との間で転送されるデータに対し、暗
号処理又は復号処理を行う上記のいずれか記載の暗号装
置とを含むことができる。
【0036】本発明によれば、暗号強度と処理速度との
最適化を実現したデータの転送を制御するデータ転送制
御装置を提供することができる。
【0037】
【発明の実施の形態】以下、本発明の好適な実施の形態
について図面を用いて詳細に説明する。なお、以下に説
明する実施の形態は、特許請求の範囲に記載された本発
明の内容を不当に限定するものではない。また以下で説
明される構成の全てが本発明の必須構成要件であるとは
限らない。
【0038】本実施形態に係る暗号装置は、入力データ
に対し、共通鍵暗号化方式により生成された鍵を用いた
複数段の演算処理を行って変換データを生成する。本実
施形態における暗号装置は、鍵の適用順序を切り替える
ことで、暗号処理及び復号処理を行うことができるよう
になっている。以下では、暗号装置の共通鍵暗号化方式
がDESである場合について説明する。
【0039】1. SDESの概要 まず、SDES(Single DES)の処理内容の概要につい
て説明する。
【0040】図1に、SDESによる暗号処理を行う暗
号装置の機能ブロック構成の概要を示す。
【0041】暗号装置10は、暗号処理部12と、鍵生
成処理部14とを含む。
【0042】暗号処理部12は、1データブロック当た
り64ビットの入力データ(平文)に対して、非線形変
換と転置処理等を16段繰り返し、変換データ(暗号
文)を出力する。鍵生成処理部14は、64ビットの共
通秘密鍵を用いて、暗号処理部12の各段の処理で使用
される48ビットの(サブ)鍵K1〜K16を生成する。
【0043】図2に、暗号処理部12の処理のフロー図
を示す。
【0044】暗号処理部12に、1データブロック単位
で64ビットの入力データMが入力されると、該入力デ
ータMに対し、初期転置(Initial Permutation:I
P)を行ってランダム化する(ステップS10)。初期
転置は、図3に示すように、入力ビット位置に応じて、
出力させるビット位置を変えて出力する。例えば、入力
ビットの第58ビットを出力の第1ビットに転置し、ま
た入力の第1ビットを出力の第40ビットに転置する。
【0045】初期転置が行われた初期転置データは、ビ
ット分割され、上位32ビットを第1段入力データ
0、下位32ビットを第1段入力データR0とする(ス
テップS11、S12)。
【0046】第1段入力データR0は、第1段の鍵K1
用いた非線形変換fにより非線形変換データf(R0
1)に変換される(ステップS20−1)。
【0047】図4に、非線形変換fの機能ブロック図を
示す。
【0048】ここでは、第i(1≦i≦16、iは整
数)段の非線形変換fの機能ブロック図を示している。
【0049】第i段入力データRi-1は、拡大転置
(E)により、拡大転置データERi-1に変換される
(ステップS50)。拡大転置(E)は、図5に示すよ
うに、所定のビットを重複させて、32ビットの第i段
入力データRi-1を48ビットの拡大転置データERi-1
に変換する。図5では、例えば入力の第1ビットを出力
の第2ビット及び第48ビットから出力させ、入力の第
32ビットを出力の第1ビット及び第47ビットから出
力させることを示している。
【0050】拡大転置データERi-1は、第i段用の鍵
iとの間で排他的論理和演算(XOR)が行われ(ス
テップS51)、それぞれ6ビットずつSBOX0〜7
に入力される。ここで、第i段用の鍵Kiは、図1に示
すように暗号処理部12に対応して設けられた鍵生成処
理部14により生成された第1段〜第16段の鍵K1
16のうちの第i段用のものである。
【0051】SBOX0〜7は、それぞれ入力された6
ビットに対して、圧縮換字変換を行う(ステップS52
−0〜S52−7)。
【0052】図6に、SBOX0において行われる圧縮
換字変換について説明するための図を示す。
【0053】SBOX0では、ロウ番号及びカラム番号
により4ビットデータが特定される。ロウ番号は、入力
される6ビットのうち最初(最も左端)の1ビットと最
後(最も右端)の1ビットとにより特定される。カラム
番号は、入力される6ビットのうち残りの4ビットによ
り特定される。そして、これらロウ番号及びカラム番号
により特定される4ビットデータを、入力された6ビッ
トに対応させて変換する。
【0054】例えば、拡大転置データERi-1と第i段
用の鍵Kiとの間で排他的論理和演算の結果が、6ビッ
トの「101000」とすると、ロウ番号は(10)2
であるため2行目が特定され、カラム番号は(010
0)2であるため4行目が特定される。したがって、S
BOX0に入力された6ビットの「101000」は、
4ビットの「1101(=13)」に変換される。
【0055】ここではSBOX0について説明したが、
SBOX1〜SBOX7についてもそれぞれロウ番号及
びカラム番号により同様の変換が行われる。
【0056】このようにしてSBOX0〜7から出力さ
れた4ビットの変換データは、転置処理(P)が行われ
る(ステップS53)。転置処理は、図7に示すよう
に、入力ビット位置に応じて、出力させるビット位置を
変えて出力する。例えば、入力ビットの第16ビットを
出力の第1ビットに転置し、また入力の第1ビットを出
力の第9ビットに転置する。
【0057】この転置処理(P)の結果、32ビットの
非線形変換データERi-1(=f(Ri-1,Ki))が生
成される。
【0058】図2において、第1段入力データR0に基
づいて生成された非線形変換データf(R0,K1)は、
第1段入力データL0との間で排他的論理和演算が行わ
れ(ステップS21−1)、その演算結果が第2段入力
データR1になる(ステップS22−1)。
【0059】一方、第2段入力データL1は、第1段入
力データR0になる(ステップS23−1)。
【0060】以上のように第1段入力データL0、R0
ら第2段入力データL1、R1が生成されるまでの処理を
SDESの暗号処理の第1段の処理(所与の演算処理)
とすると、同様の処理が第16段まで行われる。各段の
非線形変換においては、段ごとに適用される鍵が変更さ
れる。
【0061】その結果、第16段で生成された第16段
入力データL16、R16は、以下のようになる(ステップ
S23−16、S22−16)。
【0062】 L16=R15 ・・・(1) R16=L15(+)f(R15,K16) ・・・(2) ここで、(+)は排他的論理和演算であることを示す。
【0063】そして、最後に上位32ビットと下位32
ビットとを入れ替えて、入替データL16´を第16段入
力データR16にし(ステップS24)、入替データR16
´を第16段入力データL16にして(ステップS2
5)、64ビットデータとして最終転置(IP-1)を行
う(ステップS26)。
【0064】最終転置(IP-1)は初期転置(IP)に
対応しており、図8に示すように初期転置でビット位置
を入れ替えたデータを、元に戻す。例えば入力の第1ビ
ットを出力の第58ビットに転置し、また入力の第40
ビットを出力の第1ビットに転置する。
【0065】その結果、変換データPが生成される。
【0066】次に、このような暗号処理部12の各段
に、非線形変換を行うための鍵の生成フローについて説
明する。各段に供給される鍵は、鍵生成処理部14にお
いて生成される。
【0067】図9に、鍵生成処理部14の処理のフロー
図を示す。
【0068】鍵生成処理部14に、64ビットの共通秘
密鍵K0が入力されると、該共通秘密鍵K0に対し、選択
転置(PC−1)を行ってランダム化する(ステップS
60)。選択転置は、図10に示すように、入力ビット
位置に応じて、出力させるビット位置を変えて出力し、
64ビットの共通秘密鍵K0からパリティが除去された
56ビットの選択転置データを出力する。例えば、入力
の第57ビットを出力の第1ビットに転置し、また入力
の第1ビットを出力の第8ビットに転置する。
【0069】選択転置が行われた選択転置データは、ビ
ット分割され、上位28ビットを第1段入力データ
0、下位28ビットを第1段入力データD0とする(ス
テップS61、S62)。
【0070】第1段入力データC0は左方向に巡回シフ
トが行われて、第2段入力データC1となる(ステップ
S63−1、S64−1)。また、第1段入力データD
0は左方向に巡回シフトが行われて、第2段入力データ
1となる(ステップS65−1、S66−1)。ここ
で、巡回シフトを行うビット数は、図11に示すように
DESの処理段ごとに決められている。例えば、第1段
の場合は1ビット、第3段の場合は2ビットだけ、巡回
シフトが行われることを示している。
【0071】更に第1段では、巡回シフトされた結果生
成された第2段入力データC1、D1に対して圧縮転置
(PC−2)を行い(ステップS67−1)、第1段の
鍵K1が生成される。
【0072】圧縮転置(PC−2)では、それぞれ28
ビットの第2段入力データC1、D1からなる56ビット
のデータを48ビットのデータに変換する。この圧縮転
置は、図12に示すように、入力ビット位置に応じて、
出力させるビット位置を変えて出力する。例えば、入力
の第14ビットを出力の第1ビットに転置し、また入力
の第1ビットを出力の第5ビットに転置する。
【0073】この圧縮転置が行われた48ビットのデー
タが、第1段の鍵K1として、暗号処理部12の第1段
の非線形変換に用いられる。
【0074】以上のように第1段入力データC0、D0
ら第2段入力データC1、D1が生成されるまでの処理を
SDESの鍵生成の第1段の処理とすると、同様の処理
が第16段まで行われる。このように、各段において生
成された鍵K1〜K16は、暗号処理部12の暗号処理の
各段に適用される。
【0075】図13に、SDESによる復号処理を行う
復号装置の機能ブロック構成の概要を示す。
【0076】復号装置70は、復号処理部72と、鍵生
成処理部74とを含む。
【0077】復号処理部72は、1ブロック64ビット
の入力データ(暗号文)に対して、非線形変換と転置処
理等を16段繰り返し、変換データ(平文)を出力す
る。鍵生成処理部74は、64ビットの共通秘密鍵か
ら、復号処理部72の各段の処理で用いる48ビットの
(サブ)鍵K1〜K16を生成する。
【0078】復号処理部72は、上述の暗号処理部12
と逆の手順をとることで実現することができる。この場
合、復号処理部72の各段の鍵は、暗号処理とは逆に鍵
16、K15、・・・、K1の順に適用される。
【0079】鍵生成処理部74は、上述した鍵生成処理
部14の左巡回シフトを右巡回シフトに変更すること
で、各段ごとに鍵K16、K15、・・・、K1の順で生成
される。
【0080】このように復号処理は、各段の処理内容に
着目すれば、暗号処理の各段の処理内容と共通させるこ
とができる。本実施形態における暗号装置は、暗号処理
を行う回路を共通化し、該回路を用いて復号処理を行う
ように構成している。
【0081】2. 暗号化モード SDESでは、入力データとしての平文又は暗号文が複
数のブロックに分割され、ブロックデータ単位で暗号処
理又は復号処理が行われる。したがって、同じブロック
データの場合には、変換データも同じになる可能性があ
り、鍵が特定されやすくなる。そのため、SDESで
は、CBC(Cipher Block Chaining)モードやCFB
(Cipher FeedBack)モード等の種々の暗号化モードが
利用される。
【0082】図14に、CBCモードの暗号処理と復号
処理の機能ブロック図を示す。
【0083】暗号処理部80では、DES演算部82に
より、ブロックデータ単位に暗号処理が行われて変換デ
ータが生成される。DES演算部82において暗号処理
が行われる平文のj番目のデータブロックをMjとする
と、該データブロックMjと1つ前のデータブロックの
変換データCj-1との間で排他的論理和演算が行われ、
その演算結果がDES演算部82に入力される。DES
演算部82は、その演算結果について暗号処理を行って
変換データCjを生成する。変換データCjは暗号文とし
て出力されると共に、レジスタ84に保持される。平文
の次のデータブロックが入力されたときには、レジスタ
84に保持された前のブロックの変換データを用いて生
成された演算データがDES演算部82に入力される。
【0084】復号処理部90では、DES-1演算部92
により、ブロックデータ単位に復号処理が行われて変換
データ(復号データ、平文)が生成される。DES-1
算部92において復号処理が行われる暗号文のj番目の
データブロックをCjとすると、該データブロックCj
DES-1演算部92において復号化される。DES- 1
算部92で復号化された変換データに対して、1つ前の
データブロックの変換データCj-1との間で排他的論理
和演算を行った演算結果が、変換データ(復号データ)
jとなる。変換データCjは、暗号文として復号処理部
90に入力されると共に、レジスタ94に保持される。
暗号文の次のデータブロックが入力されたときには、レ
ジスタ94に保持された前のブロックの変換データを用
いて生成された演算結果が復号文のデータブロックMj
として出力される。
【0085】これにより、ブロックデータの内容が同じ
であっても、その前のデータブロックの内容に応じた演
算結果に対して暗号処理が行われるため、複雑な構成を
とることなく、鍵の特定を困難にすることができる。
【0086】3. TDESの概要 ところでコンピュータ技術等の進歩を背景に、情報処理
能力の向上が著しく、上述したSDESの安全性には限
界がある。そのため更に安全性を高めるために、SDE
Sを3回ループさせるTDESがある。
【0087】図15に、TDESの処理フローの概要を
示す。
【0088】TDESによる暗号処理は、DES演算部
96−1、96−2、96−3により、上述したSDE
Sの暗号処理又は復号処理を行うことで実現される。D
ES演算部96−1は、64ビットの平文の入力データ
に対し、暗号処理の各段の鍵を有する鍵セットK0Aを適
用したSDESの暗号処理を行う。DES演算部96−
2は、DES演算部96−1から出力された変換データ
に対し、復号処理の各段の鍵を有する鍵セットK0Bを適
用したSDESの復号処理(DES-1)を行う。DES
演算部96−3は、DES演算部96−2から出力され
た変換データに対し、暗号処理の各段の鍵を有する鍵セ
ットK0Cを適用したSDESの暗号処理を行い、変換デ
ータCを出力する。
【0089】こうすることで、鍵セットK0A、K0B、K
0Cが全て異なる場合、鍵長は192(=64×3)ビッ
トとなり、更に暗号強度を高めることができる。
【0090】なお、TDESの復号処理を行う場合に
は、図15に示した暗号処理とは逆に、復号処理、暗号
処理、復号処理の順に行えばよい。
【0091】3. 本実施形態の特徴 SDESは、処理速度を高速化することができる反面、
TDESに比べて暗号強度を低下させてしまう。一方、
TDESは、暗号強度を高めることができる反面、SD
ESに比べて処理速度を低下させてしまう。このよう
に、SDESとTDESとを単独で実装すると、十分な
暗号強度を維持した状態で、高速な処理速度を得ること
ができない。またSDESとTDESとを混在させ、適
宜切り替えるように構成したとしても、固定的な切り替
えを行うと処理速度と暗号強度の最適化を図ることがで
きず、不便である。
【0092】そこで本実施形態における暗号装置は、S
DESとTDESとを、動的に切り替えることができる
ようになっており、処理速度をある程度維持しながら鍵
の特定をより困難にすることができる。またSDESと
TDESとの混在による回路規模の増大を回避するた
め、SDESの処理回路を流用してTDESによる暗号
処理を行うことができる。
【0093】図16に、本実施形態における暗号装置の
構成の概要を示す。
【0094】暗号装置100は、処理切替信号生成回路
110と、処理回路120とを含む。処理切替信号生成
回路110は、所与の切替信号に基づいて処理切替信号
を生成する。処理回路120は、データブロック単位で
入力される入力データに対して、SDESの暗号処理を
a(aは正の整数)回行ったa回暗号処理データ又はS
DESの暗号処理をb(bはaより大きい正の整数)回
行ったb回暗号処理データを生成し、処理切替信号に基
づいていずれかを出力する。例えばaが「1」のときは
SDESの暗号処理を行った暗号処理データであり、例
えばbが「3」のときはTDESの暗号処理を行った暗
号処理データである。
【0095】したがって、処理回路120は、切替信号
に応じて、処理速度を優先させる場合にはa回暗号処理
データを出力し、暗号強度を優先させる場合にはb回暗
号処理データを出力することができる。これにより、暗
号強度を処理速度とを最適化することができる。
【0096】暗号装置100は、SDESとTDESと
の混在に伴う回路規模の増大を回避するため、所与の暗
号処理を行う演算回路の結果をループさせることでTD
ESの暗号処理を行うように構成されている。そのた
め、暗号装置100の処理回路120は、演算回路12
2と、処理切替回路124とを含む。
【0097】演算回路122は、SDESの暗号処理
(所与の暗号処理)を行って演算データを生成する。よ
り具体的には、データブロック単位で入力データが入力
される場合、演算回路122は、第(n−1)(nは2
以上の整数)の演算データ又は該第(n−1)のデータ
ブロックの次の第nのデータブロックの入力データに基
づいて、SDESの暗号処理を行って第nの演算データ
を生成する。
【0098】処理切替回路124は、処理切替信号生成
回路110で生成された処理切替信号に基づき、演算回
路122から出力された演算データを変換データとして
出力するか、該演算データを演算回路122にフィード
バックさせる。より具体的には、処理切替回路124
は、処理速度を優先させる高速処理モードの場合には演
算回路122からの演算データを変換データとして出力
し、暗号強度を優先させる低速処理モードの場合には該
演算データを演算回路122にフィードバックさせる。
その結果、高速処理モードではa回暗号処理データが変
換データとして出力され、低速処理モードではb回暗号
処理データが変換データとして出力されることになる。
【0099】図17に、演算回路122の構成の概要を
示す。
【0100】演算回路122は、共通秘密暗号化方式の
暗号処理が複数の演算処理を繰り返して行われる場合
に、各段の処理(所与の演算処理)を1又は複数回行う
第1〜第L(Lは2以上の整数)の暗号処理回路123
1〜123Lを含みむ。すなわち、SDESの場合には、
各段の処理を1又は複数回行う第1〜第Lの暗号処理回
路1231〜123Lにより16段分の処理を行う。
【0101】第1の暗号処理回路1231に処理対象の
データが入力されると、第2〜第(L−1)の暗号処理
回路1232〜123L-1はSDESの鍵生成処理で生成
された鍵をその都度代えて各段の処理を行い、第Lの暗
号処理回路123Lから演算データを出力する。
【0102】こうすることで、回路を流用して、回路規
模の増大を回避することができる。更に、演算回路12
2は、第1〜第Lの暗号処理回路1231〜123Lのう
ち、少なくとも2つの第k(1≦k≦L−1、kは整
数)及び第(k+1)の暗号処理回路はパイプライン動
作するようになっている。より具体的には、図18に示
すように、所与の第1のタイミングにおいて、第kの暗
号処理回路は、第nのデータブロックについて処理する
と共に、第(k+1)の暗号処理回路は、第(n−1)
のデータブロックについて処理し、第1のタイミングの
次の第2のタイミングでは、第kの暗号処理回路は、第
(n+1)のデータブロックについて処理すると共に、
第(k+1)の暗号処理回路は、第1のタイミングにお
ける第kの暗号処理回路の処理結果を用いて処理する。
【0103】これにより、連続的にデータブロック単位
で入力される入力データについて、SDESの暗号処理
をより高速化することができる。
【0104】なお、図16においては暗号処理について
説明したが、復号処理についても同様に実現することが
できる。
【0105】ところで、このような演算回路122を用
いてSDES又はTDESの処理を切り替えて変換デー
タを出力する場合、この切替制御を行うための切替信号
は、データの種類、処理状況等に応じて生成することが
できる。なお切替信号は、ソフトウェアで設定したスイ
ッチにより入力させてもよいし、外部に設けられたスイ
ッチを介して入力させてもよい。
【0106】以下では、切替信号を生成する種々の態様
について説明する。
【0107】3.1 セクタ単位の切替制御 暗号装置によって暗号化されたデータが、所与の外部記
憶装置に保存されたり、該外部記憶装置から読み出され
たデータが暗号装置によって復号化される場合には、外
部記憶装置のアクセス単位(セクタや、メモリのワード
ラインなど)の記憶位置情報(セクタ番号や、メモリの
アドレスなど)に基づいて、SDES又はTDESの切
替制御を行うようにしてもよい。このようにアクセス単
位の記憶位置情報に基づいて切替制御が行われるため、
どの記憶位置でSDES又はTDESを行うかを変更す
ることで、処理速度と暗号強度との最適化を容易に実現
することができる。
【0108】図19に、外部記憶装置のセクタに基づい
てSDES及びTDESの切替制御が行われる暗号装置
の構成の一例を示す。
【0109】ここで図16に示す暗号装置と同一部分に
は同一符号を付し、適宜説明を省略する。
【0110】暗号装置130は、処理切替信号生成回路
110、処理回路120、データ制御回路132、カウ
ンタ回路134を含むことができる。
【0111】データ制御回路132は、処理回路120
から出力された変換データについて、例えば所与の外部
記憶装置140に対する書き込み制御を行う。またデー
タ制御回路132は、所与の外部記憶装置140に対す
る読み出し制御を行い、読み出されたデータを処理回路
120に出力し、復号処理させることができる。
【0112】カウンタ回路134は、所与の基準クロッ
クに基づいてカウント数をカウントアップする。カウン
ト数は、処理切替信号生成回路110に対して出力され
ると共に、データ制御回路132に対しても出力され
る。
【0113】処理切替信号生成回路110は、カウント
数に応じてSDES又はTDESのいずれか一方の処理
結果を出力させる処理切替信号を出力する。データ制御
回路132は、外部記憶装置140のセクタの番号と、
カウンタ回路134からのカウント数とを記憶する。し
たがって、セクタ単位でSDES又はTDESにより暗
号処理を行うかを予め決めておくことで、カウント数に
より、いずれの暗号処理が行われたかを、セクタ番号と
関連付けけることができる。すなわち、データ制御回路
132によりアクセスされたセクタ番号と、カウント数
とから、処理切替制御信号によりSDES又はTDES
のいずれかの暗号処理が行われたかを特定することがで
きる。
【0114】例えばセクタ番号に基づき、TDES(広
義には低速処理モード)又はSDES(広義には高速処
理モード)の処理対象となるブロックや、その処理期間
を変更するようにしてもよい。より具体的には、セクタ
の番号が、図20(A)に示すように予め決められた開
始セクタ番号及び終了セクタ番号の範囲内にある場合に
は、上述したように予め決められたブロックについては
SDES又はTDESに切り替える。或いは、例えば図
20(B)に示すように予め決められた開始セクタ番号
及びその処理セクタ数により特定されるセクタの範囲内
にある場合には、上述したように予め決められたブロッ
クについてはSDES又はTDESに切り替えるように
してもよい。
【0115】また、セクタ番号と処理切替信号とを対応
付けておくことができるので、セクタ番号に基づき、外
部記憶装置140から読み出されたデータがSDES又
はTDESのいずれかの暗号処理で行われたかをを容易
に特定することができ、該暗号処理で暗号化されたデー
タを復号化することができる。なお、出力されるカウン
ト数は規則性を有するため、所与のスクランブルをかけ
て(例えばデコード出力を行って)変換しておくことが
望ましい。
【0116】またセクタが分割されるブロックについ
て、低速処理モード又は高速処理モードを開始するブロ
ック及び当該処理を行うブロック数のうち少なくとも一
方を任意に設定可能な構成とし、セクタごとにこれら設
定されたブロックについてSDES又はTDESに切り
替えるようにしてもよい。
【0117】この結果、図21に示すように、セクタご
とに、SDES又はTDESの処理対象となるブロック
が異なるように設定され、各セクタ内にはブロック単位
でSDES又はTDESのいずれかの暗号処理が行われ
た暗号化データが記憶されて、両暗号処理が行われた暗
号化データが混在した状態になる。このようにセクタ番
号に基づいてSDES又はTDESの処理を切り替える
ことができる。この場合、暗号処理がいずれの方式で行
われたかを特定することができるので、該暗号処理で暗
号化されたデータを復号化することもできる。
【0118】図22に、SDES又はTDESの処理が
切替制御される動作の一例を示す。
【0119】暗号装置は、入力される一連のデータブロ
ックに対して暗号処理を行って変換データを生成し、該
部記憶装置140のあるセクタ内に記憶される。その
際、図17に示した演算回路122を用いて、SDES
とTDESを切り替えてそれぞれ変換データが生成され
る。なお、図22では、SDESの(E)は、a回暗号
処理データが生成されるSDESの1回の処理を示し、
TDESの(E1〜E3)は、b回暗号処理データが生
成されるSDESの3回分の各処理を示している。また
SDESの各処理では、図18に示したようにパイプラ
イン動作が行われる。
【0120】3.2 装置IDによる切替制御 また暗号装置130は、図19に示すように識別情報レ
ジスタ136を含むことができる。そして、識別情報レ
ジスタ136の設定値に基づいて切替信号を発生し、処
理切替信号生成回路110により処理切替信号を生成す
ることができる。この場合、識別情報レジスタ136に
暗号装置固有の識別情報(回路ID)を設定すること
で、SDES又はTDESの処理結果を混在させること
ができる。また、上述したセクタ番号に応じた切替制御
についても、装置ごとに異なる制御を行うことができ
る。
【0121】このような暗号装置固有の識別情報として
は、例えばIEEE1394のDTCP(Digital Tran
smission Content Protection)のネゴシエーションに
おいて用いられるデバイスIDを採用することができ
る。このデバイスIDは、CPU等のホストにより所与
のレジスタ領域に書き込まれる。したがって、例えばリ
セット直後にその設定値を読み出し、該設定値を識別情
報レジスタ136に書き込むようにすればよい。
【0122】また、識別情報レジスタ136を暗号装置
130内に設けることなく、外部からその設定値を入力
させるようにしてもよい。例えばフラッシュメモリに書
き込まれた識別情報を読み出して、該識別情報に対応し
た処理切替を行うようにしてもよい。
【0123】なお上述した識別情報としては、他に、回
路が形成されるウェハや製造ロットに対応した情報を採
用することができる。
【0124】このような識別情報に基づいて処理切替制
御を行うことで、暗号処理が行われた暗号化方式を特定
することができるので、該暗号処理で暗号化されたデー
タを復号化することもできる。
【0125】3.3 データブロックのカウント数に応
じて切替制御 暗号装置100では、データブロック単位で暗号処理又
は復号処理が行われる。そこで、処理対象のデータブロ
ックをカウントし、そのカウント数に基づいて処理切替
信号を生成することで、当該カウント数の設定を変更し
て処理速度と暗号強度との最適化を容易に実現すること
ができる。
【0126】図23に、データブロックのカウント数に
基づいてSDES及びTDESの切替制御が行われる暗
号装置の構成の一例を示す。
【0127】ここで図19に示す暗号装置と同一部分に
は同一符号を付し、適宜説明を省略する。
【0128】暗号装置150が、図19に示す暗号装置
130と異なる点は、データ制御回路132に代えてデ
ータ制御回路152を含む点である。データ制御回路1
52は、処理回路120から出力された変換データにつ
いて、例えば所与の外部記憶装置140に対する書き込
み制御を行う。またデータ制御回路152は、所与の外
部記憶装置140に対する読み出し制御を行い、読み出
されたデータを処理回路120に出力し、復号処理させ
る。
【0129】このようなデータ制御回路152は、アク
セス制御回路154と、データブロックカウント回路1
56とを含むことができる。アクセス制御回路154
は、処理回路120の処理単位であるデータブロック単
位で、外部記憶装置140に対する書き込み制御及び読
み出し制御を行う。データブロックカウント回路156
は、書き込み制御又は読み出し制御が行われたデータブ
ロックの数をカウントする。
【0130】例えば図24(A)に示すように、データ
ブロックカウント回路156から出力されたカウント数
が、開始データブロックカウント数と終了データブロッ
クカウント数の範囲内のときには、SDES又はTDE
Sのいずれか処理に切り替えるように処理切替信号を生
成することができる。
【0131】また図24(B)に示すように、データブ
ロックカウント回路156から出力されたカウント数
が、開始データブロックカウント数で特定されるデータ
ブロックから起算して処理データブロックカウント数分
の範囲内にあるときには、SDES又はTDESのいず
れか処理に切り替えるように処理切替信号を生成するこ
とができる。
【0132】或いは図24(C)に示すように、データ
ブロックのカウント数が表される複数ビットのデータの
うち、例えば下位2ビットに対応した処理切替信号を生
成するようにしてもよい。すなわち、データブロックの
カウント数をビット表現した場合に、下位2ビットが
「00」のときはTDESへの処理切替を行うように処
理切替信号を生成し、下位2ビットが「11」のときは
SDESへの処理切替を行うように処理切替信号を生成
する。
【0133】このようにデータブロックのカウント数に
基づいて処理切替信号を生成することで、SDES及び
TDESのいずれの暗号処理が行われたかを容易に特定
することができるので、該暗号処理で暗号化されたデー
タを復号化することもできる。
【0134】3.4 処理状況に応じた切替制御 上述のようにSDES及びTDESの処理を、切替信号
で切替制御を行うことで、暗号強度と処理速度の最適化
を図ることができる。したがって、暗号処理又は復号処
理の処理状況に応じて、高速処理が必要なときには処理
負荷の軽いSDESの処理を行い、低速処理が必要なと
き(或いは処理速度より暗号強度が必要とされるとき)
にはTDESの処理を切り替えるようにしてもよい。上
述の処理状況としては、例えば暗号装置の前段又は後段
にバッファリング用に設けられたメモリの蓄積状況(あ
ふれ状況)がある。
【0135】図25(A)に示すように、暗号処理対象
の入力データがメモリ162に一旦バッファリングされ
て、データブロック単位で暗号装置160に順次出力さ
れる場合には、メモリ162の蓄積状況に基づいて切替
信号を生成することができる。例えば、アイソクロナス
データのようにリアルタイム性が要求される場合には、
メモリ162に蓄積されるデータ量が少ないときには、
暗号装置160は処理速度よりも暗号強度を優先させて
TDESによる暗号処理を行うようにする。そして、メ
モリ162に蓄積されるデータ量が多くなったときに、
暗号装置160は暗号強度よりも処理速度を優先させ
て、アイソクロナスデータの受信の取りこぼしを防ぐよ
うにする。
【0136】また図25(B)に示すように、データブ
ロック単位で暗号装置170で暗号処理されて生成され
た変換データをメモリ172に順次蓄積する場合には、
メモリ172の蓄積状況に基づいて切替信号を生成する
ことができる。例えば、メモリ172に蓄積されるデー
タ量が少ないときには、暗号装置170は処理速度より
も暗号強度を優先させてTDESによる暗号処理を行う
ようにする。そして、メモリ172に蓄積されるデータ
量が多くなったときに、暗号装置170は暗号強度より
も処理速度を優先させて、変換データがメモリ172に
蓄積できないといった状況を防ぐようにする。
【0137】このように、SDES及びTDESの処理
を、処理状況に応じて適宜切り替えることで、暗号強度
と処理速度との最適化を図ることが可能となる。
【0138】なお、データブロックごとに、SDES及
びTDESのいずれの暗号化方式により暗号処理を行っ
たかを記憶し、暗号処理したデータを復号処理できるよ
うにすることが望ましい。例えば、切替信号の出力状況
を逐一保持させてデータブロックごとにどの暗号処理が
行われたかを管理させる。或いは、データブロックごと
に適用された暗号処理を識別するビットを設けるように
してもよい。
【0139】なお暗号装置160、170として、図1
9に示した暗号装置130、図23に示した暗号装置1
50を適用することもできる。
【0140】4. 処理回路の具体的な構成例 次に、これまで説明したSDES及びTDESの処理を
切り替えることができる処理回路の構成について具体的
に説明する。
【0141】以下では、図16に示す演算回路122
が、2つ(L=2)のDES演算回路で構成され、これ
らがパイプライン動作を行う暗号装置について説明する
が、3つ以上(L≧3)のDES演算回路を有し、これ
らがパイプライン動作を行うようにしてもよい。
【0142】図26に、本実施形態における暗号装置の
ブロック構成図を示す。
【0143】本実施形態における暗号装置200は、同
様の構成のDES演算回路(第1及び第2の暗号処理回
路)210、220を含む。なおDES演算回路は3以
上でもよいが、以下では2の場合について説明する。D
ES演算回路210、220は、それぞれ図2に示した
SDESの非線形変換や排他的論理和演算等の1段分の
処理(所与の演算処理)を行う。暗号処理又は復号処理
を(M+N)(M、Nは正の整数)段の演算処理を行う
場合に、DES演算回路210、220は、それぞれM
段分の演算処理、N段分の演算処理を行うことができ
る。なおSDESによる16段分の処理を行う場合は、
パイプライン動作により高速処理を行うため8段ずつ
(M=N=8)行うことが望ましい。暗号装置200で
は、8段ずつ行うものとして説明する。
【0144】DES演算回路210には、プロローグ回
路230が接続されている。DES演算回路210は、
プロローグ回路230からの出力に基づいて、図2に示
すSDESの第1段〜第8段の各段の処理を行い、中間
変換データを出力する。プロローグ回路230には、入
力ラッチ回路240が接続されている。入力ラッチ回路
240には、データブロック単位に入力データがラッチ
される。プロローグ回路230は、入力ラッチ回路24
0に入力された64ビットのデータに対して初期転置処
理を行うことができる。或いはプロローグ回路は、入力
ラッチ回路240に入力された64ビットのデータと、
DES演算回路210によって生成された中間変換デー
タ等との排他的論理和演算結果に対して、初期転置処理
を行うことができる。
【0145】DES演算回路220には、エピローグ回
路250が接続されている。DES演算回路220は、
DES演算回路210で生成された中間変換データに基
づいて、図2に示すSDESの第9段〜第16段の各段
の処理を行い、変換データ(最終変換データ)を出力す
る。エピローグ回路250は、DES演算回路220に
よって生成された変換データに対して最終転置処理を行
うことができる。或いはエピローグ回路250は、DE
S演算回路220によって生成された変換データに対し
て、DES演算回路210により生成された中間変換デ
ータ等と排他的論理和演算を行うことができる。
【0146】暗号装置200は、DES演算回路21
0、220に対して、SDESの各段の鍵を出力する第
1及び第2の鍵出力回路260、270を含む。ここ
で、鍵出力回路は2つでなくてもよく、DES演算回路
と同数でなくてもよい。
【0147】暗号処理を行う場合、第1の鍵出力回路2
60は、DES演算回路210で処理される段数に応じ
て、図2に示すSDESの第1段〜第8段の各段の鍵K
1〜K8を出力する。第2の鍵出力回路270は、DES
演算回路220で処理される段数に応じて、図2に示す
SDESの第9段〜第16段の各段の鍵K9〜K16を出
力する。
【0148】復号処理を行う場合、第1の鍵出力回路2
60は、DES演算回路220に対してSDESの第1
段〜第8段の各段の鍵K1〜K8を、暗号処理とは逆順に
出力する。第2の鍵出力回路270は、DES演算回路
210に対してSDESの第9段〜第16段の各段の鍵
9〜K16を、暗号処理とは逆順に出力する。
【0149】第1及び第2の鍵出力回路260、270
がそれぞれ出力する鍵K1〜K16は、鍵セット選択回路
280から供給される。
【0150】鍵セット選択回路280は、TDES鍵ボ
ックス282と、SDES鍵ボックス284とを含む。
TDES鍵ボックス282は、上述した鍵生成処理によ
り予め生成されたTDESの鍵を複数セット保持する。
TDESの鍵は、ループさせる回数分のSDESの鍵を
有する。SDESの鍵は、16段分の鍵を有する。SD
ES鍵ボックス284は、上述した鍵生成処理により予
め生成されたSDESの鍵を複数セット保持する。
【0151】TDESによる暗号処理又は復号処理を行
う場合、鍵セット選択回路280は、TDES鍵ボック
ス282に保持された複数セットのTDESの鍵セット
の中から1セットを選択し、SDESのループ回数に応
じた16段分の鍵を、第1及び第2の鍵出力回路26
0、270に出力する。
【0152】暗号装置200の各部は、制御回路290
によって制御が行われる。制御回路290は、入力され
た各種制御信号により、上述した構成の暗号装置200
において、暗号処理と復号処理の切り替え制御、CBC
モードの制御、或いはSDESとTDESの切り替え制
御を行うことができるようになっている。
【0153】xRST信号は、リセット信号である。x
RST信号がアクティブになると、暗号装置200を構
成する各部の状態が初期状態になる。
【0154】xCLR信号は、クリア信号である。xC
LR信号がアクティブになると、例えばDES演算回路
210、220のレジスタの状態がリセットされる。
【0155】DES_WAIT信号は、ウェイト信号で
ある。DES_WAIT信号がアクティブになると、D
ES演算回路210、220の処理が中断する。DES
_WAIT信号は、例えばエピローグ回路250の出力
をラッチするFIFOの状態に応じて生成される。
【0156】EX_OR信号は、CBCモード制御信号
である。EX_OR信号がアクティブになると、CBC
モードにより暗号処理及び復号処理が行われる。そのた
めプロローグ回路230は、EX_OR信号に応じて、
CBCモードで生成された演算データ又は入力ラッチ回
路240からの入力データを、DES演算回路210に
出力することができるようになっている。またエピロー
グ回路250は、EX_OR信号に応じてCBCモード
で生成された演算データ又はDES演算回路220から
の出力データを出力する。
【0157】なおCBCモードにおいて、初期化状態の
ときには、プロローグ回路230は初期化ベクタIVを
用いて入力データとの間で排他的論理和演算を行って、
入力データの値がそのまま暗号処理又は復号処理が行わ
れないようにしている。同様に、初期化状態のときに
は、エピローグ回路250は初期化ベクタIVを用いて
DES演算回路220の出力データとの間で排他的論理
和演算を行う。
【0158】EN_xDE信号は、暗号−復号切替信号
である。EN_xDE信号がアクティブになると、プロ
ローグ回路230、DES演算回路210、220、エ
ピローグ回路250において、図2に示す暗号処理の各
処理が行われる。また第1及び第2の鍵出力回路26
0、270は、暗号処理の順序で各段の鍵を出力する。
【0159】TRIPLE信号は、SDES−TDES
切替信号である。TRIPLE信号がアクティブになる
と、TDESの暗号処理又は復号処理が行われる。TR
IPLE信号は、上述したように図示しない処理切替信
号生成回路で生成される処理切替信号である。この場
合、セクタによってSDESにより暗号化されたデータ
とTDESにより暗号化されたデータとを混在させるこ
とができ、鍵の解読をより困難にし、機密性を大幅に高
めると共に、暗号強度と処理速度とを最適化することが
できる。
【0160】TRI_COUNT信号は、TDESのル
ープカウント信号である。TRI_COUNT信号によ
り、TDESによるSDESのループ回数が指定され
る。TRI_COUNT信号に応じて、鍵セット選択回
路280は保持されている複数セットの鍵から、1セッ
トを選択する。このようなTRI_COUNT信号は、
制御回路290において生成される。
【0161】KEY_NUMBER信号は、SDESの
段数カウント信号である。KEY_NUMBER信号に
より、SDESの段数が指定され、各段に対応した鍵が
選択される。
【0162】KEY_SEL信号は、鍵選択信号であ
る。KEY_SEL信号により、鍵セット選択回路28
0に予めTDES鍵ボックス282又はSDES鍵ボッ
クス284に記憶された複数セットの鍵の中から1セッ
トが選択される。
【0163】図16に示す演算回路122は、上述した
ようにDES演算回路210、220によりその機能を
実現することができる。図16に示す処理切替回路12
4は、DES演算回路210、220、プロローグ回路
230、エピローグ回路250等の複数の回路によりそ
の機能を実現することができる。図16に示す処理切替
信号生成回路110は、制御回路290によりその機能
を実現することができる。
【0164】4.2 動作の概要 次に、本実施形態における暗号装置200の動作の概要
を説明する。
【0165】図27に、暗号装置200におけるSDE
Sの暗号処理の流れを模式的に示す。ただし図26に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
【0166】この場合、DES演算回路210は、第n
のデータブロックに対して図2に示すSDESの第1段
の処理を行う。この処理結果は7回ループされ、DES
演算回路210は、SDESの第1段〜第8段の処理を
行う。このとき第1の鍵出力回路260は、KEY_N
UMBER信号に応じて、各段に対応した鍵を供給す
る。その結果、DES演算回路210は、SDESの第
8段までの結果を、第nの中間変換データとして出力す
る。
【0167】DES演算回路220は、第nの中間変換
データに対して、図2に示すSDESの第9段の処理を
行う。この処理結果は7回ループされ、DES演算回路
220は、SDESの第9段〜第16段の処理を行う。
このとき第2の鍵出力回路270は、KEY_NUMB
ER信号に応じて、各段に対応した鍵を供給する。その
結果、DES演算回路220は、SDESの第16段ま
での結果を、第nの変換データとして出力する。
【0168】プロローグ回路230は、DES演算回路
210に、第(n−1)の中間変換データと第nのデー
タブロックの入力データとに基づいて第nの中間変換デ
ータを生成させる。
【0169】より具体的には、プロローグ回路230
は、第nのデータブロックの入力データに対して初期転
置処理を行った演算データを、DES演算回路210に
対して出力する。ここで転置処理の対象となるのは、S
DESのCBCモード(所与の第1のモード)ではない
場合は入力ラッチ回路240の入力データであり、SD
ESのCBCモード(所与の第1のモード)の場合は該
入力データと1つ前のデータブロックの第(n−1)の
中間変換データとの排他的論理和演算結果である。なお
CBCモードにおいて、入力データは、初期化時では初
期化ベクタIVとの間の排他的論理和演算結果に対して
転置処理が行われる。
【0170】エピローグ回路250は、DES演算回路
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。
【0171】このような本実施形態における暗号装置2
00は、(M+N)(M=N=8)段の処理により変換
データを生成するために、DES演算回路210、22
0によるパイプライン動作を行う。
【0172】図28に、パイプライン動作について説明
するための図を示す。
【0173】入力データがブロック単位に分割され、第
1のデータブロックから順に暗号処理が行われるものと
する。この場合、第1のタイミングでは、DES演算回
路210は、第nのデータブロックについて第nの中間
変換データを生成し、DES演算回路220は、1つ前
のデータブロックである第(n−1)の中間変換データ
に基づいて第(n−1)の変換データを生成する。そし
て、次の第1のタイミングの次の第2のタイミングで
は、DES演算回路210は第nのデータブロックの次
のブロックである第(n+1)のデータブロックについ
て第(n+1)の中間変換データを生成し、DES演算
回路220は第1のタイミングでDES演算回路210
により生成された第nの中間変換データに基づいて第n
の変換データを生成する。
【0174】このようなパイプライン動作により、第1
及び第2のタイミングを所与のクロックの1周期とする
と、1クロックごとにSDESにより暗号化された変換
データを生成することができる。したがって、回路規模
の縮小化と、処理の高速化とを図ることができる。
【0175】またCBCモードでは、SDESの第16
段の処理結果を次のデータブロックの入力に反映させる
と、DES演算回路210の処理速度の低下を招く。そ
のため、SDESの第8段の処理結果(第(n−1)の
中間変換データ)を用いることで、鍵の機密性を高める
と共に処理速度の低下を防止することができる。
【0176】図29に、暗号装置200におけるSDE
Sの復号処理の流れを模式的に示す。ただし図27に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
【0177】この場合、DES演算回路210は、第n
のデータブロックに対して図2に示すSDESの第1段
の処理を行う。この処理結果は7回ループされ、DES
演算回路210は、SDESの第1段〜第8段の処理を
行う。このとき第2の鍵出力回路270が、KEY_N
UMBER信号に応じて、暗号処理とは逆順に各段に対
応した鍵を供給する。その結果、DES演算回路210
は、SDESの第8段までの結果を、第nの中間変換デ
ータとして出力する。
【0178】DES演算回路220は、第nの中間変換
データに対して、図2に示すSDESの第9段の処理を
行う。この処理結果は7回ループされ、DES演算回路
220は、SDESの第9段〜第16段の処理を行う。
このとき、第1の鍵出力回路260は、KEY_NUM
BER信号に応じて、暗号処理とは逆順に各段に対応し
た鍵を供給する。その結果、DES演算回路220は、
SDESの第16段までの結果を、第nの変換データと
して出力する。
【0179】プロローグ回路230は、入力ラッチ回路
240から入力された第nのデータブロックの入力デー
タに対して初期転置処理を行った演算データを、DES
演算回路210に対して出力する。
【0180】エピローグ回路250は、第nの変換デー
タと、1つ前のデータブロックの第(n−1)の中間変
換データとに基づいて生成された演算データを復号化さ
れた信号として出力させる。
【0181】より具体的には、エピローグ回路250
は、DES演算回路220から出力された第nの変換デ
ータに対して、プロローグ回路230で行われた初期転
置処理に対応した最終転置処理を行う。ここで最終転置
処理が行われたデータは、SDESのCBCモード(所
与の第1のモード)ではない場合はそのまま変換データ
として出力され、SDESのCBCモード(所与の第1
のモード)の場合は1つ前のデータブロックの第(n−
1)の中間変換データとの間で排他的論理和演算が行わ
れて変換データとして出力される。なおCBCモードに
おいて、転置処理が行われたデータは、初期化時には初
期化ベクタIVとの間で排他的論理和演算が行われる。
【0182】なお、この場合においても図28に示すよ
うなパイプライン動作により、復号処理を行うことがで
きる。
【0183】図30に、暗号装置200におけるTDE
Sの暗号処理の流れを模式的に示す。ただし図27に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
【0184】プロローグ回路230は、第nのデータブ
ロックに対して初期転置処理を行った演算データを、D
ES演算回路210に対して出力する。このとき、次の
データブロックの第(n+1)のデータブロックについ
て出力するのに先立って、エピローグ回路250から出
力された演算結果を用いて2回ループさせる。なおTD
ESのCBCモード(所与の第2のモード)の場合は、
第nのデータブロックについてのSDESの1回目の入
力のときに、1つ前の第(n−1)のデータブロックに
ついての演算結果との間で行われた排他的論理和演算結
果が転置処理対象となる。なお、TDESのCBCモー
ドにおいても、初期化時には初期化ベクタIVが適用さ
れる。
【0185】エピローグ回路250は、DES演算回路
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。
【0186】図31に、暗号装置200におけるTDE
Sの復号処理の流れを模式的に示す。ただし図30に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
【0187】プロローグ回路230は、第nのデータブ
ロックに対して初期転置を行った演算データをDES演
算回路210に対して出力する。このとき、次の第(n
+1)のデータブロックについて出力するのに先立っ
て、エピローグ回路250から出力された演算結果を用
いて2回ループさせる。
【0188】エピローグ回路250は、DES演算回路
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。転置処理が行われたデータは、SD
ESの3回目のループの出力の場合には、変換データと
して出力される。その際、TDESのCBCモード(所
与の第2のモード)ではない場合はそのまま変換データ
として出力され、TDESのCBCモード(所与の第2
のモード)の場合は1つ前のデータブロックの第(n−
1)のデータブロックの入力データとの間で排他的論理
和演算が行われて出力される。なおCBCモードにおい
て、転置処理が行われたデータは、初期化時には初期化
ベクタIVとの間で排他的論理和演算が行われる。
【0189】このようにSDESの処理回路を流用して
TDESによる暗号処理及び復号処理を行うことがで
き、回路規模の増大を回避することができる。
【0190】なお、DES演算回路(暗号処理回路)を
3段以上の構成で、SDESの暗号処理又は復号処理を
行うように構成しても、同様にSDESの処理回路を流
用してTDESによる暗号処理及び復号処理を行うこと
ができる。
【0191】例えば図32(A)に示す第1〜第3の暗
号処理回路により、SDESのCBCモードの暗号処理
を行う場合、図32(B)に示すようなパイプライン動
作で変換データが生成される。また例えば図33(A)
に示す第1〜第3の暗号処理回路により、SDESのC
BCモードの復号処理を行う場合には、図33(B)に
示すようなパイプライン動作で、暗号処理されたデータ
を復号することができる。
【0192】また例えば図34(A)に示す第1〜第4
の暗号処理回路により、SDESのCBCモードの暗号
処理を行う場合、図34(B)に示すようなパイプライ
ン動作で変換データが生成される。また例えば図35
(A)に示す第1〜第4の暗号処理回路により、SDE
SのCBCモードの復号処理を行う場合には、図35
(B)に示すようなパイプライン動作で、暗号処理され
たデータを復号することができる。
【0193】このような複数の暗号処理回路をパイプラ
イン動作により高速処理を行うSDESの処理回路を上
述のように3回繰り返すことで、TDESによる暗号処
理及び復号処理を行うことができ、回路規模の増大を回
避することができる。
【0194】図36に、本実施形態における暗号装置2
00の回路動作フローの一例を示す。
【0195】ここでは暗号処理及び復号処理の対象とな
るデータが、ハードディスク装置に記憶され、アクセス
するデータブロックのカウント数に応じて、TDES又
はSDESかを切り替えることができる場合について説
明する。
【0196】制御回路290では、入力ラッチ回路24
0から入力データを入力させると、アクセスするデータ
ブロックのカウント数を管理するデータブロックカウン
ト値data_cntがインクリメントされる(ステッ
プS400)。そして、インクリメントされたデータブ
ロックカウント値data_cntに応じて、DES演
算回路210、220などが制御される(ステップS4
01)。より具体的には、データブロックカウント値d
ata_cntが所与のエンド値ENDのとき、データ
ブロックカウント値data_cntは「0」にリセッ
トされる。またデータブロックカウント値data_c
ntが、TDESの開始データブロック値と一致したと
き、TRIPLE信号をアクティブにする。更に、デー
タブロックカウント値data_cntが、TDESの
終了データブロック値と一致したときには、TIRPL
E信号をインアクティブにする。
【0197】次に、制御回路290は、TRI_COU
NT信号を「0」に設定し(ステップS402)、KE
Y_NUMBER信号を「0」に設定する(ステップS
403)。TRI_COUNT信号を「0」に設定した
場合、TDESの処理においてSDESの1回目の処理
であることを示す。またKEY_NUMBER信号を
「0」に設定した場合、SDESの第1段の処理である
ことを示す。
【0198】その後、KEY_NUMBER信号により
示される段数に応じて、DES演算回路210又はDE
S演算回路220により、SDESの1段分の処理が行
われる(ステップS404)。
【0199】SDESの1段分の処理が終了すると、K
EY_NUMBER信号が「16」になっているか否か
を検出し、「16」になっていないとき(ステップS4
05:N)、KEY_NUMBER信号により指定され
るSDESの段数をインクリメントし(ステップS40
6)、再びステップS404のDES演算を行う。一
方、KEY_NUMBER信号が「16」のとき(ステ
ップS405:Y)、TRIPLE信号が「0」で、か
つTRI_COUNT信号が「2」であるか否かを検出
する。そして、TRIPLE信号が「0」で、かつTR
I_COUNT信号が「2」ではないとき(ステップS
407:N)、TRI_COUNT信号で示されるSD
ESのループ回数をインクリメントし(ステップS40
8)、再びステップS403に戻って、次のループのS
DESの処理を開始する。また、TRIPLE信号が
「0」で、かつTRI_COUNT信号が「2」である
とき(ステップS407:Y)、TDESの処理が終了
したと判断して、DES演算回路220の処理結果を用
いて変換データを出力する。
【0200】このような暗号処理(復号処理)に対して
鍵を供給する鍵選択処理においては、鍵セット選択回路
280により、鍵選択信号KEY_SELに基づいて鍵
セットが選択される(ステップS450)。
【0201】より具体的には、TRIPLE信号がアク
ティブのとき、鍵選択信号KEY_SELとTRI_C
OUNT信号とに基づいて、関数Function_T
により、鍵選択値ksを求める。TRIPLE信号がイ
ンアクティブのとき、鍵選択信号KEY_SELに基づ
いて、関数Function_Sにより鍵選択値ksを
求める。関数Function_Sは、例えば鍵選択信
号KEY_SELを、所与のビット操作により鍵選択値
ksを出力する。
【0202】そして、関数Function_Rによ
り、鍵選択値ksに対応する鍵セットを選択する(ステ
ップS451)。TDESの場合は、TDES鍵ボック
ス282に保持された複数の鍵セットの中から選択され
る。SDESの場合は、SDES鍵ボックス284に保
持された複数の鍵セットの中から選択される。
【0203】このようにして鍵セット選択回路280に
よって選択された鍵セットの中から、KEY_NUMB
ER信号により示されるSDESの処理段数に応じた鍵
KEYが供給される(ステップS452)。
【0204】5. データ転送制御装置 図37に、本実施形態におけるインタフェースICの構
成の概要を示す。
【0205】本実施形態におけるインタフェースIC8
00は、DES処理回路810と、メモリ812と、イ
ンタフェース回路814とを含む。DES処理回路81
0は、上述した暗号装置200と同等の機能を有する。
インタフェースIC800は、外部のハードディスク装
置830へのアクセスデータの制御を行う。より具体的
には、インタフェースIC800は、メモリ812に書
き込まれたデジタルデータについてSDES又はTDE
Sによる暗号処理を行って、インタフェース回路814
を介し、ハードディスク装置830へのデジタルデータ
の書き込みを行う。またインタフェースIC800は、
インタフェース回路814を介しハードディスク装置8
30から読み出された保存データを、SDES又はTD
ESによる復号処理を行ってデジタルデータに復号化
し、メモリ812にバッファリングする。
【0206】このようにハードディスク装置等の大容量
記憶媒体にアクセスするためのインタフェースICに上
述した暗号装置200を適用させることで、大容量のア
クセスデータについても、高い機密性を維持したまま高
速なアクセス処理を行わせることができる。
【0207】図38に、本実施形態におけるインタフェ
ースICの構成例を示す。
【0208】インタフェースIC800は、汎用シリア
ルバスとしてのIEEE1394シリアルバスを介して
転送されるデータのIDE(Integrated Device Electr
onics)ストレージ850に対するアクセス制御を行
う。IEEE1394シリアルバス上では、アイソクロ
ナス(Isochronous)転送又はアシンクロナス(Asynchr
onous)転送が行われる。アイソクロナス転送が行われ
るアイソクロナスデータは、例えばリアルタイム性が要
求される画像データである。アシンクロナス転送が行わ
れるアシンクロナスデータは、例えばコマンドデータで
ある。
【0209】IEEE1394シリアルバスを介して受
信されたデータは、IEEE1394物理層回路862
及びIEEE1394リンク層回路864を介し、第1
のDMAC(Direct Memory Access Controller)86
6に入力される。第1のDMAC866は、DTCP処
理回路868において、IEEE1394の暗号化規格
であるDTCP(Digital Transmission Content Prote
ction)により復号化し、パケットメモリインタフェー
ス870を介してSRAM(Static Random Access Mem
ory)で構成されたパケットメモリ872に転送する。
パケットメモリ872では、アイソクロナスデータとア
シンクロナスデータの記憶領域が区分され、更にそれぞ
れのデータについて送信データ領域と受信データ領域と
を有している。パケットメモリインタフェース870
は、格納するデータを仕分けして、対応する記憶領域に
格納する。
【0210】パケットメモリ872に記憶されたデータ
は、パケットメモリインタフェース870を介して、第
2のDMAC874により読み出される。第2のDMA
C874は、DES処理回路876でSDES又はTD
ESにより暗号化する。DES処理回路876は、本実
施形態における暗号装置を採用することができ、例えば
IDEストレージ850に書き込む際のセクタ番号に応
じて、SDES又はTDESで暗号化する。なお暗号化
するデータは、パケットメモリ872のアイソクロナス
受信データ領域に記憶されるアイソクロナス受信データ
のみである。
【0211】インタフェースIC800の外部には、S
DRAM(Synchronous DRAM)により構成されたキャッ
シュメモリ880が接続されている。第2のDMAC8
74は、DES処理回路876により暗号化したデータ
を、キャッシュメモリインタフェース878を介して、
キャッシュメモリ880に格納する。これにより、アイ
ソクロナス受信データの機密性を維持することができ
る。
【0212】一方、同様にしてパケットメモリ872の
アシンクロナス受信データ領域に入っているアシンクロ
ナス受信データは、図示しないホスト(例えばCPU)
によりデコードされ、コマンドの解析が行われる。
【0213】キャッシュメモリ880は、送信データ記
憶領域と受信データ記憶領域とを有しており、第2のD
MAC884により暗号化されたアイソクロナス受信デ
ータは受信データ記憶領域に書き込まれる。
【0214】その後、第3のDMAC882が、キャッ
シュメモリ880からアイソクロナス受信データを読み
出し、IDEインタフェース884を介してIDEスト
レージ850に書き込む。
【0215】このようにキャッシュメモリ880を設け
ることで、アイソクロナスデータをバッファリングする
ことができるので、IDEストレージ850のアクセス
時間があった場合でも、所定の転送レートで転送される
データの連続性を保証することができる。
【0216】これに対して、IEEE1394シリアル
バスを介して送信する場合、まず第3のDMAC882
により、IDEストレージ850からデータが読み出さ
れる。IDEストレージ850から読み出されたデータ
は、SDES又はTDESにより暗号化されており、キ
ャッシュメモリインタフェース878を介して、キャッ
シュメモリ880の送信データ領域に格納される。第2
のDMAC874は、キャッシュメモリ880の送信デ
ータ領域に記憶されたデータを読み出し、DES処理回
路876で復号化して、パケットメモリ872のアイソ
クロナス送信データ領域に格納する。第1のDMAC8
66は、パケットメモリ872のアイソクロナス送信デ
ータ領域に記憶されたアイソクロナスデータを読み出
す。読み出されたアイソクロナスデータは、DTCP処
理回路868によりDTCPによる暗号化が行われ、ア
イソクロナスヘッダを付加してIEEE1394シリア
ルバスに出力される。
【0217】メモリポインタ管理回路886は、第1及
び第2のDMAC866、874の制御を行う。より具
体的には、第1及び第2のDMAC866、874がそ
れぞれ読み出し用ポインタ及び書き込み用ポインタを有
しており、メモリポインタ管理回路886は、両ポイン
タを管理して第1及び第2のDMAC866、874の
動作制御を行う。
【0218】このような構成のインタフェースIC80
0は、システムコントローラ888により制御される。
【0219】6. その他 上述の実施形態では、暗号方式としてSDES又はTD
ESを採用した場合について説明したが、これらに限定
されるものではない。例えば暗号方式は、AES(Adva
nced Encryption Standard)であってもよい。AES
は、DESの後継共通鍵暗号化方式である。
【0220】図39に、AESの暗号処理を行う暗号装
置の機能ブロック図の一例を示す。
【0221】入力データ長は、128ビット、192ビ
ット或いは256ビットがサポートされる。入力データ
は、まずBYTE_SUB部900に入力される。BY
TE_SUB部900は、SBOXを利用して8ビット
ワード単位でビット変換を行う。BYTE_SUB部9
00でビット変換されたデータは、SHIFTROW部
902に入力される。SHIFTROW部902は、
「ABCD」というデータを「DABC」というデータ
に変換するように、8ビットワード単位でローテンショ
ンを行う。ローテンションされたデータは、MIXCO
L部904に入力される。MIXCOL部904は、8
ビットワード単位で乗算を行う。ADDKEY部906
は、MIXCOL部904から出力されたデータと共通
秘密鍵を用いて生成された鍵との排他的論理和演算を行
う。
【0222】以上の処理を1段分行い、入力データ長と
鍵長に応じて決まる段数分だけ、再びBYTE_SUB
部900に戻る。なお、最終段では、MIXCOL部9
04の処理は省略される。
【0223】一方、共通秘密鍵は、KEY_EXPAN
SION部908に入力され、各段の鍵が生成される。
この各段の鍵が、ADDKEY部906に供給される。
【0224】このようなAESについても、上述した実
施形態と同様に、入力データに対して暗号処理を行う少
なくとも2つの演算回路を設け、それぞれ所与の段数分
だけループさせて、これらをパイプライン動作させるこ
とができる。
【0225】なお、上述した実施の形態は主に暗号処理
について説明したが、これに限定されるものではなく、
復号処理についても同様に適用することが可能である。
【0226】なお、本発明は上述した実施の形態に限定
されるものではなく、本発明の要旨の範囲内で種々の変
形実施が可能である。例えば、処理対象のデータを用い
てアクセスされる外部記憶装置のセクタ番号、暗号装置
自体のID及びデータブロックのカウント数の全て、或
いはこれらのうち少なくとも1つを除いた残りのもの、
或いはこれらのうちいずれか1つに基づいてSDES及
びTDESの処理の切り替えを行うことができる。
【0227】また上述した実施の形態では、SDESを
3回ループさせるTDESについて説明したが、適用す
る鍵を適宜切り替えてSDESを2回ループ又は4回以
上ループさせるようにしてもよい。また、上述の実施の
形態では、暗号処理をa回又はb回繰り返すの2種類の
処理を切り替える場合について説明したが、これに限定
されるものではなく、暗号処理をa回、b回、c(cは
正の整数)回、・・・のような3種類以上の回数繰り返
す3種類以上の処理を切り替えるようにしてもよい。
【0228】更にまた、上述した実施の形態では、SD
ESやTDESに代表されるような共通鍵暗号化方式の
暗号処理回数を切替可能としたが、暗号処理回数の処理
段数を切替可能とすることでも、処理速度と暗号強度の
最適化を図ることができる。ただし、DESの場合、処
理段数が16段と規定されているため、処理段数が可変
となっている共通鍵暗号アルゴリズム(CASTやBL
OWFISHなど)において適用することが望ましい。
【0229】更にまた上述のデータ転送制御装置は、I
EEE1394規格のシリアルバスのインタフェースを
例に説明したが、これに限定されるものではない。例え
ばUSB(USB1.1、USB2.0など)規格のシ
リアルバスのインタフェースにも適用することができ
る。
【図面の簡単な説明】
【図1】SDESによる暗号処理を行う暗号装置の機能
ブロック図である。
【図2】暗号処理部の処理フロー図である。
【図3】初期転置について説明するための図である。
【図4】非線形変換の機能ブロック図である。
【図5】拡大転置について説明するための図である。
【図6】SBOXにおいて行われる圧縮換字変換につい
て説明するための図である。
【図7】非線形変換において行われる転置について説明
するための図である。
【図8】最終転置について説明するための図である。
【図9】鍵生成処理部の処理フロー図である。
【図10】選択転置について説明するための図である。
【図11】巡回シフト数について説明するための図であ
る。
【図12】圧縮転置について説明するための図である。
【図13】SDESによる復号処理を行う復号装置の機
能ブロック図である。
【図14】CBCモードの暗号処理と復号処理の機能ブ
ロック図である。
【図15】TDESの処理フローの概要を示す機能ブロ
ック図である。
【図16】本実施形態における暗号装置の構成の概要を
示すブロック図である。
【図17】演算回路の構成の概要を示すブロック図であ
る。
【図18】演算回路のパイプライン動作について説明す
るための図である。
【図19】外部記憶装置のセクタ又は識別情報に基づい
てSDES及びTDESの切替制御が行われる暗号装置
の構成の一例を示すブロック図である。
【図20】図20(A)は、SDES及びTDESの切
替制御を行うためのセクタ情報の一例を示す図である。
図20(B)は、SDES及びTDESの切替制御を行
うためのセクタ情報の他の例を示す図である。
【図21】セクタごとに、SDES又はTDESの処理
対象となるブロックが異なる場合の説明図である。
【図22】SDES又はTDESの処理が切替制御され
る動作の一例を示す説明図である。
【図23】データブロックのカウント数又は識別情報に
基づいてSDES及びTDESの切替制御が行われる暗
号装置の構成の一例を示すブロック図である。
【図24】図24(A)は、SDES及びTDESの切
替制御を行うためのデータブロックカウント情報の一例
を示す図である。図24(B)は、SDES及びTDE
Sの切替制御を行うためのデータブロックカウント情報
の他の例を示す図である。図24(C)は、データブロ
ック数をビット表現した場合の切替制御の一例について
説明するための図である。
【図25】図25(A)、(B)は、メモリの蓄積状況
に応じてSDES及びTDESの切替制御を行う暗号装
置について説明するための図である。
【図26】本実施形態における処理回路の詳細な構成例
を示すブロック図である。
【図27】暗号装置におけるSDESの暗号処理の流れ
を模式的に示す説明図である。
【図28】DES演算回路のパイプライン動作について
の説明図である。
【図29】暗号装置のSDESの復号処理の流れを模式
的に示す説明図である。
【図30】暗号装置におけるTDESの暗号処理の流れ
を模式的に示す説明図である。
【図31】暗号装置のTDESの復号処理の流れを模式
的に示す説明図である。
【図32】図32(A)は、3段構成されたDES演算
回路のブロック図である。図32(B)は、3段構成さ
れたDES演算回路の暗号処理のパイプライン動作につ
いての説明図である。
【図33】図33(A)は、3段構成されたDES演算
回路のブロック図である。図33(B)は、3段構成さ
れたDES演算回路の復号処理のパイプライン動作につ
いての説明図である。
【図34】図34(A)は、4段構成されたDES演算
回路のブロック図である。図34(B)は、4段構成さ
れたDES演算回路の暗号処理のパイプライン動作につ
いての説明図である。
【図35】図35(A)は、4段構成されたDES演算
回路のブロック図である。図35(B)は、4段構成さ
れたDES演算回路の復号処理のパイプライン動作につ
いての説明図である。
【図36】処理回路の回路動作フローの一例を示す図で
ある。
【図37】本実施形態におけるインタフェースICの構
成の概要を示すブロック図である。
【図38】本実施形態におけるインタフェースICの構
成例を示す機能ブロック図である。
【図39】AESの暗号処理を行う暗号装置の構成の概
要を示すブロック図である。
【符号の説明】
10、100、130、150、160、170、20
0 暗号装置 12、80 暗号処理部 14、74 鍵生成処理部 70 復号装置 72 復号処理部 82、96−1〜96−3 DES演算部 84、94 レジスタ 90 復号処理部 92 DES-1演算部 110 処理切替信号生成回路 120 処理回路 122 演算回路 1231〜123L 第1〜第Lの暗号処理回路 124 処理切替回路 132、152 データ制御回路 134 カウンタ回路 136 識別情報レジスタ 140 外部記憶装置 154 アクセス制御回路 156 データブロックカウント回路 162、172 メモリ 210 DES演算回路(第1の暗号処理回路) 220 DES演算回路(第2の暗号処理回路) 230 プロローグ回路 240 入力ラッチ回路 250 エピローグ回路 260 第1の鍵出力回路 270 第2の鍵出力回路 280、820 鍵セット選択回路 282 TDES鍵ボックス 284 SDES鍵ボックス 290 制御回路 810、876 DES処理回路 812 メモリ 814 インタフェース回路 830 ハードディスク装置 850 IDEストレージ 862 IEEE1394物理層回路 864 IEEE1394リンク層回路 866 第1のDMAC 868 DTCP処理回路 870 パケットメモリインタフェース 872 パケットメモリ 874 第2のDMAC 878 キャッシュメモリインタフェース 880 キャッシュメモリ 882 第3のDMAC 884 IDEインタフェース 886 メモリポインタ管理回路 888 システムコントローラ

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 所与のデータブロック単位の入力データ
    に対し、共通鍵暗号化方式の暗号処理を行って変換デー
    タを生成する暗号装置であって、 所与の処理切替信号を生成する処理切替信号生成回路
    と、 前記入力データに対して前記暗号処理をa(aは正の整
    数)又はb(bはaより大きい正の整数)回行ってa回
    暗号処理データ又はb回暗号処理データを生成し、前記
    所与の処理切替信号に基づいて前記a回暗号処理データ
    又は前記b回暗号処理データを出力する処理回路と、 を含み、 前記処理回路は、 前記所与の処理切替信号に基づく高速処理モードでは、
    前記a回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号に基づく低速処理モードでは、
    前記b回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号は、 所与の記憶装置が所与のアクセス単位で前記変換データ
    の書き込み又は読み出しを行う場合において、アクセス
    単位の記憶位置情報に基づいて生成されることを特徴と
    する暗号装置。
  2. 【請求項2】 請求項1において、 前記所与の記憶装置のアクセス単位はセクタであり、前
    記アクセス単位の記憶位置情報はセクタ番号であること
    を特徴とする暗号装置。
  3. 【請求項3】 請求項2において、 複数のブロックに分割されるセクタごとに、前記低速処
    理モード又は前記高速処理モードを開始するブロック及
    び処理ブロック数の少なくとも1つが任意に設定可能に
    構成されていることを特徴とする暗号装置。
  4. 【請求項4】 所与のデータブロック単位の入力データ
    に対し、共通鍵暗号化方式の暗号処理を行って変換デー
    タを生成する暗号装置であって、 所与の処理切替信号を生成する処理切替信号生成回路
    と、 前記入力データに対して前記暗号処理をa(aは正の整
    数)又はb(bはaより大きい正の整数)回行ってa回
    暗号処理データ又はb回暗号処理データを生成し、前記
    所与の処理切替信号に基づいて前記a回暗号処理データ
    又は前記b回暗号処理データを出力する処理回路と、 を含み、 前記処理回路は、 前記所与の処理切替信号に基づく高速処理モードでは、
    前記a回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号に基づく低速処理モードでは、
    前記所与の処理切替信号に基づいて、前記b回暗号処理
    データを前記変換データとして出力し、 前記所与の処理切替信号は、 装置固有の識別情報に基づいて生成されることを特徴と
    する暗号装置。
  5. 【請求項5】 所与のデータブロック単位の入力データ
    に対し、共通鍵暗号化方式の暗号処理を行って変換デー
    タを生成する暗号装置であって、 所与の処理切替信号を生成する処理切替信号生成回路
    と、 前記入力データに対して前記暗号処理をa(aは正の整
    数)又はb(bはaより大きい正の整数)回行ってa回
    暗号処理データ又はb回暗号処理データを生成し、前記
    所与の処理切替信号に基づいて前記a回暗号処理データ
    又は前記b回暗号処理データを出力する処理回路と、 を含み、 前記処理回路は、 前記所与の処理切替信号に基づく高速処理モードでは、
    前記a回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号に基づく低速処理モードでは、
    前記b回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号は、 前記データブロックのカウント数に基づいて生成される
    ことを特徴とする暗号装置。
  6. 【請求項6】 所与のデータブロック単位の入力データ
    に対し、共通鍵暗号化方式の暗号処理を行って変換デー
    タを生成する暗号装置であって、 所与の処理切替信号を生成する処理切替信号生成回路
    と、 前記入力データに対して前記暗号処理をa(aは正の整
    数)又はb(bはaより大きい正の整数)回行ってa回
    暗号処理データ又はb回暗号処理データを生成し、前記
    所与の処理切替信号に基づいて前記a回暗号処理データ
    又は前記b回暗号処理データを出力する処理回路と、 を含み、 前記処理回路は、 前記所与の処理切替信号に基づく高速処理モードでは、
    前記a回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号に基づく低速処理モードでは、
    前記b回暗号処理データを前記変換データとして出力
    し、 前記所与の処理切替信号は、 前記入力データ又は前記変換データを記憶するメモリの
    蓄積状態に応じて生成されることを特徴とする暗号装
    置。
  7. 【請求項7】 請求項1乃至6のいずれかにおいて、 前記処理回路は、 第(n−1)(nは2以上の整数)のデータブロックの
    演算データ、又は該第(n−1)のデータブロックの次
    の第nのデータブロックの入力データに基づいて、前記
    所与の暗号処理を行って第nの演算データを生成する演
    算回路と、 前記高速処理モードでは前記第nの演算データを前記変
    換データとして出力し、前記低速処理モードでは前記第
    nの演算データを前記演算回路に供給する処理切替回路
    と、 を含むことを特徴とする暗号装置。
  8. 【請求項8】 請求項7において、 前記演算回路は、 所与の演算処理を複数回繰り返して前記所与の暗号処理
    が行われる場合において、前記所与の演算処理を1又は
    複数回行う第1〜第L(Lは2以上の整数)の暗号処理
    回路を含み、 第1のタイミングにおいて、 前記第k(1≦k≦L−1、kは整数)の暗号処理回路
    は、第nのデータブロックについて処理すると共に、前
    記第(k+1)の暗号処理回路は、第(n−1)のデー
    タブロックについて処理し、 前記第1のタイミングの次の第2のタイミングでは、 前記第kの暗号処理回路は、第(n+1)のデータブロ
    ックについて処理すると共に、前記第(k+1)の暗号
    処理回路は、前記第1のタイミングにおける前記第kの
    暗号処理回路の処理結果を用いて処理することを特徴と
    する暗号装置。
  9. 【請求項9】 請求項1乃至8のいずれかにおいて、 前記共通鍵暗号化方式の暗号処理は、DESの暗号処理
    であり、 前記a回暗号処理データは、DESの暗号処理を1回行
    った暗号処理データであり、 前記b回暗号処理データは、DESの暗号処理を3回繰
    り返し行った暗号処理データであることを特徴とする暗
    号装置。
  10. 【請求項10】 請求項1乃至9のいずれかにおいて、 前記暗号処理に代えて、復号処理を行うことを特徴とす
    る暗号装置。
  11. 【請求項11】 メモリと、 外部に接続された所与の記憶装置にアクセスするための
    インタフェース回路と、 前記メモリと前記インタフェース回路との間で転送され
    るデータに対し、暗号処理又は復号処理を行う請求項1
    乃至10のいずれか記載の暗号装置と、 を含むことを特徴とするデータ転送制御装置。
JP2002092090A 2002-03-28 2002-03-28 暗号装置及びデータ転送制御装置 Pending JP2003288012A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002092090A JP2003288012A (ja) 2002-03-28 2002-03-28 暗号装置及びデータ転送制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002092090A JP2003288012A (ja) 2002-03-28 2002-03-28 暗号装置及びデータ転送制御装置

Publications (1)

Publication Number Publication Date
JP2003288012A true JP2003288012A (ja) 2003-10-10

Family

ID=29237013

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002092090A Pending JP2003288012A (ja) 2002-03-28 2002-03-28 暗号装置及びデータ転送制御装置

Country Status (1)

Country Link
JP (1) JP2003288012A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101369748B1 (ko) 2006-12-04 2014-03-06 삼성전자주식회사 데이터 암호화 방법 및 그 장치
JP2017005682A (ja) * 2016-02-16 2017-01-05 国立大学法人京都大学 データ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバ
US9904807B2 (en) 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
JP2020178154A (ja) * 2019-04-15 2020-10-29 株式会社カシカ 情報処理装置、システム及びプログラム
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101369748B1 (ko) 2006-12-04 2014-03-06 삼성전자주식회사 데이터 암호화 방법 및 그 장치
US9904807B2 (en) 2015-01-09 2018-02-27 Toshiba Memory Corporation Memory system and information processing system
JP2017005682A (ja) * 2016-02-16 2017-01-05 国立大学法人京都大学 データ処理装置、データ送信方法、コンピュータプログラム、及びデータサーバ
US11838402B2 (en) 2019-03-13 2023-12-05 The Research Foundation For The State University Of New York Ultra low power core for lightweight encryption
JP2020178154A (ja) * 2019-04-15 2020-10-29 株式会社カシカ 情報処理装置、システム及びプログラム

Similar Documents

Publication Publication Date Title
TW573404B (en) Circuit and method for implementing the advanced encryption standard block cipher algorithm in a system having a plurality of channels
US8666064B2 (en) Endecryptor capable of performing parallel processing and encryption/decryption method thereof
US7043017B2 (en) Key stream cipher device
JP3029381B2 (ja) データ変換装置
US8422668B1 (en) Table lookup operation on masked data
US6278780B1 (en) Method of and an apparatus for generating internal crypto-keys
US5671284A (en) Data encryptor having a scalable clock
JP4767985B2 (ja) 複数モードでのaes暗号化または復号の単一命令での実行
US7106860B1 (en) System and method for executing Advanced Encryption Standard (AES) algorithm
US20070266067A1 (en) Pseudo Random Number Generator
KR20020006475A (ko) 암호화장치, 복호장치 및 확대키 생성장치, 확대키생성방법 및 기록매체
JP2002508851A (ja) ブロック符号化方法を実行するための装置
AU4105801A (en) Block encryption device using auxiliary conversion
KR20050004187A (ko) 데이터 변환 장치, 데이터 변환 방법 및 데이터 변환 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
TW200421098A (en) Cryptographic apparatus for supporting multiple modes
US7123720B2 (en) Key scheduler for encryption apparatus using data encryption standard algorithm
US8594322B2 (en) Encoding/decoding apparatus
JP2005004048A (ja) 鍵拡張装置、鍵拡張方法および鍵拡張プログラム
US6931127B2 (en) Encryption device using data encryption standard algorithm
JP2003288012A (ja) 暗号装置及びデータ転送制御装置
JP2003288009A (ja) 暗号装置及びデータ転送制御装置
KR20010041202A (ko) 이산 데이터 블록 암호화 방법
JP3841008B2 (ja) 暗号装置及びデータ転送制御装置
WO2010109516A1 (ja) データ処理装置及びデータ処理方法
JPH07261662A (ja) 暗号演算回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041111

A977 Report on retrieval

Effective date: 20060320

Free format text: JAPANESE INTERMEDIATE CODE: A971007

A131 Notification of reasons for refusal

Effective date: 20060418

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20060615

Free format text: JAPANESE INTERMEDIATE CODE: A523

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060615

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060718