票据防伪码生成及验证的系统及方法

文档序号:7593705阅读:283来源:国知局
专利名称:票据防伪码生成及验证的系统及方法
技术领域
本发明属于信息安全领域,具体而言,涉及一种票据防伪码生成及验证的系统,以及一种票据防伪码生成及验证的方法。
背景技术
为防止偷税漏税行为,以及防止利用假票据报帐骗取现金的行为,必须采取有效手段防止大批量假冒票据的泛滥。在票据票面上印上防伪码,让普通百姓也能方便、快捷地验证其真伪,是行之有效的方法之一。现在税务部门常用的方法是采用防伪税控系统,采用专用防伪税控设备打印票据,要求每个开票据的企业必须购买一套专用的税控设备,成本高、企业的负担加重,因此,这种方法往往只适合于开具大面额票据(如十万元版、百万元版票据)时使用。用于票据的其他防伪技术还包括在票面上印上专用底纹、采用专用纸、印上票据监制章等与印刷技术相关的高科技。
商品防伪码是与票据防伪码类似的技术。大多数的商品防伪码生成及验证技术都需要大型数据库的支持。有一类技术是把生成的防伪码存于数据库中,验证时与数据库中的相应记录进行对比;另一类是把部分认证信息存于数据库,验证时重新计算防伪码。这两类技术都难以防止数据库记录被非法篡改而影响验证的结果,降低了安全性,还增加了购买数据库管理系统的成本,也增加了数据库管理、运行的成本。
本发明基于一种门限密码学(Threshold Cryptographics)方案,其中用到了Shamir秘密共享方案,由Adi Shamir在1979年第11期的《Communicationof the ACM》杂志发表的名为“How to share a secret”的文章中提出了这一方案,该方案的大致原理如下设d为密钥,t、n为正整数且t≤n,算法的目标是把d分为n份子密钥,每一份分配给一名参与者,当任意t名或t名以上参与者合作时可把d恢复,而任何t-1名或少于t-1名参与者均不能通过他们持有的子密钥恢复d。产生子密钥的方法为随机选取t-1个系数a1,a2,...,at-1,这t-1个系数必须保密。构造多项式f(x)=d+Σi=1t-1aixi.]]>任选x1,x2,...,xn,并计算di=f(xi),(1≤i≤n)。则d1,d2,...,dn为n份子密钥。
分配子密钥的方法为把(xi,di)分配给第i名参与者(1≤i≤n)。
密钥恢复方法为任意t名参与者合作,出示他们持有的(xi,di),即可恢复密钥。不妨设前t名参与者合作,可得(x1,d1),(x2,d2),...,(xt,dt)。则可通过下式计算恢复dd=Σi=1tf(xi)Πj=1,j≠it-xjxi-xj]]>发明内容本发明的目的在于提供一种安全可靠的可有效地防止大批量假冒票据泛滥的票据防伪码生成及验证的系统。
本发明的另一目的在于提供一种票据防伪码生成及验证的方法。
本发明采用的技术方案如下一种票据防伪码生成及验证系统,由服务端和客户端组成,客户端通过通信协议把生成或验证票据防伪码的信息传送到服务端,服务端生成或验证票据防伪码,并把结果信息通过通信协议传送给客户端,服务端由安全核、防伪码生成/验证服务器及WEB服务器构成,防伪码生成/验证服务器分别与安全核和WEB服务器电连接,安全核由防伪码计算模块、密钥激活模块、存储模块及接口模块组成。
上述技术方案中,所述的安全核的存储模块与防伪码计算模块和密钥激活模块电连接、所述密钥激活模块与存储模块和接口模块电连接。所述安全核的防伪码计算模块与所述防伪码生成/验证服务器电连接。
本发明的防伪码生成/验证服务器中设有票据生成服务进程#1和票据验证服务进程#2,所述票据生成服务进程#1和票据验证服务进程#2与安全核的防伪码计算模块电连接。
本发明的票据防伪码生成及验证系统的工作原理为票据发行机构操作员通过客户端的客户端调用接口#1输入本批票据的起止号码,并把批量生成防伪码的指令通过SSL协议发送到防伪码生成/验证服务器中的票据生成服务进程#1,由票据生成服务进程#1根据本批票据起止号码连续产生本批的每个票据号码,并把每个票据号码发送到安全核中的防伪码计算模块,由防伪码计算模块结合密钥计算出该票据号码对应的防伪码,然后把防伪码返回给票据生成服务进程#1。这一过程连续地进行,直至整批票据号码及对应的防伪码产生完毕,这时票据生成服务进程#1还需把计算的结果返回给客户端调用接口#1。
票据验证可由持有票据的个人或行政机构如基层税所等在客户端操作,基层税所操作员通过客户端调用接口#2输入票据票面上的票据号码及防伪码,由客户端调用接口#2把防伪码验证请求通过SSL协议传送到防伪码生成/验证服务器的票据验证服务进程#2;普通的票据用户如消费者、财务人员等通过WEB浏览器输入票据票面上的票据号码及防伪码,由WEB浏览器通过HTTPS协议,即HTTP+SSL协议把验证请求发送到票据发行机构的WEB服务器,由WEB服务器把该请求再传送到票据验证服务进程#2,票据验证服务进程#2收到防伪码验证请求后,把验证请求中的防伪码记为C1,接着把验证请求中的票据号码发送到安全核中的防伪码计算模块,计算得到相应的防伪码,记为C2。此时,服务进程#2比较C1和C2的值是否相等,若相等,则得“真”的结论,否则,得到“假”的结论,最后,票据验证服务进程#2把防伪码验证结果返回给客户端调用接口#2或WEB服务器,这样,基层税所操作员或票据用户就可以得到验证的结果。
安全核的防伪码计算模块设置有B36编码器,对于20字节的输入信息,顺序分为10组,每组2字节,即16比特,把每组的16比特当作是一个无符号整数,则共可得到10个无符号整数,记作z1,z2,...,z10。对于每zi,计算yi≡zi(mod 36)。根据所得之yi查下表,则可得到相应的输出字符

本发明的票据防伪码生成及验证系统的票据防伪码生成方法,由子密钥分配过程、密钥激活过程和票据防伪码生成过程组成,所述子密钥分配过程为对于密钥d,随机选取t-1个系数a1,a2,...,at-1,构造多项式f(x)=d+Σi=1t-1aixi,]]>对于整数i=1,2,...,n,计算si=f(i),则s1,s2,...,sn为n份子密钥,把n份子密钥分配给n位管理员,对于每个子密钥st,用第i个管理员的RSA公钥Kei进行加密,即计算EKei(si),并把加密结果保存于安全核的存储模块中;所述密钥激活过程为选取一不大于n的整数t,t对应所选取的子密钥管理员的数量,对于i=1,2,...,t,把EKei(si)用第i个管理员的RSA私钥Kdi进行解密,即计算si=Dkdi[EKei(si)],]]>得到子密钥s1,s2,...,st,通过d=Σi=1tsiΠj=1,j≠it-ji-j]]>计算出密钥d;所述票据防伪码生成过程为输入密钥d和票据号码,然后经消息鉴别码算法HMAC算法计算,得到固定长度的中间结果,再把中间结果输入到B36编码器,得到由数字及大写字母组成的防伪码。
本发明的票据防伪码生成及验证系统的票据防伪码验证方法,由子密钥分配过程、密钥激活过程和票据防伪码验证过程组成,所述子密钥分配过程为对于密钥d,随机选取t-1个系数a1,a2,...,at-1,构造多项式f(x)=d+Σi=1t-1aixi,]]>对于整数i=1,2,...,n,计算si=f(i),则s1,s2,...,sn为n份子密钥,把n份子密钥分配给n位管理员,对于每个子密钥si,用第i个管理员的RSA公钥Kei进行加密,即计算EKei(si),并把加密结果保存于安全核的存储模块中;所述密钥激活过程为选取一不大于n的整数t,t对应子密钥管理员,对于i=1,2,...,t,把EKei(si)用第i个管理员的RSA私钥Kdi进行解密,即计算si=Dkdi[EKei(si)],]]>得到子密钥s1,s2,...,st,通过d=Σi=1tsiΠj=1,j≠it-ji-j]]>计算出密钥d;所述票据防伪码验证过程为输入密钥d和由票据号码和票据防伪码C1组成的票据信息,然后把票据信息上的票据号码经消息鉴别码算法HMAC算法计算,得到固定长度的中间结果,再把中间结果输入到B36编码器,得到由数字及大写字母组成的防伪码C2,通过C1和C2的是否相同获得验证结果。
本发明的优点在于1、消费者或财务人员可以自行访问票据发行机构的WEB服务器,输入票面上的号码和防伪码得到验证结果,也可持票到基层税所,由税所操作员通过客户端调用接口访问防伪码生成/验证服务器得到票据真伪之验证结果,故而本发明适用于政府、金融、保险、企事业等领域的票据如金融票据、有价证券、彩票等及各类证件的防伪,应用范围非常广阔。
2、WEB服务器与客户端之间采用SSL安全协议进行通信,以确保验证结果不被篡改,安全可靠。
3、本发明的服务端设定n名管理,每名管理员配备一把电子密匙,只有当不多于n的t名或t名以上管理员的子密钥同时配合才能激活用于生成及验证防伪码的密钥,防伪码计算模块以及激活后的密钥存放在单独的安全核内,在安全核内生成及验证防伪码,具有很强的防黑客篡改的能力,安全性高。
4、本发明的通过子密钥分配过程和密钥激活过程的相互配合,使得即使个别管理员不在场也不会影响密钥激活的工作;即使有个别电子密钥出故障,也不会影响正常的密钥激活工作;即使有个别电子密钥丢失,也不会影响防伪码密钥的安全性,所以安全性高。
5、本发明验证防伪码时通过防伪码计算模块重新计算票据号码的防伪码,并与票面上的防伪码对照验证,所以其运行不需要大型数据库的支持,配置简单,运行效率高,还可以防止因数据库被非法篡改而影响验证的准确性,进一步提高了防伪码生成及验证系统的安全性。
具体实施例方式
下面结合附图对本发明做进一步的说明。
本发明的一种票据防伪码生成及验证系统,如附

图1所示,由发票发行机构和客户端组成,客户端通过通信协议把生成或验证发票防伪码的信息传送到发票发行机构,发票发行机构生成或验证发票防伪码,并把结果信息通过通信协议传送给客户端,所述的发票发行机构由安全核、防伪码生成/验证服务器及WEB服务器构成,防伪码生成/验证服务器分别与安全核和WEB服务器电连接,所述的安全核由防伪码计算模块、密钥激活模块、RAM、FlashROM及USB接口组成。
防伪码生成/验证服务器中设有服务进程#1提供防伪码批量生成服务,并设有服务进程#2提供防伪码验证服务。在实际提供防伪码生成和验证服务时,服务进程#1把有关数据发送到安全核的防伪码计算模块,由防伪码计算模块结合安全核中被激活的密钥进行运算,计算出防伪码;类似地,服务器进程#2也需要与安全核进行交互才能验证防伪码的真伪。
发票发行机构的操作员通过客户端调用接口#1可批量地生成防伪码,客户端调用接口#1与防伪码生成/验证服务器中的服务进程#1之间以SSL安全协议进行通信。
消费者或财务人员通过访问发票发行机构的WEB服务器验证发票的真伪。WEB服务器和浏览器之间采用SSL安全协议进行通信,以确保验证结果不被篡改。
基层税所的操作员通过客户端调用接口#2可验证防伪码,客户端调用接口#2与防伪码生成/验证服务器中的服务进程#2之间以SSL安全协议进行通信。
防伪码计算模块产生防伪码的流程如附图2所示,防伪码计算模块需要两个输入参数,第一个参数为密钥,长度为512比特,第二个参数为发票号码,长度为20至26位数字,可根据实际需要选取。发票号码通常由批号及顺序号组成,具有抽奖用途的发票可把中奖金额作为发票号码的一部分,由4位或6位数字组成。这两个参数首先输入到HMAC算法,得到20字节的中间结果,再输入到B36编码器,得到长度为10字节、由数字及大写字母组成的防伪码输出,该输出即为防伪码计算模块的输出结果。
B36编码器把20字节的输入信息,顺序分为10组,每组2字节,即16比特,把每组的16比特当作是一个无符号整数,则共可得到10个无符号整数,记作z1,z2,...,z10。对于每zi,计算yi≡zi(mod 36)。根据所得之yi查下表,则可得到相应的输出字符

发票发行机构选定参数t和n,n为密钥管理员的数量,t为激活密钥的管理员的数量,选用符合国家有关部门规定的电子密匙产品,为每位管理员配备一把电子密匙。
发票发行机构必须进行以下预操作[步骤1]确认每名管理员所持的电子密匙是无故障、能正常工作的。
每名管理员都持电子密匙到一个权威的数字证书认证中心申请数字证书,在申请过程中,由电子密匙生成RSA密钥对,公钥记为Kei,私钥记为Kdi。数字证书认证中心所签发的数字证书保存在电子密匙中。
每名管理员把获得的数字证书导出为文件,文件格式为PKCS#12。
把n名管理员的数字证书导出文件存放在安全核的Flash ROM存贮器中。
执行上述预操作后,发票发行机构须执行以下步骤进行门限方案的初始配置 产生一个随机整数,长度为512比特(64字节),该随机数即是用于生成及验证防伪码的密钥,记作K;令d=K|H(K),其中H()是密码学中的消息摘要函数,“|”表示二进制位串接运算,例如“01”与“001”串接可得“01001”,两个整数串接后的结果仍然可视为整数,因此,可以把d当作一个整数进行处理。
利用Shamir秘密共享方案中的子秘密数产生办法,即随机选取t-1个系数a1,a2,...,at-1,构造多项式f(x)=d+Σi=1t-1aixi.]]>对于整数i=1,2,...,n,计算si=f(i),则s1,s2,...,sn为n份子秘密数。
对于每个子秘密数si(i=1,2,...,n),把第i个管理员的RSA公钥Kei从数字证书导出文件中提取出来,利用RSA加密算法对其进行加密运算,即计算EKei(si),运算的结果保存于安全核的Flash ROM存贮器中。
清除上述步骤产生的K,s1,s2,...,sn及a1,a2,...,at-1,不在任何形式的存贮器中保存这些数值。
激活密钥的方法为,设在场的t名管理员的编号分别为1,2,...,t。对于i=1,2,...,t,执行以下步骤[步骤1]第i名管理员把电子密匙插入到安全核的USB接口中,安全核从电子密匙中取出数字证书Certi;[步骤2]在安全核的Flash ROM存贮器中逐个取出保存的管理员数字证书,并与Certi作比较,找出能与Certi匹配的管理员数字证书及相应的EKei(Si);[步骤3]调用电子密匙的RSA解密函数,并利用电子密匙中的私钥Kdi对EKei(si)解密si=Dkdi[EKei(si)],]]>
把运算结果si保存在安全核的RAM存贮器中。
对于i=1,2,...,t执行上述步骤1~3后,存贮器中保存了s1,s2,...,st,这时可恢复dd=Σi=1tsiΠj=1,j≠it-ji-j,]]>即得到K|H(K)。取出第一部分K并施以H()运算,所得结果与第二部分H(K)比较,若结果一致,说明密钥激活成功,否则为不成功。
若密钥激活成功,把K保存于安全核的RAM存贮器中;若不成功,给出出错信息。
由于RAM在掉电状态下不能保存其存贮的内容,因此,当安全核掉电或重新启动时,都必须令t名管理员重新插入电子密匙,以便重新激活密钥,这也是本发明对密钥安全性的一种保护措施。
密钥激活后,发票发行机构操作员通过客户端的客户端调用接口#1输入本批票据的起止号码,并把批量生成防伪码的指令通过SSL协议发送到防伪码生成/验证服务器中的票据生成服务进程#1,由票据生成服务进程#1根据本批票据起止号码连续产生本批的每个发票号码,并把每个发票号码发送到安全核中的防伪码计算模块,由防伪码计算模块结合密钥计算出该发票号码对应的防伪码,然后把防伪码返回给票据生成服务进程#1。这一过程连续地进行,直至整批发票号码及对应的防伪码产生完毕,这时票据生成服务进程#1还需把计算的结果返回给客户端调用接口#1。
本发明的发票防伪验证的流程图如附图3所示,发票防伪验证可由持有票据的个人或行政机构如基层税所等在客户端操作,基层税所操作员通过客户端调用接口#2输入发票票面上的发票号码及防伪码,由客户端调用接口#2把防伪码验证请求通过SSL协议传送到防伪码生成/验证服务器的票据验证服务进程#2;普通的发票用户如消费者、财务人员等通过WEB浏览器输入发票票面上的发票号码及防伪码,由WEB浏览器通过HTTPS协议,即HTTP+SSL协议把验证请求发送到发票发行机构的WEB服务器,由WEB服务器把该请求再传送到票据验证服务进程#2,票据验证服务进程#2收到防伪码验证请求后,把验证请求中的防伪码记为C1,接着把验证请求中的发票号码发送到安全核中的防伪码计算模块,计算得到相应的防伪码,记为C2。此时,服务进程#2比较C1和C2的值是否相等,若相等,则得“真”的结论,否则,得到“假”的结论,最后,票据验证服务进程#2把防伪码验证结果返回给客户端调用接口#2或WEB服务器,这样,基层税所操作员或发票用户就可以得到验证的结果。
权利要求
1.一种票据防伪码生成及验证系统,由服务端和客户端组成,客户端通过通信协议把生成或验证票据防伪码的信息传送到服务端,服务端生成或验证票据防伪码,并把结果信息通过通信协议传送给客户端,其特征在于所述的服务端由安全核、防伪码生成/验证服务器及WEB服务器构成,防伪码生成/验证服务器分别与安全核和WEB服务器电连接,所述的安全核由防伪码计算模块、密钥激活模块、存储模块及接口模块组成。
2.根据权利要求1所述的票据防伪码生成及验证系统,其特征在于所述的安全核的存储模块与防伪码计算模块和密钥激活模块电连接、所述密钥激活模块与存储模块和接口模块电连接。
3.根据权利要求1或2所述的票据防伪码生成及验证系统,其特征在于所述安全核的防伪码计算模块与所述防伪码生成/验证服务器电连接。
4.根据权利要求3所述的票据防伪码生成及验证系统,其特征在于所述的防伪码生成/验证服务器中设有票据生成服务进程#1,所述票据生成服务进程#1与安全核的防伪码计算模块电连接。
5.根据权利要求4所述的票据防伪码生成及验证系统,其特征在于所述的防伪码生成/验证服务器中设有票据验证服务进程#2,所述票据验证服务进程#2与安全核的防伪码计算模块电连接。
6.根据权利要求5所述的票据防伪码生成及验证系统,其特征在于所述安全核的防伪码计算模块设置有B36编码器,所述B36编码器将20字节的输入信息,顺序分为10组,每组2字节,把每组的数据当成无符号整数并逐一对整数36求模,所得的求模结果分别对应由数字和大写字母组成的36个符号。
7.如权利要求1所述票据防伪码生成及验证系统的票据防伪码生成方法,其特征在于由子密钥分配过程、密钥激活过程和票据防伪码生成过程组成,所述子密钥分配过程为对于密钥d,随机选取t-1个系数a1,a2,...,at-1,构造多项式f(x)=d+Σi=1t-1aixi,]]>对于整数i=1,2,...,n,计算si=f(i),则s1,s2,...,sn为n份子密钥,把n份子密钥分配给n位管理员,再用第i个管理员的RSA公钥Kei对每个子密钥si进行加密,即计算EKei(si),并把加密结果保存于安全核的存储模块中;所述密钥激活过程为选取一不大于n的整数t,t对应选取的子密钥管理员的数量,对于i=1,2,...,t,把EKei(si)用第i个管理员的RSA私钥Kdi进行解密,即计算si=Dkdi[EKei(si)],]]>得到子密钥s1,s2,...,st,通过d=Σi=1tsiΠj=1,j≠it-ji-j]]>计算出密钥d;所述票据防伪码生成过程为把密钥d和票据号码经消息鉴别码算法HMAC算法计算,得到固定长度的中间结果,再把中间结果输入到B36编码器,得到由数字及大写字母组成的防伪码。
8.如权利要求1所述票据防伪码生成及验证系统的票据防伪码验证方法,其特征在于由子密钥分配过程、密钥激活过程和票据防伪码验证过程组成,所述子密钥分配过程为对于密钥d,随机选取t-1个系数a1,a2,...,at-1,构造多项式f(x)=d+Σi=1t-1aixi,]]>对于整数i=1,2,...,n,计算si=f(i),则s1,s2,...,sn为n份子密钥,把n份子密钥分配给n位管理员,再用第i个管理员的RSA公钥Kei对每个子密钥si进行加密,即计算EKei(si),并把加密结果保存于安全核的存储模块中;所述密钥激活过程为选取一不大于n的整数t,t对应子密钥管理员,对于i=1,2,...,t,把EKei(si)用第i个管理员的RSA私钥Kdi进行解密,即计算si=Dkdi[EKei(si)],]]>得到子密钥s1,s2,...,st,通过d=Σi=1tsiΠj=1,j≠it-ji-j]]>计算出密钥d;所述票据防伪码验证过程为输入密钥d和由票据号码和票据防伪码C1组成的票据信息,然后把票据信息上的票据号码经消息鉴别码算法HMAC算法计算,得到固定长度的中间结果,再把中间结果输入到B36编码器,得到由数字及大写字母组成的防伪码C2,通过C1和C2的是否相同获得验证结果。
全文摘要
本发明涉及一种票据防伪码生成及验证的系统及方法,由客户端和服务端组成,服务端由安全核、防伪码生成/验证服务器及WEB服务器构成,服务端与客户端通过SSL协议交互,本发明采用现代密码学方法与技术,对票据号码施以基于密钥的密码学运算得到票据防伪码,并把票据防伪码连同票据号码印在票面上,验证时通过访问服务端,由服务端对票据号码进行密码运算产生票据防伪码,再与票面上的票据防伪码对照,实现票据的真伪验证。本发明具有很强的防黑客篡改的能力,安全性高,而且系统的运行不需要大型数据库的支持,配置简单,运行效率高,还可以防止因数据库被非法篡改而影响验证的准确性,进一步提高了防伪码生成及验证系统的安全性。
文档编号H04L9/08GK1588843SQ200410051480
公开日2005年3月2日 申请日期2004年9月15日 优先权日2004年9月15日
发明者唐韶华 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1