(57)【要約】【課題】  起動時に外部から受け取るプログラムを利用して通信を行う通信機器においてセキュリティの向上および起動時間の短縮を図る。【解決手段】  通信機器１の通信を司るファームウェア３１は、暗号化された状態でホスト機器２に供給される。通信機器１は、その起動時に、ホスト機器２から暗号化されたファームウェア３１を受け取る。暗号回路１６は、受信したファームウェア３１を復号して得られる平文のファームウェア３１をメモリ１２に格納する。ＣＰＵ１１がファームウェア３１を実行することで通信機能が提供される。暗号回路１６は、通信機器１が送受信するデータの暗号化／復号も行う。【選択図】      図１
2005354122.tif 000002
【特許請求の範囲】
【請求項１】
ホスト機器に格納されている暗号化された通信プログラムを復号するための鍵を保持する鍵保持手段と、
起動時に上記ホスト機器から上記暗号化された通信プログラムを取得する取得手段と、
上記鍵保持手段に保持されている鍵を用いて上記暗号化された通信プログラムを復号する暗号回路と、
上記暗号回路により復号された通信プログラムを実行するＣＰＵ、
を有する通信機器。
【請求項２】
上記暗号回路は、上記暗号化された通信プログラムを復号した後は、上記ホスト機器が作成した平文データを暗号化するため、または他の通信機器から受信した暗号化データを復号するために使用される
ことを特徴とする請求項１に記載の通信機器。
【請求項３】
上記鍵保持手段は、書換え可能な不揮発性メモリである
ことを特徴とする請求項１に記載の通信機器。
【請求項４】
チェック用コードが付加されたデータに対して所定の演算を実行してその実行結果を上記チェック用コードと比較することによりそのデータの正常性をチェックするデータチェック手段をさらに有し、
上記取得手段は、チェック用コードが付加された後に暗号化された通信プログラムを上記ホスト機器から取得し、
上記データチェック手段は、上記暗号回路により得られる通信プログラムに対して所定の演算を実行してその実行結果をその通信プログラムに付加されているチェック用コードと比較することによりその通信プログラムの正常性をチェックし、
上記ＣＰＵは、正常性が確認された場合に限り上記復号された通信プログラムを実行する
ことを特徴とする請求項１に記載の通信機器。
【請求項５】
ホスト機器に格納されている暗号化された暗号処理用プログラムを復号するための鍵を保持する鍵保持手段と、
起動時に上記ホスト機器から上記暗号化された暗号処理用プログラムを取得する取得手段と、
上記鍵保持手段に保持されている鍵を用いて上記暗号化された通信プログラムを復号する暗号回路と、
上記暗号回路により復号された暗号処理用プログラムを実行するＣＰＵ、
を有する暗号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、起動時に外部から受け取るプログラムを利用して動作する装置、特に、起動時にホスト機器から受け取るプログラムを利用して通信を行う通信機器及び暗号装置に関する。
【背景技術】
【０００２】
近年、多くの通信機器（特に、無線通信機器）は、ＣＰＵを備えており、その通信機器の動作を司るプログラムを実行することで通信機能を提供する。ここで、通信機器の動作を司るプログラムは、例えば、信号を送受信するための周波数の制御、送信電力の制御、複数の端末から送信される信号の衝突を回避するための調停制御などについて記述したものである。このため、もし、これらのプログラムが改変されると、例えば、認可されていない周波数や送信電力で信号が送受信されることとなり、他の通信チャネルに悪影響を及ぼし、通信システムの安定した運用に支障をきたすことがある。したがって、これらのプログラムは、容易に改変されないことが重要である。
【０００３】
他方、通信機器は、低コスト化および小型化を図るための方策として、機器内部に設けられていたプログラム格納用の不揮発性メモリを廃止する構成が実用化されている。この構成においては、通信機器の起動時にホスト機器から必要なプログラムを取得し、そのプログラムを利用して通信を開始する。
この場合、このプログラムは、例えば、ホスト機器のドライバソフトウェアにバイナリ形式で格納されている。したがって、ホスト機器のユーザは、このプログラムを取り出すことができる。そして、十分に高い技術を持った者であれば、逆アセンブル処理等をすることによって、内容の解析および改変が可能である。
【０００４】
この問題を解決しようとする技術としては、データ（上述の例では、通信を司るプログラム）を暗号化する手法が考えられる。例えば、特許文献１には、エージェントと呼ばれるソフトウェアに暗号化方式を組み込み、さらにこのエージェントをモーバイルコード（ネットワーク上を移動可能な言語体系）で実現し、暗号通信を行おうとする端末にこのエージェントを送り込む／受け取ることによって暗号通信を行う技術が記載されている。そして、このエージェント自体も暗号化された状態で送付され得る。
【特許文献１】特開平１０−２１５２４３号公報（図１、段落０００７、００１８〜００２１）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
通信機器の動作を司るプログラムは、上述したように、もし改変されると、他の通信チャネルに悪影響を及ぼすおそれがある。このため、このプログラムは、通信機器またはその通信機器に接続されるホスト機器のユーザであっても、改変を認めるべきでない。
しかし、特許文献１に記載の構成によれば、データ（プログラム等を含む）は、送信側装置においてを暗号化された後に受信側装置へ送信される。すなわち、送信側装置には、いったん、平文データが格納されることとなる。よって、送信側装置のユーザは、暗号化前のデータを取り出して改変することができる。
【０００６】
このように、通信機器またはその通信機器に接続されるホスト機器のユーザに対してもプログラムの改変を認めるべきでない場合には、既存の技術では、セキュリティレベルが十分とはいえなかった。
また、通信機器は、一般に、その起動時間が短いことが望ましい。ところが、セキュリティレベルを上げるためにホスト機器から通信端末へ渡されるプログラムが暗号化されていると、起動時に通信機器においてそれを復号するための時間が長くなってしまう。
【０００７】
本発明の目的は、起動時に外部から受け取るプログラムを利用して通信を行う通信機器におけるセキュリティを向上させることである。また、本発明の他の目的は、そのような通信機器においてセキュリティを高めながら起動時間の短縮を図ることである。
【課題を解決するための手段】
【０００８】
本発明の通信機器は、ホスト機器に格納されている暗号化された通信プログラムを復号するための鍵を保持する鍵保持手段と、起動時に上記ホスト機器から上記暗号化された通信プログラムを取得する取得手段と、上記鍵保持手段に保持されている鍵を用いて上記暗号化された通信プログラムを復号する暗号回路と、上記暗号回路により復号された通信プログラムを実行するＣＰＵ、を有する。
【０００９】
この発明においては、通信プログラムは、暗号化された状態でホスト機器に格納されており、暗号化されたまま通信機器に渡され、そこで復号されて使用される。したがって、ホスト機器から通信プログラムを取り出しても、それを解析または改変することは困難である。
上記通信機器において、上記暗号回路は、上記暗号化された通信プログラムを復号した後は、上記ホスト機器が作成した平文データを暗号化するため、または他の通信機器から受信した暗号化データを復号するために使用されるようにしてもよい。この構成においては、暗号回路は、通信機器の起動時に通信プログラムを復号する目的、および通信データを暗号化／復号化する目的の双方に共用される。
【００１０】
また、上記鍵保持手段は、書換え可能な不揮発性メモリであってもよい。この構成おいては、出荷先で使用されるべき通信プログラムに応じて鍵を設定できるので、セキュリティが向上する。
さらに、上記通信機器において、チェック用コードが付加されたデータに対して所定の演算を実行してその実行結果を上記チェック用コードと比較することによりそのデータの正常性をチェックするデータチェック手段をさらに有するようにしてもよい。この場合、上記取得手段は、チェック用コードが付加された後に暗号化された通信プログラムを上記ホスト機器から取得する。上記データチェック手段は、上記暗号回路により得られる通信プログラムに対して所定の演算を実行してその実行結果をその通信プログラムに付加されているチェック用コードと比較することによりその通信プログラムの正常性をチェックする。そして、上記ＣＰＵは、正常性が確認された場合に限り上記復号された通信プログラムを実行する。この構成においては、ホスト機器から取得した通信プログラムを不適切な鍵で復号すると、データチェック手段によるチェック結果において正常性が得られず、ＣＰＵにより実行されない。よって、セキュリティが向上する。
【００１１】
なお、本発明の技術思想は、上述の通信機器のみに適用されるものではなく、起動時に外部から暗号化された暗号処理用プログラムを取得し、それを復号して使用する暗号装置にも適用される。
【発明の効果】
【００１２】
本発明によれば、起動時に外部から受け取る通信プログラムを利用して通信を行う通信機器におけるセキュリティが向上する。また、通信データを暗号化／復号するための高速暗号回路を利用して、外部から受け取る暗号化された通信プログラムを復号するので、起動時に外部から受け取るプログラムを利用して通信を行う通信機器であっても、その起動時間が短い。
【発明を実施するための最良の形態】
【００１３】
図１は、本発明に係る通信機器（通信装置）に通信プログラムを設定する手順の概要を示す図である。ここで、通信機器１は、ホスト機器２に接続された状態で使用されるデバイスであって、ホスト機器２が作成したデータを他の通信機器等へ送信し、また、ホスト機器２宛てのデータを他の通信機器等から受信する。なお、通信機器１は、ホスト機器２が例えばパーソナルコンピュータであるものとすると、ＬＡＮカードあるいは無線通信用ボード等に相当する。
【００１４】
通信機器１は、ＣＰＵ１１、メモリ（ＲＡＭ）１２、ブートコードを格納するためのマスクＲＯＭ１３を備えるが、小型化／低コスト化を図るために、通信プログラムを格納するための不揮発性メモリは備えてない。よって、通信機器１は、その起動時にブートコードを実行することによりホスト機器２から通信プログラムをダウンロードするように構成されている。なお、通信プログラムは、特に限定されるものではないが、信号を送受信するための周波数の制御、送信電力の制御、複数の端末から送信される信号の衝突を回避するための調停制御などについて記述したプログラム（以下では、「ファームウェア」と呼ぶ。）である。
【００１５】
ファームウェア３１は、基本的に、通信機器１の製造者により作成される。このとき、ファームウェア３１は、所定の方式で暗号化される。暗号化方式は、特に限定されるものではないが、例えば、ＲＣ４アルゴリズムを用いる。また、暗号化のための鍵３２は、通信機器１の製造者の内部で管理し、社外（ホスト機器２の製造者やユーザを含む）には公開しないものとする。
【００１６】
暗号化されたファームウェア３１は、バイナリ形式でホスト機器２の製造者にライセンス供給される。そして、この暗号化されたファームウェア３１は、ドライバを含む制御プログラム２２と共にホスト機器２の不揮発性メモリ２１に格納される。なお、制御プログラム（少なくとも、ドライバ部分）２２は、通信機器１のマスクＲＯＭ１３に格納されるブートコードに対応するものであり、基本的に、通信機器１の製造者から供給されるものとする。
【００１７】
通信機器１は、ファームウェア３１を復号するための鍵１４を有している。鍵１４は、鍵３２に対応する復号鍵であり、マスクＲＯＭ１３に格納されてもよいし、Ｅ２ＰＲＯＭ１５に格納されてもよい。Ｅ２ＰＲＯＭ１５のような書換え可能な不揮発性メモリに格納する構成においては、例えば、通信機器１の出荷時にその出荷先に応じて（あるいは、出荷先で使用されるべきファームウェアに応じて）鍵１４を設定できるので、セキュリティレベルを向上させることができる。また、通信機器１は、暗号文を復号して平文を生成するための暗号回路１６を備えている。暗号回路１６は、復号処理を短時間で実行するためにハードウェア回路で構成されていることが望ましいが、ソフトウェアで実現されてもよい。
【００１８】
通信機器１の起動時には、まず、マスクＲＯＭ１３に格納されているブートコードが実行され、ホスト機器２に対してファームウェア３１の送信を要求する。このとき、マスクＲＯＭ１３またはＥ２ＰＲＯＭ１５に格納されている鍵１４が、暗号回路１６に設定される。なお、暗号回路１６は、ハードウェア回路により構成されているものとすると、例えば、設定された鍵１４に応じてその論理回路の動作の少なくとも一部が変更されるようにしてもよい。
【００１９】
ホスト機器２の制御プログラム２２は、上記要求を受け取ると、不揮発性メモリ２１から暗号化されているファームウェア３１を抽出して通信機器１に転送する。そうすると、通信機器１は、暗号回路１６を用いてそのファームウェア３１を復号することにより、平文のファームウェア３１を得る。そして、平文のファームウェア３１は、メモリ１２に格納される。この後、通信機器１の制御は、ファームウェア３１に移る。すなわち、通信機器１のＣＰＵ１１は、以降、メモリ１２に格納されたファームウェア３１を実行することにより、通信動作を提供する。
【００２０】
なお、特許請求の範囲に記載の「鍵保持手段」は、この例では、マスクＲＯＭ１３またはＥ２ＰＲＯＭ１５に相当する。また、「取得手段」は、マスクＲＯＭ１３に格納されているブートコードを実行することにより実現される。
このように、実施形態の通信機器１は、その起動時に、暗号化されているファームウェア３１をホスト機器２から受け取り、それを復号して使用する。ここで、このファームウェア３１は、暗号化された状態でホスト機器２に格納されているので、ホスト機器２のユーザであっても、そのファームウェア３１を解析または改変することはできない。また、通信機器１においては、平文状態に復号されたファームウェア３１は、メモリ１２に格納される。しかし、メモリ１２の記憶内容は、通信機器１の電源をオフすると消滅する。よって、通信機器１から平文状態のファームウェア３１を取り出すことは容易ではない。さらに、例えば、通信プログラムとしては暗号回路１６による復号結果のみがＣＰＵ１１により実行される構成とすれば、不正に作成されたプログラムが何らかの手段によりメモリ１２に書き込まれたとしても、その不正なプログラムに従って不適切な通信が行われることもない。
【００２１】
ところで、暗号化通信を行う通信機器は、しばしば、データを暗号化／復号化するための暗号回路を備えている。そして、この暗号回路は、ファームウェアが起動された後に使用される。このため、データを暗号化／復号化するための暗号回路は、基本的に、通信機器の起動時から通信が開始されるまでの期間は未使用状態である。
そこで、実施形態の通信機器１は、通信データを暗号化／復号化するための暗号回路を有する場合には、それを図１に示す暗号回路１６として利用する。すなわち、実施形態の通信機器１の暗号回路１６は、ホスト機器２から取得したファームウェア３１を復号する目的、及び通信データを暗号化／復号化する目的の双方に共用されるようにしてもよい。このような構成とすれば、ホスト機器２から取得したファームウェア３１を復号するための専用回路や専用プログラムルーチンを設ける必要がなく、通信機器の内部構成の簡便化が可能となり、機器の小型化や低コスト化に寄与する。また、データを暗号化／復号化するための暗号回路は、一般に、高速処理が可能なように例えばハードウェア回路で設計されているので、その暗号回路を利用して通信機器１の起動時にファームウェアを復号するように構成すれば、通信機器１の起動時間を短縮できる。
【００２２】
図２は、本発明に係る通信機器の構成を示す図である。なお、図１および図２において共通して使用する符合は、同じものを示している。ただし、図２では、暗号化された状態のファームウェアを「暗号化ファームウェア３１ａ」と記載し、平文状態のファームウェアを「平文ファームウェア３１ｂ」と記載している。以下では、図１においては記載していない構成について説明する。
【００２３】
暗号回路１６は、制御レジスタ１７および暗号エンジン１８を備える。制御レジスタ１７は、コマンドレジスタ、暗号文アドレスポインタレジスタ、平文アドレスポインタレジスタ、暗号キーレジスタを含む。コマンドレジスタは、暗号文を平文に復号するための各種コマンド（或いは、平文を暗号文に復号するための各種コマンド）を保持する。また、暗号文アドレスポインタレジスタは、暗号文の格納位置を指し示すアドレスポインタを保持する。同様に、平文アドレスポインタレジスタは、平文の格納位置を指し示すアドレスポインタを保持する。さらに、暗号キーレジスタは、鍵（暗号キー）を保持する。暗号エンジン１８は、与えられた暗号文を復号して平文を生成（或いは、与えられた平文を暗号化して暗号文を生成）し、それを出力する。
【００２４】
送受信回路１９は、ホスト機器２から受け取ったデータを通信回線に送出し、また、ホスト機器２宛てのデータを網から受信する。
上記構成の通信機器１において、暗号エンジン１８は、ホスト機器２から取得した暗号化ファームウェア３１ａを復号して平文ファームウェア３１ｂを生成する。また、通信機器１が通信を行うときは、暗号エンジン１８は、送受信回路１９が送信すべきデータを暗号化し、送受信回路１９が受信したデータを復号する。
【００２５】
図３は、マスクＲＯＭ１３に格納されているブートコードの処理を示すフローチャートである。なお、このフローチャートの処理は、通信機器１の起動時（電源投入時あるいは通信機器１がリセットされたとき）にＣＵＰ１１により実行される。
ステップＳ１では、まず、通信機器１の内部の初期化を行う。ステップＳ２では、ホスト機器２との間のインタフェース（Ｈｏｓｔ  Ｉ／Ｆ）を活性化する。このとき、ホスト機器２の不揮発性メモリ２１に格納されている制御プログラム（ドライバ）２２に対して通信プログラムの転送を要求する。そして、ステップＳ３において、ホスト機器２からの転送を待つ。なお、ホスト機器２は、上記要求を受け取ると、不揮発性メモリ２１に格納されている暗号化ファームウェア３１ａを通信機器１へ転送する。
【００２６】
ホスト機器２から暗号化ファームウェア３１ａが送られてくると、ステップＳ４、Ｓ５において、受信した暗号化ファームウェア３１ａをメモリ（ＲＡＭ）１２へ転送する。そして、転送が終了すると、ステップＳ６において、暗号回路１６の制御レジスタ１７に必要な情報を設定する。具体的には、暗号キーレジスタには、ホスト機器２から取得した暗号化ファームウェア３１ａを復号するための鍵１４が設定される。また、暗号文アドレスポインタレジスタには、ステップＳ４において暗号化ファームウェア３１ａを書き込んだメモリアドレスが設定される。平文アドレスポインタレジスタには、暗号化ファームウェア３１ａを復号することにより得られる平文ファームウェア３１ｂを書き込むためのメモリアドレスが設定される。
【００２７】
ステップＳ７、Ｓ８では、暗号回路１６に復号処理を実行させる。すなわち、コマンドレジスタに格納されているコマンドがＣＵＰ１１により実行される。これにより、まず、暗号文アドレスポインタレジスタに設定されているアドレスから暗号化ファームウェア３１ａが読み出されて暗号エンジン１８に与えられる。続いて、暗号エンジン１８の出力である平文ファームウェア３１ｂが、平文アドレスポインタレジスタに設定されているアドレスに書き込まれる。そして、上記ステップＳ１〜Ｓ８の処理が終了すると、制御は、平文ファームウェア３１ｂに渡される。
【００２８】
図４は、通信機器１のデータ送信時の動作を説明する図である。なお、データの送受信は、図３に示したフローチャートの処理により生成された平文ファームウェア３１ｂが関与して行われる。また、ここでは、送信すべき平文データがホスト機器２から通信機器１に渡された後の動作を説明する。
通信機器１は、ホスト機器２から受け取った平文データをいったんメモリ（ＲＡＭ）１２に格納する。このとき、この格納アドレスが制御レジスタ１７の暗号文アドレスポインタレジスタに設定される。また、暗号エンジン１８の出力を格納すべきアドレスが決定され、平文アドレスポインタレジスタに設定される。さらに、送信データを暗号化するために予め決められたアルゴリズムにより生成された鍵（暗号キー）が暗号キーレジスタに設定される。
【００２９】
続いて、暗号エンジン１８により平文データが暗号化され、その結果が再びメモリ１２に書き込まれる。その後、送受信回路１９は、メモリ１２から暗号化データを取り出して通信回線へ送出する。このとき、送信周波数の設定、送信電力の設定、調停制御などは、ファームウェア３１ｂにより実行される。
なお、データ受信時の通信機器１は、基本的に、データ送信時の処理に対してデータの流れが逆になるように動作する。すなわち、送受信回路１９が受信した暗号化データは、暗号エンジン１８により復号されてホスト機器２へ送られる。
【００３０】
このように、実施形態の通信機器１は、通信データのための暗号回路を利用して通信プログラムを復号する構成なので、下記の効果が得られる。すなわち、無線通信機器の通信上のセキュリティへの関心は非常に高く、無線層でのセキュリティの向上としては、より頑健な暗号アルゴリズム（例えば、ＡＥＳ８０２．１１ｉ）の採用など、多くの提案がなされている。一方、通信機器とホスト機器との間のセキュリティの確保については、改良の提案もほとんどなされていない状況であり、「相対的に弱い部分がセキュリティホールになる」という考え方からしても、この部分のセキュリティを向上させる必要がある。特に、通信機器の動作を司るファームウェアの改ざん等は、無線層のセキュリティを脅かすセキュリティホールとなり得る行為である。
【００３１】
そこで、本発明は、通信機器の起動時に暗号化された通信用ファームウェアをホスト機器から通信機器へ転送することによりセキュリティを高めた。さらに、実施形態の通信機器１においては、通信データを暗号化／復号化するための暗号回路を利用して、上記通信用ファームウェアを復号する構成としてので、以下の効果が得られる。
（１）通信用ファームウェアについての暗号強度が、通信路と同等になるので、通信用ファームウェア自体がセキュリティホールとなることはない。
（２）通信路用暗号回路は、通常、高速処理が可能なようにハードウェア化されているので、ソフトウェア処理を提供するための資源の負担が軽くなり、また、通信機器の起動時間が短くなる。
【００３２】
なお、本発明に係る通信機器は、図２に示した回路構成に限定されるものではなく、例えば、図５または図６に示す構成であってもよい。また、図２、図５、図６において共通に使用するものについては、同じ符号を付している。
図５に示す通信機器１００は、図２に示すメモリ（ＲＡＭ）１２の代わりにデュアルポートＲＡＭ１０１を備えるとともに、送受信回路１９は、制御レジスタ１０２を備える構成である。この構成において、通信機器１の起動時にホスト機器２から受信する暗号化ファームウェア３１ａは、デュアルポートＲＡＭ１０１の第１のポートを介して書き込まれる。また、デュアルポートＲＡＭ１０１の第２のポートが暗号エンジン１８に接続されており、暗号化ファームウェア３１ａは暗号エンジン１８により復号され、その結果として得られる平文ファームウェア３１ｂがデュアルポートＲＡＭ１０１に戻される。そして、ＣＰＵ１１は、その平文ファームウェア３１ｂを実行することにより通信を制御する。
【００３３】
送受信回路１９を介して送信すべきデータは暗号エンジン１８により暗号化され、送受信回路１９を介して受信したデータは暗号エンジン１８により復号される。なお、送受信回路１９が備える制御レジスタには、デュアルポートＲＡＭ１０１のアドレスポインタ等が設定される。
図６に示す通信機器１１０は、暗号回路１６がホストインタフェースを介してホスト機器２とデータを送受信できる構成である。この構成において、暗号回路１６は、ＣＰＵ１１の配下の制御回路１１１により制御されるようにしてもよい。
【００３４】
暗号化ファームウェアを復号するための暗号鍵１４は、マスクＲＯＭ１３に格納されている。また、通信機器１１０は、ブートコードを備えておらず、起動時には、制御回路１１１がマスクＲＯＭ１３から暗号鍵１４を取り出して制御レジスタ１７の暗号キーレジスタに設定する。なお、暗号鍵１４は、図６に示す例ではマスクＲＯＭ１３に格納されているが、不図示のＥ２ＰＲＯＭ１５に格納されるようにしてもよい。
【００３５】
通信機器１の起動時にホスト機器２から受信する暗号化ファームウェアは、メモリ等を介することなく暗号エンジン１８に渡される。また、暗号エンジン１８における復号結果として得られる平文ファームウェア３１ｂがメモリ（ＲＡＭ）１２に書き込まれる。そして、ＣＰＵ１１は、その平文ファームウェア３１ｂを実行することで通信を制御する。
ホスト機器２により作成された平文データは、いったんメモリ１２に格納される。そして、その平文データは、暗号エンジン１８において暗号化され、その後送受信回路１９を介して通信回線を送信される。一方、通信回線から受信した暗号化データは、メモリ等を介することなく暗号エンジン１８で復号され、その結果得られる平文データがメモリ１２に書き込まれる。そして、その平文データがホスト機器２へ送られる。
【００３６】
また、上述の通信機器が使用する通信用ファームウェアにＣＲＣまたはチェックサム等のチェック用コードを付加することもできる。例えば、チェック用コードとしてＣＲＣを付加する場合には、図７に示すように、作成した平文ファームウェア３１ｂについてＣＲＣ演算を実行し、その演算結果を平文ファームウェア３１ｂの末尾に付加する。そして、「平文ファームウェア３１ｂ＋ＣＲＣ」を暗号化することにより暗号化ファームウェア３１ｃを生成する。暗号化ファームウェア３１ｃは、ホスト機器２の製造者に提供され、ホスト機器２の不揮発性メモリ２１に格納される。
【００３７】
通信機器１は、その起動時にホスト機器２から暗号化ファームウェア３１ｃを受け取り、復号する。この復号処理により、「平文ファームウェアに相当するデータ（再生平文ファームウェア３１ｄ）」及び「ＣＲＣに相当するデータ（再生ＣＲＣ）」が得られる。そして、再生平文ファームウェア３１ｄに対してＣＲＣ演算を行い、その結果が再生ＣＲＣに一致すれば、その再生平文ファームウェア３１ｄが正規のファームウェアであるものと判断して通信を行うための処理を開始する。なお、特許請求の範囲に記載の「データチェック手段」は、この例では、図７に示す通信機器２の処理を記述したプログラムをＣＰＵ１１で実行することにより実現される。
【００３８】
このような構成を導入すれば、セキュリティの向上が図れると共に、通信規格の異なる出荷先ごとに異なる暗号鍵を使用する場合には、不適切な通信を防ぐことができる。すなわち、例えば、Ａ国の通信規格とＢ国の通信規格が異なっており、そのためにＡ国に出荷する通信機器が使用すべき通信用ファームウェアとＢ国に出荷する通信機器が使用すべき通信ファームウェアとが異なっている場合には、出荷前に、Ａ国に出荷する通信機器には暗号鍵Ａが埋め込まれ、Ｂ国に出荷する通信機器には暗号鍵Ｂが埋め込まれる。よって、例えば、Ａ国で使用すべき通信機器をＢ国で起動すると、ホスト機器から取得したＢ国用の通信用ファームウェアを暗号鍵Ａで復号することになるので、ＣＲＣ演算の結果が不一致となり、その通信用ファームウェアを使用できないこととなる。すなわち、通信用ファームウェアとそのバージョンとを論理的に固定できる
なお、上述の実施例では、本発明の技術的思想を通信機器に適用したが、本発明はこれに限定されるものではなく、例えば、図８に示すように、暗号装置に適用することができる。ここで、暗号装置２００は、ホスト機器２から受け取った平文データを暗号化してホスト機器２に戻す機能、およびホスト機器２から受け取った暗号化データを復号してホスト機器２に戻す機能を提供する。そして、暗号処理用ファームウェア２０１は、暗号装置２００の起動時に、暗号化された状態でホスト機器２から暗号装置２００へ送信され、暗号エンジン１８で復号された後、再生された平文ファームウェア２０１が、メモリ（ＲＡＭ）１２に格納される。その後、ＣＰＵ１１が暗号処理用ファームウェア２０１を実行することにより上記暗号化／復号機能が提供される。
【図面の簡単な説明】
【００３９】
【図１】本発明に係る通信機器に通信プログラムを設定する手順の概要を示す図である。
【図２】本発明に係る通信機器の構成を示す図である。
【図３】マスクＲＯＭに格納されているブートコードの処理を示すフローチャートである。
【図４】通信機器のデータ送信時の動作を説明する図である。
【図５】本発明の他の実施形態の通信機器の構成を示す図である。
【図６】本発明のさらに他の実施形態の通信機器の構成を示す図である。
【図７】通信用ファームウェアにＣＲＣを付加して使用する実施例である。
【図８】本発明を暗号装置に適用した実施例である。
【符号の説明】
【００４０】
１      通信機器
２      ホスト機器
１１    ＣＰＵ
１２    メモリ（ＲＡＭ）
１３    マスクＲＯＭ
１４    鍵
１５    Ｅ２ＰＲＯＭ
１６    暗号回路
１７    制御レジスタ
１８    暗号エンジン
１９    送受信回路
２１    不揮発性メモリ
２２    制御プログラム
３１    ファームウェア
３１ａ  暗号化ファームウェア
３１ｂ  平文ファームウェア
３２    鍵
１００、１１０  通信機器
１０１  デュアルポートＲＡＭ
２００  暗号装置
２０１  暗号処理用ファームウェア
【図１】
2005354122.tif 000003
【図２】
2005354122.tif 000004
【図３】
2005354122.tif 000005
【図４】
2005354122.tif 000006
【図５】
2005354122.tif 000007
【図６】
2005354122.tif 000008
【図７】
2005354122.tif 000009
【図８】
2005354122.tif 000010