(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】相関係数取得方法、装置、電子機器および記憶媒体
(51)【国際特許分類】
H04L 9/30 20060101AFI20241016BHJP
G09C 1/00 20060101ALI20241016BHJP
【FI】
H04L9/30 Z
G09C1/00 650Z
(21)【出願番号】P 2023015662
(22)【出願日】2023-02-03
【審査請求日】2023-02-03
(31)【優先権主張番号】202210116753.3
(32)【優先日】2022-02-07
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】512015127
【氏名又は名称】バイドゥ オンライン ネットワーク テクノロジー(ペキン) カンパニー リミテッド
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100135079
【氏名又は名称】宮崎 修
(72)【発明者】
【氏名】彭 勝波
(72)【発明者】
【氏名】周 吉文
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2013-205796(JP,A)
【文献】安田雅哉 他,複数企業が持つ購買履歴データクラウド秘匿集計,2012年 暗号と情報セキュリティシンポジウム予稿集,2012年,pp.1-8
【文献】YASUDA, M., et al.,Secure Statistical Analysis Using RLWE-Based Homomorphic Encryption,Lecture Notes in Computer Science, Vol.9144,2015年, pp.471-487
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/30
G09C 1/00
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
第1参加ノードに適用される相関係数取得方法であって、
第1元データを取得し、前記第1参加ノードと第2参加ノードで互いに決めた関連鍵を用いて前記第1元データを準同型暗号化し、第1伝送データを確定することと、
補助ノードが前記第1伝送データを受信し、前記第1伝送データおよび第2伝送データを準同型演算して前記第1元データと第2元データとの間の相関係数を取得するように、前記第1伝送データを補助ノードに送信し、前記第2伝送データが、前記第2参加ノードによって前記関連鍵を用いて前記第2元データを準同型暗号化することで確定されることと、
前記補助ノードからフィードバックされる前記相関係数を受信することとを含
み、
関連鍵を用いて前記第1元データを準同型暗号化し、第1伝送データを確定することは、
関連鍵を用いて前記第1元データを準同型暗号化し、準同型暗号化された第1元データを取得することと、
前記第1元データおよび前記相関係数の計算式に基づいて第1中間データを計算することと、
前記関連鍵を用いて前記第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得することと、
前記準同型暗号化された第1元データおよび前記準同型暗号化された第1中間データを第1伝送データとして確定することと、を含む、
相関係数取得方法。
【請求項2】
関連鍵を用いて前記第1元データを準同型暗号化することは、
関連鍵に基づいて第1乱数を計算することと、
前記第1乱数に基づいて前記第1元データを準同型暗号化することと、を含む、
請求項1に記載の方法。
【請求項3】
関連鍵を用いて前記第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得することは、
前記関連鍵に基づいて第2乱数を計算することと、
前記第2乱数に基づいて前記第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得することと、を含む、
請求項
1に記載の方法。
【請求項4】
前記第1中間データは、前記第1元データの期待および/または分散を含む、
請求項
1に記載の方法。
【請求項5】
前記準同型暗号化された第1元データおよび前記準同型暗号化された第1中間データを第1伝送データとして確定することは、
前記補助ノードから送信される公開鍵を取得することと、
前記公開鍵に基づいて前記準同型暗号化された第1中間データを暗号化し、前記準同型暗号化された第1元データおよび公開鍵暗号化された第1中間データを第1伝送データとして確定し、前記補助ノードに前記公開鍵暗号化された第1中間データを秘密鍵で復号させ、前記準同型暗号化された第1中間データを取得することと、を含む、
請求項
3に記載の方法。
【請求項6】
サンプルデータセットにおいて、前記第1元データと前記第2元データとの間の相関係数に基づいて前記第1元データを選別し、前記サンプルデータセットに前記第1元データが含まれ、前記サンプルデータセットが連合モデルをトレーニングすることに用いられることを更に含む、
請求項1に記載の方法。
【請求項7】
補助ノードに適用される相関係数取得方法であって、
第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信することと、
前記第1伝送データおよび前記第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得し、前記第1伝送データが、前記第1参加ノードよって関連鍵を用いて前記第1元データを準同型暗号化することで確定され、前記第2伝送データが、前記第2参加ノードよって前記関連鍵を用いて前記第2元データを準同型暗号化することで確定され、前記関連鍵が、前記第1参加ノードと第2参加ノードで互いに決められることと、
前記相関係数を前記第1参加ノードおよび前記第2参加ノードに送信することとを含
み、
前記第1伝送データおよび前記第2伝送データを準同型演算することは、
鍵ペアを取得することと、
前記鍵ペア内の秘密鍵に基づき、前記第1伝送データ内の公開鍵暗号化された第1中間データを復号し、準同型暗号化された第1中間データを取得することと、
前記鍵ペア内の秘密鍵に基づき、前記第2伝送データ内の公開鍵暗号化された第2中間データを復号し、準同型暗号化された第2中間データを取得することと、
前記準同型暗号化された第1中間データ、前記第1伝送データに含まれる準同型暗号化された第1元データ、前記準同型暗号化された第2中間データ、および前記第2伝送データに含まれる準同型暗号化された第2元データを準同型演算することとを含み、
前記鍵ペア内の公開鍵が、前記第1参加ノードおよび前記第2参加ノードに送信されてデータ暗号化を行うことに用いられる、
相関係数取得方法。
【請求項8】
第1参加ノードに配置される相関係数取得装置であって、
第1元データを取得し、前記第1参加ノードと第2参加ノードで互いに決めた関連鍵を用いて前記第1元データを準同型暗号化し、第1伝送データを確定するための第1元データ準同型暗号化モジュールと、
補助ノードが前記第1伝送データを受信し、前記第1伝送データおよび第2伝送データを準同型演算して前記第1元データと第2元データとの間の相関係数を取得するように、前記第1伝送データを補助ノードに送信するための第1伝送データ送信モジュールであって、前記第2伝送データが、前記第2参加ノードによって前記関連鍵を用いて前記第2元データを準同型暗号化することで確定される第1伝送データ送信モジュールと、
前記補助ノードからフィードバックされる前記相関係数を受信するための相関係数取得モジュールとを備え、
前記第1元データ準同型暗号化モジュールは、
関連鍵を用いて前記第1元データを準同型暗号化し、準同型暗号化された第1元データを取得するためのデータ準同型暗号化ユニットと、
前記第1元データおよび前記相関係数の計算式に基づいて第1中間データを計算するための第1中間データ計算ユニットと、
前記関連鍵を用いて前記第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得するための第1中間データ準同型暗号化ユニットと、
前記準同型暗号化された第1元データおよび前記第1中間データを第1伝送データとして確定するための第1伝送データ確定ユニットとを備える、
相関係数取得装置。
【請求項9】
前記第1元データ準同型暗号化モジュールは、
関連鍵に基づいて第1乱数を計算するための第1乱数計算ユニットと、
前記第1乱数に基づいて前記第1元データを準同型暗号化するための第1乱数暗号化ユニットと、を備える、
請求項
8に記載の装置。
【請求項10】
前記第1中間データ準同型暗号化ユニットは、
前記関連鍵に基づいて第2乱数を計算するための第2乱数計算サブユニットと、
前記第2乱数に基づいて前記第1中間データを準同型暗号化するための第2乱数準同型暗号化サブユニットと、を備える、
請求項
8に記載の装置。
【請求項11】
前記第1中間データは、前記第1元データの期待および/または分散を含む、
請求項
8に記載の装置。
【請求項12】
第1中間データ追加サブユニットは、
前記補助ノードから送信される公開鍵を取得し、
前記公開鍵に基づいて前記準同型暗号化された第1中間データを暗号化し、前記準同型暗号化された第1元データおよび公開鍵暗号化された第1中間データを第1伝送データとして確定し、前記補助ノードに前記公開鍵暗号化された第1中間データを秘密鍵で復号させ、前記準同型暗号化された第1中間データを取得することに用いられる、
請求項
10に記載の装置。
【請求項13】
サンプルデータセットにおいて、前記第1元データと前記第2元データとの間の相関係数に基づいて前記第1元データを選別するためのサンプルデータ選別モジュールであって、前記サンプルデータセットに前記第1元データが含まれ、サンプルデータセットが連合モデルをトレーニングすることに用いられるサンプルデータ選別モジュールを更に備える、
請求項
8に記載の装置。
【請求項14】
補助ノードに配置される相関係数取得装置であって、
第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信するための伝送データ取得モジュールと、
前記第1伝送データおよび前記第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得するための伝送データ準同型演算モジュールであって、前記第1伝送データが、前記第1参加ノードよって関連鍵を用いて前記第1元データを準同型暗号化することで確定され、前記第2伝送データが、前記第2参加ノードよって前記関連鍵を用いて前記第2元データを準同型暗号化することで確定され、前記関連鍵が、前記第1参加ノードと第2参加ノードで互いに決められる伝送データ準同型演算モジュールと、
前記相関係数を前記第1参加ノードおよび前記第2参加ノードに送信するための相関係数送信モジュールとを備え
、
前記伝送データ準同型演算モジュールは、
鍵ペアを取得するための鍵ペア取得ユニットと、
前記鍵ペア内の秘密鍵に基づき、前記第1伝送データ内の公開鍵暗号化された第1中間データを復号し、準同型暗号化された第1中間データを取得するための第1中間データ復号ユニットと、
前記鍵ペア内の秘密鍵に基づき、前記第2伝送データ内の公開鍵暗号化された第2中間データを復号し、準同型暗号化された第2中間データを取得するための第2中間データ復号ユニットと、
前記準同型暗号化された第1中間データ、前記第1伝送データに含まれる準同型暗号化された第1元データ、前記準同型暗号化された第2中間データ、および前記第2伝送データに含まれる準同型暗号化された第2元データを準同型演算するための準同型演算ユニットと、
を備え、
前記鍵ペア内の公開鍵は、前記第1参加ノードおよび前記第2参加ノードに送信されてデータ暗号化を行うことに用いられる、
相関係数取得装置。
【請求項15】
少なくとも1つのプロセッサと、
前記少なくとも1つのプロセッサに通信接続されたメモリとを備える電子機器であって、
前記メモリに、前記少なくとも1つのプロセッサによって実行可能な命令が記憶され、
前記命令は、前記少なくとも1つのプロセッサが請求項1から
7のいずれか1項に記載の相関係数取得方法を実行可能であるように、前記少なくとも1つのプロセッサにより実行される、
電子機器。
【請求項16】
コンピュータ命令が記憶された非一時的なコンピュータ可読記憶媒体であって、
前記コンピュータ命令は、請求項1から
7のいずれか1項に記載の相関係数取得方法をコンピュータに実行させることに用いられる、
非一時的なコンピュータ可読記憶媒体。
【請求項17】
プロセッサにより実行されると、請求項1から
7のいずれか1項に記載の相関係数取得方法を実現する、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データ処理の分野に関し、具体的には、ビッグデータ、深層学習および人工知能の技術分野に関し、特に、相関係数取得方法、装置、電子機器および記憶媒体に関する。
【背景技術】
【0002】
現在、データ間の相関分析は、人々の決定に大きく影響を与える。特に、インターネットにおける大量のデータに対し、データ間の相関分析に基づいてデータを選別することができ、ユーザによるデータ処理を支援することができる。
【0003】
例えば、連合学習モデルのトレーニング過程において、複数の参加者が提供するサンプルデータを集束する必要がある。サンプルデータ間の相関分析を用いて連合学習モデルに入力されたサンプルデータを選別することができる。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本開示は、相関係数取得方法、装置、電子機器および記憶媒体を提供する。
【課題を解決するための手段】
【0005】
本開示の一態様によれば、
第1参加ノードに適用される相関係数取得方法であって、
第1元データを取得し、第1参加ノードと第2参加ノードで互いに決めた関連鍵を用いて第1元データを準同型暗号化し、第1伝送データを確定することと、
補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信し、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定されることと、
補助ノードからフィードバックされる相関係数を受信することとを含む、
相関係数取得方法を提供する。
【0006】
本開示の別の態様によれば、
補助ノードに適用される相関係数取得方法であって、
第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信することと、
第1伝送データおよび第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得し、第1伝送データが、第1参加ノードによって関連鍵を用いて第1元データを準同型暗号化することで確定され、第2伝送データが、第2参加ノードよって関連鍵を用いて第2元データを準同型暗号化することで確定され、関連鍵が、第1参加ノードと第2参加ノードで互いに決められることと、
相関係数を第1参加ノードおよび第2参加ノードに送信することとを含む、
相関係数取得方法を提供する。
【0007】
本開示の一態様によれば、
第1参加ノードに配置される相関係数取得装置であって、
第1元データを取得し、第1参加ノードと第2参加ノードで互いに決めた関連鍵を用いて第1元データを準同型暗号化し、第1伝送データを確定するための第1元データ準同型暗号化モジュールと、
補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信するための第1伝送データ送信モジュールであって、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定される第1伝送データ送信モジュールと、
補助ノードからフィードバックされる相関係数を受信するための相関係数取得モジュールとを備える、
相関係数取得装置を提供する。
【0008】
本開示の別の態様によれば、
補助ノードに配置される相関係数取得装置であって、
第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信するための伝送データ取得モジュールと、
第1伝送データおよび第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得するための伝送データ準同型演算モジュールであって、第1伝送データが、第1参加ノードよって関連鍵を用いて第1元データを準同型暗号化することで確定され、第2伝送データが、第2参加ノードよって関連鍵を用いて第2元データを準同型暗号化することで確定され、関連鍵が、第1参加ノードと第2参加ノードで互いに決められる伝送データ準同型演算モジュールと、
相関係数を第1参加ノードおよび第2参加ノードに送信するための相関係数送信モジュールとを備える、
相関係数取得装置を提供する。
【0009】
本開示の別の態様によれば、
少なくとも1つのプロセッサと、
少なくとも1つのプロセッサに通信接続されたメモリとを備える電子機器であって、
メモリに、少なくとも1つのプロセッサによって実行可能な命令が記憶され、
命令は、少なくとも1つのプロセッサが本開示のいずれかの実施例の相関係数取得方法を実行可能であるように、少なくとも1つのプロセッサにより実行される、
電子機器を提供する。
【0010】
本開示の別の態様によれば、
コンピュータ命令が記憶された非一時的なコンピュータ可読記憶媒体であって、
コンピュータ命令は、本開示のいずれかの実施例の相関係数取得方法をコンピュータに実行させることに用いられる、
非一時的なコンピュータ可読記憶媒体を提供する。
【0011】
本開示の別の態様によれば、
プロセッサにより実行されると、本開示のいずれかの実施例の相関係数取得方法を実現する、
コンピュータプログラムを提供する。
【発明の効果】
【0012】
本開示の実施例は、相関係数計算データの安全性を向上させることができる。
【0013】
本開示に記載された内容は、本開示の実施例のキーとなるまたは重要な特徴を標識するためのものではなく、本開示の範囲を限定するものでもないことが理解されるべきである。本開示の他の特徴は、以下の明細書により容易に理解することができる。
【図面の簡単な説明】
【0014】
図面は本形態をより良く理解するためのものであり、本開示を限定するものではない。
【0015】
【
図1】本開示の実施例に係る相関係数取得方法の模式図である。
【
図2】本開示の実施例に係る相関係数取得方法の模式図である。
【
図3】本開示の実施例に係る相関係数取得方法の模式図である。
【
図4】本開示の実施例に係る相関係数取得方法の模式図である。
【
図5】本開示の実施例に係る相関係数取得方法のシーン図である。
【
図6】本開示の実施例に係る相関係数取得装置の模式図である。
【
図7】本開示の実施例に係る相関係数取得装置の模式図である。
【
図8】本開示の実施例の相関係数取得方法を実現するための電子機器のブロック図である。
【発明を実施するための形態】
【0016】
以下、図面を参照しながら本開示の例示的な実施例について説明し、ここで、理解の便宜上、本開示の実施例に係る様々な細かい内容まで含まれているが、例示的なものに過ぎないと理解すべきである。同様に、以下の説明において、公知されている機能および構造の説明は、明確且つ簡潔にするために省略している。
【0017】
図1は、本開示の実施例による相関係数取得方法のフローチャートであり、本実施例は、2つの参加ノードの元データ間の相関性を計算する場合に適用される。本実施例の方法は、相関係数取得装置で実行することができ、該装置は、ソフトウェアおよび/またはハードウェアの方式で実現でき、具体的には、一定のデータ演算能力を持つ電子機器に構成され、該電子機器は第1参加ノードであり、該電子機器は、クライアント機器またはサーバ機器であってもよく、クライアント機器は、例えば、携帯電話機、タブレットコンピュータ、車載端末およびデスクトップコンピュータ等である。
【0018】
S101において、第1元データを取得し、第1参加ノードと第2参加ノードで互いに決めた関連鍵を用いて第1元データを準同型暗号化し、第1伝送データを確定する。
【0019】
第1元データは、相関係数を計算することに用いられる。第1元データの内容は任意に設定することができ、例えば、連合学習モデルのトレーニングサンプルデータであってもよいし、ユーザ行動データ、車両走行軌跡データまたは顔画像データ等であってもよいし、広告配信、金融信用またはナレッジグラフ等の大量のデータであってもよい。関連鍵は、第1元データを準同型暗号化することに用いられる。関連鍵が第1参加ノードと第2参加ノードで互いに決められることは、第1参加ノードおよび第2参加ノードのみが該関連鍵を取得することができ、他の機器が取得も復号もできないことを意味する。例示的には、第1参加ノードおよび第2参加ノードは、鍵共有プロトコル(Diffie Hellman、DH)により関連鍵を約定して確定することができる。第1参加ノードと第2参加ノードとは異なるノードである。第1参加ノードのデータおよび第2参加ノードのデータに対して相関性計算を行う必要がある。第1伝送データは、第2参加ノードから送信される第2伝送データと準同型演算を行うことに用いられる。第1伝送データは、第1参加ノードが提供する相関係数を計算待ちデータを指してもよく、第1伝送データは、少なくとも準同型暗号化された第1元データを含む。
【0020】
ここで、準同型暗号化は、準同型暗号化されたデータを処理して得られた1つの出力を意味し、この出力を復号した結果は、同じ方法で暗号化されていない元データを処理して得られた出力結果と同じであり、具体的には、データを復号しない場合に暗号文を加算および/または乗算した結果は、対応する平文に対して同じ演算を行って得られた計算結果と同じである。
【0021】
S102において、補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信し、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定される。
【0022】
補助ノードは、第1参加ノードから送信される第1伝送データを受信し、第2参加ノードから送信される第2伝送データを受信し、且つ、第1伝送データおよび第2伝送データを準同型演算することに用いられる。第2伝送データは、第1伝送データと準同型演算を行って相関係数を計算することに用いられる。第2伝送データは、第2参加ノードが提供する相関係数を計算待ちデータを指してもよく、第2伝送データは、準同型暗号化された第2元データを少なくとも含む。第1伝送データは、第1元データに基づいて準同型暗号化を経て得られ、第2伝送データは、第2元データに基づいて準同型暗号化を経て得られ、これにより、第1伝送データおよび第2伝送データを準同型演算することは、第1元データおよび第2元データを準同型演算することに相当し、即ち、両者を準同型演算して得られた相関係数の出力結果は同じである。ここで、第1元データおよび第2元データが同じ関連鍵を用いて準同型暗号化されることで、準同型暗号化された第1元データ、および準同型暗号化された第2元データの暗号化方式を一致させ、第1元データおよび第2元データが一致しない暗号化方式を採用して暗号化結果が準同型演算を実現できないことを回避し、第1伝送データと第2伝送データとの間の準同型演算を正確に実現することができる。
【0023】
S103において、補助ノードからフィードバックされる相関係数を受信する。
【0024】
補助ノードは、第1伝送データと第2伝送データとの間の相関係数、即ち、第1元データと第2元データとの間の相関係数を計算し、相関係数を第1参加ノードおよび第2参加ノードにフィードバックする。補助ノードが計算したのが暗号化された第1元データおよび暗号化された第2元データであるため、補助ノードは、真の元データを取得することができず、補助ノードが参加ノードの元データを取得して漏洩することを回避し、元データの安全を保護する。
【0025】
従来技術において、相関係数を計算するために両方のデータが必要となり、データ共有は、データ内の保護されるプライバシー情報の漏洩を招く。
【0026】
本開示の技術案によれば、相関係数の計算に参加する第1参加ノードが第1元データを準同型暗号化することにより、第1伝送データを確定し、第1伝送データを第3者の補助ノードに送信し、補助ノードにより第1伝送データおよび第2伝送データを準同型演算することは、準同型暗号化された第1元データ、および準同型暗号化された第2元データを準同型演算し、準同型暗号化された第1元データと準同型暗号化された第2元データとの間の相関係数を計算することにより、第1元データと第2元データとの間の相関係数を確定することに相当し、補助ノードが伝送データを復号できない場合に元データ間の相関係数を正確に計算することを実現し、元データの安全を向上させ、プライバシー情報を保護し、データ伝送の安全性および計算の安全性を高めるとともに、相関係数の計算正確性を向上させる。
【0027】
図2は、本開示の実施例による別の相関係数取得方法のフローチャートであり、上記技術案に基づいて更に最適化して拡張し、且つ、上記各好ましい実施形態と組み合わせることができる。関連鍵を用いて第1元データを準同型暗号化することは、具体的に、関連鍵に基づいて第1乱数を計算し、第1乱数に基づいて第1元データを準同型暗号化することである。
【0028】
S201において、第1元データを取得し、関連鍵に基づいて第1乱数を計算し、関連鍵が、第1参加ノードと第2参加ノードで互いに決められる。
【0029】
第1乱数は、元データを準同型暗号化することに用いられる。第1乱数は、関連鍵に基づいて生成される乱数である。ここで、第1参加ノードは、関連鍵に基づいて第1乱数を生成し、同様に、第2参加ノードは、関連鍵に基づいて同じ方式で第1乱数を生成する。元データは、少なくとも1つのデータを含んでもよい。それに対応し、第1乱数の数は元データに含まれるデータの数と同じである。
【0030】
S202において、第1乱数に基づいて第1元データを準同型暗号化し、第1伝送データを確定する。
【0031】
第1元データはデータ系列であり、第1乱数はデータ系列であり、系列内のデータの順序に従い、ある順序の第1乱数に基づいて同じ順序の第1元データを準同型暗号化することができる。例示的には、第1元データはN個のサンプルXiを含み、ただし、i=1、2、3……Nであり、それに対応し、関連鍵に基づいてN個の乱数R={ri|ri∈Z}を生成することができる。ただし、riは、Xiを暗号化することに用いられる。例示的には、準同型暗号化された第1元データはri*Xiである。
【0032】
また、第2参加ノードでは、同様に、関連鍵に基づき、同じ乱数生成方式で第1乱数を生成する。これにより、同じ第1乱数を用いて第1元データおよび第2元データの準同型暗号化を実現し、乱数が異なることにより準同型演算を実現できない状況を回避する。
【0033】
なお、2つの参加ノードが同じ第1乱数を生成し、第1乱数を用いて元データを準同型暗号化することは、同じ暗号化方式を用いて暗号化をそれぞれ行うことではない。例示的には、相関係数の計算過程において、第1元データと第2元データとを乗算する必要があり、第1元データの暗号化方式は、第1乱数と第1元データとを乗算することであってもよく、第2元データの暗号化方式は、第2元データと第1乱数の逆数とを乗算することであってもよく、これにより、相関係数の計算過程において、第1乱数と第1乱数の逆数との積が1であるため、第1元データと第2元データとの積が、暗号化された第1元データと暗号化された第2元データとの積と同じであり、準同型演算を実現する。
【0034】
S203において、補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信し、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定される。
【0035】
S204において、補助ノードからフィードバックされる相関係数を受信する。
【0036】
好ましくは、相関係数取得方法は、サンプルデータセットにおいて、第1元データと第2元データとの間の相関係数に基づいて第1元データを選別することを更に含み、サンプルデータセット内に第1元データが含まれ、サンプルデータセットは、連合モデルをトレーニングすることに用いられる。
【0037】
サンプルデータセット内に第1元データが含まれる。サンプルデータセットは、連合モデルのトレーニングサンプルのデータセットである。連合モデルとは、少なくとも2つの参加者のサンプルデータを集約して確立した最適なモデルを意味し、且つ、モデルのトレーニング時に、参加者のデータが自分のデータを与える必要がないため、ローカルデータを漏洩することはない。連合モデルは、横方向連合モデル、縦方向連合モデル、および連合遷移モデル等を含んでもよい。例示的には、第1元データの選別は、サンプルデータセットにおいて相関性の低い元データを選択して除外してもよいし、相関性の高い元データを選択して除外してもよい。選別方式は、具体的に、トレーニングされる連合モデルの性能ニーズ情報に応じて確定することができる。
【0038】
連合モデルをトレーニングする適用シーンにおいて、2つの参加者のサンプル間の相関性に基づいてサンプルを選別することができ、サンプルの代表性を向上させ、連合モデルの検出精度を高めることができるとともに、サンプルを選別することでサンプルのデータ量を簡素化させ、連合モデルのトレーニング効率を向上させることができ、且つ、相関性を計算する時、元データを暗号化することで、参加者データの安全を向上させ、連合モデルのデータ安全を更に強化することができる。
【0039】
本開示の技術案によれば、関連鍵により第1乱数を更に生成し、第1乱数に基づいて第1元データを準同型暗号化し、暗号化されたデータのランダム性を増加し、データ暗号化の解読の困難度を高め、暗号化の複雑度を更に向上させ、元データの安全を向上させる。
【0040】
図3は、本開示の実施例による別の相関係数取得方法のフローチャートであり、上記技術案に基づいて更に最適化して拡張し、且つ、上記各好ましい実施形態と組み合わせることができる。関連鍵を用いて第1元データを準同型暗号化し、第1伝送データを確定することは、具体的には、関連鍵を用いて第1元データを準同型暗号化し、準同型暗号化された第1元データを取得し、第1元データおよび相関係数の計算式に基づいて第1中間データを計算し、関連鍵を用いて第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得し、準同型暗号化された第1元データ、および準同型暗号化された第1中間データを第1伝送データとして確定することである。
【0041】
S301において、第1元データを取得し、関連鍵を用いて第1元データを準同型暗号化し、準同型暗号化された第1元データを取得し、関連鍵が、第1参加ノードと第2参加ノードで互いに決められる。
【0042】
S302において、第1元データおよび相関係数の計算式に基づいて第1中間データを計算する。
【0043】
ここで、相関係数の計算式で、第1元データを多層演算することができ、一部の演算の結果を中間データとして確定することができる。第1中間データは、相関係数を直接計算することに用いられる。第1中間データとは、相関係数の計算式のうちの元データに関する計算式に基づき、元データを計算して得た計算結果を意味する。例えば、第1元データは複数のサンプルを含み、サンプルを多層演算して第1元データの分散または期待等を取得し、第1中間データとして確定することができる。第1元データ内の複数のデータ間の暗号化に使用される数値がそれぞれ異なるため、元データに基づいて計算された期待および分散等の結果は、暗号化された第1元データに基づいて計算された期待および分散等の結果と異なり、準同型演算を実現することができない。これにより、元データに基づいて中間データを計算する必要があり、相関係数を計算するための中間データの正確性を確保し、相関係数の準同型演算および相関係数の正確性に影響を及ぼすことを回避する。
【0044】
好ましくは、第1中間データは、第1元データの期待および/または分散を含む。
【0045】
通常の期待および/または分散は、相関係数を計算することに用いられ、相関係数の計算式における直接計算するデータとし、および第1元データで相関係数を計算する中間結果とする。
【0046】
例示的には、ピアソン相関係数Pearsonまたはスピアマン相関係数Spearmanの計算式は、以下のとおりである。
【数1】
(ただし、Xは第1元データであり、Yは第2元データであり、E(X)は第1元データの期待であり、E(Y)は第2元データの期待であり、σ
Xは第1元データの分散であり、σ
Yは第2元データの分散である。E(XY)は第1元データと第2元データとの積の期待である。)
【0047】
前例のように、第1参加ノードの第1元データはXiであり、第2参加ノードの第2元データはYiであり、関連鍵に基づいて第1乱数riを生成する。第1乱数を用いて第1元データおよび第2元データを準同型暗号化する。第1元データのそれぞれに第1乱数を乗算し、準同型暗号化された第1元データXi*riを取得し、第2元データのそれぞれに第1乱数の逆数を乗算し、準同型暗号化された第2元データYi/riを取得する。
【0048】
それに対応し、
【数2】
である。即ち、準同型暗号化された第1元データと準同型暗号化された第2元データとの積の期待は、第1元データと第2元データとの積の期待に等しい。
【0049】
第1参加ノードの第1中間データを第2乱数で準同型暗号化し、第2参加ノードの第2中間データを第2乱数で準同型暗号化する。ここで、中間データは期待および分散を含み、第2乱数は、期待に対応するreおよび分散に対応するrσを含む。第1中間データに含まれる第1期待と期待に対応する第2乱数とを乗算し、準同型暗号化された第1期待E(X)*reを取得する。第2中間データに含まれる第2期待と期待に対応する第2乱数の逆数とを乗算し、準同型暗号化された第2期待E(Y)/rσを取得する。第1中間データに含まれる第1分散と期待に対応する第2乱数とを乗算し、準同型暗号化された第1分散σ(X)*rσを取得する。第2中間データに含まれる第2期待と期待に対応する第2乱数の逆数とを乗算し、準同型暗号化された第2分散σ(Y)/rσを取得する。
【0050】
それに対応し、
【数3】
である。即ち、準同型暗号化された第1期待E2(X)と準同型暗号化された第2期待E2(Y)との積は、第1期待と第2期待との積に等しい。
【0051】
【数4】
である。即ち、準同型暗号化された第1分散σ2(X)と準同型暗号化された第2分散σ2(Y)との積は、第1分散と第2分散との積に等しい。
【0052】
これにより、準同型暗号化の前後で、相関係数の結果は変わらない。
【0053】
第1中間データを第1元データの期待および分散に設定することにより、PearsonおよびSpearman等の相関係数の適用シーンに適応し、同じ計算方式の相関係数を計算し、相関係数の適用シーンを増加し、相関係数の計算に必要なデータの安全を向上させることができる。
【0054】
S303において、関連鍵を用いて第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得する。
【0055】
同様に、関連鍵を用いて第1中間データを準同型暗号化する。第1元データに基づいて計算された第1中間データは、依然として暗号化する必要があり、元データのプライバシー情報の漏洩を回避する。
【0056】
好ましくは、関連鍵を用いて第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得することは、関連鍵に基づいて第2乱数を計算することと、第2乱数に基づいて第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得することとを含む。
【0057】
関連鍵に基づいて第2乱数を計算する。ここで、第1乱数と第2乱数とは異なる。第2乱数は、第1中間データを準同型暗号化することに用いられる。第1中間データはデータ系列であり、第2乱数はデータ系列であり、系列内のデータの順序に従い、ある順序の第2乱数に基づいて同じ順序の第1中間データを準同型暗号化する。実際には、第1中間データは複数タイプのデータを含んでもよく、異なるタイプのデータに対応する第2乱数は異なる。
【0058】
関連鍵に基づいて第2乱数を更に生成し、第2乱数に基づいて第1中間データを準同型暗号化し、暗号化されたデータのランダム性を増加し、データ暗号化の解読の困難度を高め、暗号化の複雑度を更に向上させ、中間データの安全を向上させる。
【0059】
S304において、準同型暗号化された第1元データ、および準同型暗号化された第1中間データを第1伝送データとして確定する。
【0060】
第1伝送データの安全性を向上させるために、準同型暗号化された第1元データ、および準同型暗号化された第1中間データを更に暗号化し、第1伝送データを取得することができる。例示的には、RSA非対称暗号化アルゴリズムにより公開鍵(n、e)および秘密鍵(n、d)で形成される鍵ペアを生成することができる。
【0061】
好ましくは、準同型暗号化された第1元データ、および準同型暗号化された第1中間データを第1伝送データとして確定することは、補助ノードから送信される公開鍵を取得することと、公開鍵に基づいて準同型暗号化された第1中間データを暗号化し、準同型暗号化された第1元データおよび公開鍵暗号化された第1中間データを第1伝送データとして確定し、補助ノードに公開鍵暗号化された第1中間データを秘密鍵で復号させ、準同型暗号化された第1中間データを取得することとを含む。
【0062】
公開鍵と秘密鍵とで鍵ペアを構成し、鍵ペアは非対称暗号化により生成される鍵である。公開鍵は公開され、秘密鍵は秘密である。補助ノードは鍵ペアを生成し、公開鍵を各参加ノードに送信し、秘密鍵をローカルに保留する。参加ノードは、公開鍵を用いてデータを暗号化し、補助ノードは、秘密鍵を用いて復号し、該データを取得することができる。
【0063】
第1参加ノードは、公開鍵を用いて準同型暗号化された第1中間データを暗号化することで、中間データの安全性を更に向上させることができる。通常、第1中間データは第1元データの計算結果であり、第1中間データに含まれるデータの数は、第1元データに含まれるデータの数よりも小さく、第1中間データの準同型暗号化結果は、第1元データの準同型暗号化結果よりも解読しやすく、これにより、第1中間データを優先的に暗号化して第1中間データの安全性を向上させることができるとともに、第1中間データを暗号化するが、第1元データを暗号化しないことで、暗号化されるデータ量を減少し、暗号化コストを低減し、暗号化効率を向上させることができる。
【0064】
例示的には、第1中間データは第1元データの期待であり、第1元データの準同型暗号化方式は、第1乱数を用いて第1元データに含まれるデータを暗号化することである。ここで、第1元データに含まれる各データの暗号化オフセット量が異なることで、準同型暗号化された第1元データの解読の困難度はより高く、より安全である。一方、第1中間データは1つのデータだけであり、第2乱数を用いて暗号化すると、1つの暗号化されたデータだけを取得し、解読しやすい。これにより、第1中間データを再び暗号化し、第1中間データの安全性を更に向上させることができる。
【0065】
1つの具体的な例において、公開鍵(n、e)を用いて期待E(X)を暗号化し、暗号化された期待は(E(X))e%nである。
【0066】
第1中間データに対して公開鍵暗号化を行うことにより、補助ノード以外の機器に対して復号の困難度を増加し、第1中間データの安全性を向上させるとともに、暗号化されるデータ量を減少し、暗号化コストを低減し、暗号化効率を向上させることができる。
【0067】
S305において、補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信し、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定される。
【0068】
S306において、補助ノードからフィードバックされる相関係数を受信する。
【0069】
本開示の技術案によれば、相関係数の計算式により、第1元データに基づいて相関係数の計算に関連する第1中間データを計算し、第1中間データを準同型暗号化することにより、相関係数の演算が準同型演算であることを確保し、相関係数の準同型演算を実現し、相関係数の計算正確性を向上させ、且つ、準同型暗号化は、第1中間データの安全性を向上させ、第1伝送データの安全性を向上させる。
【0070】
図4は、本開示の実施例による相関係数取得方法のフローチャートであり、本実施例は、2つの参加ノードの元データ間の相関性を計算する場合に適用される。本実施例の方法は、相関係数取得装置で実行することができ、該装置は、ソフトウェアおよび/またはハードウェアの方式で実現でき、具体的には、一定のデータ演算能力を持つ電子機器に構成され、該電子機器は補助ノードであり、該電子機器は、クライアント機器またはサーバ機器であってもよく、クライアント機器は、例えば、携帯電話機、タブレットコンピュータ、車載端末およびデスクトップコンピュータ等である。
【0071】
S401において、第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信する。
【0072】
補助ノードは、複数の参加ノードのうちの2つずつのノード間の伝送データを準同型演算し、伝送データに対応する元データの相関係数を計算し、対応する参加ノードにフィードバックすることに用いられる。相関係数の計算システムにおいて、少なくとも2つの参加ノードおよび補助ノードを備える。補助ノードは、相関係数を計算することに用いられ、参加ノードは、相関係数を計算する準同型暗号化されたデータを提供することに用いられる。第1伝送データおよび第2伝送データが準同型暗号化されたデータであるため、補助ノードは、元データを取得することができず、元データの安全を確保する。
【0073】
S402において、第1伝送データおよび第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得し、第1伝送データが、第1参加ノードよって関連鍵を用いて第1元データを準同型暗号化することで確定され、第2伝送データが、第2参加ノードよって関連鍵を用いて第2元データを準同型暗号化することで確定され、関連鍵が、第1参加ノードと第2参加ノードで互いに決められる。
【0074】
S403において、相関係数を第1参加ノードおよび第2参加ノードに送信する。
【0075】
ここで、相関係数の伝送安全のために、相関係数を暗号化して伝送することもできる。
【0076】
好ましくは、第1伝送データおよび第2伝送データを準同型演算することは、鍵ペアを取得することと、鍵ペア内の秘密鍵に基づき、第1伝送データ内の公開鍵暗号化された第1中間データを復号し、準同型暗号化された第1中間データを取得することと、鍵ペア内の秘密鍵に基づき、第2伝送データ内の公開鍵暗号化された第2中間データを復号し、準同型暗号化された第2中間データを取得することと、準同型暗号化された第1中間データ、第1伝送データに含まれる準同型暗号化された第1元データ、準同型暗号化された第2中間データ、および第2伝送データに含まれる準同型暗号化された第2元データを準同型演算することとを含み、鍵ペア内の公開鍵は、第1参加ノードおよび第2参加ノードに送信されてデータ暗号化を行うことに用いられる。
【0077】
中間データは、2回の暗号化を経て、まず、関連鍵による準同型暗号化であり、次に、公開鍵暗号化である。公開鍵暗号化された中間データは、秘密鍵で復号されると、関連鍵で準同型暗号化された中間データを取得することができる。準同型暗号化された第1中間データ、準同型暗号化された第1元データ、準同型暗号化された第2中間データおよび準同型暗号化された第2元データは、準同型計算で第1元データと第2元データとの間の相関係数を取得することに用いられる。
【0078】
例示的には、RSAアルゴリズムにより、公開鍵(n、e)および秘密鍵(n、d)を含む鍵ペアを生成することができる。秘密鍵(n、d)を用いて暗号化された期待(E(X))e%nを復号することは、((E(X))e%n)d%n=E(X)であってもよい。
【0079】
第1中間データに対して公開鍵暗号化を行うことにより、補助ノード以外の機器に対して復号の困難度を増加し、第1中間データの安全性を向上させるとともに、暗号化されるデータ量を減少し、暗号化コストを低減し、暗号化効率を向上させることができる。
【0080】
本開示の技術案によれば、補助ノードが準同型暗号化された第1伝送データおよび第2伝送データを準同型演算し、準同型暗号化前の第1元データと第2元データとの間の相関係数を取得することにより、補助ノードが伝送データを復号できない場合に元データ間の相関係数を正確に計算することを実現し、元データの安全を向上させ、プライバシー情報を保護し、データ伝送の安全性および計算の安全性を高めるとともに、相関係数の計算正確性を向上させる。
【0081】
図5は、本開示の実施例による相関係数取得方法のシーン図である。
【0082】
ここで、参加者は、元データを処理するためのk個のworker作業プロセスを含む。補助ノードはArbiterノードである。連合学習フレームワークには、参加ノード(Host)、補助ノード(Arbiter)および応用ノード(Guest)という3種のノードが存在する。参加ノードはデータを提供することに用いられ、補助ノードは、多方の共同モデリングを補助することに用いられ、応用ノードは、モデリング動作を開始することに用いられる。
【0083】
相関係数取得方法は、参加ノードおよび補助ノードに関し、具体的には、相関係数取得方法のフローは以下のとおりである。
【0084】
S501において、参加ノードおよび他の参加ノードは、DHプロトコルにより関連鍵sをネゴシエーションし、乱数の種とする。
【0085】
具体的には、参加者Paおよび参加者Pbは、DHプロトコルによりネゴシエーション鍵sを生成する。ここで、a、b=1、2、3……dであり、a≠bであり、dは参加ノードの総数である。
【0086】
S502において、補助ノードは、公開鍵(n、e)および秘密鍵(n、d)を生成する。
【0087】
RSAアルゴリズムに基づいて鍵ペアを生成することができる。
【0088】
S503において、補助ノードは、公開鍵(n、e)を各参加ノードに送信する。
【0089】
S504において、参加ノードは、作業プロセスの数kに応じてソースデータを列ごとに分割して第1元データXjfを取得する。
【0090】
ここで、ソースデータは少なくとも1つの元データを含み、1つの元データは少なくとも1つのデータ系列を含む。ここで、参加者は、含まれる作業プロセスの数kに応じてソースデータを均等に分割し、Xjfgを取得し、ただし、j=1、2、3……kであり、f=1、2、3……mであり、mは相関係数を計算する列データで、即ち、元データの数と同じであり、実際には、1列のデータは1つの元データであり、g=1、2、3……Nで、Nは1つの元データに含まれるサンプルの総数である。N個のXjfgで1つの元データXjfを構成する。ここで、1つの作業プロセスは少なくとも1つの元データを処理することができる。
【0091】
S505において、参加ノードのj個目の作業プロセスは、第1元データXjfを読み取り、関連鍵sに基づいて第1乱数集合Rを生成し、準同型暗号化された第1元データXjf*Rを計算する。
【0092】
参加ノードのj個目の作業プロセスは、関連鍵sを乱数の種としてN個の乱数R={ri|ri∈Z}を生成し、Xjfg*riを計算する。ここで、乱数の数は、元データに含まれるサンプルの総数と同じで、いずれもNである。
【0093】
S506において、参加ノードのj個目の作業プロセスは、関連鍵sに基づいて第2乱数reおよびrσを生成し、期待および分散を準同型暗号化し、更に公開鍵(n、e)を用いて暗号化し続ける。
【0094】
参加ノードのj個目の作業プロセスは、1つの元データに含まれるXjfgに基づき、期待E(Xjf)および分散σ(Xjf)を計算する。関連鍵sに基づいて第2乱数reおよびrσを生成し、第2乱数reを用いて期待E(Xjf)を準同型暗号化し、E(Xjf)*reを取得する。第2乱数rσを用いて分散σ(Xjf)を準同型暗号化し、σ(Xjf)*rσを取得する。ここで、2つの第2乱数reとrσとは異なる。公開鍵を用いて準同型暗号化されたE(Xjf)を暗号化し、(E(Xjf)*re)e%nを取得する。公開鍵(n、e)を用いて準同型暗号化されたσ(Xjf)を暗号化し、(σ(Xjf)*rσ)e%nを取得する。
【0095】
S507において、参加ノードは、補助ノードに準同型暗号化された第1元データ、公開鍵暗号化された期待および公開鍵暗号化された分散を送信する。
【0096】
S508において、補助ノードは期待および分散を復号し、相関係数を準同型計算する。
【0097】
補助ノードは、秘密鍵を用いて公開鍵暗号化された期待および公開鍵暗号化された分散を復号し、準同型暗号化された期待および準同型暗号化された分散を取得する。準同型暗号化された元データ、準同型暗号化された期待および準同型暗号化された分散と、他の参加ノードから送信された準同型暗号化された元データ、準同型暗号化された期待および準同型暗号化された分散に基づき、2つの参加ノードの元データ間の相関係数を計算する。
【0098】
補助ノードは、第1参加ノードaの第1伝送データを受信し、Xjfg*ri、(E(Xjf)*re)e%nおよび(σ(Xjf)*rσ)e%nを含む。第2参加ノードbの第2伝送データを受信し、Yhpq/ri、(E(Yhp)/rσ)e%nおよび(σ(Yhp)/rσ)e%nを含む。ここで、h=1、2、3……tであり、p=1、2、3……uであり、tは第2参加ノードに含まれる作業プロセスの数であり、uは相関係数を計算する列データで、即ち、元データの数と同じであり、実際には、1列のデータは1つの元データであり、q=1、2、3……Nで、Nは1つの元データに含まれるサンプルの総数である。N個のYhpqで1つの元データYhpを構成する。ここで、1つの作業プロセスは少なくとも1つの元データを処理することができる。
【0099】
ここで、相関係数は、主に3つの部分で計算され、ここで、3つの部分は、それぞれE(XY)、E(X)*E(Y)およびσ(X)*σ(Y)である。
【0100】
ここで、まず、秘密鍵(n、d)を用いて期待および分散を復号する。
【数5】
【数6】
【数7】
【数8】
準同型演算において、
【数9】
【数10】
【数11】
【0101】
上記暗号文の計算結果は、平文の計算結果と同じである。以下の式に代入して計算する。
【0102】
【0103】
これにより、第1元データXjfと第2元データYhpとの間の相関係数を正確に計算する。
【0104】
S509において、補助ノードは相関係数を統合し、グローバル相関係数を取得する。
【0105】
この時の相関係数は、1つの元データと別の元データとの間の相関係数である。しかし、実際には、ソースデータに複数の元データが含まれる。複数の元データのそれぞれと対応する元データ間の相関係数とを組み合わせてデータセットを形成し、グローバル相関係数として確定することができる。
【0106】
S510において、補助ノードは、参加ノードにグローバル相関係数を送信する。
【0107】
参加ノードは、グローバル相関係数に基づき、ソースデータを選別し、選別されたソースデータを連合学習モデルのトレーニングに適用する。
【0108】
連合学習アルゴリズムは、一般的に、暗号学技術によりデータの安全を確保し、余計な暗号学演算は、アルゴリズムの効率を大きく低減する。また、連合学習過程は、参加者間で頻繁な通信を行う必要があり、学習の効率を更に低減する。ビジネスデータ量が大きい場合、連合アルゴリズムの効率をどのように向上させるかは、特に重要である。
【0109】
本開示の実施例は、同じ参加者のサーバで複数の計算タスク(作業プロセス)を起動し、参加者のトレーニングに参加するデータにより、データ分割、パラメータ配布および自分の結果の集約を行い、Worker作業プロセスにより、データの読み取り、期待および分散の計算等を行う。このようなタスク並列メカニズムは、連合学習の効率を大きく向上させる。複数のWorkerタスクの並列は、サーバのCPU(中央プロセッサ)および帯域幅等のリソースを十分に利用することができる。また、JVMおよびストレージシステムのメモリ割り当てメカニズムにより、複数のWorkerタスクは、サーバのメモリリソースを十分に利用することもできる。
【0110】
本開示の実施例のアルゴリズムは、並列連合相関係数アルゴリズム(Parallel Federal Correlation Coefficient algorithm、PFCC)と呼ばれてもよく、DHおよびRSAプロトコルにより、ノイズを混入して元データを暗号化することで参加者データの安全な集約を確保する。ここで、暗号化・復号の過程は簡単で、時空間複雑度が小さい。
【0111】
本開示の実施例によれば、
図6は、本開示の実施例における相関係数取得装置の構造図であり、本開示の実施例は、2つの参加ノードの元データ間の相関性を計算する場合に適用される。該装置は、ソフトウェアおよび/またはハードウェアで実現され、具体的には、一定のデータ演算能力を持つ電子機器に構成され、電子機器は、具体的に、参加ノードである。
【0112】
図6に示す相関係数取得装置600は、第1元データ準同型暗号化モジュール601、第1伝送データ送信モジュール602、および相関係数取得モジュール603を備え、
第1元データ準同型暗号化モジュール601は、第1元データを取得し、第1参加ノードと第2参加ノードで互いに決められる関連鍵を用いて第1元データを準同型暗号化し、第1伝送データを確定することに用いられ、
第1伝送データ送信モジュール602は、補助ノードが第1伝送データを受信し、第1伝送データおよび第2伝送データを準同型演算して第1元データと第2元データとの間の相関係数を取得するように、第1伝送データを補助ノードに送信することに用いられ、第2伝送データが、第2参加ノードによって関連鍵を用いて第2元データを準同型暗号化することで確定され、
相関係数取得モジュール603は、補助ノードからフィードバックされる相関係数を受信することに用いられる。
【0113】
本開示の技術案によれば、相関係数の計算に参加する第1参加ノードが第1元データを準同型暗号化することにより、第1伝送データを確定し、第1伝送データを第3者の補助ノードに送信し、補助ノードにより第1伝送データおよび第2伝送データを準同型演算することは、準同型暗号化された第1元データ、および準同型暗号化された第2元データを準同型演算し、準同型暗号化された第1元データと準同型暗号化された第2元データとの間の相関係数を計算することにより、第1元データと第2元データとの間の相関係数を確定することに相当し、補助ノードが伝送データを復号できない場合に元データ間の相関係数を正確に計算することを実現し、元データの安全を向上させ、プライバシー情報を保護し、データ伝送の安全性および計算の安全性を高めるとともに、相関係数の計算正確性を向上させる。
【0114】
更に、第1元データ準同型暗号化モジュール601は、関連鍵に基づいて第1乱数を計算するための第1乱数計算ユニットと、第1乱数に基づいて第1元データを準同型暗号化するための第1乱数暗号化ユニットとを備える。
【0115】
更に、第1元データ準同型暗号化モジュール601は、関連鍵を用いて第1元データを準同型暗号化し、準同型暗号化された第1元データを取得するためのデータ準同型暗号化ユニットと、第1元データおよび相関係数の計算式に基づいて第1中間データを計算するための第1中間データ計算ユニットと、関連鍵を用いて第1中間データを準同型暗号化し、準同型暗号化された第1中間データを取得するための第1中間データ準同型暗号化ユニットと、準同型暗号化された第1元データおよび第1中間データを第1伝送データとして確定するための第1伝送データ確定ユニットとを備える。
【0116】
更に、第1中間データ準同型暗号化ユニットは、関連鍵に基づいて第2乱数を計算するための第2乱数計算サブユニットと、第2乱数に基づいて第1中間データを準同型暗号化するための第2乱数準同型暗号化サブユニットとを備える。
【0117】
更に、第1中間データは、第1元データの期待および/または分散を含む。
【0118】
更に、第1中間データ追加サブユニットは、具体的には、補助ノードから送信される公開鍵を取得し、公開鍵に基づいて準同型暗号化された第1中間データを暗号化し、準同型暗号化された第1元データおよび公開鍵暗号化された第1中間データを第1伝送データとして確定し、補助ノードに公開鍵暗号化された第1中間データを秘密鍵で復号させ、準同型暗号化された第1中間データを取得することに用いられる。
【0119】
更に、相関係数取得装置は、サンプルデータセットにおいて、第1元データと第2元データとの間の相関係数に基づいて第1元データを選別するためのサンプルデータ選別モジュールであって、サンプルデータセットに第1元データが含まれ、サンプルデータセットが連合モデルをトレーニングすることに用いられるサンプルデータ選別モジュールを更に備える。
【0120】
上記相関係数取得装置は、本開示のいずれかの実施例に係る相関係数取得方法を実行することができ、相関係数取得方法の実行に対応する機能モジュールおよび有益な効果を備える。
【0121】
本開示の実施例によれば、
図7は、本開示の実施例における相関係数取得装置の構造図であり、本開示の実施例は、2つの参加ノードの元データ間の相関性を計算する場合に適用される。該装置は、ソフトウェアおよび/またはハードウェアで実現され、具体的には、一定のデータ演算能力を持つ電子機器に構成され、電子機器は、具体的に、参加ノードである。
【0122】
図7に示す相関係数取得装置700は、伝送データ取得モジュール701、伝送データ準同型演算モジュール702、および相関係数送信モジュール703を備え、
伝送データ取得モジュール701は、第1参加ノードから送信される第1伝送データ、および第2参加ノードから送信される第2伝送データを受信することに用いられ、
伝送データ準同型演算モジュール702は、第1伝送データおよび第2伝送データを準同型演算し、第1元データと第2元データとの間の相関係数を取得することに用いられ、第1伝送データが、第1参加ノードよって関連鍵を用いて第1元データを準同型暗号化することで確定され、第2伝送データが、第2参加ノードよって関連鍵を用いて第2元データを準同型暗号化することで確定され、関連鍵が、第1参加ノードと第2参加ノードで互いに決められ、
相関係数送信モジュール703は、相関係数を第1参加ノードおよび第2参加ノードに送信することに用いられる。
【0123】
本開示の技術案によれば、補助ノードが準同型暗号化された第1伝送データおよび第2伝送データを準同型演算し、準同型暗号化前の第1元データと第2元データとの間の相関係数を取得することにより、補助ノードが伝送データを復号できない場合に元データ間の相関係数を正確に計算することを実現し、元データの安全を向上させ、プライバシー情報を保護し、データ伝送の安全性および計算の安全性を高めるとともに、相関係数の計算正確性を向上させる。
【0124】
更に、伝送データ準同型演算モジュール702は、鍵ペアを取得するための鍵ペア取得ユニットと、鍵ペア内の秘密鍵に基づき、第1伝送データ内の公開鍵暗号化された第1中間データを復号し、準同型暗号化された第1中間データを取得するための第1中間データ復号ユニットと、鍵ペア内の秘密鍵に基づき、第2伝送データ内の公開鍵暗号化された第2中間データを復号し、準同型暗号化された第2中間データを取得するための第2中間データ復号ユニットと、準同型暗号化された第1中間データ、第1伝送データに含まれる準同型暗号化された第1元データ、準同型暗号化された第2中間データ、および第2伝送データに含まれる準同型暗号化された第2元データを準同型演算するための準同型演算ユニットとを備え、鍵ペア内の公開鍵が、第1参加ノードおよび第2参加ノードに送信されてデータ暗号化を行うことに用いられる。
【0125】
上記相関係数取得装置は、本開示のいずれかの実施例に係る相関係数取得方法を実行することができ、相関係数取得方法の実行に対応する機能モジュールおよび有益な効果を備える。
【0126】
本開示の技術案に係るユーザの個人情報の収集、記憶、使用、加工、伝達、提供、および公開等の処理は、いずれも関連法律法規の規定に該当し、公序良俗に反していない。
【0127】
本開示の実施例によれば、本開示は、電子機器、可読記憶媒体、およびコンピュータプログラムを更に提供する。
【0128】
図8は、本開示の実施例を実施するために使用可能な例示的な機器800の模式的な領域図を示す。電子機器は、ラップトップ型コンピュータ、デスクトップ型コンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータのような様々な形式のデジタルコンピュータを表すことを目的とする。電子機器は、携帯端末、携帯電話、スマートフォン、ウェアラブル機器および他の類似する計算装置のような様々な形式の移動装置を表すこともできる。本開示に示されたコンポーネント、それらの接続、関係、およびそれらの機能は例示的なものに過ぎず、本開示に記載および/または要求される本開示の実現を限定するものではない。
【0129】
図8に示すように、機器800は、計算ユニット801を備え、読み出し専用メモリ(ROM)802に記憶されたコンピュータプログラム、または記憶ユニット808からランダムアクセスメモリ(RAM)803にロードされたコンピュータプログラムに基づき、様々な適当な動作および処理を実行することができる。RAM 803には、機器800の操作に必要な様々なプログラムおよびデータが記憶されてもよい。計算ユニット801、ROM 802およびRAM 803は、バス804を介して互いに接続されている。入力/出力(I/O)インタフェース805もバス804に接続されている。
【0130】
機器800における複数のコンポーネントはI/Oインタフェース805に接続され、キーボード、マウス等のような入力ユニット806と、各種のディスプレイ、スピーカ等のような出力ユニット807と、磁気ディスク、光ディスク等のような記憶ユニット808と、ネットワークカード、モデム、無線通信送受信機等のような通信ユニット809とを備える。通信ユニット809は、機器800がインターネットのようなコンピュータネットワークおよび/または様々な電気通信ネットワークを介して他のデバイスと情報/データを交換することを許容する。
【0131】
計算ユニット801は、処理および計算能力を有する汎用および/または専用の処理アセンブリであってもよい。計算ユニット801のいくつかの例は、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、各種の専用の人工知能(AI)コンピューティングチップ、各種の機械学習モデルアルゴリズムを実行する計算ユニット、デジタルシグナルプロセッサ(DSP)、および任意の適当なプロセッサ、コントローラ、マイクロコントローラ等を含んでもよいが、これらに限定されない。計算ユニット801は、上記各方法および処理、例えば、相関係数取得方法を実行する。例えば、いくつかの実施例において、相関係数取得方法は、コンピュータソフトウェアプログラムとして実現でき、有形的に記憶ユニット808のような機器可読媒体に含まれている。いくつかの実施例において、コンピュータプログラムの一部または全ては、ROM 802および/または通信ユニット809を介して機器800にロードおよび/またはインストールされ得る。コンピュータプログラムがRAM 803にロードされて計算ユニット801により実行されると、上記相関係数取得方法の1つまたは複数のステップを実行することができる。あるいは、他の実施例において、計算ユニット801は、他の任意の適当な方式(例えば、ファームウェアを介して)により、相関係数取得方法を実行するように構成され得る。
【0132】
本開示に記載されたシステムおよび技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、特定用途向け標準パーツ(ASSP)、システムオンチップのシステム(SOC)、複合プログラマブルロジックデバイス(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組み合わせで実現できる。これらの様々な実施形態は以下を含んでもよい。1つまたは複数のコンピュータプログラムに実施され、該1つまたは複数のコンピュータプログラムは、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステムで実行および/または解釈することができ、該プログラマブルプロセッサは、ストレージシステム、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受信し、且つデータおよび命令を、該ストレージシステム、該少なくとも1つの入力装置、および該少なくとも1つの出力装置に伝送することができる専用または汎用のプログラマブルプロセッサであってもよい。
【0133】
本開示の方法を実施するためのプログラムコードは、1つまたは複数のプログラミング言語の任意の組み合わせでコードできる。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ、または他のプログラマブルデータ処理装置のプロセッサまたはコントローラに提供でき、これにより、プログラムコードがプロセッサまたはコントローラにより実行されると、フローチャートおよび/またはブロック図で規定された機能/操作が実施される。プログラムコードは、完全に機器で実行されてもよいし、一部が機器で実行されてもよいし、独立したソフトウェアパッケージとして一部が機器で実行されて一部がリモート機器で実行されてもよいし、完全にリモート機器またはサーバで実行されてもよい。
【0134】
本開示の明細書において、機器可読媒体は、命令実行システム、装置またはデバイスに使用される、または命令実行システム、装置またはデバイスと合わせて使用されるプログラムを含有または記憶できる有形的な媒体であってもよい。機器可読媒体は、機器可読信号媒体または機器可読記憶媒体であってもよい。機器可読媒体は、電子の、磁気の、光の、電磁気の、赤外線の、または半導体のシステム、装置またはデバイス、または上記内容の任意の適当な組み合わせを含んでもよいが、これらに限定されない。機器可読記憶媒体の更なる具体的な例は、1つまたは複数の線による電気的接続、ポータブルコンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラマブル読み出し専用メモリ(EPROMまたはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み出し専用ディスク(CD-ROM)、光記憶デバイス、磁気記憶デバイス、または上記内容の任意の適当な組み合わせを含む。
【0135】
ユーザとのインタラクションを提供するために、ここで説明するシステムおよび技術をコンピュータで実施することができ、該コンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがそれにより入力をコンピュータに提供することができるキーボードおよび指向装置(例えば、マウスまたはトラックボール)とを有する。他の種類の装置は、更にユーザとのインタラクションを提供するために使用できる。例えば、ユーザに提供されるフィードバックは、任意の形式のセンシングフィードバック(例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってもよく、且つ、任意の形式(音入力、音声入力または、触覚入力を含む)でユーザからの入力を受信することができる。
【0136】
ここで説明するシステムおよび技術を、バックグラウンドコンポーネントを含むコンピューティングシステム(例えば、データサーバとする)、または中間コンポーネントを含むコンピューティングシステム(例えば、アプリケーションサーバ)、またはフロントエンドコンポーネントを含むコンピューティングシステム(例えば、ユーザがそれによりここで説明するシステムおよび技術の実施形態とインタラクションできるグラフィカルユーザインタフェースまたはネットワークブラウザを有するユーザコンピュータ)、またはこのようなバックグラウンドコンポーネント、中間コンポーネント、またはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムに実施することができる。任意の形式または媒体のデジタルデータ通信(例えば、通信ネットワーク)により、システムのコンポーネントを互に接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットを含む。
【0137】
コンピューティングシステムはクライアントおよびサーバを含んでもよい。クライアントとサーバとは、一般的に互いに離れ、且つ、通常、通信ネットワークを介してインタラクションを行う。対応するコンピュータで実行されて互いにクライアント-サーバ関係を持つコンピュータプログラムにより、クライアントとサーバとの関係を生成する。サーバは、クラウドサーバであってもよいし、分散型システムのサーバであってもよいし、ブロックチェーンを組み合わせたサーバであってもよい。
【0138】
上記に示す様々な形式のフローを用い、ステップを並べ替え、追加または削除することができることを理解すべきである。例えば、本開示に記載された各ステップは、並列に実行されてもよいし、順に実行されてもよいし、異なる順序で実行されてもよく、本開示に係る技術案の所望する結果を達成できる限り、本開示はここで限定しない。
【0139】
上記具体的な実施形態は、本開示の保護範囲を限定するものではない。当業者は、設計要求および他の要因に基づき、様々な修正、組み合わせ、サブ組み合わせおよび代替が可能であることを理解すべできる。本開示の精神および原則内で行われる任意の修正、均等置換および改良等は、いずれも本開示の保護範囲内に含まれているべきである。