KR20220159665A - 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법 - Google Patents

바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법 Download PDF

Info

Publication number
KR20220159665A
KR20220159665A KR1020210067547A KR20210067547A KR20220159665A KR 20220159665 A KR20220159665 A KR 20220159665A KR 1020210067547 A KR1020210067547 A KR 1020210067547A KR 20210067547 A KR20210067547 A KR 20210067547A KR 20220159665 A KR20220159665 A KR 20220159665A
Authority
KR
South Korea
Prior art keywords
barcode
key
session
verification
public key
Prior art date
Application number
KR1020210067547A
Other languages
English (en)
Other versions
KR102666036B1 (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 KR1020210067547A priority Critical patent/KR102666036B1/ko
Priority claimed from KR1020210067547A external-priority patent/KR102666036B1/ko
Publication of KR20220159665A publication Critical patent/KR20220159665A/ko
Application granted granted Critical
Publication of KR102666036B1 publication Critical patent/KR102666036B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition

Abstract

서버와의 연동을 최소화하면서도 서버에서 키가 유출되어도 기발급된 바코드를 폐기하지 않고 진위여부를 검증할 수 있는 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법을 제시한다. 제시된 바코드 생성 장치는 마스터 개인키 및 마스터 공개키로 구성된 마스터키를 근거로 세션키를 유도하는 세션키 유도부; 및 바코드 데이터와 바코드 전자서명값 및 상기 세션키를 근거로 바코드를 생성하는 바코드 생성부;를 포함한다.

Description

바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법{Apparatus and method for generating barcodes, and apparatus and method for verifying barcodes}
본 발명은 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법에 관한 것으로, 보다 상세하게는 바코드를 생성할 수 있는 장치 및 방법, 및 바코드를 검증할 수 있는 장치 및 방법에 관한 것이다.
바코드를 생성하고 검증하는 방법은 바코드리더로 해당 바코드를 읽어 서버로 전송하여 해당 바코드가 발급되었는지의 여부를 체크하는 것이 가장 일반적인 방법이다.
유통표준코드로 불리는 1차원 바코드인 상품식별코드의 경우 예컨대 8801234560016과 같이 생성되며, 해당 바코드가 실제로 발급이 되었는지는 서버와의 연동을 통해 서버에서 확인할 수밖에 없다. 따라서, 바코드를 위조할 경우 서버에는 발급 이력이 없기 때문에 오류가 발생하여 잘못된 바코드임을 확인하게 된다. 다시 말해, 바코드가 바코드 식별값만으로 구성될 경우 매번 서버와의 연동없이 바코드 진위 여부를 확인할 방법이 없게 된다.
서버와 연동하지 않고 바코드의 진위 여부를 판단하는 방법으로, 바코드 안에 바코드 식별값과 더불어 전자서명값을 추가하는 방법이 있다.
전자서명값을 추가하는 방법 중 HS256(HMAC_SHA256)과 같이 비밀키암호 방식을 사용하는 경우에는 바코드리더가 해당 비밀키를 가지고 있어야만이 해당 전자서명값을 검증할 수 있다.
그런데, 스마트폰을 바코드리더로 사용할 경우 스마트폰을 해킹하여 해당 비밀키가 유출되면 무용지물이 되게 된다. 따라서, 비밀키 방식의 전자서명을 사용할 때에도 매번 서버와의 연동을 통해 서버에서 전자서명값을 검증할 수밖에 없게 된다.
한편, 전자서명값을 추가하는 방법에 공개키암호 방식을 사용하는 방식이 있을 수 있다. 이럴 경우 바코드리더는 공개키만을 가지고 있으면 전자서명값을 검증할 수 있으므로 앞서의 비밀키 방식이 가지는 단점은 없다.
그러나, 다수의 발급된 바코드 개수만큼의 공개키를 바코드리더가 가지고 있어야 하므로 그 수가 많아질 경우 바코드리더의 용량 문제로 현실성이 없게 된다. 결국, 모든 개수의 공개키를 내장할 수 없으므로 매번 서버와의 연동을 통해 전자서명값을 검증할 수밖에 없다.
이러한 문제를 해결하기 위하여 하나 또는 적은 수의 몇 개의 개인키, 공개키 쌍을 가지고 전자서명을 하는 경우도 생각해 볼 수 있다. 이럴 경우 하나 또는 적은 수의 몇 개의 공개키만 바코드리더가 가지고 있으면 되므로 매번 서버와 연동할 필요가 없게 된다. 하지만, 이 방법은 치명적인 보안취약점을 가지게 되는데, 서버에서 키가 유출될 경우 이미 발급된 바코드 전체를 폐기해야 하는 문제를 갖는다. 이 방법은 앞서의 사례와 다르게 키 유출 시 서명에 사용된 개인키와 검증에 사용되는 공개키가 직접적인 관계가 있어 복구할 방법이 없게 되는 것이다.
결국, 종래의 기술은 매번 서버와의 연동을 통해 바코드의 진위 여부를 확인하거나 매번 연동은 하지 않더라도 서버에서 키 유출시 기발급된 바코드가 모두 폐기되어야 하는 취약점을 가지게 된다.
선행기술 1 : 대한민국 등록특허 제10-1234040호(바코드 생성 방법, 바코드의 유효성 판단 방법, 바코드 생성 장치, 및 이를 포함하는 시스템) 선행기술 2 : 대한민국 공개특허 제10-2019-0080275호(바코드 검출 장치 및 이를 이용한 바코드 검출 방법) 선행기술 3 : 대한민국 등록특허 제10-1039390호(바코드를 이용한 발급문서 진위확인 방법 및 장치) 선행기술 4 : 대한민국 공개특허 제10-2020-0027438호(전자티켓의 입장 검증을 위한 위조방지시스템 및 방법) 선행기술 5 : 대한민국 등록특허 제10-1871686호(공유 암호화 키 기반의 카드 정보 재사용 방지를 위한 카드 정보 처리 방법, 그 장치 및 금융 서버의 동작 방법) 선행기술 6 : 대한민국 등록특허 제10-1040853호(이차원 바코드를 이용한 하이브리드 서명 검증 방법)
본 발명은 상기한 종래의 문제점을 해결하기 위해 제안된 것으로, 서버와의 연동을 최소화하면서도 서버에서 키가 유출되어도 기발급된 바코드를 폐기하지 않고 진위여부를 검증할 수 있는 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법을 제공함에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 바코드 생성 장치는, 마스터 개인키 및 마스터 공개키로 구성된 마스터키를 근거로 세션키를 유도하는 세션키 유도부; 및 바코드 데이터와 바코드 전자서명값 및 상기 세션키를 근거로 상기 마스터키의 유효성에 따라 서버와의 연동 없이 선택적으로 검증 가능한 바코드를 생성하는 바코드 생성부;를 포함한다.
상기 바코드 생성부는, 상기 바코드 데이터 및 상기 세션키를 기반으로 상기 바코드 전자서명값을 구한 후에, 상기 구한 바코드 전자서명값과 상기 바코드 데이터 및 상기 세션키를 포함하는 바코드를 생성할 수 있다.
상기 마스터키를 근거로 유도되는 세션키는 세션 개인키 및 세션 공개키를 포함하되, 상기 세션 개인키는 상기 바코드 전자서명값을 구할 때 사용되고, 상기 세션 공개키가 상기 바코드에 포함될 수 있다.
상기 바코드 생성부는, 상기 바코드 전자서명값을 구한 이후에는 상기 세션 개인키를 폐기할 수 있다.
상기 바코드 전자서명값이 구해진 이후에는, 상기 바코드 생성부는 상기 세션 개인키를 폐기하고, 상기 세션키 유도부는 세션키 유도에 사용된 난수를 폐기할 수 있다.
상기 바코드 생성부는, 상기 세션 공개키를 바코드 검증 장치에게로 전송할 수 있다.
본 발명의 바람직한 실시양태에 따른 바코드 생성 방법은, 세션키 유도부가, 마스터 개인키 및 마스터 공개키로 구성된 마스터키를 근거로 세션키를 유도하는 단계; 및 바코드 생성부가, 바코드 데이터와 바코드 전자서명값 및 상기 세션키를 근거로 상기 마스터키의 유효성에 따라 서버와의 연동 없이 선택적으로 검증 가능한 바코드를 생성하는 단계;를 포함한다.
한편, 본 발명의 바람직한 실시양태에 따른 바코드 검증 장치는, 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드를 판독하는 바코드 판독부; 상기 판독된 바코드에서 상기 세션 공개키를 추출하는 세션 공개키 추출부; 상기 세션 공개키 및 외부로부터의 마스터 공개키를 기반으로 바코드 검증키를 유도해 내는 바코드 검증키 유도부; 및 상기 바코드 검증키를 근거로 상기 마스터 공개키의 유효성에 따라 서버와의 연동 없이 상기 바코드의 진위여부를 선택적으로 검증하는 바코드 검증부;를 포함한다.
상기 바코드 검증키 유도부는, 서버와의 통신을 통해 마스터키 유출여부를 먼저 체크한 후에 유출 여부에 따라 제 1 바코드 검증키 유도 방식 및 제 2 바코드 검증키 유도 방식 중에서 어느 한 방식으로 바코드 검증키를 유도해 낼 수 있다.
상기 마스터키가 유출되지 않았다면, 상기 바코드 검증키 유도부는 상기 제 1 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시하되, 상기 제 1 바코드 검증키 유도 방식은 상기 마스터 공개키 및 상기 세션 공개키 추출부에서 추출한 세션 공개키를 근거로 바코드 검증키를 유도해 낼 수 있다.
상기 마스터키가 유출되었다면, 상기 바코드 검증키 유도부는 상기 제 2 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시하되, 상기 제 2 바코드 검증키 유도 방식은 상기 세션 공개키 추출부에서 추출한 세션 공개키 대신에 기저장된 세션 공개키 및 상기 마스터 공개키를 근거로 바코드 검증키를 유도해 낼 수 있다.
상기 기저장된 세션 공개키는 바코드 생성 장치로부터 제공받은 키일 수 있다.
상기 바코드 검증부는, 상기 바코드 검증키로부터 상기 바코드 전자서명값을 검증함으로써, 상기 바코드내의 바코드 데이터의 진위여부를 검증할 수 있다.
한편, 혼잡시간대 또는 통신장애가 발생하였을 때에만 서버와의 통신없이 바코드 검증키 유도 및 바코드 검증이 이루어지도록 제어하는 제어부;를 추가로 포함할 수 있다.
본 발명의 바람직한 실시양태에 따른 바코드 생성 방법은, 바코드 판독부가, 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드를 판독하는 단계; 세션 공개키 추출부가, 상기 판독된 바코드에서 상기 세션 공개키를 추출하는 단계; 바코드 검증키 유도부가, 상기 세션 공개키 및 외부로부터의 마스터 공개키를 기반으로 바코드 검증키를 유도해 내는 단계; 및 바코드 검증부가, 상기 바코드 검증키를 근거로 상기 바코드의 진위여부를 검증하는 단계;를 포함한다.
이러한 구성의 본 발명에 따르면, 바코드리더가 서버와의 연동을 최소화하면서도 서버에서 키가 유출되더라도 바코드의 진위 여부를 검증할 수 있게 함으로써, 서버와의 연동 부하에 따른 오류나 통신 장애로 인한 중단, 시간 지연과 같은 문제를 발생시키는 위험을 최소화할 수 있다.
연동 장애를 회피하기 위해 통신 이중화/삼중화, 다수의 서버 분산 배치 등 고비용 환경을 구성하지 않게 함으로써 비용을 절감할 수 있게 한다.
또한, 서버에서 키가 유출되더라도 서버와의 추가적인 통신이나 연동 과정없이도 발급된 바코드의 진위를 검증할 수 있게 함으로써 보안성을 강화할 수 있게 한다.
다시 말해서, 기존의 경우에는 악의의 사용자가 서버에서 키를 도용하여 위조 바코드(즉, 불법적인 바코드)를 공연 티켓 또는 화장품 등의 제품에 사용할 수 있다. 이와 같이, 종래에는 서버에서 키가 유출되면 본의 아니게 공연 관람객 및 해당 공연의 주체측은 해킹 가능성으로 인해 각 티켓 등에 발급된 전체 바코드를 폐기해야 하므로, 금전적인 피해를 입을 수 있다. 특히, 화장품 등의 제품에 위조 바코드가 붙여져서 판매되었는데 추후에 서버에서 키가 유출되었음을 알게 되었다면 이전에 나간 모든 화장품을 회수하여 바코드를 폐기시키고 다시 발급한 바코드를 부착시시켜야 하는 불상사가 발생될 수 있다.
그러나, 본 발명에 의하면 서버에서 키를 몰래 빼내었다고 하더라도 바코드 생성 당시에 사용된 세션 개인키를 알 수 없으므로, 정상적인 바코드와 동일한 위조 바코드를 만들어 낼 수 없게 된다. 그에 따라, 본 발명은 서버에서 키가 유출되었다고 하더라도 서버와의 통신을 하지 않고서도 공연 티켓 또는 화장품 등에 마킹된 바코드에 대한 검증과정에서 위조 바코드를 금방 색출할 수 있다. 이와 같이, 본 발명의 경우 다량의 화장품이 이미 판매된 이후에 서버에서의 키가 유출된 것으로 판명되었다고 하더라도, 비정상적인 바코드는 판매 과정에서 이미 걸러졌으므로 기판매된 화장품을 회수할 필요가 없다.
도 1은 본 발명의 실시예에 따른 바코드 생성 장치의 구성도이다.
도 2는 본 발명의 실시예에 따른 바코드 생성 방법을 설명하기 위한 플로우차트이다.
도 3은 도 2의 설명에 채용되는 도면이다.
도 4는 본 발명의 실시예에 따른 바코드 검증 장치의 구성도이다.
도 5는 본 발명의 실시예에 따른 바코드 검증 방법을 설명하기 위한 플로우차트이다.
도 6은 도 5의 설명에 채용되는 도면이다.
도 7은 본 발명의 실시예에 따른 바코드 생성 장치와 바코드 검증 장치를 일체화시킨 바코드 생성 및 검증장치를 도시한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 상세하게 설명하고자 한다.
그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예에 따른 바코드 생성 장치의 구성도이다.
본 발명의 실시예에 따른 바코드 생성 장치(10)는 마스터 개인키와 마스터 공개키로 구성된 마스터키로부터 하나 이상의 바코드를 생성할 수 있다.
여기서, 각각의 바코드는 바코드 데이터, 바코드 전자서명값 및 세션 공개키를 포함한다.
마스터키는 유효기간이 대략 1년 이상으로서 세션키(세션개인키, 세션공개키)를 유도하기 위한 키이다. 하나의 마스터키로 여러 세션키(session key)를 만들 수 있다.
세션키는 바코드를 생성하는 세션에서만 유효한 키이다. 하나의 세션에 오직 하나의 바코드를 생성할 수도 있고, 하나의 세션에 수백, 수천 개 등 다수의 개별적인 바코드를 생성할 수도 있다.
예를 들어, 마스터키는 주지된 공개키 알고리즘의 하나인 RSA암호화 알고리즘을 기반으로 생성될 수 있다. 마스터키의 생성 과정에 대해 설명하면 하기와 같을 수 있다.
우선, 매우 큰 임의의 소수 p, q를 선택한다. 여기서, 선택된 소수 p = 61이고, q = 53이라고 가정한다.
그리고, 이들의 곱 N을 구한다. 즉, "N = p*q = 3233"이 된다.
이어, p와 q는 소수이기 때문에 오일러 토션 함수에 의해서 "Φ(phi)(N) = (p-1)*(q-1)"을 계산한다. 즉, Φ(phi)(3233) = (61-1)*(53-1) = 3120 이다.
이후, 암호화를 위한 키 e를 선택한다. 이때, "1<e<Φ(phi)(N), GCD(e, Φ(phi)(N)) = 1"을 만족해야 한다. 즉, Φ(phi)(N) = 3120과 서로소이고 Φ(phi)(N)보다 작은 양수를 선택한다. "GCD(e, Φ(phi)(N)) = 1"에 의해 선택되는 양수는 17일 수 있다. 이와 같이 선택된 양수(즉, 키 e)는 마스터 공개키로 사용된다.
그리고 나서, 선택된 키 e를 근거로, "d*e = 1 mod Φ(phi)(N) 및 0≤d≤N"을 만족하는 수 d를 계산한다. 즉, "d = e-1 mod Φ(phi)(N)"이 되므로, d = 2753이 된다. 이와 같이 계산된 d는 마스터 개인키로 사용된다.
이와 같은 방식으로, 마스터키(마스터 개인키, 마스터 공개키)는 서버(도시 생략)에서 생성될 수 있다.
바코드 생성 장치(10)는 제조 과정 또는 판매 과정에서 마스터키를 서버(도시 생략)로부터 제공받을 수 있다. 물론, 마스터키를 제공받을 때에는 마스터키의 유출 여부가 체크된 이후에 제공받는 것이 바람직할 수 있다.
이와 같은 바코드 생성 장치(10)는 바코드를 생성할 수 있는 것이라면 어떠한 형태이어도 무방하다.
바코드 생성 장치(10)는 통신부(11), 저장부(12), 세션키 유도부(13), 바코드 생성부(14), 및 제어부(15)를 포함할 수 있다.
통신부(11)는 서버(도시 생략)와 통신하여 마스터키(마스터 개인키, 마스터 공개키)를 수신할 수 있다.
저장부(12)는 마스터키(마스터 개인키, 마스터 공개키)를 저장할 수 있다. 여기서, 서버(도시 생략)로부터 한번 마스터키를 제공받으면 마스터키의 유효기간동안 저장되는 것으로 할 수 있다.
또한, 저장부(12)는 세션 공개키가 등록된 화이트리스트를 저장할 수 있다.
세션키 유도부(13)는 하나 또는 그 이상의 바코드를 생성하는 세션이 시작됨에 따라 저장부(12)의 마스터키를 근거로 세션키(세션 개인키, 세션 공개키)를 유도할 수 있다.
RSA 암호화 방식을 일 예로 하여, 세션키 유도부(13)에서의 세션키 유도를 설명하면 다음과 같을 수 있다.
세션키 유도부(13)는 우선 RSA 암호화 방식에 의해 난수 "dA=851"를 선택할 수 있다. 그리고, 공식에 의해 "eA = 1/dA (mod Φ(phi)(N))"을 구한다. 즉, 상기 공식에 의해 eA= 11이 된다. 이후, "dB = dA*d = 2342803, eB = 1/dB (mod Φ(phi)(N)) = 187"을 계산할 수 있다. 여기서, eA는 세션 공개키가 되고, 세션 개인키는 dB가 된다.
상기의 설명에서 알 수 있다시피, 세션 개인키는 임의의 난수 dA와 마스터 개인키 d를 모듈러(N) 곱으로 유도되고, 세션 공개키는 난수 dA로부터 모듈러(N) 인버스로 유도됨을 알 수 있다.
이와 같이 세션키 유도부(13)는 RSA 암호화 방식으로 세션키(세션 개인키, 세션 공개키)를 유도할 수 있는 것으로 설명하였는데, 필요에 따라서는 다른 종류의 공개키 알고리즘인 ECC(Elliptic curve cryptography; 타원곡선) 암호화 방식 등을 채용하여 세션키를 유도할 수 있다. 물론, ECC 암호화 방식 이외로 공개키암호의 특성에 맞게 여러 유도 방식이 있을 수 있다.
바코드 생성부(14)는 바코드 데이터, 바코드 전자서명값, 및 세션키 유도부(13)에서 유도된 세션키(세션 개인키, 세션 공개키)를 근거로, 마스터키의 유효성에 따라 서버와의 연동 없이 선택적으로 검증 가능한 바코드를 생성할 수 있다.
다시 말해서, 바코드 생성부(14)는 바코드 데이터를 기반으로 하는 바코드 전자서명값을 구할 수 있다. 예를 들어, 바코드 생성부(14)는 "바코드 데이터 m = 56"에 대해 세션 개인키를 이용하여 전자서명을 수행하면 "c = m^dB (mod N) = 754"가 될 수 있다. 여기서, c는 바코드 전자서명값이 된다. 이와 같이 바코드 전자서명값 c를 구한 이후에, 바코드 생성부(14)는 바코드 데이터 m, 바코드 데이터 m 및 세션 개인키 dB를 기반으로 하는 바코드 전자서명값 c, 및 세션키 유도부(13)에서 유도된 세션키(보다 구체적으로는, 세션 공개키)를 바코드에 포함시킴으로써, 바코드를 생성할 수 있다.
바코드 생성부(14)는 전자서명이 완료되거나 바코드 생성이 완료되면 보안성을 확보하기 위해 전자서명에 사용된 세션 개인키 dB를 폐기한다. 물론, 보다 높은 보안성을 확보하기 위해, 전자서명이 완료되거나 바코드 생성이 완료되면 세션키 유도부(13)는 세션키 유도에 사용된 난수 dA를 폐기하고, 바코드 생성부(14)는 전자서명에 사용된 세션 개인키 dB를 폐기하는 것이 바람직하다.
이와 같이, 세션 개인키 dB를 폐기하거나 난수 dA 및 세션 개인키 dB를 폐기하는 것에 의해, 마스터키가 유출되었다고 하여도 악의의 사용자는 마스터키인 d, e로부터 난수 dA 또는 세션 개인키 dB를 찾을 수 없게 된다. 이에 의해, 악의의 사용자는 정상적인 바코드 전자서명값을 위조해 낼 수 없으며, 여전히 세션 공개키 eA는 유효하므로 추후 바코드 검증 장치(20)는 서버와의 통신을 하지 않고서도 바코드를 검증할 수 있게 된다.
한편, 바코드 생성부(14)는 유도된 세션 공개키 eA를 화이트리스트에 등록시킨 후에 저장부(12)에 저장시킬 수 있다. 그리고, 바코드 생성부(14)는 해당 세션 공개키 eA를 통신부(11)를 통해 바코드 검증 장치(20)에게로 전송할 수 있다.
이와 같이 세션 개인키 dB를 폐기하거나, 세션 개인키 dB 및 난수 dA를 폐기하게 되면 어떠한 악의적인 사용자라고 하더라도 세션 개인키 dB를 파악할 수 없다. 다시 말해서, 악의적인 사용자가 서버에서 마스터키를 불법으로 유출하여 바코드를 생성한 후에 이를 공연 티켓 또는 화장품 등의 제품에 사용하였다고 하더라도, 세션 개인키를 정확히 모르므로 해당 바코드들은 모두 위조(불법) 바코드가 될 것이다. 이로 인해, 서버와의 통신을 하지 않고서도 바코드 검증 장치(20)에 의해 즉각적으로 위조 바코드인 것으로 판명될 것이다.
따라서, 악의적인 사용자가 서버에서 키를 몰래 빼내어 위조 바코드를 생성한 후에 사용하였다고 하더라도, 정상적인 바코드 생성 당시의 세션 개인키를 알 수 없었으므로 정상적인 바코드와 동일한 위조 바코드를 만들어 낼 수 없게 된다. 이로 인해, 서버에서 키가 유출되었다고 하더라도 서버와의 통신을 하지 않고서도 공연 티켓 또는 화장품 등에 마킹된 위조 바코드를 금방 색출할 수 있다. 이와 같이, 다량의 화장품이 이미 판매된 이후에 서버에서의 키가 유출된 것으로 판명되었다고 하더라도, 비정상적인 바코드는 판매 과정에서 이미 걸러졌기 때문에 기판매된 화장품을 회수할 필요가 없다.
제어부(15)는 바코드 생성 장치(10)의 전체적인 동작을 제어한다.
도 2는 본 발명의 실시예에 따른 바코드 생성 방법을 설명하기 위한 플로우차트이고, 도 3은 도 2의 설명에 채용되는 도면이다.
먼저, 바코드를 생성하는 세션이 시작되면 세션키 유도부(13)는 저장부(12)의 마스터키(마스터 개인키, 마스터 공개키)를 근거로 세션키를 유도한다(S10). 이 경우, 예를 들어 세션키 유도부(13)는 우선 RSA 암호화 방식에 의해 난수 "dA=851"를 선택할 수 있다. 그리고, 공식에 의해 "eA = 1/dA (mod Φ(phi)(N))"을 구한다. 즉, 상기 공식에 의해 eA= 11이 된다. 이후, "dB = dA*d = 2342803, eB = 1/dB (mod Φ(phi)(N)) = 187"을 계산할 수 있다. 여기서, eA는 세션 공개키가 되고, 세션 개인키는 dB가 된다. Φ(phi)(N) = (p-1)*(q-1)이고, p및 q는 서로 상이한 소수이고, d는 마스터 개인키이다.
이와 같이 세션키(세션 개인키, 세션 공개키) 유도가 완료되면, 바코드 생성부(14)는 소정의 바코드를 생성한다(S12). 이 경우, 바코드 생성부(14)는 먼저 소정의 바코드 데이터를 기반으로 하는 바코드 전자서명값을 구한다. 보다 구체적으로 설명하면, 바코드 생성부(14)는 예컨대 "바코드 데이터 m = 56"에 대해 세션 개인키를 이용하여 전자서명을 수행함으로써 "c = m^dB (mod N) = 754"를 구한다. 여기서, c는 바코드 전자서명값이 된다. 따라서, 바코드 생성부(14)는 바코드 데이터 m, 바코드 데이터 m 및 세션 개인키 dB를 기반으로 하는 바코드 전자서명값 c, 및 세션키 유도부(13)에서 유도된 세션 공개키를 바코드에 포함시킴으로써, 하나의 바코드(16) 또는 다수의 바코드(17a ~ 17n)를 생성한다.
그리고 나서, 바코드 생성부(14)는 유도된 세션 공개키 eA를 화이트리스트에 등록시킨 후에 저장부(12)에 저장시킨다(S14). 그리고, 바코드 생성부(14)는 해당 세션 공개키 eA를 통신부(11)를 통해 바코드 검증 장치(20)에게로 전송할 수 있다.
또한, 바코드 생성부(14)는 보안성을 확보하기 위해 전자서명에 사용된 세션 개인키 dB를 폐기한다(S16). 물론, 보다 높은 보안성을 확보하기 위해, 전자서명이 완료되거나 바코드 생성이 완료되면 세션키 유도부(13)는 세션키 유도에 사용된 난수 dA를 폐기하고, 바코드 생성부(14)는 전자서명에 사용된 세션 개인키 dB를 폐기하는 것이 바람직할 수 있다.
이와 같이, 세션 개인키 dB를 폐기하거나 난수 dA 및 세션 개인키 dB를 폐기하는 것에 의해, 마스터키가 유출되었다고 하여도 악의의 사용자는 마스터키인 d, e로부터 난수 dA 또는 세션 개인키 dB를 찾을 수 없게 된다. 이에 의해, 악의의 사용자는 정상적인 바코드 전자서명값을 위조해 낼 수 없으며, 여전히 세션 공개키 eA는 유효하므로 추후 바코드 검증 장치(20)는 바코드를 검증할 수 있게 된다.
도 4는 본 발명의 실시예에 따른 바코드 검증 장치의 구성도이다.
본 발명의 실시예에 따른 바코드 검증 장치(20)는 세션 공개키와 마스터 공개키를 기초로 유도되는 바코드 검증키를 이용하여 바코드의 진위여부를 검증할 수 있다. 여기서, 바코드는 세션 공개키, 바코드 전자서명값, 및 바코드 데이터를 포함한다.
바코드 검증 장치(20)는 스마트폰과 같은 스마트기기에 내장되어도 된다. 바코드 검증 장치(20)를 스마트폰에 내장시키면 스마트폰을 바코드리더로 사용할 수 있다 물론, 바코드 검증 장치(20)는 바코드리더에 직접 내장될 수도 있다.
이러한 바코드 검증 장치(20)는 통신부(21), 저장부(22), 바코드 판독부(23), 세션 공개키 추출부(24), 바코드 검증키 유도부(25), 바코드 검증부(26), 및 제어부(27)를 포함할 수 있다.
통신부(21)는 바코드 생성 장치(10) 또는 서버(도시 생략)와 통신하여 마스터 공개키를 수신할 수 있다. 예를 들어, 통신부(21)는 바코드 생성 장치(10)와 통신하여 해당 바코드 생성 장치(10)에서의 마스터 공개키를 제공받을 수 있다. 다른 한편으로는, 통신부(21)는 서버(도시 생략)와 통신하여 서버에서의 마스터 공개키를 제공받을 수 있다.
또한, 통신부(21)는 바코드 생성 장치(10)로부터의 세션 공개키를 수신할 수 있다.
저장부(22)는 마스터 공개키를 저장할 수 있다. 여기서, 마스터 공개키는 유효기간동안 계속 저장되는 것으로 할 수 있다. 앞서 설명한 바와 같이 마스터 공개키는 유효기간이 1년 이상인 Long-term 키이므로, 대략 10개 정도를 저장하여도 최소 10년 이상의 바코드를 생성, 검증할 수 있다.
한편, 저장부(22)는 바코드 생성 장치(10)로부터의 세션 공개키를 저장할 수 있다.
바코드 판독부(23)는 각종 공연 티켓 또는 화장품 등에 마킹된 바코드를 판독할 수 있다. 예를 들어, 바코드 판독부(23)는 파싱(parsing) 기법을 통해 바코드를 세가지의 구분요소 즉, 세션 공개키, 바코드 전자서명값, 바코드 데이터로 분해할 수 있다.
세션 공개키 추출부(24)는 바코드 판독부(23)에서 판독된 바코드의 구분요소중에서 세션 공개키를 추출할 수 있다.
바코드 검증키 유도부(25)는 마스터 공개키와 세션 공개키를 기반으로 하여 바코드 검증키를 유도해 낼 수 있다. 예를 들어, 바코드 검증키 유도부(25)는 세션 공개키 eA와 마스터 공개키 e로부터 "eC=eA*e (mod N)"를 계산하면 "eC = 187"를 유도해 낼 수 있다. 여기서, eC는 바코드 검증키가 된다.
여기서, 바코드 검증키 유도부(25)에서 이용하는 마스터 공개키는 저장부(22)에 기저장되어 있는 마스터 공개키이고, 세션 공개키는 세션 공개키 추출부(24)에서 추출되거나 저장부(22)에 기저장되어 있는 세션 공개키일 수 있다.
다시 말해서, 바코드 검증키 유도부(25)는 바코드 검증키를 유도함에 있어서, 서버와의 통신을 통해 마스터키 유출여부를 먼저 체크한 후에 유출 여부에 따라 제 1 바코드 검증키 유도 방식 및 제 2 바코드 검증키 유도 방식 중에서 어느 한 방식으로 바코드 검증키 유도를 행할 수 있다.
예를 들어, 마스터키가 유출되지 않았다면 바코드 검증키 유도부(25)는 제 1 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시한다. 제 1 바코드 검증키 유도 방식은 마스터 공개키 및 세션 공개키 추출부(24)에서 추출한 세션 공개키를 근거로 바코드 검증키를 유도하는 방식이라고 할 수 있다.
만약, 마스터키가 유출되었다면 바코드 검증키 유도부(25)는 제 2 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시한다. 제 2 바코드 검증키 유도 방식은 세션 공개키 추출부(24)에서 추출한 세션 공개키 대신에 저장부(22)에 기저장된 세션 공개키 및 마스터 공개키를 근거로 바코드 검증키를 유도하는 방식이라고 할 수 있다.
물론, 필요에 따라서는 세션 공개키 추출 이후에, 바코드 검증키 유도부(25)는 서버와의 통신없이 마스터키 유출 여부를 체크하는 과정을 거치지 않고 곧바로 마스터 공개키 및 세션 공개키 추출부(24)에서 추출한 세션 공개키를 근거로 바코드 검증키를 유도하는 것으로 하여도 무방하다.
바코드 검증부(26)는 바코드 검증키 유도부(25)에서 유도된 바코드 검증키를 근거로 바코드의 진위여부를 검증할 수 있다.
보다 구체적으로, 바코드 검증부(26)는 바코드 검증키 유도부(25)에서 유도된 바코드 검증키로부터 바코드 판독부(23)에서 판독된 바코드내의 바코드 전자서명값을 검증함으로써, 해당 바코드의 진위여부를 파악할 수 있다. 예를 들어, "c^eC (mod N)=56"이 되어 바코드 데이터 m과 같음을 알 수 있다.
제어부(27)는 바코드 검증 장치(20)의 전체적인 동작을 제어한다.
필요에 따라서, 제어부(27)는 혼잡시간대(예컨대, 공연 시작이 임박하여 입장객이 많이 몰리는 시간대, 화장품 등과 같은 제품을 구입하고자 하는 고객이 많이 몰리는 시간대) 또는 통신장애 등이 발생하였을 때에만 서버와의 통신없이 마스터키 유출과는 무관하게 바코드 검증키 유도(이 경우, 세션 공개키 추출부(24)에서 추출한 세션 공개키를 활용할 수 있음) 및 바코드 검증이 이루어지도록 제어할 수 있다. 한편, 제어부(27)는 비혼잡시간대 또는 통신장애가 없는 경우에는 서버와 통신하여 마스터키 유출을 체크하고 유출여부에 따라 바코드 검증키 유도(즉, 제 1 바코드 검증키 유도 방식 또는 제 2 바코드 검증키 유도 방식을 취함) 및 바코드 검증이 이루어지도록 제어할 수 있다.
여기서, 혼잡시간대는 특정 공연 등의 공연 시간에 대응하여 입장시간 대비 1시간 내외 등으로 사전 설정되거나, 시간대별 판독 빈도 수 등의 통계적 분석에 따라 혼잡도 높은 시간대에 대응하여 가변되는 시간으로 설정될 수 있다.
이와 같이 마스터키(마스터 개인키, 마스터 공개키)가 유효한 경우에는 바코드에 이미 정상적인 세션 공개키가 포함되어 있으므로, 상술한 바코드 검증 장치(20)는 검증을 위해 굳이 서버와 연동할 필요가 없이, 오프라인으로 검증이 가능하게 된다.
도 5는 본 발명의 실시예에 따른 바코드 검증 방법을 설명하기 위한 플로우차트이고, 도 6은 도 5의 설명에 채용되는 도면이다.
바코드 검증을 시작하고자 하는 경우, 먼저 바코드 판독부(23)는 각종 공연 티켓 또는 화장품 등에 마킹된 바코드(28)를 판독한다(S20). 이 경우, 바코드 판독부(23)는 파싱(parsing) 기법을 통해 해당 바코드(28)를 세가지의 요소 즉, 세션 공개키, 바코드 전자서명값, 바코드 데이터로 분해할 수 있다.
이어, 세션 공개키 추출부(24)는 바코드 판독부(23)에서 판독된 바코드(28)의 요소중에서 세션 공개키를 추출한다(S22).
그리고, 바코드 검증키 유도부(25)는 마스터키의 유출 여부를 체크한다(S24). 여기서, 마스터키의 유출 여부는 서버와 연동을 해야지만이 마스터키 유출 여부를 확인할 수 있다. 다른 방식으로는, 푸시 메시지(push message)를 전송하여 마스터키 유출을 알려주는 방식도 있다. 푸시 메시지를 전송하여 마스터키 유출을 알려주는 방식도 서버가 어떠한 액션을 취해줘야 할 것이다.
예를 들어, 마스터키가 유출되었다면(S26에서 "예") 바코드 검증키 유도부(25)는 세션 공개키 추출부(24)에서 추출한 세션 공개키 대신에 저장부(22)에 기저장된 화이트리스트에 등록된 세션 공개키를 체크하고(S28), 체크한 세션 공개키 및 저장부(22)내의 마스터 공개키를 기반으로 바코드 검증키를 유도해 낸다(S30). 예를 들어, 바코드 검증키 유도부(25)는 세션 공개키 eA와 마스터 공개키 e로부터 "eC=eA*e (mod N)"를 계산하면 "eC = 187"를 유도해 낼 수 있다. 여기서, eC는 바코드 검증키가 된다. 그리고 나서, 바코드 검증부(26)는 바코드 검증키 유도부(25)에서 유도된 바코드 검증키를 이용하여 해당 바코드(28)의 진위여부를 검증한다(S32). 예를 들어, 바코드 검증부(26)는 바코드 검증키로부터 바코드내의 바코드 전자서명값을 검증한다. 그에 따라, "c^eC (mod N)=56"이 되어 바코드 데이터 m과 같음을 알 수 있다.
반대로, 마스터키가 유출되지 않았다면(S26에서 "아니오") 바코드 검증키 유도부(25)는 저장부(22)의 마스터 공개키와 세션 공개키 추출부(24)에서 추출된 세션 공개키를 기반으로 바코드 검증키를 유도해 낸다(S30). 그리고 나서, 바코드 검증부(26)는 바코드 검증키 유도부(25)에서 유도된 바코드 검증키를 이용하여 해당 바코드(28)의 진위여부를 검증한다(S32). 예를 들어, 바코드 검증부(26)는 바코드 검증키로부터 바코드내의 바코드 전자서명값을 검증한다. 그에 따라, "c^eC (mod N)=56"이 되어 바코드 데이터 m과 같음을 알 수 있다.
이와 같이, 세션 개인키 dB를 폐기하거나 난수 dA 및 세션 개인키 dB를 폐기하는 것에 의해, 마스터키가 유출되었다고 하여도 악의의 사용자는 마스터키인 d, e로부터 난수 dA 또는 세션 개인키 dB를 찾을 수 없게 된다. 이에 의해, 악의의 사용자는 정상적인 바코드 전자서명값을 위조해 낼 수 없으며, 여전히 세션 공개키 eA는 유효하므로 바코드 검증 장치(20)는 서버와의 통신없이도 바코드를 검증할 수 있게 된다.
그리고, 마스터키(마스터 개인키, 마스터 공개키)가 유효한 경우, 바코드에는 이미 정상적인 세션 공개키가 포함되어 있으므로, 바코드 검증 장치(20)는 바코드 검증을 위해 굳이 서버와 연동할 필요가 없다.
한편, 상술한 바와 같은 본 발명의 실시예에 따른 바코드 생성 장치와 바코드 검증 장치를 일체화시킬 수도 있다. 즉, 상술한 실시예들에서는 바코드 생성 장치(10)와 바코드 검증 장치(20)를 서로 개별적으로 구성시켰으나, 도 7에서와 같이 이들을 일체화시킬 수도 있다.
도 7에 도시된 바코드 생성 및 검증 장치(100)는 바코드 생성기(200) 및 바코드 검증기(300)를 포함할 수 있다.
여기서, 바코드 생성기(200)는 상술한 바코드 생성 장치(10)와 동일하게 구성되고, 기능적으로도 바코드 생성 장치(10)와 동일하다. 그에 따라, 바코드 생성기(200)에 대한 상세한 설명은 상술한 바코드 생성 장치(10)의 설명으로 갈음하기로 한다.
한편, 바코드 검증기(300)는 상술한 바코드 검증 장치(20)와 동일하게 구성되고, 기능적으로도 바코드 검증 장치(20)와 동일하다. 그에 따라, 바코드 검증기(300)에 대한 상세한 설명은 상술한 바코드 검증 장치(20)의 설명으로 갈음하기로 한다.
결국, 바코드 생성 및 검증 장치(100)는, 마스터키(마스터 개인키, 마스터 공개키)를 근거로 세션키(세션 개인키, 세션 공개키)를 유도하고, 바코드 데이터와 바코드 전자서명값 및 세션키(바람직하게, 세션 개인키)를 근거로 바코드를 생성하는 바코드 생성기(200); 및 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드내의 정보(바람직하게, 세션 공개키)와 마스터키(바람직하게, 마스터 공개키)를 근거로 바코드 검증키를 유도하고, 바코드 검증키를 근거로 바코드의 진위여부를 검증하는 바코드 검증기(300);를 포함할 수 있다.
이와 같은 바코드 생성 및 검증 장치(100)의 경우, 먼저 바코드 생성기(200)가 마스터키(마스터 개인키, 마스터 공개키)를 근거로 세션키(세션 개인키, 세션 공개키)를 유도하고, 바코드 데이터와 바코드 전자서명값 및 세션키(바람직하게, 세션 개인키)를 근거로 바코드를 생성할 수 있다. 이와 같이 생성된 바코드는 각종 공연 티켓 또는 화장품 등의 제품에 마킹될 수 있다. 그 후, 바코드 검증이 필요할 경우에 바코드 검증기(300)가 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드내의 정보(바람직하게, 세션 공개키)와 마스터키(바람직하게, 마스터 공개키)를 근거로 바코드 검증키를 유도하고, 바코드 검증키를 근거로 바코드의 진위여부를 검증할 수 있다.
상술한 바코드 생성 및 검증 장치(100)에서의 바코드 생성, 바코드 검증에 관련된 세부적인 설명은 동종업계에 종사하는 자라면 앞서 설명한 바코드 생성 장치(10) 및 바코드 검증 장치(20)에 대한 설명으로 충분히 이해할 수 있으리라 본다.
물론, 바코드 생성 및 검증장치(100)에서는 제어부가 굳이 2개일 필요가 없다. 즉, 하나의 제어부가 바코드 생성 및 바코드 검증을 모두 제어하도록 하면 된다. 이는 동종업계에 종사하는 자라면 굳이 도면으로 도시하지 않더라도 주지의 기술로 충분히 알 수 있다. 바코드 생성 및 검증장치(100)의 제어부는 모드 전환에 따라 바코드 생성 또는 바코드 검증이 수행되도록 할 수 있다. 여기서, 모드 전환은 사용자의 키입력에 반응하여 이루어질 수 있다.
따라서, 바코드 생성 및 바코드 검증을 하나의 장치에서 모두 수행하도록 하고자 한다면, 도 7에서와 같이 바코드 생성기(200) 및 바코드 검증기(300)를 포함하는 바코드 생성 및 검증장치(100)를 사용하면 된다.
또한, 상술한 본 발명의 바코드 생성 방법 및 바코드 검증 방법은, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10 : 바코드 생성 장치 11, 21 : 통신부
12, 22 : 저장부 13 : 세션키 유도부
14 : 바코드 생성부 15, 27 : 제어부
20 : 바코드 검증 장치 23 : 바코드 판독부
24 : 세션 공개키 추출부 25 : 바코드 검증키 유도부
26 : 바코드 검증부

Claims (15)

  1. 마스터 개인키 및 마스터 공개키로 구성된 마스터키를 근거로 세션키를 유도하는 세션키 유도부; 및
    바코드 데이터와 바코드 전자서명값 및 상기 세션키를 근거로, 상기 마스터키의 유효성에 따라 서버와의 연동 없이 선택적으로 검증 가능한 바코드를 생성하는 바코드 생성부;를 포함하는,
    바코드 생성 장치.
  2. 제 1항에 있어서,
    상기 바코드 생성부는,
    상기 바코드 데이터 및 상기 세션키를 기반으로 상기 바코드 전자서명값을 구한 후에, 상기 구한 바코드 전자서명값과 상기 바코드 데이터 및 상기 세션키를 포함하는 바코드를 생성하는,
    바코드 생성 장치.
  3. 제 2항에 있어서,
    상기 마스터키를 근거로 유도되는 세션키는 세션 개인키 및 세션 공개키를 포함하되,
    상기 세션 개인키는 상기 바코드 전자서명값을 구할 때 사용되고,
    상기 세션 공개키가 상기 바코드에 포함되는,
    바코드 생성 장치.
  4. 제 3항에 있어서,
    상기 바코드 생성부는,
    상기 바코드 전자서명값을 구한 이후에는 상기 세션 개인키를 폐기하는,
    바코드 생성 장치.
  5. 제 3항에 있어서,
    상기 바코드 생성부는,
    상기 바코드 전자서명값이 구해진 이후 상기 세션 개인키를 폐기하고, 상기 세션키 유도부는 세션키 유도에 사용된 난수를 폐기하는,
    바코드 생성 장치.
  6. 제 3항에 있어서,
    상기 바코드 생성부는,
    상기 세션 공개키를 바코드 검증 장치에게로 전송하는,
    바코드 생성 장치.
  7. 세션키 유도부가, 마스터 개인키 및 마스터 공개키로 구성된 마스터키를 근거로 세션키를 유도하는 단계; 및
    바코드 생성부가, 바코드 데이터와 바코드 전자서명값 및 상기 세션키를 근거로 상기 마스터키의 유효성에 따라 서버와의 연동 없이 선택적으로 검증 가능한 바코드를 생성하는 단계;를 포함하는,
    바코드 생성 방법.
  8. 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드를 판독하는 바코드 판독부;
    상기 판독된 바코드에서 상기 세션 공개키를 추출하는 세션 공개키 추출부;
    상기 세션 공개키 및 외부로부터의 마스터 공개키를 기반으로 바코드 검증키를 유도해 내는 바코드 검증키 유도부; 및
    상기 바코드 검증키를 근거로 상기 마스터 공개키의 유효성에 따라 서버와의 연동 없이 상기 바코드의 진위여부를 선택적으로 검증하는 바코드 검증부;를 포함하는,
    바코드 검증 장치.
  9. 제 8항에 있어서,
    상기 바코드 검증키 유도부는,
    상기 서버의 상기 마스터 공개키 유출여부를 먼저 체크한 후에 유출 여부에 따라 제 1 바코드 검증키 유도 방식 및 제 2 바코드 검증키 유도 방식 중에서 어느 한 방식을 선택하여 바코드 검증키를 유도해 내는,
    바코드 검증 장치.
  10. 제 9항에 있어서,
    상기 마스터 공개키가 유출되지 않았다면,
    상기 바코드 검증키 유도부는 상기 제 1 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시하되,
    상기 제 1 바코드 검증키 유도 방식은 상기 마스터 공개키 및 상기 세션 공개키 추출부에서 추출한 세션 공개키를 근거로 상기 서버와의 연동 없이 오프라인에서 바코드 검증키를 유도해 내는,
    바코드 검증 장치.
  11. 제 9항에 있어서,
    상기 마스터 공개키가 유출되었다면,
    상기 바코드 검증키 유도부는 상기 제 2 바코드 검증키 유도 방식을 선택하여 바코드 검증키 유도를 실시하되,
    상기 제 2 바코드 검증키 유도 방식은 상기 세션 공개키 추출부에서 추출한 세션 공개키 대신에 기저장된 세션 공개키 및 상기 마스터 공개키를 근거로 상기 서버와의 연동 없이 오프라인에서 바코드 검증키를 유도해 내는,
    바코드 검증 장치.
  12. 제 11항에 있어서,
    상기 기저장된 세션 공개키는 바코드 생성 장치로부터 제공받은 키인,
    바코드 검증 장치.
  13. 제 8항에 있어서,
    상기 바코드 검증부는,
    상기 바코드 검증키로부터 상기 바코드 전자서명값을 검증함으로써, 상기 바코드내의 바코드 데이터의 진위여부를 검증하는,
    바코드 검증 장치.
  14. 제 8항에 있어서,
    사전 설정된 혼잡시간대 또는 통신장애가 발생하였을 때에만 서버와의 통신없이 제 1 바코드 검증키 유도 방식으로 바코드 검증키 유도 및 바코드 검증이 이루어지도록 제어하는 제어부;를 추가로 포함하는,
    바코드 검증 장치.
  15. 바코드 판독부가, 세션 공개키와 바코드 전자서명값 및 바코드 데이터를 포함하는 바코드를 판독하는 단계;
    세션 공개키 추출부가, 상기 판독된 바코드에서 상기 세션 공개키를 추출하는 단계;
    바코드 검증키 유도부가, 상기 세션 공개키 및 외부로부터의 마스터 공개키를 기반으로 하되 상기 마스터 공개키의 유효성에 따라 바코드 검증키를 서버와의 연동 없는 선택적 방식으로 유도해 내는 단계; 및
    바코드 검증부가, 상기 바코드 검증키를 근거로 상기 바코드의 진위여부를 검증하는 단계;를 포함하는,
    바코드 검증 방법.
KR1020210067547A 2021-05-26 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법 KR102666036B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210067547A KR102666036B1 (ko) 2021-05-26 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210067547A KR102666036B1 (ko) 2021-05-26 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20220159665A true KR20220159665A (ko) 2022-12-05
KR102666036B1 KR102666036B1 (ko) 2024-05-14

Family

ID=

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101040853B1 (ko) 2009-09-01 2011-06-14 인하대학교 산학협력단 이차원 바코드를 이용한 하이브리드 서명 검증 방법
KR101039390B1 (ko) 2010-10-22 2011-06-17 (주) 아이앤텍 바코드를 이용한 발급문서 진위확인 방법 및 장치
KR101234040B1 (ko) 2011-06-30 2013-02-15 (주) 레몬봇 바코드 생성 방법, 바코드의 유효성 판단 방법, 바코드 생성 장치, 및 이를 포함하는 시스템
KR101871686B1 (ko) 2016-03-28 2018-06-27 한국정보통신주식회사 공유 암호화 키 기반의 카드 정보 재사용 방지를 위한 카드 정보 처리 방법, 그 장치 및 금융 서버의 동작 방법
KR20190080275A (ko) 2017-12-28 2019-07-08 한화에어로스페이스 주식회사 바코드 검출 장치 및 이를 이용한 바코드 검출 방법
KR20200027438A (ko) 2018-09-03 2020-03-12 오큐알 티켓 컴퍼니 리미티드 전자티켓의 입장 검증을 위한 위조방지시스템 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101040853B1 (ko) 2009-09-01 2011-06-14 인하대학교 산학협력단 이차원 바코드를 이용한 하이브리드 서명 검증 방법
KR101039390B1 (ko) 2010-10-22 2011-06-17 (주) 아이앤텍 바코드를 이용한 발급문서 진위확인 방법 및 장치
KR101234040B1 (ko) 2011-06-30 2013-02-15 (주) 레몬봇 바코드 생성 방법, 바코드의 유효성 판단 방법, 바코드 생성 장치, 및 이를 포함하는 시스템
KR101871686B1 (ko) 2016-03-28 2018-06-27 한국정보통신주식회사 공유 암호화 키 기반의 카드 정보 재사용 방지를 위한 카드 정보 처리 방법, 그 장치 및 금융 서버의 동작 방법
KR20190080275A (ko) 2017-12-28 2019-07-08 한화에어로스페이스 주식회사 바코드 검출 장치 및 이를 이용한 바코드 검출 방법
KR20200027438A (ko) 2018-09-03 2020-03-12 오큐알 티켓 컴퍼니 리미티드 전자티켓의 입장 검증을 위한 위조방지시스템 및 방법

Similar Documents

Publication Publication Date Title
JP5818816B2 (ja) 読み取り装置によって無線タグを識別及び認証する方法
US9219612B2 (en) Method of mutually authenticating a reader and a radio tag
KR101261683B1 (ko) 전자 장치의 공개키 생성 방법 및 전자 장치, 전자 장치 인증 방법 및 컴퓨터 판독가능 매체
US10547451B2 (en) Method and device for authentication
US9679117B2 (en) System and method for obtaining an authorization key to use a product
KR100951094B1 (ko) 프라이버시 보존 방법 및 시스템, 컴퓨터 판독가능 저장 매체
US10839362B2 (en) Offline pin authentication method and system for IC card
US11496285B2 (en) Cryptographic side channel resistance using permutation networks
US20140368312A1 (en) Authentication method between a reader and a radio tag
CN114553444B (zh) 身份认证方法、装置及存储介质
NL1036231C2 (nl) Werkwijze en computerprogramma voor het wijzigen van een identificatiecode van een transactie-autorisatiemedium.
KR102666036B1 (ko) 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법
KR20220159665A (ko) 바코드 생성 장치 및 방법, 및 바코드 검증 장치 및 방법
US11935035B2 (en) Techniques to utilize resource locators by a contactless card to perform a sequence of operations
CN115664669A (zh) 金融设备认证方法、取款机、外接设备及存储介质
KR20110111661A (ko) 복제 방지를 위한 rfid 태그, 이를 이용한 복제 방지 시스템 및 방법
JP6031729B1 (ja) Rfidタグコード生成装置およびその方法、認証装置およびその方法、ならびにプログラム
EP3660766A1 (en) Improvements relating to security and authentication of interaction data
Alshehri et al. A formal framework for security analysis of NFC mobile coupon protocols
KR102322435B1 (ko) 퍼지 데이터로부터 동일한 키를 추출하는 방법 및 이를 이용한 사용자 인증 방법
US20240135360A1 (en) Techniques to utilize resource locators by a contactless card to perform a sequence of operations
Hoyer OTP and Challenge/Response algorithms for financial and e-government identity assurance: current landscape and trends
Lee et al. Countermeasure on password-based authentication scheme for multi-server environments
JP2010128510A (ja) 生体情報認証システム
GB2611806A (en) Chip authentication

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E90F Notification of reason for final refusal