CN112464174B - 验证多方安全计算软件的方法、装置和用于验证的装置 - Google Patents

验证多方安全计算软件的方法、装置和用于验证的装置 Download PDF

Info

Publication number
CN112464174B
CN112464174B CN202011168381.6A CN202011168381A CN112464174B CN 112464174 B CN112464174 B CN 112464174B CN 202011168381 A CN202011168381 A CN 202011168381A CN 112464174 B CN112464174 B CN 112464174B
Authority
CN
China
Prior art keywords
software
multiparty
verification
preset
model
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
CN202011168381.6A
Other languages
English (en)
Other versions
CN112464174A (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 CN202011168381.6A priority Critical patent/CN112464174B/zh
Publication of CN112464174A publication Critical patent/CN112464174A/zh
Application granted granted Critical
Publication of CN112464174B publication Critical patent/CN112464174B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明实施例提供一种验证多方安全计算软件的方法、装置和用于验证的装置。该方法包括:根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。本发明实施例可以对多方安全计算软件进行审核,保证多方安全计算的准确性和数据安全。

Description

验证多方安全计算软件的方法、装置和用于验证的装置
技术领域
本发明涉及多方安全计算领域,尤其涉及一种验证多方安全计算软件的方法、装置和用于的装置。
背景技术
MPC(Secure Multiparty Computation,多方安全计算)主要用于在保证数据安全前提下,解决互不信任的参与方之间协同计算的问题。具体而言,假设多个参与方各自持有私有数据,各个参与方希望以这些私有数据为输入共同完成对某函数的计算,并且要求每个参与方只能获取计算结果,不能得到其他参与方的任何私有信息。
在MPC技术发展和应用推广中除了关注MPC计算协议本身的安全性,MPC软件自身的正确性也需要被着重关注。因为如果MPC软件存在问题,就很有可能造成数据泄漏、计算结果错误等情况发生。
目前,存在使用TEE(Trusted Execution Environment,可信执行环境)对MPC软件进行完整性验证的解决方案,以保证MPC软件的完整性。然而,仅验证MPC软件的完整性,仍然无法避免MPC软件自身实现方面存在问题的可能性,难以保证多方安全计算的准确性和数据安全。
发明内容
本发明实施例提供一种验证多方安全计算软件的方法、装置和用于验证的装置,可以对多方安全计算软件进行审核,保证多方安全计算的准确性和数据安全。
为了解决上述问题,本发明实施例公开了一种验证多方安全计算软件的方法,包括:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
另一方面,本发明实施例公开了一种验证多方安全计算软件的装置,包括:
审核方式确定模块,用于根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
软件审核模块,用于根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
验证信息生成模块,用于在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
软件验证模块,用于根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
再一方面,本发明实施例公开了一种用于验证多方安全计算软件的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
本发明实施例包括以下优点:
本发明实施例提供一种验证多方安全计算软件的方法,该方法可以在多方安全计算软件下发之前,基于多方安全计算软件的协议类型,确定多方安全计算软件对应预设审核类型的审核方式,并根据该审核方式对多方安全计算软件进行审核,判断多方安全计算软件是否满足预设审核类型对应的预设要求,从而能够及时发现多方安全计算软件自身存在的问题,当确定多方安全计算软件满足预设要求,也即软件自身不存在问题的情况下,生成多方安全计算软件对应预设审核类型的验证程序、验证规则、以及验证数据,然后再对多方安全计算软件进行验证,避免了因多方安全计算软件自身实现方面存在问题导致验证结果不准确的情况,从而保证了多方安全计算的准确性和数据安全。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种验证多方安全计算软件的方法实施例的步骤流程图;
图2是本发明的一种验证多方安全计算软件的实施示意图;
图3是本发明的一种采用混淆电路协议的MPC软件的运行过程示意图;
图4是本发明的一种采用基于秘密分享的第一协议的MPC软件的运行过程示意图;
图5是本发明的一种采用基于秘密分享的第二协议的MPC软件的运行过程示意图;
图6是本发明的一种采用混淆电路协议的MPC软件的第一模型执行状态示意图;
图7是本发明的一种采用基于秘密分享的第一协议的MPC软件的第一模型执行状态示意图;
图8是本发明的一种采用基于秘密分享的第二协议的MPC软件的第一模型执行状态示意图;
图9是本发明的一种MPC软件与MPC管控程序的交互示意图;
图10是本发明的一种验证多方安全计算软件的装置实施例的结构框图;
图11是本发明的一种用于验证多方安全计算软件的装置800的框图;
图12是本发明的一些实施例中服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
方法实施例
参照图1,示出了本发明的一种验证多方安全计算软件的方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
步骤102、根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
步骤103、在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
步骤104、根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
本发明实施例提供了一种验证多方安全计算软件的方法。所述方法用于对MPC软件进行验证。所述MPC软件指实现MPC协议的软件。
在本发明实施例中,对MPC软件的验证过程主要包括如下两个阶段:首先,根据MPC软件的协议类型对MPC软件进行审核,以判断MPC软件是否满足预设审核类型对应的预设要求,也即判断MPC软件实现程序的逻辑是否正确。然后,在判定MPC软件满足预设审核类型对应的预设要求的情况下,也即判定MPC软件实现程序的逻辑正确的情况下,生成MPC软件对应所述预设审核类型的验证程序、验证规则、以及验证数据,对MPC软件进行验证。由此可以避免在对MPC软件进行验证时,因MPC软件自身实现程序的逻辑存在问题导致验证结果不准确,以及导致多方安全计算的计算结果不准确甚至出现数据泄漏等情况。
参照图2,其示出了本发明实施例提供的一种验证多方安全计算软件的实施示意图。在本发明实施例中,当完成MPC软件的开发之后,先对MPC软件进行审核,判断MPC软件自身的运行逻辑是否正确。具体的,可以根据MPC软件的协议类型,确定MPC软件对应预设审核类型的审核方式,然后根据预设审核类型的审核方式对MPC软件进行审核,判断MPC软件是否满足该预设审核类型对应的预设要求。
其中,预设审核类型与MPC软件被审核的内容对应,在本发明的一种可选实施例中,所述预设审核类型包括但不限于:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。当然,可以根据实际需要审核的内容设置对应的预设审核类型,本发明实施例不做具体的限定。由于不同版本的MPC软件对应的协议类型不同,运行逻辑也不相同,因此,针对不同协议类型的MPC软件,即使预设审核类型相同,预设审核类型对应的预设要求也可以不相同,本发明实施例中的预设要求与MPC软件的预设审核类型以及审核方式相关。
在具体实施过程中,可以采用预先配置的MPC软件审核系统对MPC软件进行审核。其中,所述MPC软件审核系统包含实现MPC软件审核的计算机程序或指令,MPC软件审核系统可以是电子设备中的预先配置的审核系统。本发明实施例中的电子设备可以为移动终端,如手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、UMPC(ultra-mobilepersonal computer,超级移动个人计算机)、上网本或者PDA(personal digitalassistant,个人数字助理)等,或者,所述电子设备也可以为服务器、NAS(NetworkAttached Storage,网络附属存储器)、PC(personal computer,个人计算机)、TV(television,电视机)、柜员机或者自助机等非移动电子设备,本发明实施例不作具体限定。以移动终端为例,本发明实施例中的MPC软件审核系统可以是移动终端中APP Store(应用商店)中的审核系统,对此,本发明实施例不做具体限定。
当MPC软件审核系统完成对MPC软件的审核,即,MPC软件审核系统判断MPC软件满足预设审核类型对应的预设要求时,生成MPC软件对应所述预设审核类型的验证程序、验证规则、以及验证数据,并根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
其中,验证程序与MPC软件的协议类型相对应,验证规则表示MPC软件验证通过所需满足的预设条件,验证数据为验证过程中的标准数据,用于与实际验证过程中产生的数据进行比对,得到验证结果。对MPC软件进行验证,实际上就是基于验证程序和验证规则,对MPC软件的执行过程进行验证,并根据验证过程中实际产生的数据与验证数据进行比对得到验证结果。
如图2所示,在本发明实施例中,对MPC软件进行验证的验证类型包括但不限于MPC软件的完整性验证、关键运算功能验证、敏感安全参数验证、软件运行正确性验证中的至少一种。其中,完整性验证指验证MPC软件是否被篡改,通常在完成对MPC软件的审核之后,会对MPC软件以及MPC软件的配置文件等数据进行代码签名,在对MPC软件进行完整性验证时,可以通过验证代码签名的方式判断MPC软件是否被篡改。关键运算功能验证是指对MPC软件的数据处理、逻辑运算等关键功能进行验证。敏感安全参数验证是指对MPC软件所使用的密码技术的安全性进行验证,包括统计安全参数验证、计算安全参数验证等。软件运行正确性验证可以基于形式化验证的方式实现,形式化验证指利用形式化技术,根据MPC软件的协议类型进行建模和规范设定,通过验证程序对MPC软件的运行过程是否符合预期进行验证,也可以在完整性验证完成之后基于代码签名进行软件运行正确性验证。
在本发明实施例中,MPC软件的审核过程和验证过程均与MPC软件的协议类型对应,本发明实施例根据MPC软件的协议类型确定MPC软件对应预设审核类型的审核方式,并在MPC软件满足预设审核类型对应的预设要求的情况下,生成MPC软件对应预设审核类型的验证程序、验证规则以及验证数据据,从而根据验证程序、验证规则以及验证数据据对MPC软件进行验证。也就是说,在本发明实施例中,预设审核类型与验证类型相对应。从功能上看,对MPC软件审核可以是在MPC软件下发之前对MPC软件的源代码进行验证,以保证MPC软件不存在程序性问题,而对MPC软件验证可以是在对MPC软件的源代码进行编译生成可执行程序之后,验证MPC软件的执行过程是否满足预设条件,以保证MPC软件能够正常运行。
其中,MPC软件的完整性审核、关键运算功能审核、敏感安全参数审核,以及MPC软件的完整性验证、关键运算功能验证、敏感安全参数验证,均可以采用现有技术实现,本发明实施例在此不做赘述。本发明实施例重点提供针对预设审核类型为软件运行正确性审核的审核方式和验证过程。
在本发明的一种可选实施例中,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式可以为基于规范审核方式,步骤102所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
步骤S11、确定所述多方安全计算软件的协议类型对应的程序规范;
步骤S12、根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
步骤S13、在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
在本发明实施例中,当预设审核类型为软件正确性审核时,对应的审核方式包括基于规范审核方式和基于模型审核方式中的任意一种。其中,基于规范审核方式,本质上是判断MPC软件的实现程序是否满足该MPC软件的协议类型对应的程序规范,不同的协议类型对应不同的程序规范。
在本发明的一种可选实施例中,所述多方安全计算软件的协议类型包括但不限于混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
以MPC软件的协议类型为混淆电路协议为例,参照图3,示出了本发明实施例提供的一种采用混淆电路协议的MPC软件的运行过程示意图。协议类型为混淆电路协议的MPC软件,通常包含如下三个部分:garbler(混淆模块)、OT(Oblivious Transfer,茫然传输)模块和evaluator(求解模块)。如图3所示,采用混淆电路协议的MPC软件的运行过程如下:
M11、garbler确定GC(Garbled Circuit,混淆电路)的输入标识OT模块的输入标识/>和输出标识/>其中,输入标识/> 和输出标识/>的来源应满足随机性要求,且标识长度均符合预设标识长度。由于GC和OT均针对二进制数据和二进制计算,输入数据和输出数据均为0或者1,因此,输入标识与GC的输入数据对应,若输入数据为0,则输入标识/>为/>相应地,若输入数据为1,则输入标识/>为/> 与/>同理。其中,混淆电路根据输入标识/>和/>和输出标识/>得到输出标识/>
M12、根据输入标识、输出标识以及真值表制作GC。
M13、根据GC的真实输入比特a和输入标识确定真实输入比特a对应的输入标识/>
M14、garbler将输入标识和制作的GC发送至evaluator。
M15、evaluator对接收的输入标识和GC进行判断,在确定输入标识/>和GC均正确的情况下,将正确的输入标识/>和GC输入到OT模块,由OT模块执行输入标识/>对应的输入数据的茫然传输,并输出运算结果b,获得OT模块的输出标识为/>
M16、evaluator根据接收到的GC、输入标识以及OT模块的输出标识/>计算输出标识Wout,并将计算得到的输出标识Wout反馈给garbler。
M17、garbler根据接收到的输出标识Wout生成输出数据,并将输出数据反馈给evaluator。
本发明实施例根据上述采用混淆电路协议的MPC软件的运行过程,确定协议类型为混淆电路协议的MPC软件的程序规范,从而可以根据该程序规范对基于混淆电路协议的MPC软件进行逻辑校验,以判断基于混淆电路协议的MPC软件的实现程序是否满足混淆电路协议对应的程序规范。
可选地,本发明实施例确定混淆电路协议对应的程序规范可以包括如下N11至N17中的至少一项:
N11、GC的输入标识OT模块的输入标识/>和输出标识/>的来源满足随机性要求,且输入标识/> 和输出标识/>的标识长度符合预设标识长度。
N12、用于制作GC的真值表的逻辑与目标门逻辑一致,其中,目标门逻辑为根据混淆电路协议确定的GC运算逻辑。
N13、输入标识与GC的真实输入比特a相对应。
N14、garbler将正确的输入标识和GC发送至evaluator。
N15、evaluator将正确的输入标识和GC输入到OT模块,且OT模块的茫然传输过程正确。
N16、evaluator采用正确的GC、输入标识以及OT模块的输出标识/>计算输出标识Wout,并将计算得到的输出标识Wout反馈给garbler。
N17、garbler的输出数据与输出标识Wout相匹配。
其中,garbler的输出数据与输出标识Wout相匹配,具体为:若garbler接收到的输出标识Wout为Wout1,输出数据为1,则确定garbler的输出数据与输出标识Wout相匹配;或者,若garbler接收到的输出标识Wout输出数据为0,则确定garbler的输出数据与输出标识Wout相匹配。当garbler的输出数据与输出标识Wout相匹配时,说明MPC软件运行正确。若garbler接收到的输出标识Wout为/>输出数据为1,则确定garbler的输出数据与输出标识Wout不匹配,或者,若garbler接收到的输出标识Wout为/>输出数据为0,则确定garbler的输出数据与输出标识Wout不匹配。当garbler的输出数据与输出标识Wout不匹配时,说明MPC软件运行不正确。
一个示例中,在对某个基于混淆电路协议的MPC软件进行软件运行正确性审核的过程中,采用基于规范审核方式进行审核,如果确定该MPC软件的实现程序满足上述N11至N17所示的程序规范,则可以确定该MPC软件通过软件运行正确性审核。
以MPC软件的协议类型为基于秘密分享的第一协议为例,参照图4,示出了本发明实施例提供的一种采用基于秘密分享的第一协议的MPC软件的运行过程示意图,其中,基于秘密分享的第一协议包括基于秘密分享的sharemind协议。基于秘密分享的sharemind协议用于三个参与方之间的安全计算。如图4所示,采用基于秘密分享的sharemind协议的MPC软件的运行过程如下:
M21、生成随机数x,并根据秘密分享方式分别得到两组分片数据:x1、x2、x3以及y1、y2、y3,并分别将x1至x3、y1至y3输入给参与方P1至P3。具体的,将x1和y1输入给参与方P1,将x2和y2输入给参与方P2,将x3和y3输入给参与方P3。
其中,随机数x的来源符合随机性要求,x1、x2和x3满足x1+x2+x3=x,y1、y2和y3满足y1+y2+y3=x。
M22、各个参与方根据接收到的分片数据进行本地运算,例如加法运算,或者乘法运算。
以加法运算为例,各个参与方根据接收到的分片数据本地计算zi=xi+yi,例如,参与方P1本地计算z1=x1+y1。
本发明实施例中,以乘法运算为例进行展开说明。各个参与方根据接收到的分片数据本地计算zi=xi*yi,具体的,参与方P1本地计算z11=x1*y1,参与方P2本地计算z21=x2*y2,参与方P3本地计算z31=x3*y3。
M23、各个参与方循环计算xi*yi,并由预设参与方生成随机数,其中,xi*yi中包含预设参与方的分片数据。以x1*y2为例,由于x1*y2中,x1为参与方P1的分片数据,y2是参与方P2的分片数据,其中不包含参与方P3的分片数据,因此,由参与方P3生成随机数a1和a2。若计算x1*y3,则由参与方P2生成随机数。也就是说,由参与计算的分片数据中不包含某一参与方的分片数据,则由该参与方生成随机数。其中,生成的随机数需满足随机性要求。
M24、将生成的随机数分别发送至其他参与方,以x1*y2为例,参与方P3将随机数a1发送至参与方P1,将随机数a2发送至参与方P2。
M25、各个参与方根据自身的分片数据和接收到的随机数进行计算,以x1*y2为例,参与方P1计算x1+a1,参与方P2计算y2+a2。
M26、进行本地计算的参与方将计算结果发送参与计算的另一个参与方,以x1*y2为例,参与方P1将x1+a1的计算结果发送至参与方P2,参与方P2将y2+a2的计算结果发送至参与方P1。
M27、各个参与方根据自身参与计算的分片数据以及接收到的数据本地计算xi*yi的分片数据,以x1*y2为例,参与方P1本地计算x1*y2对应参与方P1的分片数据:w1=(x1+a1)(y2+a2)+x1(y2+a2),参与方P2本地计算x1*y2对应参与方P2的分片数据:w2=(x1+a1)y2,参与方P3计算x1*y2对应参与方P3的分片数据:w3=a1*a2。
M28、根据各个参与方计算的分片数据得到计算结果。
本发明实施例根据上述采用基于秘密分享的第一协议的MPC软件的运行过程,确定协议类型为基于秘密分享的第一协议的MPC软件的程序规范,从而可以根据该程序规范对采用基于秘密分享的第一协议的MPC软件进行逻辑校验,以判断采用基于秘密分享的第一协议的MPC软件的实现程序是否满足基于秘密分享的第一协议对应的程序规范。
可选地,本发明实施例确定基于秘密分享的第一协议对应的程序规范可以包括如下N21至N27中的至少一项:
N21、生成的随机数x的来源符合随机性要求,且秘密分享后的每组分片数据满足加性秘密共享。以根据秘密分享方式分别得到两组分片数据x1、x2、x3以及y1、y2、y3为例,x1、x2和x3需满足x1+x2+x3=x,y1、y2和y3需满足y1+y2+y3=x。
N22、各个参与方接收到的分片数据与参与方的秘密分享方式相匹配,且各个参与方根据接收到的分片数据进行了正确的第一逻辑运算。
其中,所述第一逻辑运算包含加法运算,或者乘法运算。
N23、在循环转换角色进行第二逻辑运算时,生成的随机数的来源符合随机性要求。
其中,第二逻辑运算与第一逻辑运算相对应,在进行第二逻辑运算时,随机数由预设参与方生成,预设参与方的分片数据不参与第二逻辑运算。
N24、预设参与方将符合随机性要求的随机数分别发送至目标参与方。其中,目标参与方的分片数据参与第二逻辑运算。
N25、目标参与方根据接收到的随机数以及自身的分片数据进行了正确的逻辑运算。
N26、目标参与方将正确的逻辑运算结果发送至另一个目标参与方。
N27、各个参与方根据自身的分片数据以及接收到随机数、运算数据计算xi*yi对应各个参与方的分片结果。
一个示例中,在对某个采用基于秘密分享的第一协议的MPC软件进行软件运行正确性审核的过程中,采用基于规范审核方式进行审核,如果确定该MPC软件的实现程序满足上述N21至N27所示的程序规范,则可以确定该MPC软件通过软件运行正确性审核。
以MPC软件的协议类型为基于秘密分享的第二协议为例,参照图5,示出了本发明实施例提供的一种采用基于秘密分享的第二协议的MPC软件的运行过程示意图,其中,基于秘密分享的第二协议包括基于秘密分享的PrivPy协议,PrivPy协议为一种自定义的秘密分享协议。基于秘密分享的PrivPy协议的MPC软件是基于不同计算节点之间共享随机数进行逻辑运算的,以四个计算节点S1、S2、Sa、Sb为例,如图5所示,采用基于秘密分享的PrivPy协议的MPC软件的运行过程如下:
M31、确定输入数据,并根据计算节点将输入数据拆分为至少一个分片数据,并将分片数据发送至各个计算节点。
M32、确定计算节点之间的共享随机数。
如图5所示,计算节点S1与S2之间的共享随机数为r_12,计算节点Sa与Sb之间的共享随机数为r_ab。其中,各个计算节点之间的共享随机数的来源符合随机性要求。
M33、各个计算节点将共享随机数输入PRF函数进行运算得到伪随机数,并根据得到的伪随机数和计算节点自身的分片数据进行逻辑运算。
具体的,如图5所示,计算节点S1将其对应的共享随机数输入PRF函数得到伪随机r12和r12′,然后计算节点S1根据自身的分片数据X1、X1′、Y1和Y1′,以及得到的伪随机数进行逻辑运算,得到t1和t1′,其中t1=X1*Y1′-r12,t1′=X1′*Y1-r12′。参照图5,其他计算节点进行类似的运算,本发明实施例在此不做进一步展开说明。
其中,各个计算节点的分片数据与计算节点的秘密分享方式相对应。
M34、各个计算节点将计算结果发送至目标计算节点,具体数据传输方向参照图5。
M35、各个计算节点根据接收到的计算结果进行加法运算,得到结果数据。
M36、根据各个计算节点的结果数据得到最终计算结果。
本发明实施例根据上述采用基于秘密分享的第二协议的MPC软件的运行过程,确定协议类型为基于秘密分享的第二协议的MPC软件的程序规范,从而可以根据该程序规范对采用基于秘密分享的第二协议的MPC软件进行逻辑校验,以判断采用基于秘密分享的第二协议的MPC软件的实现程序是否满足基于秘密分享的第二协议的程序规范。
可选地,本发明实施例确定基于秘密分享的第二协议对应的程序规范可以包括如下N31至N34中的至少一项:
N31、各个计算节点之间的共享随机数的来源符合随机性要求,以及具有关联关系的计算节点之间的共享随机数一致。
N32、各个计算节点采用满足N31所述条件的共享随机数作为伪随机函数的输入数据,并且,采用自身的分片数据以及得到的伪随机数进行了逻辑运算。
N33、将N32中的计算结果发送至目标计算节点。
N34、在各个计算节点接收到正确的计算结果的情况下,各个计算节点根据接收到的计算结果进行了正确的加法运算。
一个示例中,在对某个采用基于秘密分享的第二协议的MPC软件进行软件运行正确性审核的过程中,采用基于规范审核方式进行审核,如果确定该MPC软件的实现程序满足上述N31至N34所示的程序规范,则可以确定该MPC软件通过软件运行正确性审核。
总之,当预设审核类型为软件运行正确性审核时,若采用基于规范审核方式,则根据MPC软件的协议类型确定上述程序规范,根据上述程序规范对MPC软件的实现程序进行逻辑校验,判断MPC软件是否满足上述程序规范,从而判断MPC软件是否满足软件正确性审核对应的预设要求。
在本发明的一种可选实施例中,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式可以为基于模型审核方式,步骤102所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
步骤S21、建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
步骤S22、判断所述第一模型和所述第二模型是否相匹配;
步骤S23、在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
其中,第一模型为基于MPC软件的协议类型建立的标准有限状态模型,第一模型的输入数据、输出数据、执行路径,以及执行状态均满足MPC软件的预设审核类型对应的预设要求。第二模型是根据MPC软件的实际运行过程建立的软件运行状态模型,第二模型的输入数据、输出数据、执行路径,以及执行状态均为审核过程中,MPC软件的实际运行数据。
在本发明实施例中,通过将第一模型与第二模型进行比对,判断第二模型与第一模型是否匹配,当第一模型与第二模型相匹配时,就可以确定MPC软件满足软件正确性审核对应的预设要求。判断第一模型与第二模型是否匹配,实质上就是判断第一模型与第二模型的输入数据、输出数据、执行路径,以及执行状态是否匹配。
在本发明的一种可选实施例中,所述判断所述第一模型和所述第二模型是否相匹配,包括:
分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
以MPC软件的协议类型为混淆电路协议为例,参照图6,示出了本发明实施例提供的一种采用混淆电路协议的MPC软件的第一模型执行状态示意图。具体的,根据前述M11至M17所述的采用混淆电路协议的MPC软件的运行过程,建立MPC软件的第一模型,图6中描述了M11至M17每个步骤完成后第一模型对应的执行状态。由M11至M17的描述可知,在混淆电路协议中主要涉及garbler与evaluator之间的交互,因此,图6中按照程序执行顺序,分别记录了garbler与evaluator在M11至M17每个步骤完成后对应的执行状态,依次为:
T101、garbler的逻辑输入就绪,即确定了garbler将要进行的运算逻辑,其中,运算逻辑包括加法运算,和/或乘法运算;
T102、garbler中的GC数据制作就绪,其中,GC数据用于生成GC,包括输入标识和/>以及用于制作GC的真值表;
T103、garbler的GC制作就绪,即garbler根据输入标识、输出标识以及真值表完成了GC的制作;
T104、garbler数据输入就绪,即garbler根据确定的输入标识确定输入数据;
T105、garbler标识确定就绪,即garbler根据GC的真实输入比特a和输入标识确定真实输入比特a对应的输入标识/>
T106、garbler发送GC及自己标识,即garbler将制作的GC和输入标识发送至evaluator;
T107、evaluator接收到GC及对方输入标识,即evaluator接收到garbler发送的GC以及输入标识
T108、evaluator获得自己输入标识,即evaluator在确定输入标识和GC均正确的情况下,将正确的输入标识/>和GC输入到OT模块,由OT模块执行输入标识/>对应的输入数据的茫然传输,并输出运算结果b,获得OT模块的输出标识为/>evaluator将接收到的输入标识/>和OT模块的输出标识/>作为自己的输入标识;
T109、evaluator解密GC得到输出标识,即evaluator根据接收到的GC、输入标识以及OT模块的输出标识/>计算输出标识Wout
T110、garbler得到相应输出,即garbler根据接收到的输出标识Wout生成输出数据;
T111、evaluator得到输出,即evaluator接收到garbler反馈的输出数据。
以MPC软件的协议类型为基于秘密分享的第一协议为例,参照图7,示出了本发明实施例提供的一种采用基于秘密分享的第一协议的MPC软件的第一模型执行状态示意图。具体的,根据前述M21至M28所述的采用基于秘密分享的第一协议的MPC软件的运行过程,建立MPC软件的第一模型,图7中描述了M21至M28每个步骤完成后第一模型对应的执行状态。其中,基于秘密分享的第一协议包括基于秘密分享的sharemind协议。由M21至M28的描述可知,在基于秘密分享的第一协议中主要涉及三个参与方P1至P3之间的交互,因此,图7中按照程序执行顺序,分别记录了参与方P1至P3在M21至M28每个步骤完成后对应的执行状态,依次为:
T201、数据输入完成,即将生成的随机数按照各个参与方的秘密分享方式进行数据分片,并将得到的分片数据分别输入对应的参与方;
T202、逻辑输入完成,即向各个参与方输入即将要执行的运算逻辑,运算逻辑包括加法运算,和/或乘法运算;
T203、本地计算就绪,即各个参与方根据接收到的分片数据以及运算逻辑完成运算,包括根据接收到的分片数据进行加法运算(zi=xi+yi),或者进行乘法运算(zi=xi*yi);
T204、生成随机数就绪,即在各个参与方进行循环计算时,预设参与方完成随机数的生成,其中,当前运算数据中不包含预设参与方的分片数据,具体可以参考M23的描述,本发明实施例在此不做进一步赘述;
T205、发送完成a1,发送a2,即预设参与方完成对随机数的发送。以x1*y2为例,参与方P3将随机数a1发送至参与方P1,将随机数a2发送至参与方P2;
T206、参与方P1计算完成x1+a1,参与方P2计算完成y2+a2,即各个参与方根据自身的分片数据和接收到的随机数完成逻辑运算,以x1*y2为例,参与方P1计算完成x1+a1,参与方P2计算完成y2+a2;
T207、参与方P1发送完成x1+a1,参与方P2发送完成y2+a2,即进行T206中逻辑运算的参与方将计算结果发送参与运算的另一个参与方,以x1*y2为例,参与方P1将x1+a1的计算结果发送至参与方P2,参与方P2将y2+a2的计算结果发送至参与方P1;
T208、参与方P1计算完成x1*y2对应参与方P1的分片数据:w1=(x1+a1)(y2+a2)+x1(y2+a2),参与方P2计算完成x1*y2对应参与方P2的分片数据:w2=(x1+a1)y2,参与方P3计算完成x1*y2对应参与方P3的分片数据:w3=a1*a2,即各个参与方根据自身参与计算的分片数据以及接收到的数据本地计算xi*yi的分片数据,图7中以x1*y2为例进行说明;
T209、得到计算结果,即根据各个参与方的分片数据得到计算结果。
以MPC软件的协议类型为基于秘密分享的第二协议为例,参照图8,示出了本发明实施例提供的一种采用基于秘密分享的第二协议的MPC软件的第一模型执行状态示意图。具体的,根据前述M31至M34所述的采用基于秘密分享的第二协议的MPC软件的运行过程,建立MPC软件的第一模型,图8中描述了M31至M36每个步骤完成后第一模型对应的执行状态。其中,基于秘密分享的第二协议包括基于秘密分享的PrivPy协议。由M31至M36的描述可知,在基于秘密分享的第二协议中主要涉及四个计算节点S1、S2、Sa、Sb之间的交互,因此,图8中按照程序执行顺序,分别记录了计算节点S1、S2、Sa、Sb在M31至M36每个步骤完成后对应的执行状态,依次为:
T301、数据输入完成,即接收输入数据,并根据计算节点将生成的随机数拆分为至少一个分片数据,并将分片数据发送至各个计算节点,完成各个计算节点的数据输入;
T302、逻辑输入完成,即确定即将要进行的逻辑运算,其中,逻辑运算包括加法运算,和/或乘法运算;
T303、与S2共享随机数完成,即确定了各个计算节点之间的共享随机数,如图5所示,计算节点S1与S2之间的共享随机数为r_12,计算节点Sa与Sb之间的共享随机数为r_ab。其中,各个计算节点之间的共享随机数的来源符合随机性要求。
T304、基于PRF生成伪随机数完成,即各个计算节点将共享随机数输入PRF函数进行运算得到伪随机数;
T305、基于本地分片伪随机数进行本地乘法及加法运算,即各个计算节点根据得到的伪随机数和计算节点自身的分片数据进行逻辑运算;
T306、向Sa及Sb发送正确的数据完成,即各个计算节点将计算结果发送至目标计算节点,具体数据传输方向参照图5,以计算节点S1为例,计算节点S1将t1发送至Sb,将t1′发送至Sa。
T307、接收Sa及Sb发送的数据完成,即各个计算节点接收到其他计算节点发送的计算结果,具体数据传输方向参照图5,以计算节点S1为例,计算节点S1接收Sa和Sb发送的计算结果;
T308、基于本地及交互数据完成加法,及各个计算节点根据自身的分片数据以及接收到的其他计算节点的计算结果进行加法运算;
T309、得到计算结果,即根据各个计算节点分别进行加法运算得到的结果数据得到最终计算结果。
在本发明实施例中,根据MPC软件的协议类型确定第一模型的上述执行状态之后,将MPC软件的第二模型的执行状态与第一模型的上述执行状态进行比对,得到比对结果,根据比对结果判断MPC软件是否满足协议类型对应的预设要求。
在本发明的一种可选实施例中,步骤104所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
步骤S31、将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
步骤S32、基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
在本发明实施例中,当完成对MPC软件的审核之后,在确定MPC软件满足预设审核类型对应的预设要求的情况下,将MPC软件载入到不可信执行环境中,同时将生成的验证程序、验证规则以及验证数据写入可信执行环境中,然后基于MPC软件中包含的用于与验证程序进行交互的预置代码,MPC软件与验证程序进行交互,实现对MPC软件的验证,包括完整性验证、关键运算功能验证、敏感安全参数验证、软件运行正确性验证。
在对MPC软件进行验证时,可以在MPC软件的源代码中增加用于与验证程序进行交互的预置代码,再对调整后的源代码进行编译生成可执行程序,使得生成的可执行程序具备与可信执行环境中的验证程序进行交互的能力;或者,在MPC软件执行根据源代码生成的可执行程序时,预先执行用于与验证程序进行交互的预置代码,从而与可信执行环境中的验证程序交互配合完成验证。
参照图9,示出了本发明实施例提供的一种MPC软件与MPC管控程序的交互示意图。其中,MPC管控程序包括验证模块、验证程序、验证数据,验证模块用于执行验证规则。不可信执行环境中的MPC软件根据验证内容与可信执行环境中的MPC管控程序进行交互,实现对MPC软件的验证,例如,进行软件运行正确性验证时,MPC软件与MPC管控程序进行软件运行过程验证所需交互。
当然,也可以将MPC软件载入到TEE(Trusted Execution Environment,可信执行环境)或者其他可信执行环境中,基于本地可信执行环境中的验证程序、验证规则以及验证数据,或者与其他参与方进行协议,对MPC软件进行完整性验证,当MPC软件符合完整性验证的预设要求时,则在可信执行环境中运行MPC软件,并与其他参与方进行计算结果交互,完整多方安全计算。
然而,由于TEE等可信执行环境的安全级别较高,但是计算能力较弱,现有技术将MPC软件载入可信执行环境的验证方法,在实际应用中就会导致MPC软件运行效率较低。因此,本发明实施例将MPC软件载入不可信执行环境中,提高了MPC软件在实际应用中的运行效率。
此外,本发明实施例在对MPC软件进行验证之前,先对MPC软件进行了审核,然后生成了MPC软件验证所需的验证程序、验证规则和验证数据。在对MPC软件进行验证时,除了对MPC软件进行完整性验证,还包括软件运行安全验证、关键运算功能验证、敏感安全参数验证,对MPC软件的执行过程是否正确、是否符合安全要求进行了验证,从而保证了多方安全计算的准确性和数据安全。
在本发明的一种可选实施例中,所述不可信执行环境和所述可信执行环境可以位于同一个计算节点,或者,所述不可信执行环境和所述可信执行环境可以位于不同的计算节点。当不可信执行环境和可信执行环境属于同一个计算节点时,MPC软件和MPC管控程序在计算节点中进行本地交互;当不可信执行环境和可信执行环境属于不同计算节点时,MPC软件和MPC管控程序基于计算节点间的通信网络进行远程交互。
在本发明的一种可选实施例中,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,步骤104所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
步骤S41、根据所述验证程序和验证规则构建软件行为判断模型;
步骤S42、根据所述关键监控点的运行数据训练所述软件行为判断模型;
步骤S43、基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
步骤S44、根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
在本发明实施例中,MPC软件的软件运行正确性验证可以基于形式化验证的方式实现,形式化验证包括但不限于基于模型验证、基于程序规范验证、以及在完整性验证完成之后基于代码签名进行验证。
其中,基于模型验证的方式具体为,基于MPC软件的协议,建立有限状态模型,该有限状态模型与本发明实施例中的第一模型相对应,有限状态模型在各个运行节点的执行状态均符合MPC软件的验证类型对应的预设要求,再根据MPC软件的实际运行过程建立软件运行状态模型,该软件运行状态模型与本发明实施例中的第二模型相对应,软件运行状态模型在各个运行节点的执行状态是MPC软件在实际运行过程中的真实执行状态,将两个模型的执行状态进行比对,判断两个模型在同一节点的执行状态是否一致,从而确定MPC软件是否满足软件运行正确性验证的预设要求。
基于程序规范验证的方式具体为,基于MPC软件的协议确定软件运行正确性验证对应的程序规范,基于程序规范对MPC软件的运行过程进行逻辑推理,判断MPC软件的实际运行逻辑与程序规范是否匹配,从而确定MPC软件是否满足软件运行正确性验证的预设要求。
然而形式化验证通常会面临推理复杂、建立的模型较大等问题,因此,本发明实施例提出了一种优化方案,在对MPC软件进行形式化验证时,基于验证程序和验证规则构建一个软件行为判断模型,并根据MPC软件的关键监控点的运行数据对构建的软件行为判断模型进行训练,然后利用训练好的软件行为判断模型对MPC软件在关键监控点的运行状态进行判断,判断MPC软件的关键监控点的运行状态是正常状态还是异常状态,从而根据判断结果对MPC软件的软件运行正确性进行验证。
其中,关键监控点与MPC软件的协议类型相对应,关键监控点的确定可以参照前述M11至M17、M21至M28,以及M31至M36列举的MPC软件的关键执行点。关键监控点的运行数据包括MPC软件的内存占用比、进程数量、CPU(Central Processing Unit,中央处理器)占用比、程序相关数据变化、程序流程结构等。软件行为判断模型的训练过程可以基于SVM(Support Vector Machine,支持向量机)以及神经网络技术实现,对此本发明实施例不做具体限定。
需要说明的是,在MPC软件通过审核之后,由于其已经通过完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核,因此,可以证明该MPC软件的实现程序可以正确执行,且安全性可以得到保证。在此基础上,再对该MPC软件进行验证时,只要该MPC软件通过完整性验证即可,而不用再进行关键运算功能验证、敏感安全参数验证、软件运行正确性验证等。在这种情况下,审核过程中使用的程序规范、第一模型、第二模型即为验证中的“验证数据”。
可选地,对MPC软件进行验证的时机可以包括MPC软件更新后、或者MPC软件运行前、或者其他需要软件验证的时刻,可以根据实际需求确定验证的时机,如采用随机抽检的方式确定验证的时机。
综上,本发明实施例提供一种验证多方安全计算软件的方法,该方法可以在多方安全计算软件下发之前,基于多方安全计算软件的协议类型,确定多方安全计算软件对应预设审核类型的审核方式,并根据该审核方式对多方安全计算软件进行审核,判断多方安全计算软件是否满足预设审核类型对应的预设要求,从而能够及时发现多方安全计算软件自身存在的问题,当确定多方安全计算软件满足预设要求,也即软件自身不存在问题的情况下,生成多方安全计算软件对应预设审核类型的验证程序、验证规则、以及验证数据,然后再对多方安全计算软件进行验证,避免了因多方安全计算软件自身实现方面存在问题导致验证结果不准确的情况,从而保证了多方安全计算的准确性和数据安全。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图10,示出了本发明的一种验证多方安全计算软件的装置实施例的结构框图,所述装置具体可以包括:
审核方式确定模块201,用于根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
软件审核模块202,用于根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
验证信息生成模块203,用于在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
软件验证模块204,用于根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
可选地,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
可选地,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述软件审核模块202,包括:
程序规范确定子模块,用于确定所述多方安全计算软件的协议类型对应的程序规范;
逻辑校验子模块,用于根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
第一审核子模块,用于在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
可选地,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述软件审核模块202,包括:
模型建立子模块,用于建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
模型判断子模块,用于判断所述第一模型和所述第二模型是否相匹配;
第二审核子模块,用于在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
可选地,所述模型判断子模块,包括:
模型匹配单元,用于分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
匹配确定单元,用于在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
可选地,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
可选地,所述软件验证模块204,包括:
保存子模块,用于将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
验证子模块,用于基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
可选地,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述软件验证模块204,包括:
模型构建子模块,用于根据所述验证程序和验证规则构建软件行为判断模型;
模型训练子模块,用于根据所述关键监控点的运行数据训练所述软件行为判断模型;
运行状态判断子模块,用于基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
软件运行正确性验证子模块,用于根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
综上,本发明实施例提供了一种验证多方安全计算软件的装置,该装置可以在多方安全计算软件下发之前,基于多方安全计算软件的协议类型,确定多方安全计算软件对应预设审核类型的审核方式,并根据该审核方式对多方安全计算软件进行审核,判断多方安全计算软件是否满足预设审核类型对应的预设要求,从而能够及时发现多方安全计算软件自身存在的问题,当确定多方安全计算软件满足预设要求,也即软件自身不存在问题的情况下,生成多方安全计算软件对应预设审核类型的验证程序、验证规则、以及验证数据,然后再对多方安全计算软件进行验证,避免了因多方安全计算软件自身实现方面存在问题导致验证结果不准确的情况,从而保证了多方安全计算的准确性和数据安全。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本发明实施例提供了一种用于验证多方安全计算软件的装置,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
图11是根据一示例性实施例示出的一种用于验证多方安全计算软件的装置800的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图11,装置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、磁带、软盘和光数据存储设备等。
图12是本发明的一些实施例中服务器的结构示意图。该服务器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所示的验证多方安全计算软件的方法。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种验证多方安全计算软件的方法,所述方法包括:根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
本发明实施例公开了A1、一种验证多方安全计算软件的方法,所述方法包括:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
A2、根据A1所述的方法,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
A3、根据A1所述的方法,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
A4、根据A3所述的方法,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
确定所述多方安全计算软件的协议类型对应的程序规范;
根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
A5、根据A3所述的方法,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
判断所述第一模型和所述第二模型是否相匹配;
在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
A6、根据A5所述的方法,所述判断所述第一模型和所述第二模型是否相匹配,包括:
分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
A7、根据A4至A6任一所述的方法,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
A8、根据A1所述的方法,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
根据所述验证程序和验证规则构建软件行为判断模型;
根据所述关键监控点的运行数据训练所述软件行为判断模型;
基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
本发明实施例公开了B9、一种验证多方安全计算软件的装置,所述装置包括:
审核方式确定模块,用于根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
软件审核模块,用于根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
验证信息生成模块,用于在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
软件验证模块,用于根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
B10、根据B9所述的装置,所述软件验证模块,包括:
保存子模块,用于将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
验证子模块,用于基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
B11、根据B9所述的装置,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
B12、根据B11所述的装置,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述软件审核模块,包括:
程序规范确定子模块,用于确定所述多方安全计算软件的协议类型对应的程序规范;
逻辑校验子模块,用于根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
第一审核子模块,用于在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
B13、根据B11所述的装置,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述软件审核模块,包括:
模型建立子模块,用于建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
模型判断子模块,用于判断所述第一模型和所述第二模型是否相匹配;
第二审核子模块,用于在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
B14、根据B13所述的装置,所述模型判断子模块,包括:
模型匹配单元,用于分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
匹配确定单元,用于在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
B15、根据B12至B14任一所述的装置,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
B16、根据B9所述的装置,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述软件验证模块,包括:
模型构建子模块,用于根据所述验证程序和验证规则构建软件行为判断模型;
模型训练子模块,用于根据所述关键监控点的运行数据训练所述软件行为判断模型;
运行状态判断子模块,用于基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
软件运行正确性验证子模块,用于根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
本发明实施例公开了C17、一种用于验证多方安全计算软件的装置,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证。
C18、根据C17所述的装置,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
C19、根据C17所述的装置,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
C20、根据C19所述的装置,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
确定所述多方安全计算软件的协议类型对应的程序规范;
根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
C21、根据C19所述的装置,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
判断所述第一模型和所述第二模型是否相匹配;
在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
C22、根据C21所述的装置,所述判断所述第一模型和所述第二模型是否相匹配,包括:
分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
C23、根据C20至C22任一项所述的装置,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
C24、根据C17所述的装置,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
根据所述验证程序和验证规则构建软件行为判断模型;
根据所述关键监控点的运行数据训练所述软件行为判断模型;
基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
本发明实施例公开了D25、一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如A1至A8中一个或多个所述的验证多方安全计算软件的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上对本发明所提供的一种训练树模型的方法、一种训练树模型的装置和一种用于训练树模型的装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (22)

1.一种验证多方安全计算软件的方法,其特征在于,所述方法包括:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证;
其中,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
根据所述验证程序和验证规则构建软件行为判断模型;
根据所述关键监控点的运行数据训练所述软件行为判断模型;
基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
2.根据权利要求1所述的方法,其特征在于,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
3.根据权利要求1所述的方法,其特征在于,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
4.根据权利要求3所述的方法,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
确定所述多方安全计算软件的协议类型对应的程序规范;
根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
5.根据权利要求3所述的方法,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
判断所述第一模型和所述第二模型是否相匹配;
在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
6.根据权利要求5所述的方法,其特征在于,所述判断所述第一模型和所述第二模型是否相匹配,包括:
分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
7.根据权利要求4至6任一所述的方法,其特征在于,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
8.一种验证多方安全计算软件的装置,其特征在于,所述装置包括:
审核方式确定模块,用于根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
软件审核模块,用于根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
验证信息生成模块,用于在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
软件验证模块,用于根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证;
其中,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述软件验证模块,包括:
模型构建子模块,用于根据所述验证程序和验证规则构建软件行为判断模型;
模型训练子模块,用于根据所述关键监控点的运行数据训练所述软件行为判断模型;
运行状态判断子模块,用于基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
软件运行正确性验证子模块,用于根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
9.根据权利要求8所述的装置,其特征在于,所述软件验证模块,包括:
保存子模块,用于将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
验证子模块,用于基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
10.根据权利要求8所述的装置,其特征在于,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
11.根据权利要求10所述的装置,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述软件审核模块,包括:
程序规范确定子模块,用于确定所述多方安全计算软件的协议类型对应的程序规范;
逻辑校验子模块,用于根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
第一审核子模块,用于在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
12.根据权利要求10所述的装置,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述软件审核模块,包括:
模型建立子模块,用于建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
模型判断子模块,用于判断所述第一模型和所述第二模型是否相匹配;
第二审核子模块,用于在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
13.根据权利要求12所述的装置,其特征在于,所述模型判断子模块,包括:
模型匹配单元,用于分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
匹配确定单元,用于在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
14.根据权利要求11至13任一所述的装置,其特征在于,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
15.一种用于验证多方安全计算软件的装置,其特征在于,所述装置包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
根据多方安全计算软件的协议类型,确定所述多方安全计算软件对应预设审核类型的审核方式;
根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求;
在判定所述多方安全计算软件满足所述预设审核类型对应的预设要求的情况下,生成所述多方安全计算软件对应所述预设审核类型的验证程序、验证规则、以及验证数据;
根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证;
其中,所述验证数据包括所述多方安全计算软件的关键监控点的运行数据,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
根据所述验证程序和验证规则构建软件行为判断模型;
根据所述关键监控点的运行数据训练所述软件行为判断模型;
基于训练后的所述软件行为判断模型对所述多方安全计算软件的关键监控点的运行状态进行判断,得到判断结果;
根据所述判断结果对所述多方安全计算软件的软件运行正确性进行验证。
16.根据权利要求15所述的装置,其特征在于,所述根据所述验证程序、验证规则、以及验证数据,对所述多方安全计算软件进行验证,包括:
将所述多方安全计算软件载入至不可信执行环境,以及将所述验证程序、验证规则、验证数据保存至可信执行环境,其中,所述多方安全计算软件中包含用于与所述验证程序进行交互的预置代码;
基于所述预置代码,所述不可信执行环境中的多方安全计算软件与所述可信执行环境中的验证程序进行交互,利用所述验证规则和所述验证数据对所述多方安全计算软件进行验证。
17.根据权利要求15所述的装置,其特征在于,所述预设审核类型包括:完整性审核、关键运算功能审核、敏感安全参数审核、软件运行正确性审核中的至少一种。
18.根据权利要求17所述的装置,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于规范审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
确定所述多方安全计算软件的协议类型对应的程序规范;
根据所述程序规范,对所述多方安全计算软件的实现程序进行逻辑校验,以判断所述多方安全计算软件的实现程序是否满足所述程序规范;
在确定所述多方安全计算软件的实现程序满足所述程序规范的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
19.根据权利要求17所述的装置,其特征在于,所述预设审核类型为软件运行正确性审核,所述预设审核类型的审核方式为基于模型审核方式,所述根据所述预设审核类型的审核方式对所述多方安全计算软件进行审核,判断所述多方安全计算软件是否满足所述预设审核类型对应的预设要求,包括:
建立所述多方安全计算软件的协议类型对应的第一模型,以及建立所述多方安全计算软件的实现程序对应的第二模型;
判断所述第一模型和所述第二模型是否相匹配;
在确定所述第一模型和所述第二模型相匹配的情况下,判定所述多方安全计算软件满足所述软件运行正确性审核对应的预设要求。
20.根据权利要求19所述的装置,其特征在于,所述判断所述第一模型和所述第二模型是否相匹配,包括:
分别判断所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态是否相匹配;
在判定所述第一模型与所述第二模型的输入数据、输出数据、执行路径、以及执行状态均匹配的情况下,确定所述第一模型和所述第二模型相匹配。
21.根据权利要求18至20任一项所述的装置,其特征在于,所述多方安全计算软件的协议类型包括混淆电路协议、基于秘密分享的第一协议、基于秘密分享的第二协议中的任意一种。
22.一种机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至7任一所述的验证多方安全计算软件的方法。
CN202011168381.6A 2020-10-27 2020-10-27 验证多方安全计算软件的方法、装置和用于验证的装置 Active CN112464174B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011168381.6A CN112464174B (zh) 2020-10-27 2020-10-27 验证多方安全计算软件的方法、装置和用于验证的装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011168381.6A CN112464174B (zh) 2020-10-27 2020-10-27 验证多方安全计算软件的方法、装置和用于验证的装置

Publications (2)

Publication Number Publication Date
CN112464174A CN112464174A (zh) 2021-03-09
CN112464174B true CN112464174B (zh) 2023-09-29

Family

ID=74834606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011168381.6A Active CN112464174B (zh) 2020-10-27 2020-10-27 验证多方安全计算软件的方法、装置和用于验证的装置

Country Status (1)

Country Link
CN (1) CN112464174B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113343283B (zh) * 2021-07-30 2021-10-15 深圳前海微众银行股份有限公司 一种数据处理方法
CN114741123A (zh) * 2022-02-11 2022-07-12 华东师范大学 一种机载软件形式化验证系统
CN114553407A (zh) * 2022-02-16 2022-05-27 淘宝(中国)软件有限公司 基于秘密分享的数据处理方法及设备
CN114692149B (zh) * 2022-03-31 2023-06-27 北京九章云极科技有限公司 一种多方安全计算验证方法及系统

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833504A (zh) * 2010-04-19 2010-09-15 张翀斌 一种基于模型检验的时序软件质量缺陷检测方法及系统
CN102414689A (zh) * 2009-04-27 2012-04-11 高通股份有限公司 用于改进代码和数据签署的方法和设备
JP2012150723A (ja) * 2011-01-20 2012-08-09 Fujitsu Semiconductor Ltd 設計検証プログラム,設計検証装置,設計検証方法
CN104135397A (zh) * 2014-07-01 2014-11-05 浙江工业大学 面向无线传感网安全协议设计与实现的形式化验证方法
CN106528407A (zh) * 2016-10-19 2017-03-22 中国航空综合技术研究所 一种嵌入式软件安全性自动化验证系统及其验证方法
CN106980576A (zh) * 2017-05-09 2017-07-25 华东师范大学 一种基于运行时验证技术的嵌入式系统软件调试系统
CN107533594A (zh) * 2016-01-21 2018-01-02 慧与发展有限责任合伙企业 用于不可信的计算系统的软件验证
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质
CN109710262A (zh) * 2018-12-12 2019-05-03 深圳市多元世纪信息技术股份有限公司 软件发布方法和装置、计算机可读存储介质
CN110941834A (zh) * 2018-09-21 2020-03-31 阿里巴巴集团控股有限公司 多方计算、数据审计、数据处理方法、系统及设备
CN111049825A (zh) * 2019-12-12 2020-04-21 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的安全多方计算方法和系统
CN111177709A (zh) * 2019-12-31 2020-05-19 全球能源互联网研究院有限公司 一种终端可信组件的执行方法、装置及计算机设备
CN111191250A (zh) * 2020-04-09 2020-05-22 华控清交信息科技(北京)有限公司 一种验证方法及装置、用于验证的装置、服务器和终端
US10686597B1 (en) * 2017-05-05 2020-06-16 Hrl Laboratories, Llc Semi-robust protocols for secure multiparty computation
CN111563261A (zh) * 2020-05-15 2020-08-21 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的隐私保护多方计算方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9009837B2 (en) * 2010-07-01 2015-04-14 Onapsis S.R.L. Automated security assessment of business-critical systems and applications
US9832217B2 (en) * 2014-03-13 2017-11-28 International Business Machines Corporation Computer implemented techniques for detecting, investigating and remediating security violations to IT infrastructure
US9536093B2 (en) * 2014-10-02 2017-01-03 Microsoft Technology Licensing, Llc Automated verification of a software system
US10613969B2 (en) * 2018-05-17 2020-04-07 Red Hat Israel, Ltd. Code coverage module with testing function identifier
US11050762B2 (en) * 2018-07-06 2021-06-29 Nec Corporation Of America High throughput secure multi-party computation with identifiable abort

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102414689A (zh) * 2009-04-27 2012-04-11 高通股份有限公司 用于改进代码和数据签署的方法和设备
CN101833504A (zh) * 2010-04-19 2010-09-15 张翀斌 一种基于模型检验的时序软件质量缺陷检测方法及系统
JP2012150723A (ja) * 2011-01-20 2012-08-09 Fujitsu Semiconductor Ltd 設計検証プログラム,設計検証装置,設計検証方法
CN104135397A (zh) * 2014-07-01 2014-11-05 浙江工业大学 面向无线传感网安全协议设计与实现的形式化验证方法
CN107533594A (zh) * 2016-01-21 2018-01-02 慧与发展有限责任合伙企业 用于不可信的计算系统的软件验证
CN106528407A (zh) * 2016-10-19 2017-03-22 中国航空综合技术研究所 一种嵌入式软件安全性自动化验证系统及其验证方法
US10686597B1 (en) * 2017-05-05 2020-06-16 Hrl Laboratories, Llc Semi-robust protocols for secure multiparty computation
CN106980576A (zh) * 2017-05-09 2017-07-25 华东师范大学 一种基于运行时验证技术的嵌入式系统软件调试系统
CN109299728A (zh) * 2018-08-10 2019-02-01 深圳前海微众银行股份有限公司 联邦学习方法、系统及可读存储介质
CN109255247A (zh) * 2018-08-14 2019-01-22 阿里巴巴集团控股有限公司 多方安全计算方法及装置、电子设备
CN110941834A (zh) * 2018-09-21 2020-03-31 阿里巴巴集团控股有限公司 多方计算、数据审计、数据处理方法、系统及设备
CN109710262A (zh) * 2018-12-12 2019-05-03 深圳市多元世纪信息技术股份有限公司 软件发布方法和装置、计算机可读存储介质
CN111049825A (zh) * 2019-12-12 2020-04-21 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的安全多方计算方法和系统
CN111177709A (zh) * 2019-12-31 2020-05-19 全球能源互联网研究院有限公司 一种终端可信组件的执行方法、装置及计算机设备
CN111191250A (zh) * 2020-04-09 2020-05-22 华控清交信息科技(北京)有限公司 一种验证方法及装置、用于验证的装置、服务器和终端
CN111563261A (zh) * 2020-05-15 2020-08-21 支付宝(杭州)信息技术有限公司 一种基于可信执行环境的隐私保护多方计算方法和系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
安全多方计算应用协议研究;夏勇;《安全多方计算应用协议研究》;全文 *
数据共享平台中隐私保护技术的研究与实现;胡为;《数据共享平台中隐私保护技术的研究与实现》;全文 *
王崑声.《嵌入式软件安全保证技术》.国防工业出版社,2015,第60-62页. *
远端非可信平台Agent完整性保护机制研究与设计;杨翠;谭成翔;;计算机应用(第11期);第127-130 *

Also Published As

Publication number Publication date
CN112464174A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
CN112464174B (zh) 验证多方安全计算软件的方法、装置和用于验证的装置
EP3418885B1 (en) Method and device for calling software development kit
EP3300407B1 (en) Method and device for processing verification code
WO2017071078A1 (zh) 通讯模组固件和插件生成方法及装置
CN112184218B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN112688779B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN113094744A (zh) 信息处理方法、服务平台、用于信息处理的装置和多方安全计算系统
CN107145771B (zh) 应用程序解锁方法、装置及终端
CN112307056B (zh) 一种数据处理方法、装置和用于数据处理的装置
CN112487415B (zh) 计算任务的安全性检测方法及装置
CN113139205B (zh) 一种安全计算方法、通用计算引擎、用于安全计算的装置和安全计算系统
CN106126104B (zh) 键盘模拟方法和装置
CN112711744A (zh) 一种计算任务的处理方法、装置和用于计算任务的处理装置
CN108737523B (zh) 应用模块与账户的关联方法、关联装置、硬件装置和介质
JP2017530430A (ja) モバイル支払方法および装置
CN112102081B (zh) 生成区块链的方法、装置、可读存储介质及区块链网络
CN110708427A (zh) 信息处理方法、装置及存储介质
CN116684094B (zh) 一种数据处理方法、装置、系统和可读存储介质
CN114881248B (zh) 两方横向联邦学习方法和用于两方横向联邦学习的装置
CN110750355B (zh) 控制系统、控制方法及装置
CN117319193A (zh) 智能合约部署方法、装置、计算机设备以及存储介质
CN111611156B (zh) 功能测试方法、功能测试装置及计算机可读存储介质
CN110287723B (zh) 资源信息确定方法、装置、电子设备及存储介质
CN110867962B (zh) 基于馈线联络组的配电网错误拓扑关系的验证方法及装置
CN116628726A (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