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
Links
Abstract
模の増大及び処理速度の低下を抑えることができる暗号
装置及びデータ転送制御装置を提供する。 【解決手段】 暗号装置100は、暗号処理回路11
0、鍵記憶回路120、鍵選択回路130を含む。暗号
処理回路110は、共通鍵暗号化方式により供給される
1セット分の鍵を用いて暗号処理又は復号処理を行う。
鍵記憶回路120は、複数の共通秘密鍵から共通暗号化
方式により生成された複数セットの鍵を記憶する。鍵選
択回路130は、所与の鍵選択信号に基づいて、鍵記憶
回路120に記憶された複数セットの鍵の中から1セッ
トの鍵を選択し、暗号処理回路110に供給する。
Description
タ転送制御装置に関する。
像や音楽等各種データのディジタル化が進み、映像等の
データをハードディスク装置等の大容量記憶媒体に保存
して利用することができる。そのため、ハードディスク
装置等へのアクセスを制御するインタフェースIC(In
tegrated Circuit)(広義には、データ転送制御装置)
に対し、データの機密保護の要求が高まっている。
保護は、暗号化により実現することができる。この場
合、インタフェースICに採用する暗号方式は、その安
全性に加え、処理の高速化や低コスト化が重要な要素と
なる。
化方式が幅広く用いられている。共通鍵暗号化方式は、
暗号化と復号化において同一の鍵を用いる。共通鍵暗号
化方式の中でも、DES(Data Encryption Standard)
は、1977年に米国情報処理標準規格(FEDERAL INFO
RMATION PROCESSING STANDARDS PUBLICATION:FIPS
−PUB)46−3として規定され、最も広く利用され
ている方式の1つである。
向上により、DESの暗号強度が、従来ほど強固なもの
ではなくなっている。このため、DESに代えてトリプ
ルDESが利用されることがある。
するために、DESをSDES(Sin gle DES)、トリ
プルDESをTDES(Triple DES)という。
回繰り返す暗号化方式であり、SDESのアルゴリズム
を流用することができる。更に、暗号鍵の鍵長を拡張す
るのと同様の効果を得ることができ、比較的容易に暗号
強度を高めることができる。
ンタフェースICに実装する場合、暗号処理回路と、共
通秘密鍵を用いて生成した鍵を該暗号処理回路に供給す
る鍵生成処理回路とを設ける必要があり、回路規模が大
きくなるという問題がある。またSDESやTDESの
暗号処理において、鍵生成処理に伴う処理速度の低下を
招くという問題がある。これに対して、生成した鍵を予
め記憶させることで、ある程度これらの弊害を回避する
ことができるが、逆に暗号強度を低下させてしまうとい
う問題がある。
てなされたものであり、その目的とするところは、共通
鍵暗号化方式の暗号強度の低下、回路規模の増大及び処
理速度の低下を抑えることができる暗号装置及びデータ
転送制御装置を提供することにある。
に本発明は、複数の共通秘密鍵を用いて共通鍵暗号化方
式により生成された複数セットの鍵を記憶する鍵記憶回
路と、所与の鍵選択信号に基づいて、前記鍵記憶回路に
記憶された複数セットの鍵の中から1セットの鍵を選択
する鍵選択回路と、前記鍵選択回路によって選択された
1セットの鍵を用いて、データブロック単位で入力され
る入力データに対して所与の暗号処理を行って変換デー
タを生成する暗号処理回路とを含む暗号装置に関係す
る。
で設定された設定値に基づいて生成されてもよい。また
鍵選択信号は、ハードウェア若しくはソフトウェアで設
定された信号として、暗号装置の外部から与えられるも
のであってもよい。
おくようにしたので、鍵の生成に伴う時間を省くことが
できる。また鍵生成処理のための回路とを省略して回路
規模の増大を抑えることができる。しかも、複数セット
分を記憶し、鍵選択信号により選択したいずれか1セッ
トの鍵を用いて、暗号処理に使用する鍵を供給するよう
にしたので、たとえ1つの鍵が特定されたとしても他の
鍵を用いることができるので暗号装置の暗号強度を維持
することができる。
鍵選択信号は、装置固有の識別情報に基づいて生成され
てもよい。
有の識別情報(番号)であってもよいし、当該暗号装置
が含まれる装置固有の識別情報であってもよい。また当
該暗号装置が実現される回路の識別情報や、該回路が形
成されるウェハの識別情報(例えば製造ロット)などが
考えられる。
報を用いて鍵選択信号を生成するようにしたので、たと
え1つの装置の鍵が特定されたとしても他の装置の機密
性を維持することができる。また、装置ごとの識別情報
に基づいて鍵選択信号を生成することで、暗号処理で用
いられた鍵セットを特定することができるので、該暗号
処理で暗号化されたデータを復号化することもできる。
鍵選択信号は、データブロックのカウント数に基づいて
生成されてもよい。
装置が所与のアクセス単位に前記変換データの書き込み
又は読み出しを行う場合において、前記所与の鍵選択信
号は、そのアクセス単位の記憶位置情報に基づいて生成
されてもよい。
記憶装置のアクセス単位はセクタであり、前記アクセス
単位の記憶位置情報はセクタ番号であってもよい。
ロックのカウント数、変換データの書き込み又は読み出
しが行われる記憶装置のアクセス単位、又はセクタ番号
に基づいて鍵選択信号を生成するようにしたので、ある
データブロック、アクセス単位、或いはセクタの鍵が特
定されたとしても他のデータブロック、アクセス単位、
或いはセクタの鍵が特定されたことにはならず、機密性
を維持することができる。また、暗号処理で用いられた
鍵セットを特定することができるので、該暗号処理で暗
号化されたデータを復号化することもできる。
鍵選択信号は、装置固有の識別情報、データブロックの
カウント数及び所与の記憶装置が所与のアクセス単位に
前記変換データの書き込み又は読み出しを行う場合にお
けるアクセス単位の記憶位置情報の組み合わせに基づい
て生成されてもよい。
情報、処理単位であるデータブロックのカウント数、変
換データの書き込み又は読み出しが行われる記憶装置の
アクセス単位(例えばセクタ)の組み合わせにより鍵選
択信号を生成するようにしたので、鍵の特定をより困難
にし、機密性を維持することができる。また、暗号処理
で用いられた鍵セットを特定することができるので、該
暗号処理で暗号化されたデータを復号化することもでき
る。
回路は、前記所与の鍵選択信号がa(aは正の整数)ビ
ットのとき、2aより小さいb(bは正の整数)セット
の鍵を記憶することができる。
により2aセットの鍵のいずれかのセットを選択するこ
とができるにもかかわらず、2aより小さいbセットの
鍵の中からいずれかのセットの鍵を選択するようにし
た。したがって、鍵選択信号に冗長性を持たせることが
できるので、鍵の特定をより困難にすることができる。
理回路は、前記鍵選択回路からその都度供給された鍵を
用いた前記所与の暗号処理を、c(cは2以上の整数)
回繰り返し行って変換データを生成し、前記鍵選択回路
は、前記所与の選択信号に基づいて、前記鍵記憶回路に
記憶された複数セットの鍵の中から相異なるcセットの
鍵を選択するための内部鍵選択信号を生成する内部鍵信
号生成回路を含むと共に、前記内部鍵選択信号に基づい
て前記鍵記憶回路に記憶された複数セットの鍵の中から
選択したcセットの鍵を、1セットずつ、前記暗号処理
回路に供給することができる。
所与の暗号処理が複数回行われるため、暗号強度をより
高めることができる。特に、TDESのようにSDES
の処理を複数回繰り返す場合には、各々のSDESの処
理で同一セットの鍵が選択されることがなくなり、暗号
強度を維持することができる。
暗号処理が複数段の処理を含み、各段の処理にはそれぞ
れ対応した鍵が適用される場合において、前記鍵選択回
路は、前記所与の鍵選択信号に基づいて選択された1セ
ットの鍵を前記所与の暗号処理の各段の処理に適用する
順序を、所与の鍵選択値に基づいて変更することができ
る。
号とは別個に与えられるもので、装置内部で生成するよ
うにしてもよいし、装置外部から与えられるようにして
もよい。
の適用順序が固定される暗号化方式に限らず、複数の鍵
が適用される暗号化方式において、鍵の特定を困難に
し、機密性を大幅に向上させることができる。
暗号処理に代えて、所与の復号処理を行うことができ
る。
損なうことなく暗号化されたデータを、高速、かつ簡素
な構成で復号化することができる。
メモリと、外部に接続された所与の記憶装置にアクセス
するためのインタフェース回路と、前記メモリと前記イ
ンタフェース回路との間で転送されるデータに対し、暗
号処理又は復号処理を行う上記いずれか記載の暗号装置
とを含むことができる。
く、高速に暗号処理又は復号処理を行うデータ転送制御
装置の低コスト化を図ることができる。
について図面を用いて詳細に説明する。なお、以下に説
明する実施の形態は、特許請求の範囲に記載された本発
明の内容を不当に限定するものではない。また以下で説
明される構成の全てが本発明の必須構成要件であるとは
限らない。
に対し、共通鍵暗号化方式により生成された鍵を用いた
複数段の演算処理を行って変換データを生成する。本実
施形態における暗号装置は、鍵の適用順序を切り替える
ことで、暗号処理及び復号処理を行うことができるよう
になっている。以下では、暗号装置の共通鍵暗号化方式
がDESである場合について説明する。
て説明する。
号装置の機能ブロック構成の概要を示す。
成処理部14とを含む。
り64ビットの入力データ(平文)に対して、非線形変
換と転置処理等を16段繰り返し、変換データ(暗号
文)を出力する。鍵生成処理部14は、64ビットの共
通秘密鍵を用いて、暗号処理部12の各段の処理で使用
される48ビットの(サブ)鍵K1〜K16を生成する。
を示す。
で64ビットの入力データMが入力されると、該入力デ
ータMに対し、初期転置(Initial Permutation:I
P)を行ってランダム化する(ステップS10)。初期
転置は、図3に示すように、入力ビット位置に応じて、
出力させるビット位置を変えて出力する。例えば、入力
ビットの第58ビットを出力の第1ビットに転置し、ま
た入力の第1ビットを出力の第40ビットに転置する。
ット分割され、上位32ビットを第1段入力データ
L0、下位32ビットを第1段入力データR0とする(ス
テップS11、S12)。
用いた非線形変換fにより非線形変換データf(R0,
K1)に変換される(ステップS20−1)。
示す。
数)段の非線形変換fの機能ブロック図を示している。
(E)により、拡大転置データERi-1に変換される
(ステップS50)。拡大転置(E)は、図5に示すよ
うに、所定のビットを重複させて、32ビットの第i段
入力データRi-1を48ビットの拡大転置データERi-1
に変換する。図5では、例えば入力の第1ビットを出力
の第2ビット及び第48ビットから出力させ、入力の第
32ビットを出力の第1ビット及び第47ビットから出
力させることを示している。
Kiとの間で排他的論理和演算(XOR)が行われ(ス
テップS51)、それぞれ6ビットずつSBOX0〜7
に入力される。ここで、第i段用の鍵Kiは、図1に示
すように暗号処理部12に対応して設けられた鍵生成処
理部14により生成された第1段〜第16段の鍵K1〜
K16のうちの第i段用のものである。
ビットに対して、圧縮換字変換を行う(ステップS52
−0〜S52−7)。
換字変換について説明するための図を示す。
により4ビットデータが特定される。ロウ番号は、入力
される6ビットのうち最初(最も左端)の1ビットと最
後(最も右端)の1ビットとにより特定される。カラム
番号は、入力される6ビットのうち残りの4ビットによ
り特定される。そして、これらロウ番号及びカラム番号
により特定される4ビットデータを、入力された6ビッ
トに対応させて変換する。
用の鍵Kiとの間で排他的論理和演算の結果が、6ビッ
トの「101000」とすると、ロウ番号は(10)2
であるため2行目が特定され、カラム番号は(010
0)2であるため4行目が特定される。したがって、S
BOX0に入力された6ビットの「101000」は、
4ビットの「1101(=13)」に変換される。
SBOX1〜SBOX7についてもそれぞれロウ番号及
びカラム番号により同様の変換が行われる。
れた4ビットの変換データは、転置処理(P)が行われ
る(ステップS53)。転置処理は、図7に示すよう
に、入力ビット位置に応じて、出力させるビット位置を
変えて出力する。例えば、入力ビットの第16ビットを
出力の第1ビットに転置し、また入力の第1ビットを出
力の第9ビットに転置する。
非線形変換データERi-1(=f(Ri-1,Ki))が生
成される。
づいて生成された非線形変換データf(R0,K1)は、
第1段入力データL0との間で排他的論理和演算が行わ
れ(ステップS21−1)、その演算結果が第2段入力
データR1になる(ステップS22−1)。
力データR0になる(ステップS23−1)。
ら第2段入力データL1、R1が生成されるまでの処理を
SDESの暗号処理の第1段の処理(所与の演算処理)
とすると、同様の処理が第16段まで行われる。各段の
非線形変換においては、段ごとに適用される鍵が変更さ
れる。
入力データL16、R16は、以下のようになる(ステップ
S23−16、S22−16)。
ビットとを入れ替えて、入替データL16´を第16段入
力データR16にし(ステップS24)、入替データR16
´を第16段入力データL16にして(ステップS2
5)、64ビットデータとして最終転置(IP-1)を行
う(ステップS26)。
対応しており、図8に示すように初期転置でビット位置
を入れ替えたデータを、元に戻す。例えば入力の第1ビ
ットを出力の第58ビットに転置し、また入力の第40
ビットを出力の第1ビットに転置する。
に、非線形変換を行うための鍵の生成フローについて説
明する。各段に供給される鍵は、鍵生成処理部14にお
いて生成される。
図を示す。
密鍵K0が入力されると、該共通秘密鍵K0に対し、選択
転置(PC−1)を行ってランダム化する(ステップS
60)。選択転置は、図10に示すように、入力ビット
位置に応じて、出力させるビット位置を変えて出力し、
64ビットの共通秘密鍵K0からパリティが除去された
56ビットの選択転置データを出力する。例えば、入力
の第57ビットを出力の第1ビットに転置し、また入力
の第1ビットを出力の第8ビットに転置する。
ット分割され、上位28ビットを第1段入力データ
C0、下位28ビットを第1段入力データD0とする(ス
テップS61、S62)。
トが行われて、第2段入力データC1となる(ステップ
S63−1、S64−1)。また、第1段入力データD
0は左方向に巡回シフトが行われて、第2段入力データ
D1となる(ステップS65−1、S66−1)。ここ
で、巡回シフトを行うビット数は、図11に示すように
DESの処理段ごとに決められている。例えば、第1段
の場合は1ビット、第3段の場合は2ビットだけ、巡回
シフトが行われることを示している。
成された第2段入力データC1、D1に対して圧縮転置
(PC−2)を行い(ステップS67−1)、第1段の
鍵K1が生成される。
ビットの第2段入力データC1、D1からなる56ビット
のデータを48ビットのデータに変換する。この圧縮転
置は、図12に示すように、入力ビット位置に応じて、
出力させるビット位置を変えて出力する。例えば、入力
の第14ビットを出力の第1ビットに転置し、また入力
の第1ビットを出力の第5ビットに転置する。
タが、第1段の鍵K1として、暗号処理部12の第1段
の非線形変換に用いられる。
ら第2段入力データC1、D1が生成されるまでの処理を
SDESの鍵生成の第1段の処理とすると、同様の処理
が第16段まで行われる。このように、各段において生
成された鍵K1〜K16は、暗号処理部12の暗号処理の
各段に適用される。
復号装置の機能ブロック構成の概要を示す。
成処理部74とを含む。
の入力データ(暗号文)に対して、非線形変換と転置処
理等を16段繰り返し、変換データ(平文)を出力す
る。鍵生成処理部74は、64ビットの共通秘密鍵か
ら、復号処理部72の各段の処理で用いる48ビットの
(サブ)鍵K1〜K16を生成する。
と逆の手順をとることで実現することができる。この場
合、復号処理部72の各段の鍵は、暗号処理とは逆に鍵
K16、K15、・・・、K1の順に適用される。
部14の左巡回シフトを右巡回シフトに変更すること
で、各段ごとに鍵K16、K15、・・・、K1の順で生成
される。
着目すれば、暗号処理の各段の処理内容と共通させるこ
とができる。本実施形態における暗号装置は、暗号処理
を行う回路を共通化し、該回路を用いて復号処理を行う
ように構成している。
数のブロックに分割され、ブロックデータ単位で暗号処
理又は復号処理が行われる。したがって、同じブロック
データの場合には、変換データも同じになる可能性があ
り、鍵が特定されやすくなる。そのため、SDESで
は、CBC(Cipher Block Chaining)モードやCFB
(Cipher FeedBack)モード等の種々の暗号化モードが
利用される。
処理の機能ブロック図を示す。
より、ブロックデータ単位に暗号処理が行われて変換デ
ータが生成される。DES演算部82において暗号処理
が行われる平文のj番目のデータブロックをMjとする
と、該データブロックMjと1つ前のデータブロックの
変換データCj-1との間で排他的論理和演算が行われ、
その演算結果がDES演算部82に入力される。DES
演算部82は、その演算結果について暗号処理を行って
変換データCjを生成する。変換データCjは暗号文とし
て出力されると共に、レジスタ84に保持される。平文
の次のデータブロックが入力されたときには、レジスタ
84に保持された前のブロックの変換データを用いて生
成された演算データがDES演算部82に入力される。
により、ブロックデータ単位に復号処理が行われて変換
データ(復号データ、平文)が生成される。DES-1演
算部92において復号処理が行われる暗号文のj番目の
データブロックをCjとすると、該データブロックCjが
DES-1演算部92において復号化される。DES- 1演
算部92で復号化された変換データに対して、1つ前の
データブロックの変換データCj-1との間で排他的論理
和演算を行った演算結果が、変換データ(復号データ)
Mjとなる。変換データCjは、暗号文として復号処理部
90に入力されると共に、レジスタ94に保持される。
暗号文の次のデータブロックが入力されたときには、レ
ジスタ94に保持された前のブロックの変換データを用
いて生成された演算結果が復号文のデータブロックMj
として出力される。
であっても、その前のデータブロックの内容に応じた演
算結果に対して暗号処理が行われるため、複雑な構成を
とることなく、鍵の特定を困難にすることができる。
能力の向上が著しく、上述したSDESの安全性には限
界がある。そのため更に安全性を高めるために、SDE
Sを3回ループさせるTDESがある。
示す。
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を出力する。
0Cが全て異なる場合、鍵長は192(=64×3)ビッ
トとなり、更に暗号強度を高めることができる。
は、図15に示した暗号処理とは逆に、復号処理、暗号
処理、復号処理の順に行えばよい。
示す。
号処理回路110と、鍵記憶回路120と、鍵選択回路
130とを含む。暗号処理回路110は、上述したSD
ESの第1段から第16段までの各段の処理を行うこと
ができる。なお、暗号処理回路110は、SDESの処
理を繰り返すことで、上述したTDESの処理を行うこ
とができる。
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を記憶する。
基づいて、鍵記憶回路120に記憶された複数セットの
鍵の中から1セットの鍵(例えばKEY_N1〜KEY
_N16)を選択し、暗号処理回路110に供給する。
より具体的には、鍵選択回路130は、暗号処理回路1
10で行われるSDESの各段の処理(例えば第i段)
に対応した鍵(例えばKEY_Ni)を、選択した1セ
ットの鍵の中から出力する。ここで所与の鍵選択信号と
しては、例えばハードウェアで設定された信号であって
もよいし、ソフトウェアで設定された信号であってもよ
い。またこれらの信号が、暗号装置200の外部から与
えられる構成とすることも可能である。
セットを記憶しておくようにしたので、鍵の生成に伴う
時間を省くことができる。また鍵生成処理のための回路
とを省略して回路規模の増大を抑えることができる。し
かも、複数セット分を記憶し、鍵選択信号により選択し
たいずれか1セットの鍵を用いて、暗号処理に使用する
鍵を供給するようにしたので、たとえ1セット分の鍵が
特定されたとしても他のセットの鍵を用いることができ
るので暗号装置の暗号強度を維持することができる。
ら、固定化されないことが望ましく、例えば以下のよう
に生成することができる。このような鍵選択信号は、ハ
ードウェアで生成されたり、ソフトウェアで設定された
設定値に基づいて生成されてもよい。また外部に設けら
れたスイッチ操作により、ユーザが入力するように構成
することも可能である。また鍵選択信号は、ハードウェ
ア若しくはソフトウェアで設定された信号として、暗号
装置の外部から与えられるものであってもよい。
タ132を含むことができる。そして、識別情報レジス
タ132の設定値に基づいて鍵選択信号を生成すること
ができる。したがって、識別情報レジスタ132に暗号
装置固有の識別情報(回路ID)を設定することで、鍵
の特定を困難にすることができる。
は、例えばIEEE1394のDTCP(Digital Tran
smission Content Protection)のネゴシエーションに
おいて用いられるデバイスIDを採用することができ
る。このデバイスIDは、CPU等のホストにより所与
のレジスタ領域に書き込まれる。したがって、例えばリ
セット直後にその設定値を読み出し、該設定値を識別情
報レジスタ132に書き込むようにすればよい。
100内に設けることなく、外部からその設定値を入力
させるようにしてもよい。例えばフラッシュメモリに書
き込まれた識別情報を読み出して、該識別情報に対応し
た鍵セットを選択するようにしてもよい。
路が形成されるウェハや製造ロットに対応した情報を採
用することができる。
を生成することで、暗号処理で用いられた鍵セットを特
定することができるので、該暗号処理で暗号化されたデ
ータを復号化することもできる。
いて鍵選択信号を生成するようにしたので、たとえ1つ
の装置の鍵が特定されたとしても他の装置の機密性を維
持することができる。
択信号 暗号装置100では、データブロック単位で暗号処理又
は復号処理が行われる。そこで、処理対象のデータブロ
ックをカウントし、そのカウント数に基づいて鍵選択信
号を生成することで、鍵の特定を困難にすることができ
る。
ようにデータ制御回路140を含むことができる。デー
タ制御回路140は、暗号処理回路110から出力され
た変換データについて、例えば所与の外部記憶装置15
0に対する書き込み制御を行う。またデータ制御回路1
40は、所与の外部記憶装置150に対する読み出し制
御を行い、読み出されたデータを暗号処理回路110に
出力し、復号処理させる。
セス制御回路142と、データブロックカウント回路1
44と、鍵選択信号生成回路146とを含むことができ
る。アクセス制御回路142は、暗号処理回路110の
処理単位であるデータブロック単位で、外部記憶装置1
50に対する書き込み制御及び読み出し制御を行う。デ
ータブロックカウント回路144は、書き込み制御又は
読み出し制御が行われたデータブロックの数をカウント
する。鍵選択信号生成回路146は、データブロックカ
ウント回路144によりカウントされたデータブロック
数に基づいて鍵選択信号を生成する。
(A)に示すように、予めデータブロックのカウント数
ごとに対応した鍵選択信号を生成するようにしてもよ
い。例えば、データブロックカウント回路144により
カウントされたデータブロック数がCT0のとき、値が
KS0の鍵選択信号が生成される。鍵選択回路130で
は、鍵選択信号の値KS0に対応した鍵セットが選択さ
れる。
(B)に示すように、データブロックのカウント数が表
される複数ビットのデータのうち、例えば下位3ビット
に対応した鍵選択信号を生成するようにしてもよい。す
なわち、データブロックのカウント数をビット表現した
場合に、下位3ビットが「000」のときは値がKS0
の鍵選択信号を生成し、下位3ビットが「111」のと
きは値がKS7の鍵選択信号を生成する。
基づいて鍵選択信号を生成することで、暗号処理で用い
られた鍵セットを特定することができるので、該暗号処
理で暗号化されたデータを復号化することもできる。
00内に設けることなく、外部からデータブロックのカ
ウント数を入力させ、暗号装置100内で該データブロ
ックのカウント数に対応した鍵選択信号を生成するよう
にしてもよい。或いは、外部からデータブロックのカウ
ント数に基づいて生成された鍵選択信号を入力させるよ
うにしてもよい。
定されたとしても他のデータブロックの鍵が特定された
ことにはならず、機密性を維持することができる。
く鍵選択信号 暗号装置によって暗号化されたデータが、所与の外部記
憶装置に保存されたり、該外部記憶装置から読み出され
たデータが暗号装置によって復号化される場合には、外
部記憶装置のアクセス単位(セクタや、メモリのワード
ラインなど)の記憶位置情報(セクタ番号や、メモリの
アドレスなど)に基づいて、鍵選択信号を生成すること
ができる。この場合は、セクタに応じて、使用される鍵
セットが異なるため、鍵の特定を困難にすることができ
る。
て鍵セットが選択される暗号装置の構成の一例を示す。
は同一符号を付し、適宜説明を省略する。
鍵記憶回路120、鍵選択回路130、データ制御回路
182、カウンタ回路184を含むことができる。
10から出力された変換データについて、例えば所与の
外部記憶装置150に対する書き込み制御を行う。また
データ制御回路182は、所与の外部記憶装置150に
対する読み出し制御を行い、読み出されたデータを暗号
処理回路110に出力し、復号処理させることができ
る。
クに基づいてカウント数をカウントアップする。カウン
ト数は、鍵選択信号として鍵選択回路130に対して出
力されると共に、データ制御回路182に対しても出力
される。
複数セットの鍵の中から1セットを選択する。データ制
御回路182は、外部記憶装置150のセクタの番号
と、カウンタ回路184からのカウント数とを記憶す
る。これにより、図19(A)に示すように、データ制
御回路182によりアクセスされたセクタ番号と、鍵選
択回路130において選択された鍵選択信号とを関連付
けることができる。
れる外部記憶装置150の記憶位置情報に基づいて選択
された鍵セットを用いて暗号処理又は復号処理を行わせ
ることができる。また、セクタ番号と鍵選択信号とを対
応付けておくことができるので、暗号処理で用いられた
鍵セットを容易に特定することができ、該暗号処理で暗
号化されたデータを復号化することができる。なお、出
力されるカウント数は規則性を有するため、所与のスク
ランブルをかけて(例えばデコード出力を行って)変換
しておくことが望ましい。
ブロックとカウント数とを予め対応付けておくことで、
カウント数のみで鍵選択信号の選択制御を行うことも可
能である。この場合、各セクタ内の特定のブロックは同
じ鍵セットが用いられることになるが、鍵の特定を困難
にすることができる。
84を設けることなく、図19(B)に示すようにデー
タ制御回路182によりアクセスされるセクタ番号が表
される複数ビットのデータのうち、例えば下位2ビット
に対応した鍵選択信号を生成するようにしてもよい。す
なわち、セクタ番号をビット表現した場合に、下位2ビ
ットが「00」のときは値がKS0の鍵選択信号を生成
し、下位2ビットが「11」のときは値がKS3の鍵選
択信号を生成する。このようにセクタ番号に基づいて鍵
選択信号を生成することで、暗号処理で用いられた鍵セ
ットを特定することができるので、該暗号処理で暗号化
されたデータを復号化することもできる。
0内に設けることなく、外部からセクタ番号を入力させ
て、該セクタ番号に対応した鍵選択信号を生成するよう
にしてもよい。或いは、外部から入力されるカウント数
に基づいて生成された鍵選択信号を入力させるようにし
てもよい。
データの鍵が特定されたとしても他のセクタにアクセス
されたデータの鍵が特定されたことにはならず、機密性
を維持することができる。
タブロックのカウント数及び所与の記憶装置が所与のア
クセス単位に前記変換データの書き込み又は読み出しを
行う場合におけるアクセス単位の記憶位置情報(例えば
セクタ番号)の組み合わせに基づいて、鍵選択信号を生
成するようにしてもよい。すなわち、装置ID、データ
ブロックのカウント数及びセクタ番号の全て、或いは装
置ID、データブロックのカウント数及びセクタ番号の
うちいずれか2つに基づいて、鍵選択信号を生成するよ
うにしてもよい。この場合、鍵の特定をより困難にする
ことができるので、機密性を向上させることができる。
回路120にb(bは正の整数)セットの鍵が記憶され
ているものとする。bが2aに等しい場合、鍵選択信号
と、鍵記憶回路120に記憶される鍵セットとが1対1
に対応付けられることになる。この場合、鍵選択信号か
ら鍵セットを簡単に特定することができるようになるた
め、上述したように鍵選択信号を適宜切り替えて供給す
るようにしても、鍵選択信号から鍵セットが特定され
る。
に2aより小さいbセットの鍵を記憶させて、鍵選択信
号に冗長性を持たせるようにしている。
1000・・・・」のうち上位第2及び第3ビットの
「10」に対応する所与の鍵セットKEY_N1〜KE
Y_N16が、鍵選択回路130において選択されるも
のとする。この場合、鍵選択信号の値が「110011
1・・・」でもよく、上位第2及び第3ビットが「1
0」であれば、所与の鍵セットKEY_N1〜KEY_
N16が選択されることになる。
じ鍵セットが選択される場合でも、鍵選択信号が異なる
ため、鍵の特定をより困難にすることができるようにな
る。
は図20に示す鍵選択回路130は、鍵選択信号により
選択された1セットの鍵について、所与の鍵選択値に基
づいて暗号処理の各段の処理への適用順序を変更するこ
ともできる。この鍵選択値は、所与の鍵選択信号とは別
個に与えられるもので、装置内部で生成するようにして
もよいし、装置外部からハードウェア若しくはソフトウ
ェアにより生成された値として与えられるようにしても
よい。これにより、例えばSDESのように鍵の適用順
序が固定される暗号化方式に限らず、複数の鍵が適用さ
れる暗号化方式において、鍵の特定を困難にし、機密性
を大幅に向上させることができる。
をc(cは2以上の整数)回繰り返すように構成しても
よい。例えばSDESの処理を3(c=3)回繰り返し
行うことでTDESによる暗号処理又は復号処理を行う
ことができる。したがって、SDESの処理を行うたび
に鍵セットを変えることによって、TDESの処理を行
うことができる。
Sの処理において、3つの鍵セットのうち2つの鍵セッ
トについて重複して同じ鍵セットが選択されてしまう場
合がある。この場合には、実質的にSDESと同程度の
暗号強度となり、TDESにおける十分な暗号強度を得
ることができない。
0は、鍵選択信号変換回路134を含み、鍵選択信号変
換回路134は、1つの鍵選択信号から相異なる3つの
鍵セットを選択するための内部鍵選択信号を生成するよ
うに構成してもよい。
上述した鍵選択信号により選択された鍵セットが偶然に
重複してしまうといった状況を回避することができる。
選択処理について説明するための模式図を示す。
一部分には同一符号を付し、適宜説明を省略する。
から内部鍵選択信号を生成する。このとき鍵選択信号変
換回路134は、SDESのループ回数分(3つ)だけ
内部鍵選択信号(KA、KB、KC)を生成する。
のようにして、9ビットの鍵選択信号K[8:0]から3ビッ
トの内部鍵選択信号KA[2:0]、KB[2:0]、
KC[2:0]を生成することができる。
[i]のビット反転、シフト量SHFTをK[5]とし
ている。
[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を割り当てておくことで、重複して鍵セットが
選択されることはない。
DESのループ回数に応じた内部鍵選択信号に基づい
て、鍵記憶回路120に記憶された複数セットの鍵の中
から1つの鍵セットを選択する。また鍵選択回路130
は、選択した鍵セットの中から、SDESの処理段数に
応じた鍵を暗号処理回路110に供給する。
TDESの処理を行うことができる。
択信号変換回路134及びデータ制御回路140は、暗
号装置100に全て含むように構成してもよいし、これ
らは暗号装置100の任意の構成要素とすることができ
る。
処理又は復号処理を行う暗号装置の詳細な構成例につい
て説明する。
の暗号処理(復号処理)を行うSDESモード又はTD
ESの暗号処理(復号処理)を行うTDESモードを切
り替え可能に構成されている。TDESの暗号処理及び
復号処理は、上述のように機密性を十分に確保すること
ができるが、SDESの回路に比べて処理速度が低下す
るという欠点がある。その一方で、SDESによる暗号
化の強度でも機密性は十分保たれることから、モードを
切り替えることで、両モードの利点を生かすことができ
る。
は、同様の構成の2つのDES演算回路により、SDE
Sの16段分の処理をパイプライン動作で行うように構
成している。なお、パイプライン動作するDES演算回
路は3つ以上でもよいが、以下では2つの場合について
説明する。
のパイプライン動作を行うSDESの処理を複数回ルー
プさせることでTDESによる暗号処理又は復号処理を
実現する。こうすることで、回路規模の増大を招くこと
なくTDESによる暗号処理及び復号処理を実現し、か
つより高速なSDESによる処理を実現する。
成処理を行わず、上述した鍵生成処理により予め生成し
た鍵を保持し、SDESの各段の処理に適用させるよう
にしている。これにより、パイプライン動作中に、鍵生
成処理を行う必要がなくなるので、パイプライン処理の
高速化を図ることができる。
れ、これらがパイプライン動作を行う暗号装置について
説明するが、3段以上(L≧3)のDES演算回路を有
し、これらがパイプライン動作を行うようにしてもよ
い。
ブロック構成図を示す。
様の構成の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段ずつ行うものとして
説明する。
路230が接続されている。DES演算回路210は、
プロローグ回路230からの出力に基づいて、図2に示
すSDESの第1段〜第8段の各段の処理を行い、中間
変換データを出力する。プロローグ回路230には、入
力ラッチ回路240が接続されている。入力ラッチ回路
240には、データブロック単位に入力データがラッチ
される。プロローグ回路230は、入力ラッチ回路24
0に入力された64ビットのデータに対して初期転置処
理を行うことができる。或いはプロローグ回路は、入力
ラッチ回路240に入力された64ビットのデータと、
DES演算回路210によって生成された中間変換デー
タ等との排他的論理和演算結果に対して、初期転置処理
を行うことができる。
路250が接続されている。DES演算回路220は、
DES演算回路210で生成された中間変換データに基
づいて、図2に示すSDESの第9段〜第16段の各段
の処理を行い、変換データ(最終変換データ)を出力す
る。エピローグ回路250は、DES演算回路220に
よって生成された変換データに対して最終転置処理を行
うことができる。或いはエピローグ回路250は、DE
S演算回路220によって生成された変換データに対し
て、DES演算回路210により生成された中間変換デ
ータ等と排他的論理和演算を行うことができる。
0、220に対して、SDESの各段の鍵を出力する第
1及び第2の鍵出力回路260、270を含む。ここ
で、鍵出力回路は2つでなくてもよく、DES演算回路
と同数でなくてもよい。
60は、DES演算回路210で処理される段数に応じ
て、図2に示すSDESの第1段〜第8段の各段の鍵K
1〜K8を出力する。第2の鍵出力回路270は、DES
演算回路220で処理される段数に応じて、図2に示す
SDESの第9段〜第16段の各段の鍵K9〜K16を出
力する。
60は、DES演算回路220に対してSDESの第1
段〜第8段の各段の鍵K1〜K8を、暗号処理とは逆順に
出力する。第2の鍵出力回路270は、DES演算回路
210に対してSDESの第9段〜第16段の各段の鍵
K9〜K16を、暗号処理とは逆順に出力する。
がそれぞれ出力する鍵K1〜K16は、鍵セット選択回路
280から供給される。
ックス282と、SDES鍵ボックス284とを含む。
TDES鍵ボックス282は、上述した鍵生成処理によ
り予め生成されたTDESの鍵を複数セット保持する。
TDESの鍵は、ループさせる回数分のSDESの鍵を
有する。SDESの鍵は、16段分の鍵を有する。SD
ES鍵ボックス284は、上述した鍵生成処理により予
め生成されたSDESの鍵を複数セット保持する。
う場合、鍵セット選択回路280は、TDES鍵ボック
ス282に保持された複数セットのTDESの鍵セット
の中から1セットを選択し、SDESのループ回数に応
じた16段分の鍵を、第1及び第2の鍵出力回路26
0、270に出力する。
によって制御が行われる。制御回路290は、入力され
た各種制御信号により、上述した構成の暗号装置200
において、暗号処理と復号処理の切り替え制御、CBC
モードの制御、或いはSDESとTDESの切り替え制
御を行うことができるようになっている。
は、DES演算回路210、220、プロローグ回路2
30及びエピローグ回路250が、図16に示す暗号処
理回路110に相当する。また、鍵セット選択回路28
0が、鍵記憶回路120及び鍵選択回路130に相当す
る。また図21では、図16に示す識別情報レジスタ1
32及びデータ制御回路140、図18に示すデータ制
御回路182及びカウンタ回路184は、暗号装置20
0には含まれていない。しかしながら、例えばこれらか
ら生成された鍵選択信号が供給されるように構成するよ
うにしてもよい。
ト信号である。xRST信号がアクティブになると、暗
号装置200を構成する各部の状態が初期状態になる。
LR信号がアクティブになると、例えばDES演算回路
210、220のレジスタの状態がリセットされる。
ある。DES_WAIT信号がアクティブになると、D
ES演算回路210、220の処理が中断する。DES
_WAIT信号は、例えばエピローグ回路250の出力
をラッチするFIFOの状態に応じて生成される。
である。EX_OR信号がアクティブになると、CBC
モードにより暗号処理及び復号処理が行われる。そのた
めプロローグ回路230は、EX_OR信号に応じて、
CBCモードで生成された演算データ又は入力ラッチ回
路240からの入力データを、DES演算回路210に
出力することができるようになっている。またエピロー
グ回路250は、EX_OR信号に応じてCBCモード
で生成された演算データ又はDES演算回路220から
の出力データを出力する。
ときには、プロローグ回路230は初期化ベクタIV
(初期化ベクタ)を用いて入力データとの間で排他的論
理和演算を行って、入力データの値がそのまま暗号処理
又は復号処理が行われないようにしている。同様に、初
期化状態のときには、エピローグ回路250は初期化ベ
クタIV(初期化ベクタ)を用いてDES演算回路22
0の出力データとの間で排他的論理和演算を行う。
である。EN_xDE信号がアクティブになると、プロ
ローグ回路230、DES演算回路210、220、エ
ピローグ回路250において、図2に示す暗号処理の各
処理が行われる。また第1及び第2の鍵出力回路26
0、270は、暗号処理の順序で各段の鍵を出力する。
切替信号である。TRIPLE信号がアクティブになる
と、TDESの暗号処理又は復号処理が行われる。TR
IPLE信号は、例えば暗号処理又は復号処理の対象と
なるデータを保存するハードディスク装置のセクタ番号
に基づいて切り替えることができる。この場合、セクタ
によってSDESにより暗号化されたデータとTDES
により暗号化されたデータとを混在させることができ、
鍵の解読をより困難にし、機密性を大幅に高めることが
できる。
ープカウント信号である。TRI_COUNT信号によ
り、TDESによるSDESのループ回数が指定され
る。TRI_COUNT信号に応じて、鍵セット選択回
路280は保持されている複数セットの鍵から、1セッ
トを選択する。このようなTRI_COUNT信号は、
制御回路290において生成される。
段数カウント信号である。KEY_NUMBER信号に
より、SDESの段数が指定され、各段に対応した鍵が
選択される。
る。KEY_SEL信号により、鍵セット選択回路28
0に予めTDES鍵ボックス282又はSDES鍵ボッ
クス284に記憶された複数セットの鍵の中から1セッ
トが選択される。
を説明する。
Sの暗号処理の流れを模式的に示す。ただし図21に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
のデータブロックに対して図2に示すSDESの第1段
の処理を行う。この処理結果は7回ループされ、DES
演算回路210は、SDESの第1段〜第8段の処理を
行う。このとき第1の鍵出力回路260は、KEY_N
UMBER信号に応じて、各段に対応した鍵を供給す
る。その結果、DES演算回路210は、SDESの第
8段までの結果を、第nの中間変換データとして出力す
る。
データに対して、図2に示すSDESの第9段の処理を
行う。この処理結果は7回ループされ、DES演算回路
220は、SDESの第9段〜第16段の処理を行う。
このとき第2の鍵出力回路270は、KEY_NUMB
ER信号に応じて、各段に対応した鍵を供給する。その
結果、DES演算回路220は、SDESの第16段ま
での結果を、第nの変換データとして出力する。
210に、第(n−1)の中間変換データと第nのデー
タブロックの入力データとに基づいて第nの中間変換デ
ータを生成させる。
は、第nのデータブロックの入力データに対して初期転
置処理を行った演算データを、DES演算回路210に
対して出力する。ここで転置処理の対象となるのは、S
DESのCBCモード(所与の第1のモード)ではない
場合は入力ラッチ回路240の入力データであり、SD
ESのCBCモード(所与の第1のモード)の場合は該
入力データと1つ前のデータブロックの第(n−1)の
中間変換データとの排他的論理和演算結果である。なお
CBCモードにおいて、入力データは、初期化時では初
期化ベクタIVとの間の排他的論理和演算結果に対して
転置処理が行われる。
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。
00は、(M+N)(M=N=8)段の処理により変換
データを生成するために、DES演算回路210、22
0によるパイプライン動作を行う。
するための図を示す。
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
の変換データを生成する。
及び第2のタイミングを所与のクロックの1周期とする
と、1クロックごとにSDESにより暗号化された変換
データを生成することができる。したがって、回路規模
の縮小化と、処理の高速化とを図ることができる。
段の処理結果を次のデータブロックの入力に反映させる
と、DES演算回路210の処理速度の低下を招く。そ
のため、SDESの第8段の処理結果(第(n−1)の
中間変換データ)を用いることで、鍵の機密性を高める
と共に処理速度の低下を防止することができる。
Sの復号処理の流れを模式的に示す。ただし図22に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
のデータブロックに対して図2に示すSDESの第1段
の処理を行う。この処理結果は7回ループされ、DES
演算回路210は、SDESの第1段〜第8段の処理を
行う。このとき第2の鍵出力回路270が、KEY_N
UMBER信号に応じて、暗号処理とは逆順に各段に対
応した鍵を供給する。その結果、DES演算回路210
は、SDESの第8段までの結果を、第nの中間変換デ
ータとして出力する。
データに対して、図2に示すSDESの第9段の処理を
行う。この処理結果は7回ループされ、DES演算回路
220は、SDESの第9段〜第16段の処理を行う。
このとき、第1の鍵出力回路260は、KEY_NUM
BER信号に応じて、暗号処理とは逆順に各段に対応し
た鍵を供給する。その結果、DES演算回路220は、
SDESの第16段までの結果を、第nの変換データと
して出力する。
240から入力された第nのデータブロックの入力デー
タに対して初期転置処理を行った演算データを、DES
演算回路210に対して出力する。
タと、1つ前のデータブロックの第(n−1)の中間変
換データとに基づいて生成された演算データを復号化さ
れた信号として出力させる。
は、DES演算回路220から出力された第nの変換デ
ータに対して、プロローグ回路230で行われた初期転
置処理に対応した最終転置処理を行う。ここで最終転置
処理が行われたデータは、SDESのCBCモード(所
与の第1のモード)ではない場合はそのまま変換データ
として出力され、SDESのCBCモード(所与の第1
のモード)の場合は1つ前のデータブロックの第(n−
1)の中間変換データとの間で排他的論理和演算が行わ
れて変換データとして出力される。なおCBCモードに
おいて、転置処理が行われたデータは、初期化時には初
期化ベクタIVとの間で排他的論理和演算が行われる。
うなパイプライン動作により、復号処理を行うことがで
きる。
Sの暗号処理の流れを模式的に示す。ただし図24に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
ロックに対して初期転置処理を行った演算データを、D
ES演算回路210に対して出力する。このとき、次の
データブロックの第(n+1)のデータブロックについ
て出力するのに先立って、エピローグ回路250から出
力された演算結果を用いて2回ループさせる。なおTD
ESのCBCモード(所与の第2のモード)の場合は、
第nのデータブロックについてのSDESの1回目の入
力のときに、1つ前の第(n−1)のデータブロックに
ついての演算結果との間で行われた排他的論理和演算結
果が転置処理対象となる。なお、TDESのCBCモー
ドにおいても、初期時には初期化ベクタIVが適用され
る。
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。
Sの復号処理の流れを模式的に示す。ただし図25に示
す暗号装置200と同一部分には同一符号を付し、適宜
説明を省略する。
ロックに対して初期転置を行った演算データをDES演
算回路210に対して出力する。このとき、次の第(n
+1)のデータブロックについて出力するのに先立っ
て、エピローグ回路250から出力された演算結果を用
いて2回ループさせる。
220から出力された第nの変換データに対して、プロ
ローグ回路230で行われた初期転置処理に対応した最
終転置処理を行う。転置処理が行われたデータは、SD
ESの3回目のループの出力の場合には、変換データと
して出力される。その際、TDESのCBCモード(所
与の第2のモード)ではない場合はそのまま変換データ
として出力され、TDESのCBCモード(所与の第2
のモード)の場合は1つ前のデータブロックの第(n−
1)のデータブロックの入力データとの間で排他的論理
和演算が行われて出力される。なおCBCモードにおい
て、転置処理が行われたデータは、初期化時には初期化
ベクタIVとの間で排他的論理和演算が行われる。
TDESによる暗号処理及び復号処理を行うことがで
き、回路規模の増大を回避することができる。
3段以上の構成で、SDESの暗号処理又は復号処理を
行うように構成しても、同様にSDESの処理回路を流
用してTDESによる暗号処理及び復号処理を行うこと
ができる。
号処理回路により、SDESのCBCモードの暗号処理
を行う場合、図27(B)に示すようなパイプライン動
作で変換データが生成される。また例えば図28(A)
に示す第1〜第3の暗号処理回路により、SDESのC
BCモードの復号処理を行う場合には、図28(B)に
示すようなパイプライン動作で、暗号処理されたデータ
を復号することができる。
の暗号処理回路により、SDESのCBCモードの暗号
処理を行う場合、図29(B)に示すようなパイプライ
ン動作で変換データが生成される。また例えば図30
(A)に示す第1〜第4の暗号処理回路により、SDE
SのCBCモードの復号処理を行う場合には、図30
(B)に示すようなパイプライン動作で、暗号処理され
たデータを復号することができる。
イン動作により高速処理を行うSDESの処理回路を上
述のように3回繰り返すことで、TDESによる暗号処
理及び復号処理を行うことができ、回路規模の増大を回
避することができる。
作フローの一例を示す。
るデータが、ハードディスク装置に記憶され、アクセス
するデータブロックのカウント数に応じて、TDES又
はSDESかを切り替えることができる場合について説
明する。
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信号をインアクティブにする。
NT信号を「0」に設定し(ステップS402)、KE
Y_NUMBER信号を「0」に設定する(ステップS
403)。TRI_COUNT信号を「0」に設定した
場合、TDESの処理においてSDESの1回目の処理
であることを示す。またKEY_NUMBER信号を
「0」に設定した場合、SDESの第1段の処理である
ことを示す。
示される段数に応じて、DES演算回路210又はDE
S演算回路220により、SDESの1段分の処理が行
われる(ステップS404)。
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の処理結果を用
いて変換データを出力する。
鍵を供給する鍵選択処理においては、鍵セット選択回路
280により、鍵選択信号KEY_SELに基づいて鍵
セットが選択される(ステップS450)。
ティブのとき、鍵選択信号KEY_SELとTRI_C
OUNT信号とに基づいて、関数Function_T
により、鍵選択値ksを求める。TRIPLE信号がイ
ンアクティブのとき、鍵選択信号KEY_SELに基づ
いて、関数Function_Sにより鍵選択値ksを
求める。関数Function_Sは、例えば鍵選択信
号KEY_SELを、所与のビット操作により鍵選択値
ksを出力する。
り、鍵選択値ksに対応する鍵セットを選択する(ステ
ップS451)。TDESの場合は、TDES鍵ボック
ス282に保持された複数の鍵セットの中から選択され
る。SDESの場合は、SDES鍵ボックス284に保
持された複数の鍵セットの中から選択される。
よって選択された鍵セットの中から、KEY_NUMB
ER信号により示されるSDESの処理段数に応じた鍵
KEYが供給される(ステップS452)。
成の概要を示す。
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にバッファリン
グする。
記憶媒体にアクセスするためのインタフェースICに上
述した暗号装置200を適用させることで、大容量のア
クセスデータについても、高い機密性を維持したまま高
速なアクセス処理を行わせることができる。
に示したデータ制御回路140又は図18に示したデー
タ制御回路182を含めることができる。
ースICの構成例を示す。
ルバスとしてのIEEE1394シリアルバスを介して
転送されるデータのIDE(Integrated Device Electr
onics)ストレージ850に対するアクセス制御を行
う。IEEE1394シリアルバス上では、アイソクロ
ナス(Isochronous)転送又はアシンクロナス(Asynchr
onous)転送が行われる。アイソクロナス転送が行われ
るアイソクロナスデータは、例えばリアルタイム性が要
求される画像データである。アシンクロナス転送が行わ
れるアシンクロナスデータは、例えばコマンドデータで
ある。
信されたデータは、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
は、格納するデータを仕分けして、対応する記憶領域に
格納する。
は、パケットメモリインタフェース870を介して、第
2のDMAC874により読み出される。第2のDMA
C874は、DES処理回路876でSDES又はTD
ESにより暗号化する。DES処理回路876は、本実
施形態における暗号装置を採用することができ、例えば
IDEストレージ850に書き込む際のセクタ番号に応
じて、SDES又はTDESで暗号化する。なお暗号化
するデータは、パケットメモリ872のアイソクロナス
受信データ領域に記憶されるアイソクロナス受信データ
のみである。
DRAM(Synchronous DRAM)により構成されたキャッ
シュメモリ880が接続されている。第2のDMAC8
74は、DES処理回路876により暗号化したデータ
を、キャッシュメモリインタフェース878を介して、
キャッシュメモリ880に格納する。これにより、アイ
ソクロナス受信データの機密性を維持することができ
る。
アシンクロナス受信データ領域に入っているアシンクロ
ナス受信データは、図示しないホスト(例えばCPU)
によりデコードされ、コマンドの解析が行われる。
憶領域と受信データ記憶領域とを有しており、第2のD
MAC884により暗号化されたアイソクロナス受信デ
ータは受信データ記憶領域に書き込まれる。
シュメモリ880からアイソクロナス受信データを読み
出し、IDEインタフェース884を介してIDEスト
レージ850に書き込む。
ることで、アイソクロナスデータをバッファリングする
ことができるので、IDEストレージ850のアクセス
時間があった場合でも、所定の転送レートで転送される
データの連続性を保証することができる。
バスを介して送信する場合、まず第3のDMAC882
により、IDEストレージ850からデータが読み出さ
れる。IDEストレージ850から読み出されたデータ
は、SDES又はTDESにより暗号化されており、キ
ャッシュメモリインタフェース878を介して、キャッ
シュメモリ880の送信データ領域に格納される。第2
のDMAC874は、キャッシュメモリ880の送信デ
ータ領域に記憶されたデータを読み出し、DES処理回
路876で復号化して、パケットメモリ872のアイソ
クロナス送信データ領域に格納する。第1のDMAC8
66は、パケットメモリ872のアイソクロナス送信デ
ータ領域に記憶されたアイソクロナスデータを読み出
す。読み出されたアイソクロナスデータは、DTCP処
理回路868によりDTCPによる暗号化が行われ、ア
イソクロナスヘッダを付加してIEEE1394シリア
ルバスに出力される。
び第2のDMAC866、874の制御を行う。より具
体的には、第1及び第2のDMAC866、874がそ
れぞれ読み出し用ポインタ及び書き込み用ポインタを有
しており、メモリポインタ管理回路886は、両ポイン
タを管理して第1及び第2のDMAC866、874の
動作制御を行う。
0は、システムコントローラ888により制御される。
理回路876では、IDEストレージ850のセクタの
番号に基づいて(広義には、記憶装置のアクセス単位の
記憶位置情報に基づいて)、鍵選択信号を生成すること
で、鍵の特定を困難にすることができる。
ESを採用した場合について説明したが、これらに限定
されるものではない。例えば暗号方式は、AES(Adva
nced Encryption Standard)であってもよい。AES
は、DESの後継共通鍵暗号化方式である。
置の機能ブロック図の一例を示す。
ット或いは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から出力されたデータと共通
秘密鍵を用いて生成された鍵との排他的論理和演算を行
う。
鍵長に応じて決まる段数分だけ、再びBYTE_SUB
部900に戻る。なお、最終段では、MIXCOL部9
04の処理は省略される。
SION部908に入力され、各段の鍵が生成される。
この各段の鍵が、ADDKEY部906に供給される。
施形態と同様に、入力データに対して暗号処理を行う少
なくとも2つの演算回路を設け、それぞれ所与の段数分
だけループさせて、これらをパイプライン動作させるこ
とができる。なお、この場合も、共通秘密鍵から鍵を生
成しておき、段数に応じて上述の演算回路に順次供給さ
せることができる。また同様に、予め複数の鍵セットを
用意しておき、上述したようにして生成された鍵選択信
号を用いて、1セットの鍵を選択するように構成するこ
とができる。
について説明したが、これに限定されるものではなく、
復号処理についても同様に適用することが可能である。
されるものではなく、本発明の要旨の範囲内で種々の変
形実施が可能である。例えば、演算回路を3段以上設け
るようにしてもよい。
3回ループさせるTDESについて説明したが、適用す
る鍵を適宜切り替えてSDESを2回ループ又は4回以
上ループさせるようにしてもよい。
IEEE1394規格のシリアルバスのインタフェース
を例に説明したが、これに限定されるものではない。例
えばUSB(USB1.1、USB2.0など)規格の
シリアルバスのインタフェースにも適用することができ
る。
ブロック図である。
て説明するための図である。
するための図である。
る。
能ブロック図である。
ロック図である。
ック図である。
示すブロック図である。
カウント数に基づく鍵選択信号の生成例を説明するため
の説明図である。
選択を行う暗号装置の構成の一例を示すブロック図であ
る。
く鍵選択信号の生成例を説明するための説明図である。
御について説明するための図である。
を示すブロック構成図である。
Sの暗号処理の流れを模式的に示す説明図である。
動作についての説明図である。
号処理の流れを模式的に示す説明図である。
Sの暗号処理の流れを模式的に示す説明図である。
号処理の流れを模式的に示す説明図である。
回路のブロック図である。図27(B)は、3段構成さ
れたDES演算回路の暗号処理のパイプライン動作につ
いての説明図である。
回路のブロック図である。図28(B)は、3段構成さ
れたDES演算回路の復号処理のパイプライン動作につ
いての説明図である。
回路のブロック図である。図29(B)は、4段構成さ
れたDES演算回路の暗号処理のパイプライン動作につ
いての説明図である。
回路のブロック図である。図30(B)は、4段構成さ
れたDES演算回路の暗号処理のパイプライン動作につ
いての説明図である。
ーの一例を示す図である。
成の概要を示すブロック図である。
成例を示す機能ブロック図である。
要を示すブロック図である。
Claims (11)
- 【請求項1】 複数の共通秘密鍵を用いて共通鍵暗号化
方式により生成された複数セットの鍵を記憶する鍵記憶
回路と、 所与の鍵選択信号に基づいて、前記鍵記憶回路に記憶さ
れた複数セットの鍵の中から1セットの鍵を選択する鍵
選択回路と、 前記鍵選択回路によって選択された1セットの鍵を用い
て、データブロック単位で入力される入力データに対し
て所与の暗号処理を行って変換データを生成する暗号処
理回路と、 を含むことを特徴とする暗号装置。 - 【請求項2】 請求項1において、 前記所与の鍵選択信号は、 装置固有の識別情報に基づいて生成されることを特徴と
する暗号装置。 - 【請求項3】 請求項1において、 前記所与の鍵選択信号は、 データブロックのカウント数に基づいて生成されること
を特徴とする暗号装置。 - 【請求項4】 請求項1において、 所与の記憶装置が所与のアクセス単位に前記変換データ
の書き込み又は読み出しを行う場合において、 前記所与の鍵選択信号は、 アクセス単位の記憶位置情報に基づいて生成されること
を特徴とする暗号装置。 - 【請求項5】 請求項4において、 前記所与の記憶装置のアクセス単位はセクタであり、前
記アクセス単位の記憶位置情報はセクタ番号であること
を特徴とする暗号装置。 - 【請求項6】 請求項1において、 前記所与の鍵選択信号は、 装置固有の識別情報、データブロックのカウント数及び
所与の記憶装置が所与のアクセス単位に前記変換データ
の書き込み又は読み出しを行う場合におけるアクセス単
位の記憶位置情報の組み合わせに基づいて生成されるこ
とを特徴とする暗号装置。 - 【請求項7】 請求項1において、 前記鍵記憶回路は、 前記所与の鍵選択信号がa(aは正の整数)ビットのと
き、2aより小さいb(bは正の整数)セットの鍵を記
憶することを特徴とする暗号装置。 - 【請求項8】 請求項1乃至7のいずれかにおいて、 前記暗号処理回路は、 前記鍵選択回路からその都度供給された鍵を用いた前記
所与の暗号処理を、c(cは2以上の整数)回繰り返し
行って変換データを生成し、 前記鍵選択回路は、 前記所与の選択信号に基づいて、前記鍵記憶回路に記憶
された複数セットの鍵の中から相異なるcセットの鍵を
選択するための内部鍵選択信号を生成する内部鍵信号生
成回路を含むと共に、 前記内部鍵選択信号に基づいて前記鍵記憶回路に記憶さ
れた複数セットの鍵の中から選択したcセットの鍵を、
1セットずつ、前記暗号処理回路に供給することを特徴
とする暗号装置。 - 【請求項9】 請求項1乃至8のいずれかにおいて、 前記所与の暗号処理が複数段の処理を含み、各段の処理
にはそれぞれ対応した鍵が適用される場合において、 前記鍵選択回路は、 前記所与の鍵選択信号に基づいて選択された1セットの
鍵を前記所与の暗号処理の各段の処理に適用する順序
を、所与の鍵選択値に基づいて変更することを特徴とす
る暗号装置。 - 【請求項10】 請求項1乃至9のいずれかにおいて、 前記所与の暗号処理に代えて、所与の復号処理を行うこ
とを特徴とする暗号装置。 - 【請求項11】 メモリと、 外部に接続された所与の記憶装置にアクセスするための
インタフェース回路と、 前記メモリと前記インタフェース回路との間で転送され
るデータに対し、暗号処理又は復号処理を行う請求項1
乃至10のいずれか記載の暗号装置と、 を含むことを特徴とするデータ転送制御装置。
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)
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 |
-
2002
- 2002-03-28 JP JP2002092088A patent/JP2003288009A/ja active Pending
Cited By (5)
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 |