(57)【要約】【課題】外部記憶装置に記憶する機密情報の漏洩の防止を、比較的簡単な構成で確実にし、セキュリティレベルを向上させる。【解決手段】データ・コード変換機構５は、機密情報５００１を入力して、半導体装置１に備えるＣＰＵ１４の動作を行わせる命令コードに変換して、ダミー命令コード２２として、外部記憶装置２に記憶する。対応する命令コードがない機密情報は他の命令コードに変換されて記憶されると共に、この命令コードを機密情報に復元するための補正データ２３も外部記憶装置２に記憶する。半導体装置１内には、前記外部記憶装置２に記憶したダミー命令コード２２及び補正データ２３を入力して機密情報に復号する復号化回路１２が備えられる。【選択図】図１
2005216027.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置と、前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を記憶する外部記憶装置とを備えた半導体システムにおける前記機密情報を暗号化する暗号化装置であって、
前記機密情報を前記命令コードに変換し、ダミー命令コードとして前記外部記憶装置に記憶させるコード変換機構を備えた
ことを特徴とする暗号化装置。
【請求項２】
前記請求項１記載の暗号化装置において、
前記コード変換機構は、
前記機密情報に対応する命令コードが存在しないとき、この機密情報を別の命令コードに変換してダミー命令コードを生成すると共に、このダミー命令コードから前記機密情報を復元するための補正データを生成する変換回路を有する
ことを特徴とする暗号化装置。
【請求項３】
前記請求項２記載の暗号化装置において、
前記コード変換機構は、
前記ダミー命令コード、前記補正データ、前記命令コード及び前記データを入力し、前記命令コードに前記ダミー命令コードを埋め込むと共に前記データに前記補正データを埋め込んで、前記外部記憶装置に記憶すべき最終命令コード及び最終データを生成する最終データ・コード生成機構を有する
ことを特徴とする暗号化装置。
【請求項４】
前記請求項３記載の暗号化装置において、
前記最終データ・コード生成機構は、
前記補正データを最終補正データに変換する複数の変換テーブルを有し、
前記複数の変換テーブルの１つを用いて前記補正データを最終補正データに変換する補正データ変換回路を有する
ことを特徴とする暗号化装置。
【請求項５】
前記請求項４記載の暗号化装置において、
前記最終データ・コード生成機構は、
前記補正データ変換回路からの最終補正データと、前記データとを入力し、このデータ内に前記最終補正データを配置して前記最終データとして出力すると共に、前記データ内に前記最終補正データが配置された補正データ配置アドレスを出力する最終データ生成回路を有する
ことを特徴とする暗号化装置。
【請求項６】
前記請求項５記載の暗号化装置において、
前記最終データ・コード生成機構は、
前記最終データ生成回路からの補正データ配置アドレスを入力して、前記データ内に配置された最終補正データをリードするための補正データリード命令を生成する補正データリード命令生成回路と、
前記ダミー命令コード、前記命令コード、及び前記補正データリード命令生成回路の補正データリード命令を入力し、これら３つの命令コードを配置した前記最終命令コードを生成する最終命令コード生成回路とを有する
ことを特徴とする暗号化装置。
【請求項７】
前記請求項６記載の暗号化装置において、
前記最終命令コード生成回路は、
前記最終命令コードを記憶する前記外部記憶装置の所定のアドレス範囲のうち、前記補正データリード命令及びダミー命令コードを、前記所定のアドレス範囲のうちの予め定めた所定範囲に配置する
ことを特徴とする暗号化装置。
【請求項８】
前記請求項６記載の暗号化装置において、
前記最終命令コード生成回路は、
前記外部記憶装置において前記補正データリード命令及びダミー命令コードを
特定の命令コードにより挟み込んだ形で記憶させる
ことを特徴とする暗号化装置。
【請求項９】
前記請求項６記載の暗号化装置において、
前記最終命令コード生成回路は、
前記外部記憶装置において前記補正データリード命令及びダミー命令コードを、複数回出現する特定の命令コードの予め定めた所定回数目とその次の回数目との間に挟み込んだ形で記憶させる
ことを特徴とする暗号化装置。
【請求項１０】
前記請求項１記載の暗号化装置と、
前記半導体装置の評価解析を行う開発用冶具と、
前記開発用冶具による前記半導体装置の評価解析結果を確認するための情報処理端末とを備え、
前記情報処理端末は、所定の認証が行われ、この認証が拒否された場合には、前記半導体装置による前記ダミー命令コードに基づく命令の実行を行わせる
ことを特徴とする暗号化システム。
【請求項１１】
半導体装置と、前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を暗号化したダミー命令コードを記憶した外部記憶装置とを備えた半導体システムにおける復号化装置であって、
前記外部記憶装置から前記ダミー命令コードを読み出して前記機密情報に復号化する
ことを特徴とする復号化装置。
【請求項１２】
半導体装置と、
前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を暗号化したダミー命令コードを記憶した外部記憶装置と、
前記半導体装置内に備えられ、前記外部記憶装置から前記ダミー命令コードを読み出して前記機密情報に復号化する復号化装置とを備えた
ことを特徴とする半導体システム。
【請求項１３】
前記請求項１１記載の復号化装置又は前記請求項１２記載の半導体システムにおいて、
前記外部記憶装置には、
対応する命令コードが存在しない機密情報が別の命令コードに変換されてダミー命令コードとして記憶されると共に、このダミー命令コードから前記機密情報に復元するための補正データ及びこの補正データを読み出すための補正データリード命令も記憶される
ことを特徴とする復号化装置又は半導体システム。
【請求項１４】
前記請求項１３記載の復号化装置又は半導体システムにおいて、
前記復号化装置は、
前記外部記憶装置に記憶された前記ダミー命令コード及び補正データを入力して、このダミー命令コード及び補正データに基づいて前記機密情報に復号化する復号化回路と、
前記復号化回路による復号化を制御する命令制御機構とを備えた
ことを特徴とする復号化装置又は半導体システム。
【請求項１５】
前記請求項１４記載の復号化装置又は半導体システムにおいて、
前記外部記憶装置には、
予め定めた所定のアドレス範囲に前記ダミー命令コード及び前記補正データリード命令が記憶される
ことを特徴とする復号化装置又は半導体システム。
【請求項１６】
前記請求項１４記載の復号化装置又は半導体システムにおいて、
前記外部記憶装置には、
前記ダミー命令コード及び前記補正データリード命令が特定の第１及び第２の命令コードにより挟み込まれた形で記憶される
ことを特徴とする復号化装置又は半導体システム。
【請求項１７】
前記請求項１４記載の復号化装置又は半導体システムにおいて、
前記外部記憶装置には、
前記ダミー命令コード及び前記補正データリード命令が、複数回出現する特定の命令コードの予め定めた所定回数目とその次の回数目との間に挟み込まれた形で記憶される
ことを特徴とする復号化装置又は半導体システム。
【請求項１８】
前記請求項１５記載の復号化装置又は半導体システムにおいて、
前記命令制御機構には、
前記ダミー命令コード及び前記補正データリード命令が記憶される前記外部記憶装置の所定のアドレス範囲を指定する上限アドレスレジスタ及び下限アドレスレジスタと、
前記外部記憶装置に入力されるアドレスを前記上限及び下限アドレスレジスタの上限及び下限アドレスと比較し、その入力されたアドレスが前記所定のアドレス範囲にあるとき、補正データ書込み信号を生成して前記復号化回路に出力すると共に、所定時間後に復号化信号を生成して出力するアドレス比較回路と、
前記アドレス比較回路の復号化信号を入力して、前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えた
ことを特徴とする復号化装置又は半導体システム。
【請求項１９】
前記請求項１６記載の復号化装置又は半導体システムにおいて、
前記命令制御機構には、
前記外部記憶装置から読み出された命令コードを入力し、この命令コードが前記第１の特定命令コードであることを判定して補正データ書き込み信号を生成して前記復号化回路に出力すると共に所定時間後に復号化信号を生成する一方、前記入力された命令コードが前記第２の特定命令コードであることを判定して前記復号化信号の出力を停止する命令コード判定回路と、
前記命令コード判定回路の復号化信号を入力し、この入力中に前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えた
ことを特徴とする復号化装置又は半導体システム。
【請求項２０】
前記請求項１７記載の復号化装置又は半導体システムにおいて、
前記命令制御機構には、
前記外部記憶装置から読み出された命令コードを入力し、この命令コードの出現回数を予め定めた所定回数と比較し、出現回数が前記所定回数と一致した時、補正データ書き込み信号を生成して前記復号化回路に出力すると共に所定時間後に復号化信号を生成する一方、前記出現回数が前記所定回数と一致しなくなった時、前記復号化信号の出力を停止する命令コード判定回路と、
前記命令コード判定回路の復号化信号を入力し、この入力中に前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えた
ことを特徴とする復号化装置又は半導体システム。
【請求項２１】
前記請求項１９又は２０記載の復号化装置又は半導体システムにおいて、
前記復号化装置には、割込み信号を生成して出力する割込み制御機構が備えられ、
前記命令制御機構の命令コード出力回路は、前記割込み制御機構の割込み信号を入力し、この入力中は、前記復号化回路に対するダミー命令コード及びダミー命令書き込み信号の出力を停止すると共に、前記外部記憶装置から読み出される命令コードを前記半導体装置に出力する
ことを特徴とする復号化装置又は半導体システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、汎用マイクロコントローラなどの半導体装置と、この半導体装置を動作させる命令コード及びデータを記憶する外部記憶装置とを備えた半導体システムにおいて、前記外部記憶装置に機密情報を記憶する場合に、その機密情報の保護を行う暗号化装置及び復号化装置に関する。
【背景技術】
【０００２】
従来、半導体装置と、前記半導体装置の外部に配置された記憶装置とから構成される半導体システムにおいて、機密情報を前記外部記憶装置に記憶する場合には、例えば特許文献１に記載されるように、前記機密情報を暗号化した暗号文を前記外部記憶装置に記憶すると共に、前記半導体装置の内部で前記暗号文を復号化することにより、機密情報の漏洩を防止するようにしている。
【特許文献１】特開平１１−１９１０７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来の機密情報の保護構成では、暗号方式の複雑化に比例して、暗号文を復号化するために必要となる前記半導体装置のハードウェア及びソフトウェア資源も増加する傾向にある。また、採用される暗号方式が変更される毎に、その都度、大規模なハードウェア及びソフトウェア設計を行う必要があるなどの欠点があった。
【０００４】
本発明の目的は、比較的簡単な回路構成でもって機密情報の漏洩を防止できる暗号化装置や復号化装置などを提供することにある。
【課題を解決するための手段】
【０００５】
以上の目的を達成するため、本発明では、機密情報をデータとしてではなく半導体装置用のダミー命令コードとして組み込むこととする。
【０００６】
すなわち、具体的に、請求項１記載の発明の暗号化装置は、半導体装置と、前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を記憶する外部記憶装置とを備えた半導体システムにおける前記機密情報を暗号化する暗号化装置であって、前記機密情報を前記命令コードに変換し、ダミー命令コードとして前記外部記憶装置に記憶させるコード変換機構を備えたことを特徴とする。
【０００７】
請求項２記載の発明は、前記請求項１記載の暗号化装置において、前記コード変換機構は、前記機密情報に対応する命令コードが存在しないとき、この機密情報を別の命令コードに変換してダミー命令コードを生成すると共に、このダミー命令コードから前記機密情報を復元するための補正データを生成する変換回路を有することを特徴とする。
【０００８】
請求項３記載の発明は、前記請求項２記載の暗号化装置において、前記コード変換機構は、前記ダミー命令コード、前記補正データ、前記命令コード及び前記データを入力し、前記命令コードに前記ダミー命令コードを埋め込むと共に前記データに前記補正データを埋め込んで、前記外部記憶装置に記憶すべき最終命令コード及び最終データを生成する最終データ・コード生成機構を有することを特徴とする。
【０００９】
請求項４記載の発明は、前記請求項３記載の暗号化装置において、前記最終データ・コード生成機構は、前記補正データを最終補正データに変換する複数の変換テーブルを有し、前記複数の変換テーブルの１つを用いて前記補正データを最終補正データに変換する補正データ変換回路を有することを特徴とする。
【００１０】
請求項５記載の発明は、前記請求項４記載の暗号化装置において、前記最終データ・コード生成機構は、前記補正データ変換回路からの最終補正データと、前記データとを入力し、このデータ内に前記最終補正データを配置して前記最終データとして出力すると共に、前記データ内に前記最終補正データが配置された補正データ配置アドレスを出力する最終データ生成回路を有することを特徴とする。
【００１１】
請求項６記載の発明は、前記請求項５記載の暗号化装置において、前記最終データ・コード生成機構は、前記最終データ生成回路からの補正データ配置アドレスを入力して、前記データ内に配置された最終補正データをリードするための補正データリード命令を生成する補正データリード命令生成回路と、前記ダミー命令コード、前記命令コード、及び前記補正データリード命令生成回路の補正データリード命令を入力し、これら３つの命令コードを配置した前記最終命令コードを生成する最終命令コード生成回路とを有することを特徴とする。
【００１２】
請求項７記載の発明は、前記請求項６記載の暗号化装置において、前記最終命令コード生成回路は、前記最終命令コードを記憶する前記外部記憶装置の所定のアドレス範囲のうち、前記補正データリード命令及びダミー命令コードを、前記所定のアドレス範囲のうちの予め定めた所定範囲に配置することを特徴とする。
【００１３】
請求項８記載の発明は、前記請求項６記載の暗号化装置において、前記最終命令コード生成回路は、前記外部記憶装置において前記補正データリード命令及びダミー命令コードを特定の命令コードにより挟み込んだ形で記憶させることを特徴とする。
【００１４】
請求項９記載の発明は、前記請求項６記載の暗号化装置において、前記最終命令コード生成回路は、前記外部記憶装置において前記補正データリード命令及びダミー命令コードを、複数回出現する特定の命令コードの予め定めた所定回数目とその次の回数目との間に挟み込んだ形で記憶させることを特徴とする。
【００１５】
請求項１０記載の発明の暗号化システムは、前記請求項１記載の暗号化装置と、前記半導体装置の評価解析を行う開発用冶具と、前記開発用冶具による前記半導体装置の評価解析結果を確認するための情報処理端末とを備え、前記情報処理端末は、所定の認証が行われ、この認証が拒否された場合には、前記半導体装置による前記ダミー命令コードに基づく命令の実行を行わせることを特徴とする。
【００１６】
請求項１１記載の発明の復号化装置は、半導体装置と、前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を暗号化したダミー命令コードを記憶した外部記憶装置とを備えた半導体システムにおける復号化装置であって、前記外部記憶装置から前記ダミー命令コードを読み出して前記機密情報に復号化することを特徴とする。
【００１７】
請求項１２記載の発明の半導体システムは、半導体装置と、前記半導体装置を制御する命令コード及びデータ、並びに情報漏洩防止の対象となる機密情報を暗号化したダミー命令コードを記憶した外部記憶装置と、前記半導体装置内に備えられ、前記外部記憶装置から前記ダミー命令コードを読み出して前記機密情報に復号化する復号化装置とを備えたことを特徴とする。
【００１８】
請求項１３記載の発明は、前記請求項１１記載の復号化装置又は前記請求項１２記載の半導体システムにおいて、前記外部記憶装置には、対応する命令コードが存在しない機密情報が別の命令コードに変換されてダミー命令コードとして記憶されると共に、このダミー命令コードから前記機密情報に復元するための補正データ及びこの補正データを読み出すための補正データリード命令も記憶されることを特徴とする。
【００１９】
請求項１４記載の発明は、前記請求項１３記載の復号化装置又は半導体システムにおいて、前記復号化装置は、前記外部記憶装置に記憶された前記ダミー命令コード及び補正データを入力して、このダミー命令コード及び補正データに基づいて前記機密情報に復号化する復号化回路と、前記復号化回路による復号化を制御する命令制御機構とを備えたことを特徴とする。
【００２０】
請求項１５記載の発明は、前記請求項１４記載の復号化装置又は半導体システムにおいて、前記外部記憶装置には、予め定めた所定のアドレス範囲に前記ダミー命令コード及び前記補正データリード命令が記憶されることを特徴とする。
【００２１】
請求項１６記載の発明は、前記請求項１４記載の復号化装置又は半導体システムにおいて、前記外部記憶装置には、前記ダミー命令コード及び前記補正データリード命令が特定の第１及び第２の命令コードにより挟み込まれた形で記憶されることを特徴とする。
【００２２】
請求項１７記載の発明は、前記請求項１４記載の復号化装置又は半導体システムにおいて、前記外部記憶装置には、前記ダミー命令コード及び前記補正データリード命令が、複数回出現する特定の命令コードの予め定めた所定回数目とその次の回数目との間に挟み込まれた形で記憶されることを特徴とする。
【００２３】
請求項１８記載の発明は、前記請求項１５記載の復号化装置又は半導体システムにおいて、前記命令制御機構には、前記ダミー命令コード及び前記補正データリード命令が記憶される前記外部記憶装置の所定のアドレス範囲を指定する上限アドレスレジスタ及び下限アドレスレジスタと、前記外部記憶装置に入力されるアドレスを前記上限及び下限アドレスレジスタの上限及び下限アドレスと比較し、その入力されたアドレスが前記所定のアドレス範囲にあるとき、補正データ書込み信号を生成して前記復号化回路に出力すると共に、所定時間後に復号化信号を生成して出力するアドレス比較回路と、前記アドレス比較回路の復号化信号を入力して、前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えたことを特徴とする。
【００２４】
請求項１９記載の発明は、前記請求項１６記載の復号化装置又は半導体システムにおいて、前記命令制御機構には、前記外部記憶装置から読み出された命令コードを入力し、この命令コードが前記第１の特定命令コードであることを判定して補正データ書き込み信号を生成して前記復号化回路に出力すると共に所定時間後に復号化信号を生成する一方、前記入力された命令コードが前記第２の特定命令コードであることを判定して前記復号化信号の出力を停止する命令コード判定回路と、前記命令コード判定回路の復号化信号を入力し、この入力中に前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えたことを特徴とする。
【００２５】
請求項２０記載の発明は、前記請求項１７記載の復号化装置又は半導体システムにおいて、前記命令制御機構には、前記外部記憶装置から読み出された命令コードを入力し、この命令コードの出現回数を予め定めた所定回数と比較し、出現回数が前記所定回数と一致した時、補正データ書き込み信号を生成して前記復号化回路に出力すると共に所定時間後に復号化信号を生成する一方、前記出現回数が前記所定回数と一致しなくなった時、前記復号化信号の出力を停止する命令コード判定回路と、前記命令コード判定回路の復号化信号を入力し、この入力中に前記外部記憶装置のダミー命令コード、及びダミー命令書き込み信号を前記復号化回路に出力すると共に、前記半導体装置に対して何も実行しない命令コードを出力する命令コード出力回路とを備えたことを特徴とする。
【００２６】
請求項２１記載の発明は、前記請求項１９又は２０記載の復号化装置又は半導体システムにおいて、前記復号化装置には、割込み信号を生成して出力する割込み制御機構が備えられ、前記命令制御機構の命令コード出力回路は、前記割込み制御機構の割込み信号を入力し、この入力中は、前記復号化回路に対するダミー命令コード及びダミー命令書き込み信号の出力を停止すると共に、前記外部記憶装置から読み出される命令コードを前記半導体装置に出力することを特徴とする。
【００２７】
以上により、請求項１〜２１記載の発明では、半導体装置と外部記憶装置とにより構成される半導体システムにおいて、前記外部記憶装置に記憶する機密情報を、データとしてではなく、前記半導体装置用のダミー命令コードに変換して記憶する。従って、悪意ある第三者が前記外部記憶装置に記憶されたデータを解析したとしても、命令コード化された機密情報と本来の命令コードとを識別することができないので、機密情報の保護は良好である。
【発明の効果】
【００２８】
以上説明したように、請求項１〜２１記載の発明によれば、半導体装置と外部記憶装置とにより構成される半導体システムにおいて、前記外部記憶装置に記憶する機密情報を、データとしてではなく、前記半導体装置用のダミー命令コードに変換して記憶したので、機密情報の保護を高めることが可能である。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施形態について図面を用いて説明する。
【００３０】
図１は、本発明の実施形態である暗号化システム及び半導体システムの全体構成を示すブロック図である。
【００３１】
図１において、１は半導体装置、３はオンチップデバッガなどの開発用冶具である。ここで、開発用冶具３は、半導体装置１のソフトウェアを開発するために半導体装置１の内部のハードウェア資源をトレースする機能などを有し、このトレースの結果などは、開発用治具３に接続された情報処理端末４で確認することができる。前記情報処理端末４は、キーボードやモニタなどのデータ入出力機能を備えた装置であって、パーソナルコンピュータなどが使用される。
【００３２】
また、５はデータ・コード変換機構（コード変換機構）であって、情報漏洩防止の対象となる機密情報５００１と、半導体装置１を制御する命令コード５００２、及び半導体装置１で使用されるデータ５００３とが入力されており、暗号化装置Ｗを構成する。このデータ・コード変換機構５は、最終命令コード２００１と最終データ２００２とを出力する。前記最終命令コード２００１及び最終データ２００２は外部記憶装置２に書込まれる。図１に示した開発用冶具３、情報処理端末４、及びデータ・コード変換機構５はシステム開発時に使用される。前記データ・コード変換機構５と開発用治具３と情報処理端末４とにより、暗号化システムＹが構成される。
【００３３】
前記外部記憶装置２内において、命令コード２０は前記最終命令コード２００１を、データ２１は前記最終データ２００２を表している。命令コード２０内に存在するダミー命令コード２２、及びデータ２１内に存在する補正データ２３については、後述する。
【００３４】
前記半導体装置１と外部記憶装置２とにより半導体システムＸを構成し、この半導体装置１内のＣＰＵ１４は、アドレス１０２を出力して外部記憶装置２から命令コード１０３及びデータ１０４の読出しを行って、それ等を各々命令キュー１５とデータバッファ１６とに格納する。また、前記ＣＰＵ１４は、命令キュー１５に格納された命令コードに基づいて必要な処理を実行する。命令制御機構１０は、後に詳述するが、ＣＰＵ１４及び復号化回路１２に対する命令コード１０３及びデータ１０４の出力を制御する機能を有する。割込み制御機構１３は、前記命令制御機構１０に対して割込み信号１３０２を出力して、ＣＰＵ１４に対する割込み要求を行う機能を有する。前記半導体装置１内に配置した命令制御機構１０と復号化回路１２と割込み制御機構１３とにより、復号化装置Ｚを構成する。
【００３５】
図２は、前記データ・コード変換機構５の構成図を示す。同図において、外部から入力される機密情報５００１は、データ・コード変換機構５内の機密情報バッファ５１に格納される。データ・コード変換プログラム５２は、機密情報５００１をダミー命令コード５３０１に変換するアルゴリズムが搭載されたプログラムであって、データ・コード変換回路（変換回路）５３は、前記機密情報バッファ５１内の機密情報とデータ・コード変換プログラム５２とを用いて、ダミー命令コード５３０１を生成する。また、このデータ・コード変換回路５３は、機密情報５００１をダミー命令コード５３０１に変換することが困難な場合には、機密情報５００１を補正することにより、ダミー命令コード５３０１を生成すると共に、前記補正情報を補正データ５３０２として生成する。ここで、ダミー命令コード５３０１への変換が困難な場合とは、機密情報コードが半導体装置１に存在しない命令コードである場合などが想定される。生成されたダミー命令コード５３０１はダミー命令コードバッファ５４に、補正データ５３０２は補正データバッファ５５に格納される。
【００３６】
以下、データ・コード変換回路５３の動作を図３を用いて説明する。同図では、機密情報５００１の入力からダミー命令コード５３０１及び補正データ５３０２の生成までのフローチャートを記している。ここで、データ・コード変換装置５に入力される機密情報５００１は、２進数表記で「０１００＿１１００」である。また、半導体装置１の命令コードは４ビットのオペコードと、４ビットのオペランドとにより構成されるものとし、データ・コード変換回路５３は、機密情報５００１の上位４ビットを前記オペコードに、下位４ビットを前記オペランドに各々割り振るものとする。更に、前記オペコードにおいて「０１００」は半導体装置１のデータ転送命令に一致するものとし、前記データ転送命令においてオペランドが「１１００」になることは禁止されているものとする。
【００３７】
図３において、Ｓ００〜Ｓ０７まではステートを表しており、起動時には、機密情報５００１の入力を待つステートＳ００の状態にある。機密情報５００１が入力されると、ステートＳ００からステートＳ０１に遷移して、機密情報５００１の上位４ビットが既存の命令コードと一致するかをデータ・コード変換プログラム５２を用いて確認する。ここでは、「０１００」は半導体装置１のデータ転送命令に一致するので、ステートＳ０２に遷移する。一方、一致しない場合には、ステートＳ００からステートＳ０３に遷移して、機密情報５００１の上位４ビットを適当な他の命令コードの数値に変更する。前記４ビットの変更が完了すると、ステートＳ０３からステートＳ０６に遷移して、前記変更内容を補正データ５３０２として出力した後に、ステートＳ０６からステートＳ０２に遷移する。以上で、ダミー命令コード５３０１のオペコードが確定する。
【００３８】
次に、ステートＳ０２では、機密情報５００１の下位４ビットである「１１００」が命令コードのオペランドとして適切か否かの確認が行われる。ここでは、前記データ転送命令のオペランドに「１１００」を配置することは禁止されているため、ステートＳ０２からステートＳ０４に遷移して、適切なオペランド値に変更される。その後に、ステートＳ０４からステートＳ０６に遷移して、前記変更内容を補正データ５３０２として出力すると共に、ステートＳ０６からステートＳ０５に遷移する。また、前記ステートＳ０２において機密情報の下位４ビットがオペランドとして適切な場合には、ステートＳ０２からステートＳ０５に遷移する。以上で、ダミー命令コード５３０１のオペランドが確定する。
【００３９】
その後、ステートＳ０５では、入力された機密情報コード５００１が最終かどうか判定し、最終であれば、ステートＳ０５からステートＳ０７に遷移して変換作業を終了するが、最終でなければ、ステートＳ０５からステートＳ００に遷移して、次の機密情報５００１の入力待ち状態に入る。こうして生成されてダミー命令コード５３０１及び補正データ５３０２は、各々、ダミー命令コードバッファ５４及び補正データバッファ５５に格納される。以上が、データ・コード変換回路５３の動作説明である。
【００４０】
次に、図２に示した最終データ・コード生成機構５６について説明する。同図において、ダミー命令コードブロック５４０１及び補正データブロック５５０１は、前記データ・コード変換回路５３で生成されたダミー命令コード５３０１及び補正データ５３０２を各々まとめたブロックデータである。最終データ・コード生成機構５６は、前記２つのブロックデータ５４０１、５５０１と、命令コード５００２、及びデータ５００３を入力して、最終命令コード２００１と最終データ２００２を出力する。ここで、最終データ・コード生成機構５６の内部構成の詳細を説明する前に、前記最終命令コード２００１と最終データ２００２との外部記憶装置２内でのメモリ構成を図６、図７及び図８を用いて説明する。
【００４１】
図６、図７及び図８は前記外部記憶装置２に記憶されるメモリ構成を表している。図６では、予め指定したアドレスに補正データリード命令、ダミー命令コード、及び補正データが記憶されており、半導体装置１は前記アドレスに準じてダミー命令コード及び補正データのリードを行う。ここで、補正データリード命令は、補正データ２３を半導体装置１にリードする命令であるが、その生成方法については後述する。
【００４２】
図７では、第１の特定命令コードＡと第２の特定命令コードＢとを用いてダミー命令コードを挟み込むことにより、ダミー命令コードの配置場所を半導体装置１に対して明示する。ここでは、命令コードＡと命令コードＢとを特定の命令コードとして表しているが、この命令コードＡ及び命令コードＢはダミー命令コードの範囲を指定するための識別子になるため、この２箇所以外で使用してはいけない。
【００４３】
図８では、特定の命令コードの出現回数によってダミー命令コードを識別するものである。ここでは、特定の命令コードＡは合計５箇所で出現し、２回目と３回目との間にダミー命令コードを埋め込み、且つそのようにして埋め込んだとの情報を補正データ２３に組み込むことにより、半導体装置１に対してダミー命令コードの配置場所を明示する。以下、図４を用いて最終データ・コード生成機構５６の内部構成を説明する。
【００４４】
図４において、補正データ変換回路５７は、補正データブロック５５０１を変換テーブル５８に従ってデータ変換することにより、セキュリティのレベルを向上させる回路である。前記変換テーブル５８は、同図では、ユーザＡ、Ｂ、Ｃ用の３つの変換テープル５８ａ、５８ｂ、５８ｃにより構成される。
【００４５】
図５は前記補正データ生成回路５７の制御フローを表しており、この制御フローを用いてユーザＡとユーザＢとが同一の補正データブロック５５０１を補正データ変換回路５７に入力した際に、生成される最終補正データブロック５６０１の結果が異なることを示す。図５では、補正データブロック５５０１を２進数表記で「０１１＿０１０＿１０１」の９ビットとし、補正データ変換回路５７は、３ビット毎に変換テーブル５８に従ってデータ変換を行うものとする。図４の変換テーブル５８において、前記ユーザＡにはお客様コード「０００」を割り当てて変換テーブル５８ａを対応させ、前記ユーザＢにはお客様コード「００１」を割り当てて変換テーブル５８ｂを対応させるものとする。先ず、ユーザＡのコード変換を行う。
【００４６】
補正データブロック５５０１の最初の３ビット「０１１」は、コードナンバー「０１」、「１０」、「１１」の何れにも合致しないので、合致しないことを表す「００」コードと前記３ビット「０１１」を付加した「０００１１」を生成して、ステップＳ１４に遷移する。この時点では残り６ビットが残っているので、ステップＳ１４からステップＳ１０に遷移し、前回と同様のコード変換を行う。具体的には、次の３ビット「０１０」はコードナンバー「１０」と一致するのでステップＳ１２に遷移して「１０」を生成し、その後にステップＳ１４に遷移する。最後の３ビット「１０１」は、コードナンバー「０１」、「１０」、「１１」の何れにも合致しないので、合致しないことを表す「００」コードと前記３ビット「１０１」を付加した「００１０１」を生成して、ステップＳ１４に遷移する。この段階で変換が終了するので、ステップＳ１４からステップＳ１５に遷移して、変換動作を終了する。
【００４７】
以上により、前記ユーザＡでは、補正データブロック５５０１のデータ「０１１＿０１０＿１０１」は、最終補正データブロック５６０１のデータ「０００１１＿１０＿００１０１」に変換される。同様に、ユーザＢに対しても変換処理を行うと、補正データブロック５５０１のデータ「０１１＿０１０＿１０１」は、最終補正データブロック５６０１のデータ「０１＿１０＿００１０１」に変換される。
【００４８】
このように、補正データブロック５５０１のデータ「０１１＿０１０＿１０１」を、ユーザ毎に可変長の固有コードに変換することにより、セキュリティのレベルを上げることができる。
【００４９】
このようにして生成された最終補正データブロック５６０１は、データ５００３と共に図４に示す最終データ生成回路５９に入力されて、最終データ２００２が生成される。また、最終データ生成回路５９からは、最終補正データブロックの配置アドレス情報である補正データ配置アドレス５９０１が出力される。図４の補正データリード命令生成回路６０では、前記補正データ配置アドレス５９０１に応じて、補正データ２３をリードする命令６００１を生成する。最終命令コード生成回路６１は、前記補正データリード命令６００１と、命令コード５００２及びダミー命令コードブロック５４０１を入力して、最終命令コード２００１を生成する。以上により生成された最終命令コード２００１と最終データ２００２は、図１に示した外部記憶装置２に記憶される。
【００５０】
次に、図１に示した半導体装置１内の内部構成について説明する。同図において、半導体装置１内の命令制御機構１０は、外部記憶装置２からリードした命令コード２０を、ＣＰＵ１４と復号化回路１２に対して出力する。以下、図９、図１０及び図１１を用いて命令制御機構１０の構成を説明する。尚、図９、図１０及び図１１は、前記図６、図７及び図８に示した各メモリ構成が外部記憶装置２に記憶されていることを前提に構成されている。
【００５１】
図９は、図６に示したように配置された命令コードをリードする場合の命令制御機構１０の構成図である。同図の下限アドレスレジスタ７０の下限アドレスは、図６では６０００番地、上限アドレスレジスタ７１の上限アドレスは６０ＦＦ番地となる。図９において、アドレス比較回路７２は、ＣＰＵ１４から入力されるアドレス１０２を前記下限アドレス及び上限アドレスを比較し、下限アドレス≦アドレス１０２≦上限アドレスの条件が成立すると、先ず、最初に補正データ書込み信号１００５をアサートして復号化回路１２に出力し、外部記憶装置２の補正データ２３を復号化回路１２にリードさせる。補正データ２３のリードが所定時間後に完了すると、アドレス比較回路７２は、復号化信号７２０１をアサートする。命令コード出力回路７３は、前記復号化信号７２０１がアサートされている状況では、ＣＰＵ命令コード１００２として、ＣＰＵ１４に対して何も実行しない命令（ＮＯＰ命令）を発行する一方、ダミー命令コード１００３に命令コード１０３を出力すると共にダミー命令書込み信号１００４を復号化回路１２に出力する。これにより、復号化回路１２には外部記憶装置２からのダミー命令コードのみが入力されると共に、その間はＣＰＵ１４内部のハードウェア資源に変化を与えることがない。
【００５２】
図１０は、図７のように配置された命令コードをリードする場合の命令制御機構１０の構成図である。図７において、命令コード１０３が第１の特定命令コードＡである場合、図１０の命令コード判定回路７４は、先ず、最初に補正データ書込み信号１００５をアサートして復号化回路１２に出力し、補正データ２３を復号化回路１２にリードする。所定時間後に前記補正データ２３のリードが完了すると、命令コード判定回路７４は、復号化信号７４０１をアサートして復号化回路１２に出力し、命令コード１０３が第２の特定命令コードＢとなると、前記復号化信号７４０１をネゲートする。命令コード出力回路７５は、前記復号化信号７４０１がアサートされている状況では、ＣＰＵ１４に対して何も実行しない命令（ＮＯＰ命令）をＣＰＵ命令コード１００２として発行する一方、ダミー命令コード１００３に命令コード１０３を出力すると共に、ダミー命令書込み信号１００４を復号化回路１２に出力する。これにより、復号化回路１２にはダミー命令コード２２のみが入力されると共に、その間はＣＰＵ１４内部のハードウェア資源に変化を与えることがない。また、命令コード出力回路７５は、図１の割込み制御機構１３から割込み信号１３０２がアサートされている間は、ＣＰＵ１４に対して命令コード１０３をＣＰＵ命令コード１００２として出力する一方、復号化回路１２に対してはダミー命令コード１００３及びダミー命令書込み信号１００４の出力を停止する。
【００５３】
図１１は、図８のように配置された命令コードをリードする場合の命令制御機構１０の構成図を示す。図１１に示した命令コード判定回路７６は、命令コード１０３から入力される特定命令コードＡの出現回数をカウントし、この出現回数カウント値と、ダミー命令コードの出現回数を定義するカウント設定値７６０２との比較を行って、カウント値が一致した場合には、先ず、最初に補正データ書込み信号１００５をアサートして復号化回路１２に出力し、補正データ２３を復号化回路１２にリードする。そして、所定時間後に前記補正データ２３のリードが完了すると、命令コード判定回路７６は、復号化信号７６０１をアサートし、前記特定命令コードＡの出現回数が前記カウント値と一致しなくなると、前記復号化信号７６０１をネゲートする。
【００５４】
ここで、前記カウント設定値７６０２は、半導体装置１内部又は外部記憶装置２に配置したデータとする。命令コード出力回路７７は、前記復号化信号７６０１がアサートされている状況では、ＣＰＵ１４に対しては何も実行しない命令（ＮＯＰ命令）をＣＰＵ命令コード１００２として発行する一方、ダミー命令コード１００３に命令コード１０３を出力すると共に、ダミー命令書込み信号１００４を復号化回路１２に出力する。これにより、復号化回路１２にはダミー命令コード２２のみが入力されると共に、その間はＣＰＵ１４内部のハードウェア資源に変化を与えることがない。また、図１に示した割込み制御機構１３から割込み信号１３０２がアサートされている間は、ＣＰＵ１４に対して命令コード１０３をＣＰＵ命令コード１００２として出力する一方、復号化回路１２に対してはダミー命令コード１００３及びダミー命令書込み信号１００４の出力を停止させる。
【００５５】
最後に、図１に示した開発用冶具３及び情報処理端末４について説明する。一般的に、オンチップデバッガなどを備えた半導体装置１では、半導体装置１の内部状態を情報処理端末４で確認することができるが、この時、ダミー命令コードを実行しているにも拘わらず、ＣＰＵ１４内部の状態が変化しないために、解析の対象となり易い。ここで、図１において、ユーザコード４００１で認証を行い、認証が正常に終了した場合にはダミー命令コードの実行ではＣＰＵ１４は停止するが、認証が拒否された場合には、ダミー命令コードをＣＰＵ１４が命令として実行する。このように構成することにより、悪意ある第三者からの機密情報の解析を防止することができる。
【産業上の利用可能性】
【００５６】
以上説明したように、本発明は、半導体装置と外部記憶装置とにより構成される半導体システムにおいて、前記外部記憶装置に記憶する機密情報を、データとしてではなく、前記半導体装置用のダミー命令コードに変換して記憶したので、機密情報を保護する暗号化装置、復号化装置、及びこの復号化装置を含む半導体システム等として有用である。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施形態における暗号化装置及び復号化装置を含む半導体システムの全体概略構成を示す図である。
【図２】同半導体システムに備えるデータ・コード変換機構の内部構成を示すブロック図である。
【図３】同データ・コード変換回路の動作を示すフローチャート図である。
【図４】同データ・コード変換回路に備える最終データ・コード生成機構の内部構成を示すブロック図である。
【図５】同最終データ・コード生成機構に備える補正データ変換回路の動作を示すフローチャート図である。
【図６】図１に示した半導体システムに備える外部記憶装置のダミー命令コード及び補正データの記憶の様子を説明する図である。
【図７】同外部記憶装置のダミー命令コード及び補正データの他の記憶の様子を説明する図である。
【図８】同外部記憶装置のダミー命令コード及び補正データの更に他の記憶の様子を説明する図である。
【図９】図１に示した半導体システムに備える半導体装置内の命令制御機構の内部構成を示すブロック図である。
【図１０】同命令制御機構の他の内部構成を示すブロック図である。
【図１１】同命令制御機構の更に他の内部構成を示すブロック図である。
【符号の説明】
【００５８】
１                                  半導体装置
２                                  外部記憶装置
３                                  開発用冶具
４                                  情報処理端末
５                                  データ・コード変換機構
（コード変換機構）
１０                                命令制御機構
１２                                復号化回路
１３                                割込み制御機構
１４                                ＣＰＵ
５１                                機密情報バッファ
５２                                データ・コード変換プログラム
５３                                データ・コード変換回路（変換回路）
５４                                ダミー命令コードバッファ
５５                                補正データバッファ
５６                                最終データ・コード生成機構
５７                                補正データ変換回路
５８，５８ａ〜５８ｃ                変換テーブル
５９                                最終データ生成回路
６０                                補正データリード命令生成回路
６１                                最終命令コード生成回路
７０                                下限アドレスレジスタ
７１                                上限アドレスレジスタ
７２                                アドレス比較回路
７３、７５、７７                    命令コード出力回路
７４、７６                          命令コード判定回路
１００５                            補正データ書込み信号
１３０２                            割込み信号
５９０１                            補正データ配置アドレス
６００１                            補正データリード命令
７２０１、７４０１、７６０１        復号化信号
Ｗ                                  暗号化装置
Ｘ                                  半導体システム
Ｙ                                  暗号化システム
Ｚ                                  復号化装置
【図１】
2005216027.tif 000003
【図２】
2005216027.tif 000004
【図３】
2005216027.tif 000005
【図４】
2005216027.tif 000006
【図５】
2005216027.tif 000007
【図６】
2005216027.tif 000008
【図７】
2005216027.tif 000009
【図８】
2005216027.tif 000010
【図９】
2005216027.tif 000011
【図１０】
2005216027.tif 000012
【図１１】
2005216027.tif 000013