KR102005549B1 - 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램 - Google Patents

가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램 Download PDF

Info

Publication number
KR102005549B1
KR102005549B1 KR1020180131824A KR20180131824A KR102005549B1 KR 102005549 B1 KR102005549 B1 KR 102005549B1 KR 1020180131824 A KR1020180131824 A KR 1020180131824A KR 20180131824 A KR20180131824 A KR 20180131824A KR 102005549 B1 KR102005549 B1 KR 102005549B1
Authority
KR
South Korea
Prior art keywords
code
virtual
virtual code
otp
card
Prior art date
Application number
KR1020180131824A
Other languages
English (en)
Inventor
유창훈
Original Assignee
주식회사 센스톤
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Priority to CN201880096394.1A priority Critical patent/CN112567411A/zh
Priority to PCT/KR2018/013410 priority patent/WO2020032321A1/ko
Priority to SG11202011649YA priority patent/SG11202011649YA/en
Priority to JP2021506625A priority patent/JP7154381B2/ja
Priority to EP18929370.7A priority patent/EP3783557A4/en
Priority to KR1020190089815A priority patent/KR102284683B1/ko
Application granted granted Critical
Publication of KR102005549B1 publication Critical patent/KR102005549B1/ko
Priority to US16/659,043 priority patent/US11935044B2/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/385Payment protocols; Details thereof using an alias or single-use codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/14Time supervision arrangements, e.g. real time clock
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/07701Constructional details, e.g. mounting of circuits in the carrier the record carrier comprising an interface suitable for human interaction
    • G06K19/07703Constructional details, e.g. mounting of circuits in the carrier the record carrier comprising an interface suitable for human interaction the interface being visual
    • G06K19/07707Constructional details, e.g. mounting of circuits in the carrier the record carrier comprising an interface suitable for human interaction the interface being visual the visual interface being a display, e.g. LCD or electronic ink
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/343Cards including a counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/349Rechargeable cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/352Contactless payments by cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/353Payments by cards read by M-devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3572Multiple accounts on card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3821Electronic credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4012Verifying personal identification numbers [PIN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • G06Q20/40145Biometric identity checks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/0701Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips at least one of the integrated circuit chips comprising an arrangement for power management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/0723Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips the record carrier comprising an arrangement for non-contact communication, e.g. wireless communication circuits on transponder cards, non-contact smart cards or RFIDs

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램에 관한 것이다.
본 발명의 일실시예에 따른 가상코드 기반의 금융거래제공방법은, 가상코드검증수단이 가상코드생성수단에서 제공된 가상코드를 수신하는 단계(S200; 가상코드 수신단계); 상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는 단계(S400); 상기 가상코드검증수단이 복수의 세부코드를 기반으로 실제카드번호의 저장위치를 탐색하는, 실제카드번호 탐색단계(S1000; 실제카드번호 탐색단계); 및 상기 저장위치에서 추출된 상기 실제카드번호로 금융거래 진행 또는 금융거래 진행요청하는 단계(S1200);를 포함한다.

Description

가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램 {SYSTEM, METHOD AND PROGRAM FOR PROVIDING FINANCIAL TRANSACTION BY VIRTUAL CODE, VRITUAL CODE GENERATOR AND VRITUAL CODE VERIFICATION DEVICE}
본 발명은 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램에 관한 것으로, 보다 자세하게는 보다 자세하게는 각 시점마다 중복되지 않게 생성되는 가상코드를 생성하고 이를 기반으로 실제카드번호를 탐색하여 금융거래를 진행하는 시스템, 방법 및 프로그램과 각 시점마다 중복되지 않은 가상코드를 생성하는 장치 및 이를 기반으로 실제카드번호를 탐색하여 금융거래를 수행하는 장치에 관한 것이다.
코드 형태데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호는, 카드표면에 실제카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.
실제카드번호가 그대로 유출되지 않도록 하기 위해 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제카드번호를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다. 예를 들어, OTP(One Time Password)의 경우, 시간마다 코드가 변경되어 생성되지만, 사용자에게 부여된 알고리즘 판단을 위해 로그인 절차가 필요하여 다양한 영역에 적용되기 어렵다.
따라서, 실제카드번호에 대응되는 사용자나 장치에 대한 식별정보를 제공하지 않으면서 실시간으로 변동되는 가상코드를 기반으로 실제카드번호를 탐색할 수 있는 발명이 필요하다.
한국등록특허 10-1316466호 (2013.10.01)
본 발명은 실제카드번호의 숫자열 형식을 유지하는 가상코드를 생성하여 제공함에 따라 전체 결제시스템을 수정하지 않으면서, 가상코드생성수단과 가상코드검증수단 간의 통신을 수행하지 않은 상태에서 가상코드생성수단 별로 중복되지 않게 생성된 가상코드로 실제카드번호를 탐색하여 보안성이 높은, 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램을 제공하고자 한다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 일실시예에 따른 가상코드생성장치는, 하나 이상의 세부코드를 생성하는 세부코드생성부; 상기 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 가상코드생성부; 및 상기 가상코드를 가상코드검증수단으로 제공하기 위해 외부로 출력하는 가상코드제공부;를 포함하고, 상기 가상코드는 고정코드, OTP코드 및 추출코드를 포함하는 복수의 코드를 특정한 규칙에 따라 결합하여 생성되는 것이고, 상기 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합되며, 상기 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이며, 상기 OTP코드는, OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이고, 상기 추출코드는 상기 가상코드의 전체 숫자 개수에서 상기 고정코드 및 상기 OTP코드를 제외한 숫자 개수의 전부 또는 일부로 생성되는 것으로서, 상기 OTP코드로부터 산출된 상기 변환코드에 대응되는 것이며, 상기 변환코드 또는 상기 추출코드는 상기 가상코드검증수단에서 설정된 조건에 따라 제1코드 또는 제2코드로 각각 사용되는 것이고, 상기 제1코드는, 상기 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고, 상기 제2코드는, 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이고, 상기 OTP코드 및 상기 추출코드는 단위카운트마다 변경되며, 상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것이다.
또한, 다른 일실시예로, 상기 OTP코드는 실제카드번호 내의 카드보안코드의 숫자 개수로 생성되고, 상기 제2코드는 상기 가상코드의 전체 숫자 개수에서 상기 고정코드, 상기 OTP코드 및 유효기간을 제외한 숫자 개수의 전부 또는 일부로 생성되는 것이다.
또한, 다른 일실시예로, 상기 변환코드는 상기 추출코드와 동일한 자릿수로 생성되는 것이다.
또한, 다른 일실시예로, 상기 변환코드는 특정한 규칙에 따라 상기 OTP코드에 일대일로 매칭되는 것을 특징으로 한다.
또한, 다른 일실시예로, 상기 변환코드는 상기 OTP코드와 가상코드 생성이 요청된 카운트 값을 변환코드생성함수에 시드값으로 입력하여 산출되는 것이다.
또한, 다른 일실시예로, 상기 가상코드생성부는, 상기 OTP코드와 상기 추출코드를 세부코드결합함수를 통해 조합하여, 상기 카드식별번호에서 고정코드를 제외한 자리와 상기 카드보안코드 자리에 나열되는 것을 특징으로 한다.
또한, 다른 일실시예로, 상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우, 상기 세부코드생성부는, 유효기간 자리에 배치되는 특정한 숫자조합을 가변코드로 생성하는 것을 특징으로 하고, 상기 변환코드는, 상기 가변코드와 상기 OTP코드를 시드값으로 하여 생성되는 것이고, 상기 숫자조합은, 단위카운트마다 변경되어 생성되는 것으로서, 실제 유효기간으로 사용 가능하며, 현재 카운트로부터 최대기간 내에 포함되는 것이다.
또한, 다른 일실시예로, 상기 고정코드가 특정한 카드유형의 실제카드번호에 사용되는 것인 경우, 특정한 카운트에 생성된 가상코드가 특정한 카드유형에서 실제카드번호로 사용 가능한 코드열인지 여부를 판단하는 가상코드확인부;를 더 포함한다.
또한, 다른 일실시예로, 상기 가상코드확인부는, 상기 가상코드 내의 카드식별번호, 유효기간 및 서비스코드를 실제카드번호생성규칙에 입력하여 비교카드보안코드를 생성하고, 상기 가상코드 내의 카드보안코드 자리에 배치된 숫자인 생성카드보안코드와 상기 비교카드보안코드를 비교하여 일치하면 가상코드 재생성을 요청하는 것을 특징으로 한다.
본 발명의 다른 일실시예에 따른 가상코드 기반의 금융거래제공방법은, 가상코드검증수단이 가상코드생성수단에서 제공된 가상코드를 수신하는, 가상코드 수신단계; 상기 가상코드검증수단이 상기 가상코드에 특정한 규칙에 따라 포함된 고정코드 및 복수의 세부코드를 추출하되, 상기 복수의 세부코드는 OTP코드 및 추출코드를 포함하는 것인, 세부코드추출단계; 상기 가상코드검증수단이 상기 OTP코드를 기반으로 변환코드를 산출하는 단계; 상기 가상코드검증수단이 제1코드 및 제2코드를 기반으로 실제카드번호의 저장위치를 탐색하되, 상기 제1코드 및 상기 제2코드는 상기 추출코드 또는 상기 변환코드가 설정된 조건에 따라 각각 이용되는 것인, 실제카드번호 탐색단계; 및 상기 가상코드검증수단이 상기 저장위치에서 추출된 상기 실제카드번호로 금융거래 진행 또는 금융거래 진행요청하는 단계;를 포함하고, 상기 가상코드검증수단과 상기 가상코드생성수단은 동일한 가상코드생성함수를 포함하는 것이며, 상기 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합되며, 상기 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이며, 상기 OTP코드는, OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이고, 상기 추출코드는, 상기 OTP코드로부터 산출된 상기 제1코드에 대응되는 것이며, 상기 가상코드의 전체 숫자 개수에서 상기 고정코드 및 상기 OTP코드를 제외한 숫자 개수의 전부 또는 일부로 생성되는 것이고, 상기 제1코드는 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고, 상기 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이고, 상기 OTP코드 및 상기 추출코드는 단위카운트마다 변경되며, 상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것이다.
또한, 다른 일실시예로, 상기 세부코드추출단계는, 상기 가상코드 내의 카드식별번호 영역에서 고정코드를 추출하는 단계; 상기 고정코드를 기반으로 특정한 카드유형에 대응하는 세부코드결합함수를 설정하는 단계; 및 상기 카드식별번호에서 고정코드를 제외한 자리와 상기 카드보안코드 자리에 나열된 숫자열에서 상기 세부코드결합함수를 이용하여 상기 OTP코드와 상기 추출코드를 추출하는 단계;를 포함한다.
또한, 다른 일실시예로, 상기 세부코드추출단계는, 상기 가상코드생성수단에 포함된 것과 동일한 OTP함수에서 생성되는 비교코드와 상기 OTP코드를 비교하여, 가상코드가 생성된 카운트 값을 산출하고, 상기 변환코드산출단계는, 상기 카운트 값과 상기 OTP코드를 시드값으로 상기 변환코드생성함수에 입력하여 변환코드를 산출하는 것을 특징으로 한다.
또한, 다른 일실시예로, 상기 가상코드는 실제카드번호의 유효기간을 동일하게 포함하고, 상기 가상코드검증수단은 상기 고정코드 및 유효기간 값에 따라 상이한 실제카드번호 탐색알고리즘을 포함하고, 상기 실제카드번호 탐색알고리즘은 상기 제1코드와 상기 제2코드를 기반으로 실제카드번호가 저장된 위치를 탐색하는 것이다.
또한, 다른 일실시예로, 상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우, 상기 세부코드추출단계는, 유효기간 자리에서 상기 가변코드를 추출하고, 상기 변환코드산출단계는, 상기 가변코드와 상기 OTP코드를 변환코드생성함수에 시드값으로 입력하여 상기 변환코드를 생성하는 것을 특징으로 한다.
본 발명의 다른 일실시예에 따른 가상코드 기반 결제제공프로그램은, 하드웨어와 결합되어 상기 언급된 가상코드제공방법을 실행하며, 매체에 저장된다.
상기와 같은 본 발명에 따르면, 아래와 같은 다양한 효과들을 가진다.
첫째, 가상코드생성장치와 가상코드검증장치(예를 들어, 금융사서버)에만 가상코드생성 및 실제카드번호 탐색을 위한 알고리즘이 추가되면 되므로, 기존에 실제카드번호를 이용하는 프로세스를 그대로 유지할 수 있다. 예를 들어, 스마트카드 또는 앱카드에 중복생성되지 않는 가상코드를 생성하여 제공되는 경우, POS장치와 PG사서버는 그대로 유지되어 가상코드를 카드사서버로 전달하고, 카드사버서가 가상코드에 상응하는 실제카드번호를 탐색하여 결제를 진행할 수 있다. 이를 통해, 보안성을 높이기 위해 기존프로세스 내에서 변경되어야 하는 부분을 최소화할 수 있고, 사용자는 보안성 향상을 위한 별도 단계를 수행하지 않아도 된다. 특히, 가상코드 내의 한정된 가변범위에 숫자만을 이용한 OTP코드와 추출코드의 조합을 사용하므로, 결제단말기부터 결제서버까지의 전체 프로세스를 수정하지 않아도 되는 효과가 있다.
둘째, 실제카드번호 저장위치 탐색에서 제1코드 또는 제2코드로 이용되는 변환코드로 생성할 수 있는 적은 자릿수의 OTP코드를 가상코드에 포함함에 따라, 가변범위(예를 들어, 카드식별번호 자리에서 고정코드와 검증숫자 자리를 제외한 범위와 카드보안코드 범위)의 많은 부분을 바로 제1코드 또는 제2코드로 사용되는 추출코드에 할당할 수 있어서, 추출코드로 사용가능한 숫자열의 개수가 늘어나서 보안성이 향상될 수 있다.
셋째, OTP코드를 기반으로 생성되는 변환코드 또는 가상코드에서 추출되는 추출코드에 대응되는 카운트로 이동됨에 따라 현재시점이 아닌 시점을 기준으로 실제카드번호 탐색이 이루어지므로, 해커가 가상코드 생성규칙을 파악할 수 없어서 보안성이 향상될 수 있다.
넷째, 사용자별로 상이한 카운트에 실제카드번호가 매칭되어 저장되므로, 다른 사용자에게 제1코드 또는 제2코드(또는 제1코드와 제2코드에 대응되는 변환코드와 세부코드)가 모두 일치하게 되는 가상코드는 생성될 수 없다. 따라서, 가상코드검증수단은 가상코드에 의해 사용자를 정확히 구별할 수 있다.
도 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자리 코드를 정해진 규칙에 따라 암/복호화를 하여 해당 값이 일치하면 카드가 정상 카드임을 알 수 있는 것이다. 카드보안코드는 카드사마다 부르는 이름이 달라서, 비자카드는 CVV(Card Verification Value), 마스타카드/JCB는 CVC(Card Validation Code), 아메리칸 엑스프레스는 CID(Confidential Identifier Number 또는 Card Identification Number)라고 칭한다.
유효기간은 실제카드번호를 발급받은 후 사용할 수 있는 기한을 의미한다. 일반적으로, 유효기간은 연/월에 대해 2자리가 부여되어 4자리 코드로 구성된다. 마그네틱 카드에는 실제카드번호가 그대로 포함되어 있어서, 마그네틱 카드를 읽는 것만으로 카드번호 전체가 유출되는 문제가 있어서, 최근 전세계적으로 마그네틱 카드의 사용이 제한되고, IC카드 등의 보안성이 높은 방식으로 전환되고 있다. 다른 보안성이 높은 방식을 적용하기 위해서는 새로운 단말기가 설치되어야 하거나 기존의 프로세스와 다르게 변경되어야 하는 문제가 존재한다. 따라서, 기존의 실제카드번호를 이용하는 프로세스를 동일하게 적용하면서, 카드번호 유출을 방지할 수 있는 방법이 필요하다. 특히, 기존의 마그네틱 카드리더기를 그대로 이용하면서 보안성이 높이는 방식이 필요하다.
이하, 도면을 참조하여, 본 발명의 실시예들에 따른 가상코드 기반의 금융거래제공시스템, 가상코드생성장치(100), 가상코드검증서버(200), 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램에 대해 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 가상코드 기반의 금융거래제공시스템의 구성도이다.
도 2는 본 발명의 일실시예에 따른 가상코드생성수단으로부터 금융사서버로 가상코드가 제공되는 과정을 도시한 예시도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 가상코드 기반의 금융거래제공시스템은, 가상코드생성수단(10) 및 가상코드검증수단(20);을 포함한다.
가상코드생성수단(10)은 가상코드검증수단(20)이 실제카드번호를 탐색할 수 있는 정보를 포함하는 가상코드를 생성하는 역할을 수행한다. 즉, 가상코드생성수단(10)은 가상코드생성함수에 따라 가상코드를 생성한다. 이 때, 가상코드검증수단(20)에서 가상코드를 기반으로 실제카드번호를 탐색하므로, 가상코드생성수단(10)은 실제카드번호를 저장하지 않을 수 있다. 이를 통해 가상코드생성수단(10)의 해킹 등을 통해 실제카드번호가 유출되는 것을 방지할 수 있다. 가상코드생성함수에 대한 구체적인 설명은 후술한다.
가상코드검증수단(20)은 가상코드생성수단(10)으로부터 제공되는 가상코드를 기반으로 실제카드번호를 탐색하는 역할을 수행한다. 가상코드검증수단(20)은 가상코드생성수단(10)으로부터 수신된 가상코드로부터 실제카드번호를 탐색하기 위해 가상코드생성수단(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)는 가상코드생성수단(10)에 해당하는 프로그램이 내장(Embeded)되거나 가상코드생성수단(10)에 해당하는 프로그램이 설치된 장치일 수 있다. 예를 들어, 가상코드생성장치(100)는 가상코드생성수단(10)에 해당하는 프로그램이 내장된 스마트카드일 수 있다. 또한, 예를 들어, 가상코드생성장치(100)는 가상코드생성수단(10)에 해당하는 앱카드 어플리케이션이 설치된 이동단말기일 수 있다. 가상코드생성장치(100)는 상기 기재된 예시 이외에 가상코드를 생성하여 전송하여야 하는 다양한 장치가 될 수 있다.
가상코드생성부(120)는 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 역할을 수행한다. 일실시예로, 상기 가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 가상코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함한다.
복수의 세부코드를 결합하여 하나의 가상코드를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 가상코드생성부(120)는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 함수일 수 있다. 가상함수에 포함되는 세부코드가 늘어남에 따라 세부코드결합함수도 다양하게 생성될 수 있다.
또한, 상기 가상코드생성부(120)는, 후술되는 바와 같이, 고정코드를 가상코드 내의 특정한 위치(예를 들어, 가상코드 내 카드식별번호의 제일 앞의 6자리)에 결합한다. 상기 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합되며, 상기 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이다.
구체적으로, 가상코드는 그룹을 구별하기 위한 변경되지 않는 고정코드를 복수의 세부코드와 함께 포함할 수 있다. 가상코드검증수단(20)은 여러 그룹에 각각 대응되는 여러 가상코드생성함수를 포함할 수 있고, 가상코드생성장치(100)로부터 가상코드가 수신되면 해당 가상코드생성장치(100)가 속하는 그룹의 가상코드생성함수를 기반으로 실제카드번호 탐색을 수행하여야 한다. 고정코드가 포함되지 않고 전체 코드가 단위카운트가 경과될 때마다 신규 생성되는 세부코드만을 포함하게 되면, 별도의 정보없이 가상코드생성장치(100)가 속하는 그룹을 판단할 수 없다. 따라서, 가상코드생성장치(100)는 그룹을 식별하기 위한 변경이 되지 않는 고정코드를 포함한다.
예를 들어, 특정 카드사의 카드유형별로 가상코드생성함수가 부여되는 경우, 가상코드생성장치(100)는 카드번호 중에서 카드사 및 카드유형을 나타내는 앞의 6자리를 고정코드로 사용하여, 가상코드검증수단(20)은 가상코드생성장치(100)와 동일한 가상코드생성함수가 적용되는 특정 카드사의 특정 카드유형을 식별할 수 있다. 즉, 고정코드는, 상기 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이다.
또한, 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합될 수 있다. 각 카드유형그룹별로 가상코드생성함수가 부여되는 경우, 가상코드검증수단(20)은 가상코드에서 고정코드를 먼저 추출하여야 카드유형그룹을 판단할 수 있다. 따라서, 고정코드는 별도의 함수 없이 분리가능하도록 가상코드 내의 미리 정해진 위치(예를 들어, 실제카드번호의 발급자식별번호와 동일한 위치)에 결합될 수 있다.
세부코드생성부(110)는 하나 이상의 세부코드를 생성하는 역할을 수행한다.
일실시예로, 세부코드생성부(110)는 가상코드검증수단(20)에서 실제카드번호 탐색에 이용하는 제1코드와 제2코드 자체를 생성할 수 있다. 즉, 가상코드생성부(120)는 세부코드생성부(110)에서 생성된 제1코드와 제2코드의 조합을 포함한 가상코드를 생성한다.
구체적인 일실시예로, 세부코드생성부(110)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. 제1코드와 제2코드는 가상코드검증수단(20) 내에서 실제카드번호의 저장위치를 탐색하기 위한 상관관계를 가지나, 가상코드생성장치(100)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다.
또한, 일실시예로, 가상코드생성장치(100)는 복수의 세부코드와 고정코드를 조합하여 실제카드번호와 동일한 자릿수의 코드가 되도록 세부코드를 생성한다. 기존의 금융거래 시스템(예를 들어, 금융거래가 매장에서의 결제인 경우, POS장치 및 PG사서버)을 그대로 유지하면서 가상코드를 사용하기 위해서는, 가상코드생성장치(1OO)는 실제카드번호와 동일한 자릿수를 가지는 코드를 가상코드로 생성하여야 한다. 이를 위해, 가상코드생성장치(100)는 카드사 및 해당 카드사의 카드유형을 판단하기 위한 고정코드를 제외한 자릿수를 나누어 복수의 세부코드의 자릿수를 활용한다. 예를 들어, 실제카드번호가 16자리의 카드식별번호를 가지고 세부코드로 제1코드 및 제2코드를 포함하는 경우, 가상코드생성장치(100)는 16자리 중에서 6자리의 고정코드를 제외한 10자리를 동일하게 나누어서 5자리의 제1코드 및 제2코드를 생성할 수 있다. 그 후, 후술되는 가상코드생성부가 제1코드 및 제2코드를 특정한 규칙에 따라 결합한 후 고정코드를 실제카드번호의 카드식별번호에서와 같이 앞부분에 결합하여 가상코드의 카드식별번호를 생성할 수 있다.
또한, 예를 들어, 카드번호의 카드식별번호와 유효기간의 자리를 활용하여 세부코드로 이루어진 가상코드를 생성할 수 있다. 즉, 16자리의 카드식별번호와 4자리의 유효기간 중에서, 가상코드생성장치(100)는 실제카드번호의 발급자식별번호에 해당하는 6자리를 고정코드로 유지하고, 나머지 14자리를 복수의 세부코드에 할당하여, 세부코드생성부는 할당된 각각의 자릿수에 부합하는 세부코드를 생성한다.
또한, 예를 들어, 가상코드생성장치(100)는 실제카드번호의 카드식별번호, 유효기간 및 카드보안코드를 가상코드에서 세부코드에 할당할 자릿수로 활용할 수 있다. 예를 들어, 가상코드생성장치(100)는 실제카드번호의 발급자식별번호에 해당하는 6자리를 고정코드로 유지하고, 카드식별코드의 나머지 10자리, 유효기간 4자리 및 카드보안코드 3자리를 각각의 세부코드에 자릿수로 할당할 수 있다.
또한, 예를 들어, 가상코드생성장치(100)는 카드식별번호 부분만으로 가상코드의 세부코드와 고정코드를 표현할 수 있다. 이 때, 가상코드생성장치(100)는 복수의 세부코드에 상이한 자릿수를 배정할 수 있다. 즉, 가상코드가 고정코드, 제1코드 및 제2코드를 포함하고 카드식별번호의 자릿수만으로 고정코드, 제1코드 및 제2코드를 생성하는 경우, 가상코드생성장치(100)는 고정코드에 배정되는 6자리를 제외한 자릿수 중의 9자리를 제1코드와 제2코드에 나누어 배정한다. 카드식별번호가 15자리인 경우와 16자리인 경우에 모두 적용하기 위해, 가상코드생성함수는 카드식별번호의 9자리만을 제1코드와 제2코드에 배정할 수 있다. 예를 들어, 가상코드생성함수는 9자리 중에서 제1코드에 6자리를 배정하고 제2코드에 3자리를 배정할 수 있다. 이와 같이, 전체 카드번호 중에서 카드식별번호 부분만으로 가상코드를 구성하는 코드를 표현하면, 사용자가 카드번호를 직접 입력하여야 하는 상황에서 입력하여야 하는 문자 수가 줄어들 수 있다. 또한, 가상코드생성장치(100)는 유효기간 및 카드보안코드 부분을 보안성을 높일 수 있는 다른 용도로 활용할 수 있다.
또한, 가상코드에 제1코드와 제2코드를 포함하는 일실시예에서, 가상코드는 가상보안코드를 더 포함한다. 예를 들어, 가상코드는 복수의 세부코드와 가상보안코드를 포함한다. 가상코드의 보안코드는 실제카드번호의 카드보안코드(즉, 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은 자연수)의 코드를 생성하여 함수값으로 함께 적용할 수 있다. 즉, 가상보안코드생성함수는 l자리의 랜덤코드생성함수(예를 들어, l자리의 코드를 생성하는 OTP함수)를 포함할 수 있다.
또한, 일실시예로, 가상코드가 제1코드 및 제2코드의 특정한 규칙에 따른 조합으로 생성되는 경우, 제1코드와 제2코드는 실제카드번호가 저장된 저장위치를 탐색하기 위한 각각의 역할을 수행할 수 있다. 예를 들어, 제1코드는 저장위치탐색의 시작지점을 설정하고, 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정한다. 즉, 가상코드생성장치(100)로부터 단위카운트마다 정상적으로 생성된 가상코드가 제공되면, 가상코드검증수단(20)은 제1코드에 대응하는 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 이동한 지점을 실제카드번호의 저장위치로 판단한다. 가상코드를 구성하는 제1코드와 제2코드를 기반으로 저장위치를 탐색하는 구체적인 방식은 후술한다.
세부코드생성부(110)가 세부코드를 생성하는 방식의 일실시예로, 세부코드생성부(110)는 단위카운트마다 새로운 세부코드를 생성하고, 이에 따라 가상코드생성장치(100)는 단위카운트마다 새로운 가상코드를 생성한다. 단위카운트마다 신규로 생성되는 가상코드는 중복되어 생성되지 않는다. 구체적으로, 세부코드생성부(110)는, 단위카운드마다 신규생성되는 가상코드가 특정한 사용자 또는 특정한 가상코드생성장치(100)에게 정해진 기간동안 중복생성되지 않을 뿐만 아니라, 특정한 그룹에 속한 사용자간에도 중복생성되지 않도록 설정된다.
가상코드의 중복생성을 방지하는 구체적인 일실시예로, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성하는 경우, 가상코드생성함수에 포함되는 세부코드생성함수는 MN개의 코드를 제1코드 또는 제2코드로 생성할 수 있고, 각각의 코드를 세부코드생성함수가 구동되는 초기시점으로부터 각 카운트마다 매칭한다. 예를 들어, 단위카운트를 1초로 설정하는 경우, 세부코드생성함수가 최초 구동된 시점에서부터 매 초에 상이한 MN개의 코드를 매칭한다. 그리고, 특정한 세부코드생성함수를 이용하는 주기 또는 가상코드생성장치(100)의 사용주기(예를 들어, 가상코드를 생성하는 스마트카드의 유효기간)를 MN 카운트에 해당하는 시간길이(예를 들어, 1카운트가 1초인 경우, MN 초)보다 짧은 시간길이로 설정하면 제1코드 또는 제2코드는 사용주기 동안에 동일한 코드가 중복 생성되지 않는다. 즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상코드생성장치(100)에 가상코드생성요청을 하는 경우, 가상코드생성장치(100)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있다.
구체적으로, 알파벳 대문자와 0부터 9까지의 숫자를 코드에 포함 가능한 문자로 사용(즉, 36개의 문자를 사용)하고, 실제카드번호의 카드식별번호와 유효기간의 자리를 활용하여 제1코드와 제2코드에 각각 6자리를 할당하는 경우, 가상코드생성장치(100)는 제1코드 및 제2코드로 366개의 코드를 제공할 수 있다. 이 때, 가상코드생성장치(100)는 각각의 코드를 각 카운트마다 매칭시켜서, 각 카운트마다 변경된 제1코드 및 제2코드를 제공할 수 있다.
가상코드의 중복생성을 방지하는 구체적인 다른 일실시예로, 가상코드생성장치(100)의 사용주기가 경과되면, 제1코드 또는 제2코드를 생성하는 함수(즉, 제1함수 또는 제2함수)를 변경하거나 제1코드와 제2코드의 매칭관계를 변경하여 이전 사용주기와 상이한 가상코드가 생성되도록 한다. 가상코드가 제1함수에 의해 생성되는 제1코드와 제2함수에 의해 생성되는 제2코드가 결합되는 경우, 제1코드생성함수 또는 제2코드생성함수가 변경되면, 가상코드생성장치(100)는 제1코드 또는 제2코드가 등장하는 순서가 이전 사용주기와 달라짐에 따라 이전주기와 상이한 가상코드를 생성하는 가상코드생성함수를 신규 사용주기에 적용할 수 있다. 또한, 가상코드생성장치(100)는 이전 사용주기에서 사용된 가상코드와 동일한 코드가 신규 사용주기 내 각 카운트의 가상코드로 등장하지 않도록(즉, 제1함수에 따라 생성되는 제1코드와 제2함수에 따라 생성되는 제2코드의 매칭관계가 신규 사용주기의 모든 카운트에서 이전 사용주기 내에 포함된 매칭관계 중에 포함되지 않도록) 제1함수와 제2함수를 선택할 수 있다. 즉, MN 개의 코드를 1회씩 적용할 수 있는 사용주기를 경과한 후 가상코드생성함수 조절 또는 갱신을 통해 이전 사용주기와 겹치는 가상코드가 생성되지 않는 신규 사용주기의 가상코드생성함수를 적용할 수 있다.
이 때, 가상코드생성수단(10) 및 가상코드검증수단(20)은 가상코드생성함수를 갱신하는 규칙을 저장할 수 있다. 즉, 가상코드생성수단(10) 및 가상코드검증수단(20)은 복수의 제1함수와 제2함수를 각 사용주기에 적용하는 순서 또는 규칙을 저장할 수 있다.
또한, 가상코드의 중복생성을 방지하는 구체적인 다른 일실시예로, 동일한 그룹에 속한 사용자 간에도 동일한 가상코드가 동일시점에 생성되지 않도록, 가상코드에 포함되는 제1코드 또는 제2코드 중 어느 하나는 적어도 가상코드생성장치(100)마다 동일시점에 항상 상이하게 존재하는 값(즉, 장치식별값)을 반영하여 생성될 수 있다. 일실시예로, 장치식별값은 특정한 세부코드생성함수가 적용되는 그룹에 특정한 가상코드생성장치(100)가 포함된 시점(예를 들어, 가상코드검증수단(20) 내에 특정한 세부코드생성함수가 구동된 최초시점으로부터 특정시간이 경과한 후 특정한 가상코드생성장치(100)에 상기 세부코드생성함수가 적용되기 시작한 시점)으로부터 현재까지 경과된 시간(또는 카운트수)일 수 있다. 하나의 그룹 내에 복수의 가상코드생성장치(100)가 포함되는 경우, 가상코드생성장치(100)를 해당 그룹에 속하도록 설정하는 카운트를 동일하지 않게 하면(즉, 가상코드생성장치(100)가 해당 그룹에 동시에 속할 수 없게 하면), 가상코드생성장치(100)가 그룹에 속하게 된 시점(또는 카운트)로부터 특정시점까지의 경과된 시간은 각 가상코드생성장치(100)마다 상이하게 된다. 따라서, 세부코드생성함수 중 적어도 어느 하나는 가상코드생성장치(100)가 그룹에 속하게 된 시점(또는 카운트)로부터 특정시점까지의 경과된 시간을 장치식별값으로 이용하여, 각 시점마다 각각의 가상코드생성장치(100)에서 생성되는 가상코드가 상이하도록 할 수 있다. 이를 통해, 가상코드검증수단(20)이 사용자를 구별하기 위한 데이터를 별도로 수신하지 않고 가상코드를 수신하는 것만으로 가상코드생성장치(100)의 구별이 가능하도록 할 수 있다.
예를 들어, 가상코드생성장치(100)가 출력되는 카드번호를 변경할 수 있는 카드(예를 들어, 스마트카드 또는 앱카드 등)인 경우, 특정한 카드사의 특정한 카드유형이 하나의 그룹으로 설정되고, 카드사서버 내의 특정한 가상코드검증수단(20)이 해당 그룹에 대해 구동된다. 제1사용자가 가상코드검증수단(20) 구동 시로부터 A시간만큼 경과된 시점에 제1가상코드생성장치(100)(즉, 제1사용자의 가상코드생성장치(100))에 카드발급을 요청하고 제2사용자가 가상코드검증수단(20) 구동 시로부터 B(B는 A보다 큰 값)시간만큼 경과된 시점에 제2가상코드생성장치(100)(즉, 제2가상코드생성장치(100))에 카드발급을 요청하면, 제1가상코드생성장치(100) 및 제2가상코드생성장치(100)는 제1사용자와 제2사용자로부터 가상코드 생성이 요청된 C(C는 B보다 큰 값)시간에 카드발급 시점으로부터 경과된 시간길이가 항상 상이하게 된다. 따라서, 세부코드생성함수는 각 가상코드생성장치(100)에 카드가 발급된 시점으로부터 경과된 시간길이를 변수로 적용함에 따라 동일시점에 동일한 가상코드가 생성되지 않도록 할 수 있다.
또한, 특정한 가상코드생성장치(100)가 특정한 그룹에 속하게 된 시점으로부터 경과된 시간길이는 시간이 흐름에 따라 계속 증가하게 되므로, 특정한 가상코드생성장치(100)에서 생성되는 세부코드(예를 들어, 제2코드)는 동일한 값이 생성되지 않고 계속 다른 값이 생성된다.
또한, 가상코드의 중복생성을 방지하는 구체적인 또 다른 일실시예로, 전체주기에서 사용자에 무관하게 중복된 가상코드가 발생되지 않도록, 제1코드는 가상코드검증수단(20) 내에서 제1함수가 구동되는 초기시점으로부터 각 카운트마다 매칭된 코드 중에서 가상코드 생성요청이 된 시점(또는 카운트)에 대응되는 코드값으로 설정하고, 제2코드는 가상코드생성장치(100)마다 동일시점에 항상 상이하게 존재하는 값(즉, 장치식별값)을 반영하여 생성되는 코드값으로 설정하고, 가상코드를 상기 제1코드와 제2코드가 결합된 코드값으로 이용할 수 있다. 제1코드는 각 카운트마다 상이한 코드값이 되고 제2코드는 동일시점에 가상코드생성장치(100)마다 상이한 코드값을 가지게 되어서, 제1코드와 제2코드가 결합된 가상코드는 모든 가상코드생성장치(100)와 모든 시점에 상이한 코드값이 출력되게 된다.
또한, 다른 일실시예로, 상기 가상코드생성함수(또는 세부코드생성함수)는, M개의 문자를 오름차순으로 나열하는 다수의 나열규칙 중 어느 하나가 적용된다. 즉, 가상코드생성장치(100)(즉, 가상코드생성수단(10))는 가상코드생성함수 내에 포함되는 세부코드생성함수에 M개 문자를 오름차순으로 나열하는 규칙을 다양하게 적용하여 할 수 있다. 예를 들어, 알파벳 대문자를 오름차순으로 나열하는 나열규칙은, 일반적인 순서인 A, B, C,…, Z 순서가 될 수 있고, A, C, B,…, Z 순서가 될 수도 있다. 가상코드생성함수에서 나열규칙이 달라짐에 따라 가상코드생성함수가 구동되는 초기시점부터 각 카운트에 차례대로 코드가 매칭되는 순서가 달라지게 된다. 가상코드검증수단(20)은 동일한 나열규칙에 따라 생성된 코드가 각 카운트에 매칭되어 있거나, 동일한 나열규칙 자체를 가상코드생성함수에 포함하여 저장할 수 있다. 따라서, 각 그룹별 가상코드생성함수가 상이한 세부코드결합함수를 포함하거나 상이한 문자 나열규칙을 포함하여, 각 그룹별로 상이한 가상코드생성함수를 가지도록 할 수 있다.
또한, 다른 일실시예로, 세부코드생성부(110)는 가상코드검증서버(200)에서 실제카드번호 탐색에 이용하는 제1코드 및 제2코드로 변경하여 사용할 수 있는 복수의 세부코드를 생성한다. 가상코드생성함수는 각각의 세부코드생성함수를 포함한다. 예를 들어, 가상코드생성함수는 복수의 세부코드생성함수를 이용하여 복수의 세부코드를 생성하고, 복수의 세부코드를 결합하는 세부코드결합함수를 이용하여 가상코드를 생성한다.
일실시예로, 세부코드생성부(110)는 가상코드 내에 포함되는 OTP코드와 추출코드를 생성하는 역할을 수행한다. 즉, 상기 가상코드는 고정코드, OTP코드 및 추출코드를 포함하는 복수의 코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 이를 위해, 가상코드생성함수는 OTP코드를 생성하는 OTP함수, 추출코드생성함수 및 세부코드결합함수를 포함할 수 있다.
일실시예로, 도 4에서와 같이, 상기 세부코드생성부(110)는, OTP코드생성부(111); 및 추출코드생성부(112);를 포함한다.
상기 OTP코드생성부(111)는 가상코드 생성이 요청된 시점에 내부에 저장된 OTP함수를 기반으로 OTP코드를 생성한다. 상기 OTP코드생성부(111)는 특정한 시드데이터(또는 시리얼번호)를 기반으로 OTP코드 생성이 요청된 카운트(즉, 사용자로부터 금융거래를 위해 실제카드번호에 대응하는 가상코드 생성이 요청된 시점)를 반영하여 OTP코드를 생성한다. 상기 OTP코드는, OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이다. 즉, 가상코드가 가상코드검증수단(예를 들어, 가상코드검증서버)로 전송되면, 가상코드검증수단은가상코드 OTP번호를 기반으로 변환코드를 탐색한 후, 변환코드를 실제카드번호 저장위치 탐색에 이용되는 제1코드 또는 제2코드로 이용한다.
일실시예로, OTP코드생성부(111)는 사용자에게 금융사서버에서 실제카드번호가 특정한 사용자에게 발급하거나 실제카드번호를 가상토큰검증서버에 등록한 카운트를 OTP함수의 시드데이터로 사용한다. 즉, 가상코드검증수단(즉, 금융사서버 또는 가상토큰검증서버)은 각 사용자별로 구별되는 실제카드번호 발급카운트 또는 실제카드번호 등록 카운트를 시드데이터로 사용한다. 이를 통해, 가상코드검증수단은 가상코드에서 추출된 OTP코드를 이용하여 실제카드번호가 발급되거나 등록된 카운트를 탐색할 수 있다. 또한, 이를 통해, OTP코드생성부(111)는, 다른 사용자의 실제카드번호가 등록 또는 발급된 카운트가 상이하므로, 상이한 시드데이터를 이용하여 OTP함수가 구동되게 된다. 즉, OTP코드생성부(111)는 각 사용자에게 상이한 실제카드번호 등록 또는 발급 카운트를 시드데이터로 사용함에 따라 사용자별로 동일한 시점에 상이한 OTP코드를 생성할 수 있다.
OTP코드생성부(111)에서 생성되는 OTP코드는 가상코드검증서버(200)에서 제1코드 또는 제2코드로 이용되는 변환코드를 산출하는데 이용된다. 즉, OTP코드는 변환코드생성함수에 시드값으로 입력되어 특정한 변환코드 생성에 이용된다. 변환코드생성함수는 가상코드검증서버(200) 내에 저장된다. 또한, 후술되는 추출코드생성부(112)는, 추출코드생성함수에 변환코드가 시드값으로 이용되는 경우, OTP코드생성부(111)에서 생성된 OTP코드로 변환코드를 생성하기 위해 변환코드생성함수를 포함할 수 있다.
일실시예로, 상기 변환코드는 특정한 규칙에 따라 OTP코드에 일대일로 매칭될 수 있다. 즉, 변환코드생성함수가 자릿수가 상이한 OTP코드와 변환코드를 일대일로 매칭관계를 형성하는 것일 수 있다.
또한, 다른 일실시예로, 상기 변환코드는 상기 OTP코드와 가상코드 생성이 요청된 카운트 값을 변환코드생성함수에 시드값으로 입력하여 산출되는 것이다. 즉, 변환코드생성함수는 OTP코드와 가상코드 생성이 요청된 카운트값을 시드값으로 활용하여, 동일한 OTP값이 시드값으로 사용되어도 카운트 값에 따라 상이한 변환코드가 생성될 수 있다. 이를 통해, OTP코드가 변환코드보다 적은 자릿수의 숫자열인 경우, 실제카드번호 저장위치 탐색에 이용되는 제1코드 또는 제2코드로 OTP코드보다 더 많은 경우의 수의 변환코드를 이용할 수 있다.
또한, 다른 일실시예로, 상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우, 상기 세부코드생성부(110)는, 유효기간 자리에 배치되는 특정한 숫자조합을 가변코드로 생성하고, 가변코드와 OTP코드를 함께 변환코드생성함수의 시드값(즉, 변수)로 이용할 수 있다. 즉, 상기 변환코드는, 상기 가변코드와 상기 OTP코드를 시드값으로 하여 생성되는 것이다.
상기 유효기간에 배치되는 숫자조합은, 단위카운트마다 변경되어 생성되는 것으로서, 실제 유효기간으로 사용 가능하며, 현재 카운트로부터 최대기간 내에 포함되는 것이다. 결제시스템 내에서 오류가 발생하지 않으려면, 유효기간이 현재 시점으로부터 유효한 기간 내의 값이어여 한다. 예를 들어, 실제카드의 유효기간이 5년인 경우, 세부코드생성부(110)는 결제가 요청된 시점으로부터 5년 이내의 연월 조합에 해당하는 숫자조합을 특정한 규칙에 따라 생성한다.
이를 통해, OTP코드와 가변코드의 조합과 변환코드 간의 경우의 수 차이가 줄어들게 된다. 예를 들어, 유효기간 내에 5년 내의 숫자조합이 이용되고, OTP코드로 3자리, 변환코드로 9자리를 숫자로만 이용하는 경우, 60개의 숫자조합이 가변코드로 이용될 수 있으므로, 가변코드와 OTP코드의 조합은 60 X 103이 되어서 가변코드없이 OTP코드만을 시드값으로 이용할 때에 비해 경우의 수 차이가 줄어들게 된다.
상기 추출코드생성부(112)는 가상코드검증수단(예를 들어, 가상코드검증서버)에서 실제카드번호 저장위치 탐색에 이용되는 제1코드 또는 제2코드로 이용되는 추출코드를 생성하는 역할을 수행한다. 가상코드검증수단이 OTP코드를 기반으로 산출된 변환코드를 제1코드로 이용하는 경우, 가상코드검증수단은 추출코드를 제2코드로 이용한다. 즉, 상기 변환코드 또는 상기 추출코드는 상기 가상코드검증수단에서 설정된 조건에 따라 제1코드 또는 제2코드로 각각 사용된다. 상기 제1코드는, 상기 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고, 상기 제2코드는, 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이다. 구체적으로, 상기 추출코드는 동일한 카운트에 생성된 OTP코드로부터 산출된 변환코드에 대응되는 것이어서, 가상코드검증수단은 특정 카운트의 가상코드 내 추출코드와 특정 카운트의 가상코드 내 OTP코드 기반으로 생성된 변환코드를 이용하여 실제카드번호 저장위치를 탐색한다.
또한, 변환코드 및 추출코드와 제1코드 및 제2코드의 매칭관계는 가상코드생성장치(100) 및 가상코드검증장치(200)에 미리 설정되어 있다. 변환코드 및 추출코드와 제1코드 및 제2코드의 매칭관계가 반대로 적용되면 가상코드검증서버(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)는 각 카운트마다 변경된 가상코드를 생성한다. 가상코드검증서버(200)는 추출코드와 OTP코드가 각 단위카운트마다 변경되어도, OTP코드 기반으로 생성되는 변환코드와 추출코드가 연계되어 있어서 실제카드번호 저장위치를 탐색할 수 있다.
또한, 다른 일실시예로, 상기 OTP코드생성부(111)는, 가상코드검증수단에서 제1코드 또는 제2코드로 이용되는 변환코드보다 적은 자릿수로 OTP코드를 생성한다. 예를 들어, 상기 OTP코드는 실제카드번호 내의 카드보안코드의 숫자 개수로 생성되고, 상기 제2코드는 상기 가상코드의 전체 숫자 개수에서 상기 고정코드, 상기 OTP코드 및 유효기간을 제외한 숫자 개수의 전부 또는 일부로 생성되는 것이다. 즉, OTP코드생성부(111)는 카드보안코드가 3자리이면 OTP코드를 3자리로 생성하고, 추출코드생성부(112)는 전체 카드번호 숫자 개수 23개 중에서 고정코드 6자리, 유효기간 4자리, OTP코드 3자리 및 검사숫자 1자리를 제외한 9자리로 추출코드를 생성한다.
이를 통해, 가상코드생성장치는 한정된 실제카드번호의 자리에서 9자리를 추출코드에 사용할 수 있으므로, 추출코드로 사용할 수 있는 코드의 개수가 증가하여 보안성이 향상될 수 있다. 특히, 기존 결제프로세스를 전혀 수정하지 않기 위해 가상코드에 숫자만 사용하는 경우, 추출코드는 0부터 9까지의 10개의 숫자로 9자리를 생성할 수 있어서 109개의 코드를 활용할 수 있다.
이 때, OTP코드를 기반으로 생성되는 변환코드는 추출코드와 동일한 자릿수의 숫자열로 생성될 수 있다. 이를 통해, 변환코드와 추출코드는 가상코드검증서버에서 제1코드 또는 제2코드 각각으로 이용될 수 있다. 또한, 적은 자릿수의 OTP코드로 많은 자릿수의 변환코드를 만들어냄에 따라, 가상코드 내에서 OTP코드와 추출코드에 활용할 수 있는 영역(즉, 12자리)에서 많은 부분을 추출코드에 활용할 수 있도록 한다.
따라서, 숫자만을 사용하여 가상코드를 생성하는 경우에도, 가상코드검증서버(200)에서 제1코드 또는 제2코드로 바로 사용되는 추출코드에 많은 숫자 자리를 부여하고 나머지 자리에 OTP코드를 부여하므로 보안성을 향상시킬 수 있다.
가상코드제공부(130)는 상기 가상코드를 가상코드검증장치(200)로 제공하기 위해 외부로 출력하는 역할을 수행한다. 가상코드제공부(130)는 가상코드를 외부로 제공할 수 있는 다양한 구성을 포함할 수 있다. 가상코드제공부(130)는 무선인터넷모듈; 근거리통신모듈; IC칩(131); 자장발생부; 디스플레이부(132) 등의 전부 또는 일부를 포함한다.
무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 이동 단말기(100)에 내장되거나 외장될 수 있다. 무선 인터넷 기술로는 WLAN(Wireless LAN)(Wi-Fi), Wibro(Wireless broadband), Wimax(World Interoperability for Microwave Access), HSDPA(High Speed Downlink Packet Access), LTE(long term evolution), LTE-A(Long Term Evolution-Advanced) 등이 이용될 수 있다. 예를 들어, 가상코드생성장치(100)가 가상코드생성수단인 앱카드 어플리케이션이 설치된 이동단말기인 경우, 쇼핑어플리케이션 또는 쇼핑웹사이트에서 물품구매할 때, 가상코드생성장치(100)는 무선인터넷 통신을 통해 지불결제서비스버서(즉, PG사서버)(40)로 가상코드를 전송할 수 있다.
근거리 통신 모듈은 근거리 통신을 위한 모듈을 말한다. 근거리 통신(short range communication) 기술로 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), NFC(Near Field Communication), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수 있다.
가상코드제공부(130)는, 가상코드생성장치(100)가 POS장치에 가상코드를 전달하는 카드에 해당하는 경우, 자장발생부 또는 IC칩을 포함할 수 있다. 자장발생부는 카드데이터를 자기신호 형태로 출력하여 카드리더기에 전달하는 기능을 수행한다. 자장발생부는 전류 흐름을 통해 자기장을 형성하여 카드정보 자기신호를 출력하는 자기셀을 하나 이상 포함할 수 있다. 자장발생부는 카드의 PCB판의 특정한 긴 변에 인접하게 상기 긴 변을 따라 PCB판의 상면 또는 하면에 노출되도록 구비될 수 있다.
IC칩(131)은 PCB판 내에 실장되어 IC방식의 카드리더기의 단자와 접촉하여 데이터교환을 수행하도록 할 수 있다. 즉, IC칩은 가상코드생성부(120)에서 생성된 가상코드를 IC방식의 카드리더기로 전달한다.
디스플레이부(132)는 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 전자종이(E-paper) 중에서 적어도 하나를 포함할 수도 있다.
디스플레이부(132)는 가상코드생성부(120)에서 생성한 가상코드를 시각적으로 외부에 출력한다. 이를 통해, 가상코드생성장치(100)의 사용자는 실시간으로 생성된 가상코드를 시각적으로 확인할 수 있고, 가상코드검증수단(20)에 시각적으로 확인한 가상코드를 직접 입력할 수 있다.
예를 들어, 도 5에서와 같이, 가상코드생성장치가 스마트카드인 경우, 가상코드생성장치는 표면에 카드번호를 기재하지 않고 가상코드를 출력할 수 있는 디스플레이부를 구비할 수 있다. 또한, 예를 들어, 가상코드가 발급자식별번호와 동일한 고정코드를 포함하는 경우, 가상코드생성장치(100)는 발급자식별번호를 카드표면에 기재하고, 나머지 카드번호의 자리만 디스플레이부로 가질 수 있다. 예를 들어, 상기 디스플레이부는 전자종이, OLED 등이 될 수 있고, 각각의 자리에 구비되는 7-Segment 디스플레이일 수도 있다. 또한, 예를 들어, 가상카드생성장치가 앱카드 어플리케이션이 설치된 스마트폰인 경우, 디스플레이부는 앱카드 어플리케이션이 실행되어 표시되는 스마트폰의 디스플레이부일 수 있다.
또한, 사용자는 디스플레이부에 표시된 가상코드를 문자메시지 등의 다양한 경로를 통해 가상코드를 전달할 수 있다. 실제카드번호를 전송하는 것이 아니라 가상코드검증수단(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)에서 두 개의 세부코드(예를 들어, 제1코드와 제2코드 자체가 가상코드 내에 포함되는 경우에는 제1코드와 제2코드이고, 제1코드와 제2코드로 바꾸어 사용할 수 있는 코드를 포함하는 경우, OTP코드와 추출코드)가 결합된 가상코드를 생성하는 경우, 세부코드추출부(220)는 가상코드의 문자배열에서 세부코드결합함수를 적용하여 두개의 세부코드를 분리해낼 수 있다.
또한, 다른 일실시예로, 도 8에서와 같이, 세부코드추출부(220)는 변환코드산출부(221)를 포함한다. 가상코드에 OTP코드와 추출코드가 포함되어 있어서 세부코드결합함수에 의해 OTP코드와 추출코드를 분리한 경우, 변환코드산출부(221)는 OTP코드를 시드값으로 하여 변환코드를 산출하는 변환코드생성함수를 포함한다.
일실시예로, 상기 변환코드는 특정한 규칙에 따라 OTP코드에 일대일로 매칭될 수 있다. 즉, 변환코드생성함수가 자릿수가 상이한 OTP코드와 변환코드를 일대일로 매칭관계를 형성하는 것일 수 있다.
또한, 다른 일실시예로, 상기 변환코드는 상기 OTP코드와 가상코드 생성이 요청된 카운트 값을 변환코드생성함수에 시드값으로 입력하여 산출되는 것이다. 즉, 변환코드생성함수는 OTP코드와 가상코드 생성이 요청된 카운트값을 시드값으로 활용하여, 동일한 OTP값이 시드값으로 사용되어도 카운트 값에 따라 상이한 변환코드가 생성될 수 있다. 이를 통해, OTP코드가 변환코드보다 적은 자릿수의 숫자열인 경우, 실제카드번호 저장위치 탐색에 이용되는 제1코드 또는 제2코드로 OTP코드보다 더 많은 경우의 수의 변환코드를 이용할 수 있다. 이 때, 변환코드산출부(221)는 가상코드를 수신한 카운트로부터 특정범위 내의 카운트에서 생성되는 OTP값과 가상코드에서 분리된 OTP코드를 비교하여 가상코드가 생성된 카운트를 파악한다. 일실시예로, 상기 변환코드생성함수는 OTP코드를 시드데이터로 이용하는 특정한 OTP함수일 수 있다. 즉, 상기 변환코드생성함수는 OTP코드를 시드데이터로 적용하여 현재 시점(즉, 현재 시간데이터)에 대한 코드를 생성한다.
또한, 다른 일실시예로, 상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우, 상기 세부코드생성부(110)는, 유효기간 자리에 배치되는 특정한 숫자조합을 가변코드로 생성하고, 가변코드와 OTP코드를 함께 변환코드생성함수의 시드값(즉, 변수)로 이용할 수 있다. 즉, 상기 변환코드는, 상기 가변코드와 상기 OTP코드를 시드값으로 하여 생성되는 것이다.
상기 유효기간에 배치되는 숫자조합은, 단위카운트마다 변경되어 생성되는 것으로서, 실제 유효기간으로 사용 가능하며, 현재 카운트로부터 최대기간 내에 포함되는 것이다. 결제시스템 내에서 오류가 발생하지 않으려면, 유효기간이 현재 시점으로부터 유효한 기간 내의 값이어여 한다. 예를 들어, 실제카드의 유효기간이 5년인 경우, 세부코드생성부(110)는 결제가 요청된 시점으로부터 5년 이내의 연월 조합에 해당하는 숫자조합을 특정한 규칙에 따라 생성한다.
실제카드번호탐색부(230)는 복수의 세부코드를 기반으로 실제카드번호의 저장위치를 탐색한다. 실제카드번호탐색부(230)가 각각의 세부코드를 기반으로 실제카드번호 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 실제카드번호탐색부(230)가 복수의 세부코드를 기반으로 저장위치를 탐색하기 위해 세부코드 간에는 상관관계를 포함할 수 있다.
가상코드가 제1코드 및 제2코드로 구성되는 경우, 세부코드 간에 상관관계를 가지는 일실시예로, 실제카드번호탐색부(230)는 제1코드에 대응하는 탐색시작지점을 결정하고, 상기 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 이동한 지점을 실제카드번호의 저장위치로 찾을 수 있다. 즉, 상기 세부코드는, 저장위치탐색의 시작지점을 설정하는 제1코드 및 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 제2코드를 포함할 수 있다.
또한, 다른 일실시예로, 가상코드생성수단(10)(또는 가상코드생성장치(100))가 단위카운트마다 신규 가상코드를 제공함에 따라, 가상코드검증장치(200)는 각 카운트마다 변경되는 제1코드 및 제2코드를 기반으로 탐색시작지점과 탐색경로를 설정하여 실제카드번호의 저장위치를 탐색할 수 있다.
또한, 다른 일실시예로, 실제카드번호탐색부(230)는 상관관계를 가지는 복수의 세부코드를 이용하여 실제카드번호의 저장위치를 찾기 위해, 저장위치탐색알고리즘을 포함할 수 있다. 저장위치탐색알고리즘은 가상코드에 포함되는 각각의 세부코드 적용 시에 저장위치 탐색이 가능하도록 하는 알고리즘이다. 예를 들어, 가상코드로부터 저장위치의 탐색시작지점을 결정하는 제1코드와 탐색시작지점으로부터의 저장위치 방향을 제시하는 제2코드를 포함하는 경우, 저장위치탐색알고리즘은 제1코드에 대응되는 지점에서 제2코드에 대응되는 방향을 지시할 때, 해당 위치에 실제카드번호가 매칭되는 저장위치가 배치되도록 조절하는 알고리즘이다. 저장위치탐색알고리즘을 이용함에 따라, 가상코드검증장치(200)는 가상코드에 포함된 제1코드와 제2코드가 변경되어도 실제카드번호 저장위치 또는 저장위치에 매칭된 지점을 찾을 수 있다. 저장위치탐색알고리즘은 다양한 방식이 적용될 수 있으며, 구체적인 예시는 후술한다. 다만, 저장위치탐색알고리즘은 후술되는 예시에 한정되지 않는다.
또한, 다른 일실시예로, 도 9에서와 같이, 상기 가상코드검증장치(200)는, 가상코드검증부(240);를 더 포함한다. 가상코드검증부(240)는 가상코드검증장치(200)가 수신한 가상코드의 진위여부를 판단하는 역할을 수행한다.
또한, 다른 일실시예로, 가상코드검증부(240)는, 가상코드가 OTP코드와 추출코드를 포함하는 경우, OTP코드를 이용하여 사용자의 카드에서 현시점에 생성된 가상코드인지 확인한다. 예를 들어, 상기 OTP코드가 각각의 사용자 또는 가상코드생성수단에 대한 실제카드번호가 발급 또는 등록된 카운트에 대응되는 값을 OTP함수의 시드데이터로 이용하여 생성되는 경우, 가상코드검증부(240)는 수신된 OTP코드(즉, 수신OTP코드)를 기반으로 생성된 변환코드와 가상코드에서 추출된 추출코드를 이용하여 탐색된 카운트를 시드데이터로 이용하여 생성된 비교OTP코드와 수신된 가상코드에 포함된 수신OTP코드를 비교한다.
즉, 가상코드검증부(240)는 가상코드검증수단에서 탐색된 카운트(즉, 가상코드를 기반으로 실제카드번호와 매칭된 것으로 판단된 카운트)를 시드데이터로 하여 현 시점으로부터 특정시간 범위 내의 시간데이터를 기반으로 산출된 복수의 비교OTP코드 중에 수신OTP코드와 일치하는 것이 존재하는지 확인한다. 가상코드검증부(240)는 현시점으로부터 특정시간 범위 내의 시간데이터를 기반으로 생성된 비교OTP코드 중에 수신OTP코드와 일치하는 것이 존재하면 정상적으로 생성된 가상코드로 판단하고, 수신OTP코드와 일치하는 것이 존재하지 않으면 비정상적인 가상코드(임의로 생성된 가상코드 또는 해당 가상코드생성장치에서 이전에 생성되었던 가상코드)로 판단한다.
도 10은 본 발명의 일실시예에 따른 가상코드 기반의 금융거래제공방법의 순서도이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 가상코드 기반의 금융거래제공방법은, 가상코드검증수단이 가상코드생성수단에서 제공된 가상코드를 수신하는 단계(S200; 가상코드 수신단계); 상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는 단계(S400); 상기 가상코드검증수단이 복수의 세부코드를 기반으로 실제카드번호의 저장위치를 탐색하는, 실제카드번호 탐색단계(S1000; 실제카드번호 탐색단계); 및 상기 저장위치에서 추출된 상기 실제카드번호로 금융거래 진행 또는 금융거래 진행요청하는 단계(S1200);를 포함한다. 이하, 각 단계에 대한 상세한 설명을 기재한다. 다만, 가상코드생성장치(100) 및 가상코드검증장치(200)에 대한 설명 과정에서 상술된 내용에 대한 구체적인 개시는 생략한다.
가상코드검증수단(20)이 가상코드생성수단(10)으로부터 가상코드를 수신한다(S200; 가상코드 수신단계). 가상코드는 가상코드생성장치(100)(또는 가상코드생성수단(10))에서 생성되어 가상코드검증수단(20)으로 제공된다.
가상코드검증수단(20)은 가상코드생성수단(10)이 생성한 가상코드를 다양한 방식으로 수신한다. 즉, 상술된 가상코드생성장치(100)의 다양한 가상코드제공방식이 적용될 수 있다.
예를 들어, 카드사서버가 상기 가상코드검증수단을 포함하는 경우, 상기 가상코드 수신단계(S200)는, 상기 가상코드검증수단이 지불결제서비스서버에서 상기 고정코드를 기반으로 특정한 카드사에 대응되는 것으로 분류된 상기 가상코드를 수신한다. 이 때, 상기 지불결제서비스서버는 금융거래단말기(30)나 컴퓨터에서 구동되는 결제프로그램으로부터 가상코드를 수신한다.
가상코드검증수단(20)이 상기 가상코드에 포함된 복수의 세부코드를 추출한다(S400). 가상코드검증수단(20)은 가상코드생성수단(10)이 포함하는 가상코드생성함수를 포함함에 따라, 복수의 세부코드를 결합하였던 규칙(즉, 세부코드결합함수)을 동일하게 적용하여 복수의 세부코드를 추출한다. 즉, 세부코드결합함수는 복수의 세부코드를 배열하는 규칙에 해당하는 것으로, 가상코드생성함수 내에 포함된다.
일실시예로, 가상코드검증수단(20)은, 가상코드 내에 저장위치탐색에 이용되는 제1코드와 제2코드가 직접 포함되어 있는 경우, 제1코드와 제2코드를 세부코드결합함수를 이용하여 추출한다. 즉, 제1코드 및 제2코드는 가상코드검증수단(20)에서 실제카드번호의 위치를 탐색하는데 각각 이용된다. 예를 들어, 제1코드는 가상코드검증수단(20)에서 실제카드번호 저장위치탐색의 시작지점을 설정하는 코드이고, 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 코드일 수 있다. 상기 탐색방식은 저장위치탐색알고리즘에 의해 결정될 수 있다. 탐색방식 결정에 대한 상세한 설명은 후술되는 실제카드번호탐색단계(S1000)에서 상세히 기술한다.
또한, 다른 일실시예로, 상기 가상코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성하는 경우, 상이한 MN개의 코드를 단위카운트마다 순차적으로 변경되는 제1코드 또는 제2코드로 제공하는 제1함수 또는 제2함수를 포함한다. 즉, 제1함수 또는 제2함수는 MN개의 코드를 카운트 증가에 따라 겹치지 않게 생성하는 함수로서, 특정한 시점에 대응하는 카운트에 MN개의 코드 중에 특정한 하나를 제1코드 또는 제2코드로 생성한다. 이를 통해, 가상코드생성수단(10)은 MN카운트(즉, MN개의 카운트에 대응하는 시간길이) 내에 동일한 제1코드 또는 제2코드를 중복 생성하지 않고 단위카운트마다 새로운 세부코드(즉, 제1코드 또는 제2코드)를 생성하여, 단위카운트마다 새로운 가상코드를 생성한다.
구체적으로, 가상코드생성함수는, M개 문자로 N자리의 상기 제1코드 또는 상기 제2코드를 생성함에 따라 MN개의 코드를 제1코드 또는 제2코드로 이용하는 경우, 각각의 코드를 세부코드생성함수가 구동되는 초기시점으로부터 각 카운트마다 매칭한다. 예를 들어, 단위카운트를 1초로 설정하는 경우, 세부코드생성함수가 최초 구동된 시점에서부터 매 초에 상이한 MN개의 코드를 매칭한다. 그리고, 특정한 세부코드생성함수를 이용하는 주기 또는 가상코드생성장치(100)의 사용주기(예를 들어, 가상코드를 생성하는 스마트카드의 유효기간)를 MN 카운트에 해당하는 시간길이(예를 들어, 1카운트가 1초인 경우, MN 초)보다 짧은 시간길이로 설정하면 제1코드 또는 제2코드는 사용주기 동안에 동일한 코드가 중복 생성되지 않는다. 즉, 시간이 흐름에 따라 카운트가 증가할 때, 사용자가 특정시점에 가상코드생성수단(10)에 가상코드생성요청을 하는 경우, 가상코드생성장치(100)는 특정시점에 대응되는 카운트에 매칭된 코드값을 제1코드 또는 제2코드로 생성할 수 있다.
또한, 다른 일실시예로, 동일한 그룹(즉, 동일한 카드사의 동일한 카드유형 그룹) 내에서도 동일한 가상코드가 동일시점에 생성되지 않도록, 가상코드에 포함되는 제1코드 또는 제2코드 중 적어도 어느 하나는 각 가상코드생성수단(10)에서 동일시점에 항상 상이하게 존재하는 값(즉, 장치식별값)을 반영하여 생성될 수 있다. 즉, 특정한 시점에 동일한 카트유형 또는 카드종류인, 복수의 가상코드생성수단(10)에서 가상코드 발급이 요청되는 경우, 각 가상코드생성수단(10)이 상이한 가상코드를 생성하도록 각 시점에 각 가상코드생성수단(10)에 상이하게 부여되는 값을 반영하여 상이한 제1코드 또는 제2코드를 생성한다.
예를 들어, 가상코드가 발급사식별코드에 해당하는 고정코드를 포함하는 경우, 가상코드검증장치(200)(예를 들어, 카드사서버)는 발급사식별번호로 구별되는 각 카드사의 카드유형별로 가상코드생성함수를 부여한다. 따라서, 가상코드생성수단(10)은, 고정코드에 의해 상이한 카드사/카드유형 간에 상이한 가상코드가 생성하므로, 동일한 카드사의 특정한 카드유형 그룹 내에서 동일한 가상코드가 생성되지 않도록 세부코드를 생성하여야 한다. 이를 위해, 각 가상코드생성수단(10)이 상이한 가상코드를 생성하도록 각 시점에 각 가상코드생성수단(10)에 상이하게 부여되는 값을 반영하여 상이한 세부코드를 생성한다.
일 예로, 장치식별값은 특정한 세부코드생성함수가 적용되는 그룹에 특정한 가상코드생성수단(10)이 포함된 시작시점(예를 들어, 가상코드검증수단(20) 내에 특정한 세부코드생성함수가 구동된 최초시점으로부터 특정시간이 경과한 후 특정한 가상코드생성장치(100)에 상기 세부코드생성함수가 적용되기 시작한 시점)으로부터 현재까지 경과된 시간(또는 카운트수)일 수 있다. 예를 들어, 장치식별값은, 특정한 사용자의 요청에 따라 특정한 카드사의 카드유형으로 실제카드번호를 발급하여, 실제카드번호가 해당 카드유형그룹에 속하게 된 카운트부터의 경과시간이 이용될 수 있다. 예를 들어, 가상코드가 제1코드와 제2코드의 결합으로부터 생성되는 경우, 가상코드생성함수는 실제카드번호를 신규생성한 시점으로부터 경과된 단위카운트를 기반으로 제2코드를 생성하도록 할 수 있다.
복수의 가상코드생성수단으로부터 동시에 가상코드 발급을 요청받는 경우에도 상이한 코드가 생성되어야 중복코드 발생에 따른 문제를 해소할 수 있다. 가상코드생성수단(10)을 해당 카드유형그룹에 속하도록 설정하는 카운트를 동일하지 않게 하면(예를 들어, 가상코드생성수단(10)에 대한 실제카드번호를 해당 카드유형그룹에 동일시점에 등록될 수 없게 하면), 가상코드생성수단(10)이 그룹에 속하게 된 시점(또는 카운트)로부터 특정시점까지의 경과된 시간은 각 가상코드생성장치(100)마다 상이하게 된다. 예를 들어, 동시에 특정한 카드사의 특정 카드유형의 카드발급요청이 수신되는 경우, 가상코드검증수단(20)은 동시에 수신된 카드발급요청을 미리 정해진 조건에 따라 순서를 부여하여 다른 카운트에 요청이 들어온 것으로 처리할 수 있다. 즉, 가상코드검증수단(20)은 실제로 동시에 수신된 카드발급요청을 적어도 단위카운트 하나의 차이가 발생하도록 상이한 카운트에 매칭하고, 이에 따라 각 가상코드생성수단(10)에 대한 실제카드번호가 발급된 시점으로부터 특정한 동일시점까지 경과된 카운트수가 항상 상이하도록 할 수 있다.
따라서, 세부코드생성함수 중 적어도 어느 하나는 가상코드생성장치(100)가 특정한 카드유형그룹에 속하게 된 시점(또는 카운트)으로부터 특정시점까지의 경과된 시간을 장치식별값으로 이용하여, 각 시점마다 각각의 가상코드생성장치(100)에서 생성되는 가상코드가 항상 상이하도록 할 수 있다. 이를 통해, 가상코드검증수단(20)이 사용자를 구별하기 위한 데이터를 별도로 수신하지 않고 가상코드를 수신하는 것만으로 가상코드생성수단(10)의 구별이 가능하도록 할 수 있다.
또한, 특정한 가상코드생성장치(100)가 특정한 카드유형그룹에 속하게 된 시점으로부터 경과된 시간길이는 시간이 흐름에 따라 계속 증가하게 되므로, 특정한 가상코드생성장치(100)에서 생성되는 세부코드(예를 들어, 제2코드)는 동일한 값이 생성되지 않고 계속 다른 값이 생성된다.
또한, 또 다른 일실시예로, 전체주기에서 사용자에 무관하게 중복된 가상코드가 발생되지 않도록, 제1코드는 제1함수가 구동되는 초기시점으로부터 각 카운트마다 매칭된 코드 중에서 가상코드 생성요청된 시점(또는 카운트)에 대응되는 코드값으로 설정하고, 제2코드는 가상코드생성장치(100)마다 동일시점에 항상 상이하게 존재하는 값(즉, 장치식별값)을 반영하여 생성되는 코드값으로 설정하고, 가상코드를 상기 제1코드와 제2코드가 결합된 코드값으로 이용할 수 있다. 제1코드는 각 카운트마다 상이한 코드값이 되고 제2코드는 동일시점에 가상코드생성장치(100)마다 상이한 코드값을 가지게 되어서, 제1코드와 제2코드가 결합된 가상코드는 가상코드생성장치(100)와 시점에 상관없이 상이한 코드값이 출력되게 된다.
또한, 다른 일실시예로, 상기 가상코드생성함수는, 복수의 세부코드를 배열하는 규칙에 해당하는 세부코드결합함수를 포함한다. 즉, 가상코드생성함수는 복수의 세부코드에 포함된 문자를 나열 또는 배치하는 특정한 규칙을 가지고 있을 수 있다. 이에 따라, 동일한 가상코드생성함수를 포함하는 가상코드생성수단(10)과 가상코드검증수단(20)의 경우, 가상코드생성수단(10)이 복수의 세부코드에 포함된 문자를 세부코드결합함수에 따라 배열하고, 가상코드검증수단(20)이 동일한 세부코드결합함수를 이용하여 가상코드에서 개별 세부코드를 분리할 수 있다.
또한, 다른 일실시예로, 상기 가상코드생성함수는, M개의 문자를 오름차순으로 나열하는 다수의 나열규칙 중 어느 하나가 적용될 수 있다. 즉, 가상코드생성함수는 M개의 문자를 오름차순으로 나열하는 다양한 나열규칙이 적용될 수 있고, 적용되는 나열규칙에 따라 상이한 가상코드생성함수로 분류될 수 있다.
다른 일실시예로, 가상코드검증수단(20)은, 가상코드 내에 저장위치탐색에 이용되는 제1코드와 제2코드로 바뀌어 사용되는 복수의 세부코드를 포함하는 경우, 세부코드결합함수를 이용하여 복수의 세부코드를 추출한 후 실제카드번호 저장위치 탐색에 이용되는 제1코드와 제2코드로 변환한다.
구체적으로, 상기 세부코드추출단계(S400)는, 복수의 세부코드로 OTP코드 및 추출코드를 포함하는 경우, 상기 가상코드검증수단이 상기 가상코드에 특정한 규칙에 따라 포함된 고정코드 및 복수의 세부코드를 추출한다. 상기 OTP코드는, 가상코드생성수단(10)에서 OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이다. 상기 추출코드는, 상기 OTP코드로부터 산출된 상기 제1코드에 대응되는 것이며, 상기 가상코드의 전체 숫자 개수에서 상기 고정코드 및 상기 OTP코드를 제외한 숫자 개수의 전부 또는 일부로 생성되는 것이다.
또한, 상기 세부코드추출단계(S400)는, 도 11에서와 같이, 가상코드검증수단이 상기 OTP코드를 기반으로 변환코드를 산출하는 단계(S410);를 더 포함한다. 즉, OTP코드는 제1코드 또는 제2코드로 직접 이용될 수 없고, 제1코드 또는 제2코드로 이용될 수 있는 변환코드로 변환되어야 한다.
예를 들어, 카드식별번호 내에 고정코드(즉, 발급자식별번호) 자리 및 검증숫자 자리를 제외한 자리 개수와 카드보안코드 자리 개수에 OTP코드와 추출코드의 조합이 배열되고, 숫자만을 이용하여 세부코드를 생성하는 경우, 가상카드생성수단(10)는 제1코드 또는 제2코드로 전환되어 직접 사용되는 추출코드의 가용 코드 개수를 증가시키기 위해 추출코드에 많은 자리를 할당하고, 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코드를 그대로 변환코드생성함수에 시드값으로 입력하여 변환코드를 생성하고, 이를 추출코드와 다른 코드(즉, 추출코드가 제2코드로 이용되는 경우에 제1코드)로 바로 사용할 수 있다.
또한, 다른 일실시예로, 가상코드가 가상코드생성수단(10)이 포함된 그룹을 결정하는 고정코드를 포함하는 경우, 상기 세부코드추출단계(S400)는 상기 가상코드 내에서 상기 고정코드를 추출하고, 상기 고정코드를 기반으로 상기 가상코드생성수단의 카드유형그룹을 판단하여, 상기 카드유형그룹에 대한 상기 가상코드생성함수 또는 상기 저장위치탐색알고리즘을 결정한다. 즉, 각 그룹별로 가상코드생성함수 또는 저장위치탐색알고리즘을 상이하게 적용하는 경우, 가상코드검증수단(20)는 가상코드 내의 고정코드를 기반으로 그룹을 구별한다.
또한, 고정코드를 이용하여 가상코드생성함수를 결정하는 과정은, 복수의 세부코드를 추출하는 과정 이전에 수행될 수 있다. 고정코드에 의해 가상코드생성함수가 결정되어야 가상코드생성함수 내에 포함된 세부코드결합함수가 결정되어 복수의 세부코드를 추출할 수 있다. 이를 위해, 가상코드검증수단(20)이 별도의 함수 없이도 용이하게 분리해내도록, 고정코드는 가상코드 내에 고정된 위치(예를 들어, 가상코드의 제일 앞의 특정 개수의 자리)에 결합될 수 있다.
구체적인 일실시예로, 상기 세부코드추출단계(S400)는, OTP코드와 추출코드를 조합하여 가상코드 내의 카드식별번호에서 고정코드를 제외한 자리와 상기 카드보안코드 자리에 나열된 숫자열의 전부 또는 일부에 포함되는 경우, 상기 가상코드 내의 카드식별번호 영역에서 고정코드를 추출하는 단계; 상기 고정코드를 기반으로 특정한 카드유형에 대응하는 세부코드결합함수를 설정하는 단계; 및 상기 카드식별번호에서 고정코드를 제외한 자리와 상기 카드보안코드 자리에 나열된 숫자열에서 상기 세부코드결합함수를 이용하여 상기 OTP코드와 상기 추출코드를 추출하는 단계;를 포함한다.
또한, 다른 일실시예로, 가상코드검증수단은 유효기간 값을 저장위치탐색알고리즘 또는 가상코드생성함수를 구별하는 고정코드 하위의 세부기준값으로 사용할 수 있다. 즉, 상기 가상코드는 실제카드번호의 유효기간을 동일하게 포함하고, 상기 가상코드검증수단(20)은 상기 고정코드 및 유효기간 값에 따라 상이한 실제카드번호 탐색알고리즘을 포함한다. 상기 실제카드번호 탐색알고리즘은, 후술되는 바와 같이, 상기 제1코드와 상기 제2코드를 기반으로 실제카드번호가 저장된 위치를 탐색하는 것이다. 이를 통해, 하나의 카드유형 내에서 유효기간 값에 따라(즉, 특정한 유형의 카드를 발급받은 연월에 따라) 실제카드번호 탐색알고리즘을 별도로 사용하므로, 가상코드검증수단(20)은 사용 가능한 추출코드와 OTP코드의 조합을 고정코드와 유효기간 값에 의해 나누어진 복수의 그룹에 중복하여 사용할 수 있게 된다.
가상코드검증수단(20)이 복수의 세부코드를 기반으로 실제카드번호의 저장위치를 탐색한다(S1000; 실제카드번호 탐색단계). 복수의 세부코드가 제1코드와 제2코드 자체인 경우, 가상코드검증수단(20)은 가상코드에서 추출된 제1코드와 제2코드를 바로 이용하여 실제카드번호 저장위치탐색을 수행한다. 제1코드와 제2코드는 상호간에 상관관계를 가지고 있고, 가상코드검증수단(20)은 제1코드와 제2코드의 상관관계를 기반으로 실제카드번호 저장위치를 탐색한다. 구체적인 일실시예로, 상기 제1코드는 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고, 상기 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이다.
다른 일실시예로, 가상코드 내의 세부코드가 제1코드와 제2코드로 전환하여 사용하는 코드(예를 들어, OTP코드와 추출코드)인 경우, 가상코드검증수단(20)은 OTP코드에 의해 산출된 변환코드와 추출코드를 가상코드생성수단(10)과 동일한 기준으로 제1코드와 제2코드로 적용한다. 예를 들어, 가상코드생성수단(10)과 가상코드검증수단(20)이 동일하게 추출코드를 제2코드로 이용하고, OTP코드를 기반으로 생성되는 변환코드를 제1코드로 이용하는 것으로 정할 수 있다. 따라서, 가상코드검증수단(20)은 정해진 기준에 따라 변환코드와 추출코드를 제1코드와 제2코드로 적용한다.
가상코드 내의 복수의 세부코드는 단위카운트마다 생성되는 코드가 변경(예를 들어, 가상코드가 2개의 세부코드로 이루어지는 경우, OTP코드 및 추출코드는 단위카운트마다 변경)될 수 있고, 가상코드검증수단(20)은 단위카운트마다 가상코드가 변경되어도 복수의 세부코드에 대응하는 제1코드와 제2코드가 상관관계를 가짐에 따라 실제카드번호 저장위치를 탐색할 수 있다.
가상코드를 구성하는 세부코드 간의 상관관계에 관한 일실시예로, 가상코드가 제1코드와 제2코드의 결합으로 이루어지는 경우, 가상코드검증수단(20)은 제1코드를 탐색시작지점(즉, 실제카드번호 저장위치의 탐색을 시작하는 지점)으로 설정하고, 제2코드를 상기 탐색시작지점으로부터 저장위치로 이동하는 경로로 적용하여 저장위치를 탐색할 수 있다. 즉, 단위카운트마다 정상적으로 생성된 가상코드가 수신되면, 가상코드검증수단(20)은 제1코드에 대응하는 시작지점으로부터 상기 제2코드에 상응하는 탐색경로에 따라 이동한 탐색지점을 실제카드번호의 저장위치 또는 저장위치에 매칭된 지점(예를 들어, 별도 서버에 탐색지점에 매칭되어 있는 저장공간)으로 판단한다.
일실시예로, 제2코드가 제1코드에 상응하는 탐색시작지점으로부터의 저장위치까지의 경로에 대한 정보를 모두 포함하는 경우, 가상코드검증수단(20)은 제1코드에 상응하는 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 실제카드번호 저장위치 또는 저장위치에 매칭된 지점을 찾을 수 있다.
다른 일실시예로, 가상코드검증수단(20)은 단위카운트마다 실제카드번호의 저장위치를 가상코드에 부합하게 조절하는 저장위치탐색알고리즘을 포함할 수 있다. 즉, 상기 가상코드검증수단(20)은, 단위카운트마다 실제카드번호 저장위치에 매칭된 지점으로의 탐색경로를 조절하는 저장위치탐색알고리즘을 포함한다. 상기 제1코드 및 상기 제2코드는 단위카운트마다 변경되는 경우, 가상코드검증수단(20)은 변경되는 제1코드 및 제2코드에 부합하게 저장위치탐색알고리즘을 조절할 수 있다. 상기 저장위치탐색알고리즘은 다양한 형태로 구현될 수 있다.
일실시예로, 도 13에서와 같이, 저장위치탐색알고리즘이 k(k는 MN)개의 코드가 나열된 트랙 상을 k각형이 각 코드가 배치된 지점에 꼭지점이 대응되면서 구름이동하는 것일 수 있다. 이 때, 상기 실제카드번호탐색단계(S1000)는, 가상코드검증수단(20)이 상기 가상코드생성수단(10)으로부터 수신된 상기 가상코드 내 제1코드에 대응하는 트랙 상의 지점으로 k각형을 구름이동하는 단계(S1010); 상기 제1코드에 대응하는 위치를 시작지점으로 설정하고, 상기 제2코드에 적용된 탐색방식에 따라 제2코드를 기반으로 k각형의 배치상태에서의 저장위치 또는 상기 저장위치가 매칭된 지점을 탐색하는 단계(S1020; 저장위치탐색단계); 및 상기 저장위치에 포함된 실제카드번호를 추출하는 단계(S1030);를 포함한다.
가상코드검증수단(20)은, 도 12에서와 같이, 가상코드생성수단(10)으로부터 수신된 상기 가상코드 내 제1코드에 대응하는 트랙 상의 지점으로 k각형을 구름이동한다(S1010). 저장위치탐색알고리즘은 제1코드에 해당하는 MN개의 코드가 나열된 트랙을 따라 구름이동하는 k각형(k는 MN)이며, k각형의 꼭지점이 제1코드 트랙 상에 코드가 배치되는 지점에 대응되면서 이동한다. 이 때, 가상코드검증수단(20)은 제1코드에 대응되는 지점에 k각형의 꼭지점이 접하도록 k각형을 구름이동을 적용할 수 있다.
가상코드검증수단(20)은, 도 12에서와 같이, 상기 제1코드에 대응하는 위치가 시작지점으로 설정하고, 상기 제2코드에 적용된 탐색방식에 따라 제2코드를 기반으로 k각형의 배치상태에서의 저장위치 또는 저장위치에 매칭된 지점(즉, k각형의 특정한 꼭지점)을 탐색한다(S1020; 저장위치탐색단계). 상기 저장위치는 상기 k각형의 각각의 꼭지점에 매칭된다. 제1코드 트랙(즉, 제1트랙)과 k각형이 대응되는 지점이 제1코드에 대응하는 저장위치 탐색시작지점이 된다. 가상코드검증수단(20)은 탐색시작지점에서 제2코드를 기반으로 저장위치의 매칭지점을 탐색한다.
제2코드를 기반으로 k각형에서 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 일 예로, 가상코드검증수단(20)은 k각형이 접한 제1트랙 상의 위치에서 제2코드에 상응하는 각도(예를 들어, k각형의 꼭지점을 향하도록 180도를 MN개로 분할한 특정한 각도)로 지시함에 따라, 가상코드에 대응하는 실제카드번호가 저장된 저장위치인 k각형의 꼭지점을 탐색할 수 있다.
또한, 다른 예로, k각형이 제1트랙 상의 제1코드에 대응하는 지점에 접한 상태에서, 가상코드검증수단(20)은 k각형의 중심과 제1트랙 상의 접점을 기준으로, 전체 중심각(즉, 360도)을 MN개로 분할하고, 각각의 각도를 MN개의 제2코드에 매칭한다. 이 때, k각형의 중심과 제1트랙 상의 접점을 이은 선으로부터 특정개수의 단위각도(즉, 360도/MN)를 이동한 선의 방향은 k각형의 특정한 꼭지점이 된다. 따라서, 특정한 각도에 대응하는 제2코드가 수신되면, 가상코드검증수단(20)은 해당 각도 방향에 위치한 꼭지점을 탐색할 수 있다.
또한, 다른 예로, 제2코드의 특정 자리를 각도산출 방향을 결정하는 것으로 사용할 수 있다. 즉, N개(N은 자연수)의 문자를 이용하여 제2코드를 생성하는 경우, 1개의 자리(Digit)로 각도 측정방향을 결정할 수 있다. 예를 들어, 가상코드검증수단(20)은 k각형의 중심과 제1트랙 상의 접점을 기준으로, 전체 중심각(즉, 360도)을 분할하여 각각의 각도에 제2코드를 매칭하는 경우, k각형의 중심과 제1트랙 상의 접점을 이은 선으로부터 좌측방향으로 측정되는 각도인지 우측방향으로 측정되는 각도인지를 1개의 자리(Digit)의 값으로 결정할 수 있다.
일 예로, 저장위치탐색알고리즘은, k각형 상의 각 꼭지점에 각도 측정방향에 따라 다른 2개의 제2코드가 하나의 꼭지점에 배정할 수 있다. 즉, 하나의 꼭지점에 내각으로 도달 시와 외각으로 도달 시에 다른 제2코드와 매칭되고, 다른 실제카드번호가 연결될 수 있다. 다른 일 예로, 저장위치탐색알고리즘은, N개(N은 자연수)의 문자를 이용하여 제2코드를 생성하는 경우에 N-1개로 전체각도(예를 들어, 중심각을 기준으로 분할하는 경우 360도)의 반에 대해 매칭하고 1개 자리를 이용하여 각 꼭지점에 도달하기 위한 각도 적용방향을 결정할 수 있다.
제2코드를 기반으로 k각형에서 저장위치를 탐색하는 방식은 이에 한정되지 아니하고, 제2코드에 상응하는 k각형 상의 지점과 제1트랙 상의 접점 사이를 특정한 비율로 나누는 지점을 저장위치로 탐색하는 방식 등의 다양한 방식이 적용될 수 있다.
그 후, 가상코드검증수단(20)은 상기 저장위치에 포함된 실제카드번호를 추출한다(S1030). 즉, 가상코드검증수단(20)은 k각형의 꼭지점에 대응되는 저장위치를 찾아서, 저장위치 내의 실제카드번호를 추출한다.
또한, 다른 일실시예로, 상기 저장위치탐색알고리즘은 가상코드를 구성하는 복수의 세부코드를 기반으로 트랙상을 이동하여 실제카드번호저장위치에 매칭된 지점으로 이동하는 것이다. 예를 들어, 상기 실제카드번호저장위치에 매칭된 지점은 가상코드생성수단에 실제카드번호를 발급한 카운트(즉, 시점)에 대응하는 트랙상의 지점일 수 있다.
구체적으로, 가상코드가 가상코드생성함수가 구동된 시점으로부터 경과된 시간을 기반으로 생성된 제1코드와 특정한 가상코드생성수단에 실제카드번호가 발급된 시점으로부터 경과된 시간을 기반으로 생성된 제2코드를 포함하는 경우, 도 14에서와 같이, 가상코드검증수단(20)은 제1코드에 대응되는 코드값이 매칭된 트랙상의 카운트를 탐색시작지점으로 설정하고, 제2코드에 제2함수(또는 추출코드는 제2코드로 이용하는 경우, 추출코드생성함수)의 역함수를 적용함에 따라 산출된 카운트값만큼 상기 탐색시작지점으로부터 트랙을 따라서 회귀하여 가상코드생성수단(10)에 실제카드번호를 발급한 시점의 트랙상의 지점(즉, 실제카드번호저장위치에 매칭된 지점)을 탐색한다.
또한, 구체적인 다른 예로, 가상코드검증수단(20)은 제1코드에 대한 이동트랙(즉, 제1이동트랙)과 평행하게 배치되는 제2코드에 대한 이동트랙(즉, 제2이동트랙)을 제1코드에 의해 이동된 탐색시작지점을 원점으로 하고, 제1코드에 따른 이동방향과 역방향으로 배치한다. 그리고, 가상코드검증수단(20)은 제2이동트랙 상에서 제2코드에 대응되는 코드값의 위치로 이동하고, 이 위치에 대응되는 제1이동트랙 상의 지점을 실제카드번호 저장위치로 탐색한다.
그 후, 가상코드검증수단(20)은 상기 저장위치에서 추출된 상기 실제카드번호로 금융거래 진행 또는 금융거래 진행요청한다(S1200).
또한, 도 15에서와 같이, 다른 일실시예로, 특정한 가상코드생성수단(10)으로부터 특정한 카운트에 신규로 실제카드번호 생성이 요청되면, 상기 특정한 카운트에 k각형의 특정한 꼭지점에 대응되는 저장위치에 실제카드번호를 저장하는 단계(S100; 실제카드번호 저장단계);를 더 포함한다. 상기 특정한 꼭지점은 상기 특정한 카운트에 트랙 상에 접한 것이다. 가상코드검증수단(20)이 가상코드생성함수 및 저장위치탐색알고리즘을 구동한 후 특정한 시점(또는 카운트)가 경과하였을 때, 가상코드검증수단(20)은 특정한 가상코드생성수단(10)에 대한 신규 실제카드번호 발급을 수신함에 따라 제1트랙 상에 접한 k각형의 꼭지점에 매칭된 저장위치에 신규생성한 실제카드번호를 저장한다. 구체적으로, 가상코드검증수단(20)에서 가상코드생성함수 및 저장위치탐색알고리즘이 구동됨에 따라 각 카운트마다 하나의 코드씩 k각형과 트랙이 접하는 위치가 이동하도록 k각형이 구름이동하게 되고, 특정한 카운트에 신규 실제카드번호 발급이 요청되면 특정한 카운트에 트랙에 접하고 있는 꼭지점이 실제카드번호가 저장되는 k각형 상의 지점으로 결정된다.
예를 들어, 도 12에서와 같이, 가상코드검증수단은 A시점에 가상코드생성수단A에 대해 실제카드번호를 발급함에 따라 A시점에 트랙에 접하였던 k각형의 꼭지점에 가상코드생성수단A의 실제카드번호를 저장한다. 그 후, 카운트가 경과함에 따라 k각형은 트랙을 따라 구름이동을 수행한다. k각형의 회전에 의해 가상코드생성수단 A의 실제카드번호가 저장된 저장위치가 회전하게 된다.
즉, 트랙과 접하는 k각형의 꼭지점에 실제카드번호가 저장된 후 n카운트가 경과된 만큼 k각형이 회전하여, 경과된 n카운트 개수만큼 실제카드번호가 저장된 지점이 회전된다. 따라서, 제2코드가 실제카드번호가 발급된 카운트(즉, 시점)로부터 경과된 단위카운트 개수를 반영하여 산출되면, 가상코드검증수단(20)은 제2코드를 통해 가상코드가 생성된 시점에 실제카드번호가 저장된 k각형 상의 지점을 산출할 수 있다.
구체적으로, 제1코드가 가상코드검증수단(20) 내에서 특정한 가상코드생성함수 및 저장위치탐색알고리즘이 구동된 최초시점으로부터 경과된 카운트 개수에 대응하는 코드값이고 제2코드가 특정한 가상코드생성수단(10)에 대해 실제카드번호를 발급한 후 경과된 카운트 개수에 대응하는 코드값인 경우, 가상코드검증수단(20)은 제1코드를 통해 가상코드생성수단(10)에서 가상코드 생성을 요청한 시점(예를 들어, C시점)을 파악하고, 제2코드를 통해 해당 시점의 k각형 배치상태에서 실제카드번호가 저장된 k각형 상의 꼭지점을 파악한다. 즉, 제1코드는 k각형의 특정한 꼭지점을 탐색할 수 있는 k각형 배치상태가 되도록 하는 트랙상의 지점을 결정하는데 이용되고, 제2코드는 제1코드에 대응하는 트랙상 지점에 k각형이 배치된 후에 실제카드번호 저장위치에 매칭된 k각형 상의 꼭지점을 탐색하는데 이용된다. 이를 통해, 가상코드생성수단(10)에서 가상코드를 생성한 후 가상코드검증수단(20)으로 제공되는데 지연시간(delay time)이 있더라도, 가상코드검증수단(20)은 가상코드에 대응하는 실제카드번호를 정확히 탐색할 수 있다.
또한, 다른 일실시예로, 도 14에서와 같이, 트랙상에서 제1코드와 제2코드를 기반으로 이동하는 저장위치탐색알고리즘을 이용하는 경우, 가상코드검증수단(20)은 가상코드생성함수가 구동된 시점부터 트랙 시작지점에서 출발한 포인터(Pointer)가 단위카운트가 경과될 때마다 트랙 상의 분할단위를 이동하여 실제카드번호 발급시점(A시점)에 위치한 트랙상의 지점을 실제카드번호 저장위치에 매칭된 지점으로 결정할 수 있다.
또한, 다른 일실시예로, 도 16에서와 같이, 상기 가상코드검증수단(20)이 상기 제1코드 또는 상기 제2코드를 상기 제1함수 또는 제2함수의 역함수를 적용하여 정상적으로 생성된 가상코드에 해당하는지 검증하는 단계(S500);를 더 포함한다. 예를 들어, 제1코드가 가상코드검증수단(20) 내에서 특정한 가상코드생성함수 및 저장위치탐색알고리즘이 구동된 최초시점으로부터 경과된 카운트 개수에 대응하는 코드값이고 제2코드가 특정한 가상코드생성수단(10)에 대해 실제카드번호를 발급한 후 경과된 카운트 개수에 대응하는 코드값인 경우, 가상코드검증수단(20)은 실제카드번호를 저장위치에 저장할 때 가상코드생성함수 구동 후 실제카드번호 발급 시까지 경과된 시간(Ts)를 함께 저장한다. 가상코드검증수단(20)은 가상코드 내 제1코드에 제1함수의 역함수를 적용하여 가상코드생성함수 구동 시로부터 가상코드 생성시점까지의 경과시간(T1)을 산출하고, 가상코드 내 제2코드에 제2함수의 역함수를 적용하여 실제카드번호 발급 시로부터 가상코드 생성시점까지의 경과시간(T2)를 산출한다. 그 후, 가상코드검증수단(20)은 T1과 T2의 차이가 Ts에 해당하는지 여부를 판단하여 가상코드를 검증한다.
또한, 다른 일실시예로, 도 17에서와 같이, 상기 가상코드생성수단(10)으로부터 수신된 제1수신코드와 상기 가상코드검증수단(20)에서 생성된 제1함수에 따라 생성된 제1생성코드를 비교하는 단계(S600); 상기 제1수신코드가 상기 제1생성코드로부터 오차허용범위 내에 포함되면 상기 제1수신코드를 상기 시작지점으로 하는 제1코드로 설정하는 단계(S700); 및 상기 제1수신코드가 상기 제1생성코드로부터 오차허용범위를 벗어나면 비정상코드로 판단하는 단계(S800);를 더 포함한다. 가상코드생성수단(10) 및 가상코드검증수단(20)은 시간이 흐름에 따라 동일한 단위카운트가 경과된다. 그러나 가상코드생성수단(10)과 가상코드검증수단(20)에 포함된 타이머(Timer) 사이에 오차가 존재하여 동일시점에 경과된 카운트 개수의 상이할 수 있다. 따라서, 타이머에 의한 오차는 해소하면서 정상적인 가상코드가 아닌 비정상코드를 판별하기 위한 과정이 필요하다. 이를 위해, 가상코드검증수단(20)은 내부에서 제1함수에 의해 특정한 카운트에서 생성한 제1코드인 제1생성코드와 가상코드생성수단(10)으로부터 수신된 가상코드 내의 제1코드인 제1수신코드를 비교하고(S600), 제1생성코드와 제1수신코드 사이에 차이나는 카운트 개수가 오차허용범위 내에 해당하면 정상코드로 판단한 후 제1수신코드를 기준으로 실제카드번호 탐색과정을 수행하고(S700), 제1생성코드와 제1수신코드 사이에 차이나는 카운트 개수가 오차허용범위를 넘어서면 비정상코드로 판단한다(S800).
또한, 다른 일실시예로, 상기 가상코드는 특정한 자릿수의 가상보안코드를 더 포함하는 경우, 상기 가상코드검증수단이 상기 가상코드생성수단으로부터 수신한 수신가상보안코드와 상기 가상코드검증수단 내에서 생성된 생성가상보안코드의 일치여부를 판단하여 가상코드를 검증하는 단계;를 더 포함한다. 가상보안코드는 카드보안코드의 자릿수에 대응하도록 생성될 수 있고, 실제카드번호의 카드보안코드 자리에 표시될 수 있다.
일실시예로, 가상보안코드는 가상코드생성장치 내의 고유값 및 카드보안코드(예를 들어, CVC/CVV번호)를 기반으로 생성될 수 있다. 상기 고유값은 각각의 가상코드생성장치마다 개별적으로 부여된 장치고유값이다. 고유값 및 카드보안코드는 각각의 가상코드생성장치(100)마다 부여되는 것이므로, 악의적 목적으로 가상코드생성장치를 해킹하기 위해 가상코드생성장치를 신규로 발급받은 자가 개별 가상코드생성장치에 부여된 고유값 및 카드보안코드를 확인할 수 없다. 따라서, 가상코드검증수단(20)이 가상코드생성수단(10)에 의해 고유값 및 카드보안코드를 기반으로 생성된 가상보안코드를 수신하여 가상코드생성수단(10)를 검증할 수 있다.
또한, 다른 일실시예로, 가상코드생성수단(10)은 시간값을 반영하여 가상보안코드를 생성할 수 있다. 즉, 가상코드생성수단(10)은 OTP(One Time Password: 고정된 패스워드 대신 무작위로 생성되는 일회용 패스워드를 이용하는 사용자인증)방식을 이용하여 가상보안코드를 생성할 수 있다. 가상코드검증수단(20)은 가상보안코드에 해당하는 OTP번호를 가상코드생성수단(10)으로부터 수신하고, 가상코드생성수단(10)으로부터 OTP번호를 수신한 카운트로부터 특정범위 내의 카운트에서 산출된 OTP번호를 비교하여 가상코드생성수단(10)을 검증한다. 즉, 가상코드검증수단(20)은 실제카드번호저장위치 내에 카드보안코드(예를 들어, CVC/CVV)와 고유값을 함께 저장하여서, 가상코드가 수신된 시점에 실제카드번호 저장공간에서 추출된 카드보안코드 및 고유값을 이용하여 생성된 OTP번호와 가상코드생성수단(10)으로부터 수신된 OTP번호가 일치하는지 판단하여 가상코드생성수단(10)을 검증한다.
또한, 다른 일실시예로, 가상보안코드는 가상코드생성수단이 외부로 출력하지 않고 제1코드 및 제2코드 생성에 반영될 수 있다. 도 18에서와 같이, 가상코드생성수단(10)은 가상코드생성장치 내의 고유값 및 카드보안코드를 기반으로 생성된 가상보안코드값을 카드번호 발급시점에 더한 카운트의 제1코드를 생성하고, 가상보안코드값에 대응되는 카운트의 제2코드를 생성한다. 즉, 제1코드 및 제2코드는 가상코드생성장치A에 실제카드번호가 발급된 A시점으로부터 가상보안코드값만큼 이동(shifting)된 카운트를 기반으로 생성된다. A시점으로부터 이동(Shifting)된 카운트는 생성되는 가상보안코드 값에 따라 현재시점에 대응하는 카운트보다 이전 카운트가 될 수도 있고, 이후 카운트가 될 수도 있다. 가상코드검증수단(20)은 수신된 제1코드와 제2코드를 저장위치탐색알고리즘에 적용하여 실제카드번호 저장위치가 매칭된 지점을 탐색할 수 있다. 이를 통해, 타인이 가상코드를 구성하는 제1코드 및 제2코드가 제공되는 순서를 확인할 수 없게 되어, 보안성이 향상될 수 있다.
또한, 다른 일실시예로, 가상코드검증수단(20)은 가상보안코드를 기반으로 생성된 제2코드에서 가상보안코드를 추출한 후, 가상보안코드생성함수(즉, OTP함수)를 가상코드를 수신한 카운트로부터 특정범위 내의 카운트를 입력하여 산출된 OTP번호 중에 가상보안코드와 일치하는 값이 있는지 여부를 확인한다. 가상코드검증수단은 제2코드에 제2함수의 역함수를 적용하여 제2코드 생성에 이용된 가상보안코드값(즉, OTP함수값)을 획득하고, 가상보안코드값과 동일한 값을 산출하는 카운트를 찾아낸다. 가상코드의 전송시간이나 딜레이에 의해 가상코드생성수단에서 가상보안코드가 생성된 시점과 가상코드검증수단이 가상보안코드를 수신한 시점의 차이가 존재함에 따라 가상코드검증수단(20)이 가상코드를 수신한 카운트와 가상보안코드에 해당하는 OTP번호를 생성한 카운트가 일치하지 않을 수도 있으므로, 가상코드검증수단(20)은 가상코드를 수신한 카운트로부터 오차범위를 허용한다. 이를 통해, 가상코드검증수단(20)은 가상코드를 전송한 가상코드생성수단이 정상적으로 실제카드번호와 매칭된 것인지 검증할 수 있어서, 보안성이 향상될 수 있다. 또한, 사용자는, 가상코드 입력 시에 특정한 자릿수의 가상보안코드를 입력하지 않아도 가상코드검증수단(20)이 자체적으로 가상보안코드를 탐색하여 가상코드생성수단(10)을 검증하므로, 가상코드생성수단(10)을 간편하게 사용할 수 있다.
또한, 다른 일실시예로, 가상코드생성수단(10)은 금융거래가 요청된 시점에 가상코드생성장치 내의 고유값 및 카드보안코드를 기반으로 생성된 가상보안코드값을 더한 카운트에 대응하는 제1코드를 생성하고, 실제카드번호발급시점(A시점)과 금융거래요청시점(C시점) 간의 카운트 차이와 가상보안코드값을 더한 카운트에 대응하는 제2코드를 생성한다. 즉, 가상코드생성수단(10)이 제1코드와 제2코드를 생성하는 수신은 다음과 같다.
제1코드 = f1(C시점 카운트 + 가상보안코드)
제2코드 = f2(C시점 카운트 ?? A시점 카운트 + 가상보안코드)
(A시점: 실제카드번호발급시점, C시점: 금융거래요청시점의 카운트, 가상보안코드: OTP번호)
가상코드검증수단(20)은 수신한 가상코드 내의 제1코드 및 제2코드를 기반으로 실제카드번호 저장위치를 탐색하고, 실제카드번호 저장위치 내에 함께 포함된 카드보안코드(즉, CVV 또는 CVC) 및 가상코드생성장치(100)의 고유값을 추출한다. 가상코드검증수단(20)은 카드보안코드 및 고유값을 기반으로 금융거래요청 수신시점으로부터 특정카운트 범위 내의 가상보안코드(즉, OTP번호)를 생성한다. 그 후, 가상코드검증수단(20)은 실제카드번호발급시점(A시점)으로부터 금융거래요청 수신시점으로부터 특정카운트범위 내의 각 카운트까지의 카운트 개수와 가상보안코드(즉, OTP번호)의 합이 제2코드에 대응하는 카운트수(즉, 제2코드에 제2함수의 역함수를 적용한 값)와 같은 카운트가 존재하는지 확인한다. 가상코드검증수단은 제1코드 및 제2코드를 기반으로 실제카드번호 저장위치가 매칭된 지점을 탐색함에 따라 실제카드번호 발급시점을 파악할 수 있다. 이를 통해, 가상코드검증수단(20)은 가상코드를 제공한 가상코드생성수단(10)이 정상적으로 발급된 것인지 여부를 확인할 수 있다.
또한, 다른 일실시예로, 가상코드검증수단(20)은, 가상코드에 OTP코드와 추출코드를 복수의 세부코드로 포함하는 경우, 제1코드로 추출코드가 이용되면 결제요청시점과 일치하지 않을 수 있는 추출코드에 대응하는 카운트로 이동(Shifting)하고, OTP코드를 기반으로 산출되는 변환코드가 제1코드로 이용되면 결제요청시점과 일치하지 않을 수 있는 변환코드에 대응하는 카운트로 이동(Shifting)한다. 트랙상에서 제1코드에 대응하는 카운트는 현재시점보다 이전일 수도 있고 이후일 수도 있다. 이 때, OTP코드가 가상코드에서 직접 추출되므로, 가상코드검증수단(20)은 가상코드가 수신된 카운트로부터 특정범위 내의 카운트에서 OTP함수를 기반으로 생성된 비교코드(즉, OTP값) 중에 가상코드에서 추출된 OTP코드와 동일한 것이 존재하는지 판단하여, 정상적으로 발급된 것인지 여부를 확인한다.
이상에서 전술한 본 발명의 일 실시예에 따른 가상코드 기반의 금융거래제공방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.

Claims (15)

  1. 하나 이상의 세부코드를 생성하는 세부코드생성부;
    상기 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 가상코드생성부; 및
    상기 가상코드를 가상코드검증수단으로 제공하기 위해 외부로 출력하는 가상코드제공부;를 포함하고,
    상기 가상코드는 고정코드, OTP코드 및 추출코드를 포함하는 복수의 코드를 특정한 규칙에 따라 결합하여 생성되는 것이고,
    상기 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합되며, 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이며,
    상기 OTP코드는, OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이고,
    상기 추출코드는 상기 가상코드의 전체 숫자 개수에서 상기 고정코드 및 상기 OTP코드를 제외한 숫자 개수의 전부 또는 일부로 생성되는 것으로서, 상기 OTP코드로부터 산출된 상기 변환코드에 대응되는 것이며,
    상기 변환코드 또는 상기 추출코드는 상기 가상코드검증수단에서 설정된 조건에 따라 제1코드 또는 제2코드로 각각 사용되는 것이고,
    상기 제1코드는, 상기 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고,
    상기 제2코드는, 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이고,
    상기 OTP코드 및 상기 추출코드는 단위카운트마다 변경되며,
    상기 단위카운트는,
    특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것인, 가상코드생성장치.
  2. 제1항에 있어서,
    상기 OTP코드는 실제카드번호 내의 카드보안코드의 숫자 개수로 생성되고,
    상기 추출코드는 상기 가상코드의 전체 숫자 개수에서 상기 고정코드, 상기 OTP코드 및 유효기간을 제외한 숫자 개수의 전부 또는 일부로 생성되는 것인, 가상코드생성장치.
  3. 제2항에 있어서,
    상기 변환코드는 상기 추출코드와 동일한 자릿수로 생성되는 것인, 가상코드생성장치.
  4. 제2항에 있어서,
    상기 변환코드는 특정한 규칙에 따라 상기 OTP코드에 일대일로 매칭되는 것을 특징으로 하는, 가상코드생성장치.
  5. 제3항에 있어서,
    상기 변환코드는 상기 OTP코드와 가상코드 생성이 요청된 카운트 값을 변환코드생성함수에 시드값으로 입력하여 산출되는 것인, 가상코드생성장치.
  6. 제1항에 있어서,
    상기 가상코드생성부는,
    상기 OTP코드와 상기 추출코드를 세부코드결합함수를 통해 조합하여,
    카드식별번호에서 고정코드를 제외한 자리와 카드보안코드 자리에 나열되는 것을 특징으로 하는, 가상코드생성장치.
  7. 제1항에 있어서,
    상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우,
    상기 세부코드생성부는,
    유효기간 자리에 배치되는 특정한 숫자조합을 가변코드로 생성하는 것을 특징으로 하고,
    상기 변환코드는,
    상기 가변코드와 상기 OTP코드를 시드값으로 하여 생성되는 것이고,
    상기 숫자조합은, 단위카운트마다 변경되어 생성되는 것으로서, 실제 유효기간으로 사용 가능하며, 현재 카운트로부터 최대기간 내에 포함되는 것인, 가상코드생성장치.
  8. 제1항에 있어서,
    상기 고정코드가 특정한 카드유형의 실제카드번호에 사용되는 것인 경우,
    특정한 카운트에 생성된 가상코드가 특정한 카드유형에서 실제카드번호로 사용 가능한 코드열인지 여부를 판단하는 가상코드확인부;를 더 포함하는, 가상코드생성장치.
  9. 제8항에 있어서,
    상기 가상코드확인부는,
    상기 가상코드 내의 카드식별번호, 유효기간 및 서비스코드를 실제카드번호생성규칙에 입력하여 비교카드보안코드를 생성하고,
    상기 가상코드 내의 카드보안코드 자리에 배치된 숫자인 생성카드보안코드와 상기 비교카드보안코드를 비교하여 일치하면 가상코드 재생성을 요청하는 것을 특징으로 하는, 가상코드생성장치.
  10. 가상코드검증수단이 가상코드생성수단에서 제공된 가상코드를 수신하는, 가상코드 수신단계;
    상기 가상코드검증수단이 상기 가상코드에 특정한 규칙에 따라 포함된 고정코드 및 복수의 세부코드를 추출하되, 상기 복수의 세부코드는 OTP코드 및 추출코드를 포함하는 것인, 세부코드추출단계;
    상기 가상코드검증수단이 상기 OTP코드를 기반으로 변환코드를 산출하는, 변환코드산출단계; 및
    상기 가상코드검증수단이 제1코드 및 제2코드를 기반으로 실제카드번호의 저장위치를 탐색하되, 상기 제1코드 및 상기 제2코드는 상기 추출코드 또는 상기 변환코드가 설정된 조건에 따라 각각 이용되는 것인, 실제카드번호 탐색단계; 및
    상기 가상코드검증수단이 상기 저장위치에서 추출된 상기 실제카드번호로 금융거래 진행 또는 금융거래 진행요청하는 단계;를 포함하고,
    상기 가상코드검증수단과 상기 가상코드생성수단은 동일한 가상코드생성함수를 포함하는 것이며,
    상기 고정코드는, 상기 가상코드 내에 미리 정해진 위치에 결합되며, 상기 실제카드번호에 대응되는 카드사 또는 카드유형을 판단하는 코드이며,
    상기 OTP코드는, OTP함수를 기반으로 특정한 개수의 숫자 배열로 생성되어, 변환코드 산출에 이용되는 것이고,
    상기 추출코드는, 상기 OTP코드로부터 산출된 상기 제1코드에 대응되는 것이며, 상기 가상코드의 전체 숫자 개수에서 상기 고정코드 및 상기 OTP코드를 제외한 숫자 개수의 전부 또는 일부로 생성되는 것이고,
    상기 제1코드는 가상코드검증수단에서 실제카드번호의 저장위치를 탐색하는 시작지점을 설정하는 것이고,
    상기 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 것이고,
    상기 OTP코드 및 상기 추출코드는 단위카운트마다 변경되며,
    상기 단위카운트는, 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것인, 가상코드 기반의 금융거래제공방법.
  11. 제10항에 있어서,
    상기 세부코드추출단계는,
    상기 가상코드 내의 카드식별번호 영역에서 고정코드를 추출하는 단계;
    상기 고정코드를 기반으로 특정한 카드유형에 대응하는 세부코드결합함수를 설정하는 단계;
    상기 카드식별번호에서 고정코드를 제외한 자리와 카드보안코드 자리에 나열된 숫자열에서 상기 세부코드결합함수를 이용하여 상기 OTP코드와 상기 추출코드를 추출하는 단계;를 포함하는, 가상코드 기반의 금융거래제공방법.
  12. 제11항에 있어서,
    상기 세부코드추출단계는,
    상기 가상코드생성수단에 포함된 것과 동일한 OTP함수에서 생성되는 비교코드와 상기 OTP코드를 비교하여, 가상코드가 생성된 카운트 값을 산출하고,
    상기 변환코드산출단계는,
    상기 카운트 값과 상기 OTP코드를 시드값으로 변환코드생성함수에 입력하여 변환코드를 산출하는 것을 특징으로 하는, 가상코드 기반의 금융거래제공방법.
  13. 제10항에 있어서,
    상기 가상코드는 실제카드번호의 유효기간을 동일하게 포함하고,
    상기 가상코드검증수단은 상기 고정코드 및 유효기간 값에 따라 상이한 실제카드번호 탐색알고리즘을 포함하고,
    상기 실제카드번호 탐색알고리즘은 상기 제1코드와 상기 제2코드를 기반으로 실제카드번호가 저장된 위치를 탐색하는 것인, 가상코드 기반의 금융거래제공방법.
  14. 제10항에 있어서,
    상기 고정코드가 특정한 카드유형의 가상코드에 대해 신규 부여된 것인 경우,
    상기 세부코드추출단계는,
    유효기간 자리에서 가변코드를 추출하고,
    상기 변환코드산출단계는,
    상기 가변코드와 상기 OTP코드를 변환코드생성함수에 시드값으로 입력하여 상기 변환코드를 생성하는 것을 특징으로 하는, 가상코드 기반의 금융거래제공방법.
  15. 하드웨어인 컴퓨터와 결합되어, 제10항 내지 제14항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된, 가상코드 기반 결제제공프로그램.
KR1020180131824A 2018-08-09 2018-10-31 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램 KR102005549B1 (ko)

Priority Applications (7)

Application Number Priority Date Filing Date Title
CN201880096394.1A CN112567411A (zh) 2018-08-09 2018-11-06 基于虚拟代码的金融交易提供***、虚拟代码生成装置、虚拟代码验证装置、基于虚拟代码的金融交易提供方法以及基于虚拟代码的金融交易提供程序
PCT/KR2018/013410 WO2020032321A1 (ko) 2018-08-09 2018-11-06 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
SG11202011649YA SG11202011649YA (en) 2018-08-09 2018-11-06 System, method and program for providing financial transaction by virtual code, virtual code generator and virtual code verification device
JP2021506625A JP7154381B2 (ja) 2018-08-09 2018-11-06 仮想コード基盤の金融取引提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード基盤の金融取引提供方法及び仮想コード基盤の金融取引提供プログラム
EP18929370.7A EP3783557A4 (en) 2018-08-09 2018-11-06 VIRTUAL CODE BASED FINANCIAL TRANSACTION PROVIDING SYSTEM, VIRTUAL CODE BASED GENERATING DEVICE, VIRTUAL CODE VERIFICATION DEVICE, VIRTUAL CODE BASED FINANCIAL TRANSACTION PROVIDING METHOD AND VIRTUAL CODE BASED FINANCIAL TRANSACTION PROVIDING PROGRAM
KR1020190089815A KR102284683B1 (ko) 2018-08-09 2019-07-24 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
US16/659,043 US11935044B2 (en) 2018-08-09 2019-10-21 System, method and program for providing financial transaction by virtual code, virtual code generator and virtual code verification device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020180093349 2018-08-09
KR20180093349 2018-08-09

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020190089815A Division KR102284683B1 (ko) 2018-08-09 2019-07-24 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램

Publications (1)

Publication Number Publication Date
KR102005549B1 true KR102005549B1 (ko) 2019-07-30

Family

ID=67473544

Family Applications (11)

Application Number Title Priority Date Filing Date
KR1020180131824A KR102005549B1 (ko) 2018-08-09 2018-10-31 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
KR1020190015769A KR102143425B1 (ko) 2018-08-09 2019-02-11 구체 기반의 가상코드 검증 방법 및 시스템
KR1020190062104A KR102137953B1 (ko) 2018-08-09 2019-05-27 가상투표코드 기반의 투표 및 개표 방법 및 시스템
KR1020190071944A KR102217816B1 (ko) 2018-08-09 2019-06-18 인증용가상코드를 이용한 사용자 인증 방법 및 시스템
KR1020190074882A KR102213432B1 (ko) 2018-08-09 2019-06-24 가상코드 기반의 설문 작성자 정보 유출 방지 방법 및 시스템
KR1020190089815A KR102284683B1 (ko) 2018-08-09 2019-07-24 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
KR1020190094493A KR102115013B1 (ko) 2018-08-09 2019-08-02 가상코드를 생성 및 제공하는 스마트카드와 그 방법 및 프로그램
KR1020200059932A KR102370173B1 (ko) 2018-08-09 2020-05-19 가상코드를 생성 및 제공하는 스마트카드와 그 방법 및 프로그램
KR1020220018381A KR102525471B1 (ko) 2018-08-09 2022-02-11 인증용가상코드를 이용한 사용자 접근 관리 방법 및 시스템
KR1020220025716A KR102544556B1 (ko) 2018-08-09 2022-02-28 가상코드를 생성하는 스마트카드와 그 방법 및 프로그램
KR1020230051910A KR20230058353A (ko) 2018-08-09 2023-04-20 인증용가상코드의 검증을 수행하는 사용자 인증 장치 및 방법

Family Applications After (10)

Application Number Title Priority Date Filing Date
KR1020190015769A KR102143425B1 (ko) 2018-08-09 2019-02-11 구체 기반의 가상코드 검증 방법 및 시스템
KR1020190062104A KR102137953B1 (ko) 2018-08-09 2019-05-27 가상투표코드 기반의 투표 및 개표 방법 및 시스템
KR1020190071944A KR102217816B1 (ko) 2018-08-09 2019-06-18 인증용가상코드를 이용한 사용자 인증 방법 및 시스템
KR1020190074882A KR102213432B1 (ko) 2018-08-09 2019-06-24 가상코드 기반의 설문 작성자 정보 유출 방지 방법 및 시스템
KR1020190089815A KR102284683B1 (ko) 2018-08-09 2019-07-24 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
KR1020190094493A KR102115013B1 (ko) 2018-08-09 2019-08-02 가상코드를 생성 및 제공하는 스마트카드와 그 방법 및 프로그램
KR1020200059932A KR102370173B1 (ko) 2018-08-09 2020-05-19 가상코드를 생성 및 제공하는 스마트카드와 그 방법 및 프로그램
KR1020220018381A KR102525471B1 (ko) 2018-08-09 2022-02-11 인증용가상코드를 이용한 사용자 접근 관리 방법 및 시스템
KR1020220025716A KR102544556B1 (ko) 2018-08-09 2022-02-28 가상코드를 생성하는 스마트카드와 그 방법 및 프로그램
KR1020230051910A KR20230058353A (ko) 2018-08-09 2023-04-20 인증용가상코드의 검증을 수행하는 사용자 인증 장치 및 방법

Country Status (8)

Country Link
US (3) US11922411B2 (ko)
EP (3) EP3783557A4 (ko)
JP (3) JP7154381B2 (ko)
KR (11) KR102005549B1 (ko)
CN (2) CN112567411A (ko)
IL (1) IL280506B2 (ko)
SG (3) SG11202011649YA (ko)
WO (1) WO2020032321A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4024309A4 (en) * 2019-08-30 2023-09-06 SSenStone Inc. METHOD, PROGRAM AND SYSTEM FOR PROVIDING FINANCIAL TRANSACTION BASED ON VIRTUAL BUSINESS CARD

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101978812B1 (ko) * 2017-08-09 2019-05-15 주식회사 센스톤 가상카드번호 기반의 금융거래제공시스템, 가상카드번호생성장치, 가상카드번호검증장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
WO2019031716A2 (ko) 2017-08-09 2019-02-14 주식회사 센스톤 가상토큰 기반의 결제제공시스템, 가상토큰생성장치, 가상토큰검증서버, 가상토큰 기반의 결제제공방법 및 가상토큰 기반의 결제제공프로그램
KR102005554B1 (ko) * 2018-08-09 2019-07-30 주식회사 센스톤 공카드를 이용한 금융거래제공방법 및 시스템
JP7469490B2 (ja) * 2020-02-24 2024-04-16 株式会社センストーン 仮想認証コード基盤の手続き承認装置及びその方法
EP3968253B1 (en) * 2020-02-24 2024-04-17 SSenStone Inc. Method, program, and device for authenticating user setting information by using virtual code
WO2021172875A1 (ko) * 2020-02-24 2021-09-02 주식회사 센스톤 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치
EP3907683B1 (en) * 2020-02-24 2024-01-03 SSenStone Inc. Method and program for authentication between apparatuses based on virtual authentication code
KR102125428B1 (ko) * 2020-03-25 2020-06-22 주식회사 이글루시큐리티 보안장치의 대시보드를 모바일장치로 제공하는 방법, 장치 및 프로그램
KR102442132B1 (ko) * 2020-08-05 2022-09-13 한국도로공사 토큰 결제용 블록체인 id 카드 및 이를 이용한 토큰 결제 시스템
WO2022186654A1 (ko) * 2021-03-04 2022-09-09 주식회사 센스톤 Iot 디바이스의 보안을 위해 생성된 인증용가상코드의 검증을 위한 심카드 장치
KR102502339B1 (ko) * 2021-03-04 2023-02-23 주식회사 센스톤 Nfc를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 그 방법
EP4303799A4 (en) * 2021-03-04 2024-04-24 SSenStone Inc. SIM CARD DEVICE FOR VERIFYING A VIRTUAL AUTHENTICATION CODE GENERATED FOR THE SECURITY OF AN IOT DEVICE
WO2022186606A1 (ko) * 2021-03-04 2022-09-09 주식회사 센스톤 인증용 가상코드 기반의 암호 키 업데이트 제공 장치 및 방법
WO2022186681A1 (ko) * 2021-03-04 2022-09-09 주식회사 센스톤 Nfc를 이용한 카드데이터 기반의 가상보안코드 생성을 위한 단말기, 카드 장치 및 그 방법
US20230239150A1 (en) * 2022-01-21 2023-07-27 Capital One Services, Llc Computer-based systems configured for authenticating based on generated virtual tokens and methods of use thereof
WO2023167390A1 (ko) * 2022-03-04 2023-09-07 주식회사 센스톤 인증용 가상코드를 이용하여 홀더리스 카드에 사용자를 등록하는 방법
KR102464232B1 (ko) * 2022-03-22 2022-11-09 주식회사 위피엠 온라인 기반의 가상 전시회를 제공하는 가상현실 콘텐츠 관리시스템의 전시회 설계 및 관리 방법
TWI816390B (zh) * 2022-05-09 2023-09-21 兆豐國際商業銀行股份有限公司 使用虛擬號碼執行金融交易的伺服器和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법
KR101587414B1 (ko) * 2015-04-02 2016-01-21 주식회사 다날 일회용 신용카드 번호 기반의 결제 보조 장치 및 방법
KR20160036471A (ko) * 2014-08-27 2016-04-04 유한회사 실릭스 오티피 기반의 가상 번호 결제 방법, 컴퓨터 판독가능한 기록매체 및 시스템
KR20160119296A (ko) * 2015-04-02 2016-10-13 현대오토에버 주식회사 일회용 카드번호를 이용하여 결제서비스를 제공하는 방법 및 결제시스템
KR101675927B1 (ko) * 2015-10-08 2016-11-14 주식회사 지씨엠씨 신용 조회 단말기, 결제 관리 서버, 결제 관리 방법, 결제 단말, 결제 단말의 동작방법, 결제 관리를 위해 매체에 저장된 컴퓨터 프로그램 및 신용 조회 단말기

Family Cites Families (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100213188B1 (ko) 1996-10-05 1999-08-02 윤종용 사용자 인증 장치 및 방법
KR100516711B1 (ko) * 1997-08-07 2005-11-25 마츠시타 덴끼 산교 가부시키가이샤 모션벡터검출장치및모션벡터검출방법
US6000832A (en) * 1997-09-24 1999-12-14 Microsoft Corporation Electronic online commerce card with customer generated transaction proxy number for online transactions
JPH11195102A (ja) * 1997-12-26 1999-07-21 Tookado:Kk センサー付きicカード
FR2805422B1 (fr) * 2000-02-18 2002-04-19 Florence Louise Marcelle Morin Dispositif autonome et independant pour fournir un code de transaction ephemere en vue d'achats par carte a puce, configurable pour une seule carte a puce
JP4942240B2 (ja) 2000-08-09 2012-05-30 大日本印刷株式会社 クレジットカードを用いた決済処理方法
JP4942245B2 (ja) 2000-11-20 2012-05-30 大日本印刷株式会社 クレジットカードを用いた決済処理方法
JP2002312707A (ja) 2001-04-13 2002-10-25 Dainippon Printing Co Ltd クレジットカードを用いた決済処理方法
KR100441118B1 (ko) * 2001-06-19 2004-07-19 한국모바일페이먼트서비스(주) 일회용 가상 카드 서비스 시스템 및 방법
JP3678417B2 (ja) * 2002-04-26 2005-08-03 正幸 糸井 個人認証方法及びシステム
JP2005050292A (ja) * 2003-07-30 2005-02-24 Takeshi Aoki 時刻補正をして、ワンタイムパスワードを生成する、電波時計内臓の情報端末
JP4027890B2 (ja) * 2003-12-16 2007-12-26 シャープ株式会社 情報送信システムおよび情報送信装置
JP2005182509A (ja) * 2003-12-19 2005-07-07 Ntt Docomo Inc 計算機システム並びにデータ改竄検出方法
US20060107067A1 (en) * 2004-11-15 2006-05-18 Max Safal Identification card with bio-sensor and user authentication method
US7427033B1 (en) * 2005-02-26 2008-09-23 James Roskind Time-varying security code for enabling authorizations and other uses of financial accounts
US8266441B2 (en) * 2005-04-22 2012-09-11 Bank Of America Corporation One-time password credit/debit card
KR100643182B1 (ko) 2005-09-22 2006-11-10 대한민국 인터넷을 이용한 전자투표시스템
KR100645401B1 (ko) 2006-05-01 2006-11-15 주식회사 미래테크놀로지 휴대폰에서의 시간동기 방식 오티피 발생장치와 방법
JP4388039B2 (ja) * 2006-07-07 2009-12-24 株式会社ジェーシービー ネット決済システム
US7909247B2 (en) * 2006-10-27 2011-03-22 American Express Travel Related Services Company, Inc. Wireless transaction medium having combined magnetic stripe and radio frequency communications
FR2911743B1 (fr) * 2007-01-23 2009-04-24 Ncryptone Sa Dispositif portable d'authentification.
JP4663676B2 (ja) * 2007-04-20 2011-04-06 さくら情報システム株式会社 ワンタイムパスワード装置およびシステム
US7739169B2 (en) * 2007-06-25 2010-06-15 Visa U.S.A. Inc. Restricting access to compromised account information
JP2009031940A (ja) * 2007-07-25 2009-02-12 Tis Kk ワンタイムパスワードの発行システム
US8494959B2 (en) * 2007-08-17 2013-07-23 Emc Corporation Payment card with dynamic account number
US20090159705A1 (en) * 2007-12-24 2009-06-25 Dynamics Inc. Payment cards and devices operable to receive point-of-sale actions before point-of-sale and forward actions at point-of-sale
ES2674355T3 (es) 2008-11-04 2018-06-29 Amadeus S.A.S. Método y sistema para almacenamiento y recuperación de información
KR101019156B1 (ko) * 2009-03-20 2011-03-04 (주)에이티솔루션 보안카드 생성 및 갱신 시스템 그리고 그 방법
FR2944907A1 (fr) * 2009-04-23 2010-10-29 Alain Ratignier Procede de vote electronique securise
EP2330787B1 (en) * 2009-12-01 2017-09-27 Vodafone Holding GmbH Generation of a time-dependent password in a mobile comunication device
EP2633489A4 (en) * 2010-10-26 2014-08-06 Modopayments Llc SYSTEM AND METHOD FOR MANAGING MERCHANT-CONSUMER INTERACTIONS
KR20120083030A (ko) * 2011-01-17 2012-07-25 김경중 투표정보가 기록되는 투표용지와 투표시스템
KR20120105296A (ko) * 2011-03-15 2012-09-25 한국정보통신주식회사 일회용 카드 결제 처리방법 및 시스템과 이를 위한 서버, 스마트폰
US8627104B2 (en) 2011-04-28 2014-01-07 Absio Corporation Secure data storage
US20120330764A1 (en) * 2011-06-22 2012-12-27 Broadcom Corporation Point of Sale System for Transaction Payment Delegation
KR101556010B1 (ko) * 2012-08-08 2015-10-30 오엠알스캔(주) 집단 설문 또는 시험에서 개인정보 유출 방지 방법
US11222329B2 (en) * 2012-11-05 2022-01-11 Mastercard International Incorporated Electronic wallet apparatus, method, and computer program product
US20140279555A1 (en) * 2013-03-14 2014-09-18 Nagraid Security, Inc. Dynamically allocated security code system for smart debt and credit cards
KR20150005788A (ko) * 2013-07-05 2015-01-15 주식회사 비즈모델라인 사용자 키 값을 이용한 사용자 인증 방법
KR101542111B1 (ko) * 2013-12-20 2015-08-12 주식회사 씽크풀 카드를 이용한 결제방법, 이를 위한 디지털 시스템, 및 결제측 시스템
KR101579923B1 (ko) * 2013-12-20 2015-12-23 펜타시큐리티시스템 주식회사 일회용 비밀번호 생성 방법 및 이를 수행하는 장치
KR101378285B1 (ko) * 2014-01-21 2014-03-25 신철우 전자 투표 시스템 및 방법
CN104820796A (zh) * 2014-01-31 2015-08-05 株式会社茉菲莉亚 个人认证***、个人信息媒介、终端设备以及个人认证方法
KR20150139210A (ko) * 2014-06-03 2015-12-11 김병찬 음성인식을 이용한 상품 식별코드 생성 방법
KR101583515B1 (ko) * 2014-11-24 2016-01-12 김승훈 Rf 지문형 스마트 콤비 카드 및 이를 이용한 거래 방법
KR102334894B1 (ko) * 2014-12-24 2021-12-03 십일번가 주식회사 웹 기반 인증 결제 장치, 웹 기반 인증 결제 방법, 웹 기반 인증 결제 시스템 및 컴퓨터 프로그램이 기록된 기록매체
CN105825371A (zh) 2015-01-07 2016-08-03 阿里巴巴集团控股有限公司 业务处理方法和装置
KR101652966B1 (ko) * 2015-02-13 2016-09-01 (주)엠앤스마트 Rf 카드와 스마트 폰의 페어링을 이용한 스마트 인증 시스템 및 스마트 인증 방법
KR101751887B1 (ko) * 2015-12-29 2017-07-11 한국정보통신주식회사 일회용 카드 코드 생성 방법, 그를 이용한 카드 결제 승인 방법, 카드 리더기 및 서버
KR101751894B1 (ko) * 2015-12-29 2017-07-03 한국정보통신주식회사 결제 단말 장치 및 일회용 카드 코드를 이용한 결제 처리 방법
KR20170001400U (ko) * 2016-03-11 2017-04-18 주식회사 지씨엠씨 신용 조회 단말기, 결제 관리 서버, 결제 단말
EP3455998B1 (en) * 2016-05-12 2021-09-01 Boland, Michael, J. Identity authentication and information exchange system and method
US20180039876A1 (en) * 2016-08-08 2018-02-08 Ellipse World S.A. Prepaid, Debit and Credit Card Security Code Generation System
JP2018050434A (ja) * 2016-09-23 2018-03-29 エイピーエス.エスエイ 携帯型充電装置
JP2018056831A (ja) * 2016-09-29 2018-04-05 凸版印刷株式会社 Icカード及び金融取引システム
CN108604345B (zh) * 2017-01-25 2020-09-25 华为技术有限公司 一种添加银行卡的方法及装置
KR20170078564A (ko) * 2017-06-15 2017-07-07 한국정보통신주식회사 일회용 카드 코드 생성 방법, 그를 이용한 카드 결제 승인 방법, 카드 리더기 및 서버
US20190362339A1 (en) * 2018-05-25 2019-11-28 Mastercard International Incorporated Methods and systems for facilitating payment transaction using a preferred digital wallet application
KR102005554B1 (ko) * 2018-08-09 2019-07-30 주식회사 센스톤 공카드를 이용한 금융거래제공방법 및 시스템
KR102099973B1 (ko) 2019-02-15 2020-04-10 주식회사 센스톤 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법
KR20160036471A (ko) * 2014-08-27 2016-04-04 유한회사 실릭스 오티피 기반의 가상 번호 결제 방법, 컴퓨터 판독가능한 기록매체 및 시스템
KR101587414B1 (ko) * 2015-04-02 2016-01-21 주식회사 다날 일회용 신용카드 번호 기반의 결제 보조 장치 및 방법
KR20160119296A (ko) * 2015-04-02 2016-10-13 현대오토에버 주식회사 일회용 카드번호를 이용하여 결제서비스를 제공하는 방법 및 결제시스템
KR101675927B1 (ko) * 2015-10-08 2016-11-14 주식회사 지씨엠씨 신용 조회 단말기, 결제 관리 서버, 결제 관리 방법, 결제 단말, 결제 단말의 동작방법, 결제 관리를 위해 매체에 저장된 컴퓨터 프로그램 및 신용 조회 단말기

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP4024309A4 (en) * 2019-08-30 2023-09-06 SSenStone Inc. METHOD, PROGRAM AND SYSTEM FOR PROVIDING FINANCIAL TRANSACTION BASED ON VIRTUAL BUSINESS CARD

Also Published As

Publication number Publication date
KR102284683B1 (ko) 2021-08-02
KR102217816B1 (ko) 2021-02-22
JP2021533504A (ja) 2021-12-02
SG11202101357UA (en) 2021-04-29
SG11202011649YA (en) 2020-12-30
JP7192089B2 (ja) 2022-12-19
KR20200018224A (ko) 2020-02-19
US20210185034A1 (en) 2021-06-17
CN112567411A (zh) 2021-03-26
EP3836061A4 (en) 2022-08-24
CN112567413A (zh) 2021-03-26
US11922411B2 (en) 2024-03-05
KR102137953B1 (ko) 2020-07-27
EP3783557A4 (en) 2022-03-09
IL280506B1 (en) 2023-01-01
KR102370173B1 (ko) 2022-03-04
US12002041B2 (en) 2024-06-04
JP2023027187A (ja) 2023-03-01
KR20230058353A (ko) 2023-05-03
WO2020032321A1 (ko) 2020-02-13
KR20220024353A (ko) 2022-03-03
KR20200018284A (ko) 2020-02-19
US20210157931A1 (en) 2021-05-27
KR20200018230A (ko) 2020-02-19
KR20200062102A (ko) 2020-06-03
IL280506B2 (en) 2023-05-01
EP3712830C0 (en) 2024-04-10
KR102525471B1 (ko) 2023-04-25
KR102544556B1 (ko) 2023-06-16
KR20220030982A (ko) 2022-03-11
SG11202006096VA (en) 2020-07-29
EP3836061A1 (en) 2021-06-16
JP2021533416A (ja) 2021-12-02
KR102143425B1 (ko) 2020-08-11
JP7154381B2 (ja) 2022-10-17
KR20200018228A (ko) 2020-02-19
KR20200018254A (ko) 2020-02-19
EP3836061B1 (en) 2023-06-28
US20200320526A1 (en) 2020-10-08
EP3783557A1 (en) 2021-02-24
EP3712830A1 (en) 2020-09-23
EP3712830B1 (en) 2024-04-10
IL280506A (en) 2021-03-25
US11995650B2 (en) 2024-05-28
KR102115013B1 (ko) 2020-05-27
KR102213432B1 (ko) 2021-02-08
KR20200018200A (ko) 2020-02-19
EP3712830A4 (en) 2021-09-29

Similar Documents

Publication Publication Date Title
KR102005549B1 (ko) 가상코드 기반의 금융거래제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드 기반의 금융거래제공방법 및 가상코드 기반의 금융거래제공프로그램
KR101978812B1 (ko) 가상카드번호 기반의 금융거래제공시스템, 가상카드번호생성장치, 가상카드번호검증장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
US11935044B2 (en) System, method and program for providing financial transaction by virtual code, virtual code generator and virtual code verification device
CN109389382B (zh) 虚拟***生成装置及验证装置、金融交易提供***、方法及程序
US20220318787A1 (en) Method and system for providing financial transaction using empty card
JP7236369B2 (ja) 仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラム
US11983704B2 (en) Virtual token-based settlement providing system, virtual token generation apparatus, virtual token verification server, virtual token-based settlement providing method, and virtual token-based settlement providing program
KR102346701B1 (ko) 가상카드번호 기반의 금융거래장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
US20200342445A1 (en) Electrical circuit device and method for testing code
KR102558582B1 (ko) 가상카드번호 기반의 금융거래장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
KR20210143145A (ko) 가상코드를 기반으로 한 실제코드 검색방법 및 프로그램

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant