KR102243532B1 - 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치 - Google Patents

칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치 Download PDF

Info

Publication number
KR102243532B1
KR102243532B1 KR1020190130742A KR20190130742A KR102243532B1 KR 102243532 B1 KR102243532 B1 KR 102243532B1 KR 1020190130742 A KR1020190130742 A KR 1020190130742A KR 20190130742 A KR20190130742 A KR 20190130742A KR 102243532 B1 KR102243532 B1 KR 102243532B1
Authority
KR
South Korea
Prior art keywords
virtual code
code
virtual
chip
value
Prior art date
Application number
KR1020190130742A
Other languages
English (en)
Other versions
KR20200097626A (ko
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 PCT/KR2020/003192 priority Critical patent/WO2020162739A1/ko
Publication of KR20200097626A publication Critical patent/KR20200097626A/ko
Application granted granted Critical
Publication of KR102243532B1 publication Critical patent/KR102243532B1/ko
Priority to US17/391,844 priority patent/US11379837B2/en
Priority to US17/830,613 priority patent/US11887118B2/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/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/351Virtual cards
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • 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/22Payment schemes or models
    • G06Q20/229Hierarchy of users of accounts
    • 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/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/326Payment applications installed on the mobile 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
    • 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/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/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
    • 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
    • G06Q20/4012Verifying personal identification numbers [PIN]

Abstract

칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치가 제공된다. 상기 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법은 가상코드검증수단이 가상코드생성수단에 의해 생성된 가상코드를 수신하는 단계, 상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는 단계 및 상기 가상코드검증수단이 상기 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는 단계를 포함하고, 상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되며, 상기 복수의 세부코드를 조합하여 생성되는 것이고, 상기 복수의 세부코드는 상기 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고, 상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것이다.

Description

칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치{METHOD, PROGRAM AND APPARATUS FOR IDENTIFYING DEVICES USING VIRTUAL CODE BASED ON UNIQUE VALUE}
본 발명은 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치에 관한 것으로, 보다 상세하게는 각 시점마다 중복되지 않게 생성되는 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치에 관한 것이다.
코드 형태데이터는 많은 영역에서 이용되고 있다. 결제 시에 이용되는 카드번호, 계좌번호뿐만 아니라 사용자 식별을 위한 IPIN번호, 주민등록번호 등이 코드형태 데이터이다.
그러나 이러한 코드데이터를 이용하는 과정에서 유출되는 사고가 많이 발생한다. 카드번호의 경우, 카드 표면에 실제카드번호가 그대로 기재되어 있어서 타인에게 시각적으로 유출되며, 마그네틱을 이용한 결제 시에 카드번호가 그대로 POS장치로 전달되면서 유출된다.
실제카드번호가 그대로 유출되지 않도록 하기 위해 가상카드번호를 이용하고자 하는 시도가 많았으나, 가상카드번호에 대응되는 실제카드번호를 탐색하기 위해 사용자를 식별하기 위한 데이터가 필요하였다. 예를 들어, OTP(One Time Password)의 경우, 시간마다 코드가 변경되어 생성되지만, 사용자에게 부여된 알고리즘 판단을 위해 로그인 절차가 필요하여 다양한 영역에 적용되기 어렵다.
한편, 드론(Drone)은 조종사 없이 무선전파의 유도에 의해서 비행 및 조종이 가능한 비행기나 헬리콥터 모양의 군사용 무인항공기(Unmanned aerial vehicle / uninhabited aerial vehicle; UAV)의 총칭이다. 2010년대를 전후하여 군사적 용도 외 다양한 민간 분야에도 활용되고 있다.
드론 기술 발달에 따라 다양한 분야에 드론이 활용되고 민간인에게도 보급화되면서 드론을 이용한 테러 등 부작용도 발생하고 있다. 이에 따라 안티드론(Anti-drone) 기술의 필요성이 부각되면서 관련 시장이 확대되고 있는 추세이다. 또한, 안티드론 기술에는 대상 드론에 대해 피아식별하는 기술이 매우 중요한 역할을 한다.
공개특허공보 제10-2019-0018463호, 2019.02.22.
본 발명이 해결하고자 하는 과제는 장치를 식별하기 위한 별도의 절차없이 장치 내부의 칩의 고유값을 기반으로 생성된 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치을 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 장치를 식별하기 위한 코드를 요청할 때마다, 중복 생성되지 않는 가상코드를 생성하는 방법, 프로그램 및 장치를 제공하는 것이다.
또한, 본 발명이 해결하고자 하는 과제는 기존의 프로세스를 변경하지 않고 알고리즘만 추가하여 사용할 수 있는, 장치 식별 방법, 프로그램 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 면에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법은 가상코드검증수단이 가상코드생성수단에 의해 생성된 가상코드를 수신하는 단계, 상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는 단계 및 상기 가상코드검증수단이 상기 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는 단계를 포함하고, 상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되며, 상기 복수의 세부코드를 조합하여 생성되는 것이고, 상기 복수의 세부코드는 상기 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고, 상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것이다.
또한, 상기 방법은, 상기 가상코드검증수단은 탐색알고리즘을 포함하고, 상기 탐색알고리즘은 상기 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색하는 것이다.
또한, 상기 방법은, 상기 복수의 세부코드는 제1코드 및 제2코드를 포함하고, 상기 탐색알고리즘은 상기 제1코드에 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 제1코드 및 상기 제2코드의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색하는 것이다.
또한, 상기 방법은, 상기 가상코드생성수단이 제어장치인 경우, 상기 가상코드는 상기 제어장치에 포함된 칩의 고유값을 시드데이터로 이용하여 생성되며, 상기 제어장치에 포함된 칩의 고유값은 제어장치별로 중복되지 않게 부여된 시리얼번호이다.
또한, 상기 방법은, 상기 가상코드검증수단이 상기 제어장치의 인가여부를 확인하는 단계를 더 포함하고, 상기 수신한 가상코드가 정상 가상코드인 경우, 등록된 제어장치에 대한 인가정보를 확인하고, 상기 수신한 가상코드가 비정상 가상코드 또는 현시점에 생성된 가상코드가 아닌 경우, 인가되지 않은 제어장치로 판단한다.
또한, 상기 방법은, 상기 가상코드생성수단이 SIM카드인 경우, 상기 가상코드는 상기 SIM카드에 포함된 칩의 고유값을 시드데이터로 이용하여 생성되며, 상기 SIM카드에 포함된 칩의 고유값은 SIM카드별로 중복되지 않게 부여된 ICCID 또는 IMSI인 것이다.
또한, 상기 방법은, 상기 가상코드검증수단이 상기 가상코드생성수단으로부터 수신한 수신가상코드와 상기 가상코드검증수단 내에서 생성된 생성가상코드의 일치여부를 판단하여 가상코드를 검증하는 단계를 더 포함하고, 상기 가상코드생성수단과 상기 가상코드검증수단은 동일한 가상코드생성함수를 포함한다.
또한, 상기 방법은, 상기 가상코드생성수단의 고유값을 상기 가상코드검증수단에 등록하는 단계를 더 포함한다.
또한, 상기 방법은, 상기 가상코드생성수단은 제어장치 또는 SIM카드일 수 있다.
또한, 상기 방법은, 가상코드생성수단이 복수의 세부코드를 생성하는 단계, 상기 가상코드생성수단이 상기 복수의 세부코드를 조합하여 가상코드를 생성하는 단계 및 상기 가상코드생성수단이 상기 가상코드를 외부로 제공하는 단계를 포함하고, 상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되는 것이고, 상기 복수의 세부코드는 가상코드검증수단이 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고, 상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것이다.
또한, 상기 방법은, 상기 가상코드검증수단은 탐색알고리즘을 포함하고, 상기 탐색알고리즘은 상기 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색한다.
상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 프로그램은 하드웨어와 결합되어 상기 언급된 장치를 식별하는 방법을 실행하며, 매체에 저장된다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 면에 따른 칩 고유값 기반의 가상코드를 탐색하는 장치는, 가상코드검증수단이 가상코드생성수단에 의해 생성된 가상코드를 수신하는, 가상코드수신부, 상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는, 세부코드추출부 및 상기 가상코드검증수단이 상기 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는, 실제코드탐색부를 포함하고, 상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되며, 상기 복수의 세부코드를 조합하여 생성되는 것이고, 상기 복수의 세부코드는 상기 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고, 상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것이다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 면에 따른 칩 고유값 기반의 가상코드를 생성하는 장치는, 가상코드생성수단이 복수의 세부코드를 생성하는, 세부코드생성부, 상기 가상코드생성수단이 상기 복수의 세부코드를 조합하여 가상코드를 생성하는, 가상코드생성부 및
상기 가상코드생성수단이 상기 가상코드를 외부로 제공하는, 가상코드제공부를 포함하고, 상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되는 것이고, 상기 복수의 세부코드는 가상코드검증수단이 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고, 상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것이다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
상기 본 발명에 의하면, 장치 식별을 위한 가상코드는 장치 내부의 고유값을 기반으로 생성되기 때문에 가상코드가 생성되는 시점에 관계없이 중복되지 않으므로 장치를 정확하게 식별할 수 있다.
또한, 상기 본 발명에 의하면, 가상코드생성장치와 가상코드검증장치에만 가상코드 생성 및 실제코드 탐색을 위한 알고리즘이 추가되면 되므로, 기존의 프로세스를 그대로 유지할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 시스템의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 생성하는 장치의 구성도이다.
도 3은 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 검증하는 장치의 구성도이다.
도 4는 본 발명의 일 실시예에 따른 가상코드검증부를 더 포함하는 칩 고유값 기반의 가상코드를 검증하는 장치의 구성도이다.
도 5는 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법을 개략적으로 나타내는 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 세부코드를 기반으로 트랙상을 이동하여 실제코드 저장위치를 탐색하는 탐색알고리즘에 대한 예시도이다.
도 7은 본 발명의 일 실시예에 따른 가상코드를 검증하는 단계를 더 포함하는 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법을 개략적으로 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 제어장치의 인가여부를 확인하는 과정을 개략적으로 나타내는 순서도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 "고유값"은 장치별로 상이하게 부여된 값을 의미한다. 예를 들어, 고유값은 장치 자체 또는 장치 내부에 포함된 칩(Chip)에 부여된 고유번호이다. 구체적인 예로, 장치 또는 장치 내부에 포함된 칩에 부여된 시리얼 번호(Serial number), SIM카드(Subscriber identification module card) 내부에 포함된 IC칩의 ICCID 또는 IMSI, 반도체 칩의 고유번호가 있으며, 상술한 예시에 한정되지 않고 장치를 식별할 수 있는 임의의 값이다.
본 명세서에서 "칩(Chip)"은 장치에 대한 정보(예를 들어, 장치별로 부여된 고유값)를 저장 및 관리할 수 있는 집적회로(Integrated circuit; IC)를 포함하는 부품을 의미하며, 시스템온칩(System on chip; SoC)을 포함하는 개념이다.
본 명세서에서 "에플릿(Applet)"은 JAVA언어로 구성된 소규모의 프로그램 또는 초소형의 응용프로그램(Application)을 의미한다.
본 명세서에서 "문자"는 코드를 구성하는 구성요소로서, 대문자알파벳, 소문자알파벳, 숫자 및 특수문자 등의 전부 또는 일부를 포함한다.
본 명세서에서 "코드"는 문자가 나열된 문자열을 의미한다.
본 명세서에서 "가상코드"는 실제코드에 연결되도록 임시적으로 생성되는 코드로서, 문자로 이루어진 특정한 자릿수의 코드를 의미한다.
본 명세서에서 "세부코드"는 가상코드 생성에 이용되는 코드를 의미한다. 즉, 가상코드가 별도로 생성된 복수의 코드를 결합하여 생성되는 경우, 세부코드는 별도로 생성되어 가상코드를 구성하는 개별 코드를 의미한다.
본 명세서에서 "단위카운트"는 특정한 시간간격으로 설정되어, 상기 시간간격이 경과됨에 따라 변경되는 것으로 정의된 단위이다. 예를 들어, 1 카운트는 특정한 시간간격(예를 들어, 1.5초)으로 설정되어 사용될 수 있다.
본 명세서에서 "가상코드생성함수"는 가상코드를 생성하는데 이용되는 함수를 의미한다.
본 명세서에서 "세부코드생성함수"는 가상코드를 구성하는 각각의 세부코드를 생성하는 함수를 의미한다.
본 명세서에서 "세부코드결합함수"는 복수의 세부코드를 조합 또는 결합하여 가상코드를 생성하는 함수를 의미한다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 시스템의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 시스템(1000)은 가상코드생성수단(10) 및 가상코드검증수단(20)을 포함한다.
가상코드생성수단(10)은 가상코드검증수단(20)이 실제코드를 탐색할 수 있는 정보를 포함하는 가상코드를 생성하는 역할을 수행한다. 가상코드생성수단(10)은 가상코드생성함수에 따라 장치 내부의 고유값을 기반으로 가상코드를 생성한다. 즉, 가상코드생성수단(10)은 장치 내부의 칩 고유값을 시드 데이터(Seed data)로 활용하여 가상코드를 생성한다.
본 명세서에서 실제코드(또는 실제코드의 저장위치)를 탐색하는 것은 실제코드 자체, 실제코드의 저장위치 자체, 실제코드의 저장위치에 매칭되는 값 또는 실제코드의 저장위치에 대응되는 값 등을 탐색하는 것을 포함한다.
"칩 고유값"은 특정 시점에(예를 들어, 제조시, 등록시) 장치별로 중복되지 않도록 상이하게 부여된 값이다. 예를 들어, 장치별로 상이하게 부여된 시리얼 번호(Serial number), IC카드 내의 칩 고유값, 앱카드가 설치된 모바일 기기의 장치식별값, SIM카드(Subscriber identification module card)의 ICCID 또는 IMSI, 반도체 칩의 고유번호가 있으며, 상술한 예시에 한정되지 않고 장치를 식별할 수 있는 임의의 값이다.
또한, 가상코드 및 실제코드는 가상코드생성장치(100)의 종류에 따라 상응하는 역할을 수행하는 코드이다. 예를 들어, 가상코드생성장치(100)가 금융거래를 위한 IC카드인 경우, 가상코드/실제코드는 가상카드번호(또는 가상토큰번호)/실제카드번호(또는 실제토큰번호)에 대응된다. 또한, 예를 들어, 가상코드생성장치(100)가 제어장치인 경우, 가상코드/실제코드는 가상장치식별값/실제장치식별값에 대응된다. 가상코드 및 실제코드의 역할은 상술한 예시에 제한되지 않으며, 가상코드생성장치(100)의 역할 및 목적에 따라 다양하게 적용될 수 있다.
가상코드생성수단(10)의 일 실시예로, 가상코드생성장치(100)가 IC카드인 경우, IC카드 칩 내에 애플릿(Applet)의 형태로 구현될 수 있다.
가상코드생성수단(10)의 다른 실시예로, 가상코드생성장치(100)가 모바일 단말인 경우, 모바일 단말에 포함되는 USIM 내에 애플릿(Applet) 형태로 구현될 수 있다. 따라서, 모바일 단말이 스마트폰 등과 같이 NFC(Near field communication) 기능을 지원하는 기기인 경우는 물론이고, NFC 기능을 지원하지 않는 경우도 본 발명의 실시가 가능하다. 예를 들어, 가상코드생성장치(100)가 NFC 기능을 지원하지 않는 2G 휴대폰인 경우, 2G 휴대폰 내에 삽입된 USIM 내에 애플릿(Applet) 형태로 가상코드생성수단(10)을 구현하여 본 발명을 적용할 수 있다. USIM 내에 구현된 애플릿을 통해 가상코드를 생성하고, 생성된 가상코드를 디스플레이부를 통해 출력한다. 사용자는 출력된 가상코드를 직접 입력하는 방식으로 가상코드를 가상코드검증장치(200) 또는 가상코드검증장치(200)로 가상코드를 전달하는 장치 및 서버에 전달할 수 있다.
한편, 일 실시예로, 가상코드검증수단(20)에서 가상코드를 기반으로 실제코드를 탐색하므로, 가상코드생성수단(10)은 실제코드를 저장하지 않을 수 있다. 이를 통해 가상코드생성수단(10)의 해킹 등을 통해 실제코드가 유출되는 것을 방지할 수 있다. 가상코드생성함수에 대한 구체적인 설명은 후술한다.
가상코드검증수단(20)은 가상코드생성수단(10)으로부터 제공되는 가상코드를 기반으로 실제코드를 탐색하는 역할을 수행한다. 가상코드검증수단(20)은 가상코드생성수단(10)으로부터 수신된 가상코드로부터 실제코드를 탐색하기 위해 가상코드생성수단(10)과 동일한 가상코드생성함수를 저장한다. 가상코드검증수단(20)이 가상코드를 기반으로 실제코드를 탐색하는 방식에 대한 구체적인 설명은 후술한다.
또한, 가상코드검증수단(20)은 가상코드가 가상코드생성수단(10)에서 정상적으로 생성된 코드인지 또는 현시점에서 생성된 코드인지 여부를 검증하는 역할을 수행한다. 가상코드검증수단(20)이 가상코드의 정상여부를 판단하는 방식에 대한 구체적인 설명은 후술한다.
가상코드검증수단(20)은 가상코드생성수단(10)으로부터 다양한 방식을 통해 가상코드를 전달받을 수 있다.
일 실시예로, 가상코드검증수단(20)은 무선통신을 통해 가상코드생성수단(10)으로부터 가상코드를 수신할 수 있다. 예를 들어, 가상코드생성수단(10)을 포함하는 가상코드생성장치(100)가 NFC안테나모듈, 블루투스통신모듈 등을 포함하는 경우, 가상코드검증장치(200)와의 통신을 통해 가상코드를 가상코드검증장치(200)로 전송할 수 있다.
또한, 다른 실시예로, 가상코드검증장치(200)는 가상코드생성장치(100)에 의해 생성된 가상코드를 가상코드검증장치(200)에 통신을 통해 연결되는 이동단말기 상에 직접 입력되어 수신할 수 있다. 이 때, 가상코드검증수단(20)은 가상코드생성수단(10)으로부터 가상코드를 수신한 다른 서버로부터 전달받을 수 있다.
도 2는 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 생성하는 장치의 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 생성하는 장치(100)는 세부코드생성부(110), 가상코드생성부(120) 및 가상코드제공부(130)를 포함한다.
본 발명의 실시예들에 따른 가상코드생성장치(100)는 가상코드생성수단(10)에 해당하는 프로그램이 내장(Embeded)되거나 가상코드생성수단(10)에 해당하는 프로그램이 설치된 장치일 수 있다.
구체적인 예로, 가상코드생성장치(100)는 가상코드생성수단(10)에 해당하는 프로그램이 내장된 IC카드, 제어장치(예를 들어, IoT장치, 드론, 무인으로 운행 가능한 자동차 등), 금융자동화기기(예를 들어, 현금 자동 입출금기(Automated teller machine; ATM), CD(Cash dispenser; CD) 기기 등), 가상코드생성수단(10)에 해당하는 어플리케이션(Application)이 설치된 모바일 기기일 수 있다. 가상코드생성장치(100)는 상술한 예시로 한정되지 않으며 가상코드를 생성하여 전송할 수 있는 임의의 장치이다.
가상코드생성부(120)는 가상코드생성장치(100) 내부의 칩 고유값 기반으로 가상코드를 생성하는 역할을 한다. 즉, 가상코드생성부(120)는 가상코드생성장치(100) 내부의 칩 고유값을 시드 데이터(Seed data)로 하여 가상코드를 생성한다. 가상코드생성부(120)는 하나 이상의 세부코드를 조합하여 가상코드로 생성하는 역할을 수행한다.
일 실시예로, 상기 가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 가상코드생성장치(100)는 가상코드를 생성하는 가상코드생성함수를 포함하고, 가상코드생성함수는 복수의 세부코드를 생성하는 세부코드생성함수 및 복수의 세부코드를 조합하는 규칙(즉, 세부코드결합함수)을 포함한다.
다른 실시예로, 가상코드생성장치(100)는 외부와의 통신없이 가상코드를 생성할 수 있다. 즉, 가상코드생성장치(100)는 외부로부터 데이터 수신없이 가상코드를 생성할 수 있다.
예를 들어, 가상코드생성장치(100)가 IC카드인 경우, IC카드에 포함된 IC칩에 가상코드생성함수가 저장되어 있고, 가상코드생성함수는 IC칩에 부여된 고유값과 시간데이터를 기반으로 가상코드를 생성한다. 또한, IC카드는 상기 시간데이터 측정을 위한 클락을 포함할 수 있다. 또한, 일 예로, 상기 IC카드는 상기 클락에 전원을 공급하는 클락용 배터리를 구비하되, 클락 외의 다른 구성을 구동하기 위한 전원을 공급하기 위한 배터리(예를 들어, 가상코드 생성 및 제공에 필요한 전원 공급을 위한 배터리)는 구비하지 않을 수 있다. 이 경우, 클락 외의 구성을 구동하기 위한 전원은 사용자에 의해 금융거래 요청이 이루어진 시점에 외부(금융거래 단말기, 금융자동화기기 등)에서 공급받을 수 있다.
또한, 예를 들어, 가상코드생성장치(100)가 SIM카드인 경우, SIM카드에 포함된 IC칩에 가상코드생성함수가 저장되어 있고, 가상코드생성함수는 상기 IC칩에 부여된 고유값과 시간데이터를 기반으로 가상코드를 생성한다. 또한, SIM카드는 상기 시간데이터 측정을 위한 클락을 포함할 수 있다. 이 때, 전원공급에 대한 특징은 상술한 IC카드의 예시와 동일하게 적용될 수 있으며, 외부로부터의 전원은 SIM카드가 삽입된 사용자단말로부터 공급받을 수 있다.
또한, 예를 들어, 가상코드생성장치(100)가 제어장치인 경우, 제어장치 내부에 포함된 칩 또는 반도체에 가상코드생성함수가 저장되어 있고, 가상코드생성함수는 상기 칩 또는 반도체에 부여된 고유값과 시간데이터를 기반으로 가상코드를 생성한다. 또한, 제어장치는 상기 시간데이터 측정을 위한 클락을 포함할 수 있다.복수의 세부코드를 결합하여 하나의 가상코드를 생성하는 방식으로는 다양한 방식이 적용될 수 있다. 상기 세부코드결합함수의 일 예로, 가상코드생성부(120)는 N자리의 제1코드와 N자리의 제2코드를 번갈아 배치하는 방식으로 가상코드를 생성할 수 있다. 또한, 다른 일 예로, 세부코드결합함수는 제1코드 뒤에 제2코드를 결합하는 함수일 수 있다. 가상함수에 포함되는 세부코드가 늘어남에 따라 세부코드결합함수도 다양하게 생성될 수 있다.
세부코드생성부(110)는 하나 이상의 세부코드를 생성하는 역할을 수행한다. 가상코드생성함수는 각각의 세부코드생성함수를 포함한다. 예를 들어, 가상코드생성함수는 복수의 세부코드생성함수를 이용하여 복수의 세부코드를 생성하고, 복수의 세부코드를 결합하는 세부코드결합함수를 이용하여 가상코드를 생성한다. 복수의 세부코드는 가상코드검증수단(20)이 실제코드를 탐색하기 위해 이용되는 상관관계를 가진다.
복수의 세부코드가 가지는 상관관계에 대한 일 실시예로, 가상코드검증수단(20)은 탐색알고리즘을 포함하고, 상기 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치 탐색할 수 있다. 이 때, 경유지점은 하나 또는 복수일 수 있으며 개수에 제한은 없다.
또한, 복수의 세부코드의 일 실시예로, 복수의 세부코드는 제1코드 및 제2코드를 포함할 수 있고, 세부코드생성부(110)는 세부코드생성함수로 제1함수와 제2함수를 포함하여, 제1코드 및 제2코드를 생성한다. 제1코드와 제2코드는 가상코드검증수단(20) 내에서 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지나, 가상코드생성장치(100)는 보안성을 높이기 위해 제1코드를 생성하는 제1함수와 제2코드를 생성하는 제2함수를 세부코드생성함수로 포함할 뿐, 제1코드와 제2코드의 상관관계에 대한 데이터를 포함하지 않을 수 있다. 제1코드와 제2코드의 상관관계의 구체적인 예로, 제1코드는 경유지점에 대한 정보를 포함하고, 제2코드는 경유지점으로부터 실제코드의 저장위치로 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다. 제1코드와 제2코드의 세부적인 예시에 대한 상세한 설명은 후술한다.
세부코드생성부(110)가 세부코드를 생성하는 방식의 일 실시예로, 세부코드생성부(110)는 장치 내부에 포함된 칩의 고유값을 기반으로 하나 이상의 세부코드를 생성할 수 있다. 가상코드검증수단(20)은 가상코드생성장치(100) 내부에 포함된 칩의 고유값을 수신하여 실제코드의 저장위치에 함께 저장하거나 실제코드 저장위치에 연결된 별도의 저장공간에 저장할 수 있다. 가상코드생성장치(100)가 칩 고유값을 기반으로 생성한 가상코드를 가상코드검증수단(20)에 제공하면, 가상코드검증수단(20)은 내부에 저장된 칩 고유값을 추출하여 실제코드를 탐색하는데 이용한다. 예를 들어, 가상코드검증수단(20)은 추출된 칩 고유값과 시간데이터를 가상코드생성함수에 적용하여 가상코드를 생성하여 가상코드생성수단(10)으로부터 수신한 가상코드(수신가상코드)와 가상코드검증수단(20)이 생성한 가산코드(생성가상코드)가 일치하는지 여부를 판단한다. 이를 위해 가상코드생성수단(10)과 가상코드검증수단(20)은 동일한 가상코드생성함수를 포함할 수 있다. 또한, 가상코드생성장치(100)에서 가상코드를 생성하는 시점과 가상코드검증장치(200)에서 가상코드를 수신한 시점 사이에 차이가 존재할 수 있으므로, 가상코드검증장치(200)는 시간딜레이를 고려하여 특정시간 범위 내(예를 들어, 가상코드를 수신한 시점 기준으로 특정 카운트 범위 내)의 가상코드를 생성하여 가상코드생성장치(100)로부터 수신한 가상코드와 일치하는 값이 존재하는지 확인한다. 가상코드검증수단(20)은 수신가상코드와 생성가상코드가 일치하면 정상 가상코드로 판단한다.
또한, 가상코드검증수단(20)은 가상코드를 정상 가상코드인지, 비정상 가상코드인지, 현시점에 생성된 가상코드인지 여부를 판단할 수 있다. 가상코드검증수단(20)은 판단 결과에 상응하는 처리를 수행한다. 예를 들어, 가상코드생성장치(100)가 제어장치인 경우, 판단 결과에 상응하는 처리는 다음과 같다. 가상코드검증수단(20)은 가상코드생성장치(100)로부터 수신한 가상코드가 정상 가상코드인 경우, 등록된 제어장치에 대한 인가정보를 확인하고, 수신한 가상코드가 비정상 가상코드이거나 현시점에 생성된 가상코드가 아닌 경우, 인가되지 않은 제어장치로 판단할 수 있다.
세부코드생성부(110)가 세부코드를 생성하는 방식의 다른 실시예로, 세부코드생성부(110)는 장치 내부에 포함된 칩의 고유값을 활용하여 생성한다. 구체적인 예로, 복수의 세부코드 중 어느 하나의 세부코드를 OTP코드로 생성할 수 있다. 이 때, 상기 OTP코드는 장치 내부에 포함된 칩의 고유값을 시드 데이터(Seed data)로 하여 생성될 수 있다. 이를 통해 동일 시점에 생성된 세부코드라도 사용자 또는 장치마다 상이한 세부코드가 생성될 수 있다. 보다 상세하게는, 복수의 세부코드가 제1코드 및 제2코드를 포함하는 경우, 세부코드생성부(110)는 장치 내부의 칩 고유값을 시드 데이터로 하여 OTP코드를 생성하고, 상기 OTP코드를 기반으로 제2코드를 생성하여, 동일 시점에 사용자 또는 장치마다 중복되지 않는 제2코드를 생성할 수 있다.
세부코드생성부(110)가 세부코드를 생성하는 방식의 또 다른 실시예로, 세부코드생성부(110)는 단위카운트마다 새로운 세부코드를 생성하고, 이에 따라 가상코드생성장치(100)는 단위카운트마다 새로운 가상코드를 생성한다. 단위카운트마다 신규로 생성되는 가상코드는 중복되어 생성되지 않는다. 구체적으로, 세부코드생성부(110)는, 단위카운드마다 신규생성되는 가상코드가 특정한 사용자 또는 특정한 가상코드생성장치(100)에게 정해진 기간동안 중복생성되지 않을 뿐만 아니라, 특정한 그룹에 속한 사용자간에도 중복생성되지 않도록 설정된다.
가상코드제공부(130)는 가상코드를 외부로 제공하는 역할을 수행한다. 가상코드제공부(130)는 가상코드를 가상코드검증장치(200)로 직접 제공하거나, 가상코드검증장치(200)로 가상코드를 전달하는 장치 또는 서버에 제공하거나, 사용자가 가상코드를 직접 확인하고 입력할 수 있도록 가상코드생성장치(100)의 디스플레이부에 제공할 수 있다. 가상코드제공부(130)는 가상코드를 외부로 제공할 수 있는 다양한 구성을 포함할 수 있다. 가상코드제공부(130)는 무선인터넷모듈, 근거리통신모듈, 디스플레이부 등의 전부 또는 일부를 포함할 수 있다.
무선 인터넷 모듈은 무선 인터넷 접속을 위한 모듈을 말하는 것으로, 가상코드생성장치(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) 등이 이용될 수 있다.
근거리 통신 모듈은 근거리 통신을 위한 모듈을 말한다. 근거리 통신(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 등이 이용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 검증하는 장치의 구성도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 검증하는 장치는 가상코드수신부(210), 세부코드추출부(220) 및 실제코드탐색부(230)를 포함한다.
본 발명의 실시예들에 따른 가상코드검증장치(200)는 가상코드검증수단(20)에 해당하는 프로그램이 내장(Embeded)되거나 가상코드검증수단(20)에 해당하는 프로그램이 설치된 장치 및 서버일 수 있다.
예를 들어, 가상코드검증장치(200)는 특정 제어장치가 인가된 장치인지 여부를 식별하는 장치 및 서버일 수 있다. 구체적인 예로, 가상코드생성장치(100)가 드론인 경우, 가상코드검증장치(200)는 비행 중인 드론의 인가 상태를 식별할 수 있다. 가상코드생성장치(100)는 드론으로부터 수신한 가상코드가 정상 가상코드인 경우, 해당 정상 가상코드에 매칭하여 등록된 드론에 대한 인가정보를 확인한다. 반면, 수신한 가상코드가 비정상 가상코드이거나 현시점에 생성된 가상코드가 아닌 경우, 인가되지 않은 제어장치로 판단하여 안티 드론(Anti-drone) 처리를 수행할 수 있다. 안티 드론 처리는 전파를 방해하거나 교란하여 드론을 추락시키거나, 포집하거나, 되돌려보내는 것을 포함하며, 그 방법에 제한은 없다.
또한, 예를 들어, 가상코드검증장치(200)는 특정한 사용자가 보유한 특정 카드사의 특정한 유형의 카드에 대한 가상코드를 수신한 후 실제코드를 탐색하여 결제를 진행하는 카드사서버일 수 있다. 구체적으로, 카드 결제의 경우, 가상코드검증장치(200)는 POS장치 및 PG사 서버를 통해 가상코드생성장치(100)에서 생성한 가상코드를 수신한다. 가상코드검증장치(200)는 수신한 가상코드가 정상코드인 경우, 요청된 거래를 승인한다. 반면, 수신한 가상코드가 비정상 가상코드이거나 현시점에 생성된 가상코드가 아닌 경우, 요청된 거래를 거절한다.
또한, 예를 들어, 사용자는 가상코드생성장치(100)를 이용하여 금융자동화기기를 통해 금융거래(예를 들어, 현금입출금, 송금, 계좌조회 등)를 수행할 수 있다. 이 때, 가상코드검증장치(200) 는 금융기관서버일 수 있다. 구체적인 예로, 사용자가 가상코드생성장치(100)인 IC카드로 ATM기기에 가상코드를 입력(예를 들어, IC카드를 카드삽입구에 삽입하거나 NFC리더기에 접촉)하면, 금융기관서버는 ATM기기로부터 가상코드를 수신한 후 실제코드를 탐색한다. 또한, 다른 예로, 사용자는 실물카드를 소지하지 않거나 실물카드없이 모바일 카드 형태로 발급된 경우에도, 가상코드생성장치(100)인 사용자단말에서 생성된 가상코드를 직접 ATM기기에 입력하는 방식으로 금융거래를 수행할 수 있다. 즉, 가상코드생성장치(100)인 사용자단말에 설치된 앱카드 또는 사용자단말에 포함된 USIM 내의 애플릿(Applet)에서 가상코드를 생성한다. 사용자는 사용자단말의 디스플레이부에 출력된 가상코드를 ATM기기에 직접 입력하여 금융거래를 요청할 수 있다. 가상코드검증장치(200)는 수신한 가상코드가 정상코드인 경우, 요청된 금융거래를 승인 및 처리한다. 반면, 수신한 가상코드가 비정상 가상코드이거나 현시점에 생성된 가상코드가 아닌 경우, 요청된 금융거래를 거절한다.
가상코드수신부(210)는 가상코드생성장치(100)로부터 가상코드를 수신하는 역할을 수행한다. 일 실시예로, 가상코드수신부(210)는 가상코드생성장치(100)로부터 가상코드를 직접 수신하거나, 다른 서버와의 통신을 통해 가상코드생성장치(100)에서 생성된 가상코드를 전달받을 수 있다.
세부코드추출부(220)는 가상코드에 포함된 복수의 세부코드를 추출하는 역할을 수행한다. 가상코드는 복수의 세부코드를 특정한 규칙에 따라 결합하여 생성되는 것이다. 일 실시예로, 세부코드추출부(220)는 특정그룹의 가상코드생성장치(100)와 동일한 세부코드결합함수를 포함하여, 세부코드추출부(220)는 세부코드결합함수를 적용하여 가상코드에서 복수의 세부코드를 추출할 수 있다. 예를 들어, 가상코드생성장치(100)에서 두 개의 세부코드(즉, 제1코드 및 제2코드)가 결합된 가상코드를 생성하는 경우, 세부코드추출부(220)는 가상코드의 문자배열에서 세부코드결합함수를 적용하여 제1코드 및 제2코드를 분리해낼 수 있다.
실제코드탐색부(230)는 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색한다. 실제코드탐색부(230)가 각각의 세부코드를 기반으로 실제코드 저장위치를 탐색하는 방식으로는 다양한 방식이 적용될 수 있다. 실제코드탐색부(230)가 복수의 세부코드를 기반으로 저장위치를 탐색하기 위해 세부코드 간에는 상관관계를 포함할 수 있다.
세부코드 간의 상관관계에 대한 일 실시예로, 복수의 세부코드는 가상코드검증수단(20)이 실제코드의 저장위치를 탐색하는 이동경로를 설정한다. 이 때, 상기 이동경로는 가상코드검증수단(20)이 복수의 세부코드가 가지는 상관관계를 기반으로 실제코드의 저장위치를 탐색하는 순서이다. 즉, 가상코드검증수단(20)은 복수의 세부코드가 가지는 상관관계에 따라 설정된 이동경로 및 순서에 따라 실제코드의 저장위치를 탐색한다. 구체적인 예로, 가상코드검증수단(20)은 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색할 수 있다. 이 때, 경유지점은 하나 또는 복수일 수 있으며 개수에 제한은 없다.
예를 들어, 가상코드가 제1코드와 제2코드로 구성되는 경우, 제1코드는 경유지점에 대한 정보를 포함하고, 제2코드는 경유지점으로부터 실제코드의 저장위치로 도달하기 위한 연산에 필요한 정보를 포함할 수 있다. 구체적인 예시는 도 6을 참조하여 후술한다.
또한, 예를 들어, 가상코드가 제1코드와 제2코드로 구성되는 경우, 실제코드탐색부(230)는 제1코드에 대응하는 탐색시작지점을 결정하고, 상기 탐색시작지점으로부터 제2코드에 상응하는 탐색경로에 따라 이동한 지점을 실제코드의 저장위치로 찾을 수 있다. 즉, 상기 세부코드는, 저장위치탐색의 시작지점을 설정하는 제1코드 및 특정한 탐색방식에 따라, 상기 시작지점으로부터 상기 저장위치로의 탐색경로를 설정하는 제2코드를 포함할 수 있다.
또한, 예를 들어, 가상코드생성장치(100)가 단위카운트마다 신규 가상코드를 제공함에 따라, 가상코드검증장치(200)는 각 카운트마다 변경되는 제1코드 및 제2코드를 기반으로 탐색시작지점과 탐색경로를 설정하여 실제코드의 저장위치를 탐색할 수 있다.
한편, 일 실시예로, 실제코드탐색부(230)는 상관관계를 가지는 복수의 세부코드를 이용하여 실제코드의 저장위치를 찾기 위해, 탐색알고리즘을 포함할 수 있다. 탐색알고리즘은 가상코드에 포함되는 각각의 세부코드 적용 시에 저장위치 탐색이 가능하도록 하는 알고리즘이다.
예를 들어, 가상코드가 경유지점에 대한 정보를 포함하는 제1코드와 경유지점으로부터 실제코드의 저장위치로 도달하기 위한 연산에 필요한 정보를 포함하는 제2코드로 구성되는 경우, 탐색알고리즘은 제1코드에 대응되는 경유지점을 경유하여, 제2코드에 포함된 정보를 기반으로 연산을 수행하여 해당 위치에 실제코드가 매칭되는 저장위치가 배치되도록 조절하는 알고리즘이다. 탐색알고리즘을 이용함에 따라, 가상코드검증장치(200)는 가상코드에 포함된 제1코드와 제2코드가 변경되어도 실제코드 저장위치 또는 저장위치에 매칭된 지점을 찾을 수 있다. 탐색알고리즘은 다양한 방식이 적용될 수 있다. 탐색알고리즘에 대한 상세한 설명은 후술한다.
도 4는 본 발명의 일 실시예에 따른 가상코드검증부를 더 포함하는 칩 고유값 기반의 가상코드를 검증하는 장치의 구성도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 검증하는 장치는 가상코드검증부(240)를 더 포함한다.
가상코드검증부(240)는 가상코드검증장치(200)가 수신한 가상코드의 진위여부를 판단하는 역할을 수행한다.
일 실시예로, 가상코드검증장치(200)는 가상코드생성장치(100)와 동일한 가상코드생성함수를 포함할 수 있다. 가상코드검증부(240)는 가상코드검증수단이 가상코드생성수단(10)으로부터 수신한 수신가상코드와 가상코드검증수단(20) 내에서 생성된 생성가상코드의 일치여부를 판단하여 가상코드를 검증한다.
도 5는 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법을 개략적으로 나타내는 흐름도이다.
도 5를 참조하면, 는 본 발명의 일 실시예에 따른 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법은, 가상코드검증수단이 가상코드생성수단에서 제공된 가상코드를 수신하는 단계(S300), 가상코드검증수단이 가상코드에 포함된 복수의 세부코드를 추출하는 단계(S400), 가상코드검증수단이 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는 단계(S500)를 포함한다. 이하, 각 단계에 대한 상세한 설명을 기재한다. 다만, 가상코드생성장치(100) 및 가상코드검증장치(200)에 대한 설명 과정에서 상술된 내용에 대한 구체적인 개시는 생략한다.
S300 단계는, 가상코드검증수단(20)이 가상코드생성수단(10)에서 제공된 가상코드를 수신하는 단계이다. 가상코드는 가상코드생성장치(100)에서 생성되어 가상코드검증장치(200)로 제공된다.
상술한 바와 같이, 가상코드검증장치(200)는 가상코드를 가상코드생성장치(100)로부터 직접 수신하거나, 가상코드생성장치(100)로부터 가상코드를 수신하여 가상코드검증장치(200)로 전달해주는 중간 장치 및 서버로부터 수신할 수 있다.
S400 단계는, 가상코드검증수단(20)이 가상코드생성수단(10)으로부터 수신한 가상코드에 포함된 복수의 세부코드를 추출하는 단계이다.
일 실시예로, 가상코드검증수단(20)은 가상코드생성수단(10)이 포함하는 가상코드생성함수를 포함함에 따라, 복수의 세부코드를 결합하였던 규칙(즉, 세부코드결합함수)을 동일하게 적용하여 복수의 세부코드를 추출한다. 즉, 세부코드결합함수는 복수의 세부코드를 배열하는 규칙에 해당하는 것으로, 가상코드생성함수 내에 포함된다.
S500 단계는, 가상코드검증수단(20)이 S400 단계에서 추출한 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는 단계이다.
상술한 바와 같이, 복수의 세부코드는 가상코드검증수단(20)이 실제코드를 탐색할 수 있도록 하는 상관관계를 가지고 있다. 즉, 가상코드검증수단(20)은 세부코드 간의 상관관계를 기반으로 실제코드 저장위치를 탐색한다.
복수의 세부코드가 가지는 상관관계에 대한 일 실시예로, 가상코드검증수단(20)은 탐색알고리즘을 포함하고, 상기 탐색알고리즘은 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색할 수 있다. 이 때, 경유지점은 하나 또는 복수일 수 있으며 개수에 제한은 없다.
또한, 일 실시예로, 가상코드는 세부코드로서 제1코드 및 제2코드로 구성될 수 있다. 제1코드 및 제2코드는 가상코드검증수단(20)이 실제코드의 저장위치를 탐색할 수 있도록 하는 상관관계를 가진다. 상관관계로서, 제1코드는 경유지점에 대한 정보를 포함하고, 제2코드는 경유지점으로부터 실제코드의 저장위치로 도달할 수 있는 연산에 필요한 정보를 포함할 수 있다.
구체적인 예로, 제1코드는 요청시점에 대응되는 카운트와 OTP코드의 합으로 생성되고, 제2코드는 상기 제1코드에서 실제코드의 저장위치값을 뺀 값으로 생성된다. 즉, 가상코드생성수단(10)이 생성하는 제1코드 및 제2코드의 일 실시예는 다음과 같다.
제1코드 = 현재시점 카운트 + OTP코드
제2코드 = 제1코드 - 실제코드의 저장위치값
OTP(One time password) 코드는 세부코드생성함수에 포함된 OTP코드생성함수에 의해 생성되는 코드로서, 매시점 다르게 생성되는 코드이다. 따라서, 세부코드는 가상코드의 셍성시점에 따라 다르게 생성되므로 중복되어 생성되는 것을 방지할 수 있고, 보안성을 강화시키는 효과가 있다.
가상코드검증수단(20)이 상기 제1코드 및 제2코드를 이용하여 실제코드를 탐색하는 과정을 도 6을 참조하여 상세히 설명한다.
도 6은 본 발명의 일 실시예에 따른 세부코드를 기반으로 트랙상을 이동하여 실제코드 저장위치를 탐색하는 탐색알고리즘에 대한 예시도이다.
일 실시예로, 가상코드검증수단(20)은 탐색알고리즘을 포함하며, 탐색알고리즘은 가상코드를 구성하는 복수의 세부코드를 기반으로 트랙상을 이동하여 실제코드저장위치에 매칭된 지점으로 이동하여 실제코드를 탐색한다. 예를 들어, 상기 실제코드저장위치에 매칭된 지점은 가상코드생성수단에 실제코드를 발급한 카운트(즉, 시점)에 대응하는 트랙상의 지점일 수 있다.
도 6을 참조하면, 가상코드가 가상코드생성함수가 구동된 시점으로부터 경과된 시간을 기반으로 생성된 복수의 세부코드로서 제1코드 및 제2코드를 포함한다.
제1코드에 대응되는 코드값(제1코드값)은 가상코드생성함수 구동시점을 기준으로 현재시점에 대응되는 카운트에서 OTP코드값을 더한 값이다. 제1코드값은 실제코드 탐색 과정에서 경유지점의 역할을 한다.
제2코드에 대응되는 코드값(제2코드값)은 상기 제1코드값에서 실제코드의 저장위치값을 뺀 값이다. 또한, 제2코드값은 경유지점(제1코드값)으로부터 실제코드 저장위치값까지의 카운트이다.
도 6에 도시된 바와 같이, 가상코드검증수단(20)은 제1코드값에 매칭되는 트랙상의 카운트를 경유지점으로 경유하여, 제2코드값에 해당하는 카운트만큼 설정된 방향으로 트랙을 따라 이동하여 가상코드생성수단(10)이 실제코드를 발급한 시점의 트랙상의 지점(즉, 실제코드저장위치에 매칭된 지점)을 탐색한다.
도 7은 본 발명의 일 실시예에 따른 가상코드를 검증하는 단계를 더 포함하는 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법을 개략적으로 나타내는 흐름도이다
도 7을 참조하면, 도 5와 비교하여 가상코드검증수단(20)이 수신한 가상코드가 정상 가상코드인지 검증하는 단계(S600)를 더 포함하며, 이를 중점적으로 설명한다.
S600 단계는, 가상코드검증수단(20)이 가상코드생성수단(10)으로부터 수신한 가상코드가 정상 가상코드인지 검증하는 단계이다. 즉, 가상코드검증수단(20)은 가상코드생성수단(10)으로부터 수신한 가상코드가 정상 가상코드인지, 비정상 가상코드인지, 현시점에 생성된 가상코드인지 판단한다.
일 실시예로, 가상코드검증수단(20)은 세부코드생성함수에 상응하는 역함수를 적용하여 정상적으로 생성된 가상코드(정상 가상코드)에 해당하는지 여부를 검증한다. 예를 들어, 가상코드가 제1코드 및 제2코드로 구성되는 경우, 가상코드검증수단(20)은 상기 제1코드 및 제2코드를 생성하는 제1함수 및 제2함수에 대한 역함수를 적용하여 정상 가상코드 여부를 검증할 수 있다.
다른 실시예로, 가상코드검증수단(20)은 가상코드생성수단(10)과 동일한 가상코드생성함수를 포함한다. 가상코드검증수단(20)은 가상코드생성수단(10)과 동일한 가상코드생성함수를 통해 생성한 생성가상코드와 가상코드생성수단(10)으로부터 수신한 수신가상코드가 일치하는지 여부를 확인하여 수신가상코드가 정상적으로 생성된 가상코드인지 검증할 수 있다. 또한, 가상코드생성장치(100)에서 가상코드를 생성하는 시점과 가상코드검증장치(200)에서 가상코드를 수신한 시점 사이에 차이가 존재할 수 있으므로, 가상코드검증장치(200)는 시간딜레이를 고려하여 특정시간 범위 내(예를 들어, 가상코드를 수신한 시점 기준으로 특정 카운트 범위 내)의 가상코드를 생성하여 가상코드생성장치(100)로부터 수신한 가상코드와 일치하는 값이 존재하는지 확인할 수 있다. 즉, 오차허용범위를 적용하여 가상코드를 검증할 수 있다.
도 8은 본 발명의 일 실시예에 따른 제어장치의 인가여부를 확인하는 과정을 개략적으로 나타내는 순서도이다.
본 발명의 일 실시예에 따르면 가상코드생성장치(100)는 제어장치일 수 있다. 가상코드검증장치(200)는 가상코드생성장치(100)로부터 가상코드를 수신한다. 가상코드검증장치(200)는 수신한 가상코드가 정상 가상코드인지 검증하고, 검증 결과에 상응하는 처리를 수행한다.
도 8을 참조하면, 도 7과 비교하여, 정상 가상코드인 경우 등록된 제어장치에 대한 인가정보를 확인하는 단계(S610), 비정상 가상코드인 경우 인가되지 않은 제어장치로 판단하는 단계(S620) 및 현시점에서 생성된 가상코드가 아닌 경우 인가되지 않은 제어장치로 판단하는 단계(S630)를 더 포함한다.
S610 단계는, 가상코드검증수단(20)이 수신한 가상코드를 검증한 결과, 정상 가상코드로 확인되었을 때 처리를 수행하는 단계이다. “정상 가상코드”는 올바른 가상코드생성함수를 통해 정상적으로 생성된 가상코드이다. 가상코드검증수단(20)은 정상 가상코드를 기반으로 실제코드를 탐색하여 등록된 제어장치에 대한 인가정보를 확인하여 상응하는 처리를 수행할 수 있다. 예를 들어, 인가정보 확인 결과 인가된 제어장치라면 제어장치의 동작을 유지하고, 인가정보 확인 결과 인가되지 않은 제어장치라면 제어장치의 동작을 저지하는 처리를 수행할 수 있다.
S620 단계는, 가상코드검증수단(20)이 수신한 가상코드를 검증한 결과, 비정상 가상코드로 확인되었을 때 처리를 수행하는 단계이다. “비정상 가상코드”는 가상코드검증수단(20)에 의해 식별이 불가한 코드이다. 예를 들어, 가상코드생성수단(10)이 생성하는 가상코드와 자리수 또는 형태를 달리하는 코드가 비정상 가상코드에 해당한다.
S630 단계는, 가상코드검증수단(20)이 수신한 가상코드를 검증한 결과, 현시점에서 생성되지 않은 가상코드로 확인되었을 때 처리를 수행하는 단계이다. “현시점에서 생성되지 않은 가상코드”는 코드의 자리수 및 형태는 정상 가상코드와 동일하지만, 기반으로 하는 시간데이터가 현시점이 아닌 다른 시점인 가상코드이다. 제어장치에 대한 인가정보는 실시간으로 변경될 수 있으므로 인가정보를 확인하는 시점(현시점)에서의 상태를 확인하는 것이 중요하다. 따라서, 현시점이 아닌 다른 시점에서 생성된 가상코드인 경우, 해당 제어장치는 인가되지 않은 제어장치로 판단한다.
한편, 본 발명의 일 실시예로, 가상코드검증장치(200)는 가상코드생성장치(100)를 사전 등록하여 관리할 수 있다. 즉, 가상코드검증장치(200)는 가상코드를 전송한 가상코드생성장치(100)를 검증하기 위한 데이터를 보유할 수 있다. 가상코드검증장치(200)는 가상코드검증수단(20)에 포함된 탐색알고리즘에 가상코드생성장치(100)의 등록을 수행한 시점에 매칭되는 저장위치에 상기 가상코드생성장치(100)의 실제코드를 저장한다. 또한, 가상코드검증장치(200)는 상기 가상코드생성장치(100)에 대한 등록정보(예를 들어, 소유자 정보, 장치정보, 인가정보 등)를 실제코드의 저장위치에 함께 저장하거나 실제코드 저장위치에 연결된 별도의 저장공간에 저장할 수 있다.
일 실시예로, 가상코드생성장치(100)가 제어장치인 경우, 가상코드검증장치(200)는 제어장치에 대한 장치식별값(시리얼 번호 등), 인가상태 등의 등록정보를 사전에 저장해둘 수 있다. 이를 통해, 가상코드검증장치(200)는 가상코드를 수신하였을 때, 해당하는 가상코드에 매칭되는 등록정보를 확인하여 상응하는 처리를 신속하게 수행할 수 있게 된다. 등록정보 확인 결과, 가상코드를 전송한 가상코드생성장치(100)가 사전 등록된 제어장치로 확인되면 해당 제어장치의 동작을 저지하지 않고, 사전 등록되지 않은 제어장치로 확인되면 해당 제어장치의 동작을 제어할 수 있다.
구체적인 예로, 가상코드생성장치(100)가 드론이고, 가상코드검증장치(200)는 드론을 식별 및 검증하는 관제센터 등의 서버일 수 있다. 서버는 드론 등록 절차에 의해 등록된 드론에 대한 실제코드와 등록정보를 저장 및 관리한다. 서버는 드론 식별 프로세스를 수행하여 식별대상 드론의 동작의 저지 여부를 결정한다. 즉, 서버는 드론으로부터 가상코드를 수신하고, 수신한 가상코드와 매칭되는 실제코드의 저장위치를 탐색하여 식별대상 드론의 등록정보를 확인하여, 상응하는 처리를 수행한다. 예를 들어, 서버는 등록정보 확인 결과, 식별대상 드론이 공무상 비행이 허용되는 드론으로 등록된 드론인 경우 비행을 저지하지 않고, 식별대상 드론이 미등록 드론(민간 드론 등)인 경우 비행을 저지하는 처리를 수행한다.
또한, 다른 구체적인 예로, 가상코드생성장치(100)인 드론은 주기적으로 또는 연속적으로 가상코드를 포함하거나 가상코드에 대응되는 주파수의 신호를 출력한다. 가상코드검증장치(200)인 관제센터 등의 서버는 드론으로부터 상기 신호를 획득하여 상기 드론의 인가여부를 판단한다. 이 때, 가상코드검증장치(200)는 사용 가능한 주파수 범위 및 가용범위 내의 세부단위범위에 매칭된 가상코드값을 사전 저장하고 있으며, 드론으로부터 수신한 신호의 주파수를 기반으로 가상코드를 파악할 수 있다.
다른 실시예로, 가상코드생성장치(100)가 SIM카드인 경우, 가상코드검증장치(200)는 SIM카드에 대한 고유값(ICCID 또는 IMSI 등) 정보와 사용자 정보를 사전에 저장해둘 수 있다. 구체적인 예로, 사용자가 통신사에 가입하여 USIM을 발급받거나, 여행용 USIM을 구입하여 사용자 등록을 하는 경우, 가상코드검증장치(200)는 등록정보(USIM의 고유값, 사용자정보 등)를 실제코드의 저장위치에 함께 저장하거나 실제코드 저장위치에 연결된 별도의 저장공간에 저장한다. 가상코드검증장치(200)는 가상코드를 수신하였을 때, 수신한 가상코드에 매칭되는 실제코드의 저장위치를 탐색하여, 등록정보를 확인하고, 상응하는 처리를 수행한다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
10 : 가상코드생성수단
20 : 가상코드검증수단
100 : 가상코드생성장치
200 : 가상코드검증장치

Claims (14)

  1. 가상코드검증수단이 가상코드생성수단에 의해 생성된 가상코드를 수신하는 단계;
    상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는 단계; 및
    상기 가상코드검증수단이 상기 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는 단계;를 포함하고,
    상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되며, 상기 복수의 세부코드를 조합하여 생성되는 것이고,
    상기 복수의 세부코드는 상기 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고,
    상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것인,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  2. 제1항에 있어서,
    상기 가상코드검증수단은 탐색알고리즘을 포함하고,
    상기 탐색알고리즘은 상기 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  3. 제2항에 있어서,
    상기 복수의 세부코드는 제1코드 및 제2코드를 포함하고,
    상기 탐색알고리즘은 상기 제1코드에 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 제1코드 및 상기 제2코드의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  4. 제3항에 있어서,
    상기 가상코드생성수단이 제어장치인 경우,
    상기 가상코드는 상기 제어장치에 포함된 칩의 고유값을 시드데이터로 이용하여 생성되며,
    상기 제어장치에 포함된 칩의 고유값은 제어장치별로 중복되지 않게 부여된 시리얼번호인 것인,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  5. 제4항에 있어서,
    상기 가상코드검증수단이 상기 제어장치의 인가여부를 확인하는 단계를 더 포함하고,
    상기 수신한 가상코드가 정상 가상코드인 경우, 등록된 제어장치에 대한 인가정보를 확인하고,
    상기 수신한 가상코드가 비정상 가상코드이거나 현시점에 생성된 가상코드가 아닌 경우, 인가되지 않은 제어장치로 판단하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  6. 제3항에 있어서,
    상기 가상코드생성수단이 SIM카드인 경우,
    상기 가상코드는 상기 SIM카드에 포함된 칩의 고유값을 시드데이터로 이용하여 생성되며,
    상기 SIM카드에 포함된 칩의 고유값은 SIM카드별로 중복되지 않게 부여된 ICCID 또는 IMSI인 것인,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  7. 제1항에 있어서,
    상기 가상코드검증수단이 상기 가상코드생성수단으로부터 수신한 수신가상코드와 상기 가상코드검증수단 내에서 생성된 생성가상코드의 일치여부를 판단하여 가상코드를 검증하는 단계;를 더 포함하고,
    상기 가상코드생성수단과 상기 가상코드검증수단은 동일한 가상코드생성함수를 포함하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  8. 제7항에 있어서,
    상기 가상코드생성수단의 고유값을 상기 가상코드검증수단에 등록하는 단계;를 더 포함하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  9. 제8항에 있어서,
    상기 가상코드생성수단은 제어장치 또는 SIM카드인,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  10. 가상코드생성수단이 복수의 세부코드를 생성하는 단계;
    상기 가상코드생성수단이 상기 복수의 세부코드를 조합하여 가상코드를 생성하는 단계; 및
    상기 가상코드생성수단이 상기 가상코드를 외부로 제공하는 단계;를 포함하고,
    상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되는 것이고,
    상기 복수의 세부코드는 가상코드검증수단이 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고,
    상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것인,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  11. 제10항에 있어서,
    상기 가상코드검증수단은 탐색알고리즘을 포함하고,
    상기 탐색알고리즘은 상기 복수의 세부코드 중 하나 이상의 세부코드와 대응하는 경유지점을 경유하여, 상기 경유지점으로부터 상기 복수의 세부코드 간의 상관관계를 기반으로 연산하여 상기 실제코드의 저장위치를 탐색하는,
    칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법.
  12. 하드웨어인 컴퓨터와 결합되어, 제1항 내지 제11항 중 어느 한 항의 방법을 실행시키기 위하여 매체에 저장된, 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 프로그램.
  13. 가상코드검증수단이 가상코드생성수단에 의해 생성된 가상코드를 수신하는, 가상코드수신부;
    상기 가상코드검증수단이 상기 가상코드에 포함된 복수의 세부코드를 추출하는, 세부코드추출부; 및
    상기 가상코드검증수단이 상기 복수의 세부코드를 기반으로 실제코드의 저장위치를 탐색하는, 실제코드탐색부;를 포함하고,
    상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되며, 상기 복수의 세부코드를 조합하여 생성되는 것이고,
    상기 복수의 세부코드는 상기 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고,
    상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것인,
    칩 고유값 기반의 가상코드를 검증하는 장치.
  14. 가상코드생성수단이 복수의 세부코드를 생성하는, 세부코드생성부;
    상기 가상코드생성수단이 상기 복수의 세부코드를 조합하여 가상코드를 생성하는, 가상코드생성부; 및
    상기 가상코드생성수단이 상기 가상코드를 외부로 제공하는, 가상코드제공부;를 포함하고,
    상기 가상코드는 상기 가상코드생성수단 내부의 칩에 사전 부여된 고유값을 기반으로 생성되는 것이고,
    상기 복수의 세부코드는 가상코드검증수단이 실제코드의 저장위치를 탐색하기 위한 상관관계를 가지며, 단위카운트마다 변경되는 것이고,
    상기 단위카운트는 특정한 시간간격으로 설정되어 상기 시간간격이 경과됨에 따라 변경되는 것인,
    칩 고유값 기반의 가상코드를 생성하는 장치.
KR1020190130742A 2019-02-08 2019-10-21 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치 KR102243532B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/KR2020/003192 WO2020162739A1 (ko) 2019-02-08 2020-03-06 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치
US17/391,844 US11379837B2 (en) 2019-02-08 2021-08-02 Method, program, and apparatus for identifying device by using chip unique value-based virtual code
US17/830,613 US11887118B2 (en) 2019-02-08 2022-06-02 Method, program, and apparatus for identifying device by using chip unique value-based virtual code

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190015223 2019-02-08
KR20190015223 2019-02-08

Publications (2)

Publication Number Publication Date
KR20200097626A KR20200097626A (ko) 2020-08-19
KR102243532B1 true KR102243532B1 (ko) 2021-04-22

Family

ID=72291613

Family Applications (8)

Application Number Title Priority Date Filing Date
KR1020190130742A KR102243532B1 (ko) 2019-02-08 2019-10-21 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치
KR1020200006286A KR102269892B1 (ko) 2019-02-08 2020-01-17 웨어러블 디바이스 기반의 금융거래를 제공하는 방법, 프로그램, 서버 및 웨어러블 디바이스
KR1020200014862A KR102269913B1 (ko) 2019-02-08 2020-02-07 가상코드 기반의 무인이동체 제어시스템, 방법 및 프로그램, 제어디바이스 및 제어신호생성수단
KR1020200014716A KR102269922B1 (ko) 2019-02-08 2020-02-07 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템
KR1020210080615A KR102618467B1 (ko) 2019-02-08 2021-06-22 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템
KR1020210080623A KR102611527B1 (ko) 2019-02-08 2021-06-22 가상코드 기반의 무인이동체 제어시스템, 방법 및 프로그램, 제어디바이스 및 제어신호생성수단
KR1020210080598A KR20210078471A (ko) 2019-02-08 2021-06-22 웨어러블 디바이스 기반의 금융거래를 제공하는 방법, 프로그램, 서버 및 웨어러블 디바이스
KR1020230188449A KR20240015053A (ko) 2019-02-08 2023-12-21 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템

Family Applications After (7)

Application Number Title Priority Date Filing Date
KR1020200006286A KR102269892B1 (ko) 2019-02-08 2020-01-17 웨어러블 디바이스 기반의 금융거래를 제공하는 방법, 프로그램, 서버 및 웨어러블 디바이스
KR1020200014862A KR102269913B1 (ko) 2019-02-08 2020-02-07 가상코드 기반의 무인이동체 제어시스템, 방법 및 프로그램, 제어디바이스 및 제어신호생성수단
KR1020200014716A KR102269922B1 (ko) 2019-02-08 2020-02-07 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템
KR1020210080615A KR102618467B1 (ko) 2019-02-08 2021-06-22 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템
KR1020210080623A KR102611527B1 (ko) 2019-02-08 2021-06-22 가상코드 기반의 무인이동체 제어시스템, 방법 및 프로그램, 제어디바이스 및 제어신호생성수단
KR1020210080598A KR20210078471A (ko) 2019-02-08 2021-06-22 웨어러블 디바이스 기반의 금융거래를 제공하는 방법, 프로그램, 서버 및 웨어러블 디바이스
KR1020230188449A KR20240015053A (ko) 2019-02-08 2023-12-21 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템

Country Status (5)

Country Link
US (1) US20200410476A1 (ko)
EP (3) EP4231220A3 (ko)
KR (8) KR102243532B1 (ko)
CN (2) CN113396371A (ko)
SG (1) SG11202011498UA (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102346701B1 (ko) * 2019-08-30 2022-01-03 주식회사 센스톤 가상카드번호 기반의 금융거래장치, 가상카드번호 기반의 금융거래제공방법 및 가상카드번호 기반의 금융거래제공프로그램
WO2021040462A1 (ko) * 2019-08-30 2021-03-04 주식회사 센스톤 가상법인카드 기반의 금융거래를 제공하는 방법, 프로그램 및 시스템
KR102575464B1 (ko) * 2020-10-05 2023-09-07 비씨카드(주) 무기명 카드에 대한 결제 서비스를 제공하는 서버 및 방법
KR102599361B1 (ko) * 2023-01-27 2023-11-08 주식회사 센스톤 다이나믹 식별코드 판매서비스 제공 장치 및 방법
WO2023167569A1 (ko) * 2022-03-04 2023-09-07 주식회사 센스톤 다이나믹 식별코드 판매서비스 제공 장치 및 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274429A (ja) 2003-03-10 2004-09-30 Sony Corp 情報処理装置、およびアクセス制御処理方法、情報処理方法、並びにコンピュータ・プログラム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5191610A (en) * 1992-02-28 1993-03-02 United Technologies Automotive, Inc. Remote operating system having secure communication of encoded messages and automatic re-synchronization
DE19622255A1 (de) * 1996-06-03 1997-12-04 Werner Dipl Ing Eckel Elektronisches Zugangsberechtigungssystem und Verfahren zum Feststellen eines berechtigten Zugangs
US8121941B2 (en) * 2000-03-07 2012-02-21 American Express Travel Related Services Company, Inc. System and method for automatic reconciliation of transaction account spend
US20030016119A1 (en) * 2001-07-17 2003-01-23 Teich Rudor M. Changeable coding for remote control system
KR20010110400A (ko) * 2001-11-27 2001-12-13 홍범기 이동통신 단말기를 가시거리 내에 있는 시스템의입력장치로 사용하기 위한 방법 및 이를 수행하기 위한시스템.
KR100411585B1 (ko) * 2001-12-27 2003-12-18 한국전자통신연구원 이중 코드 발생기를 이용한 다중경로 탐색 장치 및 그탐색 방법
US9710804B2 (en) * 2012-10-07 2017-07-18 Andrew H B Zhou Virtual payment cards issued by banks for mobile and wearable devices
JP4136857B2 (ja) * 2003-09-11 2008-08-20 キヤノン株式会社 機器検索方法およびプログラム
KR101062661B1 (ko) * 2003-11-05 2011-09-06 주식회사 비즈모델라인 사용자별 법인카드 이용방법
KR101062657B1 (ko) * 2003-11-05 2011-09-06 주식회사 비즈모델라인 스마트 카드를 이용한 법인카드 이용 방법
KR20050078397A (ko) * 2004-01-29 2005-08-05 삼성전자주식회사 객체지향 프로그램에서 객체 접근시 발생하는 부하를줄이기 위한 명령 변환 방법 및 연산장치
WO2005119607A2 (en) * 2004-06-03 2005-12-15 Tyfone, Inc. System and method for securing financial transactions
US8448158B2 (en) * 2005-02-03 2013-05-21 Mitsubishi Electric Corporation Program code generation support device and method, program execution device and method, and program code compression processing device and method and program thereof
ES2708499T3 (es) * 2005-02-03 2019-04-09 Mitsubishi Electric Corp Dispositivo y método de soporte de la generación de código de programa, dispositivo y método de ejecución del programa, y dispositivo y método de procesamiento de la compresión del código de programa y programa para el mismo
US8198988B2 (en) * 2007-11-16 2012-06-12 Sony Corporation Secure link between controller and device
CA2776913C (en) * 2009-10-08 2017-01-03 Irdeto Canada Corporation A system and method for aggressive self-modification in dynamic function call systems
KR20110051003A (ko) * 2009-11-09 2011-05-17 여호룡 일회용 가상인증번호와 디스플레이 스마트카드를 이용한 통합인증 시스템 및 그 방법
US20140133656A1 (en) * 2012-02-22 2014-05-15 Qualcomm Incorporated Preserving Security by Synchronizing a Nonce or Counter Between Systems
WO2013155627A1 (en) * 2012-04-16 2013-10-24 Salt Technology Inc. Systems and methods for facilitating a transaction using a virtual card on a mobile device
KR101666032B1 (ko) * 2012-05-31 2016-10-14 한국전자통신연구원 로드 가능한 모듈에 대한 가상화 지원 방법 및 장치
KR102017631B1 (ko) * 2012-09-03 2019-09-03 삼성전자주식회사 데이터 통신을 위한 단말 장치 및 방법
KR101316466B1 (ko) 2012-11-20 2013-10-08 신한카드 주식회사 다이나믹 트랙 2 정보를 이용한 모바일 결제 시스템 및 방법
KR101354388B1 (ko) 2012-12-12 2014-01-23 신한카드 주식회사 일회성 카드번호 생성방법
US9978094B2 (en) * 2013-10-11 2018-05-22 Visa International Service Association Tokenization revocation list
KR102306535B1 (ko) * 2014-06-19 2021-09-29 삼성전자주식회사 디바이스를 제어하는 방법 및 디바이스
KR102270331B1 (ko) * 2014-08-14 2021-06-29 엔에이치엔페이코 주식회사 보안 기능을 강화한 결제 서비스 방법과 시스템, 및 기록 매체
KR101621254B1 (ko) * 2014-08-27 2016-05-31 유한회사 실릭스 오티피 기반의 가상 번호 결제 방법, 컴퓨터 판독가능한 기록매체 및 시스템
KR102334894B1 (ko) * 2014-12-24 2021-12-03 십일번가 주식회사 웹 기반 인증 결제 장치, 웹 기반 인증 결제 방법, 웹 기반 인증 결제 시스템 및 컴퓨터 프로그램이 기록된 기록매체
US9871772B1 (en) * 2015-03-17 2018-01-16 The Charles Stark Draper Laboratory, Inc. Cryptographic system for secure command and control of remotely controlled devices
KR101672324B1 (ko) * 2015-03-31 2016-11-04 주식회사 신세계아이앤씨 사용자의 간편한 복합 결제를 지원하는 모바일 결제 서비스 제공 시스템 및 방법
KR101779506B1 (ko) * 2015-10-20 2017-09-18 엘지전자 주식회사 이동단말기 및 그 제어방법
KR101751887B1 (ko) * 2015-12-29 2017-07-11 한국정보통신주식회사 일회용 카드 코드 생성 방법, 그를 이용한 카드 결제 승인 방법, 카드 리더기 및 서버
CN113411317B (zh) * 2016-05-11 2023-05-26 创新先进技术有限公司 一种验证身份的方法和系统、智能穿戴设备
KR101941643B1 (ko) * 2016-10-06 2019-01-23 동국대학교 산학협력단 멀티 드론 제어 시스템 및 방법
KR101718695B1 (ko) * 2016-12-28 2017-03-22 비콤시스템주식회사 가상화 기반 컨트롤러가 탑재된 빌딩자동제어 장치
US20180268407A1 (en) * 2017-03-19 2018-09-20 TokenID, Inc. Apparatus and method for payment authorization and authentication based tokenization
WO2019031627A1 (ko) 2017-08-09 2019-02-14 주식회사 센스톤 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램
KR102099973B1 (ko) 2019-02-15 2020-04-10 주식회사 센스톤 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004274429A (ja) 2003-03-10 2004-09-30 Sony Corp 情報処理装置、およびアクセス制御処理方法、情報処理方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
EP3923105A4 (en) 2022-11-23
CN113196323A (zh) 2021-07-30
KR102269892B1 (ko) 2021-06-28
EP3754580A1 (en) 2020-12-23
KR102269913B1 (ko) 2021-06-28
KR20200097626A (ko) 2020-08-19
KR20210080312A (ko) 2021-06-30
KR20210078472A (ko) 2021-06-28
US20200410476A1 (en) 2020-12-31
KR20210078471A (ko) 2021-06-28
KR20240015053A (ko) 2024-02-02
EP3923105A1 (en) 2021-12-15
KR102611527B1 (ko) 2023-12-07
KR102618467B1 (ko) 2023-12-27
EP3754580A4 (en) 2021-11-17
KR102269922B1 (ko) 2021-06-28
EP4231220A2 (en) 2023-08-23
KR20200097642A (ko) 2020-08-19
EP4231220A3 (en) 2023-10-04
SG11202011498UA (en) 2020-12-30
KR20200097657A (ko) 2020-08-19
KR20200097655A (ko) 2020-08-19
CN113396371A (zh) 2021-09-14

Similar Documents

Publication Publication Date Title
KR102243532B1 (ko) 칩 고유값 기반의 가상코드를 이용하여 장치를 식별하는 방법, 프로그램 및 장치
KR102525471B1 (ko) 인증용가상코드를 이용한 사용자 접근 관리 방법 및 시스템
CN109389382B (zh) 虚拟卡号生成装置及验证装置、金融交易提供系统、方法及程序
US11609983B2 (en) System, method, and program for providing virtual code, virtual code generating device, and virtual code verifying device
US10304059B2 (en) Biometric payment in transit systems
KR102363940B1 (ko) 인증용가상코드를 이용한 사용자 인증 방법 및 시스템
US20200051075A1 (en) System, method and program for providing financial transaction by virtual code, virtual code generator and virtual code verification device
KR102501750B1 (ko) 인증용가상코드를 이용한 사용자 인증 방법 및 시스템
US11379837B2 (en) Method, program, and apparatus for identifying device by using chip unique value-based virtual code
EP4113412A1 (en) Device and method for virtual authorization code-based process authorization
CN113966591B (zh) 利用虚拟代码的使用者设定信息认证方法、记录介质以及装置
KR102479730B1 (ko) 스마트 카드 장치, 인증용가상코드 생성 장치, 이를 이용한 인증용가상코드 생성 방법 및 인증용가상코드 검증 서버
US20220182376A1 (en) User authentication method using authentication virtual code and system therefor
US11783313B2 (en) Method, program, server, wearable device for providing wearable device-based financial transaction
US11960595B2 (en) System, method, and program for providing virtual code, virtual code generating device, and virtual code verifying device
KR102329227B1 (ko) 가상코드를 기반으로 한 실제코드 검색방법 및 프로그램
CN115668255A (zh) 智能卡装置、认证用虚拟代码生成装置、利用认证用虚拟代码生成装置的认证用虚拟代码生成方法及认证用虚拟代码验证服务器
KR20230008657A (ko) 다른 용도의 인증용가상코드 생성 방법 및 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right