(57)【要約】【課題】  暗号鍵および復号鍵の機密が保持しやすく、かつセキュリティレベルの高いマイクロコンピュータを提供する。【解決手段】  マイクロコンピュータ１は、公開鍵暗号方式の公開鍵と対になる秘密鍵を格納する秘密鍵格納部１１と、入力されたデータを秘密鍵格納部１１から読み出した秘密鍵を用いて復号する復号部１２と、復号部１２により復号されたデータを格納する不揮発性メモリ１３とを有する。【選択図】  図１
2008003774.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵暗号方式の公開鍵と対になる秘密鍵を格納する秘密鍵格納手段と、
入力されたデータを前記秘密鍵格納手段から読み出した前記秘密鍵を用いて復号する復号手段と、
前記復号手段により復号されたデータを格納する不揮発性記憶手段と
を有することを特徴とするマイクロコンピュータ。
【請求項２】
前記復号手段へ入力されるデータが前記公開鍵により暗号化されたソフトウェアであることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
公開鍵暗号方式の公開鍵を格納する公開鍵格納手段と、
前記公開鍵と対になる秘密鍵を格納する秘密鍵格納手段と、
入力されたデータを前記秘密鍵格納手段から読み出した前記秘密鍵を用いて復号する復号手段と、
前記復号手段により復号されたデータを格納する不揮発性記憶手段と、
前記不揮発性記憶手段に格納された前記復号手段により復号されたデータを前記公開鍵格納手段から読み出した前記公開鍵を用いて暗号化する暗号化手段と
を有することを特徴とするマイクロコンピュータ。
【請求項４】
前記復号手段へ入力されるデータが前記公開鍵により暗号化されたソフトウェアであることを特徴とする請求項３に記載のマイクロコンピュータ。
【請求項５】
前記復号手段へ入力されるデータと前記暗号化手段から出力されるデータとを比較することにより前記不揮発性記憶手段に正しくデータが書き込まれていることを検証することが可能であることを特徴とする請求項３に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関し、特に暗号化されたソフトウェアが書き込まれるマイクロコンピュータに関する。
【背景技術】
【０００２】
内蔵の書き換え可能な不揮発性記憶手段にソフトウェアを格納するマイクロコンピュータでは、マイクロコンピュータに対するソフトウェアの書き込みがＥＰＲＯＭライターなどの書き込み装置を用いて行なわれる。
【０００３】
このソフトウェアの書き込みを第三者に委託する場合もあり、書き込み時のソフトウェアの不正読み出しを防止するため、ソフトウェアを暗号化した上でマイクロコンピュータへ書き込むことが行なわれる（例えば、特許文献１参照。）。
【０００４】
このようなソフトウェアの暗号化を行う場合、暗号鍵を用いて暗号化することが行なわれる。そこで、マイクロコンピュータには、その暗号鍵に対応する復号鍵および復号手段を備え、暗号化されて入力されたソフトウェアをマイクロコンピュータ内部で復号することが行なわれる。
【０００５】
ソフトウェアを暗号化することにより、不正読み出しに対するソフトウェアのセキュリティは向上するが、そのセキュリティを保つためには、暗号鍵および復号鍵の機密を保持することが重要である。特に、汎用的なマイクロコンピュータは多くのユーザに使用されるため、暗号鍵および復号鍵の機密が保持しやすく、かつセキュリティレベルが高いことが望まれる。
【特許文献１】特開平８−１８５３６１号公報  （第３ページ、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
そこで、本発明の目的は、暗号鍵および復号鍵の機密が保持しやすく、かつセキュリティレベルの高いマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００７】
本発明の一態様によれば、公開鍵暗号方式の公開鍵と対になる秘密鍵を格納する秘密鍵格納手段と、入力されたデータを前記秘密鍵格納手段から読み出した前記秘密鍵を用いて復号する復号手段と、前記復号手段により復号されたデータを格納する不揮発性記憶手段とを有することを特徴とするマイクロコンピュータが提供される。
【０００８】
また、本発明の別の一態様によれば、公開鍵暗号方式の公開鍵を格納する公開鍵格納手段と、前記公開鍵と対になる秘密鍵を格納する秘密鍵格納手段と、入力されたデータを前記秘密鍵格納手段から読み出した前記秘密鍵を用いて復号する復号手段と、前記復号手段により復号されたデータを格納する不揮発性記憶手段と、前記不揮発性記憶手段に格納された前記復号手段により復号されたデータを前記公開鍵格納手段から読み出した前記公開鍵を用いて暗号化する暗号化手段とを有することを特徴とするマイクロコンピュータが提供される。
【発明の効果】
【０００９】
本発明によれば、ソフトウェアを暗号化してマイクロコンピュータに書き込むので、マイクロコンピュータへの書き込み時にソフトウェアが不正に読み出されることを防止することができる。このとき、公開鍵を暗号鍵として使用するので、マイクロコンピュータの使用者は暗号鍵の保管に煩わされることがない。また、暗号化されたソフトウェアに対する復号鍵を秘密鍵としてマイクロコンピュータの内部に格納するので、暗号化されたソフトウェアの復号が困難であり、ソフトウェアの不正なコピーなどによる知的財産権の侵害を防止することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施例を図面を参照して説明する。
【実施例１】
【００１１】
図１は、本発明の実施例１に係るマイクロコンピュータの構成の例を示すブロック図である。
【００１２】
本実施例のマイクロコンピュータ１は、公開鍵暗号方式の公開鍵と対になる秘密鍵を格納する秘密鍵格納部１１と、入力されたデータを秘密鍵格納部１１から読み出した秘密鍵を用いて復号する復号部１２と、復号部１２により復号されたデータを格納する不揮発性メモリ１３と、復号動作制御用の制御プログラムを格納するブートＲＯＭ１４とを有する。
【００１３】
また、マイクロコンピュータ１は、外部とのデータのインターフェースを行うＩ／Ｆ（インターフェース）部６１と、制御プログラムにもとづいて復号動作を制御するＣＰＵ６２と、Ｉ／Ｆ部６１を介して外部から入力されたデータを一時的に記憶するＲＡＭ６３と、各ブロックが接続され、ブロック間相互でデータが伝送される内部バス６４とを有する。
【００１４】
このマイクロコンピュータ１へソフトウェアを書き込むときは、ＰＣ（パーソナルコンピュータ）１００で公開鍵を用いて暗号化した上で書き込み装置２００によりＩ／Ｆ部６１へ入力する。
【００１５】
ここで、公開鍵は、例えば、マイクロコンピュータ１を製造した半導体製造メーカにより作成され、マイクロコンピュータ１の使用者に公開されているものである。一方、この公開鍵で暗号化されたデータを復号するための復号鍵は、秘密鍵として、マイクロコンピュータ１の製造時に秘密鍵格納部１１に格納されている。また、暗号化プログラムも半導体製造メーカにより提供され、これに対する復号回路が復号部１２に搭載されている。
【００１６】
次に、本実施例のマイクロコンピュータ１へのソフトウェアの書き込み動作について説明する。
【００１７】
ソフトウェアの書き込みを行う場合、まず、ＰＣ１００上で、公開鍵および暗号プログラムを用いてソフトウェアを暗号化する。次に、暗号化されたソフトウェアを書き込み装置２００へ送信する。書き込み装置２００は、受信した暗号化されたソフトウェアをマイクロコンピュータ１のＩ／Ｆ部６１へ入力する。
【００１８】
このとき、マイクロコンピュータ１は、ＣＰＵ６２が、ブートＲＯＭ１４から制御プログラムを読み出し、暗号化されたソフトウェアの復号処理を開始する。
【００１９】
書き込み装置２００から暗号化されたソフトウェアがＩ／Ｆ部６１へ入力されると、制御プログラムの制御により、マイクロコンピュータ１は、暗号化されたソフトウェアを内部バス６４を介してＲＡＭ６３へ送り、ＲＡＭ６３に一時記憶する。
【００２０】
続いて、制御プログラムの制御により、復号部１２が、ＲＡＭ６３から暗号化されたソフトウェアを読み出し、秘密鍵格納部１１から読み出した秘密鍵を用いて復号する。
【００２１】
復号が終了すると、制御プログラムの制御により、復号されたソフトウェアは、内部バス６４を介して不揮発性メモリ１３へ送られ、不揮発性メモリ１３に書き込まれる。
【００２２】
上述の一連の動作により、暗号化されて入力されたソフトウェアは、復号されて不揮発性メモリ１３に格納される。
【００２３】
このような本実施例によれば、ソフトウェアは暗号化されてマイクロコンピュータに書き込まれるので、マイクロコンピュータへの書き込み時にソフトウェアが不正に読み出されることを防止することができる。このとき、公開鍵が暗号鍵として使用されるので、マイクロコンピュータの使用者は暗号鍵を保管する必要がない。また、復号用の秘密鍵をハードウェアとしてマイクロコンピュータの内部に格納するので、秘密鍵の解析が困難である。そのため、暗号化されたソフトウェアの復号が困難であり、ソフトウェアの不正なコピーなどによる知的財産権の侵害を防止することができる。
【実施例２】
【００２４】
図２は、本発明の実施例２に係るマイクロコンピュータの構成の例を示すブロック図である。
【００２５】
本実施例のマイクロコンピュータ２が実施例１のマイクロコンピュータ１と異なる点は、ハードウェアとしての秘密鍵格納部１１と復号部１２とを有さないことである。その代わり、ソフトウェアとしての秘密鍵と復号プログラムをブートＲＯＭ２４に格納している。
【００２６】
また、ブートＲＯＭ２４には、復号動作制御用の制御プログラムが格納されており、この制御プログラムが、秘密鍵や復号プログラムの読み出しの制御、および一連の復号動作の制御を行う。なお、図２において、図１に示した機能ブロックと同一の機能を有するブロックには図１と同一の符号を付し、ここではその詳細な説明を省略する。
【００２７】
本実施例においても、公開鍵は、例えば、マイクロコンピュータ２を製造した半導体製造メーカにより作成され、マイクロコンピュータ２の使用者に公開されているものである。また、この公開鍵で暗号化されたデータを復号するための復号鍵が、秘密鍵として、マイクロコンピュータ２の製造時にブートＲＯＭ２４に格納される。同じく、暗号化プログラムもマイクロコンピュータ２の製造時にブートＲＯＭ２４に格納される。
【００２８】
次に、本実施例のマイクロコンピュータ２へのソフトウェアの書き込み動作について説明する。
【００２９】
本実施例においても、ソフトウェアの書き込みを行う場合、まず、ＰＣ１００上で、公開鍵および暗号プログラムを用いてソフトウェアを暗号化する。次に、暗号化されたソフトウェアを書き込み装置２００へ送信する。書き込み装置２００は、受信した暗号化されたソフトウェアをマイクロコンピュータ２のＩ／Ｆ部６１へ入力する。
【００３０】
このとき、マイクロコンピュータ２は、ＣＰＵ５１が、ブートＲＯＭ２４から制御プログラムを読み出し、暗号化されたソフトウェアの復号処理を開始する。
【００３１】
書き込み装置２００から暗号化されたソフトウェアがＩ／Ｆ部６１へ入力されると、制御プログラムの制御により、マイクロコンピュータ２は、暗号化されたソフトウェアを内部バス６４を介してＲＡＭ６３へ送り、ＲＡＭ６３に一時記憶する。
【００３２】
続いて、制御プログラムの制御により、ブートＲＯＭ２４から復号プログラムおよび秘密鍵が読み出される。復号プログラムは、ＲＡＭ６３から暗号化されたソフトウェアを読み出し、ブートＲＯＭ２４からから読み出された秘密鍵を用いて復号する。
【００３３】
復号が終了すると、制御プログラムの制御により、復号されたソフトウェアは、内部バス６４を介して不揮発性メモリ１３へ送られ、不揮発性メモリ１３に書き込まれる。
【００３４】
上述の一連の動作により、暗号化されて入力されたソフトウェアは、復号されて不揮発性メモリ１３に格納される。
【００３５】
このような本実施例によれば、秘密鍵および復号プログラムをソフトウェアとして内蔵することにより、ハードウェアとしての秘密鍵格納部および復号部を有さないマイクロコンピュータであっても、公開鍵で暗号化されたソフトウェアの書き込みに対処することができる。
【実施例３】
【００３６】
図３は、本発明の実施例３に係るマイクロコンピュータの構成の例を示すブロック図である。
【００３７】
本実施例のマイクロコンピュータ３は、復号動作が制御プログラムにより制御されていた実施例１のマイクロコンピュータ１とは異なり、復号動作が、連続して自動的に実行される。
【００３８】
そのために、本実施例のマイクロコンピュータ３は、復号処理専用のＩ／Ｆ部３１と、Ｉ／Ｆ部３１に直結された復号部３２と、復号部３２から出力された復号結果を不揮発性メモリ１３へ書き込む書き込み制御部３３とを有する。
【００３９】
なお、図３において、図１に示した機能ブロックと同一の機能を有するブロックには図１と同一の符号を付し、ここではその詳細な説明を省略する。
【００４０】
本実施例における暗号化されたソフトウェアの書き込みにおいては、書き込み装置２００からＩ／Ｆ部３１へ暗号化されたソフトウェアが入力されると、暗号化されたソフトウェアは、直ちに復号部３２へ送られる。復号部３２は、秘密鍵格納部１１から読み出した秘密鍵を用いて暗号化されたソフトウェアを復号する。復号されたソフトウェアは、書き込み制御部３３へ送られ、書き込み制御部３３により不揮発性メモリ１３に書き込まれる。
【００４１】
このような本実施例によれば、復号処理が総て専用回路で実行されるので実行速度が速く、復号処理に要する時間を短くすることができる。
【実施例４】
【００４２】
マイクロコンピュータへデータの書き込みを行ったときに、その書き込みが正しく行われたかどうかの検証を行ないたい場合がある。そのため、一般に、書き込み装置２００は、書き込み検証機能を備えている。書き込み装置２００における書き込み検証は、マイクロコンピュータへ一旦書き込んだデータをマイクロコンピュータから読み返し、そのデータが元の入力データと一致するかどうかを比較することにより行なわれる。
【００４３】
そこで、本実施例のマイクロコンピュータは、このような書き込み装置２００の書き込み検証機能を利用して、暗号化されたソフトウェアの書き込みが正しく行われたかどうかの検証を可能とするものである。
【００４４】
図４は、本発明の実施例４に係るマイクロコンピュータの構成の例を示すブロック図である。
【００４５】
本実施例のマイクロコンピュータ４は、実施例３のマイクロコンピュータ３に、さらに、読み出し制御部４２と、暗号化部４３と、公開鍵格納部４４とを追加したものである。また、書き込み装置２００とのデータのインターフェースを双方向に行なうＩ／Ｆ部４１を備える。
【００４６】
なお、図４において、図３に示した機能ブロックと同一の機能を有するブロックには図３と同一の符号を付し、ここではその詳細な説明を省略する。
【００４７】
読み出し制御部４２は、書き込み装置２００から書き込み検証の要求があったときに、不揮発性メモリ１３に格納されている復号されたソフトウェアを読み出し、暗号化部４３へ送る。
【００４８】
暗号化部４３は、ＰＣ１００における暗号化にて使用される暗号化アルゴリズムと同じ暗号化アルゴリズムを用いて暗号化を実行する。
【００４９】
公開鍵格納部４４には、ＰＣ１００における暗号化にて使用される公開鍵と同じ公開鍵が格納されている。
【００５０】
本実施例における、Ｉ／Ｆ部４１への暗号化されたソフトウェアの入力から不揮発性メモリ１３への復号されたソフトウェアの書き込みに至る一連の復号動作は、実施例３と同じであるので、ここではその説明を省略する。
【００５１】
本実施例のマイクロコンピュータ４に対して書き込み装置２００から書き込み検証の要求があった場合、不揮発性メモリ１３へ格納された復号されたソフトウェアは、読み出し制御部４２により不揮発性メモリ１３から読み出され、暗号化部４３へ送られる。
【００５２】
暗号化部４３は、送られてきた復号されたソフトウェアに対して、公開鍵格納部４４から読み出した公開鍵を用いて暗号化する。
【００５３】
暗号化されたソフトウェアは、Ｉ／Ｆ部４１を介して書き込み装置２００へ出力される。このとき、書き込み装置２００による書き込みが正常に行なわれていれば、Ｉ／Ｆ部４１から出力される暗号化されたソフトウェアは、マイクロコンピュータ４へ入力した元の暗号化されたソフトウェアと同一のはずである。
【００５４】
そこで、書き込み装置２００の書き込み検証機能を利用して、両者の比較を行なえば、マイクロコンピュータ４に対して暗号化されたソフトウェアの書き込みが正しく行われたかどうかを検証することができる。
【００５５】
このような本実施例によれば、不揮発性メモリに格納されている復号されたソフトウェアを再度暗号化して出力することができるので、マイクロコンピュータに対するソフトウェアの書き込みが正しく行なわれたかどうかの検証を行うことができる。
【実施例５】
【００５６】
図５は、本発明の実施例５に係るマイクロコンピュータの構成の例を示すブロック図である。本実施例のマイクロコンピュータ５は、基本的に図２に示した実施例２のマイクロコンピュータ２と同じ構成を有する。そこで、図５において、図２に示した機能ブロックと同一の機能を有するブロックには図２と同一の符号を付し、ここではその詳細な説明を省略する。
【００５７】
本実施例のマイクロコンピュータ５が実施例２のマイクロコンピュータ２と異なる点は、書き込み装置２００とのインターフェースが双方向に行なえるＩ／Ｆ部５１を有する点と、ブートＲＯＭ５４が、制御プログラム、復号プログラム、秘密鍵のほかに、暗号化プログラムと公開鍵を格納する点である。
【００５８】
この暗号化プログラムと公開鍵を用いて、本実施例のマイクロコンピュータ５も実施例４のマイクロコンピュータ４と同様、不揮発性メモリ１３に格納されている復号化されたソフトウェアに対して再度暗号化を実行し、Ｉ／Ｆ部５１を介して書き込み装置２００へ出力することができる。
【００５９】
すなわち、本実施例のマイクロコンピュータ５に対して書き込み装置２００から書き込み検証の要求があった場合、ＣＰＵ６２がブートＲＯＭ５４に格納されている制御プログラムを読み出し、復号されたソフトウェアの暗号化処理を開始する。
【００６０】
暗号化が開始されると、制御プログラムの制御により、マイクロコンピュータ１は、復号されたソフトウェアを不揮発性メモリ１３から読み出し、内部バス６４を介してＲＡＭ６３へ送り、ＲＡＭ６３に一時記憶する。
【００６１】
続いて、制御プログラムの制御により、ブートＲＯＭ５４から暗号化プログラムおよび公開鍵が読み出される。暗号化プログラムは、ＲＡＭ６３から復号されたソフトウェアを読み出し、ブートＲＯＭ５４からから読み出された公開鍵を用いて暗号化する。
【００６２】
暗号化が終了すると、制御プログラムの制御により、暗号化されたソフトウェアは、内部バス６４を介してＩ／Ｆ部５１へ送られ、書き込み装置２００へ出力される。
【００６３】
これにより、本実施例のマイクロコンピュータ５においても、実施例４と同様、書き込み装置２００の書き込み検証機能を利用して、マイクロコンピュータ５に対して暗号化されたソフトウェアの書き込みが正しく行われたかどうかを検証することができる。
【００６４】
このような本実施例によれば、秘密鍵および復号プログラムのほかに公開鍵および暗号化プログラムをソフトウェアとして内蔵することにより、ハードウェアとしての秘密鍵格納部、復号部、公開鍵格納部および暗号化部を有さないマイクロコンピュータであっても、公開鍵で暗号化されたソフトウェアの書き込みを行うことができるとともに、書き込んだソフトウェアを暗号化されたソフトウェアとして出力することができる。
【００６５】
また、公開鍵、暗号化プログラム、秘密鍵および復号プログラムをソフトウェアとして内蔵するので、マイクロコンピュータを製造した半導体製造メーカは、公開鍵および秘密鍵の変更、あるいは暗号化アルゴリズムの変更を随時行うことができる。これにより、マイクロコンピュータのセキュリティをより高めることが可能である。
【実施例６】
【００６６】
図６は、本発明の実施例６に係るマイクロコンピュータの構成の例を示すブロック図である。
【００６７】
本実施例のマイクロコンピュータ６も、実施例５のマイクロコンピュータ５と同様、不揮発性メモリ１３に格納されている復号化されたソフトウェアに対して再度暗号化を実行し、Ｉ／Ｆ部５１を介して書き込み装置２００へ出力する。
【００６８】
本実施例のマイクロコンピュータ６が実施例５のマイクロコンピュータ５と異なる点は、復号化および暗号化をハードウェアで実行する点である。そのために、本実施例のマイクロコンピュータ６は、秘密鍵格納部１１と、復号部１２と、公開鍵格納部４４と、暗号化部７３とを有する。また、ブートＲＯＭ５４の代わりに、ブートＲＯＭ７４を有する。
【００６９】
秘密鍵格納部１１と復号部１２は、図１に示した同一符号のブロックと同じ機能を有するものであり、公開鍵格納部４４は、図４に示した同一符号のブロックと同じ機能を有するものであるので、ここではその説明を省略する。
【００７０】
ブートＲＯＭ７４は、復号動作制御用の制御プログラムおよび暗号化動作制御用の制御プログラムを格納する。
【００７１】
本実施例の暗号化部７３は、内部バス６４と双方向のデータの伝送を行う点が実施例４の暗号化部４３と異なるが、機能的には暗号化部４３と同様、ＰＣ１００における暗号化にて使用される暗号化アルゴリズムと同じ暗号化アルゴリズムを用いて暗号化を実行する。
【００７２】
本実施例においても、不揮発性メモリ１３に格納されている復号化されたソフトウェアに対して、暗号化部７３により再度暗号化を実行し、Ｉ／Ｆ部５１を介して書き込み装置２００へ出力することができる。
【００７３】
これにより、本実施例のマイクロコンピュータ６においても、実施例５と同様、書き込み装置２００の書き込み検証機能を利用して、マイクロコンピュータ６に対して暗号化されたソフトウェアの書き込みが正しく行われたかどうかを検証することができる。
【００７４】
このような本実施例によれば、復号化および暗号化をハードウェアで実行することにより、書き込み装置による書き込み検証を高速に実行することができる。
【図面の簡単な説明】
【００７５】
【図１】本発明の実施例１に係るマイクロコンピュータの構成の例を示すブロック図。
【図２】本発明の実施例２に係るマイクロコンピュータの構成の例を示すブロック図。
【図３】本発明の実施例３に係るマイクロコンピュータの構成の例を示すブロック図。
【図４】本発明の実施例４に係るマイクロコンピュータの構成の例を示すブロック図。
【図５】本発明の実施例５に係るマイクロコンピュータの構成の例を示すブロック図。
【図６】本発明の実施例６に係るマイクロコンピュータの構成の例を示すブロック図。
【符号の説明】
【００７６】
１〜６  マイクロコンピュータ
１１  秘密鍵格納部
１２、３２  復号部
１３  不揮発性メモリ
１４、２４、５４、７４  ブートＲＯＭ
３１、４１、５１、６１  Ｉ／Ｆ部
３３  書き込み制御部
４２  読み出し制御部
４３、７３  暗号化部
４４  公開鍵格納部
６２  ＣＰＵ
６３  ＲＡＭ
６４  内部バス
【図１】
2008003774.tif 000003
【図２】
2008003774.tif 000004
【図３】
2008003774.tif 000005
【図４】
2008003774.tif 000006
【図５】
2008003774.tif 000007
【図６】
2008003774.tif 000008