JP2017151794A - 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 - Google Patents

情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 Download PDF

Info

Publication number
JP2017151794A
JP2017151794A JP2016034590A JP2016034590A JP2017151794A JP 2017151794 A JP2017151794 A JP 2017151794A JP 2016034590 A JP2016034590 A JP 2016034590A JP 2016034590 A JP2016034590 A JP 2016034590A JP 2017151794 A JP2017151794 A JP 2017151794A
Authority
JP
Japan
Prior art keywords
circuit
information
encryption
management
arithmetic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016034590A
Other languages
English (en)
Other versions
JP6620595B2 (ja
Inventor
貴志 清水
Takashi Shimizu
貴志 清水
貴史 三吉
Takashi Miyoshi
貴史 三吉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016034590A priority Critical patent/JP6620595B2/ja
Priority to US15/423,053 priority patent/US10560262B2/en
Publication of JP2017151794A publication Critical patent/JP2017151794A/ja
Application granted granted Critical
Publication of JP6620595B2 publication Critical patent/JP6620595B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up

Abstract

【課題】回路の再構成が可能な集積回路をそなえる情報処理装置におけるセキュリティリスクを低減させる。【解決手段】回路の再構成が可能な集積回路21をそなえ、前記集積回路21は、入力される情報に応じた演算を行なう演算回路22と、前記演算回路22により演算された演算結果に対して、前記演算回路22に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路23と、が構成される。【選択図】図5

Description

本発明は、情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法に関する。
近年、回路の再構成が可能な集積回路(IC;Integrated Circuit)、例えばFPGAを、サーバ等の情報処理装置におけるコンピューティングに利用する技術が研究されている。なお、FPGAはField-Programmable Gate Arrayの略称である。
FPGAを搭載する情報処理装置では、FPGAに任意の論理回路を構成して動作させることができる。
情報処理装置におけるFPGAの利用形態の一例として、FPGAにメモリアクセスを行なう論理回路が構成され、FPGAが情報処理装置のそなえるプロセッサとして機能する場合がある。換言すれば、FPGAがCentral Processing Unit(CPU)等のプロセッサと同等に扱われる場合がある。
特開2006−127349号公報 特開2011−248503号公報
クラウドサービスの普及に伴い、上述したFPGAが、クラウドサービスを提供するサーバ(以下、クラウドサーバ、又は、ホストマシンと表記する場合がある)に搭載されることが想定される。
クラウドサーバでは、例えばクライアントマシンを用いるユーザにより、FPGAに所望の演算回路が構成され、クライアントマシンからのアクセスに応じて演算回路による演算結果を返すといった運用が行なわれることが考えられる。
しかしながら、クラウドシステムにおいて、ユーザがFPGAに作成する演算回路について個別にセキュリティリスクを調査することが難しい場合がある。
1つの側面では、本発明は、回路の再構成が可能な集積回路をそなえる情報処理装置におけるセキュリティリスクを低減させることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
1つの側面では、情報処理システムは、情報処理装置と、前記情報処理装置にアクセスする端末装置と、前記情報処理装置を管理する管理装置と、をそなえてよい。前記情報処理装置は、回路の再構成が可能な集積回路をそなえてよい。前記集積回路は、演算回路と、暗号化回路と、が構成されてよい。前記演算回路は、前記端末装置が送信する情報に応じた演算を行なってよい。前記暗号化回路は、前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成してよい。前記管理装置は、前記暗号鍵を前記演算回路と対応付けて管理し、前記端末装置へ前記演算回路に対応する暗号鍵を通知してよい。前記端末装置は、前記暗号化データを記憶する記憶装置から前記暗号化データを読み出してよい。また、前記端末装置は、読み出した前記暗号化データを、前記管理装置から通知される前記暗号鍵を用いて復号してよい。
1つの側面では、回路の再構成が可能な集積回路をそなえる情報処理装置におけるセキュリティリスクを低減できる。
クラウドシステムの動作例を説明する図である。 CPUによるページテーブルの管理の一例を説明する図である。 クラウドシステムの動作例を説明する図である。 FPGA型プロセッサによるページテーブルの管理の一例を説明する図である。 一実施形態に係る情報処理システムの構成例を示すブロック図である。 一実施形態に係る情報処理システムの動作例を説明するシーケンス図である。 一実施形態に係る情報処理システムの動作例を説明するシーケンス図である。 一実施形態に係るコンピュータのハードウェア構成例を示す図である。 一実施形態に係るホストマシンの機能構成例を示すブロック図である。 一実施形態に係る管理マシンの機能構成例を示すブロック図である。 ユーザDBのデータ構成例を示す図である。 一実施形態の実施例に係る情報処理システムの構成を示すブロック図である。 図12に示すFPGAの構成例を示すブロック図である。 変形例に係る情報処理システムの構成を示すブロック図である。 変形例に係る情報処理システムの動作を説明するシーケンス図である。 変形例に係る管理マシンの機能構成を示すブロック図である。 変形例の実施例に係る情報処理システムの構成を示すブロック図である。
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。また、以下の説明において複数の装置を区別しない場合には、符号のハイフン“−”以降の数字を省略して表記する、又は、符号のアルファベットを省略して表記する場合がある。例えば図1に示すクライアントマシン130−1及び130−2を区別しない場合には、単にクライアントマシン130と表記し、図1に示すアプリケーション131a及び131bを区別しない場合には、単にアプリケーション131と表記する。
〔1〕一実施形態
〔1−1〕クラウドシステムにおけるセキュリティリスクについて
はじめに、クラウドシステムにおけるセキュリティ面のリスクについて説明する。
図1は、ホストマシン110のプロセッサとしてCPUが用いられるクラウドシステム100の動作例を説明する図である。図1に示すように、クラウドシステム100は、例示的に、ホストマシン110、管理マシン120、及び、複数(図1の例では2つ)のクライアントマシン130−1及び130−2をそなえる。
図1に例示するように、クライアントマシン130−1及び130−2のアプリケーション131a及び131bは、それぞれ、管理サーバ120へサービス利用の要求を送信する(図1の矢印(i)参照)。以下、サービスが仮想マシンの提供であるものとする。
クラウドシステムを管理する管理マシン120は、要求に基づきサービスの認証を行ない、アプリケーション131の各々に対して、例えば仮想マシンの識別子(ID;Identifier)を送信する(矢印(ii)参照)。また、管理マシン120は、クライアントマシン130から受信した情報、例えば仮想マシンの利用に用いられるプログラムやデータ等をホストマシン110に送付する(矢印(iii)参照)。
ホストマシン110は、CPU110a及びメモリ110b等のハードウェア資源を用いてOperating System(OS)又はハイパバイザ111(以下、OS/HPV111と表記する場合がある)を実行する。また、OS/HPV111の制御下で、仮想マシン112a及び112bがそれぞれ実行される。
ホストマシン110では、CPU110aやメモリ110b等のハードウェア資源が複数の仮想マシン112a及び112bで共用される。例えば、仮想マシン112aは、ハードウェア資源の少なくとも一部により実現されるCPU113a及び共用メモリ(SHM;Shared Memory)114aを利用する。また、仮想マシン112bは、ハードウェア資源の少なくとも一部により実現されるCPU113b及び共用メモリ114bを利用する。
ここで、コンピュータでのメモリアドレスの管理について説明する。図2に例示するように、ユーザは、仮想アドレスでアプリケーションを記述し、仮想アドレスに割り当てる物理アドレスをOSが決定する。仮想アドレスと物理アドレスとの対応付けは、ページテーブル(Page Table)により管理される。ページテーブルは、メモリの割り当てを管理する情報の一例である。
CPUは、OSのページテーブルへのアクセスをハードウェアで高速化するために、頻繁に使われるアドレスの変換テーブルをCPU内部のTable Lookup Buffer(TLB)にコピーする。そして、CPUは、アプリケーションで指定される仮想アドレスを、TLBに基づき物理アドレスに変換し、変換した物理アドレスでメモリにアクセスする。
このように、ユーザは物理アドレスを認識せずに仮想アドレスを認識するため、ユーザが他のユーザのアプリケーションで用いる物理アドレスにアクセスすることは困難である。
図1の例においても、共用メモリ114a及び114bは仮想アドレスにより管理され、それぞれメモリ110bの物理アドレスに割り当てられる。以下、共用メモリ114aに割り当てられるメモリ110bのアドレス領域をメモリ115aと表記し、共用メモリ114bに割り当てられるメモリ110bのアドレス領域をメモリ115bと表記する。
仮想マシン112a及び112bでは、それぞれ対応するメモリ115a及び115b以外のメモリ110b上の記憶領域へのアクセスが、OS/HPV111により制限される。
このため、例えばアプリケーション131bのユーザが、仮想マシン112bを通じて他のユーザの仮想マシン112aに対応するメモリ115aへのアクセスを試みたとしても、OS/HPV111により、メモリ115aに対するアクセスは抑止される。例えば図1に矢印(iv)で示すように、OS/HPV111はセグメンテーション違反(Segmentation Fault)を検出し、エラー処理等を行なう。
メモリ115に記憶される仮想マシン112の演算結果は、ホストマシン110のネットワーク装置116を介して、仮想マシン112を利用するクライアントマシン130のネットワーク装置133との間で送受信される(矢印(v)参照)。
例えばメモリ115aに記憶された演算結果は、パケット(A)に格納されてネットワーク装置116からクライアントマシン130−1のネットワーク装置133へ送信され、パケット(A)内のデータ(A)がアプリケーション131aに渡される。また、メモリ115bに記憶された演算結果は、パケット(B)に格納されてネットワーク装置116からクライアントマシン130−2のネットワーク装置133へ送信され、パケット(B)内のデータ(B)がアプリケーション131bに渡される。
以上のように、ホストマシン110のプロセッサとしてCPU110aが用いられるクラウドシステム100では、アプリケーション131のユーザは、OS/HPV111が提供する仮想マシン112を通じて処理を行なう。このため、ユーザが他のユーザのメモリ110bの記憶領域にアクセスしようとしても、OS/HPV111により当該アクセスを抑止することができる。
次に、ホストマシンのプロセッサとしてFPGAが用いられる場合を説明する。図3は、ホストマシン160のプロセッサとしてFPGAが用いられるクラウドシステム150の動作例を説明する図である。
図3に例示するように、クライアントマシン180−1及び180−2のアプリケーション181a及び181bは、それぞれ、管理マシン170へサービス利用の要求を送信する(図3の矢印(vi)参照)。また、アプリケーション181は、ホストマシン160のFPGA161に書き込む処理回路の情報、例えばIntellectual Property(IP)コアを管理サーバ170へ送信する。
IPは、FPGAにおいて再利用可能な機能ブロックの一例であり、IPコアは、FPGAに構成する機能ブロックの設計に用いる情報の一例である。IPコアには、ソフトウェアマクロ、ハードウェアマクロ、又はこれらの組み合わせが含まれてよい。ソフトウェアマクロは、Register Transfer Level(RTL)で提供されるプログラムコードを含んでよい。なお、RTLは論理回路の設計データを記述するためのスキームの一例である。ハードウェアマクロは、FPGAの内部に組み込まれる回路ブロックの情報を含んでよい。なお、IPコアは、ソフトウェアマクロが改変される危険性を考慮し、ハードウェアマクロで提供されることもある。
管理マシン170は、要求に基づきサービスの認証を行ない、アプリケーション181の各々に対して、例えば仮想マシンのIDを送信する(矢印(vii)参照)。また、管理マシン170は、クライアントマシン180から受信したIPコアに基づいて、ホストマシン160のFPGA161に処理回路162、換言すればアクセラレータを実装する(矢印(viii)参照)。
ホストマシン160では、FPGA161に構成された処理回路162a及び162bが、それぞれメモリ160bのアドレス領域であるメモリ163a及び163bを利用して動作する。なお、ホストマシン160では、CPU160a及びFPGA161がそれぞれプロセッサとして機能する。
ここで、コンピュータでのメモリアドレスの管理について、FPGA型のプロセッサが用いられる場合を説明する。図4に例示するように、CPUと同等に扱われるキャッシュコヒーレントバスに配置されたFPGAは、OSからページテーブルをコピーする。
ところで、FPGAに実装される処理回路はユーザによって作成される。従って、処理回路の設計によっては、ユーザはFPGAにより、コピーしたページテーブルを操作することも可能である。例えばFPGAは、ページテーブルに設定された物理アドレスを、他のユーザが利用するメモリの物理アドレスに変換することもできる。
このページテーブルに設定された物理アドレスの変換は、ページテーブルに設定された情報自体の書き換えによって行なわれる場合があり、又はページテーブルから読み出された情報がFPGAからメモリへのアクセスの過程で変換される場合もある。
なお、FPGAが他のユーザの利用するメモリにアクセス可能となるのは、ユーザの悪意によるFPGAの操作のほか、処理回路の設計ミス等によっても生じ得る。
図3の例においても、例えば処理回路162bが、アプリケーション181bのユーザによって作成されたマリシアス(Malicious)IPである場合、処理回路162bからメモリ163aへのハードウェアアクセスには、OSの防御機構が作用しない(矢印(ix)参照)。従って、処理回路162bは、他のユーザが用いるメモリ163aに記憶されたデータを読み出すことができる。なお、マリシアスIPは、不正なプロセッサ、例えば悪意あるユーザにプログラムされたリコンフィギュアブル(Re-configurable)なプロセッサであるといえる。
また、処理回路162bがメモリ163a及び163bから読み出したデータは、ホストマシン160のネットワーク装置164を介して、処理回路162bを利用するクライアントマシン180−2のネットワーク装置183との間で送受信される(矢印(x)参照)。
例えばメモリ163a及び163bに記憶されたデータは、それぞれパケット(A)及び(B)に格納されてネットワーク装置164からクライアントマシン180−2のネットワーク装置183へ送信される。そして、パケット(A)内のデータ(A)及びパケット(B)内のデータ(B)の双方が、アプリケーション181bに渡され、ユーザは他のユーザのデータ(A)を盗むことができる(矢印(xi)参照)。
このように、プロセッサをユーザが自由に設計できると、FPGA型のプロセッサは、OSの提供するセキュアなアクセスを越えて、直接ハードウェアにアクセスできてしまう。従って、FPGAをそなえるホストマシンにおけるセキュリティリスクが高い。
〔1−2〕一実施形態に係る情報処理システムについて
そこで、一実施形態においては、以下の構成により、回路の再構成が可能な集積回路をそなえる情報処理装置におけるセキュリティリスクを低減させることができる。
例えば、情報処理システムは、情報処理装置と、情報処理装置にアクセスする端末装置と、情報処理装置を管理する管理装置と、をそなえてよく、情報処理装置は、回路の再構成が可能な集積回路をそなえてよい。
集積回路は、
(1)端末装置が送信する情報に応じた演算を行なう演算回路と、
(2)演算回路により演算された演算結果に対して、演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路と、
が構成されてよい。
管理装置は、暗号鍵を演算回路と対応付けて管理し、端末装置へ演算回路に対応する暗号鍵を通知してよい。
端末装置は、暗号化データを記憶する記憶装置から暗号化データを読み出し、読み出した暗号化データを、管理装置から通知される暗号鍵を用いて復号してよい。
このような構成により、情報処理システムでは、記憶装置が記憶するデータは、演算回路に対応する暗号鍵により暗号化された暗号化データとなる。従って、他の演算回路のユーザが当該暗号化データを読み出しても、適切な暗号鍵を有していなければ正しく復号できず、他人がデータを盗み出すことを防止できる。また、演算回路のユーザは、管理装置から暗号鍵を通知されており、当該暗号化データを適切な暗号鍵で復号できるため、利便性の低下を抑制できる。以下、情報処理システムの構成例を説明する。
〔1−3〕一実施形態に係る情報処理システムの構成例
図5は、一実施形態に係る情報処理システム1の構成例を示すブロック図である。図5に示すように、情報処理システム1は、例示的に、ホストマシン2、管理マシン3、並びに、複数(図5の例では2つ)のクライアントマシン4−1及び4−2をそなえる。なお、ホストマシン2及び管理マシン3の一方又は双方は、情報処理システム1に複数存在してもよく、クライアントマシン4は、情報処理システム1に3つ以上存在してもよい。
ホストマシン2は、情報処理装置の一例である。ホストマシン2としては、例えばサーバ又はPersonal Computer(PC)等の種々のコンピュータが挙げられる。例えばホストマシン2は、ユーザからの要求に応じて、ユーザの希望する処理回路を構成した、キャッシュコヒーレントなFPGAをプロセッサとして提供するクラウドサービスで利用されてよい。
ホストマシン2は、例示的に、CPU2a、メモリ2b、FPGA21、及びネットワーク装置26をそなえてよい。CPU2aは、種々の制御や演算を行なうプロセッサの一例である。メモリ2bは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ2bとしては、例えばRandom Access Memory(RAM)等の揮発性メモリが挙げられる。
FPGA21は、回路の再構成が可能な集積回路の一例である。FPGA21は、ホストマシン2に複数存在してもよい。
FPGA21には、ホストマシン2の製造時或いは出荷時、又はホストマシン2の起動時等のクラウドサービスの提供前においては、論理ブロックが構成されていなくてもよい。図5の例は、情報処理システム1の運用段階において、クライアントマシン4−1及び4−2からの要求に応じて論理ブロックが構成された状態を示す。
FPGA21は、CPU2aと同等に扱われるキャッシュコヒーレントバスに配置されてよい。この場合、FPGA21とCPU2aとの間でメモリアクセスに用いるキャッシュの一貫性が保たれるような制御が行なわれてよい。
図5に示すように、FPGA21は、処理回路22a、暗号装置23a、及びID24aが構成された第1領域21aと、処理回路22b、暗号装置23b、及びID24bが構成された第2領域21bとを含んでよい。
処理回路22は、クライアントマシン4が送信する情報に応じた演算を行なう演算回路の一例である。
暗号装置23は、処理回路22により演算された演算結果に対して、処理回路22に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路の一例である。なお、暗号装置23により暗号化された暗号化データは、メモリ2bのアドレスを管理する管理情報(図示省略)に基づき、メモリ2b内の処理回路22に割り当てられたメモリ25に書き込まれてよい。また、暗号装置23は、メモリ25から読み出された暗号化データを暗号鍵を用いて復号し、処理回路22に渡してよい。暗号化データのメモリ25への書き込み及び読み出しは、処理回路22、暗号装置23、FPGA21内の他の回路、CPU2a、その他の任意の装置又は回路等によって行なわれてよい。
なお、管理情報としては、CPU2a又はFPGA21で実行されるOSが管理するページテーブルが挙げられる。図5に示すように、メモリ2bは、処理回路22aに割り当てられた物理アドレスのアドレス領域であるメモリ25aと、処理回路22bに割り当てられた物理アドレスのアドレス領域であるメモリ25bとを有してよい。
暗号装置23による暗号化は、既知の種々の手法により行なうことが可能である。例えば暗号化方式として、対称暗号化方式が用いられてよい。なお、対称暗号化方式に代えて、非対称暗号化方式が用いられてもよい。
なお、ホストマシン2は、FPGA21からの暗号化データが書き込まれるメモリ25(又はメモリ2b)を持たなくてもよい。例えば、メモリ25(メモリ2b)は、他のホストマシン又は任意の情報処理装置にそなえられてもよい。
ID24は、クラウドサービスの提供に用いられる識別子の情報であり、例えば領域21a若しくは21bのID、又は処理回路22(アクセラレータ)のIDであってよい。
ネットワーク装置26は、図示しないネットワークを介してクライアントマシン4との間で通信を行なう。なお、ネットワーク装置26は、管理マシン3とホストマシン2との間の通信でも用いられてよい。ネットワークとしては、例えばインターネット、又はLocal Area Network(LAN)若しくはWide Area Network(WAN)等が挙げられる。
管理マシン3は、ホストマシン2を管理する管理装置の一例である。管理マシン3としては、例えばサーバ又はPC等の種々のコンピュータが挙げられる。管理マシン3は、暗号鍵を処理回路22と対応付けて管理し、処理回路22を利用するクライアントマシン4へ処理回路22に対応する暗号鍵を通知してよい。
また、管理マシン3は、クライアントマシン4からの要求に応じて、処理回路22の構成に用いる第1情報と、暗号装置23の構成に用いる第2情報と、に基づき、処理回路22及び暗号装置23をFPGA21に構成する制御を行なってよい。なお、管理マシン3によりFPGA21に対するID24の書き込みも制御されてよい。第1情報及び第2情報は、それぞれIPコアであってよい。IPコアには、上述のように、ソフトウェアマクロ、ハードウェアマクロ、又はこれらの組み合わせが含まれてよい。以下の説明において、第1情報を処理IPコア、第2情報を暗号化IPコアと表記する場合がある。
なお、処理IPコアの情報は、管理マシン3がクライアントマシン4から受信してよい。また、暗号化IPコアの情報は、管理マシン3がクライアントマシン4から受信してもよいし、処理IPコアに対応付ける暗号鍵の取得に応じて、管理マシン3が作成してもよい。或いは、管理マシン3が予め記憶しておいた暗号化IPコアを読み出し、読み出した暗号化IPコアに対して、取得した暗号鍵を設定してもよい。
暗号鍵は、管理マシン3が暗号化IPコアとともにクライアントマシン4から受信してもよいし、既知の手法により管理マシン3が生成してもよい。
論理回路をFPGA21に構成する制御は、種々の手法により実現されてよい。例えば、図5に示すように、管理マシン3とホストマシン2のFPGA21とを専用線1aで接続し、管理マシン3がFPGA21に処理回路22及び暗号装置23等のアクセラレータを実装してもよい。なお、図5の例では、便宜上、専用線1aをFPGA21に直接接続しているが、専用線1aは、ネットワークを介してFPGA21に接続されてもよい。
或いは、管理マシン3が、ホストマシン2のCPU2aが実行するOSに対して、FPGA21へのアクセラレータの実装を通信線1b経由で指示し、指示を受けたOSは、制御線27を介してFPGA21にアクセラレータを実装してもよい。なお、図5の例では、便宜上、通信線1bをCPU2aに接続しているが、通信線1bは、ネットワークを介して又は直接、ネットワーク装置26に接続されてもよい。
クライアントマシン4は、ホストマシン2にアクセスする端末装置の一例である。クライアントマシン4としては、PC、サーバ、スマートホン、又はタブレット等の種々のコンピュータが挙げられる。
クライアントマシン4は、例示的に、ネットワーク装置44をそなえるとともに、図示しないCPU及びメモリ等によりアプリケーション41を実行する。例えばクライアントマシン4−1では、ユーザによりアプリケーション41aが操作され、クライアントマシン4−2では、ユーザによりアプリケーション41bが操作される。
ネットワーク装置44は、図示しないネットワークを介してホストマシン2との間で通信を行なう。なお、ネットワーク装置44は、クライアントマシン4と管理マシン3との間の通信でも用いられてよい。ネットワークとしては、例えばインターネット、又はLAN若しくはWAN等が挙げられる。
例えば、クライアントマシン4は、管理マシン3から、自装置が利用する処理回路22に対応する暗号鍵43を受信し、メモリ等に記憶してよい。また、サービスに関するID42についても、管理マシン3から受信しメモリ等に記憶してよい。
また、クライアントマシン4は、ネットワーク装置44を介して、メモリ25から、暗号装置23によりメモリ25に書き込まれた暗号化データを読み出し、読み出した暗号化データを、管理マシン3から通知される暗号鍵を用いて復号してよい。
なお、クライアントマシン4による暗号化データの読出先のメモリは、上述した暗号化データの書き込まれたメモリ25でなくてもよく、メモリ25から暗号化データが転送されたメモリ或いはHDD等の記憶装置であってもよい。暗号化データが転送された記憶装置は、ホストマシン2の内部にそなえられてもよいし、ホストマシン2とは異なる装置にそなえられてもよい。
〔1−4〕動作例
次に、図5〜図7を参照して、上述の如く構成された情報処理システム1の動作例を説明する。
図5に矢印(I)で示すように、例えばクライアントマシン4−1のアプリケーション41aは、管理マシン3に対して、FPGA21を用いるサービスを要求し、アクセラレータの論理を送付する。アクセラレータの論理は、顧客、例えばアプリケーション41aのユーザが用意したIPコアであってよい。
管理マシン3は、サービスに関するID、及び、例えば対称暗号化方式の暗号鍵を取得して、アプリケーション41aに送付する(矢印(II)参照)。アプリケーション41aは、受信したID及び暗号鍵を、それぞれID42a及び暗号鍵43aとして記憶する。
具体例として、図6に示すように、クライアントマシン4は、管理マシン3へサービスの要求を送信する(処理T1)。管理マシン3は、受信した要求についてサービスの認証を行ない(処理T2)、例えばID42を発行し、アプリケーション41に対してID42を送信する(処理T3)。
また、クライアントマシン4は、管理マシン3にアクセラレータの論理を送信する(処理T4)。管理マシン3は、暗号鍵43を取得し(処理T5)、取得した暗号鍵43をクライアントマシン4に提供する(処理T6)。
次に、図5に示すように、論理を受信した管理マシン3は、論理合成を行ない、処理回路22a及び暗号装置23aをFPGA21に実装する(矢印(III)参照)。このとき、管理マシン3は、論理合成により合成された処理回路22aのデザインをFPGA21に配置するとともに、取得した暗号鍵を用いて暗号化を行なう暗号装置23aを、FPGA21のメモリインタフェースに配置する。
例えば、論理合成では、ハードウェア記述言語(HDL;Hardware Description Language)で表されるRTL等のIPコアが、ゲート・レベルのネットリストへ変換されて、論理回路の実装設計が行なわれてよい。ネットリストは、素子間を接続する配線(ネット)の一覧を記述した設計データの表現形式である。
なお、HDLとしては、Verilog HDLや、VHSIC HDL(VHDL)等のハードウェア記述言語が使われてよい。VHSICは、very high speed integrated circuitsの略称である。
具体例として、図6に示すように、管理マシン3は、アクセラレータの論理の論理合成を行なう(処理T7)。そして、管理マシン3は、処理回路22、暗号装置23、及びID24をFPGA21に書き込む(処理T8)。書き込みが完了すると、FPGA21は書込完了通知を管理マシン3へ送信する(処理T9)。書込完了通知を受信すると、管理マシン3は、クライアントマシン4に準備完了通知を送信する(処理T10)。
他の例として、図7に示すように、管理マシン3は、処理T7でアクセラレータの論理合成を行なうと、処理回路22、暗号装置23、及びID24のFPGA21への書き込みを、ホストマシン2のCPU2aに通知してもよい(処理T20)。CPU2aは、OSにより、処理回路22、暗号装置23、及びID24をFPGA21に書き込んでよい(処理T21)。処理T9及びT10は図6と同様である。なお、図7において、処理T7の論理合成はホストマシン2で行なわれてもよい。
次に、図5に示すように、アプリケーション41aは、管理マシン3から通知されたID43aを用いてハードウェア、例えばホストマシン2のFPGA21に構成された処理回路22aを特定し、処理回路22aに特定の演算を実行させる。FPGA21の暗号装置23aは、処理回路22aでの演算結果を、設定された暗号鍵で暗号化する。暗号化データは、メモリ25aに保存される(矢印(IV)参照)。
また、演算結果(データ(A))は、ネットワーク装置26及び44を通じてパケット(A)としてネットワークを伝送され、ホストマシン2からクライアントマシン4−1に転送される(矢印(V)参照)。アプリケーション41aは、管理マシン3から通知された暗号鍵43aを用いて、データ(A)を復号する。
具体例として、図6に示すように、クライアントマシン4は、ID42により特定したFPGA21の処理回路22に対して計算開始合図を送信する(処理T11)。計算開始合図を受信すると、ホストマシン2ではランタイムが起動されてFPGA21のドライバがロードされる。
そして、FPGA21は、処理回路22により演算を行ない、暗号装置23により演算結果を暗号化し(処理T12)、暗号化データを処理回路22に割り当てられたメモリ25にストアする(処理T13)。なお、演算の過程で、メモリ25に記憶された暗号化データがFPGA21にロードされ(処理T14)、暗号装置23により暗号化データが復号され(処理T15)、復号されたデータが処理回路22で用いられてよい。
処理回路22による演算が終了すると、FPGA21はクライアントマシン4へ計算終了通知を送信し(処理T16)、メモリ25に記憶された演算結果の暗号化データが、ネットワーク装置26及び44を介してクライアントマシン4に転送される(処理T17)。
クライアントマシン4のアプリケーション41は、受信した暗号化データを、暗号鍵43を用いて復号する(処理T18)。処理が終了すると、アプリケーション41は、管理マシン3に対してサービス終了通知を送信し(処理T19)、FPGA21を用いたサービスが終了する。
ここで、悪意あるユーザ、例えばクライアントマシン4−2のアプリケーション41bのユーザが、図5の矢印(IV)において、マリシアスIPである処理回路22bを用いて、メモリ25aに記憶されたデータにアクセスする場合を考える。
なお、処理回路22a及び22bがいずれもマリシアスIPではない場合、第1領域21a又は第2領域21bの管理情報には、他方の領域(第2領域21b又は第1領域21a)の管理情報に定められたアドレスに対して排他的に予め定められるアドレスが設定されていてよい。
一方、例えば処理回路22bがマリシアスIPである場合、第2領域21bの管理情報には、第1領域21aの管理情報に定められたアドレスに対して排他的に予め定められるアドレスとは異なるアドレスが設定され得る。この「異なるアドレス」は、例えば、マリシアスIPにより第1領域21aの管理情報に定められたアドレスと重複するように設定されることがある。
或いは、処理回路22bがマリシアスIPである場合、第2領域21bの管理情報内のアドレスは正常(第1領域21aの管理情報内のアドレスに対して排他的)であるものの、処理回路22bによる読み出し後に当該アドレスが上記「異なるアドレス」に変換される場合もある。
いずれの場合においても、マリシアスIPは、第2領域21bの管理情報に基づき、処理回路22aに対応するメモリ25aにアクセスし得る。
しかし、メモリ25aに記憶されたデータは、アプリケーション41aが利用する処理回路22aに対応する暗号鍵により暗号化されたデータである。従って、アプリケーション41bのユーザは、アプリケーション41aの暗号化データを取得できたとしても、暗号鍵43aを有していないため、暗号化データを復号できない(矢印(VI)参照)。
このように、情報処理システム1によれば、FPGA21がプロセッサとして用いられるホストマシン2において、マリシアスIPにより他人のメモリ25からデータを盗み見ることを防止でき、情報漏えいの脅威を未然に防止できる。なお、情報漏えいの脅威としては、例えば、マリシアスIPによるデータ漏えいにより、例えば発表前の経理情報を盗まれ、株価が不正に操作されたり、クレジットカードの番号が盗まれ、不正に使用されるといった脅威が考えられる。
従って、一実施形態に係る情報処理システム1によれば、ホストマシン2のメモリ25が記憶するユーザデータについて、信頼性の高いデータ管理を実現できる。
一実施形態に係る情報処理システム1では、FPGA21に対して、処理回路22に加えて暗号装置23が追加されるものの、暗号装置23によるFPGA21の使用コスト、例えば回路規模を、僅かな増加に留めることができる。例えば、ユーザ粒度にもよるが、近年のFPGAの回路規模に対して2〜5%程度の増加に留めることができる。
また、情報処理システム1では、暗号装置23のハードウェアによる暗号化及び復号によって10%程度のレイテンシが生じ得るものの、FPGA21の処理がパイプラインであるため、帯域を維持することができる。
なお、FPGAをそなえる情報処理装置におけるセキュリティリスクを低減させる手法として、管理装置が、受け取った論理について悪意のあるアルゴリズムであるか否かを判別するという手法も考えられる。しかし、判別が困難になるケースがあり、マリシアスIPによるデータ漏えいを完全に防げるとはいえない。
また、他の手法として、情報処理装置にFPGAを監視するハードウェアを追加する手法も考えられるが、プロセッサのメモリアクセスはボトルネックになるケースが多い。従って、性能低下やハードウェアコストの増大を招く可能性が高く、費用対効果が良いとはいい難い。
以上のことから、FPGAをそなえる情報処理装置におけるセキュリティリスクを低減させる手法として、上述した一実施形態に係る手法が効果的であるといえる。
〔1−5〕ハードウェア構成例
次に、ホストマシン2、管理マシン3、及びクライアントマシン4のハードウェア構成例について説明する。なお、ホストマシン2、管理マシン3、及びクライアントマシン4は、いずれも同様のハードウェア構成をそなえてよい。以下、便宜上、ホストマシン2、管理マシン3、及びクライアントマシン4をまとめてコンピュータ5と表記し、コンピュータ5のハードウェア構成例について説明する。
図8に示すように、コンピュータ5は、例示的に、CPU5a、メモリ5b、記憶部5c、インタフェース部5d、入出力部5e、及び読取部5fをそなえる。
CPU5aは、種々の制御や演算を行なうプロセッサの一例である。CPU5aは、コンピュータ5内の各ブロックとバスで相互に通信可能に接続されてよい。なお、プロセッサとしては、CPU5a等の演算処理装置に代えて、電子回路、例えばMicro Processing Unit(MPU)、やApplication Specific Integrated Circuit(ASIC)等の集積回路(IC)が用いられてもよい。
メモリ5bは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。メモリ5bとしては、例えばRAM等の揮発性メモリが挙げられる。
なお、図5に示すホストマシン2のCPU2a及びメモリ2bは、図8に示すCPU5a及びメモリ5bの一例である。
記憶部5cは、種々のデータやプログラム等の情報を格納するハードウェアの一例である。記憶部5cとしては、例えばHard Disk Drive(HDD)等の磁気ディスク装置、Solid State Drive(SSD)等の半導体ドライブ装置、フラッシュメモリやRead Only Memory(ROM)等の不揮発性メモリ等の各種記憶装置が挙げられる。
例えば記憶部5cは、コンピュータ5の各種機能の全部若しくは一部を実現するプログラム50を格納してよい。CPU5aは、例えば記憶部5cに格納されたプログラム50をメモリ5bに展開して実行することにより、コンピュータ5の機能を実現することができる。
インタフェース部5dは、ネットワーク等との間の接続及び通信の制御等を行なう通信インタフェースの一例である。例えばインタフェース部5dは、LAN、Infiniband(インフィニバンド)、Fibre Channel(FC、ファイバチャネル)、Universal Serial Bus(USB)、又はBluetooth(登録商標)等に準拠したアダプタが挙げられる。図5に示すホストマシン2のネットワーク装置26及びクライアントマシン4のネットワーク装置44は、図8に示すインタフェース部5dの一例である。
なお、プログラム50は、ネットワーク等からインタフェース部5dを介してコンピュータ5にダウンロードされてもよい。
入出力部5eは、マウス、キーボード、又は操作ボタン等の入力部、並びに、ディスプレイ又はプリンタ等の出力部、の一方又は双方を含んでよい。
読取部5fは、記録媒体5gに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部5fは、コンピュータが読取可能な記録媒体5gを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部5fとしては、例えばUSB等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体5gにはプログラム50が格納されてもよい。
記録媒体5gとしては、例示的に、フレキシブルディスク、CD、DVD、ブルーレイディスク等の光ディスクや、USBメモリやSDカード等のフラッシュメモリ、等の非一時的な記録媒体が挙げられる。なお、CDとしては、例示的に、CD−ROM、CD−R、CD−RW等が挙げられる。また、DVDとしては、例示的に、DVD−ROM、DVD−RAM、DVD−R、DVD−RW、DVD+R、DVD+RW等が挙げられる。
上述したコンピュータ5のハードウェア構成は例示である。従って、コンピュータ5内でのハードウェアの増減(例えば任意のブロックの追加や省略)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。また、ホストマシン2、管理マシン3、及びクライアントマシン4の間で、異なるハードウェア構成がそなえられてもよい。なお、ホストマシン2のハードウェア構成例については、図8に示す構成に加えて、図5に示すFPGA21及び関連する装置或いは回路がさらにそなえられてよい。
〔1−6〕ホストマシンの構成例
次に、図9を参照して、一実施形態に係るホストマシン2の機能構成例について説明する。図9に示すように、ホストマシン2は、例示的に、通信部28及び書込処理部29をそなえる。
通信部28は、ネットワーク装置26を介して、又は、図5に示す通信線1bを介して、管理マシン3及びクライアントマシン4と通信を行なう。クライアントマシン4との間の通信には、処理回路22の実行に係る要求若しくはデータの送受信が含まれてよく、管理マシン3との間の通信には、処理回路22、暗号装置23、及びID24の書き込みに係る要求若しくはデータの送受信が含まれてよい。
書込処理部29は、管理マシン3からの制御により、ホストマシン2がFPGA21に処理回路22、暗号装置23、及びID24を書き込む場合に用いられる。管理マシン3がFPGA21に処理回路22、暗号装置23、及びID24を書き込む場合には、書込処理部29はホストマシン2にそなえられなくてよい。
書込処理部29は、OS又はドライバの機能を用いて、FPGA21に対して論理の書き込みを行なう。例えば書込処理部29は、管理マシン3からのFPGA21へのアクセラレータの実装指示に基づき、図5に示す制御線27を介して、FPGA21にアクセラレータの論理を書き込んでよい。この場合、通信部28は、アクセラレータの実装指示を管理マシン3から受信し、書込処理部29による書込処理の完了に応じて、アクセラレータの実装完了通知を管理マシン3へ送信してもよい。
換言すれば、書込処理部29は、管理マシン3から受信する処理IPコア34及び暗号化IPコア35(図10参照)に基づき、処理回路22及び暗号装置23をFPGA21に構成する構成部の一例である。
なお、書込処理部29は、アクセラレータの論理合成を行なってもよい。この場合、書込処理部29は、通信部28を介してFPGA21から処理IPコア、暗号化IPコア(例えば暗号鍵の情報を含んでよい)、及びIDの情報を取得してよい。
上述したホストマシン2の機能は、ホストマシン2のCPU5a(例えば図5に示すCPU2a)が、メモリ5b(例えば図5に示すメモリ2b)に格納されたプログラム50を実行することにより実現されてよい。
〔1−7〕管理マシンの構成例
次に、図10及び図11を参照して、一実施形態に係る管理マシン3の機能構成例について説明する。
図10に示すように、管理マシン3は、例示的に、通信部31、ユーザ管理部32、ユーザDatabase(DB)33、1以上の処理IPコア34、1以上の暗号化IPコア35、暗号鍵取得部36、暗号化IPコア生成部37、及び書込制御部38をそなえる。
通信部31は、ホストマシン2及びクライアントマシン4と通信を行なう。ホストマシン2との間の通信には、図示しないネットワークを介した、又は、図5に示す制御線1a若しくは通信線1bを介した、処理回路22、暗号装置23、及びID24の書き込みに係る要求若しくはデータの送受信が含まれてよい。クライアントマシン4との間の通信には、サービスの提供に関する情報、例えばユーザ情報、アクセラレータの論理に関する情報、暗号鍵に関する情報等の送受信が含まれてよい。
ユーザ管理部32は、クラウドサービスを利用するユーザを管理する。例えばユーザ管理部32は、ユーザDB33に基づき、ユーザとIPコア及び暗号鍵とを対応付けて管理してよい。また、ユーザ管理部32は、クライアントマシン4からのサービス要求に対する認証や、受信したIPコアを処理IPコア34又は暗号化IPコア35として管理する処理、ユーザDBの更新等を行なってもよい。
ユーザDB33は、ユーザごとの情報を管理するデータベースの一例である。ユーザDB33は、例えばメモリ5b又は記憶部5c(図8参照)によって実現されてよい。ユーザDBのデータ構成例を図11に示す。
図11に例示するように、ユーザDB33には、ユーザID、サービスID、暗号鍵、処理IPコア、及び、暗号化IPコアの各情報が含まれてよい。ユーザIDはユーザ、例えばアプリケーション41を識別する情報の一例であり、サービスIDは、ユーザが利用するサービスを識別する情報の一例である。サービスIDとしては、例えばFPGA21において割り当てられる領域のIDや、アクセラレータのIDが用いられてもよい。
暗号鍵は、暗号鍵の情報そのものであってもよいし、暗号鍵取得部36が取得した暗号鍵を特定できる情報であってもよい。処理IPコア及び暗号化IPコアは、ユーザ管理部32又は暗号化IPコア生成部37が取得したこれらのIPコアの情報そのものであってもよいし、これらのIPコアを特定できる情報であってもよい。なお、サービスIDがFPGA21の領域のIDやアクセラレータのIDである場合、IDで処理IPコア又は/及び暗号化IPコアを特定できれば、処理IPコア又は/及び暗号化IPコアの情報はユーザDB33に含まれなくてもよい。
換言すれば、ユーザ管理部32は、暗号鍵を処理回路22と関連付けて管理する管理部の一例である。また、通信部31は、クライアントマシン4へ処理回路22に対応する暗号鍵を通知する通知部の一例である。
処理IPコア34は、例えばクライアントマシン4から受信した、処理回路22を生成するためのIPコアである。
暗号化IPコア35は、暗号装置23を生成するためのIPコアであり、例えばクライアントマシン4から受信した暗号化IPコア、暗号化IPコア生成部37が生成した暗号化IPコアの情報、又は、予め記憶しておいた暗号化IPコアの情報、等であってよい。
処理IPコア34及び暗号化IPコア35は、例えば論理合成が行なわれるまでメモリ5b又は記憶部5c等に蓄積されてよい。また、IPコアは再利用可能な機能ブロックであるため、再利用の可能性があれば、処理IPコア34及び暗号化IPコア35の一方又は双方は、論理合成後も例えばメモリ5b又は記憶部5c等に記憶させ続けてもよい。
暗号鍵取得部36は、暗号装置23による暗号化又は復号、並びにクライアントマシン4における復号に用いる暗号鍵を取得する。暗号鍵の取得では、暗号化IPコア35の情報とともにクライアントマシン4から暗号鍵を受信してもよいし、既知の手法により暗号鍵取得部36が暗号鍵を生成してもよい。生成された暗号鍵は、例えば論理合成が行なわれるまでメモリ5b又は記憶部5c等に蓄積されてよい。
暗号化IPコア生成部37は、暗号化IPコア35を生成する。例えば暗号化IPコア生成部37は、暗号鍵取得部36が取得した暗号鍵を暗号化のキーとして含む暗号化IPコア35を生成し、メモリ5b又は記憶部5c等に蓄積してよい。或いは、暗号化IPコア生成部37は、メモリ等に予め蓄積された暗号化IPコアに対して、暗号鍵取得部36が取得した暗号鍵を暗号化のキーとして設定してもよい。なお、暗号化のキーを設定された暗号化IPコア35がクライアントマシン4から送付される場合には、暗号化IPコア生成部37はそなえられなくてもよい。
換言すれば、ユーザ管理部32及び暗号化IPコア生成部37の少なくとも一方は、処理回路22の構成に用いる第1情報と、暗号装置23の構成に用いる第2情報と、を取得する取得部の一例である。また、通信部31は、処理回路22をFPGA21に構成することを指示する要求を、クライアントマシン4から受信する受信部の一例である。
書込制御部38は、処理IPコア34及び暗号化IPコア35の論理合成を行ない、処理回路22及び暗号装置23をFPGA21に書き込む制御を行なう。
なお、書込制御部38による、処理回路22及び暗号装置23等のアクセラレータをFPGA21に構成する制御は、上述のように種々の手法により実現されてよい。例えば、書込制御部38は、FPGA21に対して専用線1a(図5参照)を介してアクセラレータを書き込んでもよい。
或いは、書込制御部38は、ホストマシン2のCPU2aが実行するOSに対して、FPGA21へのアクセラレータの実装を通信線1b(図5参照)経由で指示してもよい。
換言すれば、書込制御部38は、処理回路22の構成に用いる第1情報と、暗号装置23の構成に用いる第2情報と、に基づき、処理回路22及び暗号装置23をFPGA21に構成する制御を行なう制御部の一例である。
上述した管理マシン3の機能は、管理マシン3のCPU5a(図8参照)が、メモリ5bに格納されたプログラム50を実行することにより実現されてよい。
〔1−8〕実施例
次に、図12及び図13を参照して、一実施形態に係る情報処理システム1の実施例について説明する。図12は一実施形態の実施例に係る情報処理システム10の構成を示すブロック図であり、図13は、図12に示すFPGA210の構成例を示すブロック図である。
図12に示すように、情報処理システム10は、例示的に、ホストマシン20、管理マシン30、並びに複数(図12の例では2つ)のクライアントマシン40−1及び40−2をそなえる。なお、ホストマシン20及び管理マシン30の一方又は双方は、情報処理システム10に複数存在してもよく、クライアントマシン40は、情報処理システム10に3つ以上存在してもよい。
ホストマシン20は、例示的に、CPUコア200、ローカルキャッシュ201、ラストレベルキャッシュ202、及びキャッシュコヒーレントバス203をそなえる。また、ホストマシン20は、例示的に、Memory Management Unit(MMU)204、Dynamic RAM(DRAM)205、FPGA210、サウスブリッジ260、及びNetwork Interface Card(NIC)262をそなえる。なお、CPU200及びFPGA210の一方又は双方は、ホストマシン20に複数存在してもよい。
CPUコア200は、ストアバッファ200a、ロードバッファ200b、及びTLB200cをそなえてよい。ストアバッファ200aは、ローカルキャッシュ201にストアするデータのバッファとして用いられてよく、ロードバッファ200bは、ローカルキャッシュ201からロードするデータのバッファとして用いられてよい。TLB200cは、DRAM205が記憶するページテーブル205aのうちの一部の情報、例えば頻繁に使われるアドレスの変換テーブルを記憶してよい。
ローカルキャッシュ201は、CPUコア200ごとに設けられるキャッシュであり、例えばL1キャッシュと位置付けられてよい。CPUコア200及びローカルキャッシュ201は、図5に示すCPU2aの一例である。
ラストレベルキャッシュ202は、CPUコア200及びFPGA210とMMU204との間に設けられるキャッシュであり、例えば最終段のキャッシュと位置付けられてよい。ラストレベルキャッシュ202は、CPUコア200及びFPGA210との間に、キャッシュコヒーレントバス203を提供してよい。換言すれば、ホストマシン20では、CPUコア200とFPGA210とが同等なプロセッサとして扱われる。
MMU204は、CPUコア200又はFPGA210が要求するメモリアクセスを処理する。MMU204は、例えばキャッシュの制御やバスの調停等の機能を有してよい。
DRAM205は、ホストマシン20の主記憶装置として機能するメモリである。一例として、DRAM205は、複数のDRAMチップを搭載したメモリモジュール、例えばDual Inline Memory Module(DIMM)であってもよい。なお、図12には、DRAM205が4つのDIMMをそなえる例を示す。DRAM205は、図5に示すメモリ2bの一例である。
DRAM205は、ホストマシン20のOSが用いるページテーブル205aを記憶してよい。なお、ページテーブル205は、メモリの割り当てを管理する情報の一例である。
FPGA210は、図5に示すFPGA21の一例である。図12に示すように、FPGA210は、例示的に、複数(図12の例では2つ)の回路領域210a及び210b、FPGAコンフィグポート250、デマルチプレクサ252、マルチプレクサ254、及びローカルキャッシュ256をそなえる。
回路領域210a及び210bには、それぞれ、例えばクライアントマシン40−1のユーザが利用する論理回路と、クライアントマシン40−2のユーザが利用する論理回路とが構成される。回路領域210a及び210bの詳細については後述する。
FPGAコンフィグポート250は、FPGA210に論理回路を構成する際に用いられるポートである。管理マシン30は、専用線1aを介してFPGAコンフィグポート250にアクセスすることで、FPGA210に論理回路を構成することができる。
換言すれば、FPGAコンフィグポート250は、管理マシン30と接続される接続部の一例であり、処理回路22及び暗号装置23は、管理マシン30によって、FPGAコンフィグポート250を介してFPGA210に構成されるといえる。
デマルチプレクサ(DEMUX;demultiplexer)252は、入力信号を複数の出力のいずれかへ分配する回路である。例えばデマルチプレクサ252は、ローカルキャッシュ256から入力されたアドレス及びデータの情報を、回路領域210a及び210bのいずれか一方に出力する。
マルチプレクサ(MUX;multiplexer)254は、複数の入力からいずれか1つを選択して信号を出力する回路であり、セレクタの一例である。例えばマルチプレクサ254は、回路領域210aから入力されたアドレス及びデータの情報、又は、回路領域210bから入力されたアドレス及びデータの情報を選択し、ローカルキャッシュ256に出力する。
ローカルキャッシュ256は、FPGA210ごとに設けられるキャッシュである。ローカルキャッシュ256は、ローカルキャッシュ201とともに、キャッシュコヒーレントバス203に接続されてよい。
サウスブリッジ(South Bridge)260は、プロセッサの周辺回路として機能するチップセットを有する集積回路(IC)の一例である。図12の例では、サウスブリッジ260は、NIC262等の周辺デバイスを制御するコントローラである。なお、サウスブリッジ260としては、例えばInput/Output Controller Hub(ICH)が挙げられる。
NIC262は、ホストマシン20をLAN等のネットワークに接続する装置である。NIC262は、図5に示すネットワーク装置26の一例である。NIC262は、例えば管理マシン30及びクライアントマシン40の各々と有線又は無線により接続されてよい。
管理マシン30は、例示的に、CPU3a、メモリ3b、NIC310、FPGA書込装置320、及びユーザDB330をそなえる。
CPU3a及びメモリ3bは、図8に示すCPU5a及びメモリ5bの一例である。ユーザDB330は、ユーザごとの情報を管理するデータベースの一例であり、図10に示すユーザDB33と同様のデータ構成であってよい。
NIC310は、管理マシン30をLAN等のネットワークに接続する装置である。NIC310は、例えばホストマシン20及びクライアントマシン40の各々と有線又は無線により接続されてよい。なお、管理マシン30は、NIC310により通信線1b経由で、ホストマシン20のCPUコア200が実行するOSに対して、FPGA210へのアクセラレータの実装を指示してよい。
FPGA書込装置320は、専用線1aを介して、ホストマシン20のFPGA210にそなえられたFPGAコンフィグポート250に対して、FPGA210の回路領域210a又は210bにアクセラレータを書き込む制御を行なう。なお、FPGA210へのアクセラレータの書き込みは、既知の種々の手法により実現可能である。
クライアントマシン40は、例示的に、CPU4a、メモリ4b、及びNIC410をそなえる。
CPU4a及びメモリ4bは、図8に示すCPU5a及びメモリ5bの一例である。
NIC410は、クライアントマシン40をLAN等のネットワークに接続する装置である。NIC410は、例えばホストマシン20及び管理マシン30の各々と有線又は無線により接続されてよい。
次に、ホストマシン20のFPGA210の構成例について説明する。図13に示すように、回路領域210a及び210bには、それぞれ、例示的に、演算処理装置220、メモリインタフェース221及び223、ページテーブル222、復号装置230、並びに暗号化装置232が構成される。
演算処理装置220は、図5に示す処理回路22の一例である。演算処理装置220には、対応するユーザにより設計等された論理が含まれてよい。演算処理装置220は、CPUコア200とともに、プロセッサとしてOSを実行してもよい。
メモリインタフェース221及び223は、DRAM205に対するインタフェースを提供する。例えばメモリインタフェース221は、デマルチプレクサ252で選択された、DRAM205からのアドレス及びデータを、それぞれページテーブル222及び復号装置230に出力する。また、メモリインタフェース223は、ページテーブル222から出力された(又は通過した)アドレスと、暗号化装置232から出力されたデータとを、それぞれマルチプレクサ254に出力する。
ページテーブル222は、演算処理装置220による仮想アドレス−物理アドレス間の変換に用いられる。例えば演算処理装置220は、DRAM205が記憶するページテーブル205aをコピーして、ページテーブル222に格納してよい。ページテーブル222は、DRAM205のアドレスを管理する管理情報の一例である。
復号装置230は、メモリインタフェース221から入力される暗号化データを、演算処理装置220に対応付けられた暗号鍵を用いて復号し、復号データを演算処理装置220に出力する。
暗号化装置232は、演算処理装置220から出力されるデータを、演算処理装置220に対応付けられた暗号鍵を用いて暗号化する。暗号化データはメモリインタフェース223に出力される。
換言すれば、復号装置230及び暗号化装置232は、図5に示す暗号装置23の一例である。
ID240は、図5に示すID24の一例である。ID240には、回路領域210a若しくは210b、又はアクセラレータ(例えば演算処理装置220)のIDが設定されてよい。このID240は、ユーザが利用する演算処理装置220の識別に用いられてよい。
ここで、復号装置230及び暗号化装置232が用いる暗号鍵は、管理マシン30により演算処理装置220と対応付けて管理されるとともに、演算処理装置220のユーザに通知される。従って、DRAM205に格納される演算処理装置220の演算結果は、演算処理装置220を利用するユーザであれば暗号鍵を用いて復号できる一方、他のユーザは、暗号鍵を有してないため、当該演算結果を取得したとしても正しく復号できない。
このように、一実施形態に係る手法によれば、図12及び図13に示す情報処理システム10においても、他人がデータを盗み出すことを防止でき、セキュリティリスクを低減できる。
〔1−9〕変形例
次に、一実施形態の変形例について説明する。
一実施形態では、管理マシン3は、ユーザが用意したIPコアをクライアントマシン4から受信し、当該IPコアに基づき、FPGA21に処理回路22を構成する。
ここで、上述のようにIPは再利用可能な機能ブロックである。FPGAを利用するサービスでは、IPを再利用可能であるため、或るユーザが過去に設計したものを、機能ブロックごと当該ユーザ又は他のユーザが再利用したり、機能ブロックを作成して販売したりすることも可能である。
そこで、一実施形態の変形例では、図14に示すように、情報処理システム1AがIPコアのリソースプール6をそなえてもよい。なお、情報処理システム1Aは、図5に示す情報処理システム1と同様のホストマシン2及びクライアントマシン4をそなえてよく、情報処理システム1と一部の機能が異なる管理マシン3Aをそなえてよい。
リソースプール6は、複数のIPコア、換言すれば複数種類の処理回路22に対応する複数の第1情報を蓄積するストレージ装置の一例である。なお、リソースプール6は、暗号装置23の構成に用いる第2情報を更に蓄積してもよい。リソースプール6としては、例えばサーバ又はPC等の種々のコンピュータが挙げられる。
リソースプール6は、図8に示すコンピュータ5と同様のハードウェア構成をそなえてよい。なお、リソースプール6は、記憶部5cとして、HDD又はSSDを複数そなえてよく、これらを用いて例えばRedundant Arrays of Inexpensive Disks(RAID)等が構成されてもよい。
図14に示すように、リソースプール6は、例示的に、IPコアDB61をそなえてよい。IPコアDB61には、複数のIPコアが登録され、管理マシン3Aからの要求に応じて、要求されたIPコアがIPコアDB61から読み出され、管理マシン3Aに送信されてよい。なお、IPコアDB61は、例えば記憶部5c等のストレージにより実現されてよい。
リソースプール6では、例えばFPGA21のベンダや他の提供者がIPコアを登録し、登録したIPコアを販売又は提供してもよい。
クライアントマシン4は、管理マシン3Aに対して、どのような処理を実現したいのかといった情報、例えば処理シーケンスや、IPコアを特定する情報等の、FPGA21に構成する処理回路21に関する情報を送信してよい。クライアントマシン4から処理シーケンスが送信される場合、管理マシン3Aは、受信した処理シーケンスに基づき、リソースプール6からIPコアを選定し、選定したIPコアに基づく処理回路22をアプリケーション41に利用させてよい。
或いは、クライアントマシン4は、例えば、リソースプール6に登録されたIPコアの中から利用したいIPコアを選択し、管理マシン3Aに対して、選択したIPコアに基づく処理回路22の利用登録を行なってもよい。
管理マシン3Aは、クライアントマシン4のユーザが利用するホストマシン2のFPGA21に対して、クライアントマシン4から要求されるIPコアに基づく処理回路22の書き込みを制御及び管理してよい。
なお、暗号装置23については、管理マシン3Aは、一実施形態と同様の手法で暗号化IPコア35を取得し、FPGA21に書き込んでよい。或いは、管理マシン3Aは、暗号化IPコアについてもリソースプール6から取得してもよい。
なお、ホストマシン2、管理マシン3A、及びリソースプール6の少なくとも1つは、データセンタ等の施設に設置されてよい。
次に、図14及び図15を参照して、上述の如く構成された情報処理システム1Aの動作例を説明する。なお、以下、一実施形態に係る情報処理システム1と異なる動作について説明する。
図14に矢印(I′)で示すように、例えばクライアントマシン4−1のアプリケーション41aは、管理マシン3Aに対して、FPGA21を用いるサービスを要求し、利用したい処理シーケンスを送付する。
管理マシン3Aは、サービスに関するID、及び、例えば対称暗号化方式の暗号鍵を取得して、アプリケーション41aに送付する(矢印(II)参照)。アプリケーション41aは、受信したID及び暗号鍵を、それぞれID42a及び暗号鍵43aとして記憶する。
具体例として、図15に示すように、クライアントマシン4は、管理マシン3Aへサービスの要求を送信し(処理T1)、管理マシン3Aから認証を受けて(処理T2)、ID42の提供を受ける(処理T3)。
そして、クライアントマシン4は、管理マシン3Aに処理シーケンスを送信する(処理T31)。管理マシン3Aは、暗号鍵43を取得し(処理T5)、取得した暗号鍵43をクライアントマシン4に提供する(処理T6)。
次に、図14に矢印(II-2)で示すように、処理シーケンスを受信した管理マシン3Aは、図示しないネットワークを介して接続されたリソースプール6にアクセスし、IPコアDB61から処理シーケンスに合致するIPコアをピックアップする(図15の処理T32)。そして、管理マシン3Aは、リソースプール6からピックアップしたIPコアを取得する(図15の処理T33)。
図14の矢印(III)以降の処理、及び、図15の処理T7以降の処理は、一実施形態に係る情報処理システム1と同様でよい。
なお、図15の処理T32及びT33において、IPコアは、リソースプール6からホストマシン2に直接渡されてもよい。この場合、図15の処理T7〜T9におけるFPGA21へのIPコアの書き込みは、以下に例示するように、例えばリソースプール6又はホストマシン2により行なわれてよい。なお、IPコアには、処理IPコア及び暗号化IPコアの少なくとも一方が含まれてよい。
一例として、管理マシン3Aは、リソースプール6に対して、処理シーケンスに合致するIPコアをホストマシン2へ送信する旨の指示を行なってよい。
この場合、リソースプール6は、指定されたIPコアをFPGA21への書込指示とともにホストマシン2に送信し、ホストマシン2のCPU2aが書込指示に基づきIPコアをFPGA21に書き込んでもよい。或いは、リソースプール6とホストマシン2とが専用線で接続される場合には、リソースプール6は、指定されたIPコアを専用線を介してFPGA21に書き込んでもよい。換言すれば、IPコアの論理合成をリソースプール6又はホストマシン2が行なってもよい。
以上のように、変形例に係る情報処理システム1Aによっても、一実施形態に係る情報処理システム1と同様の効果を奏することができる。
また、変形例で想定するような、FPGA21のベンダ等がIPコアを提供する態様であっても、管理マシン3Aが、ユーザ及び処理IPコアに暗号鍵を対応付けるため、ユーザに通知する暗号鍵を適切に管理できる。
さらに、FPGA21への処理回路22の書き込みに用いられるIPコアは、リソースプール6に登録されたIPコアの中から選択される。このため、リソースプール6に登録されたIPコアについて、例えばリソースプール6や管理マシン3Aが事前にセキュリティリスクを判断することも可能となる。従って、一実施形態及び変形例に係る手法に加えて、事前のセキュリティリスクの判断も行なうことで、セキュリティリスクをより低減させることもできる。
次に、図16を参照して、変形例に係る管理マシン3Aの機能構成例について説明する。図16は変形例に係る管理マシン3Aの機能構成を示すブロック図である。図16に示すように、管理マシン3Aは、例示的に、図10に示す管理マシン3の機能構成に加えて、処理IPコア取得部39をさらにそなえる。
なお、受信部の一例としての通信部31は、一実施形態の場合と同様に、処理回路22をFPGA21に構成することを指示する要求を、クライアントマシン4から受信してよい。
処理IPコア取得部39は、複数種類の処理回路22の構成に用いる複数の処理IPコアを蓄積するリソースプール6から、クライアントマシン4が要求する処理IPコアを取得する。なお、クライアントマシン4が要求する処理IPコアは、クライアントマシン4から受信した処理シーケンスに基づき処理IPコア取得部39が特定してもよいし、クライアントマシン4がリソースプール6を参照して選定した処理IPコアであってもよい。
例えば処理IPコア取得部39は、図15の処理T32及びT33に示す処理を行なってよい。なお、処理IPコア取得部39は、取得した処理IPコアを処理IPコア34としてメモリ5b又は記憶部5cに記憶してよい。なお、管理マシン3Aは、処理IPコア34とともに、暗号化IPコア35をリソースプール6から取得してもよい。
換言すれば、処理IPコア取得部39は、クライアントマシン4からの要求を満たす第1情報、及び、第2情報の少なくとも一方を、リソースプール6から取得する取得部の一例である。
書込制御部38は、管理マシン3Aが取得した処理IPコア34及び暗号化IPコア35をFPGA21に構成する制御を行なってよい。
なお、処理IPコアがリソースプール6からホストマシン2に直接渡される場合、管理マシン3Aは、リソースプール6に対するホストマシン2への処理IPコアの送信指示により、FPGA21に処理回路22を構成する制御を行なうことができる。
また、暗号化IPコアがリソースプール6からホストマシン2に直接渡される場合、管理マシン3Aは、リソースプール6に対するホストマシン2への暗号化IPコアの送信指示により、FPGA21に暗号装置23を構成する制御を行なうことができる。
送信指示は、通信部31、書込制御部38、及び処理IPコア取得部39の少なくとも1つの機能によって発行されてよい。換言すれば、通信部31、書込制御部38、及び処理IPコア取得部39の少なくとも1つは、処理回路22の構成に用いる第1情報と、暗号装置23の構成に用いる第2情報と、に基づき、処理回路22及び暗号装置23をFPGA21に構成する制御を行なう制御部の一例である。
なお、管理マシン3Aが処理IPコア又は/及び暗号化IPコアをリソースプール6から取得するか、リソースプール6からホストマシン2へ直接送信させるかは、リソースプール6やホストマシン2が有する機能、IPコアDB61におけるIPコアの格納状況、又は運用状況等に応じて決定されてよい。
次に、図17を参照して、変形例に係る情報処理システム1Aの実施例について説明する。図17は変形例の実施例に係る情報処理システム10Aの構成を示すブロック図である。なお、図17では、便宜上、管理マシン30AのCPU3a及びメモリ3b、クライアントマシン40−1及び40−2のCPU4a及びメモリ4b、並びにリソースプールマシン60のCPU及びメモリの図示を省略している。以下、一実施形態に係る情報処理システム1と異なる構成について説明する。
図17に示すように、情報処理システム10Aは、例示的に、情報処理システム10の構成に加えて、リソースプールマシン60をそなえてよい。
リソースプールマシン60は、図14に示すものと同様のIPコアDB61をそなえてよい。また、リソースプールマシン60は、NIC610をそなえてよい。
NIC610は、リソースプールマシン60をLAN等のネットワークに接続する装置である。NIC610は、例えば管理マシン30と有線又は無線により接続されてよく、さらに、ホストマシン20又はクライアントマシン40と接続されてもよい。
〔2〕その他
上述した一実施形態及び変形例に係る技術は、以下のように変形、変更して実施することができる。
例えば、図9に示すホストマシン2の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。また、図10に示す管理マシン3の各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
また、変形例において、情報処理システム1Aが管理マシン3A及びリソースプール6をそなえるものとしたが、これに限定されるものではない。管理マシン3A及びリソースプール6のいずれか一方の機能は、他方の装置に併合されてもよく、或いは管理マシン3A及びリソースプール6の少なくとも一部の機能を1以上のコンピュータに集約してもよい。この場合、当該他方の装置又は当該コンピュータが、ホストマシン2を管理する管理装置と位置付けられてよい。
一実施形態及び変形例において、FPGA21は、処理回路22及び暗号装置23が複数、例えば2つ構成されるものとしたが、1つのFPGA21に構成される論理回路は、1つ、又は3つ以上であってもよい。1つのFPGA21に複数の論理回路が構成される場合、FPGA21内の複数の処理回路22の各々には、メモリ2bの互いに異なるアドレス領域、例えばメモリ25が割り当てられてよい。
また、一実施形態及び変形例において、ホストマシン2は、FPGA21を複数そなえ、複数のFPGA21の各々に、処理回路22及び暗号装置23が1つ以上構成されてもよい。この場合においても、複数のFPGA21における複数の処理回路22の各々には、メモリ2bの互いに異なるアドレス領域が割り当てられてよい。
さらに、一実施形態及び変形例において、FPGA21には、同じ数の処理回路22及び暗号装置23が構成されるものとして説明したが、これに限定されるものではない。例えば、FPGA21に構成される複数の処理回路22のうちの少なくとも1つの処理回路22が、演算結果を暗号装置23により暗号化してもよい。
図12及び図13の構成例を用いて説明すると、FPGA210は、入力される情報に応じた演算を行なう演算処理装置220と、DRAM205のアドレスを管理するページテーブル222とを含む組を複数有してよい。また、複数の組のうちの少なくとも1つの組は、当該少なくとも1つの組の演算処理回路220により演算された演算結果に対して、当該演算処理回路220に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号装置23、例えば復号装置230及び暗号化装置232をさらに有してよい。
そして、当該少なくとも1つの組の演算処理装置220は、演算結果を暗号化装置232により暗号化した暗号化データを、当該少なくとも1つの組のページテーブル222に基づくDRAM205のアドレスに書き込んでよい。一方、当該少なくとも1つの組以外の組における演算処理回路220は、演算結果を自身の組のページテーブル222に基づくDRAM205のアドレスに書き込んでよい。
このような構成により、例えば、FPGA21に暗号装置23をそなえない、又は、マリシアスIPが暗号装置23を利用しないように構成されていても、他の処理回路22が暗号装置23を用いるように構成されていれば、マリシアスIPが他の処理回路22が用いるメモリ25からデータを盗み見ることを防止できる。換言すれば、マリシアスIPが自身が用いるページテーブル222内のアドレスを異なるアドレスに書き換えたり、ページテーブル222からアドレスを読み出した後に異なるアドレスに変換したとしても、当該異なるアドレスから他の処理回路22のデータを盗み見ることを防止できる。
同様である。
〔3〕付記
以上の実施形態に関し、更に以下の付記を開示する。
(付記1)
情報処理装置と、前記情報処理装置にアクセスする端末装置と、前記情報処理装置を管理する管理装置と、をそなえ、
前記情報処理装置は、
回路の再構成が可能な集積回路をそなえ、
前記集積回路は、
前記端末装置が送信する情報に応じた演算を行なう演算回路と、
前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路と、
が構成され、
前記管理装置は、
前記暗号鍵を前記演算回路と対応付けて管理し、前記端末装置へ前記演算回路に対応する暗号鍵を通知し、
前記端末装置は、
前記暗号化データを記憶する記憶装置から前記暗号化データを読み出し、
読み出した前記暗号化データを、前記管理装置から通知される前記暗号鍵を用いて復号する、
ことを特徴とする、情報処理システム。
(付記2)
前記管理装置は、
前記演算回路の構成に用いる第1情報と、
前記暗号化回路の構成に用いる第2情報と、
に基づき、前記演算回路及び前記暗号化回路を前記集積回路に構成する制御を行なう、
ことを特徴とする、付記1記載の情報処理システム。
(付記3)
前記暗号化回路により生成された前記暗号化データは、前記記憶装置のアドレスを管理する管理情報に基づき前記記憶装置に書き込まれる、
ことを特徴とする、付記1又は付記2記載の情報処理システム。
(付記4)
回路の再構成が可能な集積回路をそなえ、
前記集積回路は、
入力される情報に応じた演算を行なう演算回路と、
前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路と、
が構成される、
ことを特徴とする、情報処理装置。
(付記5)
前記暗号鍵は、前記情報処理装置を管理する管理装置により、前記演算回路と対応付けて管理され、
前記暗号化データは、端末装置により、前記暗号化データを記憶する記憶装置から読み出され、前記管理装置から前記端末装置に通知される前記暗号鍵を用いて復号される、
ことを特徴とする、付記4記載の情報処理装置。
(付記6)
前記暗号化回路により生成された前記暗号化データは、前記記憶装置のアドレスを管理する管理情報に基づき前記記憶装置に書き込まれる、
ことを特徴とする、付記5記載の情報処理装置。
(付記7)
前記情報処理装置を管理する管理装置と接続される接続部をさらにそなえ、
前記演算回路及び前記暗号化回路は、前記管理装置によって、前記接続部を介して前記集積回路に構成される、
ことを特徴とする、付記4〜6のいずれか1項記載の情報処理装置。
(付記8)
前記演算回路の構成に用いる第1情報と、
前記暗号化回路の構成に用いる第2情報と、
に基づき、前記演算回路及び前記暗号化回路を前記集積回路に構成する構成部をさらにそなえる、
ことを特徴とする、付記4〜6のいずれか1項記載の情報処理装置。
(付記9)
前記集積回路には、前記演算回路及び前記暗号化回路がそれぞれ複数構成され、
前記複数の演算回路の各々には、前記記憶装置の互いに異なるアドレス領域が割り当てられる、
ことを特徴とする、付記4〜8のいずれか1項記載の情報処理装置。
(付記10)
前記集積回路を複数そなえ、
前記複数の集積回路の各々には、前記演算回路及び前記暗号化回路が構成され、
前記複数の集積回路における前記複数の演算回路の各々には、前記記憶装置の互いに異なるアドレス領域が割り当てられる、
ことを特徴とする、付記4〜9のいずれか1項記載の情報処理装置。
(付記11)
回路の再構成が可能な集積回路をそなえ、
前記集積回路は、入力される情報に応じた演算を行なう演算回路と、記憶装置のアドレスを管理する管理情報とを含む組を複数有し、
前記複数の組のうちの少なくとも1つの組は、前記少なくとも1つの組の演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路をさらに有し、
前記少なくとも1つの組の演算回路は、前記演算結果を前記暗号化回路により暗号化した前記暗号化データを、前記少なくとも1つの組の管理情報に基づく前記記憶装置のアドレスに書き込み、
前記複数の組のうちの前記少なくとも1つの組以外の組における演算回路は、演算結果を自身の組の管理情報に基づく前記記憶装置のアドレスに書き込む、
ことを特徴とする、情報処理装置。
(付記12)
前記自身の組の管理情報には、前記少なくとも1つの組における管理情報に定められたアドレスに対して排他的に予め定められるアドレスとは異なるアドレスが設定されており、
前記異なるアドレスは、前記少なくとも1つの組における管理情報に定められたアドレスと重複する、
ことを特徴とする、付記11記載の情報処理装置。
(付記13)
前記自身の組の管理情報には、前記少なくとも1つの組における管理情報に定められたアドレスに対して排他的に予め定められるアドレスが設定されており、
前記複数の組のうちの前記少なくとも1つの組以外の組における演算回路は、前記自身の組の管理情報から読み出したアドレスを当該アドレスとは異なるアドレスに変換し、演算結果を前記異なるアドレスに書き込み、
前記異なるアドレスは、前記少なくとも1つの組における管理情報に定められたアドレスと重複する、
ことを特徴とする、付記11記載の情報処理装置。
(付記14)
回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信する受信部と、
前記演算回路であって前記端末装置が送信する情報に応じた演算を行なう前記演算回路の構成に用いる第1情報と、
前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路の構成に用いる第2情報と、
に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう制御部と、をそなえる、
ことを特徴とする、管理装置。
(付記15)
前記第1情報及び前記第2情報を取得する取得部、をさらにそなえ、
前記制御部は、取得した前記第1情報及び前記第2情報に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう、
ことを特徴とする、付記14記載の管理装置。
(付記16)
前記取得部は、複数種類の演算回路に対応する複数の第1情報を蓄積するストレージ装置から、前記端末装置からの要求を満たす第1情報を取得する、
ことを特徴とする、付記15記載の管理装置。
(付記17)
前記ストレージ装置は、前記第2情報をさらに蓄積し、
前記取得部は、前記ストレージ装置から前記第2情報を取得する、
ことを特徴とする、付記16記載の管理装置。
(付記18)
前記制御部は、複数種類の演算回路に対応する複数の第1情報を蓄積するストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路を、前記集積回路に構成させる制御を行なう、
ことを特徴とする、付記14記載の管理装置。
(付記19)
前記ストレージ装置は、前記第2情報をさらに蓄積し、
前記制御部は、前記ストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路と、前記第2情報に基づく前記暗号化回路とを、前記集積回路に構成させる制御を行なう、
ことを特徴とする、付記18記載の管理装置。
(付記20)
前記第2情報を取得する取得部、をさらにそなえ、
前記制御部は、取得した前記第2情報に基づき、前記集積回路に対して、前記暗号化回路を構成する制御を行なう、
ことを特徴とする、付記18記載の管理装置。
(付記21)
前記暗号鍵を前記演算回路と対応付けて管理する管理部と、
前記端末装置へ前記演算回路に対応する暗号鍵を通知する通知部と、をさらにそなえる、
ことを特徴とする、付記14〜20のいずれか1項記載の管理装置。
(付記22)
コンピュータに、
回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信し、
前記演算回路であって前記端末装置が送信する情報に応じた演算を行なう前記演算回路の構成に用いる第1情報と、
前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路の構成に用いる第2情報と、
に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう、
処理を実行させることを特徴とする、処理プログラム。
(付記23)
前記コンピュータに、
前記第1情報及び前記第2情報を取得し、
取得した前記第1情報及び前記第2情報に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう、
処理をさらに実行させることを特徴とする、付記22記載の処理プログラム。
(付記24)
前記コンピュータに、
複数種類の演算回路に対応する複数の第1情報を蓄積するストレージ装置から、前記端末装置からの要求を満たす第1情報を取得する、
処理をさらに実行させることを特徴とする、付記23記載の処理プログラム。
(付記25)
前記ストレージ装置は、前記第2情報をさらに蓄積し、
前記コンピュータに、
前記ストレージ装置から前記第2情報を取得する、
処理をさらに実行させることを特徴とする、付記24記載の処理プログラム。
(付記26)
前記コンピュータに、
複数種類の演算回路に対応する複数の第1情報を蓄積するストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路を、前記集積回路に構成させる制御を行なう、
処理をさらに実行させることを特徴とする、付記22記載の処理プログラム。
(付記27)
前記ストレージ装置は、前記第2情報をさらに蓄積し、
前記コンピュータに、
前記ストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路と、前記第2情報に基づく前記暗号化回路とを、前記集積回路に構成させる制御を行なう、
処理をさらに実行させることを特徴とする、付記26記載の処理プログラム。
(付記28)
前記コンピュータに、
前記第2情報を取得し、
取得した前記第2情報に基づき、前記集積回路に対して、前記暗号化回路を構成する制御を行なう、
処理をさらに実行させることを特徴とする、付記26記載の処理プログラム。
(付記29)
前記コンピュータに、
前記暗号鍵を前記演算回路と対応付けて管理し、
前記端末装置へ前記演算回路に対応する暗号鍵を通知する、
処理をさらに実行させることを特徴とする、付記22〜28のいずれか1項記載の処理プログラム。
(付記30)
情報処理装置と、前記情報処理装置を管理する管理装置と、をそなえる情報処理システムにおける処理方法であって、
前記管理装置は、
回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信し、
前記演算回路の構成に用いる第1情報と、暗号化回路の構成に用いる第2情報と、に基づき、前記情報処理装置がそなえる前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行ない、
前記集積回路に構成された前記演算回路は、
前記端末装置が送信する情報に応じた演算を行ない、
前記集積回路に構成された前記暗号化回路は、
前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する、
ことを特徴とする、処理方法。
(付記31)
前記管理装置は、
前記暗号鍵を前記演算回路と対応付けて管理し、
前記端末装置へ前記演算回路に対応する暗号鍵を通知する、
ことを特徴とする、付記30記載の処理方法。
1、1A、10、10A 情報処理システム
2、20 ホストマシン
2a CPU
2b、25、25a、25b メモリ
21、210 FPGA
21a 第1領域
21b 第2領域
22、22a、22b 処理回路
23、23a、23b 暗号装置
24、24a、24b ID
26、44 ネットワーク装置
28、31 通信部
29 書込処理部
220、220a、220b 演算処理装置
230、230a、230b 復号装置
232、232a、232b 暗号化装置
3、3A、30、30A 管理マシン
32 ユーザ管理部
33 ユーザDB
34 処理IPコア
35 暗号化IPコア
36 暗号鍵取得部
37 暗号化IP生成部
38 書込制御部
39 処理IPコア取得部
4、4−1、4−2、40、40−1、40−2 クライアントマシン
41、41a、41b アプリケーション
43、43a、43b 暗号鍵

Claims (18)

  1. 情報処理装置と、前記情報処理装置にアクセスする端末装置と、前記情報処理装置を管理する管理装置と、をそなえ、
    前記情報処理装置は、
    回路の再構成が可能な集積回路をそなえ、
    前記集積回路は、
    前記端末装置が送信する情報に応じた演算を行なう演算回路と、
    前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路と、
    が構成され、
    前記管理装置は、
    前記暗号鍵を前記演算回路と対応付けて管理し、前記端末装置へ前記演算回路に対応する暗号鍵を通知し、
    前記端末装置は、
    前記暗号化データを記憶する記憶装置から前記暗号化データを読み出し、
    読み出した前記暗号化データを、前記管理装置から通知される前記暗号鍵を用いて復号する、
    ことを特徴とする、情報処理システム。
  2. 前記管理装置は、
    前記演算回路の構成に用いる第1情報と、
    前記暗号化回路の構成に用いる第2情報と、
    に基づき、前記演算回路及び前記暗号化回路を前記集積回路に構成する制御を行なう、
    ことを特徴とする、請求項1記載の情報処理システム。
  3. 前記暗号化回路により生成された前記暗号化データは、前記記憶装置のアドレスを管理する管理情報に基づき前記記憶装置に書き込まれる、
    ことを特徴とする、請求項1又は請求項2記載の情報処理システム。
  4. 回路の再構成が可能な集積回路をそなえ、
    前記集積回路は、
    入力される情報に応じた演算を行なう演算回路と、
    前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路と、
    が構成される、
    ことを特徴とする、情報処理装置。
  5. 前記暗号鍵は、前記情報処理装置を管理する管理装置により、前記演算回路と対応付けて管理され、
    前記暗号化データは、端末装置により、前記暗号化データを記憶する記憶装置から読み出され、前記管理装置から前記端末装置に通知される前記暗号鍵を用いて復号される、
    ことを特徴とする、請求項4記載の情報処理装置。
  6. 前記情報処理装置を管理する管理装置と接続される接続部をさらにそなえ、
    前記演算回路及び前記暗号化回路は、前記管理装置によって、前記接続部を介して前記集積回路に構成される、
    ことを特徴とする、請求項4又は請求項5記載の情報処理装置。
  7. 前記演算回路の構成に用いる第1情報と、
    前記暗号化回路の構成に用いる第2情報と、
    に基づき、前記演算回路及び前記暗号化回路を前記集積回路に構成する構成部をさらにそなえる、
    ことを特徴とする、請求項4又は請求項5記載の情報処理装置。
  8. 回路の再構成が可能な集積回路をそなえ、
    前記集積回路は、入力される情報に応じた演算を行なう演算回路と、記憶装置のアドレスを管理する管理情報とを含む組を複数有し、
    前記複数の組のうちの少なくとも1つの組は、前記少なくとも1つの組の演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路をさらに有し、
    前記少なくとも1つの組の演算回路は、前記演算結果を前記暗号化回路により暗号化した前記暗号化データを、前記少なくとも1つの組の管理情報に基づく前記記憶装置のアドレスに書き込み、
    前記複数の組のうちの前記少なくとも1つの組以外の組における演算回路は、演算結果を自身の組の管理情報に基づく前記記憶装置のアドレスに書き込む、
    ことを特徴とする、情報処理装置。
  9. 前記自身の組の管理情報には、前記少なくとも1つの組における管理情報に定められたアドレスに対して排他的に予め定められるアドレスとは異なるアドレスが設定されており、
    前記異なるアドレスは、前記少なくとも1つの組における管理情報に定められたアドレスと重複する、
    ことを特徴とする、請求項8記載の情報処理装置。
  10. 前記自身の組の管理情報には、前記少なくとも1つの組における管理情報に定められたアドレスに対して排他的に予め定められるアドレスが設定されており、
    前記複数の組のうちの前記少なくとも1つの組以外の組における演算回路は、前記自身の組の管理情報から読み出したアドレスを当該アドレスとは異なるアドレスに変換し、演算結果を前記異なるアドレスに書き込み、
    前記異なるアドレスは、前記少なくとも1つの組における管理情報に定められたアドレスと重複する、
    ことを特徴とする、請求項8記載の情報処理装置。
  11. 回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信する受信部と、
    前記演算回路であって前記端末装置が送信する情報に応じた演算を行なう前記演算回路の構成に用いる第1情報と、
    前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路の構成に用いる第2情報と、
    に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう制御部と、をそなえる、
    ことを特徴とする、管理装置。
  12. 前記第1情報及び前記第2情報を取得する取得部、をさらにそなえ、
    前記制御部は、取得した前記第1情報及び前記第2情報に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう、
    ことを特徴とする、請求項11記載の管理装置。
  13. 前記制御部は、複数種類の演算回路に対応する複数の第1情報を蓄積するストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路を、前記集積回路に構成させる制御を行なう、
    ことを特徴とする、請求項11記載の管理装置。
  14. 前記ストレージ装置は、前記第2情報をさらに蓄積し、
    前記制御部は、前記ストレージ装置に対して、前記端末装置からの要求を満たす第1情報に基づく前記演算回路と、前記第2情報に基づく前記暗号化回路とを、前記集積回路に構成させる制御を行なう、
    ことを特徴とする、請求項13記載の管理装置。
  15. 前記第2情報を取得する取得部、をさらにそなえ、
    前記制御部は、取得した前記第2情報に基づき、前記集積回路に対して、前記暗号化回路を構成する制御を行なう、
    ことを特徴とする、請求項13記載の管理装置。
  16. 前記暗号鍵を前記演算回路と対応付けて管理する管理部と、
    前記端末装置へ前記演算回路に対応する暗号鍵を通知する通知部と、をさらにそなえる、
    ことを特徴とする、請求項11〜15のいずれか1項記載の管理装置。
  17. コンピュータに、
    回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信し、
    前記演算回路であって前記端末装置が送信する情報に応じた演算を行なう前記演算回路の構成に用いる第1情報と、
    前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する暗号化回路の構成に用いる第2情報と、
    に基づき、前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行なう、
    処理を実行させることを特徴とする、処理プログラム。
  18. 情報処理装置と、前記情報処理装置を管理する管理装置と、をそなえる情報処理システムにおける処理方法であって、
    前記管理装置は、
    回路の再構成が可能な集積回路に演算回路を構成することを指示する要求を、端末装置から受信し、
    前記演算回路の構成に用いる第1情報と、暗号化回路の構成に用いる第2情報と、に基づき、前記情報処理装置がそなえる前記集積回路に対して、前記演算回路及び前記暗号化回路を構成する制御を行ない、
    前記集積回路に構成された前記演算回路は、
    前記端末装置が送信する情報に応じた演算を行ない、
    前記集積回路に構成された前記暗号化回路は、
    前記演算回路により演算された演算結果に対して、前記演算回路に対応する暗号鍵を用いて暗号化を行ない暗号化データを生成する、
    ことを特徴とする、処理方法。
JP2016034590A 2016-02-25 2016-02-25 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 Active JP6620595B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016034590A JP6620595B2 (ja) 2016-02-25 2016-02-25 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
US15/423,053 US10560262B2 (en) 2016-02-25 2017-02-02 Information-processing system, information-processing apparatus, management apparatus, and processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016034590A JP6620595B2 (ja) 2016-02-25 2016-02-25 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法

Publications (2)

Publication Number Publication Date
JP2017151794A true JP2017151794A (ja) 2017-08-31
JP6620595B2 JP6620595B2 (ja) 2019-12-18

Family

ID=59680112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016034590A Active JP6620595B2 (ja) 2016-02-25 2016-02-25 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法

Country Status (2)

Country Link
US (1) US10560262B2 (ja)
JP (1) JP6620595B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018029267A (ja) * 2016-08-18 2018-02-22 富士通株式会社 プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
WO2020144758A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 秘密計算装置及びクライアント装置
JP2021503109A (ja) * 2017-11-14 2021-02-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 仮想fpgaの管理及び最適化システム
JP7371092B2 (ja) 2018-09-27 2023-10-30 ザイリンクス インコーポレイテッド 暗号システム

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11099894B2 (en) 2016-09-28 2021-08-24 Amazon Technologies, Inc. Intermediate host integrated circuit between virtual machine instance and customer programmable logic
US10338135B2 (en) 2016-09-28 2019-07-02 Amazon Technologies, Inc. Extracting debug information from FPGAs in multi-tenant environments
US10250572B2 (en) * 2016-09-29 2019-04-02 Amazon Technologies, Inc. Logic repository service using encrypted configuration data
US10282330B2 (en) 2016-09-29 2019-05-07 Amazon Technologies, Inc. Configurable logic platform with multiple reconfigurable regions
US10162921B2 (en) 2016-09-29 2018-12-25 Amazon Technologies, Inc. Logic repository service
US11115293B2 (en) 2016-11-17 2021-09-07 Amazon Technologies, Inc. Networked programmable logic service provider
US10963001B1 (en) * 2017-04-18 2021-03-30 Amazon Technologies, Inc. Client configurable hardware logic and corresponding hardware clock metadata
US10764129B2 (en) * 2017-04-18 2020-09-01 Amazon Technologies, Inc. Logic repository service supporting adaptable host logic
CN109639446B (zh) * 2017-10-09 2022-01-11 阿里巴巴集团控股有限公司 Fpga设备、基于fpga设备的云系统
US11212375B2 (en) * 2019-08-14 2021-12-28 Dell Products L.P. System and method to provide heterogeneous protocols on network interface devices
CN113453221B (zh) * 2020-03-09 2022-04-12 Oppo广东移动通信有限公司 加密通信方法、装置、电子设备和计算机可读存储介质
CN113657060B (zh) * 2021-08-19 2023-08-18 无锡中微亿芯有限公司 一种提高fpga用户设计安全性的方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038293A1 (ja) * 2008-10-01 2010-04-08 富士通株式会社 半導体装置、情報処理装置及び半導体装置の構築方法
JP2013152553A (ja) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> リソース管理装置、リソース管理システム、リソース管理方法およびリソース管理プログラム
JP2014230174A (ja) * 2013-05-23 2014-12-08 富士通株式会社 集積回路、制御装置、制御方法、および制御プログラム
CN104601711A (zh) * 2015-01-27 2015-05-06 曙光云计算技术有限公司 用于云服务器的基于fpga的数据存储方法和系统
CN104657086A (zh) * 2015-02-02 2015-05-27 曙光云计算技术有限公司 云服务器的数据存储方法和系统
JP2015211295A (ja) * 2014-04-24 2015-11-24 雅仁 横山 暗号化データ通信方式及びfpgaボード

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127349A (ja) 2004-11-01 2006-05-18 Ntt Communications Kk デジタル著作権管理装置およびプログラム
WO2009153687A1 (en) * 2008-06-18 2009-12-23 Petascan Ltd Distributed hardware-based data querying
US8856783B2 (en) * 2010-10-12 2014-10-07 Citrix Systems, Inc. Allocating virtual machines according to user-specific virtual machine metrics
US9401893B2 (en) * 2009-12-29 2016-07-26 International Business Machines Corporation System and method for providing data security in a hosted service system
JP5420477B2 (ja) 2010-05-25 2014-02-19 日本電信電話株式会社 情報サービスシステム
US8775773B2 (en) * 2011-08-26 2014-07-08 Vmware, Inc. Object storage system
US10803019B2 (en) * 2014-07-02 2020-10-13 International Business Machines Corporation Hash-based multi-tenancy in a deduplication system
US9397833B2 (en) * 2014-08-27 2016-07-19 International Business Machines Corporation Receipt, data reduction, and storage of encrypted data
US9608810B1 (en) * 2015-02-05 2017-03-28 Ionic Security Inc. Systems and methods for encryption and provision of information security using platform services
US10013364B1 (en) * 2015-06-26 2018-07-03 EMC IP Holding Company LLC Securing data using per tenant encryption keys
US9779269B1 (en) * 2015-08-06 2017-10-03 EMC IP Holding Company LLC Storage system comprising per-tenant encryption keys supporting deduplication across multiple tenants
US10057084B2 (en) * 2015-10-06 2018-08-21 Citrix Systems, Inc. Systems and methods of extending on premise network into the cloud
US10360602B2 (en) * 2015-10-15 2019-07-23 International Business Machines Corporation Metering accelerator usage in a computing system
US10079695B2 (en) * 2015-10-28 2018-09-18 Citrix Systems, Inc. System and method for customizing packet processing order in networking devices
US10069681B2 (en) * 2015-12-31 2018-09-04 Amazon Technologies, Inc. FPGA-enabled compute instances

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010038293A1 (ja) * 2008-10-01 2010-04-08 富士通株式会社 半導体装置、情報処理装置及び半導体装置の構築方法
JP2013152553A (ja) * 2012-01-24 2013-08-08 Nippon Telegr & Teleph Corp <Ntt> リソース管理装置、リソース管理システム、リソース管理方法およびリソース管理プログラム
JP2014230174A (ja) * 2013-05-23 2014-12-08 富士通株式会社 集積回路、制御装置、制御方法、および制御プログラム
JP2015211295A (ja) * 2014-04-24 2015-11-24 雅仁 横山 暗号化データ通信方式及びfpgaボード
CN104601711A (zh) * 2015-01-27 2015-05-06 曙光云计算技术有限公司 用于云服务器的基于fpga的数据存储方法和系统
CN104657086A (zh) * 2015-02-02 2015-05-27 曙光云计算技术有限公司 云服务器的数据存储方法和系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018029267A (ja) * 2016-08-18 2018-02-22 富士通株式会社 プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
JP2021503109A (ja) * 2017-11-14 2021-02-04 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated 仮想fpgaの管理及び最適化システム
JP7371092B2 (ja) 2018-09-27 2023-10-30 ザイリンクス インコーポレイテッド 暗号システム
WO2020144758A1 (ja) * 2019-01-09 2020-07-16 三菱電機株式会社 秘密計算装置及びクライアント装置
JPWO2020144758A1 (ja) * 2019-01-09 2021-03-11 三菱電機株式会社 クライアント装置

Also Published As

Publication number Publication date
US10560262B2 (en) 2020-02-11
US20170250802A1 (en) 2017-08-31
JP6620595B2 (ja) 2019-12-18

Similar Documents

Publication Publication Date Title
JP6620595B2 (ja) 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法
US11956220B2 (en) Logic repository service using encrypted configuration data
JP6886013B2 (ja) 複数の再構成可能な領域を有する構成可能な論理プラットフォーム
EP3582129B1 (en) Technologies for secure hardware and software attestation for trusted i/o
US9792448B2 (en) Cryptographic protection of information in a processing system
JP5164290B2 (ja) 情報フローの追跡および保護
US9208105B2 (en) System and method for intercept of UEFI block I/O protocol services for BIOS based hard drive encryption support
US10831889B2 (en) Secure memory implementation for secure execution of virtual machines
US20170277898A1 (en) Key management for secure memory address spaces
JP2019537099A (ja) 論理リポジトリサービス
US7194634B2 (en) Attestation key memory device and bus
US11893144B2 (en) System and method for slice virtual disk encryption
TWI564743B (zh) 使用儲存裝置以實施數位版權管理保護之方法及設備
EP3913513A1 (en) Secure debug of fpga design
CN106030602B (zh) 基于虚拟化的块内工作负荷隔离
JP6696352B2 (ja) プログラマブルロジック装置、情報処理装置、処理方法、及び処理プログラム
US20240054071A1 (en) Hardware mechanism to extend mktme protections to sgx data outside epc
US11874777B2 (en) Secure communication of virtual machine encrypted memory
US20240070091A1 (en) Isolation of memory regions in trusted domain
TW202340933A (zh) 與直接交換快取整合的機密計算架構

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191002

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191105

R150 Certificate of patent or registration of utility model

Ref document number: 6620595

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150