IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通クライアントコンピューティング株式会社の特許一覧

特開2022-85148情報処理装置、情報処理システムおよびプログラム
<>
  • 特開-情報処理装置、情報処理システムおよびプログラム 図1
  • 特開-情報処理装置、情報処理システムおよびプログラム 図2
  • 特開-情報処理装置、情報処理システムおよびプログラム 図3
  • 特開-情報処理装置、情報処理システムおよびプログラム 図4
  • 特開-情報処理装置、情報処理システムおよびプログラム 図5
  • 特開-情報処理装置、情報処理システムおよびプログラム 図6
  • 特開-情報処理装置、情報処理システムおよびプログラム 図7
  • 特開-情報処理装置、情報処理システムおよびプログラム 図8
  • 特開-情報処理装置、情報処理システムおよびプログラム 図9
  • 特開-情報処理装置、情報処理システムおよびプログラム 図10
  • 特開-情報処理装置、情報処理システムおよびプログラム 図11
  • 特開-情報処理装置、情報処理システムおよびプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022085148
(43)【公開日】2022-06-08
(54)【発明の名称】情報処理装置、情報処理システムおよびプログラム
(51)【国際特許分類】
   G06N 5/04 20060101AFI20220601BHJP
【FI】
G06N5/04
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2020196667
(22)【出願日】2020-11-27
(71)【出願人】
【識別番号】518133201
【氏名又は名称】富士通クライアントコンピューティング株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】特許業務法人扶桑国際特許事務所
(72)【発明者】
【氏名】寺本 浩樹
(57)【要約】
【課題】推論処理に用いられる資源を安全に利用可能にする。
【解決手段】情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、推論モデル21と推論モデル21を用いた推論処理の実行に用いられるプログラムモジュール22とを含むコンテナのイメージデータ20を記憶する。プログラムモジュール22は、例えば推論処理の実行に用いられるフレームワークおよびライブラリの少なくとも一方を含む。処理部12は、鍵30を用いてイメージデータ20を暗号化することで暗号化イメージデータ40を生成する。
【選択図】図1
【特許請求の範囲】
【請求項1】
推論モデルと前記推論モデルを用いた推論処理の実行に用いられるプログラムモジュールとを含むコンテナのイメージデータを記憶する記憶部と、
第1の鍵を用いて前記イメージデータを暗号化することで暗号化イメージデータを生成する処理部と、
を有する情報処理装置。
【請求項2】
自装置に固有の第2の鍵を保持し、前記第2の鍵を用いて前記第1の鍵を暗号化することで暗号化済鍵データを生成する暗号処理部を更に有し、
前記処理部は、前記暗号化イメージデータを前記記憶部に保存し、前記暗号化イメージデータに対応する前記推論モデルの識別情報に対応付けて前記暗号化済鍵データを前記記憶部に保存する、
請求項1記載の情報処理装置。
【請求項3】
前記処理部は、
前記推論モデルの前記識別情報が指定されると、指定された前記識別情報に対応する前記暗号化済鍵データを前記記憶部から取得し、前記暗号処理部により前記暗号化済鍵データを復号させることで前記第1の鍵を取得し、
取得した前記第1の鍵を用いて前記暗号化イメージデータを復号することで前記イメージデータを生成し、前記イメージデータを用いて、前記推論処理を行う演算装置により前記コンテナを起動させる、
請求項2記載の情報処理装置。
【請求項4】
暗号化される前の前記イメージデータに含まれる前記推論モデルは第3の鍵を用いて暗号化されており、
前記処理部は、前記演算装置に前記第3の鍵を出力する、
請求項3記載の情報処理装置。
【請求項5】
前記処理部は、第3の鍵を用いて暗号化された前記推論モデルを含む前記コンテナの前記イメージデータを取得する、
請求項1記載の情報処理装置。
【請求項6】
コンテナに含まれる推論モデルと前記推論モデルによる推論処理に用いられ、前記コンテナに含まれるプログラムモジュールとに基づいて前記推論処理を実行する演算装置と、
前記コンテナのイメージデータが第1の鍵を用いて暗号化された暗号化イメージデータと前記第1の鍵とを取得し、前記第1の鍵を用いて前記暗号化イメージデータを復号することで前記イメージデータを生成し、前記イメージデータを用いて、前記演算装置により前記コンテナを起動させる情報処理装置と、
を有する情報処理システム。
【請求項7】
前記情報処理装置は、
自装置に固有の第2の鍵を保持し、前記第2の鍵を用いて前記第1の鍵を暗号化することで暗号化済鍵データを生成する暗号処理部を有し、
前記暗号化イメージデータに対応する前記推論モデルの識別情報に対応付けて前記暗号化済鍵データを記憶部に保存する、
請求項6記載の情報処理システム。
【請求項8】
前記情報処理装置は、
前記推論モデルの前記識別情報が指定されると、指定された前記識別情報に対応する前記暗号化済鍵データを前記記憶部から取得し、前記暗号処理部により前記暗号化済鍵データを復号させることで前記第1の鍵を取得し、
取得した前記第1の鍵を用いて前記暗号化イメージデータを復号することで前記イメージデータを生成し、生成した前記イメージデータを用いて、前記演算装置により前記コンテナを起動させる、
請求項7記載の情報処理システム。
【請求項9】
前記イメージデータに含まれる前記推論モデルは第3の鍵を用いて暗号化されており、
前記情報処理装置は、前記演算装置に前記第3の鍵を出力する、
請求項8記載の情報処理システム。
【請求項10】
コンピュータに、
推論モデルと前記推論モデルを用いた推論処理の実行に用いられるプログラムモジュールとを含むコンテナのイメージデータを取得し、
第1の鍵を用いて前記イメージデータを暗号化することで暗号化イメージデータを生成する、
処理を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置、情報処理システムおよびプログラムに関する。
【背景技術】
【0002】
現在、AI(Artificial Intelligence)を用いた推論処理を行うシステムが利用されている。情報処理装置は、推論処理が要求された場合に、推論処理に適した演算装置に、当該推論処理を実行させることがある。推論処理は、機械学習により生成される推論モデルに基づいて実行される。推論モデルはAIモデルや学習済モデルなどと呼ばれることもある。例えば、推論処理に適した複数のアクセラレータに処理負荷を適宜分散させ、推論処理を効率的に行う推論処理システムが提案されている。
【0003】
ところで、コンピュータにおける仮想化技術の1つにコンテナ型仮想化と呼ばれる技術がある。コンテナ型仮想化では、ソフトウェアの実行に用いられるライブラリなどの資源を纏めたコンテナが、ソフトウェアの実行環境として定義される。例えば、コンピュータは、OS(Operating System)のカーネル上でコンテナを起動し、コンテナを用いてソフトウェアを実行する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第6614373号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
推論処理を行う演算装置には、コンテナ型仮想化を利用できるものがある。この場合、情報処理装置は、コンテナのイメージデータに推論モデルを含め、イメージデータに基づいて演算装置にコンテナを起動させることで、当該推論モデルによる推論処理を演算装置に実行させることができる。
【0006】
一方、イメージデータには、推論モデルや推論処理の実行に用いられるプログラムモジュールといった資源が含まれる。このため、イメージデータが不正に取得された場合に、イメージデータに含まれる資源が流出する可能性がある。
【0007】
1つの側面では、本発明は、推論処理に用いられる資源を安全に利用可能にする情報処理装置、情報処理システムおよびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
1つの態様では、情報処理装置が提供される。情報処理装置は、記憶部と処理部とを有する。記憶部は、推論モデルと推論モデルを用いた推論処理の実行に用いられるプログラムモジュールとを含むコンテナのイメージデータを記憶する。処理部は、第1の鍵を用いてイメージデータを暗号化することで暗号化イメージデータを生成する。
【0009】
また、1つの態様では、情報処理システムが提供される。情報処理システムは、演算装置と情報処理装置とを有する。演算装置は、コンテナに含まれる推論モデル、および、推論モデルによる推論処理に用いられ、コンテナに含まれるプログラムモジュールに基づいて推論処理を実行する。情報処理装置は、コンテナのイメージデータが第1の鍵を用いて暗号化された暗号化イメージデータと第1の鍵とを取得し、第1の鍵を用いて暗号化イメージデータを復号することでイメージデータを生成し、イメージデータを用いて、演算装置によりコンテナを起動させる。
【0010】
また、1つの態様では、プログラムが提供される。
【発明の効果】
【0011】
1つの側面では、推論処理に用いられる資源を安全に利用可能にする。
【図面の簡単な説明】
【0012】
図1】第1の実施の形態の情報処理装置を説明する図である。
図2】第2の実施の形態のシステム例を示す図である。
図3】情報処理システムのハードウェア例を示す図である。
図4】開発環境の情報処理システムの機能例を示す図である。
図5】運用環境の情報処理システムの機能例を示す図である。
図6】コンテナのイメージデータの生成例を示す図である。
図7】イメージデータの暗号化例を示す図である。
図8】暗号化イメージデータの管理例を示す図である。
図9】暗号化イメージデータの復号例を示す図である。
図10】イメージデータの暗号化処理例を示すフローチャートである。
図11】暗号化イメージデータの管理処理例を示すフローチャートである。
図12】配備処理例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の情報処理装置を説明する図である。
情報処理装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、例えばCPU(Central Processing Unit)などのプロセッサにより実現される。処理部12は、GPU(Graphics Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)などを含み得る。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
【0015】
記憶部11は、コンテナのイメージデータ20を記憶する。イメージデータ20は、推論モデル21とプログラムモジュール22とを含む。推論モデル21は、機械学習により作成され画像認識による物体検知などの推論処理に用いられる。推論モデル21は、例えばニューラルネットワークを表す情報である。推論モデル21には、開発環境のシステムにおいて、導入先の特定の運用環境に合わせたパラメータ調整が行われ得る。プログラムモジュール22は、例えば推論処理の実行に用いられるフレームワークおよびライブラリの少なくとも一方を含む。推論処理を行う演算装置にイメージデータ20をロードすることで、当該演算装置上でコンテナを起動し、推論モデル21に応じた推論処理を実行させることができる。例えば、開発環境で作成されたイメージデータ20が処理部12により取得され、記憶部11に格納される。
【0016】
処理部12は、鍵30(第1の鍵)を用いてイメージデータ20を暗号化することで暗号化イメージデータ40を生成し、暗号化イメージデータ40を出力する。暗号化アルゴリズムには、例えば、AES(Advanced Encryption Standard)などの共通鍵暗号アルゴリズムが用いられる。
【0017】
情報処理装置10は、イメージデータ20に代えて暗号化イメージデータ40を運用環境に配布したり、保管させたりすることができる。例えば、暗号化イメージデータ40の配布先では、鍵30がなければ暗号化イメージデータ40の復号を行えない。したがって、暗号化イメージデータ40のみが盗難などによって流出したとしても、推論モデル21やプログラムモジュール22が不正に利用されたり、改ざんされたりする可能性を抑制できる。こうして、推論処理に用いられる資源を安全に利用可能にすることができる。
【0018】
なお、イメージデータ20に含まれる推論モデル21は、予め暗号化されていてもよい。この場合、資源の中でも重要なコンポーネントである推論モデル21の流出を一層抑えられる。
【0019】
また、情報処理装置10または暗号化イメージデータ40および鍵30の配布先の装置は、鍵30の秘匿性を高めて管理することも考えられる。例えば、情報処理装置10は、自装置に固有の鍵を用いて、鍵30を暗号化して管理してもよい。固有の鍵の管理および固有の鍵を用いた暗号処理は、例えば、情報処理装置10が有するTPM(Trusted Platform Module)などの暗号処理部により実行される。暗号化イメージデータ40および鍵30の配布先の装置でも同様に鍵30を暗号化して管理することができる。これにより、暗号化イメージデータ40および鍵30を暗号化した暗号化済鍵データが流出したとしても、暗号化イメージデータ40の復号は困難になる。こうして、推論処理に用いられる資源をより一層安全に利用可能にすることもできる。
【0020】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態のシステム例を示す図である。
【0021】
情報処理システム50,60は、ネットワーク70に接続されている。ネットワーク70は、LAN(Local Area Network)でもよいし、WAN(Wide Area Network)やインターネットなどでもよい。
【0022】
情報処理システム50は、推論モデルの開発を行う開発環境のシステムである。推論モデルは、AIモデル、AI推論モデルあるいは学習モデルなどと呼ばれてもよい。推論モデルの雛形データは、例えば、インターネットを介してクラウドサーバから情報処理システム50にダウンロードされる。情報処理システム50は、ダウンロードした雛形データに、運用環境におけるパラメータ調整を行い、運用環境に適した推論モデルを作成する。情報処理システム50は、推論モデルの開発に用いられる演算装置を含む。
【0023】
情報処理システム60は、情報処理システム50で作成された推論モデルに基づく推論処理を行う運用環境のシステムである。情報処理システム60は、推論処理のアクセラレータとして用いられる演算装置を含む。演算装置の一例として、JETSON(登録商標)が挙げられる。運用環境における演算装置上の推論処理は、コンテナ型仮想化の技術を用いて実現される。コンテナ型仮想化を実現するソフトウェアには、例えば、Docker(登録商標)がある。
【0024】
図3は、情報処理システムのハードウェア例を示す図である。
情報処理システム50は、PCIe(Peripheral Component Interconnect Express、登録商標)ブリッジコントローラ51、情報処理装置100および演算装置200,200aを有する。
【0025】
PCIeブリッジコントローラ51は、情報処理装置100および演算装置200,200aの通信を中継する中継装置である。情報処理装置100および演算装置200,200aは、PCIeブリッジコントローラ51により実現されるPCIeによる接続構成上で、仮想的にIP(Internet Protocol)による通信を行う。例えば、情報処理装置100は、演算装置200,200aそれぞれとデータを送受信することができる。
【0026】
情報処理装置100は、プロセッサ101、RAM102、HDD103、TPM104、PCIeインタフェース105、画像信号処理部106、入力信号処理部107、媒体リーダ108およびNIC(Network Interface Card)109を有する。
【0027】
プロセッサ101は、プログラムの命令を実行する。プロセッサ101は、例えばCPU、GPU、MPU、DSP、ASIC、FPGAまたはPLDなどである。また、プロセッサは、CPU、GPU、MPU、DSP、ASIC、FPGAおよびPLDのうちの2以上の要素の組み合わせでもよい。プロセッサ101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、プロセッサ101は複数のプロセッサコアを含んでもよい。また、情報処理装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0028】
RAM102は、プロセッサ101が実行するプログラムやプロセッサ101が演算に用いるデータを一時的に記憶する主記憶装置である。なお、情報処理装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0029】
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する補助記憶装置である。なお、情報処理装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。情報処理装置100のOSには、例えばWindows(登録商標)またはその他のOSを用いることができる。
【0030】
TPM104は、情報処理装置100の固有の鍵を保持し、プロセッサ101とは別個にデータに対する暗号処理を行うセキュアモジュールである。
PCIeインタフェース105は、PCIeブリッジコントローラ51と接続するインタフェースである。情報処理装置100は、複数のPCIeインタフェースを備えてもよい。
【0031】
画像信号処理部106は、プロセッサ101からの命令に従って、情報処理装置100に接続されたディスプレイ71に画像を出力する。ディスプレイ71としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0032】
入力信号処理部107は、情報処理装置100に接続された入力デバイス72から入力信号を取得し、プロセッサ101に出力する。入力デバイス72としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、情報処理装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0033】
媒体リーダ108は、記録媒体73に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体73として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0034】
媒体リーダ108は、例えば、記録媒体73から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、プロセッサ101によって実行される。なお、記録媒体73は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体73やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0035】
NIC109は、ネットワーク70に接続され、ネットワーク70を介して他のコンピュータと通信を行うインタフェースである。NIC109は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【0036】
演算装置200は、プロセッサ201、RAM202およびPCIeインタフェース203を有する。
プロセッサ201は、プログラムの命令を実行する。プロセッサ201は例えばCPU、GPU、MPU、DSP、ASIC、FPGAまたはPLDにより実現されてもよく、これらのうちの2以上の要素の組合せでもよい。
【0037】
RAM202は、プロセッサ201が実行するプログラムやプロセッサ201が演算に用いるデータを一時的に記憶する主記憶装置である。
PCIeインタフェース203は、PCIeブリッジコントローラ51と接続するインタフェースである。
【0038】
なお、演算装置200は、演算装置200で実行されるOSを記憶する不揮発性メモリを備えてもよい。演算装置200のOSには、例えばUbuntu(登録商標)またはその他のOSを用いることができる。
【0039】
演算装置200aも演算装置200と同様のハードウェアにより実現される。情報処理システム60も情報処理装置および1つまたは複数の演算装置を有しており、情報処理システム50と同様のハードウェアにより実現される。情報処理システム50,60の各々における情報処理装置と演算装置とは、L2スイッチ、L3スイッチおよびルータなどを含むIPネットワークを介して接続されてもよい。情報処理装置100および情報処理システム60の情報処理装置は、例えばコンピュータによって実現される。
【0040】
図4は、開発環境の情報処理システムの機能例を示す図である。
演算装置200は、記憶部210、モデル暗号化部220およびコンテナイメージ生成部230を有する。記憶部210には、RAM202の記憶領域が用いられる。モデル暗号化部220およびコンテナイメージ生成部230は、プロセッサ201によりRAM202に格納されたプログラムが実行されることで実現される。
【0041】
記憶部210は、開発環境で作成された推論モデルを記憶する。記憶部210は、モデル暗号化部220およびコンテナイメージ生成部230の処理に用いられるデータを記憶する。
【0042】
モデル暗号化部220は、推論モデルをモデル用暗号鍵により暗号化することで、暗号化推論モデルを生成する。暗号化アルゴリズムには例えばAESが用いられる。モデル暗号化部220は、例えばユーザにより入力されるパスワードに基づいてモデル用暗号鍵を生成する。モデル暗号化部220は、暗号化推論モデルおよびモデル用暗号鍵を記憶部210に格納する。
【0043】
コンテナイメージ生成部230は、モデル暗号化部220により生成された暗号化推論モデルを取得し、暗号化推論モデルを含むコンテナのイメージデータを生成する。イメージデータには、暗号化推論モデルを復号するためのモデル復号ツールやコンテナ実行サーバ上にイメージデータに含まれる推論モデルをロードするためのモデルロードスクリプトが含まれる。また、イメージデータには、推論処理のためのデータ入出力や処理起動/実行などに用いられるライブラリやフレームワークなどのプログラムモジュール群が含まれる。ここで、推論処理に用いられるフレームワークを推論FW(FrameWork)と略記する。コンテナイメージ生成部230は、イメージデータを記憶部210に格納する。
【0044】
なお、演算装置200aも演算装置200と同様の機能を有する。
情報処理装置100は、記憶部110および処理部120を有する。記憶部110には、RAM102やHDD103の記憶領域が用いられる。処理部120は、プロセッサ101により実現される。処理部120は、イメージ取得部121およびイメージ暗号化部122を有する。イメージ取得部121およびイメージ暗号化部122は、プロセッサ101によりRAM102に格納されたプログラムが実行されることで実現される。
【0045】
記憶部110は、処理部120の処理に用いられるデータを記憶する。
イメージ取得部121は、演算装置200で生成されたコンテナのイメージデータとモデル用暗号鍵とを演算装置200から取得し、記憶部110に格納する。
【0046】
イメージ暗号化部122は、記憶部110に記憶されたイメージデータをイメージ用暗号鍵により暗号化することで、暗号化イメージデータを生成する。暗号化アルゴリズムには例えばAESが用いられる。イメージ暗号化部122は、例えばユーザにより入力されるパスワードに基づいてイメージ用暗号鍵を生成する。イメージ暗号化部122は、暗号化イメージデータおよびイメージ用暗号鍵を記憶部110に格納する。
【0047】
暗号化イメージデータおよびイメージ用暗号鍵は、例えば、USB(Universal Serial Bus)メモリなどの可搬型記録媒体を用いて、運用環境の情報処理システム60に配布される。あるいは、暗号化イメージデータおよびイメージ用暗号鍵は、ネットワーク70を介して、情報処理システム60に配布されてもよい。同様にモデル用暗号鍵も情報処理システム60に配布される。
【0048】
図5は、運用環境の情報処理システムの機能例を示す図である。
情報処理システム60は、情報処理装置300および演算装置400を有する。
情報処理装置300は、記憶部310、処理部320、装置固有鍵記憶部330および暗号処理部340を有する。記憶部310には、情報処理装置300が有するRAMやHDDなどの記憶領域が用いられる。処理部320は、情報処理装置300が有するプロセッサにより実現される。処理部320は、暗号化イメージ管理部321、イメージ復号部322および配備部323を有する。暗号化イメージ管理部321、イメージ復号部322および配備部323は、情報処理装置300のプロセッサにより情報処理装置300のRAMに格納されたプログラムが実行されることで実現される。また、装置固有鍵記憶部330および暗号処理部340は、TPM304により実現される。
【0049】
記憶部310は、処理部320の処理に用いられるデータを記憶する。記憶部310が記憶するデータは、配布された暗号化イメージデータ、イメージ用暗号鍵およびモデル用暗号鍵を管理する管理テーブルを含む。ただし、イメージ用暗号鍵は、後述されるようにTPM304により暗号化された上で、管理テーブルにより管理される。
【0050】
暗号化イメージ管理部321は、情報処理システム50から配布された暗号化イメージデータおよびモデル用暗号鍵を記憶部310に格納する。また、暗号化イメージ管理部321は、情報処理システム50から配布されたイメージ用暗号鍵をTPM304により装置固有鍵を用いて暗号化させることで、暗号化済鍵データを取得する。暗号化済鍵データは、イメージ用暗号鍵が装置固有鍵で暗号化されたデータである。暗号化アルゴリズムには例えばAESが用いられる。暗号化イメージ管理部321は、暗号化イメージデータ、イメージ用暗号鍵およびモデル用暗号鍵の対応関係を、管理テーブルを用いて管理する。
【0051】
また、暗号化イメージ管理部321は、イメージロードのコマンドを受け付けると、管理テーブルに基づいて、コマンドで指定された暗号化イメージデータとモデル用暗号鍵とを記憶部310から読み出す。暗号化イメージ管理部321は、暗号化されたイメージ用暗号鍵を記憶部310から読み出し、暗号処理部340に復号させる。暗号化イメージ管理部321は、イメージ復号部322に暗号化イメージデータの復号を実行させる。暗号化イメージ管理部321は、暗号化イメージデータが復号されて得られたコンテナのイメージデータを、モデル用暗号鍵とともに配備部323に提供し、演算装置400に対するイメージデータの配備を配備部323に指示する。
【0052】
イメージ復号部322は、暗号化イメージ管理部321から暗号化イメージデータとイメージ用暗号鍵とを取得し、イメージ用暗号鍵を用いて暗号化イメージデータを復号することで、コンテナのイメージデータを生成する。
【0053】
配備部323は、暗号化イメージ管理部321からイメージデータの配備を指示されると、当該イメージデータおよびモデル用暗号鍵を演算装置400に送信し、イメージデータを用いて演算装置400によりコンテナを起動させる。
【0054】
装置固有鍵記憶部330は、情報処理装置300が保持する固有情報に基づいて生成された装置固有鍵を記憶する。情報処理装置300の固有情報には、情報処理装置300の装置識別番号やMAC(Media Access Control)アドレスなどが考えられる。装置固有鍵記憶部330は、処理部320からアクセス不可能である。装置固有鍵をTPM304の外部から取り出せないようにするため、TPM304は例えば耐タンパ性を有する。
【0055】
暗号処理部340は、装置固有鍵記憶部330に装置固有鍵を保持し、装置固有鍵記憶部330に記憶された装置固有鍵を用いて、イメージ用暗号鍵を暗号化することで、暗号化済鍵データを生成する。なお、装置固有鍵記憶部330は、暗号処理部340に含まれると考えてもよい。
【0056】
演算装置400は、記憶部410、コンテナ実行部420および推論処理部430を有する。記憶部410には、演算装置400が有するRAMの記憶領域が用いられる。コンテナ実行部420および推論処理部430は、演算装置400が有するプロセッサにより演算装置400のRAMに格納されたプログラムが実行されることで実現される。
【0057】
記憶部410は、コンテナ実行部420および推論処理部430の処理に用いられるデータを記憶する。
コンテナ実行部420は、イメージデータに基づいてコンテナを実行開始し、推論処理部430を起動させる。コンテナ実行部420は、イメージデータに含まれる復号ツールおよびモデル用暗号鍵を用いて、イメージデータに含まれる暗号化推論モデルを復号することで、推論モデルを得る。コンテナ実行部420は、モデルロードスクリプトにより、演算装置400のRAM上に推論モデルをロードし、推論処理部430を起動する。
【0058】
推論処理部430は、推論モデル、推論FWおよびライブラリなどのプログラムモジュール群により実現される。推論処理部430は、画像認識による物体検知などの推論モデルに応じた推論処理を実行する。
【0059】
情報処理システム60が他の演算装置を有する場合、当該他の演算装置も演算装置400と同様の機能を有する。
例えば、コンテナ型仮想化機構として、Dockerを用いる場合、情報処理装置300がDockerクライアントとして機能し、演算装置400がDockerサーバとして機能する。
【0060】
次に、各装置におけるデータ処理例を説明する。まず、演算装置200によるコンテナのイメージデータの生成例を説明する。
図6は、コンテナのイメージデータの生成例を示す図である。
【0061】
モデル暗号化部220は、推論モデルM1およびユーザにより入力されたパスワードP1を取得する。モデル暗号化部220は、例えばパスワードP1をシフト演算などによって加工することで難読化し、モデル用暗号鍵K1を生成する。モデル暗号化部220は、モデル用暗号鍵K1を用いて推論モデルM1を暗号化することで、暗号化推論モデルeM1を生成する。なお、モデル暗号化部220は、暗号化推論モデルeM1が適正に復号できたことを確認可能にするために、推論モデルM1に対してチェックサムなどの誤り検出符号を生成して、モデル用暗号鍵K1とともに出力してもよい。
【0062】
コンテナイメージ生成部230は、暗号化推論モデルeM1、モデル復号ツール81、モデルロードスクリプト82およびプログラムモジュール群90を取得する。プログラムモジュール群90は、推論処理に用いられるライブラリ91や推論FW92を含む。コンテナイメージ生成部230は、暗号化推論モデルeM1、モデル復号ツール81、モデルロードスクリプト82およびプログラムモジュール群90を含むコンテナのイメージデータD1を生成する。
【0063】
次に、情報処理装置100によるイメージデータの暗号化例を説明する。
図7は、イメージデータの暗号化例を示す図である。
イメージ暗号化部122は、演算装置200により生成されたイメージデータD1およびユーザにより入力されたパスワードP2を取得する。イメージ暗号化部122は、モデル暗号化部220と同様にパスワードP2を難読化し、イメージ用暗号鍵K2を生成する。イメージ暗号化部122は、イメージ用暗号鍵K2を用いてイメージデータD1を暗号化することで、暗号化イメージデータeD1を生成する。なお、イメージ暗号化部122は、イメージデータD1に対してチェックサムなどの誤り検出符号を生成して、イメージ用暗号鍵K2とともに出力してもよい。
【0064】
情報処理装置100が出力する暗号化イメージデータeD1およびイメージ用暗号鍵K2は、情報処理装置300に提供される。また、演算装置200が出力するモデル用暗号鍵K1も、情報処理装置300に提供される。
【0065】
次に、情報処理装置300による暗号化イメージデータの管理例を説明する。
図8は、暗号化イメージデータの管理例を示す図である。
情報処理装置300は、イメージ用暗号鍵K2、暗号化イメージデータeD1およびモデル用暗号鍵K1を取得する。
【0066】
暗号化イメージ管理部321は、イメージ用暗号鍵K2の暗号化を暗号処理部340に指示する。暗号処理部340は、装置固有鍵記憶部330に記憶された装置固有鍵を用いて、イメージ用暗号鍵K2を生成し、暗号化済鍵データeK2を生成する。暗号処理部340は、暗号化イメージ管理部321に暗号化済鍵データeK2を出力する。暗号化イメージ管理部321は、暗号化イメージデータeD1およびモデル用暗号鍵K1に対応付けて、記憶部310に記憶された管理テーブル311に、暗号化済鍵データeK2を登録する。なお、暗号化イメージ管理部321は、イメージ用暗号鍵K2を消去する。
【0067】
管理テーブル311は、モデル名、バージョン、暗号化済鍵データ、モデル用暗号鍵および暗号化イメージデータ名の項目を有する。モデル名の項目には、推論モデルの名称が登録される。バージョンの項目には、推論モデルのバージョンが登録される。暗号化済鍵データの項目には、暗号化済鍵データが登録される。モデル用暗号鍵の項目には、モデル用暗号鍵が登録される。暗号化イメージデータ名の項目には、暗号化イメージデータのファイル名が登録される。
【0068】
例えば、管理テーブル311にはモデル名「ssd_model」、バージョン「v2.0」、暗号化済鍵データ「xxxx」、モデル用暗号鍵「BLOB_A」、暗号化イメージデータ名「sample_image.tar.gz」のレコードが登録される。当該レコードにおけるイメージデータ名は、暗号化イメージデータeD1のファイル名である。例えば、情報処理装置300における所定のフォルダの当該ファイル名のファイルが暗号化イメージデータeD1に該当する。また、モデル名「ssd_model」およびバージョン「v2.0」は、推論モデルM1に対して付された識別情報の一例である。モデル名「ssd_model」およびバージョン「v2.0」は、情報処理装置300のユーザによって入力されたものでもよいし、情報処理装置100により暗号化イメージデータeD1に平文で付されたものでもよい。また、「xxxx」は、暗号化済鍵データeK2に相当する。更に、「BLOB_A」は、モデル用暗号鍵K1に相当する。
【0069】
管理テーブル311には、推論モデル名が「ssd_model」である推論モデルの他のバージョンのレコードや、他の推論モデルに関するレコードも登録される。
なお、モデル用暗号鍵は管理テーブル311とは別個に、推論モデルに対応付けて管理されてもよい。例えば記憶部310以外の記憶部にモデル用暗号鍵が保存されてもよい。
【0070】
次に、情報処理装置300による暗号化イメージデータeD1の復号例を説明する。
図9は、暗号化イメージデータの復号例を示す図である。
暗号化イメージ管理部321は、イメージロードのコマンドC1の入力を受け付ける。例えば、コマンドC1は、ロード先アドレス「192.168.1.6」、モデル名「ssd_model」、バージョン「v2.0」を含む。ロード先アドレス「192.168.1.6」は、演算装置400のIPアドレスであるとする。
【0071】
暗号化イメージ管理部321は、コマンドC1および管理テーブル311に基づいて、暗号化済鍵データeK2、モデル用暗号鍵K1および暗号化イメージデータeD1を、記憶部310から読み出す。
【0072】
暗号化イメージ管理部321は、暗号化済鍵データeK2を暗号処理部340に出力し、暗号化済鍵データeK2の復号を暗号処理部340に指示する。暗号処理部340は、装置固有鍵記憶部330に記憶された装置固有鍵を用いて暗号化済鍵データeK2を復号することで、イメージ用暗号鍵K2を生成し、暗号化イメージ管理部321に出力する。
【0073】
暗号化イメージ管理部321は、イメージ用暗号鍵K2を暗号処理部340から取得し、イメージ用暗号鍵K2と暗号化イメージデータeD1とをイメージ復号部322に出力して、暗号化イメージデータeD1の復号を指示する。イメージ復号部322は、イメージ用暗号鍵K2を用いて暗号化イメージデータeD1を復号することで、イメージデータD1を生成し、イメージデータD1を暗号化イメージ管理部321に出力する。
【0074】
暗号化イメージ管理部321は、イメージデータD1とモデル用暗号鍵K1とを配備部323に出力し、演算装置400へのイメージデータD1の配備を指示する。
次に、情報処理装置100によるイメージデータD1の暗号化処理の手順を説明する。
【0075】
図10は、イメージデータの暗号化処理例を示すフローチャートである。
(S10)イメージ暗号化部122は、演算装置200で生成されたコンテナのイメージデータD1を取得する。
【0076】
(S11)イメージ暗号化部122は、ユーザによるパスワードP1の入力を受け付ける。
(S12)イメージ暗号化部122は、パスワードP1に基づくイメージ用暗号鍵K2を用いてイメージデータD1を暗号化する。その結果、暗号化イメージデータeD1が生成される。
【0077】
(S13)イメージ暗号化部122は、イメージ用暗号鍵K2と暗号化イメージデータeD1とを出力する。
なお、演算装置200で生成されたコンテナのイメージデータD1に含まれる推論モデルは、前述のように演算装置200によって暗号化されていてもよい。
【0078】
次に、情報処理装置300による暗号化イメージデータeD1の管理処理の手順を説明する。
図11は、暗号化イメージデータの管理処理例を示すフローチャートである。
【0079】
(S20)暗号化イメージ管理部321は、暗号化イメージデータeD1とイメージ用暗号鍵K2とを取得する。
(S21)暗号化イメージ管理部321は、TPM304の暗号処理部340にイメージ用暗号鍵K2の暗号化を指示する。暗号処理部340は、TPM304内の装置固有鍵記憶部330に記憶された装置固有鍵でイメージ用暗号鍵K2を暗号化し、暗号化済鍵データeK2を生成する。
【0080】
(S22)暗号化イメージ管理部321は、暗号化済鍵データeK2を暗号化イメージデータeD1に対応付けて記憶部310に記憶された管理テーブル311に登録する。
次に、情報処理装置300によるイメージデータD1の配備処理の手順を説明する。
【0081】
図12は、配備処理例を示すフローチャートである。
(S30)暗号化イメージ管理部321は、イメージロードのコマンドC1を受け付ける。
【0082】
(S31)暗号化イメージ管理部321は、コマンドC1のパラメータと管理テーブル311とに基づいて暗号化イメージデータeD1と暗号化済鍵データeK2とを記憶部310から読み出す。
【0083】
(S32)暗号化イメージ管理部321は、TPM304の暗号処理部340に暗号化済鍵データeK2の復号を指示する。暗号処理部340は、装置固有鍵記憶部330に記憶された装置固有鍵で暗号化済鍵データeK2を復号し、イメージ用暗号鍵K2を生成する。
【0084】
(S33)暗号化イメージ管理部321は、ステップS32で得られたイメージ用暗号鍵K2と暗号化イメージデータeD1とを、イメージ復号部322に出力し、暗号化イメージデータeD1の復号を指示する。イメージ復号部322は、イメージ用暗号鍵K2により暗号化イメージデータeD1を復号し、イメージデータD1を生成する。
【0085】
(S34)暗号化イメージ管理部321は、ステップS33で得られたイメージデータD1の配備を配備部323に指示する。配備部323は、イメージデータD1を演算装置400に送信し、イメージデータD1に基づいて、演算装置400によりコンテナを起動させる。
【0086】
なお、前述のように、イメージデータD1には暗号化推論モデルeM1が含まれている。このため、暗号化イメージ管理部321には、情報処理システム50からモデル用暗号鍵K1も提供される。暗号化イメージ管理部321は、モデル用暗号鍵K1を記憶部310に保存して管理し、イメージデータD1とともにモデル用暗号鍵K1を配備部323に提供する。配備部323は、イメージデータD1とモデル用暗号鍵K1とを演算装置400に送信し、演算装置400により、イメージデータD1に含まれる暗号化推論モデルeM1をモデル用暗号鍵K1により復号させることで、推論モデルM1を取得させる。
【0087】
コンテナ実行部420は、イメージデータD1に基づいてコンテナを実行開始し、推論処理部430を起動させる。コンテナ実行部420は、イメージデータD1に含まれるモデル復号ツール81およびモデル用暗号鍵K1を用いて、イメージデータD1に含まれる暗号化推論モデルeM1を復号することで、推論モデルM1を得る。コンテナ実行部420は、モデルロードスクリプト82により、演算装置400のRAM上に推論モデルM1をロードし、推論処理部430を起動する。こうして、推論処理部430によるライブラリ91、推論FW92および推論モデルM1を用いた推論処理が実行可能になる。
【0088】
ここで、暗号化イメージデータeD1の配布先では、イメージ用暗号鍵K2がなければ暗号化イメージデータeD1の復号を行えない。したがって、暗号化イメージデータeD1のみが盗難などによって流出したとしても、推論モデルM1や、ライブラリ91および推論FW92などのプログラムモジュールが不正に利用されたり、改ざんされたりする可能性を抑制できる。こうして、推論処理に用いられる資源を安全に利用可能にすることができる。
【0089】
また、イメージデータD1に含まれる推論モデルM1は、予め暗号化されていてもよい。この場合、暗号化イメージデータeD1およびイメージ用暗号鍵K2が流出したとしても、モデル用暗号鍵K1がなければ推論モデルM1を復号できないので、資源の中でも重要なコンポーネントである推論モデルM1の流出を一層抑えられる。
【0090】
また、情報処理装置300は、イメージ用暗号鍵K2の秘匿性を高めて管理することができる。具体的には、情報処理装置300は、情報処理装置300に固有の装置固有鍵を用いて、イメージ用暗号鍵K2を暗号化して管理してもよい。装置固有鍵は、TPM304に保持され、装置固有鍵を用いた暗号処理は、TPM304によって実行される。これにより、暗号化イメージデータeD1および暗号化済鍵データeK2が流出したとしても、情報処理装置300以外の装置での暗号化イメージデータeD1の復号は困難になる。こうして、推論処理に用いられる資源をより一層安全に利用可能にすることもできる。
【0091】
なお、第2の実施の形態の例では、開発環境と運用環境とを別個にして説明したが、開発環境が運用環境と兼用でもよい。例えば、情報処理装置100が、記憶部310、処理部320およびTPM304の機能を有してもよく、演算装置200,200aがイメージデータD1の配備先となってコンテナを起動し、推論処理を実行してもよい。
【0092】
例えば、情報処理装置100は、次の機能を有してもよい。
記憶部110は、推論モデルM1と推論モデルM1を用いた推論処理の実行に用いられるプログラムモジュールとを含むコンテナのイメージデータD1を記憶してもよい。処理部120は、イメージ用暗号鍵K2(第1の鍵)を用いてイメージデータD1を暗号化することで暗号化イメージデータeD1を生成してもよい。
【0093】
これにより、推論処理に用いられる資源を安全に利用可能にすることができる。
また、情報処理装置100は、情報処理装置100(自装置)に固有の装置固有鍵(第2の鍵)を保持し、装置固有鍵を用いてイメージ用暗号鍵K2を暗号化することで暗号化済鍵データeK2を生成する暗号処理部を更に有してもよい。当該暗号処理部は、TPM104により実現されてもよい。この場合、処理部120は、暗号化イメージデータeD1を記憶部110に保存し、暗号化イメージデータeD1に対応する推論モデルM1の識別情報に対応付けて暗号化済鍵データeK2を記憶部110に保存する。
【0094】
これにより、推論処理に用いられる資源を一層安全に利用可能にすることができる。
そして、処理部120は、推論モデルM1の識別情報が指定されると、指定された識別情報に対応する暗号化済鍵データeK2を記憶部110から取得する。処理部120は、情報処理装置100の暗号処理部により暗号化済鍵データeK2を復号させることでイメージ用暗号鍵K2を取得する。処理部120は、取得したイメージ用暗号鍵K2を用いて暗号化イメージデータeD1を復号することでイメージデータD1を生成し、イメージデータD1を用いて、推論処理を行う演算装置200または演算装置200aによりコンテナを起動させる。
【0095】
このように、推論モデルM1の識別情報の指定に応じて、暗号化イメージデータeD1の復号からコンテナの起動までの一連の手順を自動的に行うことで、ユーザにイメージ用暗号鍵K2や装置固有鍵の存在を意識させずに平易な操作で推論処理を開始可能にできる。このため、ユーザに利用し易い運用環境を提供することができる。
【0096】
また、暗号化される前のイメージデータD1に含まれる推論モデルM1は、モデル用暗号鍵K1(第3の鍵)を用いて暗号化されていてもよい。この場合、処理部120は、イメージデータD1を用いてコンテナを起動させる演算装置200または演算装置200aにモデル用暗号鍵K1を出力する。
【0097】
これにより、推論処理のための資源の中でも重要である推論モデルM1が流出する可能性を一層抑えられる。また、演算装置200または演算装置200aにおいて、イメージデータD1に含まれる暗号化推論モデルeM1を、モデル用暗号鍵K1を用いて適切に復号できる。
【0098】
なお、処理部120は、モデル用暗号鍵K1(第3の鍵)を用いて暗号化された推論モデル(暗号化推論モデルeM1)を含むコンテナのイメージデータD1を取得し、イメージ用暗号鍵K2(第1の鍵)を用いてイメージデータD1を暗号化してもよい。
【0099】
これにより、推論処理のための資源の中でも重要である推論モデルM1が流出する可能性を一層抑えられる。
また、情報処理システム60は次の機能を有してもよい。
【0100】
演算装置400は、コンテナに含まれる推論モデル、および、推論モデルによる推論処理に用いられ、コンテナに含まれるプログラムモジュールに基づいて推論処理を実行する。情報処理装置300は、コンテナのイメージデータD1がイメージ用暗号鍵K2(第1の鍵)を用いて暗号化された暗号化イメージデータeD1とイメージ用暗号鍵K2とを取得する。情報処理装置300は、イメージ用暗号鍵K2を用いて暗号化イメージデータeD1を復号することでイメージデータD1を生成し、イメージデータD1を用いて、演算装置400によりコンテナを起動させる。
【0101】
これにより、推論処理に用いられる資源を安全に利用可能にすることができる。
情報処理装置300は、情報処理装置300(自装置)に固有の装置固有鍵(第2の鍵)を保持し、装置固有鍵を用いてイメージ用暗号鍵K2を暗号化することで暗号化済鍵データeK2を生成する暗号処理部340を更に有してもよい。暗号処理部340は、TPM304により実現されてもよい。この場合、情報処理装置300は、暗号化イメージデータeD1に対応する推論モデルM1の識別情報に対応付けて暗号化済鍵データeK2を記憶部310に保存する。
【0102】
これにより、推論処理に用いられる資源を一層安全に利用可能にすることができる。
そして、情報処理装置300は、推論モデルM1の識別情報が指定されると、指定された識別情報に対応する暗号化済鍵データeK2を記憶部310から取得する。情報処理装置300は、暗号処理部340により暗号化済鍵データeK2を復号させることでイメージ用暗号鍵K2を取得する。情報処理装置300は、取得したイメージ用暗号鍵K2を用いて暗号化イメージデータeD1を復号することでイメージデータD1を生成し、イメージデータD1を用いて、推論処理を行う演算装置400によりコンテナを起動させる。
【0103】
このように、推論モデルM1の識別情報の指定に応じて、暗号化イメージデータeD1の復号からコンテナの起動までの一連の手順を自動的に行うことで、ユーザにイメージ用暗号鍵K2や装置固有鍵の存在を意識させずに平易な操作で推論処理を開始可能にできる。このため、ユーザに利用し易い運用環境を提供することができる。
【0104】
また、イメージデータD1に含まれる推論モデルM1は、モデル用暗号鍵K1(第3の鍵)を用いて暗号化されていてもよい。この場合、情報処理装置300は、イメージデータD1を用いてコンテナを起動させる演算装置400にモデル用暗号鍵K1を出力する。
【0105】
これにより、推論処理のための資源の中でも重要である推論モデルM1が流出する可能性を一層抑えられる。また、演算装置400において、イメージデータD1に含まれる暗号化推論モデルeM1を、モデル用暗号鍵K1を用いて適切に復号できる。
【0106】
なお、情報処理システム50も情報処理システム60と同様の機能を有してもよい。例えば、前述のように、1つの情報処理装置が、イメージデータD1の暗号化による暗号化イメージデータeD1の生成と暗号化イメージデータeD1の管理と暗号化イメージデータeD1の復号と演算装置へのイメージデータD1の配備とを実行してもよい。
【0107】
ところで、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体73に記録できる。
【0108】
例えば、プログラムを記録した記録媒体73を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体73に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0109】
10 情報処理装置
11 記憶部
12 処理部
20 イメージデータ
21 推論モデル
22 プログラムモジュール
30 鍵
40 暗号化イメージデータ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12