KR20120091618A - 연쇄 해시에 의한 전자서명 시스템 및 방법 - Google Patents

연쇄 해시에 의한 전자서명 시스템 및 방법 Download PDF

Info

Publication number
KR20120091618A
KR20120091618A KR1020110011492A KR20110011492A KR20120091618A KR 20120091618 A KR20120091618 A KR 20120091618A KR 1020110011492 A KR1020110011492 A KR 1020110011492A KR 20110011492 A KR20110011492 A KR 20110011492A KR 20120091618 A KR20120091618 A KR 20120091618A
Authority
KR
South Korea
Prior art keywords
verification
key
signature
client terminal
message authentication
Prior art date
Application number
KR1020110011492A
Other languages
English (en)
Other versions
KR101253683B1 (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 KR1020110011492A priority Critical patent/KR101253683B1/ko
Publication of KR20120091618A publication Critical patent/KR20120091618A/ko
Application granted granted Critical
Publication of KR101253683B1 publication Critical patent/KR101253683B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

본 발명은 간단하고 안전한 방식으로 알려진 해시 함수를 이용하여 여러 개의 메시지를 서명 및 검증할 수 있도록 함으로써 휴대 단말기나 셋톱박스 등의 저사양 기기에서도 원활하고 안전하게 전자서명을 할 수 있도록 한 연쇄 해시에 의한 전자서명 시스템 및 방법에 관한 것이다.
본 발명의 일 특징에 따른 연쇄 해시에 의한 전자서명 시스템은 난수로 된 서명키 P를 생성하는 서명키 생성 모듈, 해시 함수에 의해 서명키 P의 쌍인 검증키 V를 생성하는 검증키 생성 모듈, 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 생성된 메시지 인증코드 M을 포함한 서명데이터 s를 생성하여 통신 모듈을 통해 검증 서버에 전달하는 서명데이터 생성 모듈 및 생성된 서명키 P를 저장하는 서명키 저장 모듈을 포함한 클라이언트 단말기 및 유/무선 통신망에 의해 클라이언트 단말기와 연결되고, 서명데이터 s의 위조 또는 변조를 검증할 수 있는 서명데이터 검증 모듈, 클라이언트 단말기로부터 전달받은 서명키 P의 유효성을 검증할 수 있는 서명키 검증 모듈 및 검증키 V를 저장하는 검증키 저장 모듈을 포함하여 이루어지되, 클라이언트 단말기는 i번째 거래시 상기 서명키 생성 모듈 및 상기 검증키 생성 모듈에 의해 i+1번째 거래에 사용될 i+1번째 서명키 P[i+1]와 검증키 V[i+1]을 생성한 후에 i+1번째 검증키 V[i+1]을 서명데이터 s에 포함시켜 검증 서버에 전달한다.

Description

연쇄 해시에 의한 전자서명 시스템 및 방법{Digital Signing System and Method Using Chained Hash}
본 발명은 연쇄 해시에 의한 전자서명 시스템 및 방법에 관한 것으로, 특히 간단하고 안전한 방식으로 알려진 해시 함수를 이용하여 여러 개의 메시지를 서명 및 검증할 수 있도록 함으로써 휴대 단말기나 셋톱박스 등의 저사양 기기에서도 원활하고 안전하게 전자서명을 할 수 있도록 한 연쇄 해시에 의한 전자서명 시스템 및 방법에 관한 것이다.
잘 알려진 바와 같이, 부인 방지(否認 防止)는 메시지의 송수신이나 교환 후 또는 통신이나 처리가 실행된 후에 그 사실을 증명함으로써 사실 부인을 방지하는 보안 기술을 일컫는다. 여기에는 예를 들어, 이메일이나 메시지를 송신하고도 송신하지 않았다고 주장하는 송신자의 부인을 막는 송신 부인 방지, 메시지가 송달(전달)된 사실을 송달되지 않았다고 주장하는 수신자의 부인을 막는 송달 부인 방지, 메시지를 수신하고도 수신하지 않았다고 주장하는 수신자의 부인을 막는 수신 부인 방지 등이 있을 수 있다. 이러한 부인 방지 기술은 온라인 금융 거래에서도 매우 중요한바, 현재 RSA(Rivest-Shamir-Adleman) 공개키 기반의 전자서명 방식으로 구현되고 있다.
종래 부인 방지를 위한 전자서명은 다음의 요건을 만족해야 한다. 즉, 거래 내용 등이 담긴 메시지를 m, 서명키를 P, 검증키를 V, 서명함수를 f 그리고 검증함수를 g라고 할 때, 서명값은 s = f(m, P)이고, g(m, s, V)={true, false}로 검증할 수 있어야 한다. 또한 P를 모르는 상태에서는 g(m, s, V) = true인 임의의 m, s의 쌍을 찾는 것이 계산적으로 어려워야 한다.
그러나 이러한 RSA 공개키 기반의 전자서명 알고리즘은 키 생성 등의 동작에서 연산량이 많아 일반 휴대폰이나 셋톱박스 등 저사양의 기기에서는 적용이 어려운 한계가 있었다. 뿐만 아니라 인터넷 익스플로러 등과 같은 특정 회사의 브라우저를 기반으로 개발되어 있기 때문에 현재 다양한 브라우저를 사용하는 스마트폰 등에 적용하기 위해서는 추가의 막대한 개발 비용이 소요되는 문제점이 있었다.
더욱이 1024비트 기반의 현행 RSA 공개키 기반 전자서명 알고리즘은 암호학적으로 이미 해독되어 있어서 2011년 4월부터 2048비트 기반으로 변경 시행될 예정으로 있는바, 각 금융기관마다 이러한 2048비트 기반의 RSA 공개키 기반 전자서명 알고리즘을 개발하는데 막대한 비용이 소요되어 수익성을 악화시키는 문제점이 있었다.
한편, 종래 공인 인증서를 대체 또는 보완하는 수단으로 OTP(One Time Password) 기술이 사용되고 있는바, 이러한 OTP 생성 방식은 크게 인증 서버와 클라이언트 사이에서 시간 동기에 의해 OTP를 생성하는 시간 동기 방식, 이전의 OTP에 의해 다음의 OTP를 생성하는 방식 및 임의의 이벤트, 예를 들어 로그-인 이벤트를 카운트하고 그 카운트 회수에 의해 OTP를 생성하는 방식을 포함한 다양한 방식으로 이루어질 수 있다.
그러나 이러한 OTP 생성 방식은 클라이언트와 인증 서버 모두에 OTP 생성키가 저장되어야 하기 때문에 이러한 OTP 생성키가 불순한 의도로 해킹당하는 경우에는 등 보안에 취약하다는 문제점이 있었다.
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 간단하고 안전한 방식으로 알려진 해시 함수를 이용하여 여러 개의 메시지를 서명 및 검증할 수 있도록 함으로써 휴대 단말기나 셋톱박스 등의 저사양 기기에서도 원활하고 안전하게 전자서명을 할 수 있도록 한 연쇄 해시에 의한 전자서명 시스템 및 방법을 제공함을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 일 특징에 따른 연쇄 해시에 의한 전자서명 시스템은 난수로 된 서명키 P를 생성하는 서명키 생성 모듈, 해시 함수에 의해 서명키 P의 쌍인 검증키 V를 생성하는 검증키 생성 모듈, 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 생성된 메시지 인증코드 M을 포함한 서명데이터 s를 생성하여 통신 모듈을 통해 검증 서버에 전달하는 서명데이터 생성 모듈 및 생성된 서명키 P를 저장하는 서명키 저장 모듈을 포함한 클라이언트 단말기 및 유/무선 통신망에 의해 클라이언트 단말기와 연결되고, 서명데이터 s의 위조 또는 변조를 검증할 수 있는 서명데이터 검증 모듈, 클라이언트 단말기로부터 전달받은 서명키 P의 유효성을 검증할 수 있는 서명키 검증 모듈 및 검증키 V를 저장하는 검증키 저장 모듈을 포함하여 이루어지되, 클라이언트 단말기는 i번째 거래시 상기 서명키 생성 모듈 및 상기 검증키 생성 모듈에 의해 i+1번째 거래에 사용될 i+1번째 서명키 P[i+1]와 검증키 V[i+1]을 생성한 후에 i+1번째 검증키 V[i+1]을 서명데이터 s에 포함시켜 검증 서버에 전달한다.
전술한 구성에서, 서명데이터 s는 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 이루어진 것을 특징으로 한다.
상기 서명데이터 생성 모듈과 상기 서명데이터 검증 모듈은 동일한 구성으로 이루어지고, 상기 서명키 생성 모듈과 상기 서명키 검증 모듈은 동일한 구성으로 이루어진 것을 특징으로 한다.
상기 검증키 생성 모듈은 최초의 검증키 V[0]을 생성한 후에 통신 모듈을 통해 검증 서버에 전달하고, 검증 서버는 최초 검증키 V[0]를 상기 검증키 저장 모듈에 저장하는 것을 특징으로 한다.
본 발명의 다른 특징에 따른 연쇄 해시에 의한 전자서명 방법은 유/무선 통신망에 의해 상호 연결된 클라이언트 단말기와 검증 서버 사이에서 수행되되, 클라이언트 단말기가 i번째 거래 내역이 담긴 메시지 m과 서명키 P[i]에 대해 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 메시지 인증코드 M(= HMAC(m, P[i]))을 생성하는 (a) 단계; 클라이언트 단말기가 i+1번째 거래에 사용될 서명키 P[i+1] 및 서명키 P[i+1]와 쌍이 되는 검증키 V[i+1](=H(P[i+1]))을 생성하는 (b) 단계; 클라이언트 단말기가 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 만들어진 서명데이터 s를 생성하여 검증 서버에 전달하는 (c) 단계; 검증 서버가 서명데이터 s에 포함된 P[i]로부터 해시 함수를 이용하여 H(P[i])를 계산하고 H(P[i])가 자신이 직전(i-1) 거래 과정에서 클라이언트 단말기로부터 전달받아 저장하고 있는 검증키 V[i]와 일치하는지 및 일치하는 경우에 서명데이터 s에 포함된 메시지 m과 서명키 P[i]를 이용하여 메시지 인증코드 M'(= HMAC(m, P[i]))를 계산하여 서명데이터 s에 포함되어 전달받은 메시지 인증코드 M과 일치하는지를 판단하는 (d) 단계 및 상기 계산된 메시지 인증코드 M'와 상기 전달받은 메시지 인증코드 M이 일치하는 경우에는 검증에 성공한 것으로 결정하는 반면에 일치하지 않거나 상기 (d) 단계에서 상기 H(P[i])와 검증키 V[i]가 일치하지 않는 경우에는 검증에 실패한 것으로 결정하는 (e) 단계를 포함하여 이루어진다.
전술한 구성에서, 등록 과정에서 클라이언트 단말기가 난수로 이루어진 최초 서명키 P[0] 및 최초 서명키 P[0]과 쌍이 되는 최초 검증키 V[0]을 해시 함수를 이용하여 생성한 후에 최초 검증키 V[0]을 검증 서버에 전달하고, 검증 서버는 최초 검증키 V[0]을 저장하는 것을 특징으로 한다.
본 발명의 또 다른 특징에 따른 연쇄 해시에 의한 전자서명 방법은 검증 서버와 유/무선 통신망에 의해 상호 연결된 클라이언트 단말기에 의해 수행되되, 등록 과정에서 난수로 이루어진 최초 서명키 P[0] 및 최초 서명키 P[0]과 쌍이 되는 최초 검증키 V[0]을 해시 함수를 이용하여 생성한 후에 최초 검증키 V[0]을 검증 서버에 전달하는 (h) 단계; 거래 과정에서 i번째 거래 내역이 담긴 메시지 m과 서명키 P[i]에 대해 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 메시지 인증코드 M(= HMAC(m, P[i]))을 생성하는 (i) 단계; i+1번째 거래에 사용될 서명키 P[i+1] 및 서명키 P[i+1]과 쌍이 되는 검증키 V[i+1](=H(P[i+1]))를 생성하는 (j) 단계; 상기 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 만들어진 서명데이터 s를 생성하여 검증 서버에 전달하는 (k) 단계 및 검증 서버로부터 검증 성공 사실을 통보받은 경우에 상기 P[i]를 메모리에서 삭제하고 상기 P[i+1]을 저장하는 (l) 단계를 포함하여 이루어진다.
본 발명의 또 다른 특징에 따른 연쇄 해시에 의한 전자서명 방법은 클라이언트 단말기와 유/무선 통신망에 의해 상호 연결된 검증 서버에 의해 수행되되, 등록 과정에서 클라이언트 단말기로부터 최초 검증키 V[0]을 전달받아 메모리에 저장하는 (o) 단계; i번째의 거래 과정에서 클라이언트 단말기로부터 전달받은 서명데이터 s에 포함된 i번째 서명키 P[i]로부터 해시 함수를 이용하여 H(P[i])를 계산하고, 이렇게 계산된 H(P[i])가 자신이 직전(i-1) 금융 거래 과정에서 클라이언트 단말기로부터 전달받아 저장하고 있는 i번째 검증키 V[i]와 일치하는지 판단하는 (p) 단계; 상기 (p) 단계에서의 판단 결과, 일치하지 않는 경우에는 검증이 실패한 것으로 간주하고 그 사실을 클라이언트 단말기에 통보하는 반면에 일치하는 경우에는 서명데이터 s에 포함된 메시지 m과 서명키 P[i]를 이용하여 메시지 인증코드 M'(= HMAC(m, P[i]))을 계산하고, 이렇게 계산된 인증코드 M'가 서명데이터 s에 포함되어 전달받은 M과 일치하는지를 판단하는 (q) 단계 및 상기 (q) 단계에서의 판단 결과, M'와 M이 일치하지 않는 경우에 검증에 실패한 것으로 간주하여 그 사실을 클라이언트에게 통보하는 반면에 일치하는 경우에는 서명데이터 s에 포함된 i+1번째 검증키 V[i+1]을 메모리에 저장함과 동시에 검증 성공 사실을 클라이언트 단말기에 통보하는 (r) 단계를 포함하여 이루어진다.
일반적으로 해시 함수를 이용한 전자서명 및 검증 시에는 서명키가 검증 과정에서 필요하게 되어 서명키가 노출되는 문제가 존재하나 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법에 따르면 i번째 서명/검증 시에 i+1번째의 검증키를 미리 전달함으로써 i번째 노출된 서명키가 i+1번째의 검증에 사용되지 않게 되고, 이에 따라 서명키의 노출에 따른 문제를 해소할 수가 있다.
결과적으로 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법에 따르면, 종래 RSA 기반의 공인 인증 방식에 비해 프로그램이 간단할 뿐만 아니라 전자서명 및 검증에 따른 연산량이 매우 적고, 이에 따라 시스템 구축이 소요되는 비용과 노력이 줄어들면서도 부인 방지의 요구 사항을 모두 충족할 수가 있다.
도 1은 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법을 설명하기 위한 시퀀스 차트이다.
이하에는 첨부한 도면을 참조하여 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
잘 알려진 바와 같이, 해시 함수를 이용한 전자서명 방법에는 램포트(Lamport)가 주창한 일회용 서명 기술(Onetime Signature Scheme)이 있다. 그러나 이러한 램포트의 전자서명 방법은 검증키 및 서명 데이터가 크기가 클 뿐만 아니라 1회 밖에 사용하지 못하는, 다시 말해서 여러 메시지(Multiple messages)에 대한 처리가 어렵다는 단점이 있다.
한편, 해시 함수(Hash Function)는 요약함수(要約函數)ㅇ메시지다이제스트함수(message digest function)라고도 하는데, 주어진 원문에서 고정된 길이의 난수, 바림직하게는 의사 난수를 생성하는 연산기법을 말하며, 이에 의해 생성된 값을 '해시값'이라고 한다. 통신회선을 통해서 데이터를 주고받을 때, 경로의 양쪽 끝에서 데이터의 해시값을 구해서 보낸 쪽과 받은 쪽의 값을 비교하면 데이터를 주고받는 도중에 여기에 변경이 가해졌는지 어떤지를 확인할 수 있다. 이러한 해시 함수는 불가역적인 일방향함수를 포함하고 있기 때문에 해시값에서 원문을 재현할 수는 없을 뿐만 아니라 같은 해시값을 갖는 다른 데이터를 작성하는 것도 극히 어렵다. 이런 특성 때문에 해시 함수는 통신의 암호화 보조수단이나 사용자 인증 또는 디지털 서명 등에 널리 응용되고 있다. 여기에서 일방향함수란 함정문함수(trap door function)라고도 하는 것으로, 제수(除數)에서 결과를 구하는 것은 간단하지만 결과에서 제수를 구하는 것을 어려운 함수를 말한다.
도 1은 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법을 설명하기 위한 시퀀스 차트이다. 도 1에 도시한 바와 같이 본 발명의 연쇄 해시에 의한 전자서명 시스템은 크게 본 발명의 연쇄 해시에 의한 전자서명 프로그램(이하 간단히 '클라이언트 프로그램'이라 한다)이 탑재된 클라이언트 단말기(100) 및 클라이언트 단말기(100)와 각종 유/무선 통신망에 의해 연결되고 내부에는 전자서명 검증 프로그램(이하 간단히 '서버 프로그램'이라 한다)이 탑재된 검증 서버(200) 사이에서 이루어질 수 있다.
전술한 구성에서, 클라이언트 단말기(100)는 데스크톱이나 노트북 컴퓨터와 같은 고사양 기기 이외에도 휴대폰이나 핸드폰으로 불리는 저사양의 이동통신 단말기나 각종 셋톱박스 또는 근래 들어 비약적으로 그 보급이 늘어난 스마트폰 등이 될 수 있다. 검증 서버(200)는 인터넷 뱅킹을 위한 금융기관 서버나 쇼핑몰 서버, 온라인 증권회사 서버 또는 온라인 민원 발급 서버 등 종래 공인 인증서에 의한 전자서명을 검증 수단으로 사용하는 곳이면 제한 없이 가능할 것이다.
한편, 클라이언트 프로그램은 다시 기능적으로 서명키인 난수, 바람직하게는 의사 난수(Pseudo Random)를 생성하는 서명키 생성 모듈(110), 해시 함수에 의해 서명키의 쌍인 검증키를 생성하는 검증키 생성 모듈(120), 메시지 인증코드(MAC: Message Authentication Code)를 포함한 서명데이터 s를 생성하는 서명데이터 생성 모듈(130) 및 생성된 서명키를 저장하는 서명키 저장 모듈(140) 및 통신 모듈(미도시)을 포함하여 이루어진다.
다음으로, 서버 프로그램은 다시 서명데이터의 위조 또는 변조를 검증할 수 있는 서명데이터 검증 모듈(210), 클라이언트(100)로부터 전달받은 서명키의 유효성을 검증할 수 있는 서명키 검증 모듈(220) 및 검증키를 저장하는 검증키 저장 모듈(230) 및 통신 모듈(미도시)을 포함하여 이루어질 수 있다. 여기에서 서명데이터 검증 모듈(210)은 실제로 클라이언트 프로그램에 설치된 서명데이터 생성 모듈(130)과 동일하게 이루어지고, 서명키 검증 모듈(220) 역시 클라이언트 프로그램에 설치된 검증키 생성 모듈(120)과 동일하게 이루어질 수 있다.
한편, 본 발명은 연쇄 해시에 의한 전자서명 방법에 따른 클라이언트 프로그램은 종래의 공인 인증 절차와 마찬가지로, 사용자가 검증 서버를 운영하는 기관, 예를 들어 금융 기관을 직접 방문하여 전자서명 사용 신청을 하고, 이에 따라 발급받은 임시 아이디(비밀번호) 등을 클라이언트 단말기(100)에 입력함으로써 다운로드받을 수 있다.
이와 같이 클라이언트 단말기(100)에 클라이언트 프로그램이 설치된 상태에서, 먼저 단계 S10에서 클라이언트 프로그램은 의사 난수를 발생시키는 서명키 생성 모듈(110)에 의해 최초 서명키인 P[0]을 생성하여 서명키 저장 모듈(140)에 저장한다. 클라이언트 프로그램은 다시 단계 S20에서 서명키 P[0]의 쌍이 되는 검증키를 생성하기 위해 해시 함수를 이용하여 최초 검증키인 V[0](=H(P[0])를 생성하고, 단계 S30에서 이를 검증 시스템, 즉 검증 서버(200)에 공개(전달)한다. 단계 S20은 클라이언트 프로그램의 검증키 생성 모듈(120)에 의해 수행될 수 있는데, 최초 검증키 V[0]을 전달받은 검증 서버(200)에서는 이후에 단계 S40에서 이렇게 전달받은 검증키 V[0]을 자체의 검증키 저장 모듈(230)에 해당 클라이언트의 고유 식별 정보와 매칭시켜 저장한다. 여기에서 클라이언트의 고유 식별 정보는 아이디나 비밀번호 또는 클라이언트 단말기의 고유 식별 정보, 예를 들어 데스크톱이나 노트북 컴퓨터의 경우에는 랜카드의 카드 일련 번호가 되고 이동통신 단말기인 경우에는 이동전화번호나 제조 일련 번호 등으로 될 수 있다.
이 상태에서, i 번째의 실제 금융 거래 시 클라이언트 프로그램은 단계 S50에서 금융 거래 내역이 담긴 메시지 m과 서명키 P[i]에 대해 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 메시지 인증코드 M(= HMAC(m, P[i]))을 생성하는데, 이 단계 S50은 서명데이터 생성 모듈(130)에 의해 수행된다. 다음으로, 클라이언트 프로그램은 단계 S60에서 서명키 생성 모듈(110)에 의해 다음번의 금융 거래, 즉 i+1번째 금융 거래에 사용될 서명키 P[i+1]을 생성하고, 다시 단계 S70에서는 검증키 생성 모듈(120)에 의해 서명키 P[i+1]와 쌍이 되는 검증키 V[i+1](=H(P[i+1]))를 생성한다.
다음으로 단계 S80 및 단계 S90에서 클라이언트 프로그램은 이렇게 생성된 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합(concaternation) 연산하여 만들어진 서명데이터 s를 생성하여 검증 서버(200)에 전달하는데, 이 단계 S80은 서명데이터 생성 모듈(130)에 의해 수행될 수 있다.
다음으로 검증 서버(200)는 단계 S90에서 서명데이터 s에 포함된 P[i]로부터 해시 함수를 이용하여 H(P[i])를 계산하고, 다시 단계 S100에서는 이렇게 계산된 H(P[i])가 자신이 직전(i-1) 금융 거래 과정에서 클라이언트(100)로부터 전달받아 저장하고 있는 V[i]와 일치하는지 판단한다. 단계 S90은 서명키 검증 모듈(220)에 의해 수행된다.
단계 S100에서의 판단 결과, 일치하지 않는 경우에는 검증이 실패한 것으로 간주하고 단계 S115에서 그 사실을 클라이언트(100)에게 통보한다. 반면에 일치하는 경우에는 다시 단계 S120을 수행하여 서명데이터 s에 포함된 메시지 m과 서명키 P[i]를 이용하여 메시지 인증코드 M'(= HMAC(m, P[i]))를 계산하고, 다시 단계 S130한 후에 서명데이터 s에 포함되어 전달받은 M과 일치하는지를 판단한다.
단계 S130에서의 판단 결과, M'와 M이 일치하지 않는 경우에 검증 서버(200)는 검증에 실패한 것으로 간주하여 단계 S135에서 그 사실을 클라이언트(100)에게 통보한다. 반면에 일치하는 경우에는 단계 S140에서 다음번(i+1) 금융 거래의 검증을 위해 서명데이터 s에 포함된 V[i+1]을 검증키 저장 모듈(230)에 저장함과 동시에 단계 S150에서 검증 성공 사실을 클라이언트(100)에게 통보한다.
마지막으로 이러한 통보를 받은 클라이언트(100)는 단계 S160에서 금번(i)의 금융 거래에 사용된 서명키 P[i]를 삭제하고 P[i+1]을 서명키 저장 모듈(140)에 저장하는데, 이후의 금융 거래에서는 전술한 단계 S50 이하가 반복되게 된다.
이상에서 설명한 바와 같이, 본 발명의 연쇄 해시에 의한 전자서명 시스템 및 방법에 따르면, 검증키 V[i]로부터 P[i]를 유추하는 것은 해시 함수의 특성에 의해 대단히 어렵다고 알려져 있기 때문에 비록 V[i]를 알고 있는 검증 서버(200)라도 P[i]를 모르는 상태에서 서명측인 클라이언트(100)가 생성하는 서명데이터를 임의로 생성할 수 없게 되어 전자서명이 충족해야 하는 요건을 만족한다고 볼 수 있다.
본 발명의 연쇄 해시에 의한 전자서명 방법은 전술한 실시예에 국한되지 않고 본 발명의 기술사상이 허용하는 범위 내에서 다양하게 변형하여 실시할 수가 있다. 예를 들어, 전술한 실시예에서는 금융 거래를 예로 들었으나 이에 국한되지 않고, 공인된 전자서명이 필요한 곳에서는 제한 없이 사용될 수 있을 것인바, 이하 특허청구범위에서'거래'라 함은 클라이언트와 검증 서버에 사이에서 검증을 요구하는 모든 작업을 일컫는 것으로 사용됨을 밝혀 둔다.
100: 클라이언트 단말기, 110: 서명키 생성 모듈,
120: 검증키 생성 모듈, 130: 서명데이터 생성 모듈,
140: 서명키 저장 모듈, 200: 검증 서버,
210: 서명데이터 검증 모듈, 220: 서명키 검증 모듈,
230: 검증키 저장 모듈

Claims (12)

  1. 난수로 된 서명키 P를 생성하는 서명키 생성 모듈, 해시 함수에 의해 서명키 P의 쌍인 검증키 V를 생성하는 검증키 생성 모듈, 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 생성된 메시지 인증코드 M을 포함한 서명데이터 s를 생성하여 통신 모듈을 통해 검증 서버에 전달하는 서명데이터 생성 모듈 및 생성된 서명키 P를 저장하는 서명키 저장 모듈을 포함한 클라이언트 단말기 및
    유/무선 통신망에 의해 클라이언트 단말기와 연결되고, 서명데이터 s의 위조 또는 변조를 검증할 수 있는 서명데이터 검증 모듈, 클라이언트 단말기로부터 전달받은 서명키 P의 유효성을 검증할 수 있는 서명키 검증 모듈 및 검증키 V를 저장하는 검증키 저장 모듈을 포함하여 이루어지되,
    클라이언트 단말기는 i번째 거래시 상기 서명키 생성 모듈 및 상기 검증키 생성 모듈에 의해 i+1번째 거래에 사용될 i+1번째 서명키 P[i+1]와 검증키 V[i+1]을 생성한 후에 i+1번째 검증키 V[i+1]을 서명데이터 s에 포함시켜 검증 서버에 전달하는 연쇄 해시에 의한 전자서명 시스템.
  2. 제 1 항에 있어서,
    서명데이터 s는 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 이루어진 것을 특징으로 하는 연쇄 해시에 의한 전자서명 시스템.
  3. 제 1 항에 있어서,
    상기 서명데이터 생성 모듈과 상기 서명데이터 검증 모듈은 동일한 구성으로 이루어지고,
    상기 서명키 생성 모듈과 상기 서명키 검증 모듈은 동일한 구성으로 이루어진 것을 특징으로 하는 연쇄 해시에 의한 전자 서명 시스템.
  4. 제 1 항에 있어서,
    상기 검증키 생성 모듈은 최초의 검증키 V[0]을 생성한 후에 통신 모듈을 통해 검증 서버에 전달하고,
    검증 서버는 최초 검증키 V[0]를 상기 검증키 저장 모듈에 저장하는 것을 특징으로 하는 연쇄 해시에 의한 전자 서명 시스템.
  5. 제 1 항 내지 제 4 항의 전자 서명 시스템을 구성하는 클라이언트 단말기.
  6. 제 1 항 내지 제 4 항의 전자 서명 시스템을 구성하는 검증 서버.
  7. 제 1 항 내지 제 4 항의 전자 서명 시스템을 구성하는 검증 서버.
  8. 유/무선 통신망에 의해 상호 연결된 클라이언트 단말기와 검증 서버 사이에서 수행되되,
    클라이언트 단말기가 i번째 거래 내역이 담긴 메시지 m과 서명키 P[i]에 대해 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 메시지 인증코드 M(= HMAC(m, P[i]))을 생성하는 (a) 단계;
    클라이언트 단말기가 i+1번째 거래에 사용될 서명키 P[i+1] 및 서명키 P[i+1]와 쌍이 되는 검증키 V[i+1](=H(P[i+1]))을 생성하는 (b) 단계;
    클라이언트 단말기가 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 만들어진 서명데이터 s를 생성하여 검증 서버에 전달하는 (c) 단계;
    검증 서버가 서명데이터 s에 포함된 P[i]로부터 해시 함수를 이용하여 H(P[i])를 계산하고 H(P[i])가 자신이 직전(i-1) 거래 과정에서 클라이언트 단말기로부터 전달받아 저장하고 있는 검증키 V[i]와 일치하는지 및 일치하는 경우에 서명데이터 s에 포함된 메시지 m과 서명키 P[i]를 이용하여 메시지 인증코드 M'(= HMAC(m, P[i]))를 계산하여 서명데이터 s에 포함되어 전달받은 메시지 인증코드 M과 일치하는지를 판단하는 (d) 단계 및
    상기 계산된 메시지 인증코드 M'와 상기 전달받은 메시지 인증코드 M이 일치하는 경우에는 검증에 성공한 것으로 결정하는 반면에 일치하지 않거나 상기 (d) 단계에서 상기 H(P[i])와 검증키 V[i]가 일치하지 않는 경우에는 검증에 실패한 것으로 결정하는 (e) 단계를 포함하여 이루어진 연쇄 해시에 의한 전자서명 방법.
  9. 제 8 항에 있어서,
    등록 과정에서 클라이언트 단말기가 난수로 이루어진 최초 서명키 P[0] 및 최초 서명키 P[0]과 쌍이 되는 최초 검증키 V[0]을 해시 함수를 이용하여 생성한 후에 최초 검증키 V[0]을 검증 서버에 전달하고,
    검증 서버는 최초 검증키 V[0]을 저장하는 것을 특징으로 하는 연쇄 해시에 의한 전자서명 방법.
  10. 검증 서버와 유/무선 통신망에 의해 상호 연결된 클라이언트 단말기에 의해 수행되되,
    등록 과정에서 난수로 이루어진 최초 서명키 P[0] 및 최초 서명키 P[0]과 쌍이 되는 최초 검증키 V[0]을 해시 함수를 이용하여 생성한 후에 최초 검증키 V[0]을 검증 서버에 전달하는 (h) 단계;
    거래 과정에서 i번째 거래 내역이 담긴 메시지 m과 서명키 P[i]에 대해 해시 기반 메시지 인증 함수인 HMAC(Hash Message Authentication Code)에 의해 메시지 인증코드 M(= HMAC(m, P[i]))을 생성하는 (i) 단계;
    i+1번째 거래에 사용될 서명키 P[i+1] 및 서명키 P[i+1]과 쌍이 되는 검증키 V[i+1](=H(P[i+1]))를 생성하는 (j) 단계;
    상기 메시지 인증코드 M, 메시지 m, i번째 서명키 P[i] 및 i+1번째 검증키 V[i+1]을 접합 연산하여 만들어진 서명데이터 s를 생성하여 검증 서버에 전달하는 (k) 단계 및
    검증 서버로부터 검증 성공 사실을 통보받은 경우에 상기 P[i]를 메모리에서 삭제하고 상기 P[i+1]을 저장하는 (l) 단계를 포함하여 이루어진 연쇄 해시에 의한 전자서명 방법.
  11. 클라이언트 단말기와 유/무선 통신망에 의해 상호 연결된 검증 서버에 의해 수행되되,
    등록 과정에서 클라이언트 단말기로부터 최초 검증키 V[0]을 전달받아 메모리에 저장하는 (o) 단계;
    i번째의 거래 과정에서 클라이언트 단말기로부터 전달받은 서명데이터 s에 포함된 i번째 서명키 P[i]로부터 해시 함수를 이용하여 H(P[i])를 계산하고, 이렇게 계산된 H(P[i])가 자신이 직전(i-1) 금융 거래 과정에서 클라이언트 단말기로부터 전달받아 저장하고 있는 i번째 검증키 V[i]와 일치하는지 판단하는 (p) 단계;
    상기 (p) 단계에서의 판단 결과, 일치하지 않는 경우에는 검증이 실패한 것으로 간주하고 그 사실을 클라이언트 단말기에 통보하는 반면에 일치하는 경우에는 서명데이터 s에 포함된 메시지 m과 서명키 P[i]를 이용하여 메시지 인증코드 M'(= HMAC(m, P[i]))을 계산하고, 이렇게 계산된 인증코드 M'가 서명데이터 s에 포함되어 전달받은 M과 일치하는지를 판단하는 (q) 단계 및
    상기 (q) 단계에서의 판단 결과, M'와 M이 일치하지 않는 경우에 검증에 실패한 것으로 간주하여 그 사실을 클라이언트에게 통보하는 반면에 일치하는 경우에는 서명데이터 s에 포함된 i+1번째 검증키 V[i+1]을 메모리에 저장함과 동시에 검증 성공 사실을 클라이언트 단말기에 통보하는 (r) 단계를 포함하여 이루어진 연쇄 해시에 의한 전자서명 방법.
  12. 제 8 항 내지 제 11 항 중 어느 한 항의 전자서명 방법을 수행하는 프로그램이 수록되어 컴퓨터로 읽을 수 있는 기록매체.
KR1020110011492A 2011-02-09 2011-02-09 연쇄 해시에 의한 전자서명 시스템 및 방법 KR101253683B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110011492A KR101253683B1 (ko) 2011-02-09 2011-02-09 연쇄 해시에 의한 전자서명 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110011492A KR101253683B1 (ko) 2011-02-09 2011-02-09 연쇄 해시에 의한 전자서명 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20120091618A true KR20120091618A (ko) 2012-08-20
KR101253683B1 KR101253683B1 (ko) 2013-04-11

Family

ID=46883950

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110011492A KR101253683B1 (ko) 2011-02-09 2011-02-09 연쇄 해시에 의한 전자서명 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101253683B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180049455A (ko) * 2016-11-02 2018-05-11 현대오토에버 주식회사 차량용 모듈의 정품 인증 방법 및 장치
CN110781140A (zh) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 区块链中数据签名的方法、装置、计算机设备及存储介质
KR20200016506A (ko) * 2018-08-07 2020-02-17 한국스마트인증 주식회사 익명 디지털 아이덴티티 수립 방법
CN114584291A (zh) * 2022-02-18 2022-06-03 杭州代码狗科技有限公司 基于hmac算法的密钥保护方法、装置、设备和存储介质
CN114978555A (zh) * 2022-08-01 2022-08-30 北京惠朗时代科技有限公司 基于web脚本数据流运算的远程在线电子签章***
CN116032948A (zh) * 2023-02-21 2023-04-28 苏州阿基米德网络科技有限公司 一种医院内网与外网数据同步方法、***及电子设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102474628B1 (ko) 2020-11-26 2022-12-05 세종대학교산학협력단 함수 서명을 이용한 서명 암호화 방법 및 이를 수행하기 위한 컴퓨팅 장치

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7464266B2 (en) 2004-02-13 2008-12-09 Microsoft Corporation Cheap signatures for synchronous broadcast communication

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180049455A (ko) * 2016-11-02 2018-05-11 현대오토에버 주식회사 차량용 모듈의 정품 인증 방법 및 장치
KR20200016506A (ko) * 2018-08-07 2020-02-17 한국스마트인증 주식회사 익명 디지털 아이덴티티 수립 방법
CN110781140A (zh) * 2019-09-06 2020-02-11 平安科技(深圳)有限公司 区块链中数据签名的方法、装置、计算机设备及存储介质
CN110781140B (zh) * 2019-09-06 2023-08-18 平安科技(深圳)有限公司 区块链中数据签名的方法、装置、计算机设备及存储介质
CN114584291A (zh) * 2022-02-18 2022-06-03 杭州代码狗科技有限公司 基于hmac算法的密钥保护方法、装置、设备和存储介质
CN114584291B (zh) * 2022-02-18 2023-12-29 杭州代码狗科技有限公司 基于hmac算法的密钥保护方法、装置、设备和存储介质
CN114978555A (zh) * 2022-08-01 2022-08-30 北京惠朗时代科技有限公司 基于web脚本数据流运算的远程在线电子签章***
CN116032948A (zh) * 2023-02-21 2023-04-28 苏州阿基米德网络科技有限公司 一种医院内网与外网数据同步方法、***及电子设备

Also Published As

Publication number Publication date
KR101253683B1 (ko) 2013-04-11

Similar Documents

Publication Publication Date Title
US11588637B2 (en) Methods for secure cryptogram generation
US11356280B2 (en) Personal device security using cryptocurrency wallets
US9853816B2 (en) Credential validation
US11070542B2 (en) Systems and methods for certificate chain validation of secure elements
US7689828B2 (en) System and method for implementing digital signature using one time private keys
CN110401615B (zh) 一种身份认证方法、装置、设备、***及可读存储介质
US9531540B2 (en) Secure token-based signature schemes using look-up tables
KR101253683B1 (ko) 연쇄 해시에 의한 전자서명 시스템 및 방법
JP2007522739A (ja) 一方向性認証
Odelu et al. A secure and efficient ECC‐based user anonymity preserving single sign‐on scheme for distributed computer networks
NL1043779B1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
CN109257177B (zh) 密钥生成方法、***、移动终端、服务器及存储介质
US12021987B2 (en) Methods for secure cryptogram generation
JP5392741B2 (ja) Rsaをベースとしたパスワード認証方式及びその応用
Oliveira Dynamic QR codes for Ticketing Systems
KR20110082861A (ko) 태그-리더간 상호 인증 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160404

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 7