一种基于七阶幻立方的明文加密方法和系统的制作方法
【技术领域】
[0001] 本发明涉及密码学技术领域,尤其涉及一种基于七阶幻立方的明文加密方法和系 统。
【背景技术】
[0002] 密码学是一门历史悠久的科学,伴随着21世纪计算机科学的飞速发展和信息时 代无与伦比的影响力,信息本身成为了财富。为了保护信息安全,密码已经成为遍布商务、 金融和社会的各个领域,保障信息服务和交互的重要手段,使用密码能让信息不被非法窃 取、篡改或破坏。
[0003]目前,广泛应用的明文加密方法主要有采用对称加密算法的方法和采用非对称加 密算法的方法,上述两种方法的共同特征是使用密钥对明文密文进行加密和解密,然而在 实际应用中,往往需要用户保存其中至少一个密钥(如使用用户名和密码登录),文字形式 的密钥不可避免的带来泄露或被窥探的安全隐患。
[0004] 因此,为了解决上述两种方法带来的安全隐患,采用图像加密算法的方法已成为 新兴的加密类型,该方法通常将图像转换为二维数据,再用传统加密算法进行加密,由于对 置乱要求较高(模糊的图像也能被识别),因此往往需要更复杂和繁琐的流程才能达到较好 的加密效果。
[0005] 由此可见,亟需一种明文加密方法,能够克服单纯采用文字加密算法带来的安全 隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
【发明内容】
[0006] 本发明实施例所要解决的技术问题在于,提供一种基于七阶幻立方的明文加密方 法和系统,能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和 繁琐流程,达到较好的加密效果。
[0007] 为了解决上述技术问题,本发明实施例提供了一种基于七阶幻立方的明文加密方 法,所述方法包括: a、 获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并 进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定 长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标 变量包括行数、列数和层数; b、 确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密 文; c、 获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将 所述得到的密文进一步进行字符置换加密后输出。
[0008] 其中,所述步骤a具体包括: al、获取长度为9的二进制数作为用于加密的密钥,并将所述获取到的密钥均分成3个 等长的二进制数,且将所述3个等长的二进制数依次转变成十进制后,作为一七阶幻立方 初始坐标中坐标变量为行数、列数和层数分别对应的值;其中,当所述3个等长的二进制数 之中任一为二进制数〇〇〇时,则将所述二进制数〇〇〇转变成十进制的值修订为7 ; a2、在所述七阶幻立方中,根据所述初始坐标中坐标变量为行数、列数和层数分别对应 的值,找到相对应的位置并赋值为1,且以所述初始坐标的位置作为起点开始构建所述七阶 幻立方; a3、获取当前起点的位置及其对应的赋值,并进入预设的计算模式中,计算出下一起点 位置,且将所述当前起点的赋值加1后赋予所述计算出的下一起点位置上; a4、判断所述计算出的下一起点位置上的赋值是否小于343 ; a5、如果是,则将所述计算出的下一起点位置作为当前起点,返回步骤a3 ; a6、如果否,则确定所述计算出的下一起点位置作为终点,使得所述七阶幻立方构建完 毕。
[0009] 其中,所述步骤a3具体包括: a31、获取当前起点的位置及其对应的赋值; a32、判断所述当前起点坐标中行数值减2是否小于1 ; a33、如果是,则将所述当前起点坐标中行数值减2加7后,作为所述下一起点坐标中行 数值;如果否,则将所述当前起点坐标中行数值减2后,作为所述下一起点坐标中行数值; a34、继续判断所述当前起点坐标中列数值加1是否大于7 ; a35、如果是,则将所述当前起点坐标中列数值加1减7后,作为所述下一起点坐标中列 数值;如果否,则将所述当前起点坐标中列数值加1后,作为所述下一起点坐标中列数值; a36、获取所述当前起点坐标中层数值,并将所述当前起点坐标中层数值作为所述下一 起点坐标中层数值,且与所述下一起点坐标中行数值及列数值形成所述下一起点的判断坐 标; a3 7、判断所述下一起点的判断坐标在所述七阶幻立方上是否有赋值;a38、如果否,则将所述判断坐标作为所述下一起点位置,并将所述当前起点的赋值加1 后赋予所述下一起点位置上; a39、如果是,则当所述判断坐标中层数值加1大于7时,将所述判断坐标中层数值加1 减7后,作为所述下一起点坐标中新层数值;或当所述判断坐标中层数值加1小于或等于7 时,将所述判断坐标中层数值加1后,作为所述下一起点坐标中新层数值; 根据所述下一起点坐标中行数值、列数值及新层数值,得到所述下一起点位置,并将所 述当前起点的赋值加1后赋予所述下一起点位置上。
[0010] 其中,所述步骤b具体包括: bl、获取一定长度的明文,并检测所述获取到的明文长度大小情况;b2、当检测到所述明文长度小于343时,则在所述获取到的明文尾部和/或头部进行字 符补充,使其长度达到343后作为明文;或当检测到所述获取到的明文长度等于343时,直 接将所述获取到的明文作为明文; b3、确定所述明文中每一字符及每一字符对应的排列序号,且根据所述确定的每一字 符对应的排列序号,在所述七阶幻立方中依序查询到其上赋值与字符的排列序号相等同时 分别对应的位置,并依序提取所述明文中的字符分别赋予所述依序查询到的对应位置上, 形成一具有字符的七阶幻立方; b4、在所述形成的具有字符的七阶幻立方中,根据先层数从小到大、其次同层上行数从 小到大、最后同层同行上列数从小到大的顺序,依序提取所述形成的具有字符的七阶幻立 方中的每一字符后组合成密文。
[0011] 其中,所述步骤c具体包括: cl、根据ASCII码,将所述明文中所有字符随机排列成一矩形后,形成S盒,并根据所 述明文中每一字符的排列顺序,依序获取所述S盒内对应于所述明文中每一字符的矩形坐 标; c2、获取所述密文中每一字符分别对应所述七阶幻立方的坐标,并将所述密文的长度 作为置换步长; c3、获取当前置换步长,并判断所述当前置换步长是否为0 ; c4、如果否,则所述当前置换步长等于所述密文的长度时,获取所述密文中需置换的 头字符在所述S盒中对应的矩阵坐标及其在所述七阶幻立方中的坐标,并进一步导入预设 的第一坐标变换公式中进行转换,得到所述头字符对应的新矩阵坐标,且根据所述得到的 头字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符来替换所述密文中的头字符 后,将所述当前置换步长减1,返回步骤c3 ;或 所述当前置换步长小于所述密文的长度时,获取所述密文中需置换的当前字符及其 前一字符在所述S盒中分别对应的矩阵坐标,以及所述当前字符在所述七阶幻立方中的坐 标,并进一步导入预设的第二坐标变换公式中进行转换,得到所述当前字符对应的新矩阵 坐标,且根据所述得到的当前字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符 来替换所述密文中的当前字符后,将所述当前置换步长减1,返回步骤c3 ; C5、如果是,则所述密文置换完成,并将所述置换完成后的密文输出。
[0012] 其中,在所述步骤a之前,所述方法还包括: 采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且 根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则 分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇 总形成二进制数作为所述用于加密的密钥。
[0013] 其中,所述采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势 的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据 预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对 应二进制编码汇总形成二进制数作为所述用于加密的密钥的具体步骤包括: 采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域;其 中,所述单一纹路走势为第一纹路走势、第二纹路走势、第三纹路走势、第四纹路走势之中 苴一. ,N , 定义所述编码规则;其中,所述编码规则包括赋予所述第一纹路走势对应的二进制编 码为00、赋予所述第二纹路走势对应的二进制编码为01、赋予所述第三纹路走势对应的二 进制编码为10和赋予所述第四纹路走势对应的二进制编码为11 ; 按照从上之下,从左至右的扫描方式扫描所述指纹图像,依序得到所述多个图形区域 所含纹路走势,并根据所述编码规则分别对所述依序得到的纹路走势赋予二进制编码,且 进一步将所述依序赋予的二进制编码汇总成所述二进制数作为所述用于加密的密钥。
[0014] 本发明实施例还提供了一种基于