一种基于cbs签名机制的二维码认证系统及方法

文档序号:7815748阅读:723来源:国知局
一种基于cbs签名机制的二维码认证系统及方法
【专利摘要】本发明提供一种基于CBS签名机制的二维码认证系统及方法,该系统包括信任中心、多个二维码生成端、多个二维码验证端和安全的物理存储介质USBKey;方法包括:信任中心生成公私钥和公共参数并进行新商户身份注册;商户访问可信二维码生成端时,若未持有签名密钥则执行签名密钥生成操作并存储签名密钥,若已经持有签名密钥则对商户是否真正持有签名密钥进行判断;生成二维码;扫描二维码并验证。本发明是应用在移动互联网领域中的二维码中,将先进的CBS签名机制运用于二维码上,从而达到验证二维码合法性的目的,本发明有效保证了二维码内数据的完整性和不可抵赖性,能够抵御恶意篡改攻击和证书截取攻击等攻击手段。
【专利说明】一种基于CBS签名机制的二维码认证系统及方法

【技术领域】
[0001] 本发明属于网络安全【技术领域】,特别涉及一种基于CBS签名机制的二维码认证系 统及方法。

【背景技术】
[0002] 二维码是将手机需要访问、使用的信息编码到二维码中,利用手机的摄像头识读。 手机二维码可以印刷在报纸、杂志、名片等多种载体上,用户通过扫描二维码或者输入二维 码下面的号码、关键字即可实现快速浏览网页、下载图文、音乐、视频、获取优惠券、了解商 品优惠信息,而省去了在手机上输入URL的过程,实现一键上网。随着二维码技术的不断普 及和发展,二维码的安全性问题也越发受到人们的关注,二维码本身不会含有病毒、木马和 恶意软件,而是其中含有的信息指向了未知安全性的软件或链接。二维码认证技术是解决 二维码安全问题的有效技术手段,将公钥体制或签名体制与二维码编码技术相结合,使二 维码所载信息在虚拟网络空间或其他物理空间传输时不易被篡改,提高二维码的安全性。
[0003] 近年来,学者们针对二维码认证问题展开了一系列的研究,旨在实现安全、高效的 二维码认证机制。文献"非对称加密二维码防伪系统的设计"提出了一种将RSA非对称加 密结合二维码的编码和手机解码原理的认证方法,该方法通过将公钥内置于APP中,只要 安装有该APP的手机即可对二维码进行验证,解决了二维码的伪造问题,但是该方法选用 的RSA加密机制运算速度较慢,为确保其安全性,算法选用的大数n至少是512位以上,大 数的运算导致了认证效率降低。文献"基于PKI的二维条码电子消费券及其系统设计"将 PKI技术用于二维码的生成和认证过程,该手段主要是将原始的消息利用基于PKI的公钥 技术进行签名和加密后产生二维条码,验证是对生成过程的逆操作,保障了数据的安全性 和消息的来源可靠。但是该手段需要大量的基础设施来维持运作,并且存在证书管理复杂 等问题。
[0004] 可见,上述的认证方案之中,解决二维码认证问题多采用的是传统密码学的一些 经典方案,这些方案虽然可以解决实体认证问题,但是在实际的应用过程中却存在着效率 低下、运营维护成本高的特点,不利于现实环境中的大范围推广。


【发明内容】

[0005] 针对现有技术存在的不足,本发明提供一种基于CBS签名机制的二维码认证系统 及方法。
[0006] 本发明的技术方案是:
[0007] -种基于CBS签名机制的二维码认证系统,包括信任中心、多个二维码生成端、多 个二维码验证端和安全的物理存储介质USBKey ;
[0008] 所述信任中心用于信任中心生成公私钥和公共参数并进行新商户身份注册,信任 中心对身份信息的合法的新商户进行添加;
[0009] 所述二维码生成端采用线程池支持多商户并行访问,商户访问可信二维码生成端 时,对未持有签名密钥的商户利用CBS签名算法生成签名密钥并存储至USBKey ;对真正持 有签名密钥的商户根据该商户输入的数据消息确定要编码字符类型、指定所需的错误检测 和纠错级别,并利用从USBKey读取的签名密钥对商户输入的数据消息进行签名产生签名 消息,进而生成二维码,该二维码的数据流包括数据消息、签名消息、商户公钥、商户身份 ID ;
[0010] 所述二维码验证端用于扫描二维码并对二维码进行验证:若二维码内含有签名消 息则将二维码的数据流进行Base64解码,从而得到的byte数组,根据该数组的前4个数值 确定二维码内数据消息的长度、签名消息的长度、商户公钥的长度、商户身份ID的长度,验 证定二维码的正确性;
[0011] 所述物理存储介质USBKey用于存储二维码生成端生成的签名密钥。
[0012] 采用所述的基于CBS签名机制的二维码认证系统的二维码认证方法,包括以下步 骤:
[0013] 步骤1 :信任中心生成公私钥和公共参数并进行新商户身份注册,信任中心对身 份信息的合法的新商户进行添加;
[0014] 信任中心首先选取两个阶为q的群Gp G2和一个双线性对eWGi - G2。之后 选择一个生成元P e Gi和一个随机密钥心e Z;,然后计算信任中心公钥PK。= SeP,另外选 择两个密钥hash函数H1: {0, 1}# -匕和//::彳〇,1!_、& ,生成信任中心公共参数为 (G1; G2, e, q, P, PKC, H2);
[0015] 身份信息包括自身的公钥PKA = sAP和身份ID, sA是商户的私钥;
[0016] 步骤2 :二维码生成端采用线程池支持多商户并行访问,商户访问可信二维码生 成端时,若该商户为未持有签名密钥的商户,则执行步骤3,若该商户为已经持有签名密钥 的商户,则执行步骤4;
[0017] 步骤3 :利用CBS签名算法执行签名密钥生成操作,商户生成签名密钥后向物理存 储介质USBKey中存储签名密钥,并执行步骤5 ;
[0018] 步骤3. 1 :向信任中心发起证书申请,商户发送自己的身份信息发送给信任中心, 信任中心对审核通过的商户颁发证书;
[0019] 步骤3.2 :商户在得到由信任中心颁发的证书后,利用该证书和商户自身的公 私钥对(sA,PKA)进行运算得到商户的签名密钥S A = scPA+sAPA = CertA+sAPA,其中,PA = 氏(PKC | | PKA | | IDA) G Gp IDA 为商户的身份 ID ;
[0020] 步骤4 :二维码生成端利用物理存储介质USBKey内存储消息对商户是否真正持有 签名密钥进行判断;
[0021] 步骤4. 1 :判断物理存储介质USBKey内是否为空,若是,则执行步骤3,重新生成签 名密钥;否则执行步骤4. 2;
[0022] 步骤4. 2 :判断物理存储介质USBKey中存储的消息的编码格式是否与签名密钥的 格式一致,若是,则执行步骤4. 3 ;否则执行步骤3 ;
[0023] 步骤4. 3 :物理存储介质USBKey中的消息长度若大于设定阈值,则判定商户真的 持有签名密钥,则执行步骤5,否则执行步骤3 ;
[0024]步骤5 :二维码生成端根据商户输入的数据消息确定要编码字符类型、指定所需 的错误检测和纠错级别;如果商户输入的数据消息没有指定的纠错级别,则自动选择与之 匹配的纠错级别;
[0025] 步骤6:利用从物理存储介质USBKey读取的商户的签名密钥对商户输入的数据消 息进行签名,产生签名消息signature,签名消息signature内包含U和V,其中U = rPA,r 为商户随机选取的数,V = (r+h)SA = (r+h) (sc+sA)PA,h = H2(m, U),m为数据消息;
[0026] 步骤7:生成二维码,该二维码的数据流包括数据消息m、签名消息signature、商 户公钥PKA、商户身份ID;
[0027] 步骤8:二维码验证端扫描二维码,将二维码转换成包含数据消息m、签名消息 signature、商户公钥PK A、商户身份ID的数据流;
[0028] 步骤9 :对二维码进行验证:判断二维码内是否含有签名消息,若含有签名消息, 则执行步骤10,否则,二维码验证失败,结束二维码认证;
[0029] 步骤10:将二维码的数据流进行Base64解码,从而得到的byte数组;
[0030] 步骤11:根据byte数组的前4个数值确定二维码内数据消息m的长度、签名消息 signature的长度、商户公钥PKA的长度、商户身份ID的长度,根据各长度值提取数据消息 m、签名消息signature、商户公钥PK A、商户身份ID;
[0031] 步骤 12 :检验 e (PKC,U+hPA) e (PKA,U+hPA) = e (P,V)是否成立,其中的 U 和 V 组成 签名消息,h包含数据消息m,PA包含身份信息,若成立,则验证成功,否则验证失败。
[0032] 有益效果:
[0033] 本发明是应用在移动互联网领域中的二维码中,将先进的CBS签名机制运用于二 维码上,从而达到验证二维码合法性的目的,本发明有效保证了二维码内数据的完整性和 不可抵赖性,能够抵御恶意篡改攻击和证书截取攻击等攻击手段。

【专利附图】

【附图说明】
[0034] 图1为本发明【具体实施方式】的基于CBS签名机制的二维码认证系统架构图;
[0035] 图2为本发明【具体实施方式】的实体之间通信过程的示意图;
[0036] 图3为本发明【具体实施方式】的证书申请过程时序图;
[0037] 图4为本发明【具体实施方式】的签名密钥生成过程时序图;
[0038] 图5为本发明【具体实施方式】的可信二维码生成过程时序图;
[0039] 图6为本发明【具体实施方式】的基于CBS签名机制的二维码认证方法流程图;
[0040] 图7为本发明【具体实施方式】的对商户是否真正持有签名密钥进行判断流程图。

【具体实施方式】
[0041] 下面结合附图对本发明的【具体实施方式】做详细说明。
[0042] 本实施方式是将基于CBS签名机制的二维码认证系统及方法应用到认证领域。具 体实施过程中采用基于身份的签名机制对有效消息进行签名后将其编码产生二维码,并且 签名密钥单独存储于USBKey中,只有在需要生成签名时才读取其中密钥,从而保障了系统 的安全和二维码的可信任度。
[0043]本实施方式的基于CBS签名机制的二维码认证系统,如图1所示,图中包括信任中 心CA、两个二维码生成端、两个二维码验证端和一个安全的物理存储介质USBKey,由图可 以看出商户可以使用二维码生成端产生可信二维码,用户可使用二维码验证端扫描验证二 维码。
[0044] 在图1中的数字标识出系统中几个重要的功能:
[0045] ①表示商户注册或向CA申请证书。
[0046] ②表示CA验证通过为商户颁发证书。
[0047] ③表示商户生成签名密钥后将其存入物理存储介质。
[0048] ④表示用户扫描商户发布的二维码。
[0049] 例如有一个新商户由于自身业务需要,想要使用系统来生成一个包含自身信息的 可信二维码图片时,首先其需要通过web网页向信任中心发起注册,信任中心在收到来自 商户的注册请求后,会判断商户身份的合法性,并对身份合法用户进行添加。商户登录可信 二维码生成端,商户登陆后系统会自动提示商户是否已持有签名密钥,商户根据自身状态 进行选择,假设商户未持有签名密钥,此时利用CBS签名算法生成签名密钥,该算法在生成 密钥过程中需要商户输入自身的身份信息(ID)和私钥(随机选取的大数),生成的密钥会 存储在USBKey中,商户只要保存好密钥即可,在要生成可信二维码图片时,只需要输入数 据消息m并将USBkey插入生成端电脑即可生成二维码图片。
[0050] 在用户使用安装有验证端软件的智能手机时,有验证端扫描二维码图片即可自动 判断二维码的真实性,验证通过会显示数据消息m,否则提示验证失败。
[0051] 为方便后续描述,给出如表1和表2所示的标识及说明。
[0052] 表1标识及说明

【权利要求】
1. 一种基于CBS签名机制的二维码认证系统,其特征在于:包括信任中心、多个二维码 生成端、多个二维码验证端和安全的物理存储介质USBKey; 所述信任中心用于信任中心生成公私钥和公共参数并进行新商户身份注册,信任中心 对身份信息的合法的新商户进行添加; 所述二维码生成端采用线程池支持多商户并行访问,商户访问可信二维码生成端时, 对未持有签名密钥的商户利用CBS签名算法生成签名密钥并存储至USBKey;对真正持有签 名密钥的商户根据该商户输入的数据消息确定要编码字符类型、指定所需的错误检测和纠 错级别,并利用从USBKey读取的签名密钥对商户输入的数据消息进行签名产生签名消息, 进而生成二维码,该二维码的数据流包括数据消息、签名消息、商户公钥、商户身份ID; 所述二维码验证端用于扫描二维码并对二维码进行验证:若二维码内含有签名消息则 将二维码的数据流进行Base64解码,从而得到的byte数组,根据该数组的前4个数值确定 二维码内数据消息的长度、签名消息的长度、商户公钥的长度、商户身份ID的长度,验证定 二维码的正确性; 所述物理存储介质USBKey用于存储二维码生成端生成的签名密钥。
2. 采用权利要求1所述的基于CBS签名机制的二维码认证系统的二维码认证方法,其 特征在于:包括以下步骤: 步骤1 :信任中心生成公私钥和公共参数并进行新商户身份注册,信任中心对身份信 息的合法的新商户进行添加; 信任中心首先选取两个阶为q的群G1A2和一个双线性对^G1XG1 -G2 ;之后选择 一个生成元PeG1和一个随机密钥心然后计算信任中心公钥pk。=SeP,另外选 择两个密钥hash函数H1: {0,1Γ- G1和I2,生成信任中心公共参数为 (G1,G2,e,q,P,PKc,H1,H2); 身份信息包括自身的公钥PKa =sAP和身份ID,sA是商户的私钥; 步骤2 :二维码生成端采用线程池支持多商户并行访问,商户访问可信二维码生成端 时,若该商户为未持有签名密钥的商户,则执行步骤3,若该商户为已经持有签名密钥的商 户,则执行步骤4; 步骤3 :利用CBS签名算法执行签名密钥生成操作,商户生成签名密钥后向物理存储介 质USBKey中存储签名密钥,并执行步骤5 ; 步骤3. 1 :向信任中心发起证书申请,商户发送自己的身份信息发送给信任中心,信任 中心对审核通过的商户颁发证书; 步骤3. 2:商户在得到由信任中心颁发的证书后,利用该证书和商户自身的公私 钥对(sA,PKa)进行运算得到商户的签名密钥Sa =scPA+sAPA =CertA+sAPA,其中,Pa = H1 (PKcIIPKaIIIDa)eG1,IDa 为商户的身份ID; 步骤4 :二维码生成端利用物理存储介质USBKey内存储消息对商户是否真正持有签名 密钥进行判断; 步骤4. 1 :判断物理存储介质USBKey内是否为空,若是,则执行步骤3,重新生成签名密 钥;否则执行步骤4. 2 ; 步骤4. 2 :判断物理存储介质USBKey中存储的消息的编码格式是否与签名密钥的格式 一致,若是,则执行步骤4. 3 ;否则执行步骤3 ; 步骤4. 3 :物理存储介质USBKey中的消息长度若大于设定阈值,则判定商户真的持有 签名密钥,则执行步骤5,否则执行步骤3 ; 步骤5 :二维码生成端根据商户输入的数据消息确定要编码字符类型、指定所需的错 误检测和纠错级别;如果商户输入的数据消息没有指定的纠错级别,则自动选择与之匹配 的纠错级别; 步骤6 :利用从物理存储介质USBKey读取的商户的签名密钥对商户输入的数据消息进 行签名,产生签名消息signature,签名消息signature内包含U和V,其中U=rPA,r为商 户随机选取的数,V= (r+h)SA = (r+h) (sc+sA)PA,h=H2(m,U),m为数据消息; 步骤7 :生成二维码,该二维码的数据流包括数据消息m、签名消息signature、商户公 钥PKa、商户身份ID; 步骤8 :二维码验证端扫描二维码,将二维码转换成包含数据消息m、签名消息signature、商户公钥PKa、商户身份ID的数据流; 步骤9 :对二维码进行验证:判断二维码内是否含有签名消息,若含有签名消息,则执 行步骤10,否则,二维码验证失败,结束二维码认证; 步骤10 :将二维码的数据流进行Base64解码,从而得到的byte数组; 步骤11 :根据byte数组的前4个数值确定二维码内数据消息m的长度、签名消息signature的长度、商户公钥PKa的长度、商户身份ID的长度,根据各长度值提取数据消息 m、签名消息signature、商户公钥PKa、商户身份ID; 步骤12 :检验e(PKC,U+hPA)e(PKA,U+hPA) =e(P,V)是否成立,其中的U和V组成签名 消息,h包含数据消息m,Pa包含身份信息,若成立,则验证成功,否则验证失败。
【文档编号】H04L9/32GK104320253SQ201410509798
【公开日】2015年1月28日 申请日期:2014年9月28日 优先权日:2014年9月28日
【发明者】高天寒, 王权琦, 秦诗月 申请人:东北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1