KR101768605B1 - 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법 - Google Patents

전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법 Download PDF

Info

Publication number
KR101768605B1
KR101768605B1 KR1020160001362A KR20160001362A KR101768605B1 KR 101768605 B1 KR101768605 B1 KR 101768605B1 KR 1020160001362 A KR1020160001362 A KR 1020160001362A KR 20160001362 A KR20160001362 A KR 20160001362A KR 101768605 B1 KR101768605 B1 KR 101768605B1
Authority
KR
South Korea
Prior art keywords
hash value
hash
random
random strings
message
Prior art date
Application number
KR1020160001362A
Other languages
English (en)
Other versions
KR20170082222A (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 KR1020160001362A priority Critical patent/KR101768605B1/ko
Priority to PCT/KR2016/015458 priority patent/WO2017119668A1/ko
Publication of KR20170082222A publication Critical patent/KR20170082222A/ko
Application granted granted Critical
Publication of KR101768605B1 publication Critical patent/KR101768605B1/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L51/30
    • 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Power Engineering (AREA)

Abstract

전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법은 소정의 랜덤 스트링(string)들을 생성하고, 상기 랜덤 스트링들에 대해 연쇄(chain) 해시 값 연산 과정을 수행하여 생성된 해시 값들을 키 저장부 상에 저장해 놓고, 상기 랜덤 스트링들에 대해 상기 연쇄 해시 값 연산 과정을 추가적으로 수행함으로써, 검증키를 생성하여 상기 검증키를 데이터 수신 장치로 전송한 후 상기 데이터 수신 장치로 전송할 메시지를 상기 키 저장부에 저장되어 있는 해시 값들을 기초로 전자서명하여 상기 데이터 수신 장치로 전송하면, 상기 데이터 수신 장치가 상기 검증키를 기초로 전자서명 값을 검증할 수 있도록 유도함으로써, 상기 전송 메시지에 대한 부인 방지 기능을 제공할 수 있다.

Description

전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법{DATA TRANSMISSION APPARATUS AND METHOD FOR NON-REPUDIATION OF THE TRANSMISSION MESSAGE}
본 발명은 네트워크 시스템에서 데이터 전송 장치가 데이터 수신 장치로 전송하는 전송 메시지에 대한 부인 방지 기능을 제공하기 위한 보안 기술과 관련된다.
최근, 인터넷 기술이 발전함에 따라, 다양한 인터넷 가능 단말 간에 데이터를 송수신할 수 있는 환경이 구축되고 있다. 이러한 인터넷 기술의 발달로 인해 사물인터넷 기술이나 스마트 그리드(smart grid) 관련 기술들이 등장하고 있다.
네트워크 시스템에서 단말 간에 메시지를 주고받을 때에는 메시지에 대한 무결성을 검증하거나 메시지에 대한 암호화 등을 수행하는 것과 같은 보안 환경이 구축될 필요가 있다. 특히, 특정 사용자로부터 전달되는 메시지가 진정한 사용자에 의해서 전달되는 것인지 여부를 확인하기 위한 보안 서비스를 부인 방지 서비스라고 칭한다.
보통, 일반적인 온라인 뱅킹 서비스나 네트워크 시스템에서 도입하고 있는 부인 방지 서비스는 공개키 암호화 방식을 이용한 전자서명 시스템이 주를 이루고 있다.
공개키 암호화 방식의 전자서명 시스템이란 메시지를 전달하는 측에서 해당 메시지에 대한 해시 값에 대해 자신의 개인키로 암호화를 수행한 후 해당 메시지와 상기 개인키로 암호화한 값을 메시지 수신측에 전달하면, 메시지 수신측에서 상기 개인키에 대응하는 공개키로 상기 암호화한 값을 복호화하고, 메시지 전송측으로부터 수신한 상기 메시지에 대한 해시 값을 연산한 후 상기 공개키로 복호화한 값과 상기 메시지에 대한 해시 값을 비교하여 두 값이 서로 동일한 것으로 판단되면, 메시지 전송측으로부터 수신된 상기 암호화한 값이 상기 메시지 전송측의 개인키에 의해서 정말로 암호화된 값임이 입증됨에 따라, 상기 메시지가 진정한 메시지 전송측으로부터 전달된 메시지임을 확인하는 시스템이다.
이러한 공개키 암호화 방식의 전자서명 시스템은 메시지 전송측의 부인 방지를 구현하는데 매우 용이하게 사용될 수 있지만, 매우 많은 연산량을 요구하기 때문에 연산에 사용할 수 있는 하드웨어 또는 소프트웨어 자원이 매우 부족한 환경에서는 공개키 암호화 방식을 사용할 수 없는 단점이 있다.
특히, 최근에는 일반 컴퓨터와 같은 장치들뿐만 아니라, 수많은 사물들이 인터넷에 연결되는 사물 인터넷 시스템이나 네트워크 기반의 전력 시스템인 스마트 그리드 시스템이 도입되고 있는 추세이지만, 이러한 환경에서 사용되는 대부분의 단말 장치들은 연산 자원이 부족하다는 점에서, 기존의 공개키 암호화 기반의 부인 방지 기능을 사용하기 어려울 것으로 예상된다.
따라서, 기존의 공개키 암호화 기반의 부인 방지 기능이 아닌 새로운 형태의 방식을 통해서 부인 방지 기능을 제공할 수 있는 시스템에 대한 연구가 필요하다.
본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법은 소정의 랜덤 스트링(string)들을 생성하고, 상기 랜덤 스트링들에 대해 연쇄(chain) 해시 값 연산 과정을 수행하여 생성된 해시 값들을 키 저장부 상에 저장해 놓고, 상기 랜덤 스트링들에 대해 상기 연쇄 해시 값 연산 과정을 추가적으로 수행함으로써, 검증키를 생성하여 상기 검증키를 데이터 수신 장치로 전송한 후 상기 데이터 수신 장치로 전송할 메시지를 상기 키 저장부에 저장되어 있는 해시 값들을 기초로 전자서명하여 상기 데이터 수신 장치로 전송하면, 상기 데이터 수신 장치가 상기 검증키를 기초로 전자서명 값을 검증할 수 있도록 유도함으로써, 상기 전송 메시지에 대한 부인 방지 기능을 제공할 수 있도록 한다.
본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치는 t(t는 자연수)개의 랜덤 스트링(string)들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당하는 랜덤 스트링 생성부, 상기 t개의 랜덤 스트링들 각각에 대해서, 선정된(predetermined) 제1 해시 함수에 기초한 연쇄(chain) 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부 상에 서로 대응되도록 저장함으로써, 상기 키 저장부 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장하는 해시 값 저장부, 데이터 수신 장치로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성하는 메시지 해시 값 생성부, 상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성하는 데이터 변환부, 상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 상기 키 저장부로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출하는 해시 값 추출부 및 상기 데이터 수신 장치에 대해 상기 메시지와 상기 n개의 해시 값들을 전송하는 데이터 전송부를 포함한다.
또한, 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법은 t(t는 자연수)개의 랜덤 스트링들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당하는 단계, 상기 t개의 랜덤 스트링들 각각에 대해서, 선정된 제1 해시 함수에 기초한 연쇄 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부 상에 서로 대응되도록 저장함으로써, 상기 키 저장부 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장하는 단계, 데이터 수신 장치로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성하는 단계, 상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성하는 단계, 상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 상기 키 저장부로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출하는 단계 및 상기 데이터 수신 장치에 대해 상기 메시지와 상기 n개의 해시 값들을 전송하는 단계를 포함한다.
본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법은 소정의 랜덤 스트링(string)들을 생성하고, 상기 랜덤 스트링들에 대해 연쇄(chain) 해시 값 연산 과정을 수행하여 생성된 해시 값들을 키 저장부 상에 저장해 놓고, 상기 랜덤 스트링들에 대해 상기 연쇄 해시 값 연산 과정을 추가적으로 수행함으로써, 검증키를 생성하여 상기 검증키를 데이터 수신 장치로 전송한 후 상기 데이터 수신 장치로 전송할 메시지를 상기 키 저장부에 저장되어 있는 해시 값들을 기초로 전자서명하여 상기 데이터 수신 장치로 전송하면, 상기 데이터 수신 장치가 상기 검증키를 기초로 전자서명 값을 검증할 수 있도록 유도함으로써, 상기 전송 메시지에 대한 부인 방지 기능을 제공할 수 있다.
도 1은 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치의 구조를 도시한 도면이다
도 2는 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법을 도시한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치의 구조를 도시한 도면이다
도 1을 참조하면, 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지 가능한 데이터 전송 장치(110)는 랜덤 스트링(string) 생성부(111), 해시 값 저장부(112), 메시지 해시 값 생성부(114), 데이터 변환부(115), 해시 값 추출부(116) 및 데이터 전송부(117)를 포함한다.
랜덤 스트링 생성부(111)는 t(t는 자연수)개의 랜덤 스트링(string)들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당한다.
해시 값 저장부(112)는 상기 t개의 랜덤 스트링들 각각에 대해서, 선정된(predetermined) 제1 해시 함수에 기초한 연쇄(chain) 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부(113) 상에 서로 대응되도록 저장함으로써, 키 저장부(113) 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장한다.
이때, 본 발명의 일실시예에 따르면, 해시 값 저장부(112)는 상기 t개의 랜덤 스트링들 각각에 대해서, 상기 t개의 랜덤 스트링들을 상기 선정된 제1 해시 함수에 입력으로 인가하여 해시 값을 연산하고, 상기 연산된 해시 값을 상기 선정된 제1 해시 함수에 다시 입력으로 인가하여 추가 해시 값을 연산하는 방식의 상기 연쇄 해시 값 연산 과정을 상기 k회 수행할 수 있다.
메시지 해시 값 생성부(114)는 데이터 수신 장치(120)로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성한다.
데이터 변환부(115)는 상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성한다.
해시 값 추출부(116)는 상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 키 저장부(113)로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출한다.
데이터 전송부(117)는 데이터 수신 장치(120)에 대해 상기 메시지와 상기 n개의 해시 값들을 전송한다.
이때, 본 발명의 일실시예에 따르면, 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치(110)는 검증키 생성부(118) 및 검증키 전송부(119)를 더 포함할 수 있다.
검증키 생성부(118)는 상기 t개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 k+1회 수행하여 k+1번째 연쇄 해시 값을 연산하고, 상기 t개의 랜덤 스트링들 각각에 대해서 연산된 상기 k+1번째 연쇄 해시 값을 상기 t개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 t개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 t개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당한다.
검증키 전송부(119)는 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 데이터 수신 장치(120)로 전송한다.
이때, 본 발명의 일실시예에 따르면, 데이터 수신 장치(120)는 메모리 상에 상기 선정된 제1 해시 함수, 상기 선정된 제2 해시 함수, 상기 n개의 선정된 연산 횟수들 및 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 저장하고 있고, 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치(110)로부터 상기 메시지와 상기 n개의 해시 값들이 수신되면, 상기 메시지를 상기 선정된 제2 해시 함수에 입력으로 인가하여 상기 메시지 해시 값을 생성하고, 상기 메시지 해시 값을 n개의 데이터 그룹들로 분할한 후 각 그룹내에 포함되어 있는 데이터를 상기 i진수의 숫자로 변환하여 n개의 검증 숫자들을 생성하며, 상기 t개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 n개의 검증 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 검증키들을 선택한 후 상기 n개의 선정된 연산 횟수들을 참조하여 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 확인하고, 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 기초로 상기 k+1번째 연쇄 해시 값이 연산될 때까지 상기 n개의 해시 값들 각각에 대해 상기 선정된 제1 해시 함수에 기초한 상기 연쇄 해시 값 연산 과정을 수행하여 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값을 연산한 후 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값이 상기 n개의 검증키들과 모두 일치하는 것으로 확인되면, 상기 메시지에 대한 인증을 완료할 수 있다.
이하에서는 본 발명에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치(110)의 동작에 대해 예를 들어 상세히 설명하기로 한다.
우선, 랜덤 스트링 생성부(111)는 t(t는 자연수)개의 랜덤 스트링들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당할 수 있는데, 상기 t를 1024라고 가정하면, 랜덤 스트링 생성부(111)는 1024개의 랜덤 스트링들인 "s1, s2, ...., s1024"를 생성할 수 있고, 상기 1024개의 랜덤 스트링들에 대해 각각 "1"부터 "1024"라는 순번 정보를 할당할 수 있다.
그리고, 해시 값 저장부(112)는 상기 1024개의 랜덤 스트링들 각각에 대해서, 상기 1024개의 랜덤 스트링들을 선정된 제1 해시 함수인 "f(x)"에 입력으로 인가하여 상기 1024개의 랜덤 스트링들 각각에 대한 해시 값인 "f1(s1), f1(s2), ..., f1(s1024)"를 생성할 수 있다.
그러고 나서, 해시 값 저장부(112)는 상기 해시 값 "f1(s1), f1(s2), ..., f1(s1024)"를 다시 상기 선정된 제1 해시 함수인 "f(x)"에 입력으로 인가하여 두 번째 해시 값들인 "f2(s1), f2(s2), ..., f2(s1024)"를 생성할 수 있다. 이러한 방식으로 해시 값 저장부(112)는 상기 1024개의 랜덤 스트링들 각각에 대해서, 상기 선정된 제1 해시 함수에 기초한 연쇄 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들을 생성할 수 있는데, 상기 k를 "8"로 가정하면, 해시 값 저장부(112)는 상기 1024개의 랜덤 스트링들 각각에 대해서, 상기 선정된 제1 해시 함수에 기초한 연쇄 해시 값 연산 과정을 8회 수행하여 상기 8회의 연쇄 해시 값 연산 과정에서 생성되는 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부(113) 상에 서로 대응되도록 저장할 수 있다.
관련해서, 키 저장부(113) 상에는 하기의 표 1과 같이 정보가 저장되어 있을 수 있다.
랜덤 스트링들 1회
연산
해시 값
2회
연산
해시 값
3회
연산
해시 값
4회
연산
해시 값
5회
연산
해시 값
6회
연산
해시 값
7회
연산
해시 값
8회
연산
해시 값
s1 f1(s1) f2(s1) f3(s1) f4(s1) f5(s1) f6(s1) f7(s1) f8(s1)
s2 f1(s2) f2(s2) f3(s2) f4(s2) f5(s2) f6(s2) f7(s2) f8(s2)
... ... ... ... ... ... ... ... ...
s1024 f1(s1024) f2(s1024) f3(s1024) f4(s1024) f5(s1024) f6(s1024) f7(s1024) f8(s1024)
상기 표 1에서 해시 값의 위 첨자로 표기된 숫자가 연쇄 해시 값 연산 횟수를 의미하고, 랜덤 스트링의 아래 첨자로 표기된 숫자가 각 랜덤 스트링을 지시하는 순번 정보를 의미한다.
예컨대, "f3(s2)"의 경우에는 2번째 랜덤 스트링에 대해서 3홰 연쇄 해시 값 연산이 수행되어 생성된 해시 값을 의미한다.
이러한 방식으로 해시 값 저장부(112)는 상기 1024개의 랜덤 스트링들 각각에 대해서 상기 선정된 제1 해시 함수에 기초한 연쇄 해시 값 연산 과정을 총 8회 수행함으로써, 각 연산 과정에서 생성되는 해시 값들과 각 해시 값들에 대한 연쇄 해시 값 연산 횟수를 키 저장부(113) 상에 저장할 수 있다.
이때, 검증키 생성부(118)는 상기 1024개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 9회 수행하여 9번째 연쇄 해시 값을 연산하고, 상기 1024개의 랜덤 스트링들 각각에 대해서 연산된 상기 9번째 연쇄 해시 값을 상기 1024개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 1024개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 1024개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당할 수 있다.
즉, 검증키 생성부(118)는 하기의 표 2와 같이, 상기 1024개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 9회 수행하여 상기 1024개의 랜덤 스트링들 각각에 대한 9번째 연쇄 해시 값을 생성할 수 있다.
랜덤 스트링들 9회 연산된 해시 값
s1 f9(s1)
s2 f9(s2)
... ...
s1024 f9(s1024)
그러고 나서, 검증키 생성부(118)는 상기 1024개의 랜덤 스트링들 각각에 대해서 연산된 상기 9번째 연쇄 해시 값을 상기 1024개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 1024개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 1024개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당할 수 있다.
즉, 랜덤 스트링 "s1"에 대한 9번째 연쇄 해시 값은 "f9(s1)"이므로, 검증키 생성부(118)는 "f9(s1)""에 대해서 랜덤 스트링 "s1"과 동일한 순번 정보인 1번 순번 정보를 할당할 수 있다.
이렇게, 검증키 생성부(118)에서 상기 1024개의 랜덤 스트링들 각각에 대한 검증키의 생성이 완료되면, 검증키 전송부(119)는 상기 1024개의 랜덤 스트링들 각각에 대한 검증키인 "f9(s1), f9(s2), ..., f9(s1024)"를 데이터 수신 장치(120)로 전송할 수 있다.
이때, 데이터 수신 장치(120)는 상기 1024개의 랜덤 스트링들 각각에 대한 검증키인 "f9(s1), f9(s2), ..., f9(s1024)"을 수신하여 메모리 상에 저장해 둘 수 있다.
이렇게, 상기 표 1에 나타낸 바와 같은 상기 1024개의 랜덤 스트링들 각각에 대한 해시 값들과 상기 표 2에 나타낸 바와 같은 상기 1024개의 랜덤 스트링들 각각에 대한 검증키의 생성이 완료되면, 상기 표 1에 나타낸 바와 같은 상기 1024개의 랜덤 스트링들 각각에 대한 해시 값들은 데이터 전송 장치(110)가 데이터 수신 장치(120)로 전송할 메시지에 대한 전자서명 값을 생성하기 위한 키 값으로 활용되고, 상기 표 2에 나타낸 바와 같은 상기 1024개의 랜덤 스트링들 각각에 대한 검증키는 데이터 수신 장치(120)가 상기 전자서명 값을 검증하기 위한 검증키 값으로 활용된다.
관련해서, 데이터 전송 장치(110)가 데이터 수신 장치(120)로 메시지 "m"을 전송하는 경우, 메시지 해시 값 생성부(114)는 상기 메시지 "m"을 선정된 제2 해시 함수인 "h(x)"에 입력으로 인가하여 메시지 해시 값인 "h(m)"을 생성할 수 있다.
그러고 나서, 데이터 변환부(115)는 상기 메시지 해시 값인 "h(m)"을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성할 수 있다.
관련해서, 상기 n을 "8"이라고 하고, 상기 i진수를 "10진수"라고 하면, 데이터 변환부(115)는 상기 메시지 해시 값 "h(m)"을 8개의 데이터 그룹들로 분할하고, 상기 8개의 데이터 그룹들 각각에 포함되어 있는 데이터를 10진수의 숫자로 변환하여 총 8개의 숫자들을 생성할 수 있다.
예컨대, 상기 메시지 해시 값 "h(m)"이 8바이트의 크기를 갖는 데이터라고 하는 경우, 데이터 변환부(115)는 상기 메시지 해시 값 "h(m)"을 1바이트씩 8개의 데이터 그룹들로 분할한 후 각 데이터 그룹에 포함되어 있는 1바이트의 데이터를 10진수의 숫자로 변환함으로써, 총 8개의 숫자들을 생성할 수 있다.
그 이후, 해시 값 추출부(116)는 상기 1024개의 랜덤 스트링들 중 상기 8개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 8개의 랜덤 스트링들을 선택할 수 있다.
관련해서, 데이터 변환부(115)에 의해서 생성된 상기 8개의 숫자가 "32, 592, 164, 7, 985, 223, 327, 814"라고 가정하면, 해시 값 추출부(116)는 상기 1024개의 랜덤 스트링들 중 "32, 592, 164, 7, 985, 223, 327, 814"라는 순번이 할당되어 있는 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"를 선택할 수 있다.
그러고 나서, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 각각에 대해 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 8개의 선정된 연산 횟수들을 참조하여 키 저장부(113)로부터 상기 8개의 랜덤 스트링들 별로, 상기 8개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 8개의 해시 값들을 추출할 수 있다.
관련해서, 상기 8개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 상기 8개의 선정된 연산 횟수들을 "8회, 7회, 6회, 5회, 4회, 3회, 2회, 1회"라고 가정하자.
이때, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s32"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s32"라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s32), f2(s32), f3(s32), f4(s32), f5(s32), f6(s32), f7(s32), f8(s32)" 중에서 "8회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "8회"가 대응되어 저장되어 있는 "f8(s32)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s592"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s592"라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s592), f2(s592), f3(s592), f4(s592), f5(s592), f6(s592), f7(s592), f8(s592)" 중에서 "7회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "7회"가 대응되어 저장되어 있는 "f7(s592)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s164"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s164"라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s164), f2(s164), f3(s164), f4(s164), f5(s164), f6(s164), f7(s164), f8(s164)" 중에서 "6회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "6회"가 대응되어 저장되어 있는 "f6(s164)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s7"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s7"이라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s7), f2(s7), f3(s7), f4(s7), f5(s7), f6(s7), f7(s7), f8(s7)" 중에서 "5회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "5회"가 대응되어 저장되어 있는 "f5(s7)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s985"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s985"라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s985), f2(s985), f3(s985), f4(s985), f5(s985), f6(s985), f7(s985), f8(s985)" 중에서 "4회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "4회"가 대응되어 저장되어 있는 "f4(s985)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s223"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s223"이라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s223), f2(s223), f3(s223), f4(s223), f5(s223), f6(s223), f7(s223), f8(s223)" 중에서 "3회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "3회"가 대응되어 저장되어 있는 "f3(s223)"를 추출할 수 있다.
그리고, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s327"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s327"이라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s327), f2(s327), f3(s327), f4(s327), f5(s327), f6(s327), f7(s327), f8(s327)" 중에서 "2회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "2회"가 대응되어 저장되어 있는 "f2(s327)"를 추출할 수 있다.
마지막으로, 해시 값 추출부(116)는 상기 8개의 랜덤 스트링들인 "s32, s592, s164, s7, s985, s223, s327, s814"들 중 "s814"에 대해서는 상기 표 1과 같은 정보가 저장되어 있는 키 저장부(113)로부터 "s814"이라는 랜덤 스트링에 대응하여 생성된 8개의 해시 값들인 "f1(s814), f2(s814), f3(s814), f4(s814), f5(s814), f6(s814), f7(s814), f8(s814)" 중에서 "1회"라는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수인 "1회"가 대응되어 저장되어 있는 "f1(s814)"를 추출할 수 있다.
이러한 방식으로 결국, 해시 값 추출부(116)는 키 저장부(113)로부터 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"라는 8개의 해시 값들을 추출할 수 있다.
그러고 나서, 데이터 전송부(117)는 데이터 수신 장치(120)에 대해 상기 메시지 "m"을 전송하면서 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"을 상기 메시지 "m"에 대한 부인 방지를 위한 전자서명 값으로 전송할 수 있다.
이때, 데이터 수신 장치(120)는 데이터 전송 장치(110)로부터 상기 메시지 "m"과 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"이 수신되면, 데이터 전송 장치(110)로부터 미리 수신하여 상기 메모리 상에 이미 저장해 둔 상기 표 2에서 나타낸 상기 1024개의 랜덤 스트링들 각각에 대한 검증키를 기초로 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"에 대한 검증을 수행함으로써, 상기 메시지 "m"이 진정으로 데이터 전송 장치(110)로부터 전송된 메시지가 맞는지 여부를 확인할 수 있다.
관련해서, 데이터 수신 장치(120)의 상기 메모리에는 상기 표 2에서 나타낸 상기 1024개의 랜덤 스트링들 각각에 대한 검증키뿐만 아니라, 상기 선정된 제1 해시 함수 "f(x)", 상기 선정된 제2 해시 함수 "h(x)"와 해시 값 추출부(116)에서 상기 8개의 랜덤 스트링들 "s32, s592, s164, s7, s985, s223, s327, s814" 각각에 대한 해시 값을 추출하는데 사용하였던 상기 8개의 선정된 연산 횟수들인 "8회, 7회, 6회, 5회, 4회, 3회, 2회, 1회"가 미리 저장되어 있다.
이러한 상황하에서 데이터 수신 장치(120)는 상기 메시지 "m"과 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"가 수신되면, 상기 메시지 "m"을 상기 선정된 제2 해시 함수인 "h(x)"에 입력으로 인가하여 메시지 해시 값 "h(m)"을 생성할 수 있다.
그러고 나서, 데이터 수신 장치(120)는 상기 메시지 해시 값 "h(m)"을 8개의 데이터 그룹들로 분할한 후 각 그룹내에 포함되어 있는 데이터를 10진수의 숫자로 변환하여 8개의 검증 숫자들을 생성할 수 있다.
상기 메시지 "m"이 위조되거나 변조되지 않았다고 가정하면, 상기 8개의 검증 숫자들은 앞서, 데이터 변환부(115)에서 생성된 숫자들과 동일한 "32, 592, 164, 7, 985, 223, 327, 814"가 될 것이다.
이때, 데이터 수신 장치(120)는 상기 표 2에서 나타낸 상기 1024개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 8개의 검증 숫자들인 "32, 592, 164, 7, 985, 223, 327, 814"와 동일한 순번 정보가 할당되어 있는 8개의 검증키들을 선택할 수 있다.
관련해서, 데이터 수신 장치(120)는 상기 표 2에서 나타낸 상기 1024개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 8개의 검증키들로 "f9(s32), f9(s592), f9(164), f9(s7), f9(s985), f9(s223), f9(s327), f9(s814)"를 선택할 수 있다.
그러고 나서, 데이터 수신 장치(120)는 상기 8개의 선정된 연산 횟수들인 "8회, 7회, 6회, 5회, 4회, 3회, 2회, 1회"를 참조하여 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대한 연쇄 해시 값 연산 횟수를 확인하고, 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대한 연쇄 해시 값 연산 횟수를 기초로 9번째 연쇄 해시 값이 연산될 때까지 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대해 상기 선정된 제1 해시 함수인 "f(x)"에 기초한 연쇄 해시 값 연산 과정을 수행하여 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대한 9번재 연쇄 해시 값을 연산할 수 있다.
관련해서, 상기 8개의 선정된 연산 횟수들이 "8회, 7회, 6회, 5회, 4회, 3회, 2회, 1회"이기 때문에 데이터 수신 장치(120)는 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"가 각각 "8회, 7회, 6회, 5회, 4회, 3회, 2회, 1회"에 해당하는 연쇄 해시 값 연산 과정을 수행했음을 확인할 수 있다.
이를 기초로, 데이터 수신 장치(120)는 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)"에 대해서 상기 선정된 제1 해시 함수인 "f(x)"에 기초한 연쇄 해시 값 연산 과정을 추가로 수행함으로써, 상기 8개의 해시 값들 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대한 9번째 해시 값을 연산할 수 있다.
이와 관련하여, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f8(s32)"가 총 "8회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f8(s32)"에 대해서는 상기 연쇄 해시 값 연산 과정을 1회만 더 수행함으로써, "f9(s32)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f7(s592)"가 총 "7회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f7(s592)"에 대해서는 상기 연쇄 해시 값 연산 과정을 2회만 더 수행함으로써, "f9(s592)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f6(s164)"가 총 "6회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f6(s164)"에 대해서는 상기 연쇄 해시 값 연산 과정을 3회만 더 수행함으로써, "f9(s164)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f5(s7)"가 총 "5회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f5(s7)"에 대해서는 상기 연쇄 해시 값 연산 과정을 4회만 더 수행함으로써, "f9(s7)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f4(s985)"가 총 "4회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f4(s985)"에 대해서는 상기 연쇄 해시 값 연산 과정을 5회만 더 수행함으로써, "f9(s985)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f3(s223)"이 총 "3회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f3(s223)"에 대해서는 상기 연쇄 해시 값 연산 과정을 6회만 더 수행함으로써, "f9(s223)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
그리고, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f2(s327)"이 총 "2회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f2(s327)"에 대해서는 상기 연쇄 해시 값 연산 과정을 7회만 더 수행함으로써, "f9(s327)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
마지막으로, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 중 "f1(s814)"가 총 "1회" 연쇄 해시 값 연산 과정이 수행되어 생성된 해시 값임을 확인할 수 있기 때문에 "f1(s814)"에 대해서는 상기 연쇄 해시 값 연산 과정을 8회만 더 수행함으로써, "f9(s814)"라는 9번째 연쇄 해시 값을 연산할 수 있다.
이러한 방식으로 결국, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대한 9번째 연쇄 해시 값들로 "f9(s32), f9(s592), f9(164), f9(s7), f9(s985), f9(s223), f9(s327), f9(s814)"를 연산할 수 있다.
그 이후, 데이터 수신 장치(120)는 상기 8개의 해시 값들인 "f8(s32), f7(s592), f6(s164), f5(s7), f4(s985), f3(s223), f2(s327), f1(s814)" 각각에 대해서 연산된 9번째 연쇄 해시 값들인 "f9(s32), f9(s592), f9(164), f9(s7), f9(s985), f9(s223), f9(s327), f9(s814)"와 상기 표 2에서 나타낸 상기 1024개의 랜덤 스트링들 각각에 대한 검증키 중에서 선택된 상기 8개의 검증키들인 "f9(s32), f9(s592), f9(164), f9(s7), f9(s985), f9(s223), f9(s327), f9(s814)"를 서로 비교하여 양 값이 모두 일치하는 것으로 확인되면, 상기 메시지 "m"이 데이터 전송 장치(110)에 저장되어 있는 키 저장부(113) 상에 정말로 저장되어 있는 해시 값들을 기초로 전자서명되었음을 확인할 수 있어, 최종적으로 상기 메시지 "m"에 대한 인증을 완료할 수 있다.
결국, 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치(110)는 소정의 랜덤 스트링들을 생성하고, 상기 랜덤 스트링들에 대해 연쇄 해시 값 연산 과정을 수행하여 생성된 해시 값들을 키 저장부(113) 상에 저장해 놓고, 상기 랜덤 스트링들에 대해 상기 연쇄 해시 값 연산 과정을 추가적으로 수행함으로써, 검증키를 생성하여 상기 검증키를 데이터 수신 장치(120)로 전송한 후 데이터 수신 장치(120)로 전송할 메시지를 키 저장부(113)에 저장되어 있는 해시 값들을 기초로 전자서명하여 데이터 수신 장치(120)로 전송하면, 데이터 수신 장치(120)가 상기 검증키를 기초로 전자서명 값을 검증할 수 있도록 유도함으로써, 상기 전송 메시지에 대한 부인 방지 기능을 제공할 수 있다.
도 2는 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법을 도시한 순서도이다.
단계(S210)에서는 t(t는 자연수)개의 랜덤 스트링들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당한다.
단계(S220)에서는 상기 t개의 랜덤 스트링들 각각에 대해서, 선정된 제1 해시 함수에 기초한 연쇄 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부 상에 서로 대응되도록 저장함으로써, 상기 키 저장부 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장한다.
이때, 본 발명의 일실시예에 따르면, 단계(S220)에서는 상기 t개의 랜덤 스트링들 각각에 대해서, 상기 t개의 랜덤 스트링들을 상기 선정된 제1 해시 함수에 입력으로 인가하여 해시 값을 연산하고, 상기 연산된 해시 값을 상기 선정된 제1 해시 함수에 다시 입력으로 인가하여 추가 해시 값을 연산하는 방식의 상기 연쇄 해시 값 연산 과정을 상기 k회 수행할 수 있다.
단계(S230)에서는 데이터 수신 장치로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성한다.
단계(S240)에서는 상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성한다.
단계(S250)에서는 상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 상기 키 저장부로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출한다.
단계(S260)에서는 상기 데이터 수신 장치에 대해 상기 메시지와 상기 n개의 해시 값들을 전송한다.
이때, 본 발명의 일실시예에 따르면, 상기 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법은 단계(S230)이전에 상기 t개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 k+1회 수행하여 k+1번째 연쇄 해시 값을 연산하고, 상기 t개의 랜덤 스트링들 각각에 대해서 연산된 상기 k+1번째 연쇄 해시 값을 상기 t개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 t개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 t개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당하는 단계 및 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 상기 데이터 수신 장치로 전송하는 단계를 더 포함할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 데이터 수신 장치는 메모리 상에 상기 선정된 제1 해시 함수, 상기 선정된 제2 해시 함수, 상기 n개의 선정된 연산 횟수들 및 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 저장하고 있을 수 있다.
이때, 상기 데이터 수신 장치는 상기 메시지와 상기 n개의 해시 값들이 수신되면, 상기 메시지를 상기 선정된 제2 해시 함수에 입력으로 인가하여 상기 메시지 해시 값을 생성하고, 상기 메시지 해시 값을 n개의 데이터 그룹들로 분할한 후 각 그룹내에 포함되어 있는 데이터를 상기 i진수의 숫자로 변환하여 n개의 검증 숫자들을 생성하며, 상기 t개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 n개의 검증 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 검증키들을 선택한 후 상기 n개의 선정된 연산 횟수들을 참조하여 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 확인하고, 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 기초로 상기 k+1번째 연쇄 해시 값이 연산될 때까지 상기 n개의 해시 값들 각각에 대해 상기 선정된 제1 해시 함수에 기초한 상기 연쇄 해시 값 연산 과정을 수행하여 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값을 연산한 후 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값이 상기 n개의 검증키들과 모두 일치하는 것으로 확인되면, 상기 메시지에 대한 인증을 완료할 수 있다.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법은 도 1을 이용하여 설명한 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치
111: 랜덤 스트링(string) 생성부 112: 해시 값 저장부
113: 키 저장부 114: 메시지 해시 값 생성부
115: 데이터 변환부 116: 해시 값 추출부
117: 데이터 전송부 118: 검증키 생성부
119: 검증키 전송부
120: 데이터 수신 장치

Claims (10)

  1. t(t는 자연수)개의 랜덤 스트링(string)들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당하는 랜덤 스트링 생성부;
    상기 t개의 랜덤 스트링들 각각에 대해서, 선정된(predetermined) 제1 해시 함수에 기초한 연쇄(chain) 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부 상에 서로 대응되도록 저장함으로써, 상기 키 저장부 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장하는 해시 값 저장부;
    상기 t개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 k+1회 수행하여 k+1번째 연쇄 해시 값을 연산하고, 상기 t개의 랜덤 스트링들 각각에 대해서 연산된 상기 k+1번째 연쇄 해시 값을 상기 t개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 t개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 t개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당하는 검증키 생성부;
    상기 t개의 랜덤 스트링들 각각에 대한 검증키를 데이터 수신 장치로 전송하는 검증키 전송부;
    상기 데이터 수신 장치로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성하는 메시지 해시 값 생성부;
    상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성하는 데이터 변환부;
    상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 상기 키 저장부로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출하는 해시 값 추출부; 및
    상기 데이터 수신 장치에 대해 상기 메시지와 상기 n개의 해시 값들을 전송하는 데이터 전송부
    를 포함하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치.
  2. 제1항에 있어서,
    상기 해시 값 저장부는
    상기 t개의 랜덤 스트링들 각각에 대해서, 상기 t개의 랜덤 스트링들을 상기 선정된 제1 해시 함수에 입력으로 인가하여 해시 값을 연산하고, 상기 연산된 해시 값을 상기 선정된 제1 해시 함수에 다시 입력으로 인가하여 추가 해시 값을 연산하는 방식의 상기 연쇄 해시 값 연산 과정을 상기 k회 수행하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치.
  3. 삭제
  4. 제1항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 선정된 제1 해시 함수, 상기 선정된 제2 해시 함수, 상기 n개의 선정된 연산 횟수들 및 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 저장하고 있고,
    상기 메시지와 상기 n개의 해시 값들이 수신되면, 상기 메시지를 상기 선정된 제2 해시 함수에 입력으로 인가하여 상기 메시지 해시 값을 생성하고, 상기 메시지 해시 값을 n개의 데이터 그룹들로 분할한 후 각 그룹내에 포함되어 있는 데이터를 상기 i진수의 숫자로 변환하여 n개의 검증 숫자들을 생성하며, 상기 t개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 n개의 검증 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 검증키들을 선택한 후 상기 n개의 선정된 연산 횟수들을 참조하여 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 확인하고, 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 기초로 상기 k+1번째 연쇄 해시 값이 연산될 때까지 상기 n개의 해시 값들 각각에 대해 상기 선정된 제1 해시 함수에 기초한 상기 연쇄 해시 값 연산 과정을 수행하여 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값을 연산한 후 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값이 상기 n개의 검증키들과 모두 일치하는 것으로 확인되면, 상기 메시지에 대한 인증을 완료하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치.
  5. t(t는 자연수)개의 랜덤 스트링(string)들을 생성한 후 상기 t개의 랜덤 스트링들 각각에 대해 상기 t개의 랜덤 스트링들 각각을 지시하는 순번 정보를 할당하는 단계;
    상기 t개의 랜덤 스트링들 각각에 대해서, 선정된(predetermined) 제1 해시 함수에 기초한 연쇄(chain) 해시 값 연산 과정을 k(k는 자연수)회 수행하여 상기 k회의 연쇄 해시 값 연산 과정에서 생성되는 각각의 해시 값들과 상기 각각의 해시 값들을 생성하기 위해서 수행된 연쇄 해시 값 연산 횟수를 키 저장부 상에 서로 대응되도록 저장함으로써, 상기 키 저장부 상에 상기 t개의 랜덤 스트링들 각각에 대한 k개의 해시 값들과 상기 k개의 해시 값들 각각에 대응하는 연쇄 해시 값 연산 횟수를 저장하는 단계;
    상기 t개의 랜덤 스트링들 각각에 대해서 상기 연쇄 해시 값 연산 과정을 k+1회 수행하여 k+1번째 연쇄 해시 값을 연산하고, 상기 t개의 랜덤 스트링들 각각에 대해서 연산된 상기 k+1번째 연쇄 해시 값을 상기 t개의 랜덤 스트링들 각각에 대한 검증키로 결정함과 동시에 상기 t개의 랜덤 스트링들 각각에 대한 검증키에 대해 상기 t개의 랜덤 스트링들 각각에 할당되어 있는 순번 정보와 동일한 순번 정보를 할당하는 단계;
    상기 t개의 랜덤 스트링들 각각에 대한 검증키를 데이터 수신 장치로 전송하는 단계;
    상기 데이터 수신 장치로 전송할 메시지를 선정된 제2 해시 함수에 입력으로 인가하여 메시지 해시 값을 생성하는 단계;
    상기 메시지 해시 값을 n개(n은 자연수)의 데이터 그룹들로 분할하고, 각 그룹내에 포함되어 있는 데이터를 i(i는 자연수)진수의 숫자로 변환하여 n개의 숫자들을 생성하는 단계;
    상기 t개의 랜덤 스트링들 중 상기 n개의 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 랜덤 스트링들을 선택하고, 상기 n개의 랜덤 스트링들 별로 하나의 해시 값을 추출하기 위해서 미리 설정되어 있는 n개의 선정된 연산 횟수들을 참조하여 상기 키 저장부로부터 상기 n개의 랜덤 스트링들 별로, 상기 n개의 선정된 연산 횟수들 중 각 랜덤 스트링에 대응하는 선정된 연산 횟수와 일치하는 연쇄 해시 값 연산 횟수가 대응되어 저장되어 있는 하나의 해시 값을 추출함으로써, 총 n개의 해시 값들을 추출하는 단계; 및
    상기 데이터 수신 장치에 대해 상기 메시지와 상기 n개의 해시 값들을 전송하는 단계
    를 포함하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법.
  6. 제5항에 있어서,
    상기 연쇄 해시 값 연산 횟수를 저장하는 단계는
    상기 t개의 랜덤 스트링들 각각에 대해서, 상기 t개의 랜덤 스트링들을 상기 선정된 제1 해시 함수에 입력으로 인가하여 해시 값을 연산하고, 상기 연산된 해시 값을 상기 선정된 제1 해시 함수에 다시 입력으로 인가하여 추가 해시 값을 연산하는 방식의 상기 연쇄 해시 값 연산 과정을 상기 k회 수행하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법.
  7. 삭제
  8. 제5항에 있어서,
    상기 데이터 수신 장치는
    메모리 상에 상기 선정된 제1 해시 함수, 상기 선정된 제2 해시 함수, 상기 n개의 선정된 연산 횟수들 및 상기 t개의 랜덤 스트링들 각각에 대한 검증키를 저장하고 있고,
    상기 메시지와 상기 n개의 해시 값들이 수신되면, 상기 메시지를 상기 선정된 제2 해시 함수에 입력으로 인가하여 상기 메시지 해시 값을 생성하고, 상기 메시지 해시 값을 n개의 데이터 그룹들로 분할한 후 각 그룹내에 포함되어 있는 데이터를 상기 i진수의 숫자로 변환하여 n개의 검증 숫자들을 생성하며, 상기 t개의 랜덤 스트링들 각각에 대한 검증키 중에서 상기 n개의 검증 숫자들 각각과 동일한 순번 정보가 할당되어 있는 n개의 검증키들을 선택한 후 상기 n개의 선정된 연산 횟수들을 참조하여 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 확인하고, 상기 n개의 해시 값들 각각에 대한 연쇄 해시 값 연산 횟수를 기초로 상기 k+1번째 연쇄 해시 값이 연산될 때까지 상기 n개의 해시 값들 각각에 대해 상기 선정된 제1 해시 함수에 기초한 상기 연쇄 해시 값 연산 과정을 수행하여 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값을 연산한 후 상기 n개의 해시 값들 각각에 대한 상기 k+1번째 연쇄 해시 값이 상기 n개의 검증키들과 모두 일치하는 것으로 확인되면, 상기 메시지에 대한 인증을 완료하는 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 방법.
  9. 제5항, 제6항 또는 제8항 중 어느 한 항의 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  10. 제5항, 제6항 또는 제8항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020160001362A 2016-01-06 2016-01-06 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법 KR101768605B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020160001362A KR101768605B1 (ko) 2016-01-06 2016-01-06 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법
PCT/KR2016/015458 WO2017119668A1 (ko) 2016-01-06 2016-12-29 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160001362A KR101768605B1 (ko) 2016-01-06 2016-01-06 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20170082222A KR20170082222A (ko) 2017-07-14
KR101768605B1 true KR101768605B1 (ko) 2017-08-17

Family

ID=59273849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160001362A KR101768605B1 (ko) 2016-01-06 2016-01-06 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법

Country Status (2)

Country Link
KR (1) KR101768605B1 (ko)
WO (1) WO2017119668A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101933551B1 (ko) * 2017-09-27 2019-04-05 이니그마(주) 메시지 확인 여부의 체크가 가능한 인터넷 알림 메시지 발송 서비스 장치 및 그 동작 방법
US11799635B2 (en) * 2019-06-05 2023-10-24 Nitromia Ltd. Dictionary-attack-resistant database encryption
CN111428253B (zh) * 2020-03-24 2023-04-07 福建福链科技有限公司 一种适用于区块链的数据保护方法及系统
CN111586035B (zh) * 2020-05-05 2022-04-19 莆田市烛火信息技术有限公司 一种区块链矿机哈希运算服务方法及系统
CN111641651B (zh) * 2020-05-29 2022-08-02 南方电网科学研究院有限责任公司 一种基于哈希链的访问验证方法及装置
CN113761586A (zh) * 2020-06-28 2021-12-07 北京同邦卓益科技有限公司 基于区块链的物品随机抽检的方法和装置
CN115913787B (zh) * 2023-02-16 2023-05-16 国网浙江省电力有限公司 适用于电力数据的文件加解密传输方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076747B1 (ko) * 2009-09-21 2011-10-26 한국과학기술원 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101086900B1 (ko) * 2009-11-25 2011-11-24 재단법인대구경북과학기술원 기지국을 이용한 주위 차량 위치인식 시스템 및 기지국과 차량 사이의 인증방법
KR101600178B1 (ko) * 2014-05-19 2016-03-14 숭실대학교산학협력단 불법 복제 애플리케이션 탐지 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101076747B1 (ko) * 2009-09-21 2011-10-26 한국과학기술원 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치

Also Published As

Publication number Publication date
KR20170082222A (ko) 2017-07-14
WO2017119668A1 (ko) 2017-07-13

Similar Documents

Publication Publication Date Title
KR101768605B1 (ko) 전송 메시지에 대한 부인 방지가 가능한 데이터 전송 장치 및 방법
CN111628868B (zh) 数字签名生成方法、装置、计算机设备和存储介质
KR101575030B1 (ko) 클라우드 상의 공유 데이터에 대한 다중 서명생성방법
US8891766B2 (en) Input consistency verification for two-party secure function evaluation
CN103427997B (zh) 一种生成数字签名的方法及装置
CN102571357B (zh) 一种签名的实现方法和装置
US9172530B2 (en) Apparatus and method for generating secret key for ID-based encryption system and recording medium having program recorded thereon for causing computer to execute the method
TW201349823A (zh) 資料加密方法、資料驗證方法及電子裝置
EP3637674A1 (en) Computer system, secret information verification method, and computer
Miles et al. Shielding circuits with groups
KR102303431B1 (ko) 당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법
CN102724211A (zh) 一种密钥协商方法
KR101913644B1 (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
CN104168116A (zh) 一种数据库身份验证方法及系统
KR20210063378A (ko) 공통 비밀을 공유하는 컴퓨터 구현 시스템 및 방법
CN105553667A (zh) 一种动态口令的生成方法
EP1569381A1 (en) System and method for authentification
CN115883079A (zh) 一种数据处理方法、系统、装置、电子设备与存储介质
US9985779B2 (en) Encrypted text matching system, method, and computer readable medium
CN104579686A (zh) 一种用于手机令牌的种子匹配方法
KR101925941B1 (ko) 정보가상화 기반 거래 서명 인증 방법
CN107294705B (zh) 一种密钥生成和验证的方法、设备及系统
JP2016157055A (ja) 暗号化システム、認証システム、暗号化装置、復号装置、認証子生成装置、検証装置、暗号化方法、認証方法
US9900146B2 (en) Encrypted text matching system, method, and computer readable medium
CN117795901A (zh) 生成数字签名份额

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