CN113609502B - 一种基于区块链的空间众包系统及方法 - Google Patents

一种基于区块链的空间众包系统及方法 Download PDF

Info

Publication number
CN113609502B
CN113609502B CN202110902314.0A CN202110902314A CN113609502B CN 113609502 B CN113609502 B CN 113609502B CN 202110902314 A CN202110902314 A CN 202110902314A CN 113609502 B CN113609502 B CN 113609502B
Authority
CN
China
Prior art keywords
task
key
worker
ciphertext
msk
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
CN202110902314.0A
Other languages
English (en)
Other versions
CN113609502A (zh
Inventor
张亚男
刘园
杜妍
Original Assignee
东北大学
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 东北大学 filed Critical 东北大学
Priority to CN202110902314.0A priority Critical patent/CN113609502B/zh
Publication of CN113609502A publication Critical patent/CN113609502A/zh
Application granted granted Critical
Publication of CN113609502B publication Critical patent/CN113609502B/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting 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/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开一种基于区块链的空间众包系统及方法,系统包括用户、密钥管理机构、代理、区块链网络和智能合约。任务请求者将加密后的任务位置信息和关键字密文进行上传,工人查询任务时,提交搜索的兴趣陷门和可接受任务的距离范围,代理调用智能合约先对关键字密文进行匹配,后对任务位置转换后的密文与工人可接受的任务范围的字符串集合进行匹配,匹配成功后代理使用转换密钥进行重加密,对任务信息进行转换并发送给工人,工人得到任务密文利用工人私钥进行解密,查看任务信息。本发明使用区块链技术,既能实现请求者和工人任务在密文条件下进行匹配,又能保护用户隐私,监督众包平台的行为,从而保证了信息的透明性。

Description

一种基于区块链的空间众包系统及方法
技术领域
本发明涉及任务匹配技术领域,尤其涉及一种基于区块链的空间众包系统及方法。
背景技术
随着互联网的普及和发展,众包越来越受到人们的广泛关注。众包是指本应该由公司或机构的工人履行的职责,以及公开招募的方式将其外包给一个未知的人群的行为。空间众包需要工人到指定的地点完成指定的任务,在很多领域都有应用。
在现在的众包平台(例如猪八戒等)中,基本上都是基于中心化的,而且不能保证第三方的可靠性,请求者和工人以及任务的信息可能存在泄露的风险,而且任务信息都是明文发布,请求者在系统中发布自己的任务,工人查看任务信息。如果存在恶意竞争的用户,可以根据任务的信息推断出任务的请求者,可能对任务请求者不利。而且根据任务的位置信息可以预测接受任务的工人的未来的位置,也会对造成工人位置信息的暴露。
在IEEE Access第8卷的155819-155831页的论文“A Secure and Efficient TaskMatching Scheme for Spatial Crowdsourcing”中提出的系统,通过密文实现了用户提交信息保护,对位置信息进行加密,在密文条件下进行任务匹配,但是未考虑到工人的兴趣问题,仅仅只是考虑了推荐工人在可接受距离的范围内的全部任务,需要工人在对任务兴趣进行二次筛选,用户体验降低。并且平台是中心化的,不可避免地单节点故障问题,由于存在第三方,无法保证代理的操作的透明性,则不可避免的存在用户隐私泄露的风险。
在这个信息时代,人们对于自己的隐私格外重视,所以亟需一种既能实现请求者和工人任务在密文条件下进行匹配,保护用户隐私,并且监督众包平台的行为的方法。
发明内容
针对上述现有技术的不足,本发明提供一种基于区块链的空间众包系统及方法。
为解决上述技术问题,本发明所采取的技术方案是:一种基于区块链的空间众包系统,包括用户、密钥管理机构、代理、区块链网络和智能合约;
所述密钥管理机构接收用户的注册申请,给用户发送个人公私钥以及单独密钥;并生成转换密钥,以{用户,转换密钥}的形式发送给代理进行管理;
所述用户分为任务请求者和工人两种身份,所有用户能够在两种身份中切换角色;所述用户使用个人公私钥以及单独密钥给代理,由代理调用智能合约进行匹配;
所述任务请求者使用自己的公私钥中的公钥加密任务信息,使用单独密钥加密任务坐标以及任务的关键词;
所述工人使用自己的私钥解密经过代理重加密后的匹配到的任务密文得到任务信息,使用单独密钥加密自己的兴趣关键词以及接受的任务范围生成陷门,用来进行任务匹配;
所述代理负责用户与区块链网络的交互,并提供相关的计算匹配服务;
所述智能合约通过代理的调用情况,实现更新索引、代理重加密、任务匹配和维护授权列表的功能。
进一步的,所述任务请求者根据需要授权工人访问自己的任务信息。
另一方面,本发明还提供一种采用上述基于区块链的空间众包系统进行隐私保护的众包方法,包括如下步骤:
步骤1:用户向密钥管理机构进行注册,由密钥管理机构为任务请求者和工人生成个人公私钥PK和SK、单独密钥qk以及转换密钥rk;
所述个人公私钥中的公钥PK为公开状态,私钥SK为用户私有状态,不可公开;任务请求者的个人公私钥对记为(PKr,SKr),工人的个人公私钥对记为(PKw,SKw);
所述公钥PK的生成过程为:
S1、用伪随机数生成器生成两个素数p和q,并将这两个素数相乘得到N:N=p*q;
S2、求解p-1和q-1的最小公倍数L:L=lcm(p-1,q-1);
S3、在(1,L)范围内通过伪随机数生成E,判断gcd(E,L)=1是否成立,若成立则将得到的E和N作为公钥(E,N),设为PK;
所述私钥SK的生成过程为:在(1,L)范围内取D,同时使D满足E*D mod L=1的条件,将得到的D和N作为私钥(D,N),设为SK。
进一步的,所述任务请求者使用单独密钥qkr加密任务位置坐标以及任务的关键词;所述工人使用单独密钥qkw加密自己的兴趣关键词以及接受的任务范围生成搜索陷门,用来进行任务匹配;所述转换密钥rk由密钥管理机构以{用户,转换密钥}的形式发送给代理进行管理,用于任务匹配时进行重加密;所述任务请求者和工人对应的转换密钥分别为rkr和rkw
所述单独密钥qk和转换密钥rk的生成过程为:
S1:密钥管理机构生成随机数大质数g,生成一个公共哈希函数H,以及bigInteger类型的主密钥MSK:(1λ)->(g,H,MSK);
S2:对于一个用户ui,密钥管理机构首先选择一个随机值ki并且计算gki作为用户ui的单独密钥qki,计算rki=MSK/ki作为用户ui的转换密钥rki:(MSK,ui)->(qki=gki,rki=MSK/ki)
S3:用户ui与转换密钥rki以{ui,rki}的形式保存在区块链中。
步骤2:由任务请求者发布任务,同时使用任务请求者的公钥PKr加密任务信息,单独密钥qkr加密任务位置坐标以及任务的关键词,过程如下:
步骤2.1:任务请求者发布任务Ti,任务Ti包括任务的详细信息Mi,相关的任务关键词Wi={w1,w2,...,wi}以及任务位置坐标Ri(xi,yi);
步骤2.2:采用AES高级加密方法生成对称密钥Kc,并用对称密钥Kc加密任务信息Mi得到密文Ci:Ci=AesEnc(Kc,Mi);
步骤2.3:任务请求者采用RSA加密方法,使用自己的公钥加密对称密钥Kc得到密文CPki:CPKi=Enc(PKr,Kc);
步骤2.4:将任务关键词进行哈希,将哈希值中的所有数字组成的字符串使用单独密钥qkr加密,得到Wi’:Wi’=Enc(qkr,Wi);
步骤2.5:采用线段树进行任务位置坐标的转换,并用单独密钥加密转换后的任务位置坐标Ri得到Ri’,Ri’=Enc(qkr,Ri),Rrx={lrx}->R’rx={l’rx},Rry={lry1}->R’ry={l’ry};
其中,Rrx和lrx均表示任务的经度,R’rx和l’rx均表示任务的经度加密后的密文,Rry和lry均表示任务的纬度,R’ry和l’ry均表示任务的纬度加密后的密文;
步骤2.6:将生成的Ti’={Ci,CPKi,Wi’,R’rx,R’ry}上传给代理bi
步骤3:代理收到任务请求者发送的任务相关的密文信息,为其生成相应的任务号ti,将任务号以及对应的加密任务的关键词和任务位置坐标创建为任务索引上传到区块链网络;
步骤4:工人使用自己的单独密钥加密自己的兴趣关键词以及接受的任务范围生成两个搜索陷门,并且上传到代理,过程如下:
步骤4.1:工人在提交构造的搜索陷门时,先采用线段树进行位置坐标范围的转换:(x1,x2)->Rwx={lwx1,lwx2,...,lwxn},(y1,y2)->Rwy={lwy1,lwy2,...,lwyn};
其中,(x1,x2)为工人可以接受的任务的最大经度范围,(y1,y2)为工人可以接受的最大纬度范围,lwx为其中的每一个经度转换后的路径的明文,lwy为其中的每一个纬度转换后的路径的明文,Rwx为转换后的经度路径的明文的集合,Rwy为转换后的纬度路径明文集合;
步骤4.2:将兴趣关键字进行哈希,将哈希值中的所有数字组成的字符串使用自己的单独密钥qkw对其进行加密,形成搜索陷门Td1=Enc(qkw,WWw)=WW’w
其中,WWw为兴趣关键字,WW’w为加密后的兴趣关键字;
步骤4.3:将位置进行哈希得到Hwx=Hash(lwxi)和Hwy=Hash(lwyi)用自己的单独密钥qkw加密工人接受的任务范围,Rwx={lwx1,lwx2,...,lwxn}->R’wx={l’wx1,l’wx2,...,l’wxn},Rwy={lwy1,lwy2,...,lwyn}->R’wy={l’wy1,l’wy2,...,l’wyn},并形成搜索陷门Td2:Td2=Enc(qkw,Rwx,Rwy)=(R’wx,R’wy)={(gkw)lwx,(gkw)lwy};
其中,lwxi为工人可以接受的每一个经度坐标路径的明文,lwyi为工人可以接受的每一个纬度坐标路径的明文,Rwx为工人可以接受的经度坐标路径的明文集合,R’wx为工人可以接受的任务经度坐标路径的密文集合,Rwy为工人可以接受的纬度坐标路径的明文集合,R’wy工人可以接受的纬度坐标路径的密文集合,gkw为工人的单独密钥,用来加密明文信息的;
步骤4.4:工人将生成的两个搜索陷门Td1和Td2上传到代理。
步骤5:代理先分别对任务位置坐标密文和工人接受任务范围的坐标进行重加密,然后代理调用匹配的智能合约将陷门与任务索引中的任务的关键词和任务位置坐标的密文进行匹配,将得到的结果返回给代理,过程如下:
步骤5.1:代理对任务位置坐标密文进行重加密:
((gkr)lrx)rk=((gkr)lrx)MSK/k=glrx*MSK,((gkr)lry)rkr=((gkr)lry)MSK/k=glry*MSK
其中,gkr为任务请求者的单独密钥,rkr为任务请求者的单独密钥的转换密钥,kr为用于生成转换密钥的;
步骤5.2:代理对工人接受任务范围的坐标进行重加密:
((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
其中,gkw为工人的单独密钥,rkw为工人的的单独密钥的转换密钥,kw为用于生成转换密钥的;
步骤5.3:调用匹配的智能合约,根据兴趣进行匹配:任务请求者的任务描述关键词中有与搜索陷门Td1相匹配的,即:Wi’=Td1
步骤5.4:调用匹配的智能合约,根据位置匹配:工人的位置范围的密文集合中的(R’rx,R’ry)∈(R’wx,R’wy)即:
存在工人提交的坐标范围内一个点与点(R’rx,R’ry)重合:
任务请求者:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
工人:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy *MSK
即:当且仅当存在一个点使lrx=lwx以及lry=lwy时:
glrx*MSK=dlwx*MSK
glry*MSK=glwy*MSK
判断当密文相等时,即在工人可接受的范围内包含该点,则该任务可以被分配给该工人;否则该任务不能分配给该工人。
步骤6:代理根据匹配到的任务,查询授权列表,查看工人是否在该任务请求者的授权列表中,如果不在,则向任务请求者申请,然后更新任务请求者的授权列表;并通过重加密转换密钥将所有匹配的任务的密文进行转换,将最终得到的转换后的任务密文发送给工人,过程如下:
步骤6.1:代理针对每个任务查看用户是否有查看该任务的权限,如果没有则,代理需要将工人的公钥发送给任务请求者,任务请求者使用工人的公钥和自己的私钥生成解密的转换密钥ARK:ARK=AEnc(PKw,SKr),并且发送给代理;
其中,PKw为工人的公钥,SKr为任务请求者的私钥;
步骤6.2:代理接收到转换密钥ARK,通过智能合约将其添加到任务请求者的授权列表中对授权列表进行更新;同样,任务请求者想要撤销某个工人的权限,通过代理调用智能合约将工人的授权的重加密转换密钥从自己的授权列表中删除;
步骤6.3:代理通过重加密转换密钥,将密文CPKi转换为工人私钥可以解密的密文C’PKi:C’PKi=ReEnc(ARK,CPKi),并将所有匹配的任务的密文进行转换并发送给工人。
步骤7:工人得到所有任务的密文后,进行解密操作得到任务信息明文,过程如下:
步骤7.1:工人使用自己的私钥解密CPKi得到Kc:Kc=Des(SKw,CPKi);
其中,Kc为加密任务信息的AES密钥,SKw为工人的私钥,CPKi为AES密钥的密文;
步骤7.2:使用得到的Kc解密T’i得到任务信息明文Ti:Ti=AESDes(Kc,T’i)。
采用上述技术方案所产生的有益效果在于:
1、本发明提供的系统和方法使用可搜索加密技术,无论是任务请求者还是工人提交的信息都是加密后的密文,因此代理以及其他人无法得到相关的明文信息,并且在任务匹配过程中,根据工人的兴趣和工人可接受的任务的距离同时匹配,只有满足了这两个条件才将任务加入到匹配列表,提高了任务匹配的精确度,能够极大的满足工人的需求,而且保护了用户的隐私。
2、本发明通过代理重加密技术实现对请求者密文的转换以及相关的授权,如果请求者允许某用户可以查看自己的发布任务信息,那么他可以使用自己的私钥以及工人的公钥为工人生成一个转换密钥,并将其发送给代理,代理通过该转换密钥可以将请求者加密的任务密文转换为工人私钥可以解密的密文,任务请求者可以通过该授权密钥的删除与上传控制工人对自己提交的任务的访问权限。
3、本发明使用了区块链技术,避免了单点故障,以及通过智能合约,代理上传任务索引,进行任务匹配,授权和撤销工人权限以及密文转换等操作都会被记录在区块链网络中,所有区块链上的节点都存有备份可以进行监督,保证了信息的透明性。
附图说明
图1为本发明实施例中提供的基于区块链的空间众包系统的结构示意图;
图2为本发明实施例中提供的采用基于区块链的空间众包系统进行隐私保护的众包方法的流程图。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本实施例中基于区块链的空间众包系统如下所述:
系统包括用户、密钥管理机构、代理、区块链网络和智能合约;
所述密钥管理机构接收用户的注册申请,给用户发送个人公私钥以及单独密钥;并生成转换密钥,以{用户,转换密钥}的形式发送给代理进行管理;
所述用户分为任务请求者和工人两种身份,所有用户能够在两种身份中切换角色;所述用户使用个人公私钥以及单独密钥给代理,由代理调用智能合约进行匹配;
所述任务请求者使用自己的公私钥中的公钥加密任务信息,使用单独密钥加密任务坐标以及任务的关键词;
所述工人使用自己的私钥解密经过代理重加密后的匹配到的任务密文得到任务信息,使用单独密钥加密自己的兴趣关键词以及接受的任务范围生成陷门,用来进行任务匹配;
所述代理负责用户与区块链网络的交互,并提供相关的计算匹配服务;
所述智能合约通过代理的调用情况,实现更新索引、代理重加密、任务匹配和维护授权列表的功能。
进一步的,所述任务请求者根据需要授权工人访问自己的任务信息。
本实施例中还提供一种采用上述基于区块链的空间众包系统进行隐私保护的众包方法,其流程如图2所示,包括如下步骤:
步骤1:用户向密钥管理机构进行注册,由密钥管理机构为任务请求者和工人生成个人公私钥PK和SK、单独密钥qk以及转换密钥rk;
所述个人公私钥中的公钥PK为公开状态,私钥SK为用户私有状态,不可公开;任务请求者的个人公私钥对记为(PKr,SKr),工人的个人公私钥对记为(PKw,SKw);
所述公钥PK的生成过程为:
S1、用伪随机数生成器生成两个素数p和q,并将这两个素数相乘得到N:N=p*q;
S2、求解p-1和q-1的最小公倍数L:L=lcm(p-1,q-1);
S3、在(1,L)范围内通过伪随机数生成E,判断gcd(E,L)=1是否成立,若成立则将得到的E和N作为公钥(E,N),设为PK;
所述私钥SK的生成过程为:在(1,L)范围内取D,同时使D满足E*D mod L=1的条件,将得到的D和N作为私钥(D,N),设为SK。
进一步的,所述任务请求者使用单独密钥qkr加密任务位置坐标以及任务的关键词;所述工人使用单独密钥qkw加密自己的兴趣关键词以及接受的任务范围生成搜索陷门,用来进行任务匹配;所述转换密钥rk由密钥管理机构以{用户,转换密钥}的形式发送给代理进行管理,用于任务匹配时进行重加密;所述任务请求者和工人对应的转换密钥分别为rkr和rkw
所述单独密钥qk和转换密钥rk的生成过程为:
S1:密钥管理机构生成随机数大质数g,生成一个公共哈希函数H,以及bigInteger类型的主密钥MSK:(1λ)->(g,H,MSK);
S2:对于一个用户ui,密钥管理机构首先选择一个随机值ki并且计算gki作为用户ui的单独密钥qki,计算rki=MSK/ki作为用户ui的转换密钥rki:(MSK,ui)->(qki=gki,rki=MSK/ki)
S3:用户ui与转换密钥rki以{ui,rki}的形式保存在区块链中。
步骤2:由任务请求者发布任务,同时使用任务请求者的公钥PKr加密任务信息,单独密钥qkr加密任务位置坐标以及任务的关键词,过程如下:
步骤2.1:任务请求者发布任务Ti,任务Ti包括任务的详细信息Mi,相关的任务关键词Wi={w1,w2,...,wi}以及任务位置坐标Ri(xi,yi);
步骤2.2:采用AES高级加密方法生成对称密钥Kc,并用对称密钥Kc加密任务信息Mi得到密文Ci:Ci=AesEnc(Kc,Mi);
步骤2.3:任务请求者采用RSA加密方法,使用自己的公钥加密对称密钥Kc得到密文CPki:CPKi=Enc(PKr,Kc);
步骤2.4:将任务关键词进行哈希,将哈希值中的所有数字组成的字符串使用单独密钥qkr加密,得到Wi’:Wi’=Enc(qkr,Wi);
步骤2.5:采用线段树进行任务位置坐标的转换,并用单独密钥加密转换后的任务位置坐标Ri得到Ri’,Ri’=Enc(qkr,Ri),Rrx={lrx}->R’rx={l’rx},Rry={lry1}->R’ry={l’ry};
其中,Rrx和lrx均表示任务的经度,R’rx和l’rx均表示任务的经度加密后的密文,Rry和lry均表示任务的纬度,R’ry和l’ry均表示任务的纬度加密后的密文;
本实施例中,所述采用线段树进行任务位置坐标的转换,先将经纬度换分为不同的小区域,即转换为序号不同的树,再将具体经纬度转换为树上的叶节点的路径,从而将树的序号和叶结点的路径进行合并,同理,将工人的可接受的任务的范围进行相同的转换,转换为一个字符串集合。
步骤2.6:将生成的Ti’={Ci,CPKi,Wi’,R’rx,R’ry}上传给代理bi
步骤3:代理收到任务请求者发送的任务相关的密文信息,为其生成相应的任务号ti,将任务号以及对应的加密任务的关键词和任务位置坐标创建为任务索引上传到区块链网络;
步骤4:工人使用自己的单独密钥加密自己的兴趣关键词以及接受的任务范围生成两个搜索陷门,并且上传到代理,过程如下:
步骤4.1:工人在提交构造的搜索陷门时,先采用线段树进行位置坐标范围的转换:(x1,x2)->Rwx={lwx1,lwx2,...,lwxn},(y1,y2)->Rwy={lwy1,lwy2,...,lwyn};
其中,(x1,x2)为工人可以接受的任务的最大经度范围,(y1,y2)为工人可以接受的最大纬度范围,lwx为其中的每一个经度转换后的路径的明文,lwy为其中的每一个纬度转换后的路径的明文,Rwx为转换后的经度路径的明文的集合,Rwy为转换后的纬度路径明文集合;
步骤4.2:将兴趣关键字进行哈希,将哈希值中的所有数字组成的字符串使用自己的单独密钥qkw对其进行加密,形成搜索陷门Td1=Enc(qkw,WWw)=WW’w
其中,WWw为兴趣关键字,WW’w为加密后的兴趣关键字;
步骤4.3:将位置进行哈希得到Hwx=Hash(lwxi)和Hwy=Hash(lwyi)用自己的单独密钥qkw加密工人接受的任务范围,Rwx={lwx1,lwx2,...,lwxn}->R’wx={l’wx1,l’wx2,...,l’wxn},Rwy={lwy1,lwy2,...,lwyn}->R’wy={l’wy1,l’wy2,...,l’wyn},并形成搜索陷门Td2:Td2=Enc(qkw,Rwx,Rwy)=(R’wx,R’wy)={(gkw)lwx,(gkw)lwy};
其中,lwxi为工人可以接受的每一个经度坐标路径的明文,lwyi为工人可以接受的每一个纬度坐标路径的明文,Rwx为工人可以接受的经度坐标路径的明文集合,R’wx为工人可以接受的任务经度坐标路径的密文集合,Rwy为工人可以接受的纬度坐标路径的明文集合,R’wy工人可以接受的纬度坐标路径的密文集合,gkw为工人的单独密钥,用来加密明文信息的;
步骤4.4:工人将生成的两个搜索陷门Td1和Td2上传到代理。
步骤5:代理先分别对任务位置坐标密文和工人接受任务范围的坐标进行重加密,然后代理调用匹配的智能合约将陷门与任务索引中的任务的关键词和任务位置坐标的密文进行匹配,将得到的结果返回给代理,过程如下:
步骤5.1:代理对任务位置坐标密文进行重加密:
((gkr)lrx)rk=((gkr)lrx)MSK/k=glrx*MSK,((gkr)lry)rkr=((gkr)lry)MSK/k=glry*MSK
其中,gkr为任务请求者的单独密钥,rkr为任务请求者的单独密钥的转换密钥,kr为用于生成转换密钥的;
步骤5.2:代理对工人接受任务范围的坐标进行重加密:
((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
其中,gkw为工人的单独密钥,rkw为工人的的单独密钥的转换密钥,kw为用于生成转换密钥的;
步骤5.3:调用匹配的智能合约,根据兴趣进行匹配:任务请求者的任务描述关键词中有与搜索陷门Td1相匹配的,即:Wi’=Td1
步骤5.4:调用匹配的智能合约,根据位置匹配:工人的位置范围的密文集合中的(R’rx,R’ry)∈(R’wx,R’wy)即:
存在工人提交的坐标范围内一个点与点(R’rx,R’ry)重合:
任务请求者:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
工人:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy *MSK
即:当且仅当存在一个点使lrx=lwx以及lry=lwy时:
glrrx*MSK=glwx*MSK
glry*MSK=glwy*MSK
判断当密文相等时,即在工人可接受的范围内包含该点,则该任务可以被分配给该工人;否则该任务不能分配给该工人。
步骤6:代理根据匹配到的任务,查询授权列表,查看工人是否在该任务请求者的授权列表中,如果不在,则向任务请求者申请,然后更新任务请求者的授权列表;并通过重加密转换密钥将所有匹配的任务的密文进行转换,将最终得到的转换后的任务密文发送给工人,过程如下:
步骤6.1:代理针对每个任务查看用户是否有查看该任务的权限,如果没有则,代理需要将工人的公钥发送给任务请求者,任务请求者使用工人的公钥和自己的私钥生成解密的转换密钥ARK:ARK=AEnc(PKw,SKr),并且发送给代理;
其中,PKw为工人的公钥,SKr为任务请求者的私钥;
步骤6.2:代理接收到转换密钥ARK,通过智能合约将其添加到任务请求者的授权列表中对授权列表进行更新;同样,任务请求者想要撤销某个工人的权限,通过代理调用智能合约将工人的授权的重加密转换密钥从自己的授权列表中删除;
步骤6.3:代理通过重加密转换密钥,将密文CPKi转换为工人私钥可以解密的密文C’PKi:C’PKi=ReEnc(ARK,CPKi),并将所有匹配的任务的密文进行转换并发送给工人。
此外,如果任务请求者想要撤销某个工人的权限,可以通过代理,调用智能合约将工人的授权的重加密转换密钥从自己的授权列表中删除。
步骤7:工人得到所有任务的密文后,进行解密操作得到任务信息明文,过程如下:
步骤7.1:工人使用自己的私钥解密CPKi得到Kc:Kc=Des(SKw,CPKi);
其中,Kc为加密任务信息的AES密钥,SKw为工人的私钥,CPKi为AES密钥的密文;
步骤7.2:使用得到的Kc解密T’i得到任务信息明文Ti:Ti=AESDes(Kc,T’i)。
本实施例中,对众包系统中1000个工人和50000条任务的数据进行匹配,由于使用哈希散列表,时间复杂度为O(1),方法的匹配过程花费的平均时间为3ms,在可接受的范围内。基本满足了空间众包中用户隐私保护需求,实现了对众包平台的监督,保证了平台信息透明,并且任务匹配的更符合工人的需求,同时匹配的时间在可接受的范围内,达到了应用的要求。

Claims (9)

1.一种基于区块链的空间众包方法,其特征在于,包括如下步骤:
步骤1:用户向密钥管理机构进行注册,由密钥管理机构为任务请求者和工人生成个人公私钥PK和SK、单独密钥qk以及转换密钥rk;
步骤2:由任务请求者发布任务,同时使用任务请求者的公钥PKr加密任务信息,单独密钥qkr加密任务位置坐标以及任务的关键词;
步骤2.1:任务请求者发布任务Ti,任务Ti包括任务的详细信息Mi,相关的任务关键词Wi={w1,w2,...,wi}以及任务位置坐标Ri(xi,yi);
步骤2.2:采用AES高级加密方法生成对称密钥Kc,并用对称密钥Kc加密任务信息Mi得到密文Ci:Ci=AesEnc(Kc,Mi);
步骤2.3:任务请求者采用RSA加密方法,使用自己的公钥加密对称密钥Kc得到密文CPki:CPKi=Enc(PKr,Kc);
步骤2.4:将任务关键词进行哈希,将哈希值中的所有数字组成的字符串使用单独密钥qkr加密,得到Wi’:Wi’=Enc(qkr,Wi);
步骤2.5:采用线段树进行任务位置坐标的转换,并用单独密钥加密转换后的任务位置坐标Ri得到Ri’,Ri’=Enc(qkr,Ri),Rrx={lrx}->R’rx={l’rx},Rry={lry1}->R’ry={l’ry};
其中,Rrx和lrx均表示任务的经度,R’rx和l’rx均表示任务的经度加密后的密文,Rry和lry均表示任务的纬度,R’ry和l’ry均表示任务的纬度加密后的密文;
步骤2.6:将生成的Ti’={Ci,CPKi,Wi’,R’rx,R’ry}上传给代理bi
步骤3:代理收到任务请求者发送的任务相关的密文信息,为其生成相应的任务号ti,将任务号以及对应的加密任务的关键词和任务位置坐标创建为任务索引上传到区块链网络;
步骤4:工人使用自己的单独密钥加密自己的兴趣关键词以及接受的任务范围生成两个搜索陷门,并且上传到代理;
步骤5:代理先分别对任务位置坐标密文和工人接受任务范围的坐标进行重加密,然后代理调用匹配的智能合约将陷门与任务索引中的任务的关键词和任务位置坐标的密文进行匹配,将得到的结果返回给代理;
步骤6:代理根据匹配到的任务,查询授权列表,查看工人是否在该任务请求者的授权列表中,如果不在,则向任务请求者申请,然后更新任务请求者的授权列表;并通过重加密转换密钥将所有匹配的任务的密文进行转换,将最终得到的转换后的任务密文发送给工人;
步骤7:工人得到所有任务的密文后,进行解密操作得到任务信息明文。
2.根据权利要求1所述的一种基于区块链的空间众包方法,其特征在于,所述个人公私钥中的公钥PK为公开状态,私钥SK为用户私有状态,不可公开;任务请求者的个人公私钥对记为(PKr,SKr),工人的个人公私钥对记为(PKw,SKw);
所述公钥PK的生成过程为:
S1、用伪随机数生成器生成两个素数p和q,并将这两个素数相乘得到N:N=p*q;
S2、求解p-1和q-1的最小公倍数L:L=lcm(p-1,q-1);
S3、在(1,L)范围内通过伪随机数生成E,判断gcd(E,L)=1是否成立,若成立则将得到的E和N作为公钥(E,N),设为PK;
所述私钥SK的生成过程为:在(1,L)范围内取D,同时使D满足E*D mod L=1的条件,将得到的D和N作为私钥(D,N),设为SK。
3.根据权利要求2所述的一种基于区块链的空间众包方法,其特征在于,所述任务请求者使用单独密钥qkr加密任务位置坐标以及任务的关键词;所述工人使用单独密钥qkw加密自己的兴趣关键词以及接受的任务范围生成搜索陷门,用来进行任务匹配;所述转换密钥rk由密钥管理机构以{用户,转换密钥}的形式发送给代理进行管理,用于任务匹配时进行重加密;所述任务请求者和工人对应的转换密钥分别为rkr和rkw
所述单独密钥qk和转换密钥rk的生成过程为:
S1:密钥管理机构生成随机数大质数g,生成一个公共哈希函数H,以及bigInteger类型的主密钥MSK:(1λ)->(g,H,MSK);
S2:对于一个用户ui,密钥管理机构首先选择一个随机值ki并且计算gki作为用户ui的单独密钥qki,计算rki=MSK/ki作为用户ui的转换密钥rki:(MSK,ui)->(qki=gki,rki=MSK/ki)
S3:用户ui与转换密钥rki以{ui,rki}的形式保存在区块链中。
4.根据权利要求1所述一种基于区块链的空间众包方法,其特征在于,所述步骤4的过程如下:
步骤4.1:工人在提交构造的搜索陷门时,先采用线段树进行位置坐标范围的转换:(x1,x2)->Rwx={lwx1,lwx2,...,lwxn},(y1,y2)->Rwy={lwy1,lwy2,...,lwyn};
其中,(x1,x2)为工人可以接受的任务的最大经度范围,(y1,y2)为工人可以接受的最大纬度范围,lwx为其中的每一个经度转换后的路径的明文,lwy为其中的每一个纬度转换后的路径的明文,Rwx为转换后的经度路径的明文的集合,Rwy为转换后的纬度路径明文集合;
步骤4.2:将兴趣关键字进行哈希,将哈希值中的所有数字组成的字符串使用自己的单独密钥qkw对其进行加密,形成搜索陷门Td1=Enc(qkw,WWw)=WW’w
其中,WWw为兴趣关键字,WW’w为加密后的兴趣关键字;
步骤4.3:将位置进行哈希得到Hwx=Hash(lwxi)和Hwy=Hash(lwyi)用自己的单独密钥qkw加密工人接受的任务范围,Rwx={lwx1,lwx2,...,lwxn}->R’wx={l’wx1,l’wx2,...,l’wxn},Rwy={lwy1,lwy2,...,lwyn}->R’wy={l’wy1,l’wy2,...,l’wyn},并形成搜索陷门Td2:Td2=Enc(qkw,Rwx,Rwy)=(R’wx,R’wy)={(gkw)lwx,(gkw)lwy};
其中,lwxi为工人可以接受的每一个经度坐标路径的明文,lwyi为工人可以接受的每一个纬度坐标路径的明文,Rwx为工人可以接受的经度坐标路径的明文集合,R’wx为工人可以接受的任务经度坐标路径的密文集合,Rwy为工人可以接受的纬度坐标路径的明文集合,R’wy工人可以接受的纬度坐标路径的密文集合,gkw为工人的单独密钥,用来加密明文信息的;
步骤4.4:工人将生成的两个搜索陷门Td1和Td2上传到代理。
5.根据权利要求1所述的一种基于区块链的空间众包方法,其特征在于,所述步骤5的过程如下:
步骤5.1:代理对任务位置坐标密文进行重加密:
((gkr)lrx)rk=((gkr)lrx)MSK/k=glrx*MSK,((gkr)lry)rkr=((gkr)lry)MSK/k=glry*MSK
其中,gkr为任务请求者的单独密钥,rkr为任务请求者的单独密钥的转换密钥,kr为用于生成转换密钥的;
步骤5.2:代理对工人接受任务范围的坐标进行重加密:
((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
其中,gkw为工人的单独密钥,rkw为工人的的单独密钥的转换密钥,kw为用于生成转换密钥的;
步骤5.3:调用匹配的智能合约,根据兴趣进行匹配:任务请求者的任务描述关键词中有与搜索陷门Td1相匹配的,即:Wi’=Td1
步骤5.4:调用匹配的智能合约,根据位置匹配:工人的位置范围的密文集合中的(R’rx,R’ry)∈(R’wx,R’wy)即:
存在工人提交的坐标范围内一个点与点(R’rx,R’ry)重合:
任务请求者:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
工人:((gkw)lwx)rkw=((gkw)lwx)MSK/kw=glwx*MSK,((gkw)lwy)rkw=((gkw)lwy)MSK/kw=glwy*MSK
即:当且仅当存在一个点使lrx=lwx以及lry=lwy时:
glrx*MSK=glwx*MSK
glry*MSK=glwy*MSK
判断当密文相等时,即在工人可接受的范围内包含该点,则该任务可以被分配给该工人;否则该任务不能分配给该工人。
6.根据权利要求1所述的一种基于区块链的空间众包方法,其特征在于,所述步骤6的过程如下:
步骤6.1:代理针对每个任务查看用户是否有查看该任务的权限,如果没有则,代理需要将工人的公钥发送给任务请求者,任务请求者使用工人的公钥和自己的私钥生成解密的转换密钥ARK:ARK=AEnc(PKw,SKr),并且发送给代理;
其中,PKw为工人的公钥,SKr为任务请求者的私钥;
步骤6.2:代理接收到转换密钥ARK,通过智能合约将其添加到任务请求者的授权列表中对授权列表进行更新;同样,任务请求者想要撤销某个工人的权限,通过代理调用智能合约将工人的授权的重加密转换密钥从自己的授权列表中删除;
步骤6.3:代理通过重加密转换密钥,将密文CPKi转换为工人私钥可以解密的密文C’PKi:C’PKi=ReEnc(ARK,CPKi),并将所有匹配的任务的密文进行转换并发送给工人。
7.根据权利要求1所述的一种基于区块链的空间众包方法,其特征在于,所述步骤7的过程如下:
步骤7.1:工人使用自己的私钥解密CPKi得到Kc:Kc=Des(SKw,CPKi);
其中,Kc为加密任务信息的AES密钥,SKw为工人的私钥,CPKi为AES密钥的密文;
步骤7.2:使用得到的Kc解密T’i得到任务信息明文Ti:Ti=AESDes(Kc,T’i)。
8.用于实现权利要求1所述的一种基于区块链的空间众包方法的一种基于区块链的空间众包系统,其特征在于,系统包括用户、密钥管理机构、代理、区块链网络和智能合约;
所述密钥管理机构接收用户的注册申请,给用户发送个人公私钥以及单独密钥;并生成转换密钥,以{用户,转换密钥}的形式发送给代理进行管理;
所述用户分为任务请求者和工人两种身份,所有用户能够在两种身份中切换角色;所述用户使用个人公私钥以及单独密钥给代理,由代理调用智能合约进行匹配;
所述任务请求者使用自己的公私钥中的公钥加密任务信息,使用单独密钥加密任务坐标以及任务的关键词;
所述工人使用自己的私钥解密经过代理重加密后的匹配到的任务密文得到任务信息,使用单独密钥加密自己的兴趣关键词以及接受的任务范围生成陷门,用来进行任务匹配;
所述代理负责用户与区块链网络的交互,并提供相关的计算匹配服务;
所述智能合约通过代理的调用情况,实现更新索引、代理重加密、任务匹配和维护授权列表的功能。
9.根据权利要求8所述的基于区块链的空间众包系统,其特征在于:所述任务请求者根据需要授权工人访问自己的任务信息。
CN202110902314.0A 2021-08-06 2021-08-06 一种基于区块链的空间众包系统及方法 Active CN113609502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110902314.0A CN113609502B (zh) 2021-08-06 2021-08-06 一种基于区块链的空间众包系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110902314.0A CN113609502B (zh) 2021-08-06 2021-08-06 一种基于区块链的空间众包系统及方法

Publications (2)

Publication Number Publication Date
CN113609502A CN113609502A (zh) 2021-11-05
CN113609502B true CN113609502B (zh) 2023-09-26

Family

ID=78307479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110902314.0A Active CN113609502B (zh) 2021-08-06 2021-08-06 一种基于区块链的空间众包系统及方法

Country Status (1)

Country Link
CN (1) CN113609502B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884677B (zh) * 2022-05-09 2023-04-25 重庆大学 一种基于区块链的多用户众包任务匹配方法及系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018209222A1 (en) * 2017-05-12 2018-11-15 Massachusetts Institute Of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data
CN110620774A (zh) * 2019-09-20 2019-12-27 西安电子科技大学 区块链下空间众包的位置策略隐私保护方法
KR20200032412A (ko) * 2018-09-18 2020-03-26 이화여자대학교 산학협력단 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템
CN111133461A (zh) * 2017-10-20 2020-05-08 国际商业机器公司 区块链使能的众包
CN111641641A (zh) * 2020-05-29 2020-09-08 兰州理工大学 基于可搜索代理重加密的区块链数据共享方法
CN111835500A (zh) * 2020-07-08 2020-10-27 浙江工商大学 基于同态加密与区块链的可搜索加密数据安全共享方法
WO2020216858A1 (en) * 2019-04-24 2020-10-29 Sony Corporation Blockchain-based crowdsourcing
WO2021046668A1 (zh) * 2019-09-09 2021-03-18 深圳市网心科技有限公司 区块链系统及信息传输方法、系统、装置、计算机介质
CN113014563A (zh) * 2021-02-10 2021-06-22 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
CN113194078A (zh) * 2021-04-22 2021-07-30 西安电子科技大学 一种云端支持隐私保护的排序多关键字搜索加密方法
CN113536359A (zh) * 2021-08-06 2021-10-22 东北大学 基于区块链的个人健康记录隐私保护和访问系统及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11966917B2 (en) * 2018-09-12 2024-04-23 Bitclave Pte. Ltd. Systems and methods for providing personal rewards in a trustless ecosystem

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018209222A1 (en) * 2017-05-12 2018-11-15 Massachusetts Institute Of Technology Systems and methods for crowdsourcing, analyzing, and/or matching personal data
CN111133461A (zh) * 2017-10-20 2020-05-08 国际商业机器公司 区块链使能的众包
KR20200032412A (ko) * 2018-09-18 2020-03-26 이화여자대학교 산학협력단 블록체인 기반의 데이터 공유 방법, 이를 수행하기 위한 클라우드 서버 및 이를 포함하는 데이터 공유 시스템
WO2020216858A1 (en) * 2019-04-24 2020-10-29 Sony Corporation Blockchain-based crowdsourcing
WO2021046668A1 (zh) * 2019-09-09 2021-03-18 深圳市网心科技有限公司 区块链系统及信息传输方法、系统、装置、计算机介质
CN110620774A (zh) * 2019-09-20 2019-12-27 西安电子科技大学 区块链下空间众包的位置策略隐私保护方法
CN111641641A (zh) * 2020-05-29 2020-09-08 兰州理工大学 基于可搜索代理重加密的区块链数据共享方法
CN111835500A (zh) * 2020-07-08 2020-10-27 浙江工商大学 基于同态加密与区块链的可搜索加密数据安全共享方法
CN113014563A (zh) * 2021-02-10 2021-06-22 华中科技大学 一种保障可搜索公钥加密检索完备性的方法及系统
CN113194078A (zh) * 2021-04-22 2021-07-30 西安电子科技大学 一种云端支持隐私保护的排序多关键字搜索加密方法
CN113536359A (zh) * 2021-08-06 2021-10-22 东北大学 基于区块链的个人健康记录隐私保护和访问系统及方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Chen Zhang ; Yu Guo ; Hongwei Du ; Xiaohua Jia.PFcrowd: Privacy-Preserving and Federated Crowdsourcing Framework by Using Blockchain.《2020 IEEE/ACM 28th International Symposium on Quality of Service (IWQoS)》.2020,全文. *
Enabling Proxy-Free Privacy-Preserving and Federated Crowdsourcing by Using Blockchain;Chen Zhang; Yu Guo; Xiaohua Jia; Cong Wang; Hongwei Du;《IEEE Internet of Things Journal》;第8卷(第8期);6624 - 6636 *
Yiming Wu ; Shaohua Tang ; Bowen Zhao ; Zhiniang Peng.BPTM: Blockchain-Based Privacy-Preserving Task Matching in Crowdsourcing.《IEEE Access 》.2019,第7卷45605 - 45617. *
基于云外包的可验证的隐私匹配研究;金刚刚;《中国优秀硕士学位论文全文数据库 信息科技辑》(第07期);I138-15 *

Also Published As

Publication number Publication date
CN113609502A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
EP3375129B1 (en) Method for re-keying an encrypted data file
CN104486315B (zh) 一种基于内容属性的可撤销密钥外包解密方法
CN104363215B (zh) 一种基于属性的加密方法和系统
JP6180177B2 (ja) プライバシーを保護することができる暗号化データの問い合わせ方法及びシステム
JP3548215B2 (ja) 通信方法及びそのシステム
CN105610793B (zh) 一种外包数据加密存储与密文查询系统及其应用方法
CN108768951B (zh) 一种云环境下保护文件隐私的数据加密和检索方法
CN105721485B (zh) 外包云环境下面向多数据拥有者的安全最近邻查询方法
CN113992330B (zh) 一种基于代理重加密的区块链数据受控共享方法及系统
Samanthula et al. An efficient and secure data sharing framework using homomorphic encryption in the cloud
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
CN106487506B (zh) 一种支持预加密和外包解密的多机构kp-abe方法
CN108632385B (zh) 基于时间序列的多叉树数据索引结构云存储隐私保护方法
CN114036240A (zh) 一种基于区块链的多服务商隐私数据共享系统和方法
CN110190945A (zh) 基于多加密的线性回归隐私保护方法及系统
CN113411323B (zh) 基于属性加密的医疗病历数据访问控制系统及方法
CN112966022B (zh) 一种数据交易平台的信息查询方法、装置及系统
US20050033963A1 (en) Method and system for authentication, data communication, storage and retrieval in a distributed key cryptography system
CN105978689B (zh) 一种抗密钥泄漏的云数据安全共享方法
CN105721146B (zh) 一种面向云存储基于smc的大数据共享方法
JP6058514B2 (ja) 暗号処理方法、暗号システム、およびサーバ
CN113609502B (zh) 一种基于区块链的空间众包系统及方法
JP2017044779A (ja) 検索可能暗号処理システム
JP2004234344A (ja) データベースアクセスシステム
Ma et al. A secure and efficient data deduplication scheme with dynamic ownership management in cloud computing

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