双向加密磁卡防伪方法

文档序号:6572462阅读:299来源:国知局
专利名称:双向加密磁卡防伪方法
技术领域
本发明属于密码防伪安全技术领域,是一种新型的磁卡防伪方法。本发明提及的磁卡防伪是指防范来自发卡机构内部或外部的伪造磁卡行为。
目前,磁卡的应用领域十分广泛,如银行卡通常采用的就是磁卡。在磁卡上有一串凹凸数字,称作磁卡卡号或客户帐号,同时在磁卡的磁条上也包含有卡号信息,可通过简单的磁卡读写设备提取磁条所包含的数据。

图1是银行卡的发卡流程示意图,其过程是(1)客户提交开卡申请及其他必要的身份证明材料,(2)银行将有关的卡号信息写入磁卡,(3)储户输入预留密码,(4)银行将磁卡交予持卡人。持卡人获得磁卡后,在磁卡上存入一定数额的款项即可在ATM机上提款或在商场的POS机上消费。磁卡受理的过程参见图2。
上述磁卡的受理过程极易为犯罪分子伪造磁卡所利用犯罪分子可采用多种手段,如捡拾客户丢弃在ATM机旁的“自动取款机客户通知书”或在POS机旁的“商户POS消费凭条”等,获得客户的卡号;通过偷看客户的密码输入手势等窃取客户密码。然后通过简单的磁卡读写设备伪造客户的银行卡,在无人值守的ATM机上提款。
为防范伪造的磁卡,虽已开发了多种技术,如三维激光防伪标记、防伪签名条以及微机处理智能卡等,但这些技术要么其仿制成本太低(相对于犯罪分子伪造银行卡所获得的收益);要么需更换目前已有的ATM和POS系统,其费用惊人;要么随着计算机计算能力的提高,防伪技术失效---如很多加密算法为了增加破密难度,通常设有初始密码。理论上,随着计算机运算能力的提高,在知道加密算法后,任何初始密码都可破译。因此某些防伪技术会随着计算机运算能力的提高而失效。本发明不需对银行硬件系统进行更换,同时明显提高磁卡的防伪能力。
本发明的目的是为了防范来自发卡机构内部或外部的伪造磁卡的可能行为,提供一种双向加密的磁卡防伪方法。
本双向加密磁卡防伪方法的技术关键是选定磁卡卡号后,在生成与磁卡卡号唯一对应的磁条信息的过程中引入了随机数和加密算法,随机数引入加密过程有两种方式(1)随机数引入加密算法的初始密码,每一次加密运算的初始密码随随机数改变而改变;(2)随机数引入磁卡卡号得到随机卡号,然后用加密算法进行加密处理;最后得到写入磁卡磁条上的磁条消息。
本方法的具体实现过程包括防伪磁卡的生成和检测。
(1)防伪磁卡的生成---磁卡卡号的加密过程客户到发卡机构办理开卡手续,经发卡机构审核同意后,将发给客户一张磁卡,作为客户标识符的磁卡卡号经发卡机构电脑系统的加密算法进行加密处理,再将加密处理后的计算结果写入磁卡的磁条,磁条上记录的数据内容(简称磁条信息)与磁卡卡号已完全不同。由于系统参数通常是由发卡机构掌控,一旦设置,通常不会改变。仅用系统参数作为初始密码可能被破译,为防止初始密码破译后,磁卡防伪能力丧失,本发明在加密过程中引入了“随机数”,如图3所示,具体步骤为(方式1)A.客户提交开卡资料,由发卡机构审核认可后,分配与客户资料唯一对应的客户磁卡卡号;B.将该磁卡卡号传送至主机系统,采用系统设置的加密算法对卡号进行加密处理,得到加密卡号;C.加密算法的初始密码由发卡机构设定的系统参数和随机数组成,每一次加密运算的初始密码随随机数的改变而改变;D.将加密卡号和随机数作为磁条信息写入客户磁卡的磁条上;E.系统保存磁卡卡号和与之唯一对应的客户预留密码。
所有的加密算法在初始密码保持不变时,都能满足磁卡卡号经加密处理以后与磁条信息一一对应,以确保客户帐户的唯一性,简称唯一性原则。随机数引入后,由于初始密码和磁卡卡号同时变化,采用某些加密算法时,不同的磁卡卡号可能得到相同的加密卡号,无法满足磁卡的唯一性原则。方式1将随机数与加密卡号共同作为磁条信息写入磁卡的磁条,由于磁卡卡号是唯一的,如果加密处理后得到的加密卡号相同,则随机数必定不同;如果随机数相同,则加密卡号必定不同,由此得到的磁条信息必定也是唯一的,满足磁卡的唯一性原则。
上述加密过程也可采用如下方式(方式2)A.客户提交开卡资料,由发卡机构审核认可后,分配与客户资料唯一对应的客户磁卡卡号;B.将客户的磁卡卡号传送至主机系统,然后将随机数与磁卡卡号进行排序组合得到随机卡号,随机卡号采用系统设置的加密算法进行加密处理,由于随机卡号仅通过随机数与磁卡卡号排序生成,在具有随机性的同时还具有唯一性;C.系统将随机卡号经加密处理后得到磁条信息;D.将磁条信息写入客户磁卡的磁条上,交予客户;E.系统保存磁卡卡号和与之唯一对应的客户预留密码。
选择方式2时,随机数仅与磁卡卡号作排序组合,随机数作为磁卡卡号的前缀、后缀或穿插其间,若磁卡卡号是唯一的,添加随机数后得到的随机卡号也是唯一的。经加密处理后,磁条信息满足唯一性原则;随机数可由机器或人工生成。建议由持卡人生成随机数,因为不同的人对数字有不同的偏好,由持卡人生成的随机数具有很强的随机性,特别是将目前由发卡机构单独控制的初始密码改为由发卡机构与持卡人分别控制一部分,可有效防范发卡机构内部的泄密行为。利用机器生成随机数,方法简单,不过计算机产生的随机数通常是根据各种算法生成,找到“种子”即可重复,防伪性能相对较弱。作为本防伪技术的关键,随机数直接或间接地作为磁条信息的一部分内容写入了磁卡,随机数应保存在磁卡的磁条上,不能保存在发卡机构的电脑系统中。这样做的意义在于①客户在完成刷卡行为时,随机数同时被输入发卡机构的电脑系统,客户不需要记忆,提供了使用方便性;②更重要的是,随机数没有在发卡机构的电脑系统中保存,使得发卡机构无法单独解密客户的预留密码,有助于缩小发卡机构内部的知情范围。
为了进一步确保防伪性,按照同样的原理,还可对客户预留密码进行加密处理,方法是用随机数与系统参数结合得到加密算法初始密码,然后对客户预留密码进行加密处理,得到加密客户预留密码。在数据结构的设计中,加密客户预留密码与磁卡卡号等存放在同一个记录中,并以磁卡卡号作为关键字建立索引。
(2)防伪磁卡的检测过程当持卡人持卡办理业务(如用卡在ATM机或商户POS系统上刷卡)时,磁条信息经刷卡设备读取后送至主机系统。从磁条信息中分离提取出磁卡卡号,如果保存磁卡卡号的数据库中不存在该磁卡卡号,则该磁卡非法;否则,利用磁卡卡号检索出对应的客户预留密码,比较客户预留密码与持卡人输入密码是否相同,由此判断持卡人身份的合法性,如图4所示。
当加密过程采用方式1时,其检测过程如下A.磁卡上的磁条信息经磁卡读写设备读取后传送至电脑主机系统,同时持卡人输入客户密码;B.电脑系统首先从磁条信息中分离出加密卡号和随机数,随机数与系统参数结合得到解密算法的初始密码,利用解密算法对加密卡号进行解密处理,得到磁卡卡号;C.在保存磁卡卡号的数据库中,判断是否存在该磁卡卡号,如果不存在,则该磁卡非法,程序终止;D.该磁卡卡号存在,通过磁卡卡号提取客户预留密码;E.如果是加密客户预留密码,则将随机数与系统参数结合得到解密算法的初始密码,利用解密算法对加密客户预留密码进行解密处理,得到客户预留密码;F.判断持卡人输入的密码与客户预留密码是否相同,作为接受或拒绝客户进入系统的识别标志,将结果送回刷卡终端。当加密过程采用方式2时,其检测过程如下A.磁卡上的磁条信息经磁卡读写设备读取后传送至电脑主机系统,同时持卡人输入客户密码;B.电脑系统首先对磁条信息进行解密处理,得到随机卡号,从随机卡号中分离出磁卡卡号和随机数;C.在保存磁卡卡号的数据库中,判断是否存在该磁卡卡号,如果不存在,则该磁卡非法,程序终止;D.该磁卡卡号存在,通过磁卡卡号提取客户预留密码;E.如果是加密客户预留密码,则将随机数与系统参数结合得到解密算法的初始密码,利用解密算法对加密客户预留密码进行解密处理,得到客户预留密码;F.判断持卡人输入的密码与客户预留密码是否相同,作为接受或拒绝客户进入系统的识别标志,将结果送回刷卡终端。下面分析防伪磁卡的三个防伪层次(1)犯罪分子不知道加密算法---尽管犯罪分子可通过许多途径获得客户的卡号,但犯罪分子不知道加密算法,很难由卡号推算磁卡上的磁条信息。直接将卡号写入伪造磁卡的磁条,由于在电脑系统的磁条信息数据库中找不到对应的磁条信息,该磁卡非法;其次,即使碰巧存在对应的磁条信息,但输入密码与客户预留密码不同,系统判定密码非法。
(2)犯罪分子知道加密算法,但不知道加密算法的初始密码---目前许多已经公开的加密算法可以保证加密过程不可逆,即已知加密算法以及加密前后的结果无法推知初始密码。如果不知道加密算法的初始密码,即使知道加密算法也很难从卡号推算磁条信息。
(3)犯罪分子既知道加密算法,也知道加密算法的初始密码---通过收买发卡机构内部员工的方式可以获知发卡机构采用的加密算法甚至设置的系统参数,同时随着计算机运算能力的不断提高,仅用系统参数作为加密算法的初始密码也可以被破译。但是随机数的引入使得加密算法的初始密码随客户个人喜好随机变化,即使犯罪分子知道系统参数,初始密码已不具有普遍性意义,对伪造磁卡而言就没有任何意义了;同时随机数与磁卡卡号组合得到随机卡号,具有随机性,即使知道加密算法和初始密码,也无法推算磁条信息。
作为上述两种磁卡加密方式的一个特例将随机数作为磁卡卡号的后缀直接写入磁卡得到磁条信息。也就是说不采用任何加密算法,或者说加密算法就是y=x。由于磁卡卡号是唯一的,随机数即使有重复,磁条信息也是唯一的。若随机数为6位数字,犯罪分子得到正确磁条信息的概率仅为百万分之一。
另一种典型实施例是将随机数定为常量,整个加密过程就简化为用初始密码不变的加密算法对磁卡卡号进行加密处理。
上述两种方式都应在本专利的保护范围之内。
通过上述分析可知,尽管犯罪分子可通过贿赂发卡机构的计算机工作人员轻易获得加密算法甚至系统参数,有时犯罪分子本人就是发卡机构的计算机工作人员,但随机数的引入,使发卡机构也无法控制防伪磁卡的整个加密过程,加密算法与随机数双向作用生成的加密磁卡,大大增强了磁卡的防伪能力。
下面以客户在银行开卡并在ATM机上提款的实例来说明本发明的技术实现过程。
(1)银行卡磁卡的开卡过程为简单起见,设加密算法的初始密码为系统参数与随机数相加,同时假定加密算法将加密算法的初始密码循环按位与银行卡卡号相加,按位相加的和取10的模。银行设置的系统参数为0241,设客户此时输入的客户随机数为01 34,则加密算法的初始密码为0375;磁卡卡号为10位数字,如0123456789,初始密码循环后变为7503750375,按位相加的和取10的模,如15+27→(1+2)10+(5+7)10→32,则磁卡卡号0123456789经加密算法处理后最终写入磁卡的磁条信息为7626106054.0134。
1.客户选定的磁卡卡号为0123456789;2.磁卡卡号被送至银行电脑主机系统;3.客户输入随机数0134,与系统参数0241相加得初始密码0375;4.根据加密算法得到加密卡号为7626106054;5.写入磁卡的磁条信息为7626106054.0134;6.磁条信息在银行柜台终端写入银行卡的磁条7.利用随机数0134,对客户预留密码进行加密处理得到加密客户预留密码;8.保存磁卡卡号和加密客户预留密码。
(2)银行卡磁卡的受理过程1.持卡人以磁卡卡号为0123456789的磁卡在ATM机上划卡;2.磁条信息7626106054.0134被送至银行电脑主机系统;3.从该磁条信息提取随机数0134和加密卡号7626106054;4.随机数0134与系统参数0241相加得初始密码0375;5.加密卡号7626106054经解密处理得到磁卡卡号0123456789;6.该磁卡卡号在电脑系统的相关数据库中是否存在?否,则磁卡非法;7.根据磁卡卡号0123456789,取得加密客户预留密码;8.加密客户预留密码经解密处理后还原得到客户预留密码;9.若客户预留密码与持卡人输入密码相同,说明交易合法;否则要求持卡人重新输入密码或退出程序;10.交易结果送ATM机,并打印在“自动取款机客户通知书”上。
本实例的程序实现框图参见图5、图6、图7和图8(1)防伪磁卡生成程序说明A.银行卡磁卡卡号CardNumber=0123456789;B.电脑系统的系统参数SysParameter=0241;C.客户输入随机数RandomNumber=0134;D.卡号位数BitCardNumber=10;E.经加密处理得到加密卡号EncryptCardNumber=7626106054;F.将磁条信息InerCardNumber=7626106054.0134写入磁卡;G.客户输入预留密码PreClientPassword;H.经加密处理得到加密预留密码EncryptPassword;I.保存加密预留密码EncryptPassword和磁卡卡号CardNumber。加密算法处理程序A.加密算法的初始密码InitialPassword为系统参数与随机数变量相加InitialPassword=SysParameter+RandomVar=0375;B.函数LeftShift(InitialPassword,i)表示初始密码向左移i位,并用0补足左移后的空位;C.初始密码按位循环后CycPassword=7503750375;D.函数Bit(EncryptVar,i)表示取加密变量EncryptVar的第i位;E.加密变量EncryptVar的每一位为初始密码循环后与待加密变量Var按位相加,每一位的和取10的模;F.循环次数由待加密变量Var的位数BitVar确定,最后得到加密变量EncryptVar。
(2)防伪磁卡检测程序说明A.读取磁卡的磁条信息InerCardNumber=7626106054.0134;B.根据磁条信息,分离得到加密卡号EncryptCardNumber=7626106054和随机数RandomNumber=0134;C.利用解密算法,还原得到磁卡卡号0123456789;D.如果该磁卡卡号不存在,则磁卡非法,程序退出;E.提取与该磁卡卡号对应的加密预留密码EncryptPassword;
F.经解密处理后得到客户预留密码PreClientPassword;G.判断持卡人输入密码ClientPassword与客户预留密码PreClientPassword是否相等。
H.不等,则密码非法,或重新输入,或程序终止;I.密码合法,程序继续。
解密算法处理程序(略)从上述过程可以看出,尽管客户的卡号0123456789被打印在了“自动取款机客户通知书”上,但犯罪分子在不知道加密算法的条件下,极难根据掌握的磁卡卡号0123456789推知客户磁卡上的磁条信息为7626106054.0134;其次,即使犯罪分子知道加密算法,通过自己开卡,可推算出加密算法的初始密码0375以及系统参数0241,但却无法猜测别人开卡时可能输入的随机数,仍然无法知道别人的磁条信息;同时,不知道磁卡上的随机数,银行内部也无法对加密客户预留密码进行解密。采用尝试密码的方式,将被复式密码警示系统(专利申请01108566。5)阻击。
以下是对本说明书上述描述中涉及的附图的说明图1是现行银行卡的发卡流程示意图;图2是现行银行卡的磁卡受理过程示意图;图3是本发明的防伪磁卡加密过程示意图;图4是本发明的防伪磁卡检测过程示意图;图5是本发明的防伪磁卡生成程序框图;图6是本发明的防伪磁卡加密算法处理程序框图;图7是本发明的防伪磁卡检测程序框图;图8是本发明的防伪磁卡解密算法处理程序框图。
本发明述及的磁卡防伪技术与其他磁卡防伪技术相比,最大的区别在于对磁卡卡号进行加密算法处理时引入了“随机数”的概念。各发卡机构可在此技术基础上选择加密算法,选择随机数引入加密算法初始密码的组合方式或者磁卡卡号与随机数的组合排序方式,并根据电脑应用系统平台决定采用何种编程语言实现加密算法以及设计相应的密码管理程序。
据中国人民银行截止2001年6月底发布的统计资料表明,我国目前55家金融机构共发卡3.3亿张,而且绝大部分都是采用磁卡。要将其全部更换为智能卡,不仅换卡成本巨大,而且相应的还需要全部更换已有的各种ATM和POS系统。采用本发明述及的银行卡防伪系统不需要对目前的银行卡硬件系统做调整,只需要将客户手中的磁卡卡号经银行的加密算法处理以后再重新写入磁卡即可,这一换卡过程可以在客户到银行办理业务时实时加以处理,不需进行集中换卡工作。
权利要求
1.双向加密磁卡防伪方法,其特征在于选定磁卡卡号后,在生成与磁卡卡号唯一对应的磁条信息过程中引入了随机数和加密算法(1)随机数引入加密算法的初始密码生成过程中,每一次加密运算的初始密码随随机数改变而改变;或者(2)将随机数与磁卡卡号进行排序组合,得到随机卡号;最后进行加密处理,得到写入磁卡磁条上的磁条消息。
2.根据权利要求1所述的双向加密磁卡防伪方法,其特征在于包括磁卡卡号的加密和检测过程(1)磁卡卡号的双向加密过程A.客户提交开卡资料,由发卡机构审核认可后,分配与客户资料唯一对应的客户磁卡卡号;B.将该磁卡卡号传送至主机系统,采用系统设置的加密算法对卡号进行加密处理,得到加密卡号;C.加密算法的初始密码由发卡机构设定的系统参数和随机数组成,每一次加密运算的初始密码随随机数的改变而改变;D.将加密卡号和随机数作为磁条信息写入客户磁卡的磁条上;E.系统保存磁卡卡号和与之唯一对应的客户预留密码;(2)磁卡卡号的检测过程A.磁卡上的磁条信息经磁卡读写设备读取后传送至电脑主机系统,同时持卡人输入客户密码;B.电脑主机首先从磁条信息中分离出加密卡号和随机数,随机数与系统参数结合得到解密算法的初始密码,利用解密算法对加密卡号进行解密处理,得到磁卡卡号;C.在保存磁卡卡号的数据库中,判断是否存在该磁卡卡号,如果不存在,则该磁卡非法,程序终止;D.该磁卡卡号存在,通过磁卡卡号提取客户预留密码;E.判断持卡人输入的密码与客户预留密码是否相同,作为接受或拒绝客户进入系统的识别标志,将结果送回刷卡终端。
3.根据权利要求1所述的双向加密磁卡防伪方法,其特征在于加密过程和检测过程也可采用如下方式(1)磁卡卡号的双向加密过程A.客户提交开卡资料,由发卡机构审核认可后,分配与客户资料唯一对应的客户磁卡卡号;B.将客户的磁卡卡号传送至主机系统,然后将随机数与磁卡卡号进行排序组合得到随机卡号,随机卡号采用系统设置的加密算法进行加密处理得到磁条信息,由于随机卡号仅通过随机数与磁卡卡号排序生成,在具有随机性的同时还具有唯一性;C.将磁条信息写入客户磁卡的磁条上;D.系统保存磁卡卡号和与之唯一对应的客户预留密码。(2)磁卡卡号的检测过程A.磁卡上的磁条信息经磁卡读写设备读取后传送至电脑主机系统,同时持卡人输入客户密码;B.电脑主机首先利用解密算法对磁条信息进行解密,得到随机卡号,从随机卡号中分离出磁卡卡号和随机数,随机数与系统参数结合得到解密算法的初始密码;C.在保存磁卡卡号的数据库中,判断是否存在该磁卡卡号,如果不存在,则该磁卡非法,程序终止;D.该磁卡卡号存在,通过磁卡卡号提取客户预留密码;E.判断持卡人输入的密码与客户预留密码是否相同,作为接受或拒绝客户进入系统的识别标志,将结果送回刷卡终端。
4.根据权利要求2、3所述的双向加密磁卡防伪方法,其特征在于在磁卡卡号的双向加密过程中,利用同样的加密方式对客户预留密码进行加密,即将随机数与系统参数组合,得到加密算法的初始密码,对客户预留密码进行加密,得到加密客户预留密码,系统保存磁卡卡号和与之唯一对应的加密客户预留密码;在磁卡卡号的检测过程中,利用同样的解密方式对客户预留密码进行解密,即将随机数与系统参数组合,得到解密算法的初始密码,通过磁卡卡号提取加密客户预留密码,然后进行解密得到客户预留密码。
5.根据权利要求2或3所述的双向加密磁卡防伪方法,其特征在于在磁卡卡号的双向加密过程中,随机数的生成可以采用机器生成或人工生成方式,随机数应保存在磁卡的磁条上,不能保存在发卡机构的电脑系统中。
6.根据权利要求4所述的双向加密磁卡防伪方法,其特征在于在磁卡卡号的双向加密过程中,随机数的生成可以采用机器生成或人工生成的方式,随机数应保存在磁卡的磁条上,不能保存在发卡机构的电脑系统中。
全文摘要
双向加密磁卡防伪方法,其技术关键是选定磁卡卡号后,在生成与磁卡卡号唯一对应的磁条信息的过程中引入了随机数和加密算法,随机数引入加密过程有两种方式(1)随机数加入加密算法的初始密码,每一次加密运算的初始密码随随机数改变而改变;或者(2)随机数加入磁卡卡号得到随机卡号,然后用加密算法进行加密处理;最后得到写入磁卡磁条上的磁条信息。同时,对于与磁卡卡号相对应的客户预留密码,也可将随机数引入加密算法对其进行加密处理。通过对磁卡进行双向加密,可防范来自发卡机构内部或外部的伪造磁卡行为。
文档编号G06K19/073GK1417741SQ0114231
公开日2003年5月14日 申请日期2001年11月23日 优先权日2001年11月3日
发明者李灵 申请人:李灵
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1