CN105281894A - 一种基于七阶幻立方的明文加密方法和系统 - Google Patents
一种基于七阶幻立方的明文加密方法和系统 Download PDFInfo
- Publication number
- CN105281894A CN105281894A CN201510829880.8A CN201510829880A CN105281894A CN 105281894 A CN105281894 A CN 105281894A CN 201510829880 A CN201510829880 A CN 201510829880A CN 105281894 A CN105281894 A CN 105281894A
- Authority
- CN
- China
- Prior art keywords
- coordinate
- character
- starting point
- plaintext
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Abstract
本发明提供一种基于七阶幻立方的明文加密方法,包括获取用于加密的密钥,且根据获取到的密钥生成一七阶幻立方的初始坐标,并进一步以初始坐标为起点逐渐构建出七阶幻立方;其中,密钥由一定长度的二进制数组成;七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;确定明文,并根据构建完毕后的七阶幻立方,对明文进行重新排序,得到密文;获取明文根据ASCII码排列成矩形后形成的S盒,并根据S盒,将密文进一步进行字符置换加密后输出。实施本发明实施例,能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
Description
技术领域
本发明涉及密码学技术领域,尤其涉及一种基于七阶幻立方的明文加密方法和系统。
背景技术
密码学是一门历史悠久的科学,伴随着21世纪计算机科学的飞速发展和信息时代无与伦比的影响力,信息本身成为了财富。为了保护信息安全,密码已经成为遍布商务、金融和社会的各个领域,保障信息服务和交互的重要手段,使用密码能让信息不被非法窃取、篡改或破坏。
目前,广泛应用的明文加密方法主要有采用对称加密算法的方法和采用非对称加密算法的方法,上述两种方法的共同特征是使用密钥对明文密文进行加密和解密,然而在实际应用中,往往需要用户保存其中至少一个密钥(如使用用户名和密码登录),文字形式的密钥不可避免的带来泄露或被窥探的安全隐患。
因此,为了解决上述两种方法带来的安全隐患,采用图像加密算法的方法已成为新兴的加密类型,该方法通常将图像转换为二维数据,再用传统加密算法进行加密,由于对置乱要求较高(模糊的图像也能被识别),因此往往需要更复杂和繁琐的流程才能达到较好的加密效果。
由此可见,亟需一种明文加密方法,能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
发明内容
本发明实施例所要解决的技术问题在于,提供一种基于七阶幻立方的明文加密方法和系统,能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
为了解决上述技术问题,本发明实施例提供了一种基于七阶幻立方的明文加密方法,所述方法包括:
a、获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
b、确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
c、获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
其中,所述步骤a具体包括:
a1、获取长度为9的二进制数作为用于加密的密钥,并将所述获取到的密钥均分成3个等长的二进制数,且将所述3个等长的二进制数依次转变成十进制后,作为一七阶幻立方初始坐标中坐标变量为行数、列数和层数分别对应的值;其中,当所述3个等长的二进制数之中任一为二进制数000时,则将所述二进制数000转变成十进制的值修订为7;
a2、在所述七阶幻立方中,根据所述初始坐标中坐标变量为行数、列数和层数分别对应的值,找到相对应的位置并赋值为1,且以所述初始坐标的位置作为起点开始构建所述七阶幻立方;
a3、获取当前起点的位置及其对应的赋值,并进入预设的计算模式中,计算出下一起点位置,且将所述当前起点的赋值加1后赋予所述计算出的下一起点位置上;
a4、判断所述计算出的下一起点位置上的赋值是否小于343;
a5、如果是,则将所述计算出的下一起点位置作为当前起点,返回步骤a3;
a6、如果否,则确定所述计算出的下一起点位置作为终点,使得所述七阶幻立方构建完毕。
其中,所述步骤a3具体包括:
a31、获取当前起点的位置及其对应的赋值;
a32、判断所述当前起点坐标中行数值减2是否小于1;
a33、如果是,则将所述当前起点坐标中行数值减2加7后,作为所述下一起点坐标中行数值;如果否,则将所述当前起点坐标中行数值减2后,作为所述下一起点坐标中行数值;
a34、继续判断所述当前起点坐标中列数值加1是否大于7;
a35、如果是,则将所述当前起点坐标中列数值加1减7后,作为所述下一起点坐标中列数值;如果否,则将所述当前起点坐标中列数值加1后,作为所述下一起点坐标中列数值;
a36、获取所述当前起点坐标中层数值,并将所述当前起点坐标中层数值作为所述下一起点坐标中层数值,且与所述下一起点坐标中行数值及列数值形成所述下一起点的判断坐标;
a37、判断所述下一起点的判断坐标在所述七阶幻立方上是否有赋值;
a38、如果否,则将所述判断坐标作为所述下一起点位置,并将所述当前起点的赋值加1后赋予所述下一起点位置上;
a39、如果是,则当所述判断坐标中层数值加1大于7时,将所述判断坐标中层数值加1减7后,作为所述下一起点坐标中新层数值;或当所述判断坐标中层数值加1小于或等于7时,将所述判断坐标中层数值加1后,作为所述下一起点坐标中新层数值;
根据所述下一起点坐标中行数值、列数值及新层数值,得到所述下一起点位置,并将所述当前起点的赋值加1后赋予所述下一起点位置上。
其中,所述步骤b具体包括:
b1、获取一定长度的明文,并检测所述获取到的明文长度大小情况;
b2、当检测到所述明文长度小于343时,则在所述获取到的明文尾部和/或头部进行字符补充,使其长度达到343后作为明文;或当检测到所述获取到的明文长度等于343时,直接将所述获取到的明文作为明文;
b3、确定所述明文中每一字符及每一字符对应的排列序号,且根据所述确定的每一字符对应的排列序号,在所述七阶幻立方中依序查询到其上赋值与字符的排列序号相等同时分别对应的位置,并依序提取所述明文中的字符分别赋予所述依序查询到的对应位置上,形成一具有字符的七阶幻立方;
b4、在所述形成的具有字符的七阶幻立方中,根据先层数从小到大、其次同层上行数从小到大、最后同层同行上列数从小到大的顺序,依序提取所述形成的具有字符的七阶幻立方中的每一字符后组合成密文。
其中,所述步骤c具体包括:
c1、根据ASCII码,将所述明文中所有字符随机排列成一矩形后,形成S盒,并根据所述明文中每一字符的排列顺序,依序获取所述S盒内对应于所述明文中每一字符的矩形坐标;
c2、获取所述密文中每一字符分别对应所述七阶幻立方的坐标,并将所述密文的长度作为置换步长;
c3、获取当前置换步长,并判断所述当前置换步长是否为0;
c4、如果否,则所述当前置换步长等于所述密文的长度时,获取所述密文中需置换的头字符在所述S盒中对应的矩阵坐标及其在所述七阶幻立方中的坐标,并进一步导入预设的第一坐标变换公式中进行转换,得到所述头字符对应的新矩阵坐标,且根据所述得到的头字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符来替换所述密文中的头字符后,将所述当前置换步长减1,返回步骤c3;或
所述当前置换步长小于所述密文的长度时,获取所述密文中需置换的当前字符及其前一字符在所述S盒中分别对应的矩阵坐标,以及所述当前字符在所述七阶幻立方中的坐标,并进一步导入预设的第二坐标变换公式中进行转换,得到所述当前字符对应的新矩阵坐标,且根据所述得到的当前字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符来替换所述密文中的当前字符后,将所述当前置换步长减1,返回步骤c3;
C5、如果是,则所述密文置换完成,并将所述置换完成后的密文输出。
其中,在所述步骤a之前,所述方法还包括:
采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
其中,所述采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥的具体步骤包括:
采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域;其中,所述单一纹路走势为第一纹路走势、第二纹路走势、第三纹路走势、第四纹路走势之中其一;
定义所述编码规则;其中,所述编码规则包括赋予所述第一纹路走势对应的二进制编码为00、赋予所述第二纹路走势对应的二进制编码为01、赋予所述第三纹路走势对应的二进制编码为10和赋予所述第四纹路走势对应的二进制编码为11;
按照从上之下,从左至右的扫描方式扫描所述指纹图像,依序得到所述多个图形区域所含纹路走势,并根据所述编码规则分别对所述依序得到的纹路走势赋予二进制编码,且进一步将所述依序赋予的二进制编码汇总成所述二进制数作为所述用于加密的密钥。
本发明实施例还提供了一种基于七阶幻立方的明文加密系统,所述系统包括:
七阶幻立方构建单元,用于获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
明文加密单元,用于确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
密文置换单元,用于获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
其中,所述明文加密系统还包括:
基于指纹识别的密钥生成单元,用于采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
实施本发明实施例,具有如下有益效果:
在本发明实施例中,由于与指纹识别技术相结合,将指纹图像通过一定规则转换为一组二进制数据,选其一定长度作为密钥后基于七阶幻立方对需要保密的明文进行加密,形成加密过程简单且具有安全性高的S盒(加密图形),因此能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,根据这些附图获得其他的附图仍属于本发明的范畴。
图1为本发明实施例提供的一种基于七阶幻立方的明文加密方法的流程图;
图2为图1中步骤S1的流程图;
图3为图2中步骤S13的流程图;
图4为图1中步骤S3的流程图;
图5为本发明实施例提供的一种基于七阶幻立方的明文加密系统的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
如图1所示,为本发明实施例中,提供的一种基于七阶幻立方的明文加密方法,所述方法包括:
步骤S1、获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
具体过程为,如图2所示,步骤S11、获取长度为9的二进制数作为用于加密的密钥,并将获取到的密钥均分成3个等长的二进制数,且将3个等长的二进制数依次转变成十进制后,作为一七阶幻立方初始坐标中坐标变量为行数、列数和层数分别对应的值;其中,当3个等长的二进制数之中任一为二进制数000时,则将二进制数000转变成十进制的值修订为7;
步骤S12、在七阶幻立方中,根据初始坐标中坐标变量为行数、列数和层数分别对应的值,找到相对应的位置并赋值为1,且以初始坐标的位置作为起点开始构建七阶幻立方;
步骤S13、获取当前起点的位置及其对应的赋值,并进入预设的计算模式中,计算出下一起点位置,且将当前起点的赋值加1后赋予计算出的下一起点位置上;
步骤S14、判断计算出的下一起点位置上的赋值是否小于343;如果是,则执行下一步骤S15;如果否,则跳转至下一步骤S16;
步骤S15、将计算出的下一起点位置作为当前起点,返回步骤S13;
步骤S16、确定计算出的下一起点位置作为终点,使得七阶幻立方构建完毕。
其中,步骤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后赋予下一起点位置上。
作为一个例子,在二进制数中任选长度为9作为密钥,每三位一组,根据二进制转十进制规则对应一个1~7的数字,三组密钥分别对应七阶幻立方k,h,m坐标,得到一个初始坐标;其中k为行数值,h为列数值,m为层数值。
使用马步法构建七阶幻立方,通过七阶立方体填入数字来实现。假设初始坐标为(1,2,3),则在七阶幻立方中,给初始坐标(1,2,1)赋值为1;
此时,确定当前起点坐标为(1,2,1),赋值为1;
将当前起点行数值ki减2,若ki-2<1,则下一起点行数值ki /=(ki-2)+7;否,则下一起点行数值ki /=ki-2;
将当前起点列数值hi加1,若hi+1>7,则下一起点列数值hi /=(hi+1)-7;否,则下一起点列数值hi /=hi+1;
根据上述推导,得到将要赋值的下一起点坐标(6,3,1),进一步判断七阶幻立方原坐标(6,3,1)是否有其它赋值呢?
如果否,则坐标(6,3,1)为下一起点坐标,并赋值为2;
如果是,则由于当前起点层数值mi+1<7,得到坐标(6,3,2)为下一起点坐标,并赋值为2;
由于该赋值2小于343,需对七阶幻立方继续赋值,以此类推,直至赋值为343为止。七阶幻立方部分赋值如下表1所示:
表1:
1 | ||||||
4 | ||||||
7 | ||||||
3 | ||||||
6 | ||||||
2 | ||||||
5 |
第一层
9 | ||||||
12 | ||||||
8 | ||||||
11 | ||||||
14 | ||||||
10 | ||||||
13 |
第二层
为了提高密钥的安全性,本发明实施例采用指纹图像方式获取密钥,因此在步骤S1之前,所述方法还包括步骤:
采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,以及由所述多个图形区域对应二进制编码汇总形成的二进制数;
具体过程为,采集用户指纹图像,并将指纹图像划分成多个具有单一纹路走势的图形区域;其中,单一纹路走势为第一纹路走势、第二纹路走势、第三纹路走势、第四纹路走势之中其一;
定义编码规则;其中,编码规则包括赋予第一纹路走势对应的二进制编码为00、赋予第二纹路走势对应的二进制编码为01、赋予第三纹路走势对应的二进制编码为10和赋予第四纹路走势对应的二进制编码为11;
按照从上之下,从左至右的扫描方式扫描指纹图像,依序得到多个图形区域所含纹路走势,并根据编码规则分别对依序得到的纹路走势赋予二进制编码,且进一步将依序赋予的二进制编码汇总成二进制数。
应当说明的是,每个区域的纹路走势都应符合下列的四种图形之一,如“\”、“/”、“|”和“−”。将图形“\”作为第一指纹走势,图形“|”作为第二指纹走势,图形“−”作为第三指纹走势,图形“/”作为第四指纹走势。
在划分单一纹路走势的图形区域中,由于人体指纹的不规则性,不可避免的出现曲线等其它走势,可根据一定的规则归类为上述四种图形之一。如曲线的起点和终点形成的直线与水平线之间的夹角小于预设的第一阈值时,将该曲线归为第一指纹走势;将曲线的起点和终点形成的直线与水平线之间的夹角大于预设的第一阈值小于预设的第二阈值时,将该曲线归为第二指纹走势;将曲线的起点和终点形成的直线与水平线之间的夹角大于预设的第二阈值时,将该曲线归为第三指纹走势;将曲线的起点和终点形成的直线与水平线之间的夹角小于预设的第一阈值时,将该曲线归为第四指纹走势。
作为一个例子,将采集到的指纹图像分为12*12=144个区域,对每个区域进行扫描,得到该区域的纹路走势;对指纹图像按照从上至下,从左至右的规则逐个将指纹图像的编码记录下来,就能得到长度为144*2=288的二进制数。
步骤S2、确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
具体过程为,获取一定长度的明文,并检测获取到的明文长度大小情况;
当检测到明文长度小于343时,则在获取到的明文尾部和/或头部进行字符补充,使其长度达到343后作为明文;或当检测到获取到的明文长度等于343时,直接将获取到的明文作为明文;
确定明文中每一字符及每一字符对应的排列序号,且根据确定的每一字符对应的排列序号,在七阶幻立方中依序查询到其上赋值与字符的排列序号相等同时分别对应的位置,并依序提取明文中的字符分别赋予依序查询到的对应位置上,形成一具有字符的七阶幻立方;
在形成的具有字符的七阶幻立方中,根据先层数从小到大、其次同层上行数从小到大、最后同层同行上列数从小到大的顺序,依序提取形成的具有字符的七阶幻立方中的每一字符后组合成密文。
在本发明实施例中,如果明文长度小于343,则补齐该明文使其长度达到343,因此长度为343的明文才为最终需要的明文。对于七阶幻立方来说,若七阶幻立方中方格(即位置)上的赋值为N,则将明文中排列顺序对应序号为N的字符写入该方格中。
作为一个例子,将明文howmuch……的前7位填入幻立方,根据表1中得到的七阶幻立方中第一层,赋予相应的字符,具体如表2所示:
表2:
1:h | ||||||
4:m | ||||||
7:h | ||||||
3:w | ||||||
6:c | ||||||
2:o | ||||||
5:u |
因此,上述明文根据七阶幻立方进行位置变换,根据先层数从小到大、其次同层上行数从小到大、最后同层同行上列数从小到大的顺序,得到的密文为*h*********m**h*********w*********c**o*********u。
步骤S3、获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
具体过程为,如图4所示,步骤S31、根据ASCII码,将明文中所有字符随机排列成一矩形后,形成S盒,并根据明文中每一字符的排列顺序,依序获取S盒内对应于明文中每一字符的矩形坐标;
步骤S32、获取密文中每一字符分别对应七阶幻立方的坐标,并将密文的长度作为置换步长;
步骤S33、获取当前置换步长,并判断当前置换步长是否为0;如果否,则执行下一步骤S34或步骤S35;如果是,则跳转至步骤S36;
步骤S34、当前置换步长等于密文的长度时,获取密文中需置换的头字符在所述S盒中对应的矩阵坐标及其在七阶幻立方中的坐标,并进一步导入预设的第一坐标变换公式中进行转换,得到头字符对应的新矩阵坐标,且根据得到的头字符对应的新矩阵坐标,在S盒中获取对应的置换字符来替换密文中的头字符后,将当前置换步长减1,返回步骤S33;
步骤S35、当前置换步长小于密文的长度时,获取密文中需置换的当前字符及其前一字符在S盒中分别对应的矩阵坐标,以及当前字符在七阶幻立方中的坐标,并进一步导入预设的第二坐标变换公式中进行转换,得到当前字符对应的新矩阵坐标,且根据得到的当前字符对应的新矩阵坐标,在S盒中获取对应的置换字符来替换密文中的当前字符后,将当前置换步长减1,返回步骤S33;
步骤S36、密文置换完成,并将置换完成后的密文输出。
作为一个例子,343位明文随机排列成一矩阵后形成S盒。
(1)当提取密文的当前字符为头字符A1时(即七阶幻方格次序P=1),其对应的坐标为(1,1,1),在S盒中搜索A1,记A1在S盒中的坐标为(a,b),对当前字符的坐标作如下变换:X =f(a),Y =f(b),在S盒中找到坐标为(X,Y)的字符X,最后将A1的值置换为X;
例如:头字符是c,坐标为(1,1,1),在S盒中找到字符c的坐标a=1,b=3;
对X进行变化,X= a +(3x+2y+z) = 7,对Y进行变化,Y= b +(x*y*z) = 2;
此时,找到S盒中坐标为X=7,Y=2的字符d,把七阶幻立方中坐标为(1,1,1)的格子(这个格子原来填入了数字1和字母c)的字母c换成字母d。
(2)当提取密文的当前字符为An(n为该字符所在幻方格次序),其对应的坐标为(x,y,z),在S盒中搜索An,记A1在S盒中的坐标为(a1,b1);同时获取当前字符An的前一字符An-1,在S盒中搜索A(n-1),记A(n-1)在S盒中的坐标为(a2,b2);
对当前字符的矩阵坐标作如下变换:X = f(a1,a2,x,y,z),Y = g(b1,b2,x,y,z),在S盒中找到坐标为(X,Y)的字符T,最后将An的值置换为T;
例如:当前字符所在幻方格次序为2,得到字符m,坐标为(1,2,1),在S盒中找到字符m的坐标a1=3,b1=5;
由于当前字符的前一字符被置换过,因此需要定位为置换过的前一字符,该字符为次序为1的d(此时不是字符c),其坐标a2=7,b2=2;
对X进行变化,X=a1+(3x+2y+z)+(2*a2+b2)=27,对Y进行变化,Y=b1+(x*y*z)+(a2*b2)= 21;
此时,找到S盒中坐标为X=27,Y=21的字符k,把七阶幻立方中坐标为(1,2,1)的格子(这个格子原来填入了数字2和字母m)的字母m换成字母k。
应当说明的是,如果变化后的X大于矩阵的行数,则X取值为该X对矩阵行数取模,如果变化后的Y大于矩阵的列数,则Y取值为该Y对矩阵行数取模。
如图5所示,为本发明实施例中,提供的一种基于七阶幻立方的明文加密系统,所述明文加密系统包括:
七阶幻立方构建单元510,用于获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
明文加密单元520,用于确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
密文置换单元530,用于获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
其中,所述明文加密系统还包括:
基于指纹识别的密钥生成单元540,用于采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
实施本发明实施例,具有如下有益效果:
在本发明实施例中,由于与指纹识别技术相结合,将指纹图像通过一定规则转换为一组二进制数据,选其一定长度作为密钥后基于七阶幻立方对需要保密的明文进行加密,形成加密过程简单且具有安全性高的S盒(加密图形),因此能够克服单纯采用文字加密算法带来的安全隐患,也能克服图像加密的复杂和繁琐流程,达到较好的加密效果。
值得注意的是,上述系统实施例中,所包括的各个系统单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (9)
1.一种基于七阶幻立方的明文加密方法,其特征在于,所述方法包括:
a、获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
b、确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
c、获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
2.如权利要求1所述的明文加密方法,其特征在于,所述步骤a具体包括:
a1、获取长度为9的二进制数作为用于加密的密钥,并将所述获取到的密钥均分成3个等长的二进制数,且将所述3个等长的二进制数依次转变成十进制后,作为一七阶幻立方初始坐标中坐标变量为行数、列数和层数分别对应的值;其中,当所述3个等长的二进制数之中任一为二进制数000时,则将所述二进制数000转变成十进制的值修订为7;
a2、在所述七阶幻立方中,根据所述初始坐标中坐标变量为行数、列数和层数分别对应的值,找到相对应的位置并赋值为1,且以所述初始坐标的位置作为起点开始构建所述七阶幻立方;
a3、获取当前起点的位置及其对应的赋值,并进入预设的计算模式中,计算出下一起点位置,且将所述当前起点的赋值加1后赋予所述计算出的下一起点位置上;
a4、判断所述计算出的下一起点位置上的赋值是否小于343;
a5、如果是,则将所述计算出的下一起点位置作为当前起点,返回步骤a3;
a6、如果否,则确定所述计算出的下一起点位置作为终点,使得所述七阶幻立方构建完毕。
3.如权利要求2所述的明文加密方法,其特征在于,所述步骤a3具体包括:
a31、获取当前起点的位置及其对应的赋值;
a32、判断所述当前起点坐标中行数值减2是否小于1;
a33、如果是,则将所述当前起点坐标中行数值减2加7后,作为所述下一起点坐标中行数值;如果否,则将所述当前起点坐标中行数值减2后,作为所述下一起点坐标中行数值;
a34、继续判断所述当前起点坐标中列数值加1是否大于7;
a35、如果是,则将所述当前起点坐标中列数值加1减7后,作为所述下一起点坐标中列数值;如果否,则将所述当前起点坐标中列数值加1后,作为所述下一起点坐标中列数值;
a36、获取所述当前起点坐标中层数值,并将所述当前起点坐标中层数值作为所述下一起点坐标中层数值,且与所述下一起点坐标中行数值及列数值形成所述下一起点的判断坐标;
a37、判断所述下一起点的判断坐标在所述七阶幻立方上是否有赋值;
a38、如果否,则将所述判断坐标作为所述下一起点位置,并将所述当前起点的赋值加1后赋予所述下一起点位置上;
a39、如果是,则当所述判断坐标中层数值加1大于7时,将所述判断坐标中层数值加1减7后,作为所述下一起点坐标中新层数值;或当所述判断坐标中层数值加1小于或等于7时,将所述判断坐标中层数值加1后,作为所述下一起点坐标中新层数值;
根据所述下一起点坐标中行数值、列数值及新层数值,得到所述下一起点位置,并将所述当前起点的赋值加1后赋予所述下一起点位置上。
4.如权利要求1所述的明文加密方法,其特征在于,所述步骤b具体包括:
b1、获取一定长度的明文,并检测所述获取到的明文长度大小情况;
b2、当检测到所述明文长度小于343时,则在所述获取到的明文尾部和/或头部进行字符补充,使其长度达到343后作为明文;或当检测到所述获取到的明文长度等于343时,直接将所述获取到的明文作为明文;
b3、确定所述明文中每一字符及每一字符对应的排列序号,且根据所述确定的每一字符对应的排列序号,在所述七阶幻立方中依序查询到其上赋值与字符的排列序号相等同时分别对应的位置,并依序提取所述明文中的字符分别赋予所述依序查询到的对应位置上,形成一具有字符的七阶幻立方;
b4、在所述形成的具有字符的七阶幻立方中,根据先层数从小到大、其次同层上行数从小到大、最后同层同行上列数从小到大的顺序,依序提取所述形成的具有字符的七阶幻立方中的每一字符后组合成密文。
5.如权利要求1所述的明文加密方法,其特征在于,所述步骤c具体包括:
c1、根据ASCII码,将所述明文中所有字符随机排列成一矩形后,形成S盒,并根据所述明文中每一字符的排列顺序,依序获取所述S盒内对应于所述明文中每一字符的矩形坐标;
c2、获取所述密文中每一字符分别对应所述七阶幻立方的坐标,并将所述密文的长度作为置换步长;
c3、获取当前置换步长,并判断所述当前置换步长是否为0;
c4、如果否,则所述当前置换步长等于所述密文的长度时,获取所述密文中需置换的头字符在所述S盒中对应的矩阵坐标及其在所述七阶幻立方中的坐标,并进一步导入预设的第一坐标变换公式中进行转换,得到所述头字符对应的新矩阵坐标,且根据所述得到的头字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符来替换所述密文中的头字符后,将所述当前置换步长减1,返回步骤c3;或
所述当前置换步长小于所述密文的长度时,获取所述密文中需置换的当前字符及其前一字符在所述S盒中分别对应的矩阵坐标,以及所述当前字符在所述七阶幻立方中的坐标,并进一步导入预设的第二坐标变换公式中进行转换,得到所述当前字符对应的新矩阵坐标,且根据所述得到的当前字符对应的新矩阵坐标,在所述S盒中获取对应的置换字符来替换所述密文中的当前字符后,将所述当前置换步长减1,返回步骤c3;
C5、如果是,则所述密文置换完成,并将所述置换完成后的密文输出。
6.如权利要求1所述的明文加密方法,其特征在于,在所述步骤a之前,所述方法还包括:
采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
7.如权利要求6所述的明文加密方法,其特征在于,所述采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥的具体步骤包括:
采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域;其中,所述单一纹路走势为第一纹路走势、第二纹路走势、第三纹路走势、第四纹路走势之中其一;
定义所述编码规则;其中,所述编码规则包括赋予所述第一纹路走势对应的二进制编码为00、赋予所述第二纹路走势对应的二进制编码为01、赋予所述第三纹路走势对应的二进制编码为10和赋予所述第四纹路走势对应的二进制编码为11;
按照从上之下,从左至右的扫描方式扫描所述指纹图像,依序得到所述多个图形区域所含纹路走势,并根据所述编码规则分别对所述依序得到的纹路走势赋予二进制编码,且进一步将所述依序赋予的二进制编码汇总成所述二进制数作为所述用于加密的密钥。
8.一种基于七阶幻立方的明文加密系统,其特征在于,所述系统包括:
七阶幻立方构建单元,用于获取用于加密的密钥,且根据所述获取到的密钥生成一七阶幻立方的初始坐标,并进一步以所述生成的初始坐标为起点逐渐构建出所述七阶幻立方;其中,所述密钥由一定长度的二进制数组成;所述七阶幻立方由具有1至7层的7*7矩阵形成,且其所设置的坐标变量包括行数、列数和层数;
明文加密单元,用于确定明文,并根据所述构建完毕后的七阶幻立方,对所述明文进行重新排序,得到密文;
密文置换单元,用于获取所述明文根据ASCII码排列成矩形后形成的S盒,并根据所述获取到的S盒,将所述得到的密文进一步进行字符置换加密后输出。
9.如权利要求8所述的明文加密系统,其特征在于,所述明文加密系统还包括:
基于指纹识别的密钥生成单元,用于采集用户指纹图像,并将所述指纹图像划分成多个具有单一纹路走势的图形区域,且根据预设的扫描方式扫描所述指纹图像,依序得到所述多个图形区域根据预设的编码规则分别赋予其所含纹路走势的二进制编码,并进一步将所述多个图形区域对应二进制编码汇总形成二进制数作为所述用于加密的密钥。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510829880.8A CN105281894B (zh) | 2015-11-25 | 2015-11-25 | 一种基于七阶幻立方的明文加密方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510829880.8A CN105281894B (zh) | 2015-11-25 | 2015-11-25 | 一种基于七阶幻立方的明文加密方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105281894A true CN105281894A (zh) | 2016-01-27 |
CN105281894B CN105281894B (zh) | 2018-10-23 |
Family
ID=55150291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510829880.8A Active CN105281894B (zh) | 2015-11-25 | 2015-11-25 | 一种基于七阶幻立方的明文加密方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105281894B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357608A (zh) * | 2016-08-19 | 2017-01-25 | 银江股份有限公司 | 一种面向个人医疗健康数据的隐私数据加密及解密方法 |
CN109951268A (zh) * | 2019-02-18 | 2019-06-28 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
CN111079163A (zh) * | 2019-12-16 | 2020-04-28 | 国网山东省电力公司威海市文登区供电公司 | 加解密信息系统 |
CN112202757A (zh) * | 2020-09-27 | 2021-01-08 | 贵州航天计量测试技术研究所 | 一种地理坐标保型加密方法 |
CN112367157A (zh) * | 2020-10-31 | 2021-02-12 | 深圳供电局有限公司 | 一种物联网环境加密方法及装置 |
CN113239067A (zh) * | 2021-04-30 | 2021-08-10 | 国网河北省电力有限公司沧州供电分公司 | 一种确权证书的防伪方法 |
CN115396092A (zh) * | 2022-08-26 | 2022-11-25 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110944A (zh) * | 2007-08-31 | 2008-01-23 | 湖北科创高新网络视频股份有限公司 | 一种视频数据的加密方法和装置 |
CN101840485A (zh) * | 2010-05-19 | 2010-09-22 | 韩萧 | 文件混序分割存储与合成互验的方法 |
CN101894359A (zh) * | 2010-07-13 | 2010-11-24 | 北京信息科技大学 | 图像置乱加密方法 |
CN103985081A (zh) * | 2014-05-27 | 2014-08-13 | 辽宁大学 | 一种基于提升小波变换的数字图像多重置乱方法 |
-
2015
- 2015-11-25 CN CN201510829880.8A patent/CN105281894B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110944A (zh) * | 2007-08-31 | 2008-01-23 | 湖北科创高新网络视频股份有限公司 | 一种视频数据的加密方法和装置 |
CN101840485A (zh) * | 2010-05-19 | 2010-09-22 | 韩萧 | 文件混序分割存储与合成互验的方法 |
CN101894359A (zh) * | 2010-07-13 | 2010-11-24 | 北京信息科技大学 | 图像置乱加密方法 |
CN103985081A (zh) * | 2014-05-27 | 2014-08-13 | 辽宁大学 | 一种基于提升小波变换的数字图像多重置乱方法 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357608A (zh) * | 2016-08-19 | 2017-01-25 | 银江股份有限公司 | 一种面向个人医疗健康数据的隐私数据加密及解密方法 |
CN106357608B (zh) * | 2016-08-19 | 2019-05-24 | 银江股份有限公司 | 一种面向个人医疗健康数据的隐私数据加密及解密方法 |
CN109951268A (zh) * | 2019-02-18 | 2019-06-28 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
CN109951268B (zh) * | 2019-02-18 | 2020-12-22 | 吉林大学珠海学院 | 基于位置换和位变换的加密解密方法和装置 |
US11750375B2 (en) | 2019-02-18 | 2023-09-05 | Zhuhai College of Science and Technology | Encryption and decryption method and device based on bit permutation and bit transformation |
CN111079163A (zh) * | 2019-12-16 | 2020-04-28 | 国网山东省电力公司威海市文登区供电公司 | 加解密信息系统 |
CN112202757B (zh) * | 2020-09-27 | 2023-02-14 | 贵州航天计量测试技术研究所 | 一种地理坐标保型加密方法 |
CN112202757A (zh) * | 2020-09-27 | 2021-01-08 | 贵州航天计量测试技术研究所 | 一种地理坐标保型加密方法 |
CN112367157A (zh) * | 2020-10-31 | 2021-02-12 | 深圳供电局有限公司 | 一种物联网环境加密方法及装置 |
CN112367157B (zh) * | 2020-10-31 | 2023-05-12 | 深圳供电局有限公司 | 一种物联网环境加密方法及装置 |
CN113239067A (zh) * | 2021-04-30 | 2021-08-10 | 国网河北省电力有限公司沧州供电分公司 | 一种确权证书的防伪方法 |
CN115396092A (zh) * | 2022-08-26 | 2022-11-25 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
CN115396092B (zh) * | 2022-08-26 | 2023-09-12 | 河南天一智能信息有限公司 | 一种智能心功能治疗系统的数据管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105281894B (zh) | 2018-10-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105281894A (zh) | 一种基于七阶幻立方的明文加密方法和系统 | |
Liao et al. | An efficient mixed inter-intra pixels substitution at 2bits-level for image encryption technique using DNA and chaos | |
Mirzaei et al. | A new image encryption method: parallel sub-image encryption with hyper chaos | |
CN103141056B (zh) | 秘密分散系统、秘密分散装置、秘密分散方法、秘密分类方法、秘密分散程序 | |
CN105046161A (zh) | 基于dna动态编码的彩色图像加密方法 | |
CN111401572B (zh) | 基于隐私保护的有监督特征分箱方法及装置 | |
CN106327414A (zh) | 一种基于明文自身特性的双混沌图像加密方法 | |
CN105468990A (zh) | 一种敏感信息的管理控制方法和装置 | |
CN101604439A (zh) | 一种基于多混沌系统的彩色图像加密方法 | |
CN105917381A (zh) | 基于双随机相位图像编码系统的密码学破解方法和装置 | |
CN106598882A (zh) | 一种安全的内存数据保护方法及装置 | |
CN115865953B (zh) | 一种基于跨境支付的分布式存储系统 | |
CN103095449A (zh) | 一种基于流密码的动态加密解密方法 | |
CN104750784A (zh) | 一种基于Merkle树结构的空间查询完整性验证方法 | |
CN105281898A (zh) | 密钥生成装置及方法 | |
CN115766962A (zh) | 一种基于五维保守超混沌系统的多密钥图像加密方法 | |
CN107665298A (zh) | 基于图形的密码生成系统及方法 | |
CN104202147B (zh) | 一种基于地理信息产品特征的加密方法 | |
CN108932434A (zh) | 一种基于机器学习技术的数据加密方法及装置 | |
CN103873239B (zh) | 基于偶数公钥密码体制应用的偶数素数对的快速生成方法 | |
Chattopadhyay et al. | A verifiable (n, n) secret image sharing scheme using XOR operations | |
CN101000582A (zh) | 一种存储器数据加密装置和方法及其解密装置及方法 | |
CN115665341B (zh) | 一种用于图像数据的加密方法及加密系统 | |
JP2013225078A (ja) | 分散装置、復元装置、分散方法、復元方法及び分散復元システム | |
CN106357662B (zh) | 一种基于mac地址的数据加密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |