(57)【要約】【課題】  キーワードを使用しなくてもフラッシュメモリへの不正な書き込みを防止できるマイクロコンピュータおよびそのセキュリティ制御方法を提供する。【解決手段】  マイクロコンピュータ１０は、フラッシュメモリ１に対してＣＰＵ２が読み出し禁止モードを設定していないときにＥＣＣ生成部３で生成される入力データの誤り訂正符号を基準誤り訂正符号としてＥＣＣ保存部５に保管しておき、ＣＰＵ２が読み出し禁止モードを設定しているときにフラッシュメモリ１へデータ書き込み要求があったときは、ＥＣＣ生成部３でそのデータの誤り訂正符号を生成し、ＥＣＣ照合部６によりＥＣＣ保存部５に保管されている基準誤り訂正符号と照合し、その両者に不一致が検出されたときは、書き込み制御部７によりフラッシュメモリ１へのデータの書き込みを禁止する。【選択図】  図１
2007188138.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能なメモリと、
前記メモリに対して読み出し禁止モードを設定するＣＰＵと、
前記メモリへ書き込もうとするデータに対する誤り訂正符号を生成するＥＣＣ生成手段と、
前記読み出し禁止モードが設定されていないときに前記ＥＣＣ生成手段で生成された誤り訂正符号を基準誤り訂正符号として保存するＥＣＣ保存手段と、
前記読み出し禁止モードが設定されているときに前記ＥＣＣ生成手段で生成される誤り訂正符号を前記ＥＣＣ保存手段に保存されている前記基準誤り訂正符号と照合するＥＣＣ照合手段と、
前記ＥＣＣ照合手段による照合で不一致が検出されたときは前記メモリへのデータの書き込みを禁止する書き込み制御手段と
を有することを特徴とするマイクロコンピュータ。
【請求項２】
前記メモリの記憶領域が複数のメモリブロックに分割されており、前記メモリへ書き込まれるデータが前記メモリブロック単位で分割されるときは、前記ＥＣＣ生成手段が、前記メモリブロック単位で分割されるデータごとに誤り訂正符号を生成することを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記ＥＣＣ照合手段は、前記分割されたデータごとに生成される誤り訂正符号ごとに照合を行うことを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
マイクロコンピュータに内蔵される書き換え可能なメモリへのデータ書き込み時に、
前記メモリが読み出し禁止モードに設定されていないときは、前記メモリへ書き込まれるデータの誤り訂正符号を生成して基準誤り訂正符号として保存しておき、
前記データの書き込みが終了して前記メモリが読み出し禁止モードに設定されているときは、前記メモリへ書き込まれようとしているデータの誤り訂正符号を生成して、保存しておいた前記基準誤り訂正符号と照合し、
前記照合により不一致が検出されたときは、前記書き込まれようとしているデータの前記メモリへの書き込みを禁止することを特徴とするマイクロコンピュータのセキュリティ制御方法。
【請求項５】
前記メモリの記憶領域が複数のメモリブロックに分割されているときは、前記誤り訂正符号の生成および照合を前記メモリブロック単位で分割されるデータごとに行なうことを特徴とする請求項４に記載のマイクロコンピュータのセキュリティ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータおよびそのセキュリティ制御方法に関する。
【背景技術】
【０００２】
プログラム実行用のオブジェクトコードを内蔵のメモリに記憶するマイクロコンピュータにおいて、内蔵のメモリとして記憶領域が複数のメモリブロックに分割されているフラッシュメモリを用い、オブジェクトコードをフラッシュメモリのメモリブロック単位に分割して記憶するマイクロコンピュータがある。
【０００３】
このようなマイクロコンピュータを使用した製品を開発するユーザは、オブジェクトコード書き込み後、フラッシュメモリを読み出し禁止モードに設定して製品を出荷する。
【０００４】
しかし、オブジェクトコード書き込み後、プログラムのバグの修正などのためにオブジェクトコードの書き換えが必要になることがある。このとき、修正量が少ない場合、フラッシュメモリの一部のメモリブロックのみ書き換えれば済む場合がある。そこで、このような書き換えを可能とするために、フラッシュメモリのメモリブロックがブランクであれば書き換えることができるモードが用意されている。
【０００５】
ところが、このようなフラッシュメモリのブランク状態のメモリブロックが書き換え可能であることが悪用されて、このメモリブロックにリードプログラムが書き込まれると、読み出し禁止モードが設定されているにもかかわらず、オブジェクトコードの外部への不正な読み出しが可能となる。
【０００６】
そこで、このような不正を防止するために、予め設定したキーワードを入力しないとフラッシュメモリへの書き込みが許可されないようなセキュリティ制御方法を用いるマイクロコンピュータが提案されている（例えば、特許文献１参照。）。
【０００７】
しかし、このようなキーワードを使用する方法では、キーワードの生成および管理をユーザが行なわなければならず、ユーザにとっては、マイクロコンピュータのセキュリティ管理が煩わしいという問題があった。
【特許文献１】特開平１１−１２００８１号公報  （第２−３ページ、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
そこで、本発明の目的は、キーワードを使用しなくてもフラッシュメモリへの不正な書き込みを防止することのできるマイクロコンピュータおよびそのセキュリティ制御方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、書き換え可能なメモリと、前記メモリに対して読み出し禁止モードを設定するＣＰＵと、前記メモリへ書き込もうとするデータに対する誤り訂正符号を生成するＥＣＣ生成手段と、前記読み出し禁止モードが設定されていないときに前記ＥＣＣ生成手段で生成された誤り訂正符号を基準誤り訂正符号として保存するＥＣＣ保存手段と、前記読み出し禁止モードが設定されているときに前記ＥＣＣ生成手段で生成される誤り訂正符号を前記ＥＣＣ保存手段に保存されている前記基準誤り訂正符号と照合するＥＣＣ照合手段と、前記ＥＣＣ照合手段による照合で不一致が検出されたときは前記メモリへのデータの書き込みを禁止する書き込み制御手段とを有することを特徴とするマイクロコンピュータが提供される。
【００１０】
また、本発明の一態様によれば、マイクロコンピュータに内蔵される書き換え可能なメモリへのデータ書き込み時に、前記メモリが読み出し禁止モードに設定されていないときは、前記メモリへ書き込まれるデータの誤り訂正符号を生成して基準誤り訂正符号として保存しておき、前記データの書き込みが終了して前記メモリが読み出し禁止モードに設定されているときは、前記メモリへ書き込まれようとしているデータの誤り訂正符号を生成して、保存しておいた前記基準誤り訂正符号と照合し、前記照合により不一致が検出されたときは、前記書き込まれようとしているデータの前記メモリへの書き込みを禁止することを特徴とするマイクロコンピュータのセキュリティ制御方法が提供される。
【発明の効果】
【００１１】
本発明によれば、キーワード使用しなくてもマイクロコンピュータに内蔵されるフラッシュメモリへの不正な書き込みを防止することができるので、マイクロコンピュータのセキュリティ管理上のユーザの煩わしさを低減することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施例について図面を参照して説明する。
【実施例】
【００１３】
図１は、本発明の実施例に係るマイクロコンピュータの構成を示すブロック図である。
【００１４】
本実施例のマイクロコンピュータ１０は、書き換え可能なメモリであるフラッシュメモリ１と、フラッシュメモリ１を読み出し禁止モードに設定するための読み出し禁止モード設定信号を出力するＣＰＵ２と、フラッシュメモリ１へ書き込もうとするオブジェクトコードなどの入力データに対するＥＣＣ（Error  Correct  Code：誤り訂正符号）を生成するＥＣＣ生成部３と、読み出し禁止モード設定信号に基づいてＥＣＣ生成部３で生成されたＥＣＣの出力先を切り替える出力切り替え部４と、出力切り替え部４から出力されたＥＣＣを保存するＥＣＣ保存部５と、出力切り替え部４から出力されたＥＣＣをＥＣＣ保存部５に保存されているＥＣＣと照合するＥＣＣ照合部６と、フラッシュメモリ１への入力データの書き込みを制御する書き込み制御部７と、フラッシュメモリ１からのデータの読み出しを制御する読み出し制御部８と、を有する。
【００１５】
フラッシュメモリ１は、その記憶領域が複数のメモリブロックに分割されており、入力データは、このメモリブロック単位で分割されてフラッシュメモリ１に書き込まれる。フラッシュメモリ１へは、マイクロコンピュータ１０で実行されるプログラムのオブジェクトコードが、フラッシュライタやパーソナルコンピュータなどを用いてマイクロコンピュータ１０の外部から書き込まれる。
【００１６】
ＣＰＵ２は、フラッシュメモリ１を読み出し禁止モードに設定するための読み出し禁止モード設定信号を出力する。読み出し禁止モードは、フラッシュメモリ１へオブジェクトコードが書き込まれた後に、このオブジェクトコードがマイクロコンピュータ１０の外部へ読み出されるのを防止するために設定される。
【００１７】
本実施例のマイクロコンピュータ１０においては、例えば、フラッシュメモリ１へ最初にオブジェクトコードを書き込むときは読み出し禁止モードを設定せず、フラッシュメモリ１へのオブジェクトコードの書き込みが終わった後は読み出し禁止モードを設定するように、ＣＰＵ２が読み出し禁止モード設定信号を出力する。
【００１８】
ＥＣＣ生成部３は、入力データに対してハミング符号などのＥＣＣを生成する。本来、ＥＣＣは、入力されたデータに対する出力データの誤りを検出し、その誤りを訂正するために入力データに付加されるデータとして用いられるものである。
【００１９】
しかし、本実施例においては、異なる信号系列のデータに対しては異なるコードのＥＣＣが生成されることに着目して、２つのデータに対して生成されたＥＣＣを照合することにより２つのデータが同一であるかどうかを判定することを目的として、ＥＣＣを利用する。
【００２０】
ＥＣＣ生成部３は、フラッシュメモリ１のメモリブロック単位に分割されて入力されるデータに対しては、その分割されたデータごとにＥＣＣを生成する。
【００２１】
出力切り替え部４は、ＣＰＵ２から出力された読み出し禁止モード設定信号に基づいて、ＥＣＣ生成部３で生成されたＥＣＣの出力先を、ＥＣＣ保存部５とするか、ＥＣＣ照合部６とするか、を切り替える。
【００２２】
出力切り替え部４は、読み出し禁止モードが設定されていないときは、ＥＣＣ保存部５をＥＣＣ生成部３で生成されたＥＣＣの出力先とし、読み出し禁止モードが設定されているときは、ＥＣＣ照合部６をＥＣＣ生成部３で生成されたＥＣＣの出力先とする。
【００２３】
ＥＣＣ保存部５は、読み出し禁止モードが設定されていないときに出力切り替え部４から出力されるＥＣＣを保存する。読み出し禁止モードが設定されていないときに生成されるＥＣＣは、例えば、フラッシュメモリ１へオリジナルのオブジェクトコードが書き込まれるときに生成されるＥＣＣである。つまり、このＥＣＣは正当なデータに対するＥＣＣである。そこで、このＥＣＣを基準ＥＣＣ（基準誤り訂正符号）と称する。
【００２４】
フラッシュメモリ１のメモリブロック単位に分割されたデータごとにＥＣＣが生成されるときは、それぞれのＥＣＣが、その分割されたデータに対する基準ＥＣＣとなる。
【００２５】
図２に、フラッシュメモリ１のメモリブロックとＥＣＣ保存部５の保存される基準ＥＣＣとの関係を示す。
【００２６】
フラッシュメモリ１は、ブロック番号Ｍが０〜ＮのＮ＋１個のメモリブロックを有しており、それぞれのメモリブロックに分割データが書き込まれる。ＥＣＣ保存部５には、それぞれのメモリブロックに書き込まれる分割データに対するＥＣＣが、それぞれ基準ＥＣＣとして保存される。
【００２７】
図１に戻って、ＥＣＣ照合部６は、読み出し禁止モードが設定されているときに出力切り替え部４から出力されるＥＣＣをＥＣＣ保存部５に保存されている基準ＥＣＣと照合する。
【００２８】
読み出し禁止モードが設定されているときに生成されるＥＣＣは、読み出し禁止モードが設定されているときにフラッシュメモリ１へ書き込もうとしているデータに対するＥＣＣである。したがって、フラッシュメモリ１へ不正なデータを書き込もうとする場合にもこのＥＣＣが生成される。不正なデータを書き込もうとする場合に生成されるＥＣＣは、当然、基準ＥＣＣとは異なるコードを有する。
【００２９】
そこで、ＥＣＣ照合部６は、読み出し禁止モードが設定されているときに出力切り替え部４から出力されるＥＣＣをＥＣＣ保存部５に保存されている基準ＥＣＣと照合し、両者のコードが一致しないときは、不一致を検出したことを示す信号を出力する。
【００３０】
図３は、ＥＣＣ照合部６の動作を模式的に示した図である。
【００３１】
読み出し禁止モードが設定されているフラッシュメモリ１に対して、ブロック番号Ｍ＝ｍ〜ｎのメモリブロックに対する書き込み要求があり、それぞれのメモリブロックに対する書き込み要求データが入力されたとき、ＥＣＣ生成部３は、それぞれのデータに対するＥＣＣを生成する。ここでは、このＥＣＣをＥＣＣ’と表わす。
【００３２】
ＥＣＣ照合部６は、このＥＣＣ’に対して、書き込み要求されているメモリブロックの基準ＥＣＣをＥＣＣ保存部５から読み出し、メモリブロックごとにＥＣＣ’と基準ＥＣＣとを照合する。
【００３３】
この照合において、基準ＥＣＣと一致しないＥＣＣ’が１つでも検出されれば、ＥＣＣ照合部６は、不一致を検出したことを示す信号を出力する。
【００３４】
図１に戻って、書き込み制御部７は、読み出し禁止モードが設定されているときにフラッシュメモリ１に対する書き込み要求があっても、ＥＣＣ照合部６から基準ＥＣＣに一致しないＥＣＣを検出したことを示す信号が出力されたときは、フラッシュメモリ１に対するデータの書き込みを禁止する。
【００３５】
これにより、フラッシュメモリ１に対する不正なデータの書き込みを阻止することができる。
【００３６】
なお、読み出し制御部８は、読み出し禁止モードが設定されているとき、フラッシュメモリ１からマイクロコンピュータ１０の外部へのデータの読み出しを禁止する。
【００３７】
次に、本実施例のマイクロコンピュータ１０のセキュリティを制御する方法を図４〜５を用いて説明する。
【００３８】
図４は、本実施例のマイクロコンピュータ１０に内蔵されるフラッシュメモリ１が読み出し禁止モードに設定されていないときのフラッシュメモリ１に対する書き込み動作のフローを示すフロー図である。このフローの処理により、マイクロコンピュータ１０のセキュリティの要となる基準ＥＣＣが生成され、保存される。
【００３９】
読み出し禁止モードが設定されていないときにフラッシュメモリ１に対する書き込みを開始するときは、まず、フラッシュメモリ１のメモリブロック０から順次データを書き込むためにフラッシュメモリ１のブロック番号Ｍを０（Ｍ＝０）に設定する（ステップＳ０１）。
【００４０】
次に、ブロック番号Ｍのメモリブロックに書き込むデータに対するＥＣＣ（基準ＥＣＣ）をＥＣＣ生成部３で生成し（ステップＳ０２）、この基準ＥＣＣをＥＣＣ保存部５に保存する（ステップＳ０３）。
【００４１】
次に、基準ＥＣＣを生成したデータをフラッシュメモリ１のブロック番号Ｍのメモリブロックに書き込む（ステップＳ０４）。
【００４２】
ここで、ブロック番号Ｍが最大値Ｎに達しているかどうか（Ｍ＝Ｎ？）をチェックし（ステップＳ０５）、ブロック番号Ｍが最大値Ｎに達していなければ（ＮＯ）、ブロック番号Ｍを１つ増加（Ｍ＝Ｍ＋１）させて（ステップＳ０６）、ステップＳ０２に戻り、以降の処理を繰り返す。
【００４３】
ステップＳ０５におけるチェックでブロック番号Ｍが最大値Ｎに達していれば（ＹＥＳ）、ＣＰＵ２がフラッシュメモリ１に対する読み出し禁止モードを設定し（ステップＳ０７）、書き込み動作を終了する。
【００４４】
図４に示したフローの処理により、メモリブロックごとに分割されてフラッシュメモリ１に書き込まれるデータに対して、メモリブロックのデータごとにＥＣＣ生成部３により生成された基準ＥＣＣがＥＣＣ保存部５に保存される。
【００４５】
次に、図４に示したフローの処理によりデータの書き込みが終了して読み出し禁止モードが設定されているフラッシュメモリ１に対して、不正なデータの書き込みを行うために書き込み要求があったときの本実施例のマイクロコンピュータ１０の処理について説明する。
【００４６】
図５は、読み出し禁止モードが設定されているフラッシュメモリ１に対して、書き込み要求があったときの本実施例のマイクロコンピュータ１０の処理を示すフロー図である。図５では、フラッシュメモリ１の連続するブロック番号ｍ〜ｎ（ｍ≦ｎ）のメモリブロックに対して書き込み要求があった場合を例として示す。
【００４７】
読み出し禁止モードが設定されているフラッシュメモリ１のブロック番号ｍ〜ｎのメモリブロックに対して書き込み要求があったときは、まず、フラッシュメモリ１のブロック番号Ｍをｍ（Ｍ＝ｍ）に設定する（ステップＳ１１）。
【００４８】
次に、ブロック番号Ｍのメモリブロックへの書き込みを要求するデータに対するＥＣＣを生成し、これをＥＣＣ’とする（ステップＳ１２）。
【００４９】
このＥＣＣ’に対して、ＥＣＣ保存部５に保存されているブロック番号Ｍのメモリブロックに対する基準ＥＣＣを読み出し（ステップＳ１３）、ＥＣＣ照合部６にてＥＣＣ’が基準ＥＣＣと一致するかどうか（ＥＣＣ’＝基準ＥＣＣ？）を照合する（ステップＳ１４）。
【００５０】
この照合によりＥＣＣ’が基準ＥＣＣと不一致であることが検出されたとき（ＮＯ）は、書き込み制御部７によりフラッシュメモリ１への書き込みが禁止される。また、このフローによる処理は終了する。
【００５１】
一方、ＥＣＣ照合部６による照合でＥＣＣ’が基準ＥＣＣと一致していることが確認されたときは（ＹＥＳ）、現在のメモリブロックの番号Ｍがｎであるかどうか（Ｍ＝ｎ？）をチェックし（ステップＳ１５）、Ｍ≠ｎであれば（ＮＯ）、ブロック番号Ｍを１つ増加（Ｍ＝Ｍ＋１）させて（ステップＳ１６）、ステップＳ１２に戻る。
【００５２】
ステップＳ１２以降の処理により、次のブロック番号のメモリブロックへの書き込み要求データに対するＥＣＣ’と基準ＥＣＣとの照合が行なわれる。
【００５３】
この照合により、いずれかのデータに対するＥＣＣ’が基準ＥＣＣと不一致であることが検出されると、その時点で直ちにフラッシュメモリ１への書き込みが禁止される。
【００５４】
なお、ステップＳ１５のチェックにおいてＭ＝ｎであったときは（ＹＥＳ）、書き込み要求されたデータに対するＥＣＣ’が総て基準ＥＣＣと一致していたことを意味する。したがって、この場合、書き込み要求されたデータは、フラッシュメモリ１に記憶されているデータと同一とみなされるので、このデータをフラッシュメモリ１へ書き込んでもフラッシュメモリ１の記憶データに変化を生じない。そこで、この場合、書き込み制御部７は、フラッシュメモリ１への書き込みを許可する。
【００５５】
図５に示したフローの処理により、読み出し禁止モードが設定されているフラッシュメモリ１に対して不正なデータの書き込み要求があった場合、フラッシュメモリ１へのデータの書き込みが禁止され、マイクロコンピュータ１０のセキュリティが確保される。
【００５６】
このような本実施例によれば、不正なデータの書き込みを防止するために用いる正当なデータに対するＥＣＣ（基準ＥＣＣ）をマイクロコンピュータ内部で自動的に生成し保存しておくので、ユーザはセキュリティ用のキーワードの生成や管理などを行う必要がなく、マイクロコンピュータのセキュリティ管理上のユーザの煩わしさを低減することができる。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施例に係るマイクロコンピュータの構成を示すブロック図。
【図２】本発明の実施例に係るマイクロコンピュータに内蔵されるフラッシュメモリのメモリブロックと基準誤り訂正符号の関係を示す図。
【図３】本発明の実施例に係るマイクロコンピュータのＥＣＣ照合部の動作を説明するための図。
【図４】本発明の実施例に係るマイクロコンピュータに内蔵されるフラッシュメモリが読み出し禁止モードに設定されていないときの書き込み動作のフローを示すフロー図。
【図５】本発明の実施例に係るマイクロコンピュータに内蔵されるフラッシュメモリが読み出し禁止モードに設定されているときの書き込み要求に対する処理を示すフロー図。
【符号の説明】
【００５８】
１  フラッシュメモリ
２  ＣＰＵ
３  ＥＣＣ生成部
４  出力切り替え部
５  ＥＣＣ保存部
６  ＥＣＣ照合部
７  書き込み制御部
８  読み出し制御部
１０  マイクロコンピュータ
【図１】
2007188138.tif 000003
【図２】
2007188138.tif 000004
【図３】
2007188138.tif 000005
【図４】
2007188138.tif 000006
【図５】
2007188138.tif 000007