一种采用区块链技术的农产品溯源信息安全解决方法与流程

文档序号:16511335发布日期:2019-01-05 09:21阅读:550来源:国知局
一种采用区块链技术的农产品溯源信息安全解决方法与流程

本发明涉及农产品溯源信息安全技术领域,尤其涉及一种应用于农产品溯源系统的采用区块链技术的农产品溯源信息安全解决方法。



背景技术:

农产品溯源体系建设是管理和控制农产品安全问题的重要手段,这类系统常采用rfid、二维码作为溯源标签,具有低成本、快速读写的优势,但又面临很多威胁,包括来自物理环境、软硬件故障、误操作或操作失误、管理缺失、恶意代码和病毒、权限管理漏洞、黑客攻击技术、内部泄密、非法篡改和抵赖等多个方面。这些威胁对农产品溯源服务体系中溯源信息的完整性、可靠性和可用性等方面造成巨大损害。因此,农产品溯源信息的安全可追溯,溯源信息防伪造、防篡改是农产品溯源系统中亟待解决的核心问题。

现有溯源技术主要关注前端溯源,产品信息在中央数据库集中存储和处理,存在芯片内容被复制或数据库被攻破的可能性,并可能通过单点故障进一步引发其他安全威胁。

目前,部分研究者在溯源系统中引入安全措施,通常采用中心数据库与访问控制、接入认证、信息加密、数字水印等传统密码学方法结合的安全手段。例如,文献(刘佳,许丹宁,石玉强,等.基于rfid的动物产品溯源系统认证技术研究[j].广东农业科学,2014,41(14):179-182.)研究了基于rfid技术的动物产品溯源方案的接入认证技术,设计了一个适用于低成本动物产品溯源的高效可靠rfid认证方案,保证了标签身份的隐私,一定程度上防止了标签的伪造,但是未考虑中心化的后端数据库验证过程仍然有被攻击者篡改的可能性。文献(龙陈锋,雷坚,杨鑫,等.基于数字水印–二维码标签的黄茶追溯系统研究[j].湖南农业大学学报:自然科学版,2015,41(5):565-568.)针对二维码标签作为唯一防伪溯源载体加密后无法被开放解码标准识读器识读的问题,提出基于arnold置乱和dct的水印嵌入算法,实现防伪的同时可将生产信息明文写入。但该方法无法满足产品流溯源信息的动态变化,此外造假者可以通过回收品牌包装,轻易实现防伪信息重复利用。区块链技术通过去中心化和去信任的方式,实现数据信息安全可靠传输,可以很好的解决上述文献存在的问题,区块链示意图如图1所示。



技术实现要素:

针对上述问题,本发明提出一种基于区块链技术的农产品溯源系统安全问题的解决方法,可以有效解决基于区块链技术的农产品溯源系统的数据存储安全问题。

为了实现上述目的,本发明采用以下技术方案:

一种采用区块链技术的农产品溯源信息安全解决方法,包括:

改进共识机制,得到改进的共识机制,所述改进的共识机制为:当所有实体终端都持有待提交验证的区块,为了让自身的收益最大,任何实体终端都无法改变自身对其他实体终端打包产生的区块的验证结果;

进行多级溯源信息验证;

运用多私钥规则进行访问权限控制;

通过改进的共识机制、多级溯源信息验证及多私钥规则进行访问权限控制,实现分布式记账。

进一步地,在改进共识机制之前,还包括:通过问题建模得到问题模型;

所述问题模型为:

u1∨u2∨...∨un=1,(ui∈u)(7)

pl(t1,t2,k)=p{sl(t1,t2)=k},(0≤t1<t2,k=0,1,2…)(8)

其中,λ为单位时间到达攻击的平均值,μ为参数,u为溯源系统中农产品溯源编码的集合,u={u1,u2,…un},ui.state表示溯源编码的状态,ui.state∈{-1,0,1},i∈[1,n],ui.state的三种取值分别对应溯源编码发生篡改、无变化及伪造三种情况;l是溯源系统安全运行条件,sl(t1,t2)描述系统在满足安全运行条件l下[t1,t2]时间范围内受到各种攻击的侵害程度,pl(t1,t2,k)是溯源系统在满足安全运行条件l下[t1,t2]时间范围内溯源编码遭到k次篡改或伪造的概率,rb(s)为系统在安全算法b下运行的风险因子,pn(t)表示在t时刻溯源系统已遭到n个攻击者攻击的概率。

进一步地,所述改进共识机制包括:

若本轮计算时间尚未结束,对于最早出现的ai∈a,且使ui(si1,…sij,…,sin)=n,则选取ai打包产生的区块作为本轮共识区块;

若本轮计算时间已结束,使得n>ui(si1,…sij,…,sin)>uj(sj1,…sji,…,sjn),则选取ai打包产生的区块作为本轮共识区块;

若本轮计算时间已结束,aj,使得n>ui(si1,…sij,…,sin)=uj(sj1,…sji,…,sjn)>uk(sk1,…skj,…,skn),则从ai、aj打包产生的区块中选取最早达到ui当前值的区块作为本轮共识区块;

其中,ai、aj为实体终端,且aj为验证方实体终端,a={a1,a2,...,an}为系统中实体终端的集合,(sj1,…sji,…,sjn)为由ai进行打包的区块组成的各实体终端验证组合,sij为aj对ai提交区块的验证结果;

所述sij满足:

进一步地,所述进行多级溯源信息验证包括:

对于交易的每个输入设置如下多级溯源信息验证规则:

验证企图销售的农产品是否属于当前状态s的农产品,若否则进入出错状态;

验证对本次交易的签名是否是农产品所有者本人,若否则进入出错状态;

验证拥有的农产品数量是否小于企图销售的农产品数量,若是则进入出错状态;若否则进入新状态s',且新状态s'下农产品的拥有量为原拥有量减去销售量;

验证创建交易状态下农产品销售量是否为0,若是则进入出错状态。

进一步地,所述运用多私钥规则进行访问权限控制包括:

为各实体终端分发密钥对用于相邻实体终端间的通信;

两个相邻实体终端,实体终端i和实体终端i+1间通信时,其中实体终端i为发送方,实体终端i+1为接收方,且实体终端i的密钥对为(pki,ski),其中pki为实体终端i的公钥,ski为实体终端i的私钥,采用二次散列迭代的方式,将发送方实体终端i的公钥及消息si同时作为哈希函数的输入,得到可作为特征值的哈希运算消息认证码hmac,计算方法如下:

其中,si为实体终端i产生的溯源信息,h为散列函数,opad和ipad为两个不同的预先指定的字符串,表示异或,∣表示连接;

用发送方实体终端i的私钥ski对由公式(14)得到的hmac进行签名,实体终端i将发送方签名过的hmac及消息正文一起传送给实体终端i+1。

进一步地,所述通过改进的共识机制、多级溯源信息验证及多私钥规则进行访问权限控制,实现分布式记账包括:

按照交易的每个输入的多级溯源信息验证规则创建新交易,并通过发送方实体终端将新交易的交易数据打包成区块b;

发送方实体终端将区块b通过p2p网络进行广播;

p2p网络各实体终端通过区块有效性验证算法验证区块b的有效性,并按照改进的共识机制选出各轮获得的共识区块;

将验证结果通过p2p网络进行广播;

通过哈希函数的方式将区块b链接到已有区块链c上并同步更新至各个实体终端,实现交易的分布式记账。

进一步地,所述区块有效性验证算法包括:

若所述区块b存在且创世区块不为空,则将区块b用四元组<s,t',c,len>表示,其中s为区块生成序号,t'表示溯源链中不同实体终端间交易的交易类型,c为依据溯源标准得到的溯源码的编码格式,len为新生区块中单条交易的长度,依据多级溯源信息验证规则对区块b进行验证,运用多私钥规则进行访问权限控制,由实体终端i和实体终端i+1本地存储的溯源编码si和si′及实体终端i的公钥分别计算哈希运算消息认证码,若对区块的验证通过且计算的两个哈希运算消息认证码相等,则将区块b链接到区块链c的末尾,否则提示出错。

与现有技术相比,本发明具有的有益效果:

本发明的一种采用区块链技术的农产品溯源信息安全解决方法,通过改进共识机制,利用分布式网络记账保障农产品溯源信息的数据完整性和可靠性;通过多级溯源信息验证,保证溯源信息不可篡改;运用多私钥规则进行访问权限控制,能够有效杜绝攻击者对溯源信息账本的非授权改动,从而提高溯源信息的可信度。通过上述方式,本发明解决了农产品溯源系统中存在的数据存储安全问题。

附图说明

图1为区块链示意图。

图2为本发明实施例的一种采用区块链技术的农产品溯源信息安全解决方法的基本流程图。

图3为本发明又一实施例的一种采用区块链技术的农产品溯源信息安全解决方法的基本流程图。

图4为本发明实施例的一种采用区块链技术的农产品溯源信息安全解决方法的相邻实体终端通信示意图。

图5为本发明实施例的一种采用区块链技术的农产品溯源信息安全解决方法的分布式记账示意图。

具体实施方式

下面结合附图和具体的实施例对本发明做进一步的解释说明:

实施例一

如图2所示,本发明的一种采用区块链技术的农产品溯源信息安全解决方法,包括:

步骤s101:改进共识机制,得到改进的共识机制,所述改进的共识机制为:当所有实体终端都持有待提交验证的区块,为了让自身的收益最大,任何实体终端都无法改变自身对其他实体终端打包产生的区块的验证结果。

所述改进共识机制包括:

若本轮计算时间尚未结束,对于最早出现的ai∈a,且使ui(si1,…sij,…,sin)=n,则选取ai打包产生的区块作为本轮共识区块;

若本轮计算时间已结束,使得n>ui(si1,…sij,…,sin)>uj(sj1,…sji,…,sjn),则选取ai打包产生的区块作为本轮共识区块;

若本轮计算时间已结束,aj,使得n>ui(si1,…sij,…,sin)=uj(sj1,…sji,…,sjn)>uk(sk1,…skj,…,skn),则从ai、aj打包产生的区块中选取最早达到ui当前值的区块作为本轮共识区块;

其中,ai、aj为实体终端,且aj为验证方实体终端,a={a1,a2,...,an}为系统中实体终端的集合,(sj1,…sji,…,sjn)为由ai进行打包的区块组成的各实体终端验证组合,sij为aj对ai提交区块的验证结果;

所述sij满足:

步骤s102:进行多级溯源信息验证。

所述进行多级溯源信息验证包括:

对于交易的每个输入设置如下多级溯源信息验证规则:

验证企图销售的农产品是否属于当前状态s的农产品,若否则进入出错状态;

验证对本次交易的签名是否是农产品所有者本人,若否则进入出错状态;

验证拥有的农产品数量是否小于企图销售的农产品数量,若是则进入出错状态;若否则进入新状态s',且新状态s'下农产品的拥有量为原拥有量减去销售量;

验证创建交易状态下农产品销售量是否为0,若是则进入出错状态。

步骤s103:运用多私钥规则进行访问权限控制。

所述运用多私钥规则进行访问权限控制包括:

为各实体终端分发密钥对用于相邻实体终端间的通信;

两个相邻实体终端,实体终端i和实体终端i+1间通信时,其中实体终端i为发送方,实体终端i+1为接收方,且实体终端i的密钥对为(pki,ski),其中pki为实体终端i的公钥,ski为实体终端i的私钥,采用二次散列迭代的方式,将发送方实体终端i的公钥及消息si同时作为哈希函数的输入,得到可作为特征值的哈希运算消息认证码hmac,计算方法如下:

其中,si为实体终端i产生的溯源信息,h为散列函数,opad和ipad为两个不同的预先指定的字符串,表示异或,∣表示连接;

用发送方实体终端i的私钥ski对由公式(14)得到的hmac进行签名,实体终端i将发送方签名过的hmac及消息正文一起传送给实体终端i+1。

步骤s104:通过改进的共识机制、多级溯源信息验证及多私钥规则进行访问权限控制,实现分布式记账。

所述通过改进的共识机制、多级溯源信息验证及多私钥规则进行访问权限控制,实现分布式记账包括:

按照交易的每个输入的多级溯源信息验证规则创建新交易,并通过发送方实体终端将新交易的交易数据打包成区块b;

发送方实体终端将区块b通过p2p网络进行广播;

p2p网络各实体终端通过区块有效性验证算法验证区块b的有效性,并按照改进的共识机制选出各轮获得的共识区块;所述区块有效性验证算法包括:

若所述区块b存在且创世区块不为空,则将区块b用四元组<s,t',c,len>表示,其中s为区块生成序号,t'表示溯源链中不同实体终端间交易的交易类型,c为依据溯源标准得到的溯源码的编码格式,len为新生区块中单条交易的长度,依据多级溯源信息验证规则对区块b进行验证,运用多私钥规则进行访问权限控制,由实体终端i和实体终端i+1本地存储的溯源编码si和si′及实体终端i的公钥分别计算哈希运算消息认证码,若对区块的验证通过且计算的两个哈希运算消息认证码相等,则将区块b链接到区块链c的末尾,否则提示出错;

将验证结果通过p2p网络进行广播;

通过哈希函数的方式将区块b链接到已有区块链c上并同步更新至各个实体终端,实现交易的分布式记账。

实施例二

如图3所示,本发明的另一种采用区块链技术的农产品溯源信息安全解决方法,包括:

步骤s201:通过问题建模得到问题模型。

农产品溯源信息系统面临的安全威胁具有以下特征:

(1)攻击源无限,每个攻击者单独到来,相互独立,且攻击流平稳,不考虑出现高峰期或空闲期的情况;

(2)攻击者的到达符合参数为λ的泊松分布,其中λ是单位时间到达攻击的平均值;

(3)每次攻击造成的溯源信息篡改情况服从参数为m的负指数分布;

(4)每次攻击到达的时间间隔和造成的破坏相互独立。

设溯源系统中实体终端个数为m,u为系统中农产品编码的集合,u={u1,u2,…un},包括两个值域,ui.code表示对应的产品溯源编码,ui.state表示溯源编码的状态,ui.state∈{-1,0,1}(i∈n),三种取值分别对应溯源编码发生篡改、无变化及伪造三种情况;l是系统安全运行条件,sl(t1,t2)描述系统在满足安全运行条件l下[t1,t2]时间范围内受到各种攻击的侵害程度,pl(t1,t2,k)是系统在满足安全运行条件l下[t1,t2]时间范围内溯源编码遭到k次篡改或伪造的概率,rb(s)为系统在安全算法b下运行的风险因子,或称为系统的鲁棒性,用pn(t)表示在t时刻系统已遭到n个攻击者攻击的概率。

由上可知,当δt足够小时,在[t,t+δt]时间间隔内有一个攻击者到达的概率为λδt。因此,在t+δt时刻,系统遭到n个攻击者攻击的概率为pn(t+δt),有:

pn(t+δt)=pn(t)(1-λδt-mδt)+pn+1(t)mdt+o(dt)

令dt→0,得:

当n=0时,在t+dt时刻时系统内没有攻击者的状态,分为以下三种相互独立的情况:

(1)时刻t系统没有遭到攻击,在[t,t+dt]内也没有出现新的攻击,概率为(1-λdt)p0(t);

(2)时刻t系统没有遭到攻击,在[t,t+dt]内出现一个新的攻击,概率为λdtμdtp0(t);

(3)时刻t系统遭到攻击,在[t,t+dt]内没有出现新的攻击,概率为(1-λdt)μdtp1(t)。

从而有:

因此,pn(t)应服从公式(1)和(2)。

令编码的状态取值对应三种情况:

则sl(t1,t2)可由下式计算得到:

本发明建立的问题模型如下:

u1∨u2∨...∨un=1,(ui∈u)(7)

pl(t1,t2,k)=p{sl(t1,t2)=k},(0≤t1<t2,k=0,1,2…)(8)

式(5)是t时刻系统已遭到n个攻击者攻击的概率方程组;式(6)为系统侵害程度的约束函数;式(7)为系统约束函数,要求至少存在一个溯源编码;式(8)是时间[t1,t2]内出现k次溯源编码被破坏的概率;式(9)为系统目标约束函数,用以衡量一段时间内系统受到攻击的平均情况,该值越小,说明系统具有较高的鲁棒性。

中心化数据库存储方式结合访问控制、接入认证、信息加密、数字水印等传统密码学方法结合的安全手段,可以得到某种程度内系统安全存储性能的提升,但无法避免系统可能存在的潜在的漏洞及工作人员恶意破坏导致的安全威胁,因而无法从根本上解决上述式(5)~(9)描述的动态数据存储安全问题。因此本发明提出基于区块链技术对动态数据存储机制进行优化的方法。

步骤s202:改进共识机制,得到改进的共识机制,所述改进的共识机制为:当所有实体终端都持有待提交验证的区块,为了让自身的收益最大,任何实体终端都无法改变自身对其他实体终端打包产生的区块的验证结果。

区块链技术的核心优势之一是能够在决策权高度分散的去中心化系统中采用激励机制,使各实体终端高效地针对区块数据的有效性达成共识。但该机制在农产品溯源体系中的应用存在明显不足。通过研究使得共识终端最大化自身收益的局部行为与保障溯源系统安全性和有效性整体目标的关系,可以得出如下结论:当所有实体终端都持有待提交验证的区块,为了让自身的收益最大,任何一方都无法改变自身对其他实体终端打包产生的区块的验证结果。其数学形式描述如下:

在农产品溯源系统中,a={a1,a2,…,an}为系统中终端的集合,所述终端为实体终端。某终端ai提交的打包区块获得其他终端验证组合及其收益用集合gi={si1,…,sin:ui}表示。由某个终端ai进行打包的区块组成的各终端验证组合(si1,…,sin)中,任一参与验证方aj对ai提交区块的验证结果表示为sij,且满足:

则取得该轮区块记账权分为几种情况:

(1)本轮计算时间尚未结束,对于最早出现的ai∈a,且使ui(si1,…,sij,…,sin)=n,则选取ai打包产生的区块为本轮共识区块,即选取最早通过系统所有终端验证的区块;

(2)本轮计算时间已结束,使得n>ui(si1,…,sij,…,sin)>uj(sj1,…,sji,…sjn),则选取ai打包产生的区块为本轮共识区块,即选取经系统所有终端验证获得最大收益的区块;

(3)本轮计算时间已结束,使得n>ui(si1,…,sij,…,sin)=uj(sj1,…,sji,…sjn)>uk(sk1,…,skj,…skn),则从ai,aj打包产生的区块中选取最早达到ui当前值的区块为本轮共识区块,即选取最早经系统所有终端验证获得最大收益的区块。

步骤s203:进行多级溯源信息验证,包括:

农产品溯源系统中进销存账本也可以从技术层面上被认为是一个状态转换系统,该系统包括所有现存的农产品所有权“状态”和“状态转换函数”,下面给出相关描述。

农产品溯源系统的“状态”是所有已经被编码、分布式存储、没有售出的农产品(unsaleagricultureproductsoutputs,uapo)的集合。每类uapo都有一个数额和所有者,这里通过一个20个字节的公钥加以定义。一笔交易包括一个或多个输入/输出。每个输入包含一个对现有uapo的引用和由与所有者地址相对应的私钥创建的密码学签名,每个输出包含一个新加入到状态中的uapo。

农产品溯源系统状态转换函数定义如下:

apply(s,tx)→s'orerror(13)

对于交易的每个输入定义如下多级溯源信息验证规则:

规则1:

规则2:sign(uapo)≠signowner(uapo)→error;

规则3:

规则4:

规则5:

规则1表示若企图销售不属于当前状态s的农产品则进入出错状态,防止交易的发送者销售不存在的农产品;规则2用于验证对本次交易的签名是否是农产品所有者本人,防止交易的发送者销售其他人的农产品;规则3,4,5确保价值守恒:若拥有的农产品数量小于企图销售的农产品数量,由规则3进入出错状态;否则由规则4进入新状态s',且该状态下农产品的拥有量为原拥有量减去销售量;规则5表明,仅允许创建状态下农产品拥有量为0,不允许某次交易农产品销售量为0,避免系统出现大量无意义交易带来的系统拒绝服务攻击。

步骤s204:运用多私钥规则进行访问权限控制,包括:

本发明采用多级访问控制模式,支持数据信息在相邻实体终端间传递时动态的修改,农产品的交易过程可看作步骤s103中描述的农产品状态转换。

在本发明中,由密钥分发机构为溯源系统中各实体生成密钥对用于相邻层次间的通信,且仅允许相邻的实体终端进行通信。对于农产品供应链中两个相邻实体终端i和实体终端i+1,相邻实体终端间的通信如图4所示。且实体终端i为发送方,实体终端i的密钥对为(pki,ski),其中pki为实体终端i的公钥,ski为实体终端i的私钥,实体终端i+1为接收方,实体终端i产生的溯源信息为si,若对完整的溯源信息进行签名将导致两方面的缺陷,一方面存储完整消息对应的数字签名往往需要大量的空间,另一方面采用非对称加密技术对完整消息进行加密计算开销较大,处理速度较慢。因此在农产品溯源系统中相邻层次实体终端间通信时,采用二次散列迭代的方式,将发送方公钥及消息si同时作为哈希函数的输入,得到可作为特征值的哈希运算消息认证码(hashbasedmessageauthenticationcode,hmac),

计算方法如下:

其中,pki是发送方公钥,si是即将发送的消息,h是散列函数,opad和ipad是两个不同的预先指定的字符串,表示异或,∣表示连接。

用发送方的私钥对由公式(14)得到的消息认证码进行签名,得到签名过的哈希运算消息认证码,由于数据量较少,可保证此运算过程较快。实体终端i将签名过的哈希运算消息认证码,消息正文一起传送给实体终端i+1。

步骤s205:通过改进的共识机制、多级溯源信息验证及多私钥规则进行访问权限控制,实现分布式记账,完成农产品溯源信息安全存储。

分布式记账过程可描述为图5,每个节点代表一个实体终端,各个节点的帐户名为其公钥,使用自己的私钥对验证过的信息进行签名。

分布式记账具体过程如下:

按照交易的每个输入的多级溯源信息验证规则创建新交易,并通过发送方实体终端将新交易的交易数据打包成区块b;

发送方实体终端将区块b通过p2p网络进行广播;

p2p网络各实体终端通过区块有效性验证算法验证区块b的有效性,并按照改进的共识机制选出各轮获得的共识区块;

将验证结果通过p2p网络进行广播;

通过哈希函数的方式将区块b链接到已有区块链c上并同步更新至各个实体终端,实现交易的分布式记账。

新产生的区块b用四元组<s,t',c,len>表示,s为区块生成序号,t'表示溯源链中不同层次间交易的交易类型,c为依据溯源标准得到的溯源码的编码格式,len为新生区块中单条交易的长度。创世区块存在且新生区块非空,区块有效性验证算法如下所示。

区块有效性验证算法:

输入:区块链c,新生成区块b;

输出:若创世区块不存在或新区块b不存在,返回错误提示;若新区块b合法,返回加入新区块后的区块链c;若b非法,返回b。

函数v(x)收容当前交易并将其打包成区块b,若区块b存在且创世区块不为空,则将区块b用四元组〈s,t',c,len〉表示,依据多级溯源信息验证规则对区块b进行验证,运用多私钥规则进行访问权限控制,由实体终端i和实体终端i+1本地存储的溯源编码si和si′及实体终端i的公钥分别计算哈希运算消息认证码,若对区块的验证通过且计算的两个哈希运算消息认证码相等,则将区块b链接到区块链c的末尾,否则提示出错。

本发明提出基于区块链技术对农产品溯源数据进行存储和管理,所有的农产品溯源数据及在其上的操作都被永久性地记入区块链数据区块供授权用户访问。这些数据所在的区块被同步存储在系统的每一个参与运算的实体终端中,所有这些实体终端构成了农产品溯源数据存储系统及其坚韧的分布式数据库系统,任何一个实体终端的数据被破坏都可以仅访问数据库中部分实体终端而得到验证;同时,因为其他健康实体终端都保存了完整的数据库,任何一个实体终端的动态数据区块被破坏都不会影响整个数据库的正常运转。因此,本发明提出的一种采用区块链技术的农产品溯源信息安全解决方法很好的解决了农产品溯源系统中存在的数据存储安全问题。

以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1