1.一种基于安全内积函数的多客户端人工智能分类方法,其特征在于:参与者包括拥有x个客户端的实体AA、部署了神经网络分类器的云服务器BB和第三方实体CC;
所述方法包括以下步骤:
步骤1:所述第三方实体CC生成安全内积函数计算所需数据并分发给所述实体AA和所述云服务器BB;
步骤2:所述实体AA对自己拥有的数据进行安全计算后把计算结果发送给所述云服务器BB;
步骤3:所述云服务器BB和所述第三方实体CC交互产生安全内积函数的聚合所需的数据;
步骤4:所述云服务器BB利用步骤2中所述实体AA发送的计算结果完成安全内积函数的聚合;
步骤5:所述云服务器BB把步骤4得到的聚合结果输入神经网络分类器进行预测,得到预测的分类结果,并发送给所述实体AA。
2.根据权利要求1所述的基于安全内积函数的多客户端人工智能分类方法,其特征在Ω于:步骤1中,所述第三方实体CC选择一个整数Ω,计算2 记为 所述第三方实体CC随机选择两个大于 的二分之一且小于 的素数α,β;所述第三方实体CC计算α,β的乘积记为π;所述第三方实体CC计算π的平方记为b;所述第三方实体CC计算1+π记为a;所述第三方实体CC根据a,b生成一个以a为生成元,b为模数的乘法循环群W;所述第三方实体CC生成一个安全哈希函数H,可以把任意长度的字符串映射为群W上的一个元素;
所述第三方实体CC随机从0到(b‑1)之间选取m×n个正整数 其中m为神经网络分类器第一层线性感知器神经元的数量,n为所述实体AA中第一个客户端拥有的部分数据编码后形成的向量 中包含的元素个数;所述第三方实体CC利用 生成一个m行n列的矩阵 所述第三方实体CC重(1) (2) (x)
复执行m行n列的矩阵生成过程,共生成x个矩阵P ,P ,…,P ;
(1) (2)
所述第三方实体CC把P 和a,b,W,H一起发送给所述实体AA的第1个客户端,把P 和a,(x)b,W,H一起发送给所述实体AA的第2个客户端,依次类推,直到把P 和a,b,W,H发送给所述实体AA的第x个客户端;
所述第三方实体CC把a,b,π,W,H发送给BB。
3.根据权利要求2所述的基于安全内积函数的多客户端人工智能分类方法,其特征在于,步骤2的具体实现包括以下子步骤:(1)
步骤2.1:所述实体AA的第一个客户端接收所述第三方实体CC发送的P 和a,b,W,H;
步骤2.2:所述实体AA的第一个客户端选取一个任意长度的字符串e;
步骤2.3:所述实体AA的第一个客户端计算e的哈希函数值记为H(e),并发送给所述实体AA的其他客户端;
(1)
步骤2.4:当1≤i≤m,1≤j≤n时,所述实体AA的第一个客户端对P 的元素 计算得到矩阵步骤2.5:所述实体AA的第一个客户端把自己拥有的部分数据编码成向量(1)步骤2.6:当1≤j≤n时,所述实体AA的第一个客户端对u 的元素 计算得到向量
(1)
步骤2.7:当1≤i≤m,1≤j≤n时,所述实体AA的第一个客户端对L 的元素 和[u(1)]的元素 计算 得到矩阵
(1)
步骤2.8:所述实体AA的其他x‑1个客户端采用第一个客户端计算V 的原理,执行步骤(2) (3) (x)
2.4‑2.7,获得矩阵V ,V ,…,V ;
(1) (2) (x)
步骤2.9:所述实体AA把V ,V ,…,V 和H(e)发送给所述云服务器BB。
4.根据权利要求3所述的基于安全内积函数的多客户端人工智能分类方法,其特征在于,步骤3的具体实现包括以下子步骤:步骤3.1:所述云服务器BB随机选取大于0小于1的m×n×x个实数作为权重;
步骤3.2:当1≤k≤x时,所述云服务器BB利用m×n个数 对每个数乘上一个正整数δ后四舍五入取整数部分 ,生成一个m行n列的权重矩阵 记为(1) (2) (x)
所述云服务器BB得到x个m行n列的权重矩阵,记为D D ,…,D ;
(1) (2) (x)
步骤3.3:所述云服务器BB把D D ,…,D 发送给所述第三方实体CC;
(1) (2) (x)
步骤3.4:所述第三方实体CC接收所述云服务器BB发送来的D D ,…,D ;
(1)
步骤3.5:当1≤i≤m,1≤j≤n时,所述第三方实体CC对权重矩阵D 的元素 和矩阵P(1)的元素 计算 得到
(k) (k)
步骤3.6:当2≤k≤x时,所述第三方实体CC对矩阵D 和P ,采用步骤3.5的原理,得到(2) (3) (x)x‑1个这样的矩阵Z ,Z ,…,Z ;
(1) (2) (x)
步骤3.7:所述第三方实体CC把x个矩阵Z ,Z ,…,Z 的每个矩阵第一行所有元素取(1) (2) (x)出求和记为∑1,所述第三方实体CC把x个矩阵Z ,Z ,…,Z 的每个矩阵第二行所有元素(1) (2) (x)取出求和记为∑2,以此类推,直到所述第三方实体CC把x个矩阵Z ,Z ,…,Z 的每个矩阵第m行所有元素取出求和记为∑m,共计得到m个值∑1,∑2,…,∑m;
步骤3.8:所述第三方实体CC把∑1,∑2,…,∑m发送给所述云服务器BB。
5.根据权利要求4所述的基于安全内积函数的多客户端人工智能分类方法,其特征在于,步骤4的具体实现包括以下子步骤:(1) (2) (x)
步骤4.1:所述云服务器BB接收所述实体AA发送的V ,V ,…,V 和H(e);
(1) (1)
步骤4.2:当1≤i≤m,1≤j≤n时,所述云服务器BB对矩阵V 和D 计算记为
(k) (k)
步骤4.3:当2≤k≤x时,所述云服务器BB对矩阵V 和D 采用步骤4.2的原理,得到x‑1(2) (3) (x)个矩阵,记为G ,G ,…,G ;
(1) (2) (x)
步骤4.4:所述云服务器BB把G ,G ,…,G 的每个矩阵第一行所有元素取出并相互(1) (2) (x)乘起来后模b,结果记为∏1,所述云服务器BB把G ,G ,…,G 的每个矩阵第二行所有元(1) (2)素取出并相互乘起来后模b,结果记为∏2,依次类推,直到所述云服务器BB把G ,G ,…,G(x)的每个矩阵第m行所有元素取出并相互乘起来后模b,结果记为∏m,共计得到m个值∏1,∏2,…,∏m;
步骤4.5:所述云服务器BB接收所述第三方实体CC发送来∑1,∑2,…,∑m;
步骤4.6:当1≤i≤m时,所述云服务器BB对∑i计算 总共得到m个值f1,f2,…,fm;
步骤4.7:当1≤i≤m时,所述云服务器BB对fi和∏i计算◇i=fi×∏i mod b,总共得到m个值记为◇1◇2,…,◇m;
步骤4.8:当1≤i≤m时,所述云服务器BB对◇i计算 得到m个值φ1,φ2,…,φm;
步骤4.9:当1≤i≤m时,所述云服务器BB对φi计算 得到m个值θ1,θ2,…,θm;
步骤4.10:所述云服务器BB随机选择m个大于‑1小于1的实数r1,r2,…,rm;
步骤4.11:当1≤i≤m时,所述云服务器BB计算τi=θi+ri,得到m个值τ1,τ2,…,τm。
6.根据权利要求5所述的基于安全内积函数的多客户端人工智能分类方法,其特征在于,步骤5的具体实现包括以下子步骤:步骤5.1:所述云服务器BB把τ1,τ2,…,τm输入神经网络第二层;
步骤5.2:所述云服务器BB运行神经网络第二层直至最后一层,得到预测的分类结果;
步骤5.3:所述云服务器BB把预测的分类结果发送给所述实体AA的所有客户端,所述实体AA的所有客户端获得预测的分类结果。
7.根据权利要求1‑6任意一项所述的基于安全内积函数的多客户端人工智能分类方法,其特征在于:步骤5中所述神经网络分类器,由多层线性感知器和激活函数组成;
所述神经网络分类器第一层线性感知器包含m个神经元,当1≤i≤m时,所述云服务器BB会在每个神经元生成n×x个权重 共计m×n×x个权重 所述云服务器BB器在第一层线性感知器执行步骤4的所有过程;从神经网络分类器二层线性感知器开始,所述云服务器BB器先计算上一层输入的值和本层神经元的权重的内积,然后输入激活函数得到函数值不断重复上述步骤直到最后一层线性感知器;最后一层线性感知器在计算完激活函数值后,会输出多个分类的概率,所述神经网络分类器比较这些概率值的大小,得到概率最大的分类,作为预测的分类结果输出。
8.一种基于安全内积函数的多客户端人工智能分类系统,其特征在于:参与者包括拥有x个客户端的实体AA、部署了神经网络分类器的云服务器BB和第三方实体CC;
所述系统包括以下模块:
模块1,用于所述第三方实体CC生成安全内积函数计算所需数据并分发给所述实体AA和所述云服务器BB;
模块2,用于所述实体AA对自己拥有的数据进行安全计算后把计算结果发送给所述云服务器BB;
模块3,用于所述云服务器BB和所述第三方实体CC交互产生安全内积函数的聚合所需的数据;
模块4,用于所述云服务器BB利用步骤2中所述实体AA发送的计算结果完成安全内积函数的聚合;
模块5,用于所述云服务器BB把步骤4得到的聚合结果输入神经网络分类器进行预测,得到预测的分类结果,并发送给所述实体AA。