(57)【要約】【課題】保護対象のプログラムの起動時間の短縮を図ること。【解決手段】情報処理装置１００は、第１ＭＰＵ１１３と、保護対象のプログラムを実行する第２ＭＰＵ１２１と、第１ＭＰＵ１１３および第２ＭＰＵ１２１によって共用される共有ＲＡＭ１１２と、保護対象のプログラムを記憶する不揮発性のＲＯＭ１１１と、を備える。ＤＭＡＣ１１４は、ＲＯＭ１１１に記憶された保護対象のプログラムを情報処理装置１００の起動時に読み出す。暗号／復号処理部１１５は、読み出された保護対象のプログラムを情報処理装置１００の起動後の一回のみ暗号化し、暗号化した保護対象のプログラムを共有ＲＡＭ１１２に書き込む。また、暗号／復号処理部１１５は、共有ＲＡＭ１１２に暗号化されて書き込まれた保護対象のプログラムを復号して第２ＭＰＵ１２１に実行させる。【選択図】図１
2014115740.tif 000002
【特許請求の範囲】
【請求項１】
第１プロセッサと、
保護対象のプログラムを実行する第２プロセッサと、
前記第１プロセッサおよび前記第２プロセッサによって共用される第１メモリと、
前記保護対象のプログラムを記憶する不揮発性の第２メモリと、
を備える情報処理装置の制御方法であって、
前記第２メモリに記憶された前記保護対象のプログラムを前記情報処理装置の起動時に読み出し、
読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化し、
暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、
前記第１メモリに暗号化されて書き込まれた前記保護対象のプログラムを復号して前記第２プロセッサに実行させる、
ことを特徴とする制御方法。
【請求項２】
前記読み出した前記保護対象のプログラムが改ざんされているか否かを判定し、
前記保護対象のプログラムが改ざんされていないと判定した場合は前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、
前記保護対象のプログラムが改ざんされていると判定した場合は前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込まない、
ことを特徴とする請求項１に記載の制御方法。
【請求項３】
前記情報処理装置は、前記情報処理装置の起動時には第１値となっている情報を記憶する記憶部を備え、
前記記憶部に記憶された情報が前記第１値となっている場合に、前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込むとともに前記記憶部に記憶された情報を前記第１値と異なる第２値に書き換え、
前記記憶部に記憶された情報が前記第１値となっていない場合に、前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込まない、
ことを特徴とする請求項１または２に記載の制御方法。
【請求項４】
前記読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化する処理は、ユーザによって制御できない制御回路によって実行されることを特徴とする請求項１〜３のいずれか一つに記載の制御方法。
【請求項５】
第１プロセッサと、
保護対象のプログラムを実行する第２プロセッサと、
前記第１プロセッサおよび前記第２プロセッサによって共用される第１メモリと、
前記保護対象のプログラムを記憶する不揮発性の第２メモリと、
前記第２メモリに記憶された前記保護対象のプログラムを自装置の起動時に読み出し、読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化し、暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、前記第１メモリに暗号化されて書き込まれた前記保護対象のプログラムを復号して前記第２プロセッサに実行させる制御回路と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御方法および情報処理装置に関する。
【背景技術】
【０００２】
従来、セキュアＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：中央処理装置）及びノンセキュアＣＰＵを搭載した情報処理装置であって、プログラムの改ざんを検出する技術が知られている（たとえば、下記特許文献１参照。）。また、１チップの中にフラッシュメモリ等のＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ：ランダムアクセスメモリ）と処理部とが複合して構成されているＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）において、処理装置自身の秘密情報（秘密鍵）の読み出しを阻止し、悪意による処理装置の意図しない動作を阻止する技術が知られている（たとえば、下記特許文献２参照。）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】国際公開第２００９／０１３８２５号
【特許文献２】特開平１１−０３９１５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術において、ユーザが制御できる第１プロセッサとユーザが制御できない第２プロセッサとでＲＡＭを共有する構成が考えられる。このような構成において、保護対象のプログラムをＲＯＭから共有ＲＡＭに展開して改ざんをチェックし、正規プログラムなら暗号化して共有ＲＡＭの他のエリアに転送し、復号しながら第２プロセッサに実行させることが考えられる。
【０００５】
しかしながら、保護対象のプログラムをＲＯＭからＲＡＭへ転送し、さらにＲＡＭ内でも転送を行うことになるため、保護対象のプログラムの起動時間が長くなるという問題がある。
【０００６】
本発明は、上述した従来技術による問題点を解消するため、保護対象のプログラムの起動時間の短縮を図ることができる制御方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、第１プロセッサと、保護対象のプログラムを実行する第２プロセッサと、前記第１プロセッサおよび前記第２プロセッサによって共用される第１メモリと、前記保護対象のプログラムを記憶する不揮発性の第２メモリと、を備える情報処理装置において、前記第２メモリに記憶された前記保護対象のプログラムを前記情報処理装置の起動時に読み出し、読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化し、暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、前記第１メモリに暗号化されて書き込まれた前記保護対象のプログラムを復号して前記第２プロセッサに実行させる制御方法および情報処理装置が提案される。
【発明の効果】
【０００８】
本発明の一側面によれば、保護対象のプログラムの起動時間の短縮を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかる情報処理装置の構成の一例を示す図である。
【図２】図２は、実施の形態１にかかる情報処理装置の動作例を示す図（その１）である。
【図３】図３は、実施の形態１にかかる情報処理装置の動作例を示す図（その２）である。
【図４】図４は、実施の形態１にかかる情報処理装置の動作例を示す図（その３）である。
【図５】図５は、実施の形態１にかかる情報処理装置の動作の一例を示すフローチャートである。
【図６】図６は、実施の形態２にかかる情報処理装置の構成の一例を示す図である。
【図７】図７は、実施の形態２にかかる情報処理装置の動作例を示す図（その１）である。
【図８】図８は、実施の形態２にかかる情報処理装置の動作例を示す図（その２）である。
【図９】図９は、実施の形態２にかかる情報処理装置の動作例を示す図（その３）である。
【図１０】図１０は、実施の形態２にかかる情報処理装置の動作例を示す図（その４）である。
【図１１】図１１は、実施の形態２にかかる情報処理装置の動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、本発明にかかる制御方法および情報処理装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
（実施の形態１にかかる情報処理装置の構成）
図１は、実施の形態１にかかる情報処理装置の構成の一例を示す図である。図１に示すように、実施の形態１にかかる情報処理装置１００は、第１チップ１１０と、第２チップ１２０と、を備える。
【００１２】
第１チップ１１０は、ユーザによる制御が可能なマイクロコンピュータである。たとえば、第１チップ１１０は、ユーザが任意のプログラムを実行させたり、ユーザが任意のデータを書き込んだり、ユーザが任意のデータを読み出したりすることが可能なマイクロコンピュータである。
【００１３】
第２チップ１２０は、ユーザによる制御が不可であり、実行するプログラムを保護すべきマイクロコンピュータである。たとえば、第２チップ１２０は、ユーザが任意のプログラムを実行させたり、ユーザが任意のデータを書き込んだり、ユーザが任意のデータを読み出したりすることができないマイクロコンピュータである。
【００１４】
第１チップ１１０は、ＲＯＭ１１１と、共有ＲＡＭ１１２と、第１ＭＰＵ１１３（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ：マイクロプロセッサ）と、ＤＭＡＣ１１４（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ：ダイレクトメモリアクセスコントローラ）と、暗号／復号処理部１１５と、を備える。
【００１５】
ＲＯＭ１１１（第２メモリ）には、第１ＭＰＵ１１３や第２ＭＰＵ１２１によって実行されるプログラムやデータが記憶されている。たとえば、ＲＯＭ１１１の所定領域には、第２チップ１２０において実行すべきプログラム（保護対象のプログラム）が記憶されている。ＲＯＭ１１１には、たとえばＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの不揮発性のメモリを用いることができる。
【００１６】
共有ＲＡＭ１１２（第１メモリ）は、第１チップ１１０の第１ＭＰＵ１１３と、第２チップ１２０の第２ＭＰＵ１２１と、で共用されるメモリである。共有ＲＡＭ１１２は、たとえば第１ＭＰＵ１１３や第２ＭＰＵ１２１によってワークエリアとして使用される。
【００１７】
第１ＭＰＵ１１３（第１プロセッサ）は、ＲＯＭ１１１に記憶されたプログラムを読み出し、読み出したプログラムを、ＤＭＡＣ１１４を介して共有ＲＡＭ１１２に展開して実行する。また、第１ＭＰＵ１１３は、たとえば情報処理装置１００の起動時に、第２チップ１２０において実行すべきプログラムの転送を指示する転送指示信号をＤＭＡＣ１１４へ出力する。
【００１８】
ＤＭＡＣ１１４は、第１ＭＰＵ１１３から出力された転送指示信号に基づいて、ＲＯＭ１１１から共有ＲＡＭ１１２へのプログラム転送を行う。たとえば、ＤＭＡＣ１１４は、第１ＭＰＵ１１３から転送指示信号が出力されると、ＲＯＭ１１１の所定領域に記憶されたプログラムを読み出す。ＲＯＭ１１１の所定領域に記憶されたプログラムは、たとえば、ＲＯＭ１１１に記憶されたＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｅｒ）プログラムを参照することによって読み出すことができる。
【００１９】
そして、ＤＭＡＣ１１４は、読み出したプログラムを、暗号／復号処理部１１５へ出力することにより、暗号／復号処理部１１５を介して共有ＲＡＭ１１２の所定領域に書き込む。これにより、第２ＭＰＵ１２１によって実行すべきプログラムをＲＯＭ１１１から暗号／復号処理部１１５を介して共有ＲＡＭ１１２に転送することができる。また、ＤＭＡＣ１１４は、第１ＭＰＵ１１３によって実行されるプログラム（保護対象でないプログラム）をＲＯＭ１１１から共有ＲＡＭ１１２に転送する際は、暗号／復号処理部１１５を介さずにプログラムを転送するようにしてもよい。また、ＤＭＡＣ１１４は、実行するプログラム転送が初回であるか否かを示す第１フラグＦ１をレジスタ等により保持している。
【００２０】
暗号／復号処理部１１５は、ＤＭＡＣ１１４から出力された、第２ＭＰＵ１２１が実行すべきプログラムを暗号化し、暗号化したプログラムを共有ＲＡＭ１１２の所定領域に書き込む。また、暗号／復号処理部１１５は、第２ＭＰＵ１２１から読出指示信号が出力されると、共有ＲＡＭ１１２の所定領域に暗号化して書き込んだプログラムを読み出し、読み出したプログラムを復号して第２ＭＰＵ１２１へ出力する。暗号／復号処理部１１５による暗号化の方式については、たとえばＤＥＳ（Ｄａｔａ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）、ＲＳＡ（Ｒｉｖｅｓｔ  Ｓｈａｍｉｒ  Ａｄｌｅｍａｎ）などの各種の方式を用いることができる。
【００２１】
また、暗号／復号処理部１１５は、ＤＭＡＣ１１４から出力された暗号化対象のプログラムの改ざんチェックを行い、プログラムが改ざんされていると判定した場合は暗号化を行わない。暗号／復号処理部１１５による改ざんチェックの方法については、たとえばパリティやＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ：巡回冗長検査）のような付加情報の追加やハッシュ値演算など各種の方式を用いることができる。
【００２２】
また、暗号／復号処理部１１５は、実行する暗号化が初回であるか否かを示す第２フラグＦ２をレジスタ等によって保持している。暗号／復号処理部１１５は、たとえばＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）などの演算回路によって実現することができる。
【００２３】
第２チップ１２０は、第２ＭＰＵ１２１を備える。第２ＭＰＵ１２１（第２プロセッサ）は、保護対象のプログラムを実行するプロセッサである。第２ＭＰＵ１２１は、たとえば起動時に、ＤＭＡＣ１１４に対して読出指示信号を出力することによって、共有ＲＡＭ１１２の所定領域に記憶されたプログラムを読み出す。このとき、読み出し対象のプログラムは暗号化された状態で共有ＲＡＭ１１２に記憶されているが、暗号／復号処理部１１５を介して読み出すことによって復号された状態で読み出すことができる。
【００２４】
このように、情報処理装置１００においては、ＤＭＡＣ１１４によって、ＲＯＭ１１１に記憶された保護対象のプログラムを情報処理装置１００の起動時に読み出すことができる。そして、暗号／復号処理部１１５によって、読み出された保護対象のプログラムを情報処理装置１００の起動後の一回のみ暗号化し、暗号化した保護対象のプログラムを共有ＲＡＭ１１２に書き込むことができる。また、暗号／復号処理部１１５によって、共有ＲＡＭ１１２に暗号化されて書き込まれた保護対象のプログラムを復号して第２ＭＰＵ１２１に実行させることができる。
【００２５】
（実施の形態１にかかる情報処理装置の動作例）
図２〜図４は、実施の形態１にかかる情報処理装置の動作例を示す図である。図２〜図４において、図１に示した部分と同様の部分については同一の符号を付して説明を省略する。図２に示すように、情報処理装置１００の起動時は、ＤＭＡＣ１１４の第１フラグＦ１および暗号／復号処理部１１５の第２フラグＦ２はともに「０」となっている。まず、情報処理装置１００の起動時に、ＤＭＡＣ１１４が自動的に、ＲＯＭ１１１の所定領域に記憶された、第２ＭＰＵ１２１によって実行すべきプログラムを読み出す。
【００２６】
つぎに、図３に示すように、ＤＭＡＣ１１４が、読み出したプログラムを暗号／復号処理部１１５へ転送するとともに、第１フラグＦ１を反転して「１」にする。そして、暗号／復号処理部１１５が、ＤＭＡＣ１１４から転送されたプログラムを暗号化して共有ＲＡＭ１１２へ出力するとともに、第２フラグＦ２を反転して「１」にする。
【００２７】
これにより、第２ＭＰＵ１２１によって実行すべきプログラムが暗号化された状態で共有ＲＡＭ１１２の所定領域に書き込まれる。また、暗号／復号処理部１１５は、ＤＭＡＣ１１４から転送されたプログラムの改ざんチェックを行い、プログラムが改ざんされていた場合は暗号化したプログラムを共有ＲＡＭ１１２へ出力しない。
【００２８】
つぎに、図４に示すように、暗号／復号処理部１１５が、第２ＭＰＵ１２１からの読出指示信号に応じて、共有ＲＡＭ１１２の所定領域に書き込まれたプログラムを読み出して復号する。そして、暗号／復号処理部１１５は、復号したプログラムを第２ＭＰＵ１２１へ出力する。第２ＭＰＵ１２１は、暗号／復号処理部１１５から出力されるプログラムを実行する。
【００２９】
このように、情報処理装置１００の起動時に、ＤＭＡＣ１１４によって自動でプログラムがＲＯＭ１１１から読み出されて共有ＲＡＭ１１２へ転送される。その際、暗号／復号処理部１１５によって自動で改ざんチェックおよび暗号化が行われる。
【００３０】
また、ＤＭＡＣ１１４は、レジスタ等で保持した第１フラグＦ１を用いて、初回のみプログラムを自動で転送するとともに、２回目以降はプログラムを自動的に転送しない。また、暗号／復号処理部１１５は、レジスタ等で保持した第２フラグＦ２を用いて、初回のみプログラムの改ざんチェックおよび暗号化を行うとともに、２回目以降はプログラムの改ざんチェックおよび暗号化を行わない。
【００３１】
（実施の形態１にかかる情報処理装置の動作）
図５は、実施の形態１にかかる情報処理装置の動作の一例を示すフローチャートである。情報処理装置１００は、電源が投入されると（電源オン）、たとえば以下の各ステップを実行する。なお、電源投入の直後においては、ＤＭＡＣ１１４の第１フラグＦ１および暗号／復号処理部１１５の第２フラグＦ２はともに「０」になっているとする。
【００３２】
まず、ＤＭＡＣ１１４が、第１フラグＦ１が「０」か否かを判断する（ステップＳ５０１）。これにより、今回が初回のプログラム転送か否かを判断することができる。第１フラグＦ１が「０」でない場合（ステップＳ５０１：Ｎｏ）は、初回のプログラム転送でないと判断することができる。この場合は、ＤＭＡＣ１１４は、ステップＳ５０１へ戻り、ＲＯＭ１１１から共有ＲＡＭ１１２への暗号／復号処理部１１５を介したプログラムの自動転送を行わない。
【００３３】
ステップＳ５０１において、第１フラグＦ１が「０」である場合（ステップＳ５０１：Ｙｅｓ）は、初回のプログラム転送であると判断することができる。この場合は、ＤＭＡＣ１１４は、第２ＭＰＵ１２１が実行すべき、ＲＯＭ１１１の所定領域に記憶されたプログラムを読み出して暗号／復号処理部１１５へ転送する（ステップＳ５０２）。また、ＤＭＡＣ１１４は、第１フラグＦ１を反転させて「１」にする（ステップＳ５０３）。
【００３４】
つぎに、暗号／復号処理部１１５が、第２フラグＦ２が「０」か否かを判断する（ステップＳ５０４）。これにより、今回が初回のプログラム転送か否かを判断することができる。第２フラグＦ２が「０」でない場合（ステップＳ５０４：Ｎｏ）は、初回のプログラム転送でないと判断することができる。この場合は、暗号／復号処理部１１５は、ステップＳ５０２によって転送されたプログラムを暗号化せずに共有ＲＡＭ１１２へスルー出力し（ステップＳ５０５）、ステップＳ５０１へ戻る。
【００３５】
ステップＳ５０４において、第２フラグＦ２が「０」である場合（ステップＳ５０４：Ｙｅｓ）は、初回のプログラム転送であると判断することができる。この場合は、暗号／復号処理部１１５は、所定の改ざんチェック処理により、ステップＳ５０２によって転送されたプログラムが改ざんされているか否かを判断する（ステップＳ５０６）。
【００３６】
ステップＳ５０６において、プログラムが改ざんされている場合（ステップＳ５０６：Ｙｅｓ）は、暗号／復号処理部１１５は、ステップＳ５０２によって転送されたプログラムの暗号化および共有ＲＡＭ１１２への出力を行わずに、一連の動作を終了する。この場合に、暗号／復号処理部１１５がエラーメッセージ等を出力するようにしてもよい。
【００３７】
ステップＳ５０６において、プログラムが改ざんされていない場合（ステップＳ５０６：Ｎｏ）は、暗号／復号処理部１１５は、ステップＳ５０２によって転送されたプログラムを暗号化して共有ＲＡＭ１１２へ出力する（ステップＳ５０７）。これにより、共有ＲＡＭ１１２の所定領域に暗号化されたプログラムが記憶される。
【００３８】
また、暗号／復号処理部１１５は、第２フラグＦ２を反転させて「１」にし（ステップＳ５０８）、ステップＳ５０１へ戻る。以降、暗号／復号処理部１１５は、第２ＭＰＵ１２１からの読出指示信号に応じて、共有ＲＡＭ１１２の所定領域に書き込まれたプログラムを読み出して復号し、復号したプログラムを第２ＭＰＵ１２１へ出力する。
【００３９】
なお、ＤＭＡＣ１１４の第１フラグＦ１および暗号／復号処理部１１５の第２フラグＦ２は、情報処理装置１００の電源がオフになると、ともにリセットされて「０」となる。
【００４０】
以上の各ステップにより、第２ＭＰＵ１２１によって実行される保護対象のプログラムを共有ＲＡＭ１１２へ転送する前に暗号化するとともに、該暗号化を起動時にのみ許可するようにすることができる。
【００４１】
このように、実施の形態１にかかる情報処理装置１００によれば、第２ＭＰＵ１２１によって実行される保護対象のプログラムを共有ＲＡＭ１１２へ転送する前に暗号化することにより転送回数を抑えることができる。このため、第２ＭＰＵ１２１によって実行されるプログラムの起動時間を短くすることができる。また、該暗号化を起動時にのみ許可することにより、第三者が任意データを転送して暗号化キーを解読することを回避し、セキュリティを向上させることができる。
【００４２】
たとえば、悪意のある第三者は、プログラムの逆アセンブルに要する暗号キーを解読するために以下の行動をとることが考えられる。すなわち、悪意のある第三者は、共有ＲＡＭ１１２に任意のデータを書込み、第１ＭＰＵ１１３からＤＭＡＣ１１４に指示して暗号／復号処理部１１５を経由して共有ＲＡＭ１１２に書き戻す。そして、悪意のある第三者は、暗号化前のデータと暗号化後のデータを比較することにより暗号キーを解読する。
【００４３】
これに対して、情報処理装置１００においては、電源投入後の初回にしか暗号化が許可されないため、悪意のある第三者が上述した行動をとっても暗号化したデータを共有ＲＡＭ１１２に書き込むことはできない。このため、暗号化前のデータと暗号化後のデータを比較することができず、暗号キーの解読を困難にすることができる。
【００４４】
また、ＲＯＭ１１１が書き換え可能なＦｌａｓｈＲＯＭ等である場合は、ＲＯＭ１１１の記憶内容を第三者が第１ＭＰＵ１１３から書き換えることが可能である。悪意のある第三者がＲＯＭ１１１に任意のデータを書き込むことにより、次回電源投入時に共有ＲＡＭ１１２に暗号化されたデータが書き込まれるので、暗号化前後のデータを比較して暗号キーを解読できてしまうことも考えられる。
【００４５】
これに対して、情報処理装置１００においては、ＲＯＭ１１１に書き込まれたプログラムが改ざんされていないかどうかが電源投入直後にチェックされ、改ざんされている場合は暗号化や共有ＲＡＭ１１２への出力が行われない。これにより、暗号キーの解読を困難にすることができる。
【００４６】
また、仮に暗号キーが漏出してプログラムが改ざんされてＲＯＭ１１１に書き込まれたとしても、改ざんチェックによって、改ざんされたプログラムが動作することを回避することができる。
【００４７】
これにより、たとえば、悪意のある第三者が暗号キーを解読してプログラムを改ざんして悪用（たとえば電話番号を偽って通話料を払わない等）することを防ぎつつ、起動時間の短縮を図ることができる。また、第１ＭＰＵ１１３と第２ＭＰＵ１２１とで共有ＲＡＭ１１２を共有することによって小型化およびコストダウンを図ることができる。
【００４８】
たとえば、情報処理装置１００は、複数のマイクロコンピュータを搭載する携帯電話装置などに適用することができる。これにより、たとえば、メモリ共通化による小型化およびコストダウンを図り、悪意のある第三者からの改ざんからプログラムをガードしつつ高速起動できる携帯電話を実現することが可能になる。
【００４９】
（実施の形態２）
実施の形態２について、実施の形態１と異なる部分について説明する。
【００５０】
（実施の形態２にかかる情報処理装置の構成）
図６は、実施の形態２にかかる情報処理装置の構成の一例を示す図である。図６において、図１に示した部分と同様の部分については同一の符号を付して説明を省略する。図６に示すように、実施の形態２にかかる情報処理装置１００においては、暗号／復号処理部１１５は、実行する暗号化が初回であるか否かを示すフラグＦをレジスタ等によって保持している。この場合は、ＤＭＡＣ１１４にはフラグがなくてもよい。また、暗号／復号処理部１１５のフラグＦは、たとえば第２ＭＰＵ１２１の制御によって書き換えられる。
【００５１】
（実施の形態２にかかる情報処理装置の動作例）
図７〜図１０は、実施の形態２にかかる情報処理装置の動作例を示す図である。図７〜図１０において、図６に示した部分と同様の部分については同一の符号を付して説明を省略する。図７に示すように、情報処理装置１００の起動時は、暗号／復号処理部１１５のフラグＦは「０」となっている。まず、情報処理装置１００の起動時に、第１ＭＰＵ１１３が自動的に、ＤＭＡＣ１１４に対して転送指示信号を出力する。つぎに、図８に示すように、ＤＭＡＣ１１４が、第２ＭＰＵ１２１によって実行すべき、ＲＯＭ１１１の所定領域に記憶されたプログラムを読み出す。
【００５２】
つぎに、図９に示すように、ＤＭＡＣ１１４が、読み出したプログラムを暗号／復号処理部１１５へ転送する。そして、暗号／復号処理部１１５が、ＤＭＡＣ１１４から転送されたプログラムを暗号化して共有ＲＡＭ１１２へ出力する。また、第２ＭＰＵ１２１の制御により、暗号／復号処理部１１５のフラグＦが反転して「１」となる。
【００５３】
これにより、暗号化されたプログラムが共有ＲＡＭ１１２の所定領域に書き込まれる。また、暗号／復号処理部１１５は、ＤＭＡＣ１１４から転送されたプログラムの改ざんチェックを行い、プログラムが改ざんされていた場合は暗号化したプログラムを共有ＲＡＭ１１２へ出力しない。
【００５４】
つぎに、図１０に示すように、暗号／復号処理部１１５が、第２ＭＰＵ１２１からの読出指示信号に応じて、共有ＲＡＭ１１２の所定領域に書き込まれたプログラムを読み出して復号する。そして、暗号／復号処理部１１５は、復号したプログラムを第２ＭＰＵ１２１へ出力する。第２ＭＰＵ１２１は、暗号／復号処理部１１５から出力されるプログラムを実行する。
【００５５】
このように、情報処理装置１００の起動時に、第１ＭＰＵ１１３がＤＭＡＣ１１４に指示することによってプログラムがＲＯＭ１１１から読み出されて転送される。その際、暗号／復号処理部１１５によって自動で改ざんチェックおよび暗号化が行われる。また、暗号／復号処理部１１５は、レジスタ等で保持したフラグＦを用いて、初回のみプログラムの暗号化を行い、２回目以降はプログラムの暗号化を行わない。
【００５６】
（実施の形態２にかかる情報処理装置の動作）
図１１は、実施の形態２にかかる情報処理装置の動作の一例を示すフローチャートである。情報処理装置１００は、電源が投入されると（電源オン）、たとえば以下の各ステップを実行する。なお、電源投入の直後においては、暗号／復号処理部１１５のフラグＦは「０」になっているとする。
【００５７】
まず、ＤＭＡＣ１１４が、第１ＭＰＵ１１３から転送指示信号が出力されたか否かを判断し（ステップＳ１１０１）、転送指示信号が出力されるまで待つ（ステップＳ１１０１：Ｎｏのループ）。ステップＳ１１０１において、転送指示信号が出力されると（ステップＳ１１０１：Ｙｅｓ）、ＤＭＡＣ１１４は、第２ＭＰＵ１２１が実行すべき、ＲＯＭ１１１の所定領域に記憶されたプログラムを読み出して暗号／復号処理部１１５へ転送する（ステップＳ１１０２）。
【００５８】
つぎに、暗号／復号処理部１１５が、フラグＦが「０」か否かを判断する（ステップＳ１１０３）。これにより、今回が初回のプログラム転送か否かを判断することができる。フラグＦが「０」でない場合（ステップＳ１１０３：Ｎｏ）は、初回のプログラム転送でないと判断することができる。この場合は、暗号／復号処理部１１５は、ステップＳ１１０２によって転送されたプログラムを暗号化せずに共有ＲＡＭ１１２へスルー出力し（ステップＳ１１０４）、ステップＳ１１０１へ戻る。
【００５９】
ステップＳ１１０３において、フラグＦが「０」である場合（ステップＳ１１０３：Ｙｅｓ）は、初回のプログラム転送であると判断することができる。この場合は、暗号／復号処理部１１５は、所定の改ざんチェック処理により、ステップＳ１１０２によって転送されたプログラムが改ざんされているか否かを判断する（ステップＳ１１０５）。
【００６０】
ステップＳ１１０５において、プログラムが改ざんされている場合（ステップＳ１１０５：Ｙｅｓ）は、暗号／復号処理部１１５は、ステップＳ１１０２によって転送されたプログラムの暗号化および共有ＲＡＭ１１２への出力を行わずに一連の動作を終了する。この場合に、暗号／復号処理部１１５がエラーメッセージ等を出力するようにしてもよい。
【００６１】
ステップＳ１１０５において、プログラムが改ざんされていない場合（ステップＳ１１０５：Ｎｏ）は、暗号／復号処理部１１５は、ステップＳ１１０２によって転送されたプログラムを暗号化して共有ＲＡＭ１１２へ出力する（ステップＳ１１０６）。これにより、共有ＲＡＭ１１２の所定領域に暗号化されたプログラムが記憶される。
【００６２】
また、暗号／復号処理部１１５は、第２ＭＰＵ１２１の制御により、フラグＦを反転させて「１」にし（ステップＳ１１０７）、ステップＳ１１０１へ戻る。以降、暗号／復号処理部１１５は、第２ＭＰＵ１２１からの読出指示信号に応じて、共有ＲＡＭ１１２の所定領域に書き込まれたプログラムを読み出して復号し、復号したプログラムを第２ＭＰＵ１２１へ出力する。なお、暗号／復号処理部１１５のフラグＦは、情報処理装置１００の電源がオフになるとリセットされて「０」となる。
【００６３】
以上の各ステップにより、第２ＭＰＵ１２１によって実行される保護対象のプログラムを共有ＲＡＭ１１２へ転送する前に暗号化するとともに、該暗号化を起動時にのみ許可するようにすることができる。
【００６４】
このように、実施の形態２にかかる情報処理装置１００によれば、実施の形態１と同様に、保護対象のプログラムを共有ＲＡＭ１１２へ転送する前に暗号化することにより転送回数を抑えることができる。このため、第２ＭＰＵ１２１によって実行されるプログラムの起動時間を短くすることができる。また、該暗号化を起動時にのみ許可することにより、第三者が任意データを転送して暗号化キーを解読することを回避し、セキュリティを向上させることができる。
【００６５】
以上説明したように、制御方法および情報処理装置によれば、保護対象のプログラムの起動時間の短縮を図ることができる。
【００６６】
上述した各実施の形態に関し、さらに以下の付記を開示する。
【００６７】
（付記１）第１プロセッサと、
保護対象のプログラムを実行する第２プロセッサと、
前記第１プロセッサおよび前記第２プロセッサによって共用される第１メモリと、
前記保護対象のプログラムを記憶する不揮発性の第２メモリと、
を備える情報処理装置の制御方法であって、
前記第２メモリに記憶された前記保護対象のプログラムを前記情報処理装置の起動時に読み出し、
読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化し、
暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、
前記第１メモリに暗号化されて書き込まれた前記保護対象のプログラムを復号して前記第２プロセッサに実行させる、
ことを特徴とする制御方法。
【００６８】
（付記２）前記読み出した前記保護対象のプログラムが改ざんされているか否かを判定し、
前記保護対象のプログラムが改ざんされていないと判定した場合は前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、
前記保護対象のプログラムが改ざんされていると判定した場合は前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込まない、
ことを特徴とする付記１に記載の制御方法。
【００６９】
（付記３）前記情報処理装置は、前記情報処理装置の起動時には第１値となっている情報を記憶する記憶部を備え、
前記記憶部に記憶された情報が前記第１値となっている場合に、前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込むとともに前記記憶部に記憶された情報を前記第１値と異なる第２値に書き換え、
前記記憶部に記憶された情報が前記第１値となっていない場合に、前記暗号化した前記保護対象のプログラムを前記第１メモリに書き込まない、
ことを特徴とする付記１または２に記載の制御方法。
【００７０】
（付記４）前記第２メモリに記憶された前記保護対象のプログラムを前記情報処理装置の起動時に読み出す処理は、前記起動後の一回のみ行われることを特徴とする付記１〜３のいずれか一つに記載の制御方法。
【００７１】
（付記５）前記第２メモリに記憶された前記保護対象のプログラムを前記情報処理装置の起動時に読み出す処理は、前記第１プロセッサからの制御によって行われることを特徴とする付記１〜３のいずれか一つに記載の制御方法。
【００７２】
（付記６）前記読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化する処理は、ユーザによって制御できない制御回路によって実行されることを特徴とする付記１〜５のいずれか一つに記載の制御方法。
【００７３】
（付記７）前記第１プロセッサはユーザによる制御が可能なプロセッサであることを特徴とする付記１〜６のいずれか一つに記載の制御方法。
【００７４】
（付記８）第１プロセッサと、
保護対象のプログラムを実行する第２プロセッサと、
前記第１プロセッサおよび前記第２プロセッサによって共用される第１メモリと、
前記保護対象のプログラムを記憶する不揮発性の第２メモリと、
前記第２メモリに記憶された前記保護対象のプログラムを自装置の起動時に読み出し、読み出した前記保護対象のプログラムを前記起動後の一回のみ暗号化し、暗号化した前記保護対象のプログラムを前記第１メモリに書き込み、前記第１メモリに暗号化されて書き込まれた前記保護対象のプログラムを復号して前記第２プロセッサに実行させる制御回路と、
を備えることを特徴とする情報処理装置。
【符号の説明】
【００７５】
１００  情報処理装置
１１０  第１チップ
１１１  ＲＯＭ
１１２  共有ＲＡＭ
１１３  第１ＭＰＵ
１１４  ＤＭＡＣ
１１５  暗号／復号処理部
１２０  第２チップ
１２１  第２ＭＰＵ
【図１】
2014115740.tif 000003
【図２】
2014115740.tif 000004
【図３】
2014115740.tif 000005
【図４】
2014115740.tif 000006
【図５】
2014115740.tif 000007
【図６】
2014115740.tif 000008
【図７】
2014115740.tif 000009
【図８】
2014115740.tif 000010
【図９】
2014115740.tif 000011
【図１０】
2014115740.tif 000012
【図１１】
2014115740.tif 000013