(57)【要約】【課題】機器組込みマイコンシステムにおいて外部メモリのプログラム改竄によるマイコン内蔵メモリのプログラム漏洩を防止する。【解決手段】外部メモリに配置したプログラムに対して内部メモリに配置される補正値を加えた後に一方向関数を適用して算出した証明書と、外部メモリに配置されるプログラムに内部メモリに配置される補正値を加えた後に一方向関数を適用して算出される外部メモリに配置された証明書との一致を比較する（４０６）。【選択図】図４
2007156904.tif 000002
【特許請求の範囲】
【請求項１】
機器組込みマイコンと前記マイコンに接続される外部メモリとを備えるシステムにおいて、前記外部メモリに著作権保護処理以外の製品仕様制御プログラムが配置され、前記マイコンに内蔵される内部メモリに前記外部メモリに配置するプログラムに対する改竄防止処理プログラムが配置されたマイコンシステム。
【請求項２】
前記改竄防止プログラムは、前記外部メモリに配置したプログラムに対して一方向関数を適用して算出した証明書と、前記製品仕様制御プログラムに一方向関数を適用して算出される前記外部メモリに配置された証明書との一致を条件に以降のプログラムを実行させる請求項１記載のマイコンシステム。
【請求項３】
前記改竄防止プログラムは、前記外部メモリに配置したプログラムに対して前記内部メモリに配置される補正値を加えた後に一方向関数を適用して算出した証明書と、前記外部メモリに配置されるプログラムに前記内部メモリに配置される補正値を加えた後に一方向関数を適用して算出される前記外部メモリに配置された証明書との一致を比較する請求項２記載のマイコンシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプログラム改竄防止を行う機器組み込みマイコンシステムに関する。
【背景技術】
【０００２】
従来、プログラムコードの改竄防止システムとして特許文献１に開示されたシステムがある。この改竄防止システムは、図５に示すように、プログラム制御によって動作するデータ処理装置５００と、ファイル装置５１０とから構成されている。データ処理装置５００は非暗号プログラム読み込み手段５０１と、暗号鍵算出手段５０２と、暗号化プログラム読み込み手段５０３と、暗号解除手段５０４とからなり、ファイル装置５１０は非暗号プログラム記憶手段５１１と、暗号化プログラム記憶手段５１２とからなる。
【０００３】
上記構成のプログラムコードの改竄防止システムにおいて、非暗号プログラム記憶手段５１１には暗号化されていないプログラムが格納され、暗号化プログラム記憶手段５１２に暗号化されたプログラムコード＃１〜＃ｎが複数のブロック＃１〜＃ｎにそれぞれ分割されて格納されている。これらは非暗号プログラム記憶手段５１１に格納された暗号化されていないプログラムコード、暗号化されたブロック＃１〜＃ｎの順に、データ処理装置５００に読み込まれるものとする。
【０００４】
非暗号プログラム読み込み手段５０１は非暗号プログラム記憶手段５１１から暗号化されていないプログラムコードを図示しない主記憶上に読み込む。暗号鍵算出手段５０２はこの主記憶上に読み込んだプログラムに一方向関数（ハッシュ関数など）を適用し、これから読み込まれる暗号化されたプログラムコードブロックを平文化するための暗号鍵を生成する。暗号化プログラム読み込み手段５０３は暗号化プログラム記憶手段５１２から次に実行する暗号化されたプログラムコードを主記憶上に読み込む。暗号化解除手段５０４は暗号鍵算出手段５０２で算出した暗号鍵を使用し、暗号化されたプログラムコードの暗号を解除する。
【特許文献１】特開２０００−１２２８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述した従来のプログラムコードの改竄防止システムでは、上記のようなプログラムコードの暗号解除処理を繰り返すため、暗号化が施されたプログラムコードを実行する際の実行速度がプログラムコードに暗号化を施さない場合と比較して遅くなるという問題がある。また、従来のプログラムコードの改竄防止システムでは、プログラムコードを逆アセンブラツールなどの解析ツールで解析し、どういった機構でプログラムの改竄を判定しているかを解析し、その解析結果に基づいてプログラムを改竄できる問題があった。
【０００６】
機器組込みマイコンにおいてはプログラムを記憶する手段としていくつかの方法が考えられる。その方法の一つにマイコン内蔵メモリが想定できるが、マイコン内蔵メモリの容量が限られているため、昨今の製品仕様の複雑化と高度化に対応する上でのプログラムサイズ増加に対して、全てのプログラムをマイコン内蔵メモリに配置することができないという問題がある。これに対処するため、機器組み込みマイコンの外部に不揮発性半導体メモリなどを用いた外部メモリを設けると、その外部メモリにプログラムを配置することで全プログラムを配置可能となるが、簡単にプログラムの読み出しが可能となるため、例えば、著作権保護制御などのような機密対象となるプログラムの読み出しにより著作権保護アルゴリズムを解読され、デジタルコンテンツの不正コピーが可能になるなど機密情報の隠蔽の点で問題となる。
【０００７】
また、図６に示すように機器組込みマイコンの内蔵メモリ１０１と外部メモリ１０２の両方にプログラムを配置する方法もあるが、機器組み込みマイコンによるプログラムの実行において、外部メモリ１０２にプログラムカウンタが遷移するため、その遷移先のプログラムを改竄することにより、マイコン内蔵メモリ１０１内のプログラムを読み出すことが可能になるという問題がある。
【０００８】
本発明は、機器組込みマイコンにより著作権保護制御と著作権保護処理以外の製品仕様を実現する外部メモリを備えたシステムにおいて、外部メモリのプログラム改竄によるマイコン内蔵メモリのプログラム漏洩を防止することができるマイコンシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、機器組込みマイコンと前記マイコンに接続される外部メモリとを備えるシステムにおいて、前記外部メモリに著作権保護処理以外の製品仕様制御プログラムが配置され、前記マイコンに内蔵される内部メモリに前記外部メモリに配置するプログラムに対する改竄防止処理プログラムが配置される。これにより、増大する製品仕様制御プログラムに対応するとともに、外部メモリのプログラム改竄によるマイコン内蔵メモリのプログラム漏洩を防止する。
【００１０】
前記改竄防止プログラムは、前記外部メモリに配置したプログラムに対して一方向関数を適用して算出した証明書と、前記製品仕様制御プログラムに一方向関数を適用して算出される前記外部メモリに配置された証明書との一致を条件に以降のプログラムを実行させる。より詳しくは、前記外部メモリに配置したプログラムに対して前記内部メモリに配置される補正値を加えた後に一方向関数を適用して算出した証明書と、前記外部メモリに配置されるプログラムに前記内部メモリに配置される補正値を加えた後に一方向関数を適用して算出される前記外部メモリに配置された証明書との一致を比較する。
【発明の効果】
【００１１】
本発明によれば、増大する製品仕様制御プログラムに対応するとともに、外部メモリのプログラム改竄によるマイコン内蔵メモリのプログラム漏洩を防止することができ、プログラム改竄を防止するロバスト性の高いシステムを構築することができる。
【発明を実施するための最良の形態】
【００１２】
図１は本発明の実施形態に係るマイコンシステムのブロック図である。図１において、１００は機器組込みマイコン、１０１は著作権保護制御プログラムとプログラム改竄を判断する処理を配置するマイコン内蔵メモリ、１０２は製品仕様制御プログラムを配置する外部メモリである。機器組み込みマイコン１００と外部メモリ１０２は機器組み込みマイコン１００のアドレスバス及びデータバスで接続されており、機器組込みマイコン１００はマイコン内蔵メモリ１０１と外部メモリ１０２のそれぞれに配置したプログラムを実行することが可能である。上記構成において、マイコン内蔵メモリ１０１に著作権保護制御のような厳秘情報にまつわるプログラムを配置することで、プログラムの隠蔽が可能となり、プログラムの外部への流出を防止ことができる。一方、外部メモリ１０２はマイコン内蔵メモリ１０１に比べて一般に大容量のメモリサイズの選択が可能なことから、製品仕様制御用のプログラムを外部メモリ１０２に配置することで、製品仕様実現のために増大するプログラムサイズに対応可能となる。
【００１３】
図２はマイコン内蔵メモリ１０１および外部メモリ１０２に配置するプログラム構成図である。機器組み込みマイコン１００のリセットスタート後に実行されるマイコン内蔵メモリ１０１のメモリ領域Ｒ１には、外部メモリ１０２のプログラムの改竄を判定する処置を配置する。マイコン内蔵メモリ１０１のメモリ領域Ｒ２には、外部メモリ１０２のプログラムが改竄されたと判定したときに、以降のプログラム実行を受付けないようにする無限ループ処理などのプログラムを配置する。マイコン内蔵メモリ１０１のメモリ領域Ｒ３には、著作権保護制御用プログラムを配置する。マイコン内蔵メモリのメモリ領域Ｒ４には、外部メモリ１０２のプログラム改竄を判定するために用いる補正値を配置する。外部メモリ１０２のメモリ領域Ｒ１０には製品仕様制御用プログラムを配置する。外部メモリ１０２のメモリ領域Ｒ１１には、そのプログラムの改竄をマイコン内蔵メモリ１０１のプログラムから改竄判定が可能とするために、製品仕様制御用プログラムに対して一方向関数（ハッシュ関数など）を使用して求めた証明書（ハッシュ値など）の値をデータとして配置する。
【００１４】
図３は外部メモリ１０２のプログラム改竄を判定するためにマイコン内蔵メモリ１０１に配置するプログラムのフローチャートである。機器組み込みマイコン１００のリセットスタート時には、まずマイコン内蔵メモリ１０１のメモリ領域Ｒ１のプログラムが実行される。メモリ領域Ｒ１には外部メモリ１０２のプログラムの改竄を判定するプログラムが配置されており、改竄されていないと判定した場合（ステップ３０１でＮＯ）は、図２のメモリ領域Ｒ３の著作権保護制御プログラムもしくはメモリ領域Ｒ１０の製品仕様制御プログラムにジャンプする（ステップ３０２）。改竄されていると判定した場合（ステップ３０１でＹＥＳ）は、メモリ領域Ｒ２に配置した無限ループ処理にジャンプすることで、以降のプログラム実行を停止する（ステップ３０３）。以上の処理により、外部メモリ１０２内のプログラムが改竄されていない場合にのみ外部メモリ１０２へのアクセス、すなわちプログラムカウンタの外部メモリ１０２のアドレスへの遷移が可能となる。
【００１５】
図４は外部メモリ１０２のプログラム改竄の判定方法を示すフローチャートである。図４において、まず外部メモリ１０２のメモリ領域Ｒ１０に配置した製品仕様制御プログラムを機器組み込みマイコン１００のアドレスバス及びデータバスを介して読み込む（ステップ４０１）。読み込むデータサイズは、機器組み込みマイコンが退避可能なメモリサイズ及び一方向関数演算に要する時間を考慮し、マイコンシステムに最適なデータサイズを読み込むこととする。次に読み込んだ製品仕様制御用プログラムに対して、メモリ領域Ｒ４に配置した補正値を読み出し(ステップ４０２)、先に読み出しを行った製品仕様制御用プログラムに加算する(ステップ４０３)。その補正結果に対して、一方向関数（ハッシュ関数など）を使用して外部メモリのプログラムに対する証明書（ハッシュ値など）を算出する（ステップ４０４）。次に外部メモリ１０２のメモリ領域Ｒ１１に配置された証明書を読み出し（ステップ４０５）、先に算出した証明書の値と比較し、比較結果が一致した場合（ステップ４０６でＹＥＳ）は外部メモリ１０２のプログラムは改竄されていないと判断する。比較結果が不一致の場合（ステップ４０６でＮＯ）は、外部メモリ１０２のプログラムは改竄されていると判断し、以降のプログラム実行を停止する。以上の方法により、外部メモリに配置した製品仕様制御プログラムの改竄による機器組込みマイコンの内蔵メモリに配置した著作権保護制御プログラムの読み出しを防ぐことができ、更には製品仕様制御プログラムの増加に対応することができるようになる。
【産業上の利用可能性】
【００１６】
本発明のマイコンシステムは、増大する製品仕様制御プログラムに対応するとともに、外部メモリのプログラム改竄によるマイコン内蔵メモリのプログラム漏洩を防止することができ、プログラム改竄を防止するロバスト性の高いシステムを構築することができるという効果を有し、プログラム改竄防止を行う機器組み込みマイコンシステム等に有用である。例として、ＩＥＥＥ１３９４、ＭＯＳＴといった情報系ＬＡＮ規格により接続されたシステムでは、ＤＴＣＰ規格に従ったデジタルコンテンツ送受信を行うが、その際の著作権保護規格であるＤＴＣＰ制御及び製品仕様制御は機器組込みマイコンにより実施される場合が多く、本発明適用の可能性があるといえる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施の形態に係るマイコンシステムを示すブロック図。
【図２】本発明の一実施の形態に係るマイコンシステムにおけるマイコン内蔵メモリ及び外部メモリのプログラム配置を示す図。
【図３】本発明の一実施の形態に係るマイコンシステムにおける外部メモリのプログラム改竄判定プログラムのフローチャート。
【図４】本発明の一実施の形態に係るマイコンシステムにおける外部メモリのプログラム改竄の判定方法を示すフローチャート。
【図５】従来のシステム構成を示すブロック図。
【図６】従来の機器組込みマイコンにおけるマイコン内蔵メモリと外部メモリ内のプログラムを実行する際のプログラムカウンタの遷移を示す図。
【符号の説明】
【００１８】
１００  機器組込みマイコン
１０１  マイコン内蔵メモリ
１０２  外部メモリ
４０１〜４０６  プログラム改竄判定方法のステップ
Ｒ１  プログラム改竄判定プログラムを配置するメモリ領域
Ｒ２  無限ループなどのプログラムを配置するメモリ領域
Ｒ３  著作権保護制御用プログラムを配置するメモリ領域
Ｒ４  プログラム改竄判定時に用いる補正値を配置するメモリ領域
Ｒ１０  製品仕様制御プログラムを配置するメモリ領域
Ｒ１１  製品仕様制御プログラムに対する証明書を配置するメモリ領域
【図１】
2007156904.tif 000003
【図２】
2007156904.tif 000004
【図３】
2007156904.tif 000005
【図４】
2007156904.tif 000006
【図５】
2007156904.tif 000007
【図６】
2007156904.tif 000008