(57)【要約】【課題】セキュリティ強度を高めるとともに、メインプロセッサ装置であるＣＰＵの処理負荷を低減する構成を実現する。【解決手段】ＣＰＵ１０１は、暗号化されている暗号化画像データを受信し、受信した暗号化画像データを復号することなくＧＰＵ１０５に送信し、ＧＰＵ１０５では、受信した暗号化画像データを内部メモリであるデバイスメモリ１０９に格納し、デバイスメモリ１０９内の暗号化画像データに対して復号処理、デコード処理を行う。これにより、暗号化されていないデータがダンプされることがなく、また、ＣＰＵ１０１では暗号化画像データの復号処理を行わないので、ＣＰＵ１０１の処理負荷を低減することができる。【選択図】図１
2012151642.tif 000002
【特許請求の範囲】
【請求項１】
暗号化されている暗号化データを受信し、受信した暗号化データを復号することなく送信するメインプロセッサ装置と、
内部メモリを有し、
前記メインプロセッサ装置から送信された前記暗号化データを受信し、受信した暗号化データを前記内部メモリに格納し、前記内部メモリ内の前記暗号化データに対して復号処理を行うサブプロセッサ装置とを有することを特徴とするデータ処理システム。
【請求項２】
前記メインプロセッサ装置は、
符号化されたデータが暗号化されている暗号化データを前記サブプロセッサ装置に送信し、
前記サブプロセッサ装置は、
受信した暗号化データを前記内部メモリに格納し、前記内部メモリ内の前記暗号化データに対して暗号化に対する復号処理及び符号化に対する復号処理を行うことを特徴とする請求項１に記載のデータ処理システム。
【請求項３】
前記サブプロセッサ装置は、
受信した暗号化データを所定のデータサイズに分割して前記内部メモリに格納し、前記内部メモリ内の複数の分割された暗号化データの復号処理を並列して行うことを特徴とする請求項１又は２に記載のデータ処理システム。
【請求項４】
前記メインプロセッサ装置は、
前記サブプロセッサ装置が前記内部メモリ内の前記暗号化データに対して復号処理を行っている際に、前記サブプロセッサ装置が復号処理を行っている暗号化データの次に前記サブプロセッサ装置に復号処理を行わせる暗号化データを前記サブプロセッサ装置に送信し、
前記サブプロセッサ装置は、
前記内部メモリ内の前記暗号化データに対して復号処理を行っている際に前記前記メインプロセッサ装置から送信された前記暗号化データを受信し、前記内部メモリのうち、復号処理中の暗号化データが格納されている領域と異なる領域に受信した暗号化データを格納することを特徴とする請求項１〜３のいずれかに記載のデータ処理システム。
【請求項５】
前記メインプロセッサ装置は、
画像データの暗号化データを送信し、
前記サブプロセッサ装置は、
所定の表示装置に接続されており、
前記メインプロセッサ装置から送信された前記画像データの暗号化データを受信し、受信した前記画像データの暗号化データを前記内部メモリに格納し、前記内部メモリ内の前記画像データの前記暗号化データに対して復号処理を行い、復号処理を経て得られた画像データを前記表示装置に出力することを特徴とする請求項１〜４のいずれかに記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号化されたデータを復号するプロセッサ装置に関する。
以下では、暗号化されたデータの例として、暗号化された画像データを説明する。
【背景技術】
【０００２】
例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）上でＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）２やＨ．２６４などの圧縮符号化された画像データを再生する場合、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や専用コーデックを使ってこれらをデコードし、表示データをＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）に渡して表示する。
一方でビデオや監視映像等、画像の電子化に伴い、これらのコンテンツを不正な閲覧から守るため、これらの画像データに暗号化を施す場合がある。
【０００３】
暗号化されたデータを復号し、デコード・表示する際、ＣＰＵとＧＰＵを主に使用してこれらを実現する。
中でも、ＣＰＵで暗号の復号と画像データのデコードを行い、ＧＰＵにデータを転送する際に暗号化し、ＧＰＵで暗号を復号して表示するものがある（例えば、特許文献１、特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−９０８８９号公報
【特許文献２】特開２００８−２９９６１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１及び特許文献２によれば、画像データはＣＰＵで暗号化され、ＧＰＵ上で復号される。
そのため、暗号前の画像データはＣＰＵからアクセスできるメモリやハードディスク上に展開される。
そのため、これらメモリやハードディスクから暗号化されていない画像データがダンプされる可能性がある。
また、ＣＰＵで暗号の復号と暗号前の画像データのデコードを行なうため、ＣＰＵ負荷が増大する。
【０００６】
この発明は、上記のような課題を解決することを主な目的の一つとしており、セキュリティ強度を高めるとともに、メインプロセッサ装置であるＣＰＵの処理負荷を低減する構成を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ処理システムは、
暗号化されている暗号化データを受信し、受信した暗号化データを復号することなく送信するメインプロセッサ装置と、
内部メモリを有し、
前記メインプロセッサ装置から送信された前記暗号化データを受信し、受信した暗号化データを前記内部メモリに格納し、前記内部メモリ内の前記暗号化データに対して復号処理を行うサブプロセッサ装置とを有することを特徴とする。
【発明の効果】
【０００８】
本発明では、暗号化データの復号処理はサブプロセッサ装置の内部メモリで行われるため、暗号化されていないデータがダンプされることがなく、また、メインプロセッサ装置では暗号化データの復号処理を行わないので、メインプロセッサ装置の処理負荷を低減することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るデータ処理システムの構成例を示す図。
【図２】実施の形態１に係るＣＰＵとＧＰＵ間の動作例を示す図。
【図３】実施の形態１に係るＧＰＵ内で実行されるカーネルと処理されるデータとの関係を示す図。
【図４】実施の形態２に係るＧＰＵ内で実行されるカーネルと処理されるデータとの関係を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
本実施の形態では、画像データの暗号の復号処理、デコード処理、表示処理をＧＰＵ上で実行することで、ＣＰＵの処理負荷を低減し、高速に動作するデータ処理システムを説明する。
【００１１】
図１は、本実施の形態に係るデータ処理システム１００の構成例を示すブロック図である。
【００１２】
図１において、ＣＰＵ１０１はメモリ１０２やＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０３、通信ポート１０４、ＧＰＵ１０５とバス１０７で接続されている。
これらはバス１０７を通じて直接接続されていてもよいし、ブリッジを経由して接続されていてもよい。
なお、ＣＰＵ１０１はメインプロセッサ装置の例であり、ＧＰＵ１０５はサブプロセッサ装置の例である。
【００１３】
ＧＰＵ１０５は少なくとも制御部１０８、デバイスメモリ１０９（内部メモリの例）及びデータ処理部１１０を搭載する。
制御部１０８は、ＣＰＵ１０１からデータ送信のコールを受け、ＣＰＵ１０１から送信された暗号化された画像データ（符号化されたデータが暗号化されている暗号化データの例、以下、暗号化画像データという）をデバイスメモリ１０９に展開する。
また、制御部１０８は、データ取得のコールを受けると、デバイスメモリ１０９上のデータをＣＰＵに送信する。
また、制御部１０８は、ＣＰＵ１０１からのプログラム実行（カーネル実行と呼ぶ）のコールを受けると、データ処理部１１０を使ってデバイスメモリ１０９上のデータを処理する。
さらに、カーネル実行によって、演算結果をモニタ１０６に出力する。
【００１４】
ＣＰＵ１０１は、通信ポート１０４やＨＤＤ１０３から再生対象となる暗号化画像データを受信し、ＧＰＵ１０５に転送する。
なお、ＣＰＵ１０１は、受信した暗号化画像データを復号することなく、そのままＧＰＵ１０５に転送する。
また、ＣＰＵ１０１は、転送する際、ＧＰＵ１０５に搭載されているデバイスメモリ１０９のサイズを上限として、暗号化画像データを分割して送付してもよい。
暗号化データの転送の後、ＣＰＵ１０１はＧＰＵ１０５に対してカーネル実行をコールし、ＧＰＵ１０５は、カーネル実行として、復号処理（暗号化に対する復号処理）、画像のデコード処理（符号化に対する復号処理）、デコード処理後の画像データの表示を行なう。
ＣＰＵ１０１は、ＧＰＵ１０５によるカーネル実行が終了したら、次の暗号化画像データをＧＰＵ１０５に転送する。
カーネル実行は復号、デコード、表示を１つのカーネルで実行してもよいし、復号、デコード、表示を別々のカーネルで実行してもよい。
【００１５】
ＧＰＵ１０５で実行するプログラムはＣＵＤＡ（Ｃｏｍｐｕｔｅ  Ｕｎｉｆｉｅｄ  Ｄｅｖｉｃｅ  Ａｒｃｈｉｔｅｃｔｕｒｅ）やＯｐｅｎＣＬ（Ｏｐｅｎ  Ｃｏｍｐｕｔｉｎｇ  Ｌａｎｇｕａｇｅ）等のプログラミング言語で記述する。
暗号の復号処理や画像のデコード処理は前記プログラミング言語を使って記述する。
演算データをモニタに出力する場合は、例えば、前記プログラム内でＯｐｅｎＧＬ（Ｏｐｅｎ  Ｇｒａｐｈｉｃｓ  Ｌｉｂｒａｒｙ）ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）を使用する。
【００１６】
図２はＧＰＵ１０５上で復号、デコード、表示を行う際のＣＰＵ１０１とＧＰＵ１０５との間の動作例を示す。
【００１７】
まず、ＣＰＵ１０１は復号表示する暗号化画像データを取得する（Ｓ２０１）。
このとき、ＧＰＵ１０５のデバイスメモリ１０９のサイズに応じて暗号化画像データを分割してもよい。
そして、ＣＰＵ１０１は暗号化画像データをＧＰＵ１０５に送信する（Ｓ２０２）。
ＧＰＵ１０５内の制御部２０３は暗号化画像データを受信すると、受信した暗号化画像データをデバイスメモリ１０９に展開（格納）する（Ｓ２０３）。
ＣＰＵ１０１は、暗号化画像データの送信が完了したら、ＧＰＵ１０５にカーネル実行させるコマンドを送信する（Ｓ２０４）。
ＧＰＵ１０５では、制御部１０８がカーネル実行コマンドを受信し、データ処理部１１０がデバイスメモリ１０９に格納している暗号化画像データにアクセスしながら、暗号化画像データの復号処理を行なう（Ｓ２０５）。
データ処理部１１０によるカーネルの実行（暗号化画像データの復号処理）が終了したら、制御部１０８は、完了通知をＣＰＵ１０１に送信する（Ｓ２０６）。
以降、実行命令の送受信、カーネル実行、完了通知の送受信を繰り返して復号された画像データのデコード処理、表示データの生成処理を行なう（Ｓ２０７〜Ｓ２１２）。
ＣＰＵ１０１は表示データ生成の完了通知を受け取ったら、次にＧＰＵ１０５に処理させる暗号化画像データについてＳ２０１〜Ｓ２１２を繰り返す。
【００１８】
図２では、ＧＰＵ１０５上で暗号化画像データの復号、復号された画像データのデコード・表示データの生成を３回のカーネル実行で行なっているが、これらを１回または２回のカーネル実行で行なってもよい。
【００１９】
図３は、ＧＰＵ１０５内で実行されるカーネルと処理されるデータとの関係を示す。
復号カーネル３０２では、データ処理部１１０は、デバイスメモリ１０９に展開された暗号化画像データ３０１を一定サイズに分割し、それぞれの分割データに対して復号スレッド３０３〜３０５を使って並列に復号処理を行なう。
復号結果は復号された画像データ３０６としてデバイスメモリ１０９に格納する。
また、データ処理部１１０は、復号した画像データ３０６をデコードカーネル３０７によってデコードする。
デコードカーネル３０７では、データ処理部１１０は、復号カーネル３０２と同様に、画像データを分割して、デコードスレッド３０８〜３１０を使って並列処理を行い、デコードされた画像データ３１１を生成する。
デコードされた画像データ３１１はデバイスメモリ１０９に格納される。
表示カーネル３１２も同様にして、デコードされた画像データ３１１を一定サイズに分割し、それぞれの分割データに対して表示スレッド３１３〜３１５により並列処理を行って、表示データ３１６を生成する。
【００２０】
図３では、ＧＰＵ１０５上で暗号化画像データの復号、復号された画像データのデコード、表示データの生成を３回のカーネル実行で行なっているが、これらを１回または２回のカーネル実行で行なってもよい。
【００２１】
本実施の形態では、暗号化された画像データの復号、デコード、表示をＧＰＵ１０５で行なわせることで、ＣＰＵ１０１の負荷を下げることができる。
また、ＧＰＵ１０５は大量のスレッドを生成して処理を行なわせることで、ＣＰＵ１０１より大量のデータを高速に処理することができる。
さらに、暗号化された画像データはＧＰＵ１０５内で復号、デコードされるため、暗号を復号した状態でＣＰＵ１０１のメモリに展開されることはない。
よって、メモリダンプ等によって復号されたデータを取得されることは無く、安全性を高めることができる。
【００２２】
以上、本実施の形態では、
少なくともＣＰＵとＧＰＵを具備し、
前記ＣＰＵは所定の仕様で符号化され、かつ暗号化された画像データを前記ＧＰＵに送信し、
前記ＧＰＵは、受信した前記暗号化・符号化画像データを前記ＧＰＵの内部メモリに展開し、前記ＧＰＵ内のプロセッサを使って暗号の復号を行なって符号化画像データを生成し、前記符号化画像データのデコードを行ない画像データを生成し、前記画像データに対して表示データ生成処理を行い、表示画像データを生成するデータ処理システム（画像復号再生装置）を説明した。
【００２３】
また、本実施の形態では、
前記ＧＰＵは、受信した前記暗号化・符号化画像データを一定のサイズに分割し、
前記分割された暗号化・符号化画像データを複数のスレッドで並列に復号処理して符号化画像データを生成し、前記符号化画像データをＧＰＵの内部メモリに出力し、前記符号化画像データを一定のサイズに分割し、前記分割された符号化画像データを複数のスレッドで並列にデコード処理して画像データを生成し、前記画像データをＧＰＵの内部メモリに出力し、前記画像データを一定のサイズに分割し、前記分割された画像データを複数のスレッドで並列に表示データ生成処理して表示画像データを生成することを説明した。
【００２４】
実施の形態２．
実施の形態１では、ＣＰＵは暗号化画像データの送信、ＧＰＵによるカーネル実行及びＧＰＵからの完了通知の受信の後に次の暗号化画像データの送信を行う。
しかしながら、映像データが大量にあり、リアルタイムの復号及びデコードを要求される場合、データ転送がボトルネックとなる可能性がある。
本実施の形態では、データ転送とカーネル実行を並列化することでデータ転送のボトルネックを軽減する方法を示す。
本実施の形態に係るデータ処理システム１００の構成は図１と同じである。
また、本実施の形態は、実施の形態１を前提にしており、以降では、実施の形態１との差異を説明する。
【００２５】
図４は実施の形態２におけるＣＰＵとＧＰＵの動作例を示す。
【００２６】
ＣＰＵ１０１は、暗号化画像データを取得し（Ｓ４０１）、ＧＰＵ１０５に送信する（Ｓ４０２）。
ＧＰＵ１０５において、制御部１０８は受信した暗号化画像データをデバイスメモリ１０９に展開（格納）する（Ｓ４０３）。
ＣＰＵ１０１が実行命令を送信する（Ｓ４０４）と、ＧＰＵ１０５のデータ処理部１１０はＳ４０３で展開した暗号化画像データの復号処理、復号された画像データのデコード処理、表示データの生成処理を行う（Ｓ４０５）。
ＣＰＵ１０１は、データ処理部１１０が演算を行なっている間に、新たな暗号化画像データを取得し（Ｓ４０６）、取得した暗号化画像データをＧＰＵ１０５に送信する（Ｓ４０７）。
ＧＰＵ１０５において、制御部１０８は、データ処理部１１０に所定の演算をさせながら、新たに受信した暗号化画像データをデバイスメモリ１０９に展開（格納）する（Ｓ４０８）。
このとき、Ｓ４０３で展開した領域とは異なる領域に新たに受信した暗号化画像データを展開する。
【００２７】
データ処理部１１０がＳ４０５の演算を完了したら、制御部１０８はＣＰＵ１０１に完了通知を送信する（Ｓ４０９）。
ＣＰＵ１０１は完了通知を受けると、ＧＰＵ１０５に実行命令を送信する（Ｓ４１０）。
その後、データ処理部１１０はＳ４０８で展開した暗号化画像データの復号処理、復号された画像データのデコード処理、表示データの生成処理を行う（Ｓ４１１）。
ＣＰＵ１０１は、データ処理部１１０が演算を行なっている間に、新たな暗号化画像データを取得し（Ｓ４１２）、取得した暗号化画像データをＧＰＵ１０５に送信する（Ｓ４１３）。
ＧＰＵ１０５において、制御部１０８は、データ処理部１１０に所定の演算をさせながら、新たに受信した暗号化画像データをデバイスメモリ１０９に展開する（Ｓ４１４）。
このとき、Ｓ４０８で展開した領域とは異なる領域に新たに受信した暗号化画像データを展開する。
以下、これらを繰り返すことで演算を行なう。
【００２８】
このように、本実施の形態では、実施の形態１で得られる効果に加え、データ転送とＧＰＵ上の演算を並列に実行できるため、メモリ転送のオーバーヘッドを隠蔽できる。
【００２９】
以上、本実施の形態では、
実施の形態１で示した構成において、
前記ＣＰＵは前記暗号化・符号化画像データを前記ＧＰＵに送信した後、前記ＧＰＵに処理を実行する命令を送信した後、前記ＧＰＵでの処理が終了する前に、前記暗号化・符号化画像データとは異なる暗号化・符号化画像データを送付し、
前記ＧＰＵは、前記事項している処理を続行しながら、前記異なる暗号化・符号化画像データを受信し、内部のメモリに展開することを説明した。
【００３０】
なお、以上の説明では、暗号化データの例として暗号化画像データを用い、また、サブプロセッサ装置の例としてＧＰＵを用いて説明を行ったが、暗号化データは画像データに限らず、暗号化された文書データであってもよいし、暗号化された音声データであってもよい。
このため、サブプロセッサ装置は、ＧＰＵ以外のプロセッサ装置であってもよい。
【符号の説明】
【００３１】
１００  データ処理システム、１０１  ＣＰＵ、１０２  メモリ、１０３  ＨＤＤ、１０４  通信ポート、１０５  ＧＰＵ、１０６  モニタ、１０７  バス、１０８  制御部、１０９  デバイスメモリ、１１０  データ処理部。
【図１】
2012151642.tif 000003
【図２】
2012151642.tif 000004
【図３】
2012151642.tif 000005
【図４】
2012151642.tif 000006