CN111277406B - 一种基于区块链的安全两方向量优势比较方法 - Google Patents

一种基于区块链的安全两方向量优势比较方法 Download PDF

Info

Publication number
CN111277406B
CN111277406B CN202010019019.6A CN202010019019A CN111277406B CN 111277406 B CN111277406 B CN 111277406B CN 202010019019 A CN202010019019 A CN 202010019019A CN 111277406 B CN111277406 B CN 111277406B
Authority
CN
China
Prior art keywords
vector
equal
node
bob
alice
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
CN202010019019.6A
Other languages
English (en)
Other versions
CN111277406A (zh
Inventor
钟汉锐
桑应朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202010019019.6A priority Critical patent/CN111277406B/zh
Publication of CN111277406A publication Critical patent/CN111277406A/zh
Application granted granted Critical
Publication of CN111277406B publication Critical patent/CN111277406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0207Discounts or incentives, e.g. coupons or rebates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/3013Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Abstract

本发明属于密码学与信息安全领域,更具体地,涉及一种基于区块链的安全两方向量优势比较方法。方法采用了区块链加云外包计算作为基础框架,利用区块链作为驱动工具,代替可信任第三方来管理和监督整个计算过程,确保向量比较正常运行。利用云外包计算,将繁重的计算任务从用户转移到拥有足够计算力的外包服务器,减轻了用户的负担,充分利用了额外的计算资源。将云外包计算和区块链结合起来,提供可靠的奖励惩罚机制,减轻用户计算开销的同时,大大增加了恶意服务器的攻击成本,从而使得原本在实际运行中受限严重的半诚实模型协议有了保障。

Description

一种基于区块链的安全两方向量优势比较方法
技术领域
本发明属于密码学与信息安全领域,更具体地,涉及一种基于区块链的安全两方向量优势比较方法。
背景技术
随着信息技术的飞速发展,互联网在人们的日常生活中变得越来越重要。近年来,互联网应用和服务如雨后春笋般涌现。尽管这些互联网应用给人们的生活带来了巨大的便利,但同时许多应用也在这个过程中收集了大量的用户数据,因此这也引起了人们对隐私信息泄露的关注。作为一种有效保护隐私的技术,多方安全计算是研究人员重点关注的方向之一,它关注如何在分布式场景中,利用参与者的私有信息来完成相关计算任务。两方向量优势比较是多方安全计算的一个子课题,是单个数字比较的一个扩展,同时也增加了新的限制条件。假定Alice 和Bob分别持有私人的向量A和向量B,它要求Alice和Bob能进行比较,查看是否存在某一个向量中的所有元素都大于另外一个向量对应元素的情况,并且在这个过程中既不能向对方暴露向量里面的元素信息,也不能暴露对应元素的大小关系。两方向量优势比较作为多方安全计算的一个子课题,使用了大量的以密码学知识为基础的技术,属于密码学与信息安全领域。
2001年,Atallah等首次提出了两方向量优势比较的定义,并给出了一种利用置换和混淆输入的方法完成比较。通过混淆输入和置换,Atallah将A与B两个n维向量扩展成为4n维向量A′与向量B′,然后利用A′与B′对元素进行逐个比较。2006年,Ibrahim提出了新的算法,算法第一步利用对应位置的元素计算是否存在向量优势,在确定存在向量优势后,第二步两方分别计算各自向量的元素的总和,然后以总和进行比较判断谁的向量是优势。2008年,Jin等提出了以按位比较为基础的方法来解决向量优势问题。首先Alice将加密密钥和加密后的向量比特发送给Bob,Bob收到Alice的数据后在加密的环境下计算对应元素对应比特的差值,并将差值累计起来。Bob将累计的结果经过混淆后发送给Alice,Alice解密后由差值判断向量之间是否存在优势比较。
上述的方法虽然能够解决两方向量比较问题,但是他们都只适用于半诚实模型,即参与者都必须诚实地执行每个步骤,无法对恶意行为进行抵抗。同时, Atallah提出的方法使用了可信任的第三方,在实际使用中缺乏可行性。Ibrahim 的方法缺少针对向量节点相等的情况,在不进行预处理的前提下,可能会造成用户隐私泄露。同时,以上方法用户要做大量的计算和通信操作,给用户带来更多的开销。
发明内容
本发明为克服上述现有技术中的缺陷,提供一种基于区块链的安全两方向量优势比较方法,利用云外包计算,将繁重的计算任务从用户转移到拥有足够计算力的外包服务器,减轻了用户的负担,充分利用了额外的计算资源。
为解决上述技术问题,本发明采用的技术方案是:一种基于区块链的安全两方向量优势比较方法,包括以下步骤:
S1.假定Alice持有向量A=[a1 … an],Bob持有向量B=[b1 … bn],每个元素都表示为K比特的整数;
S2.密钥协商:Alice和Bob通信协商ELGamal加密所需的参数p、q,各自在群Zq中选取随机元素SA、SB,并计算
Figure GDA0003116245350000021
得到
Figure GDA0003116245350000022
在Gq中选取元素f,使用h、f和群Gq的生成元g构造加密密钥(g,h,f);其中,p、q是两个大素数,满足条件p=2q+1,Gq是群
Figure GDA0003116245350000023
的q阶乘法子群,它的生成元是g;
S3.Alice将自己的数据按位进行秘密分享,将矩阵A=[a1 … an]的每个元素ai分为K份分享,其中1≤i≤n,每一份分享都包含了元素ai的一个bit, [ai]p=[[ai1]p[ai2]p...[aik]p],其中[ai]p表示元素ai的秘密分享形式,[ait]p表示元素ai的第t个比特的分享,满足[ait]p∈{0,1},1≤t≤K;同时,Alice计算 ai的最长前缀a′i的长度Ji,Alice将分享后的数据、Ji和加密密钥(g,h,f)上传到区块链;
S4.Bob根据自己的向量B计算每个元素的前缀集合,对于每个元素 bi,其中1≤i≤n,Bob使用零编码算法计算bi所有的前缀,得到含有Ki个元素的集合
Figure GDA0003116245350000031
Bob将每个
Figure GDA0003116245350000032
按位进行秘密分享得到
Figure GDA0003116245350000033
其中
Figure GDA0003116245350000034
表示元素
Figure GDA0003116245350000035
的秘密分享形式,
Figure GDA0003116245350000036
表示元素
Figure GDA0003116245350000037
的第m个比特的分享,mj表示
Figure GDA0003116245350000038
的长度,满足
Figure GDA0003116245350000039
Figure GDA00031162453500000310
然后将数据上传到区块链;
S5.区块链收到Alice和Bob上传的数据,将数据和计算任务分配给计算节点进行多轮计算,计算得到加密数据yi,K,其中1≤i≤n;
S6.在步骤S5的多轮运算中,每一对元素ai与bi经过计算后得到结果yi,K,n 对元素全部计算完成后,区块链和计算节点通过通信和计算得到Y=y1,K· y2,K...·yn,K=(x,y),将结果Y返回给Alice和Bob;
S7.Alice和Bob根据ELGamal密码体制的要求,利用步骤S2中的SA、SB和步骤S6所得到的Y中的x,分别计算
Figure GDA00031162453500000312
Figure GDA00031162453500000313
并交换,然后对Y进行解密,若解密的结果
Figure GDA00031162453500000314
则A>B,即向量A对向量B存在向量优势,否则向量A对向量B不存在向量优势。
进一步的,所述的S5步骤具体包括:首先区块链根据向量元素的长度K在网络中随机选择2K个计算节点,每个节点获取ai
Figure GDA00031162453500000315
中的一个比特,然后这2K个节点重复执行以下计算,其中i=1,2...n;
S51.负责[ai]p的节点从群Zq中选取两个随机数
Figure GDA00031162453500000316
Figure GDA00031162453500000317
设节点持有
Figure GDA00031162453500000318
这一比特,i代表了元素ai在向量A中的位置,j对应
Figure GDA00031162453500000319
Figure GDA00031162453500000320
的位置,l表示在元素ai中的位置,z[i,l,0]与z[i,l,1]分别代表了计算节点根据数据
Figure GDA00031162453500000321
计算的加密向量中的两个元素;
当j=1时,负责前Ji位的节点进行以下计算,其中1≤l≤K:
Figure GDA00031162453500000322
生成向量[z[i,l,0]=E(0),
Figure GDA00031162453500000323
Figure GDA00031162453500000324
生成向量
Figure GDA00031162453500000325
z[i,l,1]=E(1)];
负责其他位的节点生成向量
Figure GDA00031162453500000326
当j>1时,负责前Ji位的节点根据收到的yi,j-1进行以下计算,其中
Figure GDA0003116245350000041
代表yi,j-1
Figure GDA0003116245350000042
次幂运算,1≤l≤K:
Figure GDA0003116245350000043
生成向量
Figure GDA0003116245350000044
Figure GDA0003116245350000045
生成向量
Figure GDA0003116245350000046
负责其他位的节点生成向量
Figure GDA0003116245350000047
S52.负责[ai]p的节点将计算得到的向量发送给区块链,由区块链转发给负责对应的
Figure GDA0003116245350000048
的节点;
S53.负责
Figure GDA0003116245350000049
的节点收到区块链转发的加密向量[z[i,l,0],z[i,l,1]]后,根据自己持有的数据进行计算;设节点持有
Figure GDA00031162453500000410
i代表bi在向量B中的位置,j代表
Figure GDA00031162453500000411
Figure GDA00031162453500000412
中的位置,m(1≤m≤mj)表示
Figure GDA00031162453500000413
在元素
Figure GDA00031162453500000414
中的位置;
当1≤j≤Ki时,若
Figure GDA00031162453500000415
则选取z[i,j,m]=z[i,j,0],若
Figure GDA00031162453500000416
则选取z[i,j,m]=z[i,j,1];然后节点通信计算得到yi,j=z[i,j,mj]·z[i,j,mj- 1]...·z[i,j,1]·E(0);
当(Ki+1)≤j≤K时,在Zn中随机选取元素rj,计算
Figure GDA00031162453500000417
然后节点将yi,j返回给区块链;
S54.j=j+1,当j≤K时回到步骤S51利用ai与新的
Figure GDA00031162453500000418
进行新的计算,当 j=K时,计算节点通过多次计算得到加密数据yi,K,其中1≤i≤n,此时令 i=i+1,j=1,利用下一对ai
Figure GDA00031162453500000419
进行计算。
在本发明中,ELGamal加密框架包括:
密钥生成:p、q是两个大素数,满足条件p=2q+1;Gq是群
Figure GDA00031162453500000420
的q阶乘法子群,它的生成元是g;Alice在群Zq中随机选取一个元素SA,Bob在群Zq中随机选取一个元素SB;Alice和Bob分别计算
Figure GDA00031162453500000421
Figure GDA00031162453500000422
并交换,得出
Figure GDA00031162453500000423
在Gq中选取元素f,至此得到加密的公钥(g,h,f);
加密运算:给定明文w∈Zq,通过加密算法计算得到E(w)=(x,y)= (gα,hαfw),其中α是在Zq中选取的随机元素;
解密运算:给定密文c=(x,y),Alice和Bob分别计算和分享
Figure GDA0003116245350000051
Figure GDA0003116245350000052
通过解密算法计算得到
Figure GDA0003116245350000053
在本发明中,提出的方法采用了区块链加云外包计算作为基础框架,利用区块链作为驱动工具,代替可信任第三方来管理和监督整个计算过程,确保向量比较正常运行。利用云外包计算,将繁重的计算任务从用户转移到拥有足够计算力的外包服务器,减轻了用户的负担,充分利用了额外的计算资源。而每一个计算服务器都必须在区块链中进行注册,并且需要抵押一定的电子资产在区块链作为保证金。如果服务器在计算的过程中没有按照协议进行计算,区块链将针对该服务器的电子资产进行惩罚,扣除该服务器的电子资产,补偿给诚信运行的节点还有用户。而诚信运行的节点的电子资产可以在计算任务后自由取回,并且会收到来自区块链的诚信奖励和用户的服务费。这样将云外包计算和区块链结合起来,提供可靠的奖励惩罚机制,减轻用户计算开销的同时,大大增加了恶意服务器的攻击成本,从而使得原本在实际运行中受限严重的半诚实模型协议有了保障。服务器为了获取奖励,会更倾向于诚实运行而非打破协议,使自己的资产受损。
效率分析:本方案的开销分为计算开销和通信开销两个部分。对于用户Alice 和Bob,主要开销来自密钥协商和上传数据,他们的通信开销都是O(nK)。对于云服务器,需要接收用户的数据,并进行加密比较,单个服务器的通信开销位 O(nK),计算开销位O(nK),所有云服务器的总开销为O(nK2),n代表用户向量元素个数,K代表单个元素的长度。
安全性分析:本方案使用了零编码和隐私保护前缀检测。假设向量A对向量 B存在向量优势,那么向量B中元素bi的零编码合集
Figure GDA0003116245350000054
中必定含有对应元素ai的前缀。在本方案的步骤S5中,对于每一个元素ai
Figure GDA0003116245350000055
中的每个元素
Figure GDA0003116245350000056
都进行了隐私保护前缀测试,若
Figure GDA0003116245350000057
元素ai的前缀,那么对于得到的yi,j=E(Ri,j)中有Ri,j=0。如果A对B存在向量优势,那么最终汇总的结果
Figure GDA0003116245350000058
且 D(Y)=1。而如果A对B存在向量优势不成立,那么存在i′,j′使得Ri′,j′≠0,从而最终结果
Figure GDA0003116245350000061
Figure GDA0003116245350000062
由于Ri′,j′由服务器随机产生,所以只有极小的概率Ri′,j′=0,因此本方案是完备的。
与现有技术相比,有益效果是:本发明提供的一种基于区块链的安全两方向量优势比较方法,用了区块链与云外包计算作为基础框架,利用区块链作为驱动工具,代替可信任第三方来管理和监督整个计算过程,确保向量比较正常运行。利用云外包计算,将繁重的计算任务从用户转移到拥有足够计算力的外包服务器,减轻了用户的负担,充分利用了额外的计算资源。将云外包计算和区块链结合起来,提供可靠的奖励惩罚机制,减轻用户计算开销的同时,大大增加了恶意服务器的攻击成本,从而使得原本在实际运行中受限严重的半诚实模型协议有了保障。
具体实施方式
一种基于区块链的安全两方向量优势比较方法,包括以下步骤:
S1.假定Alice持有向量A=[a1 … an],Bob持有向量B=[b1 … bn],每个元素都表示为K比特的整数;
S2.密钥协商:Alice和Bob通信协商ELGamal加密所需的参数p、q,各自在群Zq中选取随机元素SA、SB,并计算
Figure GDA0003116245350000063
得到
Figure GDA0003116245350000064
在Gq中选取元素f,使用h,f和群Gq的生成元g构造加密密钥(g,h,f);其中,p、q是两个大素数,满足条件p=2q+1,Gq是群
Figure GDA0003116245350000065
的q阶乘法子群,它的生成元是g;
S3.Alice将自己的数据按位进行秘密分享,将矩阵A=[a1 … an]的每个元素ai分为K份分享,其中1≤i≤n,每一份分享都包含了元素ai的一个bit, [ai]p=[[ai1]p[ai2]p...[aik]p],其中[ait]p∈{0,1},1≤t≤K;同时,Alice计算ai的最长前缀a′i的长度Ji,Alice将分享后的数据、Ji和加密密钥(g,h,f)上传到区块链;
S4.Bob根据自己的向量B计算每个元素的前缀集合,对于每个元素 bi,其中1≤i≤n,Bob使用零编码算法计算bi所有的前缀,得到含有Ki个元素的集合
Figure GDA0003116245350000066
Bob将每个
Figure GDA0003116245350000067
按位进行秘密分享得到
Figure GDA0003116245350000068
其中
Figure GDA0003116245350000069
mj表示
Figure GDA00031162453500000610
的长度,然后将数据上传到区块链;
S5.区块链收到Alice和Bob上传的数据,将数据和计算任务分配给计算节点进行多轮计算,计算得到加密数据yi,K,其中1≤i≤n;
S6.在步骤S5的多轮运算中,每一对元素ai与bi经过计算后得到结果yi,K,n 对元素全部计算完成后,区块链和计算节点通过通信和计算得到Y=y1,K· y2,K...·yn,K=(x,y),将结果Y返回给Alice和Bob;
S7.Alice和Bob根据ELGamal密码体制的要求,利用步骤S2中的SA、SB和步骤S6所得到的Y中的x,分别计算
Figure GDA0003116245350000071
Figure GDA0003116245350000072
并交换,然后对Y进行解密,若解密的结果
Figure GDA0003116245350000073
则A>B,即向量A对向量B存在向量优势,否则向量A对向量B不存在向量优势。
进一步的,所述的S5步骤具体包括:首先区块链根据向量元素的长度K在网络中随机选择2K个计算节点,每个节点获取ai
Figure GDA0003116245350000074
中的一个比特,然后这2K个节点重复执行以下计算,其中i=1,2...n;
S51.负责[ai]p的节点从群Zq中选取两个随机数
Figure GDA0003116245350000075
Figure GDA0003116245350000076
设节点持有
Figure GDA0003116245350000077
这一比特,i代表了元素ai在向量A中的位置,j对应
Figure GDA0003116245350000078
Figure GDA0003116245350000079
的位置,l表示在元素ai中的位置,z[i,l,0]与z[i,l,1]分别代表了计算节点根据
Figure GDA00031162453500000710
计算的加密向量中的两个元素;
当j=1时,负责前Ji位的节点进行以下计算,其中1≤l≤K:
Figure GDA00031162453500000711
生成向量[z[i,l,0]=E(0),
Figure GDA00031162453500000712
Figure GDA00031162453500000713
生成向量
Figure GDA00031162453500000714
z[i,l,1]=E(1)];
负责其他位的节点生成向量
Figure GDA00031162453500000715
当j>1时,负责前Ji位的节点根据收到的yi,j-1进行以下计算,其中
Figure GDA00031162453500000716
代表yi,j-1
Figure GDA00031162453500000717
次幂运算,1≤l≤K:
Figure GDA00031162453500000718
生成向量
Figure GDA00031162453500000719
Figure GDA0003116245350000081
生成向量
Figure GDA0003116245350000082
负责其他位的节点生成向量
Figure GDA0003116245350000083
S52.负责[ai]p的节点将计算得到的向量发送给区块链,由区块链转发给负责对应的
Figure GDA0003116245350000084
的节点;
S53.负责
Figure GDA0003116245350000085
的节点收到区块链转发的加密向量[z[i,l,0],z[i,l,1]]后,根据自己持有的数据进行计算;设节点持有
Figure GDA0003116245350000086
i代表bi在向量B中的位置,j代表
Figure GDA0003116245350000087
Figure GDA0003116245350000088
中的位置,m(1≤m≤mj)表示
Figure GDA0003116245350000089
在元素
Figure GDA00031162453500000810
中的位置;
当1≤j≤Ki时,若
Figure GDA00031162453500000811
则选取z[i,j,m]=z[i,h,0],若
Figure GDA00031162453500000812
则选取z[i,j,m]=z[i,j,1];然后节点通信计算得到yi,j=z[i,j,mj]·z[i,j,mj- 1]...·z[i,j,1]·E(0);
当(Ki+1)≤j≤K时,在Zn中随机选取元素rj,计算
Figure GDA00031162453500000813
然后节点将yi,j返回给区块链;
S54.j=j+1,当j≤K时回到步骤S51利用ai与新的
Figure GDA00031162453500000814
进行新的计算,当 j=K时,计算节点通过多次计算得到加密数据yi,K,其中1≤i≤n,此时令 i=i+1,j=1,利用下一对ai
Figure GDA00031162453500000815
进行计算。
1.ELGamal加密框架包括:
密钥生成:p、q是两个大素数,满足条件p=2q+1;Gq是群
Figure GDA00031162453500000816
的q阶乘法子群,它的生成元是g;Alice在群Zq中随机选取一个元素SA,Bob在群Zq中随机选取一个元素SB;Alice和Bob分别计算
Figure GDA00031162453500000817
Figure GDA00031162453500000818
并交换,得出
Figure GDA00031162453500000819
在Gq中选取元素f,至此得到加密的公钥(g,h,f);
加密运算:给定明文w∈Zq,通过加密算法计算得到E(w)=(x,y)= (gα,hαfw),其中α是在Zq中选取的随机元素;
解密运算:给定密文c=(x,y),Alice和Bob分别计算和分享
Figure GDA00031162453500000820
Figure GDA00031162453500000821
通过解密算法计算得到
Figure GDA0003116245350000091
2.零编码:假设有长度为k的二进制字符串s=(s1s2...sk),其中si(i∈[1,k]) 代表一个比特位,那么它的零编码为:
Figure GDA0003116245350000092
零编码在数字比较中有重要作用,它具有以下性质:给定两个长度为k的二进制字符串a和b,当且仅当a>b时,b的零编码
Figure GDA0003116245350000093
集合中包含a的前缀。
3.隐私保护前缀检测:
利用零编码的性质,我们通过以下方案即可检测两个数的大小关系。假定 Alice有二进制字符串a=(akak-1...a1),Bob有二进制字符串b=(bkbk-1...b1), Alice和Bob通过隐私保护前缀检测来判定b的零编码是否是a的前缀,从而判断 a和b的大小关系。完整的过程如下所示:
1)Bob根据字符串b计算b的零编码,得到含有kj个元素的集合
Figure GDA0003116245350000094
Figure GDA0003116245350000095
设其中一个待测元素的二进制表示为
Figure GDA0003116245350000096
其长度
Figure GDA0003116245350000097
2)Alice使用零编码算法计算a的最长前缀a′,其长度为|a′|=Ja,并在Zq中随机选取两个元素r0、r1,构造2×K矩阵
Figure GDA0003116245350000098
其中Z的每个元素如下:
当k≥i≥Ja且ai=0时,
Figure GDA0003116245350000099
当k≥i≥Ja且ai=1时,
Figure GDA00031162453500000910
当Ja-1≥i≥1时,
Figure GDA00031162453500000911
Alice将矩阵Z发送给Bob;
3)Bob根据矩阵Z、
Figure GDA00031162453500000912
计算
Figure GDA00031162453500000913
然后Bob并将yj发送给Alice;
4)Alice和Bob将yj进行解密,如果D(yj)=1,则
Figure GDA00031162453500000914
是a的前缀,且可以推出a>b。
4.秘密分享:秘密分享一般分为分享和重构两个部分。分享是将秘密分解成若干个分享,而重构就是将这个若干个分享重新组成秘密。(n,t)秘密分享,代表了将秘密分为n份,而任意的t+1份分享都能重新组成秘密,而少于等于t份则不能。在本发明创造中,使用一种按位分享的秘密分享机制,即将一个k位的整数分享成k份,每份一个比特。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

Claims (2)

1.一种基于区块链的安全两方向量优势比较方法,其特征在于,包括以下步骤:
S1.假定Alice持有向量A=[a1…an],Bob持有向量B=[b1…bn],每个元素都表示为K比特的整数;
S2.密钥协商:Alice和Bob通信协商ELGamal加密所需的参数p、q,各自在群Zq中选取随机元素SA、SB,并计算
Figure FDA0003116245340000011
得到
Figure FDA0003116245340000012
在Gq中选取元素f,使用h、f和群Gq的生成元g构造加密密钥(g,h,f);其中,p、q是两个大素数,满足条件p=2q+1,Gq是群
Figure FDA0003116245340000013
的q阶乘法子群,它的生成元是g;
S3.Alice将自己的数据按位进行秘密分享,将矩阵A=[a1…an]的每个元素ai分为K份分享,其中1≤i≤n,每一份分享都包含了元素ai的一个bit,[ai]p=[[ai1]p[ai2]p…[aik]p],其中[ai]p表示元素ai的秘密分享形式,[ait]p表示元素ai的第t个比特的分享,满足[ait]p∈{0,1},1≤t≤K;同时,Alice计算ai的最长前缀a′i的长度Ji,Alice将分享后的数据、Ji和加密密钥(g,h,f)上传到区块链;
S4.Bob根据自己的向量B计算每个元素的前缀集合,对于每个元素bi,其中1≤i≤n,Bob使用零编码算法计算bi所有的前缀,得到含有Ki个元素的集合
Figure FDA0003116245340000014
Bob将每个
Figure FDA0003116245340000015
按位进行秘密分享得到
Figure FDA0003116245340000016
其中
Figure FDA0003116245340000017
表示元素
Figure FDA0003116245340000018
的秘密分享形式,
Figure FDA0003116245340000019
表示元素
Figure FDA00031162453400000110
的第m个比特的分享,mj表示
Figure FDA00031162453400000115
的长度,满足
Figure FDA00031162453400000116
Figure FDA00031162453400000113
然后将数据上传到区块链;
S5.区块链收到Alice和Bob上传的数据,将数据和计算任务分配给计算节点进行多轮计算,计算得到加密数据yi,K,其中1≤i≤n;
S6.在步骤S5的多轮运算中,每一对元素ai与bi经过计算后得到结果yi,K,n对元素全部计算完成后,区块链和计算节点通过通信和计算得到Y=y1,K·y2,K...·yn,K=(x,y),将结果Y返回给Alice和Bob;
S7.Alice和Bob根据ELGamal密码体制的要求,利用步骤S2中的S4、SB和步骤S6所得到的Y中的x,分别计算
Figure FDA0003116245340000021
Figure FDA0003116245340000022
并交换,然后对Y进行解密,若解密的结果
Figure FDA0003116245340000023
则A>B,即向量A对向量B存在向量优势,否则向量A对向量B不存在向量优势;
其中,所述的S5步骤具体包括:首先区块链根据向量元素的长度K在网络中随机选择2K个计算节点,每个节点获取ai
Figure FDA0003116245340000024
中的一个比特,然后这2K个节点重复执行以下计算,其中i=1,2…n;
S51.负责[ai]p的节点从群Zq中选取两个随机数
Figure FDA0003116245340000025
Figure FDA0003116245340000026
设节点持有
Figure FDA0003116245340000027
这一比特,i代表了元素ai与bi在向量中的位置,j对应
Figure FDA0003116245340000028
Figure FDA0003116245340000029
的位置,l表示在元素ai中的位置,z[i,l,0]与z[i,l,1]分别代表了计算节点根据数据
Figure FDA00031162453400000210
计算的加密向量中的两个元素;
当j=1时,负责前Ji位的节点进行以下计算,其中1≤l≤K:
Figure FDA00031162453400000211
生成向量
Figure FDA00031162453400000212
Figure FDA00031162453400000213
生成向量
Figure FDA00031162453400000214
负责其他位的节点生成向量
Figure FDA00031162453400000215
当j>1时,负责前Ji位的节点根据收到的yi,j-1进行以下计算,其中
Figure FDA00031162453400000216
代表yi,j-1
Figure FDA00031162453400000217
次幂运算,1≤l≤K:
Figure FDA00031162453400000218
生成向量
Figure FDA00031162453400000219
Figure FDA00031162453400000220
生成向量
Figure FDA00031162453400000221
负责其他位的节点生成向量
Figure FDA00031162453400000222
S52.负责[ai]p的节点将计算得到的向量发送给区块链,由区块链转发给负责对应的
Figure FDA00031162453400000223
的节点;
S53.负责
Figure FDA00031162453400000224
的节点收到区块链转发的加密向量[z[i,l,0],z[i,l,1]]后,根据自己持有的数据进行计算;设节点持有
Figure FDA0003116245340000031
i代表了元素ai与bi在向量中的位置,j代表
Figure FDA0003116245340000032
Figure FDA0003116245340000033
中的位置,m表示
Figure FDA0003116245340000034
在元素
Figure FDA0003116245340000035
中的位置,其中,1≤m≤mj
当1≤j≤Ki时,若
Figure FDA0003116245340000036
则选取z[i,j,m]=z[i,j,0],若
Figure FDA0003116245340000037
则选取z[i,j,m]=z[i,j,1];然后节点通信计算得到yi,j=z[i,j,mj]·z[i,j,mj-1]...·z[i,j,1]·E(0);
当(Ki+1)≤j≤K时,在Zn中随机选取元素rj,计算
Figure FDA0003116245340000038
然后节点将yi,j返回给区块链;
S54.j=j+1,当j≤K时回到步骤S51利用ai与新的
Figure FDA0003116245340000039
进行新的计算,当j=K时,计算节点通过多次计算得到加密数据yi,K,其中1≤i≤n,此时令i=i+1,j=1,利用下一对ai
Figure FDA00031162453400000310
进行计算。
2.根据权利要求1所述的基于区块链的安全两方向量优势比较方法,其特征在于,ELGamal加密框架包括:
密钥生成:p、q是两个大素数,满足条件p=2q+1;Gq是群
Figure FDA00031162453400000311
的q阶乘法子群,它的生成元是g;Alice在群Zq中随机选取一个元素SA,Bob在群Zq中随机选取一个元素SB;Alice和Bob分别计算
Figure FDA00031162453400000312
Figure FDA00031162453400000313
并交换,得出
Figure FDA00031162453400000314
在Gq中选取元素f,至此得到加密的公钥(g,h,f);
加密运算:给定明文w∈Zq,通过加密算法计算得到E(w)=(x,y)=(gα,hαfw),其中α是在Zq中选取的随机元素;
解密运算:给定密文c=(x,y),Alice和Bob分别计算和分享
Figure FDA00031162453400000315
Figure FDA00031162453400000316
通过解密算法计算得到
Figure FDA00031162453400000317
CN202010019019.6A 2020-01-08 2020-01-08 一种基于区块链的安全两方向量优势比较方法 Active CN111277406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010019019.6A CN111277406B (zh) 2020-01-08 2020-01-08 一种基于区块链的安全两方向量优势比较方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010019019.6A CN111277406B (zh) 2020-01-08 2020-01-08 一种基于区块链的安全两方向量优势比较方法

Publications (2)

Publication Number Publication Date
CN111277406A CN111277406A (zh) 2020-06-12
CN111277406B true CN111277406B (zh) 2021-09-21

Family

ID=71000092

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010019019.6A Active CN111277406B (zh) 2020-01-08 2020-01-08 一种基于区块链的安全两方向量优势比较方法

Country Status (1)

Country Link
CN (1) CN111277406B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328699B (zh) * 2020-11-20 2023-07-28 中山大学 一种基于区块链的全同态加密算法的安全外包方法及系统
CN113792322B (zh) * 2021-11-15 2022-02-15 南京可信区块链与算法经济研究院有限公司 一种安全两方比较方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248478A (zh) * 2013-05-08 2013-08-14 天津大学 基于多方安全协议的密封式电子拍卖方案与验证方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016178655A1 (en) * 2015-05-01 2016-11-10 Hewlett Packard Enterprise Development Lp Secure multi-party information retrieval
EP3491515A4 (en) * 2016-07-27 2020-07-15 Intel Corporation VECTOR COMPARISON MULTIPLEXING SYSTEM AND METHOD
CN110071796B (zh) * 2018-01-22 2021-09-03 中山大学 一种基于共享秘密的计算方法
CN110299987B (zh) * 2019-06-24 2022-03-29 暨南大学 一种基于同态加密的百万富翁问题解决方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248478A (zh) * 2013-05-08 2013-08-14 天津大学 基于多方安全协议的密封式电子拍卖方案与验证方法

Also Published As

Publication number Publication date
CN111277406A (zh) 2020-06-12

Similar Documents

Publication Publication Date Title
Bonawitz et al. Practical secure aggregation for privacy-preserving machine learning
Jha et al. Towards practical privacy for genomic computation
CN104270247B (zh) 适用于量子密码系统的高效泛Hash函数认证方法
CN112769542B (zh) 基于椭圆曲线的乘法三元组生成方法、装置、设备及介质
CN111277406B (zh) 一种基于区块链的安全两方向量优势比较方法
JP4869824B2 (ja) 受信者装置及び送信者装置及び暗号通信システム及びプログラム
CN110795762A (zh) 基于流密码的保留格式加密方法
Alkhodaidi et al. Scalable shares generation to increase participants of counting-based secret sharing technique
Mishra et al. GraphCrypto: Next generation data security approach towards sustainable smart city building
CN114760023A (zh) 基于联邦学习的模型训练方法、装置及存储介质
Liu et al. SASH: efficient secure aggregation based on SHPRG for federated learning
CN113765663A (zh) 一种强化量子密钥分发网络的安全性的方法及装置
US20190215148A1 (en) Method of establishing anti-attack public key cryptogram
Hitaswi et al. A bio-inspired model to provide data security in cloud storage
Zhou et al. A survey of security aggregation
Kuppuswamy et al. Enrichment of security through cryptographic public key algorithm based on block cipher
Zhao et al. An efficient outsourced oblivious transfer extension protocol and its applications
Wang et al. Public-key encryption based on generalized synchronization of coupled map lattices
Cheung et al. Secure multiparty computation between distrusted networks terminals
Al-Doori et al. Securing IoT Networks with NTRU Cryptosystem: A Practical Approach on ARM-based Devices for Edge and Fog Layer Integration.
Ding et al. Efficient privacy preserving decision tree inference service
Murtaza et al. Techniques for Resource-Efficient, Lightweight Cryptography in IoT Devices for Smart Environment
CN115442103A (zh) 一种群体学习抗毒化攻击方法、系统、设备及存储介质
Singh et al. Information security using visual cryptographic technique for resource constrained devices
Dhand et al. Securing Data Using Visual Cryptography

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