CN117272387A - 基于秘密分享的数据共享方法、装置、设备及存储介质 - Google Patents
基于秘密分享的数据共享方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117272387A CN117272387A CN202311334990.8A CN202311334990A CN117272387A CN 117272387 A CN117272387 A CN 117272387A CN 202311334990 A CN202311334990 A CN 202311334990A CN 117272387 A CN117272387 A CN 117272387A
- Authority
- CN
- China
- Prior art keywords
- data
- sharing
- decimal
- binary
- secret
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000012216 screening Methods 0.000 claims abstract description 65
- 238000012797 qualification Methods 0.000 claims abstract description 44
- 238000012545 processing Methods 0.000 claims abstract description 40
- 239000012634 fragment Substances 0.000 claims description 31
- 230000011218 segmentation Effects 0.000 claims description 27
- 238000006243 chemical reaction Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000001914 filtration Methods 0.000 description 5
- ZPUCINDJVBIVPJ-LJISPDSOSA-N cocaine Chemical compound O([C@H]1C[C@@H]2CC[C@@H](N2C)[C@H]1C(=O)OC)C(=O)C1=CC=CC=C1 ZPUCINDJVBIVPJ-LJISPDSOSA-N 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于秘密分享的数据共享方法、装置、设备及存储介质,涉及多方安全计算领域,包括:接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与其他数据共享端以及结果需求端共同确认数据处理资格;将分片数据转换为明文数据,并对明文数据进行数据筛选,以得到目标数据;将目标数据转换为二进制数据,并对二进制数据进行数据分割,以将分割后数据转换为十进制数据,并基于秘密分享方法对十进制数据进行数据共享,以将十进制数据发送至结果需求端。这样一来,可以将非数值型的数据编码为十进制数据,使用秘密共享技术对十进制数据进行共享,以实现基于秘密分享对非数值型数据的共享。
Description
技术领域
本发明涉及多方安全计算领域,特别涉及一种基于秘密分享的数据共享方法、装置、设备及存储介质。
背景技术
多方安全计算是一种保护数据隐私和安全性的隐私计算技术,它允许多个参与方在不披露自己私有数据的情况下进行计算和共享计算结果。在多方安全计算中,每个参与方只知道自己的输入数据,而不知道其他参与方的输入数据,计算结果也只能由所有参与方共同解密得到。多方安全计算是通过各种协议实现的,由于秘密分享协议实现的框架在性能和效率上相较于其他协议具有很大的提升,因此目前已经实现的多方安全计算框架中大多数是选择秘密分享协议实现。
秘密分享是一种数据分割存储技术,其核心思想是将数据拆分为N份,分别分发给N个参与方,每个参与方持有N份数据中的一份数据。想要恢复数据就需要将所有参与方的N份数据进行聚合。
数据存储在计算机中都是以二进制数据进行存储的,但是计算机中也定义了不同的数据类型,包括但不限于整数类型、浮点数类型以及字符串类型。对应到自然语言中就是数字和文字。但由于秘密分享的技术原理决定了该技术只能处理数值型数据,对非数值型数据没有办法进行处理,这对多方安全计算造成了很大的局限。随着多方安全计算的发展,可能遇到数值型数据和非数值型数据混合处理的安全计算情形,因此如何提高多方安全计算在各种场景下的适应性,是值得研究的问题。
发明内容
有鉴于此,本发明的目的在于提供一种基于秘密分享的数据共享方法、装置、设备及存储介质,可以将非数值型的数据编码为十进制数据,使用秘密共享技术对十进制数据进行共享,以实现基于秘密分享对非数值型数据的共享。其具体方案如下:
第一方面,本申请公开了一种基于秘密分享的数据共享方法,应用于任一数据共享端,包括:
接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;
将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;
将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;
将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
可选的,所述接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格,包括:
接收其他数据共享端基于秘密分享方法进行数据共享的分片数据;
生成数据接收通知,并将所述数据接收通知发送至所述其他数据共享端以及结果需求端,以与所述其他数据共享端以及所述结果需求端共同启用密态比较协议,并基于所述密态比较协议获取针对所述分片数据的处理资格。
可选的,所述将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据,包括:
将所述分片数据转换为明文数据,并确定预设筛选条件,以基于所述预设筛选条件以及所述密态比较协议对所述明文数据进行数据筛选,以得到数据筛选结果;
从所述数据筛选结果中确定与所述预设筛选条件对应的目标数据,并将所述目标数据转换为明文数据。
可选的,所述将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据,包括:
将所述目标数据转换为统一码,并基于所述统一码得到二进制数据;
对所述二进制数据进行字符填充,并基于预设字节分割长度对填充后二进制数据进行分割,以得到与所述预设字节分割长度对应的分割后数据。
可选的,所述将所述分割后数据转换为十进制数据,并对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端,包括:
对所述分割后数据进行数据编码,以将所述分割后数据转换为十进制数据;
基于秘密分享对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
第二方面,本申请公开了一种基于秘密分享的数据共享方法,应用于结果需求端,包括:
接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格;
接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据;
对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
第三方面,本申请公开了一种基于秘密分享的数据共享装置,应用于任一数据共享端,包括:
数据接收模块,用于接收其他数据共享端数据基于秘密分享方法共享的分片数据;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;
第一资格确认模块,用于与所述其他数据共享端以及结果需求端共同确认数据处理资格;
第一数据转换模块,用于将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;
数据分割模块,用于将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;
数据分享模块,用于将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
第四方面,本申请公开了一种基于秘密分享的数据共享装置,应用于结果需求端,包括:
第二资格确认模块,用于接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格;
数据解码模块,用于接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据;
第二数据转换模块,用于对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
第五方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现前述的基于秘密分享的数据共享方法。
第六方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,所述计算机程序被处理器执行时实现前述的基于秘密分享的数据共享方法。
本申请中,首先接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;然后将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;最后将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。由此可见,通过本申请所述基于秘密分享的数据共享方法,可以在接收到其他数据共享端共享的分片数据后,将分片数据转换为明文数据,在得到明文数据后,可以将明文数据转换为二进制数据,对二进制数据进行数据分割,以对分割后的二进制数据进行转换,得到十进制数据,最终基于秘密分享方法对所述十进制数据进行数据共享,以将十进制数据发送至结果需求端。这样一来,可以将非数值型的数据编码为十进制数据,使用秘密共享技术对十进制数据进行共享,以实现基于秘密分享对非数值型数据的共享。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种基于秘密分享的数据共享方法流程图;
图2为本申请提供的一种秘密分享方法参与端示意图;
图3为本申请提供的一种数据筛选示意图;
图4为本申请提供的一种数据转换示意图;
图5为本申请提供的一种具体的数据转换示意图;
图6为本申请提供的另一种基于秘密分享的数据共享方法流程图;
图7为本申请提供的一种基于秘密分享的数据共享走向图;
图8为本申请提供的一种基于秘密分享的数据共享装置结构示意图;
图9为本申请提供的另一种基于秘密分享的数据共享装置结构示意图;
图10为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中,数据存储在计算机中都是以二进制数据进行存储的,但是计算机中也定义了不同的数据类型,如整数类型、浮点数类型以及字符串类型。对应到自然语言中就是数字和文字。但由于秘密分享的技术原理决定了该技术只能处理数字,对二进制文件没有办法进行处理,这对多方安全计算造成了很大的局限。随着多方安全计算的发展,可能遇到数字和文字混合处理的安全计算情形,甚至需要对文件进行共享等场景,但通过现有技术中的秘密分享方法,无法对二进制数据进行数据共享。
为了解决上述技术问题,本申请提供了一种基于秘密分享的数据共享方法、装置、设备及存储介质,可以将非数值型的数据编码为十进制数据,使用秘密共享技术对十进制数据进行共享,以实现基于秘密分享对非数值型数据的共享。
参见图1所示,本发明实施例公开了一种基于秘密分享的数据共享方法,应用于任一数据共享端,包括:
步骤S11、接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据。
本实施例中,接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格,包括:接收其他数据共享端基于秘密分享方法进行数据共享的分片数据;生成数据接收通知,并将所述数据接收通知发送至所述其他数据共享端以及结果需求端,以与所述其他数据共享端以及所述结果需求端共同启用密态比较协议,并基于所述密态比较协议获取针对所述分片数据的处理资格。也即,在MPC(Secure multi-party computation,多方安全计算)平台想要使用秘密共享方法对数据进行共享,需要所有参与方均同意数据恢复,才能在指定方对数据进行恢复。因此可能存在多方数据共享端,当本地数据共享端作为数据接收方时,需要接收其他数据共享端基于秘密分享方法共享的分片数据,在得到分片数据后,如果需要对分片数据进行处理,需要所有的数据共享端以及结果需求端的同意,因此需要生成数据接收通知,并将生成的数据接收通知发送至其他数据共享端以及结果需求端,以基于生成的数据接收通知,告知需要对数据进行处理,并且进行共享的分片数据可以为通过字符型数据、数值型数据和二进制文件数据中的任意一种转换得到的十进制数据。
例如,如图2所示,Alice持有企业的注册信息,包括企业名称、注册地址以及法人信息等。Bob持有企业的缴税信息。现在需要找出缴税额度大于100万的企业,并将这些企业信息给到Charlie。则Bob需要基于秘密共享的方法将持有的企业的缴税信息发送至Alice以及Charlie,Alice接收到企业的缴税信息后,可以结合自身的数据对缴税额度大于100万的企业进行筛选。
步骤S12、将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据。
本实施例中,将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据,包括:将所述分片数据转换为明文数据,并确定预设筛选条件,以基于所述预设筛选条件以及所述密态比较协议对所述明文数据进行数据筛选,以得到数据筛选结果;从所述数据筛选结果中确定与所述预设筛选条件对应的目标数据,并将所述目标数据转换为明文数据。也即,当接收到其他数据共享端发送的分片数据后,可以确定预设的筛选条件,例如筛选营业额大于100万的企业或筛选缴税额大于100万的企业。当确定了筛选条件之后,可以基于筛选条件,对接收到的分片数据以及本地持有的数据进行数据筛选,以得到数据筛选结果。由于本地保存的数据可能非字符类型的数据,因此进行数据筛选之后得到数据筛选结果可能也并非字符类型的数据,因此在得到数据筛选结果之后,需要将数据筛选结果转换为明文数据。
例如,结合前述实施例以及图3与图4所示,在Alice接收到Bob发送的企业的缴税信息之后,需要基于预设的筛选条件,也即缴税额度大于100万的企业,来对接收到的分片数据以及自身持有的企业名称、注册地址以及法人信息进行筛选,以筛选出缴税额度大于100万的企业的企业名称、注册地址以及法人信息,其中xi代表数据共享端Alice持有的原始数据,其中i为Alice持有的每条原始数据的数量;<xi>j代表接收到的Bob发送的分片数据,其中j为数据共享参与方的数量,如图2所示,一共三方参与,则j最大可取3;<ri>j代表数据筛选结果,也即经过筛选的数据。这样一来,可以得到Alice的数据筛选结果,然后对数据筛选结果进行处理,将数据筛选结果恢复为明文数据,也即基于数据筛选结果确定缴税额度大于100万的企业的企业名称、注册地址以及法人信息。
步骤S13、将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据。
本实施例中,将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据,包括:将所述目标数据转换为统一码,并基于所述统一码得到二进制数据;对所述二进制数据进行字符填充,并基于预设字节分割长度对填充后二进制数据进行分割,以得到与所述预设字节分割长度对应的分割后数据。也即,当得到符合筛选条件的明文数据后,需要将明文数据转换为二进制数据,具体的可以将明文数据转换为Unicode统一码,并基于转换的Unicode统一码得到二进制数据,并且在得到二进制数据之后,需要对得到的二进制数据进行填充,将二进制数据填充为3的倍数大小,然后对填充后的二进制数据进行分割,以将得到的填充后二进制数据分割为字节长度为3个字节大小的分割后数据。例如,如图5所示,对A公司的公司名称进行编码得到的二进制数据为b'\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8',则经过填充后得到的填充后二进制数据为b'\x00\x00\x00\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8',然后对填充后二进制数据进行分割,可以将填充后二进制数据按照三个字符长度分割为如下所示的二进制数据:[b'x00\x00\x00',b'xe9\x91\xab',b'xe9\x80\x9a',b'xe8\x82\xa1',b'xe4\xbb\xbd',b'xe6\x9c\x89',b'xe9\x99\x90',b'xe5\x85\xac,b'xe5\x8f\xb8']。
步骤S14、将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
本实施例中,将所述分割后数据转换为十进制数据,并对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端,包括:对所述分割后数据进行数据编码,以将所述分割后数据转换为十进制数据;基于秘密分享对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。也即,在对二进制数据进行数据分割得到分割后数据后,需要对分割后数据进行数据编码,以将分割后的二进制数据转换为十进制数据,由于十进制数据是秘密分享的常用数据类型,因此可以基于秘密分享方法对转换得到的十进制数据进行数据共享,以便将十进制数据发送至结果需求端。并且将分割后二进制数据转换为十进制数据的方法如下所示:
以分割后二进制数据为b'\x01\x02\x03'为例,可以从大端提取所述分割后二进制数据的字节,以得到b'\x01',b'\x02',b'\x03'三个字节,而所述三个字节分别对应的十进制数据为1,2,3,按照大端的位置进行排列,也即(1+2^8)*2^8+2)*2^8+3,因此可以得到所述分割后二进制数据b'\x01\x02\x03'对应的十进制结果为66051。
根据上述将分割后二进制数据转换为十进制数据的方法,可以将上述[b'x00\x00\x00',b'xe9\x91\xab',b'xe9\x80\x9a',b'xe8\x82\xa1',b'xe4\xbb\xbd',b'xe6\x9c\x89',b'xe9\x99\x90',b'xe5\x85\xac,b'xe5\x8f\xb8'],也即Alice的分割后二进制数据转换为[0,15307179,15302810,15237793,14990269,15113353,15309200,15041964,150445361]十进制数据,然后将该十进制数据发送至结果需求端,以便结果需求端对接收到的十进制数数据进行数据解码,得到相应的需求结果。
由此可见,本实施例中首先接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;然后将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;最后将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。由此可见,通过本申请所述基于秘密分享的数据共享方法,可以在接收到其他数据共享端共享的分片数据后,对分片数据进行数据筛选,并将通过筛选的数据转换为明文数据,在得到明文数据后,可以将明文数据转换为二进制数据,对二进制数据进行数据分割,以对分割后的二进制数据进行转换,得到十进制数据,最终基于秘密分享方法对所述十进制数据进行数据共享,以将十进制数据发送至结果需求端。这样一来,可以将非数值型的数据编码为十进制数据,使用秘密共享技术对十进制数据进行共享,以实现基于秘密分享对非数值型数据的共享
参见图6所示,本发明实施例公开了一种基于秘密分享的数据共享方法,应用于结果需求端,包括:
步骤S21、接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格。
本实施例中,接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格。也即在秘密共享中,如果有任何一方需要对数据进行处理,需要所有的数据共享端以及结果需求端的同意,因此当接收到数据共享端发送的数据接收通知时,则表征某一数据共享端需要对数据进行处理,因此需要所有的数据共享端以及结果需求端共同启用密态比较协议,以获取数据处理的资格。
步骤S22、接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据。
本实施例中,接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据。由于在秘密分享方法中,不存在某端具有全部的数据,因此每一个数据共享端得到的均为部分数据,因此当接收到所有数据共享端发送的十进制数据后,需要对接收到的所有十进制数据进行数据解码,以将十进制数据转换为二进制数据。并且解码流程为十进制数据→解码为二进制数据→字符合并→去除填充字符→解码为字符数据。由此可知,首先需要将十进制数据解码为二进制数据,以前述实施例中十进制结果为66051为例,需要将将66051转换为二进制字符串'10000001000000011',然后将二进制字符串按照指定字节填充到8的整数倍数(字符串左侧填充),'000000010000001000000011';随后将字符串分割为8位一份,得到['00000001','00000010','00000011'],最后将得到的二进制字符串转换为二进制字节[b'\x01',b'\x02',b'\x03'],并对字节进行拼接,得到b'\x01\x02\x03\'。
基于上述将十进制数据转换为二进制数据的方法,以前述实施例中Alice发送的十进制数据为[0,15307179,15302810,15237793,14990269,15113353,15309200,15041964.150445361]为例,可以对Alice发送的十进制数据中的填充数据进行去除,以得到去除后十进制数据[15307179,15302810,15237793,14990269,15113353,15309200,15041964.150445361],然后将去除后十进制数据转换为分割后二进制数据[b'x00\x00\x00',b'xe9\x91\xab',b'xe9\x80\x9a',b'xe8\x82\xa1',b'xe4\xbb\xbd',b'xe6\x9c\x89',b'xe9\x99\x90',b'xe5\x85\xac,b'xe5\x8f\xb8'],然后进行字符合并,得到b'\x00\x00\x00\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8'。
步骤S23、对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
本实施例中,对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。也即,在对接收到的所有数据共享端发送的十进制数据,并对十进制数据进行转换得到分割后二进制数据后,需要对分割后二进制数据进行字符合并,以便基于合并后数据得到需要的明文数据。例如,以前述实施例为例,得到的分割后二进制数据为[b'x00\x00\x00',b'xe9\x91\xab',b'xe9\x80\x9a',b'xe8\x82\xa1',b'xe4\xbb\xbd',b'xe6\x9c\x89',b'xe9\x99\x90',b'xe5\x85\xac,b'xe5\x8f\xb8'],则对分割后二进制数据进行字符合并,得到的完整的二进制数据为b'\x00\x00\x00\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8',然后可以将完整的二进制数据解码为字符数据,得到的字符数据为A公司的公司名称。
由此可见,本实施例中首先接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格,然后接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据,最后对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。这样一来,可以对接收到的十进制数据进行转换,以将十进制数据转换为二进制数据,进而得到需要的字符数据。这样可以在秘密分享方法中实现对非数值型数据的共享,极大的提升了多方安全计算平台的使用场景。
本发明实施例公开了一种基于秘密分享的数据共享方法,应用于数值型数据和非数值型数据在多方安全计算协议进行混合处理的具体场景,包括:
本实施例中,Alice持有部分字符型数据,该数据需要传输给Bob,Charlie为第三监管方,数据恢复需要经过三方同意。其中原始数据为“公司名称”这四个字、A公司的公司名称、B公司的公司名称、C公司的公司名称,则Alice需要先对持有的部分字符型数据进行数据编码,以得到二进制数据:
b'\xe5\x85\xac\xe5\x8f\xb8\xe5\x90\x8d\xe7\xa7\xb0';
b'\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\xe5\x8d\x8e\xe7\xbe\x8e\xe5\x9b\xbd\xe9\x99\x85\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\xe5\x88\x9b\xe6\x96\xb0\xe7\xa7\x91\xe6\x8a\x80\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
然后对得到的二进制数据进行数据填充,以得到填充后数据:
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x85\xac\xe5\x8f\xb8\xe5\x90\x8d\xe7\xa7\xb0';
b'\x00\x00\x00\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\x00\x00\x00\xe5\x8d\x8e\xe7\xbe\x8e\xe5\x9b\xbd\xe9\x99\x85\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\x00\x00\x00\xe5\x88\x9b\xe6\x96\xb0\xe7\xa7\x91\xe6\x8a\x80\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
然后对得到的填充后数据进行数据分割,以得到分割后数据:
[b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\xe5\x85\xac',b'\xe5\x8f\xb8',b'\xe5\x90\x8d',b'\xe7\xa7\xb0'];
[b'\x00\x00\x00',b'\xe9\x91\xab',b'\xe9\x80\x9a',b'\xe8\x82\xa1',b'\xe4\xbb\xbd',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
[b'\x00\x00\x00',b'\xe5\x8d\x8e',b'\xe7\xbe\x8e',b'\xe5\x9b\xbd',b'\xe9\x99\x85',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
[b'\x00\x00\x00',b'\xe5\x88\x9b',b'\xe6\x96\xb0',b'\xe7\xa7\x91',b'\xe6\x8a\x80',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
然后将分割后数据编码为十进制数据:
[0,0,0,0,0,15041964,15044536,15044749,15181744];
[0,15307179,15302810,15237793,14990269,15113353,15309200,15041964,15044536];
[0,15043982,15187598,15047613,15309189,15113353,15309200,15041964,15044536];
[0,15042715,15111856,15181713,15108736,15113353,15309200,15041964,15044536];
在得到十进制数据后,如图7所示Alice需要基于秘密共享方法,对十进制数据进行共享,以便Bob可以得到Alice的十进制数据,在Bob方接收到Alice共享的十进制数据后,需要三方共同启用密态比较协议,以获取数据处理资格对十进制数据进行解码,以将十进制数据转换为二进制数据,进而得到明文数据。首先需要将接收到的十进制数据解码为二进制数据:
[0,0,0,0,0,15041964,15044536,15044749,15181744];
[0,15307179,15302810,15237793,14990269,15113353,15309200,15041964,15044536];
[0,15043982,15187598,15047613,15309189,15113353,15309200,15041964,15044536];
[0,15042715,15111856,15181713,15108736,15113353,15309200,15041964,15044536],解码为二进制数据:
[b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\xe5\x85\xac',b'\xe5\x8f\xb8',b'\xe5\x90\x8d',b'\xe7\xa7\xb0'];
[b'\x00\x00\x00',b'\xe9\x91\xab',b'\xe9\x80\x9a',b'\xe8\x82\xa1',b'\xe4\xbb\xbd',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
[b'\x00\x00\x00',b'\xe5\x8d\x8e',b'\xe7\xbe\x8e',b'\xe5\x9b\xbd',b'\xe9\x99\x85',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
[b'\x00\x00\x00',b'\xe5\x88\x9b',b'\xe6\x96\xb0',b'\xe7\xa7\x91',b'\xe6\x8a\x80',b'\xe6\x9c\x89',b'\xe9\x99\x90',b'\xe5\x85\xac',b'\xe5\x8f\xb8'];
然后对解码得到的二进制数据进行字符合并,得到合并后数据:
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe5\x85\xac\xe5\x8f\xb8\xe5\x90\x8d\xe7\xa7\xb0';
b'\x00\x00\x00\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\x00\x00\x00\xe5\x8d\x8e\xe7\xbe\x8e\xe5\x9b\xbd\xe9\x99\x85\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\x00\x00\x00\xe5\x88\x9b\xe6\x96\xb0\xe7\xa7\x91\xe6\x8a\x80\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
然后去除合并后数据中的填充字符,得到原始的二进制数据:
b'\xe5\x85\xac\xe5\x8f\xb8\xe5\x90\x8d\xe7\xa7\xb0';
b'\xe9\x91\xab\xe9\x80\x9a\xe8\x82\xa1\xe4\xbb\xbd\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\xe5\x8d\x8e\xe7\xbe\x8e\xe5\x9b\xbd\xe9\x99\x85\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
b'\xe5\x88\x9b\xe6\x96\xb0\xe7\xa7\x91\xe6\x8a\x80\xe6\x9c\x89\xe9\x99\x90\xe5\x85\xac\xe5\x8f\xb8';
最终基于原始的二进制数据,得到字符数据:“公司名称”、A公司的公司名称、B公司的公司名称、C公司的公司名称。这样一来,可以实现基于秘密共享方法的字符型数据的传输。
本发明实施例公开了一种基于秘密分享的数据共享方法,应用于纯数据共享场景,包括:
本实施例中,Alice持有二进制文件hello_world.exe,本实施例中对于二进制文件数据中的原始数据不再进行展示,该数据需要传输给Bob,Charlie为第三监管方,数据恢复需要经过三方同意。其中Alice需要先对持有的二进制文件编码,以得到二进制数据:
b'MZ\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x0e\x1f\xba\x0e\x00\xb4\t\xcd!\xb8\x01L\xcd!T hisprogram cannot be run in DOS mode.\r
……
(\xa08\xa0H\xa0\x80\xa0\x90\xa0\xa0\xa0\xb0\xa0\xf8\xa0\x08\xa1\x18\xa1(\xa18\xa1h\xa1\xa8\xa1\xc0\xa1\x80\xa7\x98\xa7\xc0\xa7\xd8\xa70\xa8H\xa8P\xa8h\xa8\x10\xad\x18\xad
\xad(\xad0\xad8\xad@\xad\xb8\xad\xd0\xad\xd8\xad`\xaex\xae\x80\xae\x88\xae\x90\xae\x98\xae\x00\xaf\x08\xaf\x10\xaf\x18\xaf\x00\x00\x00\x80\x02\x00\x18\x00\x00\x00\x10\xa08\xa0@\xa0H\xa0P\xa0\x80\xa0\xa0\xa0\xf8\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'。
然后对得到的二进制数据进行数据填充,以得到填充后数据:
b'MZ\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x0e\x1f\xba\x0e\x00\xb4\t\xcd!\xb8\x01L\xcd!T hisprogram cannot be run in DOS mode.\r
……
(\xa08\xa0H\xa0\x80\xa0\x90\xa0\xa0\xa0\xb0\xa0\xf8\xa0\x08\xa1\x18\xa1(\xa18\xa1h\xa1\xa8\xa1\xc0\xa1\x80\xa7\x98\xa7\xc0\xa7\xd8\xa70\xa8H\xa8P\xa8h\xa8\x10\xad\x18\xad
\xad(\xad0\xad8\xad@\xad\xb8\xad\xd0\xad\xd8\xad`\xaex\xae\x80\xae\x88\xae\x90\xae\x98\xae\x00\xaf\x08\xaf\x10\xaf\x18\xaf\x00\x00\x00\x80\x02\x00\x18\x00\x00\x00\x10\xa08\xa0@\xa0H\xa0P\xa0\x80\xa0\xa0\xa0\xf8\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'。需要进行说明的是,由于得到的二进制数据的数据长度符合分割标准,因此不需要进行数据填充,然实在得到的二进制数据不符合分割标准的情况下,仍需要对二进制数据进行填充。
然后对得到的填充后数据进行数据分割,以得到分割后数据:
[b'MZ\x90',b'\x00\x03\x00',b'\x00\x00\x04',b'\x00\x00\x00',b'\xff\xff\x00',b'\x00\xb8\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'@\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\xe8\x00\x00',b'\x00\x0e\x1f',b'\xba\x0e\x00',b'\xb4\t\xcd',b'!\xb8\x01',b'L\xcd!',b'Thi',b's p',b'rog',b'ram',b'ca',b'nno',b't b',b'e r',b'un',b'in',b'DOS',b'mo',b'de.',b'\r\r\n',b'$\x00\x00',b'\x00\x00\x00',b'\x00\x00b',b'\t&\x96',b'&hH',b'\xc5&h',b'H\xc5&',b'hH\xc5',b'/\x10\xdb',b'\xc5*h',b'H\xc5\xa6',b'\x13I\xc4',b'$hH',b'\xc5\xa6\x13',b'M\xc41',b'hH\xc5',b'\xa6\x13L',b'\xc4/h',b'H\xc5\xa6',b'\x13K\xc4',b'%hH',……b'\xad(\xad',b'x\xad\x88',b'\xad\xa8\xad',b'\xb8\xad\xf0',b'\xad\x00\xae',b'@\xafp',b'\xaf\x88\xaf',b'\xa0\xaf\xb8',b'\xaf\xd0\xaf',b'\xe8\xaf\x00',b'\x02\x00',b'`\x00\x00',b'\x00(\xa0',b'8\xa0H',b'\xa0\x80\xa0',b'\x90\xa0\xa0',b'\xa0\xb0\xa0',b'\xf8\xa0\x08',b'\xa1\x18\xa1',b'(\xa18',b'\xa1h\xa1',b'\xa8\xa1\xc0',b'\xa1\x80\xa7',b'\x98\xa7\xc0',b'\xa7\xd8\xa7',b'0\xa8H',b'\xa8P\xa8',b'h\xa8\x10',b'\xad\x18\xad',b'\xad(',b'\xad0\xad',b'8\xad@',b'\xad\xb8\xad',b'\xd0\xad\xd8',b'\xad`\xae',b'x\xae\x80',b'\xae\x88\xae',b'\x90\xae\x98',b'\xae\x00\xaf',b'\x08\xaf\x10',b'\xaf\x18\xaf',b'\x00\x00\x00',b'\x80\x02\x00',b'\x18\x00\x00',b'\x00\x10\xa0',b'8\xa0@',b'\xa0H\xa0',b'P\xa0\x80',b'\xa0\xa0\xa0',b'\xf8\xa0\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00']。
然后将分割后数据编码为十进制数据:
[5069456,768,4,0,16776960,47104,0,0,4194304,0,0,0,0,0,0,0,0,0,0,0,15204352,3615,12193280,11798989,2209793,5033249,5531753,7544944,7499623,7496045,2122593,7237231,7610466,6627442,7695904,6909472,4476755,2125167,6579502,855306,2359296,0,98,599702,2517064,12920424,4769062,6834373,3084507,12921448,4769190,1264068,2385992,12953107,5096497,6834373,10883916,12857192,4769190,1264580,2451528,12973338,4834347,6834373,2517065,12949096,4769062,6834373,2648136,12953619,4899879,6834373,5400931,6825576,4769024,0,0,20549,100,8783104,1315757,6553600,……10776740,7906432,10782884,9479320,10789028,11052208,10795172,12625096,10801316,14197984,10807460,15770872,10752165,1615136,10823845,4236616,10838181,10003888,10872997,16295264,10930342,42784,10959015,4237144,10956968,6334592,11051176,12101832,11065512,16295944,11081897,3189080,11118761,12101944,11159722,5810792,11174058,9480864,11186346,13150936,11200682,43784,11210923,3189576,11235499,5811312,11303084,8432808,11321516,16296976,11348141,7908744,11380909,12103152,11337902,4239216,11503791,10530744,11522223,15249152,2097664,6291456,10400,3711048,10518688,9478304,10530976,16293896,10557601,2662712,10578081,11051456,10584231,10004416,10999975,3188808,11030696,6858768,11344045,2141480,11350189,3714368,11385005,13675992,11362478,7908992,11438254,9481880,11403439,569104,11475119,0,8389120,1572864,4256,3711040,10504352,5283968,10526880,16293888,0,0,0,0,0,0,0,0,0,0,0,0,0]。
在得到十进制数据后,如图7所示Alice需要基于秘密共享方法,对十进制数据进行共享,以便Bob可以得到Alice的十进制数据,在Bob方接收到Alice共享的十进制数据后,需要对十进制数据进行解码,进而得到二进制文件。首先需要将接收到的十进制数据解码为二进制数据:
[5069456,768,4,0,16776960,47104,0,0,4194304,0,0,0,0,0,0,0,0,0,0,0,15204352,3615,12193280,11798989,2209793,5033249,5531753,7544944,7499623,7496045,2122593,7237231,7610466,6627442,7695904,6909472,4476755,2125167,6579502,855306,2359296,0,98,599702,2517064,12920424,4769062,6834373,3084507,12921448,4769190,1264068,2385992,12953107,5096497,6834373,10883916,12857192,4769190,1264580,2451528,12973338,4834347,6834373,2517065,12949096,4769062,6834373,2648136,12953619,4899879,6834373,5400931,6825576,4769024,0,0,20549,100,8783104,1315757,6553600,……10776740,7906432,10782884,9479320,10789028,11052208,10795172,12625096,10801316,14197984,10807460,15770872,10752165,1615136,10823845,4236616,10838181,10003888,10872997,16295264,10930342,42784,10959015,4237144,10956968,6334592,11051176,12101832,11065512,16295944,11081897,3189080,11118761,12101944,11159722,5810792,11174058,9480864,11186346,13150936,11200682,43784,11210923,3189576,11235499,5811312,11303084,8432808,11321516,16296976,11348141,7908744,11380909,12103152,11337902,4239216,11503791,10530744,11522223,15249152,2097664,6291456,10400,3711048,10518688,9478304,10530976,16293896,10557601,2662712,10578081,11051456,10584231,10004416,10999975,3188808,11030696,6858768,11344045,2141480,11350189,3714368,11385005,13675992,11362478,7908992,11438254,9481880,11403439,569104,11475119,0,8389120,1572864,4256,3711040,10504352,5283968,10526880,16293888,0,0,0,0,0,0,0,0,0,0,0,0,0],解码为二进制数据:
[b'MZ\x90',b'\x00\x03\x00',b'\x00\x00\x04',b'\x00\x00\x00',b'\xff\xff\x00',b'\x00\xb8\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'@\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\xe8\x00\x00',b'\x00\x0e\x1f',b'\xba\x0e\x00',b'\xb4\t\xcd',b'!\xb8\x01',b'L\xcd!',b'Thi',b's p',b'rog',b'ram',b'ca',b'nno',b't b',b'e r',b'un',b'in',b'DOS',b'mo',b'de.',b'\r\r\n',b'$\x00\x00',b'\x00\x00\x00',b'\x00\x00b',b'\t&\x96',b'&hH',b'\xc5&h',b'H\xc5&',b'hH\xc5',b'/\x10\xdb',b'\xc5*h',b'H\xc5\xa6',b'\x13I\xc4',b'$hH',b'\xc5\xa6\x13',b'M\xc41',b'hH\xc5',b'\xa6\x13L',b'\xc4/h',b'H\xc5\xa6',b'\x13K\xc4',b'%hH',……b'\xad(\xad',b'x\xad\x88',b'\xad\xa8\xad',b'\xb8\xad\xf0',b'\xad\x00\xae',b'@\xafp',b'\xaf\x88\xaf',b'\xa0\xaf\xb8',b'\xaf\xd0\xaf',b'\xe8\xaf\x00',b'\x02\x00',b'`\x00\x00',b'\x00(\xa0',b'8\xa0H',b'\xa0\x80\xa0',b'\x90\xa0\xa0',b'\xa0\xb0\xa0',b'\xf8\xa0\x08',b'\xa1\x18\xa1',b'(\xa18',b'\xa1h\xa1',b'\xa8\xa1\xc0',b'\xa1\x80\xa7',b'\x98\xa7\xc0',b'\xa7\xd8\xa7',b'0\xa8H',b'\xa8P\xa8',b'h\xa8\x10',b'\xad\x18\xad',b'\xad(',b'\xad0\xad',b'8\xad@',b'\xad\xb8\xad',b'\xd0\xad\xd8',b'\xad`\xae',b'x\xae\x80',b'\xae\x88\xae',b'\x90\xae\x98',b'\xae\x00\xaf',b'\x08\xaf\x10',b'\xaf\x18\xaf',b'\x00\x00\x00',b'\x80\x02\x00',b'\x18\x00\x00',b'\x00\x10\xa0',b'8\xa0@',b'\xa0H\xa0',b'P\xa0\x80',b'\xa0\xa0\xa0',b'\xf8\xa0\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00',b'\x00\x00\x00']。
然后对解码得到的二进制数据进行字符合并,得到合并后数据:
b'MZ\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x0e\x1f\xba\x0e\x00\xb4\t\xcd!\xb8\x01L\xcd!T hisprogram cannot be run in DOS mode.\r
……
(\xa08\xa0H\xa0\x80\xa0\x90\xa0\xa0\xa0\xb0\xa0\xf8\xa0\x08\xa1\x18\xa1(\xa18\xa1h\xa1\xa8\xa1\xc0\xa1\x80\xa7\x98\xa7\xc0\xa7\xd8\xa70\xa8H\xa8P\xa8h\xa8\x10\xad\x18\xad
\xad(\xad0\xad8\xad@\xad\xb8\xad\xd0\xad\xd8\xad`\xaex\xae\x80\xae\x88\xae\x90\xae\x98\xae\x00\xaf\x08\xaf\x10\xaf\x18\xaf\x00\x00\x00\x80\x02\x00\x18\x00\x00\x00\x10\xa08\xa0@\xa0H\xa0P\xa0\x80\xa0\xa0\xa0\xf8\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'。
然后去除合并后数据中的填充字符,得到原始的二进制数据:
b'MZ\x90\x00\x03\x00\x00\x00\x04\x00\x00\x00\xff\xff\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x0e\x1f\xba\x0e\x00\xb4\t\xcd!\xb8\x01L\xcd!T hisprogram cannot be run in DOS mode.\r
……
(\xa08\xa0H\xa0\x80\xa0\x90\xa0\xa0\xa0\xb0\xa0\xf8\xa0\x08\xa1\x18\xa1(\xa18\xa1h\xa1\xa8\xa1\xc0\xa1\x80\xa7\x98\xa7\xc0\xa7\xd8\xa70\xa8H\xa8P\xa8h\xa8\x10\xad\x18\xad
\xad(\xad0\xad8\xad@\xad\xb8\xad\xd0\xad\xd8\xad`\xaex\xae\x80\xae\x88\xae\x90\xae\x98\xae\x00\xaf\x08\xaf\x10\xaf\x18\xaf\x00\x00\x00\x80\x02\x00\x18\x00\x00\x00\x10\xa08\xa0@\xa0H\xa0P\xa0\x80\xa0\xa0\xa0\xf8\xa0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'。
最终基于原始的二进制数据,得到二进制文件hello_world.exe。这样一来,可以实现基于秘密共享方法的二进制文件的传输。
参见图8所示,本发明实施例公开了一种基于秘密分享的数据共享装置,应用于任一数据共享端,包括:
数据接收模块11,用于接收其他数据共享端数据基于秘密分享方法共享的分片数据;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;
第一资格确认模块12,用于与所述其他数据共享端以及结果需求端共同确认数据处理资格;
第一数据转换模块13,用于将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;
数据分割模块14,用于将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;
数据分享模块15,用于将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
由此可见,本实施例中首先接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;然后将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;最后将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。由此可见,通过本申请所述基于秘密分享的数据共享方法,可以在接收到其他数据共享端共享的分片数据后,对分片数据进行数据筛选,并将通过筛选的数据转换为明文数据,在得到明文数据后,可以将明文数据转换为二进制数据,对二进制数据进行数据分割,以对分割后的二进制数据进行转换,得到十进制数据,最终基于秘密分享方法对所述十进制数据进行数据共享,以将十进制数据发送至结果需求端。这样一来,可以将接收到的分片数据转换成二进制数据后,将二进制数据编码为十进制数据,并对十进制数据进行分享,以实现基于秘密分享对二进制数据进行共享。
在一些实施例中,所述数据接收模块11,具体可以包括:
数据接收单元,用于接收其他数据共享端基于秘密分享方法进行数据共享的分片数据;
在一些实施例中,所述第一资格确认模块12,具体可以包括:
第一协议启用单元,用于生成数据接收通知,并将所述数据接收通知发送至所述其他数据共享端以及结果需求端,以与所述其他数据共享端以及所述结果需求端共同启用密态比较协议,并基于所述密态比较协议获取针对所述分片数据的处理资格。
在一些实施例中,所述第一数据转换模块13,具体可以包括:
数据筛选单元,用于将所述分片数据转换为明文数据,并确定预设筛选条件,以基于所述预设筛选条件以及所述密态比较协议对所述明文数据进行数据筛选,以得到数据筛选结果;
第一数据转换单元,用于从所述数据筛选结果中确定与所述预设筛选条件对应的目标数据,并将所述目标数据转换为明文数据。
在一些实施例中,所述数据分割模块14,具体可以包括:
第二数据转换单元,用于将所述目标数据转换为统一码,并基于所述统一码得到二进制数据;
数据分割单元,用于对所述二进制数据进行字符填充,并基于预设字节分割长度对填充后二进制数据进行分割,以得到与所述预设字节分割长度对应的分割后数据。
在一些实施例中,所述数据分享模块15,具体可以包括:
数据编码单元,用于对所述分割后数据进行数据编码,以将所述分割后数据转换为十进制数据;
数据分享单元,用于基于秘密分享对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
参见图9所示,本发明实施例公开了一种基于秘密分享的数据共享装置,,应用于结果需求端,包括:
第二资格确认模块21,用于接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格;
数据解码模块22,用于接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据;
第二数据转换模块23,用于对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
由此可见,本实施例中首先接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格,然后接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据,最后对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。这样一来,可以对接收到的十进制数据进行转换,以将十进制数据转换为二进制数据,进而得到需要的字符数据。这样可以在秘密分享方法中实现对非数值型数据的共享,极大的提升了多方安全计算平台的使用场景。
进一步的,本申请实施例还公开了一种电子设备,图10是根据一示例性实施例示出的电子设备200结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图10为本申请实施例提供的一种电子设备200的结构示意图。该电子设备200,具体可以包括:至少一个处理器201、至少一个存储器202、电源203、通信接口204、输入输出接口205和通信总线206。其中,所述存储器202用于存储计算机程序,所述计算机程序由所述处理器201加载并执行,以实现前述任一实施例公开的基于秘密分享的数据共享方法中的相关步骤。另外,本实施例中的电子设备200具体可以为电子计算机。
本实施例中,电源203用于为电子设备200上的各硬件设备提供工作电压;通信接口204能够为电子设备200创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口205,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器202作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备200上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备200执行的基于秘密分享的数据共享方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的基于秘密分享的数据共享方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的技术方案进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于秘密分享的数据共享方法,其特征在于,应用于任一数据共享端,包括:
接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;
将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;
将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;
将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
2.根据权利要求1所述的基于秘密分享的数据共享方法,其特征在于,所述接收其他数据共享端数据基于秘密分享方法共享的分片数据,并与所述其他数据共享端以及结果需求端共同确认数据处理资格,包括:
接收其他数据共享端基于秘密分享方法进行数据共享的分片数据;
生成数据接收通知,并将所述数据接收通知发送至所述其他数据共享端以及结果需求端,以与所述其他数据共享端以及所述结果需求端共同启用密态比较协议,并基于所述密态比较协议获取针对所述分片数据的处理资格。
3.根据权利要求1所述的基于秘密分享的数据共享方法,其特征在于,所述将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据,包括:
将所述分片数据转换为明文数据,并确定预设筛选条件,以基于所述预设筛选条件以及所述密态比较协议对所述明文数据进行数据筛选,以得到数据筛选结果;
从所述数据筛选结果中确定与所述预设筛选条件对应的目标数据,并将所述目标数据转换为明文数据。
4.根据权利要求1所述的基于秘密分享的数据共享方法,其特征在于,所述将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据,包括:
将所述目标数据转换为统一码,并基于所述统一码得到二进制数据;
对所述二进制数据进行字符填充,并基于预设字节分割长度对填充后二进制数据进行分割,以得到与所述预设字节分割长度对应的分割后数据。
5.根据权利要求1至4任一项所述的基于秘密分享的数据共享方法,其特征在于,所述将所述分割后数据转换为十进制数据,并对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端,包括:
对所述分割后数据进行数据编码,以将所述分割后数据转换为十进制数据;
基于秘密分享对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
6.一种基于秘密分享的数据共享方法,其特征在于,应用于结果需求端,包括:
接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格;
接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据;
对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
7.一种基于秘密分享的数据共享装置,其特征在于,应用于任一数据共享端,包括:
数据接收模块,用于接收其他数据共享端数据基于秘密分享方法共享的分片数据;所述分片数据为对基于非数值型数据进行转换得到的数值型数据进行数据分片确定的数据;
第一资格确认模块,用于与所述其他数据共享端以及结果需求端共同确认数据处理资格;
第一数据转换模块,用于将所述分片数据转换为明文数据,并基于预设筛选条件对所述明文数据进行数据筛选,以得到通过筛选的目标数据;
数据分割模块,用于将所述目标数据转换为二进制数据,并对转换得到的二进制数据进行数据分割,以得到分割后数据;
数据分享模块,用于将所述分割后数据转换为十进制数据,并基于秘密分享方法对所述十进制数据进行数据共享,以将所述十进制数据发送至所述结果需求端。
8.一种基于秘密分享的数据共享装置,其特征在于,应用于结果需求端,包括:
第二资格确认模块,用于接收任一数据共享端发送的数据接收通知,以基于所述数据接收通知与所有所述数据共享端共同确认数据处理资格;
数据解码模块,用于接收所有所述数据共享端发送的分片数据,基于所述分片数据得到十进制数据,并基于所述数据处理资格对所述十进制数据进行数据解码,以将所述十进制数据解码为二进制数据;
第二数据转换模块,用于对所述二进制数据进行字符合并,并基于合并后的二进制数据生成相应的明文数据。
9.一种电子设备,其特征在于,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序以实现如权利要求1至6任一项所述的基于秘密分享的数据共享方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的基于秘密分享的数据共享方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311334990.8A CN117272387A (zh) | 2023-10-13 | 2023-10-13 | 基于秘密分享的数据共享方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311334990.8A CN117272387A (zh) | 2023-10-13 | 2023-10-13 | 基于秘密分享的数据共享方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117272387A true CN117272387A (zh) | 2023-12-22 |
Family
ID=89206011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311334990.8A Pending CN117272387A (zh) | 2023-10-13 | 2023-10-13 | 基于秘密分享的数据共享方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117272387A (zh) |
-
2023
- 2023-10-13 CN CN202311334990.8A patent/CN117272387A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105684316B (zh) | 一种Polar码编码方法、装置 | |
CN112184367B (zh) | 一种订单处理方法和装置 | |
CN108696899B (zh) | Sip消息传输与接收方法及传输与接收装置 | |
CN108900532B (zh) | 用于消息处理的电子设备、方法、存储介质和装置 | |
US20040059834A1 (en) | Efficient exchange of text based protocol language information | |
CN111931474A (zh) | 信息表生成方法、装置、电子设备和计算机可读介质 | |
CN114614829A (zh) | 卫星数据帧的处理方法、装置、电子设备和可读存储介质 | |
CN112182108A (zh) | 基于区块链的分布式数据存储更新方法和电子设备 | |
CN117272387A (zh) | 基于秘密分享的数据共享方法、装置、设备及存储介质 | |
CN116156072A (zh) | 隐写图像生成方法、隐写信息提取方法及相关装置 | |
CN115361376A (zh) | 政务文件上传方法、装置、电子设备及存储介质 | |
CN106161021A (zh) | 隐私数据发送方法及装置、隐私数据接收方法及装置 | |
CN111984616B (zh) | 一种更新共享文件的方法、装置和系统 | |
CN114500651A (zh) | 一种区块链数据传输方法、装置和设备及可读存储介质 | |
CN115277031A (zh) | 一种数据处理的方法和装置 | |
CN111931202A (zh) | 用于分布式系统的加密存储方法、终端设备和存储介质 | |
CN111949627B (zh) | 用于表格化日志文件的方法、装置、电子设备和介质 | |
CN113282662B (zh) | 区块信息处理方法、装置、设备及介质 | |
CN113824546B (zh) | 用于生成信息的方法和装置 | |
CN117201485B (zh) | 文本文件传输方法、装置、电子设备和计算机可读介质 | |
CN114679324B (zh) | 一种数据交换方法、工具、系统、设备及介质 | |
CN113067892B (zh) | 一种使用公有云实现安全云同步和云存储的方法 | |
CN112788341B (zh) | 视频信息处理方法、多媒体信息处理方法、装置及电子设备 | |
Haghighi et al. | Optimizing run-length algorithm using octonary repetition tree | |
CN114692100A (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 |