(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023008395
(43)【公開日】2023-01-19
(54)【発明の名称】マルチパーティ型準同型暗号によるセキュアでロバストな連合学習システム及び連合学習方法
(51)【国際特許分類】
G09C 1/00 20060101AFI20230112BHJP
H04L 9/30 20060101ALI20230112BHJP
G06N 20/00 20190101ALI20230112BHJP
【FI】
G09C1/00 650Z
H04L9/00 663Z
G06N20/00
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2021111934
(22)【出願日】2021-07-06
(71)【出願人】
【識別番号】501318567
【氏名又は名称】ザ ガバニング カウンシル オブ ザ ユニバーシティ オブ トロント
(71)【出願人】
【識別番号】000233055
【氏名又は名称】株式会社日立ソリューションズ
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】キスティ アシシュ
(72)【発明者】
【氏名】ホセイニ セデルファン
(72)【発明者】
【氏名】大峡 光晴
(72)【発明者】
【氏名】藤本 拓志
(57)【要約】
【課題】TTPを設置することなく、秘匿性を向上し、通信コストを低減する。
【解決手段】エッジとサーバとを備える連合学習システムであって、エッジは、勾配情報を共通公開鍵で暗号化した暗号化勾配をサーバに送信し、サーバは、複数のエッジから受信した暗号化勾配を加算して、暗号化集約勾配を生成してエッジに送信し、エッジは、暗号化集約勾配を暗号化したエッジスイッチシェアを生成してサーバに送信し、サーバは、複数のエッジから受信したエッジスイッチシェアを加算して、復号用暗号化集約勾配を生成し、生成された復号用暗号化集約勾配を復号化して集約勾配を生成して、エッジに送信し、エッジは、サーバから受信した集約勾配を用いてAIモデルを学習する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
エッジ装置におけるAIモデルの学習の結果を表す勾配情報を集約する連合学習システムであって、
学習によってAIモデルを生成するエッジ装置と、
前記エッジ装置から前記勾配情報を収集するサーバ装置とを備え、
前記エッジ装置は、エッジ公開鍵及びエッジ秘密鍵を含むエッジキーペアを生成するエッジ鍵生成部と、前記AIモデルを学習データを用いて学習する学習部とを有し、
前記サーバ装置は、復号用公開鍵及び復号用秘密鍵を含む復号用キーペアを生成するサーバ鍵生成部と、データ処理を実行する暗号・復号部とを有し、
前記エッジ装置は、前記学習部において、前記勾配情報を共通公開鍵で暗号化した暗号化勾配を生成し、前記生成された暗号化勾配を前記サーバ装置に送信し、
前記サーバ装置は、前記暗号・復号部において、複数の前記エッジ装置から受信した暗号化勾配を加算して暗号化集約勾配を生成し、前記生成された暗号化集約勾配を前記エッジ装置に送信し、
前記エッジ装置は、前記学習部において、前記暗号化集約勾配を暗号化したエッジスイッチシェアを生成し、前記生成されたエッジスイッチシェアを前記サーバ装置に送信し、
前記サーバ装置は、前記暗号・復号部において、複数の前記エッジ装置から受信したエッジスイッチシェアを加算して、復号用暗号化集約勾配を生成し、前記生成された復号用暗号化集約勾配を復号化して集約勾配を生成して、前記エッジ装置に送信し、
前記エッジ装置は、前記学習部において、前記サーバ装置から受信した集約勾配を用いて前記AIモデルを学習する連合学習システム。
【請求項2】
請求項1に記載の連合学習システムであって、
前記学習部は、自己の学習結果を示す勾配情報を準同型暗号を用いて暗号化して、前記暗号化勾配を生成し、
前記暗号化勾配を加算した結果は、前記エッジ装置が生成した勾配を加算して暗号化した結果に等しくなることを特徴とする連合学習システム。
【請求項3】
請求項1に記載の連合学習システムであって、
前記エッジ鍵生成部は、
シャミアの秘密分散法に基づいて、前記生成されたエッジ秘密鍵からエッジ秘密鍵シェアを生成し、
複数の前記エッジ装置が生成したエッジ秘密鍵シェアを加算して、エッジシェアを生成することを特徴とする連合学習システム。
【請求項4】
請求項3に記載の連合学習システムであって、
前記エッジシェアから共通秘密鍵を再構築するために必要な値である再構築係数が定められており、
前記学習部は、前記暗号化集約勾配、前記エッジシェア及び前記再構築係数を復号用公開鍵を用いて暗号化して、前記エッジスイッチシェアを生成することを特徴とする連合学習システム。
【請求項5】
請求項4に記載の連合学習システムであって、
前記暗号・復号部は、
所定数以上の前記エッジ装置から前記エッジスイッチシェアを受信し、
前記受信したエッジスイッチシェアを加算して、前記復号用暗号化集約勾配を生成し、
前記生成された復号用暗号化集約勾配を復号用秘密鍵を用いて復号化して前記集約勾配を生成し、
前記エッジスイッチシェアを送信した前記エッジ装置に前記集約勾配を送信することを特徴とする連合学習システム。
【請求項6】
請求項5に記載の連合学習システムであって、
前記暗号・復号部は、前記生成された復号用暗号化集約勾配を復号化する処理において前記共通秘密鍵を構築し、
前記構築された共通秘密鍵を用いて前記復号用暗号化集約勾配を復号化することによって、前記集約勾配を生成することを特徴とする連合学習システム。
【請求項7】
エッジ装置におけるAIモデルの学習の結果を表す勾配情報を集約する連合学習システムによる連合学習方法であって、
学習によってAIモデルを生成するエッジ装置と、
前記エッジ装置から前記勾配情報を収集するサーバ装置とを備え、
前記連合学習方法は、
前記エッジ装置が、前記勾配情報を共通公開鍵で暗号化した暗号化勾配を生成し、前記生成された暗号化勾配を前記サーバ装置に送信し、
前記サーバ装置が、複数の前記エッジ装置から受信した暗号化勾配を加算して暗号化集約勾配を生成し、前記生成された暗号化集約勾配を前記エッジ装置に送信し、
前記エッジ装置が、前記暗号化集約勾配を暗号化したエッジスイッチシェアを生成し、前記生成されたエッジスイッチシェアを前記サーバ装置に送信し、
前記サーバ装置が、複数の前記エッジ装置から受信したエッジスイッチシェアを加算して、復号用暗号化集約勾配を生成し、前記生成された復号用暗号化集約勾配を復号化して集約勾配を生成して、前記エッジ装置に送信し、
前記エッジ装置が、前記サーバ装置から受信した集約勾配を用いて前記AIモデルを学習する連合学習方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、連合学習システム及び連合学習方法に関する。
【背景技術】
【0002】
機械学習の手法の一つとして、分散したエッジデバイス上のデータをサーバ上に集約せずに、各エッジデバイス上のデータに基づいたAIモデルを生成可能な機械学習方法として、連合学習が提案されている(非特許文献1)。連合学習は、エッジデバイスから元のデータを送信するのではなく、AIモデル生成に必要なデータ(例えば勾配情報)をサーバに送信することを特徴としており、それによってエッジデバイス上のデータのプライバシー保護が可能となる。
【0003】
しかし、勾配情報を秘匿化せずにサーバに送信すると、盗聴された勾配情報から元のデータを推測される可能性がある。そこで、勾配情報を秘匿化した連合学習方法が提案されている。
【0004】
非特許文献1には、Secure Multi-Party Computationと呼ばれるプロトコルに基づいて、データの秘匿性を維持しつつ、通信量を削減する技術が記載されている。非特許文献2には、勾配などのモデル更新情報を安全に集約するために、準同型暗号を用いることで安全性を向上させる技術が記載されている。準同型暗号を用いた連合学習では、暗号や復号に用いる鍵の管理が困難であり、一般的には信頼できる第三者(TTP:Trusted Third Party)によって鍵が管理される。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】B. Choi, J. yong Sohn, D.-J. Han, and J. Moon, "Communication computation efficient secure aggregation for federated learning", 2020年12月10日
【非特許文献2】R. Xu, N. Baracaldo, Y. Zhou, A. Anwar, and H. Ludwig, "Hybridalpha: An efficient approach for privacy-preserving federated learning", AISec'19: Proceedings of the 12th ACM Workshop on Artificial Intelligence and Security, Pages 13-23, 2019年11月11日
【発明の概要】
【発明が解決しようとする課題】
【0006】
非特許文献1に記載された技術では、従来より通信量を削減できるが、まだ大量の通信が必要である。また、AIモデルの学習プロセス中に、全てのエッジノードが存在している必要があるため、通信不能などによって一部のエッジノードが使用不可状態となると、学習プロセスを継続できない。
【0007】
非特許文献2では、TTPを用いて連合学習における鍵を管理することによって、二つの課題が生じる。第一に、TTPが管理している秘密鍵が漏洩したり、TTPが連合学習時のサーバと結託した場合、各エッジデバイスの勾配が復号され漏洩する可能性がある。第二に、TTPを設置することにより、通信コストが増加する。
【0008】
本発明は、TTPを設置することなく、秘匿性を向上し、通信コストを低減する連合学習システムの提供を目的とする。
【課題を解決するための手段】
【0009】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、エッジ装置におけるAIモデルの学習の結果を表す勾配情報を集約する連合学習システムであって、学習によってAIモデルを生成するエッジ装置と、前記エッジ装置から前記勾配情報を収集するサーバ装置とを備え、前記エッジ装置は、エッジ公開鍵及びエッジ秘密鍵を含むエッジキーペアを生成するエッジ鍵生成部と、前記AIモデルを学習データを用いて学習する学習部とを有し、前記サーバ装置は、復号用公開鍵及び復号用秘密鍵を含む復号用キーペアを生成するサーバ鍵生成部と、データ処理を実行する暗号・復号部とを有し、前記エッジ装置は、前記学習部において、前記勾配情報を共通公開鍵で暗号化した暗号化勾配を生成し、前記生成された暗号化勾配を前記サーバ装置に送信し、前記サーバ装置は、前記暗号・復号部において、複数の前記エッジ装置から受信した暗号化勾配を加算して、暗号化集約勾配を生成し、前記生成された暗号化集約勾配を前記エッジ装置に送信し、前記エッジ装置は、前記学習部において、前記暗号化集約勾配を暗号化したエッジスイッチシェアを生成し、前記生成されたエッジスイッチシェアを前記サーバ装置に送信し、前記サーバ装置は、前記暗号・復号部において、複数の前記エッジ装置から受信したエッジスイッチシェアを加算して、復号用暗号化集約勾配を生成し、前記生成された復号用暗号化集約勾配を復号化して集約勾配を生成して、前記エッジ装置に送信し、前記エッジ装置の前記学習部は、前記サーバ装置から受信した集約勾配を用いて前記AIモデルを学習する。
【発明の効果】
【0010】
本発明の一態様によれば、TTPを設置することなく、秘匿性を向上し、通信コストを低減できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施例の連合学習システムの全体構成を示す図である。
【
図4】エッジ秘密鍵シェア共有処理を示す図である。
【
図9】復号用暗号化集約勾配生成処理を示す図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して、本発明の実施例を説明する。本実施例に係る連合学習システムは、各エッジデバイス(以降、エッジと称すことがある)が保有する勾配情報(以降、勾配と称すことがある)をサーバで集約する際に、準同型暗号を用いることによって、各エッジの勾配を秘匿化する。これによって各エッジの勾配の安全性を高めることができる。また、復号の際には秘密分散と準同型暗号の性質を利用することによって、各エッジの秘密鍵を当該エッジ外に送信することなく安全に復号できる。
【0013】
準備段階として、AIモデルの学習処理の前に準同型暗号の暗号及び復号に用いる鍵を、サーバ及び各エッジで生成する。この際に、各エッジの秘密鍵にから生成されたシェア情報(以降、シェアと称すことがある)を生成し、生成されたシェアを各エッジで分散共有する。このシェアはAIモデルの学習処理の過程で生成された集約した勾配を復号する際に使用する。また、この時に使用する復号用キーペアを生成し、各エッジに送信する。また、各エッジの公開鍵を集約して生成される共通公開鍵をサーバで生成後、共通公開鍵を各エッジに送信する。
【0014】
AIモデルの学習処理の際は、各エッジの学習データに基づいて深層学習等により勾配を求める。次に、各エッジの勾配を前述の共通公開鍵によって暗号化し、サーバに送信する。各エッジの勾配をサーバで集約する際には、準同型暗号の性質を利用し、各エッジの勾配を単に加算することで、暗号化された状態で集約した勾配を生成できる。集約勾配を復号して各エッジに送り返す際には、各エッジから得た秘密分散のためのシェア情報、復号用キーペア、暗号化された集約勾配、及び各エッジの再構築係数によって集約勾配を求める。各エッジは、集約勾配に基づいてAIモデルを更新する。これにより、各エッジは、秘匿性を保ったまま安全に勾配をサーバに送信し、かつ他のエッジの勾配内容も加味したAIモデルを生成できる。
【0015】
図1~
図9を参照して本発明の実施例を説明する。本実施例は、本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0016】
以後の説明では「コンピュータプログラム」を主語として説明する場合がある。コンピュータプログラムは、プロセッサによって実行されることで、メモリ及び通信ポート(通信制御装置)を用いながら所定の処理を実行する。従って、コンピュータプログラムに代えてプロセッサを主語として説明できるし、プロセッサを有する計算機を主語としても説明できる。
【0017】
なお、コンピュータプログラムの少なくとも一部または全部を専用ハードウェアで実現してもよい。コンピュータプログラムは、モジュール化されていてもよい。コンピュータプログラムは、記録媒体に固定されて流通してもよいし、又は、プログラム配信サーバから通信ネットワークを介して配布されてもよい。プロセッサがコンピュータプログラムを読み込んで処理を実行することによって、後述する機能が実現される。
【0018】
また、以後の説明では、特に説明が無い限り、公開鍵暗号方式は全て完全準同型暗号のスキームを前提とし、全準同型暗号のスキームにはBFVの使用を前提とし、以降説明する。
【0019】
図1は、連合学習システム1の全体構成を示す図である。
【0020】
連合学習システム1は、例えば、サーバ2と、複数のエッジ3とを有する。各エッジ3は、秘匿性が保証されないネットワーク(例えばインターネット)4を通してサーバ2と通信できる。本実施例ではエッジの台数を4台としているが、2台以上の任意の台数でよい。
【0021】
図2は、サーバ2のハードウェア及びソフトウェアの構成例を示すブロック図である。
【0022】
サーバ2は、例えば、入出力装置21と、中央演算装置22と、通信制御装置23と、記憶装置24とを有する。
【0023】
入出力装置21は、ユーザとの間で情報を入出力する装置である。入出力装置21は、情報入力装置211と情報出力装置212とを有する。情報入力装置211としては、例えば、キーボード、マウス、タッチパネル(いずれも不図示)などがある。情報出力装置212としては、例えば、ディスプレイ、プリンタ(いずれも不図示)などがある。情報入力装置と情報出力装置との両方を兼ね備える装置でもよい。なお、入出力装置21は、サーバ2にネットワーク4を介して接続された端末でもよい。この場合、サーバ2がウェブサーバの機能を有し、端末がサーバ2に所定のプロトコル(例えばhttp)でアクセスし、端末のウェブブラウザが表示機能を実現する。また、端末が専用アプリケーションを実行し、表示機能を実現してもよい。また、入出力装置21は、サーバ2による演算の結果を他の計算機システムに出力するインターフェースでもよい。このように、入出力装置21は様々な形態を採用できる。
【0024】
中央演算装置22は、マイクロプロセッサ及びプログラムメモリ(いずれも不図示)を有し、連合学習システム1として機能するための必要な演算処理及び制御処理などを実行する。中央演算装置22は、所定のコンピュータプログラム221~223を実行する。なお、マイクロプロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。プログラムメモリは、マイクロプロセッサが実行するプログラムを格納する記憶装置で、不変のプログラム(例えば、BIOS)などを格納し、不揮発性の記憶素子であるROM、及びDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であるRAMを含む。
【0025】
制御プログラム221は、サーバ2及び各エッジ3における連携処理を制御し、サーバ2から各エッジ3への処理を指示及び管理する。
【0026】
サーバ鍵生成プログラム222は、エッジ3から取得したエッジキーペア341のエッジ公開鍵から、共通公開鍵241を生成する。また、サーバ鍵生成プログラム222は、後述する復号用暗号化集約勾配244を復号するための復号用キーペア242を生成し、復号用キーペア242に含まれる公開鍵を各エッジ3に送信する。
【0027】
サーバ暗号復号プログラム223は、通信可能なエッジであるアクティブエッジを判定し、アクティブエッジから取得した暗号化エッジ勾配346からアクティブ暗号化集約勾配243を生成する。また、集約勾配245を求めるために、アクティブエッジの中から復号用エッジを選定し、アクティブ暗号化集約勾配243と当該エッジの再構築係数347を、選定された復号用エッジに送信する。また、復号用エッジとなるエッジ3からエッジスイッチシェア348を受信し、エッジスイッチシェア348と復号用キーペア242の秘密鍵から集約勾配245を生成し、各エッジ3に送信する。
【0028】
通信制御装置23は、ネットワーク4を介して各エッジ3との通信を制御するネットワークインターフェース装置である。
【0029】
記憶装置24は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、中央演算装置22での処理対象となるデータと処理後のデータ等とを格納する装置である。記憶装置24は、例えば、共通公開鍵241と、復号用キーペア242と、アクティブ暗号化集約勾配243と、復号用暗号化集約勾配244と、集約勾配245とを格納する。共通公開鍵241は、各エッジ3から取得したエッジキーペア341の公開鍵を加算して生成され、各エッジ3の勾配を暗号化する際に用いられる。復号用キーペア242は、エッジスイッチシェア348の生成と、エッジスイッチシェア348から集約勾配245を求める際に用いられる。アクティブ暗号化集約勾配243は、暗号化エッジ勾配346から生成される。復号用暗号化集約勾配244は、集約勾配245を求める際に用いられる。集約勾配245は、各エッジ3においてAIモデル349を生成するために用いられる。
【0030】
中央演算装置22が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク4を介してサーバ2に提供され、非一時的記憶媒体である不揮発性のプログラムメモリに格納される。このため、サーバ2は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0031】
サーバ2は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、制御プログラム221、サーバ鍵生成プログラム222、サーバ暗号復号プログラム223は、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
【0032】
図3は、エッジ3のハードウェア及びソフトウェアの構成例を示すブロック図である。
【0033】
エッジ3は、例えば、入出力装置31と、中央演算装置32と、通信制御装置33と、記憶装置34とを有する。
【0034】
入出力装置31は、ユーザとの間で情報を入出力する装置である。入出力装置31は、情報入力装置311と情報出力装置312とを有する。情報入力装置311としては、例えば、キーボード、マウス、タッチパネル(いずれも不図示)などがある。情報出力装置312としては、例えば、ディスプレイ、プリンタ(いずれも不図示)などがある。情報入力装置と情報出力装置との両方を兼ね備える装置でもよい。なお、入出力装置31は、エッジ3にネットワークを介して接続された端末でもよい。この場合、エッジ3がウェブサーバの機能を有し、端末がエッジ3に所定のプロトコル(例えばhttp)でアクセスし、端末のウェブブラウザが表示機能を実現する。また、端末が専用アプリケーションを実行し、表示機能を実現してもよい。また、入出力装置31は、エッジ3による演算の結果を他の計算機システムに出力するインターフェースでもよい。このように、入出力装置31は様々な形態を採用できる。
【0035】
中央演算装置32は、マイクロプロセッサ及びプログラムメモリ(いずれも不図示)を有し、連合学習システム1として機能するための必要な演算処理及び制御処理などを実行する。中央演算装置32は、所定のコンピュータプログラム321~322を実行する。なお、マイクロプロセッサがプログラムを実行して行う処理の一部を、他の演算装置(例えば、ASIC、FPGA等のハードウェア)で実行してもよい。プログラムメモリは、マイクロプロセッサが実行するプログラムを格納する記憶装置で、不変のプログラム(例えば、BIOS)などを格納し、不揮発性の記憶素子であるROM、及びDRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であるRAMを含む。
【0036】
エッジ鍵生成プログラム321は、各エッジ3においてエッジキーペア341を生成し、エッジキーペア341の秘密鍵からエッジ秘密鍵シェア342を生成し、エッジ秘密鍵シェア342からエッジシェア343を生成する。
【0037】
学習プログラム322は、各エッジ3における学習データ344に対して機械学習する過程でエッジ勾配345を生成し、サーバ2から取得した共通公開鍵241で暗号化し暗号化エッジ勾配346を生成してサーバ2に送信する。復号用に選定された各エッジ3は、エッジスイッチシェア348を生成し、サーバ2に送信する。サーバ2は、エッジスイッチシェア348とエッジキーペア341の秘密鍵から集約勾配245を生成し、各エッジ3に送信する。エッジ3は、サーバ2から取得した集約勾配245に基づいてAIモデル349を更新する処理を実行する。
【0038】
通信制御装置33は、ネットワーク4を介してサーバ2及び他のエッジ3との通信を制御するネットワークインターフェース装置である。
【0039】
記憶装置34は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置であり、中央演算装置32での処理対象となるデータと処理後のデータ等とを格納する装置である。記憶装置34は、例えば、エッジキーペア341と、エッジ秘密鍵シェア342と、エッジシェア343と、学習データ344と、エッジ勾配345と、暗号化エッジ勾配346と、再構築係数347と、エッジスイッチシェア348と、AIモデル349とを格納する。エッジキーペア341は、各エッジ3で個別に生成され、公開鍵と秘密鍵で構成され、公開鍵はサーバ2で共通公開鍵241を生成するために用いられる。秘密鍵は、エッジ秘密鍵シェア342を生成するために用いられる。エッジ秘密鍵シェア342は、エッジシェア343を生成するために用いられる。エッジシェア343は、エッジスイッチシェア348を生成するために用いられる。学習データ344は、処理開始前に記憶装置34に格納されており、AIモデル349を学習するために用いられ、各エッジ3で通常は異なるデータセットを持つ。エッジ勾配345は、AIモデル349の学習過程で発生するデータである。暗号化エッジ勾配346は、エッジ勾配345をサーバ2の共通公開鍵241で暗号化したデータである。再構築係数347は、エッジ秘密鍵シェア342を含むエッジシェア343から共通秘密鍵を再構築するために必要な値であり(式(2)で後述する)、サーバ2から送信され、エッジスイッチシェア348を生成するために用いられる。エッジスイッチシェア348は、アクティブ暗号化集約勾配243と再構築係数347とエッジ秘密鍵シェア342と復号用キーペア242の公開鍵に基づいて生成される。AIモデル349は、各エッジ3における学習データ344を学習する過程で生成されるエッジ勾配345をサーバ2で集約して生成される集約勾配245に基づいて更新され、AIアプリケーション等への活用が可能である。
【0040】
中央演算装置32が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワークを介してエッジ3に提供され、非一時的記憶媒体である不揮発性のプログラムメモリに格納される。このため、エッジ3は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0041】
エッジ3は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、エッジ鍵生成プログラム321、学習プログラム322は、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
【0042】
<連合学習システムが実行する処理の概要>
連合学習システム1の処理概要を説明する。サーバ2の制御プログラム221が連合学習の開始を各エッジ3に指示すると、各エッジ3の中央演算装置32は、エッジ鍵生成プログラム321を起動して、各エッジ3の準同型暗号の公開鍵暗号方式のキーペアであるエッジキーペア341を生成し、記憶装置34に格納する。また、各エッジ3は、エッジキーペア341の公開鍵をサーバ2に送信する。次に、各エッジ3は、エッジキーペア341の秘密鍵から、エッジ秘密鍵シェア342を生成し、記憶装置34に格納する。また、各エッジ3がエッジ秘密鍵シェア342をサーバ2に送信すると、サーバ2は他のエッジ3にエッジ秘密鍵シェア342を送信する。なお、エッジ秘密鍵シェア342の他のエンジ3への送信は、サーバ2を介さず、エッジ3の間で直接送信してもよい。次に、各エッジ3は、自己のエッジ秘密鍵シェア342と受信したエッジ秘密鍵シェア342との加算によってエッジ秘密鍵シェア342からエッジシェア343を生成し、記憶装置34に格納する。
【0043】
サーバ2のサーバ鍵生成プログラム222は、各エッジ3から取得したエッジキーペア341の公開鍵から、共通公開鍵241を生成し、記憶装置24に格納する。また、サーバ2は、共通公開鍵241を各エッジ3に送信する。次に、サーバ2は、復号用暗号化集約勾配244の復号に用いる準同型暗号の公開鍵暗号方式のキーペアである復号用キーペア242を生成し、記憶装置24に格納する。また、サーバ2は、復号用キーペア242の公開鍵を各エッジ3に送信する。
【0044】
次に、各エッジ3の中央演算装置32は、サーバ2からの学習処理指示を受け取ると、学習プログラム322を起動して、事前に格納されている学習データ344に基づいて機械学習を行う。この時点で各エッジ3にはAIモデル349が格納されており、各エッジ3のAIモデル349は全て同一である。各エッジ3は、学習処理の過程でエッジ勾配345を生成し、生成したエッジ勾配345を記憶装置34に格納し、共通公開鍵241を用いてエッジ勾配345を暗号化して暗号化エッジ勾配346を生成し、記憶装置34に格納する。次に、各エッジ3は、暗号化エッジ勾配346をサーバ2に送信する。
【0045】
サーバ2のサーバ暗号復号プログラム223は、各エッジ3の暗号化エッジ勾配346を受信すると、アクティブ暗号化集約勾配243を生成し記憶装置24に格納する。この時、応答がなかったエッジ3の暗号化エッジ勾配346は使用されない。次に、サーバ2は暗号化エッジ勾配346の送信元となるエッジ3(アクティブエッジ)を確認する。また、アクティブエッジの中からアクティブ暗号化集約勾配243を復号する際に用いるエッジ3である復号用エッジを選定する。アクティブ暗号化集約勾配243と当該エッジ3に対応する再構築係数347を、選定された復号用エッジに送信する。
【0046】
各復号用エッジの学習プログラム322は、サーバ2からアクティブ暗号化集約勾配243と再構築係数347を受信し、再構築係数347を記憶装置34に格納する。また、アクティブ暗号化集約勾配243と再構築係数347とエッジシェア343から、復号用キーペア242の公開鍵を用いてエッジスイッチシェア348を生成し、記憶装置34に格納する。また、エッジスイッチシェア348をサーバ2に送信する。
【0047】
サーバ2のサーバ暗号復号プログラム223は、各復号用エッジから受信した、エッジスイッチシェア348に基づいて、復号用暗号化集約勾配244を生成し、記憶装置24に格納する。次に、サーバ2は、復号用暗号化集約勾配244と復号用キーペア242の秘密鍵から、集約勾配245を生成し、記憶装置24に格納する。また、サーバ2は、集約勾配245を各エッジ3に送信する。
【0048】
各エッジ3の学習プログラム322は、サーバ2から受信した集約勾配245に基づいてAIモデル349を更新する。この時、学習終了の条件を満たしていれば処理を終了し、条件を満たしていなければ、サーバ2は各エッジ3に対して再度学習処理を指示する。
【0049】
<鍵生成処理>
図7は、鍵生成処理のフローチャートである。
【0050】
S701において、制御プログラム221は、各エッジ3に鍵生成を指示する。以下では、
図4のようにエッジ3が、4台のエッジA~Dで構成されている例を説明する。鍵生成処理の時点では、4台のエッジ3は全て稼働している。
【0051】
S702において、4台のエッジ3のそれぞれが鍵生成指示を受信すると、各エッジ3のエッジ鍵生成プログラム321は、エッジキーペア341を生成し、サーバ2にエッジキーペア341の公開鍵を送信する。サーバ2が各エッジ3のエッジキーペア341の公開鍵を受信すると、サーバ鍵生成プログラム222は、各エッジ3に各エッジキーペア341の公開鍵を送信する。
【0052】
S703において、各エッジ3のエッジ鍵生成プログラム321が、シャミアの秘密分散法に基づいてエッジキーペア341の秘密鍵からエッジ秘密鍵シェア342を生成する。シャミアの秘密分散法とは、1979年にShamirらによって提案された技術である。シャミアの秘密分散法では、秘密情報を複数のシェアと呼ばれるデータに分割する。このシェアは、ある定められた組み合わせが揃った場合に元の秘密情報が復元できるように作られる。最も単純な方法は、(k,n)閾値法である。本実施例では(k,n)閾値法に基づいて以下説明する。(k,n)閾値法では、n個のシェアのうち、閾値k個以上のシェアが揃った時に、元の秘密情報が復元できるようにシェアが作られる。すなわち、k-1以下のシェアでは元の秘密情報が漏れないことが保証される。
図4において、s11、s12、s13、s14は、それぞれエッジAの秘密鍵から生成されたエッジ秘密鍵シェア342である。s11、s12、s13、s14のうち、ある閾値以上の個数が集まればエッジAの秘密鍵を求めることができる。
図4の場合は、s12をエッジBに送信し、s13をエッジCに送信し、s14をエッジDに送信する。これにより、エッジAの秘密鍵が複数のエッジ3で秘密分散される。これはすなわち、各エッジ3で互いの秘密鍵のシェアを分散共有することで、TTPを設置することを不要にしている。別のエッジ3にエッジ秘密鍵シェア342を送信する場合、サーバ2が保持している各エッジ3のエッジキーペア341の公開鍵で暗号化してサーバ2経由で送信する。受信したエッジ3では、当該エッジ3のエッジキーペア341の秘密鍵を用いて復号する。これによりエッジ秘密鍵シェア342を安全に送信できる。
【0053】
S704において、まず、各エッジ3のエッジ鍵生成プログラム321は、シャミアの秘密分散法に基づいてエッジ秘密鍵シェア342からエッジシェア343を生成する。
図4において、s’1、s’2、s’3、s’4はそれぞれエッジシェア343である。例えば、s’1は、エッジAのエッジ秘密鍵シェアs11、エッジBのエッジ秘密鍵シェアs12、エッジCのエッジ秘密鍵シェアs13、及びエッジDのエッジ秘密鍵シェアs14の和で計算できる。次に、各エッジシェア343をサーバ2に送信する。エッジシェア343は、各エッジ3の秘密鍵のシェアで構成されているため、エッジシェア343を一定数以上集約することで、共通公開鍵241で暗号化された情報を復号することができる。またこの時、各エッジ3のエッジキーペア341の秘密鍵を当該エッジ3外に出す必要がないため当該エッジ3におけるエッジ勾配345は秘匿状態を維持できる。
【0054】
S705において、サーバ2は、
図5に示すように、制御プログラム221が受信した各エッジ3のエッジキーペア341の公開鍵pk1、pk2、pk3、pk4から共通公開鍵(cpk)241を生成する。例えば、共通公開鍵cpkは、公開鍵の和pk1+pk2+pk3+pk4で生成できる。共通公開鍵241は、各エッジ3におけるエッジ勾配345を暗号化する際に用いられる。また、生成された共通公開鍵241を各エッジ3に送信する。
【0055】
S706において、サーバ2は、復号用暗号化集約勾配244を復号するための、公開鍵暗号のキーペアである復号用キーペア242を生成する。また、復号用キーペア242の公開鍵を各エッジ3に送信する。
【0056】
<学習処理>
図8は、学習処理のフローチャートである。
【0057】
S801において、制御プログラム221は、各エッジ3に対して学習処理を指示する。以下では、
図6に示すように、鍵生成処理と同様に、エッジ3が、4台のエッジA~Dで構成されている例を説明する。この時、エッジAとエッジBとエッジCは正常に動作しているアクティブエッジであり、エッジDは通信障害や不具合などによって正常に動作していない非アクティブエッジである。本実施例では、シャミアの秘密分散法と準同型暗号を利用することで、学習処理の途中で一部のエッジ3が非アクティブエッジとなった場合でも学習を継続できる。
【0058】
S802において、各エッジ3が学習処理指示を受信すると、各エッジ3の学習プログラム322が、学習データ344を読み込み、機械学習処理を実行する。機械学習処理の過程でAIモデル349を更新する際に用いられる勾配情報を表すエッジ勾配345が出力される。この時、4台のエッジ3の中に非アクティブエッジが含まれていた場合は、当該エッジ3では機械学習処理は実行されない。すなわち、エッジDでは、この時点では機械学習処理は実行されない。
【0059】
S803において、各エッジ3の学習プログラム322が、共通公開鍵241を用いてエッジ勾配345を暗号化し、暗号化エッジ勾配346を生成し、サーバ2に送信する。
【0060】
S804において、サーバ2のサーバ暗号復号プログラム223は、各エッジ3から受信した暗号化エッジ勾配346からアクティブ暗号化集約勾配243を生成する。公開鍵pkを用いてxを準同型暗号で暗号化することを、Enc(pk,x)と表すと、Enc(pk,x)+Enc(pk,y)=Enc(pk,x+y)となる性質を利用し、各エッジ3の暗号化エッジ勾配346の和は、各エッジ勾配345の和を暗号化した結果と等しくなる。
図6に示す場合、エッジAとエッジBとエッジCがアクティブエッジであるため、アクティブ暗号化集約勾配(ct)243は、この3台のエッジ3から収集した暗号化エッジ勾配346の和によって、すなわち、Enc(cpk,g1)+Enc(cpk,g2)+Enc(cpk,g3)=Enc(cpk,g1+g2+g3)によって生成される。
【0061】
S805において、サーバ2のサーバ暗号復号プログラム223は、アクティブエッジを確認する。
図6に示す場合、エッジAとエッジBとエッジCがアクティブエッジである。また、アクティブ暗号化集約勾配243を復号するために用いるアクティブエッジを選定する。例えば、
図9に示すように、エッジAとエッジCが復号用エッジとして選定される。各アクティブエッジにおいて、AIモデル349の更新に必要な集約勾配245を求めるためには、アクティブ暗号化集約勾配243を復号する必要があり、復号には暗号化時に使用した共通公開鍵241に対応する共通秘密鍵が必要である。しかし、共通秘密鍵は求めることができない。なぜなら、共通秘密鍵を生成するためには、各エッジ3のエッジキーペア341の秘密鍵をサーバ2に集約する必要があるが、その場合は、各エッジ3のエッジ勾配345をサーバ2が取得できることになり、エッジ勾配345の秘匿性が失われてしまう。そのため、各エッジ3のエッジキーペア341の秘密鍵は当該エッジ3のみが保持する。そこで本実施例では、シャミアの秘密分散法によって、共通秘密鍵を用いることなく集約勾配245を求める。本実施例では、シャミアの秘密分散法において、復号に必要な数である閾値を2として以降説明する。閾値が2の場合、アクティブエッジの中から任意の2台のエッジ3から収集した後述するエッジスイッチシェア348を用いればアクティブ暗号化集約勾配243を復号できる。本実施例では、エッジAとエッジCを復号のためのエッジ3(以降、復号用エッジと称すことがある)として選定した例を説明する。
【0062】
S806において、サーバ2のサーバ暗号復号プログラム223が、アクティブ暗号化集約勾配243と当該エッジ3に対応する再構築係数347を復号用エッジ(エッジA、エッジC)に送信する。なお、各復号用エッジに対応する再構築係数347は、復号用エッジであるエッジAとエッジCに対するVandermonde行列から求められる。
【0063】
S807において、各復号用エッジの学習プログラム322が、アクティブ暗号化集約勾配243と再構築係数347とエッジシェア343と復号用キーペア242の公開鍵から、エッジスイッチシェア(ks1、ks3)348を生成し、サーバ2に送信する。エッジスイッチシェア348を生成する目的について説明する。アクティブ暗号化集約勾配243を復号するためには、通常の場合、暗号化時に使用した共通公開鍵241と対になる共通秘密鍵が必要になるが、単純に共通秘密鍵を生成してしまうとアクティブ暗号化集約勾配243だけでなく、暗号化エッジ勾配346も復号できることになり、エッジ勾配345の秘匿性が失われてしまう。そこで、エッジスイッチシェア348を生成し、生成の際にアクティブ暗号化集約勾配243の復号に必要なエッジシェア343も含めて復号用キーペア242の公開鍵で暗号化する。前述したように、エッジシェア343は各エッジ3の秘密鍵のシェアで構成されている。このため、エッジシェア343から生成されたエッジスイッチシェア348を集約して、復号用キーペア242の秘密鍵で復号することで、共通秘密鍵を生成することなく、アクティブ暗号化集約勾配243を復号できる。これにより、エッジ勾配345の秘匿性を維持したまま、アクティブ暗号化集約勾配243を復号できる。エッジスイッチシェア348の生成方法の詳細は後述する。
【0064】
S808において、サーバ2が各復号用エッジからエッジスイッチシェア(ks1、ks3)348を受信すると、サーバ暗号復号プログラム223が、受信したエッジスイッチシェア348から、復号用暗号化集約勾配(Ct’)244を生成する。本実施例では、エッジスイッチシェアks1、ks3を加算して、復号用暗号化集約勾配ct’を生成する。次に、復号用暗号化集約勾配244と復号用キーペア242の秘密鍵から集約勾配245を求める。次に、全エッジ3に集約勾配245を送信する。この時、一部のエッジとの間で通信不可となった場合には、サーバ2は、全てのエッジ3が受信可能になるまで処理を中断する。また、通信不可となったエッジ3の情報を蓄積し、S809のAIモデル349の更新のタイミングで、過去の集約勾配245を順に送信して、各エッジ3のAIモデル349に適用するとよい。これにより全てのエッジ3のAIモデル349を常に同一に保つことができる。
【0065】
S807とS808の処理について、より詳細に説明する。エッジスイッチシェア348は、アクティブ暗号化集約勾配243を生成する際に用いられた共通公開鍵241に対応する共通秘密鍵の要素となる各エッジ3のエッジシェア343と、当該エッジシェア343に対応する再構築係数347を内包している。このことから、アクティブエッジの数が前述した閾値k以上であれば、共通秘密鍵なしに集約勾配245を求めることができる。
【0066】
より具体的には、アクティブ暗号化集約勾配243をct=(c0,c1)、復号用暗号化集約勾配244をct’、共通秘密鍵をs、エッジiの再構築係数347をri、エッジiのエッジシェア343をs’i、復号用キーペア242の公開鍵をtpk=(p’0,p’1)、復号用キーペア242の秘密鍵をtsk、全エッジ3の集合をP、各復号用エッジのエッジスイッチシェア348をksi=(h0,i,h1,i)として説明する。
【0067】
前述したように、集約勾配245を求めるためには、共通公開鍵241に対応する共通秘密鍵が必要であるが、共通秘密鍵を使用できない。そこで、式(1)の左辺のように、エッジスイッチシェア348を復号用エッジ分だけ加算して、復号用暗号化集約勾配(ct’)244を生成し、復号用キーペア242の秘密鍵tskで復号することを考える。なお、BFV.Decrypt(sk,x)は、準同型暗号スキームBFVにおいて、xを秘密鍵skで復号することを表す。
【0068】
【0069】
これは、復号用暗号化集約勾配(ct’)244を復号用キーペア242の秘密鍵tskで復号すれば、アクティブ暗号化集約勾配(ct)243をsで復号した結果、すなわち集約勾配245を得られることを意味する。そこで、まず復号用暗号化集約勾配(ct’)244を求める処理を行う。復号用暗号化集約勾配(ct’)244を求めるために、シャミアの秘密分散法に基づき、まず以下の式(2)からエッジスイッチシェア(ksi)348を求める。ここで、uiはランダムサンプリングで生成された値である。e0,i、e1,iはRLWEのノイズ分布に基づいてサンプリングされた値である。すなわち式(2)は、エッジスイッチシェア(ksi)348がct,ri,tpk,s’iから生成されることを表す。
【0070】
【0071】
サーバ2では、各復号用エッジから収集したエッジスイッチシェア(ksi)348から以下の式(3)により復号用暗号化集約勾配(ct’)244を求める。
【0072】
【0073】
最後に、サーバ2は、復号用暗号化集約勾配(ct’)244を復号用キーペア242の秘密鍵で復号して、集約勾配245を求めることができる。エッジスイッチシェア348は、共通公開鍵241と復号用キーペア242の公開鍵tpkで暗号化されているところ、エッジスイッチシェア348を集約した復号用暗号化集約勾配(ct’)244を復号することによって、式(3)のΣih0,iの項から共通秘密鍵を構築でき、共通公開鍵241による暗号化も復号される。このようにすることで、各エッジ3におけるエッジキーペア341の秘密鍵を当該エッジ3の外に出すことなく、共通秘密鍵のみを抽出されることもなく、サーバ2において集約勾配245を求めることができる。
【0074】
S809において、各エッジ3ではそれぞれ学習プログラム322が、サーバ2から受信した集約勾配245に基づいて、AIモデル349を更新する。S808でも説明したように、本発明では、S808の時点で一部のエッジ3が通信不可となった場合でも、後に集約勾配245を送信することによって、AIモデル349を同一に保つことができる。また、AIモデル349を同一に保つ必要がなければ、通信不可となったエッジ3に対して、そのタイミングで送信された集約勾配245を破棄してもよい。
【0075】
S810において、各エッジ3の学習プログラム322は、学習終了か否かを判定する。学習終了でなければS801に戻る。学習終了であれば処理を終了する。学習終了か否かは、例えば機械学習で用いられる損失関数で出力される値が一定以下となった場合とするなど、様々な手段が適用可能である。
【0076】
なお、本実施例では、連合学習において勾配が加算可能であることから、準同型暗号の加算可能な性質を利用したが、準同型暗号の乗算可能な性質を利用した応用も可能である。
【0077】
以上に説明したように、本実施例の連合学習システム1では、エッジ3は、エッジ公開鍵及びエッジ秘密鍵を含むエッジキーペア341を生成するエッジ鍵生成部(エッジ鍵生成プログラム321)と、AIモデル349を学習データ344によって学習する学習部(学習プログラム322)とを有し、サーバ2は、復号用公開鍵及び復号用秘密鍵を含む復号用キーペア242を生成するサーバ鍵生成部(サーバ鍵生成プログラム222)と、データ処理を実行する暗号・復号部(サーバ暗号復号プログラム223)とを有し、学習プログラム322は、AIモデル349の学習の結果を表すエッジ勾配345を共通公開鍵で暗号化した暗号化エッジ勾配346をサーバ2に送信し、サーバ暗号復号プログラム223は、複数のエッジ3から受信した暗号化エッジ勾配346を加算して、アクティブ暗号化集約勾配243を生成し、エッジ3に送信し、学習プログラム322は、アクティブ暗号化集約勾配243を暗号化したエッジスイッチシェア348を生成し、サーバ2に送信し、サーバ暗号復号プログラム223は、複数のエッジ3から受信したエッジスイッチシェア348を加算して、復号用暗号化集約勾配244を生成し、復号用暗号化集約勾配244を復号用キーペア242の秘密鍵を用いて復号化して集約勾配245を生成して、エッジ3に送信し、学習プログラム322は、サーバ2から受信した集約勾配245を用いてAIモデル349を学習するので、TTPを設置することなく、各エッジ3の勾配情報を秘匿化したままサーバ2に集約でき、他のエッジ3の学習データ344も考慮したAIモデル349を生成できる。また、各エッジ3の秘密鍵を外部に送信する必要がないため、各エッジ3の勾配情報は当該エッジ3のみで復号でき、TTPを設置した場合に比べて秘匿性を向上できる。また、AIモデル349の学習時に各エッジ3はサーバ2のみと通信するため、通信コストを低減できる。さらに、学習処理の過程で一部のエッジ3が動作不能になる場合でも学習処理を継続できる。
【0078】
また、暗号化エッジ勾配346を加算した結果は、エッジ勾配345を加算して暗号化した結果に等しくなるので、エッジ勾配345を暗号化により秘匿化したまま集約できる。
【0079】
また、エッジ鍵生成プログラム321は、シャミアの秘密分散法に基づいて、生成されたエッジキーペア341の秘密鍵からエッジ秘密鍵シェア342を生成し、複数のエッジ3が生成したエッジ秘密鍵シェア(例えば、自エッジ3が生成したエッジ秘密鍵シェアと他のエッジ3が生成したエッジ秘密鍵シェア)を加算して、エッジシェア343を生成するので、各エッジ3の秘密鍵を外部に送信する必要がないため、各エッジ3の勾配情報は当該エッジ3のみで復号でき、TTPを設置した場合に比べて秘匿性を向上できる。
【0080】
また、エッジ鍵生成プログラム321は、シャミアの秘密分散法に基づいて、エッジ秘密鍵からエッジ秘密鍵シェア342を生成し、複数のエッジ3が生成したエッジ秘密鍵シェア342を加算して、エッジシェア343を生成するので、エッジ秘密鍵を公開することなく、複数のエッジで鍵を分散管理でき、TTPを設置した場合に比べて秘匿性を向上できる。
【0081】
また、学習プログラム322は、アクティブ暗号化集約勾配243、エッジシェア343及び再構築係数347を復号用キーペアの公開鍵tpkを用いて暗号化して、エッジスイッチシェア348を生成するので、共通秘密鍵を構築可能な要素を複数のエッジで分散管理でき、共通秘密鍵の秘匿性を担保でき、各エッジ3の勾配情報を秘匿できる。
【0082】
また、サーバ暗号復号プログラムは、所定数(例えば(k,n)閾値法における閾値k)以上の数のノード3からエッジスイッチシェア348を受信し、受信したエッジスイッチシェア348を加算して復号用暗号化集約勾配244を生成し、生成された復号用暗号化集約勾配244を復号用キーペア242の秘密鍵を用いて復号化して集約勾配245を生成して、エッジスイッチシェアを送信したエッジ3に送信するので、一部のエッジが動作不能になっても学習処理を継続できる。
【0083】
また、サーバ暗号復号プログラムは、生成された復号用暗号化集約勾配244を復号化する処理において、共通秘密鍵を構築して、共通公開鍵による暗号化の復号化によって、エッジ勾配345が集約された集約勾配245を生成するので、共通秘密鍵を外部に取り出すことなく、共通公開鍵で暗号化された暗号化エッジ勾配346を集約して生成される復号用暗号化集約勾配ct’(244)を復号して集約勾配245を生成でき、共通秘密鍵の秘匿性を担保でき、各エッジ3の勾配情報を秘匿できる。
【0084】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0085】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0086】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0087】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0088】
1 連合学習システム
2 サーバ
3 エッジ
4 ネットワーク
21 入出力装置
22 中央演算装置
23 通信制御装置
24 記憶装置
31 入出力装置
32 中央演算装置
33 通信制御装置
34 記憶装置
211 情報入力装置
212 情報出力装置
221 制御プログラム
222 サーバ鍵生成プログラム
223 サーバ暗号復号プログラム
241 共通公開鍵
242 復号用キーペア
243 アクティブ暗号化集約勾配
244 復号用暗号化集約勾配
245 集約勾配
311 情報入力装置
312 情報出力装置
321 エッジ鍵生成プログラム
322 学習プログラム
341 エッジキーペア
342 エッジ秘密鍵シェア
343 エッジシェア
344 学習データ
345 エッジ勾配
346 暗号化エッジ勾配
347 再構築係数
348 エッジスイッチシェア
349 AIモデル