KR101778455B1 - 해쉬 체인을 이용한 전자 영수증 관리 방법 - Google Patents

해쉬 체인을 이용한 전자 영수증 관리 방법 Download PDF

Info

Publication number
KR101778455B1
KR101778455B1 KR1020160091405A KR20160091405A KR101778455B1 KR 101778455 B1 KR101778455 B1 KR 101778455B1 KR 1020160091405 A KR1020160091405 A KR 1020160091405A KR 20160091405 A KR20160091405 A KR 20160091405A KR 101778455 B1 KR101778455 B1 KR 101778455B1
Authority
KR
South Korea
Prior art keywords
electronic receipt
hash value
terminal
force terminal
hash
Prior art date
Application number
KR1020160091405A
Other languages
English (en)
Inventor
황성운
한경현
Original Assignee
홍익대학교세종캠퍼스산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 홍익대학교세종캠퍼스산학협력단 filed Critical 홍익대학교세종캠퍼스산학협력단
Priority to KR1020160091405A priority Critical patent/KR101778455B1/ko
Application granted granted Critical
Publication of KR101778455B1 publication Critical patent/KR101778455B1/ko

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/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/209Specified transaction journal output feature, e.g. printed receipt or voice output
    • 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/3825Use of electronic signatures
    • 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/3827Use of message hashing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices

Landscapes

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Cash Registers Or Receiving Machines (AREA)

Abstract

본 발명은 해쉬 체인을 이용한 전자 영수증을 관리하는 방법에 관한 것으로 포스 단말기가 발급한 전자 영수증에 대한 부인 방지 기능을 제공하기 위해서 해쉬 체인을 이용하여 최소한의 연산만으로 부인 방지 기능을 제공함으로써 전자 영수증 발급에 필요한 비용의 소요를 줄이는 기술이다.

Description

해쉬 체인을 이용한 전자 영수증 관리 방법{Method for management of electronic receipt by hash chain}
본 발명은 전자 영수증 관리 방법에 관한 것으로, 더욱 상세하게는 POS(Point of Sales) 단말기에서 소비자 단말기에 발행한 전자 영수증을 신뢰할 수 있도록 관리하는 방법에 관한 것이다.
최근 거래 시 발급되는 영수증이 종이로 된 영수증에서 전자 영수증으로 바뀌고 있는 추세이다. 기존 종이 영수증과 비교하였을 때 영수증 발급을 위한 종이가 필요하지 않아 산림 훼손을 줄일 수 있으며, 영수증 쓰레기로 인한 환경오염을 줄일 수 있다는 장점이 있다.
이러한 전자 영수증에서 중요한 것은 부인 방지이다. 즉, 영수증 발급자 측에서는 자신이 영수증을 발급한 사실을 부인할 수 없어야 한다. 그러나 전자 영수증은 종이 영수증과 달리 디지털 정보이기 때문에 종이 영수증에 비해 위조가 쉽기 때문에 전자 영수증을 발급하는 시스템은 부인 방지 기능을 포함해야 한다. 흔히 디지털 세계에서는 부인 방지를 제공하기 위해서 전자서명을 사용한다. 이를 위해서는 전자서명을 하기 위한 개인 키와 그에 대응하는 공개 키를 발생시키고, 해당 공개 키를 배포 및 철회를 관리할 수 있는 공개 키 기반 구조 (public key infrastructure)가 필요하다.
그러나 공개 키 기반 구조는 인증 서버를 구축해야 하며, 공개 키를 안전하게 전송 받고 배포할 수 있어야 하며, 인증서 철회 과정도 복잡하다. 세부적으로 각 전자서명 생성 및 검증 시 많은 계산량이 필요하며, 이용자도 인증서를 관리해야 하는 등 복잡도가 매우 높다.
공개 키 기반 구조는 높은 안전성을 위해 복잡한 구성 과정을 거쳤으나, 전자 영수증과 같은 분야에서는 상대적으로 낮은 보안을 요구하므로 복잡한 공개 키 기반 구조가 부적합하다.
본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, 전자 영수증 분야에서 비용이 적게 소모되면서 부인 방지 기능을 제공하는 것을 목적으로 한다.
구체적으로, 본 발명은 포스(POS; Point of Sales) 단말기에서 소비자 단말기에 발행한 전자 영수증을 신뢰할 수 있는 제3의 전자 영수증 서버에서 검증하고 보관하는 방법을 제공하는 것을 목적으로 한다.
그러나 본 발명의 목적은 상기에 언급된 사항으로 제한되지 않으며, 조건이 비슷한 다른 환경에 적용할 수 있으며, 그 조건들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증을 관리하는 방법은, 소비자 단말기로부터 소비자 단말기의 식별정보를 수신하면, 전자 영수증을 생성하는 단계; 전자 영수증을 발급한 횟수인 발급번호를 확인하고, 해쉬함수를 이용해서 발급번호를 고려한 해쉬값을 계산하는 단계; 상기 해쉬함수, 상기 생성된 전자 영수증, 상기 해쉬값을 이용해서 전자서명을 생성하는 단계; 상기 소비자 단말기로 상기 생성된 전자 영수증을 송신하는 단계; 및 전자 영수증 서버로 포스 단말기의 식별정보, 상기 소비자 단말기의 식별정보, 상기 전자서명 및 상기 해쉬값을 송신하는 단계를 포함한다.
이때, 포스 단말기에서 전자 영수증을 관리하는 방법은, 상기 전자 영수증 서버로부터 상기 생성된 전자 영수증이 정상적으로 저장되었음을 확인 받는 단계를 더 포함할 수 있다.
이때, 상기 전자 영수증을 생성하는 단계 이전에, 상기 전자 영수증 서버로부터 상기 해쉬함수와 최대 발급 횟수를 수신하면, 랜덤값을 생성하는 단계; 상기 해쉬함수와 상기 최대 발급 횟수를 이용해서 초기 해쉬값을 계산하는 단계; 상기 해쉬함수, 상기 최대 발급 횟수 및 상기 랜덤값을 저장하는 단계; 및 상기 전자 영수증 서버로 상기 포스 단말기의 식별정보와 상기 초기 해쉬값을 송신하는 단계를 더 포함할 수 있다.
이때, 포스 단말기에서 전자 영수증을 관리하는 방법은, 상기 전자 영수증 서버로부터 수신한 최대 발급 횟수만큼 전자 영수증을 발급하면, 새로운 랜덤값을 생성하는 단계; 상기 새로운 랜덤값을 이용해서 갱신된 해쉬값인 갱신 해쉬값을 계산하는 단계; 상기 새로운 랜덤값을 저장하는 단계; 및 상기 전자 영수증 서버로 상기 포스 단말기의 식별정보(PID), 상기 갱신 해쉬값 및 이전 랜덤값을 송신하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 전자 영수증 서버에서 전자 영수증을 관리하는 방법은, 포스 단말기로부터 상기 포스 단말기의 식별정보, 소비자 단말기의 식별정보, 전자서명 및 해쉬값을 수신하는 단계; 상기 소비자 단말기로부터 상기 소비자 단말기의 식별정보와 전자 영수증을 수신하는 단계; 및 상기 전자 영수증, 상기 해쉬값 및 해쉬함수를 이용해서 상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계를 포함한다.
이때, 전자 영수증 서버에서 전자 영수증을 관리하는 방법은, 상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인한 결과를 상기 포스 단말기와 상기 소비자 단말기 중에서 적어도 하나로 송신하는 단계를 더 포함할 수 있다.
이때, 상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계는, 상기 전자 영수증, 상기 해쉬값 및 해쉬함수를 이용해서 전자서명을 생성하는 단계; 및 상기 포스 단말기로부터 상기 수신한 전자서명과 상기 생성된 전자서명을 비교해서 동일하면 상기 전자 영수증을 발급한 것이 상기 포스 단말기라고 확인하는 단계를 포함할 수 있다.
이때, 상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계 이전에, 상기 포스 단말기의 식별정보를 이용해서 상기 포스 단말기가 상기 해쉬값을 송신하기 이전에 마지막으로 송신한 이전 해쉬값을 검색하는 단계; 및 상기 해쉬값과 상기 이전 해쉬값을 이용해서 상기 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계를 더 포함할 수 있다.
이때, 상기 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계는, 상기 해쉬함수를 이용해서 상기 해쉬값을 해쉬하여 이전 해쉬값을 생성하는 단계; 및 상기 검색된 이전 해쉬값과 상기 생성된 이전 해쉬값을 비교해서 동일하면 상기 해쉬값이 상기 포스 단말기에서 송신된 것으로 확인하는 단계를 포함할 수 있다.
이때, 상기 포스 단말기로부터 상기 포스 단말기의 식별정보, 상기 소비자 단말기의 식별정보, 상기 전자서명 및 상기 해쉬값을 수신하는 단계 이전에, 상기 해쉬함수와 최대 발급 횟수를 상기 포스 단말기로 제공하는 단계; 및 상기 포스 단말기로부터 상기 포스 단말기의 식별정보와, 초기 해쉬값을 수신하여 저장하는 단계를 더 포함할 수 있다.
이때, 전자 영수증 서버에서 전자 영수증을 관리하는 방법은, 상기 포스 단말기로부터 상기 포스 단말기의 식별정보, 상기 갱신 해쉬값 및 이전 랜덤값을 수신하는 단계; 상기 포스 단말기의 식별정보를 이용해서 상기 포스 단말기가 상기 갱신 해쉬값 송신하기 이전에 마지막으로 송신한 이전 해쉬값을 검색하는 단계; 상기 이전 랜덤값을 상기 이전 해쉬값을 이용해서 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계; 및 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞으면, 상기 갱신 해쉬값을 저장하는 단계를 더 포함할 수 있다.
이때, 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계는, 상기 해쉬함수를 이용해서 상기 이전 랜덤값을 해쉬하여 상기 이전 해쉬값을 생성하는 단계; 및 상기 검색된 이전 해쉬값과 상기 생성된 이전 해쉬값을 비교해서 동일하면 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것으로 확인하는 단계를 포함할 수 있다.
본 발명인 효율적인 부인 방지 기능은 고비용의 공개 키 기반 구조를 사용하지 않고도 전자 영수증 시스템에 적합한 부인 방지 기능을 제공하는 효과를 가진다.
도 1은 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증을 관리하는 전자 영수증 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 최초에 포스 단말기를 등록하는 과정을 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 전자 영수증을 발급하는 과정을 도시한 도면이다.
도 4는 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 포스 단말기를 갱신하는 과정을 도시한 도면이다.
도 5는 본 발명의 다른 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 전자 영수증을 발급하는 과정을 도시한 도면이다.
도 6은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증 서버에 최초로 등록하는 과정을 도시한 흐름도이다.
도 7은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증을 발급하는 과정을 도시한 흐름도이다.
도 8은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증 서버에 등록을 갱신하는 과정을 도시한 흐름도이다.
도 9는 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기를 최초로 등록하는 과정을 도시한 흐름도이다.
도 10은 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기에서 발급한 전자 영수증을 관리하는 과정을 도시한 흐름도이다.
도 11은 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기의 등록을 갱신하는 과정을 도시한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~사이에"와 "바로~사이에" 또는 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 실시 예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
이하에서는, 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 관리 시스템 및 방법을 첨부된 도 1 내지 도 11을 참조하여 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증을 관리하는 전자 영수증 시스템의 개략적인 구성을 도시한 도면이다.
도 1을 참조하면, 해쉬 체인을 이용한 전자 영수증 관리 방법을 이용하는 전자 영수증 시스템은 포스(POS; Point of Sales) 단말기(110), 전자 영수증 서버(120), 소비자 단말기(130)를 포함한다.
포스 단말기(110)는 전자 영수증을 발급하는 영수증 생성부(111)와, 발급한 전자 영수증에 대하여 전자서명을 생성하는 전자서명 생성부(112)를 포함할 수 있다.
전자서명 생성부(112)는 영수증 생성부(111)에서 생성한 전자 영수증에 대한 전자 서명을 해쉬 체임을 이용해서 생성함으로써 부인 방지 기능을 제공할 수 있다. 이때, 해쉬 체인(hash chain)이란 해쉬함수를 마치 체인처럼 여러 번 사용하는 것을 나타낸다. 해쉬함수란 출력이 주어졌을 때 그에 대응되는 입력을 알기 어렵게 설계된 함수를 말하며 본 발명에서는 암호학적으로 안전한 해쉬함수를 사용한다. 해쉬함수의 예로는 MD-5, SHA 등을 사용할 수 있다.
전자 영수증 서버(120)는 포스 단말기(110)가 발급한 전자 영수증을 검증하는 전자서명 검증부(121)를 포함할 수 있다. 또한 검증된 전자 영수증을 저장할 수 있는 데이터베이스(122)를 포함할 수 있다.
이때, 전자 영수증 서버(120)는 신뢰할 수 있는 기관이라고 가정한다. 신뢰할 수 있는 기관이라는 것은 전자 영수증을 관리하는 기관이 정부로부터 일정 요건을 만족하여 승인을 받음으로써 이루어질 수 있다. 또한 전자 영수증 서버(120)와의 모든 통신은 안전한 암호화 통신이 이루어질 수 있다.
소비자 단말기(130)는 포스 단말기(110)로부터 전송 받은 전자 영수증을 출력하고, 전자 영수증 서버(120)에 전송할 수 있는 영수증 수신부(131)를 포함할 수 있다.
전자 영수증 시스템에서 부인 방지 기능을 제공하는 전자 영수증을 관리하는 방법에서는 최초에 포스 단말기 등록하는 과정, 전자 영수증 발급하는 과정, 등록된 포스 단말기를 갱신하는 과정을 필요할 수 있다. 각 과정의 설명은 이하의 도 2에서 도 11을 통해 보다 상세히 후술한다.
이하, 상기와 같이 구성된 본 발명에 따른 해쉬 체인을 이용해서 전자 영수증을 관리하는 방법을 아래에서 도면을 참조하여 설명한다.
도 2는 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 최초에 포스 단말기를 등록하는 과정을 도시한 도면이다.
도 2를 참조하면, 221단계에서 전자 영수증 서버(120)는 사용하는 해쉬함수(H())와 등록된 해쉬값으로 전자 영수증을 발급 가능한 기설정한 횟수를 나타내는 최대 발급 횟수(n)를 공개하거나 또는 포스 단말기(110)로 송신한다.
211단계에서 포스 단말기(110)는 랜덤 값(r0)을 생성하고, 수신한 해쉬함수(H())와 최대 발급 횟수(n)를 이용해서 초기 해쉬값(rn)을 생성한다. 이때, 초기 해쉬값은 아래 <수학식 1>을 이용해서 계산될 수 있다.
[수학식 1]
rn = Hn(r0)
여기서, rn은 초기 해쉬값이고, r0는 랜덤값이고, n은 r0으로 발급 가능한 전자 영수증의 발급 횟수인 최대 발급 횟수 이고, H()는 해쉬함수이고, Hn(r0)는 해쉬함수 H()를 이용해서 r0를 n번 해쉬하는 것을 나타낸다.
212단계에서 포스 단말기(110)는 해쉬함수(H()), 최대 발급 횟수(n) 및 초기 해쉬값을 생성하는데 이용된 랜덤값(r0)을 저장하고, 초기 해쉬값(rn)과 포스 단말기의 식별정보(PID)를 전자 영수증 서버(120)로 송신한다.
222단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 받은 초기 해쉬값(rn)과 포스 단말기의 식별정보(PID)를 데이터베이스(122)에 저장한다.
도 3은 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 전자 영수증을 발급하는 과정을 도시한 도면이다.
도 3의 전자 영수증을 발급하는 과정은 전자 영수증의 발급번호(x)를 이용해서 x번째 전자 영수증을 발급하는 상황을 기준으로 설명한다. 발급번호(x)는 전자 영수증이 발급됨에 따라 차례대로 증가한다. 발급번호(x)가 최대 발급 횟수(n) - 1과 같아지면, 도 4의 포스 단말기(110)를 갱신하는 과정을 수행하게 되고 발급번호(x)는 0으로 초기화된다.
331단계에서 소비자 단말기(130)는 소비자 단말기의 식별정보(UID)를 포스 단말기(110)에 전송한다.
311단계에서 포스 단말기(110)는 전자 영수증(M)을 발급하고, 해쉬함수(H()), 최대 발급 횟수(n) 및 212단계에서 저장한 랜덤 값(r0)과 발급한 전자 영수증의 발급 번호(x)를 이용해서 발급번호를 고려한 해쉬값(rn-x)을 생성한다. 이때, 전자 영수증(M)에는 전자 영수증(M)을 발급한 포스 단말기(110)의 식별정보(PID)가 포함될 수 있다.
이때, 발급번호를 고려한 해쉬값(rn-x)은 아래의 <수학식 2>을 이용해서 계산할 수 있다.
[수학식 2]
rn-x = Hn -x(r0)
여기서, rn-x은 발급번호를 고려한 해쉬값이고, r0는 랜덤값이고, n은 r0으로 발급 가능한 전자 영수증의 최대 발급 횟수이고, x는 발급번호이고, H()는 해쉬함수이고, Hn -x(r0)는 해쉬함수 H()를 이용해서 r0를 n-x번 해쉬하는 것을 나타낸다.
312단계에서 포스 단말기(110)는 해쉬함수(H()), 전자 영수증(M), 해쉬값(rn-x)를 이용해서 전자서명을 생성한다.
이때, 전자서명은 아래의 <수학식 3>을 이용해서 생성할 수 있다.
[수학식 3]
S = H(rn-x | M)
여기서, S는 전자서명이고, rn-x은 발급번호를 고려한 해쉬값이고, M은 생성된 전자 영수증이고, H()는 해쉬함수이다.
313단계에서 포스 단말기(110)는 소비자 단말기(130)에 전자 영수증(M)을 전송하고, 전자 영수증 서버(120)에 포스 단말기의 식별정보(PID), 소비자 단말기의 식별정보(UID), 전자서명(S), 해쉬값(rn-x)을 송신한다.
332단계에서 소비자 단말기(130)는 포스 단말기(110)로부터 전송 받은 전자 영수증(M)을 확인하고, 소비자 단말기의 식별정보(UID)와 전자 영수증(M)을 전자 영수증 서버(120)로 송신한다.
321단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 전송 받은 포스 단말기의 식별정보(PID)를 이용해서 포스 단말기(110)가 해쉬값(rn-x)을 송신하기 이전에 마지막으로 송신한 이전 해쉬값(rn-x+1)을 검색한다.
여기서 전자 영수증 서버(120)는 포스 단말기(110)와 소비자 단말기(130)로부터 받은 소비자 단말기의 식별정보(UID)를 비교해서 포스 단말기(110)가 전송한 데이터에 대응되는 소비자 단말기(130)의 데이터를 식별할 수 있다.
322단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 전송 받은 해쉬값(rn-x)과 해쉬함수와 해쉬함수(H())를 이용해서 이전 해쉬값(r'n-x+1)을 생성하고, 검색된 이전 해쉬값(rn-x+1)과 생성된 이전 해쉬값((r'n -x+ 1)을 비교한다. 이 두 값이 동일하면 전송 받은 데이터들이 해당 PID를 가진 포스 단말기(110)가 전송한 것으로 판단할 수 있다.
이때, 생성된 이전 해쉬값((r'n -x+ 1)은 아래 <수학식 4>를 통해서 생성될 수 있다.
[수학식 4]
r'n -x+1 = H(rn-x)
여기서, r'n -x+1 는 생성된 이전 해쉬값이고, rn-x는 포스 단말기로부터 수신한 검증이 필요한 해쉬값이고, H()는 해쉬함수 이다.
323단계에서 전자 영수증 서버(120)는 전송 받은 전자 영수증(M), 해쉬값(rn-x)와 해쉬함수(H())를 이용해서 전자서명(S')을 생성하고, 수신된 전자서명(S)과 생성된 전자서명(S')을 비교한다. 이때, 전자서명의 생성은 상술한 <수학식 3>을 이용해서 생성할 수 있다.
수신된 전자서명(S)과 생성된 전자서명(S')이 동일하면 해당 PID를 가진 포스 단말기(110)가 전자 영수증(M)에 대한 수신된 전자서명(S)를 만든 것으로 판단한다. 이는 해당 포스 단말기(110)가 해당 전자 영수증(M)을 발급한 사실을 부인할 수 없음을 의미하므로 부인 방지 기능이 제공된다.
324단계에서 전자 영수증 서버(120)는 포스 단말기의 식별정보(PID), 전자 영수증(M), 수신된 전자서명(S), 해쉬값(rn-x)을 데이터베이스(122)에 저장하고, 수신된 전자서명(S)과 생성된 전자서명(S')를 비교한 결과를 포스 단말기(110)와 소비자 단말기(130)에 송신할 수 있다.
324단계에서 포스 단말기의 식별정보(PID), 전자 영수증(M), 수신된 전자서명(S), 해쉬값(rn-x)을 데이터베이스(122)에 저장하기 때문에 추후 발생 가능한 부인방지와 백업을 위해서 이용될 수 있다.
도 4는 본 발명의 일 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 포스 단말기를 갱신하는 과정을 도시한 도면이다.
도 4는 포스 단말기(110)가
Figure 112016069958154-pat00001
번째 전자 영수증을 발급하면 현재 등록된 해쉬값인 초기 해쉬값(rn)을 갱신 해쉬값(r"n)으로 갱신하기 위해 수행될 수 있다. r0는 해쉬 체인으로 POS 단말기를 인증할 수 있는 마지막 값이다. 그리고 이 의미는 전자 영수증 서버(120)가 해당 포스 단말기(110)로부터 r1까지 전송 받았음을 의미한다.
도 4를 참조하면, 411단계에서 포스 단말기(110)는 새로운 랜덤값(r"0)을 생성하고, 해쉬함수(H())와 최대 발급 횟수(n)을 이용해서 갱신 해쉬값(r"n)을 생성한다.
갱신 해쉬값은 아래 <수학식 5>를 이용해서 생성될 수 있다.
[수학식 5]
r"n = Hn(r"0)
여기서, r"n은 갱신 해쉬값이고, r"0는 새로운 랜덤값이고, n은 최대 발급 횟수 이고, H()는 해쉬함수이고, Hn(r"0)는 해쉬함수 H()를 이용해서 r"0를 n번 해쉬하는 것을 나타낸다.
412단계에서 포스 단말기(110)는 새로운 랜덤값(r"0)을 저장하고, 포스 단말기의 식별정보(PID), 갱신 해쉬값(r"n), 이전 랜덤값(r0)을 전자 영수증 서버(120)에 송신한다.
421단계에서 전자 영수증 서버(120)는 PID를 이용해서 포스 단말기(110)가 갱신 해쉬값(r"n) 송신하기 이전에 마지막으로 송신한 이전 해쉬값(r1)을 검색한다.
422단계에서 전자 영수증 서버(120)는 전송 받은 이전 랜덤값(r0)를 이용해서 이전 해쉬값(r'1)을 생성한다. 그리고 검색된 이전 해쉬값(r1)과 생성된 이전 해쉬값(r'1)을 비교한다. 검색된 이전 해쉬값(r1)과 생성된 이전 해쉬값(r'1)이 동일하면 전송 받은 데이터들이 해당 PID를 가진 포스 단말기(110)가 전송한 것으로 판단한다.
이때, 이전 해쉬값의 생성은 아래 <수학식 6>을 이용해서 생성될 수 있다.
[수학식 6]
r'1 = H(r0)
여기서, r'1 은 생성된 이전 해쉬값이고, r0는 이전 랜덤값이고, H()는 해쉬함수 이다.
423단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 전송 받은 갱신 해쉬값(r"n)을 데이터베이스(122)에 저장한다.
도 5는 본 발명의 다른 실시 예에 따른 해쉬 체인을 이용한 전자 영수증 시스템에서 전자 영수증을 발급하는 과정을 도시한 도면이다.
도 5는 소비자 단말기(130)의 동의 하에 포스 단말기(110)에서 발급한 전자 영수증을 전자 영수증 서버(120)에 보관함으로써 추후 발생 가능한 부인방지와 백업을 위해서 이용될 수 있다.
도 5의 전자 영수증을 발급하는 과정은 전자 영수증의 발급번호(x)를 이용해서 x번째 전자 영수증을 발급하는 상황을 기준으로 설명한다. 발급번호(x)는 전자 영수증이 발급됨에 따라 차례대로 증가하며 발급번호(x)는 전자 영수증에 포함된다. 발급번호(x)가 최대 발급 횟수(n) - 1과 같아지면, 도 4의 포스 단말기(110)를 갱신하는 과정을 수행하게 되고 발급번호(x)는 0으로 초기화된다.
531단계에서 소비자 단말기(130)는 소비자 단말기의 식별정보(UID)를 포스 단말기(110)에 전송한다.
511단계에서 포스 단말기(110)는 전자 영수증(M)을 발급하고, 해쉬함수(H()), 최대 발급 횟수(n) 및 212단계에서 저장한 랜덤 값(r0)과 발급한 전자 영수증의 발급 번호(x)를 이용해서 발급번호를 고려한 해쉬값(rn-x)을 생성한다.
이때, 발급번호를 고려한 해쉬값(rn-x)은 상술한 <수학식 2>을 이용해서 계산할 수 있다.
512단계에서 포스 단말기(110)는 해쉬함수(H()), 전자 영수증(M), 해쉬값(rn-x)를 이용해서 전자서명을 생성한다.
이때, 전자서명은 상술한 <수학식 3>을 이용해서 생성할 수 있다.
513단계에서 포스 단말기(110)는 전자 영수증 서버(120)에 포스 단말기의 식별정보(PID), 소비자 단말기의 식별정보(UID), 전자 영수증(M), 전자서명(S), 해쉬값(rn-x)을 송신한다.
521단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 전송 받은 포스 단말기의 식별정보(PID)를 이용해서 포스 단말기(110)가 해쉬값(rn-x)을 송신하기 이전에 마지막으로 송신한 이전 해쉬값(rn-x+1)을 검색한다.
여기서 전자 영수증 서버(120)는 포스 단말기(110)와 소비자 단말기(130)로부터 받은 소비자 단말기의 식별정보(UID)를 비교해서 포스 단말기(110)가 전송한 데이터에 대응되는 소비자 단말기(130)의 데이터를 식별할 수 있다.
522단계에서 전자 영수증 서버(120)는 포스 단말기(110)로부터 전송 받은 해쉬값(rn-x)과 해쉬함수와 해쉬함수(H())를 이용해서 이전 해쉬값(r'n-x+1)을 생성하고, 검색된 이전 해쉬값(rn-x+1)과 생성된 이전 해쉬값((r'n -x+ 1)을 비교한다. 이 두 값이 동일하면 전송 받은 데이터들이 해당 PID를 가진 포스 단말기(110)가 전송한 것으로 판단할 수 있다.
이때, 생성된 이전 해쉬값((r'n -x+ 1)은 상술한 <수학식 4>를 통해서 생성될 수 있다.
523단계에서 전자 영수증 서버(120)는 포스 단말기의 식별정보(PID), 전자 영수증(M), 수신된 전자서명(S), 해쉬값(rn-x)을 데이터베이스(122)에 저장하고, 수신된 전자서명(S)과 생성된 전자서명(S')를 비교한 결과를 포스 단말기(110)와 소비자 단말기(130)에 송신할 수 있다.
524단계에서 전자 영수증 서버(120)는 상기 513단계에서 수신한 소비자 단말기의 식별정보(UID)를 이용해서 검증된 전자 영수증(M)을 소비자 단말기(130)에 송신할 수 있다.
한편, 524단계는 소비자 단말기(130)의 사용자 또는 전자 영수증 시스템의 운영자의 설정에 따라 생략할 수도 있다.
도 6은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증 서버에 최초로 등록하는 과정을 도시한 흐름도이다.
도 6을 참조하면, 포스 단말기(110)는 전자 영수증 서버(120)로부터 해쉬함수(H())와 최대 발급 횟수(n)를 수신하면(610), 랜덤값(r0)을 생성한다(611).
그리고, 포스 단말기(110)는 해쉬함수(H())와 최대 발급 횟수(n)를 이용해서 초기 해쉬값(rn)을 계산한다(612). 이때, 초기 해쉬값(rn)은 상술한 <수학식 1>을 이용해서 계산할 수 있다.
그리고, 포스 단말기(110)는 해쉬함수(H()), 최대 발급 횟수(n) 및 랜덤값(r0)을 저장한다(613)
그리고, 포스 단말기(110)는 전자 영수증 서버(120)로 포스 단말기(110)의 식별정보(PID)와 초기 해쉬값(rn)을 송신한다(614)
도 7은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증을 발급하는 과정을 도시한 흐름도이다.
도 7을 참조하면, 그리고, 포스 단말기(110)는 소비자 단말기(130)로부터 소비자 단말기(130) 식별정보(UID)를 수신하면(710), 전자 영수증(M)을 생성한다(711).
그리고, 포스 단말기(110)는 전자 영수증(M)을 발급한 횟수인 발급번호(x)를 확인하고, 해쉬함수(H())를 이용해서 발급번호(x)를 고려한 해쉬값(rn-x)을 계산한다(712). 이때, 발급번호(x)를 고려한 해쉬값(rn-x)은 상술한 <수학식 2>을 이용해서 계산할 수 있다.
그리고, 포스 단말기(110)는 해쉬함수(H()), 생성된 전자 영수증(M), 해쉬값(rn-x)을 이용해서 전자서명(S)을 생성한다(713). 이때, 전자서명(S)은 상술한 <수학식 3>을 이용해서 생성할 수 있다.
그리고, 포스 단말기(110)는 소비자 단말기(130)로 생성된 전자 영수증(M)을 송신한다(714).
그리고, 포스 단말기(110)는 전자 영수증 서버(120)로 포스 단말기(110)의 식별정보(PID), 소비자 단말기의 식별정보(UID), 전자서명(S), 해쉬값(rn-x)을 송신한다(715).
그리고, 포스 단말기(110)는 전자 영수증 서버(120)로부터 생성된 전자 영수증(M)의 검증 결과를 수신하여 생성된 전자 영수증(M)이 정상적으로 저장되었음을 확인 받는다(716).
도 8은 본 발명의 일 실시 예에 따른 포스 단말기에서 전자 영수증 서버에 등록을 갱신하는 과정을 도시한 흐름도이다.
도 8을 참조하면, 포스 단말기(110)는 전자 영수증 서버(120)로부터 수신한 최대 발급 횟수(n)만큼 전자 영수증(M)을 발급하면(810), 새로운 랜덤값(r"0)을 생성한다(811).
그리고, 포스 단말기(110)는 새로운 랜덤값(r"0)을 이용해서 갱신된 해쉬값인 갱신 해쉬값(r"n)을 계산한다(812). 이때, 갱신 해쉬값(r"n)은 상술한 <수학식 5>을 이용해서 계산할 수 있다.
그리고, 포스 단말기(110)는 새로운 랜덤값(r"0)을 저장한다(813).
그리고, 포스 단말기(110)는 전자 영수증 서버(120)로 포스 단말기의 식별정보(PID), 갱신 해쉬값(r"n) 및 이전 랜덤값(r0)을 송신한다(814).
도 9는 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기를 최초로 등록하는 과정을 도시한 흐름도이다.
도 9를 참조하면, 전자 영수증 서버(120)는 해쉬함수(H())와 최대 발급 횟수(n)를 포스 단말기(110)로 제공한다(910).
그리고, 전자 영수증 서버(120)는 포스 단말기(110)로부터 포스 단말기(110)의 식별정보(PID)와, 초기 해쉬값(rn)을 수신하면(911), 포스 단말기(110)의 식별정보(PID)와, 초기 해쉬값(rn)을 저장한다(912).
도 10은 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기에서 발급한 전자 영수증을 관리하는 과정을 도시한 흐름도이다.
도 10을 참조하면, 전자 영수증 서버(120)는 포스 단말기(110)로부터 포스 단말기(110)의 식별정보(PID), 전자서명(S) 및 해쉬값(rn-x)을 수신하고(1010), 전자 영수증 서버(120)는 소비자 단말기(130)로부터 소비자 단말기(130)의 식별정보(UID)와 전자 영수증(M)을 수신하면(1011), 포스 단말기(110)의 식별정보(PID)를 이용해서 포스 단말기(110)가 해쉬값(rn-x)을 송신하기 이전에 마지막으로 송신한 이전 해쉬값(rn-x+1)을 검색한다(1012). 이때, 수신된 전자 영수증(M)에는 전자 영수증(M)을 발급한 포스 단말기(110)의 식별정보(PID)가 포함될 수 있다.
그리고, 전자 영수증 서버(120)는 해쉬함수(H())를 이용해서 해쉬값(rn-x)을 해쉬하여 이전 해쉬값((r'n -x+ 1)을 생성한다(1013). 이때, 생성된 이전 해쉬값((r'n -x+1)은 상술한 <수학식 4>를 이용해서 생성할 수 있다.
그리고, 전자 영수증 서버(120)는 검색된 이전 해쉬값(rn-x+1)과 생성된 이전 해쉬값((r'n-x+1)을 비교한다(1014).
1014단계의 비교결과 검색된 이전 해쉬값(rn-x+1)과 생성된 이전 해쉬값((r'n -x+1)이 동일하면 수신된 해쉬값(rn-x)이 PID에 해당하는 포스 단말기(110)에서 송신된 것으로 판단하고, 전자 영수증(M), 해쉬값(rn-x) 및 해쉬함수(H())를 이용해서 전자서명(S')을 생성한다(1015). 이때, 생성된 전자서명(S')은 상술한 <수학식 3>을 이용해서 생성할 수 있다.
그리고, 전자 영수증 서버(120)는 포스 단말기(110)로부터 수신된 전자서명(S)과 생성된 전자서명(S')을 비교해서 동일하면 전자 영수증(M)을 발급한 것이 포스 단말기(110)라고 확인한다(1016).
그리고, 전자 영수증 서버(120)는 전자 영수증(M)을 발급한 것이 포스 단말기(110)임을 확인한 결과를 포스 단말기(110)와 소비자 단말기(130) 중에서 적어도 하나로 송신한다(1017).
도 11은 본 발명의 일 실시 예에 따른 전자 영수증 서버에서 포스 단말기의 등록을 갱신하는 과정을 도시한 흐름도이다.
도 11을 참조하면, 전자 영수증 서버(120)는 포스 단말기(110)로부터 포스 단말기(110)의 식별정보(PID), 갱신 해쉬값(r"n) 및 이전 랜덤값(r0)을 수신하면(1110), 포스 단말기(110)의 식별정보(PID)를 이용해서 포스 단말기(110)가 갱신 해쉬값(r"n) 송신하기 이전에 마지막으로 송신한 이전 해쉬값(r1)을 검색한다(1111). 이때, 포스 단말기(110)에서 포스 단말기(110)의 식별정보(PID), 갱신 해쉬값(r"n) 및 이전 랜덤값(r0)를 송신하는 것은 포스 단말기(110)의 갱신을 위한 것으로, 포스 단말기(110)에서 전자 영수증을 최대 발행 횟수만큼 발급하였기 때문에 마지막으로 송신한 이전 해쉬값은 r1이 된다.
그리고, 전자 영수증 서버(120)는 해쉬함수(H())를 이용해서 이전 랜덤값(r0)을 해쉬하여 이전 해쉬값(r'1)을 생성한다(1112). 이때, 생성된 이전 해쉬값(r'1)은 상술한 <수학식 6>을 이용해서 생성할 수 있다.
그리고, 전자 영수증 서버(120)는 검색된 이전 해쉬값(r1)과 생성된 이전 해쉬값(r'1)을 비교한다(1113).
1113단계에서 비교한 결과 검색된 이전 해쉬값(r1)과 생성된 이전 해쉬값(r'1)이 동일하면 전자 영수증 서버(120)는 갱신 해쉬값(r"n)이 PID에 해당하는 포스 단말기(110)에서 송신된 것으로 판단하고, 갱신 해쉬값(r"n)을 저장한다(1114).
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 실시 예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시 예들이 비록 한정된 실시 예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시 예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
110: 포스 단말기
111: 영수증 생성부
112: 전자서명 생성부
120: 전자 영수증 서버
121: 전자서명 검증부
122: 데이터베이스
130: 소비자 단말기
131: 영수증 수신부

Claims (18)

  1. 전자 영수증 서버로부터 해쉬함수와 최대 발급 횟수를 수신하면, 랜덤값을 생성하는 단계;
    상기 해쉬함수와 상기 최대 발급 횟수를 이용해서 초기 해쉬값을 계산하는 단계;
    상기 해쉬함수, 상기 최대 발급 횟수 및 상기 랜덤값을 저장하는 단계; 및
    상기 전자 영수증 서버로 포스 단말기의 식별정보와 상기 초기 해쉬값을 송신하는 단계;
    소비자 단말기로부터 소비자 단말기의 식별정보를 수신하면, 전자 영수증을 생성하는 단계;
    전자 영수증을 발급한 횟수인 발급번호를 확인하고, 상기 해쉬함수를 이용해서 발급번호를 고려한 해쉬값을 계산하는 단계;
    상기 해쉬함수, 상기 생성된 전자 영수증, 상기 해쉬값을 이용해서 전자서명을 생성하는 단계;
    상기 소비자 단말기로 상기 생성된 전자 영수증을 송신하는 단계; 및
    상기 전자 영수증 서버로 상기 포스 단말기의 식별정보, 상기 소비자 단말기의 식별정보, 상기 전자서명 및 상기 해쉬값을 송신하는 단계
    를 포함하는 포스 단말기에서 전자 영수증을 관리하는 방법.
  2. 제1항에 있어서,
    상기 전자 영수증 서버로부터 상기 생성된 전자 영수증이 정상적으로 저장되었음을 확인 받는 단계
    를 더 포함하는 포스 단말기에서 전자 영수증을 관리하는 방법.
  3. 제1항에 있어서,
    상기 발급번호를 고려한 해쉬값을 계산하는 단계는,
    아래의 <수학식 7>을 이용해서 상기 해쉬값을 계산하는
    포스 단말기에서 전자 영수증을 관리하는 방법.
    [수학식 7]
    rn-x = Hn -x(r0)
    여기서, rn-x은 상기 발급번호를 고려한 해쉬값이고, r0는 랜덤값이고, n은 r0으로 발급 가능한 전자 영수증의 최대 발급 횟수이고, x는 상기 발급번호이고, H()는 상기 해쉬함수이고, Hn -x(r0)는 상기 해쉬함수 H()를 이용해서 r0를 n-x번 해쉬하는 것을 나타낸다.
  4. 제1항에 있어서,
    상기 전자서명을 생성하는 단계는,
    아래의 <수학식 8>을 이용해서 상기 전자서명을 계산하는
    포스 단말기에서 전자 영수증을 관리하는 방법.
    [수학식 8]
    S = H(rn-x | M)
    여기서, S는 상기 전자서명이고, rn-x은 상기 발급번호를 고려한 해쉬값이고, M은 상기 생성된 전자 영수증이고, H()는 상기 해쉬함수이다.
  5. 삭제
  6. 제1항에 있어서,
    상기 초기 해쉬값을 계산하는 단계는,
    아래의 <수학식 9>를 이용해서 상기 초기 해쉬값을 계산하는
    포스 단말기에서 전자 영수증을 관리하는 방법.
    [수학식 9]
    rn = Hn(r0)
    여기서, rn은 상기 초기 해쉬값이고, r0는 상기 랜덤값이고, n은 r0으로 발급 가능한 전자 영수증의 발급 횟수인 상기 최대 발급 횟수 이고, H()는 상기 해쉬함수이고, Hn(r0)는 상기 해쉬함수 H()를 이용해서 r0를 n번 해쉬하는 것을 나타낸다.
  7. 제1항에 있어서,
    상기 전자 영수증 서버로부터 수신한 최대 발급 횟수만큼 전자 영수증을 발급하면, 새로운 랜덤값을 생성하는 단계;
    상기 새로운 랜덤값을 이용해서 갱신된 해쉬값인 갱신 해쉬값을 계산하는 단계;
    상기 새로운 랜덤값을 저장하는 단계; 및
    상기 전자 영수증 서버로 상기 포스 단말기의 식별정보(PID), 상기 갱신 해쉬값 및 이전 랜덤값을 송신하는 단계
    를 더 포함하는 포스 단말기에서 전자 영수증을 관리하는 방법.
  8. 해쉬함수와 최대 발급 횟수를 포스 단말기로 제공하는 단계; 및
    상기 포스 단말기로부터 상기 포스 단말기의 식별정보와, 초기 해쉬값을 수신하여 저장하는 단계;
    상기 포스 단말기로부터 상기 포스 단말기의 식별정보, 소비자 단말기의 식별정보, 전자서명 및 해쉬값을 수신하는 단계;
    상기 소비자 단말기로부터 상기 소비자 단말기의 식별정보와 전자 영수증을 수신하는 단계; 및
    상기 전자 영수증, 상기 해쉬값 및 상기 해쉬함수를 이용해서 상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계
    를 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  9. 제8항에 있어서,
    상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인한 결과를 상기 포스 단말기와 상기 소비자 단말기 중에서 적어도 하나로 송신하는 단계
    를 더 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  10. 제8항에 있어서,
    상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계는,
    상기 전자 영수증, 상기 해쉬값 및 해쉬함수를 이용해서 전자서명을 생성하는 단계; 및
    상기 포스 단말기로부터 상기 수신한 전자서명과 상기 생성된 전자서명을 비교해서 동일하면 상기 전자 영수증을 발급한 것이 상기 포스 단말기라고 확인하는 단계
    를 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  11. 제10항에 있어서,
    상기 전자서명을 생성하는 단계는,
    아래의 <수학식 10>을 이용해서 상기 생성된 전자서명을 계산하는
    전자 영수증 서버에서 전자 영수증을 관리하는 방법.
    [수학식 10]
    S = H(rn-x | M)
    여기서, S는 상기 생성된 전자서명이고, rn-x은 상기 해쉬값이고, M은 상기 전자 영수증이고, H()는 상기 해쉬함수이다
  12. 제8항에 있어서,
    상기 전자 영수증을 발급한 것이 상기 포스 단말기임을 확인하는 단계 이전에,
    상기 포스 단말기의 식별정보를 이용해서 상기 포스 단말기가 상기 해쉬값을 송신하기 이전에 마지막으로 송신한 이전 해쉬값을 검색하는 단계; 및
    상기 해쉬값과 상기 이전 해쉬값을 이용해서 상기 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계
    를 더 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  13. 제12항에 있어서,
    상기 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계는,
    상기 해쉬함수를 이용해서 상기 해쉬값을 해쉬하여 이전 해쉬값을 생성하는 단계; 및
    상기 검색된 이전 해쉬값과 상기 생성된 이전 해쉬값을 비교해서 동일하면 상기 해쉬값이 상기 포스 단말기에서 송신된 것으로 확인하는 단계
    를 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  14. 제13항에 있어서,
    상기 이전 해쉬값을 생성하는 단계는,
    아래의 <수학식11>을 이용해서 상기 생성된 이전 해쉬값을 계산하는
    전자 영수증 서버에서 전자 영수증을 관리하는 방법.
    [수학식 11]
    r'n -x+1 = H(rn-x)
    여기서, r'n -x+1 는 생성된 이전 해쉬값이고, rn-x는 상기 포스 단말기로부터 수신한 검증이 필요한 해쉬값이고, H()는 상기 해쉬함수 이다.
  15. 삭제
  16. 제8항에 있어서,
    상기 포스 단말기로부터 상기 포스 단말기의 식별정보, 갱신 해쉬값 및 이전 랜덤값을 수신하는 단계;
    상기 포스 단말기의 식별정보를 이용해서 상기 포스 단말기가 상기 갱신 해쉬값 송신하기 이전에 마지막으로 송신한 이전 해쉬값을 검색하는 단계;
    상기 이전 랜덤값을 상기 이전 해쉬값을 이용해서 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계; 및
    상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞으면, 상기 갱신 해쉬값을 저장하는 단계
    를 더 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  17. 제16항에 있어서,
    상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것이 맞는지 확인하는 단계는,
    상기 해쉬함수를 이용해서 상기 이전 랜덤값을 해쉬하여 상기 이전 해쉬값을 생성하는 단계; 및
    상기 검색된 이전 해쉬값과 상기 생성된 이전 해쉬값을 비교해서 동일하면 상기 갱신 해쉬값이 상기 포스 단말기에서 송신된 것으로 확인하는 단계
    를 포함하는 전자 영수증 서버에서 전자 영수증을 관리하는 방법.
  18. 제1항 내지 제4항, 제6항 내지 제14항, 제16항 및 제17항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
KR1020160091405A 2016-07-19 2016-07-19 해쉬 체인을 이용한 전자 영수증 관리 방법 KR101778455B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160091405A KR101778455B1 (ko) 2016-07-19 2016-07-19 해쉬 체인을 이용한 전자 영수증 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160091405A KR101778455B1 (ko) 2016-07-19 2016-07-19 해쉬 체인을 이용한 전자 영수증 관리 방법

Publications (1)

Publication Number Publication Date
KR101778455B1 true KR101778455B1 (ko) 2017-09-26

Family

ID=60036645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160091405A KR101778455B1 (ko) 2016-07-19 2016-07-19 해쉬 체인을 이용한 전자 영수증 관리 방법

Country Status (1)

Country Link
KR (1) KR101778455B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193587A (zh) * 2018-11-14 2020-05-22 现代自动车株式会社 数据通信系统、数据通信方法、服务器和车辆

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101529050B1 (ko) * 2014-11-28 2015-06-29 유니닥스주식회사 모바일 전자영수증 서비스 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101529050B1 (ko) * 2014-11-28 2015-06-29 유니닥스주식회사 모바일 전자영수증 서비스 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193587A (zh) * 2018-11-14 2020-05-22 现代自动车株式会社 数据通信系统、数据通信方法、服务器和车辆

Similar Documents

Publication Publication Date Title
US10338946B1 (en) Composable machine image
CN111095322B (zh) 数字商品的真实例
KR101937220B1 (ko) 키 관리가 필요없는 블록체인을 기반한 전자서명 또는 메시지 인증 코드를 생성 및 검증 방법
CN103460195B (zh) 用于安全软件更新的系统和方法
CN111092737B (zh) 数字证书管理方法、装置及区块链节点
KR20230163971A (ko) 스마트 컨트랙트 기반의 인증서 서비스를 제공하는 방법 및 이를 이용한 서버
KR101963776B1 (ko) 차량 시스템의 소프트웨어 보안 업데이트 방법 및 장치
US20160301715A1 (en) Automating the creation and maintenance of policy compliant environments
US11711221B1 (en) Systems and methods for trusted chain code system
CN110084600B (zh) 决议事务请求的处理、验证方法、装置、设备及介质
KR101978185B1 (ko) 블록체인 기반의 소프트웨어 라이센스 관리 방법 및 이를 이용한 라이센스 관리 서버
US20230289478A1 (en) Generating signed measurements
US9965625B2 (en) Control system and authentication device
KR101778455B1 (ko) 해쉬 체인을 이용한 전자 영수증 관리 방법
US20240029063A1 (en) Currency management system and electronic signature device
US9998495B2 (en) Apparatus and method for verifying detection rule
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
US20230216878A1 (en) Threat prevention by selective feature deprivation
US9607135B2 (en) Asset protection based on redundantly associated trusted entitlement verification
JP7064219B1 (ja) 秘密鍵方式の電子署名装置
CN115022096B (zh) 下载软件方法和装置
JP2002006739A (ja) 認証情報生成装置およびデータ検証装置
KR20180121121A (ko) Ecu 보안 유지를 위한 인증서 기반 차량 보안 방법 및 장치
KR20170123214A (ko) 최소 보안 연산을 가지는 포워드 시큐어 전자 서명 시스템 및 방법
HUANG et al. Cloud Data Auditing Scheme Based on Voting and Ethereum Smart Contracts

Legal Events

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