二维码生成及验证方法与流程

文档序号:15559670发布日期:2018-09-29 01:57阅读:6909来源:国知局

本发明属于信息验证领域,特别是涉及一种二维码生成及验证方法。



背景技术:

现在我国经济活动高度发达,商品琳琅满目,然而假冒伪劣产品也让消费者防不胜防,让正常的商家不堪其扰。虽然现在生产生活的各个邻域都广泛应用防伪技术,然而这些防伪技术依然存在着各种各样的问题,成本高、操作麻烦、效果差是主要问题。在一些商品中,商家虽然使用一些高科技的防伪技术,然而一些不法分子在利益的驱动下也随时跟进,不但更新造假技术,普通消费者鉴别真伪的能力有限,政府也难以对伪造商品进行全时段精准打击,使得假冒伪劣产品充斥着我们的生活。这些假冒伪劣产品侵犯消费者的合法权益,扰乱正常的市场次序,严重影响了行业的健康发展。

当前流行的防伪技术存在着较大的缺陷。当前的防伪技术主要有两种,一种使用物理防伪,比如激光全息技术、水印、特殊纸墨、隐形磁码技术、荧光印刷、纸纹防伪技术、光学变色技术等,然而这些技术有一个缺陷是成本比较高。还有一种是数字技术防伪,比较常见的就是使用二维码技术,商家将商品的唯一标识符编码成二维码之后印在商品包装上,用户通过扫描二维码然后通过网络向商家的服务器查询该商品是否伪造,这种方式的缺陷不能抗中间人攻击。还有一种二维码防伪技术是商家将商品的唯一标识符通过自己的私钥加密之后再编码成二维码并印在商品包装上,用户扫描二维码之后用商家的公钥解密,并通过与商家给的黑名单比对来验证该商品是否伪造。这种方法的缺陷是黑名单更新实时性比较差,可以让一些伪造商品蒙混过关。



技术实现要素:

有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是提供一种加密性更好的二维码生成方法。

为实现上述目的,本发明提供了一种二维码生成方法,按以下步骤进行:

步骤一、服务器产生一个随机数t作为唯一标识符,并将所述随机数t保存至数据库;t∈[0,p-1];

步骤二、对所述随机数t用服务器公钥进行加密得到加密信息m1;

步骤三、对所述随机数t进行散列处理得到数列m2;

步骤四、将m1与m2进行连接得到数列a;

步骤五、将a编码成二维码。

较佳的,步骤二所述服务器公钥按以下步骤获取:

随机产生一个素数p;随机产生一个整数x∈[2,p-1];产生一个随机整数s∈[2,p-1];计算得到a=ts(x)(modp);s为私钥,所述服务器公钥为(x,p,a);p为长度大于50位的十进制数;

t0(x)=1(modp),t1(x)=x(modp);ts(x)=(2xts(x)-ts-2(x))(modp)。

较佳的,所述对所述随机数t用服务器公钥进行加密按以下步骤进行:

产生一个随机整数w∈[2,p-1];计算m11=tw(x)(modp)和m12=(t*tw(a))(modp),加密信息m1=(m11,m12)。

本发明要解决的另一技术问题是:提供一种避免中间人攻击和重放攻击的二维码验证方法。

为此本发明提供了一种二维码验证方法,按以下步骤进行:

步骤s1.扫描二维码得到扫描结果a;

步骤s2.对a进行解析得到m1和m2;

步骤s3.产生一个随机数r;r∈[2,p-1];将m1和r进行连接,得到m1||r,使用服务器公钥对m1||r进行加密得到加密后的信息c;

c=epk(m1||r)=(c1,c2);

步骤s4.向服务器提交c;

步骤s5.服务器接收到c并用私钥s对c进行解密得到m1||r,并解析得到m1和r;再对m1用私钥s解密得到t;s为随机整数且s∈[2,p-1];

步骤s6.服务器向数据库查询t是否合格;

如果t合格,使得re=t;如果t不合格,使用re表示t不合格的信息;

所述t合格的标准为:在服务器数据库中存在且未被扫描过;

步骤s7.服务器使用r作为秘钥对re进行aes加密,并返回加密后得到的结果;

步骤s8.用户终端接收到返回的加密结果,并使用秘钥r进行aes解密得到解密值。

进一步的,为了提高方案的安全性,所述步s8后还包括以下步骤:

通过判断解密值的hash值是否等于a的后半部分m2来确定二维码是否合格;如果相等,则二维码为真;如果不相等,则二维码为伪。

较佳的,所述用私钥s对c进行解密按以下步骤进行:

通过私钥s计算q=ts(c1)(modp),计算得到解密信息m1||r;

所述对m1用私钥s解密按以下步骤进行:

通过计算z=ts(m11)(modp),计算得到解密信息t。

本发明的有益效果是:本发明相对于激光全息技术、水印等物理防伪技术,成本非常低。相对于直接将不加密的随机数作为商品的唯一标识符编码成二维码,然后用户通过扫描该二维码并向服务器查询该二维码真伪的这种方案,本发明的有益效果是可以抵抗中间人攻击。

相对于使用自己的私钥加密随机数生成的唯一标识符并编码成二维码,然后将自己的公钥与黑名单内置于扫描app,用户通过扫描该二维码并解密得到唯一标识符通过与黑名单中的商品唯一标识符列表一一比对来验证二维码真伪的这种方式。本发明的好处是可以实时性的抵抗重放攻击。原来的这种方案黑名单更新实时性差,会让一些假冒商品蒙混过关。

本发明提出的二维码验证的方法解决了二维码验证过程中容易遭受中间人攻击和重放攻击的问题,中间人攻击是用户向服务器查询商品二维码真伪的信息被中间人截获,然后中间人给用户发一个自己伪造或篡改的信息,重放攻击是复制二维码然后重复验证。本发明可以达到不能欺骗用户的目的。本发明具有较高的安全性,可以抵抗重放攻击和中间人攻击。在该方案的基础上可以有很多有用的扩展应用:需要验证的二维码可以是证件、证书、票据上的二维码也可以是支付二维码还可以是用来做商品溯源的二维码。以上列举的这些应用在交互式商品二维码验证方法的基础上将能提供更加有效的功能和更友好的体验。

具体实施方式

下面结合实施例对本发明作进一步说明:

实施例1:一种二维码生成方法,其特征是按以下步骤进行:

步骤一、服务器产生一个随机数t作为唯一标识符,并将所述随机数t保存至数据库;t∈[2,p-1];

步骤二、对所述随机数t用服务器公钥进行加密得到加密信息m1;m1=epk(t);

步骤三、对所述随机数t进行散列处理得到数列m2;m2=hash(t);

步骤四、将m1与m2进行连接得到数列a;a=m1||m2;

步骤五、将a编码成二维码。

本实施例中,步骤二所述服务器公钥按以下步骤获取:

随机产生一个素数p;随机产生一个整数x∈[2,p-1];产生一个随机整数s∈[2,p-1];计算得到a=ts(x)(modp);s为私钥,所述服务器公钥为(x,p,a);p为长度大于50位的十进制数;

t0(x)=1(modp),t1(x)=x(modp);ts(x)=(2xts(x)-ts-2(x))(modp)。

本实施例中,所述对所述随机数t用服务器公钥进行加密按以下步骤进行:

产生一个随机整数w∈[2,p-1];计算m11=tw(x)(modp)和m12=(t*tw(a))(modp),加密信息m1=epk(t)=(m11,m12)。

实施例2:一种二维码验证方法,按以下步骤进行:

步骤s1.扫描二维码得到扫描结果a;本实施例中的二维码为实施例1所生成的二维码。

步骤s2.对a进行解析得到前半部分数列m1和后半部分数列m2;由于hash值长度确定,因此m2的长度是确定的,先从右边确定m2部分即可区分m1和m2。

步骤s3.产生一个随机数r;r∈[2,p-1];将m1和r进行连接,得到m1||r,使用服务器公钥对m1||r进行加密得到加密后的信息c;c=epk(m1||r)=(c1,c2)。

步骤s4.向服务器提交c。

步骤s5.服务器接收到c并用私钥s对c进行解密得到m1||r,并解析得到m1和r;再对m1用私钥s解密得到商品唯一标识符t;s为随机整数且s∈[2,p-1];r的长度确定,先取解密后的串的右边和r一样长度的数串,则左边为m1。

步骤s6.服务器向数据库查询t是否合格;

如果t合格,使得re=t;如果t不合格,使用re表示t不合格的信息;例如当t不合格时,可以将re表示为“不存在”或者“已被扫描”。

所述t合格的标准为:在服务器数据库中存在且未被扫描过;

步骤s7.服务器使用r作为秘钥对re进行aes加密,并返回加密后得到的结果;

步骤s8.用户终端接收到返回的加密结果,并使用秘钥r进行aes解密得到解密值。

本实施例中,所述步s8后还包括以下步骤:

通过判断解密值的hash值是否等于a的后半部分m2来确定二维码是否合格;如果相等,则二维码为真;如果不相等,则二维码为伪。

本实施例中,所述用私钥s对c进行解密按以下步骤进行:

通过私钥s计算q=ts(c1)(modp),计算得到解密信息m1||r;

所述对m1用私钥s解密按以下步骤进行:

通过计算z=ts(m11)(modp),计算得到解密信息t。

本发明提出的商品二维码验证方法其主要思想是商家使用自己的公钥将商品的唯一标识符加密和商品的唯一标识符hash函数值连接之后编码成为二维码然后将该二维码印在商品的包装上。商家开发自己的app,将自己的公钥内置在自己的app中。消费者购买商品,通过商家开发的app扫描商品上的二维码,得到加密过的商品唯一标识符和商品的唯一标识符hash函数值,然后向商家服务器提交数据,数据的内容是用商家公钥加密的加密过的商品唯一标识符和一个随机数的连接值。该随机数是对称密码aes的秘钥,商家服务器接收到数据之后,通过自己的私钥解密可以得到商品唯一标识符和对称密码的秘钥,商家服务器向数据库查询该商品唯一标识符是否合格,并将查询结果使用该对称秘钥加密发送给消费者app。消费者app收到结果之后通过商品唯一标识符与其hash函数值是否一致验证是否被欺骗的同时验证商品是否合格。

以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。

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