用于接入的安全二维码生成方法与流程

文档序号:11143457
用于接入的安全二维码生成方法与制造工艺
本发明涉及网络安全
技术领域
,特别是一种用于接入的安全二维码生成方法。
背景技术
:身份认证对于开放环境中的各种信息系统的安全性极为重要,是网络安全中其他安全服务的前提和基础。随着Internet,尤其是电子商务的迅猛发展,信息安全问题已成为是会关注的热点。传统的账户密码方式有着极为明显的局限性。所以,现如今,已经产生了多种新型密码,例如U盾,动态密码。同时,在远程操作过程中,直接传输信息是一件不安全的行为,容易被截取。二维码是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:二维码能够在横向和纵向两个方位同时表达信息,因此能在很小的面积内表达大量的信息。而且,二维码可以利用不同的算法实现,这样的话,不知道正确的算法是不可以实现信息的解读的。这样存储信息,不但达到了安全的目的,还压缩了传输内容,提高了传输效率。然而,由于U盾成本较高且容易丢失,二维码一般用于存储普通信息,不能通过更为低价且便于保管的方法进行安全审核。技术实现要素:本发明的目的在于提供一种安全性好、效率高的用于接入的安全二维码生成方法。实现本发明目的的技术解决方案为:一种用于接入的安全二维码生成方法,包括以下步骤:第一步,服务器为每一个用户分配一个唯一的用户ID,并使用改进的SHA-1及ECC方法,将用户ID加密得到密文m;第二步,使用DataMatrix编码方法,将密文m转化为二维码;第三步,使用DataMatrix解码方法,将二维码转化为密文m,用于安全审核;第四步,将密文m使用改进的SHA-1及ECC方法解密得到用户ID并进行检测。进一步地,第一步中所述的改进的SHA-1方法,具体为:使用安全散列值计算及变换原始逻辑函数的方法,在计算散列值时采取在原消息中添加一个随机512bit分组的方法,将该随机512bit分组添加到原消息的后面;SHA-1压缩函数逻辑结构有四轮循环模块,每一轮用一个逻辑函数;用f1,f2,f3,f4表示四轮循环对应的逻辑函数,每个函数都操作3个32位字,用AND、OR、NOT和XOR表示逻辑运算符与、或、非和异或,B、C、D为上述的3个32位字,由于SHA-1中f2和f4逻辑函数相同,对f4的函数表达式进行了变动,将f4的函数表达式改为(BANDNOTC)XORD。进一步地,第一步中所述的改进的ECC方法,具体为:使用点积运算优化的方法,在使用ECC方法进行加密、解密的时候,对点积运算nP=P1+…+Pn的优化过程如下,n、P为点积运算两个向量:(1)将n用二进制数的形式表示,即n=(nknk-1…ni…n1);(2)除去(nknk-1…ni…n1)的最高位nk,便得(nk-1…ni…n1);(3)依照(nk-1…ni…n1)从高到低的顺序,当ni=0时,计算2P;当ni=1时,计算2P+P,并将计算结果作为下次运算的初始值,即2P变为P或2P+P变为P。进一步地,第一步中所述将用户ID加密得到密文m,具体如下:(1)根据用户ID生成的时间戳产生随机分组Si;(2)将Si添加到用户ID尾部,对添加了随机分组的消息通过SHA-1方法计算散列值H1(ID,Si);(3)在得到散列值H1(ID,Si)后,进行对ID和H1(ID,Si)进行ECC加密立即产生一个随机数k,所述ECC公钥为PKB,G为椭圆基点,进行K1=kG和K2=k*PKB的计算;然后用K2的X坐标对ID和H1(ID,Si)采用ECC方法进行加密得到密文m。进一步地,第二步中所述DataMatrix编码方法的过程依次为:输入数据生成码字流、生成RS纠错码、模块排列和生成二维码。进一步地,第三步中所述DataMatrix解码方法的过程依次为:DataMatrix条码图像读入、图像预处理、二维码检测和定位、图像矫正和识别、纠错和解码。进一步地,第四步所述将密文m使用改进的SHA-1及ECC方法解密得到用户ID并进行检测,具体如下:(1)将密文m进行ECC解密,首先计算K=K1*SKB=k*G*SKB=n*PKB=K2,其中SKB为ECC方法私钥,PKB为ECC方法公钥,G为椭圆基点,K1=kG,K2=k*PKB,k为随机数,然后通过K的X坐标密文m进行解密,得到ID和H1(ID,Si);(2)也根据时间戳产生随机分组Si,将Si添加到用户ID尾部,通过SHA-1方法计算散列值H2(ID,Si);(3)比较H1(ID,Si)和H2(ID,Si):若相等,则表明消息没有被修改,转至步骤(4);否则,转至步骤(5);(4)进行用户ID确认:若存在此ID则完成安全接入;否则,转至步骤(5);(5)拒绝接入。本发明与现有技术相比,其显著优点:(1)使用二维码作为接入的工具,降低了成本并且便于携带;(2)使用改进的SHA-1及ECC方法,在确保接入的安全性的同时,提高了接入的效率。附图说明图1为本发明用于接入的安全二维码生成方法的流程图,其中(a)为加密转换为二维码的流程图,(b)为将二维码解密校验的流程图。图2为安全散列值工作流程图。图3为DataMatrix编码方法流程图。图4为DataMatrix解码方法流程图。具体实施方式本发明在确保接入的安全性的前提下,将接入的验证信息使用DataMatrix编码方法转换为二维码;验证时使用DataMatrix解码方法获取到接入的验证信息,进行安全验证,实现通过二维码的安全接入。结合图1~2,本发明用于接入的安全二维码生成方法,包括以下步骤:第一步,服务器为每一个用户分配一个唯一的用户ID,并使用改进的SHA-1及ECC方法,将用户ID加密得到密文m;所述的改进的SHA-1方法,结合图2,具体为:使用安全散列值计算及变换原始逻辑函数的方法,在计算散列值时采取在原消息中添加一个随机512bit分组的方法,将该随机512bit分组添加到原消息的后面;SHA-1压缩函数逻辑结构有四轮循环模块,每一轮用一个逻辑函数;用f1,f2,f3,f4表示四轮循环对应的逻辑函数,每个函数都操作3个32位字,用AND、OR、NOT和XOR表示逻辑运算符与、或、非和异或,B、C、D为上述的3个32位字,由于SHA-1中f2和f4逻辑函数相同,对f4的函数表达式进行了变动,将f4的函数表达式改为(BANDNOTC)XORD。所述的改进的ECC方法,具体为:使用点积运算优化的方法,在使用ECC方法进行加密、解密的时候,对点积运算nP=P1+…+Pn的优化过程如下,n、P为点积运算两个向量:(1)将n用二进制数的形式表示,即n=(nknk-1…ni…n1);(2)除去(nknk-1…ni…n1)的最高位nk,便得(nk-1…ni…n1);(3)依照(nk-1…ni…n1)从高到低的顺序,当ni=0时,计算2P;当ni=1时,计算2P+P,并将计算结果作为下次运算的初始值,即2P变为P或2P+P变为P。所述将用户ID加密得到密文m,具体如下:(1)根据用户ID生成的时间戳产生随机分组Si;(2)将Si添加到用户ID尾部,对添加了随机分组的消息通过SHA-1方法计算散列值H1(ID,Si);(3)在得到散列值H1(ID,Si)后,进行对ID和H1(ID,Si)进行ECC加密立即产生一个随机数k,所述ECC公钥为PKB,G为椭圆基点,进行K1=kG和K2=k*PKB的计算;然后用K2的X坐标对ID和H1(ID,Si)采用ECC方法进行加密得到密文m。第二步,使用DataMatrix编码方法,将密文m转化为二维码;结合图3,所述DataMatrix编码方法的过程依次为:输入数据生成码字流、生成RS纠错码、模块排列和生成二维码。第三步,使用DataMatrix解码方法,将二维码转化为密文m,用于安全审核;结合图4,所述DataMatrix解码方法的过程依次为:DataMatrix条码图像读入、图像预处理、二维码检测和定位、图像矫正和识别、纠错和解码。第四步,将密文m使用改进的SHA-1及ECC方法解密得到用户ID并进行检测。所述将密文m使用改进的SHA-1及ECC方法解密得到用户ID并进行检测,具体如下:(1)将密文m进行ECC解密,首先计算K=K1*SKB=k*G*SKB=n*PKB=K2,其中SKB为ECC方法私钥,PKB为ECC方法公钥,G为椭圆基点,K1=kG,K2=k*PKB,k为随机数,然后通过K的X坐标密文m进行解密,得到ID和H1(ID,Si);(2)也根据时间戳产生随机分组Si,将Si添加到用户ID尾部,通过SHA-1方法计算散列值H2(ID,Si);(3)比较H1(ID,Si)和H2(ID,Si):若相等,则表明消息没有被修改,转至步骤(4);否则,转至步骤(5);(4)进行用户ID确认:若存在此ID则完成安全接入;否则,转至步骤(5);(5)拒绝接入。下面结合附图及具体实施例对本发明做进一步详细说明。实施例1结合图1(a)~(b)和图2,本发明用于接入的安全二维码生成方法,包括以下步骤:第一步,服务器为服务器为每一个用户分配一个唯一的用户ID,并用改进的SHA-1及ECC方法,将用户ID加密得到密文m。工作流程如下:(1)根据用户ID生成的时间戳产生随机分组Si;(2)将Si添加到用户ID尾部,对添加了随机分组的消息计算散列值H1(ID,Si);(3)在得到散列值H1(ID,Si)后,进行对ID和H1(ID,Si)进行ECC加密(公钥为PKB)立即产生一个随机数,并进行K1=nG(G为椭圆基点)和K2=n*PKB的计算;然后用K2的X坐标对ID和H1(ID,Si)采用ECC方法进行加密得到密文m。在其中SHA-1方法进行了安全散列值计算的改进,由于散列方法是公开的,恶意节点可能会截获处于传输过程中的消息,修改消息内容,然后冲洗计算散列值并替换原来的散列值,使消息的完整性遭到破坏。为此在计算散列值时在消息中添加一个随机的512bit分组的方法,从而增加安全系数。本发明将时间戳产生随机分组,添加在用户ID的后面。按照这种方法计算出的散列值,不仅可以有效地保证消息的完整性,还可以起到时间戳的作用,增强了消息的安全性,所以称其为安全散列值。SHA-1压缩函数逻辑结构有四轮循环模块,每一轮用一个逻辑函数。用f1,f2,f3,f4表示四轮循环对应的逻辑函数,用AND、OR、NOT和XOR表示逻辑运算符与、或、非和异或,由于SHA-1中f2和f4逻辑函数相同,这样势必会给防御攻击带来一定的风险,所以本发明对f4的函数表达式进行了适当的变动,将f4的函数表达式改为(BANDNOTC)XORD。这样改进不多,对运算速度几乎没有影响,但却相对提高了安全性。改进后的四个逻辑函数表达式如表1所示。表1轮数逻辑函数函数表达式第一轮(0≤t≤19)f1(B,C,D)(BANDC)OR(NOTBANDD)第二轮(20≤t≤39)f2(B,C,D)BXORCXORD第三轮(40≤t≤59)f3(B,C,D)(BANDC)OR(BANDD)OR(CANDD)第四轮(60≤t≤79)f4(B,C,D)(BANDNOTC)XORD对ECC方法进行了点积运算的优化,在使用ECC方法进行加密、解密的时候,会有大量的点积运算,如:nP=P1+…+Pn。对点积运算的优化过程如下:(1)将n用二进制数的形式表示,即n=(nknk-1…ni…n1);(2)除去(nknk-1…ni…n1)的最高位nk,便可得(nk-1…ni…n1);(3)依照(nk-1…ni…n1)从高到低的顺序,当ni=0时,计算2P;当ni=1时,计算2P+P,并将计算结果作为下次运算的初始值,即2P→P或2P+P→P。如果使用传统ECC算法,则需要进行n次运算,进过点积运算的优化后,平均只需要进行3/2[log2n]次运算,最多也只需要3/2[log2n]次运算,从而减少了运算时间,提高了运算效率。第二步,使用DataMatrix编码方法,将密文m转化为二维码;结合图3,具体步骤如下:(1)数据编码,数据编码,使用ASCII编码数据进行编码将密文m转化为码字流。(2)生成RS纠错码,在,在DataMatrix编码方式中,我们使用Reed-Solomon算法获得纠错码。RS纠错方法中码元符号可以表示成相应的二元数组,与通常所用的二进制序列相对应。GF(2m)域中有2m个元素,除0和1之外的2m-2个元素由原本多项式P(x)生成。原本多项式P(x)的特性是得到的余式等于0.我们这里采用的原本多项式为:P(x)=X8+X4+X3+X2+1=0在RS码生成多项式中,码字长n=2m-1,监督元数目r=n-k=2t,能纠正t个错误。在(n,k,d)的RS码中,存在唯一的(n-k)次多项式g(x),使得每一个码多项式c(x)都是g(x)的倍式,g(x)称为[n,k,d]RS码的生成多项式。g(x)=(x-α)(x-α2)...(x-α2t)在DataMatrix中有G(x)=(x-2)(x-22)…(x-2K-1)=(x+2)(x+22)…(x+2K-1)纠错码字是数据码字被纠错多项式G(x)除的的余数即R(x)即为纠错码字,跟在数字码字的后面。(3)条码数据模块排布,如表2所示,给出一个码字的符号结构。8个模块分别对应每一个码字的8bit二级制位数据,MSB表示数据流中码字8bit二进制信息的最高位有效元,LSB表示数据流中码字8bit二进制信息的最低位有效元。我们在获取条码数据流,纠错码和符号大小信息后,进行模块排布,生成DataMatrix条码符号,如果符号矩阵块数大于1,则须按协议将矩阵分解表2码字模块的排布过程就是讲数据流的码字和纠错码的码字转化为二进制数据,生成的码字流的每一位映射到DataMatrix二维图形,根据编码方式和码字流大小,按照相应的编码协议进行排放。第三步,使用DataMatrix解码方法,将二维码转化为密文m,结合图4,具体步骤如下:(1)图像与处理,DataMatrix条码图像灰度处理,将条码图片转为灰度图,以增强条码处理的速度。DataMatrix条码图像去噪处理,使用中值滤波的方法对条码图像进行去噪处理。DataMatrix条码图像二值化处理,采用最大类间方差二值法进行处理。(2)使用DataMatrix图像检测和定位找到二维码的具体位置信息。(3)对二维码进行几何畸形纠正,对图像采取平移、旋转、扭斜和缩放等措施,然后进一步对条码进行透视失真纠正。(4)在透视变换之后,我们首先栅格化二维码图像,然后根据深浅颜色代表的码字信息将二维码转换成数字矩阵,再通过所罗门纠错算法对矩阵信息进行纠错,最后通过相关译码规则即可得到条码信息。第四步,将密文m使用改进的SHA-1及ECC方法解密得到用户ID并进行检测,具体步骤如下:(1)将密文m进行ECC解密,(SKB为私钥)首先计算K=K1*SKB=n*G*SKB=n*PKB=K2,然后通过K的X坐标密文m进行解密,得到ID和H1(ID,Si);(2)也根据时间戳产生随机分组Si,将Si添加到ID尾部,计算散列值H2(ID,Si);(3)比较H1(ID,Si)和H2(ID,Si),若相等,则表明消息没有被修改;(4)进行用户ID确认,若存在此ID则完成安全接入。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1