KR20210051923A - 암복호화 장치 및 방법 - Google Patents

암복호화 장치 및 방법 Download PDF

Info

Publication number
KR20210051923A
KR20210051923A KR1020190137816A KR20190137816A KR20210051923A KR 20210051923 A KR20210051923 A KR 20210051923A KR 1020190137816 A KR1020190137816 A KR 1020190137816A KR 20190137816 A KR20190137816 A KR 20190137816A KR 20210051923 A KR20210051923 A KR 20210051923A
Authority
KR
South Korea
Prior art keywords
participants
consensus
blocks
encryption
decryption
Prior art date
Application number
KR1020190137816A
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 KR1020190137816A priority Critical patent/KR20210051923A/ko
Publication of KR20210051923A publication Critical patent/KR20210051923A/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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

암복호화 장치 및 방법이 개시된다. 일 실시예에 따른 암복호화 방법은, 복호화에 참여할 복수의 참여자의 총수 및 상기 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성하는 단계; 상기 시드 값에 기초하여 데이터를 암호화하는 단계; 상기 복수의 블록을 상기 복수의 참여자에게 분배하여 상기 시드 값에 대한 상기 복수의 참여자 각각의 지분을 생성하는 단계; 상기 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 상기 복수의 참여자 각각의 지분을 암호화하는 단계; 및 상기 암호화된 복수의 참여자 각각의 지분을 저장하는 단계를 포함한다.

Description

암복호화 장치 및 방법{APPARATUS AND METHOD FOR ENCRYPTION AND DECRYPTION}
개시되는 실시예들은 암복호화를 위한 기술과 관련된다.
기술이 기업의 성패를 좌우하는 시대에 신규 기술의 개발 못지 않게 기업에 중요한 부분이 보유 기술의 유출방지와 보호이다.
하지만, 아무리 기술적인 장치를 강화하여 암호화하고 접근을 통제한다 하더라도 데이터에 대한 시스템적 접근이 가능한 임직원의 의도된 유출행위를 방어하기에는 한계가 있다. 특히 기업용 업무시스템의 경우 임직원간 자료를 공유해야 하는 특성 때문에, 시스템 어딘가에는 자료의 복호화가 가능한 키가 존재하며, 시스템의 개발자/운영자가 이를 악용할 경우 자료의 탈취가 가능한 경우가 대부분이다.
한국 공개특허공보 제10-2018-0036555호 (2018.04.09. 공개)
개시되는 실시예들은 암복호화 장치 및 방법을 제공하기 위한 것이다.
일 실시예에 따른 암복호화 방법은, 복호화에 참여할 복수의 참여자의 총수 및 상기 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성하는 단계; 상기 시드 값에 기초하여 데이터를 암호화하는 단계; 상기 복수의 블록을 상기 복수의 참여자에게 분배하여 상기 시드 값에 대한 상기 복수의 참여자 각각의 지분을 생성하는 단계; 상기 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 상기 복수의 참여자 각각의 지분을 암호화하는 단계; 및 상기 암호화된 복수의 참여자 각각의 지분을 저장하는 단계를 포함한다.
상기 암복호화 방법은, 상기 암호화된 데이터에 대한 복호화 요청이 있는 경우, 상기 복수의 참여자 각각으로 상기 비밀 정보를 요청하는 단계; 상기 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고, 상기 암호화된 복수의 참여자 각각의 지분 중 상기 수신된 비밀 정보에 의해 암호화된 지분을 복호화하는 단계; 상기 복수의 참여자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화된 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하는 단계; 및 상기 복원된 시드 값에 기초하여, 상기 암호화된 데이터를 복호화하는 단계를 더 포함할 수 있다.
상기 암복호화 방법은, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 단계를 더 포함할 수 있다.
상기 복수의 블록의 개수는, 아래의 수학식 1에 기초하여 결정될 수 있다.
[수학식 1]
B=NC(K-1)
(이때, B는 상기 복수의 블록의 개수, N은 상기 복수의 참여자의 총수, K는 상기 최소 합의자의 수)
상기 생성하는 단계는, 상기 복수의 블록 각각을 상기 복수의 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성할 수 있다.
상기 생성하는 단계는, 상기 복수의 참여자의 총수, 상기 최소 합의자의 수 및 상기 복호화를 위해 필요한 필수 합의자의 수에 기초하여 상기 복수의 블록을 생성하고, 상기 복원하는 단계는, 상기 복수의 사용자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화되고, 상기 복호화된 지분 중 상기 필수 합의자의 지분이 포함되어 있는 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원할 수 있다.
상기 암복호화 방법은, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 필수 합의자의 지분을 포함한 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 단계를 더 포함할 수 있다.
상기 복수의 블록의 개수는, 아래의 수학식 2에 기초하여 결정될 수 있다.
[수학식 2]
B=M+(N-M)C(K-1-M)
(이때, B는 상기 복수의 블록의 개수, M은 상기 필수 합의자의 수, N은 상기 복수의 참여자의 수, K는 상기 최소 합의자의 수)
상기 생성하는 단계는, 상기 복수의 블록 중 일부 블록 각각을 상기 필수 합의자에게 독립적으로 할당한 후, 상기 복수의 블록 중 나머지 블록 각각을 상기 복수의 참여자 중 상기 필수 합의자를 제외한 나머지 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성할 수 있다.
상기 저장하는 단계는, 상기 암호화된 복수의 참여자 각각의 지분을 대응되는 참여자의 식별 정보와 연관하여 저장하고, 상기 요청하는 단계는, 상기 식별 정보에 기초하여 상기 복수의 참여자 각각에게 상기 복수의 사용자 각각의 비밀 정보를 요청할 수 있다.
일 실시예에 따른 암복호화 장치는, 복호화에 참여할 복수의 참여자의 총수 및 상기 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성하고, 상기 복수의 블록을 상기 복수의 참여자에게 분배하여 상기 시드 값에 대한 상기 복수의 참여자 각각의 지분을 생성하는 블록 생성부; 상기 시드 값에 기초하여 데이터를 암호화하는 제1 암복호화부; 상기 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 상기 복수의 참여자 각각의 지분을 암호화하는 제2 암복호화부; 및 상기 암호화된 복수의 참여자 각각의 지분을 저장하는 저장부를 포함한다.
상기 제2 암복호화부는, 상기 암호화된 데이터에 대한 복호화 요청이 있는 경우, 상기 복수의 참여자 각각으로 상기 복수의 사용자 각각의 비밀 정보를 요청하여 상기 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고, 상기 암호화된 복수의 참여자 각각의 지분 중 상기 수신된 비밀 정보에 의해 암호화된 지분을 복호화하며, 상기 제1 암복호화부는, 상기 복수의 참여자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화된 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하고, 상기 복원된 시드 값에 기초하여, 상기 암호화된 데이터를 복호화할 수 있다.
상기 제2 암복호화부는, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제할 수 있다.
상기 복수의 블록의 개수는, 아래의 수학식 1에 기초하여 결정될 수 있다.
[수학식 1]
B=NC(K-1)
(이때, B는 상기 복수의 블록의 개수, N은 상기 복수의 참여자의 총수, K는 상기 최소 합의자의 수)
상기 블록 생성부는, 상기 복수의 블록 각각을 상기 복수의 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성할 수 있다.
상기 블록 생성부는, 상기 복수의 참여자의 총수, 상기 최소 합의자의 수 및 상기 복호화를 위해 필요한 필수 합의자의 수에 기초하여 상기 복수의 블록을 생성하고, 상기 제1 암복호화부는, 상기 복수의 사용자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화되고, 상기 복호화된 지분 중 상기 필수 합의자의 지분이 포함되어 있는 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원할 수 있다.
상기 제2 암복호화부는, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 필수 합의자의 지분을 포함한 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제할 수 있다.
상기 복수의 블록의 개수는, 아래의 수학식 2에 기초하여 결정될 수 있다.
[수학식 2]
B=M+(N-M)C(K-1-M)
(이때, B는 상기 복수의 블록의 개수, M은 상기 필수 합의자의 수, N은 상기 복수의 참여자의 수, K는 상기 최소 합의자의 수)
상기 블록 생성부는, 상기 복수의 블록 중 일부 블록 각각을 상기 필수 합의자에게 독립적으로 할당한 후, 상기 복수의 블록 중 나머지 블록 각각을 상기 복수의 참여자 중 상기 필수 합의자를 제외한 나머지 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성할 수 있다.
상기 저장부는, 상기 암호화된 복수의 참여자 각각의 지분을 대응되는 참여자의 식별 정보와 연관하여 저장하고, 상기 제2 암복호화부는, 상기 식별 정보에 기초하여 상기 복수의 참여자 각각에게 상기 복수의 사용자 각각의 비밀 정보를 요청할 수 있다.
본 발명의 실시예들에 따르면, 암호화된 데이터의 복호화를 위한 최소 합의자 수를 지정하고 복호화를 위한 지분을 복수의 참여자가 분산 보유하는 방식을 통해, 사전 정해진 참여자들의 합의 없이는 암호화된 데이터를 복호화할 수 없도록 함으로써, 암호화된 데이터가 적법하지 않은 사용자에 의해 무단으로 복호화되는 것을 방지할 수 있다.
도 1은 일 실시예에 따른 암복호화 장치의 구성도
도 2 내지 도 7은 일 실시예에 따라 복수의 블록을 복수의 참여자에게 분배하는 일 예를 설명하기 위한 예시도
도 8 내지 도 11은 일 실시예에 따라 복수의 블록을 복수의 참여자에게 분배하는 다른 예를 설명하기 위한 예시도
도 12는 일 실시예에 따른 암호화 과정을 나타낸 순서도
도 13은 일 실시예에 따른 복호화 과정을 나타낸 순서도
도 14은 다른 실시예에 따른 복호화 과정을 나타낸 순서도
도 15는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경을 예시하여 설명하기 위한 블록도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 일 실시예에 따른 암복호화 장치의 구성도이다.
도 1을 참조하면, 일 실시예에 따른 암복호화 장치(100)는 블록 생성부(110), 제1 암복호화부(130), 제2 암복호화부(150) 및 저장부(170)를 포함한다.
블록 생성부(110)는 복호화에 참여할 복수의 참여자의 총수 및 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성한다.
이때, 복호화에 참여할 복수의 참여자의 총수 및 최소 합의자의 수는 예를 들어, 암복호화 장치(100)의 운영자에 의해 사전 설정되거나 암복호화 장치(100)로 데이터 암호화를 요청한 사용자에 의해 설정될 수 있다.
한편, 복수의 참여자 각각은 데이터 암호화를 요청한 사용자를 포함한 복수의 사용자 중 시드 값에 대한 지분을 할당 받을 사용자를 의미하며, 최소 합의자의 수는 복수의 참여자 중 시드 값을 복원하기 위해 최소한으로 필요한 참여자의 수를 의미한다.
일 실시예에 따르면, 블록 생성부(110)는 각각 기 설정된 길이의 임의의 문자열을 포함하는 복수의 블록을 생성하고, 생성된 복수의 블록을 연결하여 시드 값을 생성할 수 있다.
또한, 일 실시예에 따르면, 블록 생성부(110)는 복수의 참여자의 총수 및 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록의 개수를 결정할 수 있다. 예를 들어, 블록 생성부(110)는 아래의 수학식 1에 기초하여 복수의 블록의 개수를 결정할 수 있다.
[수학식 1]
B=NC(K-1)
이때, B는 생성할 블록의 개수, N은 복수의 참여자의 총수, K는 최소 합의자의 수를 나타내며, N과 K는 각각 N≥2 및 N≥K≥2를 만족할 수 있다.
구체적인 예로, 복수의 참여자의 총수(N)가 4명이고, 최소 합의자의 수(K)가 3명인 경우, 블록 생성부(110)는 상술한 수학식 1에 따라 6개의 블록을 생성할 수 있다.
한편, 다른 실시예에 따르면, 블록 생성부(110)는 복수의 참여자의 총수, 최소 합의자의 수 및 복호화를 위해 필요한 필수 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성할 수 있다.
이때, 필수 합의자는 복수의 참여자 중 시드 값을 복원하기 위해 반드시 필요한 참여자를 의미하며, 예를 들어, 데이터 암호화를 요청한 사용자에 의해 선택될 수 있다.
한편, 필수 합의자의 수는 예를 들어, 암복호화 장치(100)의 운영자에 의해 사전 설정되거나 데이터 암호화를 요청한 사용자에 의해 설정될 수 있다.
일 실시예에 따르면, 필수 합의자의 수가 설정된 경우, 블록 생성부(110)는 복수의 참여자의 총수, 최소 합의자의 수 및 필수 합의자의 수에 기초하여, 시드 값을 구성하는 복수의 블록의 개수를 결정할 수 있다. 예를 들어, 블록 생성부(110)는 아래의 수학식 2에 기초하여 복수의 블록의 개수를 결정할 수 있다.
[수학식 2]
B=M+(N-M)C(K-1-M)
이때, M은 필수 합의자의 수를 나타내며, K≥M≥1을 만족할 수 있다.
구체적인 예로, 복수의 참여자의 총 수(N)가 4명, 최소 합의자의 수(K)가 3명, 필수 합의자의 수(M)가 1명인 경우, 블록 생성부(110)는 상술한 수학식 2에 따라 4개의 블록을 생성할 수 있다.
한편, 블록 생성부(110)는 시드 값을 구성하는 복수의 블록을 생성한 후, 생성된 복수의 블록을 복수의 참여자에게 분배하여 시드 값에 대한 복수의 참여자 각각의 지분을 생성한다.
일 실시예에 따르면, 블록 생성부(110)는 필수 합의자의 수가 설정되지 않은 경우, 복수의 참여자 각각의 지분 중 최소 합의자의 수만큼의 지분을 이용하여 시드 값을 복원할 수 있도록 복수의 블록을 복수의 참여자에게 분배할 수 있다. 구체적으로, 블록 생성부(110)는 최소 합의자의 수에 기초하여 복수의 블록 각각을 복수의 참여자 중 일부 참여자에게 중복 할당하여 복수의 참여자 각각의 지분을 생성할 수 있다.
예를 들어, 블록 생성부(110)는 각각 복수의 참여자 중 K-1명으로 구성된 상이한 복수의 조합(combination)을 생성한 후, 각 조합별로 복수의 참여자 중 각 조합에 포함된 참여자들을 제외한 나머지 참여자들에게 복수의 블록 중 하나를 동일하게 분배할 수 있다.
도 2 내지 도 7은 일 실시예에 따라 복수의 블록을 복수의 참여자에게 분배하는 일 예를 설명하기 위한 예시도이다.
도 2 내지 도 7에서는 참여자의 총수(N)가 4명이고, 최소 합의자의 수(K)가 3명인 것으로 가정하며, 상술한 수학식 1에 따라 시드 값(200)이 6개의 블록으로 구성된 것으로 가정한다.
도 2 내지 도 7을 참조하면, 우선 블록 생성부(110)는 도 2에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 B를 제외한 나머지 참여자인 사용자 C 및 사용자 D에게 시드 값(200)을 구성하는 복수의 블록들 중 첫 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 3에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 C를 제외한 나머지 참여자인 사용자 B 및 사용자 D에게 시드 값(200)을 구성하는 복수의 블록들 중 두 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 4에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 D를 제외한 나머지 참여자인 사용자 B 및 사용자 C에게 시드 값(200)을 구성하는 복수의 블록들 중 세 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 5에 도시된 예와 같이 복수의 참여자 중 사용자 B와 사용자 C를 제외한 나머지 참여자인 사용자 A 및 사용자 D에게 시드 값(200)을 구성하는 복수의 블록들 중 네 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 6에 도시된 예와 같이 복수의 참여자 중 사용자 B와 사용자 D를 제외한 나머지 참여자인 사용자 A 및 사용자 C에게 시드 값(200)을 구성하는 복수의 블록들 중 다섯 번째 블록을 할당한다.
마지막으로, 블록 생성부(110)는 도 7에 도시된 예와 같이 복수의 참여자 중 사용자 C와 사용자 D를 제외한 나머지 참여자인 사용자 A 및 사용자 B에게 시드 값(200)을 구성하는 복수의 블록들 중 여섯 번째 블록을 할당한다.
결과적으로, 사용자 A 내지 D의 지분(210, 220, 230, 240)은 각각 3개의 블록을 포함한다. 또한, 사용자 A 내지 D의 지분(210, 220, 230, 240) 중 임의로 선택된 3개의 지분에 포함된 블록들은 시드 값(200)을 구성하는 복수의 블록들을 모두 포함하게 되므로, 사용자 A 내지 D의 지분(210, 220, 230, 240) 중 3개의 지분을 이용하여 시드 값(200)을 복원할 수 있게 된다.
한편, 일 실시예에 따르면, 블록 생성부(110)는 필수 합의자의 수가 설정된 경우, 복수의 참여자 각각의 지분 중 필수 합의자의 지분을 포함한 최소 합의자의 수만큼의 지분을 이용하여 시드 값을 복원할 수 있도록 복수의 블록을 복수의 참여자에게 분배할 수 있다.
구체적으로, 일 실시예에 따르면, 블록 생성부(110)는 복수의 블록 중 일부 블록 각각을 필수 합의자에게 독립적으로 할당한 후, 최소 합의자의 수에 기초하여 복수의 블록 중 나머지 블록 각각을 복수의 참여자 중 필수 합의자를 제외한 나머지 참여자 중 일부 참여자에게 중복 할당하여 복수의 참여자 각각의 지분을 생성할 수 있다.
예를 들어, 블록 생성부(110)는 필수 합의자 각각에게 복수의 블록 중 하나를 중복되지 않게 할당할 수 있다. 이후, 블록 생성부(110)는 필수 합의자를 제외한 나머지 참여자들에 대해 K-1-M명으로 구성된 상이한 복수의 조합을 생성한 후, 각 조합별로 나머지 참여자들 중 각 조합에 포함된 참여자들을 제외한 참여자들에게 복수의 블록 중 하나를 동일하게 분배할 수 있다.
구체적으로, 도 8 내지 도 11은 일 실시예에 따라 복수의 블록을 복수의 참여자에게 분배하는 다른 예를 설명하기 위한 예시도이다.
도 8 내지 도 11에서 참여자의 총수(N)가 4명이고, 최소 합의자의 수(K)가 3명이고, 참여자들 중 사용자 A가 필수 합의자인 것으로 가정하며, 상술한 수학식 2에 따라 시드 값(800)이 4개의 블록으로 구성된 것으로 가정한다.
도 8 내지 도 11을 참조하면, 우선 블록 생성부(110)는 도 8에 도시된 예와 같이 복수의 참여자 중 필수 합의자인 사용자 A에게 시드 값(800)을 구성하는 복수의 블록들 중 첫 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 9에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 B를 제외한 사용자 C 및 사용자 D에게 시드 값(800)을 구성하는 복수의 블록들 중 두 번째 블록을 할당한다.
이후, 블록 생성부(110)는 도 10에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 C를 제외한 사용자 B 및 사용자 D에게 시드 값(800)을 구성하는 복수의 블록들 중 세 번째 블록을 할당한다.
마지막으로, 블록 생성부(110)는 도 11에 도시된 예와 같이 복수의 참여자 중 사용자 A와 사용자 D를 제외한 사용자 B 및 사용자 C에게 시드 값(200)을 구성하는 복수의 블록들 중 네 번째 블록을 할당한다.
결과적으로, 필수 합의자인 사용자 A의 지분(810)은 나머지 참여자들의 지분(820, 830, 840)에 포함되지 않는 하나의 블록을 포함한다. 또한, 나머지 참여자인 사용자 B 내지 D의 지분(820, 830, 840)은 각각 시드 값(800)을 구성하는 복수의 블록에서 필수 합의자의 지분(810)에 포함된 블록을 제외한 나머지 블록들 중 2개의 블록을 포함한다.
따라서, 나머지 참여자의 지분(820, 830, 840) 중 임의로 선택된 2개의 지분과 필수 합의자인 사용자 A의 지분(810)에 포함된 블록들은 시드 값(800)을 구성하는 복수의 블록들을 모두 포함하게 되므로, 필수 합의자의 지분(810)을 포함한 3개의 지분을 이용하여 시드 값(800)을 복원할 수 있게 된다.
다시, 도 1을 참조하면, 제1 암복호화부(130)는 시드 값에 기초하여 데이터를 암호화한다.
일 실시예에 따르면, 제1 암복호화부(130)는 시드 값을 이용하여 암호 키를 생성한 후, 생성된 암호 키를 이용한 대칭키 기반의 암호 알고리즘을 이용하여 데이터를 암호화할 수 있다.
예를 들어, 제1 암복호화부(130)는 시드 값을 기 설정된 길이의 해시 값으로 변환한 후, 변환된 해시 값을 암호 키로 이용할 수 있다. 그러나, 시드 값으로부터 암호 키를 생성하는 방식은 반드시 특정한 방식으로 한정되는 것은 아니다.
제2 암복호화부(150)는 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 블록 생성부(110)에 의해 생성된 복수의 참여자 각각의 지분을 암호화한다.
일 실시예에 따르면, 제2 암복호화부(150)는 블록 생성부(110)에 의해 복수의 참여자 각각의 지분이 생성된 경우, 각 참여자에게 비밀 정보를 요청하여 각 참여자로부터 자신의 지분을 암호화하기 위한 비밀 정보를 획득할 수 있다. 이때, 비밀 정보는 예를 들어, 패스워드, 참여자의 생체 정보(예를 들어, 지문, 홍채 등)에 기초하여 생성된 값 등일 수 있으며, 반드시 특정한 정보로 한정되는 것은 아니다.
한편, 일 실시예에 따르면, 제2 암복호화부(150)는 각 참여자에 의해 설정된 비밀 정보를 암호 키로 이용한 대칭키 기반의 암호 알고리즘을 이용하여 각 참여자의 지분을 암호화할 수 있다.
또한, 일 실시예에 따르면, 제2 암복호화부(150)는 암호화된 복수의 참여자 각각의 지분을 대응되는 참여자의 식별 정보와 연관하여 저장부(170)에 저장할 수 있다.
한편, 제2 암복호화부(150)는 시드 값에 기초하여 암호화된 데이터에 대한 복호화 요청이 있는 경우, 복수의 참여자 각각으로 저장부(170)에 저장된 암호화된 지분의 암호화를 위해 이용된 비밀 정보를 요청할 수 있다. 이때, 제2 암복호화부(150)는 예를 들어, 암호화된 지분 각각과 연관하여 저장된 참여자의 식별 정보에 기초하여 복수의 참여자 각각으로 비밀 정보를 요청할 수 있다.
한편, 제2 암혹호화부(150)는 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신된 경우, 수신된 비밀 정보를 이용하여 저장부(170)에 저장된 암호화된 지분 중 해당 비밀 정보를 이용하여 암호화된 지분을 복호화할 수 있다.
한편, 일 실시예에 따르면, 제2 암복호화부(150)는 복수의 참여자 중 필수 합의자가 설정되지 않은 경우, 복수의 참여자 각각에게 비밀 정보를 요청한 후 기 설정된 시간 내에 최소 합의자의 수만큼의 지분이 복호화되었는지 여부를 판단할 수 있다. 이때, 기 설정된 시간 내에 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 제2 암복화부(150)는 데이터 복호화에 실패한 것으로 판단하고 현재까지 복호화된 지분을 삭제할 수 있다. 반면, 기 설정된 시간 내에 최소 합의자의 수만큼의 지분이 복호화된 경우, 제2 암복호화부(150)는 복호화된 지분을 이용하여 시드 값을 복원할 수 있다.
또한, 일 실시예에 따르면, 제2 암복호화부(150)는 복수의 참여자 중 필수 합의자가 설정된 경우, 복수의 참여자 각각에게 비밀 정보를 요청한 후 기 설정된 시간 내에 필수 합의자의 지분을 포함한 최소 합의자의 수만큼의 지분이 복호화되었는지 여부를 판단할 수 있다. 이때, 기 설정된 시간 내에 최소 합의자의 수만큼의 지분이 복호화되지 않았거나 복호화된 지분에 필수 합의자의 지분이 포함되어 있지 않은 경우, 제2 암복화부(150)는 데이터 복호화에 실패한 것으로 판단하고 현재까지 복호화된 지분을 삭제할 수 있다. 반면, 기 설정된 시간 내에 최소 합의자의 수만큼의 지분이 복호화되었고 복호화된 지분에 필수 합의자의 지분이 포함되어 있는 경우, 제2 암복호화부(150)는 복호화된 지분을 이용하여 시드 값을 복원할 수 있다.
한편, 제1 암복호화부(150)는 제2 암복호화부(170)에 의해 시드 값이 복원된 경우, 복원된 시드 값에 기초하여, 복호화 요청된 암호화된 데이터를 복호화할 수 있다.
이때, 일 실시예에 따르면, 제1 암복호화부(130)는 복원된 시드 값을 이용하여 암호 키를 생성한 후, 생성된 암호 키를 이용한 대칭키 기반의 암호 알고리즘을 이용하여 복호화 요청된 암호화된 데이터를 복호화할 수 있다.
예를 들어, 제1 암복호화부(130)는 복원된 시드 값을 기 설정된 길이의 해시 값으로 변환한 후, 변환된 해시 값을 암호 키로 이용할 수 있다. 그러나, 복원된 시드 값으로부터 암호 키를 생성하는 방식은 반드시 특정한 방식으로 한정되는 것은 아니다.
도 12는 일 실시예에 따른 암호화 과정을 나타낸 순서도이다.
도 12에 도시된 방법은 암복호화 장치(100)에 의해 수행될 수 있다.
도 12를 참조하면, 우선, 암복호화 장치(100)는 복호화에 참여할 복수의 참여자의 총수 및 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성한다(1210).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 복호화를 위해 필요한 필수 합의자의 수가 설정된 경우, 복수의 참여자의 총수, 최소 합의자의 수 및 필수 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성할 수 있다.
이후, 암복호화 장치(100)는 시드 값에 기초하여 데이터를 암호화한다(1220).
이후, 암복호화 장치(100)는 생성된 복수의 블록을 복수의 참여자에게 분배하여 시드 값에 대한 복수의 참여자 각각의 지분을 생성한다(1230).
이후, 암복호화 장치(100)는 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 복수의 참여자 각각의 지분을 암호화한다(1240).
이때, 일 실시예에 따르면, 암복호화 장치(100)는 복수의 참여자 각각으로 비밀 정보를 요청하여, 각 참여자로부터 자신의 지분을 암호화하기 위한 비밀 정보를 획득할 수 있다.
이후, 암복호화 장치(100)는 복수의 참여자 각각의 암호화된 지분을 저장한다(1250).
이때, 일 실시예에 따르면, 암호화된 지분 각각은 대응되는 참여자의 식별정보와 연관하여 저장될 수 있다.
한편, 도 12에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 13은 일 실시예에 따른 복호화 과정을 나타낸 순서도이다.
도 13에 도시된 방법은 예를 들어, 도 12에 도시된 암호화 과정이 수행된 이후에 암복호화 장치(100)에 의해 수행될 수 있다.
도 13을 참조하면, 암복호화 장치(100)는 암호화된 데이터에 대한 복호화 요청이 있는 경우, 복수의 참여자 각각에게 각 참여자의 지분을 암호화하기 위해 이용된 비밀 정보를 요청한다(1310).
이후, 암복호화 장치(100)는 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고(1320), 수신된 비밀 정보를 이용하여 복수의 참여자 각각의 지분 중 수신된 비밀 정보에 의해 암호화된 지분을 복호화한다(1330).
이후, 암복호화 장치(100)는 최소 합의자의 수만큼의 지분이 복호화되었는지 여부를 판단한다(1340).
이때, 최소 합의자의 수만큼의 지분이 복호화된 경우, 암복호화 장치(100)는 복호화된 지분을 이용하여 시드 값을 복원하고(1350), 복원된 시드 값에 기초하여, 암호화된 데이터를 복호화한다(1360).
반면, 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 암복호화 장치(100)는 복수의 참여자 각각에게 비밀 정보를 요청한 시점으로부터 기 설정된 시간이 경과되었는지 여부를 판단한다(1370).
이때, 기 설정된 시간이 경과된 경우, 암복호화부(100)는 데이터 복호화에 실패한 것으로 판단하고 현재까지 복호화된 지분을 모두 삭제한다(1380).
한편, 도 13에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 14은 다른 실시예에 따른 복호화 과정을 나타낸 순서도이다.
도 14에 도시된 방법은 예를 들어, 도 12에 도시된 암호화 과정이 수행된 이후에 암복호화 장치(100)에 의해 수행될 수 있다.
도 14를 참조하면, 암복호화 장치(100)는 암호화된 데이터에 대한 복호화 요청이 있는 경우, 복수의 참여자 각각에게 각 참여자의 지분을 암호화하기 위해 이용된 비밀 정보를 요청한다(1410).
이후, 암복호화 장치(100)는 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고(1420), 수신된 비밀 정보를 이용하여 복수의 참여자 각각의 지분 중 수신된 비밀 정보에 의해 암호화된 지분을 복호화한다(1430).
이후, 암복호화 장치(100)는 최소 합의자의 수만큼의 지분이 복호화되었는지 여부를 판단한다(1440).
이때, 최소 합의자의 수만큼의 지분이 복호화된 경우, 암복호화 장치(100)는 필수 합의자의 지분이 복호화되었는지 여부를 판단한다(1450).
한편, 최소 합의자의 수만큼의 지분이 복호화되고, 복호화된 지분에 필수 합의자의 지분이 포함되어 있는 경우, 암복호화 장치(100)는 복호화된 지분을 이용하여 시드 값을 복원하고(1460), 복원된 시드 값에 기초하여, 암호화된 데이터를 복호화한다(1470).
반면, 최소 합의자의 수만큼의 지분이 복호화되지 않았거나, 복호화된 지분에 필수 합의자의 지분이 포함되어 있지 않은 경우, 암복호화 장치(100)는 복수의 참여자 각각에게 비밀 정보를 요청한 시점으로부터 기 설정된 시간이 경과되었는지 여부를 판단한다(1480).
이때, 기 설정된 시간이 경과된 경우, 암복호화부(100)는 데이터 복호화에 실패한 것으로 판단하고 현재까지 복호화된 지분을 모두 삭제한다(1490).
한편, 도 14에 도시된 순서도에서 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.
도 15는 예시적인 실시예들에서 사용되기에 적합한 컴퓨팅 장치를 포함하는 컴퓨팅 환경(10)을 예시하여 설명하기 위한 블록도이다. 도시된 실시예에서, 각 컴포넌트들은 이하에 기술된 것 이외에 상이한 기능 및 능력을 가질 수 있고, 이하에 기술되지 것 이외에도 추가적인 컴포넌트를 포함할 수 있다.
도시된 컴퓨팅 환경(10)은 컴퓨팅 장치(12)를 포함한다. 일 실시예에서, 컴퓨팅 장치(12)는 본 발명의 실시예들에 따른 암복호화 장치(100)에 포함되는 하나 이상의 컴포넌트일 수 있다. 컴퓨팅 장치(12)는 적어도 하나의 프로세서(14), 컴퓨터 판독 가능 저장 매체(16) 및 통신 버스(18)를 포함한다. 프로세서(14)는 컴퓨팅 장치(12)로 하여금 앞서 언급된 예시적인 실시예에 따라 동작하도록 할 수 있다. 예컨대, 프로세서(14)는 컴퓨터 판독 가능 저장 매체(16)에 저장된 하나 이상의 프로그램들을 실행할 수 있다. 상기 하나 이상의 프로그램들은 하나 이상의 컴퓨터 실행 가능 명령어를 포함할 수 있으며, 상기 컴퓨터 실행 가능 명령어는 프로세서(14)에 의해 실행되는 경우 컴퓨팅 장치(12)로 하여금 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.
컴퓨터 판독 가능 저장 매체(16)는 컴퓨터 실행 가능 명령어 내지 프로그램 코드, 프로그램 데이터 및/또는 다른 적합한 형태의 정보를 저장하도록 구성된다. 컴퓨터 판독 가능 저장 매체(16)에 저장된 프로그램(20)은 프로세서(14)에 의해 실행 가능한 명령어의 집합을 포함한다. 일 실시예에서, 컴퓨터 판독 가능 저장 매체(16)는 메모리(랜덤 액세스 메모리와 같은 휘발성 메모리, 비휘발성 메모리, 또는 이들의 적절한 조합), 하나 이상의 자기 디스크 저장 디바이스들, 광학 디스크 저장 디바이스들, 플래시 메모리 디바이스들, 그 밖에 컴퓨팅 장치(12)에 의해 액세스되고 원하는 정보를 저장할 수 있는 다른 형태의 저장 매체, 또는 이들의 적합한 조합일 수 있다.
통신 버스(18)는 프로세서(14), 컴퓨터 판독 가능 저장 매체(16)를 포함하여 컴퓨팅 장치(12)의 다른 다양한 컴포넌트들을 상호 연결한다.
컴퓨팅 장치(12)는 또한 하나 이상의 입출력 장치(24)를 위한 인터페이스를 제공하는 하나 이상의 입출력 인터페이스(22) 및 하나 이상의 네트워크 통신 인터페이스(26)를 포함할 수 있다. 입출력 인터페이스(22) 및 네트워크 통신 인터페이스(26)는 통신 버스(18)에 연결된다. 입출력 장치(24)는 입출력 인터페이스(22)를 통해 컴퓨팅 장치(12)의 다른 컴포넌트들에 연결될 수 있다. 예시적인 입출력 장치(24)는 포인팅 장치(마우스 또는 트랙패드 등), 키보드, 터치 입력 장치(터치패드 또는 터치스크린 등), 음성 또는 소리 입력 장치, 다양한 종류의 센서 장치 및/또는 촬영 장치와 같은 입력 장치, 및/또는 디스플레이 장치, 프린터, 스피커 및/또는 네트워크 카드와 같은 출력 장치를 포함할 수 있다. 예시적인 입출력 장치(24)는 컴퓨팅 장치(12)를 구성하는 일 컴포넌트로서 컴퓨팅 장치(12)의 내부에 포함될 수도 있고, 컴퓨팅 장치(12)와는 구별되는 별개의 장치로 컴퓨팅 장치(12)와 연결될 수도 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 전술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
10: 컴퓨팅 환경
12: 컴퓨팅 장치
14: 프로세서
16: 컴퓨터 판독 가능 저장 매체
18: 통신 버스
20: 프로그램
22: 입출력 인터페이스
24: 입출력 장치
26: 네트워크 통신 인터페이스
100: 암복호화 장치
110: 블록 생성부
130: 제1 암복호화부
150; 제2 암복호화부
170: 저장부

Claims (20)

  1. 복호화에 참여할 복수의 참여자의 총수 및 상기 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성하는 단계;
    상기 시드 값에 기초하여 데이터를 암호화하는 단계;
    상기 복수의 블록을 상기 복수의 참여자에게 분배하여 상기 시드 값에 대한 상기 복수의 참여자 각각의 지분을 생성하는 단계;
    상기 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 상기 복수의 참여자 각각의 지분을 암호화하는 단계; 및
    상기 암호화된 복수의 참여자 각각의 지분을 저장하는 단계를 포함하는 암복호화 방법.
  2. 청구항 1에 있어서,
    상기 암호화된 데이터에 대한 복호화 요청이 있는 경우, 상기 복수의 참여자 각각으로 상기 비밀 정보를 요청하는 단계;
    상기 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고, 상기 암호화된 복수의 참여자 각각의 지분 중 상기 수신된 비밀 정보에 의해 암호화된 지분을 복호화하는 단계;
    상기 복수의 참여자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화된 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하는 단계; 및
    상기 복원된 시드 값에 기초하여, 상기 암호화된 데이터를 복호화하는 단계를 더 포함하는 암복호화 방법.
  3. 청구항 2에 있어서,
    상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 단계를 더 포함하는 암복호화 방법.
  4. 청구항 2에 있어서,
    상기 복수의 블록의 개수는, 아래의 수학식 1에 기초하여 결정되는 암복호화 방법.
    [수학식 1]
    B=NC(K-1)
    (이때, B는 상기 복수의 블록의 개수, N은 상기 복수의 참여자의 총수, K는 상기 최소 합의자의 수)
  5. 청구항 2에 있어서,
    상기 생성하는 단계는, 상기 복수의 블록 각각을 상기 복수의 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성하는 암복호화 방법.
  6. 청구항 2에 있어서,
    상기 생성하는 단계는, 상기 복수의 참여자의 총수, 상기 최소 합의자의 수 및 상기 복호화를 위해 필요한 필수 합의자의 수에 기초하여 상기 복수의 블록을 생성하고,
    상기 복원하는 단계는, 상기 복수의 사용자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화되고, 상기 복호화된 지분 중 상기 필수 합의자의 지분이 포함되어 있는 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하는 암복호화 방법.
  7. 청구항 6에 있어서,
    상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 필수 합의자의 지분을 포함한 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 단계를 더 포함하는 암복호화 방법.
  8. 청구항 6에 있어서,
    상기 복수의 블록의 개수는, 아래의 수학식 2에 기초하여 결정되는 암복호화 방법.
    [수학식 2]
    B=M+(N-M)C(K-1-M)
    (이때, B는 상기 복수의 블록의 개수, M은 상기 필수 합의자의 수, N은 상기 복수의 참여자의 수, K는 상기 최소 합의자의 수)
  9. 청구항 6에 있어서,
    상기 생성하는 단계는, 상기 복수의 블록 중 일부 블록 각각을 상기 필수 합의자에게 독립적으로 할당한 후, 상기 복수의 블록 중 나머지 블록 각각을 상기 복수의 참여자 중 상기 필수 합의자를 제외한 나머지 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성하는 암복호화 방법.
  10. 청구항 2에 있어서,
    상기 저장하는 단계는, 상기 암호화된 복수의 참여자 각각의 지분을 대응되는 참여자의 식별 정보와 연관하여 저장하고,
    상기 요청하는 단계는, 상기 식별 정보에 기초하여 상기 복수의 참여자 각각에게 상기 복수의 사용자 각각의 비밀 정보를 요청하는 암복호화 방법.
  11. 복호화에 참여할 복수의 참여자의 총수 및 상기 복호화를 위해 필요한 최소 합의자의 수에 기초하여 시드 값을 구성하는 복수의 블록을 생성하고, 상기 복수의 블록을 상기 복수의 참여자에게 분배하여 상기 시드 값에 대한 상기 복수의 참여자 각각의 지분을 생성하는 블록 생성부;
    상기 시드 값에 기초하여 데이터를 암호화하는 제1 암복호화부;
    상기 복수의 참여자 각각에 의해 설정된 비밀 정보에 기초하여 상기 복수의 참여자 각각의 지분을 암호화하는 제2 암복호화부; 및
    상기 암호화된 복수의 참여자 각각의 지분을 저장하는 저장부를 포함하는 암복호화 장치.
  12. 청구항 11에 있어서,
    상기 제2 암복호화부는, 상기 암호화된 데이터에 대한 복호화 요청이 있는 경우, 상기 복수의 참여자 각각으로 상기 복수의 사용자 각각의 비밀 정보를 요청하여 상기 복수의 참여자 중 적어도 일부로부터 비밀 정보를 수신하고, 상기 암호화된 복수의 참여자 각각의 지분 중 상기 수신된 비밀 정보에 의해 암호화된 지분을 복호화하며,
    상기 제1 암복호화부는, 상기 복수의 참여자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화된 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하고, 상기 복원된 시드 값에 기초하여, 상기 암호화된 데이터를 복호화하는 암복호화 장치.
  13. 청구항 12에 있어서,
    상기 제2 암복호화부는, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 암복호화 장치.
  14. 청구항 12에 있어서,
    상기 복수의 블록의 개수는, 아래의 수학식 1에 기초하여 결정되는 암복호화 장치.
    [수학식 1]
    B=NC(K-1)
    (이때, B는 상기 복수의 블록의 개수, N은 상기 복수의 참여자의 총수, K는 상기 최소 합의자의 수)
  15. 청구항 12에 있어서,
    상기 블록 생성부는, 상기 복수의 블록 각각을 상기 복수의 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성하는 암복호화 장치.
  16. 청구항 12에 있어서,
    상기 블록 생성부는, 상기 복수의 참여자의 총수, 상기 최소 합의자의 수 및 상기 복호화를 위해 필요한 필수 합의자의 수에 기초하여 상기 복수의 블록을 생성하고,
    상기 제1 암복호화부는, 상기 복수의 사용자의 지분 중 상기 최소 합의자의 수만큼의 지분이 복호화되고, 상기 복호화된 지분 중 상기 필수 합의자의 지분이 포함되어 있는 경우, 상기 복호화된 지분을 이용하여 상기 시드 값을 복원하는 암복호화 장치.
  17. 청구항 16에 있어서,
    상기 제2 암복호화부는, 상기 비밀 정보를 요청한 이후 기 설정된 시간 내에 상기 필수 합의자의 지분을 포함한 상기 최소 합의자의 수만큼의 지분이 복호화되지 않은 경우, 현재까지 복호화된 지분을 삭제하는 암복호화 장치.
  18. 청구항 16에 있어서,
    상기 복수의 블록의 개수는, 아래의 수학식 2에 기초하여 결정되는 암복호화 장치.
    [수학식 2]
    B=M+(N-M)C(K-1-M)
    (이때, B는 상기 복수의 블록의 개수, M은 상기 필수 합의자의 수, N은 상기 복수의 참여자의 수, K는 상기 최소 합의자의 수)
  19. 청구항 16에 있어서,
    상기 블록 생성부는, 상기 복수의 블록 중 일부 블록 각각을 상기 필수 합의자에게 독립적으로 할당한 후, 상기 복수의 블록 중 나머지 블록 각각을 상기 복수의 참여자 중 상기 필수 합의자를 제외한 나머지 참여자 중 일부 참여자에게 중복 할당하여 상기 복수의 참여자 각각의 지분을 생성하는 암복호화 장치.
  20. 청구항 12에 있어서,
    상기 저장부는, 상기 암호화된 복수의 참여자 각각의 지분을 대응되는 참여자의 식별 정보와 연관하여 저장하고,
    상기 제2 암복호화부는, 상기 식별 정보에 기초하여 상기 복수의 참여자 각각에게 상기 복수의 사용자 각각의 비밀 정보를 요청하는 암복호화 장치.
KR1020190137816A 2019-10-31 2019-10-31 암복호화 장치 및 방법 KR20210051923A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190137816A KR20210051923A (ko) 2019-10-31 2019-10-31 암복호화 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190137816A KR20210051923A (ko) 2019-10-31 2019-10-31 암복호화 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210051923A true KR20210051923A (ko) 2021-05-10

Family

ID=75917784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190137816A KR20210051923A (ko) 2019-10-31 2019-10-31 암복호화 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20210051923A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022225355A1 (ko) 2021-04-21 2022-10-27 주식회사 엘지에너지솔루션 전지 셀 및 이를 포함하는 전지 모듈
WO2024210253A1 (en) * 2023-04-07 2024-10-10 Industry-University Cooperation Foundation Hanyang University Method for threshold secret sharing and reconstruction for multi-compartment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180036555A (ko) 2016-09-29 2018-04-09 주식회사 피플카쉐어링 데이터 분산 암호화 방법 및 분산 암호화된 데이터 복구 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180036555A (ko) 2016-09-29 2018-04-09 주식회사 피플카쉐어링 데이터 분산 암호화 방법 및 분산 암호화된 데이터 복구 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022225355A1 (ko) 2021-04-21 2022-10-27 주식회사 엘지에너지솔루션 전지 셀 및 이를 포함하는 전지 모듈
WO2024210253A1 (en) * 2023-04-07 2024-10-10 Industry-University Cooperation Foundation Hanyang University Method for threshold secret sharing and reconstruction for multi-compartment

Similar Documents

Publication Publication Date Title
KR20230157929A (ko) 원격 액세스 제한 지갑으로부터 암호화폐 이체
RU2351078C2 (ru) Эффективное управление генерациями криптографических ключей
EP1586973A2 (en) Method for encryption backup and method for decryption restoration
CN111163036B (zh) 一种数据共享方法、装置、客户端、存储介质及系统
US20220014367A1 (en) Decentralized computing systems and methods for performing actions using stored private data
WO2012161417A1 (ko) 클라우드 컴퓨팅 환경에서의 접근 권한 분산 관리 장치 및 그 방법
US11075753B2 (en) System and method for cryptographic key fragments management
JPWO2020075396A1 (ja) 推論装置、推論方法及び推論プログラム
KR20210051923A (ko) 암복호화 장치 및 방법
JP6703706B2 (ja) 暗号文管理方法、暗号文管理装置及びプログラム
JP6401875B2 (ja) データ処理システム
JPWO2020255382A1 (ja) コンテンツ取引システム、コンテンツ取引方法、鍵管理装置、及び鍵管理プログラム
Suthar et al. EncryScation: A novel framework for cloud iaas, daas security using encryption and obfuscation techniques
KR20210020699A (ko) 컨소시엄 블록체인 네트워크에서의 프라이빗 키를 백업 및 복원하는 방법 및 장치
KR102400455B1 (ko) 분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크
CN112581285B (zh) 一种股权交易系统中基于区块链的账户生成方法、系统及介质
KR20200039979A (ko) 순서 노출 암호화를 위한 장치 및 방법
KR102211937B1 (ko) 블록체인 네트워크 상에서 오프체인 원장을 이용한 역할기반의 데이터 보호 시스템
KR102281265B1 (ko) 시간 제약을 지원하는 교집합 연산을 위한 함수 암호 기술
JP6997821B2 (ja) 復号システム
JP2021048471A (ja) 鍵管理装置、鍵管理方法、および鍵管理プログラム
KR20200045820A (ko) 암호화 및 복호화를 위한 장치 및 방법
KR20200089832A (ko) 신뢰기관이 없는 다중 클라이언트 환경의 순서 노출 암호화를 위한 장치 및 방법
Vanitha et al. Secured data destruction in cloud based multi-tenant database architecture
Shenets Approach for Protecting Mobile Device User’s Data Based on Multifactor Authentication, Visual Cryptography, and Steganography