CN111859035B - 数据处理方法及装置 - Google Patents

数据处理方法及装置 Download PDF

Info

Publication number
CN111859035B
CN111859035B CN202010804441.2A CN202010804441A CN111859035B CN 111859035 B CN111859035 B CN 111859035B CN 202010804441 A CN202010804441 A CN 202010804441A CN 111859035 B CN111859035 B CN 111859035B
Authority
CN
China
Prior art keywords
matrix
elements
target
diagonal
independent
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
Application number
CN202010804441.2A
Other languages
English (en)
Other versions
CN111859035A (zh
Inventor
范晓昱
王国赛
何旭
徐松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huakong Tsingjiao Information Technology Beijing Co Ltd
Original Assignee
Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huakong Tsingjiao Information Technology Beijing Co Ltd filed Critical Huakong Tsingjiao Information Technology Beijing Co Ltd
Priority to CN202010804441.2A priority Critical patent/CN111859035B/zh
Publication of CN111859035A publication Critical patent/CN111859035A/zh
Application granted granted Critical
Publication of CN111859035B publication Critical patent/CN111859035B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Abstract

本发明提供了一种数据处理方法及装置,通过在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与目标元素同时计算的独立元素,所选取的独立元素位于两条互补且与密文矩阵的对角线平行的斜线;根据由目标元素和独立元素计算得到的旋转矩阵更新密文矩阵;在经过至少一次迭代后,将更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,本发明可以在每次迭代中,通过选取与目标元素同时计算的独立元素,由于目标元素和独立元素的共同影响,密文矩阵中发生更新的非对角线元素的数量增大,这使得要达到迭代结束条件所需的迭代轮数降低,提高了计算效率。

Description

数据处理方法及装置
技术领域
本发明属于计算机技术领域,特别是涉及一种数据处理方法及装置。
背景技术
在日常生活中很多场景都会涉及到矩阵计算,例如,常见的统计生产成本、统计人口流动、统计环境问题等等,都与矩阵计算息息相关。矩阵计算的关键在于确定矩阵的特征值和特征向量。
在目前,求解矩阵的特征值和特征向量通常采用雅可比(Jacobi)算法,Jacobi算法是一种常见的求解实对称矩阵的特征值、特征向量的数值迭代算法,在特征值特征向量求解算法中,具有求解精度高的特点。
发明人在实现本发明过程中,发现当前的Jacobi算法至少存在以下问题:
当前的Jacobi算法达到迭代结束条件所需的迭代轮数过多,导致计算效率较低,尤其是在例如多方安全计算等密文计算场景中,计算效率更为难以接受。
发明内容
本发明提供一种数据处理方法、数据处理方法及装置,以便解决现有技术中迭代轮数过多,导致计算效率较低的技术问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种数据处理方法,该方法可以包括:
在每次迭代中,从所述密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;
根据所述目标元素和所述独立元素,计算旋转矩阵;
通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;
在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
第二方面,本发明实施例提供了一种数据处理装置,该数据处理装置可以包括:
选取模块,用于在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;
计算模块,用于根据所述目标元素和所述独立元素,计算旋转矩阵;
更新模块,用于通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;
确定模块,用于在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
本发明实施例的第三方面,提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述所述的数据处理方法的步骤。
本发明实施例的第四方面,提供了一种电子设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述所述的数据处理方法的步骤。
在本发明实施例中,本发明通过在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,目标斜线是两条互补且与密文矩阵的对角线平行的斜线;根据目标元素和独立元素,计算旋转矩阵;通过旋转矩阵更新密文矩阵,得到更新后的密文矩阵;在经过至少一次迭代后,若更新后的密文矩阵的非对角线元素都小于预设阈值,则将更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,本发明可以在每次迭代中,在从密文矩阵的上三角区域中选取目标元素的基础上,进一步选取与目标元素同时计算的独立元素,使得后续可以根据目标元素和独立元素的索引,共同求得此次迭代的旋转矩阵,之后再根据该旋转矩阵更新密文矩阵时,由于目标元素和独立元素的共同影响,密文矩阵中发生更新的非对角线元素的数量增大,这使得要达到迭代结束条件所需的迭代轮数降低,提高了计算效率。
附图说明
图1是本发明实施例提供的一种数据处理方法的步骤流程图;
图2是本发明实施例提供的一种数据处理方法的具体步骤流程图;
图3是本发明实施例提供的一种矩阵示意图;
图4是本发明实施例提供的另一种矩阵示意图;
图5是本发明实施例提供的另一种矩阵示意图;
图6是本发明实施例提供的另一种矩阵示意图;
图7是本发明实施例提供的一种数据处理装置的框图;
图8是本申请的一种用于数据处理的装置的框图;
图9是本申请的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在实际应用中,很多领域需要用到矩阵的特征值和特征向量,例如,在图像分类领域中,可以通过获取图像的特征矩阵的特征值和特征向量,来实现图像的分类,另外,矩阵的特征值和特征向量也常用于数据降维算法,用于缓解维数灾难。再比如,在实际分析一些具体问题时,如估计某地区的污染程度和工业发展水平时,可以将逻辑递推关系写成矩阵形式,将实际问题转换为矩阵语言,再利用矩阵的特征值和特征向量来求解问题的答案。
另外,为避免隐私数据信息泄露问题,在很多场景会采用多方安全计算技术,多方安全计算实现的是使多个非互信数据库之间可以在数据相互保密的前提下进行数据计算或融合。本发明提出的技术方案就是为了解决在类似多方安全计算等密文计算的场景中,高效、准确的确定矩阵的特征值和特征向量。
图1是本发明实施例提供的一种数据处理方法的步骤流程图,如图1所示,该方法可以包括:
步骤101、在每次迭代中,从所述密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素。
其中,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线。
具体的,令矩阵A为一个N×N矩阵,如果存在一个非零向量x使得Ax=λx,则称标量λ为该矩阵的特征值,非零向量x为属于λ的特征向量。jacobi算法是一种求解矩阵特征值和特征向量的算法,通过多次迭代完成及时,每次迭代包括步骤:1、选取矩阵A中的目标元素。2、根据目标元素和目标元素的索引求解此次迭代的旋转矩阵。3、根据旋转矩阵更新矩阵A,使得矩阵A中的非对角线元素更新。直至多次迭代后,矩阵A的所有非对角线元素都更新为一个接近0的阈值时,迭代结束,此时的矩阵A的对角线元素为特征值,多次迭代的旋转矩阵的乘积为特征向量。
但是,jacobi算法存在迭代次数较多,耗时较长的问题,通过剖析这种问题得出:出现这种问题是由于每次迭代中,所发生更新的非对角线元素的数量较小,导致要达到迭代结束条件所需的迭代轮数过多。
本发明实施例根据上述结论,可以在每次迭代中,在从矩阵A的上三角区域中选取目标元素的基础上,进一步选取与目标元素同时计算的独立元素,使得后续可以根据目标元素和独立元素的索引,共同求得此次迭代的旋转矩阵,之后再根据该旋转矩阵更新矩阵A时,由于目标元素和独立元素的共同影响,矩阵A中发生更新的非对角线元素数量增大,这使得要达到迭代结束条件所需的迭代轮数降低。
需要说明的是,本发明实施例可以应用于多方安全计算(SMC,Secure Multi-Party Computation)场景中,目的在于数据参与方在无可信第三方的场景中共同约定计算函数,互相不暴露原始数据。该场景下,矩阵A可以为密文矩阵,每个元素为密文元素,且在计算过程中不暴露每个元素的具体数值。另外该矩阵A也可以为常规的明文矩阵,每个元素为明文元素,本发明对此不作限定。
在矩阵A为密文矩阵的情况下,由于每次迭代涉及到求解绝对值等开销较大的计算,因此通过降低迭代轮数,也可以大幅降低整个计算过程的计算开销。
具体的,目标元素可以为矩阵A的上三角区域中的一个元素,例如,假设存在5维矩阵A:
Figure GDA0003319572500000051
则矩阵A的对角线为5个元素1形成的线,上三角区域可以包括对角线上方的所有元素。
进一步的,独立元素可以为位于目标斜线上的元素,目标斜线是上三角区域中两条互补且与矩阵A的对角线平行的斜线。其中,两条互补的斜线是指两条斜线的元素个数加起来等于矩阵A的维度。
可选的,所述密文矩阵为N×N矩阵;选取的独立元素的数量和目标元素的数量之和为
Figure GDA0003319572500000052
具体的,每轮迭代中,互不影响的元素最多含有
Figure GDA0003319572500000053
个,可以如此理解,每一个非对角线元素都是由两个对角线元素确定的,如,索引为(1,3)的非对角线元素8(矩阵A的首行为第0行,首列为第0列,索引(1,3)指矩阵A中第1行第3列),是由索引为(1,1)的对角线元素,索引为(3,3)对角线元素的确定的,通过旋转矩阵更新索引为(1,3)的非对角线元素8时,只会影响索引为(1,1)的对角线元素、索引为(3,3)对角线元素,以及这两个对角线元素所在的行和列,其他元素不会被影响。
对于维度为N的矩阵A而言,两个不同的对角线元素可以确定一个非对角线元素,N个对角线元素最多有
Figure GDA0003319572500000061
对互不重叠的非对角线元素,每次更新
Figure GDA0003319572500000062
个非对角线元素,是一轮迭代可更新的最大值。因此,选取的独立元素的目标数量可以为
Figure GDA0003319572500000063
以达到一轮迭代可更新的最大值。
可选的,步骤101具体可以包括:
子步骤1011、从所述密文矩阵的上三角区域中,选取平方值最大的元素作为所述目标元素。
例如,参照上述矩阵A:
Figure GDA0003319572500000064
目标斜线可以包括元素[6,8,5]所处的斜线,以及元素[3,4]所处的斜线。独立元素即可以为从目标斜线上选取的元素,且由于N为5,则选取的独立元素的数量与目标元素的数量之和为
Figure GDA0003319572500000065
个,其中,目标元素为矩阵A的上三角区域中平方值最大的元素8,由于目标元素8位于第1行第3列,元素6位于矩阵第0行第2列,处于互补且与对角线平行的目标斜线上,因此索引为(0,2)的元素6被成功选取,作为独立元素与目标元素在这一轮迭代中同时更新。
需要说明的是,在多方安全计算场景中,由于矩阵A可以为密文矩阵,元素的值在计算过程中不向外暴露,则本发明实施例求密文矩阵的上三角区域中平方值最大的元素,可以先求上三角区域中的最大值元素,具体可以将密文矩阵中的元素分为两组比较组,两组之间的元素两两依次比较,取出最大值生成新数组,依次比较,直到数组长度为1为止。
例如:对元素[7,3,1,5,8,6,10]计算最大值。首先生成两个等长比较组a_arr=[7,1,8],b_arr=[3,5,6](因为原数组长度为奇数,因此先不考虑最后一个值)。计算tmp_arr=relu(b_arr-a_arr)+a_arr。由于relu函数计算时,若输入值小于0,则将该值替换为0,若输入值大于0,保留原值,因此,这一步计算后结果为:[7,5,8]。即取出了两个等长比较组中对应的较大值。再将原数组最开始未取的最后一个值[10]添加到新数组末端,生成[7,5,8,10],再进行拆分,比较,选取。在下一轮循环中,生成a_arr=[7,8],b_arr=[5,10];tmp_arr=relu(b_ar-a_arr)+a_arr=[7,10];再进行拆分比较a_arr=[7],b_arr=[10];tmp_arr=relu(b_arr-a_arr)+a_arr=[10];此时,tmp_arr长度为1;最大值已取到,退出循环。
步骤102、根据所述目标元素和所述独立元素,计算旋转矩阵。
Figure GDA0003319572500000071
该矩阵为元素xk,l的旋转矩阵,其旋转角θ由元素xk,l和其对应的对角线元素xk,k,xl,l,本发明实施例中,每一个目标元素和独立元素的旋转矩阵Q都满足上述旋转矩阵特征,除了目标元素、独立元素以及目标元素和独立元素的对称元素之外,旋转矩阵Q中其余非对角线元素均为0,除目标元素及独立元素对应的两个对角线元素外,其余对角线元素均为1。该旋转矩阵可使得Ai+1=QT iAQi的xk,l和其对称元素xl,k为0,从而实现对矩阵A的更新。其中,A为矩阵,T为矩阵转置操作。
具体的,在本发明实施例中,根据独立元素和目标元素求得旋转角θ后,即得知了旋转矩阵Q中对应元素的三角函数值,从而求解得到旋转矩阵Q。
步骤103、通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵。
可选的,可以通过公式:A’=QT×A×Q,计算得到所述更新后的密文矩阵;其中,A’为所述更新后的密文矩阵,Q为所述旋转矩阵,T为矩阵转置操作。
在本发明实施例中,通过公式:A’=QT×A×Q,可以实现利用旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵的目的,更新后的密文矩阵中,受目标元素和独立元素影响的非对角线元素发生了更新。
步骤104、在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
在本发明实施例中,步骤101至103为一次迭代操作,每次迭代操作结束后,得到的更新后的密文矩阵中,受目标元素和独立元素影响的非对角线元素发生了更新,直至经过至少一次迭代后,若更新后的密文矩阵的非对角线元素都小于预设阈值(该阈值可以为一个接近0的值),则可以确定满足迭代结束条件,此时停止迭代,将最后一次迭代得到的更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,实现了对密文矩阵的特征值和特征向量的求解。
综上,本发明实施例提供的一种数据处理方法,通过在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,目标斜线是两条互补且与密文矩阵的对角线平行的斜线;根据目标元素和独立元素,计算旋转矩阵;通过旋转矩阵更新密文矩阵,得到更新后的密文矩阵;在经过至少一次迭代后,若更新后的密文矩阵的非对角线元素都小于预设阈值,则将更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,本发明可以在每次迭代中,在从密文矩阵的上三角区域中选取目标元素的基础上,进一步选取与目标元素同时计算的独立元素,使得后续可以根据目标元素和独立元素的索引,共同求得此次迭代的旋转矩阵,之后再根据该旋转矩阵更新密文矩阵时,由于目标元素和独立元素的共同影响,密文矩阵中发生更新的非对角线元素的数量增大,这使得要达到迭代结束条件所需的迭代轮数降低,提高了计算效率。
图2是本发明实施例提供的一种数据处理方法的步骤流程图,如图2所示,该方法可以包括:
步骤201、从所述密文矩阵的上三角区域中,选取平方值最大的元素作为所述目标元素。
该步骤具体可以参照上述子步骤1011,此处不再赘述。
步骤202、将所选取的目标元素在所述密文矩阵中的第一位置索引恢复为明文。
在本发明实施例中,由于密文矩阵中的密文元素是不向外暴露具体数值的,因此,提取得到的目标元素的第一位置索引也为密文形式,为了进行后续操作,需要将密文矩阵中的第一位置索引按照预设的解密策略恢复为明文。
步骤203、根据明文的所述第一位置索引,选取位于所述目标斜线上的一个或多个元素作为所述独立元素。
可选的,步骤203具体可以包括:
子步骤2031、根据明文的所述第一位置索引,选取所述上三角区域中的候选元素,所述候选元素包括:与所述目标元素处于同一斜线上的元素,以及所述目标元素所处斜线的互补斜线上的元素。
其中,所述互补斜线上的元素的数量与所述目标元素所处斜线上的元素的数量的加和结果,为所述密文矩阵的矩阵维度。
子步骤2032、从所述候选元素中,选取目标数量个独立元素。
其中,所述独立元素对应的对角线元素,与所述目标元素以及已选取的独立元素处于不同行或不同列,独立元素对应的对角线元素为与所述独立元素处于相同行或相同列,且处于对角线上的元素。
在本发明实施例中,现通过图3至图6进行子步骤2031至子步骤2032的具体实现过程的描述,其中,图3至图6示出了一个7×7的矩阵,对角线为AB,若矩阵中平方值最大的非对角线元素为x2,4,则元素x2,4为目标元素,那么优先选取的其他独立元素为目标斜线上的元素,目标斜线上的元素为与目标元素同斜线,或目标元素的对称元素所在斜线上的元素,即图3至图6中斜线CD和斜线EF上的元素。
具体的,为了保证每次迭代矩阵中发生更新的元素数量最多,则选取独立元素的条件为选取的独立元素对应的对角线元素,与所述目标元素以及已选取的独立元素处于不同行或不同列,使得各个目标元素和独立元素所影响发生更新的元素互不重叠。
选取时,从第一个未选取的对角线元素开始,在目标斜线上寻找满足独立元素条件的其他独立元素。如图4和图5所示,目标斜线上的第一个优先选取元素为x0,2,但由于x0,2对应的另一个对角线元素x2,2也同时为目标元素的对角线元素,则元素x0,2违背了独立元素对应的对角线元素,与目标元素以及已选取的独立元素处于不同行或不同列的条件。因此继续计算目标斜线上是否有其他优先选取元素,即斜线EF上的x0,5元素,经检查,元素x0,5满足独立元素条件,因此被选择为独立元素,其对应的对角线元素x0,0和x5,5也被划为独立元素的对角线元素。
进一步参照图6,在目标斜线上选取元素x1,3作为独立元素。至此为止,在7×7的矩阵中,我们已选取
Figure GDA0003319572500000101
个互相独立的非对角线元素,停止选取,开始计算相应的旋转矩阵对原矩阵进行更新。
需要说明的是,上述示例中,候选元素为斜线CD和斜线EF上的元素,可以按照x0,2—x0,5—x1,3—x1,6—x3,5—x4,6的顺序,依次确定每个候选元素是否满足独立元素的选取条件。另外,上述顺序也可以根据实际需求进行更改,本发明实施例对此不作限定。
步骤204、根据所述目标元素和所述独立元素,计算旋转矩阵。
该步骤具体可以参照上述步骤102,此处不再赘述。
可选的,步骤204具体可以包括:
子步骤2041、构建与所述密文矩阵的维度相同的初始矩阵,所述初始矩阵的每个元素为0。
在该步骤中,假设密文矩阵的维度为5,则初始矩阵可以为:
Figure GDA0003319572500000111
子步骤2042、根据每个所述目标元素和每个所述独立元素在所述密文矩阵中的第一位置索引,确定每个所述目标元素和每个所述独立元素在所述初始矩阵中的第二位置索引、每个所述目标元素的对角线元素和每个所述独立元素的对角线元素在所述初始矩阵中的第三位置索引、以及每个所述目标元素的对称元素和每个所述独立元素的对称元素在所述初始矩阵中的第四位置索引。
在该步骤中,参照上述子步骤2041中的初始矩阵,初始矩阵的首行为第0行,首列为第0列,假设目标元素为x2,4,独立元素为x1,3,则目标元素x2,4的第一位置索引为(2,4),独立元素为x1,3的第一位置索引为(1,3),进一步的,目标元素x2,4的对角线元素在初始矩阵中的第三位置索引为(2,2)和(4,4),独立元素x1,3的对角线元素在初始矩阵中的第三位置索引为(1,1)和(3,3),目标元素x2,4的对称元素在初始矩阵中的第四位置索引为(4,2),独立元素x1,3的对称元素在初始矩阵中的第四位置索引为(3,1)。由于初始矩阵和密文矩阵维度相同,因此,第二位置索引和第一位置索引相同。
子步骤2043、在所述初始矩阵中,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,得到所述旋转矩阵,所述三角函数值根据每个所述目标元素的对角线元素或每个所述独立元素的对角线元素计算得到。
其中,一个元素的对角线元素为与所述一个元素处于相同行或相同列,且处于所述对角线上的元素,一个元素的对称元素为相对于所述对角线与所述一个元素对称的元素。
在该步骤中,根据子步骤2041提供的初始矩阵Q1和子步骤2043得到的位置索引,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,得到所述旋转矩阵。其中,具体的三角函数值的类型可以根据实际需求进行设定,本发明实施例对此不作限定。
可选的,子步骤2043具体可以通过在所述初始矩阵中,为所述第二位置索引对应的元素赋予正弦三角函数值的相反数;为所述第三位置索引对应的元素赋予余弦三角函数值;为所述第四位置索引对应的元素赋予正弦三角函数值的方式实现。
具体的,根据第二位置索引(2,4)、第二位置索引(1,3)、第三位置索引(2,2)和(4,4)、第三位置索引(1,1)和(3,3)、第四位置索引(4,2)、第四位置索引(3,1),按照为初始矩阵Q1中第二位置索引对应的元素赋予正弦三角函数值的相反数;为第三位置索引对应的元素赋予余弦三角函数值;为第四位置索引对应的元素赋予正弦三角函数值,可以得到最终的旋转矩阵Q为:
Figure GDA0003319572500000131
其中,针对元素xk,l,旋转角θ的计算方案如下所示:
当xk,k=xl,l时,
Figure GDA0003319572500000132
当xk,k≠xl,l时,
Figure GDA0003319572500000133
求得
Figure GDA0003319572500000134
限定
Figure GDA0003319572500000135
进而求得
Figure GDA0003319572500000136
例如,对于独立元素x1,3,k=1,l=3,经计算得独立元素x1,3的旋转角的正弦和余弦值分别为,sinθ1,3=0.7071,cosθ1,3=0.7071。
需要说明的是,在多方安全计算场景下,计算旋转矩阵的过程仅需要在旋转矩阵的对应位置赋值对应的旋转三角函数值即可,从而减少大量的矩阵内积操作,这在矩阵维度较大的情况下对计算时间的降低有很大帮助。
步骤205、通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵。
该步骤具体可以参照上述步骤103,此处不再赘述。
步骤206、在进行至预设次迭代的情况下,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素按照预设解密规则转换后,得到所述特征值。
在本发明实施例的一种实现方式中,可以每次迭代后都进行判断更新后的密文矩阵的非对角线元素是否都小于预设阈值的步骤。在另一种实现方式中,为了降低运算量,可以仅在进行至预设次迭代的情况下,进行判断更新后的密文矩阵的非对角线元素是否都小于预设阈值的步骤,如,每隔10次迭代,进行一次判断更新后的密文矩阵的非对角线元素是否都小于预设阈值的步骤。
进一步的,在多方安全计算场景下,更新后的密文矩阵的对角线元素依旧为密文形式,因此可以按照预设的解密策略恢复为明文。
步骤207、将所述乘积结果的列向量按照所述预设解密规则转换后,得到所述特征向量。
在该步骤中,在多方安全计算场景下,所有迭代产生的旋转矩阵的乘积结果依旧为密文形式,因此可以按照预设的解密策略恢复为明文。
在本发明实施例中,先通过一个具体示例,对本发明实施例提供的数据处理方法进行详细描述:
假设矩阵A:
Figure GDA0003319572500000141
首先选取矩阵A中上三角区域中平方值最大的元素作为目标元素,在此例中选取的即为第1行第3列的元素8作为目标元素(首行为第0行,首列为第0列)。
接下来进行与目标元素互不影响的独立元素选取,在本例中候选元素即与目标元素8位于与矩阵对角线平行的斜线上的元素6和元素5,以及与目标元素所在斜线互补的斜线上的元素3和元素4;由于元素8位于第1行第3列,剩余的候选对角线元素包含(0,0),(2,2),(4,4)。优先从对角线元素(0,0)开始选取,元素6位于矩阵第0行第2列,与目标元素8对应的两对角线元素互不影响,因此元素(0,2)(第0行第2列)被成功选取,与目标元素在这一轮迭代中同时更新。由于该矩阵为5×5的矩阵,我们只需选取
Figure GDA0003319572500000151
个元素即可。
选取完本次的目标元素和独立元素后,开始计算本次迭代的旋转矩阵Q,根据所有目标元素和独立元素及其对应的对角线元素,计算其旋转角的正弦和余弦值,以目标元素(1,3)即元素8来说明计算方案。旋转角θ的计算方案如下所示:
当xk,k=xl,l时,
Figure GDA0003319572500000152
当xk,k≠xl,l时,
Figure GDA0003319572500000153
求得
Figure GDA0003319572500000154
限定
Figure GDA0003319572500000155
进而求得
Figure GDA0003319572500000156
目标元素(1,3)即对应上述计算方案中k=1,l=3;经计算得目标元素(1,3)旋转角的正弦和余弦值分别为,sinθ1,3=0.7071,cosθ1,3=0.7071;同理计算得另一个独立元素(0,2)对应的旋转角正余弦值分别为sinθ0,2=0.7071,cosθ0,2=0.7071。最终旋转矩阵Q如下:
Figure GDA0003319572500000157
之后根据旋转矩阵Q更新矩阵A:
Figure GDA0003319572500000161
此时更新后的矩阵A’的非对角线元素并未全置为0,则继续重复上述操作,选取目标元素、独立元素、计算旋转矩阵、更新矩阵A,直至更新后的矩阵A’全部非对角线元素置于0为止。最终需进行20轮迭代完成计算,计算得到的特征值为[-3.55829067,-7.54365972,19.54130152,2.73311751,-6.17246864];特征对应的向量矩阵ev为(每一列为相应特征值对应的特征向量):
Figure GDA0003319572500000162
综上,本发明实施例提供的数据处理方法,通过在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,目标斜线是两条互补且与密文矩阵的对角线平行的斜线;根据目标元素和独立元素,计算旋转矩阵;通过旋转矩阵更新密文矩阵,得到更新后的密文矩阵;在经过至少一次迭代后,若更新后的密文矩阵的非对角线元素都小于预设阈值,则将更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,本发明可以在每次迭代中,在从密文矩阵的上三角区域中选取目标元素的基础上,进一步选取与目标元素同时计算的独立元素,使得后续可以根据目标元素和独立元素的索引,共同求得此次迭代的旋转矩阵,之后再根据该旋转矩阵更新密文矩阵时,由于目标元素和独立元素的共同影响,密文矩阵中发生更新的非对角线元素的数量增大,这使得要达到迭代结束条件所需的迭代轮数降低,提高了计算效率。
图7是本发明实施例提供的一种数据处理装置的步骤流程图,如图7所示,该装置可以包括:
选取模块301,用于在每次迭代中,从所述密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;
可选的,选取模块301,包括:
目标元素选取子模块,用于从所述密文矩阵的上三角区域中,选取平方值最大的元素作为所述目标元素。
可选的,选取模块301,包括:
第三转换子模块,用于将所选取的目标元素在所述密文矩阵中的第一位置索引恢复为明文;
独立元素选取子模块,用于根据明文的所述第一位置索引,选取位于所述目标斜线上的一个或多个元素作为所述独立元素。
可选的,所述独立元素选取子模块,包括:
第一选取单元,用于根据明文的所述第一位置索引,选取所述上三角区域中的候选元素,所述候选元素包括:与所述目标元素处于同一斜线上的元素,以及所述目标元素所处斜线的互补斜线上的元素,所述互补斜线上的元素的数量与所述目标元素所处斜线上的元素的数量的加和结果,为所述密文矩阵的矩阵维度;
第二选取单元,用于从所述候选元素中,选取目标数量个独立元素,所述独立元素对应的对角线元素,与所述目标元素以及已选取的独立元素处于不同行或不同列,其中,所述独立元素对应的对角线元素为与所述独立元素处于相同行或相同列,且处于对角线上的元素。
可选的,所述密文矩阵为N×N矩阵;所述目标数量和所述目标元素的数量之和为
Figure GDA0003319572500000171
计算模块302,用于根据所述目标元素和所述独立元素,计算旋转矩阵;
可选的,计算模块302,包括:
构建子模块,用于构建与所述密文矩阵的维度相同的初始矩阵,所述初始矩阵的每个元素为0;
索引确定子模块,用于根据每个所述目标元素和每个所述独立元素在所述密文矩阵中的第一位置索引,确定每个所述目标元素和每个所述独立元素在所述初始矩阵中的第二位置索引、每个所述目标元素的对角线元素和每个所述独立元素的对角线元素在所述初始矩阵中的第三位置索引、以及每个所述目标元素的对称元素和每个所述独立元素的对称元素在所述初始矩阵中的第四位置索引;
赋值子模块,用于在所述初始矩阵中,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,得到所述旋转矩阵,所述三角函数值根据每个所述目标元素的对角线元素或每个所述独立元素的对角线元素计算得到;
其中,一个元素的对角线元素为与所述一个元素处于相同行或相同列,且处于所述对角线上的元素,一个元素的对称元素为相对于所述对角线与所述一个元素对称的元素。
可选的,赋值子模块,包括:
第一赋值单元,用于在所述初始矩阵中,为所述第二位置索引对应的元素赋予正弦三角函数值的相反数;
第二赋值单元,用于为所述第三位置索引对应的元素赋予余弦三角函数值;
第三赋值单元,用于为所述第四位置索引对应的元素赋予正弦三角函数值。
更新模块303,用于通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;
可选的,更新模块303包括:
更新子模块,用于通过公式:A’=QT×A×Q,计算得到所述更新后的密文矩阵;
其中,A’为所述更新后的密文矩阵,Q为所述旋转矩阵,T为矩阵转置操作。
确定模块304,用于在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
可选的,确定模块304,包括:
第一转换子模块,用于在进行至预设次迭代的情况下,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素按照预设解密规则转换后,得到所述特征值;
第二转换子模块,用于将所述乘积结果的列向量按照所述预设解密规则转换后,得到所述特征向量。
综上,本发明实施例提供的数据处理装置,通过在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,目标斜线是两条互补且与密文矩阵的对角线平行的斜线;根据目标元素和独立元素,计算旋转矩阵;通过旋转矩阵更新密文矩阵,得到更新后的密文矩阵;在经过至少一次迭代后,若更新后的密文矩阵的非对角线元素都小于预设阈值,则将更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,本发明可以在每次迭代中,在从密文矩阵的上三角区域中选取目标元素的基础上,进一步选取与目标元素同时计算的独立元素,使得后续可以根据目标元素和独立元素的索引,共同求得此次迭代的旋转矩阵,之后再根据该旋转矩阵更新密文矩阵时,由于目标元素和独立元素的共同影响,密文矩阵中发生更新的非对角线元素的数量增大,这使得要达到迭代结束条件所需的迭代轮数降低,提高了计算效率。
图8是根据一示例性实施例示出的一种用于数据处理的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)的接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在设备800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在所述装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当设备800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音信息处理模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到设备800的打开/关闭状态,组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频信息处理(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图9是本申请的一些实施例中服务器的结构示意图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processingunits,CPU)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行图1所示的数据处理方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种数据处理方法,所述方法包括:在每次迭代中,从所述密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;根据所述目标元素和所述独立元素,计算旋转矩阵;通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
以上对本申请所提供的一种数据处理方法、一种数据处理装置和一种用于数据处理的装置,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (20)

1.一种数据处理方法,其特征在于,用于确定密文矩阵的特征值和特征向量,所述方法包括:
在每次迭代中,从所述密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;两条互补的所述目标斜线用于表征:处于两条互补的所述目标斜线上的元素数量之和等于所述密文矩阵的维度;
根据所述目标元素和所述独立元素,计算旋转矩阵;
通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;
在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
2.根据权利要求1所述的方法,其特征在于,所述从所述密文矩阵的上三角区域中选取目标元素,包括:
从所述密文矩阵的上三角区域中,选取平方值最大的元素作为所述目标元素。
3.根据权利要求1或2所述的方法,其特征在于,所述选取与所述目标元素同时计算的独立元素,包括:
将所选取的目标元素在所述密文矩阵中的第一位置索引恢复为明文;
根据明文的所述第一位置索引,选取位于所述目标斜线上的一个或多个元素作为所述独立元素。
4.根据权利要求3所述的方法,其特征在于,所述选取位于所述目标斜线上的一个或多个元素作为所述独立元素,包括:
根据明文的所述第一位置索引,选取所述上三角区域中的候选元素,所述候选元素包括:与所述目标元素处于同一斜线上的元素,以及所述目标元素所处斜线的互补斜线上的元素,所述互补斜线上的元素的数量与所述目标元素所处斜线上的元素的数量的加和结果,为所述密文矩阵的矩阵维度;
从所述候选元素中,选取目标数量个独立元素,所述独立元素对应的对角线元素,与所述目标元素以及已选取的独立元素处于不同行或不同列,其中,所述独立元素对应的对角线元素为与所述独立元素处于相同行或相同列,且处于对角线上的元素。
5.根据权利要求4所述的方法,其特征在于,所述密文矩阵为N×N矩阵;所述目标数量和所述目标元素的数量之和为
Figure 950614DEST_PATH_IMAGE001
6.根据权利要求1所述的方法,其特征在于,所述在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量,包括:
在进行至预设次迭代的情况下,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素按照预设解密规则转换后,得到所述特征值;
将所述乘积结果的列向量按照所述预设解密规则转换后,得到所述特征向量。
7.根据权利要求1所述的方法,其特征在于,所述根据所述目标元素和所述独立元素,计算旋转矩阵,包括:
构建与所述密文矩阵的维度相同的初始矩阵,所述初始矩阵的每个元素为0;
根据每个所述目标元素和每个所述独立元素在所述密文矩阵中的第一位置索引,确定每个所述目标元素和每个所述独立元素在所述初始矩阵中的第二位置索引、每个所述目标元素的对角线元素和每个所述独立元素的对角线元素在所述初始矩阵中的第三位置索引、以及每个所述目标元素的对称元素和每个所述独立元素的对称元素在所述初始矩阵中的第四位置索引;
在所述初始矩阵中,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,得到所述旋转矩阵,所述三角函数值根据每个所述目标元素的对角线元素或每个所述独立元素的对角线元素计算得到;
其中,一个元素的对角线元素为与所述一个元素处于相同行或相同列,且处于所述对角线上的元素,一个元素的对称元素为相对于所述对角线与所述一个元素对称的元素。
8.根据权利要求7所述的方法,其特征在于,在所述初始矩阵中,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,包括:
在所述初始矩阵中,为所述第二位置索引对应的元素赋予正弦三角函数值的相反数;
为所述第三位置索引对应的元素赋予余弦三角函数值;
为所述第四位置索引对应的元素赋予正弦三角函数值。
9.根据权利要求1所述的方法,其特征在于,所述通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵,包括:
通过公式:
Figure 773077DEST_PATH_IMAGE002
,计算得到所述更新后的密文矩阵;
其中,A’为所述更新后的密文矩阵,Q为所述旋转矩阵,T为矩阵转置操作。
10.一种数据处理装置,其特征在于,所述装置包括:
选取模块,用于在每次迭代中,从密文矩阵的上三角区域中选取目标元素,以及选取与所述目标元素同时计算的独立元素,所选取的独立元素位于目标斜线上,所述目标斜线是两条互补且与所述密文矩阵的对角线平行的斜线;两条互补的所述目标斜线用于表征:处于两条互补的所述目标斜线上的元素数量之和等于所述密文矩阵的维度;
计算模块,用于根据所述目标元素和所述独立元素,计算旋转矩阵;
更新模块,用于通过所述旋转矩阵更新所述密文矩阵,得到更新后的密文矩阵;
确定模块,用于在经过至少一次所述迭代后,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素确定为特征值,并将所有迭代产生的旋转矩阵的乘积结果的列向量,确定为特征向量。
11.根据权利要求10所述的装置,其特征在于,所述选取模块包括:
目标元素选取子模块,用于从所述密文矩阵的上三角区域中,选取平方值最大的元素作为所述目标元素。
12.根据权利要求10或11所述的装置,其特征在于,所述选取模块包括:
第一转换子模块,用于将所选取的目标元素在所述密文矩阵中的第一位置索引恢复为明文;
独立元素选取子模块,用于根据明文的所述第一位置索引,选取位于所述目标斜线上的一个或多个元素作为所述独立元素。
13.根据权利要求12所述的装置,其特征在于,所述独立元素选取子模块包括:
第一选取单元,用于根据明文的所述第一位置索引,选取所述上三角区域中的候选元素,所述候选元素包括:与所述目标元素处于同一斜线上的元素,以及所述目标元素所处斜线的互补斜线上的元素,所述互补斜线上的元素的数量与所述目标元素所处斜线上的元素的数量的加和结果,为所述密文矩阵的矩阵维度;
第二选取单元,用于从所述候选元素中,选取目标数量个独立元素,所述独立元素对应的对角线元素,与所述目标元素以及已选取的独立元素处于不同行或不同列,其中,所述独立元素对应的对角线元素为与所述独立元素处于相同行或相同列,且处于对角线上的元素。
14.根据权利要求13所述的装置,其特征在于,所述密文矩阵为N×N矩阵;所述目标数量和所述目标元素的数量之和为
Figure 836848DEST_PATH_IMAGE001
15.根据权利要求10所述的装置,其特征在于,所述确定模块包括:
第一转换子模块,用于在进行至预设次迭代的情况下,若所述更新后的密文矩阵的非对角线元素都小于预设阈值,则将所述更新后的密文矩阵的对角线元素按照预设解密规则转换后,得到所述特征值;
第二转换子模块,用于将所述乘积结果的列向量按照所述预设解密规则转换后,得到所述特征向量。
16.根据权利要求10所述的装置,其特征在于,所述计算模块包括:
构建子模块,用于构建与所述密文矩阵的维度相同的初始矩阵,所述初始矩阵的每个元素为0;
索引确定子模块,用于根据每个所述目标元素和每个所述独立元素在所述密文矩阵中的第一位置索引,确定每个所述目标元素和每个所述独立元素在所述初始矩阵中的第二位置索引、每个所述目标元素的对角线元素和每个所述独立元素的对角线元素在所述初始矩阵中的第三位置索引、以及每个所述目标元素的对称元素和每个所述独立元素的对称元素在所述初始矩阵中的第四位置索引;
赋值子模块,用于在所述初始矩阵中,分别为所述第二位置索引、所述第三位置索引、所述第四位置索引对应的元素赋予预设类型的三角函数值,得到所述旋转矩阵,所述三角函数值根据每个所述目标元素的对角线元素或每个所述独立元素的对角线元素计算得到;
其中,一个元素的对角线元素为与所述一个元素处于相同行或相同列,且处于所述对角线上的元素,一个元素的对称元素为相对于所述对角线与所述一个元素对称的元素。
17.根据权利要求16所述的装置,其特征在于,所述赋值子模块包括:
第一赋值单元,用于在所述初始矩阵中,为所述第二位置索引对应的元素赋予正弦三角函数值的相反数;
第二赋值单元,用于为所述第三位置索引对应的元素赋予余弦三角函数值;
第三赋值单元,用于为所述第四位置索引对应的元素赋予正弦三角函数值。
18.根据权利要求10所述的装置,其特征在于,所述更新模块包括:
更新子模块,用于通过公式:
Figure 35748DEST_PATH_IMAGE002
,计算得到所述更新后的密文矩阵;
其中,A’为所述更新后的密文矩阵,Q为所述旋转矩阵,T为矩阵转置操作。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的数据处理方法的步骤。
20.一种电子设备,其特征在于,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至9中任一项所述的数据处理方法的步骤。
CN202010804441.2A 2020-08-12 2020-08-12 数据处理方法及装置 Active CN111859035B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010804441.2A CN111859035B (zh) 2020-08-12 2020-08-12 数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010804441.2A CN111859035B (zh) 2020-08-12 2020-08-12 数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN111859035A CN111859035A (zh) 2020-10-30
CN111859035B true CN111859035B (zh) 2022-02-18

Family

ID=72972797

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010804441.2A Active CN111859035B (zh) 2020-08-12 2020-08-12 数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN111859035B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112311546B (zh) * 2020-12-25 2021-04-09 鹏城实验室 数据保密判定方法、装置、设备及计算机可读存储介质
CN113032839B (zh) * 2021-05-25 2021-08-10 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113326477B (zh) * 2021-07-30 2021-10-29 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN113761464A (zh) * 2021-08-25 2021-12-07 安谋科技(中国)有限公司 数据处理方法、介质及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222307A (zh) * 2019-06-12 2019-09-10 哈尔滨工程大学 基于fpga的实对称矩阵的特征值分解的并行实现方法
CN111241568A (zh) * 2020-02-06 2020-06-05 广州华迅网络科技有限公司 加密方法、解密方法、装置、计算机设备和存储介质
CN111475854A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018026944A1 (en) * 2016-08-02 2018-02-08 X-Logos, LLC Methods and systems for enhanced data-centric encryption systems using geometric algebra
CN106940689A (zh) * 2017-03-07 2017-07-11 电子科技大学 基于Jacobi迭代算法的高精度矩阵特征值分解实现方法
CN110110285B (zh) * 2019-04-10 2020-05-22 浙江大学 一种用于FPGA的并行Jacobi计算加速实现方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110222307A (zh) * 2019-06-12 2019-09-10 哈尔滨工程大学 基于fpga的实对称矩阵的特征值分解的并行实现方法
CN111241568A (zh) * 2020-02-06 2020-06-05 广州华迅网络科技有限公司 加密方法、解密方法、装置、计算机设备和存储介质
CN111475854A (zh) * 2020-06-24 2020-07-31 支付宝(杭州)信息技术有限公司 保护两方数据隐私的协同计算方法及系统

Also Published As

Publication number Publication date
CN111859035A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111859035B (zh) 数据处理方法及装置
CN109165738B (zh) 神经网络模型的优化方法及装置、电子设备和存储介质
CN109977860B (zh) 图像处理方法及装置、电子设备和存储介质
CN113315631B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN112241250B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN114401154B (zh) 一种数据处理方法、装置、密文计算引擎和用于数据处理的装置
CN114969830B (zh) 一种隐私求交方法、系统和可读存储介质
US20230386449A1 (en) Method and apparatus for training neural network, and method and apparatus for audio processing
CN112861175A (zh) 一种数据处理方法、装置和用于数据处理的装置
CN115396100A (zh) 一种基于秘密分享的不经意随机打乱方法和系统
CN113032839B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN109447258B (zh) 神经网络模型的优化方法及装置、电子设备和存储介质
CN112487415B (zh) 计算任务的安全性检测方法及装置
CN113033717B (zh) 一种模型生成方法、装置以及用于模型生成的装置
CN107730443B (zh) 图像处理方法、装置及用户设备
CN112269904A (zh) 数据处理方法及装置
CN115512116B (zh) 图像分割模型优化方法、装置、电子设备及可读存储介质
CN111860552A (zh) 基于核自编码器的模型训练方法、装置及存储介质
CN112580064B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN115085912A (zh) 一种密文计算方法、装置和用于密文计算的装置
CN112861145B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN115357626A (zh) 数据处理方法、装置、电子设备、介质及产品
EP3809336A1 (en) Method, device and storage medium for processing overhead of memory access
CN112583764B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN113821764B (zh) 一种数据处理方法、装置和用于数据处理的装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant