(57)【要約】【課題】  機密性を維持しながら暗号化／復号化処理のシーケンスを変更できる暗号化／復号化装置、電子機器及び暗号化／復号化装置の制御方法を提供する。【解決手段】  暗号化／復号化装置１０は、第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う第１の暗号化／復号化回路２０と、第２のアルゴリズムに従って暗号化された状態で外部メモリ５０に記憶されている制御プログラム情報が読み出された場合に、該制御プログラム情報に対し第２のアルゴリズムに従って復号化処理を行う復号化回路３０と、復号化された制御プログラム情報を記憶するメモリ４０と、メモリ４０に対して制御プログラム情報の読み出し及び書き込みを制御するメモリＩ／Ｆ４２とを含む。第１の暗号化／復号化回路２０は、制御プログラム情報に基づいて、暗号化／復号化処理のうちソフトウェア処理部分を実行する処理部２２と、暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路２４とを含む。【選択図】      図１
2007074507.tif 000002
【特許請求の範囲】
【請求項１】
第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う第１の暗号化／復号化回路と、
第２のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化／復号化処理を制御する制御プログラム情報が該外部メモリから読み出された場合に、該制御プログラム情報に対し前記第２のアルゴリズムに従って復号化処理を行う復号化回路と、
前記復号化処理の結果の妥当性を判定するための妥当性判定回路と、
前記復号化回路によって復号化された前記制御プログラム情報を記憶するメモリと、
前記メモリに対して前記制御プログラム情報の読み出し及び書き込みを制御するメモリインタフェースとを含み、
前記第１の暗号化／復号化回路が、
前記メモリから読み出された制御プログラム情報に基づいて、前記暗号化／復号化処理のうちソフトウェア処理部分を実行する処理部と、
前記暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路とを含むことを特徴とする暗号化／復号化装置。
【請求項２】
請求項１において、
前記メモリインタフェースは、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに書き込む制御を行った後に、該メモリから該制御プログラム情報を読み出す制御を行って前記第１の暗号化／復号化回路に出力することを特徴とする暗号化／復号化装置。
【請求項３】
請求項１又は２において、
イネーブル状態のときに、前記復号化回路によって復号化された前記制御プログラム情報を前記メモリインタフェースに転送する第１の転送制御回路を含み、
前記メモリインタフェースは、
前記第１の転送制御回路がイネーブル状態からディセーブル状態に変化したとき、該メモリから該制御プログラム情報を読み出す制御を行って前記第１の暗号化／復号化回路に出力することを特徴とする暗号化／復号化装置。
【請求項４】
請求項３において、
前記暗号化／復号化装置のハードウェアリセットがアクティブになった後に前記第１の転送制御回路が一度ディセーブル状態になったとき、前記復号化回路の動作を停止させることを特徴とする暗号化／復号化装置。
【請求項５】
請求項４において、
前記暗号化／復号化装置の前記第１の転送制御回路がディセーブルになったとき、前記妥当性確認回路にて、前記第２の復号結果が妥当であることを確認し、妥当である場合は前記第１の暗号化／復号化回路の使用を許可し、妥当でない場合は前記第１の暗号化／復号化回路の使用を禁止することを特徴とする暗号化／復号化装置。
【請求項６】
請求項１乃至５のいずれかにおいて、
前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースを含み、
前記第１の暗号化／復号化回路が、
暗号化インタフェースを含み、
前記暗号化インタフェースは、前記処理部からの指示に基づいて前記ハードウェア回路からの生成情報を前記ホストインタフェースに出力するか、前記メモリインタフェースに出力するかを切り替えることを特徴とする暗号化／復号化装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記第１の暗号化／復号化回路は、
前記制御プログラム情報の中から、ホストが指定した処理を実行することを特徴とする暗号化／復号化装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う第２の暗号化／復号化回路を含み、
前記第１及び第２の暗号化／復号化回路の各回路が、
前記制御プログラム情報の中から、ホストが指定した処理を実行することを特徴とする暗号化／復号化装置。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記第２のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースと、
前記記録媒体インタフェースと前記第１及び第２の暗号化／復号化回路との間のデータ転送を制御する第２の転送制御回路とを含むことを特徴とする暗号化／復号化装置。
【請求項１０】
ホストと、
請求項１乃至９のいずれか記載の暗号化／復号化装置と、
前記第２のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを含むことを特徴とする電子機器。
【請求項１１】
暗号化／復号化処理を制御する制御プログラム情報に基づいて前記暗号化／復号化処理のうちソフトウェア処理部分を実行する処理部と、前記暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路と、メモリとを含む暗号化／復号化装置の制御方法であって、
第２のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記制御プログラム情報を該外部メモリから読み出して、該制御プログラム情報に対し前記第２のアルゴリズムに従って復号化処理を行い、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに記憶し、
前記復号化処理の結果の妥当性判定処理を行い、
前記メモリに記憶された前記制御プログラム情報に基づいて、前記暗号化／復号化処理のうちソフトウェア処理部分を実行させることを特徴とすることを暗号化／復号化装置の制御方法。
【請求項１２】
請求項１１において、
前記暗号化／復号化装置のハードウェアリセットがアクティブになった後に、復号化された前記制御プログラム情報を前記メモリに転送する制御が一度ディセーブル状態になったとき、復号化処理の動作を停止させることを特徴とする暗号化／復号化装置の制御方法。
【請求項１３】
請求項１２において、
前記暗号化／復号化装置の前記第１の転送制御がディセーブルになったとき、前記妥当性確認処理にて、前記第２の復号結果が妥当であることを確認し、妥当である場合は前記暗号化／復号化処理を許可し、妥当でない場合は暗号化／復号化処理を禁止することを特徴とする暗号化／復号化装置の制御方法。
【請求項１４】
請求項項１１乃至１３のいずれかにおいて、
前記制御プログラム情報の中から、ホストが指定した処理を実行させることで前記暗号化／復号化処理を行うことを特徴とする暗号化／復号化装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化／復号化装置、電子機器及び暗号化／復号化装置の制御方法に関する。
【背景技術】
【０００２】
近年、家庭においても高品質なデジタルコンテンツを利用できるようになっている。例えば、ＭＰＥＧ（Moving Picture Experts Group、より具体的にはＭＰＥＧ２）ストリームを配信するＢＳデジタル放送等のデジタル放送が脚光を浴び、デジタル放送チューナやデジタル放送のコンテンツの記録／再生装置等の電子機器の普及が著しい。また記録媒体を利用したコンテンツの再生、録音、録画が可能となり、コンテンツデータを携帯機器に取り込めるようになっている。
【０００３】
このようにコンテンツデータの普及が進む一方で、コンテンツの保護の必要性が急速に高まっている。そのため、コンテンツの内容がデジタル的に不正に複製されるのを防止すべく、コンテンツデータを処理する電子機器にはコンテンツの複製防止技術が導入されている。この複製防止技術には暗号化／復号化処理において鍵が利用されるため、この鍵を機密情報として管理することが求められる。
【０００４】
このような機密情報については、例えば暗号化／復号化装置としての半導体装置内に書き換え可能な不揮発性メモリを内蔵させ、該不揮発性メモリに機密情報を書き込んだり、予め固定的に機密情報を埋め込んだりすることが考えられる。また特許文献１には、複数のユーザ間で予め定められた共通の情報を合成し、該情報を入力することで共通の鍵生成関数に基づいてハッシングを行って鍵を生成する技術が開示されている。
【特許文献１】特開平２−５６１３６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、半導体装置に内蔵させた不揮発性メモリに機密情報を書き込むようにすると、半導体装置自体のコスト高を招いてしまう。また半導体装置内に固定的に機密情報を埋め込むと、半導体装置毎に機密情報を異ならせることが困難となる。更に特許文献１に開示されている技術では、ユーザ数が増加した場合に複数のユーザ間で共通の情報を変更する必要が生じ、量産される半導体装置内で扱う機密情報を埋め込みには適さないと考えられる。そしてユーザの機密情報については、半導体装置の製造メーカ側に対して完全に秘匿できないという問題がある。
【０００６】
また機密性を維持したまま、暗号化／復号化処理のシーケンスを柔軟に変更できることが望ましい。この場合、暗号化／復号化処理には鍵の情報が深く関わるために、外部で鍵の情報が推定されることを防止する必要がある。
【０００７】
本発明は、以上のような技術的課題に鑑みてなされたものであり、その第１の目的とするところは、機密性を維持しながら暗号化／復号化処理のシーケンスを変更できる暗号化／復号化装置、電子機器及び暗号化／復号化装置の制御方法を提供することにある。
【０００８】
また本発明の第２の目的は、製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化／復号化装置、電子機器及び暗号化／復号化装置の制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するために本発明は、
第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う第１の暗号化／復号化回路と、
第２のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記暗号化／復号化処理を制御する制御プログラム情報が該外部メモリから読み出された場合に、該制御プログラム情報に対し前記第２のアルゴリズムに従って復号化処理を行う復号化回路と、
前記復号化処理の結果の妥当性を判定するための妥当性判定回路と、
前記復号化回路によって復号化された前記制御プログラム情報を記憶するメモリと、
前記メモリに対して前記制御プログラム情報の読み出し及び書き込みを制御するメモリインタフェースとを含み、
前記第１の暗号化／復号化回路が、
前記メモリから読み出された制御プログラム情報に基づいて、前記暗号化／復号化処理のうちソフトウェア処理部分を実行する処理部と、
前記暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路とを含む暗号化／復号化装置に関係する。
【００１０】
また本発明に係る暗号化／復号化装置では、
前記メモリインタフェースは、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに書き込む制御を行った後に、該メモリから該制御プログラム情報を読み出す制御を行って前記第１の暗号化／復号化回路に出力することができる。
【００１１】
また本発明に係る暗号化／復号化装置では、
イネーブル状態のときに、前記復号化回路によって復号化された前記制御プログラム情報を前記メモリインタフェースに転送する第１の転送制御回路を含み、
前記メモリインタフェースは、
前記第１の転送制御回路がイネーブル状態からディセーブル状態に変化したとき、該メモリから該制御プログラム情報を読み出す制御を行って前記第１の暗号化／復号化回路に出力することができる。
【００１２】
上記のいずれかの発明によれば、機密性を維持したまま、暗号化／復号化処理のシーケンスを容易に変更できるようになる。また、暗号化／復号化処理に深く関わる鍵の情報を復号化された状態で暗号化／復号化装置の外部に取り出されることがなくなり、暗号化／復号化装置の外部において鍵の情報が推定されることを防止できるようになる。
【００１３】
また本発明に係る暗号化／復号化装置では、
前記暗号化／復号化装置のハードウェアリセットがアクティブになった後に前記第１の転送制御回路が一度ディセーブル状態になったとき、前記復号化回路の動作を停止させることができる。
【００１４】
また本発明に係る暗号化／復号化装置では、
前記暗号化／復号化装置の前記第１の転送制御回路がディセーブルになったとき、前記妥当性確認回路にて、前記第２の復号結果が妥当であることを確認し、妥当である場合は前記第１の暗号化／復号化回路の使用を許可し、妥当でない場合は前記第１の暗号化／復号化回路の使用を禁止することができる。
【００１５】
これらの発明によれば、制御プログラム情報を一旦メモリに展開すれば復号化回路による復号化処理を不要にできる場合、無駄な消費電力を削減できる。また、不正に制御プログラム情報が展開されて、意図しないタイミングで復号化処理してしまうケースを完全に排除できるようにもなる。
【００１６】
また本発明に係る暗号化／復号化装置では、
前記外部メモリからデータの読み出しを行うホストとのインタフェース処理を行うホストインタフェースを含み、
前記第１の暗号化／復号化回路が、
暗号化インタフェースを含み、
前記暗号化インタフェースは、前記処理部からの指示に基づいて前記ハードウェア回路からの生成情報を前記ホストインタフェースに出力するか、前記メモリインタフェースに出力するかを切り替えることができる。
【００１７】
また本発明に係る暗号化／復号化装置では、
前記第１の暗号化／復号化回路は、
前記制御プログラム情報の中から、ホストが指定した処理を実行することができる。
【００１８】
また本発明に係る暗号化／復号化装置では、
前記第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う第２の暗号化／復号化回路を含み、
前記第１及び第２の暗号化／復号化回路の各回路が、
前記制御プログラム情報の中から、ホストが指定した処理を実行することができる。
【００１９】
ここで、制御プログラム情報により第１の暗号化／復号化回路の暗号化／復号化処理の流れを制御できるようになると、暗号化／復号化装置の外部のホストが、制御プログラム情報の内容によっては第１の暗号化／復号化回路の暗号化／復号化処理の途中結果、最終結果又は鍵の情報を取り出せるようになるかもしれない。しかしながら本発明によれば、このような事態を回避するために、制御プログラム情報の中からホストが処理を指定できるようにしているので、第１の暗号化／復号化回路の暗号化／復号化処理の途中結果等を外部に取り出される事態を回避し、且つホストの処理負荷の軽減も実現させることが可能となる。
【００２０】
また本発明に係る暗号化／復号化装置では、
前記第２のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体とのインタフェース処理を行う記録媒体インタフェースと、
前記記録媒体インタフェースと前記第１及び第２の暗号化／復号化回路との間のデータ転送を制御する第２の転送制御回路とを含むことができる。
【００２１】
本発明によれば、機密性を維持しながら記録媒体に格納されたコンテンツの暗号化／復号化処理のシーケンスを変更できる暗号化／復号化装置を提供できる。
【００２２】
また本発明は、
ホストと、
上記のいずれか記載の暗号化／復号化装置と、
前記第２のアルゴリズムに従って暗号化されたコンテンツデータが格納される記録媒体に接続するための媒体接続部とを電子機器に関係する。
【００２３】
本発明によれば、機密性を維持しながら暗号化／復号化処理のシーケンスを変更できる暗号化／復号化装置が適用された電子機器を提供できる。また本発明によれば、製造メーカ側に対し機密情報を秘匿でき、且つ低コストでコンテンツデータを保護できる暗号化／復号化装置が適用された電子機器を提供できる。
【００２４】
また本発明は、暗号化／復号化処理を制御する制御プログラム情報に基づいて前記暗号化／復号化処理のうちソフトウェア処理部分を実行する処理部と、前記暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路と、メモリとを含む暗号化／復号化装置の制御方法であって、
第２のアルゴリズムに従って暗号化された状態で外部メモリに記憶されている前記制御プログラム情報を該外部メモリから読み出して、該制御プログラム情報に対し前記第２のアルゴリズムに従って復号化処理を行い、
前記復号化処理の結果の妥当性判定処理を行い、
前記復号化回路によって復号化された前記制御プログラム情報を前記メモリに記憶し、
前記メモリに記憶された前記制御プログラム情報に基づいて、前記暗号化／復号化処理のうちソフトウェア処理部分を実行させる暗号化／復号化装置の制御方法に関係する。
【００２５】
また本発明に係る暗号化／復号化装置の制御方法では、
前記暗号化／復号化装置のハードウェアリセットがアクティブになった後に、復号化された前記制御プログラム情報を前記メモリに転送する制御が一度ディセーブル状態になったとき、復号化処理の動作を停止させることができる。
【００２６】
また本発明に係る暗号化／復号化装置の制御方法では、
前記暗号化／復号化装置の前記第１の転送制御がディセーブルになったとき、前記妥当性確認処理にて、前記第２の復号結果が妥当であることを確認し、妥当である場合は前記暗号化／復号化処理を許可し、妥当でない場合は暗号化／復号化処理を禁止することができる。
【００２７】
また本発明に係る暗号化／復号化装置の制御方法では、
前記制御プログラム情報の中から、ホストが指定した処理を実行させることで前記暗号化／復号化処理を行うことができる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明の実施の形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
【００２９】
１．  暗号化／復号化装置
図１に、本実施形態の暗号化／復号化装置の原理的な構成を示す。
【００３０】
本実施形態における暗号化／復号化装置１０は、第１の暗号化／復号化回路２０と、復号化回路３０と、メモリ４０と、メモリインタフェース（Interface：Ｉ／Ｆ）４２とを含む。そして暗号化／復号化装置１０は、暗号化／復号化装置１０の外部に設けられた外部メモリ５０に格納された制御プログラム情報に応じて実行されるシーケンスに従って、コンテンツデータの暗号化／復号化処理を行う。この制御プログラム情報により、暗号化／復号化処理の流れが制御される。
【００３１】
第１の暗号化／復号化回路２０は、第１のアルゴリズムに従ってコンテンツデータの暗号化／復号化処理を行う。復号化回路３０は、第２のアルゴリズムに従って暗号化された状態で外部メモリ５０に記憶されている制御プログラム情報が外部メモリ５０から読み出された場合に、該制御プログラム情報に対し第２のアルゴリズムに従って復号化処理を行う。即ち、制御プログラム情報（広義には暗号化／復号化情報）の機密性を維持させるために、外部メモリ５０には、第２のアルゴリズムに従って暗号化された状態で該暗号化／復号化情報が格納される。そのため、復号化回路３０は、外部メモリ５０から読み出された制御プログラム情報に対し、第２のアルゴリズムに従って復号化処理を行う。
【００３２】
メモリ４０は、復号化回路３０によって復号化された制御プログラム情報を記憶する。このメモリ４０に格納された制御プログラム情報の記憶領域は、暗号化／復号化装置１０の外部からアクセス不可能な領域である。そして、メモリ４０から読み出された制御プログラム情報が第１の暗号化／復号化回路２０に供給され、第１の暗号化／復号化回路２０は該制御プログラム情報に従って、コンテンツデータの暗号化／復号化処理を行う。
【００３３】
メモリＩ／Ｆ４２は、メモリ４０に対して制御プログラム情報の読み出し及び書き込みを制御する。メモリＩ／Ｆ４２は、復号化回路３０によって復号化された制御プログラム情報をメモリ４０に書き込む制御を行った後に、該メモリ４０から該制御プログラム情報を読み出す制御を行って第１の暗号化／復号化回路２０に出力する。第１のアルゴリズムは、例えば公知のＣ２（Cryptomeria Cipher）のアルゴリズムとすることができる。第２のアルゴリズムは、例えば公知のＡＥＳ（Advanced Encryption Standard）のアルゴリズムとすることができる。なお、第１及び第２のアルゴリズムは、異なる鍵を用いるのであれば同じアルゴリズムであってもよい。
【００３４】
第１の暗号化／復号化回路２０は、処理部２２と、ハードウェア回路２４とを含む。処理部２２は、メモリ４０から読み出された制御プログラム情報に基づいて、第１の暗号化／復号化回路２０によって行われる暗号化／復号化処理のうちソフトウェア処理部分を実行する。このような処理部２２では、中央演算処理装置（Central Processing Unit：ＣＰＵ）やシーケンサ等のハードウェアが、メモリ４０からの制御プログラム情報に対応した処理（制御）を行うようになっている。ハードウェア回路２４は、第１の暗号化／復号化回路２０によって行われる暗号化／復号化処理のうちハードウェア処理部分を実行する。このため、暗号化／復号化処理のシーケンスを容易に変更できる。また、暗号化／復号化処理に深く関わる鍵の情報を復号化された状態で暗号化／復号化装置１０の外部に取り出されることがなくなり、暗号化／復号化装置１０の外部において鍵の情報が推定されることを防止できる。
【００３５】
このような暗号化／復号化装置１０は、更にホストＩ／Ｆ３２、第１の転送制御回路３４を含むことができる。ホストＩ／Ｆ３２は、外部メモリ５０に記憶されされたデータの読み出し制御を行い、該データを暗号化／復号化装置１０に出力する制御を行うホスト６０との間のインタフェース処理を行う。このホストＩ／Ｆ３２は、復号化回路３０及び第１の暗号化／復号化回路２０に接続される。第１の転送制御回路３４は、復号化回路３０及びメモリＩ／Ｆ４２の間に設けられ、復号化回路３０によって復号化されたデータをメモリＩ／Ｆ４２に転送する制御を行う。第１の転送制御回路３４は、イネーブル信号Ｒｕｎｎｉｎｇによりイネーブル状態に設定されたとき、復号化回路３０によって復号化された制御プログラム情報をメモリＩ／Ｆ４２に転送する。そしてメモリＩ／Ｆ４２は、第１の転送制御回路３４がイネーブル信号Ｒｕｎｎｉｎｇによりイネーブル状態からディセーブル状態に設定されたとき、メモリ４０から制御プログラム情報を読み出す制御を行って第１の暗号化／復号化回路２０に出力する。
【００３６】
また第１の暗号化／復号化回路２０は、更に暗号化Ｉ／Ｆ２６を含むことができる。暗号化Ｉ／Ｆ２６は、ホストＩ／Ｆ３２とメモリＩ／Ｆ４２との間に設けられる。暗号化Ｉ／Ｆ２６は、処理部２２及びハードウェア回路２４に接続され、メモリ４０からの制御プログラム情報を処理部２２に出力したり、ホスト６０からのコマンドを該処理部２２に出力したりできる。
【００３７】
また暗号化／復号化装置１０は、暗号化／復号化装置１０の外部に設けられた外部メモリ５０に制御プログラム情報とは別に格納された鍵の情報（広義には暗号化／復号化情報）に基づいて、コンテンツデータの暗号化／復号化処理を行うことができる。例えばコンテンツデータが第１のアルゴリズムに従って暗号化されている状態のとき、暗号化／復号化装置１０は、鍵の情報である暗号化／復号化情報に基づいて第１のアルゴリズムに従って復号化処理を行う。また例えばコンテンツデータが暗号化されていない状態のとき、暗号化／復号化装置１０は、鍵の情報である暗号化／復号化情報に基づいて、第１のアルゴリズムに従って暗号化処理を行う。このように暗号化／復号化情報は、第１のアルゴリズムの暗号化／復号化処理を行うための鍵の情報とすることができる。
【００３８】
この場合には、本実施形態における構成によれば、コンテンツデータの暗号化／復号化処理に必要な暗号化／復号化情報の機密性を維持できる。また鍵の情報の変更が必要になった場合でも、量産される半導体装置内で機密性を維持しながら機密情報を扱うことができる。
【００３９】
更に本実施形態の暗号化／復号化装置１０では、以下のように制御することが望ましい。
【００４０】
図２に、本実施形態の暗号化／復号化装置１０の制御方法の一例のタイミング図を示す。ここで暗号化／復号化装置１０は、ハードウェア的に入力されるハードウェアリセットＲＳＴがアクティブになったとき、初期状態に設定されるものとする。また、復号化回路３０は、イネーブル信号ＥＮ１により動作のイネーブル状態又は動作のディセーブル状態が設定され、第１の暗号化／復号化回路２０は、イネーブル信号ＥＮ２により動作のイネーブル状態又は動作のディセーブル状態に設定されるものとする。
【００４１】
暗号化／復号化装置１０のハードウェアリセットＲＳＴがアクティブになると、上述のように暗号化／復号化装置１０は初期状態に設定される（ＳＥＱ１）。その後、ホスト６０によって外部メモリ５０から読み出された制御プログラム情報は、復号化回路３０に供給される。このとき復号化回路３０は、イネーブル信号ＥＮ１により動作のイネーブル状態に設定され、復号化処理を開始する。処理結果は、イネーブル信号ＥＮ１と同様にアクティブに設定されるイネーブル信号Ｒｕｎｎｉｎｇにより第１の転送制御回路３４がメモリＩ／Ｆ４２を介して、メモリ４０に転送される（ＳＥＱ２）。
【００４２】
そしてデータが終了すると、復号化回路３０は、イネーブル信号ＥＮ１により動作のディセーブル状態に設定され、イネーブル信号ＥＮ１と同様に非アクティブに設定されるイネーブル信号Ｒｕｎｎｉｎｇにより第１の転送制御回路３４の動作がディセーブル状態に設定される（ＳＥＱ３）。これ以降、イネーブル信号ＥＮ１により、復号化回路３０の動作は停止される。即ち、暗号化／復号化装置１０のハードウェアリセットＲＳＴがアクティブになった後に第１の転送制御回路３４が一度ディセーブル状態になったとき、復号化回路３０の動作を停止させる。こうすることで、制御プログラム情報を一旦メモリ４０に展開すれば復号化回路３０による復号化処理を不要にできる場合、無駄な消費電力を削減できる。また、不正に制御プログラム情報が展開されて、意図しないタイミングで復号化処理してしまうケースを完全に排除できるようにもなる。
【００４３】
ところで、制御プログラム情報により第１の暗号化／復号化回路２０の暗号化／復号化処理の流れを制御できるようになると、暗号化／復号化装置１０の外部のホスト６０が、制御プログラム情報の内容によっては第１の暗号化／復号化回路２０の暗号化／復号化処理の途中結果、最終結果又は鍵の情報を取り出せるようになるかもしれない。本実施形態では、このような事態を回避するために、制御プログラム情報の中からホスト６０がコマンドで所望の処理を指定できるようにしている。これにより、ホスト６０の処理負荷の軽減も実現させることが可能となる。
【００４４】
図３に、本実施形態の制御プログラム情報の指定方法の説明図を示す。但し、図３において、図１と同一部分には同一符号を付し、適宜説明を省略する。
【００４５】
本実施形態では、制御プログラム情報としてのシーケンスコードは、１又は複数のシーケンスブロックから構成される。各シーケンスブロックは、１又は複数の命令列を含む。ホスト６０によって暗号化された状態で外部メモリ５０から読み出されたシーケンスコードは、暗号化／復号化装置１０の復号化回路３０によって復号化される。その後、復号化されたシーケンスコードは、メモリ４０の所定の記憶領域に格納されて展開される。メモリ４０から各シーケンスブロックの各命令が読み出され、第１の暗号化／復号化回路２０の処理部２２によって解読される。そして、処理部２２は、解読した命令に対応した制御（処理）を行う。処理部２２が一連の命令に対応した制御を行うことで、シーケンスブロックが、目的とする処理を実行できるようになっている。
【００４６】
そして本実施形態においては、ホスト６０が、暗号化／復号化装置１０に対してコマンドを発行できるようになっている。このコマンドは、暗号化／復号化装置１０において、メモリ４０に記憶された１又は複数のシーケンスブロックのうち１つのシーケンスブロックを指定できる。即ち、ホスト６０は、処理部２２において実行させる処理を実現する命令列を含むシーケンスブロックをコマンドで指定するだけで第１の暗号化／復号化回路２０の処理を変更できる。そのためホスト６０に対して、例えば第１の暗号化／復号化回路２０の暗号化／復号化処理の途中結果等を出力させる必要がなくなる。これは、ホスト６０が、第１の暗号化／復号化回路２０の暗号化／復号化処理の処理途中で生成された中間鍵を管理する必要が無くなることも意味する。その結果、ホスト６０の処理負荷を軽減させると共に機密性を維持させる効果が得られる。
【００４７】
また、例えば本実施形態の暗号化／復号化装置を半導体装置として製造する製造メーカが関知しないように、該半導体装置のユーザ（顧客）が乱数データを用いて制御プログラム情報等の暗号化／復号化情報を外部メモリ５０に格納させてもよい。このとき、暗号化／復号化情報が、暗号化対象情報と予め用意された事前共有鍵と乱数データとに基づいて生成される。そして、外部メモリ５０から暗号化／復号化情報と乱数データとが対となって読み出され、復号化回路３０が、暗号化／復号化情報の事前共有鍵に基づいて生成された共有鍵と乱数データとに基づいて復号化処理を行い、第１の暗号化／復号化回路２０が、復号化された暗号化対象情報に基づいて暗号化／復号化処理を行う。この場合、暗号化対象情報としてコンテンツデータの暗号化／復号化処理に必要な鍵の情報等のユーザの機密情報を採用することで、製造メーカ側に対して完全にユーザの機密情報を秘匿できる暗号化／復号化装置１０を提供できる。
【００４８】
以下では、本実施形態の暗号化／復号化装置１０が適用される暗号化／復号化システムの構成例について説明する。
【００４９】
２．  暗号化／復号化システム
暗号化／復号化システムでは、ユーザの機密情報の他に、暗号化／復号化装置（半導体装置）の製造メーカの機密情報（ユーザによる変更を望まない情報）も、互いに秘匿した状態で暗号化／復号化装置に設定できるようになっている。従って、ユーザに秘匿した状態で製造メーカの機密情報を反映させて暗号化／復号化装置を動作させることができる。また、製造メーカ側に秘匿した状態でユーザの機密情報を反映させて暗号化／復号化装置を動作させることができる。以下では、ユーザの機密情報が、ＣＰＲＭ（Content Protection for Recordable Media）のデバイス鍵の情報であるものとするが、本実施形態ではこれに限定されるものではない。また製造メーカの機密情報が、暗号化／復号化回路の動作制御を行うための制御プログラム情報としてのシーケンスコードであるものとするが、本実施形態ではこれに限定されるものではない。
【００５０】
図４に、本実施形態の暗号化／復号化システムの構成例のブロック図を示す。ここでは、第１のアルゴリズムとしてＣ２のアルゴリズム、第２のアルゴリズムとしてＡＥＳのアルゴリズムが採用されるものとする。
【００５１】
本実施形態の暗号化／復号化システム１００は、シーケンスコード暗号化装置２００、デバイス鍵用事前共有鍵生成装置３００、デバイス鍵暗号化装置４００、外部メモリ５０としての不揮発性メモリ５００、ＣＰＵを含むホスト６００、暗号化／復号化装置１０としての暗号化／復号化装置７００を含む。製造メーカ側では、シーケンスコード暗号化装置２００及びデバイス鍵用事前共有鍵生成装置３００が用いられる。シーケンスコード暗号化装置２００及びデバイス鍵用事前共有鍵生成装置３００の機能は、パーソナルコンピュータ上で動作するアプリケーションプログラム（ソフトウェア）によって実現される。ユーザ側では、デバイス鍵暗号化装置４００が、不揮発性メモリ５００、ホスト６００及び暗号化／復号化装置７００と同様に用いられる。デバイス鍵暗号化装置４００の機能は、パーソナルコンピュータ上で動作するアプリケーションプログラム（ソフトウェア）によって実現される。
【００５２】
（製造メーカ側）
シーケンスコード暗号化装置２００は、予めシーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０（初期値）を有している。このシーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０はシーケンスコードの暗号化／復号化処理の共有鍵の生成に用いられ、同じシーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０が暗号化／復号化装置７００に埋め込まれている。
【００５３】
まず製造メーカ側では、独自に決めた所定ビットの第１の乱数データＲＮ１をシーケンスコード暗号化装置２００に設定する。この第１の乱数データＲＮ１は、製造メーカ側においてユーザ毎に管理することが望ましい。シーケンスコード暗号化装置２００では、ＡＥＳ部２２０において、シーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０に対応したシーケンスコード用暗号化処理の鍵ＫＥＹ−Ｓ及びシーケンスコード用暗号化処理の初期値ＩＶ−Ｓが、第１の乱数データＲＮ１に基づいて生成される。即ち、ＡＥＳ部２２０は、第１の乱数データＲＮ１の長さだけＣＢＣモードのＡＥＳアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵ＫＥＹ−Ｓとして設定し、最後から１つ前のブロックを初期値ＩＶ−Ｓと設定する。
【００５４】
またシーケンスコード暗号化装置２００には、製造メーカ側の機密情報としてシーケンスコードが入力される。このシーケンスコードは、予め決められた妥当性チェック値ＶＣＫ１が付加されて、ＡＥＳ部２２０に入力される。ＡＥＳ部２２０は、例えば公知のＣＢＣ（Cipher Block Chaining）モードのＡＥＳ方式で妥当性チェック値ＶＣＫ１が付加されたシーケンスコードの暗号化処理を行う。この暗号化処理では、シーケンスコード用暗号化処理の鍵ＫＥＹ−Ｓ及びシーケンスコード用暗号化処理の初期値ＩＶ−Ｓが用いられる。ＣＢＣモードでは、処理中のブロック以外のブロックのデータを当該ブロックの処理に反映させるため、初期値を異ならせることで入力データが同じであっても出力データを異ならせることができる。
【００５５】
第１の乱数データＲＮ１とＡＥＳ部２２０によって生成された暗号化処理後のデータとを連結することで第１の処理情報が生成され、該第１の処理情報が不揮発性メモリ５００に書き込まれる。
【００５６】
このように第１の乱数データＲＮ１を用いて初期値ＩＶ−Ｓ、鍵ＫＥＹ−Ｓを生成することで、鍵の解読を困難にさせることができる。また、第１の乱数データＲＮ１と暗号化処理後のデータとを連結するようにしたので、乱数データとシーケンスコードとの境界を判別しにくくして、不揮発性メモリ５００に格納される第１の処理情報の解読を格段に困難にさせることができる。
【００５７】
更に製造メーカ側では、デバイス鍵用事前共有鍵生成装置３００において、デバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０が生成される。このデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０を用いて、ユーザ側の機密情報であるＣＰＲＭのデバイス鍵の暗号化／復号化処理に用いられる鍵ＫＥＹ−Ｄと初期値ＩＶ−Ｄとが生成される。デバイス鍵用事前共有鍵生成装置３００では、複数の事前共有鍵と第１の乱数データＲＮ１の一部（例えば第１の乱数データＲＮ１内の特定のＭビット（Ｍは整数）のデータ）とを用いて共有鍵を生成する。即ち、共有鍵は、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成され、復号化回路においては、乱数データの一部に基づいて、複数の事前共有鍵を用いて生成された共有鍵を用いて復号化処理が行われる。
【００５８】
図５に、デバイス鍵用事前共有鍵生成装置３００の機能ブロックの例を示す。
【００５９】
デバイス鍵用事前共有鍵生成装置３００は、セレクタ３１０、第１〜第Ｎの事前共有鍵３２０−１〜３２０−Ｎ（Ｎは整数）を含む。
【００６０】
第１〜第Ｎの事前共有鍵３２０−１〜３２０−Ｎのいずれかが、セレクタ３１０に供給される第１の乱数データＲＮ１内の特定のＭビット（Ｍは整数）に基づいて、１組のデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０としてデバイス鍵暗号化装置４００に設定される。
【００６１】
ここで、第１〜第Ｎの事前共有鍵３２０−１〜Ｎは、乱数データＲＮ１内の特定ビット数Ｍで選択されるため、Ｎ≦２Ｍとする。
【００６２】
なお暗号化／復号化装置７００もまた、このデバイス鍵用事前共有鍵生成装置３００と同じ機能を実現できる回路を有する。
【００６３】
（ユーザ側）
図４に戻って説明を続ける。一方、ユーザ側のデバイス鍵暗号化装置４００には、上述のデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０が設定される。このデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０はデバイス鍵の暗号化／復号化処理の共有鍵の生成に用いられる。
【００６４】
ユーザ側では、製造メーカ側が関知しないように独自に決めた所定ビットの第２の乱数データＲＮ２をデバイス鍵暗号化装置４００に設定する。デバイス鍵暗号化装置４００では、ＡＥＳ部４２０において、デバイス鍵用事前共有鍵ＫＥＹ−Ｄ０，ＩＶ−Ｄ０に対応したデバイス鍵用暗号化処理の鍵ＫＥＹ−Ｄ及びデバイス鍵用暗号化処理の初期値ＩＶ−Ｄが、第２の乱数データＲＮ２に基づいて生成される。即ち、ＡＥＳ部４２０は、第２の乱数データＲＮ２の長さだけＣＢＣモードのＡＥＳアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵ＫＥＹ−Ｄとして設定し、最後から１つ前のブロックを初期値ＩＶ−Ｄと設定する。
【００６５】
またデバイス鍵暗号化装置４００には、ユーザ側の機密情報としてＣＰＲＭのデバイス鍵が入力される。このデバイス鍵は、予め決められた妥当性チェック値ＶＣＫ２が付加されて、ＡＥＳ部４２０に入力される。ＡＥＳ部４２０は、例えば公知のＣＢＣモードのＡＥＳ方式で妥当性チェック値ＶＣＫ２が付加されたデバイス鍵の暗号化処理を行う。この暗号化処理では、デバイス鍵用暗号化処理の鍵ＫＥＹ−Ｄ及びデバイス鍵用暗号化処理の初期値ＩＶ−Ｄが用いられる。
【００６６】
第２の乱数データＲＮ２とＡＥＳ部４２０によって生成された暗号化処理後のデータとを連結することで第２の処理情報が生成され、該第２の処理情報が不揮発性メモリ５００に書き込まれる。
【００６７】
このように第２の乱数データＲＮ２を用いて初期値ＩＶ−Ｄ、鍵ＫＥＹ−Ｄを生成することで、鍵の解読を困難にさせることができる。また、第２の乱数データＲＮ２と暗号化処理後のデータとを連結するようにしたので、乱数データとデバイス鍵との境界を判別しにくくして、不揮発性メモリ５００に格納される第２の処理情報の解読を格段に困難にさせることができる。
【００６８】
以上のように不揮発性メモリ５００に設定された第１及び第２の処理情報は、所定の順序でホスト６００によって読み出され、暗号化／復号化装置７００に出力される。
【００６９】
図６に、暗号化／復号化装置７００のうちシーケンスコード及びデバイス鍵の復号化処理に関わるブロック構成の一例を示す。
【００７０】
暗号化／復号化装置７００は、ＡＥＳマクロ部７１０、メモリ部７５０を含む。ＡＥＳマクロ部７１０は、ホスト６００によって不揮発性メモリ５００から順次読み出された第１及び第２の処理情報を解析する。即ち、ＡＥＳマクロ部７１０は、まず、抽出した第１の乱数データＲＮ１に基づいてシーケンスコード用の復号化処理のための初期値、鍵を生成後、該初期値及び鍵を用いてシーケンスコードの復号化処理を行って復号化したシーケンスコードをメモリ部７５０に格納する。次に、ＡＥＳマクロ部７１０は、抽出した第２の乱数データＲＮ２に基づいてデバイス鍵用の復号化処理のための初期値、鍵を生成後、該初期値及び鍵を用いてデバイス鍵の復号化処理を行って復号化したデバイス鍵をメモリ部７５０に格納する。
【００７１】
このようなＡＥＳマクロ部７１０は、デバイス鍵用事前共有鍵生成部７１２、シーケンスコード用事前共有鍵保持レジスタ（制御プログラム情報用事前共有鍵保持レジスタ）７１４、ＡＥＳコア部７１６、シーケンスコード用復号化処理レジスタ７１８、デバイス鍵用復号化処理レジスタ７２４、妥当性判定回路７２６を含むことができる。
【００７２】
デバイス鍵用事前共有鍵生成部７１２は、図５に示す製造メーカ側のデバイス鍵用事前共有鍵生成装置３００と同じ機能を有し、フリップフロップや組み合わせ回路等のハードウェア回路により実現される。シーケンスコード用事前共有鍵保持レジスタ７１４には、製造メーカ側のシーケンスコード暗号化装置２００に設定されるシーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０が設定されている。ＡＥＳコア部７１６は、ＡＥＳのアルゴリズムに従って復号化処理を行う。
【００７３】
シーケンスコード用復号化処理レジスタ７１８には、ＡＥＳコア部７１６による暗号化処理において順次生成されるシーケンスコード用復号化処理の初期値ＩＶ−Ｓ及びシーケンスコード用復号化処理の鍵ＫＥＹ−Ｓが設定される。またデバイス鍵用復号化処理レジスタ７２４には、ＡＥＳコア部７１６による暗号化処理において順次生成されるデバイス鍵用復号化処理の初期値ＩＶ−Ｄ及びデバイス鍵用復号化処理の鍵ＫＥＹ−Ｄが設定される。
【００７４】
ＡＥＳコア部７１６では、シーケンスコード用の復号化処理後にデバイス鍵用の復号化処理が行われる。即ち、まずホスト６００は、不揮発性メモリ５００から第１の乱数データＲＮ１とＡＥＳのアルゴリズムで暗号化されたシーケンスコード及び妥当性チェック値ＶＣＫ１とを読み出し、暗号化／復号化装置７００に対し、第１の乱数データＲＮ１、シーケンスコード及び妥当性チェック値ＶＣＫ１の順に設定する。続いて、ホスト６００は、不揮発性メモリ５００から第２の乱数データＲＮ２とＡＥＳのアルゴリズムで暗号化されたデバイス鍵及び妥当性チェック値ＶＣＫ２とを読み出し、暗号化／復号化装置７００に対し、第２の乱数データＲＮ２、デバイス鍵及び妥当性チェック値ＶＣＫ２の順に設定する。
【００７５】
暗号化／復号化装置７００に入力された第１の乱数データＲＮ１内の特定のＭビット（Ｍは整数）はデバイス鍵用事前共有鍵生成部７１２に供給される。デバイス鍵用事前共有鍵生成部７１２は、図５のデバイス鍵用事前共有鍵生成装置３００と同様に１組のデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０を生成する。
【００７６】
ＡＥＳコア部７１６は、シーケンスコード用事前共有鍵保持レジスタ７１４に保持されたシーケンスコード用事前共有鍵ＫＥＹ−Ｓ０、ＩＶ−Ｓ０に対応したシーケンスコード用復号化処理の鍵ＫＥＹ−Ｓ及びシーケンスコード用復号化処理の初期値ＩＶ−Ｓを、第１の乱数データＲＮ１に基づいて生成し、シーケンスコード用復号化処理レジスタ７１８に設定する。より具体的には、第１の乱数データＲＮ１の長さだけＣＢＣモードのＡＥＳアルゴリズムの暗号化処理を行い、最後から２つ前のブロックから最後のブロックまでの出力を鍵ＫＥＹ−Ｓ（３種類）とし、最後から３つ前のブロックを初期値ＩＶ−Ｓとして、シーケンスコード用復号化処理レジスタ７１８に設定する。即ち、ＡＥＳマクロ部（復号化回路）７１０が、シーケンスコード用事前共有鍵（制御プログラム情報用事前共有鍵）を用いてシーケンスコードの復号化処理を行う。
【００７７】
続いて、ＡＥＳコア部７１６は、デバイス鍵用事前共有鍵生成部７１２によって生成されたデバイス鍵用事前共有鍵ＫＥＹ−Ｄ０、ＩＶ−Ｄ０に対応したデバイス鍵用復号化処理の鍵ＫＥＹ−Ｄ及びデバイス鍵用復号化処理の初期値ＩＶ−Ｄを、第２の乱数データＲＮ２に基づいて生成し、デバイス鍵用復号化処理レジスタ７２４に設定する。より具体的には、第２の乱数データＲＮ２の長さだけＣＢＣモードのＡＥＳアルゴリズムの暗号化処理を行い、最後のブロックの出力を鍵ＫＥＹ−Ｄとし、最後から１つ前のブロックを初期値ＩＶ−Ｄとして、デバイス鍵用復号化処理レジスタ７２４に設定する。即ち、ＡＥＳマクロ部（復号化回路）７１０が、第１の乱数データＲＮ１に基づいて複数のデバイス鍵用事前供給鍵を用いて生成されたデバイス鍵用共有鍵を用いてデバイス鍵の復号化処理を行う。
【００７８】
その後、ＡＥＳコア部７１６では、シーケンスコード用復号化処理レジスタ７１８に設定された初期値ＩＶ−Ｓ、鍵ＫＥＹ−Ｓを用いて、ＣＢＣモードのＡＥＳアルゴリズムに従って、シーケンスコード及び妥当性チェック値ＶＣＫ１の復号化処理を行う。次に、ＡＥＳコア部７１６では、デバイス鍵用復号化処理レジスタ７２４に設定された初期値ＩＶ−Ｄ、鍵ＫＥＹ−Ｄを用いて、ＣＢＣモードのＡＥＳアルゴリズムに従って、デバイス鍵及び妥当性チェック値ＶＣＫ２の復号化処理を行う。そしてメモリ部７５０に、ＡＥＳコア部７１６で復号化されたシーケンスコード及びデバイス鍵を書き込む。
【００７９】
このとき妥当性判定回路７２６には、事前に妥当性チェック値の正当性を判定するために妥当性確認値ＶＣＫ１、ＶＣＫ２が埋め込まれており、ＡＥＳコア部７１６で復号化された妥当性チェック値ＶＣＫ１と妥当性確認値ＶＣＫ１が一致し、且つＡＥＳコア部７１６で復号化された妥当性チェック値ＶＣＫ２と妥当性確認値ＶＣＫ２が一致したことを条件に、正当性であると判断する。正当性が否定された場合、暗号化／復号化装置７００の少なくとも一部の機能を停止させる。
【００８０】
正当性が肯定された場合、暗号化／復号化装置７００では、図示しない暗号化／復号化回路において、メモリ部７５０に格納されたデバイス鍵を用いて、メモリ部７５０に格納されたシーケンスコードに従ったコンテンツデータの暗号化処理又は復号化処理が行われる。より具体的には、妥当性判定回路で正当性が肯定されたことを条件に、暗号化／復号化装置７００は、図示しない暗号化／復号化回路において、メモリ部７５０に格納されたデバイス鍵を用いて、メモリ部７５０に格納されたシーケンスコードに従ったコンテンツデータの暗号化処理又は復号化処理を行う。
【００８１】
なお、妥当性判定回路７２６において妥当性確認値と妥当性チェック値とが不一致のとき（正当性が否定されたとき）、暗号化／復号化装置７００のハードウェアリセットがアクティブになるまで、（例えば図７のイネーブル信号ＥＮ２により）図示しない暗号化／復号化回路の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
【００８２】
或いは、妥当性判定回路７２６において妥当性確認値と妥当性チェック値とを比較した後、その比較結果にかかわらず、暗号化／復号化装置７００のハードウェアリセットがアクティブになるまで、（例えば図７のイネーブル信号ＥＮ１により）復号化回路としてのＡＥＳマクロ部の動作を停止させることが望ましい。こうすることでも、本来であれば復号化処理は一度だけで済む点に着目し、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。
【００８３】
或いはまた、暗号化／復号化装置７００のハードウェアリセットがアクティブになった後にＡＥＳ＿ＤＭＡＣ（第１の転送制御回路）７８０が一度ディセーブル状態になったとき、（例えば図７のイネーブル信号ＥＮ１により）ＡＥＳマクロ部（復号化回路）７１０の動作を停止させてもよい。ＡＥＳマクロ部７１０は、一旦シーケンスコード及びデバイス鍵を復号化してＲＡＭ７５０に書き込んだ後は動作させる必要がなくなるからであり、無駄な消費電力を削減できる効果がある。
【００８４】
以上のように、暗号化／復号化情報として、暗号化／復号化処理のシーケンスコード（制御プログラム情報）を含み、暗号化／復号化回路が、該シーケンスコードに基づいて暗号化／復号化処理を行うことができる。
【００８５】
なお図４では、シーケンスコード及びデバイス鍵をそれぞれ暗号化した状態で不揮発性メモリ５００に設定するものとして説明したが、シーケンスコード及びデバイス鍵の一方を暗号化した状態で不揮発性メモリ５００に設定してもよい。
【００８６】
２．１  暗号化／復号化装置の構成例
図７に、図６の暗号化／復号化装置７００のハードウェア構成例のブロック図を示す。図７において、図６と同一部分には同一符号を付し、適宜説明を省略する。
【００８７】
暗号化／復号化装置７００は、ホスト６００とのインタフェース処理を行うホストＩ／Ｆ７２０、Ｃ２のアルゴリズムに従って暗号化処理又は復号化処理を行うＣ２マクロ部７３０（暗号化／復号化回路）、記録媒体としてのＳＤメモリカード９００とのインタフェース処理を行うＳＤメモリカードＩ／Ｆ（記録媒体Ｉ／Ｆ）７４０を含む。ホストＩ／Ｆ７２０とＳＤメモリカードＩ／Ｆ７４０は、内部バス７６０に接続される。この内部バス７６０には、ＡＥＳマクロ部７１０、Ｃ２マクロ部７３０もまた接続される。
【００８８】
また暗号化／復号化装置７００は、メモリ部（メモリ）としてのＲＡＭ７５０との間でインタフェース処理を行うＲＡＭＩ／Ｆ（メモリＩ／Ｆ）７７０を含む。ＲＡＭＩ／Ｆ７７０とＡＥＳマクロ部７１０との間にはＡＥＳ＿ＤＭＡＣ（第１の転送制御回路）７８０が設けられる。ＲＡＭＩ／Ｆ７７０は、Ｃ２マクロ部７３０に接続される。更に暗号化／復号化装置７００では、内部バス７６０をバイパスするためにＣ２マクロ部７３０とＳＤメモリカードＩ／Ｆ７４０との間にＳＤ＿ＤＭＡＣ（第２の転送制御回路）７９０が設けられる。このような暗号化／復号化装置７００は、制御部８００を有し、制御部８００が暗号化／復号化装置７００の各部の制御を司る。
【００８９】
ＳＤメモリカード９００には、暗号化された状態でコンテンツデータが格納される。暗号化／復号化装置７００は、ＳＤメモリカード９００に格納されたコンテンツデータを復号化処理したり、コンテンツデータを暗号化処理してＳＤメモリカード９００に格納したりする。
【００９０】
このような暗号化／復号化装置７００の処理に先立って、まずホスト６００は、ＲＡＭ６１０に格納されたプログラムに従って、まず不揮発性メモリとしてのフラッシュＲＯＭ５００から、上記の第１及び第２の処理情報（第１の乱数データＲＮ１、シーケンスコード及び妥当性チェック値ＶＣＫ１、第２の乱数データＲＮ２、デバイス鍵及び妥当性チェック値ＶＣＫ２）を読み出し、ホストＩ／Ｆ７２０を介してＡＥＳマクロ部７１０で復号化処理を行う。復号化処理結果は、ＡＥＳ＿ＤＭＡＣ７８０により、ＲＡＭＩ／Ｆ７７０を介してＲＡＭ７５０に転送され、ＲＡＭ７５０に書き込まれる。即ち、ＡＥＳ＿ＤＭＡＣ７８０は、イネーブル状態のときに、復号化回路としてのＡＥＳマクロ部７１０によって復号化されたシーケンスコードをＲＡＭＩ／Ｆ７７０に転送する。この結果、図６に示すように、ＲＡＭ７５０には、復号化処理されたシーケンスコード及びＣＰＲＭのデバイス鍵が書き込まれる。
【００９１】
そして、ＲＡＭＩ／Ｆ７７０は、イネーブル信号ＤＭＡＲｕｎｎｉｎｇ（図１のイネーブル信号Ｒｕｎｎｉｎｇに相当）によりＡＥＳ＿ＤＭＡＣ７８０がイネーブル状態からディセーブル状態に変化したとき、ＲＡＭ７５０からシーケンスコードを読み出す制御を行ってＣ２マクロ部７３０に出力する。或いは、ＲＡＭＩ／Ｆ７７０は、復号化回路としてのＡＥＳマクロ部７１０によって復号化されたシーケンスコードをＲＡＭ７５０に書き込む制御を行った後に、該ＲＡＭ７５０からシーケンスコードを読み出す制御を行ってＣ２マクロ部７３０に出力する。
【００９２】
図８に、図７のＡＥＳマクロ部７１０のハードウェア構成例を示す。但し、図８において、図７と同一部分には同一符号を付し、適宜説明を省略する。
【００９３】
ＡＥＳマクロ部７１０は、入力ＦＩＦＯ７６０、出力ＦＩＦＯ７６２、ＡＥＳ演算部７６４を含む。入力ＦＩＦＯ７６０には、ホストＩ／Ｆ７２０からのデータが入力される。出力ＦＩＦＯ７６２には、ＡＥＳ演算部７６４の出力データが入力され、ＲＡＭＩ／Ｆ７７０にデータを出力する。出力ＦＩＦＯ７６２に格納されたデータは、妥当性判定回路７２６において妥当性確認値ＶＣＫ１、ＶＣＫ２との比較が行われ、妥当性判定回路７２６において正当性が否定された場合に、入力ＦＩＦＯ７６０へのデータの書き込みを禁止する（データ入力をディセーブル状態に設定する）。
【００９４】
ＡＥＳ演算部７６４は、ＡＥＳコア部７１６の他に、カウンタ７６５、組み込み回路７６６、鍵レジスタ７６７、初期値レジスタ７６８を含む。カウンタ７６５は、所定ビット数を単位としてデータ数をカウントし、そのカウント値に応じた制御信号ｃｎｔ２を出力する。制御信号ｃｎｔ２は、ＡＥＳ演算部７６４内のスイッチ回路のスイッチ制御を行うものである。組み込み回路７６６は、図６のデバイス鍵用事前共有鍵生成部７１２、シーケンスコード用事前共有鍵保持レジスタ７１４の機能を有する。鍵レジスタ７６７及び初期値レジスタ７６８には、ＡＥＳコア部７１６の暗号化処理において求められる共有鍵及び初期値がそれぞれ格納される。
【００９５】
ＡＥＳ演算部７６４には、制御部８００から、シーケンスコードの復号化処理又はデバイス鍵の復号化処理を指定する制御信号ｃｎｔ１が入力される。制御信号ｃｎｔ１は、組み込み回路７６６内のスイッチ回路のスイッチ制御を行うものである。
【００９６】
図９及び図１０に、図８のＡＥＳマクロ部７１０のシーケンスコードの復号処理の動作フローの一例を示す。
【００９７】
まず、カウンタ７６５のカウント値が初期化され（ステップＳ１０）、ホスト６００からの第１の乱数データＲＮ１を所定ビット単位で受け取る（ステップＳ１１）。カウンタ７６５のカウント値が０のとき（ステップＳ１２：Ｙ）、第１の乱数データＲＮ１内の特定のＭビット（Ｍは整数）を組み込み回路７６６に出力する（ステップＳ１３）。組み込み回路７６６では、第１の乱数データＲＮ１内の特定のＭビット（Ｍは整数）に基づいて、デバイス鍵用復号化処理の鍵と初期値が用意される。
【００９８】
ステップＳ１２においてカウント値が０ではないとき（ステップＳ１２：Ｎ）、又はステップＳ１３以降では、ＡＥＳコア部７１６でＡＥＳの暗号化処理が行われる（ステップＳ１４）。このときカウンタ７６５は、所定のビット数を単位としてカウント値をインクリメントする。
【００９９】
次に、カウンタ７６５のカウント値が７より小さいとき（ステップＳ１５：Ｙ）、ステップＳ１１に戻り、カウント値が７以上のとき（ステップＳ１５：Ｎ）、カウント値が７であれば（ステップＳ１６：Ｙ）、ＡＥＳコア部７１６の出力を初期値レジスタ７６８に格納するように制御信号ｃｎｔ２を生成し（ステップＳ１７）、ステップＳ１１に戻る。またカウント値が８であれば（ステップＳ１８：Ｙ）、ＡＥＳコア部７１６の出力を鍵レジスタ７６７に格納するように制御信号ｃｎｔ２を生成し（ステップＳ２１）、ステップＳ１１に戻る。
【０１００】
こうしてカウント値が８を超えて鍵レジスタ７６７への格納が終了すると、ＡＥＳコア部７１６が初期化され（ステップＳ２４）、シーケンスコードの復号化処理が開始される（ステップＳ２５）。そして、データ終了となるまで（ステップＳ２７：Ｎ）、ＡＥＳ暗号化処理が行われる（ステップＳ２６）。データ終了のとき（ステップＳ２７：Ｙ）、妥当性判定回路７２６において妥当性判定が行われる（ステップＳ２８）。
【０１０１】
妥当性判定において正当性が肯定されたとき（ステップＳ２９：Ｙ）、デバイス鍵処理（ステップＳ３０）を行い、正当性が否定されたとき（ステップＳ２９：Ｎ）、暗号化／復号化装置７００の機能が無効化されて（ステップＳ３１）、一連の処理が終了する（エンド）。
【０１０２】
図１０及び図１２に、図８のＡＥＳマクロ部７１０により行われる図１０のデバイス鍵処理の動作フローの一例を示す。
【０１０３】
まず、カウンタ７６５のカウント値が初期化され（ステップＳ４０）、ホスト６００からのデータを所定ビット単位で受け取る（ステップＳ４１）。
【０１０４】
続いてＡＥＳコア部７１６でＡＥＳの暗号化処理が行われる（ステップＳ４２）。このときカウンタ７６５は、所定のビット数を単位としてカウント値をインクリメントする。
【０１０５】
次に、カウンタ７６５のカウント値が７より小さいとき（ステップＳ４３：Ｙ）、ステップＳ４１に戻り、カウント値が７以上のとき（ステップＳ４３：Ｎ）、カウント値が７であれば（ステップＳ４４：Ｙ）、ＡＥＳコア部７１６の出力を初期値レジスタ７６８に格納するように制御信号ｃｎｔ２を生成し（ステップＳ４５）、ステップＳ４１に戻る。またカウント値が８であれば（ステップＳ４６：Ｙ）、ＡＥＳコア部７１６の出力を鍵レジスタ７６７に順次格納するように制御信号ｃｎｔ２を生成し（ステップＳ４９、ステップＳ５０、ステップＳ５１）、ステップＳ４１に戻る。
【０１０６】
こうしてカウント値が８を超えて鍵レジスタ７６７への格納が終了すると、ＡＥＳコア部７１６が初期化され（ステップＳ５２）、デバイス鍵の復号化処理が開始される（ステップＳ５３）。そして、データ終了となるまで（ステップＳ５５：Ｎ）、ＡＥＳ暗号化処理が行われる（ステップＳ５４）。データ終了のとき（ステップＳ５５：Ｙ）、妥当性判定回路７２６において妥当性判定が行われる（ステップＳ５６）。
【０１０７】
妥当性判定において正当性が肯定されたとき（ステップＳ５７：Ｙ）、暗号化／復号化装置７００ではコンテンツデータの暗号化／復号化処理（ステップＳ５８）が開始される。一方、正当性が否定されたとき（ステップＳ５７：Ｎ）、暗号化／復号化装置７００の機能が無効化されて（ステップＳ５９）、一連の処理が終了する（エンド）。
【０１０８】
以上のようにＡＥＳマクロ部７１０によってＲＡＭ７５０に書き込まれたシーケンスコード及びデバイス鍵は、ＲＡＭＩ／Ｆ７７０を介してＣ２マクロ部７３０に出力される。Ｃ２マクロ部７３０は、シーケンスコードに従って、デバイス鍵を用いて暗号化処理又は復号化処理を行う。
【０１０９】
例えばＳＤメモリカードＩ／Ｆ７４０、ホストＩ／Ｆ７２０を介してホスト６００のＲＡＭ６１０に転送されたＳＤメモリカード９００のコンテンツデータは、ホスト６００により順次暗号化／復号化装置７００に送られ、上述のようにＣ２マクロ部７３０において、シーケンスコードに従って、デバイス鍵を用いた復号化処理が施される。
【０１１０】
なお、Ｃ２マクロ部７３０は、ＳＤメモリカードＩ／Ｆ７４０、ＳＤ＿ＤＭＡＣ７９０を介して、直接ＳＤメモリカード９００からコンテンツデータを受け取り、上述のように、シーケンスコードに従って、デバイス鍵を用いた復号化処理を行ってもよい。この場合、ホスト６００の処理負荷を軽減できる。
【０１１１】
また、例えばＣ２マクロ部７３０において、シーケンスコードに従って、デバイス鍵を用いた暗号化処理が施されたコンテンツデータが、ホストＩ／Ｆ７２０を介して一旦ＲＡＭ６１０に保持され、ホスト６００から順次ホストＩ／Ｆ７２０、ＳＤメモリカードＩ／Ｆ７４０を介し、ＳＤメモリカード９００に格納する。
【０１１２】
なお、Ｃ２マクロ部７３０は、上述のようにシーケンスコードに従って、デバイス鍵を用いた暗号化処理後のコンテンツデータを、ＳＤ＿ＤＭＡＣ７９０、ＳＤメモリカードＩ／Ｆ７４０を介して、直接ＳＤメモリカード９００に格納するようにしてもよい。この場合、ホスト６００の処理負荷を軽減できる。
【０１１３】
２．２  シーケンスコードの復号
次に、本実施形態におけるシーケンスコードについて説明する。
【０１１４】
図１３に、本実施形態におけるシーケンスコードの説明図を示す。
【０１１５】
図７のＣ２マクロ部７３０は、Ｃ２のアルゴリズムに従った暗号化／復号化処理のうちソフトウェア処理部分を実行するシーケンサ７３２（広義にはソフトウェア処理部、処理部）と、該暗号化／復号化処理のうちハードウェア処理部分を実行するハードウェア回路７３４とを含む。シーケンサ７３２は、ＲＡＭ７５０に格納されたシーケンスコードを解読し、該シーケンスコードに対応した処理を行う。ハードウェア回路７３４は、Ｃ２演算回路７３６、Ｃ２＿ＤＭＡＣ７３７、Ｃ２Ｉ／Ｆ（暗号化Ｉ／Ｆ）７３８を含む。Ｃ２演算回路７３６は、公知のＣ２アルゴリズムに従った暗号化／復号化処理を行う。Ｃ２＿ＤＭＡＣ７３７は、Ｃ２演算回路７３６とＣ２Ｉ／Ｆ３７８との間のデータ転送を制御する。
【０１１６】
Ｃ２Ｉ／Ｆ７３８は、シーケンサ（処理部）７３２からの指示に基づいてハードウェア回路７３４からの生成情報をホストＩ／Ｆ７２０に出力するか、ＲＡＭＩ／Ｆ７７０に出力するかを切り替えることができる。従って、Ｃ２マクロ部７３０は、処理結果をＲＡＭ７５０に出力したり、ホストＩ／Ｆ７２０に出力したりすることができる。
【０１１７】
ＲＡＭ７５０には、復号化処理されたシーケンスコードの記憶領域やデバイス鍵の記憶領域の他に、暗号化／復号化処理のテンポラリ領域が確保されている。シーケンスコードは、インデックスとシーケンスブロックとからなる。シーケンスコードの記憶領域には、一連の命令の並びが記述されたシーケンスブロックを指定するインデックスが複数種類、記憶されている。
【０１１８】
図１４に、インデックスとシーケンスブロックの一例を示す。
【０１１９】
インデックスは、該インデックスが指定するシーケンスブロックの命令数と、該シーケンスブロックの先頭の命令の記憶領域を特定するためのオフセットアドレスとを含む。このようなインデックスにより指定されるシーケンスブロックは、命令列が順番に記憶されている。
【０１２０】
各命令は、入力指定データ、鍵指定データ、出力指定データを含む。入力指定データは、ＲＡＭ７５０の所定の領域を指定したり、ホスト６００からの入力データを指定したり、直前の演算結果等を指定できる。鍵指定データは、予め決められたＲＡＭ７５０の記憶領域に格納された鍵のうち、どの鍵を使用するかを指定できる。出力指定データは、ＲＡＭ７５０の所定の領域を指定したり、所定のレジスタを指定したりできる。従って、各命令により、入力指定データで指定された場所のデータに対し、鍵指定データで特定された鍵を用いて各命令に対応した処理を行って、出力指定データで指定された場所に処理結果を格納できる。
【０１２１】
そのため、例えばホスト６００によって１つのインデックスが指定されると、シーケンサ７３２は、そのインデックスで指定された記憶領域に記憶された命令を順次読み出し、各命令に対応した処理を行うことができる。こうすることで、ホスト６００は、例えばホストからのコマンドによりインデックスを指定するだけで、簡単にシーケンスブロックの指定を変更できる。即ち、Ｃ２マクロ部７３０は、ＲＡＭ７５０に展開されたシーケンスコードの中からホスト６００が指定した処理を実行できる。そして、シーケンスコードの復号化処理において、複数のインデックスと、各インデックスに対応したシーケンスブロックの命令列とをＲＡＭ７５０に展開することで、Ｃ２マクロ部７３０における処理の変更、調整等が容易に行えるようになる。
【０１２２】
２．３  ＣＰＲＭへの適用例
次に、本実施形態の暗号化／復号化装置７００を、ＳＤメモリカードを用いたＣＰＲＭによる暗号化／復号化処理に適用した例について説明する。
【０１２３】
図１５に、ＣＰＲＭによる暗号化／復号化処理のフローの一例を示す。  図１５において暗号化／復号化装置７００の電源が投入されて初期化されると、上述のように、まずシーケンスコード及びＣＰＲＭのデバイス鍵のダウンロードが行われる（ステップＳ６０）。
【０１２４】
そしてＳＤメモリカードの挿入の有無を監視し（ステップＳ６２：Ｎ）、ＳＤメモリカードの挿入が検出されたとき（ステップＳ６２：Ｙ）、認証と鍵交換処理が行われる（ステップＳ６３）。
【０１２５】
認証及び鍵交換が終了すると、ＳＤメモリカード内のコンテンツデータの暗号化／復号化処理を行う（ステップＳ６５）。その後、終了するまで（ステップＳ６６：Ｎ）、処理を継続し、終了すると（ステップＳ６６：Ｙ）、一連の処理を終了する（エンド）。
【０１２６】
図１６に、図１５のＣＰＲＭによる暗号化／復号化処理を行う暗号化／復号化装置７００を模式的に示す。
【０１２７】
暗号化／復号化装置７００は、シーケンサ７３２、メモリ部としてのＲＡＭ７５０を含み、ＳＤメモリカード９００との間で認証処理を行った後、該ＳＤメモリカード９００に記録されたコンテンツの復号化処理を行ってＲＡＭ７５０に展開したり、ＲＡＭ７５０のコンテンツデータの暗号化処理を行ってＳＤメモリカード９００に格納したりする。
【０１２８】
図１７に、処理を実現するシーケンスコードの一例の概略説明図を示す。
【０１２９】
例えば認証、鍵交換処理を行う際は、ホスト６００はシーケンス番号１を選択する。シーケンサ７３２は、シーケンス番号１を実行するために、まず認証演算１を実施する。認証演算１ではＳＤメモリカード９００から入力された認証用データに対し、デバイス鍵を鍵として利用し、その演算結果をＲＡＭ７５０の記憶領域（Ａｒｅａ１）に格納する。続いて、シーケンサ７３２は認証演算２を実施する。認証演算２ではホスト６００から入力された認証用データに対し、先ほど演算しＲＡＭ７５０の記憶領域（Ａｒｅａ１）に格納しておいたデータを鍵として利用し、その演算結果をＲＡＭの記憶領域（Ａｒｅａ２）に格納する。以上のような処理により、認証、鍵交換処理を終了する。
【０１３０】
また、引き続きコンテンツの暗号処理を実施する際は、ホスト６００はシーケンス番号２を選択する。シーケンサ７３２は、シーケンス番号２を実行するために、Ｃ２暗号演算を実施する。Ｃ２暗号演算ではホスト６００から入力されたコンテンツデータを、先ほど演算しＲＡＭの記憶領域（Ａｒｅａ２）に格納しておいたデータを鍵として利用し、その演算結果をＳＤメモリカード９００に転送する。以上のような処理により、コンテンツデータの暗号処理を終了する。
【０１３１】
コンテンツの復号処理についてもまた、同様である。
【０１３２】
なお、ここに挙げたシーケンスコードの処理の一例は、あくまでも概要を説明する為に簡略化した例であり、実際の製品においては、ＣＰＲＭの規格に準拠した処理を実現する為にさらに複雑なシーケンス処理を実施することができる。
【０１３３】
２．４  変形例
図１８に、本実施形態の変形例における暗号化／復号化装置のハードウェア構成例のブロック図を示す。
【０１３４】
図７の暗号化／復号化装置７００では、暗号化／復号化回路としてＣ２マクロ部７３０を備えていたが、本実施形態の変形例では図７のＣ２マクロ部を第１のＣ２マクロ部７３０（第１の暗号化／復号化回路）とする一方、更に第２のＣ２マクロ部８２０（第２の暗号化／復号化回路）を備えることができる。第１及び第２のＣ２マクロ部７３０、８２０は同じ構成を有し、それぞれ個別に制御される。
【０１３５】
この場合、本変形例における暗号化／復号化装置１０００は制御部８１０を含み、制御部８１０は暗号化／復号化装置１０００の各部を制御する。更に暗号化／復号化装置１０００は、セレクタ１０１０、アービタ１０２０を含むことができる。セレクタ１０１０は、ＳＤ＿ＤＭＡＣ７９０と第１及び第２のＣ２マクロ部７３０、８１０との間に設けられ、ＳＤメモリカードＩ／Ｆ７４０と第１のＣ２マクロ部７３０との間のデータ転送、又はＳＤメモリカードＩ／Ｆ７４０と第２のＣ２マクロ部８２０との間のデータ転送を切り替えることができる。アービタ１０２０は、ＲＡＭＩ／Ｆ７７０と第１及び第２のＣ２マクロ部７３０、８１０との間に設けられる。アービタ１０２０は、第１及び第２のマクロ部７３０、８１０のＲＡＭ７５０に対するアクセス要求を調停し、第１及び第２のマクロ部７３０、８１０の１つのＲＡＭ７５０に対するアクセスを、ＲＡＭＩ／Ｆ７７０を介して実現させる。このような構成を有することで、ホスト６００を介さずに、ＳＤメモリカードＩ／Ｆ７４０と第１又は第２のＣ２マクロ部７３０、８１０との間でデータの転送が可能となる。この場合も、Ｃ２マクロ部７３０、８１０のそれぞれは、ＲＡＭ７５０に展開されたシーケンスコードの中からホスト６００が指定した処理を実行できる。
【０１３６】
そして、第２のＣ２マクロ部８２０でＡＫＥを行い、第１のＣ２マクロ部７３０でコンテンツデータの暗号化／復号化処理を行うことが可能となる。或いは第１及び第２のＣ２マクロ部７３０、８１０の一方でコンテンツの暗号化処理を行い、第１及び第２のＣ２マクロ部７３０、８１０の他方でコンテンツの復号化処理を行うことができる。
【０１３７】
この場合、図示しない妥当性判定回路において妥当性確認値と妥当性チェック値とが不一致のとき（正当性が否定されたとき）、暗号化／復号化装置１０００のハードウェアリセットがアクティブになるまで、（例えば図７のイネーブル信号ＥＮ２１、ＥＮ２２により）第１及び第２のＣ２マクロ部７３０、８１０の動作を停止させることが望ましい。こうすることで、不正に妥当性チェック値を変更しながら繰り返し試行されて、最終的に正当性が肯定されてしまうことを困難にできる。不正に正当性が肯定されてしまうと、デバイス鍵やシーケンスコードの秘匿性が低下してしまう。
【０１３８】
３．  電子機器
図１９に、本実施形態又はその変形例における暗号化／復号化装置が適用された電子機器の構成例のブロック図を示す。
【０１３９】
電子機器１２００は、不揮発性メモリ１２１０、ホスト１２２０、暗号化／復号化装置１２３０、記録媒体接続部１２４０を含む。不揮発性メモリ１２１０は、図７のフラッシュＲＯＭ５００の機能を実現する。ホスト１２２０は、図７のホスト６００の機能を実現する。暗号化／復号化装置１２３０は、図７の暗号化／復号化装置７００又は図１９の暗号化／復号化装置１０００の機能を実現する。記録媒体接続部１２４０は、ＳＤメモリカード等の記録媒体を電気的に接続するための物理的な形状及び電気的なインタフェース仕様を有する。
【０１４０】
まず、暗号化／復号化装置１２３０では、不揮発性メモリ１２１０に格納されたシーケンスコード及びデバイス鍵を、上述のように展開する。その後、記録媒体１２５０が記録媒体接続部１２４０に接続されたとき、例えば記録媒体１２５０に格納されたコンテンツデータがホスト１２２０に読み出されて、図示しないＲＡＭに格納される。そして、暗号化／復号化装置１２３０が、該ＲＡＭからコンテンツデータを読み出しながら、既に展開したシーケンスコード及びデバイス鍵を用いて復号化処理を行う。この復号化処理されたコンテンツデータは、電子機器１２００の図示しない再生装置において再生される。
【０１４１】
また電子機器１２００の図示しない録音録画装置により取り込まれたコンテンツデータは、暗号化／復号化装置１２３０により、既に展開されたシーケンスコード及びデバイス鍵を用いて暗号化処理され、ホスト１２２０の図示しないＲＡＭに書き込まれる。その後、ホスト１２２０は、該ＲＡＭから暗号化処理されたコンテンツデータを読み出し、該コンテンツデータを、記録媒体接続部１２４０を介して記録媒体１２５０に書き込む。
【０１４２】
なお、本発明は上述した実施の形態に限定されるものではなく、本発明の要旨の範囲内で種々の変形実施が可能である。
【０１４３】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１４４】
【図１】本実施形態の暗号化／復号化装置の原理的な構成図。
【図２】本実施形態の暗号化／復号化装置の制御方法の一例のタイミング図。
【図３】本実施形態の制御プログラム情報の指定方法の説明図。
【図４】本実施形態の暗号化／復号化システムの構成例のブロック図。
【図５】デバイス鍵用事前共有鍵生成装置の機能ブロックの例を示す図。
【図６】暗号化／復号化装置のうちシーケンスコード及びデバイス鍵の復号化処理に関わるブロック構成の一例を示す図。
【図７】図６の暗号化／復号化装置のハードウェア構成例のブロック図。
【図８】図７のＡＥＳマクロ部のハードウェア構成例を示す図。
【図９】図８のＡＥＳマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。
【図１０】図８のＡＥＳマクロ部のシーケンスコードの復号処理の動作フローの一例を示す図。
【図１１】図８のＡＥＳマクロ部により行われる図１０のデバイス鍵処理の動作フローの一例を示す図。
【図１２】図８のＡＥＳマクロ部により行われる図１０のデバイス鍵処理の動作フローの一例を示す図。
【図１３】本実施形態におけるシーケンスコードの説明図。
【図１４】インデックスとシーケンスブロックの一例を示す図。
【図１５】ＣＰＲＭによる暗号化／復号化処理のフローの一例を示す図。
【図１６】図１５のＣＰＲＭによる暗号化／復号化処理を行う暗号化／復号化装置の模式的な構成図。
【図１７】シーケンスコードの一例の説明図。
【図１８】本実施形態の変形例における暗号化／復号化装置のハードウェア構成例のブロック図。
【図１９】本実施形態における電子機器の構成例のブロック図。
【符号の説明】
【０１４５】
１０、７００  暗号化／復号化装置、  ２０  第１の暗号化／復号化回路、
２２  処理部、  ２４  ハードウェア回路、  ２６  暗号化Ｉ／Ｆ、
３０  復号化回路、  ３２  ホストＩ／Ｆ、  ３４  第１の転送制御回路、
４０  メモリ、  ４２  メモリＩ／Ｆ、  ５０  外部メモリ、  ６０  ホスト、
１００  暗号化／復号化システム、  ２００  シーケンスコード暗号化装置、
２２０、４２０  ＡＥＳ部、  ３００  デバイス鍵用事前共有鍵生成装置、
４００  デバイス鍵暗号化装置、  ５００  不揮発性メモリ（フラッシュＲＯＭ）、
６００  ホスト、  ６１０  ＲＡＭ、  ７１０  ＡＥＳマクロ部、
７２０  ホストＩ／Ｆ、  ７３０  Ｃ２マクロ部、  ７４０  ＳＤメモリカードＩ／Ｆ、
７５０  メモリ部（ＲＡＭ）、  ７７０  ＲＡＭＩ／Ｆ、  ７８０  ＡＥＳ＿ＤＭＡＣ、
７９０  ＳＤ＿ＤＭＡＣ、  ８００、８１０  制御部、  ９００  ＳＤメモリカード
【図１】
2007074507.tif 000003
【図２】
2007074507.tif 000004
【図３】
2007074507.tif 000005
【図４】
2007074507.tif 000006
【図５】
2007074507.tif 000007
【図６】
2007074507.tif 000008
【図７】
2007074507.tif 000009
【図８】
2007074507.tif 000010
【図９】
2007074507.tif 000011
【図１０】
2007074507.tif 000012
【図１１】
2007074507.tif 000013
【図１２】
2007074507.tif 000014
【図１３】
2007074507.tif 000015
【図１４】
2007074507.tif 000016
【図１５】
2007074507.tif 000017
【図１６】
2007074507.tif 000018
【図１７】
2007074507.tif 000019
【図１８】
2007074507.tif 000020
【図１９】
2007074507.tif 000021