KR20230110217A - 가상코드 기반의 거래 시스템, 방법 및 프로그램 - Google Patents

가상코드 기반의 거래 시스템, 방법 및 프로그램 Download PDF

Info

Publication number
KR20230110217A
KR20230110217A KR1020230085141A KR20230085141A KR20230110217A KR 20230110217 A KR20230110217 A KR 20230110217A KR 1020230085141 A KR1020230085141 A KR 1020230085141A KR 20230085141 A KR20230085141 A KR 20230085141A KR 20230110217 A KR20230110217 A KR 20230110217A
Authority
KR
South Korea
Prior art keywords
virtual code
code
virtual
control command
unit
Prior art date
Application number
KR1020230085141A
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
Priority claimed from KR1020200108738A external-priority patent/KR102551861B1/ko
Application filed by 주식회사 센스톤 filed Critical 주식회사 센스톤
Publication of KR20230110217A publication Critical patent/KR20230110217A/ko

Links

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/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
    • 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
    • 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/22Payment schemes or models
    • G06Q20/28Pre-payment schemes, e.g. "pay before"
    • 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
    • G06Q20/38215Use of certificates or encrypted proofs of transaction rights
    • 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/389Keeping log of transactions for guaranteeing non-repudiation of a 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/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/405Establishing or using transaction specific rules
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F15/00Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity
    • G07F15/001Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity for gas
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F15/00Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity
    • G07F15/003Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity for electricity
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F15/00Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity
    • G07F15/06Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity with means for prepaying basic charges, e.g. rent for meters
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F15/00Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity
    • G07F15/12Coin-freed apparatus with meter-controlled dispensing of liquid, gas or electricity in which metering is on a time basis
    • 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

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Computer Security & Cryptography (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 가상코드를 이용한 거래 방법에 관한 것이다. 상술한 과제를 해결하기 위한 본 발명은 가상코드검증수단이 가상코드를 수신하되, 상기 가상코드는 가상코드생성수단에 포함된 가상코드생성함수에 의해 생성되는 것인, 가상코드수신단계, 상기 가상코드검증수단이 상기 가상코드에서 UID(User Identification)의 저장위치를 탐색하는 단계, 상기 가상코드검증수단이 탐색된 UID에 매칭되어 저장된 제어명령 정보를 탐색하는 단계 및 상기 추출된 제어명령 정보를 기반으로 제어명령을 수행하는 단계를 포함하고, 상기 가상코드검증수단은 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는 가상코드를 이용한 거래방법을 제공한다.

Description

가상코드 기반의 거래 시스템, 방법 및 프로그램{SYSTEM, METHOD AND PROGRAM FOR TRANSACTION BY VIRTUAL CODE}
본 발명은 가상코드를 이용한 거래 방법에 관한 것이다.
코드 형태데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 대용 화폐로 사용되는 가상코드가 유출되어 타인이 부적법하게 사용함에 따라 구매자가 피해를 볼 수 있으며, 부적법한 가상코드를 위조하여 사용함에 따라 판매자가 피해를 볼 수 있다.
가상코드를 이루는 코드 및 가상코드 생성 규칙이 유출되지 않도록 하기 위해 임시로 생성되는 가상코드를 이용하고자 하는 시도가 많았으나, 가상코드에 대응되는 실제코드를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다. 예를 들어, OTP(One Time Password)의 경우, 시간마다 코드가 변경되어 생성되지만, 사용자에게 부여된 알고리즘 판단을 위해 로그인 절차가 필요하여 다양한 영역에 적용되기 어렵다.
또한, 가상코드의 유효성을 검증하는 장치에서 통신이 어려울 경우, 가상코드의 유효성을 검증하기 어렵다는 문제가 있다.
따라서, 가상코드에 대응되는 대응되는 사용자나 장치에 대한 식별정보를 제공하지 않으면서 실시간으로 변동되는 가상코드를 기반으로 가상코드의 유효성을 판단하고, 활용할 수 있는 발명이 필요하다.
한국등록특허 10-1316466호 (2013.10.01)
본 발명이 해결하고자 하는 과제는 거래 행위 후 판매자가 발급하는 가상코드가 중복생성되지 않도록 하는 방법 및 시스템을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 거래 행위 후 판매자가 발급하는 가상코드에 유효기간을 부여하여, 가상코드 구매 후 구매자가 일정 시간이 지난 후 사용할 수 없도록 하는 방법 및 시스템을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 토근의 생성 규칙이 유출되더라도, 일정 시간이 지난 후 해당 규칙이 활용될 수 없도록 하는 방법 및 시스템을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명은 가상코드검증수단이 가상코드를 수신하되, 상기 가상코드는 가상코드생성수단에 포함된 가상코드생성함수에 의해 생성되는 것인, 가상코드수신단계, 상기 가상코드검증수단이 상기 가상코드에서 UID(User Identification)의 저장위치를 탐색하는 단계, 상기 가상코드검증수단이 탐색된 UID에 매칭되어 저장된 제어명령 정보를 탐색하는 단계 및 상기 추출된 제어명령 정보를 기반으로 제어명령을 수행하는 단계를 포함하고, 상기 가상코드검증수단은 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는 가상코드를 이용한 거래방법을 제공한다.
일 실시 예에 있어서, 본 발명은 기설정된 주기마다 상기 가상코드검증수단이 상기 가상코드검증수단에 저장된 주기 정보를 갱신하는 단계를 포함하고, 상기 가상코드검증수단이 상기 주기 정보를 갱신할 때, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 할 수 있다.
일 실시 예에 있어서, 본 발명은 상기 가상코드검증수단이 상기 저장된 주기 정보를 이용하여 상기 가상코드를 검증하는 단계를 더 포함할 수 있다.
일 실시 예에 있어서, 상기 가상코드를 검증하는 단계는, 상기 가상코드검증수단이 상기 가상코드에서 주기 정보를 추출하는 단계 및 상기 가상코드검증수단이 상기 추출된 주기 정보와 상기 가상코드검증수단에 저장된 주기 정보를 비교하여 상기 가상코드의 유효성을 검증하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상기 가상코드검증수단이 상기 가상코드검증수단에 저장된 주기 정보를 갱신하는 단계는, 상기 가상코드검증수단이 주기 정보를 제1주기에서 제2주기로 갱신하는 단계 및 상기 가상코드검증수단이 상기 제1주기에서 특정 UID에 매칭되어 저장된 제어명령 정보가 상기 제2주기에서 상기 특정 UID와 다른 UID에 매칭되어 되도록 제어명령 정보의 저장위치를 변경하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상기 가상코드를 검증하는 단계는, 상기 추출된 주기 정보가 상기 가상코드검증수단에 저장된 제2주기와 일치 하지 않는 경우, 상기 가상코드검증수단이 상기 추출된 주기 정보와 상기 제1주기의 일치 여부를 확인하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상기 추출된 주기 정보와 상기 제1주기가 일치하는 경우, 상기 추출된 제어명령 정보를 기반으로 제어명령을 수행하는 단계는, 상기 가상코드검증수단이 상기 제1주기에서 상기 추출된 UID에 매칭되어 저장된 제어명령 정보에 대응하는 제어명령을 수행하는 단계를 포함할 수 있다.
일 실시 예에 있어서, 상기 가상코드는, 저장위치탐색의 시작지점을 설정하는 제1코드 및 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 제2코드를 포함하고, 상기 제1코드 및 상기 제2코드는 단위카운트마다 변경될 수 있다.
일 실시 예에 있어서, 상기 가상코드검증수단이 상기 가상코드를 검증하는 단계는, 상기 가상코드검증수단이 상기 가상코드에서 가상코드검증수단의 고유값을 추출하는 단계 및 상기 가상코드검증수단이 상기 추출된 고유값과 상기 가상코드검증수단에 저장된 고유값을 비교하여 상기 가상코드의 유효성을 검증하는 단계를 포함할 수 있다.
또한 본 발명은 하드웨어인 컴퓨터와 결합되어, 상술한 방법을 실행시키기 위하여 매체에 저장된, 가상코드를 이용한 거래 프로그램을 제공한다.
또한, 거래를 위한 가상코드생성장치를 제공한다. 구체적으로, 본 발명은 상기 가상코드생성장치에 저장된 복수의 UID(User Identification) 중 사용자의 구매요청에 대응하는 제어명령 정보에 매칭되어 저장된 UID를 기반으로 하나 이상의 세부코드를 생성하는 세부코드생성부, 가상코드생성함수를 이용하여 상기 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 가상코드생성부 및 상기 가상코드를 가상코드수신장치 또는 가상코드검증장치로 전송하는 가상코드제공부를 포함하고, 상기 가상코드생성장치는 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는 거래를 위한 가상코드생성장치를 제공한다.
일 실시 예에 있어서, 상기 가상코드생성장치는 상기 가상코드검증장치와 동일한 주기로, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 할 수 있다.
또한, 거래를 위한 가상코드검증장치를 제공한다. 구체적으로, 본 발명은 가상코드를 수신하는 가상코드수신부, 상기 가상코드에서 세부코드를 추출하는 세부코드추출부, 상기 세부코드를 기반으로 기반으로 UID(User Identification)의 저장위치를 탐색하는 저장위치탐색부, 상기 탐색된 UID에 매칭되어 저장된 제어명령 정보를 추출하는 제어명령정보추출부, 상기 가상코드를 검증하는 가상코드검증부 및 상기 추출된 제어명령 정보를 기반으로 제어를 수행하는 제어부를 포함하고, 상기 가상코드검증장치는 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는 거래를 위한 가상코드검증장치를 제공한다.
일 실시 예에 있어서, 상기 가상코드검증장치는 상기 가상코드생성장치와 동일한 주기로, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 할 수 있다.
일 실시 예에 있어서, 상기 세부코드추출부는 상기 가상코드에서 주기 정보를 추출하고, 상기 가상코드검증부는 상기 추출된 주기 정보와 상기 가상코드검증수단에 저장된 주기 정보를 비교하여 상기 가상코드의 유효성을 검증할 수 있다.
상기와 같은 본 발명에 따르면, 아래와 같은 다양한 효과들을 가진다.
첫째, 가상코드를 사용할 수 있는 시간을 제한함으로써, 가상코드가 유출되더라도 타인이 사용할 가능성을 낮출 수 있다.
둘째, 가상코드의 생성규칙이 주기적으로 변경되기 때문에, 가상코드의 생성규칙이 일부 유출되더라도, 가상코드를 위조할 수 없도록 할 수 있다.
셋째, 단위카운트마다 가상코드가 신규로 생성되어 중복되는 가상코드가 정해진 전 주기 내에 등장하지 않거나 가상코드검증장치에서 사용자 정보를 추출할 수 있는 가상코드가 생성되는 순서를 랜덤하게 함에 따라, 가상코드 유출 시에도 사용자 정보가 유출되지 않는 효과를 제공한다.
넷째, 가상코드를 생성하는 가상코드생성장치에는 가상코드생성함수가 저장되고, 가상코드를 이용하여 UID를 추출하고 가상코드가 정상적인 코드인지 검증하는 가상코드검증장치에는 가상코드검증을 위한 알고리즘이 추가되면 되므로, 가상코드 생성 및 검증을 위한 알고리즘이 유출되는 것을 방지할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 가상코드를 이용한 거래 시스템의 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상코드생성장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 가상코드검증장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 가상코드를 이용한 거래 방법의 순서도이다.
도 5은 본 발명의 일 실시예에 따른 k각형의 구름이동을 통해 UID의 저장위치를 탐색하는 저장위치탐색알고리즘에 대한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 가상코드생성장치의 저장공간을 설명하기 위한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 가상코드검증장치의 저장공간을 설명하기 위한 예시도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 '문자'는 코드를 구성하는 구성요소로서, 대문자알파벳, 소문자알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.
본 명세서에서 '코드'는 문자가 나열된 문자열을 의미한다.
본 명세서에서 '가상코드'는 가상코드생성수단에서 생성되는 코드로서, 판매자가 거래 행위를 통해 발급하고, 구매자가 가상코드검증수단에서 입력하여 구매한 상품을 이용할 수 있도록 하는 코드를 의미한다. 즉, '가상코드'는 사용자 정보를 추출하고 검증할 수 있도록 단위카운트마다 임시적으로 부여된 가상의 코드를 의미한다.
본 명세서에서 '세부코드'는 가상코드에 포함되는 일부코드를 의미한다.
본 명세서에서 '단위카운트'는 특정한 시간간격으로 설정되어, 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1카운트는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.
본 명세서에서 '가상코드생성함수'는 가상코드를 생성하는데 이용되는 함수를 의미한다.
본 명세서에서 '구름이동'은 대상체가 회전하면서 병진운동을 하는 것을 의미한다. 즉, '구름이동'은 회전운동과 병진운동을 함께 수행하면서 이동하는 것으로서, 회전하는 대상체의 각 지점이 이동하는 축 상에 차례대로 접하면서 이동하는 것을 의미한다.
본 명세서에서 'UID(user identification)'는 제어명령을 식별하기 위해 제어 명령별로 중복되지 않게 부여되는 고유한 코드 형태의 값을 의미한다.
본 명세서에서 '저장위치'는 사용자에 의해 UID 등록이 요청된 시점에 해당하는 트랙 상 지점(카운트)을 의미한다.
본 명세서에서 '제어명령 정보'는 UID 저장위치에 매칭되어 저장되며, 가상코드검증장치에서 수행할 수 있는 제어를 정의하는 정보이다. 일 실시 예로, 제어명령 정보에 대응하는 제어를 수행하는 장치가 계량기인 경우, 상기 제어명령 정보는 전력, 가스, 수도 충전량일 수 있다. 계량기는 제어명령 정보가 정의하는 충전량만큼 전기, 가스, 수도 등을 사용할 수 있도록 제어한다. 다만, 제어명령 정보가 정의하는 제어의 종류는 이에 한정되지 않는다.
본 명세서에서 '매칭관계'는 복수의 UID, 복수의 제어명령 정보가 서로 매칭되어 저장된 관계를 의미한다. 이때, UID의 개수는 제어명령 정보의 개수보다 많을 수 있고, 복수의 UID 중 일부는 제어명령 정보가 매칭되지 않을 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 가상코드를 이용한 거래 시스템의 구성도이다.
도 1에 도시된 바와 같이, 거래 시스템은 가상코드생성수단(10), 가상코드수신수단(20), 가상코드검증수단(30)을 포함한다.
가상코드생성수단(10)은 가상코드를 생성하기 위한 전용프로그램이 내장 또는 설치되어 있는 장치를 의미한다. 보다 구체적으로, 가상코드생성수단(10)은 판매자 서버일 수 있다. 사용자는 판매자 서버로부터 소정 물품을 구매한다.
예를 들어, 사용자는 판매자 서버를 통해 전기, 가스 수도 등에 대한 사용 권한을 구매할 수 있다. 판매자 서버는 사용자가 구매한 분량만큼 전기, 가스, 수도 등을 사용할 수 있도록 가상코드를 발급한다.
다른 예를 들어, 사용자는 판매자 서버를 통해 데이터 사용 권한을 구매할 수 있다. 판매자 서버는 사용자가 구매한 분량만큼 데이터를 사용할 수 있도록 가상코드를 발급한다.
사용자는 판매자 서버가 발급된 가상코드를 가상코드검증수단(30)으로 전송하도록 하거나, 별도의 가상코드수신수단(20)(예를 들어, 사용자의 이동단말기)로 전송하도록 할 수 있다. 사용자는 가상코드수신수단(20)에 표시된 가상코드를 가상코드검증수단(30)에 직접 입력하거나, 가상코드수신수단(20)과 가상코드검증수단(30) 간의 무선 통신을 통해 상기 가상코드를 가상코드검증수단(30)으로 전송할 수 있다.
가상코드검증수단(30)은 가상코드를 수신하고, 상기 가상코드를 이용하여 사용자가 구매한 전기, 가스 수도 등에 대한 사용량을 추출한 후, 상기 사용량 만큼 전기, 가스, 수도 등을 이용할 수 있도록 한다. 예를 들어, 가상코드검증수단(30)은 전기 계량기, 가스 계량기, 수도 계량기 등일 수 있다. 다른 예를 들어, 가상코드검증수단(30)은 무선 통신이 가능한 이동 단말기일 수 있다.
이하, 상술한 구성들에 대하여 구체적으로 설명한다.
가상코드생성수단(10)에는 가상코드검증수단(30)이 초기 등록될 수 있다. 가상코드검증수단(30) 사용자는 가상코드검증수단(30)과 관련된 정보를 가상코드생성수단(10)으로 전송하여 등록한다. 다만, 이에 한정되지 않고, 가상코드검증수단(30)은 공장출고시에 가상코드생성수단(10)에 등록된 상태일 수 있다.
가상코드생성수단(10)은 UID를 이용하여 가상코드를 생성하는 역할을 수행한다. 여기서, UID는 가상코드생성수단(10) 및 가상코드검증수단(30)에 모두 저장된 정보일 수 있으며, 상기 UID의 저장위치에는 제어명령 정보가 매칭되어 저장될 수 있다.
한편, 가상코드생성수단(10)은 가상코드생성함수를 포함하여 UID를 이용하여 가상코드를 생성한다. 예를 들어, 가상코드생성수단(10)은 UID를 이용하여 가상코드를 생성한다.
구체적인 예로, 가상코드생성수단(10)은 가상코드검증수단(30) 등록 시에 사용자로부터 가상코드검증수단(30)의 고유값을 입력받거나, 가상코드검증수단(30)의 출고전 고유값을 가상코드생성수단(10) 내에 저장할 수 있다. 가상코드검증수단(30)의 고유값이 가상코드생성수단(10)에 등록됨에 따라, 가상코드생성수단(10)는 가상코드생성함수를 업데이트한다. 여기서, 가상코드생성수단(10) 및 가상코드검증수단(30) 각각은 동일한 가상코드생성함수를 포함하거나, 가상코드검증수단(30)은 가상코드생성수단(10)에 포함된 가상코드생성함수에 대응하는 저장위치 탐색알고리즘을 포함할 수 있다.
가상코드생성수단(10)은 등록된 가상코드검증수단(30)에 대응하는 복수의 UID 각각에 제어명령 정보를 매칭시켜 저장한다. 여기서, 제어명령 정보는 사용자가 구매한 전기, 가스 수도 등에 대한 사용 권한을 정의하는 정보일 수 있다. 예를 들어, 제어명령 정보는 전기, 가스 수도 등에 대한 사용량일 수 있다.
일 실시 예에 있어서, 복수의 UID 각각에는 서로 다른 사용량을 정의하는 제어명령 정보가 매칭되어 저장될 수 있다. 가상코드생성수단(10)은 사용자가 구매한 사용량을 정의하는 제어명령 정보에 매칭된 UID를 이용하여 가상코드를 생성한다.
가상코드생성수단(10)는 기설정된 주기로 복수의 UID 각각에 매칭된 제어명령 정보를 변경한다. 보다 구체적으로, 복수의 UID 중 일부에는 제어명령 정보가 매칭되어 저장되고, 나머지 일부에는 제어명령 정보가 매칭되어 저장되지 않을 수 있다.가상코드생성수단(10)은 일정한 주기로 UID와 제어명령 정보간의 매칭관계를 변경한다. 이에 따라, 제어명령 정보가 매칭되어 저장되지 않았던 UID에 제어명령 정보가 매칭되어 저장될 수 있으며, 제어명령 정보가 매칭되어 저장되었던 UID에 제어명령 정보가 매칭되어 저장되지 않을 수 있다.
예를 들어, 가상코드생성수단(10)은 일주일 주기로 UID와 제어명령 정보 간의 매칭관계를 변경한다. 이때, 매칭 관계 변경 전후 동일한 UID에 동일한 제어명령 정보가 매칭되지 않도록 한다.
이에 따라, 사용자가 동일한 양의 사용 권한을 구매하더라도, 사용자가 구매요청을 한 시점에 따라, 가상코드생성수단(10)은 서로 다른 UID를 이용하여 가상코드를 생성한다. 가상코드생성수단(10)이 UID를 이용하여 가상코드를 생성하는 방법에 대하여는 후술한다.
가상코드생성수단(10)은 가상코드를 가상코드수신수단(20)으로 전달할 수 있다. 사용자는 가상코드수신수단(20)으로 전달된 가상코드를 가상코드검증수단(30)에 직접입력할 수 있다.
다른 일 실시 예에 있어서, 사용자는 근거리 통신(예를 들어, NFC 통신)을 통해 가상코드수신수단(20)으로 전달된 가상코드를 가상코드검증수단으로 전송할 수 있다.
가상코드수신수단(20)에 포함된 통신부는 가상코드생성수단(10) 및 가상코드검증수단(30)과 통신하여 가상코드를 송수신하는 역할을 수행한다. 여기서, 통신부의 무선통신 방식으로는 NFC(Near Field Communication)뿐만 아니라, 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수도 있다.
구체적인 예로, 통신부는 IC 칩에 연결되는 NFC(Near Field Communication) 통신부(예를 들어, NFC안테나)일 수 있다. 예를 들어, 가상코드수신수단(20) 사용자는 가상코드검증수단(30)에 태킹함으로써, 수신된 가상코드를 가상코드검증수단(30)으로 송신할 수 있다.
다른 예를 들어, 가상코드수신수단(20)은 가상코드를 수신(예를 들어, 텍스트 메시지로 수신)하여 가상코드수신수단(20)에 포함된 디스플레이부에 수신된 가상코드를 표시한다. 가상코드수신수단(20) 사용자는 디스플레이부에 표시된 가상코드를 가상코드검증수단(30)에 입력함으로서, 가상코드를 전달할 수 있다.
다만, 가상코드수신수단(20)은 반드시 필요한 것은 아니다. 일 실시 예로, 가상코드생성수단(10)은 발급된 가상코드를 인쇄할 수 있는 인쇄 수단을 구비할 수 있다. 사용자는 인쇄된 가상코드를 이용하여 가상코드검증수단(30)에 가상코드를 입력할 수 있다. 이때, 가상코드검증수단(30)은 별도의 입력수단을 구비할 수 있다. 가상코드검증수단(30)은 전기, 가스, 수도 등의 사용을 제어하는 기기로서, 가상코드생성수단(10), 가상코드수신수단(20) 또는 사용자로부터 가상코드를 전달받아, 전기, 가스, 수도, 데이터 등의 사용 권한을 부여한다. 사용자는 가상코드를 이용하여 전기, 가스, 수도, 데이터 등에 대한 사용 권한을 부여받을 수 있다.
가상코드검증수단(30)은 가상코드를 수신하고, 가상코드로부터 UID의 저장위치를 탐색한다. 이후, 가상코드검증수단(30)은 탐색된 UID의 저장위치에 매칭되어 저장된 제어명령 정보를 추출하고, 추출된 제어명령 정보에 대응하는 사용 권한을 부여한다. 가상코드검증수단(30)이 가상코드로부터 UID의 저장위치를 탐색하는 방법은 후술한다.
가상코드검증수단(30)는 UID의 저장위치를 탐색한 후, UID에 매칭되어 저장된 제어명령 정보를 추출한다. 여기서, 가상코드검증수단(30)은 기설정된 주기마다 UID에 매칭되어 저장된 제어명령 정보를 변경한다. 보다 구체적으로, 가상코드검증수단(30)에는 복수의 UID가 저장된다. 상기 복수의 UID는 가상코드생성수단(10)에 저장된 복수의 UID와 동일한 UID들이다. 복수의 UID 각각에는 서로 다른 사용량을 정의하는 제어명령 정보가 매칭되어 저장될 수 있다.
가상코드검증수단(30)은 기설정된 주기로 복수의 UID 각각에 매칭된 제어명령 정보를 변경한다. 보다 구체적으로, 복수의 UID 중 일부에는 제어명령 정보가 매칭되어 저장되고, 나머지 일부에는 제어명령 정보가 매칭되어 저장되지 않을 수 있다. 가상코드검증수단(30)은 일정한 주기로 UID와 제어명령 정보간의 매칭관계를 변경한다. 이에 따라, 제어명령 정보가 매칭되어 저장되지 않았던 UID에 제어명령 정보가 매칭되어 저장될 수 있으며, 제어명령 정보가 매칭되어 저장되었던 UID에 제어명령 정보가 매칭되어 저장되지 않을 수 있다.
상술한 바와 같이, 가상코드생성수단(10) 및 가상코드검증수단(30) 각각은 기설정된 주기로 UID와 제어명령 정보 간의 매칭관계를 변경한다. 이때, 가상코드생성수단(10) 및 가상코드검증수단(30)은 동일한 규칙에 따라 매칭관계를 변경하기 때문에, 동일한 시점에 가상코드생성수단(10)에 저장된 UID에 매칭된 제어명령 정보와 가상코드검증수단(30)에 저장된 UID에 매칭된 제어명령 정보는 서로 동일하다.
가상코드검증수단(30)은 통신부를 포함하며, 통신부는 가상코드생성수단(10), 가상코드수신수단(20) 와 통신하여 가상코드를 수신할 수 있도록 한다. 여기서, 통신부의 무선통신 방식으로는 NFC(Near Field Communication)뿐만 아니라, 블루투스(Bluetooth), BLE(Bluetooth Low Energy), 비콘(Beacon), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), UWB(Ultra Wideband), ZigBee 등이 이용될 수도 있다. 다만, 이에 한정되지 않고, 가상코드검증수단(30)은 원거리 무선 통신을 위한 통신 모듈을 구비할 수 있다. 다만, 가상코드검증수단(30)이 반드시 통신부를 포함할 필요는 없다.
도 2는 본 발명의 일 실시예에 따른 가상코드생성장치의 구성도이다.
도 2에 도시된 바와 같이, 가상코드생성장치(100)는 세부코드생성부(110), 가상코드생성부(120), 가상코드제공부(130), UID 저장부(140)를 포함한다.
가상코드생성장치(100)는, 일 실시예로, 전기, 가스, 수도를 공급하는 판매자의 서버일 수 있다. 가상코드생성장치(100)는 상술한 가상코드생성수단(10)이다.
세부코드생성부(110)는 UID를 기반으로 하나 이상의 세부코드를 생성하는 역할을 수행한다. 구체적으로, 가상코드생성장치(100)는 사용자로부터 가상코드 생성요청을 수신한다. 여기서, 가상코드 생성요청은 사용자로부터 수신된 구매요청일 수 있다.
가상코드생성장치(100)가 전기, 가스, 수도, 데이터 등을 공급하는 판매자의 서버인 경우, 가상코드생성장치(100)는 사용자로부터 전기, 가스, 수도, 데이터 등의 사용 권한 구매요청을 수신하고 가상코드를 생성한다.
일 실시 예에 있어서, 가상코드생성장치(100)는 사용자로부터 가상코드검증장치(100)의 고유값 및 전기, 가스, 수도 사용량에 대한 구매요청을 입력받은 후 가상코드를 생성한다.
이때, 세부코드생성부(110)는 가상코드검증장치(100)의 고유값에 대응하는 복수의 UID들 중 구매요청시 입력받은 사용량에 매칭된 UID를 탐색한다.
UID 저장부(140)에는 가상코드검증장치(100)의 고유값 별로 복수의 UID가 매칭되어 저장되며, 복수의 UID 중 적어도 일부에는 제어명령 정보가 매칭되어 저장된다. 상기 UID에 매칭된 제어명령 정보들 각각은 서로 다른 사용량 또는 충전량을 정의한다. 세부코드생성부(110)는 UID 저장부(140)에서 사용자가 구매요청한 사용량 또는 충전량에 대응하는 제어명령 정보에 매칭되어 저장된 UID를 탐색하고, 탐색된 UID를 이용하여 세부코드를 생성한다.
가상코드생성함수는 하나 이상의 세부코드생성함수를 포함한다. 예를 들어, 가상코드가 복수의 세부코드를 포함하는 경우, 가상코드생성함수는 복수의 세부코드생성함수를 이용하여 복수의 세부코드를 생성하고, 복수의 세부코드를 결합하는 세부코드결합함수를 이용하여 가상코드를 생성한다.
일 실시예로, 가상코드생성장치(100)는 상술한 방식으로 탐색된 UID의 저장위치에 도달할 수 있는 세부코드를 생성한다.
구체적인 예로, 가상코드생성장치(100)에 저장된 UID의 개수는 특정 주기의 시작 시점부터 종료시점까지 포함된 단위카운트의 개수와 동일할 수 있다. 예를 들어, 특정 주기의 길이가 일주일이고, 단위카운트가 '1분'인 경우 가상코드생성장치(100)에 저장된 UID의 개수는 10080분(168시간)일 수 있다.
복수의 UID는 각 카운트에 매칭된다. 예를 들어, 특정 주기의 길이가 일주일이고, 단위 카운트가 '1분'인 경우, 10080개 UID가 각 분에 매칭된다. 가상코드생성장치(100)는 특정 시점에 매칭된 UID를 탐색할 수 있다.
세부코드생성함수는 사용자의 가상코드 생성요청(또는 구매요청)을 수신한 시점에 해당하는 카운트에 매칭된 UID(이하, 구매시점 UID)를 이용하여 세부코드를 생성하고, 상기 구매시점 UID를 기준으로 사용자의 구매요청에 대응하는 제어명령 정보가 매칭되어 저장된 UID(이하, 제어명령 UID)로의 탐색경로를 이용하여 세부코드를 생성할 수 있다.
일 실시예로, 세부코드생성부(110)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성할 수 있다. 이때, 가상코드생성장치(100)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터는 포함하지 않을 수 있다.
가상코드생성부(120)는 가상코드생성함수를 이용하여 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 역할을 수행한다. 일 실시예로, 가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성된다. 가상코드생성함수는 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함한다. 즉, 가상코드생성부(120)는 하나 이상의 세부코드를 가상코드생성함수에 포함된 세부코드결합함수를 이용하여 조합할 수 있다.
복수의 세부코드를 결합하여 하나의 가상코드를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 세부코드결합함수의 일 예로, 가상코드생성부(120)는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 함수일 수 있다. 가상코드에 포함되는 세부코드가 늘어남에 따라 세부코드결합함수도 다양하게 생성될 수 있다.
또한, 일 실시예로, 가상코드가 제1코드 및 제2코드의 특정한 규칙에 따른 조합으로 생성되는 경우, 제1코드와 제2코드는 사용자 정보가 저장된 저장위치탐색알고리즘 내의 제어명령 UID의 저장위치를 탐색하기 위한 각각의 역할을 수행할 수 있다. 예를 들어, 제1코드는 구매시점 UID를 이용하여 저장위치탐색의 시작지점을 설정하고, 제2코드는 특정한 탐색방식에 따라 상기 시작지점으로부터 제어명령 UID의 저장위치로의 탐색경로를 설정한다. 즉, 가상코드생성장치(100)에서 단위카운트마다 정상적으로 생성된 가상코드가 제공되면, 가상코드검증장치(100)는 제1코드에 대응하는 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 이동한 지점을 사용자 정보가 저장된 지점(즉, 제어명령 UID 저장위치)으로 판단한다. 가상코드를 구성하는 제1코드와 제2코드를 기반으로 UID의 저장위치를 탐색하는 구체적인 방식은 후술한다.
세부코드생성부(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코드로 생성할 수 있다.
여기서, 세부코드생성함수가 구동되는 초기시점은 기설정된 주기마다 달라질 수 있다. 세부코드생성부(110)는 기설정된 주기로 세부코드생성함수의 구동 시점을 갱신하고, 다음 세부코드생성함수의 갱신시점까지 동일한 코드가 중복 생성되지 않도록 한다. 예를 들어, 세부코드생성함수가 단위카운트를 1분으로 설정하고 사용주기를 일주일로 설정하는 경우, 일주일(10080분)간 10080개의 서로 다른 세부코드가 생성될 수 있다.
구체적으로, 알파벳 대문자와 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회씩 적용할 수 있는 사용주기를 경과한 후 가상코드생성함수 조절 또는 갱신을 통해 이전 사용주기와 겹치는 가상코드가 생성되지 않는 신규 사용주기의 가상코드생성함수를 적용할 수 있다.
또한, 가상코드의 중복생성을 방지하는 구체적인 또 다른 일 실시예로, 전체주기에서 사용자에 무관하게 중복된 가상코드가 발생되지 않도록, 제1코드는 제1함수가 구동되는 초기시점(특정 주기 시작시점)으로부터 각 카운트마다 매칭된 코드 중에서 가상코드 생성요청이 된 시점(또는 카운트)에 대응되는 코드값으로 설정하고, 제2코드는 제어명령 UID로의 탐색경로를 지정하는 코드값으로 설정하고, 가상코드를 상기 제1코드와 제2코드가 결합된 코드값으로 이용할 수 있다. 이때, 세부코드생성함수는 단위 카운트마다 1개의 가상코드만을 생성한다. 이 때문에, 제1코드는 각 카운트마다 상이한 코드값이 되어서, 제1코드와 제2코드가 결합된 가상코드는 특정 주기 동안 모든 시점에 상이한 코드값이 출력되게 된다.
이 경우, 한 명의 사용자가 동시에 여러 번의 가상코드 생성요청(구매 요청)을 하는 경우, 가상코드생성장치는 가상코드 생성요청이 된 시점(또는 카운트)에 대응되는 UID를 이용하여 하나의 가상코드를 생성하고, 가상코드 생성요청이 된 카운트의 다음 카운트에 대응되는 UID를 이용하여 다른 가상코드를 생성한다.
구체적인 예로, 사용자가 동시에 세 번의 구매요청을 하는 경우, 가상코드생성장치는 구매요청 시점 카운트(제1카운트)에 대응하는 UID를 시작시점으로 하는 제1코드, 첫 번째 구매요청에 대응하는 제어명령 UID로의 탐색 경로를 설정하는 제2코드를 이용하여 가상코드를 형성하고, 제1카운트의 다음 카운트(제2카운트)에 대응하는 UID를 시작시점으로 하는 제1코드, 두 번째 구매요청에 대응하는 제어명령 UID로의 탐색 경로를 설정하는 제2코드를 이용하여 가상코드를 형성하고, 제2카운트의 다음 카운트(제3카운트)에 대응하는 UID를 시작시점으로 하는 제1코드, 세 번째 구매요청에 대응하는 제어명령 UID로의 탐색 경로를 설정하는 제2코드를 이용하여 가상코드를 형성한다.
이를 통해, 본 발명은 사용자가 복수의 가상코드 생성요청을 동시에 하는 경우에도 중복 코드가 생성되지 않도록 한다.
또한, 다른 일 실시예로, 상기 가상코드생성함수(또는 세부코드생성함수)는, M개의 문자를 오름차순으로 나열하는 다수의 나열규칙 중 어느 하나가 적용된다. 즉, 가상코드생성장치(100)는 가상코드생성함수 내에 포함되는 세부코드생성함수에 M개 문자를 오름차순으로 나열하는 규칙을 다양하게 적용하여 할 수 있다. 예를 들어, 알파벳 대문자를 오름차순으로 나열하는 나열규칙은, 일반적인 순서인 A, B, C,…, Z 순서가 될 수 있고, A, C, B,…, Z 순서가 될 수도 있다. 가상코드생성함수에서 나열규칙이 달라짐에 따라 가상코드생성함수가 구동되는 초기시점부터 각 카운트에 차례대로 코드가 매칭되는 순서가 달라지게 된다.
또한, 다른 일 실시예로, 가상코드생성장치(100)는 기설정된 주기마다 세부코드결합함수를 변경함으로써, 매 주기마다 세부코드생성함수에서 생성된 세부코드가 다른 방식으로 결합되도록 할 수 있다.
한편, 본 발명에 따른 가상코드가 기존 사용되고 있는 토큰 시스템에 활용되는 경우, 상기 가상코드는 기존 토큰 형식으로 생성될 수 있다. 예를 들어, 가상코드는 토큰 클래스 정보, 토큰 서브 클래스 정보, 가상코드검증장치(200)의 고유값, 주기 정보, 상기 제1 및 제2코드 중 적어도 하나를 포함할 수 있다.
한편, 가상코드는 가상코드검증장치(200)의 고유값을 포함하지 않을 수 있으며, 가상코드검증장치(200)의 고유값은 가상코드를 암호화 및 복호화하는데 활용할 수 있다.
일 실시 예로, 암호화 및 복호화를 위한 별도의 코드를 더 포함할 수 있다. 가상코드는 CRC(Cyclic Redundancy Check) 코드를 더 포함할 수 있다. 가상코드생성장치(100)는 토큰 클래스 정보, 토큰 서브 클래스 정보, 주기 정보, 상기 제1 및 제2코드를 조합한 코드를 기설정된 값으로 나누어 그 나머지 값(CRC 코드)를 부가하여 가상코드를 생성한다. 가상코드검증장치(200)는 가상코드생성장치(100)에 저장된 상기 기설정된 값과 동일한 값으로 가상코드를 나누었을 때, 나머지가 0인 경우 정상적인 코드로 판단할 수 있다.
여기서, 상기 기설정된 값은 가상코드검증장치(200)의 고유값일 수 있다. 이 경우, 가상코드는 가상코드검증장치(200)의 고유값을 포함하지 않지만, 특정 가상코드검증장치(200) 전용으로 생성된 가상코드는 특정 가상코드검증장치(200) 내에서만 정상 코드로 판정된다.
상술한 실 시예 외에도, 가상코드검증장치(200)의 고유값은 다양한 방식으로 가상코드를 암호화 및 복호화하는데 활용될 수 있다.
주기 정보는 가상코드 생성시점에 가상코드생성장치(100)에 설정된 주기 값이다. 가상코드생성장치(100)는 기설정된 주기마다 가상코드생성장치(100)에 저장된 주기 정보를 업데이트한다. 예를 들어, 기설정된 주기가 일주일인 경우, 가상코드생성장치(100)는 일주일마다 주기 정보를 업데이트한다. 여기서, 주기 정보의 기준이 되는 시점은 가상코드생성장치(100)의 구동을 시작한 최초 시점이거나, 가상코드검증장치(200)를 가상코드생성장치(100)에 등록한 시점일 수 있다. 주기 정보는 상기 기준 시점을 기준으로 계속해서 증가한다.
가상코드는 특정 주기 내에서 중복되지 않게 생성된다. 서로 다른 주기에서 생성된 가상코드는 서로 동일할 수 있으나, 가상코드검증장치(200)는 상기 주기 정보를 이용하여 가상코드의 유효성을 검증할 수 있다. 이에 대하여는 후술한다.
가상코드검증장치(200)의 고유값은 가상코드생성장치(100) 및 가상코드검증장치(200)에 모두 저장되는 값으로, 후술할 가상코드검증장치(200)는 가상코드로부터 가상코드검증장치(200)의 고유값을 추출하고, 추출된 고유값을 이용하여 가상코드를 1차적으로 검증한다.
다만, 상술한 바와 같이, 가상코드는 반드시 가상코드검증장치(200)의 고유값을 포함할 필요는 없다. 가상코드의 암호화 및 복호화에 가상코드검증장치(200)의 고유값을 활용함으로써, 특정 가상코드검증장치(200) 전용으로 생성된 코드가 특정 가상코드검증장치(200)에서만 정상 코드로 판단되도록 할 수 있다.
가상코드생성장치(100)는 기존에 사용하고 있는 토큰 형식으로 가상코드를 생성할 수 있다. 이를 통해, 본 발명은 기존에 사용되고 있는 토큰 시스템을 그대로 활용하면서, 보완성이 향상된 제어방법을 제공할 수 있게 된다.
가상코드제공부(130)는 생성된 가상코드를 가상코드수신수단(20) 또는 가상코드검증수단(30)으로 전송한다.
도 6을 참조하면, UID저장부(140)는 가상코드검증장치(200)의 고유값에 복수의 UID를 매칭시켜 저장하고, 복수의 UID 각각에는 서로 다른 제어명령 정보가 매칭되어 저장된다. UID저장부(140)는 기설정된 주기마다 UID와 제어명령 정보 간의 매칭관계를 변경한다. 도 6에는 제어명령 정보가 매칭되지 않는 UID가 도시되지 않았지만, 복수의 UID 중 일부는 제어명령 정보가 매칭되어 저장되지 않을 수 있다.
도 3은 본 발명의 일 실시예에 따른 가상코드검증장치의 구성도이다.
가상코드검증장치(200)는 전기 계량기, 가스 계량기 및 수도 계량기일 수 있다. 다만, 이에 한정되지 않고, 가상코드검증장치(200)는 사용자에게 사용 권한을 부여할 수 있는 모든 단말기일 수 있다.
도 3에 도시된 바와 같이, 가상코드검증장치(200)는 가상코드수신부(210), 세부코드추출부(220), 저장위치탐색부(230), 제어명령정보추출부(240), 가상코드검증부(250), 제어부(260), 제어명령저장부(270)를 포함한다.
여기서, 가상코드검증장치(200)는 가상코드를 기반으로 UID(제어명령 UID)를 추출하고, 가상코드를 기반으로 수신된 가상코드가 정상적인 코드인지를 판단하고 제어명령을 수행한다.
가상코드수신부(210)는 가상코드를 수신하는 역할을 한다. 가상코드수신부(210)는 통신모듈을 포함하거나, 사용자가 가상코드를 직접입력할 수 있는 입력모듈을 포함할 수 있다.
세부코드추출부(220)는 가상코드에 포함된 하나 이상의 세부코드를 추출하는 역할을 수행한다.
일 실시예로, 세부코드추출부(220)는 가상코드로부터 가상코드검증장치(200)의 고유값, 주기 정보, 제1 및 제2코드를 추출할 수 있다.
다른 일 실시 예로, 세부코드추출부(220)는 가상코드검증장치 내에 저장된 가상코드검증장치(200)의 고유값을 이용하여 가상코드를 복호화한 후, 복호화된 코드에서 주기 정보, 제1 및 제2코드를 추출할 수 있다. 이 경우, 가상코드생성장치(100)와 가상코드검증장치(200)는 동일한 암호화알고리즘을 포함해야한다.
일 실시예로, 세부코드추출부(220)는 가상코드생성함수에 포함된 세부코드결합함수를 포함한다. 따라서, 가상코드가 복수의 세부코드를 포함하는 경우, 세부코드추출부(220)는 세부코드결합함수를 적용하여 가상코드에서 복수의 세부코드를 추출할 수 있다. 예를 들어, 가상코드생성장치(100)에서 세 개의 세부코드(주기 정보, 제1코드 및 제2코드)가 결합된 가상코드를 생성하는 경우, 세부코드추출부(220)는 가상코드의 문자배열에서 세부코드결합함수를 적용하여 주기 정보, 제1코드 및 제2코드를 분리해낼 수 있다.
일 실시 예로, 세부코드결합함수는 기설정된 주기마다 변경될 수 있다. 이때, 가상코드생성장치(100) 및 가상코드검증장치(200) 각각에 포함된 세부코드결합함수는 동일해야 한다. 이를 위해, 가상코드생성장치(100) 및 가상코드검증장치(200) 각각에 포함된 세부코드결합함수는 같은 주기로, 같은 규칙에 따라 변경된다.
저장위치탐색부(230)는 추출된 하나 이상의 세부코드를 기반으로 저장위치탐색알고리즘 내에 UID(제어명령 UID)의 저장위치를 탐색하는 역할을 수행한다. 여기서, 저장위치탐색알고리즘은 가상코드생성장치(100)에서 가상코드를 생성할 때 이용했던 가상코드생성함수에 매칭되는 것이다. 저장위치탐색부(230)에서 각각의 세부코드를 기반으로 UID의 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 저장위치탐색부(230)가 복수의 세부코드를 기반으로 저장위치를 탐색하기 위해 세부코드 간에는 상관관계를 포함할 수 있다.
가상코드가 제1코드 및 제2코드를 포함하는 경우, 세부코드 간에 상관관계를 가지는 일 실시예로, 저장위치탐색부(230)는 제1코드에 대응하는 탐색시작지점(구매시점 UID)을 결정하고, 상기 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 이동한 지점을 UID(제어명령 UID)의 저장위치로 찾을 수 있다. 즉, 상기 세부코드는, 저장위치탐색의 시작지점을 설정하는 제1코드 및 특정한 탐색방식에 따라, 상기 시작지점(구매시점 UID)으로부터 상기 UID(제어명령 UID)의 저장위치로의 탐색경로를 설정하는 제2코드를 포함할 수 있다.
또한, 다른 일 실시예로, 저장위치탐색부(230)는 상관관계를 가지는 복수의 세부코드를 이용하여 UID의 저장위치를 찾기 위해, 저장위치탐색알고리즘을 포함할 수 있다. 저장위치탐색알고리즘은 가상코드에 포함되는 각각의 세부코드 적용 시에 저장위치 탐색이 가능하도록 하는 알고리즘으로서, 가상코드생성장치(100)에서 가상코드를 생성할 때 이용했던 가상코드생성함수에 매칭되는 것이다.
예를 들어, 가상코드가 저장위치의 탐색시작지점을 결정하는 제1코드와 탐색시작지점으로부터의 저장위치 방향을 제시하는 제2코드를 포함하는 경우, 저장위치탐색알고리즘은 제1코드에 대응되는 지점에서 제2코드에 대응되는 방향을 지시할 때, 해당 위치에 UID(제어명령 UID)의 등록 시점이 매칭되는 저장위치가 배치되도록 조절하는 알고리즘이다.
제어명령정보추출부(240)는 저장위치탐색부(230)에 의해 탐색된 UID(제어명령 UID)의 저장위치에 매칭되어 저장된 제어명령 정보를 추출한다. 즉, 가상코드검증장치(200)는 저장위치탐색알고리즘 내의 각각의 UID의 저장위치에 매칭되어 저장된 제어명령 정보를 추출할 수 있다. 제어부(360)는 상기 추출된 제어명령 정보에 대응하는 제어를 수행한다.
저장위치탐색알고리즘을 이용함에 따라, 가상코드검증장치(200)는 가상코드에 포함된 제1코드와 제2코드가 변경되어도 UID 저장위치를 탐색할 수 있다. 저장위치탐색알고리즘은 다양한 방식이 적용될 수 있으며, 구체적인 예시는 후술한다. 다만, 저장위치탐색알고리즘은 후술되는 예시에 한정되지 않는다.
예를 들어, 도 5를 참조하면, 저장위치탐색알고리즘이 제1코드에 해당하는 MN개의 코드가 나열된 트랙을 따라 구름이동하는 k각형(k는 MN)이며, k각형의 꼭지점이 제1코드 트랙 상에 코드가 배치되는 지점에 대응되면서 이동하는 경우, k각형의 각 꼭지점이 UID의 저장위치와 매칭되고, 제1코드 트랙(즉, 제1트랙)과 k각형이 대응되는 지점이 제1코드에 대응하는 저장위치 탐색시작지점이 될 수 있다. 이때, 저장위치탐색부(230)는 세부코드추출부(220)에서 추출된 제1코드에 대응되는 지점에 k각형의 꼭지점이 접하도록 k각형을 구름이동를 적용할 수 있다. 이를 통해, 저장위치탐색부(230)는 k각형이 접한 제1트랙 상의 위치에서 제2코드에 상응하는 각도(예를 들어, k각형의 꼭지점을 향하도록 180도를 MN개로 분할한 특정한 각도)로 지시함에 따라, 가상코드에 대응하는 UID(제어명령 UID)가 저장된 저장위치인 k각형의 꼭지점을 탐색할 수 있다.
구체적으로, 도 5에서와 같이, 가상코드검증장치(200)는 제1코드에 대응하는 지점으로 k각형을 구름이동(즉, k각형의 각 꼭지점과 트랙 상의 각 지점이 차례대로 접하도록 하면서 이동)시킨다. 그 후, 가상코드검증장치(200)는 제2코드에 상응하는 각도 방향을 지시하여 저장위치에 상응하는 꼭지점을 탐색한다.
저장위치탐색부(230)에 의해 저장위치 탐색알고리즘 내에서 가상코드 내의 제1코드 및 제2코드를 이용하여 UID의 저장위치가 탐색된 후에, 제어명령정보추출부(240)에 의해 해당 위치에 매칭되어 저장된 제어명령 정보를 추출한다.
이외의 다양한 저장위치탐색알고리즘에 대한 상세한 설명은 후술한다.
가상코드검증부(250)는 가상코드로부터 추출한 가상코드검증장치(200)의 고유값 및 주기 정보를 이용하여 가상코드를 검증하는 역할을 수행한다.
일 실시예로, 가상코드검증부(250)는 가상코드로부터 추출한 가상코드검증장치(200)의 고유값과 가상코드검증장치(200)에 저장된 고유값을 비교하여 가상코드를 1차적으로 검증한다. 상기 두 고유값이 일치하지 않는 경우, 가상코드검증부(250)는 수신된 가상코드가 유효하지 않은 것으로 판단한다.
다른 일 실시 예로, 가상코드생성장치(100)와 가상코드검증장치(200)는 동일한 암호화알고리즘을 포함하며, 가상코드생성장치(100)는 가상코드검증장치(200) 고유값을 이용하여 가상코드를 암호화하고, 가상코드검증장치(200)는 장치내에 저장된 고유값을 이용하여 가상코드를 복호화한다. 가상코드검증장치(200)의 고유값이 없을 경우, 가상코드를 복호화할 수 없기 때문에, 가상코드를 사용할 수 없게 된다.
가상코드검증장치(200)는 기설정된 주기마다 가상코드검증장치(200)에 저장된 주기 정보를 업데이트한다. 가상코드생성장치(100) 및 가상코드검증장치(200) 각각에 저장된 주기 정보는 동일한 시점에 동일한 값으로 업데이트된다.
가상코드검증부(250)는 가상코드로부터 추출된 주기 정보 또는 가상코드검증장치(200)에 저장된 주기 정보를 기반으로 특정 주기가 시작되는 시점을 판단할 수 있다.
구체적인 실시예로, 가상코드생성장치(100)가 가상보안코드를 외부로 출력하지 않고 제1코드 및 제2코드에 반영하여 생성한다. 가상코드생성수단은 가상코드 생성요청(구매요청) 시점(또는 카운트)에 대응하는 UID(구매시점 UID)를 기반으로 제1코드를 생성하고, 구매시점 UID를 기준으로 구매요청에 대응하는 제어명령이 매칭되어 저장된 UID(제어명령 UID)로의 탐색 경로를 포함하는 제2코드를 생성한다.
한편, 가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않는 경우, 가상코드검증부(250)는 가상코드에서 추출된 주기 정보에 대응하는 주기가 가상코드검증장치(200)에 저장된 주기 정보에 대응하는 주기의 직전 주기인지 확인한다. 예를 들어, 가상코드검증부(250)는 가상코드검증장치(200)에 저장된 주기 정보가 '4주차'인 경우, 가상코드에서 추출된 주기 정보가 '3주차'인지 확인한다.
가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않고, 가상코드에서 추출된 주기 정보에 대응하는 주기가 가상코드검증장치(200)에 저장된 주기 정보에 대응하는 주기의 직전 주기가 아닌 경우, 가상코드검증부(250)는 수신된 코드가 유효하지 않는 코드로 판단한다.
한편, 가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않고, 가상코드에서 추출된 주기 정보에 대응하는 주기가 가상코드검증장치(200)에 저장된 주기 정보에 대응하는 주기의 직전 주기인 경우, 가상코드검증부(250)는 가상코드에서 추출된 주기 정보를 기준으로 특정 주기 시작 시점을 판단하고, 상기 특정 주기 시작 시점부터 상기 특정 주기 종료 시점까지 가상보안코드를 생성한다. 이후, 생성된 가상보안코드 중 제1코드 및 제2코드에 포함된 가상보안코드와 일치하는 코드가 있는지 판단한다.
가상코드검증부(250)는 가상코드에서 추출된 제1코드 및 주기 정보를 이용하여 가상코드의 생성시점을 판단한다. 가상코드검증부(250)는 가상코드의 생성시점 및 가상코드 수신시점의 차이가 기설정된 가상코드의 유효기간을 초과한 경우, 가상코드가 유요하지 않을 것으로 판단한다. 이와 달리, 가상코드의 생성시점 및 상기 가상코드 수신시점이 차이가 기설정된 가상코드의 유효기간이내인 경우, 가상코드가 유효한 코드인 것으로 판단하고, 가상코드에서 추출된 주기 정보를 기준으로 제어명령 정보가 추출될 수 있도록 한다.
보다 구체적으로, 가상코드검증장치(200)는 가상코드생성장치(100)와 동일한 형식으로 복수의 UID를 저장하며, 복수의 UID 각각은 특정 주기 시작시점부터 특정 주기 종료 시점까지 포함된 복수의 카운트 각각에 매칭된다. UID와 카운트 간의 매칭관계는 가상코드생성장치(100)와 가상코드검증장치(200) 각각에서 동일하다. 따라서, 가상코드검증장치(200)는 제1코드에 포함된 구매시점 UID를 이용하여 특정 주기 내 구매요청 시점을 특정할 수 있다. 다만, 구매시점 UID 만으로는 특정 주기 시작시점을 기준으로한 구매요청 시점만 특정할 수 있을 뿐, 절대적인 구매요청 시점을 특정할 수는 없다.
가상코드검증장치(200)는 주기 정보를 이용하여 구매요청이 이루어진 주기를 특정할 수 있다. 가상코드검증장치(200)는 구매요청이 이루어진 주기와 특정 주기 시작 시점을 기준으로한 구매요청 시점을 기반으로 절대적인 구매요청 시점을 특정할 수 있다.
가상코드검증장치(200)는 주기 정보 및 제1코드를 기반으로 특정된 절대적인 구매요청 시점과 가상코드 수신시점을 기준으로 가상코드의 유효성을 판단할 수 있다.
일 실시예로, 가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않은 상태에서 가상코드가 유효한 것으로 판단되는 경우, 제어명령정보추출부(240)는 가상코드검증장치(200)에서 주기 정보가 업데이트되기 이전 UID 및 제어명령 정보간의 매칭관계에 따라 UID로부터 제어명령 정보를 추출한다.
보다 구체적으로, 가상코드검증장치(200)에는 복수의 UID가 저장되며, 복수의 UID 중 일부에는 제어명령 정보가 매칭되어 저장된다. UID와 제어명령 정보 간의 매칭관계는 가상코드검증장치(200)에서 주기 정보를 업데이트를 변경할때마다 변경된다. 이때, UID와 제어명령 정보 간의 매칭관계 변경 규칙은 가상코드생성장치(100)에 적용되는 규칙과 동일하므로, 동일 시점에서 가상코드생성장치(100)와 가상코드검증장치(200) 각각의 매칭관계는 동일하다.
사용자가 특정 주기 내에 가상코드생성장치(100)로부터 가상코드를 발급 받은 후, 특정 주기 내에 가상코드를 가상코드검증장치(200)에 입력한 경우, 가상코드생성장치(100)와 가상코드검증장치(200) 내의 UID 및 제어명령 정보 매칭관계는 동일하기 때문에, 가상코드생성장치(100)에서 가상코드 생성시 기초가 된 제어명령 정보를 가상코드검증장치(200)에서 추출할 수 있게 된다.
하지만, 사용자가 특정 주기 내에 가상코드생성장치(100)로부터 가상코드를 발급받은 후, 특정 주기 종료 시점 이후 가상코드를 가상코드검증장치(200)에 입력한 경우, 가상코드생성장치(100)와 가상코드검증장치(200) 내의 UID 및 제어명령 정보 매칭관계가 상이해진다. 사용자가 특정 주기 종료 시점에 임박하여 가상코드를 발급받은 경우, 특정 주기가 종료되더라도 가상코드의 유효기간이 남아있는 상태일 수 있다. 본 발명은 이러한 경우에도 가상코드가 가상코드검증장치(200)에서 유효한 코드로 검증 및 활용될 수 있도록 한다.이를 위해, 본 발명은 상술한 바와 같이, 가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않는 경우에도 가상코드를 추가적으로 검증함으로써 가상코드가 유효한 코드로 판단될 수 있도록 한다.
또한, 상술한 경우에도 가상코드가 활용될 수 있도록, 제어명령정보저장부(370)는 특정 주기가 종료되어 UID 및 제어명령 정보의 매칭관계를 변경하더라도, 직전 주기의 매칭관계를 삭제하지 않고 저장(도 7참조)한다. 즉, 가상코드검증장치(200)는 현재 주기에 대응하는 UID 및 제어명령 정보 매칭관계와 직전 주기에 대응하는 UID 및 제어명령 정보 매칭관계를 모두 저장한다.
가상코드에서 추출된 주기 정보와 가상코드검증장치(200)에 저장된 주기 정보가 일치하지 않은 상태에서 가상코드가 유효한 것으로 판단되는 경우, 제어명령정보추출부(240)는 직전 주기에 대응하는 UID 및 제어명령 정보 매칭관계를 이용하여 제어명령 정보를 추출한다.
제어부(260)는 가상코드검증부(250)에 의해 가상코드의 검증이 완료되면 제어명령추출부(240)에 의해 추출된 제어명령 정보에 대응하는 제어를 수행한다.
일 실시 예에 있어서, 가상코드검증장치(200)가 전기, 가스, 수도 등의 계량기인 경우, 가상코드검증장치(200)는 사용자가 추출된 제어명령 정보에 대응하는 사용량만큼 전기, 가스, 수도 등을 사용할 수 있도록 한다.
도 4는 본 발명의 일 실시예에 따른 가상코드를 이용한 제어방법의 순서도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 가상코드를 이용한 제어방법은, 가상코드검증장치가 가상코드를 수신하는 단계(S100; 가상코드수신단계), 상기 가상코드검증장치가 상기 가상코드를 기반으로 UID를 탐색하는 단계(S200; UID탐색단계), 가상코드검증장치가 탐색된 상기 UID 저장위치에 매칭되어 저장된 제어명령 정보를 추출하는 단계(S300), 가상코드검증장치가 가상코드를 검증하는 단계(S400) 및 가상코드검증장치가 상기 제어명령 정보에 기반하여 제어를 수행하는 단계(S500)를 포함한다. 이하, 각 단계에 대한 상세한 설명을 기재한다. 다만, 가상코드생성장치(100)(즉, 판매자 서버) 및 가상코드검증장치(200)(가상코드검증수단(20))에 대한 설명 과정에서 상술된 내용에 대한 구체적인 개시는 생략한다.
단계 S100에서, 가상코드검증장치(200)는 가상코드를 수신한다. 여기서, 가상코드는 UID를 기반으로 가상코드생성용 프로그램에 포함된 가상코드생성함수에 의해 생성되는 것이다.
일 실시예에 따라, 가상코드는 가상코드생성장치(100) 내에 포함된 UID를 기반으로 하여 생성될 수 있다.
가상코드생성장치(100)는 가상코드생성함수를 이용하여 UID를 기반으로 가상코드를 생성하고, 생성된 가상코드를 가상코드검증창지(200)에 제공하게 된다.
일 실시예로, 가상코드생성장치(100)는 기저장된 복수의 UID 중 사용자의 구매요청에 대응하는 UID를 탐색한 후, 탐색된 UID를 세부코드생성함수의 시드데이터로 이용하여 각각의 세부코드를 생성할 수 있다.
각각의 세부코드생성함수를 이용하여 복수의 세부코드를 생성하면, 가상코드생성장치(100)은 가상코드생성함수에 포함되어 있는 세부코드결합함수를 이용하여 복수의 세부코드가 결합된 가상코드를 생성할 수 있다. 예를 들어, 가상코드생성장치(100)은 전용프로그램(11)을 이용하여, UID를 시드데이터로 이용하여 가상코드를 생성하게 된다.
이외에도, 가상코드는 다양한 방식으로 생성될 수 있다. 즉, 가상코드는 다양한 가상코드생성함수에 의해 생성될 수 있다. 다양한 방식으로 가상코드를 생성하는 것에 대한 상세한 설명은 도 5를 참조하여 상술한 설명과 중복되므로 구체적인 개시는 생략한다.
이후, 단계 S200에서, 가상코드검증장치(200)가 가상코드를 기반으로 저장위치탐색알고리즘 내에 UID의 저장위치를 탐색한다. 여기서, 저장위치탐색알고리즘은 가상코드생성장치(100)(즉, 판매자 서버)에 포함된 가상코드생성함수에 매칭되는 것으로서, 가상코드 내의 적어도 하나의 세부코드를 기반으로 UID의 저장위치를 탐색할 수 있게 한다.
일 실시 예에 있어서, 각각의 UID에는 제어명령 정보가 매칭되어 저장될 수 있다. 복수의 UID와 제어명령 정보 간의 매칭관계는 기설정된 주기마다 변경된다.
일 실시예에 따라, 가상코드가 제1코드와 제2코드를 포함하는 경우, 가상코드검증장치(200)은 제1코드와 제2코드를 이용하여 저장위치탐색알고리즘 내에서 UID 저장위치를 탐색하게 된다. 예를 들어, 제1코드는 저장위치탐색알고리즘 내에서 UID의 저장위치탐색의 시작지점을 설정하는 코드이고, 제2코드는 특정한 탐색방식에 따라 시작지점으로부터 UID 저장위치로의 탐색경로를 설정하는 코드일 수 있다.
도 5에 도시된 바와 같이, 가상코드검증장치(200)는 제1코드에 대응하는 위치를 시작지점으로 설정하고, 제2코드에 적용된 탐색방식에 따라 제2코드를 기반으로 k각형의 배치상태에서의 UID 저장위치에 매칭된 지점(즉, k각형의 특정한 꼭지점)을 탐색한다. 저장위치는 k각형의 각각의 꼭지점에 매칭된다. 제1코드 트랙(즉, 제1트랙)과 k각형이 대응되는 지점이 제1코드에 대응하는 저장위치 탐색시작지점이 된다. 가상코드검증장치(200)는 탐색시작지점에서 제2코드를 기반으로 UID 저장위치의 매칭지점을 탐색한다.
제2코드를 기반으로 k각형에서 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 일 예로, 가상코드검증장치(200)는 k각형이 접한 제1트랙 상의 위치에서 제2코드에 상응하는 각도(예를 들어, k각형의 꼭지점을 향하도록 180도를 MN개로 분할한 특정한 각도)로 지시함에 따라, 가상코드를 기반으로 UID가 저장된 저장위치인 k각형의 꼭지점을 탐색할 수 있다.
또한, 다른 예로, k각형이 제1트랙 상의 제1코드에 대응하는 지점에 접한 상태에서, 가상코드검증장치(200)는 k각형의 중심과 제1트랙 상의 접점을 기준으로, 전체 중심각(즉, 360도)을 MN개로 분할하고, 각각의 각도를 MN개의 제2코드에 매칭한다. 이때, k각형의 중심과 제1트랙 상의 접점을 이은 선으로부터 특정개수의 단위각도(즉, 360도/MN)를 이동한 선의 방향은 k각형의 특정한 꼭지점이 된다. 따라서, 특정한 각도에 대응하는 제2코드가 수신되면, 가상코드검증장치(200)는 해당 각도 방향에 위치한 꼭지점을 탐색할 수 있다.
또한, 다른 예로, 제2코드의 특정 자리를 각도산출 방향을 결정하는 것으로 사용할 수 있다. 즉, N개(N은 자연수)의 문자를 이용하여 제2코드를 생성하는 경우, 1개의 자리(Digit)로 각도 측정방향을 결정할 수 있다. 예를 들어, 가상코드검증장치(200)는 k각형의 중심과 제1트랙 상의 접점을 기준으로, 전체 중심각(즉, 360도)을 분할하여 각각의 각도에 제2코드를 매칭하는 경우, k각형의 중심과 제1트랙 상의 접점을 이은 선으로부터 좌측 방향으로 측정되는 각도인지 우측 방향으로 측정되는 각도인지를 1개의 자리(Digit)의 값으로 결정할 수 있다.
일 예로, 저장위치탐색알고리즘은, k각형 상의 각 꼭지점에 각도 측정방향에 따라 다른 2개의 제2코드가 하나의 꼭지점에 배정할 수 있다. 즉, 하나의 꼭지점에 내각으로 도달 시와 외각으로 도달 시에 다른 제2코드와 매칭되고, 다른 UID의 저장위치가 연결될 수 있다. 다른 일 예로, 저장위치탐색알고리즘은, N개(N은 자연수)의 문자를 이용하여 제2코드를 생성하는 경우에 N-1개로 전체각도(예를 들어, 중심각을 기준으로 분할하는 경우 360도)의 반에 대해 매칭하고 1개 자리를 이용하여 각 꼭지점에 도달하기 위한 각도 적용방향을 결정할 수 있다.
제2코드를 기반으로 k각형에서 저장위치를 탐색하는 방식은 이에 한정되지 아니하고, 제2코드에 상응하는 k각형 상의 지점과 제1트랙 상의 접점 사이를 특정한 비율로 나누는 지점을 저장위치로 탐색하는 방식 등의 다양한 방식이 적용될 수 있다.
이후, 단계 S300에서, 가상코드검증장치(200)는 탐색된 상기 UID 저장위치에 매칭되어 저장된 제어명령 정보를 추출한다.
구체적으로, 가상코드검증장치(200)는 탐색된 UID의 저장위치에 매칭되어 저장된 제어명령 정보를 추출한다. 즉, 가상코드검증장치(200)는 저장위치탐색알고리즘 내의 각각의 UID 저장위치에 제어명령 정보를 저장하고 있으므로, 가상코드검증장치(200)는 저장위치탐색알고리즘 내에서 특정 UID의 저장위치에 매칭되어 저장된 제어명령 정보를 추출할 수 있다.
이후, 단계 S400에서, 가상코드검증장치(200)가 상기 가상코드가 수신된 시점을 기반으로 가상코드를 검증한다. 다만, S400단계는 반드시 S300단계 이후에 수행될 필요는 없으며, 가상코드에서 가상코드검증장치(200) 고유값, 주기 정보, 제1 및 제2코드를 추출한 후 수행하여도 무방하다.
단계 S500에서, 가상코드검증장치(200)는 가상코드가 정상적인 코드인 것으로 판단되면, UID 저장위치에 매칭되어 저장된 제어명령 정보를 기반으로 제어를 수행한다.
이하, 가상코드검증장치가 전기 계량기인 경우 가상코드를 이용하여 전력량을 충전하는 실시 예에 대하여 구체적으로 설명한다.
사용자는 가상코드생성장치로부터 일정량의 전기 사용 권한을 구매하여 가상코드를 발급받는다. 전기 계량기는 전술한 다양한 방식으로 가상코드를 수신할 수 있다.
전기 계량기는 계량기 내에 저장된 계량기 고유값을 이용하여 암호화된 가상코드를 복호화한다. 이때, 가상코드생성장치가 가상코드를 암호화할 때 사용된 알고리즘과 계량기가 가상코드를 복호화하는 알고리즘은 동일한 알고리즘이다.
일 실시 예에 있어서, 가상코드의 암호와 및 복호화를 위해 가상코드는 전술한 CRC 코드를 포함할 수 있다.
가상코드는 계량기의 고유값 없이는 복호화할 수 없기 때문에, 특정 계량기 전용으로 생성된 코드는 특정 계량기에서만 복호화할 수 있다.
가상코드의 복호화과정을 통해 수신된 가상코드가 해당 계량기 전용으로 생성된 코드인 것으로 확인되면, 계량기는 제어명령 UID를 탐색한다. 이때, 전술한 탐색 방식들이 이용될 수 있다.
또한, 계량기는 가상코드에서 추출된 주기 정보 및 제1코드를 이용하여 가상코드가 생성된 절대적인 시점을 산출하고, 산출된 가상코드 생성시점과 가상코드 수신시점을 이용하여 수신된 가상코드가 유효기간 내 수신된 가상코드인지 판단한다.
수신된 가상코드가 유효기간 내 수신된 가상코드인 것으로 판단되며, 계량기는 제어명령 UID에 매칭되어 저장된 제어명령 정보에 따라 전력 충전량을 적용한다. 이후, 계량기는 충전된 전력량에 근거하여 구동한다.
한편, 수신된 가상코드가 특정 주기 종료시점 이후 수신되었으나 유효기간 내 수신된 가상코드인 경우, 계량기는 직전 주기에 대응하는 UID 및 제어명령 정보 간의 매칭관계를 활용하여 제어명령 정보를 추출하고, 추출된 제어명령 정보에 따라 전력 충전량을 적용한다.
이를 통해, 본 발명은 유효기간이 남아있는 가상코드가 계량기의 주기 변경 시점 이후에 계량기에 입력되더라도, 해당 가상코드를 이용하여 전력량을 충전할 수 있도록 한다.
이상에서 전술한 본 발명의 일 실시예에 따른 가상코드를 이용한 거래 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.
상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.
상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
10 : 가상코드생성수단
20: 가상코드수신수단
30: 가상코드검증수단
110: 세부코드생성부
120: 가상코드생성부
130: 가상코드제공부
140: UID저장부
210: 가상코드수신부
220: 세부코드추출부
230: 저장위치탐색부
240: 제어명령정보추출부
250: 가상코드검증부
260: 제어부
270: 제어명령정보저장부

Claims (15)

  1. 가상코드검증수단이 가상코드를 수신하되, 상기 가상코드는 가상코드생성수단에 포함된 가상코드생성함수에 의해 생성되는 것인, 가상코드수신단계;
    상기 가상코드검증수단이 상기 가상코드에서 UID(User Identification)의 저장위치를 탐색하는 단계;
    상기 가상코드검증수단이 탐색된 UID에 매칭되어 저장된 제어명령 정보를 탐색하는 단계; 및
    상기 추출된 제어명령 정보를 기반으로 제어명령을 수행하는 단계를 포함하고,
    상기 가상코드검증수단은 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는,
    가상코드를 이용한 거래방법.
  2. 제1항에 있어서,
    기설정된 주기마다,
    상기 가상코드검증수단이 상기 가상코드검증수단에 저장된 주기 정보를 갱신하는 단계를 포함하고,
    상기 가상코드검증수단이 상기 주기 정보를 갱신할 때, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 하는 것을 특징으로 하는,
    가상코드를 이용한 거래방법.
  3. 제2항에 있어서,
    상기 가상코드검증수단이 상기 저장된 주기 정보를 이용하여 상기 가상코드를 검증하는 단계를 더 포함하는,
    가상코드를 이용한 거래방법.
  4. 제3항에 있어서,
    상기 가상코드를 검증하는 단계는,
    상기 가상코드검증수단이 상기 가상코드에서 주기 정보를 추출하는 단계; 및
    상기 가상코드검증수단이 상기 추출된 주기 정보와 상기 가상코드검증수단에 저장된 주기 정보를 비교하여 상기 가상코드의 유효성을 검증하는 단계를 포함하는,
    가상코드를 이용한 거래방법.
  5. 제4항에 있어서,
    상기 가상코드검증수단이 상기 가상코드검증수단에 저장된 주기 정보를 갱신하는 단계는,
    상기 가상코드검증수단이 주기 정보를 제1주기에서 제2주기로 갱신하는 단계; 및
    상기 가상코드검증수단이 상기 제1주기에서 특정 UID에 매칭되어 저장된 제어명령 정보가 상기 제2주기에서 상기 특정 UID와 다른 UID에 매칭되어 되도록 제어명령 정보의 저장위치를 변경하는 단계를 포함하는,
    가상코드를 이용한 거래방법.
  6. 제5항에 있어서,
    상기 가상코드를 검증하는 단계는,
    상기 추출된 주기 정보가 상기 가상코드검증수단에 저장된 제2주기와 일치 하지 않는 경우, 상기 가상코드검증수단이 상기 추출된 주기 정보와 상기 제1주기의 일치 여부를 확인하는 단계를 포함하는,
    가상코드를 이용한 거래방법.
  7. 제6항에 있어서,
    상기 추출된 주기 정보와 상기 제1주기가 일치하는 경우, 상기 추출된 제어명령 정보를 기반으로 제어명령을 수행하는 단계는,
    상기 가상코드검증수단이 상기 제1주기에서 상기 추출된 UID에 매칭되어 저장된 제어명령 정보에 대응하는 제어명령을 수행하는 단계를 포함하는,
    가상코드를 이용한 거래방법.
  8. 제1항에 있어서,
    상기 가상코드는,
    저장위치탐색의 시작지점을 설정하는 제1코드; 및
    특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 제2코드를 포함하는,
    가상코드를 이용한 거래방법.
  9. 제1항에 있어서,
    상기 가상코드검증수단이 상기 가상코드를 검증하는 단계는,
    상기 가상코드검증수단이 상기 가상코드에서 가상코드검증수단의 고유값을 추출하는 단계; 및
    상기 가상코드검증수단이 상기 추출된 고유값과 상기 가상코드검증수단에 저장된 고유값을 비교하여 상기 가상코드의 유효성을 검증하는 단계를 포함하는,
    가상코드를 이용한 거래방법.
  10. 하드웨어인 컴퓨터와 결합되어, 제1항 내지 제9항 중 어느 한 항의 방법을 실행시키기 위하여 컴퓨터 판독 가능한 기록매체에 저장된, 가상코드를 이용한 거래 프로그램.
  11. 거래를 위한 가상코드생성장치로서,
    상기 가상코드생성장치에 저장된 복수의 UID(User Identification) 중 사용자의 구매요청에 대응하는 제어명령 정보에 매칭되어 저장된 UID를 기반으로 하나 이상의 세부코드를 생성하는 세부코드생성부;
    가상코드생성함수를 이용하여 상기 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 가상코드생성부; 및
    상기 가상코드를 가상코드수신장치 또는 가상코드검증장치로 전송하는 가상코드제공부를 포함하고,
    상기 가상코드생성장치는 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는,
    거래를 위한 가상코드생성장치.
  12. 제11항에 있어서,
    상기 가상코드생성장치는,
    상기 가상코드검증장치와 동일한 주기로, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 하는 것을 특징으로 하는,
    거래를 위한 가상코드생성장치.
  13. 거래를 위한 가상코드검증장치로서,
    가상코드를 수신하는 가상코드수신부;
    상기 가상코드에서 세부코드를 추출하는 세부코드추출부;
    상기 세부코드를 기반으로 기반으로 UID(User Identification)의 저장위치를 탐색하는 저장위치탐색부;
    상기 탐색된 UID에 매칭되어 저장된 제어명령 정보를 추출하는 제어명령정보추출부;
    상기 가상코드를 검증하는 가상코드검증부; 및
    상기 추출된 제어명령 정보를 기반으로 제어를 수행하는 제어부를 포함하고,
    상기 가상코드검증장치는 복수의 UID를 저장하고 기설정된 주기마다 상기 복수의 UID 각각에 매칭된 제어명령 정보를 변경하는 것을 특징으로 하는,
    거래를 위한 가상코드검증장치.
  14. 제13항에 있어서,
    상기 가상코드검증장치는,
    상기 가상코드생성장치와 동일한 주기로, 상기 복수의 UID 각각에 매칭되어 저장된 제어명령 정보가 서로 다른 UID에 매칭되어 저장되도록 하는 것을 특징으로 하는,
    거래를 위한 가상코드검증장치.
  15. 제13항에 있어서,
    상기 세부코드추출부는 상기 가상코드에서 주기 정보를 추출하고,
    상기 가상코드검증부는 상기 추출된 주기 정보와 상기 가상코드검증수단에 저장된 주기 정보를 비교하여 상기 가상코드의 유효성을 검증하는 것을 특징으로 하는,
    거래를 위한 가상코드검증장치.
KR1020230085141A 2019-08-30 2023-06-30 가상코드 기반의 거래 시스템, 방법 및 프로그램 KR20230110217A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR1020190107065 2019-08-30
KR20190107065 2019-08-30
KR1020200108738A KR102551861B1 (ko) 2019-08-30 2020-08-27 가상코드 기반의 거래 시스템, 방법 및 프로그램

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020200108738A Division KR102551861B1 (ko) 2019-08-30 2020-08-27 가상코드 기반의 거래 시스템, 방법 및 프로그램

Publications (1)

Publication Number Publication Date
KR20230110217A true KR20230110217A (ko) 2023-07-21

Family

ID=74685110

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230085141A KR20230110217A (ko) 2019-08-30 2023-06-30 가상코드 기반의 거래 시스템, 방법 및 프로그램

Country Status (6)

Country Link
US (1) US11989730B2 (ko)
EP (1) EP4024310A4 (ko)
JP (1) JP7482993B2 (ko)
KR (1) KR20230110217A (ko)
CN (1) CN114467108A (ko)
WO (1) WO2021040444A1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010029485A1 (en) * 2000-02-29 2001-10-11 E-Scoring, Inc. Systems and methods enabling anonymous credit transactions
US10521777B2 (en) * 2002-10-01 2019-12-31 World Award Foundation Inc, Ab Stable Group Llc, Mobile Pay, Inc Crypto digital currency (virtual payment cards) issued by central bank or other issuer for mobile and wearable devices
JP2007179214A (ja) 2005-12-27 2007-07-12 Kosugi Masami ネットワークサービス匿名課金システム
JP5751827B2 (ja) 2010-12-22 2015-07-22 株式会社日本総合研究所 カード利用支援システム、カード利用支援方法およびカード利用支援プログラム
SG10201800629WA (en) * 2013-07-24 2018-02-27 Visa Int Service Ass Systems and methods for communicating risk using token assurance data
US10515370B2 (en) * 2013-10-09 2019-12-24 The Toronto-Dominion Bank Systems and methods for providing tokenized transaction accounts
KR101621254B1 (ko) * 2014-08-27 2016-05-31 유한회사 실릭스 오티피 기반의 가상 번호 결제 방법, 컴퓨터 판독가능한 기록매체 및 시스템
JP2016053837A (ja) * 2014-09-03 2016-04-14 東芝テック株式会社 サーバ装置、情報処理装置、及びプログラム
JP6645064B2 (ja) * 2015-07-30 2020-02-12 凸版印刷株式会社 情報管理サーバ、および、決済システム
CN106529938B (zh) 2015-09-09 2021-05-25 腾讯科技(深圳)有限公司 虚拟卡发卡方法、装置、终端
WO2018048622A1 (en) * 2016-09-08 2018-03-15 Walmart Apollo, Llc Automated tote routing system and methods
SG10201703868PA (en) * 2017-05-11 2018-12-28 Mastercard International Inc Mobile payment system and process
WO2019031644A1 (ko) 2017-08-09 2019-02-14 주식회사 센스톤 가상카드번호 기반의 금융거래제공시스템, 가상카드번호생성장치, 가상카드번호검증장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
KR101978812B1 (ko) * 2017-08-09 2019-05-15 주식회사 센스톤 가상카드번호 기반의 금융거래제공시스템, 가상카드번호생성장치, 가상카드번호검증장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
CA3037743A1 (en) * 2018-03-21 2019-09-21 Federation Des Caisses Desjardins Du Quebec Method and system for assisting a purchasing transaction with mobile device
US11003760B2 (en) * 2019-01-30 2021-05-11 Rsa Security Llc User account recovery techniques using secret sharing scheme with trusted referee
KR102099973B1 (ko) 2019-02-15 2020-04-10 주식회사 센스톤 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램
US20230283455A1 (en) * 2022-02-22 2023-09-07 Journey.ai Storing encrypted data for access by a trusted device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법

Also Published As

Publication number Publication date
JP7482993B2 (ja) 2024-05-14
US11989730B2 (en) 2024-05-21
US20220180366A1 (en) 2022-06-09
WO2021040444A1 (ko) 2021-03-04
EP4024310A4 (en) 2023-09-13
EP4024310A1 (en) 2022-07-06
JP2022547438A (ja) 2022-11-14
CN114467108A (zh) 2022-05-10

Similar Documents

Publication Publication Date Title
KR102099974B1 (ko) 가상카드번호 기반의 금융거래제공시스템, 가상카드번호생성장치, 가상카드번호검증장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
KR102525471B1 (ko) 인증용가상코드를 이용한 사용자 접근 관리 방법 및 시스템
KR102551861B1 (ko) 가상코드 기반의 거래 시스템, 방법 및 프로그램
CN109389382B (zh) 虚拟卡号生成装置及验证装置、金融交易提供系统、方法及程序
JP7236369B2 (ja) 仮想コード提供システム、仮想コード生成装置、仮想コード検証装置、仮想コード提供方法及び仮想コード提供プログラム
KR102363940B1 (ko) 인증용가상코드를 이용한 사용자 인증 방법 및 시스템
EP4053773A1 (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
EP4113412A1 (en) Device and method for virtual authorization code-based process authorization
KR20230110217A (ko) 가상코드 기반의 거래 시스템, 방법 및 프로그램
US20220182376A1 (en) User authentication method using authentication virtual code and system therefor
KR102479729B1 (ko) 가상코드를 이용한 사용자 설정 정보 인증 방법, 프로그램 및 장치
KR102647041B1 (ko) 가상코드 기반의 제어명령 수행 방법 및 장치
US20230090508A1 (en) Device and method for virtual authentication code-based process authorization
US12002041B2 (en) Method and system for user authentication using virtual code for authentication

Legal Events

Date Code Title Description
A107 Divisional application of patent