一种密码的制作方法

文档序号:10624998阅读:232来源:国知局
一种密码的制作方法
【专利摘要】一种需要硬件提供加密数据的密码,它是通过三方或三方以上的数据在计算机终端合成的密码,这种密码组合数非常多,采用了多项反逆向破解技术,暴力破解,词典破解密码法难以实现,由于实现动态密码和硬件数据结合,加强了银行卡等领域的密码安全。
【专利说明】
—种密码
技术领域
[0001]本发明属于密码技术。
【背景技术】
[0002]下面先介绍常用的密码的大致情况:
我们所使用的密码是一个通俗说法,实际是“ 口令”(password),不过口令和密码在设计和原理方面有很多相似性,现代的password都是利用程序设定一个加密协议,即通过一定的算法保障加密的一致性以方便不同的终端进行验证,password的作用就是防止未经授权的人进行访问,password分为四类,即终端依据持卡人输入结果进行加密的,这种密码缺陷就是只要别人偷看或知晓输入结果,就可以获得正确的密码,一般网站的MD5密码就是这种,一种是硬件式的,需要硬件和人工输入结合,比方说U盾和IC卡密码,它们大多数时候是基于非对称密钥算法的,还有一种是生物密码,也就是利用人体某些器官或组织的一些特殊结构终身具有一定的稳定性和单一性,这种特殊结构能够被计算机系统读取的验证码,比方说指纹或虹膜,这类密码的缺点是持卡人无法主动修改,欠缺能动性,而且服务器存贮的数据与检验的数据并不完全一致,需要利用模糊算法通过比较获得答案,模糊算法很耗系统资源,目前的服务器系统很难承担大量的指纹请求验证,多用于本地验证,而量子密码是目前保密性能最好的密码,不过,量子密码是点点发射,其传输距离有限,暂时没有应用于银行卡。
[0003]MD5是一种唯一的信息散列值算法,它是一种不可逆的加密算法,MD5对一个具体的原始密码有一个唯一的对应加密值,这为词典或暴力破解法提供了便利,尤其银行卡密码本身并不是很复杂,破解MD5密码也相对比较容易。
[0004]而非对称算法主要是利用公钥(publickey)与(privatekey)私钥算法,也就是公钥加密则私钥解密,私钥加密则公钥解密,公钥与私钥是一一对应的而且只使用一次,非对称算法从理论上比MD5算法的安全性要高,但是,由于IC卡或U-key是一个微型计算机系统,假如黑客恶意编写病毒程序,通过柜员机系统传播病毒或进行破坏活动,这个问题也不好解决。

【发明内容】

[0005]发明目的:设计一种基于硬件提供部分数据的密码,加大密码的破解难度。
[0006]技术方案:这种密码是基于轻便式硬件提供部分数据的密码算法,至少需要三方提供密码合成的数据,这些数据的特点是人员输入的数据可以比较简单,而硬件是利于携带的数据存贮介质,其数据可以被计算机终端读取,存贮的数据相对复杂一些,终端计算机提供复杂的数据并完成密码合成,终端计算机提供的数据分为合成数据和同类数据表,通过这些同类数据表为中间数据完成加密过程,服务器存贮的是通过合成后的数据,在密码更改方面,通过更改硬件存贮介质中的可读写数据完成或者设计程序在密码验证完成后硬件存贮介质中的可读写数据自动完成更改,然后将新密码发送到服务器,这样形成动态密码,这些利于携带的硬件数据存贮介质是磁条,IC卡,记忆棒,射频卡,手机内存卡,轻便式数码产品的自带数据存贮卡或外接式存贮卡,光盘,U盘,硬盘以及通过印刷,喷涂,压制,打印方法获得的数据,通过印刷,喷涂,打印方法获得的条形码,二维码和明文数据,在抵达消费者之前手中最好利用油漆或涂料这些物理方法进行遮盖。
[0007]有益效果:这种设计可以适用于任何能读取硬件数据的计算机系统,采用的终端合成密码技术由于需要提供几方数据,只要有一方数据没有被他人知晓,就能保证系统安全,由于终端合成密码的密码组合数非常多,加大了密码破解的难度,特别是银行卡,与目前的磁卡和芯片卡比较,终端合成密码的安全强度和芯片卡的密码差不多,却没有芯片卡的病毒安全隐患,由于本设计也可以基于磁条卡提供的数据来加密,卡片费用低廉。
[0008]【具体实施方式】:本说明书论述的实施方式介绍了实施本专利的一般的过程,但实施本专利并不一定需要完全遵循这里描述的过程,它仅是实施本专利的一个特例。
[0009]实施例1:银行卡加密,为了方便描述和便于比较,实施例1所指的输入密码和现有银行卡的用户密码是完全一致的,取值都是六位阿拉伯数字,这里记为inputdata,即输入数据.而硬件提供的密码数据记为hardwaredata,即硬件数据,计算机终端提供的合成数据记为computerTerminaldata,即计算机终端数据,计算机终端提供的数据表记为computerTerminalsheetο
[0010]加密流程图说明,直线表示几部分数据组合,单箭头表示流程方向,双箭头表示流程的先后顺序可以更换,同一级流程并列的几个单箭头表示进入下一级流程可以从这些单箭头中的任意一个开始,此外,计算机终端提供的数据是为了方便低存贮容量的硬件存贮介质设计的,比较常见的低存贮容量的数据存贮介质是磁条,对于大容量的存贮介质,可以由硬件存贮介质提供复杂数据,直接进入下一步加密流程,也可以和计算机终端提供的数据合并后进入下一步,见曲线箭头部分,在加密流程图中,是输入密码和硬件数据进行加密,在实际设计中,也可以是硬件存贮的几种数据进行加密,例如扫描刮开的二维码,条形码或明文字符进行加密,获得多个密码,其原理类似,加密流程图见图1。
[0011]
1:引进计算机终端的数据,硬件存贮介质是磁条的或者硬件存贮介质设计引进计算机终端的数据,则需要引进数据,磁条的数据分为几组,而计算机终端的数据存贮在数据表中,从获得的磁条数据匹配值和计算机终端数据的ID号进行匹配,引进的是ID号对应的数据,硬件存贮介质设计引进计算机终端的数据和此原理相同,例如磁条数据获得两组匹配值为6302,1958,则查找ID号6302,1958对应的数据引进即可。
[0012]2:获取截取字符的起始位置值,在截取字符的函数中,需要三个元素,即待截取字符,截取的位数和截取的起始位置,以substring (express1n, start, length)函数为例,其中express1n表示待截取字符,length表示截取的位数,start即表示截取的起始位置,这里的中间值一般是截取的起始位置值,将输入密码和硬件提供的数据进行运算,获得新数据,要注意,新数据必需是有效值,可以利用取余函数对运算结果进行限制,例如在银行卡密码加密中,可以将输入密码的6个数字进行分拆,将6个数字和磁条中的6组数字相乘,将结果利用取余函数获得合适的值,start据此获取匹配值从而截取字符。
[0013]3:进制转换:进制转换采用进制数大于原数据的进制数,这样进制表示字符多于原数据的进制表示字符,在进制转换的过程中引进该进制的表示字符,当进制数超过10,0至IJ 9不能满足计数要求,需要引进别的字符,比较常见的是引进英文字母,这样,10进制数据可以变成数字和字母混合的数据,也可以将字母和数字混合的数据变成纯数字数据,利用大于10的数制转换10进制数据时,可以缩短字符长度,将38位10进制数据转换成62进制数据后,只有21位,示例是利用数字与大小写字母表示这种数制,它们指定利用阿拉伯数字O到9表示O到9,字母的小写a到z表示10到35,字母的大写A到Z表示36到61,亦可以有其他的指定方案,后面部分讲述的数字或字母的本位码,转码算法也遵循同样的规律,进制转换表见图2。
[0014]4:组合成一组,将几组数据组合成一组,可以是简单组合,就是按字符先后顺序形成一组长数据,也可以是后面提到的重排等方法进行组合,一般就是简单组合。
[0015]5:截取字符,将第2部分获得的数据作为截取字符的函数的起始位置值,截取第4部分的长数据,获得几组新数据,例如银行卡密码是获得6组新数据,这6组新数据每组又分成2组。
[0016]6:字符转码:字符转码是利用字符转码算法实现的,用一个字符或一组字符获得另一个字符或一组字符的转换算法,示例是数字与字母的转码算法,转码算法遵循以下规律:
I:不同的源码相同的算法转换之后结果是不能相同的;
2:同一源码的几种算法的转换结果互相也不能相同;
3:转码的结果也不能与源码相同;
4:转码要设置几种转码算法,以强化密码的组合复杂性,
示例是设置四种,即ABCD算法,它是以数字和字母的本位码为基础条件进行转换的,数字O到9的本位码分别是数字O到9,小写字母a到z的本位码分别是数字10到35;大写字母A到Z的本位码分别是数字36到61,
在ABCD算法中,其中A算法,B算法,C算法是以本位码为基础进行的数学运算,但是D算法经过人工调整,没有什么算法规律,
A算法:数字或字母的本位码加该本位码后的第2位奇数就是此数字或字母的A码转码算法,结果> 62的,就减62,记载其本位码对应的数字或字母,转码记为A ;
B算法:数字或字母的本位码加该本位码后第13位奇数就是此数字或字母的B码,转码算法,结果> 62的,就减62,记载其本位码对应的数字或字母,转码记为B ;
C算法:数字或字母的本位码加30就是该数字或字母的C码转码算法,结果> 62的,就减62,记载其本位码对应的数字或字母,转码记为C ;
D算法:D算法部分遵循数字或字母的本位码加该本位码后的第3个偶数就是该数字或字母的D码转码算法,结果> 62的,就减62,为了防止数据相同性冲突,做了部分位置调整,记载其本位码对应的数字或字母,转码记为D,从它的设计原理可以知道,转码前后的每一个数字和字母都不会相同,这是一个最基本的设计要点,调用时,A算法,B算法,C算法都可以直接使用数据表调用,也可以使用数学运算换算,但是,D算法经过了人工调整,需要使用数据表调用,转码算法表见图3
转码表:待转码的每个字符作为源码,经过一定的规则转换成另外一个字符,确定转码方向的规则和转码引导值的对照表就是转码表,转码引导值就是ID号,它的特征如下:
转码位数由需要转码的源码位数确定; 转码的方向由转码算法确定,示例是ABCD算法,所以转码只能是A,B,C,D方向;
转码引导值的位数最大值由源码位数和转码算法确定,具体是转码算法的源码位数的次方,转码算法为N种,源码位数为M,则转码引导值的位数为N的M次方;
转码引导值由源码获取,将源码转换成10进制数据,将10进制数据除以转码引导值的位数,利用余数获得匹配值,就查找该匹配值对应的ID号对应的数据进行转码,转码表见图4。
[0017]转码流程说明:转码是将源码转换成别的字符的加密过程,转码先由通过计算获得的数据表连接路径变量连接对应的转码表,再通过ID匹配值连接该ID号对应的转码规则值,确定转码方向,查找转码算法表中转码方向值和源码字符对应的矩阵数据,完成转码,转码是一个字符进行的,也可以是将第5部分获得的数据两两进行转码,是其中一组数据经过运算获得另一组数据需要的转码表的数据表连接路径变量值和数据表的数据ID号,反之亦然,转码最好进行多次以强化反破解能力,转码流程示意图表见图5,
7:字符组合:字符组合和第4部分的原理相同。
[0018]8:替代部分字符,替代部分字符是将字符中的部分字符用别的字符替代的一种加密技术,字符替代有以下技术要点,字符替代码表所有的表采用的所有字符类型都是相同的,不同的表只是字符与编号不同,取代后的字符与没有替代的字符有相同的字符类型,被替换的字符是同一类型的字符,比方说要替换数字,那么就替换全部的数字,被替换的字符应一次替换几个,而插入字符的位置,利用逻辑语句进行判断,这会加大破解难度,替代的字符数不一定是相同的,替代要利于编程设计和实际需要,应从替代后的字节数和反破解获得最佳方案,只所以限制所有的字符替代码表所有的字符都是相同的,取代后的字符与没有替代的字符有相同的字符类型都是防止破解,所有的表的数据相同,破解就难以知道替代的是哪一张数据表,而取代后的字符与没有替代的字符有相同的字符类型也是防止破解,因为字符类型相同,就难以区分替代字符和原有字符,这里的字符类型是语种符号类型,比方英文大小写字母和阿拉伯数字就是不同的语种字符,与计算机表述的数据字符类型不是一个概念,
示例是用英文大小写字母替换数字字符,计算机终端具有替代字符表,将字符中的所有数字字符提取出来,按和字符替代码表ID号最高位数相同的位数进行截取,示例字符替代表是三位,所以三位一组进行,查找ID号对应的字符进行替换,而插入位置是原数字中的位置,具体位置利用编程确定,将数字除以3,利用余数的匹配值,这里要注意是匹配值不是余数值,例如余数加I匹配,所以余数是O便插入替代前原数字中第一位数字的位置,其他同理,最后一组数字只有2个或I个时,2个的除以2求余数,I个则插入原数字位置,插入后将空格清空例如2nbfDG89ACFEab8th,将数字提取出来是289和8,查找这2两个ID号对应的替代字符,为Ag和Bk,289除以3,余数是1,插入8的位置,因此是nbfDGAgACFEabBkth,由于替代的字符位数不等,所以最终密码的位数是不确定的,替代字符表见图6。
[0019]
9:重排字符位置,重排字符位置由排列控制表完成,经过转码加密后的密码的排列次序是与原始密码的排列次序是一致的,合成过程中改变密码排列次序的表就是密码排列控制表,利用字符分割函数或字符排列函数将密码分成几部分后进行重排,重排是将所有的密码数据形成一个长数据,利用分割或排列函数分割成几组数据,再将这几组数据的顺序重新排序,为了强化反破解效果,分割的组数和重排前的组数不一致,这样,不光是顺序发生了改变,字符也被打乱次序。
[0020]10:同类数据表,同类数据表就是字段结构,数据类型,字段名称和记录条数都相同,而数据表名称由公共名称部分和数据表连接路径变量部分组成的多个数据表,编程时通过数据表连接路径变量的匹配值连接到对应的数据表,需要注意的是,由于数据表连接路径变量是通过其他数据经过编程处理获得,简便方法是利用取余函数获得匹配值,为了防止出现空连接,同类数据表名称中连接路径变量部分必须是连续整数,可以从O开始,
【附图说明】:图1是加密流程示意图;图2是10进制和62进制进制转换对照表;图3是转码算法表;图4是转码表;图5是转码流程示意图;图6是替代字符表。
【主权项】
1.一种需要使用硬件数据的密码,其特征是:这种密码是在计算机终端合成的,终端合成密码是基于轻便式硬件提供部分数据的密码算法,至少需要三方提供密码合成的数据,这些数据的特点是人员输入的数据可以比较简单,而硬件是利于携带的数据存贮介质,其数据可以被计算机终端读取,存贮的数据相对复杂一些,终端计算机提供复杂的数据并完成密码合成,终端计算机提供的数据分为合成数据和同类数据表,通过这些同类数据表为中间数据完成加密过程,服务器存贮的是通过合成后的数据,在密码更改方面,通过更改硬件存贮介质中的可读写数据完成或者设计程序在密码验证完成后硬件存贮介质中的可读写数据自动完成更改,然后将新密码发送到服务器,这样形成动态密码,这些利于携带的硬件数据存贮介质是磁条,IC卡,记忆棒,射频卡,手机内存卡,轻便式数码产品的自带数据存贮卡或外接式存贮卡,光盘,U盘,硬盘以及通过印刷,喷涂,压制,打印方法获得的数据,通过印刷,喷涂,打印方法获得的条形码,二维码和明文数据,在抵达消费者之前手中最好利用油漆或涂料这些物理方法进行遮盖。2.依据权利要求1所述的密码,所述的同类数据表其特征是:同类数据表就是字段结构,数据类型,字段名称和记录条数都相同,而数据表名称由公共名称部分和数据表连接路径变量部分组成的多个数据表,编程时通过数据表连接路径变量的匹配值连接到对应的数据表,需要注意的是,由于数据表连接路径变量是通过其他数据经过取余函数处理获得,同类数据表名称中连接路径变量部分必须是连续整数,可以从O开始。3.依据权利要求1所述的密码,所述的合成过程其特征是,见说明书附图1,直线表示几部分数据组合,单箭头表示流程方向,双箭头表示流程的先后顺序可以更换,同一级流程并列的几个单箭头表示进入下一级流程可以从这些单箭头中的任意一个开始,此外,计算机终端提供的数据是为了方便低存贮容量的硬件存贮介质设计的,比较常见的低存贮容量的数据存贮介质是磁条,对于大容量的存贮介质,可以由硬件存贮介质提供复杂数据,直接进入下一步加密流程,也可以和计算机终端提供的数据合并后进入下一步,见曲线箭头部分,在加密流程图中,是输入密码和硬件数据进行加密,在实际设计中,也可以是硬件存贮的几种数据进行加密,例如扫描刮开的二维码,条形码或明文字符进行加密,获得多个密码,其原理类似。4.依据权利要求3所述的密码的合成过程,所述的转码其特征是,字符转码是利用字符转码算法实现的,用一个字符或一组字符获得另一个字符或另一组字符的转换算法,转码先由通过计算获得的数据表连接路径变量连接对应的转码表,再通过ID匹配值连接该ID号对应的转码规则值,确定转码方向,查找转码算法表中转码方向值和源码字符对应的矩阵数据,完成转码,转码是一个一个字符进行的,转码由获得的源码数据进行转码,是将数据经过运算获得数据表连接路径变量值和数据表的数据ID号,转码最好进行多次以强化反破解能力,转码流程示意图表例图见图5, 其中的转码算法遵循以下规律: I:不同的源码相同的算法转换之后结果是不能相同的; 2:同一源码的几种算法的转换结果互相也不能相同; 3:转码的结果不能与源码相同; 4:转码要设置几种转码算法,以强化密码的组合复杂性, 转码转换前后的每一个数字和字母都不会相同,这是一个最基本的设计要点,转码算法表例图见图3, 其中的转码表是待转码的每个字符作为源码,经过一定的规则转换成另外一个字符,确定转码方向的规则和转码引导值的对照表就是转码表,转码引导值就是ID号,它的特征如下:转码位数由需要转码的源码位数确定,转码的方向由转码算法确定,转码引导值的位数最大值由源码位数和转码算法确定,具体是转码算法的源码位数的次方,转码算法为N种,源码位数为M,则转码引导值的位数为N的M次方, 转码引导值由源码获取,将源码转换成10进制数据,将10进制数据除以转码引导值的位数,利用余数获得匹配值,就查找该匹配值对应的ID号对应的数据进行转码,转码表例图见图4。5.依据权利要求3所述的密码的合成过程,所述的替代部分字符其特征是,替代部分字符是将字符中的部分字符用别的字符替代的一种加密技术,字符替代有以下技术要点,字符替代码表所有的表采用的所有字符类型都是相同的,不同的表只是字符与编号不同,取代后的字符与没有替代的字符有相同的字符类型,被替换的字符是同一类型的字符,被替换的字符应一次替换几个,而插入字符的位置,利用逻辑语句进行判断,替代的字符数不一定是相同的,这里的字符类型是语种符号类型,比方英文大小写字母和阿拉伯数字就是不同的语种字符,与计算机表述的数据字符类型不是一个概念,替代字符表例图见图6。6.依据权利要求3所述的密码的合成过程,所述的重排字符位置其特征是,重排字符位置由排列控制表完成,合成过程中改变密码排列次序的表就是密码排列控制表,利用字符截取函数或字符排列函数将密码分成几部分后进行重排,重排是将所有的密码数据形成一个长数据,再分割成几组数据,再将这几组数据的顺序重新排序,为了强化反破解效果,分割的组数和重排前的组数不一致。7.依据权利要求3所述的密码的合成过程,所述的进制转换其特征是,进制转换采用进制数大于原数据的进制数,这样进制表示字符多于原数据的进制表示字符,,在进制转换的过程中引进该进制的表示字符,并减少数据长度,较优方案是采用英文大小写字母和阿拉伯数字混合表示的62进制和10进制进行转换,62进制例图见图2。8.依据权利要求3所述的密码的合成过程,所述的截取字符其特征是,截取字符需要三个元素组成,待截取字符,截取的字符长度和截取的起始位置,截取的起始位置值由输入的密码和硬件提供的数据获得,较优方案是利用取余函数获得截取的起始位置值的匹配值。9.依据权利要求3所述的密码的合成过程,所述的字符组合其特征是,字符组合就是将所有的字符组合成一个长数据,为下一步的截取字符或分割字符成几组之用。
【文档编号】G06F21/77GK105989309SQ201510085727
【公开日】2016年10月5日
【申请日】2015年2月17日
【发明人】汪风珍
【申请人】汪风珍
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1