(57)【要約】【課題】  プログラムが不正に解析されることを確実に防止し、またプログラムの保護の必要な部分だけを暗号化して復号化時間を減少させることが容易で、しかもハードウエア規模の増大を抑えることもできる暗号化命令処理装置を提供する。【解決手段】  暗号化命令処理装置１００は、命令復号部１４０および復号鍵格納部４００を備え、復号鍵格納部４００には復号鍵４０１が格納される。暗号化命令処理装置１００が処理する暗号化拡張命令コード３１０を、命令コード３１２、および命令コード３１２の暗号化有無を示す命令暗号化識別子３１１により構成し、命令コード３１２ごとの秘匿性の度合いに応じて命令コード３１２を暗号化する。プログラムの実行の際は、命令暗号化識別子３１１の値に応じて、命令復号部１４０が復号鍵４０１を用いて命令コード３１２の復号化を行う。【選択図】  図１
2006085676.tif 000002
【特許請求の範囲】
【請求項１】
暗号化された命令コードを含む複数の命令コードからなるプログラムを実行する暗号化命令処理装置であって、
前記命令コードと伴に、前記命令コードの暗号化の有無を示す命令暗号化情報を読み込む読み込み部と、
前記命令暗号化情報によって命令コードが暗号化されていることが示されている場合に、前記暗号化された命令コードを復号化する命令復号化部と、
を備えたことを特徴とする暗号化命令処理装置。
【請求項２】
請求項１の暗号化命令処理装置であって、
さらに、複数の復号鍵が格納される復号鍵格納部を備えるとともに、
前記読み込み部は、前記命令コードと伴に、前記命令コードの暗号化の有無、および復号化に用いられる復号鍵を示す命令暗号化情報を読み込むように構成され、
前記命令復号化部は、前記命令暗号化情報によって示される復号鍵を用いて、前記暗号化された命令コードを復号化するように構成されていることを特徴とする暗号化命令処理装置。
【請求項３】
請求項２の暗号化命令処理装置であって、
前記復号鍵格納部に、互いに異なるサイズの復号鍵が格納され得るように構成されていることを特徴とする暗号化命令処理装置。
【請求項４】
請求項１の暗号化命令処理装置であって、
前記読み込み部は、前記命令コードと伴に、前記命令コードの暗号化の有無、および復号化に用いられるアルゴリズムを示す命令暗号化情報を読み込むように構成され、
前記命令復号化部は、前記命令暗号化情報によって示されるアルゴリズムを用いて、前記暗号化された命令コードを復号化し得るように構成されていることを特徴とする暗号化命令処理装置。
【請求項５】
請求項１の暗号化命令処理装置であって、
前記命令コードは、ＡＶコンテンツの暗復号およびＡＶエンコード／デコードを行う暗号化ＡＶ処理用命令コードであり、
前記プログラムは、前記暗号化ＡＶ処理用命令コードのうち実時間処理が必要でなく、かつ秘匿性に対する要求度が高い命令コードが暗号化され、実時間処理が必要で、かつ秘匿性に対する要求度の低い命令コードが平文であることを特徴とする暗号化命令処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、著作権保護が必要なデジタルデータを扱うデジタルＡＶ（音声映像）機器や携帯電話（モバイル通信機器）等のいわゆるデジタル家電機器などに組み込まれ、暗号化された命令コードを実行するプロセッサ等の暗号化命令処理装置に関するものである。
【背景技術】
【０００２】
デジタルＡＶ機器等では、商用の映像、音楽データなど、著作権の保護が必要なデジタルデータが多く扱われる。このようなデジタルデータを不正な使用等から保護するために、例えばＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）やＳＤメモリカード（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ  ｍｅｍｏｒｙ  ｃａｒｄ）など、記録媒体のフォーマットと関連付けた形態で、データを暗号化して保護する技術が実用化されている。
【０００３】
ところが、保護対象データの暗号化や復号化がプログラムの実行によって行われる場合、その処理手順が解析されてしまうと、保護対象データの確実な保護が図られないことになる。そこで、保護対象データの暗号化による保護に加え、暗号化や復号化プログラム自体も、解析等されないように保護することが必要となる。
【０００４】
プログラムを解析等から保護する技術としては、あらかじめプログラムを暗号化してＲＯＭ上に格納し、ＣＰＵの外部に配置した命令暗号復号回路、および命令暗号キー回路によって、暗号化されたプログラムを復号化した後、ＣＰＵにおいて命令を実行するものがある（例えば、特許文献１参照。）。
【０００５】
また、プログラムのうち守秘義務の課せられた箇所を暗号化して外部記憶装置に格納し、ＣＰＵの外部に、プログラムのロードおよび復号化を行なうローダと、メモリ管理部とを配置し、前記ローダで、復号化したプログラムをメモリ管理部が管理するメモリ上に書きこんだ後、命令管理部が、ＣＰＵによる命令の実行に際してだけ復号化された箇所の読み出しを許容し、データとしての読み出しは制限するようにメモリ管理を行うようにしたものもある（例えば、特許文献２参照。）。
【０００６】
また、仮想記憶機構によるメモリ管理を用いるとともに、プログラムの秘匿性の高い箇所を仮想記憶機構のページ単位（多くのプロセッサでは、４Ｋバイト以上のサイズ）で暗号化してメモリに格納し、仮想記憶機構のページテーブルに暗号化の有無を示すフラグを付加することによって、実行される命令の復号化が制御されるようにしたものがある（例えば、特許文献３参照。）。
【特許文献１】特開昭６２−１７１０３１号公報（図１）
【特許文献２】特開平４−３１０１２８号公報（図１）
【特許文献３】特開２００１−２３０７７０号公報（図１）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、暗号化されたプログラムの復号化がＣＰＵの外部の命令暗号復号回路で行われる構成では、復号化されたプログラムがＣＰＵへ転送される際に不正にプログラムを読み出すことが容易であり、不正な解析等から確実に保護することはできない。
【０００８】
同様に、暗号化されたプログラムがＣＰＵの外部のローダ内で復号化され、メモリ管理部によって管理されるメモリに保持される構成でも、復号化されたプログラムがローダからメモリへ転送される際や、メモリから管理部を経由してＣＰＵに転送される際に、やはり不正に読み出すことが容易であり、やはり不正な解析等から確実に保護することはできない。しかも、守秘義務が課せられた命令がメモリからのデータとして読み出されるのを制限するためにメモリ管理部が必須となるので、ハードウェア規模が大きく、製造コストも高くなるという問題点を有している。
【０００９】
また、仮想記憶機構によるメモリ管理を用いる構成では、やはり大きなハードウェア規模を必要とするうえ、仮想記憶機構が管理するメモリのページ単位（多くのプロセッサでは、４Ｋバイト以上のサイズ）で暗号化の有無を切り分けたのでは、きめ細かな暗号化有無の設定ができないため、暗号化の不要な部分が暗号化されてしまい、これに伴う命令実行速度の低下が生じがちである。
【００１０】
本発明は、前記のような問題に着目してなされたものであり、プログラムが不正に解析されることを確実に防止し、またプログラムの保護の必要な部分だけを暗号化して復号化時間を減少させることが容易で、しかもハードウエア規模の増大を抑えることもできる暗号化命令処理装置を提供することを課題とする。
【課題を解決するための手段】
【００１１】
前記の課題を解決するため、請求項１の発明は、
暗号化された命令コードを含む複数の命令コードからなるプログラムを実行する暗号化命令処理装置であって、
前記命令コードと伴に、前記命令コードの暗号化の有無を示す命令暗号化情報を読み込む読み込み部と、
前記命令暗号化情報によって命令コードが暗号化されていることが示されている場合に、前記暗号化された命令コードを復号化する命令復号化部と、
を備えたことを特徴とする。
【００１２】
これにより、暗号化された命令コードと暗号化されていない命令コードを混在させても、暗号化されている命令コードは、命令暗号化情報に応じて復号化され、実行される。
【００１３】
また、請求項２の発明は、
請求項１の暗号化命令処理装置であって、
さらに、複数の復号鍵が格納される復号鍵格納部を備えるとともに、
前記読み込み部は、前記命令コードと伴に、前記命令コードの暗号化の有無、および復号化に用いられる復号鍵を示す命令暗号化情報を読み込むように構成され、
前記命令復号化部は、前記命令暗号化情報によって示される復号鍵を用いて、前記暗号化された命令コードを復号化するように構成されていることを特徴とする。
【００１４】
これにより、複数種類の復号鍵が柔軟に用いられる。すなわち、複数種類の復号鍵が命令暗号化情報に応じて選択的に用いられて、命令コードが復号化され、実行される。
【００１５】
また、請求項３の発明は、
請求項２の暗号化命令処理装置であって、
前記復号鍵格納部に、互いに異なるサイズの復号鍵が格納され得るように構成されていることを特徴とする。
【００１６】
これにより、互いに異なるサイズの復号鍵が柔軟に用いられる。すなわち、互いに異なるサイズの復号鍵が命令暗号化情報に応じて選択的に用いられて、命令コードが復号化され、実行される。
【００１７】
また、請求項４の発明は、
請求項１の暗号化命令処理装置であって、
前記読み込み部は、前記命令コードと伴に、前記命令コードの暗号化の有無、および復号化に用いられるアルゴリズムを示す命令暗号化情報を読み込むように構成され、
前記命令復号化部は、前記命令暗号化情報によって示されるアルゴリズムを用いて、前記暗号化された命令コードを復号化し得るように構成されていることを特徴とする。
【００１８】
これにより、複数種類の暗号化アルゴリズムが柔軟に用いられる。すなわち、複数種類の暗号化アルゴリズムが命令暗号化情報に応じて選択的に用いられて、命令コードが復号化され、実行される。
【００１９】
また、請求項５の発明は、
請求項１の暗号化命令処理装置であって、
前記命令コードは、ＡＶコンテンツの暗復号およびＡＶエンコード／デコードを行う暗号化ＡＶ処理用命令コードであり、
前記プログラムは、前記暗号化ＡＶ処理用命令コードのうち実時間処理が必要でなく、かつ秘匿性に対する要求度が高い命令コードが暗号化され、実時間処理が必要で、かつ秘匿性に対する要求度の低い命令コードが平文であることを特徴とする。
【００２０】
これにより、命令コードの復号化の範囲を実時間処理が必要でなく、かつ高い秘匿性が必要な命令コードに限定し、命令コードの復号化処理時間を小さくすることができる。それゆえ、高速な暗号化ＡＶコンテンツの暗号化、復号化、およびＡＶエンコード／デコード処理が実現可能となる。
【発明の効果】
【００２１】
本発明によれば、プログラムの保護の必要な部分のみを暗号化することで、プログラムが不正に解析されることを防止しつつ、復号化時間を減少させることが可能で、しかもハードウエア規模の増大を抑えることもできる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態について図面を参照しながら説明する。
【００２３】
《発明の実施形態１》
（暗号化命令処理装置の構成）
図１は、本発明の実施形態１における暗号化命令処理装置１００の構成、および前記暗号化命令処理装置１００に接続された記憶媒体としての外部記憶装置３００を示すブロック図である。
【００２４】
前記外部記憶装置３００には、例えば、図２に示すように、命令暗号化識別子３１１、および命令コード３１２を含む複数の暗号化拡張命令コード３１０により構成された著作権保護対象データ処理用のプログラム等が格納されている。前記命令コード３１２は、実際に暗号化命令処理装置１００で実行される命令を示す部分であり、命令コード３１２ごとに処理内容の秘匿性の度合いに応じて、暗号化されている。また、命令暗号化識別子３１１は、前記命令コード３１２の暗号化の有無を示す情報であり、例えば、命令コード３１２が暗号化されていない場合には０、暗号化されている場合には１が設定される。ここで、暗号化アルゴリズムとしては種々のものを適用することができ、特に限定されないが、例えば、下記の文献に記載されているようなＤＥＳ暗号方式等の暗号化アルゴリズムを用いることができる。
株式会社昭晃社  辻井重男、笠原正雄編著  「暗号と情報セキュリティ」
ＩＳＢＮ４−７８５６−３０５７−２  Ｃ３０５５  Ｐ４３２６Ｅ
以下上記のようなプログラムを実行する暗号化命令処理装置１００について具体的に説明する。
【００２５】
暗号化命令処理装置１００は、外部バスコントロールユニット１１０、命令レジスタ１２０、命令暗号化判定部１３０、命令復号部１４０、命令デコーダ１５０、および復号鍵格納部４００を備えている。
【００２６】
前記外部バスコントロールユニット１１０は、外部バス２００を介して、外部記憶装置３００に接続され、外部バス２００を制御して、外部記憶装置３００にアクセスすることによって、外部記憶装置３００に格納されている暗号化拡張命令コード３１０を順次読み出し、これを命令レジスタ１２０に出力するようになっている。
【００２７】
命令レジスタ１２０は、前記暗号化拡張命令コード３１０を保持し、命令暗号化判定部１３０に出力するようになっている。
【００２８】
命令暗号化判定部１３０は、暗号化拡張命令コード３１０の命令暗号化識別子３１１を解析し、前記命令コード３１２の暗号化の有無に応じた信号（暗号化判定信号）を復号鍵格納部４００に出力するとともに、暗号化されている場合は、命令コード３１２を命令復号部１４０に出力し、暗号化されていない場合は、命令コード３１２を命令デコーダ１５０に出力するようになっている。
【００２９】
復号鍵格納部４００には、暗号化された命令コード３１２を復号化するために使用する復号鍵４０１が格納され、前記暗号化判定信号に応じて、復号鍵４０１を命令復号部１４０に出力するようになっている。
【００３０】
命令復号部１４０は、復号器１４１を備え、復号鍵格納部４００から出力された復号鍵４０１を用いて、暗号化された命令コード３１２を復号化し、命令デコーダ１５０に出力するようになっている。
【００３１】
命令デコーダ１５０は、命令暗号化判定部１３０から出力される暗号化判定信号に応じて、命令復号部１４０によって復号化された命令コード３１２、または命令暗号化判定部１３０が出力する暗号化されていない命令コード３１２を図示しない実行部が実行可能な信号にデコードして、出力するようになっている。
【００３２】
（暗号化命令処理装置の動作）
次に、上記のように構成された暗号化命令処理装置の動作について、図３のように、外部記憶装置３００に（ｎ＋１）番地から（ｎ＋４）番地の命令コード３１２が暗号化されていない暗号化拡張命令コード３１０と、（ｎ＋６）番地から（ｎ＋９）番地の命令コード３１２が暗号化された暗号化拡張命令コード３１０とを含むプログラムが記憶されている場合について説明する。
【００３３】
プログラムのｎ番地の実行が開始されると、外部バスコントロールユニット１１０により暗号化拡張命令コード３１０が順次読み出され、命令レジスタ１２０に保持された後、命令暗号化判定部１３０に出力される。この暗号化拡張命令コード３１０では、命令暗号化識別子３１１に０が設定されている（暗号化されていない）ので、命令暗号化判定部１３０は、命令コード３１２を命令デコーダ１５０に出力する。そして、命令デコーダ１５０は、命令コード３１２をデコードして図示しない実行部に出力し、実行部がデコードされた命令コード３１２を実行する。
【００３４】
プログラムの実行が、（ｎ＋５）番地に移ると、（ｎ＋５）番地の命令暗号化識別子３１１に１が設定されているので、命令暗号化判定部１３０は、復号鍵格納部４００に命令コード３１２が暗号化されていることを示す暗号化判定信号を出力することによって、復号鍵４０１を命令復号部１４０に出力させ、さらに命令コード３１２を命令復号部１４０に出力する。命令復号部１４０では、復号器１４１が復号鍵４０１を用いて、復号化した命令コード３１２を命令デコーダ１５０に出力する。命令デコーダ１５０は、復号化された命令コード３１２をデコードして図示しない実行部に出力し、実行部がデコードされた命令コード３１２を実行する。
【００３５】
前記のように、暗号化されたプログラムの復号化、および復号鍵の管理が暗号化命令処理装置の内部で行われることによって、復号化された後のプログラム、復号処理の中間データ、および復号鍵を外部から読み取られることがないので、プログラムの不正解析を防止できる。また、プログラムの命令コードごとに暗号化の有無を設定できるようにすることで、保護が必要とされる部分のみを暗号化するようにできるので、復号器１４１による復号化処理時間が長くかかる場合でも、実行速度の低下を小さく抑えることが可能になる。
【００３６】
また、命令コード３１２の暗号化の有無は、所定の論理値（命令暗号化識別子３１１）を解析し判定するだけなので、仮想記憶機構やメモリ管理機能を必要とする判定方法を用いる構成に比べてハードウエア規模の増大を抑えることも可能である。
【００３７】
《発明の実施形態２》
図４は、本発明の実施形態２に係る暗号化命令処理装置５００の構成を示すブロック図である。なお、以下の実施形態において前記実施形態１等と同様の機能を有する構成要素については、同一の符号を付して説明を省略する。
【００３８】
暗号化命令処理装置５００は、実施形態１における復号鍵格納部４００に代えて図４に示すような復号鍵格納部６００を備え、さらに鍵番号判定部５１０を備えている。
【００３９】
鍵番号判定部５１０は、命令暗号化判定部１３０から入力された暗号化判定信号に応じて、後述する暗号化拡張命令コード３２０に含まれる鍵番号識別子３２１に対応した信号（鍵番号識別信号）を復号鍵格納部６００に出力するようになっている。
【００４０】
また、復号鍵格納部６００は、複数の復号鍵、例えば復号鍵１〜３（復号鍵４０１）、および復号鍵テーブル６１０を保持している。前記復号鍵テーブル６１０には、前記鍵番号識別信号と復号鍵１〜３（復号鍵４０１）の格納場所（例えばアドレス）を示す情報との対応関係を示し、前記鍵番号識別信号に対応する復号鍵１〜３のうちの何れか１つが、命令復号部１４０に出力されるようになっている。
【００４１】
この暗号化命令処理装置５００で実行されるプログラムは、例えば、図５に示すように鍵番号識別子３２１、命令暗号化識別子３１１、および命令コード３１２を含む複数の暗号化拡張命令コード３２０によって構成される。各暗号化拡張命令コード３２０の命令コード３１２は、秘匿性の度合いに応じて暗号化による保護が必要な場合に、３つの復号鍵４０１のうち何れかを用いて復号化されるように暗号化され、鍵番号識別子３２１には、命令コード３１２がどの復号鍵を用いて復号化されるのかを示す情報、例えば、復号鍵１で復号化される場合は０１、復号鍵２で復号化される場合は１０、復号鍵３で復号化される場合は１１、暗号化されていない場合は００が設定される。
【００４２】
前記のように構成された暗号化命令処理装置５００の動作について、例えば、図６に示すように、（ｎ＋１）番地から（ｎ＋４）番地の命令コード３１２が暗号化されていない暗号化拡張命令コード３２０と、（ｎ＋６）番地から（ｎ＋９）番地の命令コード３１２が復号鍵１を用いて復号化されるように暗号化された暗号化拡張命令コード３２０と、（ｎ＋１１）番地から（ｎ＋１４）番地の命令コード３１２が復号鍵２を用いて復号化されるように暗号化された暗号化拡張命令コード３２０とを含むプログラムが実行される場合について説明する。
【００４３】
（ｎ＋１）番地の命令コード３１２は、暗号化されていないので実施形態１とほぼ同様の動作により実行される。プログラムの実行が（ｎ＋５）番地に移ると、（ｎ＋５）番地の命令暗号化識別子３１１には１が設定されているので、命令暗号化判定部１３０は、命令復号部１４０に命令コード３１２を出力するとともに、鍵番号判定部５１０に鍵番号識別子３２１を出力する。鍵番号判定部５１０は、鍵番号識別子３２１に０１が設定されているので復号鍵１に対応する鍵番号識別信号を復号鍵格納部６００に出力する。
【００４４】
復号鍵格納部６００は、この鍵番号識別信号と復号鍵テーブル６１０とを用いて、復号鍵１が格納されているアドレスを取得し、読み出した復号鍵１のデータを命令復号部１４０に出力する。命令復号部１４０では、復号器１４１が復号鍵４０１を用いて、復号化した命令コード３１２を命令デコーダ１５０に出力する。命令デコーダ１５０は、復号化された命令コード３１２をデコードして図示しない実行部に出力し、実行部がデコードされた命令コード３１２を実行する。
【００４５】
（ｎ＋１０）番地においても、鍵番号識別子３２１が１０の場合に対応する復号鍵２が用いられて命令コード３１２が復号化されることによって、（ｎ＋５）番地の場合と同様に復号化された命令コード３１２により示された命令が実行される。
【００４６】
このように、本実施形態では、複数の復号鍵を暗号化命令処理装置内部に格納し、これが命令コード単位で選択的に用いられるようにすることで、実施形態１よりも、より安全性の高いプログラムの保護が可能になる。
【００４７】
《発明の実施形態３》
図７は、本発明の実施形態３にかかる暗号化命令処理装置７００の構成を示すブロック図である。
【００４８】
この暗号化命令処理装置７００は、実施形態２の前記鍵番号判定部５１０に代えて、後述する鍵サイズ識別子３３１の値に応じて復号鍵のサイズを識別する信号（鍵サイズ識別信号）を復号鍵格納部６００に出力する鍵サイズ判定部７１０を備えるとともに、復号鍵格納部６００は、互いにサイズの異なる復号鍵６２１、例えば、サイズが１２８ビットの復号鍵１、１９２ビットの復号鍵２、および２５６ビットの復号鍵３を復号鍵６２１として保持し、前記鍵サイズ識別信号に応じたサイズの復号鍵を命令復号部１４０に出力するようになっていている。また、命令復号部１４０には、前記各サイズの復号鍵１〜３を用いた復号化が可能な復号器１４２が設けられている。このような複数種類のサイズの復号鍵を用いることができる復号化アルゴリズムとしては、例えばＡＥＳ暗号を適用することができるが、これに限らず２種類以上のサイズの復号鍵を用い得るものであればよい。
【００４９】
この暗号化命令処理装置７００で実行されるプログラムは、例えば、図８に示すように、命令暗号化識別子３１１、命令コード３１２、および命令コード３１２が暗号化される際に用いられた暗号鍵のサイズ（したがって復号化に用いられる復号鍵のサイズ）を示す情報として設けられた鍵サイズ識別子３３１を含む複数の暗号化拡張命令コード３３０によって構成されている。すなわち、各命令コード３１２は、それぞれ、秘匿性の度合いに応じたサイズの暗号鍵を用いて暗号化されている。前記鍵サイズ識別子３３１としては、具体的には、例えば、復号鍵１（１２８ビット）が用いられる場合は０１、復号鍵２（１９２ビット）が用いられる場合は１０、復号鍵３（２５６ビット）が用いられる場合は１１が設定される。
【００５０】
前記のような暗号化拡張命令コード３３０で構成されたプログラムは、例えば、図９に示すように、（ｎ＋１）番地から（ｎ＋４）番地の命令コード３１２が暗号化されていない暗号化拡張命令コード３３０と、（ｎ＋６）番地から（ｎ＋９）番地の命令コード３１２が復号鍵１（１２８ビット）に対応する暗号鍵で暗号化された暗号化拡張命令コード３３０と、（ｎ＋１１）から（ｎ＋１４）番地の命令コード３１２が復号鍵２（１９２ビット）に対応する暗号鍵で暗号化された暗号化拡張命令コード３３０とを含むように構成される。
【００５１】
この装置の動作は、実施形態２の装置の動作とほぼ同様である。すなわち、実施形態２で鍵番号識別信号に応じた復号鍵が復号鍵格納部６００から出力されるのと同様に、鍵サイズ識別信号に応じたサイズの復号鍵が復号鍵格納部６００から出力されて、復号器１４２により復号化される。
【００５２】
このように、複数種類のサイズの復号鍵が選択的に用いられるようにすることによって、実施形態２と同様の効果に加えて、秘匿性と実行速度との両立を一層容易に図ることができる。
【００５３】
《発明の実施形態４》
実施形態４の暗号化命令処理装置８００は、図１０に示すように、実施形態２における鍵番号判定部５１０、および命令復号部１４０に代えて、暗号アルゴリズム判定部８１０、および命令復号部８２０を備えている。また、復号鍵格納部６００は、復号鍵テーブル６１０に代えて復号鍵テーブル６２０を有している。
【００５４】
暗号アルゴリズム判定部８１０は、後述する暗号化拡張命令コード３４０に含まれる暗号アルゴリズム識別子３４１に応じて、暗号アルゴリズムを識別する信号（暗号アルゴリズム識別信号）を復号鍵格納部６００、および命令復号部８２０に出力するようになっている。
【００５５】
命令復号部８２０は、複数の復号器８２１、例えば、復号器１（ＤＥＳ暗号用復号器）、復号器２（ＡＥＳ暗号用復号器）、および復号器３（ＴｒｉｐｌｅＤＥＳ暗号用復号器）と、各復号器８２１と前記暗号アルゴリズム識別信号との対応関係を示す復号器テーブル８２２をと備え、暗号アルゴリズム識別信号に応じて、複数の復号器８２１のうちの何れか１つの復号器が選択されて、命令コード３１２を復号化し、命令デコーダ１５０に出力するようになっている。上記各復号器で用いられる暗号アルゴリズムとしては、例えば下記に示されるようなものを用いることができる。
［平成１５年９月２４日検索、インターネット］
Ｆｅｄｅｒａｌ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｐｒｏｃｅｓｓｉｎｇ  Ｓｔａｎｄａｒｄｓ  Ｐｕｂｌｉｃａｔｉｏｎ  １９７
Ｎｏｖｅｍｂｅｒ  ２６，  ２００１
Ａｎｎｏｕｎｃｉｎｇ  ｔｈｅ  ＡＡＤＶＡＮＣＥＤ  ＥＮＣＲＹＰＴＩＯＮ  ＳＴＡＮＤＡＲＤ（ＡＥＳ）
＜ＵＲＬ：ｈｔｔｐ：／／ｃｓｒｃ．ｎｉｓｔ．ｇｏｖ／ｐｕｂｌｉｃａｔｉｏｎｓ／ｆｉｐｓ／ｆｉｐｓ１９７／ｆｉｐｓ−１９７．ｐｄｆ＞
［平成１５年９月２４日検索、インターネット］
ＦＩＰＳ  ＰＵＢ４６−３
ＦＥＤＥＲＡＬ  ＩＮＦＯＲＭＡＴＩＯＮ  ＰＲＯＣＥＳＳＩＮＧ  ＳＴＡＮＤＡＲＤＳ  ＰＵＢＬＩＣＡＴＩＯＮ
Ｒｅａｆｆｉｒｍｅｄ  １９９９  Ｏｃｔｏｂｅｒ  ２５
Ｕ．Ｓ．  ＤＥＰＡＲＴＭＥＮＴ  ＯＦ  ＣＯＭＭＥＲＣＥ／Ｎａｔｉｏｎａｌ  Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｓｔａｎｄｒｄｓ  ａｎｄ  Ｔｅｃｈｎｏｌｏｇｙ
ＤＡＴＡ  ＥＮＣＲＹＰＴＩＯＮ  ＳＴＡＮＤＡＲＤ（ＤＥＳ）
＜ＵＲＬ：ｈｔｔｐ：／／ｃｓ−ｗｗｗ．ｎｃｓｌ．ｎｉｓｔ．ｇｏｖ／ｐｕｂｌｉｃａｔｉｏｎｓ／ｆｉｐｓ／ｆｉｐｓ４６−３／ｆｉｐｓ４６−３．ｐｄｆ＞
また、復号鍵格納部６００は、実施形態２の復号鍵テーブル６１０と同様の復号鍵テーブル６２０を備え、暗号アルゴリズム識別信号に対応する復号鍵１〜３（復号鍵４０１）のうちの何れか１つを命令復号部８２０に出力するようになっている。
【００５６】
暗号化命令処理装置８００で実行されるプログラムは、例えば、図１１に示すように暗号アルゴリズム識別子３４１、命令暗号化識別子３１１、および命令コード３１２を含む複数の暗号化拡張命令コード３４０によって構成されている。この命令コード３１２は、プログラムの秘匿性の度合いに応じて命令コード３１２ごとに、複数ある復号器８２１のうち何れか１つの復号器が複数ある復号鍵４０１のうち何れか１つの復号鍵を用いて復号化できるように暗号化される。
【００５７】
暗号アルゴリズム識別子３４１には、命令コード３１２がどの復号化アルゴリズム（復号器１〜３）を用いて復号化されるのかを示す情報が格納され、例えば、命令コード３１２が前記復号器１によって復号化される場合は０１、復号器２によって復号化される場合は１０、復号器３によって復号化される場合は１１、暗号化されていない場合は００が設定される。
【００５８】
前記のような、暗号化拡張命令コード３４０で構成されたプログラムは、例えば、図１２に示すように、（ｎ＋１）番地から（ｎ＋４）番地の命令コード３１２が暗号化されていない暗号化拡張命令コード３４０と、（ｎ＋６）番地から（ｎ＋９）番地の命令コード３１２が復号器１（ＤＥＳ暗号用復号器）、および復号鍵１に対応する暗号鍵で暗号化された暗号化拡張命令コード３４０と、（ｎ＋１１）から（ｎ＋１４）番地の命令コード３１２が復号器２（ＡＥＳ暗号用復号器）、および復号鍵２に対応する暗号鍵で暗号化された暗号化拡張命令コード３４０とを含むように構成される。
【００５９】
実施形態４にかかる装置では、前記暗号アルゴリズム識別信号に応じて選択された復号器が、前記暗号アルゴリズム識別信号に応じて復号鍵格納部６００から出力された復号鍵を用いることによって命令コード３１２が復号化される。
【００６０】
このように、複数種類の暗号化アルゴリズムが選択的に用いられるようにすることによって、実施形態１と同様の効果に加え、秘匿性と実行速度との両立を一層容易に図ることも可能になる。また、万が一、特定の暗号化アルゴリズムが不正解析された場合でも、別の不正解析されていない暗号化アルゴリズムを使用することが可能であり、単一の暗号化アルゴリズムにしか対応していない場合に比べて、より運用性の高いプログラムの保護が実現できる。
《発明の実施形態５》
実施形態１の暗号化命令処理装置１００では、図３に示した暗号化プログラムに代えて、図１３に示す暗号化ＡＶコンテンツの復号化およびデコードを行うプログラムを実行してもよい。図１３に示す暗号化ＡＶコンテンツの復号化およびデコードを行うプログラムは、命令暗号化識別子３１１、命令コード３１２を含む複数の暗号化拡張命令コード３５０によって構成されている。
【００６１】
暗号化ＡＶコンテンツの復号化およびデコード処理においては、命令コードは、実時間処理が必要でなく、かつ秘匿性に対する要求度の高い、暗号化ＡＶコンテンツ用復号鍵の設定処理を行う命令コードと、実時間処理が必要で、かつ秘匿性に対する要求度の低い、暗号化ＡＶコンテンツの復号化およびＡＶデコード処理を実行する命令コードとの２つに分類できる。図１３に示す例では、前者の暗号化ＡＶコンテンツ用復号鍵の設定処理を行う命令コードは、外部記憶装置３００のｎ番地から（ｎ＋４）番地に暗号化されて格納されている。また、後者の暗号化ＡＶコンテンツの復号化およびＡＶデコード処理を実行する命令コードは、外部記憶装置３００の（ｎ＋５）番地から（ｎ＋９）番地に暗号化されずに格納されている。
【００６２】
図１３に示すプログラムにおけるｎ番地の実行が開始されると、ｎ番地の命令暗号化識別子３１１に１が設定されているので、命令暗号化判定部１３０は、復号鍵格納部４００に命令コード３１２が暗号化されていることを示す暗号化判定信号を出力することによって、復号鍵４０１を命令復号部１４０に出力させる。さらに命令暗号化判定部１３０は、命令コード３１２を命令復号部１４０に出力する。命令復号部１４０では、復号器１４１が復号鍵４０１を用いて、復号化した命令コード３１２を命令デコーダ１５０に出力する。命令デコーダ１５０は、復号化された命令コード３１２をデコードして図示しない実行部に出力し、実行部がデコードされた命令コード３１２を実行する。この場合、命令復号部１４０内の復号器１４１が復号鍵４０１を用いて命令コード３１２を復号化する処理をおこなうため、命令暗号化識別子が０である暗号化されていない命令コードに比べて処理時間は大きくなる。しかし、暗号化ＡＶコンテンツの復号鍵の設定処理の様に実時間処理をする必要がなく、実行回数も少ない処理であるため、暗号化ＡＶコンテンツの復号化およびＡＶデコードの実時間処理に影響を与えることはない。
【００６３】
プログラムの（ｎ＋５）番地の実行が開始されると、外部バスコントロールユニット１１０により暗号化拡張命令コード３１０が順次読み出され、命令レジスタ１２０に保持された後、命令暗号化判定部１３０に出力される。この暗号化拡張命令コード３１０では、命令暗号化識別子３１１に０が設定されている（暗号化されていない）ので、命令暗号化判定部１３０は、命令コード３１２を命令デコーダ１５０に出力する。そして、命令デコーダ１５０は、命令コード３１２をデコードして図示しない実行部に出力し、実行部がデコードされた命令コード３１２を実行する。この場合、命令復号部１４０における復号器１４１による命令コード３１２の復号化処理は行われない。したがって、高速に命令が実行され、暗号化ＡＶコンテンツの復号化およびＡＶデコード処理の実時間処理が可能となる。
【００６４】
なお、上記各実施形態において説明した暗号化、復号化アルゴリズム、命令暗号化識別子や鍵番号識別子等のビット数、設定値とその設定値が示す内容（暗号化の有無や鍵の区別など）との対応関係、命令コードや暗号化拡張命令コードのビット数、復号鍵や復号鍵のサイズ、暗号化アルゴリズムの種類の数などは一例であり、これらに限るものではない。
【００６５】
また、暗号化有無の判定用に命令暗号化識別子が用いられるのに限らず、鍵番号識別子等の値が００であることなどによって、命令コードが暗号化されていないことが判別されるようにしてもよい。
【００６６】
また、実施形態２〜４では、鍵番号識別信号や鍵サイズ識別信号等と、復号鍵テーブル６１０等のテーブルとによって、複数の復号鍵や復号器のうちの何れかが選択される例を示したが、これに限らず、鍵番号識別信号や鍵番号識別子の値等をデコードすることなどによって、復号鍵等が選択されるようにしてもよい。
【００６７】
また、実施形態３では、復号鍵のサイズが全て互いに異なる例を示したが、同じサイズの復号鍵が含まれていてもよい。
【００６８】
また、実施形態４では、各復号器と復号鍵とが、１対１に対応して選択される例を説明したが、例えば暗号化拡張命令コードによって鍵番号識別子や鍵サイズ識別子と、暗号アルゴリズム識別子とが指定されるようにして、復号鍵と復号器とがそれぞれ独立に種々の組み合わせで選択され得るようにしてもよい。
【００６９】
また、復号器は必ずしも複数（アルゴリズムの数だけ）設けなくても、アルゴリズム識別信号に応じて複数種類のアルゴリズムによる復号化が可能な復号器を設けるようにしてもよい。
【００７０】
また、実施形態５では、外部記憶装置３００に格納するプログラムを暗号化ＡＶコンテンツの復号およびＡＶデコード処理を行うプログラムとして、実時間処理の必要がなく、かつ秘匿性に対する要求度の高い、暗号化ＡＶコンテンツ用復号鍵の設定処理を行う命令コードを暗号化し、実時間処理が必要で、かつ秘匿性に対する要求度の低い、暗号化ＡＶコンテンツの復号化およびＡＶデコード処理を実行する命令コードを暗号化しない例を説明したが、外部記憶装置３００に格納するプログラムを例えば、ＡＶコンテンツのデコードおよび暗号化処理を行うプログラムとして、実時間処理の必要がなく、かつ秘匿性に対する要求度の高いＡＶコンテンツの暗号化鍵の設定処理を行う命令コードを暗号化し、実時間処理が必要で、かつ秘匿性に対する要求度の低いＡＶコンテンツのエンコードおよび暗号化を実行する命令コードを暗号化しないようにしてもよい。
【産業上の利用可能性】
【００７１】
本発明にかかる暗号化命令処理装置は、プログラムの保護の必要な部分のみを暗号化することで、プログラムが不正に解析されることを防止しつつ、復号化時間を減少させることが可能で、しかもハードウエア規模の増大を抑えることもできるという効果を有し、著作権保護が必要なデジタルデータを扱うデジタルＡＶ（音声映像）機器や携帯電話（モバイル通信機器）等のいわゆるデジタル家電機器などに組み込まれ、暗号化された命令コードを実行するプロセッサ等の暗号化命令処理装置等として有用である。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施形態１の暗号化命令処理装置の構成を示すブロック図である。
【図２】本発明の実施形態１の暗号化命令処理装置において使用される暗号化拡張命令コードの構成を示す図である。
【図３】本発明の実施形態１の暗号化命令処理装置で実行されるプログラムの暗号化の例を示す図である。
【図４】本発明の実施形態２の暗号化命令処理装置の構成を示すブロック図である。
【図５】本発明の実施形態２の暗号化命令処理装置において使用される暗号化拡張命令コードの構成を示す図である。
【図６】本発明の実施形態２の暗号化命令処理装置で実行されるプログラムの暗号化の例を示す図である。
【図７】本発明の実施形態３の暗号化命令処理装置の構成を示すブロック図である。
【図８】本発明の実施形態３の暗号化命令処理装置において使用される暗号化拡張命令コードの構成を示す図である。
【図９】本発明の実施形態３の暗号化命令処理装置で実行されるプログラムの暗号化の例を示す図である。
【図１０】本発明の実施形態４の暗号化命令処理装置の構成を示すブロック図である。
【図１１】本発明の実施形態４の暗号化命令処理装置において使用される暗号化拡張命令コードの構成を示す図である。
【図１２】本発明の実施形態４の暗号化命令処理装置で実行されるプログラムの暗号化の例を示す図である。
【図１３】本発明の実施形態５の暗号化命令処理装置で実行されるプログラムの暗号化の例を示す図である。
【符号の説明】
【００７３】
１００      暗号化命令処理装置
１１０      外部バスコントロールユニット
１２０      命令レジスタ
１３０      命令暗号化判定部
１４０      命令復号部
１４１      復号器
１４２      復号器
１５０      命令デコーダ
２００      外部バス
３００      外部記憶装置
３１０      暗号化拡張命令コード
３１１      命令暗号化識別子
３１２      命令コード
３２０      暗号化拡張命令コード
３２１      鍵番号識別子
３３０      暗号化拡張命令コード
３３１      鍵サイズ識別子
３４０      暗号化拡張命令コード
３４１      暗号アルゴリズム識別子
３５０      暗号化拡張命令コード
４００      復号鍵格納部
４０１      復号鍵
５００      暗号化命令処理装置
５１０      鍵番号判定部
６００      復号鍵格納部
６１０      復号鍵テーブル
６２０      復号鍵テーブル
６２１      復号鍵
７００      暗号化命令処理装置
７１０      鍵サイズ判定部
８００      暗号化命令処理装置
８１０      暗号アルゴリズム判定部
８２０      命令復号部
８２１      復号器
８２２      復号器テーブル
【図１】
2006085676.tif 000003
【図２】
2006085676.tif 000004
【図３】
2006085676.tif 000005
【図４】
2006085676.tif 000006
【図５】
2006085676.tif 000007
【図６】
2006085676.tif 000008
【図７】
2006085676.tif 000009
【図８】
2006085676.tif 000010
【図９】
2006085676.tif 000011
【図１０】
2006085676.tif 000012
【図１１】
2006085676.tif 000013
【図１２】
2006085676.tif 000014
【図１３】
2006085676.tif 000015