一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于区块链的隐私保护防伪汽车供应链方法

2022-07-10 03:19:51 来源:中国专利 TAG:


1.本发明涉及一种隐私保护防伪汽车供应链方法,具体涉及一种基于区块链的隐私保护防伪汽车供应链方法,属于区块链隐私保护及智能车联网技术领域。


背景技术:

2.在当前全球化的背景下,越来越多的跨国企业建立了汽车零部件的供应链,以实现高效的汽车零部件供应。然而,汽车零部件的假货问题愈发严重。假冒的汽车零部件容易导致交通事故,严重威胁到车辆驾驶员和行人的生命财产安全。
3.近年来,射频识别技术(rfid,radio frequency identification)多被用在防伪技术上,其使用一种被称为产品电子代码(epc,electronic product code)的 nfc(near field communication)标签来识别具有唯一标识符(product identifier) 的产品。在这类方案中,用户扫描产品的唯一标识符,再通过与数据库存储的该产品唯一标识符进行比对,如果一致则认为产品为真,否则为假。但是,该类方案存在一定的安全风险。首先,产品的标识符可能会被复制伪造。其次,传统的中心化服务器容易受到敌手攻击,存储的数据可能会被破坏或篡改。
4.区块链技术具有无中心化、不可篡改、数据公开透明等特性,任何人或机构无法通过控制一个或者几个节点的方式控制整个区块链网络,且数据一旦存储在区块链上,就无法被修改或删除。因此,将区块链技术应用在汽车供应链中,可以有效解决上述问题。现有的防伪汽车供应链实现方案中,汽车零部件信息(如汽车零部件制造商、生产日期、pid等)和汽车零部件交易信息(如物流信息、所有权转移信息等)均存储在区块链上。如果接收到的信息与区块链上存储的信息存在不一致,则买方可以将该汽车零部件视为假冒产品。
5.然而,现有方案存在隐私信息泄露的问题。由于区块链的透明性,每个用户都可以获得区块链上的数据,从而导致敏感信息的泄露。某种产品的销量、利润、买方、卖方等均属于一些需要保密的商业机密,这些商业机密的泄露同样会对汽车供应链中的商家造成经济损失。


技术实现要素:

6.本发明的目的是针对现有技术存在不缺和缺陷,为了解决传统的基于区块链的防伪汽车供应链方法无法同时满足数据公开可验证和隐私保护的技术问题,创造性地提出一种基于区块链的隐私保护防伪汽车供应链方法。本方法利用哈希链和群签名技术来保护参与供应链的商家的身份隐私问题,同时使用区块链技术有效应对传统中心服务器的不可靠性,并实现产品信息的公开可验证,达到产品防伪的目的。
7.首先,对本发明涉及的相关内容说明如下:
8.可信机构:其任务是身份登记和产品追踪。任何实体(包括汽车零部件制造商、汽车零部件代理商和汽车零部件零售商)都需要在可信机构使用真实的身份信息进行注册。一般情况下,可信机构处于离线状态,当汽车零部件出现问题时,可信机构可对其物流信息
进行溯源追踪。
9.区块链网络:一种去中心化网络,具有公开透明、不可篡改等特点。区块链网络上的数据由大量区块链交易构成。在本发明中,生产的汽车零部件的产品信息作为不可篡改的证据存储在区块链上,同时所有汽车零部件制造商、汽车零部件代理商和汽车零部件零售商均可在区块链上发布交易信息,包括汽车零部件信息、所有权转让信息、所有权证明信息。同时,由于区块链上的数据是公开透明的,所有人都可调用智能合约查看相关信息。
10.汽车零部件制造商:生产轮胎、电池、发动机等汽车零部件,并且每个产品都有唯一的产品标识符pid,任何实体都可调用rfid阅读器来获取汽车零部件的标识符pid。同时,汽车零部件制造商在生产汽车零部件后,需要在区块链上发布汽车零部件信息。产品可以卖给汽车零部件代理商和汽车零部件零售商,在出售汽车零部件之后,需要将所有权转移信息发布至区块链上。
11.汽车零部件代理商:汽车零部件制造商将生成的汽车零部件卖给汽车零部件代理商,再由汽车零部件代理商将其卖给汽车零部件零售商。汽车零部件代理商在收到汽车零部件制造商出售的汽车零部件后,需要从区块链上查找该汽车零部件的所有权转让信息,并且验证汽车零部件的所有权证明是否正确,若验证通过,则接受该汽车零部件并生成新的所有权转让信息以及所有权证明,否则拒绝接受。
12.汽车零部件零售商:可以从汽车零部件代理商处购买汽车零部件,也可以将汽车零部件出售给需要购买的用户。当购买汽车零部件时,需要检测汽车零部件的所有权信息,防止出现假冒的汽车零部件。在出售汽车零部件时,需要提供零售商的产品所有权证明。
13.用户:用户通过汽车零部件零售商购买汽车零部件,当购买时需要验证该汽车零部件是否为假冒产品,如果产品没有问题,用户将支付购买汽车零部件,当用户购买后,汽车零部件的所有权状态将被更新为已购买。
14.本发明采用以下技术方案实现。
15.一种基于区块链的隐私保护防伪汽车供应链方法,包括以下步骤:
16.步骤1:系统初始化。
17.可信机构对每个实体进行注册并生成公共参数,最后将它们通过安全信道发送给每个实体。可信机构通过标准的区块链部署工具,将整个方案需要的智能合约部分部署到区块链上。待系统初始化之后,可信机构将保持离线状态,除非发生纠纷。
18.具体地,步骤1包括以下步骤:
19.步骤1.1:向可信机构提供一个实体信息集合用于进行注册,其中包括实体的现实世界真实身份和实体属于汽车零部件制造商、汽车零部件代理商和汽车零部件零售商中的实体类型。可信机构初始化一个注册信息集合,用于存储生成的注册信息。
20.步骤1.2:可信机构首先生成一个主密钥,然后利用群签名方案中的密钥生成算法,生成群签名需要的群公钥、主私钥以及集合内每个实体对应的私钥。
21.步骤1.3:对于用户信息集合内的每一个实体信息,可信机构生成对应的注册信息。
22.具体地,首先借助主密钥和实体信息生成一个对应的实体id,然后生成一个新的密钥k。最后将生成的实体id、新的密钥k、实体的身份信息以及群签名中实体对应的私钥四个信息组成实体的注册信息。将实体信息集合内的所有实体生成的注册信息保存在注册信
息集合中。
23.步骤1.4:可信机构将步骤1.2中生成的群公钥作为公共参数发布到区块链上,将步骤1.3中生成的注册信息集合与步骤1.2中生成的主私钥由可信机构自己保存,用于产品溯源。同时,汽车零部件制造商、汽车零部件代理商以及汽车零部件零售商,均需生成对应的区块链地址并将地址发送给可信机构。
24.步骤2:产品注册。
25.汽车零部件制造商生产一批含有唯一标识符的汽车零部件后,调用智能合约对汽车零部件进行注册,并将汽车零部件的信息集合发布在区块链上。
26.具体地,步骤2包括以下步骤:
27.步骤2.1:将生产的该批汽车零部件的标识符存放在汽车零部件信息集合内,并初始化所有权证明集合与产品信息集合。
28.步骤2.2:对于汽车零部件信息集合内的每一个汽车零部件标识符,利用步骤1中该汽车零部件制造商注册时生成的密钥k以及实体id,生成所有权证明,并计算其哈希值。
29.步骤2.3:对于步骤2.2计算所得的所有权证明哈希值,利用步骤1中生成的群公钥以及该汽车零部件制造商的私钥,使用群签名方案中的签名算法对其进行签名。如图2所示。
30.步骤2.4:将汽车零部件标识符、所有权证明的哈希值、该汽车零部件制造商的实体id、表示该汽车零部件是否卖出的标志位和利用群签名技术生成的签名进行组合,并存放在产品信息集合内。最终,制造商将产品信息集合存储在区块链上。将汽车零部件标识符、所有权证明存放在所有权证明集合内,并将所有权证明集合返回给汽车零部件制造商。
31.步骤3:所有权转让。
32.当卖方(汽车零部件制造商或汽车零部件代理商)准备将一批汽车零部件卖给买方(另一个汽车零部件代理商或汽车零部件零售商)时,调用智能合约将该汽车零部件的所有权转移给对应的零售商或代理商。在这个过程中,使用哈希链进行两个实体之间的身份认证,同时汽车零部件的所有权信息必须加密保存,以实现安全可靠以及隐私保护的所有权转移。
33.具体地,步骤3包括以下步骤:
34.步骤3.1:在买方与卖方之间进行所有权转移之前,双方协商得到一条哈希链以及一个共享状态。其中,哈希链是一个多条哈希的集合,通过哈希函数进行链接。具体地,哈希链中的前一位哈希值来自于后一位哈希值的哈希,而最初的哈希值来自链下的协商。共享状态里包含一个计数器c以及对应计数器位置的哈希链上的哈希值βc。
35.步骤3.2:卖方首先需要从步骤3.1中预先生成哈希链上找到第c 1个哈希值,记为β
c 1
,然后对该哈希值和步骤2中生成的该汽车零部件的所有权证明信息加密,将加密后的信息以区块链交易的形式存储在区块链上,对应的交易标识符为t
id

36.步骤3.3:卖方实体继续对两个实体之间协商的共享状态内的哈希值βc、步骤3.2中存储加密信息的交易标识符t
id
以及哈希链上的第c 1个哈希值β
c 1
三者进行加密,得到一个交易检索令牌,并将该令牌发送给买方。
37.步骤3.4:卖方将更新共享状态,将步骤3.1中与买方共享的计数器加一。此时卖方的状态信息变为计数器c 1和β
c 1

38.步骤4:所有权验证。
39.当汽车零部件零售商、汽车零部件代理商或用户购买汽车零部件时,检查对应的汽车零部件是否为真正想购买的汽车零部件,并且对其所有权信息、是否出售等进行验证,当全部检查均通过时,则接受汽车零部件品,否则该产品会被当作假货拒绝。
40.其中,对于作为买方的汽车零部件代理商和汽车零部件零售商,利用步骤 3.3中卖方传送的令牌验证汽车零部件的所有权信息是否正确,是否由对应的卖方转让,以及汽车零部件的标识符和签名等信息正确,如果检查成功,则更新汽车零部件的所有权信息,并将更新后的信息保存在区块链上。
41.对于作为买方的用户来说,只需验证车辆产品的所有权信息和车辆标识符等信息是否正确,如果验证成功,则说明该汽车零部件为真品。当用户成功购买该汽车零部件后,汽车零部件的销售状态将被更新,且更新后的信息会被保存在区块链上。
42.具体地,步骤4包括以下步骤:
43.对于汽车零部件代理商和汽车零部件零售商,采用如下方式:
44.步骤4.1:买方利用步骤3.1中和卖方共享的状态信息,向自己售卖汽车零部件的卖方处得到的交易检索令牌,对该令牌解密得到密文形式的交易标识符 t
id
,以及用作一次性会话密钥的哈希链上的计数器下一位的哈希值β
c 1

45.步骤4.2:对一次性会话密钥的哈希值进行哈希,将哈希内容与共享状态的哈希内容进行比对,如果比对成功则说明双方身份认证成功,否则认证失败,拒绝执行之后的操作。
46.步骤4.3:在步骤4.2验证成功后,获取存储在区块链上的交易标识符t
id
,并对对应交易上存储的密文信息进行解密,得到含有汽车零部件的所有权信息的集合,并通过调用智能合约从区块链上查找对应的产品信息。对于每一个汽车零部件信息,对比收到的所有权信息集合内的所有权证明的哈希值与区块链上存储的对应产品信息中的哈希值是否相同,以及该汽车零部件的状态是否为未出售状态,最后检查该签名内容是否正确。当信息全部检查成功后,说明该汽车零部件是真品,执行步骤4.4,否则该产品将被看作假冒产品,买方将拒绝接受产品。
47.步骤4.4:买方执行和步骤2.2中相同的操作,即,使用买方自己的身份id 以及密钥k生成新的所有权证明以及所有权证明的哈希值。然后执行和步骤2.3 中相同的操作,即,利用群公钥和买方自己拥有的私钥生成签名信息。
48.步骤4.5:针对每一个收到的汽车零部件,更新其区块链上存储的产品信息,包括汽车零部件所有权证明信息的哈希值和汽车零部件签名信息。
49.对于用户,采用如下方式:
50.步骤4-1:汽车零部件零售商给出对应汽车零部件的产品所有权信息集合,根据其中包含的产品标识符,查看对应汽车零部件的产品信息,并计算所有权证明的哈希值是否与区块链上保存的信息一致,以及查看该汽车零部件的状态是否已经卖出,如果信息一致且汽车零部件仍处于未售卖状态,则执行步骤4-2,否则该产品将被看作假冒产品,买方将拒绝接受产品。
51.步骤4-2:利用群公钥检查签名信息是否正确,如果正确则继续下一步骤,否则该产品将被看作假冒产品,买方将拒绝接受产品。
52.步骤4-3:当步骤4-1和步骤4-2的检查均通过,则说明该汽车零部件是真品。在用户购买该产品后,用户将调用智能合约更改汽车零部件的销售状态,此时汽车零部件的状态将变为已销售。
53.有益效果
54.本发明,对比现有技术,具有以下优点:
55.1.本发明实现了无中心化。与传统的防伪供应链相比,利用区块链技术来存储所有权证明、所有权转移过程等汽车零部件信息和交易信息,可以实现无中心化和不可篡改的汽车零部件防伪供应链。
56.2.本发明实现了隐私保护。与传统的基于区块链的防伪供应链相比,本发明利用哈希链和群签名等密码学技术,保护了汽车供应链中各供应商之间的商业关系等隐私信息,群签名技术可以确保在出现任何纷争时,被可信机构溯源追踪。
附图说明
57.图1为本发明方法的示意图。
58.图2为保存在区块链上的汽车零部件信息示意。
具体实施方式
59.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。例如本发明的实施例,可能汽车零部件代理商会交给下一级汽车零部件代理商,再交给汽车零部件零售商。
60.实施例
61.本案例中,汽车零部件制造商生产出一批具有唯一标识符的汽车零部件,然后将汽车零部件的所有权交给汽车零部件代理商,再由汽车零部件代理商交给汽车零部件零售商,最后汽车零部件零售商卖给用户。
62.如图1所示,一种基于区块链的隐私保护防伪汽车供应链方法,包括以下步骤:
63.步骤1:系统初始化。
64.步骤1.1:向可信机构ta提供一个需要注册的实体信息集合u={u1,...,um} 和安全参数λ(λ=256),其中,实体信息集合包含m个需要注册实体。
65.对于实体信息集合u中的任意实体ui,其用于注册的信息包含实体i在现实世界的身份idi和实体类型typei,实体类型表示为typei= {manufacturer,agent,retailer},其中,manufacturer代表汽车零部件制造商、 agent代表汽车零部件代理商、retailer代表汽车零部件零售商。可信机构初始化一个集合r,用于存储之后生成的注册信息。
66.步骤1.2:可信机构首先生成主密钥km,然后执行群签名方案gs中的密钥生成算法gs.keygen生成群签名所需要的群公钥gpk、主私钥gsk以及为每个注册实体生成的用于群签名的m个私钥{sk1,

,skm}。
67.步骤1.3:对于实体信息集合u内的每一个实体信息,可信机构生成对应的注册信息。对于第i个实体,首先计算实体idi=f(km,ui),其中f为一个安全的伪随机函数,输入一个长度为256比特的字符串和一个长度为任意比特的字符串,输出为一个长度为256比特的
字符串。这里,km为步骤1.2生成的主密钥, ui为步骤1.1中实体信息集合的实体信息。然后,可信机构生成实体i对应的密钥ki。最后,可信机构ta为实体i生成注册信息ri=(idi,ui,ski,ki),其中ski为步骤1.2中可信机构生成的用于群签名的m个私钥里实体i对应的私钥。
68.步骤1.4:最后,可信机构将群公钥gpk作为公共参数,公开发布到区块链网络上。而具有m个实体注册信息的集合r={r1,

,rm}和主私钥gsk由可信机构保存,用于产品溯源。同时,汽车零部件制造商、汽车零部件代理商以及汽车零部件零售商都需生成对应的区块链地址并将地址发送给可信机构。
69.步骤2:汽车零部件制造商注册汽车零部件。
70.步骤2.1:在实体注册之后,设汽车零部件制造商生产n个汽车零部件,其中每个汽车零部件i均对应一个唯一标识符pidi,对应的产品标识符集合为p= {pid1,...,pidn}。
71.步骤2.2:汽车零部件制造商调用智能合约初始化两个空集合pi和po。
72.对于步骤2.1中生成的产品标识符集合p中的每一个汽车零部件pidi,首先计算所有权证明pi=f(k,id||pidi),这里f为步骤1.3中定义的伪随机函数,|| 为字符串拼接操作,k是步骤1.3中该汽车零部件制造商的密钥,id是步骤1.3 中该汽车零部件制造商的实体id,并计算所有权证明的哈希值hi=h(pi),这里 h代表sha256哈希函数。
73.然后,制造商使用群签名技术对车辆产品所有权证明的哈希值进行签名σi= gs.sign(gpk,sk,hi),其中gs为一个安全的群签名方案,gs.sign为群签名函数,输入为群公钥、进行签名的用户私钥和签名内容,输出为对应的数字签名。
74.最后,制造商将对应的产品信息(pidi,hi,id,false,σi)添加至集合pi,并将(pidi,pi)添加至集合po中,其中id是该汽车零部件制造商身份信息,false代表汽车零部件还未卖给任何用户。在步骤6中,若汽车零部件被卖给用户,对应的false状态将被改为true。
75.步骤2.3:制造商调用智能合约将集合pi存储至区块链中,并将集合po返回给汽车零部件供应商。
76.步骤3:汽车零部件制造商进行所有权转移。
77.步骤3.1:汽车零部件制造商ida将已经注册成功的汽车零部件所有权转移给汽车零部件代理商idb,首先两方需要事先协商一条哈希链和一个共享状态sc=(c,βc)。其中哈希链的生成规则如下:h
p
为一个长度为256 比特的字符串,由ida和idb通过事先协商得到,当i=1,2,

,p-1时,hi= h(h
i 1
),其中h为sha256哈希函数。共享状态sc中的c为计数器,而βc=hc为对应的哈希链上的第c个哈希值。
78.步骤3.2:汽车零部件制造商ida从哈希链上获得第c 1个哈希h
c 1
,并设置β
c 1
=h
c 1
,对β
c 1
以及由步骤2.2中生成这批汽车零部件的注册集合po进行加密处理,将使用密钥β
c 1
加密后的密文信息aes.enc(β
c 1
,po)以交易的形式存储到区块链上,对应的交易标识符为t
id
。其中aes为一种安全的对称加密算法,aes.enc为加密操作。
79.步骤3.3:汽车零部件制造商ida使用密钥β
c 1
对步骤3.2中得到的交易标识符t
id
和将要在下一次与idb的产品所有权转移中用到的密钥加密,生成查询令牌其中aes.enc为步骤3.2定义的对称加密函数,||为字符串拼接操作。之后,将生成的令牌发送给车辆代理商idb。
80.步骤3.4:汽车零部件代理商ida更新共享状态s
c 1
=(c 1,β
c 1
)。
81.步骤4:汽车零部件代理商进行所有权验证。
82.步骤4.1:设汽车零部件代理商idb与汽车零部件制造商ida之间共享的状态信息为sc=(c,βc)。当接收到ida发送的令牌t=aes.enc(βc,t
id
||β
c 1
)后,代理商首先利用自己的密钥进行解密t
dec
=aes.dec(βc,t),得到交易标识符t
id
和一次性密钥β
c 1
。其中aes.dec为aes加密方案的对称解密函数。
83.步骤4.2:首先判断h(β
c 1
)与βc是否相等,如果不相等,则身份验证失败。如果成功则查找存储在区块链的标识符为t
id
的交易,提取交易中存储的数据 data,对其解密得到po=aes.dec(β
c 1
,data),这里的po代表每个汽车零部件的产品所有权信息集合,集合中的每一个条目都包含某个汽车零部件的产品标识符pidi和对应的产品所有权证明信息pi,根据po的汽车零部件产品标识符,可以从区块链中查找对应的汽车零部件信息,这些信息构成了产品信息集合pi。
84.步骤4.3:获得汽车零部件所有权信息集合po和产品信息集合pi后,对于po 中的任意产品所有权信息poi=(pidi,pi),其在pi中对应的产品信息为pii= (pidi,hi,id,false,σi),其中pidi为产品标识符,hi为产品所有权证明的哈希值, id为产品制造商的id,false代表该产品未被售卖给任何用户。代理商首先计算 h

=h(pi),并且将其与pii内的哈希hi进行比较,如果相同并且售卖状态也为 false,则执行群签名验证算法gs.verify(gpk,σ,h),继续验证签名是否正确。其中gs.verify算法若输出为true,则代表验证成功,该产品被视为真品,执行步骤4.4,输出为false则验证失败,该产品被视为假冒产品。
85.步骤4.4:对被视为真品的汽车零部件生成新的所有权证明p
′i= f(kb,idb||pidi),其中f为步骤1.3中定义的伪随机函数,||为字符串拼接操作。之后计算哈希值h

=h(p
′i)以及签名σi=gs.sign(gpk,sk,hi),其中gs.sign为步骤2.2的签名函数。之后,代理商将新生成的(pidi,p
′i)添加到集合po

,并调用智能合约更新标识符为pid的汽车零部件信息,其中产品所有权证明的哈希更新为h
′i,签名更新为σi。
86.步骤4.5:汽车零部件代理商idb更新共享状态s
c 1
=(c 1,β
c 1
)。
87.步骤5:汽车零部件代理商将车辆零件交给汽车零部件零售商。
88.该阶段,汽车零部件代理商执行步骤3将汽车零部件进行所有权转移,而汽车零部件零售商执行步骤4进行所有权验证。
89.步骤6:汽车零部件零售商将汽车零部件卖给用户。
90.步骤6.1:汽车零部件零售商将汽车零部件售卖给用户,将需要售卖给用户的汽车零部件信息集合poi=(pidi,pi)发送给用户,其中pidi为产品的唯一标识符,pi为产品的所有权证明信息。
91.步骤6.2:用户根据pidi调用智能合约,查找对应的产品信息pii= (pidi,hi,id,false,σi)。
92.首先,根据pi内的汽车零部件所有权证明计算h

=h(pi),并且将其与pii内的hi进行比较,如果h

=hi,并且对应的售卖状态也为false,即该产品未被卖给其他用户,则继续验证签名是否正确,如果上述验证全部通过,则该汽车零部件被视为真品。
93.步骤6.3:在用户购买该汽车零部件后,用户调用智能合约,更新产品pidi的状态,将销售状态更新为true,即该产品已被售卖。
94.为了说明本发明的内容及实施方法,本说明书给出了上述具体实施例。但是,本领域技术人员应理解,本发明不局限于上述最佳实施方式,任何人在本发明的启示下都可得出其他各种形式的产品,但不论在其形状或结构上作任何变化,凡是具有与本技术相同或相近似的技术方案,均落在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献