掌桥专利:专业的专利平台
掌桥专利
首页

土壤数据的传输方法、系统、计算机设备及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本申请涉及区块链技术领域,尤其涉及土壤数据的传输方法、系统、计算机设备及存储介质。

背景技术

同态加密是基于数学难题的计算复杂性理论的密码学技术。对经过同态加密的数据进行处理得到一个输出,将这一输出进行解密,其结果与用同一方法处理未加密的原始数据得到的输出结果是一样的。即同态加密算法中的两个密文经过加减乘除的同态计算后所得的结果经过解密后与原文的真实数据进行直接计算所得出的结果一致。保证数据隐私性的同时实现了数据可计算。区块链可以是一个分布式的数据库,上链的数据由各节点共同维护,具有去中心化、可追溯不可篡改特性。土壤的物联网设备(如土壤综合传感器)采集的土壤数据通过网关连接进行数据的传输,一般传输到网关指定的数据中台。

目前,基于区块链的农产溯源方案正大量普及,但区块链的各节点共同维护数据使得一些农场的隐私数据无法得到保护,如果使用单纯的加密又无法保证数据的计算。不仅如此,在农场土壤数据上链过程中,大部分都采用人工界面输入采集的土壤数据或将采集的土壤数据收集到物联网平台,再传输至区块链中。由于物联网平台属于私有数据库,存在可篡改的情况,无法保证中间环节的真实,无法保证全称无人为干预,从而无法保证链上数据真实性。

而将不同农场的物联网设备采集的土壤数据同时传输给API服务层(APIserver层)的方案虽然保证了无人为干预,但API服务层很难实现对土壤数据来源的识别与区分,其中,API服务层用于API接口设置、连接区块链发送请求、获取get请求以及获取post请求等。

发明内容

本申请实施例的目的在于提出一种土壤数据的传输方法、系统、计算机设备及存储介质,在保证土壤数据真实性和在区块链上隐私性的同时,有效区分不同农场联盟方的土壤数据。

为了解决上述技术问题,本申请实施例提供一种土壤数据的传输方法,采用了如下所述的技术方案:

一种土壤数据的传输方法,包括下述步骤:

API服务层接收网关通过与农场联盟方相关联的端口传输的土壤数据,其中,所述农场联盟方与所述端口具有一一对应的关联关系;

API服务层根据所述端口的端口号确定所述端口是否为新增端口;

若所述端口为新增端口,则向农场联盟方服务器发送同态公私钥生成请求;

API服务层接收所述农场联盟方服务器传输的初始公钥,基于所述初始公钥生成初始次数密文,并将所述端口号、所述初始公钥和所述初始次数密文关联存储至状态数据库,通过所述初始公钥对所述土壤数据进行同态加密操作,生成同态密文,并将所述同态密文传输至区块链;

若所述端口不是新增端口,则从状态数据库中获取与所述端口号相关联的公钥和次数密文,作为中间公钥和中间次数密文,并通过所述中间公钥对土壤数据进行同态加密操作,获得目标土壤加密数据,基于所述中间次数密文生成目标次数密文;

在所述端口不是新增端口时,API服务层基于所述端口号获取区块链中上传时间最晚的密文,作为目标链上密文,基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文,并将所述均值密文传输至区块链;

API服务层在接收到农场联盟方服务器发送的密文获取请求时,读取所述区块链中上传时间最晚的密文,作为目标密文,并将所述目标密文传输至所述农场联盟方服务器;

农场联盟方服务器接收所述目标密文,并通过本地存储的私钥解密所述目标密文,获得土壤均值数据。

进一步的,所述通过所述初始公钥生成初始次数密文的步骤包括:

通过所述初始公钥对预先赋值的数字1进行同态加密操作,获得所述初始次数密文。

进一步的,所述基于所述中间次数密文生成目标次数密文的步骤包括:

基于所述中间公钥对所述中间次数密文进行加一次同态计算操作,获得所述目标次数密文。

进一步的,所述基于所述中间公钥对所述中间次数密文进行加一次同态计算操作,获得所述目标次数密文的步骤包括:

通过所述中间公钥对数字1进行同态加密操作,获得数字密文;

使用同态计算算法将所述中间次数密文与所述数字密文进行相加运算,获得所述目标次数密文。

进一步的,所述根据所述端口的端口号确定所述端口是否为新增端口的步骤包括:

根据所述端口号在状态数据库中进行查询,确定是否存在与所述端口号对应的公钥和次数密文;

若不存在与所述端口号对应的公钥和次数密文,则确定所述端口为新增端口;

若存在与所述端口号对应的公钥和次数密文,则确定所述端口为非新增端口。

进一步的,所述基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文的步骤包括:

调用预存的lattigo算法库对所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文进行密文相加并求均值操作,获得所述均值密文。

进一步的,读取所述区块链中上传时间最晚的密文,作为目标密文的步骤包括:

识别所述农场联盟方服务器的身份信息,读取所述区块链中对应所述身份信息的上传时间最晚的密文,作为所述目标密文。

为了解决上述技术问题,本申请实施例还提供一种土壤数据的传输系统,采用了如下所述的技术方案:

一种土壤数据的传输系统,所述传输系统包括API服务层,所述API服务层包括:

接收模块,用于接收网关通过与农场联盟方相关联的端口传输的土壤数据,其中,所述农场联盟方与所述端口具有一一对应的关联关系;

判断模块,用于根据所述端口的端口号确定所述端口是否为新增端口;

发送模块,用于在所述端口为新增端口时,向农场联盟方服务器发送同态公私钥生成请求;

生成模块,用于接收所述农场联盟方服务器传输的初始公钥,基于所述初始公钥生成初始次数密文,并将所述端口号、所述初始公钥和所述初始次数密文关联存储至状态数据库,通过所述初始公钥对所述土壤数据进行同态加密操作,生成同态密文,并将所述同态密文传输至区块链;

加密模块,用于在所述端口不是新增端口时,从状态数据库中获取与所述端口号相关联的公钥和次数密文,作为中间公钥和中间次数密文,并通过所述中间公钥对土壤数据进行同态加密操作,获得目标土壤加密数据,基于所述中间次数密文生成目标次数密文;

传输模块,用于基于所述端口号获取区块链中上传时间最晚的密文,作为目标链上密文,基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文,并将所述均值密文传输至区块链;

读取模块,用于在接收到农场联盟方服务器发送的密文获取请求时,读取所述区块链中上传时间最晚的密文,作为目标密文,并将所述目标密文传输至所述农场联盟方服务器;

农场联盟方服务器接收所述目标密文,并通过本地存储的私钥解密所述目标密文,获得土壤均值数据。

为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现上述的土壤数据的传输方法的步骤。

为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:

一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现上述的土壤数据的传输方法的步骤。

与现有技术相比,本申请实施例主要有以下有益效果:

API服务层通过端口号识别不同农场联盟方并提取所对应的用于加密的公钥,使用该公钥进行传输次数的密文计算,在保证土壤数据均值可进行计算的情况下,实现了传输次数的保密性。且API服务层只保存农场联盟方在自己本地生成并发送的同态公钥,并不会保存私钥,有效解决了各联盟方的公私钥保存的问题。通过将最终计算获得的同态密文或均值密文传输至区块链中,防止土壤数据的被篡改的情况发生。在接收到农场联盟方服务器发送的密文获取请求时,则从链上读取密文数据,即目标密文,发送给农场联盟方服务器。

附图说明

为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请可以应用于其中的示例性系统架构图;

图2是根据本申请的土壤数据的传输方法的一个实施例的流程图;

图3是根据本申请的土壤数据的传输系统的一个实施例的结构示意图;

图4是根据本申请的计算机设备的一个实施例的结构示意图。

附图标记:100、农场联盟方的土壤综合传感器;200、网关;300、API服务层;301、接收模块;302、判断模块;303、发送模块;304、生成模块;305、加密模块;306、传输模块;307、读取模块;400、农场联盟方服务器;500、区块链;600、计算机设备;601、存储器;602、处理器;603、网络接口。

具体实施方式

除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。

在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。

为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。

如图1所示,传输系统包括农场联盟方的土壤综合传感器100、网关200、API服务层300、农场联盟方服务器400以及区块链500。网络用以在农场联盟方的土壤综合传感器100、网关200、API服务层300、农场联盟方服务器400以及区块链500之间提供通信链路的介质。网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用农场联盟方服务器对应的终端设备通过网络与API服务层交互,以接收或发送消息等。终端设备上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group AudioLayer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts GroupAudio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。

农场联盟方服务器400可以是提供各种服务的服务器,例如对终端设备上显示的页面提供支持的后台服务器。

需要说明的是,本申请实施例所提供的土壤数据的传输方法一般由土壤数据的传输系统执行。

应该理解,图1中的土壤综合传感器100、网关200、API服务层300、农场联盟方服务器400以及区块链500的数目仅仅是示意性的。根据实现需要,可以具有任意数目的土壤综合传感器100、网关200、API服务层300、农场联盟方服务器400以及区块链500。

继续参考图2,示出了根据本申请的土壤数据的传输方法的一个实施例的流程图。所述的土壤数据的传输方法,包括以下步骤:

S1:API服务层接收网关通过与农场联盟方相关联的端口传输的土壤数据,其中,所述农场联盟方与所述端口具有一一对应的关联关系。

在本实施例中,农场联盟方的土壤综合传感器采集土壤数据,并将采集到的土壤数据传输给网关。其中,土壤数据包括土壤中的氮磷钾含量、土壤的PH值、土壤的湿度以及土壤的温度等。网关接收土壤综合传感器传输的土壤数据,并将该土壤数据发送给与农场联盟方相关联的端口,即农场联盟方的指定端口,本申请中每个农场联盟方分别对应一个指定的端口,端口将土壤数据传输给API服务层。API服务层接收土壤数据,并根据所述端口的端口号确定所述端口是否为新增端口。

本申请进一步还包括,土壤综合传感器先对土壤数据进行解析,获得解析后的土壤数据,将解析后的土壤数据发送给网关。解析过程为安装对应驱动和配置正确的com端口后,预先配置的传感器监控软件会自动将16bits数据高字节转换为对应数据值,例如,土壤湿度4AH(十六进制)=74=7.4%RH。以便于对土壤数据的后续加密和计算等过程。

在本实施例中,土壤数据的传输方法运行于其上的电子设备(例如图1所示的API服务层)可以通过有线连接方式或者无线连接方式接收网关通过与农场联盟方相关联的端口传输的土壤数据。需要指出的是,上述无线连接方式可以包括但不限于3G/4G连接、WiFi连接、蓝牙连接、WiMAX连接、Zigbee连接、UWB(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。

S2:API服务层根据所述端口的端口号确定所述端口是否为新增端口。

在本实施例中,API服务层通过与农场联盟方具有唯一对应关系的端口号确定端口是否为新增端口,通过端口号进行判断方便快捷。若是新增端口,则可知对应的该农场联盟方为新增的农场联盟方,则API服务层实现了对不同的农场联盟方的物联网设备(即土壤综合传感器)采集的土壤数据的识别与区分。

具体的,在步骤S2中,即所述根据所述端口的端口号确定所述端口是否为新增端口的步骤包括:

根据所述端口号在状态数据库中进行查询,确定是否存在与所述端口号对应的公钥和次数密文;

若不存在与所述端口号对应的公钥和次数密文,则确定所述端口为新增端口;

若存在与所述端口号对应的公钥和次数密文,则确定所述端口为非新增端口。

在本实施例中,API服务层(即APIserver层)收到该端口传输请求,以该端口号为key查询状态数据库(即k/v数据库)发现无值,则判定为新增端口。以端口号为key,查询状态数据库(即k/v数据库)发现存在公钥及次数密文,则判定不是新增端口。

S3:若所述端口为新增端口,则向农场联盟方服务器发送同态公私钥生成请求。

在本实施例中,API服务层发送生成同态公私钥请求到农场联盟方服务器。农场联盟方服务器收到生成请求,在本地生成同态公私钥对,生成的初始公钥传输回API服务层,私钥本地保存。

S4:API服务层接收所述农场联盟方服务器传输的初始公钥,基于所述初始公钥生成初始次数密文,并将所述端口号、所述初始公钥和所述初始次数密文关联存储至状态数据库,通过所述初始公钥对所述土壤数据进行同态加密操作,生成同态密文,并将所述同态密文传输至区块链。

在本实施例中,API服务层收农场联盟方服务器传输的公钥,作为初始公钥。基于所述初始公钥生成初始次数密文。以端口号为key,以初始公钥及次数密文为value,将端口号、所述初始公钥和所述初始次数密文关联存储至状态数据库(即k/v数据库)中,有效解决了各农场联盟方同态公钥保存的问题以及后续均值计算时次数统计的隐私性问题。通过初始公钥对土壤数据进行同态加密操作,生成同态密文,并将同态密文传输至区块链中。

具体的,在步骤S4中,即所述通过所述初始公钥生成初始次数密文的步骤包括:

通过所述初始公钥对预先赋值的数字1进行同态加密操作,获得所述初始次数密文。

在本实施例中,土壤综合传感器首次传输土壤数据至API服务层时,初始公钥对数字1进行加密,表示土壤数据的第一次传输,生成初始次数密文。

S5:若所述端口不是新增端口,则从状态数据库中获取与所述端口号相关联的公钥和次数密文,作为中间公钥和中间次数密文,并通过所述中间公钥对土壤数据进行同态加密操作,获得目标土壤加密数据,基于所述中间次数密文生成目标次数密文。

在本实施例中,若所述端口不是新增端口,则说明之前对应的土壤综合传感器已经向API服务层传输过土壤数据,则从状态数据库中获取与所述端口号相关联的公钥和次数密文,作为中间公钥和中间次数密文。通过所述中间公钥对土壤数据进行同态加密操作,获得目标土壤加密数据。基于所述中间次数密文生成目标次数密文,并将所述目标次数密文更新至状态数据库中,也即将目标次数密文替换所述状态数据库中原本存储的中间次数密文,本申请的次数密文是不断更新的,每一次数据传输时,即不断进行基于状态数据库中当前存储的次数密文生成新的目标次数密文。比如现在存储的是24次的次数密文,经过计算之后就变成了25次的次数密文,需要更新到状态数据库中。

本申请中土壤综合传感器会根据实际情况向网关多次传输土壤数据,包括播种时的土壤数据,收获时的土壤数据等实际情况。

此外,在步骤S5中,即所述基于所述中间次数密文生成目标次数密文的步骤包括:

基于所述中间公钥对所述中间次数密文进行加一次同态计算操作,获得所述目标次数密文。

在本实施例中,本申请中每调用端口一次,则读取状态数据库中的次数密文,并对次数密文进行加一次同态计算,获得目标次数密文。次数密文除了用于后续的参与均值密文的计算过程,还用于记录了土壤数据上传的次数,每一次的土壤数据上传,次数密文均更新一次,即对中间次数密文进行加一次同态计算操作,以用于记录土壤数据的上传次数。

进一步的,所述基于所述中间公钥对所述中间次数密文进行加一次同态计算操作,获得所述目标次数密文的步骤包括:

通过所述中间公钥对数字1进行同态加密操作,获得数字密文;

使用同态计算算法将所述中间次数密文与所述数字密文进行相加运算,获得所述目标次数密文。

在本实施例中,读取状态数据库中的次数密文后,调用中间公钥对数字1进行同态加密,获得数字密文;使用同态计算算法将所述次数密文与所述数字密文进行相加运算得到新的密文,完成对次数密文的加一次同态计算操作。同态加密(homomorphicencryption)是一种特殊的加密方法,同态加密允许在密文上进行计算,生成计算后的密文数据,对密文解密后和在明文上进行相关操作结果一致。同态加密的目的就是在保证在不知明文的情况下完成数据的计算,从抽象代数的角度讲,保持了同态性。其中,同态计算算法可以使用Paillier算法,Paillier算法是1999年提出的一种基于合数剩余类问题的公钥加密算法,也是目前最为常用且最具实用性的加法同态加密算法,已在众多具有同态加密需求的应用场景中实现了落地应用。

S6:在所述端口不是新增端口时,API服务层基于所述端口号获取区块链中上传时间最晚的密文,作为目标链上密文,基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文,并将所述均值密文传输至区块链。

在本实施例中,在端口不是新增端口时,API服务层基于端口号获取区块链中上传时间最晚的密文,作为目标链上密文。此时,若是第二次上传土壤数据,则区块链中还没有均值密文,上传时间最晚的密文应为同态密文,此时是获取同态密文作为目标链上密文。若是第二次以上的次数(如第三次上传或第四次上传等)上传土壤数据,则区块链中上传时间最晚的密文应为最新的均值密文,此时是获取最新的均值密文作为目标链上密文。通过均值密文的生成实现上传至区块链中的密文包含了历史的土壤数据(通过目标链上密文可以获知),土壤的上传次数(通过目标次数密文可以获知)以及最新上传的土壤数据(通过目标土壤加密数据可以获知)。实现了均值密文包含了多维度的信息。

此外,在步骤S6中,即所述基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文的步骤包括:

调用预存的lattigo算法库对所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文进行密文相加并求均值操作,获得所述均值密文。

在本实施例中,调用lattigo算法库进行密文相加求均值。求均值用到次数密文(包括中间次数密文和目标次数密文)、新传输的土壤数据密文以及链上数据密文,获得均值密文,将计算后获得的均值密文上链。具体的,所述均值密文的计算公式是:(目标链上密文×中间次数密文+目标土壤加密数据)/目标次数密文。Lattigo算法库是基于Lattice代数结构的Go同态加密库。该库包含以下子包:lattigo/ring:RNS加速的多项式模块化算术运算,包括:RNS基数扩展;RNS重新缩放;数论变换(NTT);均匀,高斯和三元采样。lattigo/bfv:Brakerski的尺度不变同态加密方案的RNS加速Fan-Vercauteren版本。它提供了整数的模运算。lattigo/ckks:RNS加速版的近似数字同态加密(HEAAN,又名CKKS)方案。它提供了复数的近似算术。lattigo/dbfv和lattigo/dckks:BFV和CKKS方案的分布式(或阈值)版本,可使用共享的秘密密钥实现安全的多方计算解决方案。lattigo/examples:可执行的Go程序,演示了Lattigo库的用法。请注意,每个子包都包含测试文件,这些文件进一步演示了Lattigo基元的用法。lattigo/utils:支持的结构和功能。本申请通过调用lattigo算法库中的同态加密数据均值计算算法,对目标土壤加密数据、所述目标次数密文和所述目标链上密文进行密文相加并求均值操作,获得所述均值密文。

S7:API服务层在接收到农场联盟方服务器发送的密文获取请求时,读取所述区块链中上传时间最晚的密文,作为目标密文,并将所述目标密文传输至所述农场联盟方服务器。

在本实施例中,读取所述区块链中上传时间最晚的密文,作为目标密文。需要说明的是,若接收到农场联盟方服务器的密文获取请求时的时间在土壤数据第一次上传和土壤数据第二次上传之间,那么此时区块链中上传时间最晚的密文,即目标密文是指同态密文。若接收到农场联盟方服务器的密文获取请求时的时间在土壤数据第二次上传之后,即在端口不是新增端口之后,则此时区块链中上传时间最晚的密文,即目标密文指最新的均值密文。API服务层接收到农场联盟方发送的密文获取请求时,调用sdk从区块链中读取目标密文,并将目标密文传输给农场联盟方,农场联盟方使用本地私钥解析目标密文,获得目标土壤数据。

需要说明的是:在将均值密文传输至区块链中后,API服务层读取并传输给农场联盟方服务器的链上密文即为该均值密文,农场联盟方服务器接收并通过本地存储的私钥解析该均值密文,获得目标土壤数据。API服务层不会存储该均值密文,也不需要进行额外的处理操作,只需要传输给农场联盟方服务器即可。

具体的,在步骤S7中,即读取所述区块链中上传时间最晚的密文,作为目标密文的步骤包括:

识别所述农场联盟方服务器的身份信息,读取所述区块链中对应所述身份信息的上传时间最晚的密文,作为所述目标密文。

在本实施例中,通过农场联盟方服务器的ID确定与其关联的端口。基于该端口确定农场联盟方对应的区块链中的密文,进而从这些对应的密文中选择上传时间最晚的密文,作为所述目标密文。

S8:农场联盟方服务器接收所述目标密文,并通过本地存储的私钥解密所述目标密文,获得土壤均值数据。

在本实施例中,农场联盟方服务器在接收到API服务层传输的目标密文后,通过与加密该目标密文的公钥所对应的私钥,解密目标密文,获得真实的土壤均值数据。

API服务层通过端口号识别不同农场联盟方并提取所对应的用于加密的公钥,使用该公钥进行传输次数的密文计算,在保证土壤数据均值可进行计算的情况下,实现了传输次数的保密性。且API服务层只保存农场联盟方在自己本地生成并发送的同态公钥,并不会保存私钥,有效解决了各联盟方的公私钥保存的问题。通过将最终计算获得的同态密文或均值密文传输至区块链中,防止土壤数据的被篡改的情况发生。在接收到农场联盟方服务器发送的密文获取请求时,则从链上读取密文数据,即目标密文,发送给农场联盟方服务器。实现了土壤数据从采集并传输再到同态计算上链整个过程,无人为干预,土壤数据不需要借助数据平台(即数据库)中转再传输。API服务层通过对端口的识别,获取或查找对应的公私、通过公钥生成次数密文以及通过公钥对土壤数据进行加密,并传输至区块链。保证了土壤数据传输无干预、传输至区块链的数据及对均值密文计算的过程均是通过密文进行,保护了农场联盟方的土壤数据的隐私性的同时,达到了对土壤数据可信任,可追溯的特性。

本申请所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指令相关的硬件来完成,该计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种土壤数据的传输系统的一个实施例,该系统实施例与图2所示的方法实施例相对应,该系统具体可以应用于各种电子设备中。

如图3所示,本实施例所述的土壤数据的传输系统系统包括API服务层300和农场联盟方服务器400,所述API服务层300包括:接收模块301、判断模块302、发送模块303、生成模块304、加密模块305、传输模块306以及读取模块307;

接收模块301,用于接收网关通过与农场联盟方相关联的端口传输的土壤数据,其中,所述农场联盟方与所述端口具有一一对应的关联关系;判断模块302,用于根据所述端口的端口号确定所述端口是否为新增端口;发送模块303,用于在所述端口为新增端口时,向农场联盟方服务器发送同态公私钥生成请求;生成模块304,用于接收所述农场联盟方服务器传输的初始公钥,基于所述初始公钥生成初始次数密文,并将所述端口号、所述初始公钥和所述初始次数密文关联存储至状态数据库,通过所述初始公钥对所述土壤数据进行同态加密操作,生成同态密文,并将所述同态密文传输至区块链;加密模块305,用于在所述端口不是新增端口时,从状态数据库中获取与所述端口号相关联的公钥和次数密文,作为中间公钥和中间次数密文,并通过所述中间公钥对土壤数据进行同态加密操作,获得目标土壤加密数据,基于所述中间次数密文生成目标次数密文;传输模块306,用于在所述端口不是新增端口时,基于所述端口号获取区块链中上传时间最晚的密文,作为目标链上密文,基于所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文生成均值密文,并将所述均值密文传输至区块链;读取模块307,用于在接收到农场联盟方服务器发送的密文获取请求时,读取所述区块链中上传时间最晚的密文,作为目标密文,并将所述目标密文传输至所述农场联盟方服务器;农场联盟方服务器400接收所述目标密文,并通过本地存储的私钥解密所述目标密文,获得土壤均值数据

在本实施例中,API服务层通过端口号识别不同农场联盟方并提取所对应的用于加密的公钥,使用该公钥进行传输次数的密文计算,在保证土壤数据均值可进行计算的情况下,实现了传输次数的保密性。且API服务层只保存农场联盟方在自己本地生成并发送的同态公钥,并不会保存私钥,有效解决了各联盟方的公私钥保存的问题。通过将最终计算获得的同态密文或均值密文传输至区块链中,防止土壤数据的被篡改的情况发生。在接收到农场联盟方服务器发送的密文获取请求时,则从链上读取密文数据,即目标密文,发送给农场联盟方服务器。

判断模块302包括查询子模块、第一确定子模块和第二确定子模块,其中,查询子模块用于根据所述端口号在状态数据库中进行查询,确定是否存在与所述端口号对应的公钥和次数密文;第一确定子模块用于在不存在与所述端口号对应的公钥和次数密文时,确定所述端口为新增端口;所述第二确定子模块用于在存在与所述端口号对应的公钥和次数密文时,确定所述端口为非新增端口。

在本实施例的一些可选的实现方式中,生成模块304进一步用于:通过所述初始公钥对预先赋值的数字1进行同态加密操作,获得所述初始次数密文。

在本实施例的一些可选的实现方式中,加密模块305进一步用于:基于所述中间公钥对所述中间次数密文进行加一次同态计算操作,获得所述目标次数密文。

其中,所述加密模块305包括加密子模块和相加子模块,其中,加密子模块用于通过所述中间公钥对数字1进行同态加密操作,获得数字密文;所述相加子模块用于使用同态计算算法将所述中间次数密文与所述数字密文进行相加运算,获得所述目标次数密文。

在本实施例的一些可选的实现方式中,传输模块306进一步用于调用预存的lattigo算法库对所述目标土壤加密数据、所述目标次数密文、所述中间次数密文和所述目标链上密文进行密文相加并求均值操作,获得所述均值密文。

在本实施例的一些可选的实现方式中,读取模块307进一步用于识别所述农场联盟方服务器的身份信息,读取所述区块链中对应所述身份信息的上传时间最晚的密文,作为所述目标密文。

API服务层通过端口号识别不同农场联盟方并提取所对应的用于加密的公钥,使用该公钥进行传输次数的密文计算,在保证土壤数据均值可进行计算的情况下,实现了传输次数的保密性。且API服务层只保存农场联盟方在自己本地生成并发送的同态公钥,并不会保存私钥,有效解决了各联盟方的公私钥保存的问题。通过将最终计算获得的同态密文或均值密文传输至区块链中,防止土壤数据的被篡改的情况发生。在接收到农场联盟方服务器发送的密文获取请求时,则从链上读取密文数据,即目标密文,发送给农场联盟方服务器。

为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图4,图4为本实施例计算机设备基本结构框图。

所述计算机设备600包括通过系统总线相互通信连接存储器601、处理器602、网络接口603。需要指出的是,图中仅示出了具有组件601-603的计算机设备600,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。

所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。

所述存储器601至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器601可以是所述计算机设备600的内部存储单元,例如该计算机设备600的硬盘或内存。在另一些实施例中,所述存储器601也可以是所述计算机设备600的外部存储设备,例如该计算机设备600上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器201还可以既包括所述计算机设备600的内部存储单元也包括其外部存储设备。本实施例中,所述存储器601通常用于存储安装于所述计算机设备600的操作系统和各类应用软件,例如土壤数据的传输方法的计算机可读指令等。此外,所述存储器601还可以用于暂时地存储已经输出或者将要输出的各类数据。

所述处理器602在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器602通常用于控制所述计算机设备600的总体操作。本实施例中,所述处理器602用于运行所述存储器601中存储的计算机可读指令或者处理数据,例如运行所述土壤数据的传输方法的计算机可读指令。

所述网络接口603可包括无线网络接口或有线网络接口,该网络接口603通常用于在所述计算机设备600与其他电子设备之间建立通信连接。

本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的土壤数据的传输方法的步骤。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。

显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

相关技术
  • 土壤数据的传输方法、系统、计算机设备及存储介质
  • 控制数据的传输系统和方法、子系统、计算机设备和计算机可读存储介质
技术分类

06120114699602