JP6904916B2 - Information processing method and information processing system - Google Patents
Information processing method and information processing system Download PDFInfo
- Publication number
- JP6904916B2 JP6904916B2 JP2018055958A JP2018055958A JP6904916B2 JP 6904916 B2 JP6904916 B2 JP 6904916B2 JP 2018055958 A JP2018055958 A JP 2018055958A JP 2018055958 A JP2018055958 A JP 2018055958A JP 6904916 B2 JP6904916 B2 JP 6904916B2
- Authority
- JP
- Japan
- Prior art keywords
- public key
- providing server
- encryption
- model
- learning model
- 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.)
- Active
Links
Images
Description
本発明は情報処理方法及び情報処理システムに関し、特に、機械学習を用いて生成した学習モデルと、その学習モデルの処理対象とするデータとを秘匿化する技術に関する。 The present invention relates to an information processing method and an information processing system, and more particularly to a technique for concealing a learning model generated by using machine learning and data to be processed by the learning model.
近年、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の高速化、メモリの大容量化、及び機械学習技術が急速に進んできている。このため、数十万から百万といったオーダーの学習データを用いる機械学習が可能となり、精度の高い識別技術や分類技術が確立されつつある(非特許文献1参照)。 In recent years, the speed of CPU (Central Processing Unit) and GPU (Graphics Processing Unit) has been increased, the capacity of memory has been increased, and machine learning technology has been rapidly advanced. For this reason, machine learning using learning data on the order of hundreds of thousands to millions has become possible, and highly accurate identification technology and classification technology are being established (see Non-Patent Document 1).
大量の学習データに基づく機械学習を実行するためには大量の計算コストがかかる。また、大量の学習データを用意すること、及び用意した学習データを機械学習に用いるために加工する前処理にも膨大な労力を要する。一方で、機械学習によって生成された学習モデルはデジタルデータであり、その複製は容易である。したがって、学習モデルの作成者がユーザに利用させることを目的として学習モデルをユーザに提供すると、提供した学習モデルがその後不正に利用される恐れが生じる。 A large amount of computational cost is required to perform machine learning based on a large amount of learning data. In addition, a huge amount of labor is required for preparing a large amount of learning data and preprocessing for processing the prepared learning data for use in machine learning. On the other hand, the learning model generated by machine learning is digital data, and its duplication is easy. Therefore, if the creator of the learning model provides the learning model to the user for the purpose of making the user use it, there is a risk that the provided learning model will be used illegally thereafter.
一方、学習モデルのユーザに学習モデル自体を提供せずに、通信ネットワークを介してユーザから処理対象データを取得し、学習モデルの処理結果のみをユーザに提供する態様も考えられる。しかしながら、この態様では、学習モデルに入力するデータに個人情報が含まれる等によって漏洩が問題となるデータの場合、ユーザは学習モデルの利用に二の足を踏みかねない。 On the other hand, it is also conceivable that the processing target data is acquired from the user via the communication network and only the processing result of the learning model is provided to the user without providing the learning model itself to the user of the learning model. However, in this aspect, in the case of data in which leakage becomes a problem due to the inclusion of personal information in the data input to the learning model, the user may be reluctant to use the learning model.
本発明はこれらの点に鑑みてなされたものであり、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することを目的とする。 The present invention has been made in view of these points, and an object of the present invention is to provide a technique capable of acquiring a processing result while keeping a learning model and processing target data concealed.
本発明の第1の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバ、サービス提供サーバ、及びユーザ端末を含む情報処理システムにおいて実行される情報処理方法である。この方法は、前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第1公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、前記モデル提供サーバが、前記第1公開鍵を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記モデル提供サーバから受信した前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵とを前記サービス提供サーバに送信するステップと、前記ユーザ端末が、前記第2公開鍵を前記モデル提供サーバに送信するステップと、前記モデル提供サーバが、前記ユーザ端末から受信した前記第2公開鍵を用いて前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成するステップと、前記モデル提供サーバが、前記第2公開鍵暗号化第1秘密鍵を前記サービス提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を取得するステップと、前記サービス提供サーバが、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、前記サービス提供サーバが、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得するステップと、前記サービス提供サーバが、前記第2暗号化出力を前記ユーザ端末に送信するステップと、前記ユーザ端末が、前記第2公開鍵に対応する第2秘密鍵を用いて、前記サービス提供サーバから受信した前記第2暗号化出力を復号するステップと、を含む。 A first aspect of the present invention is an information processing method executed in an information processing system including a model providing server, a service providing server, and a user terminal that are connected to each other via a communication network in a manner that allows communication with each other. In this method, the model providing server encrypts a learning model created by using machine learning using a first public key, which is a public key of completely quasi-identical encryption, to generate an encryption learning model. The model providing server transmits the encryption learning model to the service providing server, the model providing server transmits the first public key to the user terminal, and the user terminal uses the model. A step of encrypting the processing target data of the learning model using the first public key received from the providing server to generate the encryption processing target data, and the user terminal using the encryption processing target data and the complete A step of transmitting a second public key, which is a public key of quasi-identical encryption and is different from the first public key, to the service providing server, and the user terminal transmits the second public key to the model providing server. The second public key encryption first private key in which the model providing server encrypts the first private key corresponding to the first public key using the second public key received from the user terminal. The step of generating the above, the step of the model providing server transmitting the second public key encryption first private key to the service providing server, and the encryption received by the service providing server from the model providing server. The first output of the learning model, which uses the learning model and the encryption processing target data received from the user terminal and inputs the processing target data encrypted with the first public key. The step of acquiring the encrypted output, the step of the service providing server generating the double encrypted output in which the first encrypted output is re-encrypted using the second public key, and the step of the service providing server , The second public key encryption The first private key is used to decrypt the encryption by the first public key in the double encryption output while being encrypted by the second public key. A step of acquiring the second encrypted output to be obtained, a step of the service providing server transmitting the second encrypted output to the user terminal, and a second secret corresponding to the second public key by the user terminal. It includes a step of decrypting the second encrypted output received from the service providing server using the key.
前記情報処理方法は、前記モデル提供サーバが、前記完全準同型暗号の公開鍵であって前記第1公開鍵及び前記第2公開鍵とは異なる第3公開鍵を生成するステップと、前記モデル提供サーバが、前記第3公開鍵で前記第1秘密鍵を暗号化した第3公開鍵暗号化第1秘密鍵を生成するステップと、前記モデル提供サーバが、前記第3公開鍵と前記第3公開鍵暗号化第1秘密鍵とを前記サービス提供サーバに送信するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵を用いて、前記暗号化学習モデルを再度暗号化して二重暗号化学習モデルを生成するステップと、前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵暗号化第1秘密鍵を用いて、前記第3公開鍵で暗号化された状態のまま前記二重暗号化学習モデルのうち前記第1公開鍵による暗号化を復号するステップと、をさらに含んでもよい。 The information processing method includes a step in which the model providing server generates a third public key that is the public key of the completely quasi-isomorphic cryptography and is different from the first public key and the second public key, and the model providing. A step in which the server generates a third public key cryptography first private key in which the first private key is encrypted with the third public key, and a model providing server uses the third public key and the third public key. The step of transmitting the key encryption first private key to the service providing server and the service providing server re-encrypt the encryption learning model using the third public key received from the model providing server. The step of generating the dual encryption learning model and the service providing server are encrypted with the third public key using the third public key encryption first private key received from the model providing server. In this state, the dual encryption learning model may further include a step of decrypting the encryption by the first public key.
前記情報処理方法において、前記学習モデルは、前記学習モデルの処理対象データと前記学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、前記処理対象データを入力とする前記学習モデルの出力を算出するように構成されていてもよい。 In the information processing method, the learning model obtains the processing target data by executing a combination of at least one of addition and multiplication of the processing target data of the learning model and the model parameters of the learning model. It may be configured to calculate the output of the learning model as an input.
本発明の第2の態様は、通信ネットワークを介して互いに通信可能な態様で接続するモデル提供サーバとサービス提供サーバとを含む情報処理システムである。このシステムにおいて、前記モデル提供サーバは、機械学習を用いて学習モデルを生成するモデル生成部と、完全準同型暗号の公開鍵である第1公開鍵を用いて前記学習モデルを暗号化して暗号化学習モデルを生成する暗号化部と、前記暗号化学習モデルを前記サービス提供サーバに送信するとともに、前記第1公開鍵をユーザ端末に送信する送信部と、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵を前記ユーザ端末から受信する受信部と、を備える。前記暗号化部は、前記第2公開鍵を用いて、前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成し、前記送信部は、前記第2公開鍵暗号化第1秘密鍵を前記サービス提供サーバに送信する。また、前記サービス提供サーバは、前記モデル提供サーバから前記暗号化学習モデルを受信するとともに、前記ユーザ端末から前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化した暗号化処理対象データを受信する受信部と、前記暗号化学習モデルと前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を生成するモデル実行部と、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成する暗号化部と、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得する復号部と、前記第2暗号化出力を前記ユーザ端末に送信する送信部と、を備える。 A second aspect of the present invention is an information processing system including a model providing server and a service providing server that are connected to each other via a communication network in a manner capable of communicating with each other. In this system, the model providing server encrypts and encrypts the learning model using a model generator that generates a learning model using machine learning and a first public key that is a public key of fully homomorphic encryption. The encryption unit that generates the learning model, the transmission unit that transmits the encryption learning model to the service providing server and the first public key to the user terminal, and the public key of the fully homomorphic encryption. It includes a receiving unit that receives a second public key different from the first public key from the user terminal. The encryption unit uses the second public key to generate a second public key encryption first private key in which the first private key corresponding to the first public key is encrypted, and the transmission unit generates a first private key. The second public key encryption first private key is transmitted to the service providing server. Further, the service providing server receives the encryption learning model from the model providing server and encrypts the processing target data of the learning model from the user terminal using the first public key. Output of the learning model in which the processing target data encrypted with the first public key is input using the receiving unit that receives the data, the encryption learning model, and the encryption processing target data. A model execution unit that generates the first encrypted output, an encryption unit that generates a double encrypted output in which the first encrypted output is re-encrypted using the second public key, and the second. Public key encryption A second encryption obtained by decrypting the encryption by the first public key of the double encryption output while being encrypted by the second public key using the first private key. It includes a decryption unit that acquires the encrypted output and a transmission unit that transmits the second encrypted output to the user terminal.
本発明によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる技術を提供することができる。 According to the present invention, it is possible to provide a technique capable of acquiring a processing result while keeping the learning model and the data to be processed concealed.
<実施の形態の概要>
図1は、実施の形態に係る情報処理システムSの構成の概要を模式的に示す図である。以下、図1を参照して、実施の形態の概要を述べる。
<Outline of the embodiment>
FIG. 1 is a diagram schematically showing an outline of the configuration of the information processing system S according to the embodiment. Hereinafter, an outline of the embodiment will be described with reference to FIG.
図1に示すように、実施の形態に係る情報処理システムSは、モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3を含んでいる。モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3は、通信ネットワークNを介して互いに通信可能な態様で接続している。
As shown in FIG. 1, the information processing system S according to the embodiment includes a
モデル提供サーバ1は、機械学習によって学習モデルを生成する装置である。モデル提供サーバ1が生成する学習モデルは、処理対象とするデータを入力として、何らかの処理結果を出力するように構成されたデジタルデータである。一例として、モデル提供サーバ1が生成する学習モデルは、処理対象として画像データが入力されると、その画像データに含まれる被写体を認識して被写体の種類、数、及び画像中の場所等を出力する画像認識エンジンである。
The
サービス提供サーバ2は、モデル提供サーバ1が生成した学習モデルを受け取り、ユーザにサービスを提供する装置である。サービス提供サーバ2は、ユーザが使用するユーザ端末3から通信ネットワークNを介して処理対象のデータを受け取る。続いて、サービス提供サーバ2は、受け取ったデータを学習モデルに適用し、出力を取得する。最後に、サービス提供サーバ2は、取得した学習モデルの出力を通信ネットワークNを介してユーザ端末3に送信する。
The
ここで、モデル提供サーバ1は、学習モデルを完全準同型暗号(Fully Homomorphic. Encryption)の公開鍵で暗号化した学習モデルを、サービス提供サーバ2に送信する。また、ユーザ端末3は、学習モデルの暗号化に用いられた公開鍵をモデル提供サーバ1から受信しており、その公開鍵を用いて処理対象のデータを暗号化した後に、サービス提供サーバ2に送信する。すなわち、サービス提供サーバ2は、同じ公開鍵で暗号化された学習モデルと処理対象のデータとを取得することになる。
Here, the
完全準同型暗号は、データを暗号化したまま、加法演算及び乗法演算が可能な暗号である。具体的には、ふたつの数値の平文をa及びbとし、a及びbをそれぞれ暗号化したものをEnc(a)及びEnc(b)とする。また、aとbとの加法a+bを暗号化したものをEnc(a+b)、aとbとの乗法a×bを暗号化したものをEnc(a×b)とする。このとき、完全準同型暗号では、以下の式(1)及び式(2)が成り立つ。
Enc(a)+Enc(b)=Enc(a+b) (1)
Enc(a)×Enc(b)=Enc(a×b) (2)
Homomorphic encryption is a cipher that allows additive operations and multiplication operations while the data is encrypted. Specifically, the plaintexts of the two numerical values are designated as a and b, and the encrypted versions of a and b are designated as Enc (a) and Enc (b), respectively. Further, the encrypted addition a + b of a and b is referred to as Enc (a + b), and the encrypted multiplication a × b of a and b is referred to as Enc (a × b). At this time, the following equations (1) and (2) hold in the fully homomorphic encryption.
Enc (a) + Enc (b) = Enc (a + b) (1)
Enc (a) x Enc (b) = Enc (a x b) (2)
実施の形態に係るモデル提供サーバ1が生成する学習モデルは、学習モデルの処理対象データと学習モデルのモデルパラメータとの加法及び乗法の少なくともいずれか一方の演算の組み合わせを実行することで、処理対象データを入力とする学習モデルの出力を算出するように構成されている。言い換えると、実施の形態に係るモデル提供サーバ1が生成する学習モデルは、処理の途中にシグモイド関数等の非線形関数が含まれず、加法演算又は乗法演算のみ含まれる。これにより、実施の形態に係るサービス提供サーバ2は、完全準同型暗号の公開鍵で暗号化された学習モデルと処理対象のデータとを取得し、暗号化されたままの状態で処理対象のデータを学習モデルに適用することができる。
The learning model generated by the
なお、サービス提供サーバ2が処理対象のデータを学習モデルに適用することで得られる出力も、モデル提供サーバ1が生成した公開鍵によって暗号化されたままの状態である。このため、サービス提供サーバ2が暗号化された状態の出力をユーザ端末3に送信しても、ユーザ端末3は出力内容を確認することができない。
The output obtained by applying the data to be processed by the
そこで、サービス提供サーバ2は、モデル提供サーバ1が生成した公開鍵で暗号された状態の出力を、ユーザ端末3が生成した別の公開鍵で暗号化した状態に書き換えてからユーザ端末3に送信する。これにより、ユーザ端末3は、自身が所有する秘密鍵で出力を復号することにより、出力内容を確認することができる。
Therefore, the
このように、実施の形態に係る情報処理システムSによれば、サービス提供サーバ2及びユーザ端末3は、平文の状態の学習モデルを取得することができない。また、モデル提供サーバ1及びサービス提供サーバ2は、平文の状態の処理対象データを取得することができない。それにもかかわらず、ユーザ端末3は、処理対象データを学習モデルに適用した結果を取得することができる。したがって、実施の形態に係る情報処理システムSは、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができ、学習モデルと処理対象データとの漏洩を抑制できる。
As described above, according to the information processing system S according to the embodiment, the
<実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3の機能構成>
図2は、実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3の機能構成を模式的に示す図である。モデル提供サーバ1は、記憶部10、制御部11、送信部12、及び受信部13を備える。サービス提供サーバ2は、記憶部20、制御部21、送信部22、及び受信部23を備える。ユーザ端末3は、記憶部30、制御部31、送信部32、及び受信部33を備える。
<Functional configuration of
FIG. 2 is a diagram schematically showing the functional configurations of the
記憶部10は、モデル提供サーバ1を実現するコンピュータのBIOS(Basic Input Output System)等を格納するROM(Read Only Memory)やモデル提供サーバ1の作業領域となるRAM(Random Access Memory)、OS(Operating System)やアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDD(Hard Disk Drive)やSSD(Solid State Drive)等の大容量記憶装置である。
The
同様に、記憶部20は、サービス提供サーバ2を実現するコンピュータのBIOS等を格納するROMやサービス提供サーバ2の作業領域となるRAM、OSやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。さらに、記憶部30は、ユーザ端末3を実現するコンピュータのBIOS等を格納するROMやユーザ端末3の作業領域となるRAM、OSやアプリケーションプログラム、当該アプリケーションプログラムの実行時に参照される種々の情報を格納するHDDやSSD等の大容量記憶装置である。
Similarly, the
制御部11は、モデル提供サーバ1のCPUやGPU等のプロセッサであり、記憶部10に記憶されたプログラムを実行することによってモデル生成部110、鍵生成部111、及び暗号化部112として機能する。同様に、制御部21は、サービス提供サーバ2のCPUやGPU等のプロセッサであり、記憶部20に記憶されたプログラムを実行することによってモデル実行部210、暗号化部211、及び復号部212として機能する。さらに、制御部31は、ユーザ端末3のCPUやGPU等のプロセッサであり、記憶部30に記憶されたプログラムを実行することによって暗号化部310、鍵生成部311、及び復号部312として機能する。
The
なお、図2は、モデル提供サーバ1及びサービス提供サーバ2が単一の装置で構成されている場合の例を示している。しかしながら、モデル提供サーバ1及びサービス提供サーバ2は、例えばクラウドコンピューティングシステムのように複数のプロセッサやメモリ等の計算リソースによって実現されてもよい。この場合、制御部11及び制御部21を構成する各部は、複数の異なるプロセッサの中の少なくともいずれかのプロセッサがプログラムを実行することによって実現される。
Note that FIG. 2 shows an example in which the
<情報処理システムSで実行される処理のシーケンス図>
図3は、実施の形態に係る情報処理システムSで実行される処理の流れを説明するためのシーケンス図の前半部を示す図である。また、図4は、実施の形態に係る情報処理システムSで実行される処理の流れを説明するためのシーケンス図の後半部分を示す図である。以下、モデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3が連携して実行する処理を、図2、図3、及び図4を参照して説明する。
<Sequence diagram of processing executed by information processing system S>
FIG. 3 is a diagram showing a first half of a sequence diagram for explaining a flow of processing executed by the information processing system S according to the embodiment. Further, FIG. 4 is a diagram showing a latter half of a sequence diagram for explaining a flow of processing executed by the information processing system S according to the embodiment. Hereinafter, the processes executed by the
モデル生成部110は、機械学習を用いて学習モデルを生成する(S2)。具体的には、モデル生成部110は、あらかじめ収集した学習用データをニューラルネットワーク、SVM(Support Vector Machine)、ブースティング等の既知の機械学習で処理することにより、学習モデルを生成する。ここで、モデル生成部110は、既知の学習モデルにおいて非線形な関数が用いられている場合には、あらかじめ線形関数で近似することによって乗法演算及び加法演算のみの学習モデルに置き換えてから学習を実行する。
The
鍵生成部111は、完全準同型暗号の公開鍵方式の暗号鍵を生成する(S4)。公開鍵方式の暗号鍵であるため、鍵生成部111は、公開鍵と、その公開鍵に対応する秘密鍵とを生成する。後述するが、完全準同型暗号の公開鍵方式の暗号鍵はサービス提供サーバ2によっても生成される。したがって、鍵生成部111が生成する公開鍵を「第1公開鍵pk1」又は単に「pk1」と記載する。同様に、第1秘密鍵を「第1秘密鍵sk1」又は単に「sk1」と記載する。なお、鍵生成部111及びサービス提供サーバ2は、完全準同型暗号として、例えばBVG方式(Brakerski-Gentry-Vaikuntanathan cryptosystem)の暗号を用いればよい。
The
暗号化部112は、第1公開鍵pk1を用いて学習モデルを暗号化して暗号化学習モデルを生成する(S6)。以下、学習モデルを「学習モデルw」又は単に「w」と記載する。また、第1秘密鍵sk1で暗号化した学習モデルwを「暗号化学習モデルEnc(pk1,w)」又は単に「Enc(pk1,w)」と記載する。以下、公開鍵pkを用いてデータdを暗号化して得られるデータをEnc(pk,d)のように記載する。
The
送信部12は、暗号化学習モデルEnc(pk1,w)をサービス提供サーバ2に送信する(S8)。また、送信部12は、第1公開鍵pk1をユーザ端末3に送信する(S10)。
The
ユーザ端末3の受信部33は、モデル提供サーバ1から送信された第1公開鍵pk1を受信する(S12)。暗号化部310は、第1公開鍵pk1を用いて学習モデルwの処理対象データxを暗号化して暗号化処理対象データEnc(pk1,x)を生成する(S14)。
The receiving
鍵生成部311は、完全準同型暗号の公開鍵であって第1公開鍵pk1とは異なる第2公開鍵pk2と、第2公開鍵pk2に対応する第2秘密鍵sk2とを含む第2暗号鍵を生成する(S16)。送信部32は、第2公開鍵pk2をモデル提供サーバ1及びサービス提供サーバ2に送信する(S18)。
The
モデル提供サーバ1の受信部13は、ユーザ端末3から第2公開鍵pk2を受信する(S20)。また、サービス提供サーバ2の受信部23は、モデル提供サーバ1から暗号化学習モデルEnc(pk1,w)を受信する(S22)。受信部23は、ユーザ端末3から第2公開鍵pk2を受信する(S24)。
The receiving
ユーザ端末3の送信部32は、暗号化処理対象データEnc(pk1,x)をサービス提供サーバ2に送信する(S26)。サービス提供サーバ2の受信部23は、ユーザ端末3から暗号化処理対象データEnc(pk1,x)を受信する(S28)。
The
モデル提供サーバ1の暗号化部112は、ユーザ端末3から受信した第2公開鍵pk2を用いて第1秘密鍵sk1を暗号化した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を生成する(S30)。送信部12は、第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)をサービス提供サーバ2に送信する(S32)。
The
サービス提供サーバ2の受信部23は、モデル提供サーバ1から第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を受信する(S34)。モデル実行部210は、暗号化学習モデルEnc(pk1,w)と暗号化処理対象データEnc(pk1,x)とを用いて、第1公開鍵pk1で暗号化された状態の処理対象データxを入力とする学習モデルwの出力である第1暗号化出力Enc(pk1,fw(x))を生成する(S36)。
The receiving
暗号化部211は、第1暗号化出力Enc(pk1,fw(x))を、ユーザ端末3から受信した第2公開鍵pk2を用いて再度暗号化した二重暗号化出力Enc(pk2,Enc(pk1,fw(x)))を生成する(S38)。
復号部212は、モデル提供サーバ1から受信した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を用いて、第2公開鍵pk2で暗号化された状態のまま二重暗号化出力Enc(pk2,Enc(pk1,fw(x)))のうち第1公開鍵pk1による暗号化を復号して得られる第2暗号化出力Enc(pk2,fw(x))を取得する(S40)。送信部22は、第2暗号化出力Enc(pk2,fw(x))をユーザ端末3に送信する(S42)。
The
ユーザ端末3の受信部33は、サービス提供サーバ2から第2暗号化出力Enc(pk2,fw(x))を受信する(S44)。復号部312は、第2秘密鍵sk2を用いて、サービス提供サーバ2から受信した第2暗号化出力第2暗号化出力Enc(pk2,fw(x))を復号する(S46)。これにより、ユーザ端末3は、暗号化されていない処理対象データxを入力とする学習モデルwの出力fw(x)を得ることができる。
図5(a)−(c)は、実施の形態に係るモデル提供サーバ1、サービス提供サーバ2、及びユーザ端末3がそれぞれ生成又は取得するデータの一覧を表形式でまとめた図である。図5(a)に示すように、モデル提供サーバ1は、学習モデルw、第1公開鍵pk1、及び第1秘密鍵sk1を生成し、ユーザ端末3から第2公開鍵pk2を取得する。モデル提供サーバ1はさらに、第2公開鍵pk2を用いて第1秘密鍵sk1を暗号化した第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)も生成する。
5 (a)-(c) is a diagram in which a list of data generated or acquired by the
図5(b)に示すように、サービス提供サーバ2は、モデル提供サーバ1から暗号化学習モデルEnc(pk1,w)と第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)とを取得する。また、サービス提供サーバ2は、ユーザ端末3から第2公開鍵pk2と暗号化処理対象データEnc(pk1,x)とを取得する。
As shown in FIG. 5B, the
サービス提供サーバ2は、暗号化学習モデルEnc(pk1,w)と暗号化処理対象データEnc(pk1,x)とに基づいて、第1暗号化出力Enc(pk1,fw(x))を生成する。サービス提供サーバ2は、第2公開鍵pk2を用いて第1暗号化出力Enc(pk1,fw(x))を暗号化した二重暗号化出力Enc(pk2,Enc(pk1,fw(x)))を生成する。さらに、サービス提供サーバ2は、第2公開鍵暗号化第1秘密鍵Enc(pk2,sk1)を用いて二重暗号化出力Enc(pk2,Enc(pk1,fw(x)))を復号して第2暗号化出力Enc(pk2,fw(x))も生成する。
The service providing server 2 generates the first encryption output Enc (pk1, f w (x)) based on the encryption learning model Enc (pk1, w) and the encryption processing target data Enc (pk1, x). do. The
図5(c)に示すように、ユーザ端末3は、処理対象データx、第2公開鍵pk2、第2秘密鍵sk2を生成する。ユーザ端末3は、モデル提供サーバ1から第1公開鍵pk1を取得する。ユーザ端末3は、第1公開鍵pk1を用いて処理対象データxを暗号化した暗号化処理対象データEnc(pk1,x)を生成する。さらに、ユーザ端末3は、サービス提供サーバ2から第2暗号化出力Enc(pk2,fw(x))を取得する。ユーザ端末3は、第2秘密鍵sk2を用いて第2暗号化出力Enc(pk2,fw(x))を復号することにより、処理対象データxを入力とする学習モデルwの出力fw(x)を生成する。
As shown in FIG. 5C, the user terminal 3 generates the processing target data x, the second public key pk2, and the second private key sk2. The user terminal 3 acquires the first public key pk1 from the
このように、実施の形態に係るモデル提供サーバ1が生成した学習モデルwは、平文のままでサービス提供サーバ2又はユーザ端末3に送信されることはない。また、サービス提供サーバ2及びユーザ端末3はいずれも、暗号化された学習モデルwを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムSは、学習モデルwを秘匿することができ、学習モデルwが漏洩することを抑制することができる。
As described above, the learning model w generated by the
また、実施の形態に係るユーザ端末3が生成した処理対象データxは、平文のままでモデル提供サーバ1又はサービス提供サーバ2に送信されることはない。さらに、モデル提供サーバ1及びサービス提供サーバ2はいずれも、暗号化された処理対象データxを復号するための秘密鍵を取得することはない。したがって、実施の形態に係る情報処理システムSは、処理対象データxを秘匿することができ、処理対象データxが漏洩することを抑制することができる。
Further, the processing target data x generated by the user terminal 3 according to the embodiment is not transmitted to the
(学習モデルwの暗号鍵の更新)
上述したように、実施の形態に係るモデル提供サーバ1は、学習モデルwを暗号化した状態でサービス提供サーバ2に送信する。ここで、学習モデルwを暗号化する公開鍵を定期的に更新できれば、万が一公開鍵に対応する秘密鍵が漏洩したとしても、学習モデルを漏洩から守ることができる。そこで、以下、学習モデルwを暗号化する公開鍵の更新処理について説明する。
(Update of encryption key of learning model w)
As described above, the
図6は、実施の形態に係る情報処理システムSで実行される暗号鍵の更新処理を説明するためのシーケンス図である。モデル提供サーバ1の鍵生成部111は、完全準同型暗号の公開鍵であって第1公開鍵pk1及び第2公開鍵pk2とは異なる第3公開鍵pk3と、第3公開鍵pk3に対応する第3秘密鍵sk3とを含む第3暗号鍵を生成する(S48)。
FIG. 6 is a sequence diagram for explaining the encryption key update process executed by the information processing system S according to the embodiment. The
暗号化部112は、第3公開鍵pk3で第1秘密鍵sk1を暗号化した第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)を生成する(S50)。送信部12は、第3公開鍵pk3と第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)とをサービス提供サーバ2に送信する(S52)。
The
サービス提供サーバ2の受信部23は、モデル提供サーバ1から第3公開鍵pk3と第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)とを受信する(S54)。暗号化部211は、第3公開鍵pk3を用いて、暗号化学習モデルEnc(pk1,w)を再度暗号化して二重暗号化学習モデル暗号化学習モデルEnc(pk3,Enc(pk1,w))を生成する(S56)。
The receiving
復号部212は、第3公開鍵暗号化第1秘密鍵Enc(pk3,sk1)を用いて、第3公開鍵pk3で暗号化された状態のまま二重暗号化学習モデル暗号化学習モデルEnc(pk3,Enc(pk1,w))のうち第1公開鍵pk1による暗号化を復号する(S58)。これにより、復号部212は、第3公開鍵pk3で暗号化した学習モデルwであるEnc(pk3,w)を生成することができる。
The
以上より、情報処理システムSは、サービス提供サーバ2が保持する学習モデルwの暗号鍵を更新することができる。例えば、数十万から百万といったオーダーの大量の学習データを用いる機械学習で生成した学習モデルwはデータサイズも大きく、また、暗号化後のデータサイズも同様である。したがって、モデル提供サーバ1が第3公開鍵pk3で学習モデルwを暗号化した後にサービス提供サーバ2に送信する場合と比較して、上述した暗号鍵の更新処理は、通信ネットワークNを経由するデータ量を大幅に削減できる点で有利である。
From the above, the information processing system S can update the encryption key of the learning model w held by the
<実施の形態に係るモデル提供サーバ1が奏する効果>
以上説明したように、実施の形態に係るモデル提供サーバ1によれば、学習モデル及び処理対象データを秘匿化した状態のまま処理結果を取得することができる。
<Effects of the
As described above, according to the
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。例えば、装置の分散・統合の具体的な実施の形態は、以上の実施の形態に限られず、その全部又は一部について、任意の単位で機能的又は物理的に分散・統合して構成することができる。また、複数の実施の形態の任意の組み合わせによって生じる新たな実施の形態も、本発明の実施の形態に含まれる。組み合わせによって生じる新たな実施の形態の効果は、もとの実施の形態の効果を合わせ持つ。 Although the present invention has been described above using the embodiments, the technical scope of the present invention is not limited to the scope described in the above embodiments, and various modifications and changes can be made within the scope of the gist thereof. be. For example, the specific embodiment of the distribution / integration of the device is not limited to the above embodiment, and all or a part thereof may be functionally or physically distributed / integrated in any unit. Can be done. Also included in the embodiments of the present invention are new embodiments resulting from any combination of the plurality of embodiments. The effect of the new embodiment produced by the combination has the effect of the original embodiment together.
1・・・モデル提供サーバ
10・・・記憶部
11・・・制御部
110・・・モデル生成部
111・・・鍵生成部
112・・・暗号化部
12・・・送信部
13・・・受信部
2・・・サービス提供サーバ
20・・・記憶部
21・・・制御部
210・・・モデル実行部
211・・・暗号化部
212・・・復号部
22・・・送信部
23・・・受信部
3・・・ユーザ端末
30・・・記憶部
31・・・制御部
310・・・暗号化部
311・・・鍵生成部
312・・・復号部
32・・・送信部
33・・・受信部
N・・・通信ネットワーク
S・・・情報処理システム
1 ...
Claims (4)
前記モデル提供サーバが、機械学習を用いて作成した学習モデルを、完全準同型暗号の公開鍵である第1公開鍵を用いて暗号化して暗号化学習モデルを生成するステップと、
前記モデル提供サーバが、前記暗号化学習モデルを前記サービス提供サーバに送信するステップと、
前記モデル提供サーバが、前記第1公開鍵を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記モデル提供サーバから受信した前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化して暗号化処理対象データを生成するステップと、
前記ユーザ端末が、前記暗号化処理対象データと、前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵とを前記サービス提供サーバに送信するステップと、
前記ユーザ端末が、前記第2公開鍵を前記モデル提供サーバに送信するステップと、
前記モデル提供サーバが、前記ユーザ端末から受信した前記第2公開鍵を用いて前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成するステップと、
前記モデル提供サーバが、前記第2公開鍵暗号化第1秘密鍵を前記サービス提供サーバに送信するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記暗号化学習モデルと、前記ユーザ端末から受信した前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成するステップと、
前記サービス提供サーバが、前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得するステップと、
前記サービス提供サーバが、前記第2暗号化出力を前記ユーザ端末に送信するステップと、
前記ユーザ端末が、前記第2公開鍵に対応する第2秘密鍵を用いて、前記サービス提供サーバから受信した前記第2暗号化出力を復号するステップと、
を含む情報処理方法。 An information processing method executed in an information processing system including a model providing server, a service providing server, and a user terminal that are connected to each other via a communication network.
A step of generating an encryption learning model by encrypting a learning model created by the model providing server using machine learning using a first public key which is a public key of fully homomorphic encryption.
A step in which the model providing server transmits the encryption learning model to the service providing server,
A step in which the model providing server transmits the first public key to the user terminal,
A step in which the user terminal encrypts the processing target data of the learning model using the first public key received from the model providing server to generate the encryption processing target data.
A step in which the user terminal transmits the data to be encrypted and a second public key which is the public key of the fully homomorphic encryption and is different from the first public key to the service providing server.
A step in which the user terminal transmits the second public key to the model providing server, and
A step in which the model providing server generates a second public key encryption first private key in which the first private key corresponding to the first public key is encrypted using the second public key received from the user terminal. When,
A step in which the model providing server transmits the second public key encryption first private key to the service providing server.
The state in which the service providing server is encrypted with the first public key using the encryption learning model received from the model providing server and the encryption processing target data received from the user terminal. The step of acquiring the first encrypted output, which is the output of the learning model that inputs the data to be processed, and
A step in which the service providing server generates a double encrypted output in which the first encrypted output is re-encrypted using the second public key.
The service providing server uses the second public key encryption first private key to encrypt the double encryption output with the first public key while being encrypted with the second public key. And the step to obtain the second encrypted output obtained by decrypting
A step in which the service providing server transmits the second encrypted output to the user terminal, and
A step in which the user terminal decrypts the second encrypted output received from the service providing server by using the second private key corresponding to the second public key.
Information processing methods including.
前記モデル提供サーバが、前記第3公開鍵で前記第1秘密鍵を暗号化した第3公開鍵暗号化第1秘密鍵を生成するステップと、
前記モデル提供サーバが、前記第3公開鍵と前記第3公開鍵暗号化第1秘密鍵とを前記サービス提供サーバに送信するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵を用いて、前記暗号化学習モデルを再度暗号化して二重暗号化学習モデルを生成するステップと、
前記サービス提供サーバが、前記モデル提供サーバから受信した前記第3公開鍵暗号化第1秘密鍵を用いて、前記第3公開鍵で暗号化された状態のまま前記二重暗号化学習モデルのうち前記第1公開鍵による暗号化を復号するステップと、
をさらに含む請求項1に記載の情報処理方法。 A step in which the model providing server generates a third public key that is the public key of the fully homomorphic encryption and is different from the first public key and the second public key.
A step in which the model providing server generates a third public key encryption first private key in which the first private key is encrypted with the third public key.
A step in which the model providing server transmits the third public key and the third public key encryption first private key to the service providing server.
A step in which the service providing server re-encrypts the encryption learning model using the third public key received from the model providing server to generate a double encryption learning model.
Of the double encryption learning model, the service providing server uses the third public key encryption first private key received from the model providing server and remains encrypted with the third public key. The step of decrypting the encryption by the first public key and
The information processing method according to claim 1, further comprising.
請求項1又は2に記載の情報処理方法。 The learning model receives the processing target data as input by executing a combination of at least one of addition and multiplication of the processing target data of the learning model and the model parameters of the learning model. Is configured to calculate the output of,
The information processing method according to claim 1 or 2.
前記モデル提供サーバは、
機械学習を用いて学習モデルを生成するモデル生成部と、
完全準同型暗号の公開鍵である第1公開鍵を用いて前記学習モデルを暗号化して暗号化学習モデルを生成する暗号化部と、
前記暗号化学習モデルを前記サービス提供サーバに送信するとともに、前記第1公開鍵をユーザ端末に送信する送信部と、
前記完全準同型暗号の公開鍵であって前記第1公開鍵とは異なる第2公開鍵を前記ユーザ端末から受信する受信部と、を備え、
前記暗号化部は、前記第2公開鍵を用いて、前記第1公開鍵に対応する第1秘密鍵を暗号化した第2公開鍵暗号化第1秘密鍵を生成し、
前記送信部は、前記第2公開鍵暗号化第1秘密鍵を前記サービス提供サーバに送信し、
前記サービス提供サーバは、
前記モデル提供サーバから前記暗号化学習モデルを受信するとともに、前記ユーザ端末から前記第1公開鍵を用いて前記学習モデルの処理対象データを暗号化した暗号化処理対象データを受信する受信部と、
前記暗号化学習モデルと前記暗号化処理対象データとを用いて、前記第1公開鍵で暗号化された状態の前記処理対象データを入力とする前記学習モデルの出力である第1暗号化出力を生成するモデル実行部と、
前記第1暗号化出力を前記第2公開鍵を用いて再度暗号化した二重暗号化出力を生成する暗号化部と、
前記第2公開鍵暗号化第1秘密鍵を用いて、前記第2公開鍵で暗号化された状態のまま前記二重暗号化出力のうち前記第1公開鍵による暗号化を復号して得られる第2暗号化出力を取得する復号部と、
前記第2暗号化出力を前記ユーザ端末に送信する送信部と、を備える、
情報処理システム。 An information processing system that includes a model-providing server and a service-providing server that connect to each other via a communication network.
The model providing server is
A model generator that generates a learning model using machine learning,
An encryption unit that encrypts the learning model using the first public key, which is the public key of fully homomorphic encryption, and generates an encryption learning model.
A transmission unit that transmits the encryption learning model to the service providing server and also transmits the first public key to the user terminal.
It includes a receiving unit that receives a second public key, which is the public key of the fully homomorphic encryption and is different from the first public key, from the user terminal.
The encryption unit uses the second public key to generate a second public key encryption first private key in which the first private key corresponding to the first public key is encrypted.
The transmitting unit transmits the second public key encryption first private key to the service providing server.
The service providing server is
A receiving unit that receives the encryption learning model from the model providing server and also receives the encryption processing target data obtained by encrypting the processing target data of the learning model from the user terminal using the first public key.
Using the encryption learning model and the encryption processing target data, a first encryption output, which is an output of the learning model in which the processing target data encrypted with the first public key is input, is output. The model execution part to be generated and
An encryption unit that generates a double encrypted output in which the first encrypted output is re-encrypted using the second public key, and
The second public key encryption The first private key is used to decrypt the encryption by the first public key in the double encryption output while being encrypted by the second public key. A decryption unit that acquires the second encrypted output,
A transmission unit that transmits the second encrypted output to the user terminal is provided.
Information processing system.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018055958A JP6904916B2 (en) | 2018-03-23 | 2018-03-23 | Information processing method and information processing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018055958A JP6904916B2 (en) | 2018-03-23 | 2018-03-23 | Information processing method and information processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019168590A JP2019168590A (en) | 2019-10-03 |
JP6904916B2 true JP6904916B2 (en) | 2021-07-21 |
Family
ID=68107329
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018055958A Active JP6904916B2 (en) | 2018-03-23 | 2018-03-23 | Information processing method and information processing system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6904916B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468544B (en) * | 2020-03-30 | 2024-04-05 | 杭州海康威视数字技术股份有限公司 | Training method and device for application model |
JP6804074B1 (en) * | 2020-04-27 | 2020-12-23 | Arithmer株式会社 | Processing equipment, learning equipment, processing programs, and learning programs |
JP2021180361A (en) | 2020-05-11 | 2021-11-18 | キヤノン株式会社 | Information processing apparatus and method for controlling the same, and program |
US20230353571A1 (en) * | 2020-08-28 | 2023-11-02 | Nippon Telegraph And Telephone Corporation | Processing apparatus, processing method, and program |
US11902424B2 (en) * | 2020-11-20 | 2024-02-13 | International Business Machines Corporation | Secure re-encryption of homomorphically encrypted data |
-
2018
- 2018-03-23 JP JP2018055958A patent/JP6904916B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019168590A (en) | 2019-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6904916B2 (en) | Information processing method and information processing system | |
US11558358B2 (en) | Secure analytics using homomorphic and injective format-preserving encryption | |
CN109784931B (en) | Query method of data query platform based on blockchain | |
CN111460453A (en) | Machine learning training method, controller, device, server, terminal and medium | |
CN109729041B (en) | Method and device for issuing and acquiring encrypted content | |
EP3654580B1 (en) | Communication device and communication method used in decentralized network | |
CN105468940B (en) | Method for protecting software and device | |
JP2016158189A (en) | Change direction with key control system and change direction with key control method | |
JPWO2019130528A1 (en) | Conversion key generation device, ciphertext conversion device, secret information processing system, conversion key generation method, conversion key generation program, ciphertext conversion method, and ciphertext conversion program | |
CN113572604B (en) | Method, device and system for sending secret key and electronic equipment | |
Senthilnathan et al. | An enhancing reversible data hiding for secured data using shuffle block key encryption and histogram bit shifting in cloud environment | |
WO2014007296A1 (en) | Order-preserving encryption system, encryption device, decryption device, encryption method, decryption method, and programs thereof | |
CN112491529B (en) | Data file encryption and integrity verification method and system used in untrusted server environment | |
JP2021534443A (en) | Methods and systems for securing data | |
JP5964460B2 (en) | Data encryption storage system | |
CN110750326B (en) | Disk encryption and decryption method and system for virtual machine | |
JP7117964B2 (en) | Decryption device, encryption system, decryption method and decryption program | |
Carminati et al. | Secure web service composition with untrusted broker | |
CN116170157A (en) | User password encryption and decryption method and device based on national encryption algorithm | |
CN113810421B (en) | PRE (PRE) Internet of things data sharing method and system based on block chain | |
CN114490551A (en) | File security outsourcing and sharing method based on alliance chain | |
Alrehaili et al. | Cloud computing security challenges | |
CN102622541B (en) | The system and method for encryption and deciphering | |
CN115664852B (en) | Data management method and system based on block chain technology | |
CN117879820A (en) | Block chain-based data sharing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200124 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20201126 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20201208 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210121 |
|
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: 20210622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210624 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6904916 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |