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

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

Info

Publication number
JP2003288009A
JP2003288009A JP2002092088A JP2002092088A JP2003288009A JP 2003288009 A JP2003288009 A JP 2003288009A JP 2002092088 A JP2002092088 A JP 2002092088A JP 2002092088 A JP2002092088 A JP 2002092088A JP 2003288009 A JP2003288009 A JP 2003288009A
Authority
JP
Japan
Prior art keywords
key
circuit
data
processing
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
JP2002092088A
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 JP2002092088A priority Critical patent/JP2003288009A/ja
Publication of JP2003288009A publication Critical patent/JP2003288009A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 共通鍵暗号化方式の暗号強度の低下、回路規
模の増大及び処理速度の低下を抑えることができる暗号
装置及びデータ転送制御装置を提供する。 【解決手段】 暗号装置100は、暗号処理回路11
0、鍵記憶回路120、鍵選択回路130を含む。暗号
処理回路110は、共通鍵暗号化方式により供給される
1セット分の鍵を用いて暗号処理又は復号処理を行う。
鍵記憶回路120は、複数の共通秘密鍵から共通暗号化
方式により生成された複数セットの鍵を記憶する。鍵選
択回路130は、所与の鍵選択信号に基づいて、鍵記憶
回路120に記憶された複数セットの鍵の中から1セッ
トの鍵を選択し、暗号処理回路110に供給する。

Description

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (1)

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

Family

ID=29237011

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2003288009A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007324733A (ja) * 2006-05-30 2007-12-13 Mitsubishi Electric Corp データ変換装置
JP2009192630A (ja) * 2008-02-12 2009-08-27 Kawasaki Microelectronics Inc 暗号化装置および復号化装置
JP2010185982A (ja) * 2009-02-10 2010-08-26 Toshiba Storage Device Corp 暗号化装置、復号化装置及び記憶装置
JP2015033082A (ja) * 2013-08-06 2015-02-16 シャープ株式会社 暗号処理装置および暗号処理システム
US9058507B2 (en) 2007-02-20 2015-06-16 Megachips Corporation Signal processor with an encrypting or decrypting device in a memory system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007324733A (ja) * 2006-05-30 2007-12-13 Mitsubishi Electric Corp データ変換装置
US9058507B2 (en) 2007-02-20 2015-06-16 Megachips Corporation Signal processor with an encrypting or decrypting device in a memory system
JP2009192630A (ja) * 2008-02-12 2009-08-27 Kawasaki Microelectronics Inc 暗号化装置および復号化装置
JP2010185982A (ja) * 2009-02-10 2010-08-26 Toshiba Storage Device Corp 暗号化装置、復号化装置及び記憶装置
JP2015033082A (ja) * 2013-08-06 2015-02-16 シャープ株式会社 暗号処理装置および暗号処理システム

Similar Documents

Publication Publication Date Title
US5835599A (en) Muti-cycle non-parallel data encryption engine
JP3029381B2 (ja) データ変換装置
US7043017B2 (en) Key stream cipher device
US5671284A (en) Data encryptor having a scalable clock
KR100806468B1 (ko) 데이터 변환 장치, 데이터 변환 방법 및 데이터 변환 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체
US7123720B2 (en) Key scheduler for encryption apparatus using data encryption standard algorithm
US6732271B1 (en) Method of deciphering ciphered data and apparatus for same
US6931127B2 (en) Encryption device using data encryption standard algorithm
JP3769804B2 (ja) 解読化方法および電子機器
JP2003288009A (ja) 暗号装置及びデータ転送制御装置
KR100456599B1 (ko) 병렬 디이에스 구조를 갖는 암호 장치
Blaze et al. The MacGuffin block cipher algorithm
JP2003288012A (ja) 暗号装置及びデータ転送制御装置
JP3841008B2 (ja) 暗号装置及びデータ転送制御装置
US20240097880A1 (en) High-speed circuit combining aes and sm4 encryption and decryption
JP2004004603A (ja) 拡大鍵生成装置、暗号化装置および暗号化システム
JP2003288011A (ja) 暗号装置及びデータ転送制御装置
EP1629626A1 (en) Method and apparatus for a low memory hardware implementation of the key expansion function
JP3190648B2 (ja) データ暗号化装置及びその方法
KR100316025B1 (ko) 데이터 암호 표준 알고리즘을 이용한 암호 및 복호 장치
US20240007283A1 (en) Cryptographic device using transposition function and/or mapping function and cryptographic method thereof
KR102393958B1 (ko) 암호화 알고리즘이 적용된 시스템에서의 데이터 처리 방법
KR100546777B1 (ko) Seed 암/복호화 장치, 암/복호화 방법, 라운드 처리 방법, 이에 적합한 f함수 처리기
TW202403576A (zh) 密碼裝置及其密碼方法
JPH0744375A (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

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060418

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060615

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