本发明属于量子计算和盲签名领域,具体涉及一种防签名者窃听的量子盲签名协议。
背景技术:
在密码学中,由davidchaum提出的盲签名是一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:1)签名者对其所签署的消息是不可见的,即签名者不知道他所签署消息的具体内容;2)签名消息不可追踪,即当签名消息被公布后,签名者无法知道这是他哪次签署的。为了满足以上条件,盲签名允许消息拥有者先将消息盲化,而后让签名者对盲化的消息进行签名,最后消息拥有者对签字除去盲因子,得到签名者关于原消息的签名。盲签名因为具有以上特性,可以有效保护所签署消息的具体内容,所以在电子商务、电子选举、云计算等领域有着广泛的应用。
量子盲签名(qbs)是经典盲签名在量子领域的扩展,依靠量子力学相关特性来实现盲签名中信息的处理和传输,从而实现不同于经典方案的潜在无条件安全性。在过去20年中,许多学者提出了各种量子盲签名方案,在诸如量子密钥分发、量子现金支付、量子茫然传输等实际问题中发挥着重要作用。最早提出的量子盲签名方案大多属于弱量子盲签名,即签名可以被追踪,不符合盲签名的第二个性质。随后,一批真正意义的量子盲签名方案被提出,实现了签名的盲性和不可追踪性。但是已有的qbs方案没有考虑到签名者存在窃听行为,且通常利用量子秘钥分发(qkd)或按位操作等形式对消息进行签名或验证,最后得到的签名大多以量子态形式存在,只能验证一次,效率上有所缺失。
技术实现要素:
本发明的目的是针对已有的qbs方案没有考虑到签名者存在窃听行为,设计一种防签名者窃听的量子盲签名协议,保证了消息的盲性和签名的不可追踪性,解决现有的大多数qbs方案无法检测出签名者窃听消息的情况。
为实现上述技术目的,本发明采用以下技术方案:
一种防签名者窃听的量子盲签名协议,包括:
步骤一:bob将原消息m编码为一个叠加态|ψ>;
步骤二:bob通过哈希函数计算得到哈希值hash(m);bob从集合{|0>,|1>,|+>,|->}中随机选择t个诱骗量子比特,按照预先确定的诱骗量子比特插入位置将这t个诱骗量子比特插入到叠加态|ψ>中,得到新的量子态|ψ′>;bob将|ψ′>发送给alice;
步骤三:alice对|ψ′>中的每一个基态|mi>都进行签名操作得到每个基态|mi>对应的签名|sign(mi)>,得到签名后的态量子比特|ψ″>,alice将|ψ″>返回给bob;
步骤四:bob利用测量基对|ψ″>中的诱骗量子比特进行测量,如果每一个诱骗量子比特的测量结果与初始态相同,则说明alice是诚实的;否则,alice不诚实,bob拒绝此次签名。
本发明为了进一步解决现有技术通常利用量子秘钥分发(qkd)或按位操作等形式对消息进行签名或验证,最后得到的签名大多以量子态形式存在,只能验证一次,效率上有所缺失的技术问题,本发明的技术方案进一步地还包括:
bob通过哈希函数hash(g)计算得到哈希值hash(m),hash(g)是由bob与charlie事先约定好长度为l的哈希函数;
在步骤四之后还包括:
步骤五:bob利用{|0>,|1>}基测量对所有收到的量子比特态量子比特|ψ″>进行z基测量,得到包含诱骗信息的消息m′和对应的签名sign(m′),发布(m′,sign(m′),positionsofminm′,±),其中m′为包含诱骗信息的消息、sign(m′)为|ψ″>中对应|ψ′>中的每个基态对应签名的的测量结果、消息m在m′中的位置、positionsofminm′表示消息m在m′中的位置;+表示在m′中的消息m不用按位取反,-表示要按位取反;
步骤六:charlie对bob公布的(m′,sign(m′),positionsofminm′,±)进行验证,方法为:charlie根据消息m在m′中的位置(positionsofminm′)和“±”,得到消息m″,利用哈希函数hash(g)计算哈希值hash(m″),推出消息m″在m′中的位置并将其与positionsofminm′进行比对,如果相同,则说明bob没有篡改消息;否则,bob篡改了消息;消息m′表示|ψ′>测量后的经典状态,sign(m′)表示|sign(ψ′)>测量后的经典状态;
如果验证失败,则说明bob篡改了消息m,charlie放弃此次通信;否则,执行下一步。
步骤七:charlie在alice的辅助下对m′进行签名验证,判断出签名是否有效。
进一步地,charlie在alice的辅助下对m′进行签名验证的方法为:charlie将包含诱骗信息的消息m′发送给alice,得到alice返回的m′的签名sign(m′)′,如果sign(m′)′=sign(m′),则说明签名有效;否则,签名无效。
本发明所取得有益技术效果:
本发明消息发送者利用量子叠加态、哈希函数和诱骗光子对消息进行盲化处理,签名者无法直接得知消息内容;且其窃听行为会被消息发送者通过测量诱骗光子的方式发现,保证了消息的盲性和签名的不可追踪性;
本发明无需使用qkd和按位操作,且最终公布的消息和签名都是以经典信息存在,可以多次验证,效率有所提升;
本发明最终公布的消息和签名都是以经典信息存在,方便多次验证消息和签名。
说明书附图
图1是本发明具体实施例提供的一种防签名者窃听的量子盲签名协议流程图。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
实施例:一种防签名者窃听的量子盲签名协议,具体步骤如下:
步骤一:bob将原消息m编码为一个叠加态|ψ>;在具体实施例中,bob将原消息m编码为一个叠加态|ψ>的表达式如下:
m为原消息的比特串,
步骤二:bob通过函数hash(g)计算得到l比特的哈希值hash(m)。随后,bob从{|0>,|1>,|+>,|->}中随机选择t个诱骗量子比特,并依据hash(m)确定位置信息,向|ψ>中插入诱骗量子比特,得到新的量子态。
在具体实施例中,诱骗量子比特的插入位置可以根据预先设定方式改变,如可以采用随机插入或顺序插入的方式等。在本实施例中,将生成的l(l是指哈希值hash(m)的比特长度)比特哈希值等分成t个比特块,每一比特块在十进制下的值则为诱骗量子比特的插入位置。插入诱骗量子比特后,原消息量子比特的相对顺序不变。当然,有可能存在某一比特块的值超过当前消息(包括已插入的诱骗量子)的长度。解决方法是将该值除以当前消息的长度,取余数作为插入诱骗量子比特的实际位置值。|di>表示插入的第i个诱骗量子比特,下标pi表示插入的第i个诱骗量子比特的位置。
在本实施例中,新的量子态|ψ′>的表达式为:
其中
步骤三:bob将|ψ′>发送给alice。
步骤四:在签名操作时,alice将|ψ′>中的每一个基态都进行签名,得到
步骤五:alice将|ψ″>返回给bob。
步骤六:bob对|ψ″>中的诱骗量子比特进行测量,如测量结果与初始态相同,则说明alice是诚实的;否则,alice不诚实,bob拒绝此次签名。所述初始态为原先从{|0>,|1>,|+>,|->}选择的状态。
在步骤六中,如果alice是不诚实的,即alice私自对|ψ′>进行测量,那么alice就会改变诱骗量子比特的状态,bob根据插入诱骗量子比特的位置和正确的测量基测量诱骗量子比特,得到的结果与已知的诱骗量子比特状态不一致。假设在执行步骤二时,插入诱骗量子比特的状态为|0>(或|1>),那么bob就用测量基{|0>,|1>}对该诱骗量子比特测量,如果测量结果为0(或为1),则说明alice是诚实的,没有进行窃听,否则,alice不诚实,bob拒绝此次签名。同理,假设在执行步骤二时,插入诱骗量子比特的状态为|+>(或|->),那么bob就用测量基{|+>,|->}对该诱骗量子比特测量。
在以上实施例的基础上,进一步为了解决现有技术通常利用量子秘钥分发(qkd)或按位操作等形式对消息进行签名或验证,最后得到的签名大多以量子态形式存在,只能验证一次,效率上有所缺失的技术问题,在具体实施例中,一种防签名者窃听的量子盲签名协议包括:
假设原消息m持有者是bob,bob想要签名者alice为原消息m签名。bob公布原消息m和签名sign(m)后,将由第三方消息接收者charlie验证消息和签名的有效性。
实施例2:在以上实施例的基础上在步骤二中,hash(g)是由bob与charlie事先约定好长度为l的哈希函数,还包括以下步骤:
步骤七:bob利用{|0>,|1>}基测量对所有收到的量子比特进行z基测量,得到包含诱骗信息的消息m′和对应的签名sign(m′),发布(m′,sign(m′),positionsofminm′,±)。
步骤八:charlie对bob公布的(m′,sign(m′),positionsofminm′,±)进行验证,如果验证失败,则说明bob篡改了消息m,charlie放弃此次通信;否则,执行下一步。
步骤九:charlie在alice的辅助下对m′进行签名验证。
在步骤七中,消息m′表示|ψ′>测量后的经典状态,sign(m′)表示|sign(ψ′)>测量后的经典状态。positionsofminm′表示消息m在m′中的位置。+表示在m′中的消息m不用按位取反,-表示要按位取反。
在步骤八中,charlie根据消息m在m′中的位置(positionsofminm′)和“±”,得到消息m″,然后计算hash(m″),推出消息m″在m′中的位置,接着与positionsofminm′进行比对,如果相同,则说明bob没有篡改消息;否则,bob篡改了消息。
在步骤九中,charlie将消息m′发送给alice,得到m′的签名sign(m′)′,如果sign(m′)′=sign(m′),则说明签名有效;否则,签名无效。在具体实施例中,在步骤二中,诱骗量子比特的插入位置可以根据预先设定方式改变,只要满足步骤八中charlie能否根据插入位置对bob是否篡改信息m进行验证。
本发明的优点和效果是保证了消息的盲性和签名的不可追踪性,且可以检测出签名者的窃听行为,同时,最终公布的消息和签名都是以经典信息存在,方便多次验证消息和签名。
实施例3:如图1所示,假设消息m=101,消息发送者bob需要签名者alice对m进行签名。
(1)bob对消息m=101进行盲化,制备叠加态
(2)bob准备插入两个诱骗量子比特,假设通过哈希函数算得hash(101)=1011,则表示第2(10)个位置和第3(11)个位置插入诱骗量子比特。bob随机从{|0>,|1>,|+>,|->}选择诱骗量子比特的状态,假设在第2个位置插入|0>,在第3个位置插入|+>,得到
(3)bob发送|ψ′>给alice。
(4)alice对|ψ′>进行签名,得到
(5)alice将|ψ″>发送回bob。
(6)bob对|ψ″>中诱骗量子比特进行测量,如果测得诱骗位量子比特的状态与原状态相同,则说明alice诚实;否则说明alice不诚实,bob拒绝此次签名。
(7)bob对所有收到的量子比特进行z基测量,假设得到包含诱骗信息的消息为m′=10001和对应的签名sign(10001),公布信息(10001,sign(10001),(1st,4th,5th),+)。
(8)charlie根据+和(1st,4th,5th),则可以恢复出消息m″=101,然后计算hash(m″),得到hash(m″)=1011,这表明诱骗光子位置应该是第2(10)位置和第3(11)位置,即与bob公布的消息m的位置(1st,4th,5th)相同,说明bob没有篡改消息m。
(9)charlie将消息m′发送给alice,得到m′的签名sign(m′)′。sign(m′)′=sign(m′),说明签名有效。
本发明的优点和效果是保证了消息的盲性和签名的不可追踪性,且可以检测出签名者的窃听行为,同时,最终公布的消息和签名都是以经典信息存在,方便多次验证消息和签名。
仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。