二维条码加密算法

2024-06-27

二维条码加密算法(精选八篇)

二维条码加密算法 篇1

关键词:QR二维码,多重加密,算法研究

1 概述

1.1 产生背景

随着现代网络技术的不断发展,二维码作为一种高新技术逐渐融入到社会生活中。二维码具备信息储存、信息识别和信息传递等功能,对人们的日常生活产生不小的影响。就QR二维码而言,它的设计目的是为了解决信息量大不便携带和一系列的纠错问题,而之后二维码的运用范围不断扩大,出现在金钱交易、支付车票和支付宝等等涉及个人隐私敏感信息的领域,这就让QR二维码的加密算法技术随之产生。对QR二维码进行加密,保证了它的隐私性,也为使用者的个人安全提供了保障。之前出现相关的用户隐私资料泄漏和大量病毒随之传播的事件,进一步警示我们要加强QR二维码的加密算法研究。面对此种现状,现代学者将研究重心从发现更多种类的二维码逐渐转移到集中解决二维码自身的编码和破解加密算法上。

1.2 研究现状

就国内而言,我国关于二维码加密算法研究的实例还不是很多,相关技术也不是很完善。有关资料显示,我国关于二维码的研究中心主要是在四一七条码和QR码,前者居多。对于四一七条码来说,研究的点主要在于这种二维码在社会上的运用,且加密设备尚未被作为主要关注点。但QR二维码的研究点不仅放在运用上,针对它而产生的大量多重加密算法研究也受到大众的关注。就国外而言,QR二维码的加密技术趋于完善,国外政府部门对此投入大量的人力物力资源为二维码的隐私性提供保障。

2 加密QR二维码算法设计

QR二维码是指是将一些特定设计好的几何图形按照一定的规律在固定好的平面区域内散落的黑白相间的图形记录数据符号信息。上述所说的几何图形为正方形,分别为黑白两种颜色。在平面区域内的3 个角落里绘制有类似于“回”字的正方形图案,这些图案有助于使用者对二维码进行扫描读取,如图1所示。

基于QR二维码的多重加密算法是指在二维码的编制和使用过程中的不同阶段对二维码进行多重加密,根据各个阶段的不同点运用不同的手段进行阶段多重加密,以此保证QR二维码的安全性,加强信息的保密程度。多重加密要将加密文和二维码的编制编码相结合,程序要比一次信息加密要复杂,并且多重加密会加大使用者的读取难度。常见的集中QR二维码的多重加密算法有以下几种。

1)QR码二值图像混沌加密。二值图像混沌加密是指先通过读取QR原始二维码的像素值,选取一定的数值生成混沌序列,再将混沌序列与像素值进行异或,将异或加密数据化成标准格式,以此可以得到QR二维码的二值加密图像,如图二所示。

2)QR码的多级融合加密算法。多级融合加密主要指对QR二维码进行不同阶段不同级别的加密算法。它的主要步骤为首先要对二维码的基本信息进行第一次加密,然后在接下来的过程中分别进行多次加密,使用不同的密钥去解码,降低QR二维码的破解度。它的过程可用公式表示,为C=GI(ECC(IE(I)))。其中C表示二维码、IE表示二维码信息编码、I表示二维码信息、ECC表示二维码纠错编码、GI表示二维码图像生成编码。该公式可以准确的表示出QR二维码的多级融合加密算法过程,公式和实际操作相结合,为二维码的多重加密做出积极贡献。

3)基于Rijndael和异或运算的QR二维码双重加密。所谓的Rijndael是一种新型的加密方法,它具有更加可靠的加密信息和适合的密钥长度。Rijndael多重加密相比之前的传统的加密方式来说,它所具备更加先进的设备,拥有二维码多重加密速度快并且加密的安全指数更高的特点。此种方法的运用是在QRCode二维码的原理上,同时运用Rijndael加密算法和图像异或加密算法,使得QR二维码在两个程度上实现了加密,更具有安全性。

3 加密QR二维码算法实现

不同的QR二维码多重加密算法的实现方式是不同的。上述介绍的三种基本多重加密算法中可以粗略地了解QR二维码多重加密的实现过程。一般对QR二维码进行加密来说,它的流程主要有以下几步:首先要进行DES加密,对二维码的信息逐个编码和纠错编码,接着进行第一次RC4 加密,并生成二维码图像,通过信息传递进行图像处理,在此过程中可以进行第二次加密,之后在进行RC4解码、纠错解码和二维码信息解码,最后通过DES解密结束QR二维码的加密解密整个过程。从这一系列过程中可以发现二维码加密算法一般是在第一和第四阶段进行多重加密处理。前面的加密算法主要是为了实现QR二维码的隐秘性,保证信息不会被泄露,在第一个层面保证了二维码的安全性。后面的加密算法主要是为了防止加密程序轻易遭到破解所做出的,从破解这一层面来对QR二维码的安全性做好保障,防止出现被不法分子破解的危险。这种DES加密方法可以从根本上解决多重加密过程中出现的一系列问题,比较常用,其他几种加密算法也有其本身所具备的有点,如Lo-gistic加密算法和Rijndael算法等等。在研究过程中,采取准确有效的方法去分析不同的二维码,对重要的影响到大众基本生活的QR二维码进行高效的多重加密。

4 结论

QR二维码在运用过程中的各个阶段都可加入加密技术,同时为了保障二维码的安全性,可以对二维码进行多重加密。多重加密算法比一般普通的加密程序来说更加复杂,因为其复杂因素却使二维码的破解更难以进行,也带来了一定的好处。多重加密体制从根本上解决了由于多方面影响造成的重要信息的泄漏问题,也使得QR二维码的安全系数不断提高。二维码的多重加密在信息加密方面和信息识别等方面都做出了贡献,并在此方面提供了广阔的研究空间和研究价值,为未来的QR二维码多重加密算法研究指明了方向。随着QR二维码的运用在社会上越来越普遍同时运用的领域也在不断地扩大,因此对QR二维码的信息进行有效的保护将会逐渐受到大众的高度重视。综上所述,研究加密解密功效高、实用性强、安全性能好的QR二维码的重要信息多重加密算法势在必行。

参考文献

[1]宋杨.基于元胞自动机的QR码加密方法研究[D].哈尔滨:哈尔滨理工大学,2014.

[2]于英政.QR二维码相关技术的研究[D].北京:北京交通大学,2014.

[3]李陈伟.基于二维码的图书防伪技术研究[D].南京:南京师范大学,2014.

[4]于英政,许宏丽.基于QR二维码的多级融合加密算法的设计与实现[J].计算机与数字工程,2014(12):2362-2364,2395.

软件安全中混合加密算法 篇2

目前,根据不同软件系统所应用的领域,比较常见的加密算法有DES加密算法、RSA加密算法、Base64加密算法和维热纳尔加密算法等。

针对不同算法的各自特点,本文首先自定义一种简单的初始加密算法,再对维热纳尔加密算法进行了优化改进,最后结合Base64加密算法共同组成混合加密算法,在很大程度上提高了加密算法的安全性。

2 基础加密算法

2.1 初始加密算法

初始加密算法是根据明文信息中的字符组成,再借助字符的ASCII码,进行相应的变换运算,从而使原有的真实信息进行伪装,避免被轻易的破解,提高了系统加密保护的安全系数。

在一般的软件系统加密过程中,组成明文信息的字符一般可以分为大写英文字母、小写英文字母、阿拉伯数字和其他特殊字符等四部分。

因此,在定义初始加密算法时,需要根据不同种类的字符进行一定的变换运算处理。

具体如下:第一类变换:明文信息的字符是英文字母时,明文在[A,M]范围内,密文为明文的ASCII码值加45;明文在[N,Z]范围内,密文为其ASCII码值加19;明文在[a,m]范围内,密文为其ASCII码值减19;明文在[n,z]范围内,密文为其ASCII码值减45。

第二类变换:明文信息的字符是阿拉伯数字时,明文在[0,4]范围内,密文等于明文乘以2再加1;明文在[5,9]范围内,密文等于明文乘以2再减10。

第三类:当明文信息是其他特殊字符时,密文与明文相同。

2.2 Base64加密算法

Base64加密算法主要的考虑了三个问题,第一为是否加密;第二为加密算法复杂程度和效率;第三为如何处理传输。

加密是必须的,但是加密的主要目的不是让用户发送非常安全的Email。

而是要达到一眼望去完全看不出内容就行。

基于这个目的加密算法,其复杂程度和效率也就不能太大或太低。

2.3 改进的维热纳尔加密算法

维热纳尔密码是一个非常著名的多码加密法,主要是通过采用定义好的维热纳尔方阵,以及自定义的密钥对明文信息进行加密。

以前对于维热纳尔方阵的定义,是通过以二十六个大写英文字母为依据,依次循环不断改变排列顺序,组成26×26级的方阵。

为了提高此算法的复杂度,同时提高保密性能,本文在二十六个大写英文字母的基础之上,再将十位阿拉伯数字随机插入到英文字母序列中,最终构建成36×36级的改进维热纳尔方阵。

在维热纳尔加密算法中,除了维热纳尔方阵之外,还需要明文字符集和密钥。

明文字符集主要是用来记录组成维热纳尔方阵所需要的字符。

密钥是用来在对明文信息加密过程中,指定字符所对应的加密字符。

因此,在改进的维热纳尔加密算法中,改进维热纳尔方阵、明文字符集和密钥,分别记为A、M和K。

改进微热纳尔方阵的明文字符集M定义为:

M={A,B,9,C,8,D,E,7,F,6,G,H,5,I,4,J,K,3,L,2,M,N,1,O,P,0,Q,R,S,T,U,V,W,X,Z}

密钥K定义为:

K={9,D,7,F,6,I,B,X,0,K,P}

因此,针对上述定义的密钥K,对明文信息字符串“HISENSE”进行加密变换,得到的密文是“ILY4UD7K49G”。

3 混合加密算法的设计

混合加密算法是在上述基础加密算法的基础上,由初始加密算法、改进优化的维热纳尔加密算法以及Base64加密算法共同组成的,并且其实现的过程必须按照固定的顺序依次进行,即先使用自己定义的初始加密算法,再使用改进优化的维热纳尔加密算法,最后使用Base64加密算法。

以明文信息字符串“chongq”为例,应用混合加密算法进行加密处理,具体的实现步骤如下:

第一步:字符串“chongq”经过初始加密算法之后,得到的加密字符串为“PUBATD”。

第二步:将改进优化的维热纳尔加密算法中的所使用的密钥K设定为:K={9,D,7,F,6,I}。

利用密钥K对字符串“PUBATD”继续进行加密处理,得出的加密信息字符串为“QZF7B3”。

第三步:使用Base64加密算法继续对字符串“QZF7B3”进行加密换算,得到加密字符串为“UVpGN0Iz”。

在计算机网络信息飞速发展的时代,信息加密算法已经成为研究软件安全的一个重要领域,取得了大量的研究成果。

本文中所设计的混合加密算法,是由三种加密算法组成的,也可以在此基础之上,再增加几种著名的加密算法或自己设计的新算法,只有跟随时代发展而同步进步的技术才有更广阔的的应用空间和更长的生命周期。

[参考文献]

[1]何茗.加密解密算法的实现及改进[J].西南民族大学学报(自然科学版)..1.

[2]徐荣峰.加密算法及其应用研究[D].西北工业大学..

[3]刘玉珍,王丽娜,傅建明,等,译.密码编码学与网络安全原理与实践[M].第三版,北京:电子出版社..

[4]佟晓筠,杜宇,等.基于软件安全混合加密技术的研究[J].计算机工程. 2004.12.

混合加密算法在物联网信息安全传输系统中的应用【2】

[摘 要]混合密码技术是一种新兴的密码技术,兼顾了对称密钥和非对称密钥的优点,表现除较高强度和速度,确保了信息传输的完整性、保密性、不可否认性。

随着信息产业的发展,传统的交流个体人、机器之间的通信已经不能满足日益发展的应用要求,用户呼唤一种人与各种事物间的,或是事物与事物之间的信息交流。

需求的迫切及计算机、网络技术的发展,促进物联网技术的诞生,该技术开启了人类社会信息化进程的新篇章。

[关键词]混合密码技术 物联网 信息安全

从体系架构上看,物联网分为三层。

其中,感知层存在安全性威胁,因为不论是普通节点还是汇聚节点都容易收到攻击,比如拒绝服务攻击,或是非法控制和破坏[I]。

试想一下,假设我们在系统的感知节点没有采取任何安全措施或安全防护不够全面的话 ,并且所感知的信息还涉及国家、军队的重要设施的敏感信息,一旦被非法的第三方获取,其损失是不可估量和弥补的。

通过分析我们得出,在感知节点可以采用硬件加密芯片、公钥基础设PKI和密码技术等安全技术手段来保证节点收集信息的安全三要素。

一、混合密码技术在物联网信息安全传输系统中的设计

按照物联网的三层架构设计,原始数据信息通过感知设备被采集,转发到采集终端,再进入安全系统进行敏感信息处理。

信息安全保密系统首先对转发过来的信息进行隔离处理后进入加密模块处理。

数据通过智能通信接口模块转发至网络层,再到应用层的智能通信接口模块,最终数据进入隔离、解密后被服务器接收。

物联网信息安全传输系统主要包括信息采集收发子系统、智能通信接口子系统、信息安全保密子系统。

其中信息安全保密子系统用于保证感知信息的传输安全;主要用于信息传输信道的选择和信息收发等。

主要包含由内、外网处理单元、网络隔离模块、信息加解密模块、身份认证模块。

二、 模型的`体系结构

基于物联网的信息安全传输系统中,由服务器、安全传输接口、单双向隔离通道、客户端组成的安全保密子系统。

服务器负责算法管理和密钥管理 ;数据传输接口和单向双向隔离通道负责加密数据发送的管理 ;客户端负责解密文件、传送公钥和更改密码。

模型的体系结构图如下:

三、混合密码技术在物联网信息安全传输系统中的应用

在实际的物联网通信系统中, 除考虑保密系统的安全性外,加解密速率、加密灵活性等因素。

部分物联网的信息安全传输系统采用硬件加密技术,虽说一次一密保证了信息的安全,但是额外的设备费用和硬件较高的故障率同时也给系统带来了其他的安全问题。

在对称加密算法中,公开密钥负责数字签名与密钥管理,私有密钥负责明文加密。

前面我们已经分析了AES和ECC算法, 在数字签名和密钥管理方面ECC 算法能够轻松的实现;而对于在较长明文加密中,AES 算法能提供更快的加密速度。

用MD5 算法辅助,因此综合运用 ECC算法和 AES 算法,再辅助于MD5算法就构成了本模型中混合加密算法的方案。

⑴密钥的产生

G为Ep(a,b)椭圆曲线上选的一个基点,其阶数为n(n是大素数 ),并且G(x,y)是公开的。

随机地确定一个整数(区间为 [1,n-1] ),k做为私有密钥,并计算 K=kG,K为公开密钥[5]。

⑵加密和解密

公钥加密:设 Ke 为 AES 的初始密钥,发送方在r上,r ∈ {1,2,…,n-1}取一随机数,计算 u=rKP(KP 为 B 的公钥 ),R1=rG,rG(x1,y1),v=x1Ke,可以得到(u,v) ,发送给接收方。

至此实现对AES 算法密钥加密。

私钥解密:Ks 为接收方的私钥。

用私钥计算 R1=Ks-1u,得到 Ke=x1-1v。

⑶签名及认证

选取一个公开消息摘要函数,用MD5算法计算消息摘要 H(m)。

生成签名:发送方在区间{1,2,…,n-1)上,取L随机数。

计算R2=LG,LG (x2,y2),e=x2H(m),k1=L+eKS,w=k1G,可以得到(w,e) ,作为发送方的签名消息。

身份认证 :计算 R=w-eKeP=(x1,yr),则使 e=xrH(m)成立就是有效的签名,相反为无效的签名。

总之,混合密码算法结合了对称密钥和非对称密钥的优点,更易于加密和密钥分配,结合了AES算法和 ECC算法的混合加密算法具有易于理解和实现的优点,同时又兼具安全性高的优势。

在基于物联网的信息安全传输系统中,对数据信息来源的真实性进行鉴别,有效信息传输安全性的防护,从而保证系统资源的保密性、完整性与不可抵赖性等的基本安全属性要求。

混合密码算法集合了非对称密钥和对称密钥算法的特点与一体,具有运算速度快,安全性高和存储空间小的优势,更适合于物联网这样的一些受限环境中。

参考文献:

[1]苏逸.物联网发展存在的问题及前景[J].才智,2011,(22):76-77.

[2]黄河明.数据加密技术及其在网络安全传输中的应用[D].厦门大学,.05.

QR二维码水印加密及解密算法研究 篇3

1.1 QR二维码的应用背景

随着中国3G技术的普及, 以及手机本身性能的提高, 二维码作为一种全新的信息存储、传递和识别技术迅速地融入到了社会生活当中, 其保密和安全问题也越来越有研究价值, 2012年铁道部出现了用户隐私资料信息被二维码泄密的问题, 病毒也开始通过二维码传播。目前国内针对二维码数字加密的技术的论述并不多, 在当前期刊网上有关二维码讨论的258篇论文也主要集中于二维码自身的编码解码规则, 只有16篇是讨论二维码数字手段加密的。其中加密采取的主要手段是通过复杂昂贵的隐形印刷技术。而讨论数字加密的只是对一般图像都通用的结合水印加密, 未能很好的结合QR二维码自身的编码规则, 所能负载的加密信息量也极少[3]。

1.2 国内外二维码加密研究现状

目前, 国内外关于二维码信息隐藏技术的文献不是很多, 研究对象主要是四一七条码 (Portable Data File417, PDF417码) 和QR码。在国内, 针对PDF417码的研究较多且以空域水印为主, 在国外, 以研究QR码居多, 以频域水印为主。牛夏牧[7]等利用变形技术对PDF417码中的各组成单元宽度加以适量的变动, 采用误差累积的方式实现隐藏信息的嵌入和提取。陈峥等[3]针对PDF417码, 提出了基于边界移位的隐藏信息嵌入算法。赵博等[4]提出一种基于结构微调法的水印算法, 对PDF417码的组成条空进行适量的微调, 将信息隐藏进二维码中。晁玉海等[5]提出一种对隐藏信息进行扩频和映射处理, 根据PDF417码自身结构特点, 通过微调条码中的条和空将信息隐藏的方法。Ming Sun等[6]提出两种基于离散小波变换 (Discrete Wavelet Transform, DWT) 变换的QR码数字水印, 分别可以嵌入随机序列和图片。Jau-Ji Shen等[7]针对PDF417码提出一种称作关联水印的盲水印算法, 该算法可以提高水印的嵌入容量并可将PDF417码用于数据认证。

⑴二维码图和传统防伪制作技术 (主要是印刷) 相结合, 避免码图被直接影印、拍照, 比如采用隐形印刷等等;

⑵掌握二维码编码技术, 对二维码码图本身做特殊处理 (如加密、复合、变形等) , 这种方法的目的有二, 一是可以让别人的识读软件无法识别码图, 二是可以在这些码图中编入特别信息, 以作防伪校验之用。

简而言之, 一个采用特殊印刷技术, 一个采用特殊编码, 从而提高技术门槛也就提高了造假的成本与难度。本文研究算法基于第二种方式, 对二维码码图进行特殊处理, 达到嵌入信息进行防伪校验目的。

2 适用于QR的数字水印算法

2.1 水印的嵌入算法

2.1.1 水印嵌入位置及表示方案

链码和QR二维码水印信息的位置选择和像素值改变方案, 根据链码、改进的LSB算法和二维码的基本理论, 本文结合处如下表示方案。QR码图像是由N*N个深色或者浅色的模块图形组成, 实验中是黑色和白色模块。考虑水印需要的隐蔽性, 我们选取黑色的正方形作为水印嵌入单元。假设QR码的一个模块图形的大小为M*M, 其中M为模块的长度 (高度) , 单位是像素。条码矩阵的大小为N*N。每个正方形基元占用的像素点为M/N。

如图2.1所示:跟四链码的结合方式为将正方形基元平分成四等份, 每一块的大小为M/2N, 选择其中的一块, 按统一水印规则改变整个选中块的像素值, 嵌入水印信息, 按照链码方向的规则给四个方向的小矩阵编码为0, 1, 2, 3, 四幅图中的红色区域分别对应着0, 1, 2, 3。这样每个黑色QR码的正方形基元便可以承载一位四进制的数。当图像格式为RGB三色图时, 结合第一章所介绍的改进的LSB编码规则, 每一块像素值按规则改变后又可表示为00, 01, 10, 11的四进制, 跟位置的编码规则相结合, 每个正方形模块就可以表示一位十六进制的数, 也就是4bit的信息。

2.1.2 水.印嵌入流程

如图2.2水印算法的整体嵌入步骤:

第一步:根据基本信息编码出未加密的二维码举证, 自左向右, 自上而下, 统计N*N黑色和白色模块的QR二维码可用来嵌入水印的黑色模块的个数, 记为C, 并记录下各个可用的黑色模块在二维码的二维矩阵中的位置。

第二步:依据伪指纹特征随机密钥生成技术, 随机生成三个指纹特征数据记为T1、T2、T3, 并将T1、T2、T3转码成和水印嵌入方式所采用的编码进制 (八进制、十六进制等) 相同的编码进制, 统计出T1, T2, T3所需要的占用编码位数记为n1, n2, n3。

第三步:如果n1+n2+n3>c, 则说明水印嵌入位置不足以嵌入所有的指纹特征数据, 当嵌入位置不足时采用基于模拟退火算法竞争机制, 解决各个特征信息之间采样数竞争问题, 模拟退火的优势能保证了嵌入位置的随机性, 和各个特征信息的均衡性。

第四步:依照模拟退火算法竞争机制产生的二维指纹矩阵加密位置对应表, 对QR二维码图形进行加密。

2.2 水印的提取算法

如图2.3:首先, 从加密的二维码图片中解码出二维码的基本信息。

将加密后的二维码图片记为map1和未水印加密的二维图片记为map2, 导入解码程序中。

第二步:将相应的两幅图像做减法代数运算, 提取图像中目标区域, 给定阈值大小为水印差值的一半, 将低于阈值的像素点看作相同像素点, 差值取绝对值选取为了实现精确定位, 因为两幅图像编码格式一致, 除了不通目标区域以外, 其他区域完全相同, 包括图像大小等。

第三部:使用数学形态学方法, 实现断线的连接, 主要目的是保持目标区域边缘连续, 为孤立点的去除做准备。第三步:使用改进中值滤波去除图像中孤立异常点, 如果除了目标区域以外, 其他区域完全相同, 那么基本不需要去处异常点, 在做加入噪声干扰实验时去除边缘毛边是一个需要除了的问题。

第四步:采用曲线全向跟踪技术, 寻找目标区域的边缘轮廓, 探查到所有目标区域边缘。

第五步:将图像按照二维码自身的编码规则分成N*N块, 根据上图中提取去的各个嵌入水印的矩形区域的位置, 并将区域大小经过阈值判断, 去掉干扰点, 定位出各个区域对应得编码值, 返回二维矩阵各个嵌入水印值位置对应得值。和加密时候保存的加密二维矩阵值进行对比, 进行水印验证。

3 实验

含有水印的QR码的识别和提取实验

算法稳定性实验, 流程如下:

(1) 产生一段随机长度和随机内容的文本T1。

(2) 将文本T1编码为QR码图形Q1。

(3) 计算Q1的水印容量大小。

(4) 通过通过随机指纹发生器和模拟退火竞争机制产生水印信息W。

(5) 向Q1中嵌入水印信息W得到含有水印的QR码图形Q2。

(6) 识读Q2得到T2, 并与原始编码内容T1对比, 记录对比结果。

(7) 从含有水印的QR码图形Q2中提取水印信息WR。

(8) 比较W和WR, 记录对比结果。

(9) 重复1000次步骤 (1) ~ (8) 的试验, 并计算QR码的识别正确率和水印嵌入和提取的正确率。

随机文本T包含英文字母、数字和常用标点符号。重复试验的次数为100次, 最后记录实验结果并计算正确率。实验最终得到的数据是QR码的识别正确率为97%, 嵌入和提取水印的正确率为95%。该实验表明, 水印算法非常稳定, 嵌入的水印不会影响到QR码的正确识别, 并且水印信息的嵌入和提取不受水印内容和QR码载体图像的影响。

4 结论

提出了一种适用于QR码的鲁棒性和嵌入信息量都适中的水印算法, 该算法用链码的方向编码和改进的LSB算法嵌入水印信息, 保证水印信息不会改变QR码的图形结构, 并确保嵌入的水印信息不会影响到QR码的正确识别。与现有的利用误差特性进行信息隐藏的算法相比, 该算法极大程度增强了数字水印的隐蔽性, 提高了水印信息的嵌入量。同时算法不会受到QR码的容量限制, 并且适合电子保存和打印等多种形式, 具有提取水印速度快, 抗干扰能力强等优势。并且提出了由多种生物特征提取出的信息组成水印信息的方式, 将二维码与用户绑定, 实现了人码一体的认证功能。

参考文献

[l]何叶.基于二维条码的数字水印技术研究.长沙理工大学硕士学位论文. (2009) .

[2]赵博.二维条码研究.西安电子科技大学硕士学位论文. (2007) .

[3]纪兴中.基于二维条码技术的数字水印系统研究.浙江工业大学硕士学位论文. (2007) .

[4]陈哲, 张永林.数字水印技术在二维条码证件防伪中的应用.计算机工程与科学.28 (4) .42-44. (2006) .

[5]王毅.二维条码技术应用及标准化状况介绍.中国标准化.5.26-42. (2006) .

[6]纪震, 张基宏, 蒋一峰.小波域的扩频数字图像水印算法.电子域信息学报.23 (8) .509-813. (2001) .

二维条码加密算法 篇4

关键词:条码识别,QR码,android,解密,DES

0 引言

条码技术是在信息技术基础上发展起来的一门集编码、印刷、识别、数据采集与处理为一体的综合性技术。目前,由于工业中产生的数据信息量不断增加,传统的一维条码技术已经不能满足社会的需求,所以二维码技术得到广泛应用。随着内置摄像头手机的逐渐普及,手机作为一种数据采集设备使得二维条码的扫描和识别变得更加便捷。

加密算法通过密钥将明文变为一段不可直接读取的代码。为了使QR码的识别更加具有保密性,在为企业编写的物料智能采制系统中采用DES算法对数据码字进行加密。本文只阐述在识别系统对于RC4算法的解密。本文将QR二维码技术应用于摩托罗拉公司推出的ME525手机,重点介绍了QR二维码的译码过程,DES算法解密过程及其在android系统下的实现。

1 QR码简介及译码流程

1.1 QR码简介

QR码是一种矩阵码,具有可表示内容多,数据信息量大,防伪纠错性高,高速全方位识别等优点[1]。它由功能图形与编码区域构成,如图1所示。功能图形包括位置探测图形,定位图形,校正图形等,这些图形不用于编码;编码区域包括了数据纠错信息,格式信息,版本信息等。QR二维码包括了40个规格,每个规格都有自己不同的格式,具体格式要求可以参考中软件杂志欢迎推荐投稿:http://www.ccomsoft.com/·华人民共和国《快速响应矩阵码》标准中的规定。

1.2 本系统QR码译码流程

其中图像预处理主要包括三部分内容:灰度化,中值滤波,二值化。下面简单介绍这三个处理。

1.2.1 灰度化

考虑到QR码图像由黑白模块组成,而手机摄像头拍出的图像为彩色图像,为了减少图像的信息量,我们将所获取图像进行灰度化。考虑到手机设备采用的是YUV方式,为了保证图像的准确性,Y=W,色差信号为0。标准灰度化计算公式为W=0.30R+0.59G+0.11B,但是人眼对RGB中G绿色最为敏感,采用改进公式W=G方法进行灰度化。这样不存在浮点预算,可以提高预算效率。

1.2.2 中值滤波

手机获取的图像噪声来源一般是光学采集系统,为椒盐噪声,使用3×3矩形窗口中值滤

波适于条码图像。其基本原理是把数字图像中一个点的灰度值用该点的邻域中各点的平均值代替。同时由于中值滤波是抑制随机噪声的非线性处理方法,能较好地保护边界。处理效果如图3所示:

利用根据国家标准GB/T 18284 2000制作的普通的QR条码识别工具进行测试,加未经中值滤波的不能识别,经滤波的可以使识别。如图4所示:

1.2.3 二值化

二值化就是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。图像包括目标物体、背景还有噪声,要想从多值的数字图像中直接提取出目标物体,最常用的方法就是设定一个全局的阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群。将大于T的像素群的像素值设定为白色(或者黑色),小于T的像素群的像素值设定为黑色(或者白色)。手机拍出的图像的直方图如图5所示,可以清楚的看到直方图具有两个峰,所以我们采用直方图双峰方式进行图像分割,确定目标物体。

2 DES算法在QR码中的应用与解密

2.1 DES算法的介绍

DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准[2,3],是1972年美国IBM公司研制的对称密码体制加密算法。其密钥长度为56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。DES加密算法特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。DES工作的基本原理是,其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。

2.2 DES算法的解密步骤

(1)取得密钥[4,5]。取得一个64位的密钥,经过等分密钥,移位密钥,16次迭代密钥等处理后按照密钥选取表取得密钥。

(2)密文的解密。将密文数据加入密钥后扩展,然后进行数据压缩,数据换位,数据异或,数据迭代等处理输出明文。本文就不再详细介绍每个处理过程。

2.3 DES算法在QR码中应用

通过DES算法将数据进行加密,然后将生成的密文进行QR编码,生成QR图像。在解码时反之。将加密算法应用于QR码的编码及识别,可以使QR码更加具有防伪性,安全性。

3 QR码识别系统在Android平台上的实现

3.1 Android系统简介

Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备[6]。Android应用程序使用Java做为开发语言。

3.2 系统的主要模块与功能

图像采集:点击按钮启动程序同时启动手机的摄像头,开始实时捕捉QR码图像,如果检测到QR码,就将这一帧的图像获取进行图像处理。

图像处理:对获取到的图像数据进行预处理。

QR码译码:按照国家GB/T 18284 2000标准,进行解码。

DES算法解密:按照DES算法的要求及步骤对数据码字进行解密。

在编写系统的过程中利用多线程及handler机制可以提高系统的效率,避免系统内部资源调用产生冲突。

3.3 各模块的实现

3.3.1 图像采集

新建android工程后,系统会自动生成R.JAVA,Android Manifest.xml等文件,在Android Manifest.xml中添加

获得打开摄像头的用户权限,创建自己的camera类,设置图像预览框的属性,调用自动对焦

如果对焦成功那么回调Camera.Preview Callback类,输出图片,取得指定范围帧的数据,将数据进行预处理。

3.3.2 图像处理

打开摄像头后获取的图片是YUV编码方式,需要进行相应的变化。创建一个转换图像格式类:public class Get YU-VImage

创建图像处理类public class Image Handle。这个类中的方法主要有:

获取YUV图像类:public class Get YUVImage

灰度化:public byte[]Imagechange Gray(byte[]image)

中值滤波:public byte[]Median Filter(byte[]image)

二值化:public byte[]Binaryzation(byte[]image)

图像处理完成后生成一张位图,提交给译码类。

3.3.3 解码模块

按照国家标准GB/T 18284 2000规定的解码步骤进行代码编写。在解码过程中存在需要大量数据处理的情况,采用多线程的操作方法利用handler,调节消息队列,避免多线程操作时遇到资源冲突的异常发生。汉字解码时采用GB2312标准,解密出数据码字,将码字变为一个比特流交予DES解密模块进行解密。

3.3.4 DES解密

Java的API函数库中具有DES算法,可以直接调用库函数。

(1)取得密钥:

(2)解密:

4 结语

本系统在摩托罗拉开发的里程碑,里程碑2,ME525,HTC开发的G7手机上进行测试,如图6所示,由于采用合理的预处理功能,在测试中,测试图片73张,除4张污损图片不能译码外,其余测试结果良好,处理速度较快。Android手机系统功能丰富而且可扩展性强,在工业中应用手机识别二维码可显著提高管理生产效率。

参考文献

[1]国家质量技术监督局发布.中华人民共和国国家标准--快速响应矩阵码[S].标准出版社.2001.

[2]Kieseberg Peter,Leithner Manuel,Mulazzani Martin.QRcode security.MoMM2010-8th International Conferenceon Advances in Mobile Computing and 185 Multimedia,p430-435,2010

[3]方媛,傅华明.二维条码加密算法的研究[J].电子技术.2009,(1).

[4]管莹,敬茂华.DES算法原理及实现.软件开发与设计,2008,10:5-9

[5]Bruce Schneier.应用密码学-协议.算法与C源程序.机械工业出版杜,2000

二维条码加密算法 篇5

本项目以临沂物流市场为研究对象, 通过实地调研临沂市兰山区、 罗庄区、 河东区物流行业管理相关部门, 走访兰田物流、 兰华物流、 华强物流等物流园区和部分企业, 发现临沂物流市场主要存在以下问题: (1) 物流信息化相对落后, 业务效率低下。 现有物流企业管理方式相当落后、 专业物流管理人员极其缺乏、 物流管理法律法规亟待确立等, 是临沂市乃至全国物流业普遍存在的问题。 (2) 隐私泄露严重。 印有姓名、 电话的快递单上的个人信息, 已成为泄露个人隐私的渠道之一。

针对以上问题, 本课题研究了二维码在提升物流分拣效率、 保护客户隐私方面的应用。 二维条码在信息存储与传递方面具有独特的优势。 一方面, 二维码能够存储多达上千字节的数据; 另一方面, 即使在高达30%损毁的情况下, 二维码仍然可以读取完整信息。 因此, 采用二维码技术不但可以有效避免人工输入可能出现的失误, 大大提高入库、 出库效率, 而且具有良好的保密性, 可以最大程度地保护用户个人隐私信息。

2 系统设计

该系统采用C/S架构设计实现, 设计思路如图1 所示。 物流公司客户端以客户个人隐私信息 (如: 姓名、 手机号、 地址等) 、 物流公司公钥为输入, 输出二维码和客户验证码。 C/S架构客户端响应速度快, 能充分发挥客户端PC的处理能力, 降低Server端的工作量。 ECC算法以有限域上椭圆曲线离散对数问题为数论基础, 只需采用较短的密钥即可得到与RSA算法相同的加密强度。 系统中基于Android的二维码短信自动发送模块, 以系统私钥、 二维码为输入, 输出包含特定格式编码的短信告知客户取件。 客户取件时通过核对短信内容和客户验证码, 实现客户身份二重验证, 避免冒领现象发生。

基于ECC加密的二维码物流管理系统结构如图2 所示。系统设计过程中, 严格按照软件工程的思想, 降低模块间的耦合性, 增强模块内部的内聚性, 提高系统的稳健性。 系统采用显示型手机APP实践模型架构, 分为手机端和服务器端。 手机端主要包含创建订单、 取件通知、 订单分拣、 历史记录4 个模块执行显示任务; 服务器端程序主要包含添加订单、 查询单一订单、 查询全部订单3 个模块完成数据存储任务。

2.1Android手持设备端

(1) 创建订单: 快递员在手持移动终端上点击主界面上的订单创建按钮, 进入创建订单模块, 录入发件人信息 ( 姓名、 电话、 地址) 、 收件人信息 ( 姓名、 电话、 地址) 点击生成二维码, 软件将会在界面下方生成对信息加密以后存储的二维码图形 (该处操作是为了模拟现实操作中的打印功能, 该系统模型中生成的二维码目前还无法实体化到货物上) 。

(2) 取件通知: 快递员点击主界面进入到取件通知界面, 扫描快递单据上的二维码系统将会自动解密二维码中的内容并从中提取出收件人联系方式, 然后向该手机发送一条具有特定格式的短信以通知客户收件, 该短信内容可以由手持设备操作员根据自己的实际情况自定义。

(3) 订单分拣: 分拣中心点击主界面上的订单分拣按钮, 进入订单分拣界面, 通过手持移动终端扫描单据上的二维码程序将自动读取二维码中的已加密内容并自动执行解密操作, 然后将解密以后的数据显示到设备界面。

(4) 历史记录: 快递员点击手持移动终端主界面上的历史记录按钮, 进入历史记录界面可以查阅该终端工作记录。

2.2 数据库

系统的数据库使用了物流单表、 货物信息表、 单据状态表3 个数据表。

(1) 物流单表是一个单据的信息表, 该表中的每一列都对应着一个订单数据。 该表的主要功能是保存快递单据信息。快递单表结构如图1 所示。

(2) 货物信息表为存储货物信息的表, 该表中的每一列都对应着一个快递货物, 都详细标明了该货物的类型、 重量、保价金额、 内件品名以及快递单号。 该表格通过物流单号跟快递单表直接连接, 结构如表2 所示。

(3) 单据信息表主要保存单据时被签收、 配送员ID等单据信息。 每一个快递单都会有相应的单据信息与之对应, 结构如表3 所示。

3 系统实现

开始运行在机器桌面上找到该软件的图标单击图标打开该软件, 系统初始化的界面如图3 所示。 点击创建订单按钮, 进入订单创建界面, 快递员录入发件人和收件人信息, 生成经服务器端验证的加密二维码, 并打印该二维码将粘贴在快件单据上。 点击订单分拣按钮, 进入订单分拣界面, 分拣中心打开手机移动终端摄像头扫描快递单据上的二维码决定快递分流方向。点击所有订单按钮, 查阅本移动终端的工作记录。 点击通知取件按钮, 通过手持移动终端摄像头扫描二维码, 解密二维码数据, 发送一条含有特定格式的短信消息, 通知收件人取件。

4 结语

物流业作为中国经济的支柱型产业, 在促进国家经济发展和提高人民生活水平中发挥了巨大的作用。 主要依赖手工管理单据的传统物流业操作方式, 不仅操作繁琐而且容易出现错漏和货物遗失等问题。 鉴于二维码天然的优势以及对国内外相关领域对这一方面研究的空白, 特设计开发了基于ECC加密的快递物流管理系统, 保护客户隐私、 提高货物分拣效率。

参考文献

[1]冯柠.浅谈二维条码在物流供应链管理中的应用[J].黑龙江科技信息, 2015, 10:70.

[2]王放.物联网在智慧城市建设中的应用[J].电脑编程技巧与维护, 2015, 08:19-20.

[3]陶振晖.基于移动互联网技术的物流货物跟踪系统设计[J].甘肃科技纵横, 2015, 04:26-28.

[4]韩月霞, 李雄伟, 张阳, 卢宏峰.基于物联网的物流车载终端系统设计与实现[J].传感器与微系统, 2015, 05:69-71.

二维条码识别算法研究 篇6

关键词:二维条码,PDF417,图像识别,算法

1 引言

条码技术自出现以来,得到了业界的普遍关注,发展十分迅速,现已广泛应用于商业、交通运输、仓储业、制造业、邮电业、医疗卫生等领域[1],极大的提高了数据采集和信息处理的速度,提高了工作效率,并为管理的科学化、信息化和现代化作出了贡献。目前常用的是一维条码,但一维条码最大的弱点就是表征的信息量是有限的,需要依赖外部数据库支持,离开这个数据库[2]条码本身就没有意义了。二维条码克服了这一弱点,它是在一维条码基础上形成的高密度、高信息量的条码,可以将大量信息在小区域内编码,它本身就是一个完整的数据文件,是实现证件、卡片等信息存储、携带并可以通过机器自动识读的理想方法。

在二维条码中,应用最广泛的是PDF417条码。现在二维条码PDF417的标准[3]和压缩算法虽已公开,但是解码算法却很少。本文在对PDF417二维条码的符号结构及编码原理研究的基础上,实现二维条形码识别的软件算法实现,可以拓宽条码应用领域,节约条码应用成本。

2 图像预处理

对二维条码译码,首先要采集得到条码符号图像,根据采集到的图像特点,将译码过程主要分为两个部分:首先,对采集的条码图像用合适的方法进行预处理,达到满意的效果,然后,再根据编码规则进行解释,实现译码。

采集的条码图像使用灰度图像,对图像的基本要求是条码符号中的单位模块至少要包含3至4个像素,以保证识别的可靠性,提高识读率。图2所示为采集到的PDF417码。

2.1 图像二值化[4]

数字化的灰度图像包括特征物、背景和噪声。从数字灰度图像中提取特征物,最常用的方法是设定一阈值θ,用阈值θ将灰度图像的数据分成两部分,即大于阈值的像素群和小于阈值的像素群。若输入灰度图像函数为f(x,y),输出二值图像的函数为g(x,y),则

二值化处理就是求解阈值θ,从而把灰度图像f(x,y)分成特征物和背景两个部分。阈值是把图像和背景区分开的标尺,适当的阈值就是既要尽可能的保存图像信息又要尽可能的减少背景和噪声的干扰,这是选择阈值θ的原则。根据该原则,在此使用条码图像的灰度直方图[5]来确定阈值θ,如图3所示。

确定阈值θ后,对图像进行二值化处理。图4是经该过程处理后的条码图像:

2.2 降噪处理

原始条码图像由于存在着边沿毛刺、孤立点噪音等变形,不能准确地反映条码符号。因此必须首先去除这些干扰,对条码图像进行整形,才能提高译码的正确率。在图像处理中用于降噪的算法很多,本文采用Unger提出的平滑算法[6],设有3*3窗口,如图5所示,其中p为当前点,N0~N7为八个相邻点。

Unger平滑准则为:

(1)当p为白点时,用布尔函数f1的值来代替p的值,

即N0、N2、N4和N6中至少有三个黑点时,则将p改为黑点,否则p不变。

(2)当p为黑点时,用布尔函数f2的值来代替p的值,

即若N2、N3、N4中至少有一个为黑点,并且N0、N6、N7中也至少有一个为黑点时,或N0、N1、N2中至少有一个为黑点,并且N4、N5、N6中至少有一个为黑点时,p不变,否则将p改为白点。

毛刺噪声采取中值滤波去除,通过与周围象素值进行比较,假如差别超过灰度变化范围的一半,就改变原来的象素值。某一灰度值为x的象素点e,其去噪声过程由下式计算:

其中:w表示图像灰度变化范围,表示以x为中心围成的8个方向的象素点的灰度值的平均值。

处理后条码图像如图6所示。

3 图像校正

图像校正主要是处理图像的偏转问题。这一过程主要针对二维码进行,因为一维条码的结构特点决定了它在一定范围内偏转是不影响其识别的,而二维码图像包含信息量大,图像要求较高,在扫描过程中图像产生偏转是不可避免,因此对图像进行几何校正非常有必要。本文要实现的几何变换过程是图像的旋转,这是一种相对复杂的几何变换。一般图像旋转是以图像中心为原点,旋转一定的角度,旋转后,图像的大小一般会改变,既可以把转出显示区域的图像截去,也可以扩大图像范围以显示所有图像,下面的过程推导了旋转运算[7]的变换公式。如图7所示,点(x0 y0)经过旋转θ度后坐标变为(x1,y1)。

旋转前:

旋转后:

旋转矩阵表达式为:

其逆运算如下:

进行图像旋转之前要确定图像偏转的角度,如图8所示。本文根据条码图像的水平垂直投影确定该角,在此不再赘述。

该过程处理后条码图像如图9所示。

4 译码

经过处理的条码图像质量较高,除边缘外几乎没有了噪声与形变。译码的过程分为两部分,首先求取条码的码词矩阵,然后根据码词矩阵进行译码[8],还原出所携带信息。

根据二维条码PDF417的特性,选出每(一层中最合适的扫描结果,并对其做规格化修正,得到符号字符。然后按8个符号字符与一个码字相对应的关系分割,得到全部码字信息,然后除去左右标志符等附加信息就可以完整的实现译码。

5 结论

将本文提出的方法进行软件实现,经反复验证,能够识别通过图像采集、与水平方向偏转±4~5°的PDF417码。确定该方法有效,软件识别系统性能稳定,取得了满意的结果,为二维条码的识别提供了一条有效的途径。

参考文献

[1]郑文超.条码技术指南[M].中国标准出版社.2003:4~6.

[2]刘明业,李春,吴清平等.二维条形码技术的发展状况[J].电子展望与决策.2000.3.

[3]中华人民共和国国家标准《四一七条码》GB/T17172-1997.

[4]陈传波等编著.数字图像处理[M].机械工业出版社.2004.7.

[5]何斌,马天予,王运坚,朱红莲.Visual C++数字图像处理(第二版)[M].人民邮电出版社.2002.

[6]Unger S.H.Pattern Detection and Recognition[J].Proceeding of the IRE.1959:1737~1752.

[7]潘云鹤,董金祥,陈德人编著.计算机图形学——原理,方法及应用(修订版)[M].高等教育出版社.2003.12.

二维条码加密算法 篇7

随着信息化的深入, 信息管理系统广泛地应用于社会上的各行各业, 而信息管理系统里面通常也包含着各种级别的加密数据, 更有可能是关系到国家经济政策、军事国防等方面的告安全级别内容。而数据库则保存了几乎所有的信息管理系统相关信息, 如果数据库被攻破, 数据被盗或被污染, 后果将不堪设想。所以, 信息管理系统在使用的过程中, 通常是要对其数据库进行严密的加密措施来保护数据库的安全。和我们常见的文件加密比起来, 数据库加密需要有更高的数据性能和安全保证。本文首先分析了数据库加密的特性, 进而介绍了一种混合加密算法, 来完成数据库中信息加密的更高需求。

1 数据库加密性能需求

在信息管理的过程中, 不容的行政级别对应着不同程度的数据安全级别, 每个级别的安全程度也有所区别。在电子商务信息管理系统中要保障其数据的安全, 就要根据其信息管理系统的特性对系统的数据库进行数据加密。根据信息管理系统和数据库的特性, 对其加密要符合以下几个要求。

1.1 数据库的安全性

在电子商务系统中, 经常会有一些涉及到国家经济政策、政府规划、国防军事等方面的保密内容, 这些数据的保密要求较高, 所以在对其所在的信息管理系统进行数据加密的过程中, 必须全面的考量数据在加密方面的性能;另外, 信息管理系统的用户权限也因级别不同而不同, 要保障数据库的安全, 在系统中的用户添加数据时, 只能开放同等和更告安全级别权限的用户对数据进行检索和修改, 所以对不同级别的用户要使用不同的安全秘钥对其内容进行加密保护。

1.2 数据检索响应速度

数据库检索性能是数据库管理过程中的一个难点, 尤其是数据库需要进行加密处理, 会对数据库的检索性能造成影响, 而且数据表索引的加密也会更加困难, 影响数据库的数据检索速度。所以, 需要在确保数据库安全性能的同时, 兼顾数据库的数据检索效率和解密速度。

1.3 数据库防篡改能力

数据库的安全与否, 不只是在防止数据丢失方面要求对应的性能, 更要具有防篡改方面的能力。通过对应的信息管理系统可以确保不同级别的用户可以对数据库进行对应级别的操作, 但是无法完全避免由于系统漏洞或者信息管理系统漏洞等原因引起的非法入侵和非法用户对数据进行篡改。有时候, 数据库管理员的安全级别过高也会引起数据库的安全问题。 所以说, 数据库的加密不仅仅要考虑其数据防盗性能, 更要兼顾数据防篡改能力。

2 利用混合加密算法设计数据库加密系统

由于信息管理系统数据库加密需要兼具安全性能、数据读取效率和防篡改能力, 下面将介绍一种混合加密算法原理设计的信息管理系统数据库加密方式这种混合加密算法在对数据库加密保护的过程中, 首先, 会将DES加密算法与RSA加密算法相结合, 形成高效、安全的数据加密方案;然后使用单向函数对不同安全级别秘钥进行管理。其次, 将数据库内的数据根据关键词语、是否为敏感信息等条件进行划分, 对敏感信息进行认证加密, 生成一个独特的认证码;并且根据关键字建立数据检索表, 用户在查询数据过程中可根据关键词找到相应的索引, 提高查询效率。再次, 在用户进行数据查询前要根据用户秘钥获取用户安全级别信息, 判断该用户是否有足够权限查询对应数据, 如果不具备相应权限则强制停止查询进程;若该用户具备对应的安全级别, 则根据用户安全级别解密敏感信息对应的数据, 并且根据数据携带的验证信息验证其是否被非法篡改, 如果数据被篡改, 则需向管理系统上报数据错误报告, 然后终止查询;最后, 如果数据验证通过, 则使用解密后的安全级别秘钥对数据解码, 给出查询数据, 完成本次数据检索。

3 混合加密算法的优点

本文介绍的这种混合加密算法对数据库加密具有以下几个方面的优点。

(1) 每一个正常用户又有一个秘钥, 不具备秘钥的用户是无法进行合法的数据读取和修改权限的, 这样也就避免了系统管理员对数据库中的数据进行切去或者篡改。 (2) 用户的安全级别与数据的安全级别是对应的。比如, 两个合法用户分别为Ub (安全级别是a) 、Ub (安全级别是b) , 他们存储的数据也是对应的a、b级, 并且a<b。那么用户Ub就可以利用约定算法得到用户Ua存储数据是使用的安全级别秘钥Kb;但是, Ub则不能采用相同的办法获取安全级别a的秘钥Ub。通过这种方式可以让具有更高安全等级的用户获取较低安全级别的数据, 而低安全级别的用户则没有办法获取比其更高安全级别的数据, 这样高级别用户则不需要保存低级别安全秘钥, 最终保证了秘钥空间的简单便捷性能和秘钥的安全性能。 (3) 添加了认证码机制, 可以随时发现数据库中被非法篡改过的数据。 (4) 用户每次进行系统登录, 都要使用私人秘钥对安全级别秘钥进行解密, RSA非对称秘钥能够确保秘钥的安全性能, 再登出之前的每一步数据库操作就要用安全级别秘钥对数据进行解密, 安全级别秘钥对数据库的加密采用了效率更高的DES加密算法, 这就使得整个数据库的加密和解密效率都有很大提高。

4 结语

信息管理系统的安全与否, 关系到企业、政府甚至是军队的信息安全, 而数据库加密则是信息管理系统安全的基础, 只有兼顾严密的数据加密方法和高效的数据加密手段, 才能确保信息安全, 不被窃取和篡改。本文介绍了数据库加密技术及其应用, 希望能够对信息管理系统的进一步完善有所帮助。

参考文献

[1]赵晓峰, 叶震.几种数据库加密方法的研究与比较[J].计算机技术与发展, 2007 (2) :219-222.

[2]周婕, 李斌.数据库加密系统设计研究[J].计算机与数字工程, 2011 (4) :106-110.

[3]杨超.数据库加密技术的特征以及应用分析[J].硅谷, 2015 (3) :120-121.

二维条码加密算法 篇8

1997年美国国家技术标准研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,目的是确定一个非保密的、公开算法的、全球免费使用的分组密码算法,用来替代原先的DES算法,用于保护21世纪政府的敏感信息。1998年从参选的15个候选算法中最终筛选出Rijndael算法。

Rijndael是一个迭代的、对称密钥分组的密码,密码分组长度可变、密钥长度也可变。分组长度、密钥长度彼此独立地确定为:128、192和256比特,即16、24和32字节。该算法是基于置换和代替的,置换是数据的重新排列,而代替是用一个单元数据替换另一个。

1 算法原理

其加密的核心操作有:Sub Bytes(字节替代,是一个独立于状态字节的非线性变换),Shift Rows(行循环移位变换),Mix Columns(列混淆变换),Add Round Key(轮密钥加变换),Key Expansion(密钥扩展,将输入的密钥扩展为11组128位密钥组)子密钥是由密钥导出的,包括密钥膨胀和轮子密钥的选取两部分。加密过程是先将输入的明文按列序组合成4×4的矩阵,直接与第0组密钥(即输入的密钥)相加(异或),作为轮加密的输入然后循环10次进行Sub Bytes、Shift Rows、Mix Columns、Add Round Key运算,最后恢复原序列。需要注意的是最后一轮并不进行Mix Columns(列混淆变换)

解密的基本运算,AES解密算法与加密不同,基本运算中除了Add Round Key(轮密钥加)不变外,其余的都需要进行逆变换,即Inv Sub Bytes(逆字节替代)、Inv Shift Rows(逆行移位)、Inv Mix Columns(逆列混淆)。

2. NET下的对称加密算法

.NET Framework类库提供了对称加密、散列函数、非对称加密、数字签名等现有的主流加密算法。.NET中默认实现了4种对称加密算法:DES、Triple DES、RC2和Rijndael。引用类库是通过using System.Security Cryptography;实现的。

需要注意的是,加密后数据会变长。这是因为对称加密算法是分组加密,也就是按照预先设定好的块大小进行加密。加密时,首先将明文进行分块,对于最后一块,如果少于块的大小,是需要进行自动填充的。因此有不同的填充模式。.NET中的密码算法可以进行很多配置,还可以进行扩展。如采用不同的链接模式,填充模式、块大小,密钥长度等。

在对string加密和解密的时候,要将明文加密成BASE64编码的string,用其他编码,如ASCII或者UTF8或者default编码,都会产生错误。这是因为BASE64和ASCII、UTF8不是一类编码,加密后的二进制代码会有很多不可见字符,经过BASE64编码后的数据仅包含0-9、a-z、A-Z、+、/这64个字符,这样保证可见。

3 代码实现

程序的运行界面如图1和图2所示,分组有128、192、256比特三种长度可选,密文可保存在文本文件中。

1.创建类AES.cs,在里面自定义命名空间AES_Encryption,其中的公共方法Encrypt()和Decrypt()是供调用的。

2.加密和解密按钮的Click事件代码

首先要创建类AES的新对象。

4 总结

介绍了AES加密算法的基本原理,在C#中设计了一个AES类,调用.NET Framework的类库System Security.Cryptography,实现了以不同密码分组长度加密文本信息。代码在Win XP下,VS.NET 2010下调试通过。

摘要:介绍了AES加密算法的基本原理,包括核心算法、密码分组及BASE64编码,在C#中调用.NET Framework的类库,实现了一个可变密钥分组长度的文本加密程序。

上一篇:平朔模式下一篇:风机制造