(57)【要約】【課題】ＬＳＩ回路内に格納されるセキュリティデータの出力制限をする。【解決手段】第１の記憶部３，５の所定の記憶領域に記憶されるデータの出力制限をする出力制限部６，７と、出力制限部６，７の出力制限を解除する出力制限解除部１１と、外部制御装置２０とのインターフェースである入出力部２と、出力制限部６，７、及び、出力制限解除部１１、及び、入出力部２と所定のバス９で接続された内部制御部８とを備え、出力制限解除部１１は、所定のバス９を介した内部制御部８によるアクセスによってのみ出力制限部６，７の出力制限を解除することで実現する。【選択図】　図１
2004070740.tif 000002
【特許請求の範囲】
【請求項１】
第１の記憶手段の所定の記憶領域に記憶されるデータの出力制限をする出力制限手段と、
上記出力制限手段の出力制限を解除する出力制限解除手段と、
外部制御装置とのインターフェースである入出力手段と、
上記出力制限手段、及び、上記出力制限解除手段、及び、上記入出力手段と所定のバスで接続された内部制御手段とを備え、
上記出力制限解除手段は、上記所定のバスを介した上記内部制御手段によるアクセスによってのみ上記出力制限手段の出力制限を解除すること
を特徴とするデータ出力制限装置。
【請求項２】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅は、上記外部制御装置とのインターフェースである上記入出力手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅より広いこと
を特徴とする請求項１記載のデータ出力制限装置。
【請求項３】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスすること
を特徴とする請求項２記載のデータ出力制限装置。
【請求項４】
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項３記載のデータ出力制限装置。
【請求項５】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段を備え、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項３記載のデータ出力制限装置。
【請求項６】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅は、上記外部制御装置とのインターフェースである上記入出力手段と上記出力制限解除手段とを接続する上記所定のバスのバス幅と同じであり、
上記入出力手段は、上記外部制御装置からのアクセスに応じて、上記出力制限解除手段に接続される上記所定のバスで使用可能なバス幅を減少させること
を特徴とする請求項１記載のデータ出力制限装置。
【請求項７】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスすること
を特徴とする請求項６記載のデータ出力制限装置。
【請求項８】
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項７記載のデータ出力制限装置。
【請求項９】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段を備え、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項７記載のデータ出力制限装置。
【請求項１０】
上記所定のバスの使用権限を管理するバス管理手段を備え、上記出力制限解除手段は、上記バス管理手段によって上記内部制御手段に上記所定のバスの使用権限が与えられた場合に、上記内部制御手段からのアクセスを許可すること
を特徴とする請求項１記載のデータ出力制限装置。
【請求項１１】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、上記鍵データの書き込みを要求する書き込み信号とを上記所定のバスの使用権限が与えられた際に、上記出力制限解除手段に出力することで、上記出力制限解除手段にアクセスをし、
上記出力制限解除手段は、上記内部制御手段からのアクセスを許可し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項１０記載のデータ出力制限装置。
【請求項１２】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段を備え、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項１１記載のデータ出力制限装置。
【請求項１３】
第１の記憶手段の所定の記憶領域に記憶されるデータの出力制限をする出力制限手段と、
上記出力制限手段の出力制限を解除する出力制限解除手段と、
外部制御装置とのインターフェースである入出力手段と、
上記出力制限手段、及び、上記出力制限解除手段、及び、上記入出力手段と所定のバスで接続された内部制御手段とが集積化され、
上記出力制限解除手段は、上記所定のバスを介した上記内部制御手段によるアクセスによってのみ上記出力制限手段の出力制限を解除すること
を特徴とする回路素子。
【請求項１４】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅は、上記外部制御装置とのインターフェースである上記入出力手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅より広いこと
を特徴とする請求項１３記載の回路素子。
【請求項１５】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスすること
を特徴とする請求項１４記載の回路素子。
【請求項１６】
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項１５記載の回路素子。
【請求項１７】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段が集積化され、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項１５記載の回路素子。
【請求項１８】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅は、上記外部制御装置とのインターフェースである上記入出力手段と上記出力制限解除手段とを接続する上記所定のバスのバス幅と同じであり、
上記入出力手段は、上記外部制御装置からのアクセスに応じて、上記出力制限解除手段に接続される上記所定のバスで使用可能なバス幅を減少させること
を特徴とする請求項１３記載の回路素子。
【請求項１９】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスすること
を特徴とする請求項１８記載の回路素子。
【請求項２０】
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項１９記載の回路素子。
【請求項２１】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段が集積化され、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項１９記載の回路素子。
【請求項２２】
上記所定のバスの使用権限を管理するバス管理手段を備え、上記出力制限解除手段は、上記バス管理手段によって上記内部制御手段に上記所定のバスの使用権限が与えられた場合に、上記内部制御手段からのアクセスを許可すること
を特徴とする請求項１３記載の回路素子。
【請求項２３】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、上記鍵データの書き込みを要求する書き込み信号とを上記所定のバスの使用権限が与えられた際に、上記出力制限解除手段に出力することで、上記出力制限解除手段にアクセスをし、
上記出力制限解除手段は、上記内部制御手段からのアクセスを許可し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項２２記載の回路素子。
【請求項２４】
上記暗号化された解除プログラムを上記第２の記憶手段にロードする上記プログラムローダーが所定の記憶領域に記憶された第３の記憶手段が集積化され、
上記第３の記憶手段の上記プログラムローダーが記憶された上記所定の記憶領域は、マスク処理されていること
を特徴とする請求項２３記載の回路素子。
【請求項２５】
第１の記憶手段の所定の記憶領域に記憶される所定のデータの出力を制限し、
上記第１の記憶手段の所定の記憶領域に記憶される上記所定のデータの出力制限を解除する出力制限解除手段は、外部制御装置とのインターフェースである入出力手段及び所定のバスを介してアクセスがあった場合、上記第１の記憶手段の所定の記憶領域に記憶されている上記データの出力制限を継続し、
内部制御手段から所定のバスを介してアクセスがあった場合にのみ、上記第１の記憶手段の所定の記憶領域に記憶されている上記データの出力制限を解除すること
を特徴とするデータ出力制限方法。
【請求項２６】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅が、上記外部制御装置とのインターフェースである上記入出力手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅より広い場合、
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスし、
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、出力制限を解除すること
を特徴とする請求項２５記載のデータ出力制限方法。
【請求項２７】
上記内部制御手段と、上記出力制限解除手段とを接続する上記所定のバスのバス幅が、上記外部制御装置のインターフェースである上記入出力手段と上記出力制限解除手段とを接続する上記所定のバスのバス幅と同じ場合、
上記入出力手段は、上記外部制御装置からのアクセスに応じて、上記出力制限解除手段に接続される上記所定のバスで使用可能なバス幅を減少させ、
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、データ書き込み単位毎に出力される上記鍵データの書き込み要求をする書き込み信号とを、上記出力制限解除手段に出力することで上記出力制限解除手段にアクセスし、
上記出力制限解除手段は、上記内部制御手段から出力される上記書き込み信号の本数に基づいて、上記内部制御手段からアクセスされたことを判定し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項２５記載のデータ出力制限方法。
【請求項２８】
上記内部制御手段は、外部から供給され、プログラムローダーによって第２の記憶手段にロードされる暗号化された解除プログラムを実行することで認証用の鍵データを取得し、
取得した上記鍵データと、上記鍵データの書き込みを要求する書き込み信号とを上記所定のバスの使用権限が与えられた際に、上記出力制限解除手段に出力することで、上記出力制限解除手段にアクセスをし、
上記出力制限解除手段は、上記内部制御手段からアクセスされたことを許可し、
さらに、上記内部制御手段から出力される上記鍵データを認証した場合に、上記出力制限手段の出力制限を解除すること
を特徴とする請求項２５記載のデータ出力制限方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ）に関するものであり、当該ＬＳＩ内部に格納されているデータを保護するデータ出力制限装置、回路素子及びデータ出力制限方法に関する。
【０００２】
【従来の技術】
なんらかのセキュリティが必要なデジタルデータを扱うＬＳＩ回路を搭載した装置がある。例えば、著作権を保護する目的などから暗号化されたデジタルコンテンツを扱う装置では、暗号を解くためのＬＳＩ回路などが搭載されている。上記のようなＬＳＩ回路では、認証処理や暗号解読処理を実行するため、当該ＬＳＩ回路内に備えられるメモリや、レジスタに格納されるデータが、外部装置からの不当なアクセスによって簡単に読み出されることがないようにする必要がある。
【０００３】
そこで、上記のようなＬＳＩ回路では、メモリや、レジスタの所定の記憶領域に格納されたデータが外部装置からのアクセスによって自由に読み出すことができないように、データの出力を制限する出力制限回路が備えられている。
【０００４】
このように、セキュリティが必要なデジタルデータを扱うＬＳＩ回路は、外部装置からの不当なアクセスによるデータ漏洩を防止するために、上述した出力制限回路などを備えることで容易にデータの参照ができない設計とすることが要求される。
【０００５】
【発明が解決しようとする課題】
ところで、ＬＳＩ回路の開発においては、操作性のよい無料開発ツールがネットワークを介して提供されたり、デバイスが安価になったことで開発環境が著しく整ってきたＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍ　Ｇａｔｅ　Ａｒｒａｙ）が使用されることが多くなっている。ＬＳＩ回路の開発段階においては、設計からデバッグ処理までは、ＦＰＧＡが使用され、ＦＰＧＡでの設計に基づいて製品としてのＬＳＩ回路が作製されることになる。
【０００６】
ＦＰＧＡを用いた開発段階で実施されるデバッグ処理では、設計した回路が正しく機能しているかどうかを検証するために回路中のメモリや、レジスタ内に格納されたデータを外部装置から参照する必要がある。
【０００７】
したがって、デバッグ処理時に、メモリや、レジスタの所定の記憶領域に格納されたデータの出力を制限する出力制限回路が機能していると、検証したいデータを取得するのに非常に労力がかかるためデバッグ処理の効率が悪くなってしまうといった問題があった。
【０００８】
そこで、上記出力制限回路の出力制限を解除する解除回路を用意し、デバッグ時には解除回路により出力制限を解除してメモリや、レジスタ内のデータ検証を実行できるような設計とすることで、デバッグ処理の効率が低下することを防止するようにしていた。
【０００９】
一方、製品としてのＬＳＩ回路では、上述したようなデータ漏洩の観点から設計すれば、上記出力制限回路の出力制限を解除する解除回路を排除するほうがよい。
【００１０】
しかし、デバッグ処理を実行した設計から、僅かであっても回路構成を変更することは、新たなバグの出現を生じてしまう可能性があるため、製品としてのＬＳＩ回路を作製する場合においても、デバッグ処理を実行した回路設計と同じく解除回路を付加したままとし、さらに、外部からの不正なアクセスを防止するため、上記解除回路を所定の鍵データによる認証処理によって動作するような設計としていた。
【００１１】
ところが、鍵データが一致したことだけによる認証処理のみで、上記解除回路を動作させることは、外部装置などからのクラックによって、上記メモリや、レジスタ内に格納されているデータの出力制限が解除されてしまう可能性を残しており、データの漏洩を防止する機能としては不十分であるといった問題がある。
【００１２】
そこで、本発明は上述したような問題を解決するために案出されたものであり、メモリやレジスタに格納されたセキュリティが必要なデータに対する不正なアクセスによるデータ漏洩を防止するデータ出力制限装置、回路素子及びデータ出力制限方法を提供することを目的とする。
【００１３】
【課題を解決するための手段】
上述の目的を達成するために、本発明に係るデータ出力制限装置は、第１の記憶手段の所定の記憶領域に記憶されるデータの出力制限をする出力制限手段と、上記出力制限手段の出力制限を解除する出力制限解除手段と、外部制御装置とのインターフェースである入出力手段と、上記出力制限手段、及び、上記出力制限解除手段、及び、上記入出力手段と所定のバスで接続された内部制御手段とを備え、上記出力制限解除手段は、上記所定のバスを介した上記内部制御手段によるアクセスによってのみ上記出力制限手段の出力制限を解除することを特徴とする。
【００１４】
上述の目的を達成するために、本発明に係る回路素子は、第１の記憶手段の所定の記憶領域に記憶されるデータの出力制限をする出力制限手段と、上記出力制限手段の出力制限を解除する出力制限解除手段と、外部制御装置とのインターフェースである入出力手段と、上記出力制限手段、及び、上記出力制限解除手段、及び、上記入出力手段と所定のバスで接続された内部制御手段とが集積化され、上記出力制限解除手段は、上記所定のバスを介した上記内部制御手段によるアクセスによってのみ上記出力制限手段の出力制限を解除することを特徴とする。
【００１５】
上述の目的を達成するために、本発明係るデータ出力制限方法は、第１の記憶手段の所定の記憶領域に記憶される所定のデータの出力を制限し、上記第１の記憶手段の所定の記憶領域に記憶される上記所定のデータの出力制限を解除する出力制限解除手段は、外部制御装置とのインターフェースである入出力手段及び所定のバスを介してアクセスがあった場合、上記第１の記憶手段の所定の記憶領域に記憶されている上記データの出力制限を継続し、内部制御手段から所定のバスを介してアクセスがあった場合にのみ、上記第１の記憶手段の所定の記憶領域に記憶されている上記データの出力制限を解除することを特徴とする。
【００１６】
【発明の実施の形態】
以下、本発明に係るデータ出力制限装置、回路素子及びデータ出力制限方法の実施の形態を図面を参照にして詳細に説明する。
【００１７】
まず、図１に示した本発明を適用した、ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ）回路１の構成について説明をする。
【００１８】
ＬＳＩ回路１は、なんらかのセキュリティが必要なデジタルデータを扱うＬＳＩ回路であり、セキュリティが必要な装置（以下、セキュリティ装置とも呼ぶ）、例えば、著作権保護が要求されるデジタルコンテンツを扱う装置などに搭載される。図１に示すようにＬＳＩ回路１には、セキュリティ装置を統括的に制御する外部ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）２０が接続されている。
【００１９】
ところで、ＬＳＩ回路１は、設計からデバッグ処理までの開発段階においては、操作性のよいソフトウエアである開発ツールを用いた設計が可能なＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍ　Ｇａｔｅ　Ａｒｒａｙ）によって実現されている。ＦＰＧＡにおいてデバッグ処理まで行われた後、同じ設計でＬＳＩ化されることで製品としてのＬＳＩ回路１が作製されることになる。
【００２０】
ＬＳＩ回路１は、入出力インターフェース２と、内部デバイス３と、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）４と、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）５と、データ出力制限回路６，７と、内部ＣＰＵ８と、内部バス９と、バスアービター１０と、解除回路１１とを備えている。
【００２１】
入出力インターフェース２は、外部ＣＰＵ２０のアドレスバス、データバス、制御信号バスと接続され、当該ＬＳＩ回路１とアドレス信号、データ信号、制御信号のやり取りをするデータ入出力インターフェースである。また、入出力インターフェース２は、外部ＣＰＵ２０から供給されるデータが１度のアクセスで使用できる内部バスのバス幅を制限する機能を備えている。
【００２２】
内部デバイス３は、セキュリティが必要なデジタルデータが格納されるレジスタを備えたデバイスである。
【００２３】
例えば、内部デバイス３は、図示しないが、暗号解読処理を実行する暗号解読処理デバイスなどである。暗号解読処理デバイスは、例えば、ＤＥＳ（Ｄａｔａ　Ｅｎｃｒｙｐｔｉｏｎ　Ｓｔａｎｄａｒｄ）アルゴリズムを適用した暗号解読用のデバイスである。暗号解読処理デバイスは、暗号解読処理に使用し、暗号解読後のデータが格納されるレジスタや、暗号処理を実行する前段で実行される機器認証処理時の認証データが格納されるレジスタなどを備えている。
【００２４】
ＲＯＭ４は、読み出し専用のメモリであり、内部ＣＰＵ８によって実行されるプログラムなどを所定の記憶領域に格納している。
【００２５】
例えば、ＲＯＭ４の所定の記憶領域には、内部ＣＰＵ８によって実行されるプログラムとして、外部ＣＰＵ２０から供給される、後述する解除プログラムをＲＡＭ５にロードするためのプログラムローダーが格納されている。
【００２６】
この、ＲＯＭ４の所定の記憶領域に格納されているプログラムローダーは、当該ＬＳＩ回路１のデバッグ時、つまりＦＰＧＡによる開発段階において用いられるが、製品化する際には上記所定の記憶領域がマスク処理され使用できないようにされる。
【００２７】
また、ＬＳＩ回路１のＲＯＭ４部分は、書き込むプログラムや、データにバグがあった場合に簡単に内容を変更できるようにするため、当該ＬＳＩ回路１の製造工程において、複数回、実施される回路パターンマスクの焼き付け工程の最終工程で形成される。
【００２８】
したがって、回路パターンマスクの焼き付け工程の最終工程において、プログラムローダーを含まない回路パターンマスクに切り替えて、ＲＯＭ４を形成することで、ＲＡＭ５に解除プログラムをロードできないようにすることもできる。
【００２９】
ＲＡＭ５は、ランダムアクセス可能なメモリであり、内部ＣＰＵ８で実行するプログラムやデータなどが所定の記憶領域に格納される。
【００３０】
例えば、ＲＡＭ５の所定の記憶領域には、当該ＬＳＩ回路１のデバッグ時に、解除回路１１を動作させる解除プログラムをＲＯＭ４が保持するプログラムローダーによってロードされる。外部ＣＰＵ２０から供給される解除プログラムは、所定のアルゴリズムで暗号化されており、ＲＡＭ５の所定の記憶領域には、暗号化された解除プログラムが格納される。
【００３１】
また、ＲＡＭ５の所定の記憶領域には、内部デバイス３のうちの１つである暗号解読処理デバイスによって暗号が解かれたデジタルコンテンツなどが格納される。
【００３２】
データ出力制限回路６，７は、内部デバイス３、ＲＡＭ５の所定の記憶領域に記憶されているデータやプログラムの出力を制限し、セキュリティが必要なデータやプログラムを保護する。また、データ出力制限回路６，７は、解除回路１１から後述するデータ出力制限解除信号が供給された場合には、出力制限をしていたデータやプログラムの出力制限を解除する。
【００３３】
データ出力制限回路６，７は、例えば、要求されたデータやプログラムの出力を拒否したり、要求されたデータやプログラムの一部、又は、全てを所定の符号でマスクして出力することで出力制限をする。
【００３４】
なお、データ出力制限回路６，７は、外部ＣＰＵ２０、内部ＣＰＵ８の基本動作に関わるデータなどを出力制限の対象とはしない。
【００３５】
内部ＣＰＵ８は、当該ＬＳＩ回路１の各機能部を統括的に制御する制御部である。内部ＣＰＵ８は、外部ＣＰＵ２０から暗号化された解除プログラムが供給されたことに応じて、ＲＯＭ４に格納されているプログラムローダーを読み出して実行し、上記解除プログラムをＲＡＭ５にロードさせる。また、内部ＣＰＵ８は、ＲＡＭ５にロードされた上記解除プログラムを読み出して実行する。
【００３６】
ここで解除プログラムについて説明をする。解除プログラムには、暗号化された鍵データが埋め込まれており、内部ＣＰＵ８で解除プログラムが実行されると、鍵データの暗号が解かれ、後述する解除回路１１の所定のアドレスのレジスタに鍵データが書き込まれる。つまり、解除プログラムは、鍵データの暗号を解いて解除回路１１の所定のレジスタに書き込むプログラムである。
【００３７】
内部ＣＰＵ８は、解除プログラムを実行して鍵データを取得すると、内部バス９のアドレスバスから所定のアドレス信号を出力し、解除回路１１が備える鍵データを格納する所定のレジスタを指定する。続いて、内部ＣＰＵ８は、取得した鍵データを内部バス９のデータバスを介して解除回路１１に出力し、さらに、内部バス９の制御信号バスから書き込み信号を出力して、解除回路１１の指定したアドレスのレジスタに鍵データを書き込む。
【００３８】
内部バス９は、それぞれ分離させて図示しないが、ＬＳＩ回路１内のアドレスバス、データバス、制御信号バスであり、入出力インターフェース２、内部デバイス３、ＲＯＭ４、ＲＡＭ５、内部ＣＰＵ８、解除回路１１の間でアドレス信号、データ信号、制御信号などを伝送する伝送経路である。内部バス９は、共通バス９’から、所定のバス幅のバスが各機能部に接続された構成となっている。
【００３９】
入出力インターフェース２から共通バス９’までのデータバスをバス９Ａ、内部ＣＰＵ８から共通バス９’までのデータバスをバス９Ｂ、解除回路１１から共通バス９’までのデータバスをバス９Ｃとして示すと、バス９Ａ，９Ｂ，９Ｃのバス幅は、以下に示すような関係となっている。
【００４０】
（１）　バス９Ｃのバス幅と、バス９Ｂのバス幅とは同じである。例えば、バス９Ｃのバス幅と、バス９Ｂのバス幅が３２本で同一であるとする。このとき、１本のバスで１ビットのデータを伝送できるので、内部ＣＰＵ８が一度のアクセスで書き込めるデータは３２ビット（４バイト）である。
【００４１】
（２）　バス９Ａのバス幅は、バス９Ｃのバス幅より狭い。例えば、バス９Ｃのバス幅が３２本で、バス９Ａのバス幅は１６ビットであるとする。このとき、外部ＣＰＵ２０が、一度のアクセスで書き込めるデータは１６ビット（２バイト）である。
【００４２】
（３）　バス９Ａのバス幅は、バス９Ｃのバス幅とは、条件付きで同じであってもよい。バス９Ａのバス幅と、バス９Ｃのバス幅とが同一の場合には、入出力インターフェース２によって、データの書き込みに使用できるデータバス幅が減少される。例えば、バス９Ａのバス幅と、バス９Ｃのバス幅が３２本で同一となっている場合、入出力インターフェース２によってアクティブとなる書き込み信号が減らされて、１６本のバス幅しか使用できないように制御される。この場合、外部ＣＰＵ２０が、一度のアクセスで書き込めるデータは１６ビット（２バイト）である。
【００４３】
バスアービター１０は、内部ＣＰＵ８、又は、入出力インターフェース２を介してアクセスをする外部ＣＰＵ２０による内部バス９の使用権限を管理する。
バスアービター１０によって内部バス９の使用権限が渡されると、権限を渡された内部ＣＰＵ８、又は、外部ＣＰＵ２０は、内部バス９を占有して利用することができる。
【００４４】
また、バスアービター１０は、上述したように内部バス９の使用権限を管理するとともに、現在、内部バス９を使用しているのが内部ＣＰＵ８であるのか、外部ＣＰＵ２０であるのかを解除回路１１に通知する。
【００４５】
解除回路１１は、所定の条件が満たされた場合、データ出力制限回路６，７のデータ出力制限機能を解除させるデータ出力制限解除信号を生成し、データ出力制限回路６，７へ供給する。
【００４６】
図２に示すように、解除回路１１は、鍵レジスタ１１Ａと、鍵比較回路１１Ｂとを備えている。
【００４７】
鍵レジスタ１１Ａは、内部バス９のデータバスより供給される鍵データを格納するレジスタである。鍵レジスタ１１Ａには、上述した内部ＣＰＵ８が解除プログラムを実行したことによって鍵データが書き込まれる。また、鍵レジスタ１１Ａには、外部ＣＰＵ２０の不正なアクセスによって鍵データが書き込まれる可能性もある。
【００４８】
鍵比較回路１１Ｂは、鍵レジスタ１１Ａに書き込まれた鍵データと、当該鍵比較回路１１Ｂで保持している鍵データと比較をし、鍵データが一致するかどうかを判定することによる認証処理を実行するとともに、鍵レジスタ１１Ａに鍵データを書き込んだのが内部ＣＰＵ８であるのか、外部ＣＰＵ２０であるのかを判定する。
【００４９】
鍵比較回路１１Ｂは、鍵レジスタ１１Ａに書き込まれた鍵データが認証され、且つ、内部ＣＰＵ８の指示によって鍵レジスタ１１Ａに書き込まれたことに応じて、データ出力制限回路６，７のデータ出力制限機能を解除させるデータ出力制限解除信号を生成する。
【００５０】
鍵比較回路１１Ｂは、鍵データが、内部ＣＰＵ８、又は、外部ＣＰＵ２０のどちらによって鍵レジスタ１１Ａに書き込まれたかを以下のようにして判定する。
【００５１】
まず、鍵比較回路１１Ｂは、鍵レジスタ１１Ａに鍵データを書き込む際に、内部ＣＰＵ８、又は、外部ＣＰＵ２０が制御信号バスを介して出力する書き込み信号を受け取る。書き込み信号は、書き込み単位である１バイトのデータを書き込むのに１本出力されるため、一度に書き込むバイト数が多いほどアクティブになる書き込み信号の本数も増加することになる。
【００５２】
上述したように、バス９Ａ，９Ｂ，９Ｃの構成や、外部ＣＰＵ２０がデータ書き込み時に使用するバス幅を制限するといった入出力インターフェース２の制御によって、内部ＣＰＵ８が一度のアクセスで書き込めるデータ量は、外部ＣＰＵ２０よりも必ず多くなっている。
【００５３】
したがって、鍵比較回路１１Ｂは、１度のアクセスでアクティブになる書き込み信号の本数をカウントすることで、鍵レジスタ１１Ａに書き込まれた鍵データが、内部ＣＰＵ８によって書き込まれたのか、外部ＣＰＵ２０によって書き込まれたのかを判定することができる。
【００５４】
また、解除回路１１は、内部ＣＰＵ８からのアクセス、外部ＣＰＵ２０からのアクセスを切り換えるセレクタを備えていてもよく、上述したバスアービター１０から、内部バス９の使用状況を取得し、内部ＣＰＵ８からのアクセスである場合にのみセレクタを切り換えて鍵データを鍵レジスタ１１Ａに書き込むことができるようにしてもよい。鍵比較回路１１Ｂは、このようにアクセスを許可するセレクタを切り換えることで、内部ＣＰＵ８によって鍵レジスタ１１Ａに鍵データが書き込まれたことを判定するようにしてもよい。
【００５５】
続いて、図３に示すフローチャートを用いて、ＬＳＩ回路１の開発段階で使用されるＦＰＧＡによるデバッグ時の動作について説明をする。上述したように、ＬＳＩ回路１は、開発段階ではＦＰＧＡを用いて設計からデバッグ処理までが実行される。
【００５６】
図１及び図２を用いて説明したＬＳＩ回路１の構成と、ＦＰＧＡの構成は、上述したように、ＲＯＭ４のプログラムローダーが記憶されている記憶領域がマスク処理されているかどうか、又は、ＲＯＭ４がプログラムローダーを含まない構成となっているかどうかを除いて、全て同じであるため、当該図３に示すフローチャートにおいても、各機能部の名称及び符号は、ＬＳＩ回路１に付したものと同じものを用いて説明をする。
【００５７】
まず、ステップＳ１において、暗号化された解除プログラムが外部ＣＰＵ２０から入出力インターフェース２を介して供給される。
【００５８】
ステップＳ２において、内部ＣＰＵ８は、ＲＯＭ４に格納されているプログラムローダーを読み出し、供給された解除プログラムをＲＡＭ５の所定の記憶領域にロードする。
【００５９】
ステップＳ３において、内部ＣＰＵ８は、ＲＡＭ５にロードした暗号化されている解除プログラムを読み出し、内部デバイス３の暗号解読処理デバイスを利用して暗号を解き、暗号を解いた解除プログラムの実行を開始する。内部ＣＰＵ８によって解除プログラムが実行されると解除回路１１の鍵レジスタ１１Ａに書き込むための鍵データを取得することができる。
【００６０】
ステップＳ４において、内部ＣＰＵ８は、鍵データを書き込む鍵レジスタ１１Ａのアドレスを指定し、取得した鍵データをデータバスを介して解除回路１１に出力する。さらに、内部ＣＰＵ８は、当該内部ＣＰＵ８が書き込みに使用可能なデータバスの数に対応した本数の書き込み信号を制御信号バスを介して解除回路１１に出力し、鍵データを鍵レジスタ１１Ａに書き込む。
【００６１】
ステップＳ５において、解除回路１１の鍵比較回路１１Ｂは、鍵レジスタ１１Ａに書き込まれた鍵データと、自身が保持する鍵データとを比較し一致するかどうかを判定する。鍵データが一致したと判定された場合は、工程をステップ６へと進め、一致しなかったと判定された場合は、工程をステップＳ８へと進める。
【００６２】
ステップＳ６において、解除回路１１の鍵比較回路１１Ｂは、制御信号バスを介して供給された制御信号である書き込み信号を受信し、受信した書き込み信号の本数から内部ＣＰＵ８によって鍵レジスタ１１Ａの鍵データの書き込みが指示されたかどうかを判定する。
【００６３】
なお、内部ＣＰＵ８からのアクセスがあった場合に、内部バス９を占有して使用しているのは内部ＣＰＵ８であることがバスアービター１０によって解除回路１１に通知されるようにしてもよく、その場合は解除回路１１は所定のセレクタを動作させ、内部ＣＰＵ８からのアクセスを受け付ける。このセレクタは、外部ＣＰＵ２０からのアクセスがあったことをバスアービター１０から通知された場合には、上記外部ＣＰＵ２０からのアクセスを拒否するよう動作するセレクタである。
【００６４】
これにより、解除回路１１は、鍵レジスタ１１Ａに鍵データが書き込まれると、内部ＣＰＵ８からのアクセスであると判定することができる。
【００６５】
内部ＣＰＵ８によって鍵データが書き込まれたと判定された場合は工程をステップＳ７へと進め、内部ＣＰＵ８によって鍵データが書き込まれてないと判定された場合は工程をステップＳ８へと進める。
【００６６】
ステップＳ７において、解除回路１１の鍵比較回路１１Ｂは、ステップＳ５で鍵データが一致されていると判定され、ステップＳ６において、内部ＣＰＵ８によって鍵データが鍵レジスタ１１Ａに書き込まれたと判定されたことに応じて、データ出力制限回路６，７のデータ出力制限機能を解除する命令であるデータ出力制限解除信号を生成し、上記データ出力制限回路６，７に出力する。
【００６７】
ステップＳ８において、解除回路１１の鍵比較回路１１Ｂは、ステップＳ５で鍵データが一致していないと判定されるか、ステップＳ６で、内部ＣＰＵ８によって鍵データが鍵レジスタ１１Ａに書き込まれていないと判定された場合、データ出力制限解除信号を生成せず、データ出力制限回路６，７のデータ出力制限機能を維持させる。
【００６８】
ステップＳ９において、データ出力制限回路６，７には、解除回路１１の鍵比較回路１１Ｂからデータ出力制限解除信号が出力され、上記データ出力制限解除信号に応じて、データ出力制限回路６，７のデータ出力制限機能を解除する。
【００６９】
ステップＳ１０において、データ出力制限回路６，７のデータ出力制限機能が解除されたことに応じて、内部デバイス３、ＲＡＭ５に格納されたデータを外部ＣＰＵ２０から自由に読み出せるようになり、外部ＣＰＵ２０によってデバッグ動作が開始される。
【００７０】
このようにして、ＬＳＩ回路１の開発段階であるＦＰＧＡは、内部ＣＰＵ８で解除プログラムを実行することで鍵データを取得し、取得した鍵データの一致と、内部ＣＰＵ８が鍵データの書き込みを指示したことを判定した解除回路１１によって、デバッグ処理を実行するためにデータ出力制限回路６，７のデータ出力制限機能が解除される。
【００７１】
図３に示したフローチャートを用いて説明したように、ＬＳＩ回路１の開発段階であるＦＰＧＡにおいては、デバッグ処理を実行する必要から、解除回路１１を動作させることが必要であったが、ＬＳＩ回路１では、この解除回路１１が動作しデータ出力制限解除信号が生成され、データ出力制限回路６，７の出力制限機能が解除されないようにする必要がある。
【００７２】
上述したようにＬＳＩ回路１では、内部ＣＰＵ８が解除プログラムを実行して解除回路１１が動作することがないように、解除プログラムをＲＡＭ５にロードするＲＯＭ４の所定の記憶領域に格納されたプログラムローダーを当該ＬＳＩ回路１の製造工程においてマスク処理をすることで除去するか、又は、ＲＯＭ４にプログラムローダーを含ませないようにしている。
【００７３】
これにより、不正なアクセスによって外部ＣＰＵ２０から解除プログラムを注入したとしても、ＲＡＭ５に解除プログラムを格納することができないため、内部ＣＰＵ８によって解除プログラムを実行させ、データ出力制限回路６，７のデータ出力制限機能を解除させる行為を完全に防止することができる。
【００７４】
また、外部ＣＰＵ２０から直接、解除回路１１の鍵レジスタ１１Ａに鍵データを書き込もうとする場合、解除回路１１は図４に示すフローチャートのような動作をすることになる。
【００７５】
まず、ステップＳ１１において、解除回路１１は、外部ＣＰＵ２０から入出力インターフェース２、内部バス９のアドレスバスを介して鍵レジスタ１１Ａのアドレスが指定され、同じく外部ＣＰＵ２０から出力される鍵データを入出力インターフェース２、内部バス９のデータバスを介して受信する。
【００７６】
ステップＳ１２において、解除回路１１の鍵レジスタ１１Ａと鍵比較回路１１Ｂは、外部ＣＰＵ２０から入出力インターフェース２、内部バス９の制御信号バスを介して使用可能な内部バス９のデータバスのバス幅に応じた本数の書き込み信号を受信する。
【００７７】
ステップＳ１３において、解除回路１１の鍵レジスタ１１Ａには、書き込み信号を受信したことに応じて、内部バス９のデータバスを介して出力された鍵データが書き込まれる。
【００７８】
ステップＳ１４において、解除回路１１の鍵比較回路１１Ｂは、鍵レジスタ１１Ａに格納された鍵データと自身が保持する鍵データとを比較して、一致するかどうかを判定する。比較した鍵データが一致した場合は工程をステップＳ１５へと進め、一致しなかった場合、データ出力制限解除信号は生成されずに工程が終了する。
【００７９】
ステップＳ１５において、鍵比較回路１１Ｂは、内部バス９の制御信号バスを介して出力される書き込み信号の本数をカウントし、外部ＣＰＵ２０によって鍵レジスタ１１Ａに鍵データが書き込まれたことを判定する。
【００８０】
ＬＳＩ回路１の構成を説明する際にも示したように、外部ＣＰＵ２０から解除回路１１までのバスのバス幅と、内部ＣＰＵ８から解除回路１１までのバスのバス幅は、バス幅の構成そのものや、外部ＣＰＵ２０から解除回路１１まのバス幅に関しては、入出力インターフェース２によってデータ書き込み時に使用できるバス幅を制限されるため、内部ＣＰＵ８が一度のアクセスで書き込めるデータ量が、外部ＣＰＵ２０よりも必ず多くなる。
【００８１】
したがって、鍵比較回路１１Ｂは、１度のアクセスでアクティブになる書き込み信号の本数をカウントすれば、必ず外部ＣＰＵ２０によるアクセスであることを判定することができるため、データ出力制限解除信号を生成することなく工程を終了する。
【００８２】
なお、ステップＳ１１〜ステップ１２の工程において、外部ＣＰＵ２０からのアクセスがあった場合に、内部バス９を占有して使用しているのは外部ＣＰＵ２０であることがバスアービター１０によって解除回路１１に通知されるようにしてもよく、その場合は解除回路１１は所定のセレクタを動作させ、外部ＣＰＵ２０からのアクセスを拒否する。よって、外部ＣＰＵ２０のアクセスによって、鍵レジスタ１１Ａには、鍵データを書き込むことができないため、鍵比較回路１１Ｂは、データ出力制限解除信号を生成することはない。
【００８３】
このように、外部ＣＰＵ２０から直接、鍵データを書き込もうとする場合においても、データ出力制限回路６，７のデータ出力制限機能を解除させる行為を完全に防止することができる。
【００８４】
【発明の効果】
以上の説明からも明らかなように、本発明のデータ出力制限装置及び回路素子は、内部制御手段による解除プログラムの実行により、出力制限解除手段にアクセスした場合にのみ、第１の記憶手段の所定の記憶領域に記憶されているデータの出力制限が解除されるので、入出力手段を介した外部制御装置からの不当なアクセスによるデータの漏洩を防止することを可能とする。
【００８５】
出力制限解除手段に対する内部制御手段からのバスのバス幅は、外部制御装置のインターフェースである入出力手段を介したバスのバス幅より広く構成されているため、内部制御手段によって１度のアクセスで書き込めるデータ量が外部制御装置によるアクセスで書きこめるデータ量よりも必ず多くなる。
【００８６】
したがって、データ書き込み単位毎に出力される書き込み信号の本数をカウントすることで、確実に内部制御手段からのアクセスであるのか、外部制御装置からのアクセスであるのかを判定することができるため、不当なアクセスによるデータ漏洩を防止することを可能とする。
【００８７】
また、出力制限解除手段は、内部制御手段からのバス幅が、入出力手段を介したバス幅と同じである場合は、入出力手段によって、使用可能なバス幅が減少するよう制御されるため、同様に内部制御手段からのアクセスであるのか、外部制御装置からのアクセスであるのかを判定することができるため、不当なアクセスによるデータ漏洩を防止することを可能とする。
【００８８】
さらに、第３の記憶手段の所定の記憶領域に、外部から供給される解除プログラムを第２の記憶手段にロードするプログラムローダーを記憶している場合、上記所定の記憶領域をマスク処理することで、不当なアクセスによって解除プログラムが注入されても、内部制御手段の出力制限解除手段へのアクセスが不能となるため、出力制限されたデータの漏洩を完全に防止することを可能とする。
【００８９】
以上の説明からも明らかなように、本発明のデータ出力制御方法は、内部制御手段による解除プログラムの実行により、出力制限解除手段にアクセスした場合にのみ、第１の記憶手段の所定の記憶領域に記憶されているデータの出力制限が解除されるので、入出力手段を介した外部制御装置からの不当なアクセスによるデータの漏洩を防止することを可能とする。
【００９０】
出力制限解除手段に対する内部制御手段からのバスのバス幅は、外部制御装置のインターフェースである入出力手段を介したバスのバス幅より広く構成されているため、内部制御手段によって１度のアクセスで書き込めるデータ量が外部制御装置によるアクセスで書きこめるデータ量よりも必ず多くなる。
【００９１】
したがって、データ書き込み単位毎に出力される書き込み信号の本数をカウントすることで、確実に内部制御手段からのアクセスであるのか、外部制御装置からのアクセスであるのかを判定することができるため、不当なアクセスによるデータ漏洩を防止することを可能とする。
【００９２】
また、出力制限解除手段は、内部制御手段からのバス幅が、入出力手段を介したバス幅と同じである場合は、入出力手段によって、使用可能なバス幅が減少するよう制御されるため、同様に内部制御手段からのアクセスであるのか、外部制御装置からのアクセスであるのかを判定することができるため、不当なアクセスによるデータ漏洩を防止することを可能とする。
【図面の簡単な説明】
【図１】本発明の実施の形態として示すＬＳＩ回路の要部構成を説明するための図である。
【図２】同ＬＳＩ回路が備える解除回路について説明するための図である。
【図３】同ＬＳＩ回路において、デバッグ時の動作について説明するためのフローチャートである。
【図４】同ＬＳＩ回路において、外部ＣＰＵによってアクセスされた場合の動作について説明するためのフローチャートである。
【符号の説明】
１　ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｅｄ）回路、２　入出力インターフェース、３　内部デバイス、４　ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、５　ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、６，７　データ出力制限回路、８　内部ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）、９　内部バス、１０　バスアービター、１１　解除回路、２０　外部ＣＰＵ
【図１】
2004070740.tif 000003
【図２】
2004070740.tif 000004
【図３】
2004070740.tif 000005
【図４】
2004070740.tif 000006