二值二维码图像加密、解密的方法和装置与流程

文档序号:11156370阅读:964来源:国知局
二值二维码图像加密、解密的方法和装置与制造工艺

本发明涉及计算机技术领域,特别是涉及一种二值二维码图像加密、解密的方法和装置。



背景技术:

随着计算机技术的发展,二维码通常采用黑白相间的二值图形记录数据符号信息,由于其能方便的承载信息在各个领域得到大量的应用,如通过二维码进行资料存储、登录网页、手机支付等。为了避免二维码所包含的重要信息被窃取和修改,在其传输和存储前,需要对其进行加密处理,以确保二维码承载信息的安全性和有效性。

现有的二维码加密的方法加密算法复杂度低且公知度高,很容易被破解,安全性低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种二值二维码图像加密、解密的方法和装置,提高二维码信息的安全性。

一种二值二维码图像加密的方法,所述方法包括:

获取二维码图像,根据所述二维码图像生成二值矩阵;

获取密钥,所述密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间;

根据所述密钥采用Z映射算法生成与所述二值矩阵匹配的二维密钥矩阵;

将所述二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像。

一种二值二维码图像加密的装置,所述装置包括:

处理模块,用于获取二维码图像,根据所述二维码图像生成二值矩阵,获取密钥,所述密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在 0和1之间;

二维密钥矩阵生成模块,用于根据所述密钥采用Z映射算法生成与所述二值矩阵匹配的二维密钥矩阵;

加密模块,用于将所述二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像。

上述二值二维码图像加密的方法和装置,通过获取二维码图像,根据二维码图像生成二值矩阵,获取密钥,包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间,根据密钥采用Z映射算法生成与二值矩阵匹配的二维密钥矩阵,将二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像,Z映射算法的计算复杂度高,并且对初始值与起始参数有很高的敏感性,增大了解密难度,提高了二维码信息的安全性。

一种二值二维码图像解密的方法,所述方法包括:

获取加密的二维码图像,根据所述加密的二维码图像生成加密二值矩阵;

获取所述加密的二维码图像匹配的密钥,所述密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间;

根据所述密钥采用Z映射算法生成与所述加密二值矩阵匹配的二维密钥矩阵;

将所述加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像。

一种二值二维码图像解密的装置,所述装置包括:

解密处理模块,用于获取加密的二维码图像,根据所述加密的二维码图像生成加密二值矩阵,获取所述加密的二维码图像匹配的密钥,所述密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间;

解密二维密钥矩阵生成模块,用于根据所述密钥采用Z映射算法生成与所述加密二值矩阵匹配的二维密钥矩阵;

解密模块,用于将所述加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像。

上述二值二维码图像解密的方法和装置,通过获取加密的二维码图像,根 据加密的二维码图像生成加密二值矩阵,获取加密的二维码图像匹配的密钥,密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间,根据密钥采用Z映射算法生成与加密二值矩阵匹配的二维密钥矩阵,将加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像,只有获取了与加密的二维码图像匹配的密钥才能进行解密,并且解密时只有明确了Z映射算法的具体公式才能解密成功,由于Z映射算法复杂度高,且对密钥的初始值与起始参数有很高的敏感性,增大了解密难度,提高了二维码信息的安全性。

附图说明

图1为一个实施例中二值二维码图像加密、解密的方法的应用环境图;

图2为一个实施例中图1中服务器的内部结构图;

图3为一个实施例中图2中终端的内部结构图;

图4为一个实施例中二值二维码图像加密的方法的流程图;

图5为一个实施例中生成二维密钥矩阵的流程图;

图6为一个实施例中未加密的二维码示意图;

图7为一个实施例中加密后的二维码示意图;

图8为一个实施例中二值二维码图像解密的方法的流程图;

图9为一个实施例中生成二维密钥矩阵的流程图;

图10为一个实施例中解密后的二维码示意图;

图11为一个实施例中采用与加密不同的初值后解密后的二维码示意图;

图12为一个实施例中采用与加密不同的另一初值后解密后的二维码示意图;

图13为一个实施例中采用与加密不同的再一初值后解密后的二维码示意图;

图14为一个实施例中二值二维码图像加密的装置的结构框图;

图15为一个实施例中二维密钥矩阵生成模块的结构框图;

图16为一个实施例中二值二维码图像解密的装置的结构框图;

图17为一个实施例中解密二维密钥矩阵生成模块的结构框图。

具体实施方式

图1为一个实施例中二值二维码图像加密、解密的方法运行的应用环境图。如图1所示,该应用环境包括终端110、服务器120,其中终端110和服务器120通过网络进行通信。

终端110可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。终端110与服务器120之间可通过网络发送加密的二维码。二值二维码图像加密、解密的装置可以在终端中,也可以在服务器中。

在一个实施例中,图1中的服务器120的内部结构如图2所示,该服务器120包括通过系统总线连接的处理器、存储介质、内存和网络接口。其中,该服务器120的存储介质存储有操作系统、数据库和二值二维码图像加密和/或解密的装置,数据库用于存储数据,如用户资料等,二值二维码图像加密和/或解密的装置用于实现一种适用于服务器120的二值二维码图像加密和/或解密的方法。该服务器120的处理器用于提供计算和控制能力,支撑整个服务器120的运行。该服务器120的内存为存储介质中的二值二维码图像加密和/或解密的装置的运行提供环境。该服务器120的网络接口用于与外部的终端110通过网络连接通信,比如接收终端110发送的加密的二值二维码图像以及向终端110发送加密的二值二维码图像等。

在一个实施例中,图1中的终端110的内部结构如图3所示,该终端110包括通过系统总线连接的处理器、图形处理单元、存储介质、内存、网络接口、显示屏幕和输入设备。其中,终端110的存储介质存储有操作系统,还包括二值二维码图像加密和/或解密的装置,该装置用于实现一种适用于终端的二值二维码图像加密和/或解密的方法。该处理器用于提供计算和控制能力,支撑整个终端110的运行。终端110中的图形处理单元用于至少提供显示界面的绘制能力,内存为存储介质中的信息显示装置的运行提供环境,网络接口用于与服务器120进行网络通信,如发送加密的二值二维码图像至服务器120等。显示屏幕用于显示应用界面等,如显示应用界面上的图片、信息等,输入设备用于接 收用户输入的命令或数据等。对于带触摸屏的终端110,显示屏幕和输入设备可为触摸屏。

在如图4所示,在一个实施例中,提供了一种二值二维码图像加密的方法,,以应用于上述应用环境中的服务器或终端,包括如下步骤:

步骤S210,获取二维码图像,根据二维码图像生成二值矩阵。

具体的,二值二维码图像加密的方法只适用于二维码图像具有二值性的图像,如QR码。根据输入的信息文本或终端发送的请求生成携带有信息的二值二维码图像,如根据终端发送的登录请求生成用于登录的带有用户资料的二值二维码图像。二值二维码图像只有两种色度,如黑色和白色。二值矩阵是由二种数值组成的矩阵,如0和1组成的矩阵。将图像的两种色度对应为二种数值,根据二维码图像的各个像素生成对应的二值矩阵,如将黑色的像素点对应为0,白色的像素点对应为1。对于有灰度的二值二维码图像,可以先进行去灰度再生成二值矩阵。

步骤S220,获取密钥,密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间。

具体的,密钥决定了加密的算法复杂度,加密的算法复杂度随着密钥初始值Z和起始参数位数的增加而增大。由于Z映射算法属于混沌系统算法,必须满足初始值Z大于1,该系统才进入混沌状态,并且对初始值与起始参数有很高的敏感性,即加密密钥和解密密钥如果存在轻微差别也会导致解密失败,此种特性决定了Z映射算法加解密的可靠性和安全性。在进行加密时可随机选取合适位数的初始值Z和起始参数,由于初始值Z和起始参数的选取范围非常大,导致解密的难度非常大。同时起始参数在0和1之间及Z映射算法值域在0和1之间,保证能快速方便的划分和生成密钥序列。

步骤S230,根据密钥采用Z映射算法生成与二值矩阵匹配的二维密钥矩阵。

具体的,Z映射算法为Z映射一维非线性动态系统,其定义式为其中x0为起始参数,可自定义xn和二维密钥矩阵之间的转化关系,如采用辅助数组记录xn和二维密钥矩阵之间的位置关系,通过计算得到各个xn值后,根据自定义条件选取目标xn,再根据 辅助数组得到各个目标xn在二维密钥矩阵的位置,再根据自定义算法变换各个目标xn为符合条件的二值范围内的值。在选取目标xn时,虽然xn的计算顺序是从n值从小到大递归计算得到,但是在选取用于加密的xn时可以间隔性的选取,在选取后可自定义算法调整xn的顺序。二维密钥矩阵同样是具有二值性的矩阵,其中的二值与步骤S210中的二值矩阵中的二值范围相同,如步骤S210中的二值矩阵为0和1组成的矩阵,则二维密钥矩阵同样是0和1组成的矩阵,并且二维密钥矩阵与二值矩阵的长度和宽度相同,由于二值矩阵的长度和宽度取决于二维码图像的大小,所以二维码图像越大,二维密钥矩阵越大,生成二维密钥矩阵的复杂度越高,时间越长。

步骤S240,将二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像。

具体的,将二值矩阵的每一个元素和二维密钥矩阵的每一个对应元素进行异或后得到加密矩阵,将加密矩阵转化为图像格式的二值图像用于存储、传送。如bmp或者jpg格式的图像。在保存时,可增加灰度信息生成带灰度的二值图像。在一个实施例中,终端或服务器将加密的二维码图像和加密时使用的密钥发送至服务器或终端,便于接收到加密后的二维码图像的服务器或终端根据接收到的密钥进行解密。在发送前,可对加密时使用的密钥进行加密,或发送时采用安全性高的通道。在一个实施例中,终端和服务器两端采用约定的密钥生成方式,从而使得密钥不需要传送也可以在接收到的加密的二维码图像后进行解密。在一个实施例中,终端和服务器两端采用约定的映射关系将映射数据与密钥对应,使得只将映射数据传送,接收方便可根据约定的映射关系根据映射数据得到密钥从而进行解密。在一个实施例中,将二值二维码图像加密的方法应用于安全插件,通过安装安全插件的方式,在互联网的服务端对二维码图像加密,然后在客户端利用安装好的插件对加密的二维码图像进行解密,保证二维码信息的安全性。

本实施例中,通过获取二维码图像,根据二维码图像生成二值矩阵,获取密钥,包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间,根据密钥采用Z映射算法生成与二值矩阵匹配的二维密钥矩阵,将二值矩阵的 元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像,Z映射算法的计算复杂度高,并且对初始值与起始参数有很高的敏感性,增大了解密难度,提高了二维码信息的安全性。

在一个实施例中,如图5所示,步骤S230包括:

步骤S231,根据密钥采用Z映射算法生成混沌密钥序列。

具体的,混沌密钥序列是一维序列,将根据初始值Z和x0采用Z映射算法生成的各个xn值中选取目标xn并按照预设顺序排序生成混沌密钥序列。此时只需要记录各个目标xn与一维的混沌密钥序列之间的位置关系,比记录目标xn与二维的矩阵之间的位置关系更方便。混沌密钥序列的长度与二值矩阵中元素的个数相同,如二值矩阵的维度为M×N,则混沌密钥序列的长度为M×N。

步骤S232,将混沌密钥序列转化为一维二值密钥序列。

具体的,将混沌密钥序列中的各个目标xn按照自定义算法变换为符合条件的二值范围内的值,变换时可根据变换个数进行并行变换,提高转化为一维二值密钥序列的速度。

步骤S233,将一维二值密钥序列转化为二维密钥矩阵。

具体的,首先申请一个与二值矩阵相同长度和宽度的二维数组来保存二维密钥矩阵,如M×N的二维数组,然后顺序读取一维二值密钥序列的元素保存到二维数组中,每当保存完M个元素时,就换行继续保存,直到一维数组的元素全部保存至M×N的二维数组中,则此二维数组为二维密钥矩阵。由于在步骤S231中目标xn是按照预设顺序排序生成混沌密钥序列的,所以此时只需顺序读取即可,不需要记录一维二值密钥序列与二维密钥矩阵之间元素的位置关系。可以理解的是,也可以再设置一个位置转化数组,在生成二维密钥矩阵时不按顺序读取一维二值密钥序列中的元素,而是按照位置转化数组的顺序读取。

本实施例中,先生成一维序列,再将一维序列转化为二维矩阵,使得记录元素与矩阵间的位置关系时更方便,能快速生成二维密钥矩阵。

在一个实施例中,步骤S231包括:根据公式和密钥计算得到由xn组成的混沌密钥序列[xb,xb+1…xb+M×N-1],其中x0为所述起始参数,b≤n≤b+M×N-1,0≤b,M为所述二值矩阵的长度,N为所述二值矩阵的宽度。

具体的,根据初始值Z和起始参数x0生成的各个xn值中选取按计算顺序生成的连续M×N个目标xn并按照计算顺序排序生成混沌密钥序列,由于QR码的长度和宽度一般相同,所以QR码的二值矩阵的长度和宽度也相同,对于QR码一般M=N。由于是按照计算顺序排列各个目标xn,不需要记录各个目标xn与一维的混沌密钥序列之间的位置关系,只需要记录起始目标xn的起始序号n即可,更方便。

步骤S232包括:根据公式其中0<a<1,将所述混沌密钥序列[xb,xb+1…xb+M×N-1]转化为一维二值密钥序列[yb,yb+1…yb+M×N-1]。

具体的,将各个目标xn根据其大小按照公式转化为0或1,从而生成由0和1组成的二值密钥序列[yb,yb+1…yb+M×N-1],优先的a取值为0.5。

步骤S233包括:根据预设转化规则将所述一维二值密钥序列[yb,yb+1…yb+M×N-1]转化为M×N的二维密钥矩阵。

具体的,可按顺序依次读取一维二值密钥序列[yb,yb+1…yb+M×N-1]中的各个元素生成M×N的二维密钥矩阵,也可设置位置转化数组,在生成二维密钥矩阵时不按顺序读取一维二值密钥序列中的元素,而是按照位置转化数组的顺序读取。

在一个实施例中,初始值Z的二进制位数大于第一预设阈值,起始参数的小数点位数大于第二预设阈值。

具体的,第一预设阈值和第二预设阈值可根据需要自定义,且第一预设阈值和/或第二预设阈值可根据二维码图像和/或终端的处理能力调整。优先的,第一预设阈值为5位,第二预设阈值为5位,可以设置初始值Z的二进制位数为偶数,起始参数x0的小数点位数为偶数便于根据公式进行开方运算和计算机存储。当选取Z=1111111111,x0=0.1111111111为初值,混沌密钥序列[xb,xb+1…xb+M×N-1]中b=0,由和公式产生的混沌密钥序列对如图6所示的QR码,其中QR码携带的内容为Test,像素为 181×181,进行加密后生成的加密二维码图如图7所示。

在一个实施例中,如图8所示,提供了一种二值二维码图像解密的方法,包括如下步骤:

步骤S310,获取加密的二维码图像,根据所述加密的二维码图像生成加密二值矩阵。

具体的,加密的二维码图像为具有二值性的图像,如QR码。二值二维码图像只有两种色度,如黑色和白色。二值矩阵是由二种数值组成的矩阵,如0和1组成的矩阵。将图像的两种色度对应为二种数值,根据二维码图像的各个像素生成对应的二值矩阵,如将黑色的像素点对应为0,白色的像素点对应为1。对于有灰度的加密的二值二维码图像,可以先进行去灰度再生成加密二值矩阵。

步骤S320,获取所述加密的二维码图像匹配的密钥,所述密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间。

具体的,匹配的密钥是指与二维码图像加密时使用的相同的密钥,可通过与加密方进行约定得到,也可通过接收加密方发送来的密钥得到,如果加密方发送来的密钥是加密的密钥,则先进行解码得到密钥。密钥决定了解密的算法复杂度,解密的算法复杂度随着密钥初始值Z和起始参数位数的增加而增大。由于Z映射算法属于混沌系统算法,对初始值与起始参数有很高的敏感性,即加密密钥和解密密钥如果存在轻微差别也会导致解密失败,此种特性决定了Z映射算法加解密的可靠性和安全性。在进行加密时可随机选取合适位数的初始值Z和起始参数x0,由于初始值Z和起始参数x0的选取范围非常大,导致解密的难度非常大。对于Z映射算法在Z>1时,该系统进入混沌状态,同时起始参数0<x0<1,及Z映射算法值域在0和1之间,保证能快速方便的划分和生成密钥序列。由于解密密钥与加密密钥一致,所以解密密钥的Z和起始参数x0的范围与加密密钥相同,都为Z>1,0<x0<1。可根据Z和x0的范围判断解密密钥是否出错。

步骤S330,根据密钥采用Z映射算法生成与加密二值矩阵匹配的二维密钥矩阵。

具体的,Z映射算法为Z映射一维非线性动态系统,其定义式为其中x0为起始参数,可自定义xn和二维密钥矩阵之间的转化关系,如采用辅助数组记录xn和二维密钥矩阵之间的位置关系,通过计算得到各个xn值后,根据自定义条件选取目标xn,再根据辅助数组得到各个目标xn在二维密钥矩阵的位置,再根据自定义算法变换各个目标xn为符合条件的二值范围内的值。在选取目标xn时,虽然xn的计算顺序是从n值从小到大递归计算得到,但是在选取用于加密的xn时可以间隔性的选取,在选取后可自定义算法调整xn的顺序。二维密钥矩阵同样是具有二值性的矩阵,其中的二值与加密二值矩阵中的二值范围相同,如加密二值矩阵为0和1组成的矩阵,则二维密钥矩阵同样是0和1组成的矩阵,并且二维密钥矩阵与加密二值矩阵的长度和宽度相同,由于加密二值矩阵的长度和宽度取决于加密的二维码图像的大小,所以加密的二维码图像越大,二维密钥矩阵越大,生成二维密钥矩阵的复杂度越高,解密时间越长。

步骤S340,将加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像。

具体的,将加密二值矩阵的每一个元素和二维密钥矩阵的每一个对应元素进行异或后得到解密矩阵,由于解密矩阵是由0和1组成的二值矩阵,在将解密矩阵转化为二值图像时,可根据二值矩阵与二值图像本身的二值范围进行转化。将解密矩阵转化为图像格式的二值图像得到解密后的二维码图像,用于存储、传送,如bmp或者jpg格式的图像。

本实施例中,通过获取加密的二维码图像,根据加密的二维码图像生成加密二值矩阵,获取加密的二维码图像匹配的密钥,密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间,根据密钥采用Z映射算法生成与加密二值矩阵匹配的二维密钥矩阵,将加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像,只有获取了与加密的二维码图像匹配的密钥才能进行解密,并且解密时只有明确了Z映射算法的具体公式才能解密成功,由于Z映射算法复杂度高,且对密钥的初始值与起始参数有很高的敏感性,增大了解密难度,提高了二维码信息的安全性。

在一个实施例中,如图9所示,步骤S330包括:

步骤S331,根据密钥采用Z映射算法生成混沌密钥序列。

具体的,混沌密钥序列是一维序列,将根据初始值Z和起始参数x0采用Z映射算法生成的各个xn值中选取目标xn并按照预设顺序排序生成混沌密钥序列。此时只需要记录各个目标xn与一维的混沌密钥序列之间的位置关系,比记录目标xn与二维的矩阵之间的位置关系更方便。混沌密钥序列的长度与加密二值矩阵中元素的个数相同,如加密二值矩阵的维度为M×N,则混沌密钥序列的长度为M×N。

步骤S332,将混沌密钥序列转化为一维二值密钥序列。

具体的,将混沌密钥序列中的各个目标xn按照自定义算法变换为符合条件的二值范围内的值,变换时可根据变换个数进行并行变换,提高转化为一维二值密钥序列的速度。

步骤S333,将一维二值密钥序列转化为二维密钥矩阵。

具体的,首先申请一个与加密二值矩阵相同长度和宽度的二维数组来保存二维密钥矩阵,如M×N的二维数组,然后顺序读取一维二值密钥序列的元素保存到二维数组中,每当保存完M个元素时,就换行继续保存,直到一维数组的元素全部保存至M×N的二维数组中,则此二维数组为二维密钥矩阵。由于在步骤S231中目标xn是按照预设顺序排序生成混沌密钥序列的,所以此时只需顺序读取即可,不需要记录一维二值密钥序列与二维密钥矩阵之间元素的位置关系。可以理解的是,也可以再设置一个位置转化数组,在生成二维密钥矩阵时不按顺序读取一维二值密钥序列中的元素,而是按照位置转化数组的顺序读取。

本实施例中,先生成一维序列,再将一维序列转化为二维矩阵,使得记录元素与矩阵间的位置关系时更方便,能快速生成二维密钥矩阵。

在一个实施例中,步骤S331包括:根据公式和密钥计算得到由xn组成的混沌密钥序列[xb,xb+1…xb+M×N-1],其中x0为起始参数,b≤n≤b+M×N-1,0≤b,M为所述二值矩阵的长度,N为所述二值矩阵的宽度。

具体的,根据初始值Z和起始参数x0生成的各个xn值中选取按计算顺序生成的连续M×N个目标xn并按照计算顺序排序生成混沌密钥序列,由于QR码的长 度和宽度一般相同,所以QR码的二值矩阵的长度和宽度也相同,对于QR码一般M=N。。由于是按照计算顺序排列各个目标xn,不需要记录各个目标xn与一维的混沌密钥序列之间的位置关系,只需要记录起始目标xn的起始序号n即可,更方便。

步骤S332包括:根据公式其中0<a<1,将混沌密钥序列[xb,xb+1…xb+M×N-1]转化为一维二值密钥序列[yb,yb+1…yb+M×N-1]。

具体的,将各个目标xn根据其大小按照公式转化为0或1,从而生成由0和1组成的二值密钥序列[yb,yb+1…yb+M×N-1],优先的a取值为0.5。

步骤S333包括:根据预设转化规则将一维二值密钥序列[yb,yb+1…yb+M×N-1]转化为M×N的二维密钥矩阵。

具体的,可按顺序依次读取一维二值密钥序列[yb,yb+1…yb+M×N-1]中的各个元素生成M×N的二维密钥矩阵,也可设置位置转化数组,在生成二维密钥矩阵时不按顺序读取一维二值密钥序列中的元素,而是按照位置转化数组的顺序读取。

在一个实施例中,初始值Z的二进制位数大于第一预设阈值,起始参数的小数点位数大于第二预设阈值。

具体的,第一预设阈值和第二预设阈值可根据需要自定义,且第一预设阈值和/或第二预设阈值可根据二维码图像和/或终端的处理能力调整。优先的,第一预设阈值为5位,第二预设阈值为5位,可以设置初始值Z的二进制位数为偶数,起始参数x0的小数点位数为偶数便于根据公式进行开方运算和计算机存储。如图所示,对于选取Z=1111111111,x0=0.1111111111为初值,混沌密钥序列[xb,xb+1…xb+M×N-1]中b=0,由和公式产生的混沌密钥序列对如图6所示的QR码,其中QR码携带的内容为Test,像素为181×181,进行加密后生成的如图7所示的加密二维 码图进行解密后得到如图10所示的解密后的二维码图像。通过对照可知在初值正确,解密算法正确的情况下得到了正确的解码图像,与原始未加密的二维码图像相同。

另外,通过选取不同的初始值与起始参数对加解密性能进行了分析,即使加密密钥和解密密钥的轻微差别也会导致解密失败,证明了二值二维码图像加密的方法的可靠性和安全性。当加密初值为Z=1111111111,x0=0.1111111111;解密初值为Z=1111111112,x0=0.1111111111,时解密图7后的效果图如图11。当加密初值为Z=1111111111,x0=0.1111111111,解密初值为Z=1111111111,x0=0.1111111112时解密图7后的效果图如图12。而当加密初值Z=1111111111,x0=0.1111111111,解密初值为Z=1111111110,x0=0.1111111112时解密图7后的效果图如图13,可见初值的微小差别也会导致解密出的二维码图像与原始图像不同。

另外,对加解密的时间效率进行了统计,采用Z和x0均为10位的密钥,加密密文为Test,选取不同版本的QR码进行加解密后的平均时间如表1所示:

表1

由表1可以看出,利用Z映射进行QR码加解密的时间基本相同,加解密的时间随QR码版本的递增而变长。最大版本,即Version40的加解密时间最长,因 为Version40有177×177个黑白色块,生成二值矩阵会花费更大的代价。常用的QR码版本为Version7,虽然只有45×45个黑白色块,但是已经可以满足信息的传递,平均加解密时间只有约0.3S,所以该加解密方法的实用性也很强。对于破解该加解密算法的时间复杂度进行了分析,选取最小版本Version1版本的QR码,除去用于定位功能模块的像素点,采用暴力破解的方式也需要尝试约2220×0.028秒,约3.2×1059天,并且即使QR码采用了纠错码,解密难度仍很大。而破解2个初值长度为10位的密钥对也需要约1020×0.004秒,约4.3×1012天的时间,由破解密钥时间复杂度可以看出,该方法的安全性很高。

在一个实施例中,如图14所示,提供了一种二值二维码图像加密的装置,包括:

处理模块410,用于获取二维码图像,根据二维码图像生成二值矩阵,获取密钥,密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间。

二维密钥矩阵生成模块420,用于根据密钥采用Z映射算法生成与二值矩阵匹配的二维密钥矩阵。

加密模块430,用于将二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到加密后的二维码图像。

在一个实施例中,如图15所示,二维密钥矩阵生成模块420包括:

混沌密钥序列生成单元421,用于根据密钥采用Z映射算法生成混沌密钥序列。

一维二值密钥序列生成单元422,用于将混沌密钥序列转化为一维二值密钥序列。

二维密钥矩阵生成单元423,用于将一维二值密钥序列转化为二维密钥矩阵。

在一个实施例中,混沌密钥序列生成单元421还用于根据公式和密钥计算得到由xn组成的混沌密钥序列[xb,xb+1…xb+M×N-1],其中x0为所述起始参数,b≤n≤b+M×N-1,0≤b,M为所述二值矩阵的长度,N为所述二值矩阵的宽度。

一维二值密钥序列生成单元422还用于根据公式其中0<a<1,将混沌密钥序列[xb,xb+1…xb+M×N-1]转化为一维二值密钥序列[yb,yb+1…yb+M×N-1]。

二维密钥矩阵生成单元423还用于根据预设转化规则将一维二值密钥序列[yb,yb+1…yb+M×N-1]转化为M×N的二维密钥矩阵。

在一个实施例中,初始值Z的二进制位数大于第一预设阈值,起始参数的小数点位数大于第二预设阈值。

在一个实施例中,如图16所示,提供了一种二值二维码图像解密的装置,包括:

解密处理模块510,用于获取加密的二维码图像,根据所述加密的二维码图像生成加密二值矩阵,获取加密的二维码图像匹配的密钥,密钥包括初始值Z和起始参数,其中初始值Z大于1,起始参数在0和1之间。

解密二维密钥矩阵生成模块520,用于根据密钥采用Z映射算法生成与加密二值矩阵匹配的二维密钥矩阵。

解密模块530,用于将加密二值矩阵的元素和二维密钥矩阵的元素一一对应进行异或得到解密后的二维码图像。

在一个实施例中,如图17所示,解密二维密钥矩阵生成模块520包括:

解密混沌密钥序列生成单元521,用于根据密钥采用Z映射算法生成混沌密钥序列。

解密一维二值密钥序列生成单元522,用于将混沌密钥序列转化为一维二值密钥序列。

解密二维密钥矩阵生成单元523,用于将一维二值密钥序列转化为二维密钥 矩阵。

在一个实施例中,解密混沌密钥序列生成单元521还用于根据公式和密钥计算得到由xn组成的混沌密钥序列[xb,xb+1…xb+M×N-1],其中x0为起始参数,b≤n≤b+M×N-1,0≤b,M为二值矩阵的长度,N为二值矩阵的宽度。

解密一维二值密钥序列生成单元522还用于根据公式其中0<a<1,将所述混沌密钥序列[xb,xb+1…xb+M×N-1]转化为一维二值密钥序列[yb,yb+1…yb+M×N-1]。

解密二维密钥矩阵生成单元523还用于根据预设转化规则将所述一维二值密钥序列[yb,yb+1…yb+M×N-1]转化为M×N的二维密钥矩阵。

在一个实施例中,初始值Z的二进制位数大于第一预设阈值,起始参数的小数点位数大于第二预设阈值。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述程序可存储于一计算机可读取存储介质中,如本发明实施例中,该程序可存储于计算机系统的存储介质中,并被该计算机系统中的至少一个处理器执行,以实现包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改 进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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