(57)【要約】【課題】あるバスマスタがアルゴリズムを守る必要のある複数種類のアプリケーションを同時に実行する場合、それぞれのアプリケーションに対応した専用領域を共有メモリ上に確保する。【解決手段】複数のアプリケーションを実行するバスマスタがメモリへアクセスする場合、各アプリケーションに対応した領域へのアクセスであることを示すアクセス領域番号を出力し、アクセス可否判定部にて、アクセス領域番号やアクセス要求に含まれるアクセス先アドレス、アクセス可否情報を基に、バスマスタが要求するアクセス先へアクセス可能か否かを判定する。【選択図】図１
2006293516.tif 000002
【特許請求の範囲】
【請求項１】
メモリやレジスタなどのＬＳＩ内外の資源へアクセスするバスマスタと、前記バスマスタから前記資源へのアクセスを制御するアクセス制御部を含んだバスアクセス制御装置であって、
前記バスマスタから前記資源へアクセス可能な領域と不可能な領域とを示すアクセス可否情報を複数保持するアクセス可否情報保持部を有し、
前記バスマスタは、前記アクセス可否情報保持部にて保持されるアクセス可否情報が示す各領域にアクセスする際、アクセス要求と共に前記各領域と１対１に対応したアクセス領域番号を出力し、
前記アクセス可否情報保持部のアクセス可否情報と前記アクセス領域番号と前記アクセス要求に含まれるアクセス先のアドレス情報に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定するアクセス可否判定部をアクセス制御部に含むことを特徴とするバスアクセス制御装置。
【請求項２】
前記アクセス可否情報は、前記バスマスタがアクセスする各領域の領域番号と、前記領域番号に対応した領域を示すための領域開始アドレス、領域終了アドレスを含むことを特徴とする請求項１記載のバスアクセス制御装置。
【請求項３】
請求項２記載のバスアクセス制御装置であって、
複数のバスを有し、
前記アクセス要求を行ったバスマスタを識別し、識別したバスマスタをマスタ識別情報として出力するマスタ識別部をさらに含み、
前記アクセス可否情報に、領域番号と前記領域番号に対応した領域へのアクセスを許可するマスタ識別情報を含み、
前記アクセス可否判定部にて、前記マスタ識別情報と前記アクセス領域番号と前記アクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定することを特徴とするバスアクセス制御装置。
【請求項４】
請求項３記載のバスアクセス制御装置であって、
前記バスマスタが複数種類の処理を行い、前記アクセス領域番号として、それぞれの処理実行時に実行中の処理と１対１に対応した番号を出力する処理内容識別部を有することを特徴とするバスアクセス制御装置。
【請求項５】
請求項４記載のバスアクセス制御装置であって、
前記バスマスタが暗号・復号機能を有した暗復号ＤＭＡコントローラであり、
前記暗復号ＤＭＡコントローラは暗号、復号に使用する鍵を設定するためのレジスタ（復号鍵設定レジスタ）と、ＤＭＡ転送元を指定するためのレジスタ（転送元指定レジスタ）と、ＤＭＡ転送先を指定するためのレジスタ（転送先設定レジスタ）を有し、更に暗号化データもしくは暗号化プログラムを復号して前記転送先設定レジスタに示されたアドレスに転送するためのアクセス要求を発行する際、前記処理内容識別部にて、前記復号鍵設定レジスタにより指定された復号鍵と１対１に対応したアクセス領域番号を出力することを特徴とするバスアクセス制御装置。
【請求項６】
請求項５記載のバスアクセス制御装置であって、
前記復号鍵の予め定められた箇所に前記アクセス領域番号を含み、
前記処理内容識別部は、前記復号鍵設定レジスタに設定された復号鍵から、予め定められた位置の前記アクセス領域番号をハードウェアにより抜き出し、アクセス要求と同時に出力することを特徴とするバスアクセス制御装置。
【請求項７】
請求項２記載のバスアクセス制御装置であって、
前記バスマスタがプロセッサであり、
前記プロセッサは実行するコードのフェッチ先を判定するフェッチ先判定回路を有し、前記フェッチ先判定回路の判定結果を基にハードウェアにより前記アクセス領域番号を生成することを特徴とするバスアクセス制御装置。
【請求項８】
請求項３〜７のいずれか１項に記載のバスアクセス制御装置であって、
前記アクセス可否情報に、前記アクセスを許可するマスタ識別情報により指定されたバスマスタに対し許可するアクセス種別（書込みのみ、または読出しのみ、または書込み、読出しの両方）の情報をさらに含み、
前記アクセス可否判定部にて、前記バスマスタからのアクセス要求がアクセス先に対する書込み要求なのか、読出し要求なのかを判定し、その判定結果と前記アクセス可否情報と前記マスタ識別情報と前記アクセス領域番号と前記アクセス要求に含まれるアクセス先アドレス情報に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定することを特徴とするバスアクセス制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタルＡＶ機器向けシステムＬＳＩにおけるセキュア機構実現に関するものである。
【背景技術】
【０００２】
現在、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）の高機能化、高集積化が進む中、複数のプロセッサから構成されるマルチプロセッサシステムが一般化している。また、デジタルＡＶ家電分野などでは、低コスト化のため主記憶装置などの情報資源を共有するユニファイドメモリ構成が欠かせない。そのため、あるプロセッサの秘匿プログラムが共有メモリ内に記憶されている場合に、他のプロセッサがその秘匿プログラムを改竄したり盗み出したりする等のセキュリティ低下が問題となっている。
【０００３】
特許文献１には、あるバスマスタが複数種類のセキュアなアプリケーションを実行する場合、それぞれのセキュア処理に応じた専用領域を共有メモリ上に確保するための仕組みが開示されている。図１３に特許文献１記載のバスアクセス制御装置を示す。アクセス制御部１３０８は、アクセス可否情報保持部１３１０が保持するバスマスタ１３０１がアクセス可能な領域を示すアクセス可否情報と、バスマスタ１３０１が発行するメモリ１３１３へのアクセス要求１３０５とに基づいて、バスマスタ１３０１がアクセス要求先の領域にアクセス可能か否かを判定する。メモリＩＦ部１３１２は、その判定結果（アクセス可否判定結果１３１１）がアクセス許可を示しているときのみメモリ１３１３へアクセスする。アクセス可否情報は特定アドレスのプログラム実行時にのみ変更可能である。また、複数のアプリケーションを実行する場合、その都度アクセス可否情報を設定する必要がある。図１４にアクセス可否情報の一例を示す。アクセス可否情報としては、アクセス可能領域の開始アドレス、終了アドレス、さらに前記アクセス可能領域以外へのアクセスを許可するか否かである。図１４の例では、バスマスタ１３０１はアドレス０ｘ８０００＿００００〜０ｘ８０ＦＦ＿ＦＦＦＦにのみアクセス可能となる。
【特許文献１】特開２００１−２５６４６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１の仕組みでは、あるセキュアなアプリケーション実行中には、そのアプリに対応した一つの専用領域しか確保することができないため、同時に複数のセキュアなアプリケーションを実行することができない。この仕組みの上で複数のセキュアなアプリケーションを実行しようとすれば、一つの専用領域にて複数のセキュアなアプリケーションを実行する必要があり、結果として、そのバスマスタは複数種類のセキュア情報にアクセス可能となり、セキュリティ低下の要因となる。
【課題を解決するための手段】
【０００５】
前記従来の課題を解決するために、本発明は、メモリやレジスタなどのＬＳＩ内外の資源へアクセスするバスマスタと、前記バスマスタから前記資源へのアクセスを制御するアクセス制御部を含んだバスアクセス制御装置であって、前記バスマスタから前記資源へアクセス可能な領域と不可能な領域とを示すアクセス可否情報を複数保持するアクセス可否情報保持部と、前記アクセス可否情報保持部のアクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定するアクセス可否判定部をアクセス制御部内に有し、前記バスマスタは、前記アクセス可否情報保持部にて保持されるアクセス可否情報が示す各領域にアクセスする際、アクセス要求と共に前記各領域と１対１に対応したアクセス領域番号を出力する手段を有する。
【０００６】
また、本発明は、請求項１記載のバスアクセス制御装置であって、複数の前記バスマスタを有し、前記アクセス要求を行ったバスマスタを識別し、識別したバスマスタをマスタ識別情報として出力するマスタ識別部をさらに含み、前記アクセス可否情報に、領域番号と前記領域番号に対応した領域へのアクセスを許可するマスタ識別情報を含み、前記アクセス可否判定部にて、前記マスタ識別情報と前記アクセス領域番号と前記アクセス可否情報に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定する手段を有する。
【０００７】
また、本発明は、請求項３記載のバスアクセス制御装置であって、前記バスマスタが複数種類の処理を行い、前記アクセス領域番号として、それぞれの処理実行時に実行中の処理と１対１に対応した番号を出力する処理内容識別部を有する。
【０００８】
また、本発明は、請求項４記載のバスアクセス制御装置であって、前記バスマスタが暗号・復号機能を有した暗復号ＤＭＡコントローラであり、前記暗復号ＤＭＡコントローラは暗号、復号に使用する鍵を設定するためのレジスタ（復号鍵設定レジスタ）と、ＤＭＡ転送元を指定するためのレジスタ（転送元指定レジスタ）と、ＤＭＡ転送先を指定するためのレジスタ（転送先設定レジスタ）を有し、更に暗号化データもしくは暗号化プログラムを復号して前記転送先設定レジスタに示されたアドレスに転送するためのアクセス要求を発行する際、前記処理内容識別部にて、前記復号鍵設定レジスタにより指定された復号鍵と１対１に対応したアクセス領域番号を出力する手段を有する。
【０００９】
また、本発明は、請求項５記載のバスアクセス制御装置であって、前記復号鍵の予め定められた箇所に前記アクセス領域番号を含み、前記処理内容識別部は、前記復号鍵設定レジスタに設定された復号鍵から、予め定められた位置の前記アクセス領域番号をハードウェアにより抜き出し、アクセス要求と同時に出力する手段を有する。
【００１０】
また、本発明は、請求項２記載のバスアクセス制御装置であって、前記バスマスタがプロセッサであり、前記プロセッサは実行するコードのフェッチ先を判定するフェッチ先判定回路を有し、前記フェッチ先判定回路の判定結果を基にハードウェアにより前記アクセス領域番号を生成する手段を有する。
【００１１】
また、本発明は、請求項３〜７のいずれか１項に記載のバスアクセス制御装置であって、前記アクセス可否情報に、前記アクセスを許可するマスタ識別情報により指定されたバスマスタに対し許可するアクセス種別（書込みのみ、または読出しのみ、または書込み、読出しの両方）の情報をさらに含み、前記アクセス可否判定部にて、前記バスマスタからのアクセス要求がアクセス先に対する書込み要求なのか、読出し要求なのかを判定し、その判定結果と前記アクセス可否情報とマスタ識別情報とアクセス領域番号に基づいて、前記バスマスタが前記アクセス要求先の領域にアクセス可能か否かを判定する手段を有する。
【発明の効果】
【００１２】
本発明のバスアクセス制御装置によると、あるバスマスタもしくは複数のバスマスタが複数のセキュア処理を実行する場合、各セキュア処理に対応した専用領域を共有資源（例えば共有メモリ）上に確保することが可能となり、共有資源への不正アクセスを禁止し、セキュリティを向上させることができる。
【発明を実施するための最良の形態】
【００１３】
以下に各請求項の実施例について図面を参照して説明する。
【００１４】
（実施の形態１）
本発明の実施の形態１であるバスアクセス制御装置の動作を、図１と図２を用いて説明する。
【００１５】
実施の形態１であるバスアクセス制御装置１００におけるバスマスタ１  １０１は、３つのセキュアなアプリケーションを実行する。実行形態としては、あるアプリケーションが終了したら次のアプリケーションを起動するのではなく、３つのアプリケーションを同時に実行するものとする。
【００１６】
アクセス可否情報保持部１１０には、図２に示すように、各アプリケーションに対応した３つの領域に対するアクセス可否情報が蓄積されており、アプリケーション１用の領域１は０ｘ８０００＿００００〜８０００＿ＦＦＦＦであり（これは、アプリケーション１以外を実行している時には領域１へはアクセス禁止であることを意味している）、アプリケーション２用の領域２は０ｘ８１００＿００００〜８１ＦＦ＿ＦＦＦＦであり、アプリケーション３用の領域３は０ｘ８２００＿００００〜８２ＦＦ＿ＦＦＦＦである。バスマスタ１はメモリ１１３の領域１〜３へアクセスする際、アクセス先のアドレスなどと共に、その領域１〜３と１対１に対応したアクセス領域番号１０６を出力する。アクセス可否判定部１０９は、アクセス領域番号１０６とアクセス要求１０５に含まれるアクセス先のアドレス情報と、アクセス可否情報保持部１１０に保持されているアクセス可否情報に基づいて、バスマスタ１  １０１が要求するアクセス先にアクセス可能であるか否かを判定し、アクセス可否判定結果１１１をメモリＩＦ部１１２へ出力する。メモリＩＦ部１１２はアクセス可否判定結果がアクセス許可を示しているときのみ、メモリ１１３へ所望のアクセスを行う。
【００１７】
以上により、実行している３つのアプリケーションに対応した３つの専用領域を確保することが可能となる。
【００１８】
次に、本実施の形態におけるバスアクセス制御装置１００内のバスマスタ１  １０１からメモリ１１３へアクセス要求が行われた場合のアクセス制御処理について説明する。図３は、アクセス制御処理の一例を示すフローチャートである。
【００１９】
ステップＳ３０１：バスマスタ１がメモリ１１３へのアクセス要求を発行すると同時にアクセス領域番号１０６を出力する。
【００２０】
ステップＳ３０２：アクセス可否判定部１０９にて、アクセス可否情報保持部１１０に保持されているアクセス可否情報と、バスマスタ１からのアクセス領域番号１０６とアクセス要求１０５に含まれるアクセス先のアドレス情報に基づいて、アクセス可能か否かを判断し、その結果をアクセス可否判定結果１１１としてメモリＩＦ部１１２へ出力する。
【００２１】
ステップＳ３０３：メモリＩＦ部１１２は、アクセス可否判定結果１１１がアクセス許可を示している場合、メモリ１１３へ所望のアクセスを行い、結果をバスマスタ１  １０１へ返す。
【００２２】
ステップＳ３０４：メモリＩＦ部１１２は、アクセス可否判定結果１１１がアクセス不許可を示している場合、メモリ１１３へ所望のアクセスは行わず、ダミーアクセスやダミー応答を行う。ここで、ダミーアクセスとしては、ライト動作の場合、例えばアクセス先へデータをマスクして書き込みを行う、もしくはライトコマンドの代わりにリードコマンドを発行する等のアクセスを行う。また、リード動作の場合、例えばアクセスが許可されている領域に対してリードコマンドを発行する等のアクセスを行う。また、ダミー応答とは、実際のアクセス先から得た応答であるとバスマスタに誤認させるダミーの応答を意味する。例えば、バスマスタから共有メモリのアクセス禁止領域にライト動作を行う場合、要求どおりのライト動作を実行せずにアクセス要求の受け付け完了やデータ書き込み完了等の偽の応答を行う。また、アクセス禁止領域にリード動作を行う場合、要求どおりのリード動作を実行せずにアクセス要求の受け付け完了や違う領域のリードデータ応答等の偽の応答を行う。よって、共有メモリ上のアクセス禁止領域とアクセス許可領域とを見分けるのを困難にし、アクセス禁止領域へアクセスするための解析を妨げることができる。また、不正な解析を困難にするためには、メモリＩＦ１１２にてデータ書き込み時にバス暗号をかけ、データ読出し時に復号することも有効である。
【００２３】
（実施の形態２）
本発明の実施の形態２であるバスアクセス制御装置の動作を、図４と図５を用いて説明する。
【００２４】
ここでは、実施の形態１であるバスアクセス制御装置の動作と異なる点を中心に説明する。
【００２５】
マスタ識別部４０４はバスマスタ１〜３の内いずれかのバスマスタから共有メモリ４１３へのアクセス要求を受け付けると、どのバスマスタからのアクセス要求であるかを識別する。そして、アクセス要求及び識別結果をアクセス制御部４０８に出力する。複数のバスマスタからアクセス要求が行われている場合には、例えば優先度に応じてどのバスマスタからのアクセス要求に権利を与えるかを決定する。アクセス可否情報保持部４１０には、図５に示すように、各バスマスタが実行するセキュアな処理種別に対応した領域に対するアクセス可否情報が保持されており、それぞれの領域毎にアクセスを許可するバスマスタを示すマスタ識別情報と、その領域の開始アドレス、終了アドレス情報が含まれている。この例では、例えば領域１に関しては、バスマスタ１のみがアクセス可能であり、その領域は０ｘ８０００＿００００〜０ｘ８０００＿ＦＦＦＦであることを示しており、バスマスタ１以外のバスマスタはアクセス禁止であり、さらにバスマスタ１であっても領域番号が１以外であればアクセス禁止であることを意味する。アクセス可否判定部４０９は、マスタ識別部４０４からのマスタ識別情報４０７とアクセス領域番号４０６とアクセス要求４０５に含まれるアクセス先のアドレス情報とアクセス可否情報保持部４１０が保持するアクセス可否情報に基づいて、バスマスタが要求するアクセス先にアクセス可能であるか否かを判定し、アクセス可否判定結果１１１をメモリＩＦ部１１２へ出力する。
【００２６】
以上により、複数バスマスタが実行する複数のセキュアなアプリケーションに対応した専用領域を共有メモリ４１３上に確保することが可能となる。
【００２７】
次に、本実施の形態におけるバスアクセス制御装置４００内のバスマスタ１〜３から共有メモリ４１３へアクセス要求が行われた場合のアクセス制御処理について説明する。図６は、アクセス制御処理の一例を示すフローチャートである。
【００２８】
ステップＳ６０１：バスマスタ１〜３の内いずれかのバスマスタ、もしくはバスマスタ１〜３の内複数のバスマスタがメモリ４１３へのアクセス要求を発行する。複数のセキュアなアプリケーションを実行するバスマスタ１  １０１は、アクセス要求の発行と同時にアクセス領域番号１０６を出力する。
【００２９】
ステップＳ６０２：マスタ識別部４０４にてアクセス要求１０５を発行しているバスマスタを識別し、単一のバスマスタからのみアクセス要求が発行されているのか、もしくは複数バスマスタからアクセス要求が発行されているのかを識別する。
【００３０】
ステップＳ６０３：複数バスマスタからアクセス要求が発行されている場合は、それらの要求のうちどれを優先して処理するかを決定する。
【００３１】
ステップＳ６０４：アクセス可否判定部４０９にて、マスタ識別部４０４からのマスタ識別情報４０７とアクセス領域番号４０６とアクセス要求４０５に含まれるアクセス先のアドレス情報とアクセス可否情報保持部４１０に保持されているアクセス可否情報に基づいて、アクセス可能か否かを判断し、その結果をアクセス可否判定結果１１１としてメモリＩＦ部１１２へ出力する。
【００３２】
ステップＳ６０５：メモリＩＦ部１１２は、アクセス可否判定結果１１１がアクセス許可を示している場合、共有メモリ４１３へ所望のアクセスを行い、結果を所定のバスマスタへ返す。
【００３３】
ステップＳ６０６：メモリＩＦ部１１２は、アクセス可否判定結果１１１がアクセス不許可を示している場合、共有メモリ４１３へ所望のアクセスは行わず、ダミーアクセスやダミー応答を行う。
【００３４】
（実施の形態３）
本発明の実施の形態３であるバスアクセス制御装置の動作を、図７を用いて説明する。ここでは、実施の形態１、２であるバスアクセス制御装置の動作と異なる点を中心に説明する。
【００３５】
本実施の形態におけるバスマスタ１は複数種類のセキュアな処理（ここでは、セキュア処理１とセキュア処理２とする）を行う機能ブロックであり、その複数処理実行のために共有メモリ４０２を使用する。セキュア処理１用とセキュア処理２用の専用領域を確保する上で、アクセス可否判定部４０９での判定に使用するアクセス領域番号１０６がバスマスタ１により不正に付与されてしまうと、結果としてセキュア処理ごとの専用領域を確保することができなくなる。そのため、本実施の形態におけるバスマスタ１は、処理内容識別部７１５にて、ソフトウェアにより出力結果を不正に変更することができないハードウェアにより、処理内容と１対１に対応したアクセス領域番号１０６を出力することで、不正なアクセスができないようにする。アクセス領域番号１０６の生成は、上記のようにハードウェアにより実装することが望ましいが、セキュアなソフトウェア実行環境が整備されており、不正なソフトウェアで変更不可能であれば、セキュアなソフトウェア設定により生成しても良い。
【００３６】
（実施の形態４）
本発明の実施の形態４であるバスアクセス制御装置の動作を、図８と図９を用いて説明する。
【００３７】
ここでは、実施の形態１〜３であるバスアクセス制御装置の動作と異なる点を中心に説明する。
【００３８】
本実施の形態においては、バスマスタ２、バスマスタ３は共にプロセッサであり、各々がセキュアな処理を実行する。そのためのプログラム（コード）はそれぞれ暗号化された上でＦｌａｓｈメモリに格納されており、前記セキュアな処理実行時には、それらの暗号化コードは復号された後、共有メモリ上にロードされる場合、バスマスタ２用のコードはバスマスタ２のみが読み出し可能な領域へ、バスマスタ３用のコードはバスマスタ３のみが読み出し可能であることが望ましい。以下、それを実現するための仕組みを説明する。
【００３９】
バスマスタ１は平文データを暗号化して転送する、もしくは暗号化データやコードを復号して転送する暗復号ＤＭＡコントローラ（ＤＭＡＣ）である。暗復号ＤＭＡＣ８０１はバスマスタ２から設定可能な復号時に使用する鍵を指定するレジスタや、復号後のデータ転送先アドレスを設定するレジスタを少なくとも有し、さらに暗復号ＤＭＡＣ８０１はバスマスタ２より設定された復号鍵と１対１に対応した領域番号を生成する回路を有し、バスマスタ２からの指示により、Ｆｌａｓｈメモリ８１４に格納されているバスマスタ２用の暗号化コード（コード１）、バスマスタ３用の暗号化コード（コード２）を復号後、バスマスタ２から設定された転送先アドレスへ復号後の平文コードを転送するためのアクセス要求１０５ａを出力する。アクセス要求１０５ａを出力するのと同時に領域番号生成回路８１４が生成した領域番号をアクセス領域番号１０６として出力する。領域番号生成回路８１４の例としては、復号鍵の予め定められた位置に埋め込まれている領域番号を抜き出して出力する回路などが考えられる。
【００４０】
アクセス可否情報保持部８１０には、図９に示すように、領域毎にアクセス可能なバスマスタを示すマスタ識別情報とそのバスマスタに許可するアクセス種別と領域の開始アドレス、終了アドレスが含まれる。アクセス種別としては書込みのみ、もしくは読出しのみ、もしくは書込み、読出し両方などが考えられる。図９の例では、領域１（アドレス０ｘ８０００＿００００〜０ｘ８０ＦＦ＿ＦＦＦＦ）はバスマスタ１のみ書込み可能、バスマスタ２のみ読出し可能であり、領域２（アドレス０ｘ８２００＿００００〜８２ＦＦ＿ＦＦＦＦ）はバスマスタ１のみ書込み可能、バスマスタ３のみ読出し可能な領域を意味する。アクセス可否判定部８０９は、マスタ識別情報４０７とアクセス領域番号４０６とアクセス要求４０５に含まれるアクセス先のアドレス情報と、アクセス可否情報保持部８１０に保持されているアクセス可否情報に基づいて、バスマスタが要求するアクセス先にアクセス可能であるか否かを判定し、アクセス可否判定結果１１１をメモリＩＦ部１１２へ出力する。
【００４１】
以上により、バスマスタ２のセキュアプログラム専用領域として、暗復号ＤＭＡＣ８０１のみが書込み可能で、バスマスタ２のみが読出し可能な領域を確保でき、さらにバスマスタ３のセキュアプログラム専用領域として、暗復号ＤＭＡＣ８０１のみが書込み可能で、バスマスタ３のみが読出し可能な領域を確保することができる。つまり、Ｆｌａｓｈメモリ８１４からバスマスタ２およびバスマスタ３へセキュアプログラムを安全に受け渡すことができるため、不正な解析を防止することが可能となる。具体的には、暗復号ＤＭＡＣを不正に起動して、バスマスタ３用暗号化コード（コード２）をバスマスタ２セキュアプログラム領域に転送し、本来、コード２を読み出すことができないバスマスタ２でコード２を読み出して解析しようと試みた場合、復号鍵としてコード２用の鍵を指定すると、バスマスタ３用暗号化コードは正しく復号されるが、その復号データを共有メモリ８１３へ書き込むためのアクセス要求を発行する際に、コード２用の鍵と１対１に対応した領域２をアクセス領域番号として出力するため、アクセス要求１０５ａとして領域１のアドレスを指定して領域１へ書き込もうとしてもアクセス可否判定部８０９で、アクセス領域番号と転送先アドレスが整合取れないためアクセス不許可となる。復号鍵としてコード１用の鍵を指定すると、領域１への書き込みは許可されるが、バスマスタ３用暗号化コードを正しく復号することができない。
【００４２】
さらに、メモリＩＦ１１２は復号されたセキュアコードにバス暗号をかけて共有メモリ４１３へ書込み、共有メモリ４１３からセキュアコードを読み出すときは復号する機能を含むことで、共有メモリへの入出力バスを不正に観測されることにより、セキュリティが低下することを防ぐことができる。
【００４３】
次に、本実施の形態におけるバスアクセス制御装置８００内のバスマスタ１〜３から共有メモリ８１３へアクセス要求が行われた場合のアクセス制御処理について説明する。図９は、アクセス制御処理の一例を示すフローチャートである。
【００４４】
ステップＳ１００１：バスマスタ２が暗復号ＤＭＡＣ８０１のＤＭＡパラメータを設定し、ＤＭＡ起動する。ＤＭＡパラメータには、復号に使用する鍵の指定や復号データの転送先アドレスなどが含まれる。
【００４５】
ステップＳ１００２：暗復号ＤＭＡＣ８０２にて、設定された復号鍵を選択し、復号回路へ出力する。それと共に領域番号生成回路８１５にて復号鍵の中に埋め込まれている領域番号を抜き出し、ＤＭＡ制御回路８１６へ出力する。
【００４６】
ステップＳ１００３：ＤＭＡ制御回路８１６はＦｌａｓｈメモリ８１４から設定された復号鍵に対応した暗号化コードを読み出し、復号回路８１７へ出力する。復号回路８１７は暗号化コードを復号し、ＤＭＡ制御回路へ出力する。Ｆｌａｓｈメモリ８１４から読み出す暗号化コードを指定する手段として、転送元アドレスを設定するレジスタを設けても良い。
【００４７】
ステップＳ１００３：バスマスタ１（暗復号ＤＭＡＣ８０１）が復号後の平文データを転送するためのアクセス要求１０５ａを発行する。それと同時にアクセス先の領域番号１０６を出力する。
【００４８】
ステップＳ１００４〜Ｓ１００８は、ステップＳ６０２〜Ｓ６０６と同じである。
【００４９】
なお、本実施の形態においては、バスマスタ１を暗復号ＤＭＡＣとして説明したが、バスマスタ１は復号のみを行うＤＭＡＣでも良い。また、バスマスタ１はＪＴＡＧポートなどの外部ポートからＬＳＩ内部資源にアクセスするデバッガからのアクセス要求に対し、アクセスの可否を判定するデバッガ認証モジュールであっても良く、この場合、認証用の鍵と１対１で対応する領域番号を用いてセキュア領域へアクセスすることで、デバッガからのアクセス要求に対し、認証された領域にのみアクセス可能とすることが可能となる。認証用の鍵と１対１で対応する領域番号を生成する手段としては、認証に使用する鍵の一部に領域番号を含み、ハードウェアによりその領域番号を抜き出し、そのままアクセス領域番号として出力する手段などが考えられる。
【００５０】
（実施の形態５）
本発明の第５の実施の形態であるバスアクセス制御装置の動作を、図１１を用いて説明する。
【００５１】
ここでは、第１〜４の実施の形態であるバスアクセス制御装置の動作と異なる点を中心に説明する。
【００５２】
バスマスタ１は複数のセキュアなアプリケーションを実行するプロセッサであり、それらのコードは異なるアドレス空間、例えば異なる内蔵メモリ（不揮発メモリ）に格納される。プロセッサ１１０１はフェッチ先判定回路にてコードのフェッチ先空間を複数管理し、コードをフェッチして実行する際に、そのコードのフェッチ先空間、つまりアプリケーションの種類と１対１に対応したアクセス領域番号１０６を出力する。フェッチ先空間の管理は、開始アドレス１〜終了アドレス１までは領域１、開始アドレス２〜終了アドレス２までは領域２とする方法や、フェッチ先の空間が物理的に異なる複数のメモリである場合、チップセレクト信号により判定する方法や、プロセッサコア１１２１のプログラムカウンタの値により判定する方法などが考えられる。以上により、異なる領域のコード、つまり異なるアプリケーションのコードと１対１に対応した専用領域を共有メモリ上に確保することが可能となる。なお、内蔵メモリには、アプリケーションのコード全てを格納するのではなく、アプリケーションへの移行シーケンス（移行のきっかけ）のみを格納し、対応する共有メモリ上の専用領域にアプリケーションの本体が格納されていても良い。そうすることで、内蔵メモリ（不揮発メモリ）の容量を削減することが可能となる。
【００５３】
次に、本実施の形態におけるバスアクセス制御装置１１００内のバスマスタ１〜３から共有メモリ１１１３へアクセス要求が行われた場合のアクセス制御処理について説明する。図１２は、アクセス制御処理の一例を示すフローチャートである。
【００５４】
ステップＳ１２０１：プロセッサ１１０１が内蔵メモリ１もしくは内蔵メモリ２からコードをフェッチする。
【００５５】
ステップＳ１２０２：フェッチ先判定回路１１２０にて、プロセッサコア１１２１が実行するコードのフェッチ先を判定する。
【００５６】
ステップＳ１２０３：バスマスタ１（プロセッサコア１１２１）がアクセス要求１０５ａを発行するのと同時に実行するコードのフェッチ先と１対１に対応するアクセス領域情報１０６を出力する。
【００５７】
ステップＳ１２０４〜Ｓ１２０８は、ステップＳ６０２〜Ｓ６０６と同じである。
【産業上の利用可能性】
【００５８】
本発明にかかるバスアクセス制御装置を用いれば、あるバスマスタが複数のセキュア処理、例えば、複数のセキュアアプリケーション実行や、複数のセキュアプログラムの復号処理などを行う場合、それらの複数のセキュア処理に対応した専用領域を共有メモリ上に確保することが可能となる。そのため、秘匿処理を行うデジタル機器全般のセキュリティ向上ならびにメモリ共有化によるシステムコスト削減に利用することができる。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施の形態の構成図
【図２】本発明の第１の実施の形態のアクセス可否情報例を示す図
【図３】本発明の第１の実施の形態におけるアクセス制御処理の一例を示すフローチャート
【図４】本発明の第２の実施の形態の構成図
【図５】本発明の第２の実施の形態のアクセス可否情報例を示す図
【図６】本発明の第２の実施の形態におけるアクセス制御処理の一例を示すフローチャート
【図７】本発明の第３の実施の形態の構成図
【図８】本発明の第４の実施の形態の構成図
【図９】本発明の第４の実施の形態のアクセス可否情報例を示す図
【図１０】本発明の第４の実施の形態におけるアクセス制御処理の一例を示すフローチャート
【図１１】本発明の第５の実施の形態の構成図
【図１２】本発明の第５の実施の形態におけるアクセス制御処理の一例を示すフローチャート
【図１３】従来のバスアクセス制御装置の構成図
【図１４】従来のバスアクセス制御装置のアクセス可否情報例を示す図
【符号の説明】
【００６０】
１００    バスアクセス制御装置
１０１    バスマスタ１
１０５    アクセス要求
１０６    アクセス領域番号
１０８    アクセス制御部
１０９    アクセス可否判定部
１１０    アクセス可否情報保持部
１１１    アクセス可否判定結果
１１２    メモリＩＦ部
１１３    メモリ
４０４    マスタ識別部
４０７    マスタ識別情報
７１５    処理内容識別部
８１４    Ｆｌａｓｈメモリ
８１５    領域番号生成回路
８１６    ＤＭＡ制御回路
８１７    復号回路
１１１８    内蔵メモリ１
１１１９    内蔵メモリ２
１１２０    フェッチ先判定回路
１１２１    プロセッサコア
【図１】
2006293516.tif 000003
【図２】
2006293516.tif 000004
【図３】
2006293516.tif 000005
【図４】
2006293516.tif 000006
【図５】
2006293516.tif 000007
【図６】
2006293516.tif 000008
【図７】
2006293516.tif 000009
【図８】
2006293516.tif 000010
【図９】
2006293516.tif 000011
【図１０】
2006293516.tif 000012
【図１１】
2006293516.tif 000013
【図１２】
2006293516.tif 000014
【図１３】
2006293516.tif 000015
【図１４】
2006293516.tif 000016