JP2009044630A - 暗号処理装置 - Google Patents
暗号処理装置 Download PDFInfo
- Publication number
- JP2009044630A JP2009044630A JP2007209648A JP2007209648A JP2009044630A JP 2009044630 A JP2009044630 A JP 2009044630A JP 2007209648 A JP2007209648 A JP 2007209648A JP 2007209648 A JP2007209648 A JP 2007209648A JP 2009044630 A JP2009044630 A JP 2009044630A
- Authority
- JP
- Japan
- Prior art keywords
- key
- data
- encryption
- circuit
- outside
- 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
Images
Abstract
【課題】データ格納装置に格納されるデータの暗号処理を回路的に実現する装置において、悪意の第三者から不正アクセスがなされても、あるいは、悪意の第三者にデータ格納装置が物理的に入手された場合でも、第三者が暗号処理に係る鍵値を知ることを困難にし、従って、格納されたデータが確実に保護される手法を提供する
【解決手段】入力されたデータに対し暗号鍵を用いた暗号化および/または復号化を行って出力する暗号処理装置であって、値が定められ、前記暗号鍵として使用可能な鍵データを外部からの書換え不可能にかつ外部への読出し不可能に予め格納する鍵格納回路と、前記暗号鍵を用いて前記データの暗号化および/または復号化を行う暗号処理回路と、外部からの指示に応答し前記鍵データを前記暗号鍵として前記暗号処理回路に提供する鍵供給回路とを備えることを特徴とする暗号処理装置。
【選択図】図6
【解決手段】入力されたデータに対し暗号鍵を用いた暗号化および/または復号化を行って出力する暗号処理装置であって、値が定められ、前記暗号鍵として使用可能な鍵データを外部からの書換え不可能にかつ外部への読出し不可能に予め格納する鍵格納回路と、前記暗号鍵を用いて前記データの暗号化および/または復号化を行う暗号処理回路と、外部からの指示に応答し前記鍵データを前記暗号鍵として前記暗号処理回路に提供する鍵供給回路とを備えることを特徴とする暗号処理装置。
【選択図】図6
Description
この発明は、入力されたデータに対し暗号鍵を用いた暗号化および/または復号化を行って出力する暗号処理装置に関する。
ハードディスク装置などのデータ格納装置に格納されるデータを暗号化および/または復号化(以下、簡単のために暗号処理という)して保護する装置が存在する。以下、この明細書中でそのような装置を暗号処理装置という。
例えば、パーソナルコンピュータ(以下、パソコンという。)等の補助記憶装置として、ハードディスク装置が多用されている。そのようなハードディスク装置に格納されるデータには、貴重な財産的価値を持つものがある。そのため、これを適切に保護することが従来から重要視されている。特に、インターネットが普及している今日においては、インターネットを経由して補助記憶装置に不正アクセスされることがしばしばある。このため、不正アクセスを効果的に防止するためのファイアウォール等の機器が幅広く開発されている。
しかし、データ保護の必要性は、インターネットを経由する補助記憶装置への不正アクセスに対するものだけではない。実際にパソコンが置かれている場所に物理的に侵入して補助記憶装置内の貴重なデータを盗み取るといった犯罪も少なくない。このため、物理的侵入をも想定したセキュリティ対策を行う必要がある。また、パソコンに対する侵入を防止する手段が万全であったとしても、パソコンを下取りに出す場合に補助記憶装置の物理フォーマットを怠ってしまう等の人為的なミスもありえる。そして、このような人為的ミスが原因で、補助記憶装置の内容が漏洩することがある。
従って、通信経路を介してパソコンに対する侵入を防止する対策を講じることだけでなく、万一、パソコンへの侵入を許してしまった場合や、パソコンごと他の者の手に渡ってしまった場合を想定し、そのような場合にも、補助記憶装置の内容が読み取られないようにすることが重要といえる。
そこで、従来技術の中には、ハードディスク(補助記憶装置)とパソコンとの間にデータの転送を制御するためのセキュリティボード(データ保護装置)を配置するものが知られている。そのようなものでは、パソコンからのデータを当該セキュリティボードにおいて暗号化した上でハードディスクに記憶するとともに、当該セキュリティボードにマスタキーを装着している場合にのみ補助記憶装置に記憶したデータを復号しながら読み出すことを可能にしている。それによって、正当な権限のある者のみが補助記憶装置内のデータにアクセスできるようにしてデータの保護を図っている。
暗号方式には、大別して共通鍵暗号方式と、公開鍵暗号方式がある。共通鍵暗号方式は、データの暗号化と復号化に共通の暗号鍵(共通鍵)を用いる方式である。公開鍵方式は、データの暗号化と復号化に異なる暗号鍵(公開鍵と秘密鍵)を用いる方式である。これらの方式は、それぞれの長所、短所を持ち、用途によって使い分けられたり、2つの方式を組み合わせて用いられたりしている。
前述のいずれの暗号方式も、暗号鍵を用いる点で共通する。暗号鍵とは、暗号処理に用いるデータである。暗号処理は、データ変換の一種であるといえ、当該データ変換の規則を示すデータが暗号鍵である。従って、いかに解読されにくい暗号方式を用いたとしても、暗号鍵を安全に保管できなければ、データの安全性は確保されない。これは、たとえばパスワードを用いて部外者のアクセスを制限するシステムにおいて、いかに複雑なパスワードを用いたとしても、部外者にそのパスワードが盗まれてしまえば、もはや部外者からのアクセスを制限できないのと同様である。
そこで、優れた暗号方式を用いることと同様に、暗号鍵を安全に保管する手法が重要になる。
例えば、仮想メモリシステムを用いたシステムにおいて、物理的なRAMの容量を超える際にディスク上にコピー・アウトされるコンテンツを不正な監視から保護するため、コンテンツを暗号処理するシステムにおいて、暗号化コーポーネント自身が共通鍵暗号方式のアルゴリズムの一つであるAES(Advanced Encryption Standard)を用いて鍵を生成する手法が提案されている。
暗号処理は、データ処理の一種であるので、CPUが暗号処理プログラムを実行することによって処理が可能である。しかし、プログラムが解読されると暗号処理の意味がなくなるため、暗号処理の一部または全部をハードウェアで実現するものがある。より具体的には、大規模集積(LSI)回路素子上に暗号処理を行う回路を集積したもの(暗号処理LSI)を用いて暗号処理を行うものである。
特開2005−158043号公報
従来の暗号処理回路は、暗号処理時に利用する暗号鍵の値(鍵値)を暗号処理LSI外部から直接にデータを暗号処理時の鍵値を書き込む回路構成であった。その結果、鍵値を見破ろうとするものに、鍵値の信号を容易に読み取られる危険性があった。
この発明は、以上のような事情を考慮してなされたものであって、データ格納装置に格納されるデータの暗号処理を回路的に実現する装置において、悪意の第三者から不正アクセスがなされても、あるいは、悪意の第三者にデータ格納装置が物理的に入手された場合でも、第三者が暗号処理に係る鍵値を知ることを困難にし、従って、格納されたデータが確実に保護される手法を提供するものである。
この発明は、入力されたデータに対し暗号鍵を用いた暗号化および/または復号化を行って出力する暗号処理装置であって、値が定められ、前記暗号鍵として使用可能な鍵データを外部からの書換え不可能にかつ外部への読出し不可能に予め格納する鍵格納回路と、前記暗号鍵を用いて前記データの暗号化および/または復号化を行う暗号処理回路と、外部からの指示に応答し前記鍵データを前記暗号鍵として前記暗号処理回路に提供する鍵供給回路とを備えることを特徴とする暗号処理装置を提供する。
この発明による暗号処理装置は、値が定められ、前記暗号鍵として使用可能な鍵データを外部からの書換え不可能にかつ外部への読出し不可能に予め格納する鍵格納回路と、外部からの指示に応答し前記鍵データを前記暗号鍵として前記暗号処理回路に提供する鍵供給回路とを備えるので、悪意の第三者から不正アクセスがなされても、あるいは、悪意の第三者にデータ格納装置が物理的に入手された場合でも、暗号処理に係る鍵値、即ち、鍵データをその第三者が知ることは困難である。
即ち、暗号鍵として提供される鍵データは外部からの書換えが不可能かつ外部への読出しが不可能であって、外部から直接鍵値を書き込む回路構成ではない。前記指示のみが外部から与えられる。従って、悪意の第三者に鍵値の信号が読み取られることを防ぐことはなく、格納されたデータが確実に保護される。
この発明による暗号処理装置は、データ格納装置に格納されるデータを保護するために用いられる。ここで、データ格納装置は、ハードディスク装置であってもよい。しかし、これに限定されず、例えば、フラッシュメモリなどの半導体素子によるデータ格納装置や、光ディスク装置などであってもよい。データを格納し得るするものであれば、その原理や方式は制限されない。
この発明による暗号処理装置が適用される対象は、たとえば、パソコンであってもよいが、これに限定されるものではない。データ格納装置を有する装置であれば、対象となり得る。例えば、画像データを格納して処理する画像処理装置、データの格納を主な機能とするデータストレージ、音声や楽曲のデータを格納して処理する音声録音および/または再生装置などであってもよい。
また、この発明による暗号処理装置は、データ格納装置の付近に配置されることが好ましいが、必ずしもこれに限定されない。データ格納装置を収容する装置と別の装置に暗号処理装置が収容され、通信線を介してデータ格納装置とやり取りするシステム内で暗号処理がなされる態様もこの発明の範囲に含まれる。
暗号処理のアルゴリズムは、暗号鍵を用いるものであれば特に限定されない。例えば、アルゴリズムは、共通鍵暗号方式のアルゴリズムとして広く知られているDES(Data Encryption Standard)やAES(Advanced Encryption Standard)であってもよいが、それ以外のものであってもよい。また、公開鍵暗号方式、共通鍵暗号方式と公開鍵暗号方式とを組合せた方式にも適用可能である。
以下、この発明の好ましい態様について説明する。
前記鍵格納回路は複数の鍵データを格納し、外部からの前記指示に応じて暗号鍵として提供する鍵データを選択する鍵選択回路をさらに備え、前記鍵供給回路は、選択された鍵データを前記暗号処理回路に提供してもよい。このようにすれば、複数の鍵データの一つを外部からの指示により選択し、暗号鍵とするので、悪意の第三者が暗号処理前後のデータの内容を対比して暗号を解読することがさらに困難になる。
前記鍵格納回路は複数の鍵データを格納し、外部からの前記指示に応じて暗号鍵として提供する鍵データを選択する鍵選択回路をさらに備え、前記鍵供給回路は、選択された鍵データを前記暗号処理回路に提供してもよい。このようにすれば、複数の鍵データの一つを外部からの指示により選択し、暗号鍵とするので、悪意の第三者が暗号処理前後のデータの内容を対比して暗号を解読することがさらに困難になる。
また、前記鍵格納回路は、前記鍵データに加え、外部からの書換えが可能な鍵データを格納してもよい。このようにすれば、暗号処理LSIの設計データが不幸にして流出した場合など、外部から書換え不可能な鍵データ(固定値の鍵データ)の鍵値の機密が維持されなくなった場合でも、外部からの書換えが可能な鍵データを用いることにより、該当の暗号処理LSIを破棄せず、継続使用することが可能になる。また、その暗号処理LSIが適用されるパソコン等の装置を継続使用することが可能になる。
さらにまた、前記鍵格納回路と前記鍵選択回路と前記鍵供給回路と前記暗号処理回路とは、各回路間および各回路内の信号が外部から検出できないよう一体に封止されてなるものであってもよい。このようにすれば、悪意の第三者が各回路間および各回路内の信号を外部から検出し、読取るような攻撃を防ぐことができる。
さらに、前記鍵格納回路と前記鍵選択回路と前記鍵供給回路と前記暗号処理回路とは、一つの半導体集積回路に集積されてもよい。
また、値が定められて予め格納された前記鍵データは、複数ビットの二進データであって二進「0」に対応する電圧を供給する第1電圧源と二進「1」に対応する電圧を供給する第2電圧源とからの配線を前記鍵格納回路内でビット順に配してなる信号列として構成され、各ビットの配線の長さの和が所定の長さ以上になるよう各配線のパターンが定められてなるものであってもよい。
なお、ここで示した種々の好ましい態様は、それら複数を組み合わせることもできる。
なお、ここで示した種々の好ましい態様は、それら複数を組み合わせることもできる。
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
≪暗号処理装置の構成例≫
図1は、この発明による暗号処理装置のハードウェア構成の一例を示すブロック図である。図1に示すように、この発明による暗号処理回路は、CPU(101)、ROM(102)、RAM(103)、LSI-A(104)、LSI-B(105)およびメイン・バス(107)から構成される。また、図1には、暗号化されたデータを格納する補助記憶装置としてHDD(106)を記している。HDD(106)は、暗号処理装置の外部の装置である。
図1は、この発明による暗号処理装置のハードウェア構成の一例を示すブロック図である。図1に示すように、この発明による暗号処理回路は、CPU(101)、ROM(102)、RAM(103)、LSI-A(104)、LSI-B(105)およびメイン・バス(107)から構成される。また、図1には、暗号化されたデータを格納する補助記憶装置としてHDD(106)を記している。HDD(106)は、暗号処理装置の外部の装置である。
CPU(101)は、暗号処理装置の処理をコントロールするものである。ROM(102)には、暗号処理装置を動作させるためのファームウェア(制御プログラム)が格納されている。前記ファームウェアは、CPU(101)が動作を開始するときにROM(102)から読み出され、後述するRAM(103)に展開される。CPU(101)は、展開されたファームウェアの内容に従って順次処理を行う。これによって、暗号処理装置の各処理が実行される。RAM(103)は、ROM(102)から読み出されたファームウェアを展開するスペースを提供する。さらに、暗号処理装置の処理中、各種制御値等を一時的に格納する領域を提供する。
LSI-A(104)は、暗号処理における中心的な役割を担う部分である。後述するように、LSI-A(104)は暗号鍵となり得る鍵データを格納する回路、鍵データを共通暗号鍵として提供する鍵供給回路、提供された暗号鍵を用いて暗号化および復号化を行う暗号処理ブロックを含む。
なお、この実施形態では共通鍵暗号方式を前提に説明を行う。図1の実施形態は、HDD(106)に格納するデータを格納前に暗号化し、HDD(106)から読み出す際に復号化するものであって、暗号化/復号化を同じ暗号処理装置で行うものである。このような態様においては、1つの暗号鍵で暗号化/復号化を行う共通鍵暗号化方式を適用するのが合理的である。ただし、前述のように、この発明の本質は共通鍵暗号方式に限定されるものでなく公開鍵方式のものにも適用可能である。
LSI-B(105)は、HDD(106)へ格納すべきデータ、即ち、図示しない外部の機器から外部からメイン・バス107を介して暗号化対象のデータを取得し、LSI-A(104)へ送るものである。また、HDD(106)から読み出され、LSI-A(104)で復号化されたデータを外部へメイン・バス107を介して送るものである。
メイン・バス(107)は、CPU(101)、ROM(102)、RAM(103)、LSI-A(104)、LSI-B(105)および図示しない外部の機器との間でデータをやり取りするためのものである。ただし、LSI-A(104)とLSI-B(105)との間のデータの送受は、転送バス(108)を介して行われる。一方、例えば、CPU(101)がLSI-A(104)内のレジスタをアクセスするときは、メイン・バス(107)を介してLSI-A(104)をアクセスする。
HDD(106)は、暗号化されたデータを格納するものである。
なお、CPU(101)は、この発明による暗号処理装置の処理専用のものであってもよいが、暗号処理を行わないときに他の処理を実行してもよい。他の処理の内容は、前記ファームウェアと共にROM(102)に格納されていてもよい。
≪暗号処理に係るLSI-Aの詳細構成≫
図2は、図1に示すLSI-Aブロック(104)の内部構成例を示すブロック図である。図2に示すように、LSI-A(104)は、共通鍵暗号処理ブロック(201)、転送バスI/F(202)、HDD I/F(203)、鍵供給回路(204)、鍵データ(205)、セレクタ(206)、鍵セレクトレジスタ(207)およびCPU I/F(208)を含んでなる。
図2は、図1に示すLSI-Aブロック(104)の内部構成例を示すブロック図である。図2に示すように、LSI-A(104)は、共通鍵暗号処理ブロック(201)、転送バスI/F(202)、HDD I/F(203)、鍵供給回路(204)、鍵データ(205)、セレクタ(206)、鍵セレクトレジスタ(207)およびCPU I/F(208)を含んでなる。
共通鍵暗号処理ブロック(201)は、前述のAESやDESなどの共通鍵暗号方式のアルゴリズムに基づき、共通鍵を用いたデータの暗号化および復号化を行う機能をもったハードウェア回路である。
転送バスI/F(202)は、LSI-B(105)から転送バス(108)を介して送信されたデータを、共通鍵暗号処理ブロック(201)に送るためのI/Fである。
HDD I/F(203)は、暗号化されたデータを、補助記憶装置であるハードディスクドライブ(106)に送るためのインターフェイス(I/F)回路である。
データを暗号処理してHDD(106)に格納するとき、処理対象のデータは転送バスI/F(202)から共通鍵暗号処理ブロック(201)へ入力され、暗号化された後、ハードディスクI/F(203)を介してLSI-A(104)に接続された外部のHDD(106)へ出力される。一方、HDD(106)に格納されたデータを読み出して復号化するとき、処理対象のデータはHDD(106)からハードディスクI/F(203)を介して共通鍵暗号処理ブロック(201)へ入力され、復号化された後、転送バスI/F(202)を介して外部へ出力される。
なお、前述のデータの流れが一般的な態様であるが、暗号化および復号化が逆の態様もあり得る。例えば、HDD(106)は、暗号化されていないデータを格納するものであり、HDD(106)に格納されたデータを暗号化してLSI-A(104)の外部へ転送する場合である。この場合は、暗号化および復号化時におけるそれぞれのデータの流れの方向は、前述したものと逆になる。
LSI-Aブロック(104)の内部構成についての説明を続ける。鍵供給回路(204)は、共通鍵暗号処理ブロック(201)に対して暗号化・復号化時に使用する鍵を供給するものである。図2の鍵供給回路(204)は、予め値が決められたN個の鍵データ(205)、即ち、鍵1〜鍵Nを格納している。図2では、Nは3より大きな自然数として示しているが、これは一例である。鍵データは1つだけ(N=1)でもよく、2個(N=2)あるいは3個(N=3)の場合もこの発明に含まれる。
セレクタ(206)は、N個の鍵データ(205)の鍵1〜鍵Nの中からいずれかの鍵を選択するものである。N=1の場合は、鍵の選択は必要ないが、外部(具体的には、CPU(101))が所定の値を設定したときに鍵データが提供されるようにするため、セレクタ(206)に変えてゲート回路が配置されてもよい。
鍵セレクタレジスタ(207)は、LSI-A(104)の動作を決定するためのCPUからアクセス可能なレジスタのうちの一つである。CPU(101)からCPU I/Fを通して鍵セレクトレジスタ(207)にライトアクセスをすることにより、鍵セレクトレジスタ(207)が保持している値(鍵データの選択に係る値)を書き換えることができる。なお、鍵データが1つ(N=1)の場合は、鍵セレクトレジスタ(207)が所定の値を保持している場合に鍵データ(205)が提供される。したがって、N=1の場合を含め、暗号鍵の値は、LSI-A(104)の外部から提供されることはない。N個の鍵データ(205)の鍵1〜鍵Nの値は、LSI-A(104)の外部から書き換えることはできない。また、鍵1〜鍵Nの値は、LSI-A(104)の外部へ読み出すことはできない。鍵1〜鍵Nの値は、必要に応じてLSI-A(104)の設計データ(仕様データ)として使用者に提供される。即ち、暗号鍵の値は、LSI-A(104)の提供者が設計データとして機密管理すれば、部外者に知られることはない。特に、共通鍵暗号方式を適用する場合、使用者は、暗号鍵の値を知らなくてもLSI-A(104)を用いて暗号処理を行うことができる。一般に、データの機密性をより確実にするため、データごとに、あるいはデータを細分化して複数のブロックに分割し、分割されたブロックごとに異なる暗号鍵を用いた暗号処理が行われる。図2のように、鍵データ(205)が複数あれば、鍵セレクトレジスタ(207)の値を指定することによって異なる暗号鍵を適用することができる。さらに、LSI-A(104)の提供者は、異なるユーザに対して、鍵セレクトレジスタ207が保持可能な値の範囲を異ならせたLSI-A(104)を提供し、あるいは、セレクタ(206)の選択特性を異ならせたLSI-A(104)を提供し、同じ値が鍵セレクトレジスタ(207)に設定された場合に異なる鍵データ(205)が選択されるようにしてもよい。あるいは、異なるユーザに対して鍵1〜鍵Nの各値を異ならせたLSI-A(104)を提供してもよい。このようにすれば、異なるユーザ間でにおいて、同一の鍵セレクトレジスタ値に対して暗号鍵の値が異なるので、データの機密性をより確実にすることができる。
CPU I/F(208)は、LSI-A(104)とCPU(101)との間のデータのやり取りを可能にするための回路である。CPU(101)は、LSI-A(104)の鍵セレクトレジスタにアクセスしてその値を書き換えたり、転送バスI/F(202)およびHDD I/F(203)にアクセスしてそれらの動作に係る条件設定をしたり、起動や停止の制御をしたりする。また、共通鍵暗号処理ブロック(201)の処理条件を設定したりする。
CPU(101)は、CPU I/F(208)を介して鍵セレクタレジスタ(207)にアクセスし、鍵データの選択に係る値を書き込む。セレクタ(206)は、鍵セレクタレジスタ(207)に書き込まれた値に応じて鍵データ(205)の鍵1〜鍵Nのいずれかを選択する。鍵セレクタレジスタ(207)の値によっては、いずれの鍵データ(205)も選択されていない状態(非選択状態)になってもよい。非選択状態では、共通鍵暗号処理ブロック(201)が暗号処理を行わず、入力されたデータをHDD(106)へスルーさせてもよい。また、HDD(106)から読み出されたデータを復号化せず、スルーで転送バス側へ転送してもよい。
≪鍵提供回路の詳細構成≫
図3及び図4は、鍵供給回路の詳細構成の例を模式的に示す説明図である。図3において、鍵1〜鍵Nは、複数ビット(例えば128ビット等)の二進データからなる鍵値である。鍵供給回路は、バスを介して各鍵値を外部(図3では、共通鍵暗号処理ブロック(201)へ供給する回路である。各ビットの値としては、二進「0」「1」にそれぞれ対応する電圧源からの信号が配線される。鍵提供回路の各鍵値は、暗号鍵としての値を提供する際に、セレクタへ読み出される。鍵値の例として、図3の鍵1は二進「1010」のビット列を生成し、鍵2は二進「0110」のビット列を生成し、鍵Nは二進「0001」のビット列を生成するように構成されている。具体的には、LSIはハードウェア記述言語で設計したデータに基づいてレイアウト工程を経てLSIチップが作成される。前記レイアウト工程において、前述の鍵データ値は何も考慮しなければ、LSIチップ中の極限られた狭い領域に配置されるのが通常である。
図3及び図4は、鍵供給回路の詳細構成の例を模式的に示す説明図である。図3において、鍵1〜鍵Nは、複数ビット(例えば128ビット等)の二進データからなる鍵値である。鍵供給回路は、バスを介して各鍵値を外部(図3では、共通鍵暗号処理ブロック(201)へ供給する回路である。各ビットの値としては、二進「0」「1」にそれぞれ対応する電圧源からの信号が配線される。鍵提供回路の各鍵値は、暗号鍵としての値を提供する際に、セレクタへ読み出される。鍵値の例として、図3の鍵1は二進「1010」のビット列を生成し、鍵2は二進「0110」のビット列を生成し、鍵Nは二進「0001」のビット列を生成するように構成されている。具体的には、LSIはハードウェア記述言語で設計したデータに基づいてレイアウト工程を経てLSIチップが作成される。前記レイアウト工程において、前述の鍵データ値は何も考慮しなければ、LSIチップ中の極限られた狭い領域に配置されるのが通常である。
上の例は、簡単のために各鍵データが4ビットのビット列からなると説明しているが、実際には128ビットや256ビット等、使用されるアルゴリズムに応じて定められた暗号鍵のビット長に応じて構成される。
図4においては、LSIチップの狭い領域に鍵データ用の配線が集中すると、第三者がLSIを入手して分解し、チップの配線パターンをすることにより鍵データの解読が容易となる。そのため、鍵データ用の二進「0」および「1」の信号線が、LSIチップ内で複雑に配線されるようにし、第三者によるLSIチップの回路解析を非常に困難にした例を示している。ここで、回路解析とは、LSIパッケージを取り除き電子顕微鏡などでリバースエンジニアリングを実施するといったような手法である。第三者による悪意ある解析を想定している。
≪暗号処理の設定手順≫
続いて、この実施形態に係るLSI-Aの回路動作の順序を説明する。図5は、この発明による暗号処理装置を動作させる際の設定手順を示すフローチャートである。
続いて、この実施形態に係るLSI-Aの回路動作の順序を説明する。図5は、この発明による暗号処理装置を動作させる際の設定手順を示すフローチャートである。
図5に示すように、暗号処理を行う際、まず、共通鍵暗号処理ブロック(201)の動作モードの設定を行なう(ステップS401)。共通鍵暗号処理ブロック(201)には、動作モードを外部から設定するための図示しないレジスタが設けられている。CPU(101)は、前記レジスタにアクセスし、共通鍵暗号処理ブロック(201)の動作モードを設定する。
ここで、動作モードとは、例えば、共通鍵暗号処理ブロック(201)に暗号処理を行わせるか、復号処理を行わせるかの設定である。また、暗号鍵のビット長が設定できるようになっていてもよい。さらに、暗号化および復号化の処理に係るアルゴリズム(前述のAESやDESなど)が選択できるようになっていてもよい。また、共通鍵暗号方式には、ブロック暗号方式とストリーム暗号方式があることが知られており、それぞれの方式に応じたアルゴリズムが選択できるようになっていてもよい。
なお、ブロック暗号方式は、データを一定の長さに分割してそれぞれを暗号化する方式である。ストリーム暗号方式は、データを分割せずに逐次(1〜数ビット毎)暗号化する方式である。さらに、ブロック暗号方式においては、分割したブロックに対して個別に暗号化を行うと特定ブロックが第三者に解読されるおそれがある。例えば、同じようなパターンが頻出するデータでは同じ暗号データが繰り返されるので、内容が推測され易い。そのような危険性を回避するため、前のブロックの暗号結果を次のブロックの暗号化に使用することにより、各ブロックに相関関係を持たせるブロックチェイニングと呼ばれる方式が多用される。動作モードとして、ブロックチェイニングのモードがさらに設定できるようになっていてもよい。ブロックチェイニングのモードとしては、ECB(Electronic CodeBook)、CBC(Chpher Block Chaining)等が知られている。
続いて、CPU(101)は、鍵セレクタレジスタ(207)にアクセスして使用する暗号鍵を指定する(ステップS402)。
さらに、CPU(101)は、各種I/F、即ち、転送バスI/F(202)およびハードディスクI/F(203)の動作条件を設定する。(ステップS403)例えば、転送バスI/F(202)およびハードディスクI/F(203)には、データ転送量や転送の方向(HDDのリードかライトか)を設定するためのレジスタが設けられている。そのほかに、独自の設定項目が設けられていてもよい。CPU(101)は、これらのレジスタにアクセスして、転送バスI/F(202)およびハードディスクI/F(203)の動作条件を設定する。
さらに、CPU(101)は、各種I/F、即ち、転送バスI/F(202)およびハードディスクI/F(203)の動作条件を設定する。(ステップS403)例えば、転送バスI/F(202)およびハードディスクI/F(203)には、データ転送量や転送の方向(HDDのリードかライトか)を設定するためのレジスタが設けられている。そのほかに、独自の設定項目が設けられていてもよい。CPU(101)は、これらのレジスタにアクセスして、転送バスI/F(202)およびハードディスクI/F(203)の動作条件を設定する。
以上の、各種動作条件の設定が終了したら、CPU(101)は、ライト信号をアサートすることによって、データの転送をスタートさせる(ステップS404)。この実施形態に係る構成の場合、通常HDDがデータ転送のマスターを担う。そのため、CPU(101)はHDD I/F(203)に対してデータ転送の指示を行う。
≪暗号処理に係るLSI-Aの変形例≫
LSI-Aの異なる構成例について説明する。図6は、図1のブロックLSI-Aの異なる構成例を示すブロック図である。図6の態様は、LSI-Aが書き換え可能な鍵データを有する構成例である。
LSI-Aの異なる構成例について説明する。図6は、図1のブロックLSI-Aの異なる構成例を示すブロック図である。図6の態様は、LSI-Aが書き換え可能な鍵データを有する構成例である。
図1に示すLSI-A(104)は、各鍵データの値は、予め定められている。図1の構成においても、鍵データは外部から書き込み、読み出し等ができないため、暗号鍵の値が外部に漏れる虞がなく、セキュリティ管理上、非常に堅牢なシステムが実現される。しかし、内部に保持するN個の鍵データ値の設計データが全て流出し、第三者に漏洩してしまった場合は、暗号化機能の機密性が維持できなくなってしまう。そのような場合、暗号鍵が漏洩した原因が設計データ管理という人為的なものであるにせよ、LSI-A(104)のハードウェアあるいはそれを含む暗号処理装置のハードウェアが継続使用できなくなる可能性がある。すると、少なくともLSI-A(104)を交換するか、それを含む暗号処理装置ごと交換をせざるを得なくなる。それらの費用を誰が負担するにせよ、機密漏洩による損害発生は相当な額になることが予想されうる。そこで、このような万一の事態が生じても、損害を最小限に抑えることのできるように、図6のLSI-A(104)は、鍵供給回路(204)が固定値の鍵データのみでなく、外部から書き換え可能な鍵データを保持し得るように構成されている。
図6で、鍵保持レジスタ(501)は、CPU(101)からCPU I/F(208)を介してライトアクセス可能なレジスタであり、鍵データ値を保持するレジスタである。また、鍵保持レジスタ(501)はリードアクセス可能であってもよい。
図6のLSI-A(104)における鍵データの選択方法は、図2の場合と同様である。即ち、鍵セレクトレジスタ(207)に保持された値に応じて、鍵値保持レジスタ(501)あるいは、固定値の鍵データ(205)の鍵1〜鍵Nのいずれかが選択される。鍵セレクトレジスタ(207)は、CPU(101)からCPU I/F(208)を介してライトアクセス可能なレジスタである。また、鍵セレクトレジスタ(207)に設定された値によっては、前述した非選択状態になってもよい。
なお、図6に示す鍵供給回路(204)において、鍵セレクトレジスタ(207)を無くし、それに代えてCPU(101)が、どの鍵データを用いたかの情報をRAM(103)やLSI-A(104)の外部の図示しない不揮発性メモリに保持させるように制御してもよい。処理対象のデータごとに異なる暗号鍵を用いる場合は、各データに対応して前記情報を保持させる用に制御してもよい。
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
101:CPU
102:ROM
103:RAM
104:LSI-A
105:LSI-B
106:HDD、ハードディスクドライブ
107:メイン・バス
108:転送バス
201:共通鍵暗号処理ブロック
202:転送バスI/F
203:HDD I/F
204:鍵供給回路
205:鍵データ
206:セレクタ
207:鍵セレクトレジスタ
208:CPU I/F
501:鍵保持レジスタ
102:ROM
103:RAM
104:LSI-A
105:LSI-B
106:HDD、ハードディスクドライブ
107:メイン・バス
108:転送バス
201:共通鍵暗号処理ブロック
202:転送バスI/F
203:HDD I/F
204:鍵供給回路
205:鍵データ
206:セレクタ
207:鍵セレクトレジスタ
208:CPU I/F
501:鍵保持レジスタ
Claims (6)
- 入力されたデータに対し暗号鍵を用いた暗号化および/または復号化を行って出力する暗号処理装置であって、
値が定められ、前記暗号鍵として使用可能な鍵データを外部からの書換え不可能にかつ外部への読出し不可能に予め格納する鍵格納回路と、
前記暗号鍵を用いて前記データの暗号化および/または復号化を行う暗号処理回路と、
外部からの指示に応答し前記鍵データを前記暗号鍵として前記暗号処理回路に提供する鍵供給回路とを備えることを特徴とする暗号処理装置。 - 前記鍵格納回路は複数の鍵データを格納し、
外部からの前記指示に応じて暗号鍵として提供する鍵データを選択する鍵選択回路をさらに備え、
前記鍵供給回路は、選択された鍵データを前記暗号処理回路に提供する請求項1に記載の暗号処理装置。 - 前記鍵格納回路は、前記鍵データに加え、外部からの書換えが可能な鍵データを格納し得る請求項1または2に記載の暗号処理装置。
- 前記鍵格納回路と前記鍵選択回路と前記鍵供給回路と前記暗号処理回路とは、各回路間および各回路内の信号が外部から検出できないよう一体に封止されてなる請求項1〜3の何れか一つに記載の暗号処理装置。
- 前記鍵格納回路と前記鍵選択回路と前記鍵供給回路と前記暗号処理回路とは、一つの半導体集積回路に集積されてなる請求項4に記載の暗号処理装置。
- 値が定められて予め格納された前記鍵データは、複数ビットの二進データであって二進「0」に対応する電圧を供給する第1電圧源と二進「1」に対応する電圧を供給する第2電圧源とからの配線を前記鍵格納回路内でビット順に配してなる信号列として構成され、
各ビットの配線の長さの和が所定の長さ以上になるよう各配線のパターンが定められてなる請求項1〜5の何れか一つの記載の暗号処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209648A JP2009044630A (ja) | 2007-08-10 | 2007-08-10 | 暗号処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007209648A JP2009044630A (ja) | 2007-08-10 | 2007-08-10 | 暗号処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009044630A true JP2009044630A (ja) | 2009-02-26 |
Family
ID=40444842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007209648A Pending JP2009044630A (ja) | 2007-08-10 | 2007-08-10 | 暗号処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009044630A (ja) |
-
2007
- 2007-08-10 JP JP2007209648A patent/JP2009044630A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4157595B2 (ja) | セキュア処理装置、方法、プログラム | |
US8107621B2 (en) | Encrypted file system mechanisms | |
JP4865694B2 (ja) | プロセッサ装置 | |
US20040172538A1 (en) | Information processing with data storage | |
US8001391B2 (en) | Method of encrypting and decrypting data stored on a storage device using an embedded encryption/decryption means | |
JP2010509662A (ja) | 外部不揮発性メモリに記憶された情報の暗号化のための方法およびシステム | |
CN103154963A (zh) | 对地址的加扰和对需存储于存储设备中的写入数据的加密 | |
TW200405164A (en) | Semiconductor device including encryption section, semiconductor device including external interface, and content reproduction method | |
JP4758904B2 (ja) | 機密情報処理方法 | |
WO2000057278A1 (en) | Information processing device | |
JP2003198534A (ja) | データ暗号化装置及びその方法 | |
JP2006277411A (ja) | プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法 | |
US20060015753A1 (en) | Internal RAM for integrity check values | |
TW201918923A (zh) | 安全邏輯系統及操作安全邏輯系統的方法 | |
CN110659506A (zh) | 基于密钥刷新对存储器进行重放保护 | |
JP2008033512A (ja) | セキュリティチップ及びプラットフォーム | |
US20200356285A1 (en) | Password protected data storage device and control method for non-volatile memory | |
JP2005122745A (ja) | 対称型マルチプロセッサを持つ電子機器におけるデータの暗号化 | |
JPWO2006118101A1 (ja) | 機密情報処理用ホスト機器および機密情報処理方法 | |
JP2007336446A (ja) | データ暗号化装置 | |
CN110287708B (zh) | 一次性可编程加密装置与其加密方法 | |
JP2021190081A (ja) | 機密データを保護することが可能な電子機器 | |
JP2009044630A (ja) | 暗号処理装置 | |
KR20100015077A (ko) | 시스템 온 칩에서 암호화 방법 및 장치 | |
JP2010219883A (ja) | 画像形成装置および画像形成方法 |