JPWO2020144758A1 - クライアント装置 - Google Patents
クライアント装置 Download PDFInfo
- Publication number
- JPWO2020144758A1 JPWO2020144758A1 JP2020561943A JP2020561943A JPWO2020144758A1 JP WO2020144758 A1 JPWO2020144758 A1 JP WO2020144758A1 JP 2020561943 A JP2020561943 A JP 2020561943A JP 2020561943 A JP2020561943 A JP 2020561943A JP WO2020144758 A1 JPWO2020144758 A1 JP WO2020144758A1
- Authority
- JP
- Japan
- Prior art keywords
- key
- circuit
- encrypted
- private key
- calculation
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
Description
秘密計算とは、データを秘匿したま、指定された関数による演算を行う技術である。例えば特許文献1は、特定の演算に限定されない、準同型暗号を用いた秘密計算制御装置を開示する。
クラウドサービスとして、FPGA(Field Programmable Gate Array)を搭載したコンピューティングインスタンスの提供が普及している。例えば、Amazon EC2 F1が挙げられる。このクラウドサービスは、アプリケーションからFPGAを動的に再構成し、アプリケーションにおいてボトルネックとなる演算をFPGAにオフロードして、処理を高速化することができる。
PUF(Physical Unclonable Function)は、LSI(Large Scale Integration)の製造ばらつきを用いてデバイス固有のIDを生成する技術である。例えば特許文献2では、同一の論理回路であっても出力の過渡遷移が製造ばらつきによって異なることを利用したIDの生成技術が開示される。一般にこのような製造ばらつきを利用したIDはIDを生成するたびに誤りを含む。この誤りを訂正し補正することで、毎回同じIDを生成する技術として非特許文献1のFuzzy Extractorがある。
ホスト計算部と、論理回路の回路構成を回路情報によって変更できる論理回路装置とを備え、
前記ホスト計算部は、
アプリケーションに対応付いた前記回路情報を使用することにより前記論理回路装置に複数の論理回路を形成し、
前記複数の論理回路が形成された前記論理回路装置は、
初期値を用いて公開鍵と秘密鍵とのペアを生成し、前記公開鍵によって暗号化されたユーザ秘密鍵を取得し、暗号化された前記ユーザ秘密鍵を前記秘密鍵で復号する鍵計算回路と、
前記ユーザ秘密鍵で暗号化されたコンテンツを取得し、暗号化された前記コンテンツを復号された前記ユーザ秘密鍵で復号する復号演算回路と、
復号された前記コンテンツに前記アプリケーションに対応付いた処理を実施し、前記コンテンツの処理結果である処理コンテンツを生成するコンテンツ演算回路と、
前記処理コンテンツを前記ユーザ秘密鍵で暗号化する暗号化演算回路と、
暗号化された前記処理コンテンツを出力する出力回路と
を備える。
以下の実施の形態1で使用する表記を説明する。
PUF_KeyGen(IV)→(HD,Kp,Ks) (式101)
式101は、PUF、Fuzzy Extractors及び公開鍵暗号の鍵アルゴリズムを用いた処理である。式101は、初期値IVを用いて、補助データHD、公開鍵Kp、秘密鍵Ksを生成する処理を示す。
Zn:剰余群
×:楕円スカラー倍算
+:楕円曲線上の点加算
式102は、公開鍵暗号kpによる秘密鍵mkの暗号化を示す。
式103は、PUF、Fuzzy Extractors及び公開鍵暗号の鍵アルゴリズムを用いた、秘密鍵Ksの生成処理を示す。式103は、初期値IVと補助データHDを用いて、PUF及びFuzzy Extractorsによる再生成処理を行い、Ksを生成することを意味する。
式104は、秘密鍵KsによるCmkに対する復号処理を示す。
式105は、共通鍵暗号における秘密鍵mkによるPの暗号化処理を示す。
式106は、共通鍵暗号における秘密鍵mkによるCaの復号処理を示す。
***構成の説明***
図1から図12を参照して秘密計算装置1を説明する。
図1は、秘密計算装置1の全体構成を示す図である。秘密計算装置1は、ホスト計算部10、ホスト記憶部10M、高速計算回路20、ローカル記憶装置20Mを備えている。高速計算回路20は、固定処理回路21と動的処理回路22とを備えている。ローカル記憶装置20Mには固定処理回路21がアクセスする。
一方、動的処理回路22は高速化させる演算のための回路であり、アプリケーション毎に回路構成が切り替わる。すなわち、動的処理回路22は、ホスト計算部10で実行されるアプリケーションによってアクセラレーション対象となる演算が異なる。処理Fとしては、圧縮処理、検索のクエリ処理及びニューラルネットワークによる認識処理が挙げられる。
図1の秘密計算装置1の動作を説明する。ホスト計算部10は、ホスト記憶部10Mに対してリードアクセス及びライトアクセスを伴った処理を行う。以下、リードアクセス及びライトアクセスをR/Wと表記する。ここで、処理負荷の高い処理については、高速計算回路20がホスト計算部10の代わりに処理を行う。この処理は後述の式9に示す処理Funcである。以下、これをアクセラレーションと呼ぶ。アクセラレーションの詳細な動作は次の通りである。ホスト計算部10は、高速計算回路20が処理するデータを、固定処理回路21経由でローカル記憶装置20Mに転送する。
一般に、この転送はDMA(Direct Memory Access)で行われる。ローカル記憶装置20Mに転送されたデータは、決められた単位ごとに、固定処理回路21経由で、動的処理回路22に転送される。動的処理回路22は、指定されている処理Funcを高速に実行し、処理結果を、固定処理回路21経由でローカル記憶装置20Mに転送する。最後にローカル記憶装置20Mからホスト記憶部10Mに演算結果をDMAで転送する。
図5は、クライアント・サーバモデルにおける秘密計算の全体の処理フローを示す。秘密計算の全体は、クライアント・サーバモデルによる処理を想定する。秘密計算の全体では、サーバ407がクライアント装置406の演算要求に応答し、決められた処理を実行し、処理結果をクライアント装置406に返すことが前提である。実施の形態1の目的は、クライアント・サーバモデルにおいて、サーバ側の非セキュアな領域に、秘密計算の対象となる演算の入力データ、出力データ及びこれらの中間値を、平文で露出させないことである。図1において非セキュアな領域とは、ホスト計算部10、ホスト記憶部10M、ローカル記憶装置20M及びホスト計算部10からR/W可能な高速計算回路20の領域である。セキュアな領域とは、ホスト計算部10から直接アクセスできない、高速計算回路20の領域である。図2のハードウェア構成においてセキュアな領域は、CPU404から直接R/WできないFPGA405の高速計算回路20である。
図6は、FPGA405に形成される高速計算回路20の回路構成を示す。高速計算回路20は、固定処理回路21と動的処理回路22を備えている。動的処理回路22は、入力回路221、鍵計算回路222、鍵格納回路223、復号演算回路224、高速演算回路225、暗号化演算回路226及び出力回路227を備えている。高速演算回路225はコンテンツ演算回路である。
図7は、図6における鍵計算回路222の回路構成を示す。鍵計算回路222は初期値IVを用いて公開鍵Kpと秘密鍵Ksとのペアを生成する。また鍵計算回路222は、公開鍵Kpによって暗号化されたユーザ秘密鍵を取得し、暗号化されたユーザ秘密鍵を秘密鍵Ksで復号する。
具体的には以下のようである。鍵計算回路222は、入力回路222a、PUF回路222b、ファジーエクストラクター222c、鍵対処理回路222d及び出力回路222eを備えている。ここで、PUFとは、一般に物理的複製不能関数と呼ばれる関数である。以下に図5を説明する。
登録フェーズについて説明する。クライアント装置406の送信制御部501aは、回路情報12と初期値IVを、秘密計算装置1であるサーバ407に送信する。
(1)回路情報12とは、FPGA405のバイナリ403の生成に使用される情報である。回路情報12は配置配線前の設計情報である。図2の説明で述べたように、FPGA405のバイナリ403によって、FPGA405の回路が動的に構成される。
(2)初期値IVは、公開鍵暗号の鍵ペアの生成に使用する値である。
すなわち、鍵計算回路222は式1を計算する。
PUF_KeyGen (IV)→(HD,Kp,Ks) (式1)
式1で、HDは、Fuzzy ExtractorのようなPUF機能を用いて識別子IDを再生成するために必要な補助データを表す。Kp、Ksはそれぞれ公開鍵暗号における公開鍵と秘密鍵である。
鍵計算回路222のPUF回路222b及びFuzzy Extractor222cは、初期値IVを入力して、識別子IDと再生成に必要な補助データHDを出力する。
次に、鍵対処理回路222dは、識別子IDを疑似ランダム関数PRFにより圧縮し、秘密鍵Ksを生成する。
すなわち、鍵対処理回路222dは式2を計算する。
PRF(ID)→Ks(Ks∈Zn) (式2)
ここで、体K上の楕円曲線:E(K)、ベースポイント:G∈E(K)、Gの位数:nとする。鍵対処理回路222dは、以下の式3から公開鍵Kpを生成する。
Ks×G→Kp (式3)
尚、鍵生成の方式は上記に限らない。識別子IDを用いてKp、Ksを一意に生成する方式であればよい。
サーバ407のホスト計算部10は、補助データHDと識別子IDとのどちらかと、公開鍵Kpとを、通信インタフェース410を介してクライアント装置406に送付する。図5ではサーバ407は、識別子IDを送付している。補助データHDと識別子IDとは対応付いている。FPGA405は、補助データHDから識別子IDを特定できるし、識別子IDから補助データHDを特定できる。よって、サーバ407は、補助データHDとの識別子IDどちらかを送付すればよい。後述するステップS13でクライアント装置406はサーバ407に識別子IDを送信する。サーバ407はクライアント装置406から識別子IDを受信した際に、識別子IDと対応付いている補助データHDを用いて、後述する式5のように、秘密鍵Ksの再生成を行うことが可能である。
暗号制御部501bは、秘密計算装置1から公開鍵Kpを取得し(ステップS12)、公開鍵Kpで秘密鍵mkを暗号化し、暗号化された秘密鍵mkを示す暗号化データCmkを秘密計算装置1に送信する。つまり、クライアント装置406の暗号制御部501bは、公開鍵Kpを用いて秘密計算に用いる秘密鍵mkを暗号化した暗号化データCmkをサーバ407に送付する。
Cmk=Enc(Kp,mk)である。
楕円ElGamal暗号の例における暗号化データCmkは以下の通りである。
秘密鍵mkをx座標とし対応するy座標を求め楕円曲線上の点に変換したメッセージをMKとするならば、
Enc(Kp,mk)=(rG,r×Kp+MK)→(C1,C2)=Cmk (式4)
ここで、r∈Znは乱数である。クライアント装置406の送信制御部501aは、補助データHD(または識別子ID)とCmkとを、サーバ407に送付する。ここまでの処理が登録フェーズである。
<ステップS21>
クライアント装置406はサーバ407に秘匿演算を要求する。秘匿演算の要求として、クライアント装置406の送信制御部501aは、サーバ407へ、ステップS12で受信した識別子IDを送付する。秘匿演算の要求として、クライアント装置406は、登録フェーズのステップS13で送付した暗号化データCmkの、高速計算回路20による展開をサーバ407に要求する。
サーバ407のホスト計算部10は、高速計算回路20の鍵計算回路222へ、識別子IDに対応付いた初期値IV及び補助データHDをロードする。鍵計算回路222は、識別子IDの再生成を行う。また、生成した識別子IDから秘密鍵Ksが再生成される。すなわち、鍵計算回路222は式5を計算する。
PUF_KeyRep(IV,HD)→Ks (式5)
鍵計算回路222は、秘密鍵Ksを用いてCmkを復号して秘密鍵mkを取得し、復号演算回路224の記憶領域に秘密鍵mkを展開する。つまり、鍵計算回路222は式6を計算し、秘密鍵mkを復号演算回路224の記憶領域に展開する。
Dec(Ks,Cmk)=C2−Ks×C1→mk (式6)
ここで、秘密鍵mkを格納する復号演算回路224の領域はホスト計算部10から直接アクセスできない構造を有する設計を行う。例としてはリード不可なFPGA405内部のレジスタに格納する。
暗号制御部501bは、秘密鍵mkでコンテンツPを暗号化し、暗号化されたコンテンツPを示す暗号化データCaを秘密計算装置1に送信する。つまり、暗号制御部501bは、演算対象のコンテンツPを共通鍵Kpで暗号化した暗号化データCaをサーバ407に送付する。ここではクライアント装置406の暗号制御部501bは式7を計算する。
E(mk,P)→Ca (式7)
鍵計算回路222は、秘密鍵mkで暗号化されたコンテンツを取得し、暗号化されたコンテンツを、復号された秘密鍵mkで復号する。具体的には以下のようである。復号演算回路224は、秘密鍵mkを用いてCaを復号し、コンテンツPを得る。
つまり、復号演算回路224は式8を計算する。
D(mk,Ca)→P(式8)
次に、コンテンツ演算回路である高速演算回路225は、復号されたコンテンツにアプリケーションに対応付いた処理Funcを実施し、コンテンツPの処理結果である処理コンテンツを生成する。具体的には以下のようである。
以下の処理結果Qは処理コンテンツである。高速演算回路225は、コンテンツPに対してアクセラレーションかつ秘匿演算対象である処理Funcを行い、処理結果Qを得る。つまり、高速演算回路225は式9を計算する。
Func(P)→Q (式9)
暗号化演算回路226は、処理結果Qを秘密鍵mkで暗号化し、暗号化データCbを得る。つまり、暗号化演算回路226は、式10を計算する。
E(mk,Q)→Cb (式10)
暗号化演算回路226は、暗号化データCbを、ホスト計算部10経由でクライアント装置406に送信する。
復号制御部501cは、 暗号化された処理コンテンツを秘密計算装置から取得し、暗号化された処理コンテンツをユーザ秘密鍵で復号する。具体的には、クライアント装置406の復号制御部501cは秘密鍵mkを用いて暗号化データCbを復号し、処理結果Qを得る。つまり復号制御部501cは式11を計算する。
D(mk,Cb)→Q (式11)
例えば、データベースの検索を想定する。秘密鍵mkで暗号化された複数の情報がホスト記憶部10Mにあるとする。サーバ407が、秘密鍵mkで暗号化されたクエリをクライアント装置406から受信し、クエリを契機として処理を介する構成でもよい。このクエリがステップS23の暗号化データCaに対応する。鍵計算回路222は、秘密鍵mkで暗号化されたコンテンツを格納する暗号化コンテンツ格納装置から、mk秘密鍵で暗号化されたコンテンツを取得する。
具体的には以下のようである。
図3を参照して説明する。図3の主記憶装置408にはデータベース情報413が格納されている。主記憶装置408は暗号化コンテンツ格納装置である。
主記憶装置408はホスト記憶部10Mに相当する。コンテンツPは、複数のサブコンテンツP1からPnに分割できるとする。P1からPnは上記の式7によってCa1からCanに暗号化される。
E(mk,P1)→Ca1、
E(mk,P2)→Ca2、
・・・
E(mk,P2)→Can、
のCa1からCanは、データベース情報413として主記憶装置408に格納されている。Ca1からCanは暗号化されたコンテンツである。
サーバ407の鍵計算回路222は、上記の式6で得られる秘密鍵mkで、Ca1からCanを復号できる。
以下、より具体例として、2つの文字列に対してスコアを計算し、ローカルアライメントを算出するSmith−Waterman アルゴリズムに対してアクセラレーションする例で運用フェーズを説明する。塩基配列TGTTACGG及びGGTTGACTAのローカルアライメントは、それぞれGTT−AC、GTTGACとなる。図5で述べた運用フェーズにおいて、この処理は以下のように行われる。
次に、高速演算回路225は、処理FuncとしてSmith−Watermanアルゴリズムにおける行列に対するスコア計算を実行し、ローカルアライメントとしてGTT−AC、GTTGACを得る。暗号化演算回路226は、処理結果Qに対応するGTT−AC及びGTTGACを秘密鍵mkで暗号化して暗号化データCbを生成し、暗号化データCbをクライアント装置406に送付する。この送付はステップS24に対応する。
以上に述べた運用フェーズの例では、塩基配列TGTTACGG及びGGTTGACTA及びローカルアライメント結果GTT−AC、GTTGACは、ホストコンピュータ401上に露出しない。
(1)入力回路221は、ホストコンピュータ401のホスト計算部10から固定処理回路21経由で転送されたデータを受信し、動的処理回路22の該当する回路にデータを転送する。
(2)鍵計算回路222は、PUF、楕円ElGamal暗号における鍵生成/復号処理、疑似ランダム関数PRFの処理を含み、図5における以下の処理を行う。
PUF_KeyGen(IV)→(HD,Kp,Ks)
PUF_KeyRep(IV,HD)→Ks
Dec(Ks,Cmk)→mk
(3)鍵格納回路223は、鍵計算回路222の出力mk及びKsを保持する格納する。鍵格納回路223は、鍵計算回路222の一部として実装してもよい。秘密鍵mk及びKsは固定処理回路21を介してFPGA外部には出力されず、動的処理回路22でのみ用いられる。
(4)復号演算回路224は、図5における以下の処理を行う。
D(mk,Ca)→P
D及びEのアルゴリズムとしてはAES−GCMが例として挙げられる。
(5)高速演算回路225は、アプリケーションで負荷の高い処理をアクセラレーションするための演算部である。図5における以下の処理を行う。
Func(P)→Q
前述の例においては、Smith−Waterman アルゴリズムにおける行列に対するスコア計算を指す。
(6)暗号化演算回路226は、図5における以下の処理を行う。
E(mk,Q)→Cb
復号演算回路224と同様に、暗号化EのアルゴリズムとしてはAES−GCMが例として挙げられる。
(7)出力回路227は、鍵計算回路222の一部、及び暗号化演算回路226の出力を固定処理回路21へ転送する。具体的には鍵計算回路222の補助データHD,公開鍵Kpと暗号化演算回路226の計算した暗号化データCbを転送する。
以上に述べた実施の形態1で問題となるのは、公開鍵Kpの確からしさである。図5において、クライアント装置406が送信した初期値IVに対応する公開鍵Kpをサーバ407がクライアント装置406に送信する。図5では、公開鍵Kpがサーバ407のFPGA405の内部で生成されたものかを確認する手段がない。
図9は、変形例1の高速計算回路20を示す。図9に示す変形例1では、図7の鍵計算回路222を動的処理回路22ではなく、固定処理回路21に搭載する。固定処理回路21に搭載する鍵計算回路を鍵計算回路222−1とする。つまり論理回路装置であるFPGA405は、回路構成が変化しない論理回路が形成される固定領域を有する。この固定領域は固定処理回路21の領域であるが、鍵計算回路222−1は、図9に示すように固定領域である固定処理回路21に形成されている。鍵計算回路222−1は同一の初期値に対して同一の公開鍵と同一の秘密鍵とのペアを生成する。
一方、固定処理回路21に鍵計算回路222を搭載した場合、FPGA405のコンフィグレーションのたびに鍵計算回路222の回路は同一回路がコンフィグレーションされることになる。つまり配置配線の変更はない。よって、同一のFPGA405においては、同じ初期値IVに対応した秘密鍵Ks,公開鍵Kpは常に同一である。
図10は、変形例1のホストコンピュータ401a,401bを示す。図10に示すように、2台のホストコンピュータ401a,ホストコンピュータ401bでは、Virtual machine(VM)が複数動作する。ホストコンピュータは2台であるが例示であり、3台以上の複数でもよい。またホストコンピュータで動作するVMは2つであるが例示であり3つ以上の複数でもよい。VM管理部701は、複数のホストコンピュータおよびホストコンピュータで動作する複数のVMを管理する。
この場合、ホストコンピュータはノードと呼ばれる。図10において、各ノードの各VMに対して初期値IVを定め、その初期値IVを用いて図9の鍵計算回路222−1によって鍵対生成を行う。鍵計算回路222−1は、複数の異なる初期値IVを用いて、初期値IVごとに公開鍵Kpと秘密鍵Ksとのペアを生成する。
つまり鍵計算回路222−1によれば、同じ初期値IVに対して、同じ秘密鍵Ks及び公開鍵Kpが生成される。これにより、各ノードの各VMに対して秘密鍵Ks、公開鍵Kpのペアを割り当てることができる。この鍵をVM管理部701が鍵リスト703として管理する。
後述の図11は、ホストコンピュータ401aの補助記憶装置409にはVM情報602が格納されている。VM情報602は、複数の異なる初期値IVである。具体的には図10のホストコンピュータ401aにおいて、VM1に初期値対応付けられた初期IVの情報である。
図11は、変形例1のホストコンピュータ401aのハードウェア構成を示す。ホストコンピュータ401aは、図3で述べたホストコンピュータ401に対して、さらに、VM実行部11と、VM実行プログラム601を有する。CPU404がVM実行プログラム601を実行することでVM実行部11が実現される。VM実行プログラム601は補助記憶装置409に格納されている。 ホストコンピュータ401bも、ホストコンピュータ401aと同じハードウェア構成である。
図12は、VM管理装置700のハードウェア構成を示す。VM管理装置700はコンピュータである。VM管理装置700は、ハードウェアとして、CPU710、主記憶装置720、補助記憶装置730、通信インタフェース740を備えている。VM管理装置700は機能要素としてVM管理部701を有する。VM管理部701は、CPU710がVM管理プログラム702を実行することで実現される。VM管理プログラム702は補助記憶装置730に格納されている。補助記憶装置730には鍵リスト703も格納されている。VM管理部701は、通信インタフェース740を介してホストコンピュータ401a、401bと通信する。
次に、図13を参照して、実施の形態1の変形例2を説明する。
図13は、変形例2を示す処理フローである。図13のステップ12aでは、補助データHDではなく識別子IDを送信するものとする。
変形例2の特徴は、クライアント装置406は図13のステップS12aで取得する公開鍵Kpを検証できることにある。図13は図5に対して、ステップS11a、ステップS12a、ステップS13a、クライアント装置406による破線で囲むCmkの送信処理、及び秘密計算装置1による破線で囲む認証値Tsの生成処理が異なる。図13を参照して実施の形態1の変形例2を説明する。
認証値Tsは第1の認証値である。またクライアント装置406が計算により取得する後述の認証値Tcは第2の認証値である。
後述する具体例では、認証プログラムは、埋め込み鍵Kembを用いるMAC(Message Authentication Code)機能である。入力データとしてMAC機能に適用される鍵情報は、公開鍵Kpである。MAC機能は公開鍵Kpを入力として、認証値Tを出力する。
この関係を、
MACKemb(Kp)=T
と表記する。
なお、図13では、クライアント装置406は、認証プログラムを単独で送信している。しかし、クライアント装置406では送信制御部501aが認証プログラムを回路情報12に含めることにより、認証プログラムを秘密計算装置1であるサーバ407に送信してもよい。
送信制御部501aは、回路情報12及び初期値IVに加え、認証プログラムであるMACKembをサーバ407に送信する。サーバ407では図5と同様に、HD,Kp,Ksが生成される。
ここで、鍵計算回路222は、クライアント装置406から受信したMACKembを用いて、以下のように認証値Tsを計算する。
MACKemb(Kp)=Ts
サーバ407のホスト計算部10は、識別子IDと、公開鍵Kpと、認証値Tsとを、通信インタフェース410を介してクライアント装置406に送付する。
暗号制御部501bは、秘密計算装置1から、識別子ID、公開鍵Kp及び認証値Tsを取得する。暗号制御部501bは、サーバ407に送信したMACKembと同一のMACKembに、サーバ407から取得した公開鍵Kpを適用する。つまり、暗号制御部501bは以下の式を計算して、第2の認証値Tcを取得する。
MACKemb(Kp)=Tc
暗号制御部501bは、第1の認証値Tsと、第2の認証値Tcとを比較する。暗号制御部501bは、比較結果が正しいと判断した場合に、以下の式のように、サーバ407から取得した公開鍵Kpでユーザ秘密鍵mkを暗号化し、Cmkを生成する。
Enc(Kp,mk)→Cmk
そして、暗号制御部501bは、暗号化されたユーザ秘密鍵Cmkをサーバ407に送信する。
以降の動作は、図5と同じである。
次に、図14を参照して、実施の形態1の変形例3を説明する。図14のステップ12では、補助データHDではなく識別子IDを送信するものとする。
図14は、変形例3を示す処理フローである。変形例3の特徴は、鍵計算回路222が、PUF機能とは関係なく、ランダムに公開鍵Kpと秘密鍵Ksとのペアを生成し、PUF機能を用いて鍵情報Kpufを生成し、鍵情報Kpufで秘密鍵Ksを暗号化し、暗号化された秘密鍵Ksを保持する点にある。
なお「PUF機能を用いる」とは、物理的複製不能関数を用いることを意味する。図14は図5に対して、ステップS11bで初期値IVをクライアント装置406が送信しないこと、及び秘密計算装置1による破線で囲む処理が異なる。
以降、図5と同様に、サーバ407は、秘密鍵Ksで復号されたmkを用いて、暗号化データCaをコンテンツPに復号する。
送信制御部501aは、回路情報12をサーバ407に送信する。鍵計算回路222は、以下の式によって、公開鍵Kpと秘密鍵Ksとの鍵ペアをランダムに生成する。
KeyGen(Random)→(Kp,Ks)
上記の式は、公開鍵Kpと秘密鍵Ksとの鍵ペアをランダムに生成することを示す。図5と同様に、公開鍵Kpの識別子はIDである。鍵計算回路222は、PUF機能を用いることによって、初期値IVから、補助データHDと、第1の鍵情報Kpuf1を生成する。
PUF_KeyGen (IV)→(HD,Kpuf1)
鍵計算回路222は、第1の鍵情報Kpuf1を用いて秘密鍵Ksを暗号化する。
En(Kpuf1,Ks) →enc(Ks)
上記の式は、第1の鍵情報Kpuf1を用いて秘密鍵Ksを暗号化し、暗号化された秘密鍵Ksであるenc(Ks)を生成することを示す。
鍵計算回路222はクライアント装置406から識別子IDを受信した場合、以下の処理を実施する。クライアント装置406による識別子IDの送信は、暗号化データCaの処理要求である。鍵計算回路222は、復号演算回路224が暗号化データCaを復号する際に、PUF機能を用いて、第1の鍵情報Kpuf1と同一の第2の鍵情報Kpuf2を生成する。つまり、鍵計算回路222は、以下の式を実行して、補助データHDから、第2の鍵情報Kpuf2を生成する。第2の鍵情報Kpuf2は、第1の鍵情報Kpuf1と同一である。
PUF_KeyRep (HD)→Kpuf2
鍵計算回路222は、以下の式のように、第2の鍵情報Kpuf2でenc(Ks)を復号して秘密鍵Ksを得る。
De(Kpuf2,enc(Ks))→Ks
上記の式は、第2の鍵情報Kpuf2を用いてenc(Ks)を復号することを示す。鍵計算回路222は、以下の式のように、復号された秘密鍵Ksで、公開鍵Kpで暗号化されたユーザ秘密鍵Cmkを復号する。
Dec(Ks,Cmk)→mk
以下の処理は図5と同じである。
(1)実施の形態1では、図5の運用フェーズにおいて、図6に示すように、処理Funcの入出力は、鍵計算回路222、高速演算回路225、暗号化演算回路226でのみ展開される。つまり、処理Funcの入出力は、図2のFPGA405のセキュア領域でのみ展開される。
このため、仮にホストコンピュータ401の情報が漏洩しても、処理Funcの入出力及び中間値が露出しない。
(2)また、秘密鍵mkはホストコンピュータ401上では公開鍵Kpで暗号化された状態のCmkで管理され、CmkはFPGA405の内部でのみ展開される。
このため、たとえホストコンピュータ401の管理者であっても、秘密鍵mkの機密性を破ることができない。
なお、本発明は、上記で述べた実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
Claims (10)
- ホスト計算部と、論理回路の回路構成を回路情報によって変更できる論理回路装置とを備え、
前記ホスト計算部は、
アプリケーションに対応付いた前記回路情報を使用することにより前記論理回路装置に複数の論理回路を形成し、
前記複数の論理回路が形成された前記論理回路装置は、
公開鍵と秘密鍵とのペアを生成し、前記公開鍵によって暗号化されたユーザ秘密鍵を取得し、暗号化された前記ユーザ秘密鍵を前記秘密鍵で復号する鍵計算回路と、
前記ユーザ秘密鍵で暗号化されたコンテンツを取得し、暗号化された前記コンテンツを復号された前記ユーザ秘密鍵で復号する復号演算回路と、
復号された前記コンテンツに前記アプリケーションに対応付いた処理を実施し、前記コンテンツの処理結果である処理コンテンツを生成するコンテンツ演算回路と、
前記処理コンテンツを前記ユーザ秘密鍵で暗号化する暗号化演算回路と、
暗号化された前記処理コンテンツを出力する出力回路と
を備える秘密計算装置。 - 前記鍵計算回路は、
初期値を用いて公開鍵と秘密鍵との前記ペアを生成する請求項1に記載の秘密計算装置。 - 前記論理回路装置は、
回路構成が変化しない前記論理回路が形成される固定領域を有し、
前記鍵計算回路は、
前記固定領域に形成されており、同一の前記初期値に対して同一の公開鍵と同一の秘密鍵とのペアを生成する請求項2に記載の秘密計算装置。 - 前記鍵計算回路は、
複数の異なる前記初期値を用いて、前記初期値ごとに前記公開鍵と前記秘密鍵との前記ペアを生成する請求項3に記載の秘密計算装置。 - 前記初期値と、前記初期値から生成された前記公開鍵とは、
真正であることを保証する真正情報が対応付いた状態で、鍵情報を格納する鍵情報格納装置に格納されている請求項4に記載の秘密計算装置。 - 前記鍵計算回路は、
前記ユーザ秘密鍵で暗号化された前記コンテンツを格納する暗号化コンテンツ格納装置から、前記ユーザ秘密鍵で暗号化された前記コンテンツを取得する請求項1から請求項5のいずれか一項に記載の秘密計算装置。 - 前記鍵計算回路は、
物理的複製不能関数を用いて第1の鍵情報を生成し、前記第1の鍵情報を用いて前記秘密鍵を暗号化し、前記復号演算回路が暗号化された前記コンテンツを復号する際に、前記物理的複製不能関数を用いて前記第1の鍵情報と同一の第2の鍵情報を生成し、前記第1の鍵情報を用いて暗号化された前記秘密鍵を前記第2の鍵情報を用いて復号し、暗号化された前記ユーザ秘密鍵を前記秘密鍵で復号する請求項1に記載の秘密計算装置。 - 請求項1に記載の秘密計算装置と通信するクライアント装置であって、
前記秘密計算装置に前記回路情報を送信する送信制御部と、
前記秘密計算装置から前記公開鍵を取得し、前記公開鍵で前記ユーザ秘密鍵を暗号化し、前記ユーザ秘密鍵で前記コンテンツを暗号化し、前記公開鍵で暗号化された前記ユーザ秘密鍵と前記ユーザ秘密鍵で暗号化された前記コンテンツとを前記秘密計算装置に送信する暗号制御部と、
暗号化された前記処理コンテンツを前記秘密計算装置から取得し、暗号化された前記処理コンテンツを前記ユーザ秘密鍵で復号する復号制御部と
を備えるクライアント装置。 - 前記送信制御部は、
前記秘密計算装置に、鍵情報が入力データとして適用された場合、前記鍵情報の認証値を出力する認証プログラムを送信し、
前記暗号制御部は、
前記秘密計算装置から前記公開鍵と共に第1の認証値を取得し、前記秘密計算装置に送信された前記認証プログラムと同一の前記認証プログラムに前記鍵情報として前記公開鍵を適用することにより第2の認証値を取得し、前記第1の認証値と前記第2の認証値とを比較し、比較結果が正しいと判断した場合に、暗号化された前記ユーザ秘密鍵を前記秘密計算装置に送信する請求項8に記載のクライアント装置。 - 前記送信制御部は、
前記認証プログラムを前記回路情報に含めることにより、前記認証プログラムを前記秘密計算装置に送信する請求項9に記載のクライアント装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2019/000294 WO2020144758A1 (ja) | 2019-01-09 | 2019-01-09 | 秘密計算装置及びクライアント装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2020144758A1 true JPWO2020144758A1 (ja) | 2021-03-11 |
Family
ID=71521476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020561943A Pending JPWO2020144758A1 (ja) | 2019-01-09 | 2019-01-09 | クライアント装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20210273790A1 (ja) |
JP (1) | JPWO2020144758A1 (ja) |
CN (1) | CN113261038A (ja) |
DE (1) | DE112019006051T5 (ja) |
WO (1) | WO2020144758A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG11202110786SA (en) * | 2019-03-29 | 2021-10-28 | Soul Machines | Cryptographic systems |
US11784827B2 (en) * | 2021-03-09 | 2023-10-10 | Micron Technology, Inc. | In-memory signing of messages with a personal identifier |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000509948A (ja) * | 1997-02-28 | 2000-08-02 | アクテル・コーポレイション | 集積回路装置 |
JP2002140126A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 |
JP2005532742A (ja) * | 2002-07-10 | 2005-10-27 | ジェネラル・インスツルメント・コーポレーション | 鍵シードにより電子鍵の不正配信および使用を防止するための方法 |
US20060209584A1 (en) * | 2004-11-12 | 2006-09-21 | Srinivas Devadas | Securely field configurable device |
WO2012164721A1 (ja) * | 2011-06-02 | 2012-12-06 | 三菱電機株式会社 | 鍵情報生成装置及び鍵情報生成方法 |
JP2014038521A (ja) * | 2012-08-17 | 2014-02-27 | Toshiba Corp | 情報操作装置、情報出力装置および情報処理方法 |
JP2017151794A (ja) * | 2016-02-25 | 2017-08-31 | 富士通株式会社 | 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 |
JP2017530586A (ja) * | 2014-07-31 | 2017-10-12 | ノック ノック ラブズ, インコーポレイテッド | クライアントをデバイスに対して認証するシステム及び方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011086688A1 (ja) | 2010-01-15 | 2011-07-21 | 三菱電機株式会社 | ビット列生成装置及びビット列生成方法 |
JP6370230B2 (ja) | 2015-01-23 | 2018-08-08 | Kddi株式会社 | 秘密計算制御装置、秘密計算制御方法及び秘密計算制御プログラム |
-
2019
- 2019-01-09 CN CN201980087623.8A patent/CN113261038A/zh not_active Withdrawn
- 2019-01-09 JP JP2020561943A patent/JPWO2020144758A1/ja active Pending
- 2019-01-09 DE DE112019006051.1T patent/DE112019006051T5/de not_active Withdrawn
- 2019-01-09 WO PCT/JP2019/000294 patent/WO2020144758A1/ja active Application Filing
-
2021
- 2021-05-12 US US17/318,820 patent/US20210273790A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000509948A (ja) * | 1997-02-28 | 2000-08-02 | アクテル・コーポレイション | 集積回路装置 |
JP2002140126A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | プログラム配布システム、暗号化プログラム配布装置、プログラム不具合情報収集システム、及びプログラム配布方法 |
JP2005532742A (ja) * | 2002-07-10 | 2005-10-27 | ジェネラル・インスツルメント・コーポレーション | 鍵シードにより電子鍵の不正配信および使用を防止するための方法 |
US20060209584A1 (en) * | 2004-11-12 | 2006-09-21 | Srinivas Devadas | Securely field configurable device |
WO2012164721A1 (ja) * | 2011-06-02 | 2012-12-06 | 三菱電機株式会社 | 鍵情報生成装置及び鍵情報生成方法 |
JP2014038521A (ja) * | 2012-08-17 | 2014-02-27 | Toshiba Corp | 情報操作装置、情報出力装置および情報処理方法 |
JP2017530586A (ja) * | 2014-07-31 | 2017-10-12 | ノック ノック ラブズ, インコーポレイテッド | クライアントをデバイスに対して認証するシステム及び方法 |
JP2017151794A (ja) * | 2016-02-25 | 2017-08-31 | 富士通株式会社 | 情報処理システム、情報処理装置、管理装置、処理プログラム、及び処理方法 |
Non-Patent Citations (1)
Title |
---|
HONG, BOEUI ET AL.: "FASTEN: An FPGA-Based Secure System for Big Data Processing", IEEE DESIGN & TEST, vol. 35, JPN6019012327, 18 August 2017 (2017-08-18), US, pages 30 - 38, ISSN: 0004442923 * |
Also Published As
Publication number | Publication date |
---|---|
CN113261038A (zh) | 2021-08-13 |
US20210273790A1 (en) | 2021-09-02 |
DE112019006051T5 (de) | 2021-09-30 |
WO2020144758A1 (ja) | 2020-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7416775B2 (ja) | 周辺デバイス | |
US20210377010A1 (en) | Key management method and related device | |
CN108345806B (zh) | 一种硬件加密卡和加密方法 | |
US11921905B2 (en) | Secure collaboration between processors and processing accelerators in enclaves | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
CN112926051B (zh) | 多方安全计算方法和装置 | |
US10484170B2 (en) | Custom encryption function for communications between a client device and a server device | |
US10122713B2 (en) | Method and device for the secure authentication and execution of programs | |
CN113302871B (zh) | 通信方法、通信系统、网络接口控制器 | |
US20160006570A1 (en) | Generating a key derived from a cryptographic key using a physically unclonable function | |
CN112740615B (zh) | 多方计算的密钥管理 | |
US20060015751A1 (en) | Method of storing unique constant values | |
CN113329030A (zh) | 区块链一体机及其密码加速卡、密钥管理方法和装置 | |
US20190044922A1 (en) | Symmetric key identity systems and methods | |
CN114175572A (zh) | 利用拟群运算对加密数据实行相等和小于运算的系统和方法 | |
US20210273790A1 (en) | Client device | |
WO2020078804A1 (en) | Puf based securing of device update | |
US11496287B2 (en) | Privacy preserving fully homomorphic encryption with circuit verification | |
CN115203708B (zh) | 一种应用数据部署至协处理器的方法及系统 | |
EP4012689B1 (en) | Key management system providing secure management of cryptographic keys, and methods of operating the same | |
CN115758332A (zh) | 一种交易分组方法和区块链节点 | |
CN114095259A (zh) | 鉴别加解密装置及方法 | |
CN110708154A (zh) | 一种虚拟机迁移方法、系统、终端及存储介质 | |
JP2018098757A (ja) | 通信装置及び暗号処理システム | |
CN115516454B (zh) | 硬件安全模块和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201104 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201104 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201225 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210209 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210409 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210706 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220111 |