CN116232562B - 一种模型推理方法和装置 - Google Patents
一种模型推理方法和装置 Download PDFInfo
- Publication number
- CN116232562B CN116232562B CN202310519460.4A CN202310519460A CN116232562B CN 116232562 B CN116232562 B CN 116232562B CN 202310519460 A CN202310519460 A CN 202310519460A CN 116232562 B CN116232562 B CN 116232562B
- Authority
- CN
- China
- Prior art keywords
- matrix
- ciphertext
- model
- user
- owner
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0827—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving distinctive intermediate devices or communication paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
本申请提供了一种模型推理方法和装置,涉及大数据及人工智能技术领域,其中方法包括:获取用户输入的多个明文信息;对所述多个明文信息进行加密,获得多个第一密文;将所述多个第一密文发送给模型拥有方;接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;对所述第一中间结果降噪,获得第二密文;将所述第二密文发送给所述模型拥有方;接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。通过上述步骤,可以有效保障模型使用方的信息安全,避免信息泄露。
Description
技术领域
本申请涉及信息安全技术领域,特别是涉及一种模型推理方法和装置。
背景技术
随着科学技术的发展,人工智能聊天机器人应运而生,人工智能聊天机器人能够通过学习和理解人类的语言来进行对话,真正像人类一样来聊天交流,甚至能完成撰写邮件、文案、代码、写论文等。
人工智能聊天机器人的研发离不开超大模型,但是在超大模型使用场景中,模型拥有方和模型使用方往往不是同一个实体,模型使用方在使用超大模型时会把输入和输出泄露给模型拥有方。
目前大都是模型使用方直接将明文信息发送至模型拥有方,由模型拥有方进行模型推理,上述这种方式可能会造成模型使用方的隐私信息泄露。
发明内容
本申请提供的一种模型推理方法和装置,可以有效保障模型使用方的信息安全,避免信息泄露。
第一方面,本申请实施例提供一种模型推理方法,方法包括:
获取用户输入的多个明文信息;
对所述多个明文信息进行加密,获得多个第一密文;
将所述多个第一密文发送给模型拥有方;
接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;
对所述第一中间结果降噪,获得第二密文;
将所述第二密文发送给所述模型拥有方;
接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。
第二方面,本申请提供一种数据处理装置,该装置包括:
第一获取模块,用于获取用户输入的多个明文信息;
第二获取模块,用于对所述多个明文信息进行加密,获得多个第一密文;
第一发送模块,用于将所述多个第一密文发送给模型拥有方;
第一接收模块,用于接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;
第三获取模块,用于对所述第一中间结果降噪,获得第二密文;
第二发送模块,用于将所述第二密文发送给所述模型拥有方;
第二接收模块,用于接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:处理器以及存储有计算机程序指令的存储器;
处理器执行计算机程序指令时实现如第一方面中任意一个实施例中的模型推理方法。
第四方面,本申请实施例提供了一种计算机存储介质,计算机存储介质上存储有计算机程序指令,计算机程序指令被处理器执行时实现如第一方面中任意一个实施例中的模型推理方法。
第五方面,本申请实施例提供了一种计算机程序产品,计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备执行实现如上述第一方面中任意一个实施例中的模型推理方法。
在本申请实施例提供的模型推理方法、装置,其中,方法包括:获取用户输入的多个明文信息;对所述多个明文信息进行加密,获得多个第一密文;将所述多个第一密文发送给模型拥有方;接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;对所述第一中间结果降噪,获得第二密文;将所述第二密文发送给所述模型拥有方;接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。通过上述步骤,将模型使用方输入的信息加密后发送给模型拥有方,使得模型拥有方直接对密文进行相关处理,减少模型拥有方对明文信息的直接接触,可以有效保障模型使用方的信息安全,避免信息泄露。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单的介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的模型推理方法的一流程示意图;
图2是本申请一个实施例提供的模型推理方法的另一流程示意图;
图3是本申请一个实施例提供的模型推理方法的又一流程示意图;
图4是本申请一个实施例提供的模型推理方法的又一流程示意图;
图5是本申请一个实施例提供的模型推理方法的自注意力模型示意图;
图6是本申请一个实施例提供的模型推理方法的多头注意力机制层示意图;
图7是本申请一个实施例提供的模型推理方法的矩阵乘矩阵算法示意图;
图8是本申请一个实施例提供的模型推理方法的线性整流函数示意图;
图9是本申请实施例提供的一种数据处理装置的结构示意图;
图10是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了解决现有技术问题,本申请实施例提供了一种模型推理方法和装置。下面首先对本申请实施例所提供的模型推理方法进行介绍。
图1示出了本申请一个实施例提供的模型推理方法的流程示意图。如图1所示,该方法具体可以包括如下步骤:
步骤100,模型使用方获取用户输入的多个明文信息。
具体地,模型使用方可以是任意可以接收用户输入信息的设备,用户输入信息,模型使用方获取用户输入的多个信息,其中信息包括用户输入的文本信息、音频信息、图片信息等,且多个信息为明文输入,所以模型使用方可以获得用户输入信息的明文信息。
步骤101,模型使用方对所述多个明文信息进行加密,获得多个第一密文。
具体地,由于模型使用方接收到的信息是明文信息,直接将明文信息传输至其他设备,容易造成用户信息的泄露,无法保证模型使用者的隐私安全。为了能够进一步保证客户的信息安全,使用全同态加密算法对多个明文信息进行加密,获得多个第一密文,其中一个第一密文为一个明文信息加密生成的密文信息。
步骤102,模型使用方将所述多个第一密文发送给模型拥有方。
具体地,将上述步骤101生成的多个第一密文发送至模型拥有方,模型拥有方根据自身模型对多个第一密文进行运算,由于步骤101中对明文信息进行了加密,模型拥有方无法获取到用户的明文信息,保护了用户的信息安全。
步骤103,模型拥有方对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果。
具体地,模型推理往往涉及全连接层(矩阵乘矩阵)、二维卷积层、线性整流函数(Rectified Linear Unit,ReLU)、二维最大池化、随机失活层(Dropout)、S型函数(Sigmoid)等基础运算,在不同的应用场景中,模型推理中的运算算法及算法之间的顺序不一样,同样地,第一运算在不同的模型中也代表着不同的运算算法,第一密文经过第一运算处理后,得到第一中间结果,其中第一中间结果也为密文形式。
步骤104,模型拥有方对所述第一中间结果降噪,获得第一数据。
具体地,在步骤101中对明文信息加密时添加了噪音元素,以增加数据的隐蔽性,使得其他设备无法通过推理获取到加密时使用的公钥和私钥信息,从而无法获取明文信息。在对密文进行相应运算时,噪音元素也会参与运算,在运算中,噪音元素可能会变大,噪音元素超过一定阈值后,会对结果产生影响,因此,为了减少噪音对结果的影响,需要在每次运算后对运算得到的结果进行降噪处理,即对所述第一中间结果进行降噪,其中此处的降噪处理为本技术领域通用技术,在此不做赘述。
步骤105,模型拥有方将所述第一中间结果发送给模型使用方。
步骤106,模型使用方对所述第一中间结果降噪,获得第二密文。
具体地,与步骤104原理相同,为了能够减少运算中噪音增加对结果产生的影响,对所述第一中间结果进行降噪,但与步骤104中不同的是,此处是对第一中间结果的明文信息进行降噪,明文信息只能由模型使用方才能获取,所以模型使用方获取模型拥有方生成的第一中间结果,并对第一中间结果进行解密、降噪,此处的降噪处理为本技术领域通用技术手段,在此不做赘述。
步骤107,模型使用方将所述第二密文发送给所述模型拥有方。
具体地,模型使用方对第一中间结果解密、降噪后,进一步对降噪后的信息做加密处理,获得第二密文,并将所述第二密文发送给所述模型拥有方,以便模型拥有方对第二密文进行下一步运算。
步骤108,模型拥有方对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果。
步骤109,模型拥有方将所述推理结果发送给所述模型使用方。
具体地,在不同的模型中,第二运算有不同的运算算法,其中第二运算可以为全连接层(矩阵乘矩阵)、二维卷积层、ReLU、二维最大池化、Dropout、Sigmoid等基础运算,将经过降噪后的第一中间结果(即第一数据和第二密文)输入到第二运算的算法中,经过第二运算后,得到密文形式的推理结果,并将推理结果发送给模型使用方。其中本实施例中仅以两次运算为例,实际模型推理过程中要根据模型实际情况确定需要进行运算的算法及运算次数,在此不做限制。模型使用方对推理结果进行解密,得到经过模型推理后的明文信息。
在上述实施例中,模型使用方对用户输入的明文信息进行加密后,得到第一密文,并将第一密文发送给模型拥有方,模型拥有方通过预设的模型对第一密文进行处理,获得推理结果,整个过程中,模型拥有方都无法接触用户的明文信息,可以有效保障模型使用方的信息安全,避免信息泄露。
参照图2,在本申请提供的又一个实施例中,应用于模型使用方,该方法具体可以包括如下步骤:
步骤200,获取用户输入的多个明文信息。
步骤201,对所述多个明文信息进行加密,获得多个第一密文。
步骤202,将所述多个第一密文发送给模型拥有方。
具体地,步骤200-202的过程如上述步骤100-102所示,为避免重复,在此不作赘述。
步骤203,接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;
具体地,模型拥有方获取得到第一密文后,根据推理模型对第一密文做运算,得到第一中间结果,在模型推理过程中每次运算得到的中间结果都会共享给模型使用方,所以模型使用方能够接收到第一中间结果。
步骤204,对所述第一中间结果降噪,获得第二密文。
具体地,降噪过程如上述步骤104所述,在此不作赘述。
步骤205,将所述第二密文发送给所述模型拥有方。
具体地,将降噪后的第一中间结果再次发送至模型拥有方,以便模型拥有方做下一步运算。其中,由于模型使用方对第一中间结果处理时是对明文信息进行降噪,所以降噪过程中还需要对第一中间结果进行解密和加密,所以发送给模型拥有方的第二密文是密文形式的信息。
步骤206,接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。
具体地,根据推理模型确定模型中的运算次数,在本实施例中以两次运算为例,在对第二密文做第二运算后即可得到密文形式的推理结果。
在本实施例中,模型使用方对用户输入的信息进行加密后,再交由模型拥有方处理,整个过程中,模型拥有方都无法接触用户的明文信息,可以有效保障模型使用方的信息安全,避免信息泄露。
参照图3,在本申请提供的另一个实施例中,应用于模型拥有方,该方法具体可以包括如下步骤:
步骤300,接收所述模型使用方发送的多个第一密文,所述多个第一密文由所述模型使用方对用户输入的多个明文信息进行加密获得。
步骤301,对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果。
具体地,第一运算根据推理模型来确定,具体过程如上述步骤103所示,在此不做赘述。
步骤302,将所述第一中间结果发送给模型使用方。
步骤303,对所述第一中间结果降噪,获得第一数据。
具体地,降噪过程如上述步骤104所示,在此不做赘述。
步骤304,接收所述模型使用方发送的第二密文,所述第二密文由所述模型使用方对所述第一中间结果进行降噪获得。
步骤305,对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果。
步骤306,将所述推理结果发送给所述模型使用方。
具体地,步骤304-306的具体过程如上述步骤108-109所述,在此不做赘述。
在本实施例中,模型拥有方每次运算后都将中间结果与模型使用方共享,模型使用方可以对共享信息进行降噪,以减小噪音对最终结果的影响,且整个过程中,模型拥有方都无法接触用户的明文信息,可以有效保障模型使用方的信息安全,避免信息泄露。
在本申请提供的又一实施例中,所述对所述多个明文信息进行加密,获得多个第一密文,具体可以包括:
从预设的系数模空间随机选取第一多项式;
根据所述第一多项式,获得第一私钥;
从系数模空间随机选取第二多项式;
根据所述第一私钥和所述第二多项式,获得第一公钥;
利用所述第一公钥对所述多个明文信息加密,获得多个第一密文。
具体地,全同态加密支持无需解密,就能够对密文进行任意计算,因此可以立竿见影的解决数据隐私安全问题,其中以Brakerski-Fan-Vercauteren(BFV)加密算法为例。对于明文和密文,应该有不同的系数模空间,而两者具有相同的多项式模空间,其中系数模实际就是每一个多项式项前稀疏的模,多项式模则是整体多项式的值的取模。加密过程中,需要先从系数模空间中选取第一多项式,生成第一私钥,再从系数模空间中选取不同于第一多项式的第二多项式,根据前面生成的第一私钥和选取的第二多项式,基于预设的计算规则,生成第一公钥。一般来说,加密信息时使用公钥,解密时使用私钥,此处也与一般的加密算法一致,使用第一公钥对明文信息进行加密,从而得到对应的密文信息,即第一密文,按照上述的加密方式,对多个明文信息进行加密,获得多个第一密文。
在本实施例中,使用全同态加密算法对用户输入的信息进行加密,加密后的第一密文再发送至其他设备进行运算,因为第一私钥为模型使用方持有,所以其他设备只能接触到密文信息,无法获取明文信息,因此有效的保证了隐私。
在本申请提供的又一实施例中,所述根据所述第一多项式,获得第一私钥,包括:
将所述第一多项式中的n维向量确定为第一私钥,其中n为正整数。
具体地,从预设的系数模空间中随机选取第一多项式,将第一多项式内的多个系数形成的n维向量作为第一私钥,其中n为正整数。
在本实施例中,私钥生成算法与其他算法中私钥生成的过程不同,私钥生成更为便捷,且具有随机性,能够增强私钥的隐蔽性。
在本申请提供的又一实施例中,所述根据所述第一私钥和所述第二多项式,获得第一公钥,包括:
将所述第一私钥和所述第二多项式中的n维向量相乘,得到第一变量;
将中间值与预设的第一预设值相加,获得第二变量;
根据所述第一私钥和所述第二变量,获得第一公钥。
具体地,将第一私钥与第二变量相乘,其中第一私钥与第二变量是从项数相同的不同多项式中提取,基于第一私钥与第二变量的积,再添加一个噪音元素,然后与第二变量一起作为第一公钥,第一公钥的生成表达式可以表示为: ;其中pk表示第一公钥,a表示第二多项式中的多个系数形成的n维向量,即第二变量,s表示第一私钥,e表示第一预设值,q表示系数模。实际上,第一预设值是为了掩盖第二多项式选取的噪音元素,且第一预设值足够小,不影响最终结果。
在本实施例中,使用第一私钥生成第一公钥,可以确保受信任的接收方能够正确地识别发送方,从而增强数据安全性、身份验证和信息准确性。
在本申请提供的又一实施例中,所述对所述第一中间结果降噪,获得第二密文,包括:
利用所述第一私钥对所述第一中间结果解密,获得第一明文;
对所述第一明文降噪,获得第二数据;
利用所述第一公钥对所述第二数据加密,获得第二密文。
具体地,通过使用上述步骤中获取得到的第一私钥对第一中间结果进行解密,解密后获得第一明文,利用一般的降噪手段对第一明文进行降噪,即清除或减小噪音元素,对第一明文降噪后,得到第二数据,为了能够将数据重新发送至模型拥有方进行运算,需要进一步将降噪后的第二数据使用第一公钥进行加密,获得第二密文,并将第二密文发送至模型拥有方。
在本实施例中,在对密文进行相应运算时,噪音元素也会参与运算,在运算中,噪音元素可能会变大,噪音元素超过一定阈值后,会对结果产生影响,因此,在每次运算后对运算得到的结果进行解密、降噪、加密处理,即对所述第一中间结果进行降噪,能够降低噪音元素对推理结果的影响。
在本申请的又一实施例中,所述对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果,包括:
将所述多个第一密文中的任意两个或两个以上的第一密文相加或相乘,获得第一中间结果,每个所述第一密文是由所述模型使用方对所述多个明文信息中的一个明文信息进行加密获得。
具体地,第一运算可以根据具体的模型进行确定,此处以对密文进行相加或相乘来作为第一运算介绍,在本实施例中对用户输入的明文信息进行了全同态加密,全同态加密后的密文信息可以直接进行相加或相乘的操作,不会影响最终的推理结果,其中相加的过程中,使得第一密文的第一个元素与第二密文的第一个元素,按照此方式将两个或两个以上的第一密文相加。同理也可以将两个或两个以上的第一密文相乘,不同的是,若将两个第一密文相加之后生成的密文信息包含元素为2个,但是将两个第一密文相乘之后生成的密文信息包含元素为3个,密文形式发生了改变。因此,在BFV加密算法中,根据特定的算法和参数生成了评估密钥,使用评估密钥对多个第一密文相乘后的结果进行处理,将3个元素处理为2个元素,与第一密文形式保持一致。
在本实施例中,对两个或两个以上的第一密文进行相加或者相乘处理以减少密文数量,从而加快数据的处理速度,同时全同态加密算法生成的评估密钥能够在多个第一密文相乘时减少数据的扩张,增加数据的融合。
在本申请的又一实施例中,所述对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果,包括:
根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵;
设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵;
在所述N-1个非零数值所在的行相邻的情况下,采用第i行的非零数值填充第三矩阵的第i列,获得第四矩阵,i为大于或等于0且小于N的整数;
将所述第一矩阵与所述第四矩阵相乘,获得第一中间矩阵;
对所述第一中间矩阵的各列的顺序进行重新排列,获得推理结果。
具体地,第二运算也是根据具体模型进行选择,在此选择以矩阵乘矩阵为例进行介绍,第一矩阵属于模型使用方,且由模型使用方使用上述全同态加密后得到的第一公钥和第一私钥,对明文数据进行加密得到,此处可以选用第二密文内包含的元素,将第二密文中的单个元素按照顺序逐个填充至第一矩阵中,如:将第二密文中的第一元素填充至第一矩阵的第0列,将第二密文中的第二元素填充至第一矩阵的第1列,直至将第二密文中的所有元素填充至第一矩阵,其中第一元素为第二密文中排序在第1位的元素,第二元素为第二密文中排序在第2位的元素,后续元素与此相同。由于第一数据与第二密文都是密文形式,为了进行区分做了不同的命名,所以确定第一矩阵的方式相同,若选用第一数据确定第一矩阵,则将第一数据中的单个元素按照顺序逐个填充至第一矩阵中,如:将第一数据中的第一个元素填充至第一矩阵的第0列,将第一数据中的第二个元素填充至第一矩阵的第1列,直至将第一数据中的所有元素填充至第一矩阵。第二矩阵内的数值为模型拥有方按照模型预先设置的数据,模型不同,第二矩阵内包含的数值不同。
对于包含多个数值的第二矩阵做不同处理,第二矩阵的同一列只包含一个非零数值,且各非零数值之间所在行数不同,第二个矩阵中包含N-1个非零数值,在所述N-1个非零数值所在的行相邻的情况下,即数值分布较为集中时,将第二矩阵内的数值填充至第三矩阵,其中第三矩阵为与第一矩阵总行数、总列数均相同的矩阵,且第三矩阵内的初始数值均为0。填充规则为:将第二矩阵中第i行的非零数值填充至第三矩阵的第i列,获得第四矩阵,如,第一数值位于第二矩阵的第2行,则对第三矩阵的第2列填充第一数值,直至填充满整列,,按照上述转变规则,将第二矩阵内的非零数值全部填充到第三矩阵中。
将第四矩阵与第一矩阵相乘,由于第四矩阵与第一矩阵行数列数均相同,第四矩阵与第一矩阵相乘时,相同位置的数值直接做乘法,获得第一中间矩阵。
得到第一中间矩阵后,为了在对数据批量处理情况下方便对多个矩阵进行整合,进一步对第一中间矩阵内的数值按照整列移动进行重新排列,移动规则为:记录第二数值所在列数k和第一中间矩阵总行数m,将第二数值左移m*k列,实际上m*k的值可能大于第一中间矩阵的总列数v,若m*k的值大于第一中间矩阵的总列数v,计算m*k除以v的余数g,将第二数值所在列向左移动g列,其中第二数值为第一中间矩阵中的任意一列数值,按照上述方式对第一中间矩阵内的数值按列重新排列,从排序后的第一中间矩阵内按照顺序提取数值,并根据数值提取的先后顺序,将提取出来的数值排序,获得密文序列,即推理结果。
在本实施例中,矩阵乘矩阵与全同态加密技术配合使用,对多个密文信息进行融合,使数据处理更加高效。
在本申请的又一实施例中,所述对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果,包括:
根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵;
设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵;
在所述N-1个非零数值所在的行不相邻的情况下,采用第x行的非零数值填充第三矩阵的第x列,获得第五矩阵,并采用第y行的非零数值填充所述第三矩阵的第y列,获得第六矩阵,x为大于或等于0且小于N/2的整数,y为大于或等于N/2且小于N 的整数;
将所述第一矩阵与所述第五矩阵相乘,获得第二中间矩阵;
将所述第一矩阵与所述第六矩阵相乘,获得第三中间矩阵;
分别对所述第二中间矩阵和第三中间矩阵的各列的顺序进行重新排列,获得推理结果。
具体地,第一矩阵属于模型使用方,且由模型使用方使用上述全同态加密后得到的第一公钥和第一私钥,对明文数据进行加密得到,此处可以直接选用第二密文内包含的元素,将第二密文中的单个元素按照顺序逐个填充至第一矩阵中,如:将第二密文中的第一元素填充至第一矩阵的第0列,将第二密文中的第二元素填充至第一矩阵的第1列,直至将第二密文中的所有元素填充至第一矩阵,其中第一元素为第二密文中排序在第1位的元素,第二元素为第二密文中排序在第2位的元素,后续元素与此相同。由于第一数据与第二密文都是密文形式,为了进行区分做了不同的命名,所以确定第一矩阵的方式相同,若选用第一数据确定第一矩阵,则将第一数据中的单个元素按照顺序逐个填充至第一矩阵中,如:将第一数据中的第一个元素填充至第一矩阵的第0列,将第一数据中的第二个元素填充至第一矩阵的第1列,直至将第一数据中的所有元素填充至第一矩阵。第二矩阵内的数值为模型拥有方按照模型预先设置的数据,模型不同,第二矩阵内包含的数值不同。
第二矩阵的同一列只包含一个非零数值,且各非零数值之间所在行数不同,第二个矩阵中包含N-1个非零数值,在所述N-1个非零数值所在的行不相邻的情况下,即数值分布较为分散时,将第二矩阵内的非零数值分别填充至第五矩阵和第六矩阵,其中第五矩阵、第六矩阵均为与第一矩阵总行数、总列数均相同的矩阵,且第五矩阵和第六矩阵内的初始数值均为0。填充规则为:将第二矩阵中第i行的非零数值填充至第三矩阵的第i列,获得第五矩阵,其中i大于或等于0且小于N/2,采用第y行的非零数值填充所述第三矩阵的第y列,获得第六矩阵,x为大于或等于0且小于N/2的整数,y为大于或等于N/2且小于N 的整数。如若N为4,第三数值位于第二矩阵的第2行,恰好为N/2,将第三数值填充至第五矩阵的第2列,若第三数值位于第二矩阵的第3行,大于N/2,则将第三数值填充至第六矩阵的第3列。按照上述转填充规则,将第二矩阵内的非零数值全部填充至第五矩阵和第六矩阵中。
将第五矩阵与第一矩阵相乘,由于第五矩阵与第一矩阵行数列数均相同,第六矩阵与第一矩阵相乘时,相同位置的数值直接做乘法,获得第二中间矩阵。
将第六矩阵与第一矩阵相乘,由于第六矩阵与第一矩阵行数列数均相同,第六矩阵与第一矩阵相乘时,相同位置的数值直接做乘法,获得第三中间矩阵。
得到第二中间矩阵和第三中间矩阵后,为了方便对多个矩阵整合,进一步对第二中间矩阵和第三中间矩阵内的数值按照整列移动进行重新排列,移动规则为:记录第四数值所在列数k1和第二中间矩阵总行数m1,将第四数值所在列左移m1*k1列,其中第四数值可以为第二中间矩阵中的任意一列的数值,其中m1*k1的值可能大于第二中间矩阵的总列数v1,若m1*k1的值大于第二中间矩阵的总列数v1,计算m1*k1除以v1的余数g1,将第四数值所在列向左移动g1列,按照上述方式对第二中间矩阵内的数值按列重新排列,获得第五矩阵。
记录第五数值所在列数k2、第三中间矩阵总列数p1和第三中间矩阵总行数p2,将第五数值右移(p1-k2)*p2列,其中若(p1-k2)*p2的值大于第二中间矩阵的总列数v2,计算(p1-k2)*p2除以v2的余数g2,将第四数值所在列向右移动g2列,其中第五数值可以为第三中间矩阵中的任意一列数值,按照上述方式对第三中间矩阵内的数值按列重新排列,获得第六矩阵。
将第五矩阵与第六矩阵相同位置处的数值相加,得到第七矩阵,并按照顺序从第七矩阵中提取数值,并将提取的数值按照提取的先后顺序排列为密文序列,即推理结果。
在本实施例中,通过对数据的重新排列使得数据按照一定的排布方式进行排列,便于在处理大量数据时对数据进行合并,以便实现数据批量处理,提高数据处理的效率。
图4示出了本申请一个实施例提供的模型推理方法的又一流程示意图。
本方法主要的应用场景是模型使用方和模型拥有方分属两个不同的实体。为了防止模型使用方和模型拥有方泄露各自的隐私数据,模型使用方使用自身私钥对应的公钥对模型的输入信息进行加密并发送给模型拥有方,最终模型使用方可以得到模型推理结果。具体步骤如下:
模型使用方使用自身私钥对应的公钥对模型的输入信息进行加密并发送给模型拥有方。(优选地,可以对多个输入信息进行批量加密发送给模型拥有方;全同态加密方案使用GPU并行计算优化。)
对于模型的每一层,模型拥有方根据每层模型的参数并结合模型使用方在该层的密文输入计算出秘密共享的碎片,并发送给模型使用方;模型使用方对碎片进行解密和降噪,并将降噪后的碎片加密发送给模型拥有方;模型使用方对密文结果进行解密,获得最终的推理结果,此过程能够保护模型拥有者和使用者的隐私安全,模型拥有者不会泄露模型参数,模型使用者不会泄露模型的输入和输出。
其中,模型推理往往涉及全连接层(矩阵乘矩阵)、二维卷积层、ReLU、二维最大池化、Dropout、Sigmoid 等基础运算。这里主要描述全连接层和ReLU层的实现方案,其他基础运算可以使用通用的方案实现。
参照图5和图6,自注意力模型(Transformer),主要由多头注意力机制(Multi-head Attention)、前馈神经网络(Feed Forward)等部分。
对于Multi-head Attention而言,其计算流程如下,其中线性变换(Linear)和矩阵乘法(MatMul)可以使用矩阵乘矩阵的算法来实现,激活函数(SoftMax)主要是指数运算和除法运算,其中指数运算可以通过泰勒(Taylor)展式来逼近计算,除法运算可以使用求逆算法来实现。
对于Feed Forward 而言,是一个两层的全连接层,第一层的激活函数为 ReLU,第二层不使用激活函数,因此也可以使用矩阵乘矩阵和ReLU函数来实现。
以下对模型推理中重要的几种算法进行举例说明。
第一,全同态加密算法,可以使用BFV、混合同态加密(CKKS)等常见的加密算法,这里以BFV算法为例:
BFV算法包含公私钥生成、加密、解密、同态运算等多个算法。
设多项式环,/>,其中Rt表示多项式,t表示明文的系数模。
私钥生成算法:随机选择,输出私钥sk=s。
公钥生成算法:令,随机选择/>和/>,输出公钥/>;其中q表示密文的系数模,e表示噪音元素。
评估密钥生成算法:对于,随机选择/>,/>,输出评估密钥;其中/>。
加密算法:对于,令/>。随机选择/>和/>,输出密文:
。/>
解密算法: 令,/>,/>,输出:
。
密文加算法: 输出。
密文乘算法:计算:
;
;
。
对c2按w进制展开:
;
得到:和/>;
输出。
使用全同态加密技术,实现矩阵乘矩阵的高效计算。
第二,矩阵乘矩阵,设矩阵和/>,计算C=AB,其中A属于模型使用方,B属于模型拥有方,不妨设/>且/>。具体计算步骤如下:
模型使用方生成全同态加密的公私钥(sk,pk),对矩阵A按列进行加密,即,并发送给模型拥有方,ai表示矩阵A的第i列;
对于每个模型拥有方对矩阵B进行如下处理:
生成向量:
如果;
;
其中bi,j为矩阵B的第i行第j列元素重复m次(下同)。
如果,将/>看成两个向量:
;
。
当时,计算/>并左移km位,记为ck;
当时,分别计算/>并左移km位和/>并右移(n-k)m位,分别记为/>和/>,/>。
模型拥有方计算,并发送给模型使用方,其中k表示元素所在行数。
模型使用方解密得到矩阵C=AB。
参照图7,矩阵B为一个4列3行的矩阵,矩阵A为一个5行4列的矩阵,将矩阵B按照上述方式分类转化为与矩阵A行数列数相同的矩阵,最后相乘后得到的矩阵求和。
该算法的通信量为2个密文(模型拥有方→模型使用方1个密文+模型使用方→模型拥有方1个密文);计算量:模型使用方1次加密+1次解密,模型拥有方2n次旋转+n次明文乘密文+(n-1)次密文加密文。
该算法对于和/>的情形仍然适用,可以对A或B进行分块处理。
其中,图7中的数字仅为区分数值所用,并不代表实际数值,其中,数字相同的元素位置处,具有相同的数值。
使用全同态加密技术,实现非线性函数高效逼近计算,如ReLU函数等。
第三,ReLU函数,ReLU函数是模型常见的组成部分,定义为:
。
在安全计算中需要对ReLU函数进行逼近计算,使用Remez算法,可以得到ReLU函数的次逼近(越大精度越高,计算开销也越大),例如:
。
参照图8,图8中表示ReLU函数的14次逼近,其中图8中灰色线条代表ReLU函数所得结果,黑色线条表示实际结果或应得结果。
对于密文输入x,可以在全同态加密的情况下进行计算该多项式逼近(例如),需要的乘法深度/>。
第四,求逆函数,使用Goldschmidt 近似除法来实现,具体算法如下:
该算法只涉及乘法,可以借助全同态来实现,即将算法中的x,y等值看成密文x和密文y等。
输入: x,迭代次数d;
输出:1/x的近似值;
1: y=1;
2: for do{
3: m=2-x;
4: y=my;
5: x=mx;}
6: return y;
图9示出了本申请一个实施例提供的数据处理装置900的结构示意图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图9,数据处理装置900可以包括:
第一获取模块901,用于获取用户输入的多个明文信息;
第二获取模块902,用于对所述多个明文信息进行加密,获得多个第一密文;
第一发送模块903,用于将所述多个第一密文发送给模型拥有方;
第一接收模块904,用于接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;
第三获取模块905,用于对所述第一中间结果降噪,获得第二密文;
第二发送模块906,用于将所述第二密文发送给所述模型拥有方;
第二接收模块907,用于接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述多个第二密文采用预设的第二运算获得。
可选地,所述第二获取模块902,包括:
第一选取子模块,用于从预设的系数模空间随机选取第一多项式;
第一获取子模块,用于根据所述第一多项式,获得第一私钥;
第二选取子模块,用于从系数模空间随机选取第二多项式;
第二获取子模块,用于根据所述第一私钥和所述第二多项式,获得第一公钥;
第三获取子模块,用于利用所述第一公钥对所述多个明文信息加密,获得多个第一密文。
可选地,所述第一获取子模块,包括:
确定单元,将所述第一多项式中的n维向量确定为第一私钥,其中n为正整数。
可选地,所述第二获取子模块,包括:
第一获取单元,用于将所述第一私钥和所述第二多项式中的n维向量相乘,得到第一变量;
第二获取单元,用于将中间值与预设的第一预设值相加,获得第二变量;
第三获取单元,用于根据所述第一私钥和所述第二变量,获得第一公钥。
可选地,第三获取模块905,包括:
第四获取子模块,用于利用所述第一公钥对所述第一中间结果解密,获得第一明文;
第五获取子模块,用于对所述第一明文降噪,获得第二数据;
第六获取子模块,用于利用所述第一私钥对所述第二数据加密,获得第二密文。
所述数据处理装置900还包括:
第三接收模块,用于接收所述模型使用方发送的多个第一密文,所述多个第一密文由所述模型使用方对用户输入的多个明文信息进行加密获得;
第四获取模块,用于对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果;
第三发送模块,用于将所述第一中间结果发送给模型使用方;
第五获取模块,用于对所述第一中间结果降噪,获得第一数据;
第四接收模块,用于接收所述模型使用方发送的第二密文,所述第二密文由所述模型使用方对所述第一中间结果进行降噪获得;
第六获取模块,用于对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果;
第四发送模块,用于将所述推理结果发送给所述模型使用方。
可选地,所述第四获取模块,包括:
第七获取子模块,用于将所述多个第一密文中的任意两个或两个以上的第一密文相加或相乘,获得第一中间结果,每个所述第一密文是由所述模型使用方对所述多个明文信息中的一个明文信息进行加密获得。
可选地,所述第六获取模块,包括:
第一确定子模块,用于根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵;
第一设置子模块,用于设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵;
第八获取子模块,用于在所述N-1个非零数值所在的行相邻的情况下,采用第i行的非零数值填充第三矩阵的第i列,获得第四矩阵,i为大于或等于0且小于N的整数;
第九获取子模块,用于将所述第一矩阵与所述第四矩阵相乘,获得第一中间矩阵;
第十获取子模块,用于对所述第一中间矩阵的各列的顺序进行重新排列,获得推理结果。
可选地,所述第六获取模块,包括:
第二确定子模块,用于根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵;
第二设置子模块,用于设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵;
第十一获取子模块,用于在所述N-1个非零数值所在的行不相邻的情况下,采用第x行的非零数值填充第三矩阵的第x列,获得第五矩阵,并采用第y行的非零数值填充所述第三矩阵的第y列,获得第六矩阵,其中x为大于或等于0且小于N/2的整数,y为大于或等于N/2且小于N 的整数;
第十二获取子模块,用于将所述第一矩阵与所述第五矩阵相乘,获得第二中间矩阵;
第十三获取子模块,用于将所述第一矩阵与所述第六矩阵相乘,获得第三中间矩阵;
第十四获取子模块,用于分别对所述第二中间矩阵和第三中间矩阵的各列的顺序进行重新排列,获得推理结果。
本申请实施例提供的数据处理装置900能够实现前述方法实施例实现的各个过程,为避免重复,这里不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
图10示出了本申请实施例提供的电子设备的硬件结构示意图。
设备可以包括处理器1001以及存储有程序指令的存储器1002。
处理器1001执行程序时实现上述任意各个方法实施例中的步骤。
示例性的,程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器1002中,并由处理器1001执行,以完成本申请。一个或多个模块/单元可以是能够完成特定功能的一系列程序指令段,该指令段用于描述程序在设备中的执行过程。
具体地,上述处理器1001可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
存储器1002可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器1002可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器1002可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器1002可在综合网关容灾设备的内部或外部。在特定实施例中,存储器1002是非易失性固态存储器。
存储器可包括只读存储器(ROM),随机存取存储器(RAM),磁盘存储介质设备,光存储介质设备,闪存设备,电气、光学或其他物理/有形的存储器存储设备。因此,通常,存储器包括一个或多个编码有包括计算机可执行指令的软件的有形(非暂态)可读存储介质(例如,存储器设备),并且当该软件被执行(例如,由一个或多个处理器)时,其可操作来执行参考根据本公开的一方面的方法所描述的操作。
处理器1001通过读取并执行存储器1002中存储的程序指令,以实现上述实施例中的任意一种方法。
在一个示例中,电子设备还可包括通信接口1003和总线1010。其中,处理器1001、存储器1002、通信接口1003通过总线1010连接并完成相互间的通信。
通信接口1003,主要用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。
总线1010包括硬件、软件或两者,将在线数据流量计费设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线1010可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
另外,结合上述实施例中的方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有程序指令;该程序指令被处理器执行时实现上述实施例中的任意一种方法。
本申请实施例另提供了一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行程序或指令,实现上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要明确的是,本申请并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本申请的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本申请的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。
以上的结构框图中所示的功能模块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本申请的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网格被下载。
还需要说明的是,本申请中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本申请不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
上面参考根据本公开的实施例的方法、装置(系统)和程序产品的流程图和/或框图描述了本公开的各方面。应当理解,流程图和/或框图中的每个方框以及流程图和/或框图中各方框的组合可以由计算机程序指令实现。这些程序指令可被提供给通用计算机、专用计算机、或其它可编程数据处理装置的处理器,以产生一种机器,使得经由计算机或其它可编程数据处理装置的处理器执行的这些指令使能对流程图和/或框图的一个或多个方框中指定的功能/动作的实现。这种处理器可以是但不限于是通用处理器、专用处理器、特殊应用处理器或者现场可编程逻辑电路。还可理解,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合,也可以由执行指定的功能或动作的专用硬件来实现,或可由专用硬件和计算机指令的组合来实现。
以上,仅为本申请的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。
Claims (10)
1.一种模型推理方法,其特征在于,应用于模型使用方,包括:
获取用户输入的多个明文信息;
对所述多个明文信息进行加密,获得多个第一密文;
将所述多个第一密文发送给模型拥有方;
接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述第一密文采用预设的第一运算获得;
对所述第一中间结果降噪,获得第二密文;
将所述第二密文发送给所述模型拥有方;
接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述第二密文和所述模型拥有方对所述第一中间结果降噪以后生成的第一数据采用预设的第二运算获得。
2.根据权利要求1所述的方法,其特征在于,所述对所述多个明文信息进行加密,获得多个第一密文,包括:
从预设的系数模空间随机选取第一多项式;
根据所述第一多项式,获得第一私钥;
从系数模空间随机选取第二多项式;
根据所述第一私钥和所述第二多项式,获得第一公钥;
利用所述第一公钥对所述多个明文信息加密,获得多个第一密文。
3.根据权利要求2所述的方法,其特征在于,所述根据所述第一多项式,获得第一私钥,包括:
将所述第一多项式中的n维向量确定为第一私钥,其中n为正整数。
4.根据权利要求2所述的方法,其特征在于,所述根据所述第一私钥和所述第二多项式,获得第一公钥,包括:
将所述第一私钥和第二变量相乘,获得第一变量,所述第二变量为所述第二多项式中的n维向量,其中,n为正整数;
将所述第一变量与第一预设值相加,获得中间值,其中,所述第一预设值是为了掩盖所述第二多项式选取的噪音元素;
根据所述中间值与所述第二变量,获得第一公钥。
5.根据权利要求2所述的方法,其特征在于,所述对所述第一中间结果降噪,获得第二密文,包括:
利用所述第一私钥对所述第一中间结果解密,获得第一明文;
对所述第一明文降噪,获得第二数据;
利用所述第一公钥对所述第二数据加密,获得第二密文。
6.一种模型推理方法,其特征在于,应用于模型拥有方,包括:
接收所述模型使用方发送的多个第一密文,所述多个第一密文由所述模型使用方对用户输入的多个明文信息进行加密获得;
对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果;
将所述第一中间结果发送给模型使用方;
对所述第一中间结果降噪,获得第一数据;
接收所述模型使用方发送的第二密文,所述第二密文由所述模型使用方对所述第一中间结果进行降噪获得;
对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果;
将所述推理结果发送给所述模型使用方。
7.根据权利要求6所述的方法,其特征在于,所述对所述多个第一密文采用预设的第一运算进行处理,获得第一中间结果,包括:
将所述多个第一密文中的任意两个或两个以上的第一密文相加或相乘,获得第一中间结果,每个所述第一密文是由所述模型使用方对所述多个明文信息中的一个明文信息进行加密获得。
8.根据权利要求6所述的方法,其特征在于,所述对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果,包括:
根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵,其中,M为正整数,N为大于1的正整数;
设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵,其中,U为正整数;
在所述N-1个非零数值所在的行相邻的情况下,采用第i行的非零数值填充第三矩阵的第i列,获得第四矩阵,i为大于或等于0且小于N的整数;
将所述第一矩阵与所述第四矩阵相乘,获得第一中间矩阵;
对所述第一中间矩阵的各列的顺序进行重新排列,获得推理结果。
9.根据权利要求6所述的方法,其特征在于,所述对所述第一数据和所述第二密文采用预设的第二运算进行处理,获得推理结果,包括:
根据所述第二密文或第一数据,确定第一矩阵,所述第一矩阵为M行N列的矩阵,其中,M为正整数,N为大于1的正整数;
设置第二矩阵和第三矩阵,所述第二矩阵为N行U列,所述第二矩阵包括N-1个非零数值,且N-1个非零数值分布在不同行,所述第三矩阵为M行N列的零矩阵,其中,U为正整数;
在所述N-1个非零数值所在的行不相邻的情况下,采用第x行的非零数值填充第三矩阵的第x列,获得第五矩阵,并采用第y行的非零数值填充所述第三矩阵的第y列,获得第六矩阵,其中x为大于或等于0且小于N/2的整数,y为大于或等于N/2且小于N 的整数;
将所述第一矩阵与所述第五矩阵相乘,获得第二中间矩阵;
将所述第一矩阵与所述第六矩阵相乘,获得第三中间矩阵;
分别对所述第二中间矩阵和第三中间矩阵的各列的顺序进行重新排列,获得推理结果。
10.一种数据处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取用户输入的多个明文信息;
第二获取模块,用于对所述多个明文信息进行加密,获得多个第一密文;
第一发送模块,用于将所述多个第一密文发送给模型拥有方;
第一接收模块,用于接收所述模型拥有方发送的第一中间结果,所述第一中间结果由所述模型拥有方基于所述多个第一密文采用预设的第一运算获得;
第三获取模块,用于对所述第一中间结果降噪,获得第二密文;
第二发送模块,用于将所述第二密文发送给所述模型拥有方;
第二接收模块,用于接收所述模型拥有方发送的推理结果,所述推理结果由所述模型拥有方基于所述第二密文和所述模型拥有方对所述第一中间结果降噪以后生成的第一数据采用预设的第二运算获得。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519460.4A CN116232562B (zh) | 2023-05-10 | 2023-05-10 | 一种模型推理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310519460.4A CN116232562B (zh) | 2023-05-10 | 2023-05-10 | 一种模型推理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116232562A CN116232562A (zh) | 2023-06-06 |
CN116232562B true CN116232562B (zh) | 2023-08-01 |
Family
ID=86570049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310519460.4A Active CN116232562B (zh) | 2023-05-10 | 2023-05-10 | 一种模型推理方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116232562B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149174A (zh) * | 2019-06-28 | 2020-12-29 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备和介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11374736B2 (en) * | 2018-06-20 | 2022-06-28 | Clemson University | System and method for homomorphic encryption |
CN110912713B (zh) * | 2019-12-20 | 2023-06-23 | 支付宝(杭州)信息技术有限公司 | 多方联合进行模型数据处理的方法及装置 |
CN114626511B (zh) * | 2022-05-16 | 2023-03-24 | 北京鹰瞳科技发展股份有限公司 | 神经网络的训练方法、推理方法及相关产品 |
CN116089692A (zh) * | 2023-02-14 | 2023-05-09 | 北京航空航天大学 | 基于全同态加密的数据库隐私保护和查询方法及装置 |
-
2023
- 2023-05-10 CN CN202310519460.4A patent/CN116232562B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112149174A (zh) * | 2019-06-28 | 2020-12-29 | 北京百度网讯科技有限公司 | 模型训练方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116232562A (zh) | 2023-06-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112989368B (zh) | 多方联合进行隐私数据处理的方法及装置 | |
CN113297606B (zh) | 基于多混沌与dna运算的彩色量子图像加密及解密方法 | |
CN101005350B (zh) | 加密处理设备和加密处理方法 | |
CN104380651B (zh) | 生成伪随机序列的方法和对数据流进行编码或解码的方法 | |
EP2742644B1 (en) | Encryption and decryption method | |
JP6517436B2 (ja) | 暗号化デバイス及び符号化デバイス | |
JP4835831B2 (ja) | 多数の入力から関数を計算する方法および装置 | |
WO2012157279A1 (ja) | 順序保存暗号化システム、装置、方法及びプログラム | |
CN116150795B (zh) | 基于同态加密的数据处理方法、系统及相关设备 | |
CN116561787A (zh) | 视觉图像分类模型的训练方法、装置及电子设备 | |
EP3891925B1 (en) | A computation device using shared shares | |
CN103427980A (zh) | 一种基于双矩阵变换的ofdm系统物理层安全算法 | |
CN116232562B (zh) | 一种模型推理方法和装置 | |
Tan et al. | High-performance ring-LWE cryptography scheme for biometric data security | |
CN114465708B (zh) | 隐私数据处理方法及装置、系统、电子设备、存储介质 | |
JP6890589B2 (ja) | 計算デバイス及び方法 | |
Babenko et al. | Euclidean division method for the homomorphic scheme ckks | |
Oder | Efficient and side-channel resistant implementation of lattice-based cryptography | |
CA2381937A1 (en) | Method for generating pseudorandom numbers and a method for electronic sigenature | |
Hazzazi et al. | Asymmetric Key Cryptosystem for Image Encryption by Elliptic Curve over Galois Field GF (2 n). | |
CN116455575B (zh) | 一种密钥生成、加密、解密方法、电子设备及存储介质 | |
Appaji et al. | Recent Advancements on symmetric cryptography techniques-A comprehensive Case Study | |
EP4280530A1 (en) | Secure provision of keys for fully homomorphic encryption | |
KR102257779B1 (ko) | 다자간 계산을 위한 유사 보간 | |
CN113268707B (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 |