七阶幻立方的明文加密系统,所述系统包括: 七阶幻立方构建单元,用于获取用于加密的密钥,且根据所述获取到的密钥生成一七 阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立 方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩 阵形成,且其所设置的坐标变量包括行数、列数和层数; 明文加密单元,用于确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行 重新排序,得到密文; 密文置换单元,用于获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述 获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
[0015] 其中,所述明文加密系统还包括: 基于指纹识别的密钥生成单元,用于采集用户指纹图像,并将所述指纹图像划分成多 个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所 述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将 所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
[0016] 实施本发明实施例,具有如下有益效果: 在本发明实施例中,由于与指纹识别技术相结合,将指纹图像通过一定规则转换为一 组二进制数据,选其一定长度作为密钥后基于七阶幻立方对需要保密的明文进行加密,形 成加密过程简单且具有安全性高的S盒(加密图形),因此能够克服单纯采用文字加密算法 带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
【附图说明】
[0017] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据 这些附图获得其他的附图仍属于本发明的范畴。
[0018] 图1为本发明实施例提供的一种基于七阶幻立方的明文加密方法的流程图; 图2为图1中步骤S1的流程图; 图3为图2中步骤S13的流程图; 图4为图1中步骤S3的流程图; 图5为本发明实施例提供的一种基于七阶幻立方的明文加密系统的结构示意图。【具体实施方式】
[0019] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一 步地详细描述。
[0020] 如图1所示,为本发明实施例中,提供的一种基于七阶幻立方的明文加密方法,所 述方法包括: 步骤S1、获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐 标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由 一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的 坐标变量包括行数、列数和层数; 具体过程为,如图2所示,步骤S11、获取长度为9的二进制数作为用于加密的密钥,并 将获取到的密钥均分成3个等长的二进制数,且将3个等长的二进制数依次转变成十进制 后,作为一七阶幻立方初始坐标中坐标变量为行数、列数和层数分别对应的值;其中,当3 个等长的二进制数之中任一为二进制数〇〇〇时,则将二进制数〇〇〇转变成十进制的值修订 为7 ; 步骤S12、在七阶幻立方中,根据初始坐标中坐标变量为行数、列数和层数分别对应的 值,找到相对应的位置并赋值为1,且以初始坐标的位置作为起点开始构建七阶幻立方; 步骤S13、获取当前起点的位置及其对应的赋值,并进入预设的计算模式中,计算出下 一起点位置,且将当前起点的赋值加1后赋予计算出的下一起点位置上; 步骤S14、判断计算出的下一起点位置上的赋值是否小于343 ;如果是,则执行下一步 骤S15 ;如果否,则跳转至下一步骤S16 ; 步骤S15、将计算出的下一起点位置作为当前起点,返回步骤S13 ; 步骤S16、确定计算出的下一起点位置作为终点,使得七阶幻立方构建完毕。
[0021] 其中,步骤S13的具体实现方式,如图3所示: 步骤S131、获取当前起点的位置及其对应的赋值; 步骤S132、判断当前起点坐标中行数值减2是否小于1 ;如果是,则执行下一步骤S133 ;如果否,则跳转至步骤S134 ; 步骤S133、将当前起点坐标中行数值减2加7后,作为下一起点坐标中行数值; 步骤S134、将当前起点坐标中行数值减2后,作为下一起点坐标中行数值; 步骤S135、继续判断当前起点坐标中列数值加1是否大于7 ;如果是,则执行下一步骤S136 ;如果否,则跳转至步骤S137 ; 步骤S136、将当前起点坐标中列数值加1减7后,作为下一起点坐标中列数值; 步骤S137、将当前起点坐标中列数值加1后,作为下一起点坐标中列数值; 步骤S138、获取当前起点坐标中层数值,并将当前起点坐标中层数值作为所述下一起 点坐标中层数值,且与下一起点坐标中行数值及列数值形成下一起点的判断坐标; 步骤S139、判断下一起点的判断坐标在七阶幻立方上是否有赋值;如果否,则执行下 一步骤S140 ;如果是,则跳转至步骤S141 ; 步骤S140、将判断坐标作为下一起点位置,并将当前起点的赋值加1后赋予下一起点 位置上; 步骤S141、判断下一起点的判断坐标中层数值加1是否大于7 ;如果是,则执行下一步 骤S142 ;如果否,则跳转至步骤S143 ; 步骤S142、将判断坐标中层数值加1减7后,作为下一起点坐标中新层数值; 步骤S143、将判断坐标中层数值加1后,作为下一起点坐标中新层数值; 步骤S144、根据下一起点坐标中行数值、列数值及新层数值,得到下一起点位置,并将 当前起点的赋值加1后赋予下一起点位置上。
[0022] 作为一个例子,在二进制数中任选长度为9作为密钥,每三位一组,根据二进制转 十进制规则对应一个1~7的数字,三组密钥分别对应七阶幻立方k,h,m坐标,得到一个初 始坐标;其中k为行数值,h为列数值,m为层数值。
[0023]使用马步法构建七阶幻立方,通过七阶立方体填入数字来实现。假设初始坐标为 (1,2,3 ),则在七阶幻立方中,给初始坐标(1,2,1)赋值为1 ; 此时,确定当前起点坐标为(1,2,1),赋值为1 ; 将当前起点行数值1^减2,若ki-2〈l,则下一起点行数值k/=(ki-2)+7 ;否,则下一起点 行数值k/zki-2 ; 将当前起点列数值匕加1,若h,1>7,则下一起点列数值h/= (hfl)-7 ;否,则下一起 点列数值h/^+l; 根据上述推导,得到将要赋值的下一起点坐标(6, 3,1 ),进一步判断七阶幻立方原坐标 (6, 3,1)是否有其它赋值呢? 如果否,则坐标(6,3,1)为下一起点坐标,并赋值为2; 如果是,则由于当前起点层数值π^+ΙΟ,得到坐标(6, 3, 2)为下一起点坐标,并赋值为 2 ; 由于该赋值2小于343,需对七阶幻立方继续赋值,以此类推,直至赋值为343为止。七 阶幻立方部分赋值如下表1所示:
表1 : 第一层 第二层 为了提高密钥的安全性,本发明实施例采用指纹图像方式获取密钥,因此在步骤S1之 前,所述方法还包括步骤: 采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且 根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则 分别赋予其所含纹路走势的二进制编码,以及由所述多个图形区域对应二进制编码汇总形 成的二进制数; 具体过程为,采集用户指纹图像,并将指纹图像划分成多个具有单一纹路走势的图形 区域;其中,单一纹路走势为第一纹路走势、第二纹路走势、第三纹路走势、第四纹路走势之 中其一; 定义编码规则;其中,编码规则包括赋予第一纹路走势对应的二进制编码为〇〇、赋予 第二纹路走势对应的二进制编码为01、赋予第三纹路走势对应的二进制编码为10和赋予 第四纹路走势对应的二进制编码为11 ; 按照从上之下,从左至右的扫描方式扫描指纹图像,依序得到多个图形区域所含纹路 走势,并根据编码规则分别对依序得到的纹路走势赋予二进制编码,且进一步将依序赋予 的二进制编码汇总成二进制数。
[0024] 应当说明的是,每个区域的纹路走势都应符合下列的四种图形之一,如 " | "和"-"。将图形"\"作为第一指纹走势,图形" | "作为第二指纹走势,图形作为第 三指纹走势,图形" / "作为第四指纹走势。
[0025] 在划分单一纹路走势的图形区域中,由于人体指纹的不规则性,不可避免的出现 曲线等其它走势,可根据一定的规则归类为上述四种图形之一。如曲线的起点和终点形成 的直线与水平线之间的夹角小于预设的第一阈值时,将该曲线归为第一指纹走势;将曲线 的起点和终点形成的直线与水平线之间的夹角大于预设的第一阈值小于预设的第二阈值 时,将该曲线归为第二指纹走势;将曲线的起点和终点形成的直线与水平线之间的夹角大 于预设的第二阈值时,将该曲线归为第三指纹走势;将曲线的起