(57)【要約】【課題】機密情報の漏洩を防止できるデータ出力制御装置を提供する。【解決手段】データ出力制御装置は、プロセッサ８から暗号化する指定とともに受信した第１のデータを暗号化する暗号化実行部２１と、暗号化された第１のデータ及びプロセッサ８から暗号化しない指定とともに受信した第２のデータのうちの何れかを出力する選択部２２と、暗号化された第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、プロセッサ８から第２のデータを受信する場合に第２のタイミングとなると選択部２２へ第２のデータを出力することを指示する出力制御部２４とを有する。【選択図】図２
2018117244.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサから暗号化する指定とともに受信した第１のデータを暗号化する暗号化実行部と、
暗号化された前記第１のデータ及び前記プロセッサから暗号化しない指定とともに受信した第２のデータのうちの何れかを出力する選択部と、
暗号化された前記第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、前記プロセッサから前記第２のデータを受信する場合に前記第２のタイミングとなると前記選択部へ前記第２のデータを出力することを指示する出力制御部と、
を有するデータ出力制御装置。
【請求項２】
所定の周期ごとにカウント値を更新するカウンタをさらに有し、
前記出力制御部は、前記第２のデータを受信する場合、前記カウント値が所定値となったときを前記第２のタイミングとし、一方、前記第１のデータを受信する場合、前記カウント値にかかわらず前記第１のデータを受信したときを前記第１のタイミングとする、請求項１に記載のデータ出力制御装置。
【請求項３】
前記カウンタによる前記カウント値の上限値は、所定の最小値以上かつ所定の最大値の範囲内で設定される、請求項１に記載のデータ出力制御装置。
【請求項４】
前記出力制御部は、前記データ出力制御装置から出力された前記第１のデータまたは前記第２のデータが書き込まれるメモリのうちの暗号化されたデータが記憶される第１のメモリ領域内のアドレスを前記プロセッサから受信すると前記暗号化する指定を受信したと判定し、前記メモリのうちの暗号化されないデータが記憶される第２のメモリ領域内のアドレスを前記プロセッサから受信すると前記暗号化しない指定を受信したと判定する、請求項１〜３の何れか一項に記載のデータ出力制御装置。
【請求項５】
第１のデータまたは第２のデータを出力するプロセッサと、
前記第１のデータまたは前記第２のデータが記憶されるメモリと、
前記プロセッサから受信した前記第１のデータまたは前記第２のデータを前記メモリへ出力するタイミングを制御するデータ出力制御装置と、を有し、
前記データ出力制御装置は、
前記プロセッサから暗号化する指定とともに受信した前記第１のデータを暗号化する暗号化実行部と、
暗号化された前記第１のデータ及び前記プロセッサから暗号化しない指定とともに受信した前記第２のデータのうちの何れかを出力する選択部と、
暗号化された前記第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、前記プロセッサから前記第２のデータを受信する場合に前記第２のタイミングとなると前記選択部へ前記第２のデータを出力することを指示する出力制御部と、
を有する情報処理装置。
【請求項６】
暗号化実行部により、プロセッサから暗号化する指定とともに受信した第１のデータを暗号化し、
選択部により、暗号化された前記第１のデータ及び前記プロセッサから暗号化しない指定とともに受信した第２のデータのうちの何れかを出力し、
出力制御部により、暗号化された前記第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、前記第２のデータを受信する場合に前記第２のタイミングとなると前記選択部へ前記第２のデータを出力することを指示する、
ことを含むデータ出力制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、機密情報を含むデータを扱うデータ出力制御装置、情報処理装置及びデータ出力制御方法に関する。
【背景技術】
【０００２】
人が撮影された画像など、個人情報などの機密情報を含むデータを扱う装置では、機密情報が第３者へ漏出することを防止することが求められる。そこで、対象となるデータの一部を加工して機密情報を識別不可能にしたり、あるいは、対象となるデータを低階調化または暗号化してから出力する技術が提案されている（例えば、特許文献１〜３を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平７−４４３７５号公報
【特許文献２】特開２０１０−２６５８８号公報
【特許文献３】特開２０１５−５９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、これらの技術では、対象となるデータに対して機密情報の漏洩を防止するための処理を実行するプロセッサが外部からクラッキングされると、対象となるデータに対してそのような処理が行われずに、そのまま外部へ出力される可能性がある。その結果として、第３者が機密情報を不正に入手することを防止できないことがある。
【０００５】
一つの側面では、本発明は、機密情報の漏洩を防止できるデータ出力制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、データ出力制御装置が提供される。このデータ出力制御装置は、プロセッサから暗号化する指定とともに受信した第１のデータを暗号化する暗号化実行部と、暗号化された第１のデータ及びプロセッサから暗号化しない指定とともに受信した第２のデータのうちの何れかを出力する選択部と、暗号化された第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、プロセッサから第２のデータを受信する場合に第２のタイミングとなると選択部へ第２のデータを出力することを指示する出力制御部とを有する。
【０００７】
他の実施形態によれば、情報処理装置が提供される。この情報処理装置は、第１のデータまたは第２のデータを出力するプロセッサと、第１のデータまたは第２のデータが記憶されるメモリと、プロセッサから受信した第１のデータまたは第２のデータをメモリへ出力するタイミングを制御するデータ出力制御装置とを有する。そしてデータ出力制御装置は、プロセッサから暗号化する指定とともに受信した第１のデータを暗号化する暗号化実行部と、暗号化された第１のデータ及びプロセッサから暗号化しない指定とともに受信した第２のデータのうちの何れかを出力する選択部と、暗号化された第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、プロセッサから第２のデータを受信する場合に第２のタイミングとなると選択部へ第２のデータを出力することを指示する出力制御部とを有する。
【０００８】
さらに他の実施形態によれば、データ出力制御方法が提供される。このデータ出力制御方法は、暗号化実行部により、プロセッサから暗号化する指定とともに受信した第１のデータを暗号化し、選択部により、暗号化された第１のデータ及びプロセッサから暗号化しない指定とともに受信した第２のデータのうちの何れかを出力し、出力制御部により、暗号化された第１のデータが出力可能となる第１のタイミングの頻度よりも、暗号化されない第２のデータが出力可能となる第２のタイミングの頻度を小さく設定し、第２のデータを受信する場合に第２のタイミングとなると選択部へ第２のデータを出力することを指示することを含む。
【発明の効果】
【０００９】
一つの側面では、機密情報の漏洩を防止できる。
【図面の簡単な説明】
【００１０】
【図１】一つの実施形態による情報処理装置の概略構成図である。
【図２】暗号化ユニットの概略構成図である。
【図３】非暗号化領域への書込みの際の各信号のタイミングを表すシーケンス図である。
【図４】暗号化されたデータと暗号化されないデータの出力可能タイミングの一例を示す図である。
【図５】暗号化ユニットによる揮発性メモリへのデータ出力制御処理の動作フローチャートである。
【発明を実施するための形態】
【００１１】
以下、図を参照しつつ、データ出力制御装置を有する情報処理装置について説明する。この情報処理装置は、例えば、コネクテッドホームなど、機密情報を含むデータを扱うセンシングシステムに実装される。そしてこの情報処理装置は、機密情報を含むデータに対して所定の処理を実行するプロセッサと、バスとの間に設けられた暗号化ユニットを有する。暗号化ユニットは、データ出力制御装置の一例であり、プロセッサから受け取った機密情報を含むデータを暗号化して、バスを介して接続されるメモリへその暗号化されたデータを書き込む。またこの暗号化ユニットは、プロセッサから受け取った処理結果を含むデータ（以下では、便宜上、コンテキストと呼ぶ）を暗号化せずにメモリへ書き込む。そして暗号化ユニットは、暗号化されないコンテキストがメモリに書き込み可能となるタイミングの頻度を、暗号化されるデータがメモリに書き込み可能となるタイミングの頻度よりも少なくする。これにより、仮にプロセッサがクラッキングされて機密情報を含むデータが暗号化されずに出力されたとしても、そのデータがメモリに書き込まれるのに要する所要時間が非常に長くなる。これにより、この情報処理装置は、機密情報を含むデータが外部からアクセス可能となることを実質的に防止して、機密情報が漏洩することを防止する。
【００１２】
図１は、一つの実施形態による情報処理装置の概略構成図である。
情報処理装置１は、制御プロセッサ２と、通信回路３と、不揮発性メモリ４と、揮発性メモリ５と、メモリインターフェース回路６と、カメラ７と、画像処理プロセッサ８と、専用メモリ９と、暗号化ユニット１０と、バス１１とを有する。情報処理装置１は、例えば、System-on-a-chip(SOC)などの形態で機密情報を扱うシステムに実装される。なお、情報処理装置１が有するこれらの各部は、一つのチップとして形成されてもよく、あるいは、複数のチップ上に別個に設けられてもよい。さらに、情報処理装置１は、マイクロホン、温度センサ、または赤外線センサなど、カメラ以外のセンサ（図示せず）を有していてもよい。
【００１３】
制御プロセッサ２、通信回路３、メモリインターフェース回路６及び暗号化ユニット１０は、それぞれ、バス１１と接続され、バス１１を介して各種のデータまたは信号を互いに通信する。また不揮発性メモリ４及び揮発性メモリ５は、それぞれ、メモリインターフェース回路６を介してバス１１と接続される。さらに、画像処理プロセッサ８は、暗号化ユニット１０を介してバス１１と接続される。さらにまた、カメラ７及び専用メモリ９は、バス１１を介さずに画像処理プロセッサ８と接続され、画像処理プロセッサ８との間でバス１１を介さずに画像または処理プログラムの受け渡しが可能となっている。
【００１４】
制御プロセッサ２は、一つまたは複数のプロセッサを有し、情報処理装置１全体を制御する。例えば、制御プロセッサ２は、制御プロセッサ２上で動作する制御プログラムにしたがって、あるいは、通信回路３を介して受信した外部からのコマンドに従って、画像処理プロセッサ８に実行させる処理を選択する。そして制御プロセッサ２は、画像処理プロセッサ８に、選択した処理を表す情報を含む制御コマンドをバス１１及び暗号化ユニット１０を介して画像処理プロセッサ８へ送信する。また制御プロセッサ２は、揮発性メモリ５から、画像処理プロセッサ８による処理結果を表すコンテキストを読み込んで、そのコンテキストに応じた処理を実行する。あるいは、制御プロセッサ２は、そのコンテキストを含む送信信号を生成し、その送信信号をバス１１を介して通信回路３へ渡す。
【００１５】
通信回路３は、情報処理装置１をインターネットなどの通信回線（図示せず）と接続するためのインターフェース回路であり、その通信回線の規格に従って情報を送信または受信する。通信回線の規格は、例えば、Ethernet（登録商標）とすることができる。そして通信回路３は、制御プロセッサ２から受け取った送信信号を通信回線を介して、センシングシステムのサーバ等の他の機器へ出力する。あるいは、通信回路３は、通信回線を介して受信したコマンドあるいは情報を、バス１１を介して制御プロセッサ２へ渡す。
【００１６】
不揮発性メモリ４は、例えば、マスクROMあるいはフラッシュメモリ（登録商標）といった、不揮発性の半導体メモリであり、画像処理プロセッサ８で実行される１以上の処理プログラムを記憶する。そして不揮発性メモリ４は、画像処理プロセッサ８から所定のアドレスに記憶されている処理プログラムの読み出し要求信号を受信すると、その処理プログラムをメモリインターフェース回路６へ出力する。そしてその処理プログラムは、メモリインターフェース回路６、バス１１及び暗号化ユニット１０を介して画像処理プロセッサ８へ読み込まれ、画像処理プロセッサ８を介して専用メモリ９に書き込まれる。
【００１７】
揮発性メモリ５は、読み書き可能な揮発性の半導体メモリであり、例えば、Double-Data-Rate Synchronous Dynamic Random Access Memory(DDR SDRAM)とすることができる。そして揮発性メモリ５は、情報処理装置１が動作している間に取得される、暗号化された画像またはコンテキストといった各種のデータを一時的に記憶する。本実施形態では、揮発性メモリ５には、機密情報を含むデータが暗号化された状態で記憶されるメモリ領域（以下、暗号化領域と呼ぶ）と、暗号化されないデータが記憶されるメモリ領域（以下、非暗号化領域と呼ぶ）とが別個に設けられる。なお、機密情報を含むデータは、例えば、カメラ７により生成された画像であり、暗号化されないデータは、例えば、コンテキストである。そして例えば、画像処理プロセッサ８から出力され、暗号化ユニット１０により暗号化されたデータが、バス１１及びメモリインターフェース回路６を介して揮発性メモリ５の暗号化領域に書き込まれる。また、画像処理プロセッサ８から出力され、暗号化されないデータが、バス１１及びメモリインターフェース回路６を介して揮発性メモリ５の非暗号化領域に書き込まれる。
【００１８】
また、非暗号化領域に記憶されているデータは、制御プロセッサ２により、バス１１及びメモリインターフェース回路６を介して読み出されてもよい。
【００１９】
メモリインターフェース回路６は、不揮発性メモリ４及び揮発性メモリ５をバス１１に接続するためのインターフェース回路である。そしてメモリインターフェース回路６は、バス１１が準拠するプロトコルにしたがって、画像処理プロセッサ８からの不揮発性メモリ４に対する読出し要求を処理する。さらに、メモリインターフェース回路６は、制御プロセッサ２または画像処理プロセッサ８からの揮発性メモリ５に対する読出し要求、書き込み要求などを処理する。そしてメモリインターフェース回路６は、バス１１から受け取ったデータ及びアドレスを揮発性メモリ５に渡したり、あるいは、不揮発性メモリ４から読み出された処理プログラムまたは揮発性メモリ５から読み出されたデータなどをバス１１へ出力する。
【００２０】
カメラ７は、所定の周期で、あるいは、画像処理プロセッサ８からの指示により、撮影対象物体が存在すると想定される撮影範囲を撮影してその撮影範囲が写った画像を生成する。なお、撮影対象物体は、例えば、人である。そしてカメラ７は、画像を生成する度に、その画像を、バス１１を介さずに画像処理プロセッサ８へ直接出力する。
【００２１】
画像処理プロセッサ８は、一つまたは複数のプロセッサを有し、制御プロセッサ２からの指示に従って、不揮発性メモリ４から処理プログラムを読み込んで専用メモリ９に保存する。また画像処理プロセッサ８は、カメラ７、あるいは暗号化ユニット１０から受け取った画像を専用メモリ９に保存する。そして画像処理プロセッサ８は、専用メモリ９に記憶されている処理プログラムに従って、専用メモリ９から読み出した画像に対する処理を実行する。そして画像処理プロセッサ８は、画像に対する処理を実行する度に、得られた処理結果を含むコンテキストを生成し、そのコンテキストを暗号化することを指定せずに暗号化ユニット１０へ出力する。また画像処理プロセッサ８は、専用メモリ９に記憶されている画像を読み出して、暗号化することの指定とともに、その画像を暗号化ユニット１０へ出力してもよい。例えば、画像処理プロセッサ８は、専用メモリ９のメモリ容量を超えるために専用メモリ９に保存できないものの、画像処理プロセッサ８による処理対象となり得る画像を、暗号化することの指定とともに、その画像を暗号化ユニット１０へ出力してもよい。
【００２２】
なお、画像処理プロセッサ８は、画像に対する処理として、画像から対象物を検出する処理、あるいは、対象物の状態を判定する処理を実行する。そのために、画像処理プロセッサ８は、例えば、ディープニューラルネットワーク、AdaBoostあるいはサポートベクトルマシンといった、対象物検出用に学習された識別器を用いて、あるいは、パターンマッチングにより、画像から対象物を検出してもよい。また、画像処理プロセッサ８は、例えば、検出された対象物の位置、あるいは、複数の連続する画像上での対象物の位置の変化と、対象物の状態との関係を表すテーブルを参照して、対象物の状態を判定してもよい。そして画像処理プロセッサ８は、処理結果を表すコンテキストとして、例えば、対象物が検出されたか否かの判定結果、検出された対象物の数、あるいは、検出された対象物の状態を表す情報を生成する。
【００２３】
専用メモリ９は、画像処理プロセッサ８が使用する専用のメモリであり、例えば、読み書き可能な揮発性メモリを有する。そして専用メモリ９は、画像処理プロセッサ８から、バス１１を介さずに処理プログラムまたは画像を受け取って記憶する。また専用メモリ９は、バス１１を介さずに、画像処理プロセッサ８へ、記憶している処理プログラムまたは画像を渡す。
【００２４】
暗号化ユニット１０は、データ出力制御装置の一例であり、画像処理プロセッサ８から受け取ったデータを暗号化して、あるいは暗号化せずに、バス１１及びメモリインターフェース回路６を介して揮発性メモリ５へ書き込む。また暗号化ユニット１０は、不揮発性メモリ４からバス１１及びメモリインターフェース回路６を介して受け取った処理プログラム、あるいは、制御プロセッサ２から受け取った制御コマンドを画像処理プロセッサ８へ渡す。さらに、暗号化ユニット１０は、揮発性メモリ５からバス１１及びメモリインターフェース回路６を介して受け取った、暗号化された画像を復号してから画像処理プロセッサ８へ渡す。
なお、暗号化ユニット１０の詳細については後述する。
【００２５】
バス１１は、所定のプロトコル（例えば、Advanced eXtensible Interface(AXI)）に従って動作するバスであり、バス１１に接続されている各ユニット間で通信される制御信号あるいはデータを中継する。
【００２６】
以下、暗号化ユニット１０の詳細について説明する。
図２は、暗号化ユニット１０の概略構成図である。暗号化ユニット１０は、暗号化実行部２１と、セレクタ２２と、カウンタ２３と、書き込み制御部２４と、読み込み制御部２５とを有する。暗号化ユニット１０が有するこれらの各部は、例えば、一つまたは複数の集積回路として実装される。
【００２７】
画像処理プロセッサ８から揮発性メモリ５へ書き込まれるデータ（本実施形態では、画像あるいはコンテキスト）は、所定のビット長ずつ暗号化実行部２１及びセレクタ２２へ入力される。なお、所定のビット長は、例えば、バス１１が一度に伝送可能なビット長（例えば、32ビット、64ビットあるいは128ビット）とすることができる。また、画像処理プロセッサ８から出力されるデータが書き込まれる揮発性メモリ５のアドレス、及び、暗号化ユニット１０への制御信号は、書き込み制御部２４に入力される。
【００２８】
暗号化実行部２１は、例えば、暗号鍵を記憶する不揮発性メモリと、暗号化処理を実行する演算回路とを有する。そして暗号化実行部２１は、画像処理プロセッサ８から、揮発性メモリ５へ書き込まれる、所定のビット長を持つデータを受け取る度に、そのデータを暗号鍵を用いて暗号化する。なお、暗号化実行部２１に記憶される暗号鍵は、暗号化ユニット１０外には出力されない。また、暗号化実行部２１による暗号化処理は、例えば、Data Encryption Standard(DES)あるいはAdvanced Encryption Standard(AES)といった共通鍵暗号方式、あるいは、RSA暗号といった公開鍵暗号方式に準拠するものであってもよい。そして暗号化実行部２１は、暗号化されたデータをセレクタ２２へ出力する。
【００２９】
セレクタ２２は、選択部の一例であり、書き込み制御部２４から受け取った選択信号に基づいて、暗号化実行部２１から受け取った暗号化されたデータ及び画像処理プロセッサ８から受け取った暗号化されていないデータの何れかをバス１１へ出力する。すなわち、書き込み制御部２４から受け取った選択信号が暗号化されていないデータを出力することを示す場合、セレクタ２２は、画像処理プロセッサ８から受け取った、暗号化されていないデータ（例えば、コンテキスト）をバス１１へ出力する。一方、書き込み制御部２４から受け取った選択信号が暗号化実行部２１から受け取ったデータを出力することを示す場合、セレクタ２２は、暗号化実行部２１から受け取った暗号化されたデータ（例えば、画像の一部）をバス１１へ出力する。
【００３０】
なお、セレクタ２２は、バッファ（図示せず）を有していてもよい。そしてセレクタ２２は、書き込み制御部２４から選択信号を受け取るまで、暗号化実行部２１から受け取った暗号化されたデータまたは画像処理プロセッサ８から受け取った暗号化されていないデータをバッファに一時的に保存してもよい。そしてセレクタ２２は、選択信号を受け取ると、バッファに保存されている、出力指示されたデータを出力すればよい。
【００３１】
カウンタ２３は、予め設定されたカウント上限値から、カウント値を、暗号化ユニット１０を動作させるクロックのクロック周期ごとに１デクリメントする。そしてカウンタ２３は、カウント値を更新する度に、カウント値を書き込み制御部２４及び画像処理プロセッサ８へ出力する。またカウンタ２３は、書き込み制御部２４からリセット信号を受け取ると、カウント値をカウント上限値に設定する。
【００３２】
本実施形態では、カウント値が０になると、書き込み制御部２４は、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みを許可する。一方、カウント値が０以外の場合は、書き込み制御部２４は、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みを許可しない。
【００３３】
なお、カウント上限値及びクロック周期は、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みが許容されるタイミングの頻度に応じて設定される。さらに、非暗号化領域への書き込みが許容されるタイミングの頻度は、例えば、コンテキストが出力される頻度としては十分であり、かつ、画像を揮発性メモリ５の非暗号化領域に書き込むには不十分な頻度となるように設定されることが好ましい。
【００３４】
例えば、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みが許容されるタイミングの頻度が1byte/secに設定されるとする。そして非暗号化領域への１回の書き込みの際のデータ（すなわち、ワード）のビット長が64ビットであるとする。この場合、例えば、暗号化ユニット１０のクロック周波数が100MHz（すなわち、クロック周期が0.01μsec）に設定され、かつ、カウント上限値は800M（すなわち、8億カウント）に設定されればよい。また、画像処理プロセッサ８から揮発性メモリ５への書き込みにバースト転送が用いられる場合には、クロック周波数が100MHzであると、カウント上限値は800Mxbに設定されればよい。なお、パラメータbは、１回のバースト転送で書き込み可能なワードの数（バースト数）である。例えば、バースト数bが16であれば、カウント上限値は、800Mx16=12,800Mとなる。このように、非暗号化領域への画像の書き込みに要する時間が十分長くなるよう、１回の書き込みの際のデータサイズと比例するように、カウント上限値が設定されることが好ましい。
【００３５】
画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みが許容されるタイミングの頻度が1byte/secである場合、例えば、640x480画素を持つRGB画像の書き込みに要する時間は256時間(640x480x3=921,600byte/(60x60x1=3,600byte/h)=256h)となる。このように、揮発性メモリ５の非暗号化領域への書き込みが許容されるタイミングの頻度が制限されることで、画像のような比較的大きなサイズを持つ、機密情報を含むデータを現実的な所要時間で非暗号化領域に書き込むことが防止される。
【００３６】
書き込み制御部２４は、出力制御部の一例であり、画像処理プロセッサ８から揮発性メモリ５へのデータの書き込みタイミングを制御する。本実施形態では、書き込み制御部２４は、画像処理プロセッサ８から書き込み要求信号及び書き込み先のアドレスを受け取ると、そのアドレスを参照して、揮発性メモリ５の非暗号化領域への書き込みか、あるいは暗号化領域への書き込みかを判定する。そのために、例えば、揮発性メモリ５の非暗号化領域に対応するアドレスの範囲と暗号化領域に対応するアドレスの範囲とを表すテーブルが、書き込み制御部２４が有する不揮発性メモリに予め保存される。そして書き込み制御部２４は、例えば、そのテーブルを参照して、画像処理プロセッサ８から受け取ったアドレスが非暗号化領域に含まれるか、暗号化領域に含まれるかを判定すればよい。
【００３７】
書き込み先のアドレスが暗号化領域に含まれる場合、書き込み制御部２４は、カウンタ２３のカウント値にかかわらず、セレクタ２２に対して、暗号化実行部２１から受け取った暗号化されたデータを出力することを示す選択信号を出力する。すなわち、暗号化されるデータを受信したときが、そのデータが出力可能なタイミングとなる。また書き込み制御部２４は、書き込み先のアドレスをバス１１へ出力する。
【００３８】
一方、書き込み先のアドレスが非暗号化領域に含まれる場合、書き込み制御部２４は、カウンタ２３のカウント値が０になるまで待機する。そして書き込み制御部２４は、カウンタ２３のカウント値が０になると、セレクタ２２に対して、画像処理プロセッサ８から直接受け取ったデータを出力することを示す選択信号を出力する。すなわち、カウント値が０になるときが、暗号化されないデータが出力可能なタイミングとなる。また書き込み制御部２４は、書き込みを実行する制御信号及び書き込み先のアドレスをバス１１へ出力する。そして書き込み制御部２４は、バス１１からデータの書込みが完了したことを表す書き込み完了信号を受け取ると、カウンタ２３をリセットするとともに、書き込み完了信号を画像処理プロセッサ８へ出力する。これにより、書き込み制御部２４は、非暗号化領域への書き込みが許容されるタイミングの頻度を暗号化領域への書き込みが許容されるタイミングの頻度よりも少なくすることができる。
【００３９】
なお、画像処理プロセッサ８は、揮発性メモリ５の非暗号化領域にデータを書き込む場合、カウンタ２３から受け取ったカウント値を参照して、カウント値が０になるとデータ（すなわち、コンテキスト）を暗号化ユニット１０へ出力してもよい。一方、画像処理プロセッサ８は、揮発性メモリ５の暗号化領域にデータ（すなわち、画像）を書き込む場合、書き込み要求信号及び書き込み先のアドレスとともに、データを暗号化ユニット１０へ出力してもよい。これにより、画像処理プロセッサ８は、非暗号化領域にデータを書き込む際に、その書き込みが終了するまで他の処理を待機する時間を短縮できる。
【００４０】
図３は、非暗号化領域への書込みの際の各信号のタイミングを表すシーケンス図である。図３において、横軸は時間を表す。１番上の波形３０１は、暗号化ユニット１０のクロック信号の波形を表す。上から２番目の波形３０２は、画像処理プロセッサ８からの書き込み先のアドレスADDRの出力タイミングを表す。また、上から３番目の波形３０３は、画像処理プロセッサ８からの書き込み要求信号AVALID_inの出力タイミングを表す。上から４番目の波形３０４は、書き込み制御部２４から画像処理プロセッサ８への書き込み完了信号AREADY_outの出力タイミングを表す。上から５番目の波形３０５は、カウンタ２３のカウンタ値を表す。上から６番目の波形３０６は、書き込み制御部２４からバス１１への書き込み実行信号AVALID_outの出力タイミングを表す。そして一番下の波形３０７は、バス１１から書き込み制御部２４への書き込み完了信号AREADY_inの出力タイミングを表す。なお、波形３０２、３０３、３０４、３０６及び３０７において、波形が立ち上がるタイミングが、その波形に対応する信号の出力または書き込みの実行が開始されるタイミングを表す。また、波形が立ち上がっている期間が、その波形に対応する信号が出力されている期間、あるいは、書き込みが実行されている期間を表す。
【００４１】
図３に示されるように、画像処理プロセッサ８からアドレス及び書き込み要求信号AVALID_inが出力開始されたタイミングでは、カウンタ２３のカウント値が０でないため、書き込み制御部２４からバス１１への書き込み実行信号AVALID_outは出力されない。そしてカウンタ２３のカウント値が０になった次のタイミングで、書き込み実行信号AVALID_outが出力される。そして書き込み制御部２４は、書き込み完了信号AREADY_inを受け取ると、次のタイミングでカウンタ２３をリセットして、カウント値をその上限値Rに設定するとともに、画像処理プロセッサ８へ書き込み完了信号AREADY_outを出力する。画像処理プロセッサ８は、書き込み完了信号AREADY_outを受け取った次のタイミングで、アドレスの出力及び書き込み要求信号AVALID_inの出力を停止する。
【００４２】
図４は、暗号化されたデータと暗号化されないデータの出力可能タイミングの一例を示す図である。図４において、横軸は時間を表す。また、一番上の波形４０１は、暗号化ユニット１０のクロック信号の波形を表す。上から２番目のブロック４０２は、暗号化されたデータが出力可能なタイミング、すなわち、暗号化されたデータを揮発性メモリ５に書き込み可能なタイミングを表す。そして一番下のブロック４０３は、暗号化されないデータが出力可能なタイミング、すなわち、暗号化されないデータを揮発性メモリ５に書き込み可能なタイミングを表す。図４に示されるように、暗号化されないデータを出力可能なタイミングの頻度が、暗号化されたデータを出力可能なタイミングの頻度と比較して少ないことが分かる。
【００４３】
読み込み制御部２５は、画像処理プロセッサ８への制御コマンド及びデータの読み込みを制御する。例えば、読み込み制御部２５は、バス１１を介して受け取った制御プロセッサ２からの制御コマンドを画像処理プロセッサ８へ渡す。また、読み込み制御部２５は、画像処理プロセッサ８から読み出し要求信号及び不揮発性メモリ４または揮発性メモリ５のアドレスを受け取ると、その読み出し要求信号及びアドレスをバス１１を介してメモリインターフェース回路６へ出力する。そして読み込み制御部２５は、処理プログラムを読み込む場合、不揮発性メモリ４から、メモリインターフェース回路６及びバス１１を介して、指定したアドレスに記憶されている処理プログラムを受け取って、その処理プログラムを画像処理プロセッサ８へ渡す。
【００４４】
また、読み込み制御部２５は、揮発性メモリ５に記憶されているデータを読み込む場合、揮発性メモリ５から、メモリインターフェース回路６及びバス１１を介して、指定したアドレスに記憶されているデータを受け取る。そして読み込み制御部２５は、そのデータを画像処理プロセッサ８へ渡す。なお、読み込み制御部２５は、指定したアドレスが暗号化領域に含まれている場合、すなわち、指定したアドレスに格納されているデータが暗号化されている場合、そのデータを復号する。そして読み込み制御部２５は、復号したデータを画像処理プロセッサ８へ渡す。その際、読み込み制御部２５は、暗号化実行部２１が有する暗号鍵または対となる鍵を用いて暗号化されているデータを復号すればよい。なお、復号に利用される鍵は、例えば、読み込み制御部２５が有する不揮発性メモリに予め保存されればよく、その鍵は、暗号化ユニット１０外へは出力されない。
【００４５】
なお、変形例によれば、処理プログラムも、暗号化実行部２１が実行する暗号化処理によって暗号化された状態で不揮発性メモリ４に記憶されていてもよい。この場合には、読み込み制御部２５は、不揮発性メモリ４から受け取った、暗号化された処理プログラムも復号してから画像処理プロセッサ８へわたせばよい。
【００４６】
図５は、暗号化ユニット１０による揮発性メモリ５へのデータ出力制御処理の動作フローチャートである。暗号化ユニット１０は揮発性メモリ５へデータを書き込む度に、下記の動作フローチャートに従ってデータ出力制御処理を実行すればよい。
【００４７】
書き込み制御部２４は、画像処理プロセッサ８から受け取った、揮発性メモリ５の書込み先のアドレスが暗号化領域に含まれるか否か判定する（ステップＳ１０１）。書き込み先のアドレスが暗号化領域に含まれる場合（ステップＳ１０１−Ｙｅｓ）、書き込み制御部２４は、カウンタ値にかかわらず、セレクタ２２へ、暗号化されたデータを出力することを示す選択信号を出力する（ステップＳ１０２）。そしてセレクタ２２は、暗号化実行部２１により暗号化されたデータをバス１１へ出力するとともに、書き込み制御部２４は、書き込み先のアドレスをバス１１へ出力する（ステップＳ１０３）。
【００４８】
一方、書き込み先のアドレスが非暗号化領域に含まれる場合（ステップＳ１０１−Ｎｏ）、書き込み制御部２４は、カウンタ２３のカウント値が０か否か判定する（ステップＳ１０４）。カウント値が０でなければ（ステップＳ１０４−Ｎｏ）、書き込み制御部２４は、次のクロックタイミングまで待機する。またカウンタ２３は、カウント値を１デクリメントする（ステップＳ１０５）。そして書き込み制御部２４は、ステップＳ１０４以降の処理を繰り返す。
【００４９】
一方、カウント値が０であれば（ステップＳ１０４−Ｙｅｓ）、書き込み制御部２４は、セレクタ２２へ、画像処理プロセッサ８から直接受け取ったデータを出力することを示す選択信号を出力する（ステップＳ１０６）。そしてセレクタ２２は、画像処理プロセッサ８から受け取った、暗号化されていないデータをバス１１へ出力するとともに、書き込み制御部２４は、書き込み先のアドレスをバス１１へ出力する（ステップＳ１０７）。
【００５０】
そして書き込み制御部２４は、バス１１から書き込み完了信号を受け取ると、カウンタ２３をリセットするとともに、書き込みが終了したことを画像処理プロセッサ８へ通知する（ステップＳ１０８）。
ステップＳ１０３またはＳ１０８の後、暗号化ユニット１０は、データ出力制御処理を終了する。
【００５１】
以上に説明してきたように、この情報処理装置は、外部からアクセス可能な揮発性メモリの非暗号化領域へ書き込み可能となるタイミングの頻度を、暗号化領域へ書き込み可能となるタイミングの頻度よりも少なくなるように、非暗号化領域への書き込みを制限する。そのため、この情報処理装置は、仮にクラッキングされたとしても、機密情報が含まれるデータが暗号化されずに非暗号化領域へ書き込まれるのに要する所要時間を非常に長くすることができる。その結果として、この情報処理装置は、機密情報が漏えいすることを防止できる。
【００５２】
なお、変形例によれば、カウンタ２３は、カウント値をクロック周期ごとに１ずつインクリメントしてもよい。そして書き込み制御部２４は、カウント値が上限値に達したときに、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域への書き込みを許可し、セレクタ２２へ、暗号化されないデータを出力することを指示する選択信号を送信してもよい。そして書き込み制御部２４は、非暗号化領域への書き込みが完了すると、カウンタ２３をリセットして、カウント値を０に設定してもよい。
【００５３】
また他の変形例によれば、カウンタ２３のカウントの上限値は、書き込み制御部２４により、所定の最小値から所定の最大値の範囲内で変更可能であってもよい。これにより、例えば、制御プロセッサ２がコンテキストを参照して、画像処理プロセッサ８による処理が行われる間隔を短くした方が良いと判断した場合に、書き込み制御部２４に指示してカウントの上限値を小さくすることができる。その結果として、暗号化ユニット１０は、非暗号化領域への書き込み可能となるタイミングの頻度を増やすことができる。
【００５４】
ただし、設定可能なカウントの上限値の設定可能な最小値以下のカウントはハードウェアによる処理として実行されるよう、カウンタ２３が実装されることが好ましい。例えば、カウント値を表すビット列のうち、設定可能な最小値に対応する下位のビット列については、ハードウェアによりカウントされることが好ましい。これにより、画像処理プロセッサ８から揮発性メモリ５の非暗号化領域へ書き込み可能となるタイミングの頻度が一定以上になることが防止される。
【００５５】
また他の変形例によれば、画像処理プロセッサ８は、揮発性メモリ５へ書き込むデータ及びそのデータが書き込まれるアドレスとともに、そのデータを暗号化するか否かを指示する制御信号を暗号化ユニット１０へ通知してもよい。この場合、暗号化ユニット１０の書き込み制御部２４は、その制御信号を参照して、データを出力するタイミングを決定してもよい。すなわち、書き込み制御部２４は、制御信号が、データを暗号化しないことを示している場合には、カウンタ２３のカウンタ値が０になった場合にそのデータを出力することを許可してもよい。一方、書き込み制御部２４は、制御信号が、データを暗号化することを示している場合には、カウンタ２３のカウンタ値にかかわらず、暗号化実行部２１により暗号化されたそのデータを出力することを許可してもよい。
この変形例によれば、情報処理装置１は、揮発性メモリ５において、暗号化領域と非暗号化領域とを区別する必要が無いので、揮発性メモリ５の利用効率を向上できる。
【００５６】
さらに他の変形例によれば、暗号化ユニット１０は、カウンタ２３の代わりにタイマを有していてもよい。そして書き込み制御部２４は、暗号化されないデータについて、タイマにより計時される時間が所定時間に達したときに、出力を許可してもよい。そして書き込み制御部２４は、暗号化されないデータの揮発性メモリ５への書き込みが完了したことをバス１１から通知されると、タイマをリセットしてもよい。なお、この変形例でも、書き込み制御部２４は、暗号化されるデータについては、タイマにより計時される時間にかかわらず、そのデータを受け取る度に、そのデータの出力を許可してもよい。
【００５７】
さらに他の変形例によれば、暗号化ユニット１０のセレクタ２２は、暗号化実行部２１よりも画像処理プロセッサ８側に設けられてもよい。この場合には、セレクタ２２は、書き込み制御部２４から暗号化されたデータを出力することを指示する選択信号を受信すると、画像処理プロセッサ８から受信したデータを暗号化実行部２１へ出力する。そして暗号化実行部２１が、暗号化されたデータをバス１１へ出力すればよい。一方、セレクタ２２は、書き込み制御部２４から暗号化されないデータを出力することを指示する選択信号を受信すると、画像処理プロセッサ８から受信したデータをバス１１へ直接出力する。
この変形例によれば、暗号化されることが指示されていないデータに対する暗号化処理が実行されないので、暗号化ユニット１０による演算量が減少し、その結果として情報処理装置１全体の消費電力が削減される。
【００５８】
さらに他の変形例によれば、機密情報が含まれるデータは画像でなくてもよい。例えば、機密情報が含まれるデータは、デプスカメラといった３次元センサにより生成される距離データ、マイクロホンにより生成される音声信号、あるいは、赤外線センサにより生成される温度分布などであってもよい。この場合、機密情報が含まれるデータを生成するセンサが、上記の実施形態または変形例による暗号化ユニットを介してバスに接続されるプロセッサと直接接続されればよい。例えば、機密情報が含まれるデータが音声信号である場合、情報処理装置は、カメラ７及び画像処理プロセッサ８の代わりに、マイクロホン及び音声処理用のプロセッサを有していてもよい。そしてマイクロホンが、機密情報である、集音対象の音声を含む音声信号を生成し、その音声信号を、バスを介さずに音声処理用のプロセッサへ出力してもよい。そして音声処理用のプロセッサが、上記の実施形態または変形例による画像処理プロセッサと同様に、音声信号を揮発性メモリに書き込む際には、揮発性メモリの暗号化領域に含まれるアドレスを指定して、暗号化ユニットにより音声信号を暗号化させてもよい。また、音声処理用のプロセッサは、音声信号に対する処理結果を含むコンテキストを揮発性メモリに書き込む際には、揮発性メモリの非暗号化領域に含まれるアドレスを指定してもよい。
【００５９】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００６０】
１    情報処理装置
２    制御プロセッサ
３    通信回路
４    不揮発性メモリ
５    揮発性メモリ
６    メモリインターフェース回路
７    カメラ
８    画像処理プロセッサ
９    専用メモリ
１０    暗号化ユニット
１１    バス
２１    暗号化実行部
２２    セレクタ
２３    カウンタ
２４    書き込み制御部
２５    読み込み制御部
【図１】
2018117244.tif 000003
【図２】
2018117244.tif 000004
【図３】
2018117244.tif 000005
【図４】
2018117244.tif 000006
【図５】
2018117244.tif 000007