首页> 中国专利> 基于虚拟代码的金融交易提供系统、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序

基于虚拟代码的金融交易提供系统、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序

摘要

本发明涉及一种基于虚拟代码的金融交易提供系统、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序。根据本发明的一实施例的基于虚拟代码的金融交易提供方法包括如下步骤:虚拟代码验证单元接收由虚拟代码生成单元提供的虚拟代码(S200,虚拟代码接收步骤);所述虚拟代码验证单元提取所述虚拟代码中所包括的多个详细代码(S400);所述虚拟代码验证单元基于多个详细代码搜索实际卡号的存储位置(S1000,实际卡号搜索步骤)以及利用在所述存储位置提取的所述实际卡号进行金融交易或请求进行金融交易(S1200)。

著录项

  • 公开/公告号CN112567411A

    专利类型发明专利

  • 公开/公告日2021-03-26

    原文格式PDF

  • 申请/专利权人 森斯通株式会社;

    申请/专利号CN201880096394.1

  • 发明设计人 刘昌训;

    申请日2018-11-06

  • 分类号G06Q20/38(20060101);G06Q20/40(20060101);

  • 代理机构11286 北京铭硕知识产权代理有限公司;

  • 代理人习瑞恒;李盛泉

  • 地址 韩国首尔

  • 入库时间 2023-06-19 10:22:47

说明书

技术领域

本发明涉及一种基于虚拟代码的金融交易提供系统、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序,更为详细地讲涉及一种生成在每个时间点不重复地生成的虚拟代码并基于生成的虚拟代码搜索实际卡号而进行金融交易的系统、方法及程序和在每个时间点生成不重复的虚拟代码的装置以及基于生成的虚拟代码搜索实际卡号而执行金融交易的装置。

背景技术

代码类型数据用于很多领域。不仅是结算时使用的卡号、账户号码,用于识别用户的互联网个人身份识别号码(IPIN:Internet Personal Identification Number)、居民身份证号等也是代码类型数据。

但是,在利用这些代码数据的过程中,发生代码数据被泄漏的很多事故。实际卡号直接记载在卡表面,因此卡号在视觉上泄漏给他人,并且在进行利用磁性的结算时,卡号原样地传送至POS装置而被泄漏。

为了使实际卡号不被原样地泄漏,进行了很多利用虚拟代码的尝试,但是为了搜索对应于虚拟代码的实际卡号,需要用于识别用户的数据。例如,一次性密码(OTP:OneTime Password)的情况下,代码根据时间而变更且生成,但是为了判断分配给用户的算法,需要登录的步骤,从而很难应用于多个领域。

因此,需要提供一种无需提供关于与实际卡号对应的用户或装置的识别信息也能够基于实时变换的虚拟代码而搜索实际卡号的发明。

发明内容

技术问题

本发明的目的在于提供一种如下的基于虚拟代码的金融交易提供系统、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序,即,在生成并提供保持实际卡号的数字串形式的虚拟代码而在不修改整个结算系统的情况下,在虚拟代码生成单元与虚拟代码验证单元之间不执行通信的状态下利用每个虚拟代码生成单元不重复地生成的虚拟代码搜索实际卡号,从而安全性较高。

本发明所要解决的课题不局限于上述提及的课题,普通的技术人员能够从以下记载明确理解未提及的其他课题。

技术方案

根据本发明的一实施例的一种虚拟代码生成装置包括:详细代码生成部,生成一个以上的详细代码;虚拟代码生成部,组合所述一个以上详细代码而生成虚拟代码;以及虚拟代码提供部,为了将所述虚拟代码提供至虚拟代码验证单元而将所述虚拟代码向外部输出,其中,所述虚拟代码根据特定的规则组合包括固定代码、OTP代码及提取代码的多个代码而被生成,所述固定代码组合于所述虚拟代码内预定位置并且是用于判断与所述实际卡号对应的卡公司或卡类型的代码,所述OTP代码基于OTP函数以特定数量的数字阵列生成且用于计算转换代码,所述提取代码以所述虚拟代码的全部数字数量中除了所述固定代码及所述OTP代码之外的数字数量的全部或一部分生成且对应于从所述OTP代码计算出的所述转换代码,所述转换代码或所述提取代码根据在所述虚拟代码验证单元设定的条件分别用作第一代码或第二代码,所述第一代码设定在所述虚拟代码验证单元搜索实际卡号的存储位置的开始点,所述第二代码设定根据特定的搜索方法从所述开始点到所述存储位置的搜索路径,所述OTP代码及所述提取代码在每个单位计数变更,所述单位计数按特定的时间间隔设定,且随着所述时间间隔的流逝而变更。

并且,作为另一实施例,所述OTP代码以实际卡号内的卡安全代码的数字数量生成,所述第二代码以所述虚拟代码的全部数字数量中除了所述固定代码、所述OTP代码及有效期限之外的数字数量的全部或一部分生成。

并且,作为另一实施例,所述转换代码以与所述提取代码相同的位数生成。

并且,作为另一实施例,所述转换代码根据特定的规则与所述OTP代码一对一匹配。

并且,作为另一实施例,通过将所述OTP代码和请求生成虚拟代码的计数值作为种子值输入到转换代码生成函数来计算出所述转换代码。

并且,作为另一实施例,所述虚拟代码生成部通过详细代码组合函数组合所述OTP代码和所述提取代码并且排列在所述卡识别号中除了所述固定代码之外的位和所述卡安全代码位。

并且,作为另一实施例,在所述固定代码是新分配给特定的卡类型的虚拟代码的情况下,所述详细代码生成部特征在于生成布置在有效期限位的特定的数字组合作为可变代码,所述转换代码以所述可变代码和所述OTP代码作为种子值而生成,所述数字组合每个单位计数变更而生成,能够用作实际有效期限,并且包括在从当前计数起最大时段内。

并且,作为另一实施例,还包括:虚拟代码确认部,在所述固定代码用于特定的卡类型的实际卡号的情况下,判断在特定的计数生成的虚拟代码是否是能够在特定的卡类型用作实际卡号的代码串。

并且,作为另一实施例,所述虚拟代码确认部将所述虚拟代码内的卡识别号、有效期限及服务代码输入到实际卡号生成规则而生成比较卡安全代码,将作为布置于所述虚拟代码内的卡安全代码位的数字的生成卡安全代码与所述比较卡安全代码进行比较,如果一致,则请求重新生成虚拟代码。

根据本发明的另一实施例的一种基于虚拟代码的金融交易提供方法,包括如下步骤:虚拟代码接收步骤,虚拟代码验证单元接收从虚拟代码生成单元提供的虚拟代码;详细代码提取步骤,所述虚拟代码验证单元提取根据特定的规则包括在所述虚拟代码的固定代码及多个详细代码,所述多个详细代码包括OTP代码及提取代码;所述虚拟代码验证单元基于所述OTP代码计算转换代码的步骤;以及实际卡号搜索步骤,所述虚拟代码验证单元基于第一代码及第二代码搜索实际卡号的存储位置,所述提取代码或所述转换代码根据设定的条件而被分别用作所述第一代码及所述第二代码;以及所述虚拟代码验证单元利用从所述存储位置提取的所述实际卡号来进行金融交易或请求进行金融交易,其中,所述虚拟代码验证单元和所述虚拟代码生成单元包括相同的虚拟代码生成函数,所述固定代码在所述虚拟代码内组合于预定的位置并且是用于判断与所述实际卡号相对应的卡公司或卡类型的代码,所述OTP代码基于OTP函数以特定数量的数字阵列生成且用于计算转换代码,所述提取代码对应于从所述OTP代码计算出的所述第一代码,并且以所述虚拟代码的全部数字数量中除了所述固定代码及所述OTP代码之外的数字数量的全部或一部分生成,所述第一代码设定在虚拟代码验证单元搜索实际卡号的存储位置的开始点,所述第二代码设定根据特定的搜索方法从所述开始点到所述存储位置的搜索路径,所述OTP代码及所述提取代码在每个单位计数变更,所述单位计数被按特定的时间间隔设定,且随着所述时间间隔的流逝而变更。

并且,作为另一实施例,所述详细代码提取步骤包括如下步骤:从所述虚拟代码内的卡识别号区域提取固定代码;基于所述固定代码设定与特定的卡类型相对应的详细代码组合函数;以及利用所述详细代码组合函数从排列在所述卡识别号中除了所述固定代码之外的位和所述卡安全代码位的数字串提取所述OTP代码和所述提取代码。

并且,作为另一实施例,在所述详细代码提取步骤中,将在与所述虚拟代码生成单元包括的相同的OTP函数生成的比较代码与所述OTP代码进行比较而计算生成虚拟代码的计数值,在所述转换代码计算步骤中,将所述计数值和所述OTP代码作为种子值输入到所述转换代码生成函数而计算转换代码。

并且,作为另一实施例,所述虚拟代码同样地包括实际卡号的有效期限,所述虚拟代码验证单元包括根据所述固定代码及有效期限值而不同的实际卡号搜索算法,所述实际卡号搜索算法基于所述第一代码和所述第二代码搜索存储实际卡号的位置。

并且,作为另一实施例,在所述固定代码是针对特定的卡类型的虚拟代码而新分配的情况下,在所述详细代码提取步骤中,从有效期限位提取所述可变代码,在所述转换代码计算步骤中,将所述可变代码和所述OTP代码作为种子值输入到转换代码生成函数而生成所述转换代码。

根据本发明的另一实施例的一种基于虚拟代码的金融交易提供程序,所述结算提供程序与硬件组合而执行上述的虚拟代码提供方法并且存储于介质。

有益效果

根据如上所述的本发明,具有如下的多个效果。

第一,由于仅向虚拟代码生成装置和虚拟代码验证装置(例如,金融公司服务器)添加用于虚拟代码生成及实际卡号搜索的算法,因此可以原样地保持使用实际卡号的现有过程。例如,当在智能卡或应用卡生成并提供不重复生成的虚拟代码时,POS装置和PG公司服务器可以保持原样而将虚拟代码发送至卡公司服务器,并且卡公司服务器搜索与虚拟代码相对应的实际卡号而进行结算。据此,可以为了提高安全性而最小化在现有过程内需要变更的部分,并且用户无需执行用于提高安全性的额外步骤。尤其,由于在虚拟代码内的限定的可变范围内使用仅利用数字的OTP代码和提取代码的组合,因此具有无需修改从结算终端到结算服务器的整个过程的效果。

第二,由于将能够被生成在搜索实际卡号存储位置时用作第一代码或第二代码的转换代码且具有较少位数的OTP代码包括在虚拟代码中,因此可变范围(例如,卡识别号位中除了固定代码和验证数字位之外的范围和卡安全代码范围)的大部分可以被直接分配给用作第一代码或第二代码的提取代码,因此能够用作提取代码的数字串的数量可以增加,从而提高安全性。

第三,由于移动到与基于OTP代码生成的转换代码或从虚拟代码中提取的提取代码相对应的计数,因此以并非当前时间点的时间点为基准执行实际卡号搜索,因此黑客无法掌握虚拟代码生成规则,从而可以提高安全性。

第四,由于实际卡号与每个用户不同的计数匹配并存储,因此无法为其他用户生成第一代码或第二代码(或对应于第一代码和第二代码的转换代码和详细代码)全部一致的虚拟代码。因此,虚拟代码验证单元可以通过虚拟代码准确地区别用户。

附图说明

图1是根据本发明的一实施例的基于虚拟代码的金融交易提供系统的构成图。

图2是图示根据本发明的一实施例的从虚拟代码生成单元向金融公司服务器提供虚拟代码的过程的示例图。

图3是根据本发明的一实施例的虚拟代码生成装置的构成图。

图4是根据本发明的另一实施例的虚拟代码生成装置的构成图。

图5是根据本发明的一实施例的虚拟代码生成装置的示例图。

图6是根据本发明的另一实施例的包括虚拟代码确认部的虚拟代码生成装置的构成图。

图7至图9是根据本发明的实施例的虚拟代码验证装置的构成图。

图10是根据本发明的一实施例的基于虚拟代码的金融交易提供方法的流程图。

图11是根据本发明一实施例的还包括转换代码计算步骤的基于虚拟代码的金融交易提供方法的流程图。

图12是关于根据本发明的一实施例的通过k边形的滚动移动来搜索实际卡号存储位置的存储位置搜索算法的示例图。

图13是根据本发明的一实施例的包括根据k边形滚动移动的实际卡号搜索过程的基于虚拟代码的金融交易提供方法的流程图。

图14是关于根据本发明的一实施例的基于详细代码在轨道上移动而搜索存储位置的存储位置搜索算法的示例图。

图15是根据本发明的一实施例的还包括发行实际卡号并存储于存储位置的过程的基于虚拟代码的金融交易提供方法的流程图。

图16至图17是根据本发明的一实施例的还包括虚拟代码验证步骤的基于虚拟代码的金融交易提供方法的流程图。

图18是根据本发明的一实施例的利用虚拟安全代码而移动实际卡号搜索时间点的方式的示例图。

具体实施方式

以下,参照附图对本发明的优选实施例进行详细说明。参照详细后述的实施例,将明确本发明的优点、特征以及实现其的方法。但是,本发明不限于在以下公开的实施例,而是可实现为不同的形态,本发明实施例只是为了使本发明的公开更加完整并且将本发明的范畴完整地告知本发明所属技术领域中具有通常知识的技术人员而提供的,本发明只由权利要求的范围所定义。在说明书全文中,相同的附图标记表示相同的构成要素。

只要没有被不同地定义,本说明书中所使用的所有术语(包括技术术语和科学术语)可以用作与本发明所属技术领域中具有通常知识的技术人员通常可能理解的含义。并且,只要没有明确地特别定义,与通常使用的词典中所定义的术语不应被理想或过度地解释。

在本说明书中使用的术语是用于说明实施例的,并非要限定本发明。在本说明书中,除非在上下文环境中有特别说明,则单数型也包括复数型。对于在说明书中使用的“包括(comprises)”以及/或者“包括的(comprising)”,除了提及的构成元素以外,不排除一个以上的其他构成元素的存在或者添加。

本说明书中,“金融交易”指与金融公司形成的业务。“金融交易”包括卡结算、与银行账号的出入金等。

本说明书中,“字符”作为构成代码的构成要素,包括大写字母、小写字母、数字以及特殊字符等的全部或者一部分。

本说明书中,“代码”指的是列出的字符串。

在本说明书中,“卡号”用于结算等金融交易,指示赋予卡并在结算、结算取消等状况下传递给卡公司的号码。

在本说明书中,“实际卡号”是卡公司赋予特定用户的卡的号码。即,“实际卡号”是指赋予一般的实物卡、移动卡等的号码。

在本说明书中,“虚拟代码”作为为了与实际卡号连接而临时生成的卡号,是由包含数字的字符构成的特定位数的代码。“虚拟代码”包括用于搜索存储在金融公司服务器中的实际卡号的虚拟卡号和用于搜索存储在虚拟令牌验证服务器中的实际卡号的虚拟令牌。

在本说明书中,“详细代码”表示包括在虚拟代码中的一部分代码。即,在虚拟代码通过组合单独生成的多个代码而生成的情况下,详细代码表示单独生成而构成虚拟代码的单独代码。

本说明书中,“单位计数”是被定义为以特定的时间间隔设定并根据所述时间间隔推移而变换的单位。例如,1计数被设定为特定的时间间隔(例如,1.5秒)使用。

本说明书中,“虚拟代码生成函数”指示用于生成虚拟代码的函数。

本说明书中,“支付卡”指示可通过变更卡号来输出的卡。

本说明书中,“滚动移动”指示对象体旋转的同时进行并进运动。即,“滚动移动”表示一起执行旋转运动与并进运动的同时进行移动,旋转的对象体的各地点依次地接在移动的轴上并移动。

本说明书中,“支付结算服务服务器”包括在虚拟令牌生成装置或商店终端装置中虚拟令牌验证服务器或金融公司服务器之间连接或辅助结算服务的运营商的所有服务器。即,支付结算服务服务器可以相应于支付结算运营商(Payment Gateway:在互联网上代理与金融机构进行的交易的服务运营商)、结算代理公司(VAN公司)、收单方(Acquirer)的服务器等。

本说明书中,“虚拟令牌验证服务器”指示存储实际卡号、存储实际卡号、基于虚拟令牌而搜索实际卡号并提供至支付结算服务服务器或金融公司服务器的服务器。

本说明书中,“金融公司服务器”指示基于实际卡号判断结算是否被批准的服务器。

以下,为了说明根据本发明的实施例而代替实际卡号的虚拟代码的生成以及实际卡号的搜索过程,对实际卡号的构成进行说明。

“实际卡号”包括卡识别号、卡安全代码、有效期限中的至少一个。卡识别号是指为了识别卡公司、卡类型及卡用户而被分配的代码。通常,分配给卡的卡识别号由15或16位数构成。并且,通常在由16位数构成的卡识别号的情况下,前6位号是由卡的发卡机构识别号(IIN或BIN)构成,从第7位到第15位是由各卡公司根据任意的规则分配给各卡的代码构成,第16位由通过特定的公式验证卡识别号的值(check digit)构成。

卡安全代码由印刷在卡一侧的特定的位数(例如,维萨卡、万事达的情况是3位数,美国运通的情况是4位数)的数字构成,是用于确认卡号是否为正常的代码。即,在卡安全代码为3位数且卡识别号为16位数的情况下,将卡安全代码3位数代码和卡识别号16位数代码根据规定的规则进行加密/解密之后与相应的值一致,则可获知卡是正常的卡。卡安全代码在每个卡公司所称呼的名称不同,维萨卡称为卡验证值(VVC:Card Verification Value)、万事达卡/JCB称为卡检查码(CVC:Card Validation Code),美国运通称为保密标识符号码或者卡识别码(CID:Confidential Identifier Number或者Card IdentificationNumber)。

有效期限指示被发放实际卡号之后可使用的期限。通常,有效期限对年/月分配2位数,从而由4位代码构成。在磁卡中,实际卡号原样包含在其内,因此,存在仅通过读取磁卡而使卡号整体泄漏的问题,从而近年在全世界限制磁卡的使用,并转换成IC卡等的安全性高的方式。为了应用其他安全性高的方式,存在需要安装新的终端或者需要变换现有的过程的问题。因此,需要相同的应用利用了现有实际卡号的过程的同时可防止卡号泄漏的方法。尤其,需要利用现有的磁卡读取器的同时可提高安全性的方式。

以下,参照附图,详细说明根据本发明的实施例的基于虚拟代码的金融交易提供系统、虚拟代码生成装置100、虚拟代码验证服务器200、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序。

图1是根据本发明的一实施例的基于虚拟代码的金融交易提供系统的构成图。

图2是图示根据本发明的一实施例的从虚拟代码生成单元向金融公司服务器提供虚拟代码的过程的示例图。

参照图1,根据本发明的一实施例的基于虚拟代码的金融交易提供系统包括虚拟代码生成单元10及虚拟代码验证单元20。

虚拟代码生成单元10执行生成包括虚拟代码验证单元20能够搜索实际卡号的信息的虚拟代码的作用。即,虚拟代码生成单元10根据虚拟代码生成函数生成虚拟代码。此时,由于虚拟代码验证单元20基于虚拟代码而搜索实际卡号,因此虚拟代码生成单元10可以不存储实际卡号。据此,可以防止实际卡号通过虚拟代码生成单元10的黑客攻击等而被泄漏。后文将对虚拟代码生成函数进行具体说明。

虚拟代码验证单元20执行基于从虚拟代码生成单元10提供的虚拟代码而搜索实际卡号的作用。为了从接收自虚拟代码生成单元10的虚拟代码搜索实际卡号,虚拟代码验证单元20存储与虚拟代码生成单元10相同的虚拟代码生成函数。后文将对虚拟代码验证单元20基于虚拟代码而搜索实际卡号的方式进行具体说明。

并且,虚拟代码验证单元20执行验证虚拟代码是否是由虚拟代码生成单元10正常生成的代码的作用。后文将对虚拟代码验证单元20判断虚拟代码是否是正常的方式进行具体说明。

虚拟代码验证单元20可以通过多种方式从虚拟代码生成单元10接收虚拟代码。作为一实施例,虚拟代码验证单元20可以通过无线通信从虚拟代码生成单元10接收虚拟代码。例如,在包括虚拟代码生成单元10的虚拟代码生成装置100包括NFC天线模块、蓝牙通信模块等的情况下,可以通过与金融交易终端的通信而向金融交易终端传送将要传递到虚拟代码验证服务器的虚拟代码。并且,作为另一实施例,虚拟代码验证服务器200可以经由直接输入(例如,将虚拟代码输入到网页或应用程序的结算页面)了由虚拟代码生成装置100生成的虚拟代码的通过通信连接到虚拟代码验证服务器200的移动终端,而接收虚拟代码。此时,虚拟代码验证单元20可以从已经从虚拟代码生成单元10接收到虚拟代码的另一服务器接收虚拟代码。

具体而言,如图2所示,在虚拟代码生成单元10是能够向结算终端结算的智能卡,虚拟代码验证单元20是包括虚拟代码生成函数的卡公司服务器(虚拟代码验证服务器)20的情况下,如果使用作为虚拟代码生成单元10的智能卡在POS装置30执行结算,则虚拟代码验证单元20从已经从POS装置30接收到虚拟代码的PG公司服务器40接收虚拟代码。即,虚拟代码验证单元20(即,卡公司服务器)可以利用现有的结算过程从虚拟代码生成单元10接收代替实际卡号的虚拟代码。即,如果如后文所述,将虚拟代码生成为具有与实际卡号相同长度的代码,则可以在从虚拟代码生成单元到包括虚拟代码验证单元的卡公司服务器进行的过程上没有变更的情况下应用根据本发明的实施例的基于虚拟代码的金融交易提供方式。并且,在使用作为虚拟代码生成单元的智能卡通过ATM装置执行金融交易的情况下,虚拟代码生成单元10向ATM装置提供生成为具有与实际卡号相同长度的代码的虚拟代码,并且金融公司服务器20从ATM装置原样地接收虚拟代码而进行金融交易。

并且,作为一实施例,所述虚拟代码验证单元20和所述虚拟代码生成单元10包括相同的虚拟代码生成函数。由于虚拟代码验证单元20和虚拟代码生成单元10包括相同的虚拟代码生成函数(例如,后文所述的详细代码组合函数),虚拟代码验证单元20可以正确地提取在虚拟代码生成单元10生成的虚拟代码内的多个详细代码。

作为另一实施例,虚拟代码验证单元20可以验证接收到的虚拟代码是否是由正常的虚拟代码生成单元10生成且从其接收。即,虚拟代码验证单元20可以在与虚拟代码生成单元10相同的条件下生成代码(即,虚拟代码或特定的详细代码),之后比较在虚拟代码生成单元10接收到的代码(即,虚拟代码或特定的详细代码),进而执行验证。

图3是根据本发明的另一实施例的虚拟代码生成装置100的构成图。

图5是根据本发明的一实施例的虚拟代码生成装置的示例图。

参照图3,根据本发明的另一实施例的虚拟代码生成装置100包括详细代码生成部110、虚拟代码生成部120及虚拟代码提供部130。

根据本发明的实施例的虚拟代码生成装置100可以是嵌入有(Embeded)与虚拟代码生成单元10相应的程序或者设置有与虚拟代码生成单元10相对应的程序的装置。例如,虚拟代码生成装置100可以是嵌入有与虚拟代码生成单元10相应的程序的智能卡。并且,例如,虚拟代码生成装置100可以是设置有与虚拟代码生成单元10相应的应用卡应用程序的移动终端。除了上述记载的示例之外,虚拟代码生成装置100可以是需要生成并发送虚拟代码的多种装置。

虚拟代码生成部120执行组合一个以上详细代码而生成虚拟代码的作用。作为一实施例,所述虚拟代码根据特定的规则组合多个详细代码而生成。虚拟代码生成函数包括组合多个详细代码的规则(即,详细代码组合函数)。

组合多个详细代码而生成一个虚拟代码的方式可以应用多种方法。作为所述详细代码组合函数的一示例,虚拟代码生成部120可以通过交替布置N位的第一代码和N位的第二代码的方式生成虚拟代码。作为另一示例,详细代码组合函数可以是在第一代码后组合第二代码的函数。随着包括在虚拟函数中的详细代码增加,详细代码组合函数也可以多样地生成。

并且,如后文所述,所述虚拟代码生成部120将固定代码组合到虚拟代码内的特定位置(例如,虚拟代码内卡识别号的最前方的6位)。所述固定代码是组合于所述虚拟代码内预定的位置并用于判断与所述实际卡号对应的卡公司或卡类型的代码。

具体而言,虚拟代码可以包括用于区分组的不变更的固定代码及多个详细代码。虚拟代码验证单元20可以包括分别对应于多个组的多个虚拟代码生成函数,如果从虚拟代码生成装置100接收到虚拟代码,则可以基于虚拟代码生成装置100所属的组的虚拟代码生成函数执行实际卡号搜索。如果不包括固定代码并且整个代码仅包括每当经过单位计数时新生成的详细代码,则无法在没有额外信息的情况下判断虚拟代码生成装置100所属的组。因此,虚拟代码生成装置100包括用于识别组的不变更的固定代码。

例如,在按照特定卡公司的每种卡类型分配虚拟代码生成函数的情况下,虚拟代码生成装置100可以使用卡号中表示卡公司及卡类型的前六位作为固定代码,从而虚拟代码验证单元20可以识别应用与虚拟代码生成装置100相同的虚拟代码生成函数的特定卡公司的特定卡类型。即,固定代码是判断与所述实际卡号对应的卡公司或卡类型的代码。

并且,固定代码可以组合到所述虚拟代码内预定的位置。在按每个卡类型组分配虚拟代码生成函数的情况下,虚拟代码验证单元20必须首先从虚拟代码中提取固定代码才能判断卡类型组。据此,固定代码可以组合到虚拟代码内预定的位置(例如,与实际卡号的发行者识别号相同的位置),从而在没有额外的函数的情况下实现分离。

详细代码生成部110执行生成一个以上详细代码的作用。

作为一实施例,详细代码生成部110可以生成虚拟代码验证单元20用于搜索实际卡号的第一代码和第二代码本身。即,虚拟代码生成部120生成包括在详细代码生成部110生成的第一代码和第二代码的组合的虚拟代码。

作为具体的实施例,详细代码生成部110包括第一函数和第二函数作为详细代码生成函数,来生成第一代码及第二代码。第一代码和第二代码具有用于在虚拟代码验证单元20内搜索实际卡号的存储位置的相关关系,但是为了提高安全性,虚拟代码生成装置100可以仅包括生成第一代码的第一函数和生成第二代码的第二函数作为详细代码生成函数,而不包括关于第一代码与第二代码的相关关系的数据。

并且,作为一实施例,虚拟代码生成装置100按组合多个详细代码和固定代码而生成与实际卡号具有相同的位数的代码的方式生成详细代码。为了在保持现有的金融交易系统(例如,在金融交易是商店中的结算的情况下,POS装置及PG公司服务器)的同时使用虚拟代码,虚拟代码生成装置100需要生成与实际卡号具有相同位数的代码作为虚拟代码。为此,虚拟代码生成装置100将除了用于判断卡公司及该卡公司的卡类型的固定代码之外的位数划分而用作多个详细代码的位数。例如,在实际卡号具有16位的卡识别号,并且详细代码包括第一代码及第二代码的情况下,虚拟代码生成装置100可以将16位中除了6位的固定代码之外的10位相同地划分而生成5位的第一代码及第二代码。之后,后文所述的虚拟代码生成部可以根据特定的规则组合第一代码及第二代码,之后将固定代码与在实际卡号的卡识别号一样地组合到前方部分,从而生成虚拟代码的卡识别号。

并且,例如,可以运用卡号的卡识别号和有效期限的位置而生成由详细代码构成的虚拟代码。即,在16位的卡识别号和4位的有效期限中,虚拟代码生成装置100将与实际卡号的发行者识别号相对应的6位保持为固定代码,并且将剩余的14位分配给多个详细代码,从而详细代码生成部生成与分配的各个位数符合的详细代码。

并且,例如,虚拟代码生成装置100可以运用实际卡号的卡识别号、有效期限及卡安全代码作为将要分配给虚拟代码中详细代码的位数。例如,虚拟代码生成装置100可以将与实际卡号的发行者识别号相对应的6位保持为固定代码,并且将卡识别号的剩余10位、有效期限4位及卡安全代码3位作为位数分配给各个详细代码。

并且,例如,虚拟代码生成装置100可以仅利用卡识别号部分表示虚拟代码的详细代码和固定代码。此时,虚拟代码生成装置100可以将不同的位数分配给多个详细代码。即,在虚拟代码包括固定代码、第一代码和第二代码并且仅通过卡识别号的位数来生成固定代码、第一代码和第二代码的情况下,虚拟代码生成装置100将除了分配给固定代码的6位之外的位数中的9位划分并分配给第一代码和第二代码。为了应用于卡识别号为15位的情况和卡识别号为16位的情况,虚拟代码生成函数可以仅将卡识别号的9位分配给第一代码和第二代码。例如,虚拟代码生成函数可以将9位中的6位分配给第一代码,并将3位分配给第二代码。如上所述,如果仅由整个卡号中的卡识别号部分表示构成虚拟代码的代码,则可以减少在用户需要直接输入卡号的状况下需要输入的字符数。并且,虚拟代码生成装置100可以将有效期限及卡安全代码部分用于能够提高安全性的其他用途。

并且,在虚拟代码中包括第一代码和第二代码的一实施例中,虚拟代码还包括虚拟安全代码。例如,虚拟代码包括多个详细代码和虚拟安全代码。可以使用实际卡号的卡安全代码(即,CVV或CVC)的位来提供虚拟代码的安全代码。即,为了包括与现有的金融交易系统中使用的实际卡号相同的字符数量,虚拟代码生成装置可以将卡安全代码位分配给虚拟代码的虚拟安全代码并且将卡识别号及效期限的全部或一部分位分配给多个详细代码。

所述安全代码是基于特定的安全代码生成函数生成的代码,用于验证是否为正常的虚拟代码。所述安全代码生成函数使用时间数据和虚拟代码生成单元固有值作为函数值来生成特定位数的安全代码。

使用虚拟安全代码来判断虚拟代码是否正常的过程的一示例如下所述。虚拟代码验证单元20可以在实际卡号被发行时接收虚拟代码生成装置100的固有值(例如,智能卡内的芯片固有值或设置有应用卡的智能电话的固有值等)而一同存储于实际卡号的存储位置,或者存储于连接到实际卡号存储位置的单独的存储空间。如果虚拟代码生成装置100生成组合有虚拟安全代码的虚拟代码并提供给虚拟代码验证单元20,则虚拟代码验证单元20基于详细代码获取生成虚拟代码的时间数据,并且提取存储于内部的特定的虚拟代码生成装置100的固有值而与时间数据一同应用于虚拟安全代码生成函数(例如,一次性密码(OTP:One-Time Password)函数)来计算虚拟安全代码。虚拟代码验证单元20判断从虚拟代码生成装置100接收到的虚拟安全代码(即,接收虚拟安全代码)与通过存储于内部的虚拟安全代码生成函数计算出的虚拟安全代码(即,生成虚拟安全代码)是否一致。由于在虚拟代码生成装置100生成虚拟代码的时间点和在虚拟代码验证装置200接收虚拟代码的时间点之间可能存在差异,因此虚拟代码验证装置200考虑时间延迟而计算特定时间范围内(例如,从接收到虚拟代码的时间点到特定计数之前)的虚拟安全代码(即,OTP号),来确认是否存在与从虚拟代码生成装置100接收到的接收虚拟安全代码一致的值。虚拟代码验证单元20在接收虚拟安全代码和生成虚拟安全代码一致时判断为正常的虚拟代码,并提供实际卡号。

例如,虚拟安全代码可以生成为具有与卡安全号码对应的位数。即,虚拟代码生成装置100利用虚拟安全代码生成函数来生成与卡安全号码对应的3位或4位作为虚拟安全代码,如果当使用卡时作为虚拟安全代码而输入卡安全号码,则虚拟代码验证单元20执行验证虚拟安全代码的过程。

并且,作为另一示例,虚拟安全代码生成函数可以针对每个计数生成不同的l位(l为自然数)的代码而一同用作函数值。即,虚拟安全代码生成函数可以包括1位的随机代码生成函数(例如,生成1位的代码的OTP函数)。

并且,作为一实施例,在虚拟代码通过根据第一代码及第二代码的特定规则组合生成的情况下,第一代码和第二代码可以分别执行用于搜索存储实际卡号的存储位置的作用。例如,第一代码设定存储位置搜索的开始点,第二代码根据特定的搜索方式设定从所述开始点到所述存储位置的搜索路径。即,如果从虚拟代码生成装置100提供针对每个单位计数正常生成的虚拟代码,则虚拟代码验证单元20将从与第一代码对应的搜索开始点沿与第二代码对应的搜索路径移动的点判断为实际卡号的存储位置。后文将对基于构成虚拟代码的第一代码和第二代码搜索存储位置的具体方式进行说明。

作为详细代码生成部110生成详细代码的方式的一实施例,详细代码生成部110针对每个单位计数生成新的详细代码,据此虚拟代码生成装置100针对每个单位计数生成新的虚拟代码。针对每个单位计数新生成的虚拟代码不重复地生成。具体而言,详细代码生成部110设定为使得针对每个单位计数新生成的虚拟代码在特定的用户或特定的虚拟代码生成装置100中预定的时间段内不重复生成,并且在属于特定组的用户之间也不重复生成。

作为防止虚拟代码重复生成的具体的一实施例,在利用M个字符生成N位的所述第一代码或所述第二代码的情况下,虚拟代码生成函数中所包括的详细代码生成函数可以生成M

具体而言,在大写字母和从0到9的数字被用作可包括在代码中的字符(即,36个字符),并且使用实际卡号的卡识别号和有效期限的位而分别向第一代码和第二代码分配6位的情况下,虚拟代码生成装置100可以提供36

作为防止虚拟代码重复生成的另一具体实施例,如果经过虚拟代码生成装置100的使用周期,则变更生成第一代码或第二代码的函数(即,第一函数或第二函数)或者变更第一代码和第二代码的匹配关系来生成与先前使用周期不同的虚拟代码。在虚拟代码是由第一函数生成的第一代码和由第二函数生成的第二代码组合的情况下,如果第一代码生成函数或第二代码生成函数变更,则由于第一代码或第二代码出现的顺序与先前使用周期不同,因此虚拟代码生成装置100可以将生成与先前周期不同的虚拟代码的虚拟代码生成函数应用于新使用周期。并且,虚拟代码生成装置100可以以如下方式选择第一函数和第二函数,使得与先前使用周期中使用的虚拟代码相同的代码不会出现为针对新使用周期内的每个计数的虚拟代码(即,在新使用周期的所有计数中根据第一函数生成的第一代码和根据第二函数生成的第二代码的匹配关系不包括在先前使用周期内包括的匹配关系中)。即,在经过M

此时,虚拟代码生成单元10及虚拟代码验证单元20可以存储更新虚拟代码生成函数的规则。即,虚拟代码生成单元10及虚拟代码验证单元20可以存储用于将多个第一函数和多个第二函数应用于各个使用周期的顺序或规则。

并且,作为防止虚拟代码重复生成的另一具体实施例,虚拟代码中所包括的第一代码及第二代码中的一个可以通过反映至少针对各个虚拟代码生成装置100在相同时间点总是不同地存在的值(即,装置识别值)而生成,使得即使在属于相同组的用户之间也不会在相同时间点生成相同的虚拟代码。作为一实施例,装置识别值可以是从应用了特定的详细代码生成函数的组开始包括特定的虚拟代码生成装置100的时间点(例如,从虚拟代码验证单元20内驱动特定的详细代码生成函数的最初时间点开始经过特定时间之后,开始在特定的虚拟代码生成装置100应用特定的详细代码生成函数的时间点)到目前为止经过的时间(或计数)。在一个组内包括多个虚拟代码生成装置100的情况下,如果将虚拟代码生成装置100设定为属于相应组的计数不同(即,如果虚拟代码生成装置100不能同时属于相应组),则从虚拟代码生成装置100属于相应组的时间点(或计数)到特定时间点所经过的时间对于每个虚拟代码生成装置100是不同的。因此,详细代码生成函数中至少一个可以使用从虚拟代码生成装置100属于组的时间点(或计数)到特定时间点所经过的时间作为装置识别值,使得每个时间点在各个虚拟代码生成装置100生成的虚拟代码不同。据此,虚拟代码验证单元20可以在不额外接收用于区分用户的数据的情况下仅通过接收虚拟代码来区分虚拟代码生成装置100。

例如,在虚拟代码生成装置100是能够变更输出的卡号的卡(例如,智能卡或应用卡等)的情况下,特定的卡公司的特定卡类型被设定为一个组,并且卡公司服务器内的特定的虚拟代码验证单元20针对该组被驱动。如果第一用户在从虚拟代码验证单元20被驱动起经过A时间的时间点向第一虚拟代码生成装置100(即,第一用户的虚拟代码生成装置100)请求发行卡,第二用户在从虚拟代码验证单元20被驱动起经过B(B为大于A的值)时间的时间点向第二虚拟代码生成装置100(即,第二虚拟代码生成装置100)请求发行卡,则对于第一虚拟代码生成装置100及第二虚拟代码生成装置100而言,从发行卡的时间点至第一用户和第二用户请求生成虚拟代码的C时间(C为大于B的值)所经过的时间长度总是不同的。因此,详细代码生成函数可以向各个虚拟代码生成装置100应用从发行卡的时间点起经过的时间长度作为变量,来在相同的时间点不会生成相同的虚拟代码。

并且,由于从特定的虚拟代码生成装置100属于特定组的时间点起经过的时间长度随时间流逝而增加,因此在特定的虚拟代码生成装置100生成的详细代码(例如,第二代码)不会被生成相同的值,而是连续生成不同的值。

并且,作为防止虚拟代码重复生成的又一具体实施例,第一代码可以被设定为在虚拟代码验证单元20内驱动第一函数的初始时间点开始每个计数匹配的代码中与请求生成虚拟代码的时间点(或计数)对应的代码值,第二代码被设定为通过反映每个虚拟代码生成装置100在相同时间点总是不同地存在的值(即,装置识别值)而生成的代码值,并且将虚拟代码用作组合所述第一代码与第二代码的代码值,从而与用户无关地,在整个周期中不会生成重复的虚拟代码。第一代码是每个计数不同的代码值,第二代码针对每个虚拟代码生成装置100在相同的时间点具有不同的代码值,从而组合第一代码与第二代码的虚拟代码在所有虚拟代码生成装置100和所有时间点输出不同的代码值。

并且,作为另一实施例,所述虚拟代码生成函数(或详细代码生成函数)应用以升序排列M个字符的多个排列规则中一个。即,虚拟代码生成装置100(即,虚拟代码生成单元10)可以多样地应用在虚拟代码生成函数内所包括的详细代码生成函数中以升序排列M个字符的规则。例如,以升序排列大写字母的排列规则可以是作为一般顺序的A、B、C、……、Z顺序,也可以是A、C、B、……、Z顺序。由于虚拟代码生成函数中排列规则不同,因此从虚拟代码生成函数被驱动的初始时间点起代码依次匹配于各个计数的顺序不同。虚拟代码验证单元20可以将根据相同的排列规则生成的代码与各个计数匹配,或者将相同的排列规则本身存储于虚拟代码生成函数。因此,每个组的虚拟代码生成函数可以包括不同的详细代码组合函数或者包括不同的字符排列规则,使得每个组具有不同的虚拟代码生成函数。

并且,作为另一实施例,详细代码生成部110生成在虚拟代码验证服务器200能够变更为用于搜索实际卡号的第一代码和第二代码而进行使用的多个详细代码。虚拟代码生成函数包括各个详细代码生成函数。例如,虚拟代码生成函数利用多个详细代码生成函数生成多个详细代码,并且利用组合多个详细代码的详细代码组合函数生成虚拟代码。

作为一实施例,详细代码生成部110执行生成虚拟代码内所包括的OTP代码和提取代码的作用。即,所述虚拟代码根据特定的规则组合包括固定代码、OTP代码及提取代码的多个代码来生成。为此,虚拟代码生成函数可以包括生成OTP代码的OTP函数、提取代码生成函数及详细代码组合函数。

作为一实施例,如图4所示,所述详细代码生成部110包括OTP代码生成部111及提取代码生成部112。

所述OTP代码生成部111在请求生成虚拟代码的时间点基于存储于内部的OTP函数来生成OTP代码。OTP代码生成部111基于特定的种子数据(或序列号)反映请求生成OTP代码的计数(即,用户为了金融交易而请求生成与实际卡号对应的虚拟代码的时间点)来生成OTP代码。所述OTP代码基于OTP函数以特定数量的数字阵列生成,从而用于计算转换代码。即,如果虚拟代码被传送到虚拟代码验证单元(例如,虚拟代码验证服务器),则虚拟代码验证单元基于虚拟代码OTP号搜索转换代码,之后将转换代码用作用于搜索实际卡号存储位置的第一代码或第二代码。

作为一实施例,OTP代码生成部111使用对由金融公司服务器向用户发行的用户特定实际卡号或实际卡号在虚拟令牌验证服务器中登记的计数作为OTP函数的种子数据。即,虚拟代码验证单元(即,金融公司服务器或虚拟令牌验证服务器)使用按各个用户区分的实际卡号发行计数或实际卡号登记计数作为种子数据。据此,虚拟代码验证单元可以使用从虚拟代码提取的OTP代码来搜索发行或登记实际卡号的计数。并且,据此,由于登记或发行其他用户的实际卡号的计数不同,因此OTP代码生成部111使用不同的种子数据来驱动OTP函数。即,OTP代码生成部111可以对各个用户使用不同的登记或发行实际卡号的计数作为种子数据,从而可以按用户在相同的时间点生成不同的OTP代码。

在OTP代码生成部111生成的OTP代码用于在虚拟代码验证服务器200计算用作第一代码或第二代码的转换代码。即,OTP代码作为种子值被输入到转换代码生成函数中而用于生成特定的转换代码。转换代码生成函数存储在虚拟代码验证服务器200内。并且,在转换代码在提取代码生成函数用作种子值的情况下,后文所述的提取代码生成部112可以为了利用在OTP代码生成部111生成的OTP代码生成转换代码而包括转换代码生成函数。

作为一实施例,所述转换代码可以根据特定的规则与OTP代码一对一匹配。即,转换代码生成函数可以形成位数不同的OTP代码与转换代码一对一的匹配关系。

并且,作为另一实施例,通过将所述OTP代码和请求生成虚拟代码的计数值作为种子值而输入到转换代码生成函数中,来计算出所述转换代码。即,转换代码生成函数可以将OTP代码和请求生成虚拟代码的计数值用作种子值,从而即使将相同的OTP值用作种子值,也可以根据计数值生成不同的转换代码。据此,在OTP代码是位数比转换代码小的数字串的情况下,可以将比OTP代码数量更多的转换代码用作用于搜索实际卡号存储位置的第一代码或第二代码。

并且,作为另一实施例,在所述固定代码被新分配给特定的卡类型的虚拟代码的情况下,所述详细代码生成部110可以生成布置于有效期限位的特定的数字组合作为可变代码,并且将可变代码和OTP代码一同用作转换代码生成函数的种子值(即,变量)。即,通过将可变代码和OTP代码用作种子值来生成所述转换代码。

布置于所述有效期限的数字组合是每个单位计数变更而生成,可以用作实际有效期限,并且包括在从当前计数开始的最大期限内。为了避免结算系统内发生错误,有效期限应该是从当前时间至有效期限内的值。例如,在实际卡的有效期限为5年的情况下,详细代码生成部110根据特定的规则生成与从请求结算的时间点起5年内的年月组合相对应的数字组合。

据此,减小了OTP代码和可变码的组合与转换代码之间的情况的数量差异。例如,当在有效期限内使用5年内的数字组合,仅利用3位作为OTP代码,9位数字作为转换代码时,60个数字组合可以被用作可变代码,因此可变代码和OTP代码的组合为60×10

所述提取代码生成部112执行在虚拟代码验证单元(例如,虚拟代码验证服务器)中生成用作用于搜索实际卡号存储位置的第一代码或第二代码的提取代码的作用。在虚拟代码验证单元将基于OTP代码计算的转换代码用作第一代码的情况下,虚拟代码验证单元将提取代码用作第二代码。即,所述转换代码或所述提取代码根据在所述虚拟代码验证单元中设定的条件分别被用作第一代码或第二代码。所述第一代码设定在所述虚拟代码验证单元中搜索实际卡号的存储位置的开始点,所述第二代码设定根据特定的搜索方式从开始点到所述存储位置的搜索路径。具体而言,由于所述提取代码对应于从在相同计数生成的OTP代码计算的转换代码,因此虚拟代码验证单元使用特定计数的虚拟代码内的提取代码和基于特定计数的虚拟代码内OTP代码生成的转换代码,来搜索实际卡号存储位置。

并且,转换代码及提取代码与第一代码及第二代码的匹配关系在虚拟代码生成装置100及虚拟代码验证装置200中预先设定。如果逆向应用转换代码及提取代码与第一代码及第二代码的匹配关系,则在虚拟代码验证服务器200无法搜索实际卡号的存储位置,因此发行虚拟代码生成装置时或存储虚拟代码生成函数时预先设定。

作为一实施例,提取代码生成部112包括与OTP函数具有相关关系的提取代码生成函数。即,提取代码生成部112包括基于在特定计数生成的OTP代码在相同计数生成与转换代码一同用于能够搜索实际卡号存储位置的代码值的函数作为提取代码生成函数。

并且,作为另一实施例,提取代码生成部112可以将OTP代码本身作为种子值输入到提取代码生成函数而生成能够找到实际卡号存储位置的提取代码(即,在特定计数与转换代码具有相关关系的提取代码)。并且,作为另一实施例,提取代码生成部112可以与虚拟代码验证服务器200同样地包括基于OTP代码计算转换代码的转换代码生成函数,基于在OTP代码生成部111生成的OTP代码生成转换代码,并且将转换代码作为种子值输入到提取代码生成函数而生成提取代码。

所述提取代码生成为所述虚拟代码的全部数字数量中除了所述固定代码及所述OTP代码之外的数字数量的全部或一部分。即,提取代码生成部112在虚拟代码(例如,在卡识别号为16位,卡安全代码为3位的情况下,总共23位)中将除了有效期限(例如,4位)和固定代码(例如,6位)之外的位数(例如,包括卡识别号内除了固定代码之外的范围和卡安全代码范围的13位)的全部或一部分排列组合了提取代码和OTP代码的数字串。例如,在将卡识别号的最后一位用作检查数字(check digit)的情况下,提取代码生成部112在除了检查数字位之外的其余位(例如,12位)排列组合了提取代码和OTP代码的数字串。具体而言,所述虚拟代码生成部120通过详细代码组合函数组合OTP代码和提取代码,并将其排列在所述卡识别号中除了固定代码和所述卡安全代码之外的位。

OTP代码生成部111和提取代码生成部112在每个单位计数不同地生成OTP代码和提取代码。即,所述OTP代码及所述提取代码在每个单位计数变更。据此,虚拟代码生成装置100生成每个计数变更的虚拟代码。即使提取代码和OTP代码在每个单位计数变更,由于基于OTP代码生成的转换代码与提取代码有关联,所以虚拟代码验证服务器200也可以搜索实际卡号存储位置。

并且,作为另一实施例,所述OTP代码生成部111以比虚拟代码验证单元中用作第一代码或第二代码的转换代码少的位数生成OTP代码。例如,所述OTP代码以实际卡号内的卡安全代码的数字数量生成,所述第二代码以所述虚拟代码的全部数字数量中除了所述固定代码、所述OTP代码及有效期限之外的数字数量的全部或一部分而生成。即,如果卡安全代码为三位,则OTP代码生成部111以3位生成OTP代码,提取代码生成部112以全部卡号数字数量23个中除了固定代码6位、有效期限4位、OTP代码3位以及检查数字1位之外的9位生成提取代码。

据此,由于虚拟代码生成装置可以将限定的实际卡号的位中的9位用于提取代码,因此能够用作提取代码的代码的数量可以增加,从而提高安全性。尤其,在为了完全不修改现有结算过程而在虚拟代码中仅使用数字的情况下,可以利用从0到9的10个数字生成9位的提取代码,因此可以使用10

此时,基于OTP代码生成的转换代码可以被生成为与提取代码具有相同的位数的数字串。据此,转换代码和提取代码可以在虚拟代码验证服务器中分别用作第一代码或第二代码。并且,由于通过较少位数的OTP代码生成较多位数的转换代码,因此在虚拟代码内能够用于OTP代码和提取代码的区域(即,12位)中的大部分可以用于提取代码。

因此,即使在仅使用数字生成虚拟代码的情况下,虚拟代码验证服务器200也可以将较多的数字位分配给直接用作第一代码或第二代码的提取代码,并且将OTP代码分配给剩余位,因此能够提高安全性。

虚拟代码提供部130执行为了将所述虚拟代码提供至虚拟代码验证装置200而将所述虚拟代码输出到外部的作用。虚拟代码提供部130可以包括能够将虚拟代码提供至外部的多种构成。虚拟代码提供部130包括无线互联网模块、近距离通信模块、IC芯片131、磁场发生部、显示部132等的全部或一部分。

无线互联网模块是指用于无线互联网连接的模块,可以内置或外部安装于移动终端100。作为无线互联网技术,可以使用无线局域网(WLAN:Wireless LAN)(Wi-Fi)、无线宽带(Wibro:Wireless broadband)、全球微波接入互操作性(Wimax:WorldInteroperability for Microwave Access)、高速下行链路分组接入(HSDPA:High SpeedDownlink Packet Access)、长期演进(LTE:long term evolution)、高级长期演进(LTE-A:Long Term Evolution-Advanced))等。例如,在虚拟代码生成装置100是设置有作为虚拟代码生成单元的应用卡应用程序的移动终端的情况下,当在购物应用程序或购物网站上购买物品时,虚拟代码生成装置100可以通过无线互联网通信将虚拟代码传送到支付结算服务服务器(即,PG公司服务器)40。

近距离通信模块是指用于近距离通信的模块。作为近距离通信(short rangecommunication)技术,可以使用蓝牙(Bluetooth)、蓝牙低功耗(BLE:Bluetooth LowEnergy)、信标(Beacon)、射频识别(RFID:Radio Frequency Identification)、近场通信(NFC:Near Field Communication)、红外数据协会(IrDA:Infrared Data Association)、超宽带(UWB:Ultra Wideband)、ZigBee等。

在虚拟代码生成装置100对应于将虚拟代码发送至POS装置的卡的情况下,虚拟代码提供部130可以包括磁场发生部或IC芯片。磁场发生部执行以磁信号形态输出卡数据并发送至读卡器的功能。磁场发生部可以包括一个以上通过电流流动形成磁场来输出卡信息磁信号的磁单元。磁场发生部可以配备为邻近于卡的PCB板的特定的长边且沿所述长边暴露于PCB板的上表面或下表面。

IC芯片131可以贴装于PCB板内而与IC型读卡器的端子接触,从而执行数据交换。即,IC芯片将在虚拟代码生成部120生成的虚拟代码发送至IC型读卡器。

显示部132可以包括液晶显示器(liquid crystal display)、薄膜晶体管液晶显示器(thin film transistor-liquid crystal display)、有机发光二极管(organiclight-emitting diode)、柔性显示器(flexible display)、电子纸(E-paper)中的至少一个。

显示部132可视地向外部输出在虚拟代码生成部120生成的虚拟代码。据此,虚拟代码生成装置100的用户可以在视觉上确认实时生成的虚拟代码,并且可以将视觉上确认的虚拟代码直接输入到虚拟代码验证单元20。

例如,如图5所示,在虚拟代码生成装置为智能卡的情况下,虚拟代码生成装置可以不在表面记载卡号,而配备有能够输出虚拟代码的显示部。并且,例如,在虚拟代码包括与发行者识别号相同的固定代码的情况下,虚拟代码生成装置100可以在卡表面记载发行者识别号,并且仅通过显示部具有剩余卡号的位。例如,所述显示部可以是电子纸、OLED等,也可以是配备于各个位的7段显示器。并且,例如,在虚拟卡生成装置为设置有应用卡应用程序的智能电话的情况下,显示部可以是执行并显示应用卡应用程序的智能电话的显示部。

并且,用户可以通过文本消息等多种路径来发送显示于显示部的虚拟代码。由于并非发送实际卡号,而是发送在虚拟代码验证单元20能够搜索实际卡号的虚拟代码(具体而言,连续地变更而生成的代码),因此当用户通过文本消息等发送代码时可以无需担心实际卡号泄漏。

并且,作为另一实施例,如图6所示,虚拟代码生成装置100还包括虚拟代码确认部140。在固定代码用于特定的卡类型的实际卡号的情况下,虚拟代码确认部140执行判断在特定计数生成的虚拟代码是否为在特定的卡类型可用作实际卡号的代码串的作用。

如果虚拟代码生成装置100的虚拟代码生成部120将与分配给特定的卡类型的实际卡号的发行商识别号不同的相应卡类型的虚拟代码用发行商识别号用作固定代码,则由于不同的发行商识别号而不会与实际卡号重复。然而,如果将实际卡号中使用的发行者识别号原样地用作固定代码,则由卡公司实际已经发行或可以发行的实际卡号可能重复,因此只有在防止这种情况的情况下,才可以在虚拟代码验证服务器200确认是虚拟代码并搜索实际卡号。即,虚拟代码生成装置100必须排除根据特定的卡公司或卡类型的实际卡号生成规则生成的数字串而生成虚拟代码。

具体而言,所述虚拟代码确认部140将虚拟代码内的卡识别号、有效期限及服务代码(即,按各个卡公司生成实际卡号时使用的固有代码)输入到实际卡号生成规则而生成比较卡安全代码,将作为布置在所述虚拟代码内的卡安全代码位的数字的生成卡安全代码与所述比较卡安全代码进行比较,如果一致,则请求重新生成虚拟代码。例如,虚拟代码生成装置100反复执行以下一个计数为基准再次生成虚拟代码并进行比较的过程,并输出不会生成为实际卡号的虚拟代码。并且,所述服务代码可以存储在不能从外部访问的存储空间。

图7是根据本发明的一实施例的虚拟代码验证装置200的构成图。

参照图7,根据本发明的又一实施例的虚拟代码验证装置200包括虚拟代码接收部210、详细代码提取部220及实际卡号搜索部230。虚拟代码验证装置200可以是金融公司服务器(例如,卡公司或银行的服务器)。

例如,虚拟代码验证装置200可以是接收关于特定用户所持有的关于特定卡公司的特定类型的卡的虚拟代码之后搜索实际卡号而进行结算的卡公司服务器。具体而言,在卡结算的情况下,虚拟代码验证装置200通过POS装置及PG公司服务器接收在虚拟代码生成装置100生成的虚拟代码

并且,例如,在用户想要使用作为虚拟代码生成装置的智能卡从ATM提取现金的情况下,虚拟代码验证装置200可以是银行服务器。即,如果用户通过作为虚拟代码生成装置100的智能卡向ATM机输入虚拟代码(例如,将智能卡插入卡插入口或接触NFC读取器),则银行服务器从ATM机接收虚拟代码,之后搜索实际卡号。

虚拟代码接收部210执行从虚拟代码生成装置100接收虚拟代码的作用。作为一实施例,虚拟代码接收部210可以通过与另一服务器(例如,支付结算服务服务器)的通信来接收在虚拟代码生成装置100生成的虚拟代码。

详细代码提取部220提取所述虚拟代码中所包括的多个详细代码。所述虚拟代码根据特定的规则组合多个详细代码而生成。虚拟代码验证装置200的详细代码提取部220可以与特定组的虚拟代码生成装置100包括相同的详细代码组合函数,从而详细代码提取部220应用详细代码组合函数而从虚拟代码中提取多个详细代码。例如,在虚拟代码生成装置100生成组合两个详细代码(例如,在第一代码和第二代码本身包括在虚拟代码内的情况下,为第一代码和第二代码,在包括可以转换后用作第一代码和第二代码的代码的情况下,为OTP代码和提取代码)的虚拟代码的情况下,详细代码提取部220可以将详细代码组合函数应用于虚拟代码的字符排列而分离两个详细代码。

并且,作为另一实施例,如图8所示,详细代码提取部220包括转换代码计算部221。在虚拟代码中包括OTP代码和提取代码而通过详细代码组合函数分离OTP代码与提取代码的情况下,转换代码计算部221包括将OTP代码作为种子值计算转换代码的转换代码生成函数。

作为一实施例,所述转换代码可以根据特定的规则与OTP代码一对一匹配。即,转换代码生成函数可以形成位数不同的OTP代码与转换代码一对一的匹配关系。

并且,作为另一实施例,所述转换代码通过将所述OTP代码和请求生成虚拟代码的计数值作为种子值输入到转换代码生成函数中来计算。即,转换代码生成函数可以使用OTP代码和请求生成虚拟代码的计数值作为种子值,从而即使使用相同的OTP值作为种子值,也可以根据计数值生成不同的转换代码。据此,在OTP代码是位数比转换代码小的数字串的情况下,可以利用比OTP代码位数更多的转换代码作为用于搜索实际卡号存储位置的第一代码或第二代码。此时,转换代码计算部221将在从接收到虚拟代码的计数至特定范围内的计数生成的OTP值与从虚拟代码分离的OTP代码进行比较,来掌握生成虚拟代码的计数。作为一实施例,所述转换代码生成函数可以是将OTP代码用作种子数据的特定的OTP函数。即,转换代码生成函数应用OTP代码作为种子数据来生成关于当前时间点(即,当前时间数据)的代码。

并且,作为另一实施例,在所述固定代码被新分配给特定的卡类型的虚拟代码的情况下,所述详细代码生成部110可以将布置于有效期限位的特定的数字组合生成为可变代码,并且将可变代码和OTP代码一同用作转换代码生成函数的种子值(即,变量)。即,所述转换代码通过将可变代码和OTP代码作为种子值来生成。

布置于所述有效期限的数字组合通过每个单位计数变更而生成,可以用作实际有效期限,并且包括在从当前计数开始的最大期限内。为了避免结算系统内发生错误,有效期限应该是从当前时间至有效期限内的值。例如,在实际卡的有效期限为5年的情况下,详细代码生成部110根据特定的规则生成与从请求结算的时间点至5年内的年月组合相对应的数字组合。

实际卡号搜索部230基于多个详细代码搜索实际卡号的存储位置。作为实际卡号搜索部230基于各个详细代码搜索实际卡号存储位置的方式,可以应用多种方式。为了使实际卡号搜索部230基于多个详细代码搜索存储位置,详细代码之间可以包括相关关系。

在虚拟代码由第一代码及第二代码构成的情况下,作为详细代码之间具有相关关系的一实施例,实际卡号搜索部230可以确定与第一代码对应的搜索开始点,并且将从所述搜索开始点沿与第二代码相对应的搜索路径移动的点搜索为实际卡号的存储位置。即,所述详细代码可以包括设定存储位置搜索的开始点的第一代码和根据特定的搜索方式设定从所述开始点到所述存储位置的搜索路径的第二代码。

并且,作为另一实施例,由于虚拟代码生成单元10(或虚拟代码生成装置100)每个单位计数提供新的虚拟代码,因此虚拟代码验证装置200可以基于每个计数变更的第一代码及第二代码设定搜索开始点和搜索路径来搜索实际卡号的存储位置。

并且,作为另一实施例,实际卡号搜索部230可以为了利用具有相关关系的多个详细代码来查找实际卡号的存储位置而包括存储位置搜索算法。存储位置搜索算法是当应用包括在虚拟代码中的各个详细代码时能够搜索存储位置的算法。例如,在虚拟代码包括确定存储位置的搜索开始点的第一代码和指示从搜索开始点开始的存储位置方向的第二代码的情况下,当在与第一代码对应的点指示与第二代码对应的方向时,存储位置搜索算法是调节将与实际卡号匹配的存储位置调节为布置在相应位置的算法。通过利用存储位置搜索算法,即使包括在虚拟代码中的第一代码和第二代码改变,虚拟代码验证装置200也可以查找出实际卡号存储位置或者与存储位置匹配的点。存储位置搜索算法可以应用多种方式,详细示例将在后文进行说明。但是,存储位置搜索算法并不局限于后文所述的示例。

并且,作为另一实施例,如图9所示,所述虚拟代码验证装置200还包括虚拟代码验证部240。虚拟代码验证部240执行判断虚拟代码验证装置200接收的虚拟代码的真伪的作用。

并且,作为另一实施例,在虚拟代码包括OTP代码和提取代码的情况下,虚拟代码验证部240利用OTP代码来确认是否为用户的卡在当前时间点生成的虚拟代码。例如,在通过将与关于各个用户或虚拟代码生成单元的实际卡号发布或登记的计数相对应的值用作OTP函数的种子数据而生成所述OTP代码的情况下,虚拟代码验证部240将比较OTP代码与接收到的虚拟代码中所包括的接收代码进行比较,其中,将基于接收到的OTP代码(即,接收OTP代码)生成的转换代码和利用从虚拟代码提取的提取代码检索到的计数用作种子数据而生成所述比较OTP代码。

即,虚拟代码验证部240确认多个比较OTP代码中是否存在与接收OTP代码一致的OTP代码,其中,将虚拟代码验证单元搜索到的计数(即,基于虚拟代码判断为与实际卡号匹配的计数)作为种子数据基于从当前时间点至特定时间范围内的时间数据而计算出所述多个比较OTP代码。如果在基于从当前时间点至特定时间范围内的时间数据计算的多个比较OTP代码中存在与接收OTP代码一致的OTP代码,则虚拟代码验证部240将其判断为正常生成的虚拟代码,如果不存在与接收OTP代码一致的OTP代码,则虚拟代码验证部240将其判断为异常的虚拟代码(任意生成的虚拟代码或之前在该虚拟代码生成装置中生成的虚拟代码)。

图10是根据本发明的一实施例的基于虚拟代码的金融交易提供方法的流程图。

参照图10,根据本发明的一实施例的基于虚拟代码的金融交易提供方法包括如下步骤:虚拟代码验证单元接收由虚拟代码生成单元提供的虚拟代码(S200,虚拟代码接收步骤);所述虚拟代码验证单元提取所述虚拟代码中所包括的多个详细代码(S400);所述虚拟代码验证单元基于多个详细代码搜索实际卡号的存储位置(S1000,实际卡号搜索步骤)以及利用在所述存储位置提取的所述实际卡号进行金融交易或请求进行金融交易(S1200)。以下,记载对各个步骤的详细说明。但是,省略在关于虚拟代码生成装置100及虚拟代码验证装置200的说明过程中上述的内容的具体说明。

虚拟代码验证单元20从虚拟代码生成单元10接收虚拟代码(S200,虚拟代码接收步骤)。虚拟代码在虚拟代码生成装置100(或虚拟代码生成单元10)生成而提供至虚拟代码验证单元20。

虚拟代码验证单元20通过多种方式接收虚拟代码生成单元10生成的虚拟代码。即,可以应用上述的虚拟代码生成装置100的多种虚拟代码提供方式。

例如,在卡公司服务器包括所述虚拟代码验证单元的情况下,在所述虚拟代码接收步骤(S200)中,所述虚拟代码验证单元接收在支付结算服务服务器基于所述固定代码被分类为与特定的卡公司相对应的虚拟代码。此时,所述支付结算服务服务器从在金融交易终端30或计算机中驱动的结算程序接收虚拟代码。

虚拟代码验证单元20提取所述虚拟代码中所包括的多个详细代码(S400)。由于虚拟代码验证单元20包括虚拟代码生成单元10所包括的虚拟代码生成函数,因此通过同样地应用组合多个详细代码的规则(即,详细代码组合函数)来提取多个详细代码。即,详细代码组合函数对应于排列多个详细代码的规则,且包括在虚拟代码生成函数内。

作为一实施例,在虚拟代码内直接包括用于搜索存储位置的第一代码和第二代码的情况下,虚拟代码验证单元20利用详细代码组合函数提取第一代码和第二代码。即,第一代码及第二代码在虚拟代码验证单元20分别用于搜索实际卡号的位置。例如,第一代码可以是设定为在虚拟代码验证单元20搜索实际卡号存储位置的开始点的代码,第二代码是根据特定的搜索方式设定从所述开始点到所述存储位置的搜索路径的代码。所述搜索方式可以由存储位置搜索算法确定。关于确定搜索方式的详细说明将在后文所述的实际卡号搜索步骤S1000中进行详细说明。

并且,作为另一实施例,在利用M个字符生成N位的所述第一代码或所述第二代码的情况下,所述虚拟代码生成函数包括将不同的M

具体而言,在利用M个字符生成N位的所述第一代码或所述第二代码,使得将M

并且,作为另一实施例,虚拟代码中所包括的第一代码及第二代码中的至少一个可以在各个虚拟代码生成单元10通过反映在相同时间点总是不同地存在的值(即,装置识别值)而生成,使得即使在属于相同组(即,相同卡公司的相同卡类型的组)内也不会在相同时间点生成相同的虚拟代码。即,在同一卡类型或卡种类的多个虚拟代码生成单元10在特定时间点被请求发行虚拟代码的情况下,各个虚拟代码生成单元10反映在各个时间点不同地分配给各个虚拟代码生成单元10的值来生成不同的第一代码或第二代码,从而各个虚拟代码生成单元10生成不同的虚拟代码。

例如,在虚拟代码包括对应于发行商识别码的固定代码的情况下,虚拟代码验证装置200(例如,卡公司服务器)按根据发行商识别码区分的各个卡公司的卡类型分配虚拟代码生成函数。据此,由于通过固定代码在不同的卡公司/卡类型之间生成不同的虚拟代码,因此虚拟代码生成单元10必须以使在相同卡公司的特定卡类型组内不生成相同的虚拟代码的方式生成详细代码。为此,通过反映在各个时间点不同地分配给各个虚拟代码生成单元10的值来生成不同的详细代码,使得各个虚拟代码生成单元10生成不同的虚拟代码。

作为一例,装置识别值可以是从特定的虚拟代码生成单元10包括于应用了特定的详细代码生成函数的组中的时间点(例如,从虚拟代码验证单元20内驱动特定的详细代码生成函数的最初时间点起经过特定时间之后,开始在特定的虚拟代码生成装置100应用特定的详细代码生成函数的时间点)到目前为止经过的时间(或计数)。例如,装置识别值可以利用从根据特定用户的请求而以特定卡公司的卡类型发行实际卡号使得实际卡号属于该卡类型组的计数开始的经过时间。例如,在虚拟代码通过第一代码和第二代码的组合生成的情况下,虚拟代码生成函数可以基于从新生成实际卡号的时间点起经过的单位计数来生成第二代码。

必须即使在多个虚拟代码生成单元同时接收发行虚拟代码的情况下也生成不同的代码才可以解决生成重复代码而引起的问题。如果使将虚拟代码生成单元10设定为属于相应卡类型组的计数不同(例如,如果使关于虚拟代码生成单元10的实际卡号不能在相同的时间点登记在相应卡类型组),则从虚拟代码生成单元10属于该组的时间点(或计数)起到特定时间点所经过的时间对于每个虚拟代码生成装置100是不同的。例如,在同时接收到来自特定卡公司的特定卡类型的卡发行请求的情况下,虚拟代码验证单元20可以根据预定的条件对同时接收的卡发行请求进行排序而将请求处理为在另一计数被接收到。即,虚拟代码验证单元20可以将实际同时接收到的卡发行请求以发生至少一个单位计数的差方式匹配到不同的计数,使得从关于各个虚拟代码生成单元10的实际卡号的时间点起到相同的特定时间点经过的计数可以总是不同的。

据此,至少一个详细代码生成函数可以将从虚拟代码生成装置100属于特定卡类型组的时间点(或计数)起到特定时间点所经过的时间用作装置识别值,使得在每个时间点各个虚拟代码生成装置100生成的虚拟代码总是不同。据此,虚拟代码验证单元20可以不额外接收用于区分用户的数据,而仅通过接收虚拟代码来实现区分虚拟代码生成单元10。

并且,由于从特定的虚拟代码生成装置100属于特定卡类型组的时间点起经过的时间长度随时间流逝而连续增加,因此在特定的虚拟代码生成装置100生成的详细代码(例如,第二代码)不会生成相同的值,而是连续生成不同的值。

并且,作为另一实施例,为了与用户无关地,在整个周期中不会生成重复的虚拟代码,第一代码可以被设定为与驱动第一函数的初始时间点开始的每个计数匹配的代码中与请求生成虚拟代码的时间点(或计数)对应的代码值,第二代码被设定为通过反映每个虚拟代码生成装置100在相同时间点总是不同地存在的值(即,装置识别值)而生成的代码值,并且将组合所述第一代码与第二代码的代码值用作虚拟代码。第一代码为每个计数不同的代码值,第二代码使得每个虚拟代码生成装置100在相同的时间点具有不同的代码值,从而组合第一代码与第二代码的虚拟代码在所有虚拟代码生成装置100和所有时间点输出不同的代码值。

并且,作为另一实施例,所述虚拟代码生成函数包括与排列多个详细代码的规则相对应的详细代码组合函数。即,虚拟代码生成函数可以具有排列或布置包括在多个详细代码中的字符的特定规则。据此,在包括相同的虚拟代码生成函数的虚拟代码生成单元10和虚拟代码验证单元20的情况下,虚拟代码生成器单元10可以根据详细代码组合函数排列包括在多个详细代码中的字符,虚拟代码验证单元20利用相同的详细代码组合函数从虚拟代码分离独立详细代码。

并且,作为另一实施例,所述虚拟代码生成函数可以应用以升序排列M个字符的多个排列规则中一个。即,虚拟代码生成函数可以应用以升序排列M个字符的多个排列规则,并且根据应用的排列规则分类为不同的虚拟代码生成函数。

作为另一实施例,在虚拟代码内包括转换用作用于搜索存储位置的第一代码和第二代码的多个详细代码的情况下,虚拟代码验证单元20利用详细代码组合函数提取多个详细代码并将其转换为用于搜索实际卡号存储位置的第一代码和第二代码。

具体而言,在所述详细代码提取步骤(S400)中,作为多个详细代码而包括OTP代码及提取代码的情况下,所述虚拟代码验证单元提取根据特定规则包括在所述虚拟代码中的固定代码及多个详细代码。所述OTP代码在虚拟代码生成单元10基于OTP函数以特定数量的数字阵列生成,从而用于计算转换代码。所述提取代码对应于从所述OTP代码算出的所述第一代码,并且以所述虚拟代码的全部数字数量中除了所述固定代码及所述OTP代码之外的数字数量的全部或一部分生成。

并且,如图11所示,所述详细代码提取步骤(S400)还包括虚拟代码验证单元基于所述OTP代码计算转换代码的步骤(S410)。即,OTP代码无法直接用作第一代码或第二代码,而是必须转换为可以用作第一代码或第二代码的转换代码。

例如,在OTP代码和提取代码的组合排列在卡识别号内除了固定代码(即,发行者识别号)位及验证数字位之外的位的数量以及卡安全代码位的数量,并且仅利用数字生成详细代码的情况下,虚拟代码生成单元10为了增加转换为第一代码或第二代码而直接使用的提取代码的可用代码的数量而向提取代码分配较多的位并向OTP代码分配且较少的位。因此,OTP代码需要转换为作为与提取代码相同的位数的代码的转换代码。

为此,虚拟代码验证单元20包括生成将OTP代码作为种子值来生成转换代码的转换代码生成函数。虚拟代码验证单元20包括与虚拟代码生成单元10相同的转换代码生成函数。

作为一实施例,所述转换代码生成函数可以仅使用OTP代码作为种子值而根据特定规则将位数不同的OTP代码与转换代码一对一匹配。

并且,作为另一实施例,所述转换代码生成函数可以使用OTP代码和生成虚拟代码的计数作为种子值来计算转换代码。此时,虚拟代码验证单元可以比较在从接收到虚拟代码的计数起的特定范围内由OTP代码生成函数生成的OTP值与OTP代码,而确认生成虚拟代码的计数。即,虚拟代码验证单元20将在与虚所述拟代码生成单元中包括的相同的OTP函数生成的比较代码与所述OTP代码进行比较而计算生成虚拟代码的计数值,并且在所述转换代码计算步骤(S410)中将所述计数值和所述OTP代码作为种子值输入到所述转换代码生成函数而计算转换代码。

并且,作为另一实施例,虚拟代码验证单元可以将作为在有限期限位包括的数字组合的可变代码和OTP代码一同用作种子值生成转换代码。即,在所述固定代码并非针对特定卡类型的虚拟代码而分配给实际卡号的现有发行者识别号,而是新分配的代码的情况下,所述详细代码提取步骤(S400)从有效期限位提取可变代码,并将所述可变代码和所述OTP代码作为种子值输入到转换代码生成函数中而生成所述转换代码(S410,转换代码计算步骤)。

可变代码是在虚拟代码生成单元10分配的以结算请求时间点为基准在有效期限能够有效使用的数字组合。虚拟代码生成单元10以与利用可变代码和OTP代码的组合生成的转换代码具有相关关系的方式生成提取代码。据此,虚拟代码验证单元可以将虚拟代码内有效期限位的可变代码和从虚拟代码提取的OTP代码作为种子值直接输入到转换代码生成函数而生成转换代码,并且将其直接用作与提取代码不同的代码(即,在提取代码用作第二代码的情况下,用作第一代码)。

并且,作为另一实施例,在虚拟代码包括确定包括虚拟代码生成单元10的组的固定代码的情况下,在所述详细代码提取步骤(S400)中,从所述虚拟代码内提取所述固定代码,基于所述固定代码判断所述虚拟代码生成单元的卡类型组,并确定针对所述卡类型组的所述虚拟代码生成函数或所述存储位置搜索算法。即,在按各个组不同地应用虚拟代码生成函数或存储位置搜索算法的情况下,虚拟代码验证单元20基于虚拟代码内的固定代码来区分组。

并且,利用固定代码来确定虚拟代码生成函数的过程可以在提取多个详细代码的过程之前执行。只有通过固定代码确定虚拟代码生成函数,才可以确定包括在虚拟代码生成函数内的详细代码组合函数,从而提取多个详细代码。为此,固定代码可以组合到虚拟代码内的固定的位置(例如,虚拟代码的最前方的特定数量的位),使得虚拟代码验证单元20即使没有额外的函数也能够容易地实现分离。

作为一具体实施例,所述详细代码提取步骤(S400)包括如下步骤:在组合OTP代码和提取代码而包括在虚拟代码内的卡识别号中除了固定代码之外的位和排列在所述卡安全代码位的数字串的全部或一部分的情况下,从所述虚拟代码内的卡识别号区域中提取固定代码;基于所述固定代码设定与特定卡类型对应的详细代码组合函数;以及利用所述详细代码组合函数从所述卡识别号中除了固定代码之外的位和排列在所述卡安全代码位的数字串提取所述OTP代码和所述提取代码。

并且,作为另一实施例,虚拟代码验证单元可以使用有效期限值作为用于区分存储位置搜索算法或虚拟代码生成函数的固定代码下位的详细基准值。即,所述虚拟代码同样地包括实际卡号的有效期限,并且所述虚拟代码验证单元20包括根据所述固定代码及有效期限值而不同的实际卡号搜索算法。如后文所述,所述实际卡号搜索算法是基于所述第一代码和所述第二代码搜索存储实际卡号的位置的算法。据此,在一个卡类型内,根据有效期限值(即,根据发行特定类型的卡的年月)单独地使用实际卡号搜索算法,因此虚拟代码验证单元20可以将可用的提取代码和OTP代码的组合重复使用于根据固定代码和有效期限值划分的多个组。

虚拟代码验证单元20基于多个详细代码搜索实际卡号的存储位置(S1000,实际卡号搜索步骤)。在多个详细代码为第一代码和第二代码本身的情况下,虚拟代码验证单元20直接利用从虚拟代码提取的第一代码和第二代码执行实际卡号存储位置搜索。第一代码和第二代码彼此间具有相关关系,并且虚拟代码验证单元20基于第一代码与第二代码的相关关系来搜索实际卡号存储位置。作为一具体实施例,所述第一代码设定在虚拟代码验证单元搜索实际卡号的存储位置的开始点,所述第二代码设定根据特定的搜索方法从所述开始点到所述存储位置的搜索路径。

作为另一实施例,在虚拟代码内的详细代码是转换为第一代码和第二代码而使用的代码(例如,OTP代码和提取代码)的情况下,虚拟代码验证单元20以与虚拟代码生成单元10相同的基准将由OTP代码计算出的转换代码和提取代码用作第一代码和第二代码。例如,可以将虚拟代码生成单元10和虚拟代码验证单元20同样地设定为将提取代码用作第二代码,将基于OTP代码生成的转换代码用作第一代码。据此,虚拟代码验证单元20根据预定的基准将转换代码和提取代码用作第一代码和第二代码。

虚拟代码内的多个详细代码可以变更为每个单位计数生成的代码(例如,在虚拟代码由两个详细代码构成的情况下,每个单位计数变更OTP代码和提取代码),并且即使虚拟代码每个单位计数变更,由于与多个详细代码对应的第一代码与第二代码具有相关关系,虚拟代码验证单元20也可以搜索实际卡号存储位置。

作为关于构成虚拟代码的详细代码之间的相关关系的实施例,在虚拟代码由第一代码和第二代码的组合构成的情况下,虚拟代码验证单元20可以将第一代码设定为搜索开始点(即,开始搜索实际卡号存储位置的点),将第二代码用作从所述搜索开始点移动到存储位置的路径,从而搜索存储位置。即,如果接收到每个单位计数正常生成的虚拟代码,则虚拟代码验证单元20判断从对应于第一代码的开始点沿对应于所述第二代码的搜索路径移动到的搜索点为实际卡号的存储位置或与存储位置匹配的点(例如,单独的服务器中与搜索点匹配的存储空间)。

作为一实施例,在第二代码包括关于从对应于第一代码的搜索开始点到存储位置的路径的所有信息的情况下,虚拟代码验证单元20可以从对应于第一代码的搜索开始点沿对应于第二代码的搜索路径,来查找实际卡号存储位置或与实际卡号存储位置匹配的点。

作为另一实施例,虚拟代码验证单元20可以包括每个单位计数将实际卡号的存储位置调节为符合虚拟代码的存储位置搜索算法。即,虚拟代码验证单元20包括每个单位计数调节向与实际卡号存储位置匹配的点的搜索路径的存储位置搜索算法。在所述第一代码及所述第二代码在每个单位计数变更的情况下,虚拟代码验证单元20可以根据变更的第一代码及第二代码调节存储位置搜索算法。所述存储位置搜索算法可以以多种形态实现。

作为一实施例,如图13所示,存储位置搜索算法可以是在排列k(k为M

如图12所示,虚拟代码验证单元20将k形边滚动移动到与从虚拟代码生成单元10接收的所述虚拟代码内第一代码对应的轨道上的点(S1010)。存储位置搜索算法是沿与第一代码相对应的M

如图12所示,虚拟代码验证单元20将与所述第一代码对应的位置设定为开始点,并且根据应用于所述第二代码的搜索方法,基于第二代码搜索k边形的布置状态下的存储位置或与存储位置匹配的点(即,k边形的特定顶点)(S1020,存储位置搜索步骤)。所述存储位置与所述k边形的各个顶点匹配。第一代码轨道(即,第一轨道)与k边形对应的点成为与第一代码对应的存储位置搜索开始点。虚拟代码验证单元20在搜索开始点基于第二代码搜索存储位置的匹配点。

作为基于第二代码在k边形搜索存储位置的方式,可以应用多种方式。作为一例,虚拟代码验证单元20可以通过在第一轨道上k边形接触的位置指向与第二代码相对应的角度(例如,以朝向k边形顶点的方式将180度划分为M

并且,作为另一示例,在k边形与第一轨道上对应于第一代码的点接触的状态下,虚拟代码验证单元20以k边形的中心和第一轨道上的接触点为基准将整个圆心角(即,360度)划分为M

并且,作为另一示例,可以将第二代码的特定位置用于确定角度计算方向。即,在利用N个(N为自然数)字符生成第二代码的情况下,可以使用一个位(Digit)来确定角度测量方向。例如,在以k边形的中心与第一轨道上的接触点为基准划分整个圆心角(即,360度)而将第二代码与各个角度匹配的情况下,虚拟代码验证单元20可以通过一个位(Digit)的值将方向确定为从连接k边形的中心与第一轨道上的接触点的线,向左侧方向测量的角度还是向右侧方向测量的角度确定。

作为一例,存储位置搜索算法可以根据在k边形上的各个顶点角度测量方向将不同的两个第二代码分配给一个顶点。即,当以内角到达一个顶点时和当以外角到达一个顶点时,与两个不同的第二代码匹配,并且连接不同的实际卡号。作为另一例,在利用N个(N为自然数)字符生成第二代码的情况下,存储位置搜索算法可以将N-1个字符与整个角度(例如,在以中心角为基准划分的情况下,为360度)的一半匹配,并且利用一个位来确定用于到达各个顶点的角度应用方向。

基于第二代码在k边形搜索存储位置的方式并不局限于此,可以应用搜索对应于第二代码的k边形上的点与第一轨道上的接触点之间以特定比率划分的点作为存储位置的方式等多种方式。

之后,虚拟代码验证单元20提取在所述存储位置包括的实际卡号(S1030)。即,虚拟代码验证单元20查找与k边形的顶点相对应的存储位置,来提取存储位置内的实际卡号。

并且,作为另一实施例,所述存储位置搜索算法基于构成虚拟代码的多个详细代码在轨道上移动而移动到与实际卡号存储位置匹配的点。例如,与所述实际卡号存储位置匹配的点可以是轨道上与向虚拟代码生成单元发行实际卡号的计数(即,时间点)相对应的点。

具体而言,在虚拟代码包括基于从虚拟代码生成函数被驱动的时间点起经过的时间生成的第一代码和基于从向特定的虚拟代码生成单元发行实际卡号的时间点起经过的时间生成的第二代码的情况下,如图14所示,虚拟代码验证单元20在将轨道上的与对应于第一代码的代码值匹配的计数设定为搜索开始点,并且从所述搜索开始点沿轨道返回与通过将第二函数(或者,在提取代码用作第二代码的情况下,为提取代码生成函数)的反函数应用于第二代码而计算的计数值,来搜索向虚拟代码生成单元10发行实际卡号的时间点的轨道上的点(即,与实际卡号存储位置匹配的点)。

并且,作为另一具体示例,虚拟代码验证单元20将与关于第一代码的移动轨道(即,第一移动轨道)平行布置的关于第二代码的移动轨道(即,第二移动轨道)按根据第一代码的移动的搜索开始点作为原点并且与根据第一代码的移动方向相反的方向的方式布置。并且,虚拟代码验证单元20在第二移动轨道上移动到与第二代码相对应的代码值的位置,并且搜索第一移动轨道上的与该位置相对应的点作为实际卡号存储位置。

之后,虚拟代码验证单元20利用在所述存储位置提取的所述实际卡号进行金融交易或请求金融交易进行(S1200)。

并且,如图15所示,作为另一实施例,还包括如下步骤:如果特定的虚拟代码生成单元10请求在特定计数新生成实际卡号,则将实际卡号存储在与在所述特定计数与k边形的特定顶点对应的存储位置(S100,实际卡号存储步骤)。所述特定顶点在特定计数接触于轨道上。当虚拟代码验证单元20驱动虚拟代码生成函数及存储位置搜索算法之后经过特定的时间点(或计数)时,虚拟代码验证单元20根据接收到针对特定的虚拟代码生成单元10的新的实际卡号的发行,将新生成的实际卡号存储在与k边形的接触于第一轨道上的顶点匹配的存储位置。具体而言,由于随着在虚拟代码验证单元20驱动虚拟代码生成函数及存储位置搜索算法,按照每个计数针对一个代码而k边形与轨道接触的位置移动的方式k边形滚动移动,如果在特定的计数请求发行新的实际卡号,则在特定的计数接触于轨道的顶点被确定为存储实际卡号的k形边上的点。

例如,如图12所示,根据在A时间点针对虚拟代码验证单元A发行实际卡号,虚拟代码验证单元在k边形的A时间点接触于轨道的顶点存储虚拟代码生成单元A的实际卡号。之后,随着计数经过,k边形沿轨道执行滚动移动。存储虚拟代码验证单元A的实际卡号的存储位置根据k边形的旋转而旋转。

即,在实际卡号存储于k边形的与轨道接触的顶点之后,k边形旋转所经过的n个计数的角度,使得存储实际卡号的点旋转经所过的n个计数数量的角度。据此,如果反映从发行实际卡号的计数(即,时间点)起经过的单位计数的数量而计算第二代码,则虚拟代码验证单元20可以通过第二代码利用生成虚拟代码的时间点计算出存储实际卡号的k边形上的点。

具体而言,在第一代码是与从在虚拟代码验证单元20内驱动特定的虚拟代码生成函数及存储位置搜索算法的初始时间点起经过的计数数量相对应的代码值,第二代码是与针对特定的虚拟代码生成单元10发行实际卡号之后经过的计数数量相对应的代码值的情况下,虚拟代码验证单元20通过第一代码掌握在虚拟代码生成单元10请求生成虚拟代码的时间点(例如,C时间点),通过第二代码掌握在相应时间点的k边形布置状态下k边形上的存储实际卡号的顶点。即,第一代码用于确定实现能够搜索k边形的特定顶点的k边形布置状态的轨道上的点,第二代码用于在k边形布置在轨道上的与第一代码相对应的点之后搜索k边形上的与实际卡号存储位置匹配的顶点。据此,即使在虚拟代码生成单元10生成虚拟代码并提供至虚拟代码验证单元20时存在延迟时间(delay time),虚拟代码验证单元20也可以准确地搜索与虚拟代码相对应的实际卡号。

并且,作为另一实施例,如图14所示,在利用在轨道上基于第一代码和第二代码移动的存储位置搜索算法的情况下,虚拟代码验证单元20从虚拟代码生成函数驱动的时间点开始每当经过单位计数时将从轨道开始点出发的指针(Pointer)在轨道上移动划分单位,从而可以将位于实际卡号发行时间点(A时间点)的轨道上的点确定为与实际卡号存储位置匹配的点。

并且,作为另一实施例,如图16所示,还包括如下步骤:所述虚拟代码验证单元20验证所述第一代码或所述第二代码是否对应于应用所述第一函数或第二函数的反函数而正常生成的虚拟代码(S500)。例如,在第一代码是与从在虚拟代码验证单元20内驱动特定的虚拟代码生成函数及存储位置搜索算法的初始时间点起经过的计数数量相对应的代码值,第二代码是与针对虚拟代码生成单元10发行实际卡号之后经过的计数数量相对应的代码值的情况下,当将实际卡号存储于存储位置处时,虚拟代码验证单元20一同存储虚拟代码生成函数被驱动之后到实际卡号发行时所经过的时间Ts。虚拟代码验证单元20将第一函数的反函数应用于虚拟代码内第一代码而计算从虚拟代码生成函数被驱动时到虚拟代码生成时间点的经过时间T1,并且将第二函数的反函数应用于虚拟代码内第二代码而计算从实际卡号发行时到虚拟代码生成时间点的经过时间T2。之后,虚拟代码验证单元20通过判断T1与T2的差是否对应于Ts来验证虚拟代码。

并且,作为另一实施例,如图17所示,还包括如下步骤:将从所述虚拟代码生成单元10接收的第一接收代码与根据在所述虚拟代码验证单元20生成的第一函数生成的第一生成码进行比较(S600);如果所述第一接收代码包含于从所述第一生成代码的误差允许范围内,则将所述第一接收代码设定为作为所述开始点的第一代码(S700);以及如果所述第一接收代码超出所述第一生成代码的误差允许范围,则判断为非正常代码(S800)。虚拟代码生成单元10及虚拟代码验证单元20随时间流逝而经过相同的单位计数。然而,在虚拟代码生成单元10和虚拟代码验证单元20中包括的计时器(Timer)之间存在误差,从而在相同时间点经过的计数数量可能不同。因此,需要一种用于在消除由计时器引起的误差的同时判断是异常代码而不是正常虚拟代码的过程。为此,虚拟代码验证单元20将第一生成代码与第一接收代码进行比较(S600),所述第一生成代码是在其内部由第一函数在特定的计数生成的第一代码,所述第一接收代码是从虚拟代码生成单元10接收的虚拟代码内的第一代码;如果与第一生成代码与第一接收代码之差相对应的计数数量在误差允许范围内,则在判断为正常代码之后,以第一接收代码为基准执行实际卡号搜索过程(S700);如果与第一生成代码与第一接收代码之差相应的计数数量超出误差允许范围,则判断为异常代码(S800)。

并且,作为另一实施例,还包括如下步骤:在所述虚拟代码还包括特定位数的虚拟安全代码的情况下,所述虚拟代码验证单元判断从所述虚拟代码生成单元接收的接收虚拟安全代码与在所述虚拟代码验证单元内生成的生成虚拟安全代码是否一致而验证虚拟代码。虚拟安全代码可以以与卡安全代码的位数对应的方式生成,并且可以显示在实际卡号的卡安全代码位。

作为一实施例,虚拟安全代码可以基于虚拟代码生成装置内的固有值及卡安全代码(例如,CVC/CVV号)而生成。所述固有值是独立地分配给每个虚拟代码生成装置的装置固有值。由于固有值及卡安全代码被分配给每个虚拟代码生成装置100,因此为了恶意攻击虚拟代码生成装置而新发行虚拟代码生成装置的人无法确认独立地分配给虚拟代码生成装置的装置固有值及卡安全代码。因此,虚拟代码验证单元20可以接收由虚拟代码生成单元10基于固有值及卡安全代码生成的虚拟安全代码而验证虚拟代码生成单元10。

并且,作为另一实施例,虚拟代码生成单元10可以反映时间值而生成虚拟安全代码。即,虚拟代码生成单元10可以使用一次性密码(OTP:One Time Password,代替固定的密码而利用随机生成的一次性密码的用户认证)方式来生成虚拟安全代码。虚拟代码验证单元20从虚拟代码生成单元10接收与虚拟安全代码相对应的OTP号,并将其与从自虚拟代码生成单元10接收OTP号的计数起在特定范围内的计数计算的OTP号进行比较而验证虚拟代码生成单元10。即,虚拟代码验证单元20将卡安全代码(例如,CVC/CVV)和固有值一同存储于实际卡号存储位置内,并且判断在接收到虚拟代码的时间点利用从实际卡号存储空间提取的卡安全代码及固有值生成的OTP号与从虚拟代码生成单元10接收到的OTP号是否一致而验证虚拟代码生成单元10。

并且,作为另一实施例,虚拟安全代码可以不被虚拟代码生成单元输出到外部,而是被反映于第一代码及第二代码的生成。如图18所示,虚拟代码生成单元10生成将基于虚拟代码生成装置内的固有值及卡安全代码生成的虚拟安全代码值与卡号发行时间点相加所得的计数的第一代码,并且生成与虚拟安全代码值对应的计数的第二代码。即,第一代码及第二代码基于从针对虚拟代码生成装置A发行实际卡号的A时间点移动(shifting)虚拟安全代码值的计数而生成。根据生成的虚拟安全代码值,从A时间点移动(shifting)的计数相对于与当前时间点对应的计数可以是之前的计数,也可以是之后的计数。虚拟代码验证单元20可以将接收到的第一代码和第二代码应用于存储位置搜索算法而搜索与实际卡号存储位置匹配的点。据此,他人无法确认提供构成虚拟代码的第一代码及第二代码的顺序,从而可以提高安全性。

并且,作为另一实施例,虚拟代码验证单元20在从基于虚拟安全代码生成的第二代码提取虚拟安全代码之后,确认OTP号中是否存在于虚拟安全代码一致的值,其中,向虚拟安全代码生成函数(即,OTP函数)输入从接收虚拟代码的计数起在特定范围内的计数而算出所述OPT号。虚拟代码验证单元将第二函数的反函数应用于第二代码而获得用于生成第二代码的虚拟安全代码值(即,OTP函数值),并且查找计算与虚拟安全代码值相同的值的计数。由于虚拟代码的发送时间或延迟导致在虚拟代码生成单元生成虚拟安全代码的时间点与虚拟代码验证单元接收虚拟安全代码的时间点存在差异,所以虚拟代码验证单元20接收到的虚拟代码的计数与生成与虚拟安全代码对应的OTP号的计数也可能不一致,因此虚拟代码验证单元20允许从接收到的虚拟代码的计数起的误差范围。据此,虚拟代码验证单元20可以验证发送虚拟代码的虚拟代码生成单元是否正常地与实际卡号匹配,从而可以提高安全性。并且,由于即使用户在输入虚拟代码时不输入特定数位的虚拟安全代码,虚拟代码验证单元20也自主地搜索虚拟安全代码而验证虚拟代码生成单元10,因此用户可以方便地使用虚拟代码生成单元10。

并且,作为另一实施例,虚拟代码生成单元10生成与通过将请求金融交易的时间点与基于虚拟代码生成装置内的固有值及卡安全代码生成的虚拟安全代码值相加所得的计数相对应的第一代码,并且生成与通过将实际卡号发行时间点(A时间点)与请求金融交易的时间点(C时间点)之间的计数差和虚拟安全代码值相加所得的计数相对应的第二代码。即,虚拟代码生成单元10生成第一代码和第二代码的接收如下。

第一代码=f

第二代码=f

(A时间点:实际卡号发行时间点,C时间点:金融交易请求时间点的计数,虚拟安全代码:OTP号)

虚拟代码验证单元20基于接收的虚拟代码内的第一代码及第二代码来搜索实际卡号存储位置,并提取在实际卡号存储位置内一同包括的卡安全代码(即,CVV或CVC)及虚拟代码生成装置100的固有值。虚拟代码验证单元20基于卡安全代码及固有值生成在从金融交易请求接收时间点起的特定计数范围内的虚拟安全代码(即,OTP号)。之后,虚拟代码验证单元20确认是否存在从实际卡号发行时间点(A时间点)起到从金融交易请求接收时间点起的特定计数范围内的各个计数为止的计数数量与虚拟安全代码(即,OTP号)的和等于对应于第二代码的计数数量(即,在第二代码应用第二函数的反函数的值)的计数。虚拟代码验证单元可以基于第一代码及第二代码来搜索与实际卡号存储位置相匹配的点,来掌握实际卡号发行时间点。据此,虚拟代码验证单元20可以确认提供虚拟代码的虚拟代码生成单元10是否被正常发行。

并且,作为另一实施例,在虚拟代码包括OTP代码和提取代码作为多个详细代码的情况下,如果提取代码用作第一代码,则虚拟代码验证单元20移动(Shifting)到与可能与结算请求时间点不一致的提取代码对应的计数,如果基于OTP代码计算的转换代码用作第一代码,则虚拟代码验证单元20移动(Shifting)到与可能与结算请求时间点不一致的转换代码对应的计数。在轨道上与第一代码对应的计数相比于当前时间点可以在之前,也可以在之后。此时,由于OTP代码直接从虚拟代码提取,因此虚拟代码验证单元20判断在从接收到虚拟代码的计数起特定范围内的计数基于OTP函数生成的比较代码(即,OTP值)中是否存在与从虚拟代码提取的OTP代码相同的代码,来确认是否为正常发行。

如上文所述的根据本发明的一实施例的基于虚拟代码的金融交易提供方法可以利用程序(或者应用程序)实现而存储于介质,以与作为硬件的计算机相结合而被执行。

为了所述计算机读取程序并执行由程序实现的所述方法,上述的程序可包括所述计算机的处理器(CPU)通过所述计算机的装置接口可读取的C、C++、JAVA、机械语言等的计算机言语所编写的代码(Code)。这些代码可包括与定义执行所述方法所需功能的函数等有关的功能性代码(Function Code),可包括所述计算机的处理器按预定的步骤执行所述功能所需的执行步骤关联控制代码。此外,这些代码还可包括所述计算机的处理器执行所述功能所需的附加信息或者关于媒体应该参照所述计算机的内部或者外部存储器的哪个位置(地址号)的存储器参照相关的代码。此外,所述计算机的处理器为了执行所述功能,需要与远程(Remote)的某些其他计算机或者服务器等进行通信时,代码还可包括通信关联代码,所述通信关联代码是关于利用所述计算机的通信模块如何与远程的某些其他计算机或者服务器等进行通信,通信时收发何种信息或者媒体等的代码。

所述存储的介质不表示如寄存器、高速缓存、存储器等用于短时间存储数据的介质,而是半永久地存储数据,并且能够通过设备读取(reading)的介质。具体而言,例如,所述存储的介质包括ROM、RAM、CD-ROM、磁带、软盘、光数据存储装置等,但不限于此。即,所述程序可以存储在所述计算机可以连接的各种服务器上的各种记录介质或者用户的所述计算机上的各种记录介质上。此外,所述介质分布在由网络连接的计算机系统,存储有计算机可通过分布式方式读取的代码。

以上,参照附图说明了本发明的实施例,但是在本发明所属的技术领域具有通常知识的技术人员,应该理解为在不改变本发明的技术思想或者必要特征的情况下,可以以其他具体形态实施。因此,对于以上说明的实施例,应该理解为在所有方面都是示例性的而非限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号