终端合成密码的制作方法

文档序号:6519833阅读:240来源:国知局
终端合成密码的制作方法
【专利摘要】终端合成密码是采用持卡人输入的数据与银行卡带有的数据结合,利用银行卡携带的数据等作为数据表或数据连接路径变量,利用具有密码运算能力的终端设备(柜员机)等设置相应的数据表和数据,据此引入终端程序的数据而获得的一种多密码,这种密码只需要银行卡提供非常简单的数据就能获得非常复杂的密码,其密码运算交由终端计算机系统完成,这样,就可以使用原理相对简单的不能传播病毒的磁卡类银行卡,避免了IC卡能够携带或传播病毒的弊端。
【专利说明】终端合成密码
[0001]一:所属领域:本发明属于银行卡的密码技术。
[0002]二:【背景技术】:下面先介绍常用的银行卡密码的大致情况,
[0003]我们所使用的密码是一个通俗说法,实际是通行码(password),不过通行码和密码在设计和原理方面有很多相似性,现代的密码都是利用程序设定一个加密协议,即通过一定的算法保障加密的一致性以方便不同的终端进行验证,密码的作用就是防止未经授权的人进行访问,密码这里分为三类,即终端依据持卡人输入结果进行加密的,这种密码缺陷就是只要别人偷看或知晓输入结果,就可以获得正确的密码,一般网站的MD5密码就是这种,一种是硬件式的,需要硬件和人工输入结合,比方说U盾和IC卡密码,它们是基于1024位非对称密钥算法的,还有一种是生物密码,也就是利用人体某些器官或组织的一些特殊结构终身具有一定的稳定性和单一性,这种特殊结构能够被计算机系统读取的验证码,t匕方说指纹或虹膜,这类密码的缺点是持卡人无法主动修改,欠缺能动性,而且服务器存贮的数据与检验的数据并不完全一致,需要利用模糊算法通过比较获得答案,模糊算法很耗系统资源,目前的服务器系统很难承担大量的指纹请求验证,多用于本地验证,
[0004]MD5是一种唯一的信息散列值算法,它是一种不可逆的加密算法,MD5对一个具体的原始密码有一个唯一的对应加密值,这为词典或暴力破解法提供了便利,尤其银行卡密码本身并不是很复杂,破解MD5密码也相对比较容易;
[0005]而非对称算法主要是利用公钥(publickey)与(privatekey)私钥算法,也就是公钥加密则私钥解密,私钥加密则公钥解密,公钥与私钥是一一对应的而且只使用一次,非对称算法从理论上比MD5算法的安全性要高,但是,由于IC卡或U-key是一个微型计算机系统,假如黑客恶意编写病毒程序,通过柜员机系统传播病毒或进行破坏活动,这个问题也不好解决。
[0006]三:发明目的:设计一种多密码,加大现有银行卡特别是磁卡类银行卡(含存折)的密码破解难度。
[0007]四:技术方案:基于硬件的终端合成密码,它是银行卡专用密码,本发明把银行卡当成动态数据库与静态数据库存贮介质,动态数据就是银行卡数据存贮介质中的可读写数据,它们的改写受服务器端控制,静态数据就是不能改写的数据,终端合成密码就是通过银行卡提供的动态数据或其他数据作为数据表或是数据连接路径变量或者是部分密码数据,利用它们从终端程序数据库中选择性的获得复杂的数据参与合成或控制的密码,用户密码,预警密码,背面密码与指纹密码都是利用终端合成密码原理合成的,这种密码可以适用任何银行卡,采用磁条数据设计这种密码可以有效防止病毒侵入银行卡支付系统。
[0008]五:有益效果:这种设计可以适用任何银行卡,采用的终端合成密码技术由于需要提供几方数据,只要持卡人有一方数据没有被他人知晓,就能保证卡内资金安全,由于终端合成密码的密码组合数非常多,加大了密码破解的难度,与目前的磁卡和芯片卡比较,终端合成密码的安全强度和芯片卡的密码差不多,却没有芯片卡的病毒安全隐患,由于本设计也可以基于磁卡原理,卡片费用低廉。
[0009]六:【具体实施方式】:本说明书论述的实施方式介绍了实施本专利的一般的过程,但实施本专利并不一定需要完全遵循这里描述的过程,它仅是实施本专利的一个特例,为了方便描述,本说明书所指的输入密码和现有银行卡的用户密码是完全一致的,取值都是六位阿拉伯数字,终端合成密码就是通过银行卡提供的动态数据或其他数据作为数据表或是数据连接路径变量或者是部分密码数据,利用它们从终端程序数据库中选择性的获得复杂的数据参与合成或控制的密码,终端合成密码有两种合成方式,一种是直接合成,也就是将两种或两种以上的数据利用一定的编程规则合成新数据,然后利用MD5之类的软件加密,但是,磁卡本身无法提供太复杂的数据,利用这种方法合成的密码安全等级不是很高,这里不建议采用,还有一种是间接合成,本发明例举的就是间接合成,它与U盾或芯片卡通过自身微电脑提供的密码加密程序合成密码的原理有区别,它是由持卡人提供的密码与银行卡提供的动态或静态数据为原始密码或原始密码的中间数据,利用具有密码运算能力的终端设备(手机,柜员机与家用电脑等)提供的程序生成的电子加密数据,终端合成密码在网上银行,手机银行与柜员机使用的是不同的密码,不过,柜员机与POS机使用的是相同的密码,
[0010]它大致由
[0011]1:引进字符串;
[0012]2:截取字符串;
[0013]3:进制转换;
[0014]4:字符串字符转换;
[0015]5:改变排列位置;
[0016]6:替代部分字符
[0017]这6步组成,通过采用其中的一种或多种加密方法综合形成的电子数据,引起字符串就是由简单字符引进数据比较复杂,比较长的字符串;而截取字符串就是只截取引进的字符串的一部分数据,或者是改变原字符的位置等编程方法;进制转换就是将原数据转换成另一种进制的数据;字符串字符转换就是把一个字符转换成另一个字符或者是把一组字符转换成另一组字符,每个字符的转换遵循一定的编程规则;替代部分字符就是把部分字符替代成另一种形式的字符,替代后的字符与没有替代的字符存在相同的部分字符,以及替代插入点使用逻辑判断,这些合成方法可以有先后顺序的不同,前提是方便设计即可,
[0018]终端合成密码的合成方式:其基本特征就是由银行卡的动态数据提供数据表连接路径变量或指定部分数据的位置等;银联终端设备等存贮一定数量的数据表,它们在同一数据库下(在编程时,一般都是先连接数据库,再连接数据表),数据表名称形式AB,如果A相同而B不相同(A为数据表主名称,B为阿拉伯数字序号),就表示它们为同一类型数据表,数据结构包括字段和数据类型都相同,只有数据不同,示例中是指字符替代码表,转码表和密码排列控制表,举例sql语句select*from chinese_FourCodeB表示链接到字符替代码表,chines^FourCode就是数据表名称形式的A,B就是银行卡的动态数据提供的连接路径变量,假如银行卡对应的此数据B为7,就是通过编程语句指定链接到表名为chineSe_FourCode7的字符替代码表,转码表和密码排列控制表的连接原理也是一样,程序据此连接到指定的数据表,为了安全,连接数据可以分为公有数据表连接路径变量与私有数据表连接路径变量数据,用户密码,背面密码在合成各自的终端合成密码时采用公有数据表路径变量指向同一个转码表和密码排列控制表,但是密码加载码表只有一个,程序在获取密码加载码时是通过银行卡提供的几组数据,这几组数据与密码加载码的ID号按照一定的编程规则连接,也就是数据为C(C只能为阿拉伯数字),就把C经过编程处理,获得一个数据,就连接该数据对应的ID号进而获得密码加载码,它也是公有连接,而字符替代码表是私有连接;可以通过改写它们修改密码,背面密码只能由持卡人在柜员机完成初始化,这里的初始化会同时初始化隐形卡号和身份证号码替代码,虽然各种数据表可以自由设计,但是,程序设计完成后,所有的数据表及数据以及合成规则在所有的同一类型的实体终端是完全一样的,这样,在每一台同一类型的实体终端上,都会获得完全一致的密码数据,也就是说这种密码设计同样遵循所有的同一类型的实体终端密码算法一致这个基本原理,而网银与手机银行的初始化工作在 申请人:在柜台申请开卡之后就可以进行,它们并没有先后顺序,持卡人申请开通相应的服务即可,网银的存贮模块与磁条的非常相似,手机银行程序没有数据表连接路径变量B这个选项,是直接利用对应的数据表加密,也就是相应的数据表程序中只有一个,合成之后,把扫描到的二维码等智能手机能够识别的数据和加密后的数据进行加密即可,发送数据时,为了安全,可以利用电话卡的后台锁定技术等辅助锁定交易者的身份,
[0019]下面介绍终端合成密码需要的专用术语及其定义以及数据表示例设计:
[0020]A:62进制,这里的62进制是指采用62位字符表示的一种数制,这种数制可以和10进制数据或2进制数据完成互换,本发明利用数字与大小写字母表示这种数制,它们是指定利用阿拉伯数字0到9表示0到9,字母的小写a到z表示10到35,字母的大写A到Z表示36到61的的数制算法,也可以有其他的指定方案,后面部分讲述的数字或字母的本位码,转码算法等也遵循同样的规律,本发明中,密码加载码表示区段为十进位00000 (0)到99999,相应的62进制为000(0)到qOT,也就是说,将十进制的五位数变成了三位数字与字母组合数,这里的62进制算法介绍一种除权值余数与结果综合取值法,任何进制(进制设为N)的数,其右起第一位权值为1,第二位权值为进制数N,第三位权值为进制数的平方N2,本处只需要用到三位数,62的平方为3844,因此,将五位数除以3844,将余数除以62,将第一次的结果,第二次的结果和最终的余数按顺序排列,用62进制表示即可,99999除以3844,结果是26,余数是55,不足62,记为0,其结果是26,0,55,查表A知26为q,55为T,结果qOT就是这样算出来的:
[0021]表A:62进制算法和数字与字母本位码算法换算表
[0022]
【权利要求】
1.一种具有多个密码的银行卡密码设计方法,其特征是:它是银行卡专用密码,是基于硬件的通过银行卡终端合成的多密码,本发明把银行卡当成动态数据库与静态数据库存贮介质,动态数据就是银行卡数据存贮介质中的可读写数据,它们的改写受服务器端控制,静态数据就是不能改写的数据,终端合成密码就是通过银行卡提供的动态数据或其他数据作为数据表或是数据连接路径变量或者是部分密码数据,利用它们从终端程序数据库中选择性的获得复杂的数据参与合成或控制的密码,用户密码,预警密码,背面密码都是利用终端合成密码原理合成的,这种密码可以适用任何银行卡,采用磁条数据设计这种密码可以有效防止病毒侵入银行卡支付系统,其网上银行与手机银行可以采用与柜员机不同的数据进行加密。
2.依据权利要求1所述的终端合成密码的数据连接与合成,其特征是: 终端合成密码就是通过银行卡提供的动态数据或其他数据作为数据表或是数据连接路径变量或者是部分密码数据,利用它们从终端程序数据库中选择性的获得复杂的数据参与合成或控制的密码,终端合成密码有两种合成方式,一种是直接合成,也就是将两种或两种以上的数据利用一定的编程规则合成新数据,然后利用MD5之类的软件加密,但是,磁卡本身无法提供太复杂的数据,利用这种方法合成的密码安全等级不是很高,这里不建议采用,还有一种是间接合成,本发明例举的就是间接合成,它与U盾或芯片卡通过自身微电脑提供的密码加密程序合成密码的原理有区别,它是由持卡人提供的密码与银行卡提供的动态或静态数据为原始密码或原始密码的中间数据,利用具有密码运算能力的终端设备(手机,柜员机与家用电脑等)提供的程序生成的电子加密数据,终端合成密码在网上银行,手机银行与柜员机使用的是不同的密码,不过,柜员机与POS机使用的是相同的密码, 它大致由 1:引进字符串; 2:截取字符串; 3:进制转换; 4:字符串字符转换; 5:改变排列位置; 6:替代部分字符 这6步组成,引起字符串就是由简单字符引进数据比较复杂,比较长的字符串;而截取字符串就是只截取引进的字符串的一部分数据,或者是改变原字符的位置等编程方法;进制转换就是将原数据转换成另一种进制的数据;字符串字符转换就是把一个字符转换成另一个字符或者是把一组字符转换成另一组字符,每个字符的转换遵循一定的编程规则;替代部分字符就是把部分字符替代成另一种形式的字符,替代后的字符与没有替代的字符存在相同的部分字符,以及替代插入点使用逻辑判断,这些合成方法可以有先后顺序的不同,前提是方便设计即可, 终端合成密码的合成方式:其基本特征就是由银行卡的动态数据提供数据表连接路径变量或指定部分数据的位置等;银联终端设备等存贮一定数量的数据表,它们在同一数据库下(在编程时,一般都是先连接数据库,再连接数据表),数据表名称形式AB,如果A相同而B不相同(A为数据表主名称,B为序号,一般是阿拉伯数字),就表示它们为同一类型数据表,数据结构包括字段和数据类型都相同,只有数据不同,举例sql语句select*fromchinese_FourCodeB表不链接到某个数据表,chinese_FourCode就是数据表名称形式的A,B就是银行卡提供的动态数据连接路径变量,某张银行卡对应的此数据B为.7,就是通过编程语句指定链接到表名为chinese_FourCode7的数据表,为了安全,连接数据可以分为公有数据表连接路径变量与私有数据表连接路径变量数据,指定数据连接位置是通过银行卡提供的几组数据,这几组数据与终端设备程序的复杂字符串的ID号按照一定的编程规则连接,而另外一些表是私有连接;这里的动态数据就是可读写数据(RW数据),可以通过改写它们修改密码,背面密码只能由持卡人在柜员机完成初始化,程序设计完成后,所有的数据表及数据以及合成规则在所有的同一类型的实体终端是完全一样的,这样,在每一台同一类型的实体终端上,都会获得完全一致的密码数据,也就是说这种密码设计同样遵循所有的同一类型的实体终端密码算法一致这个基本原理,而网银与手机银行的初始化工作在 申请人:在柜台申请开卡之后就可以进行,它们并没有先后顺序,持卡人申请开通相应的服务即可,网银的存贮模块与磁条的非常相似,手机银行程序没有数据表连接路径变量B这个选项,是直接利用对应的数据表加密,也就是相应的数据表程序中只有一个,合成之后,把扫描到的二维码等智能手机能够识别的数据和加密后的数据进行加密即可,发送数据时,为了安全,可以利用电话卡的后台锁定技术等辅助锁定交易者的身份。
3.依据权利要求1所述的终端合成密码,其相应的数据表以及部分数据的实例及连接,其特征是: 下面介绍终端合成密码需要的专用术语及其定义以及数据表示例设计: A:进制转换,这里采用阿拉伯数字与英文大小写字母,也就是62进制转换,这种数制可以和10进制数据或2进制数据等完成互换,本发明利用数字与大小写字母表示这种数制,它们是指定利用阿拉伯数字0到9,大写字母A到Z,小写字母a到z表示0到61的数制算法,也可以有其他的指定方案,后面部分讲述的数字或字母的本位码,转码算法等也遵循同样的规律,本发明中,密码加载码表示区段为十进位00000 (0)到99999,相应的62进制为000(0)到qOT(只表示0与正整数,不表示负数,浮点运算等),也就是说,将十进制的五位数变成了三位数字与字母组合数; B:数字与字母的转换算法,用一个数字或字母获得另一个数字或字母或者是用一组数字或字母获得另一组数字或字母的转换算法,转换算法遵循以下规律H:不同的源码相同的算法转换之后结果是不能相同的; E:同一源码的几种算法的转换结果互相也不能相同; E:转码的结果也不能与源码相同; 回:转码要设置几种转码算法,以强化密码的组合复杂性, 示例是设置四种,即A,B,C,D算法,它是以数字和字母的本位码为基础条件进行转换的, 数字的本位码:数字0到9的本位码分别是数字0到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,见表B: 表B:数字与字母的ABCD算法转码对照表
4.依据权利要求1所述的终端合成密码的合成过程,其特征是: A:引进密码加载码:利用密码加载码的6组连接变量或通过计算获得的连接变量,通过查找对应的ID号或编程之后对应的ID号,将其对应的密码加载码引入程序,下面的步骤中,通过银行卡的连接路径变量连接相应的数据表就不再一一说明; B:获取start值:将用户密码和背面密码的6组10进制数据除以一个合适的数(例举是13),把余数加1,分别获得I到13的6组数,用户密码没有其原始的只读数据的,就是我们输入的6位密码分拆后,分别加1,获得I到10的6组数,这些数据就是第三步中的start值的来源; C:截取字符串:在函数 substring (expression, start, length)中,expression 就是表示密码加载码,start的值就是第2步获得的结果,length可以统一规定,也可以通过编程方法确定,(例举是I至5组设定为10,第6组设定为5),以密码加载码为.9985622367854300109156 说明,假如现在 start 值为 11,为 substring (99856223678543001.09156,11,10),上述函数意思就是把9985622367854300109156进行截取字符串,从第11位处开始截取,截取长度10位,9985622367 (8543001091) 56,就是获得括号中的十位数,采用相同或类似的方法,完成截取字符串或者是通过left,right等函数改变字符位置等的工作; D:进制转换,将十进制数据转换成三位62进制数据,不足3位的,用0补足; E:转码:将所有的数据按照转码规则进行转码,为了强化防破解效果,这里建议多转码几次; F:重新排序:将预警密码单独列出,其他的用户密码和背面密码进行重新排序; G:数据效验:重新排序后,背面密码的33位数字与字母组合,依旧按照6位一分,最后为3位划分成6组,分别是I到6组,而用户密码有可能是27位,也可能是30位,划分位置时,要留下预警密码的位置,也就是预警密码的原位置不能改变,并且把预警密码插进来,这样划分出6组,它们都是将用户密码与预警密码的62进制数据和所有的组数中的第一个三位数据分别相加,是每一个字母或数字的本位码相加,结果> 62的,就减62,记载相应的本位码,用户密码没有相应数据的,就是把输入的密码分拆后,分别相加,完成这一步后,把预警密码提取出来, H:替代字符:把它们利用字符替代码进行处理,获得最终的终端合成密码, 网上银行与磁卡的终端合成密码程序是一样的,而手机银行考虑程序的占用空间问题,不建议使用数据表连接路径变量,而是直接选择数据表,将合成后的结果再利用扫描的二维码数据或其他智能手机可以识别的符号进行加密,手机银行的程序有多个数据表数据存在差别的版本号选择,这点与网上银行有区别,持卡人下载程序时要记住版本号,否则,手机刷机后会导致手机银行无法使用,版本号设置只是版本号后面的部分有区别,方便持卡人记忆,,上述合成过程的 先后顺序可以依据实际编程作适当的调整。
【文档编号】G06F21/46GK103679935SQ201310585526
【公开日】2014年3月26日 申请日期:2013年5月1日 优先权日:2013年5月1日
【发明者】汪风珍 申请人:汪风珍
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1