(57)【要約】【課題】ソフトウェアのオープン性を確保しつつ、データ保護のロバストネス性を確保する。【解決手段】蓄積メディア５に記憶されたデータのアクセスを制御するデータ入出力回路４と、蓄積メディアから読み出したデータの転送先を指示するＣＰＵ１と、蓄積メディアから読み出したデータを必要に応じて復号化しＣＰＵの指示に基づいて転送する暗号処理回路３とを備え、ＣＰＵ１は、暗号処理回路３に対して蓄積メディアに記憶された所定のデータの転送先を予め暗号化されたアドレスで指示し、暗号処理回路３は、暗号化されたアドレスを復号化し、蓄積メディアに記憶された所定のデータを復号化した暗号化されたアドレスに対応する処理手段へ転送する。【選択図】  図１
2004252852.tif 000002
【特許請求の範囲】
【請求項１】
メモリに記憶されたデータのアクセスを制御するアクセス制御手段と、前記メモリから読み出したデータの転送先を指示する転送制御手段と、前記メモリから読み出したデータを必要に応じて復号化し前記転送制御手段の指示に基づいて転送する暗号処理手段と、前記アクセス制御手段、前記転送制御手段、前記暗号処理手段及び前記メモリに記憶されたデータを処理する処理手段を接続するバスを備え、
前記転送制御手段は、前記暗号処理手段に対して前記メモリに記憶された所定のデータの転送先を予め暗号化されたアドレスで指示し、
前記暗号処理手段は、前記暗号化されたアドレスを復号化し、前記メモリに記憶された所定のデータを復号化した前記暗号化されたアドレスに対応する処理手段へ前記バスを介して転送する情報処理装置。
【請求項２】
請求項１記載の情報処理装置において、
前記暗号処理手段は、前記暗号化したアドレスの暗号鍵が正しい場合にのみ前記メモリに記憶された所定のデータを復号化した前記暗号化されたアドレスに対応する処理手段へ転送する転送手段を含む情報処理装置。
【請求項３】
請求項１又は請求項２記載の情報処理装置において、
前記アクセス制御手段は、前記バスへ前記メモリから読み出したデータの直接出力を制限する情報処理装置。
【請求項４】
請求項３記載の情報処理装置において、
前記メモリに記憶された所定のデータは暗号化データであり、前記暗号処理手段は、前記暗号化データを復号化して転送する情報処理装置。
【請求項５】
請求項１記載の情報処理装置において、
前記転送制御手段はチェックコードを付加したアドレスを暗号化し、前記暗号処理手段は、内部に格納するチェックコードと復号化した前記暗号化されたチェックコードとの一致を検出して前記メモリに記憶された所定のデータを転送する情報処理装置。
【請求項６】
請求項５記載の情報処理装置において、
前記暗号処理手段は、内部に格納するチェックコードと復号化した前記暗号化されたチェックコードとの不一致が所定回数を越えたときは前記所定のデータを復号化しない情報処理装置。
【請求項７】
請求項１記載の情報処理装置において、
前記転送制御手段は、前記アドレスに対応するハッシュ値を前記暗号化されたアドレスに付加し、
前記暗号処理手段は、前記アドレスに対応するハッシュ値と復号化した前記暗号化されたアドレスに対応するハッシュ値との一致を検出して前記メモリに記憶された所定のデータを転送する情報処理装置。
【請求項８】
請求項１記載の情報処理装置において、
前記転送制御手段は、前記暗号処理手段に対して前記メモリに記憶された全てのデータの転送先を予め暗号化されたアドレスで指示する情報処理装置。
【請求項９】
メモリに記憶されたデータのアクセスを制御するクセスス制御ステップと、
前記メモリに記憶された所定のデータの転送先を予め暗号化されたアドレスで指示する転送制御ステップと、
前記暗号化されたアドレスを復号化する復号化ステップと、
前記メモリから読み出したデータを必要に応じて復号化し、復号化された前記暗号化アドレスに対応する処理手段へ転送する暗号処理ステップとを含む情報処理方法。
【請求項１０】
請求項９記載の情報処理方法において、
前記暗号処理ステップは、前記暗号化したアドレスの暗号鍵が正しい場合にのみ前記メモリに記憶された所定のデータを復号化した前記暗号化されたアドレスに対応する処理手段へ転送する情報処理方法。
【請求項１１】
請求項９又は１０記載の情報処理方法において、
前記メモリに記憶された所定のデータは暗号化データであり、前記暗号処理ステップは、前記暗号化データを復号化して転送する情報処理方法。
【請求項１２】
請求項９記載の情報処理方法において、
前記転送制御ステップはチェックコードを付加したアドレスを暗号化し、
前記暗号処理ステップは、暗号化されたチェックコードを復号化するステップと、
予め格納したチェックコードと復号化した前記暗号化されたチェックコードとを比較するステップと、
予め格納したチェックコードと復号化した前記暗号化されたチェックコードとをが一致したとき、前記メモリに記憶された所定のデータを転送するステップを含む情報処理方法。
【請求項１３】
請求項１２記載の情報処理方法において、
前記暗号処理ステップは、内部に格納するチェックコードと復号化した前記暗号化されたチェックコードとの不一致が所定回数を越えたときは前記所定のデータを復号化しない情報処理方法。
【請求項１４】
請求項９記載の情報処理方法において、
前記転送制御ステップは、前記アドレスに対応するハッシュ値を前記暗号化されたアドレスに付加し、
前記暗号処理ステップは、
復号化した前記暗号化されたアドレスに対してハッシュ演算を行うステップと、
ハッシュ演算の結果と前記アドレスに対応するハッシュ値とを比較するステップと、
前記ハッシュ演算の結果と前記アドレスに対応するハッシュ値とが一致したとき、前記メモリに記憶された所定のデータを転送するステップとを含む情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データの転送先を制御するソフトウェアを搭載した情報処理装置及び情報処理方法に関し、特に、ソフトウェアの改変により復号化したデータの転送先を制御してデータを複製することを阻止する技術に係るものである。
【０００２】
【従来の技術】
従来、情報処理端末等において、保護する必要のある音楽や動画などのデータは暗号化されて蓄積メディアに蓄積されており、暗号化された音楽や動画などのデータを再生する場合、ＣＰＵは蓄積メディアから暗号化データを読み出し、復号化を行う暗号処理回路に転送して復号処理を行う。その際、処理の高速化のため、蓄積メディアからデータを読み出す回路と復号化を行う回路を一つの暗号回路として実装する場合もある。ＣＰＵは、暗号処理回路から復号化したデータを取り出すと、例えば、再生処理を行う信号処理回路等にデータを転送して音楽や動画の再生を行う。暗号化されたデータや復号化されたデータの転送は、ＣＰＵ上に実装したソフトウェアがハードウェアに指示を出して行われる。
【０００３】
一方、蓄積メディアのデータの中には保護する必要のない平文データもあり、それらのデータは暗号化されずに格納されている。そのためＣＰＵは、蓄積メディアに格納された平文データをそのまま読み出す場合もある。
【０００４】
このように、暗号化データと平文データの両方を制御するため、多くの情報処理装置では、復号化した暗号化データの転送先及び平文データの転送先をＣＰＵで自由に設定できるようにしている。このため、データ保護のロバストネス性が犠牲にされている（例えば、特許文献１、特許文献２参照）。
【０００５】
【特許文献１】
特開２００２−１４９４９３号公報  （第２〜４頁、図１、図２）
【特許文献２】
特開２０００−１２２５３９号公報  （第４〜５頁、図３）
【０００６】
【発明が解決しようとする課題】
従来の情報処理装置では復号化したデータの転送先をＣＰＵ上に実装したソフトウェアが指示するため、例えば、ソフトウェアを書き換えて、復号化したデータの転送先を再生処理を行う信号処理回路から蓄積メディア等へ変更すれば、復号化したデータのコピーが容易に作成できる。
【０００７】
ソフトウェアの書き換えを不可能とすればデータ保護のロバストネス性を高めることはできるが、最初に実装したソフトウェアでしか動作できなくなるため、ソフトウェアのオープン性が確保されない。近年の情報処理装置においてはプログラムのアップデートは不可欠であり、ソフトウェアのオープン性の確保は必須である。
【０００８】
本発明は上記課題に鑑みてなされたものであり、ソフトウェアのオープン性を確保しつつ、データ保護のロバストネス性を確保できる情報処理装置及び情報処理方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明の情報処理装置は、メモリ（蓄積メディア）に記憶されたデータのアクセスを制御するアクセス制御手段（データ入出力回路）と、前記メモリから読み出したデータの転送先を指示する転送制御手段（ＣＰＵ）と、前記メモリから読み出したデータを必要に応じて復号化し前記転送制御手段の指示に基づいて転送する暗号処理手段（暗号処理回路）と、前記アクセス制御手段、前記転送制御手段、前記暗号処理手段及び前記メモリに記憶されたデータを処理する処理手段（信号処理回路）を接続するバスを備え、前記転送制御手段は、前記暗号処理手段に対して前記メモリに記憶された所定のデータの転送先を予め暗号化されたアドレスで指示し、前記暗号処理手段は、前記暗号化されたアドレスを復号化し、前記メモリに記憶された所定のデータを復号化した前記暗号化されたアドレスに対応する処理手段へ前記バスを介して転送する。
【００１０】
また、本発明の情報処理方法は、メモリに記憶されたデータのアクセスを制御するクセスス制御テップと、前記メモリに記憶された所定のデータの転送先を予め暗号化されたアドレスで指示する転送制御ステップと、前記暗号化されたアドレスを復号化する復号化ステップと、前記メモリから読み出したデータを必要に応じて復号化し、復号化された前記暗号化アドレスに対応する処理手段へ転送する暗号処理ステップとを含む。
【００１１】
上記構成によれば、データの転送先を示すアドレスを暗号化することで、第三者がソフトウェアを改変してデータの転送先を変更することができなくなるため、データの保護のロバストネス性を確保することができる。また、メモリに記憶されたデータのアクセスは可能であるためソフトウェアのオープン性も確保できる。
【００１２】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を参照しながら説明する。
図１は、本発明の情報処理装置の構成を示すブロック図である。情報処理装置は、ＣＰＵ１、信号処理回路２、暗号処理回路３、データ入出力回路４、蓄積メディア５及びバス６を備える。また、暗号処理回路３はデータ自動転送回路１０を備える。
【００１３】
ＣＰＵ１は、暗号処理や信号処理、蓄積メディアからのデータの読み出し等の指示を行う。ＣＰＵ１は、ＣＰＵ内部又はＣＰＵ外部のメモリに格納されたソフトウェアを読み出し、ソフトウェアの指示通りに動作を行う。信号処理回路２は、転送されたデータの各種処理を行う。暗号処理回路３は、与えられたデータの暗号化又は復号化処理を行う。データ入出力回路４は、蓄積メディアからデータを読み出したり、蓄積メディアへデータを書き込んだりする。蓄積メディア５は、暗号化されたデータや暗号化されていないデータを格納する。バス６は、ＣＰＵ１、信号処理回路２、暗号処理回路３、などの各部を接続する。データ自動転送回路１０は、暗号化処理回路３内にあって、暗号処理回路３やデータ入出力回路４からのデータをＣＰＵ１や信号処理回路２へ転送したり、ＣＰＵ１や信号処理回路２からのデータをデータ入出力回路４へ転送する。
【００１４】
図２は、暗号処理回路３の内部構成を示すブロック図である。暗号処理回路３は、データ自動転送回路１０、入出力回路１１、暗号モード判定回路１２、転送先アドレス格納回路１３、暗号化・復号化回路１４、鍵格納回路１５、暗号・復号データ入出力用バッファ１６及びデータ入出力用バッファ１７を備える。また、データ自動転送回路１０はチェックコード判定回路２０を備える。
【００１５】
入出力回路１１は、ＣＰＵ１や信号処理回路２などとの指示の受け渡しやデータの入出力を行う。暗号モード判定回路１２は、データの暗号化や復号化を行うか否かについてのＣＰＵからの指示を暗号化・復号化回路１４に伝える。転送先アドレス格納回路１３は、復号した転送先アドレスデータを格納する。暗号化・復号化回路１４は、データの暗号化又は復号化を行う。鍵格納回路１５は、暗号化又は復号化を行う際に必要な暗号鍵を格納する。暗号・復号データ入出力用バッファ１６は、暗号化するデータ又は復号化したデータを格納するバッファである。データ入出力用バッファ１７は、データ入出力回路４とデータ自動転送回路１０との間でデータの入出力を行う際のバッファである。チェックコード判定回路２０は、復号した転送先アドレスが正しい暗号鍵で暗号化されたかどうかを判定するためのチェックコードに基づいて、データの自動転送を行うかどうかを判定する。
【００１６】
データ自動転送回路１０（チェックコード判定回路２０を含む）、転送先アドレス格納回路１３、暗号化・復号化回路１４、鍵格納回路１５、暗号・復号データ入出力用バッファ１６、データ入出力用バッファ１７にあるデータは、ＣＰＵ１などの暗号処理回路３外部からの指示では読み出せない構造となっている。
【００１７】
次に、上記構成における各部の接続について説明する。ＣＰＵ１、信号処理回路２、暗号処理回路３は、バス６のみを通じてデータの送受信を行う。また、データ入出力回路４は、暗号処理回路３内のデータ入出力用バッファ１７とバスで接続する。蓄積メディア５はデータ入出力回路４と接続し、データ入出力回路４はバス６を介して接続するＣＰＵ１などとデータのやり取りを行う。
【００１８】
但し、データ入出力回路４は、蓄積メディアのデータの入出力に係る指示をバス６を通じてＣＰＵ１から受け付けるが、入出力データはバス６には出力しない。即ち、データの入出力は、蓄積メディア５と暗号処理回路３との間だけで行われる。
【００１９】
図３は、本発明の情報処理装置の、蓄積メディアからデータを読み出し、信号処理を行う際の処理手順を示すフローチャートである。はじめに、ＣＰＵ１は、ソフトウェアの指示に基づいて、暗号処理回路３とデータ入出力回路４に、蓄積メディア５に格納された暗号化データの読み出しを指示する（ステップＳ１０１）。
【００２０】
次に、ＣＰＵ１は、暗号処理回路３に、蓄積メディア５から読み出すデータに対する処理方法を指示する（ステップＳ１０２）。ＣＰＵ１からの指示は、暗号処理回路３内の入出力回路１１が受信して、暗号モード判定回路１２に受け渡す。ＣＰＵ１からの指示が、読み出したデータの「復号化」である場合、暗号モード判定回路１２は暗号化・復号化回路１４に対してデータの復号化を指示し、データの暗号化、復号化を行わない指示である場合、暗号モード判定回路１２は暗号化・復号化回路１４に対して動作停止の指示を行う。
【００２１】
ステップＳ１０２において、ＣＰＵ１からの指示が、読み出したデータの「復号化」である場合、ＣＰＵ１は、復号化する暗号化データの転送先アドレスを暗号化転送先アドレスとして暗号処理回路３に指示する（ステップＳ１０３）。
【００２２】
なお、暗号化データの転送先アドレスは、ソフトウェア開発者により予め暗号化され、暗号化転送先アドレスとしてソフトウェアに書き込まれている。アドレスの暗号化時には、ＣＰＵ１が、準備しているアドレスの最大値から転送先アドレスとの差分をとり、その差分にチェックコード判定回路２０に格納されたチェックコードの値を代入する。データ復号時の転送先アドレスは、上記方法で代入されたチェックコードと転送先アドレスを合わせて鍵格納回路１５に格納されたアドレス暗号鍵で暗号化される。これが暗号化転送先アドレスとしてＣＰＵ１より指示される。
【００２３】
次に、暗号化・復号化回路１４は、鍵格納回路１５からアドレス暗号鍵を読み出し、暗号モード判定回路１２から転送された暗号化転送先アドレスをアドレス暗号鍵を用いて復号化する。復号化された暗号化転送先アドレスは、転送先アドレスとチェックコードに分割され、転送先アドレスは転送先アドレス格納回路１３に格納される（ステップＳ１０４）。
【００２４】
次に、ＣＰＵ１からの指示に基づいて蓄積メディア５から読み出された暗号化データが、データ入出力回路４を介して暗号処理回路３内のデータ入出力用バッファ１７に格納される（ステップＳ１０５）。さらに、データ入出力用バッファ１７に格納されたデータは、暗号化・復号化回路１４に転送される。暗号化・復号化回路１４は、鍵格納回路１５よりデータ復号用暗号鍵を読み出し、データ入出力用バッファ１７から転送されたデータを復号化する。さらに、復号化したデータを暗号・復号データ入出力用バッファ１６に転送する（ステップＳ１０６）。
【００２５】
次に、チェックコード判定回路２０は、暗号化・復号化回路１４で復号されたチェックコードと格納しているチェックコードとを比較照合する（ステップＳ１０７）。暗号化・復号化回路１４で復号されたチェックコードとチェックコード判定回路に格納しているチェックコードとが一致する場合、データ自動転送回路１０は、転送先アドレス格納回路１３から転送先アドレスを読み出して、転送先アドレスとして設定する（ステップＳ１０８）。
【００２６】
次に、データ自動転送回路１０は、転送先アドレス格納回路１３から読み出した転送先アドレスに対して、暗号・復号データ入出力用バッファ１６に格納された復号データを転送する（ステップＳ１０９）。このとき、転送先アドレスが信号処理回路２である場合、復号データは信号処理回路２へ転送され、信号処理回路２でデータ処理が行われる。また、転送先アドレスが他の処理装置である場合、当該の処理装置へ復号データが転送される。
【００２７】
一方、ステップＳ１０７において、暗号化・復号化回路１４で復号されたチェックコードとチェックコード判定回路に格納しているチェックコードとが一致しない場合、チェックコード判定回路２０は、入出力回路１１にチェックコード判定失敗の通知を行う。さらに、入出力回路１１は、ＣＰＵ１にチェックコード判定失敗の通知を行い、データ自動転送回路１０は、暗号・復号データ入出力用バッファ１６に格納されている復号データの転送を中止する（ステップＳ１１０）。
【００２８】
また、ステップＳ１０２において、ＣＰＵ１からの指示がデータの暗号化、復号化のいずれでもない場合、暗号化・復号化回路１４は動作を停止する。ＣＰＵ１は、データの転送先アドレスを暗号処理回路３に指示する。暗号処理回路３内の入出力回路１１は、ＣＰＵ１から受信した転送先アドレスを暗号モード判定回路１２に転送する。このとき、ＣＰＵ１から指示される転送先アドレスは転送先アドレスのみで、チェックコードを含まず、暗号化されていない。暗号モード判定回路１２は、復号化を行わずにそのまま転送先アドレスをデータ自動転送回路１０に転送する（ステップＳ１１１）。
【００２９】
次に、ＣＰＵ１からの指示に基づいて蓄積メディア５から読み出された暗号化されていないデータが、データ入出力回路４を介して暗号処理回路３内のデータ入出力用バッファ１７に格納される（ステップＳ１１２）。データ自動転送回路１０は、データ入出力用バッファ１７に格納されたデータを、指定された転送先アドレスに転送する（ステップＳ１１３）。
【００３０】
このように、蓄積メディアから読み出すデータが暗号化されている場合は、暗号化転送先アドレスのチェックコードが一致した場合のみ、所定の転送先アドレスへ復号化されたデータが転送される。一方、蓄積メディアから読み出すデータが暗号化されていない場合は、そのまま所定の転送先アドレスへデータが転送される。
【００３１】
なお、チェックコード判定回路２０は、内部にチェック定の失敗回数を記録するようにしてもよい。所定回数以上失敗した場合、それ以降の復号データの転送を許可しないように設定することが可能となり、何回もアクセスを試みて鍵が不正に解読されることを防止できる。さらに、チェックコードの判定失敗回数をカウントしておく回路を、例えばフューズＲＯＭなどで構成することにより、耐タンパー性が向上する。
【００３２】
図４は、暗号処理回路３の他の構成を示すブロック図である。図２に示した暗号化処理回路と異なる点は、チェックコード判定回路２０がハッシュ演算回路２１に置換されている点である。
【００３３】
ハッシュ演算回路２１は、ハッシュ値格納回路３０、３２及びハッシュ値比較回路３１を備える。入出力回路１１から指示されるハッシュ値はハッシュ値格納回路３０に格納される。また、ハッシュ演算回路２１が復号化された転送先アドレスに対して行うハッシュ演算の結果はハッシュ値格納回路３２に格納される。
ハッシュ値比較回路３１は、ハッシュ値格納回路３０とハッシュ値格納回路３２に格納されたハッシュ値とを比較して、一致するか否かを判定する。
【００３４】
図５は、本発明の情報処理装置の、蓄積メディアからデータを読み出し、信号処理を行う際の処理手順を示すフローチャートである。はじめに、ＣＰＵ１は、ソフトウェアの指示に基づいて、暗号処理回路３とデータ入出力回路４に、蓄積メディア５に格納された暗号化データの読み出しを指示する（ステップＳ２０１）。
【００３５】
次に、ＣＰＵ１は、暗号処理回路３に、蓄積メディア５から読み出すデータに対する処理方法を指示する（ステップＳ２０２）。ＣＰＵ１からの指示は、暗号処理回路３内の入出力回路１１が受信して、暗号モード判定回路１２に受け渡す。ＣＰＵ１からの指示が、読み出したデータの「復号化」である場合、暗号モード判定回路１２は暗号化・復号化回路１４に対してデータの復号化を指示し、データの暗号化、復号化を行わない指示である場合、暗号モード判定回路１２は暗号化・復号化回路１４に対して動作停止の指示を行う。
【００３６】
ステップＳ２０２において、ＣＰＵ１からの指示が、読み出したデータの「復号化」である場合、ＣＰＵ１は、復号化するデータの暗号化転送先アドレスと平文転送先アドレスに対してハッシュ演算を行った転送先アドレスのハッシュ値を暗号処理回路３に指示する。暗号処理回路３内の入出力回路１１は、ＣＰＵ１から受信した暗号化転送先アドレスを暗号モード判定回路１２に転送し、暗号モード判定回路１２は暗号化・復号化回路１４に転送する。また、入出力回路１１は、転送先アドレスのハッシュ値をハッシュ演算回路２１に転送し、ハッシュ演算回路２１内のハッシュ値格納回路３０に格納する（ステップＳ２０３）。
【００３７】
次に、ＣＰＵ１からの指示に基づいて蓄積メディア５から読み出された暗号化データが、データ入出力回路４を介して暗号処理回路３内のデータ入出力用バッファ１７に格納される（ステップＳ２０４）。
【００３８】
次に、暗号化・復号化回路１４は、鍵格納回路１５からアドレス暗号鍵を読み出し、暗号モード判定回路１２から転送された暗号化転送先アドレスをアドレス暗号鍵を用いて復号化する。復号化された暗号化転送先アドレスは、転送先アドレス格納回路１３に格納される（ステップＳ２０５）。
【００３９】
次に、ハッシュ演算回路２１は、ステップＳ２０５で転送先アドレス格納回路１３に格納された転送先アドレスに対してハッシュ演算を実行し、結果をハッシュ値格納回路３２に格納する（ステップＳ２０６）。
【００４０】
次に、データ入出力用バッファ１７に格納されたデータが、暗号化・復号化回路１４に転送される。暗号化・復号化回路１４は、鍵格納回路１５よりデータ復号用暗号鍵を読み出し、データ入出力用バッファ１７から転送されたデータを復号化する。さらに、復号化したデータを暗号・復号データ入出力用バッファ１６に転送する（ステップＳ２０７）。
【００４１】
次に、ハッシュ値比較回路３１は、ハッシュ値格納回路３０に格納されたハッシュ値とハッシュ値格納回路３２に格納されたハッシュ値を比較照合する（ステップＳ２０８）。ハッシュ値格納回路３０に格納されたハッシュ値とハッシュ値格納回路３２に格納されたハッシュ値とが一致する場合、データ自動転送回路１０は、転送先アドレス格納回路１３から転送先アドレスを読み出して、転送先アドレスとして設定する（ステップＳ２０９）。
【００４２】
次に、データ自動転送回路１０は、転送先アドレス格納回路１３から読み出した転送先アドレスに対して、暗号・復号データ入出力用バッファ１６に格納された復号データを転送する（ステップＳ２１０）。このとき、転送先アドレスが信号処理回路２である場合、復号データは信号処理回路２に転送され、信号処理回路２でデータ処理が行われる。また、転送先アドレスが他の処理装置である場合、当該の処理装置へ復号データが転送される。
【００４３】
一方、ステップＳ２０８において、ハッシュ値格納回路３０に格納されたハッシュ値とハッシュ値格納回路３２に格納されたハッシュ値とが一致しない場合、ハッシュ値比較回路３１は、入出力回路１１にハッシュ値不一致の通知を行う。
さらに、入出力回路１１は、ＣＰＵ１にハッシュ値不一致の通知を行い、データ自動転送回路１０は、暗号・復号データ入出力用バッファ１６に格納されている復号データの転送を中止する（ステップＳ２１１）。
【００４４】
また、ステップＳ２０２において、ＣＰＵ１からの指示がデータの暗号化、復号化のいずれでもない場合、暗号化・復号化回路１４は動作を停止する。ＣＰＵ１は、データの転送先アドレスを暗号処理回路３に指示する。暗号処理回路３内の入出力回路１１は、ＣＰＵ１から受信した転送先アドレスを暗号モード判定回路１２に転送する。このとき、ＣＰＵ１から指示される転送先アドレスは転送先アドレスのみで、暗号化されていない。暗号モード判定回路１２は、復号化を行わずにそのまま転送先アドレスをデータ自動転送回路１０に転送する（ステップＳ２１２）。
【００４５】
次に、ＣＰＵ１からの指示に基づいて蓄積メディア５から読み出された暗号化されていないデータが、データ入出力回路４を介して暗号処理回路３内のデータ入出力用バッファ１７に格納される（ステップＳ２１３）。データ自動転送回路１０は、データ入出力用バッファ１７に格納されたデータを、指定された転送先アドレスに転送する（ステップＳ２１４）。
【００４６】
このように、蓄積メディアから読み出すデータが暗号化されている場合は、復号化した転送先アドレスのハッシュ値が一致した場合のみ、所定の転送先アドレスへ復号化されたデータが転送される。一方、蓄積メディアから読み出すデータが暗号化されていない場合は、そのまま所定の転送先アドレスへデータが転送される。
【００４７】
なお、復号化したデータを特定のアドレスのみに転送する場合は、図１のデータ自動転送回路１０の内部に、転送先アドレスを回路形成時に設定しておき、復号化データの転送時にはこのアドレスに転送されるようにしてもよい。これにより、復号化したデータを特定のアドレスだけに転送することが可能となる。但し、データ自動転送回路１０に設定した転送先アドレスは、ＣＰＵ１からは読み出せないような構造とする。また、暗号化されていないデータは、ＣＰＵ１から指示された転送先アドレスに転送できるようにする。
【００４８】
さらに、データ入出力回路４は暗号処理回路３に内蔵してもかまわない。その場合、暗号処理回路３内でデータ入出力用バッファ１７とデータ入出力回路４を接続し、データ入出力回路４に蓄積メディア５を接続する。
【００４９】
なお、上記実施の形態において、暗号化されたデータを転送するときのみ暗号化転送先アドレスを用いたが、全てのデータに対して暗号化転送先アドレスを用いてもよい。また、信号処理回路が単一の場合について説明したが、複数であってもよい。
【００５０】
【発明の効果】
以上のように、本発明によれば、データの転送先を示すアドレスを暗号化することで、第三者がソフトウェアを改変してデータの転送先を変更することができなくなるため、データの保護のロバストネス性を確保することができる。また、メモリに記憶されたデータのアクセスは可能であるためソフトウェアのオープン性も確保できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態における情報処理装置の構成を示すブロック図である。
【図２】暗号処理回路の内部構成を示すブロック図である。
【図３】情報処理装置の、蓄積メディアからデータを読み出し、信号処理を行う際の処理手順を示すフローチャートである。
【図４】暗号処理回路の他の内部構成を示すブロック図である。
【図５】情報処理装置の、蓄積メディアからデータを読み出し、信号処理を行う際の処理手順を示すフローチャートである。
【符号の説明】
１  ＣＰＵ
２  信号処理回路
３  暗号処理回路
４  データ入出力回路
５  蓄積メディア
６  バス
１０  データ自動転送回路
１１  入出力回路
１２  暗号モード判定回路
１３  転送先アドレス格納回路
１４  暗号化・復号化回路
１５  鍵格納回路
１６  暗号・復号データ入出力用バッファ
１７  データ入出力用バッファ
２０  チェックコード判定回路
２１  ハッシュ演算回路
３０、３２  ハッシュ値格納回路
３１  ハッシュ値比較回路
【図１】
2004252852.tif 000003
【図２】
2004252852.tif 000004
【図３】
2004252852.tif 000005
【図４】
2004252852.tif 000006
【図５】
2004252852.tif 000007