[go: up one dir, main page]

KR102391952B1 - System, device or method for encryption distributed processing - Google Patents

System, device or method for encryption distributed processing Download PDF

Info

Publication number
KR102391952B1
KR102391952B1 KR1020210074113A KR20210074113A KR102391952B1 KR 102391952 B1 KR102391952 B1 KR 102391952B1 KR 1020210074113 A KR1020210074113 A KR 1020210074113A KR 20210074113 A KR20210074113 A KR 20210074113A KR 102391952 B1 KR102391952 B1 KR 102391952B1
Authority
KR
South Korea
Prior art keywords
key
password
division
encryption
block
Prior art date
Application number
KR1020210074113A
Other languages
Korean (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 KR1020210074113A priority Critical patent/KR102391952B1/en
Application granted granted Critical
Publication of KR102391952B1 publication Critical patent/KR102391952B1/en

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/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)
    • H04L9/083Key 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) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 암호화 분산 처리 시스템을 제안하고자 하며, 해당 시스템은 클라이언트 서버; 메인 서버; 사용자 단말; 분산 처리 서버; 및 복수의 분산 서버를 포함하며, 키 또는 암호화 패스워드 등을 분할하여 보관하고 키와 암호화 패스워드의 분할 방식도 알 수가 없으므로, 완전한 키 또는 암호화 패스워드를 획득하기가 매우 어렵고, 완전한 키 또는 암호화 패스워드를 획득하더라도 복호화 모듈은 클라이언트 서버만 보유하므로 클라이언트 서버 외의 다른 주체는 암호화 패스워드의 복호화가 불가능한 암호화 또는 복호화 방안을 제공한다. The present invention is to propose a cryptographic distributed processing system, the system comprising: a client server; main server; user terminal; distributed processing server; and a plurality of distributed servers, and since the key or encryption password is divided and stored, and the division method of the key and the encryption password is not known, it is very difficult to obtain the complete key or encryption password, and the complete key or encryption password is obtained Even so, since the decryption module is owned only by the client server, an encryption or decryption method that cannot be decrypted by a subject other than the client server is provided.

Figure R1020210074113
Figure R1020210074113

Description

암호화 분산 처리 시스템, 장치 또는 이를 위한 방법{System, device or method for encryption distributed processing}Encryption distributed processing system, device or method therefor {System, device or method for encryption distributed processing}

본 발명은 암호화 분산 처리 시스템, 장치 또는 이를 위한 방법에 관한 것으로서, 패스워드(password)를 암호화하고 분산 처리 또는 저장하는 것에 관한 발명이다. The present invention relates to an encryption distributed processing system, apparatus, or method therefor, and relates to encryption and distributed processing or storage of a password.

인터넷 또는 모바일 서비스의 발달로 인해 대부분의 사람들은 인터넷을 통해 정부기관, 교육기관, 의료기관, 통신회사, 금융회사, 포털, 소셜네트워크서비스(Social Network Service; SNS), 게임, 쇼핑 등의 수많은 온라인 서비스를 이용한다.Due to the development of the Internet or mobile services, most people use the Internet to access numerous online services such as government agencies, educational institutions, medical institutions, telecommunication companies, financial companies, portals, social network services (SNS), games, and shopping. use

따라서, 이러한 서비스를 이용하고자 하는 사용자는 자신의 실명 등을 포함한 개인정보를 입력하여 회원에 가입하거나, 사용자 식별정보(identification; ID)와 패스워드를 입력하여 가입된 사용자임을 인증해야 한다. 또한, 온라인 서비스의 주체 별로 이러한 사용자의 정보, 즉 ID와 패스워드 등을 저장해놓아야, 사용자 인증이 가능하다.Accordingly, a user who wants to use such a service must either sign up for a member by entering personal information including his or her real name, or authenticate that he or she is a registered user by entering user identification information (ID) and password. In addition, user authentication is possible only when such user information, ie, ID and password, must be stored for each subject of the online service.

그러나, 온라인 서비스의 주체 별로 이러한 사용자의 정보의 저장은, 즉 집중화는 정보의 유출 위험에 노출되게 된다. 즉, 온라인 서비스의 주체 중 어느 하나만 해킹이 이루어지면, 해당 온라인 서비스 뿐만 아니라 다른 온라인 서비스에도 불법적인 또는 악의적인 접근이 가능해진다. However, the storage of the user's information for each subject of the online service, ie, centralization, is exposed to the risk of information leakage. That is, if only one of the subjects of the online service is hacked, illegal or malicious access is possible not only to the corresponding online service but also to other online services.

이를 위해, 사용자의 정보를 암호화하고 분산 처리하여, 해킹의 위험을 제거하기 위한 암호화 분산 시스템, 장치 또는 방법 등을 제안하고자 한다.To this end, it is intended to propose an encryption distribution system, apparatus or method for encrypting and distributing user information to remove the risk of hacking.

본 발명은 사용자 정보의 유출의 위험을 제거하기 위한, 암호화 분산 시스템, 장치 또는 방법을 제안하고자 한다.The present invention intends to propose a cryptographic distribution system, apparatus or method for removing the risk of leakage of user information.

본 발명에서 이루고자 하는 해결하고자 하는 과제들은 상기 해결하고자 하는 과제로 제한되지 않으며, 언급하지 않은 또 다른 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다. The problems to be solved to be achieved in the present invention are not limited to the problems to be solved, and other problems not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the description below. There will be.

본 발명의 일 실시예에 따른 암호화 분산 처리 시스템에 있어서, 상기 시스템은 키(key)를 생성하고, 생성된 키와 패스워드(password), 그리고 사용자 식별정보를 메인 서버로 전송하는 클라이언트 서버; 상기 클라이언트 서버로부터 상기 키와 상기 패스워드, 그리고 상기 사용자 식별정보를 수신하고, 암호화 모듈을 이용하여 상기 수신된 키로 상기 패스워드를 암호화하며, 상기 키와 암호화된 패스워드 각각을 적어도 둘로 분할하여, 적어도 하나의 분할키, 적어도 하나의 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제1 블록은 사용자 단말로 전달하고, 나머지 분할키, 나머지 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제2 블록은 분산 처리 서버로 전송하는 메인 서버; 상기 메인 서버로부터 상기 제1 블록을 수신하고, 상기 제1 블록에 포함된 분할키 및 분할 암호화 패스워드를 RSA(Rivest Shamir Adleman) 암호화한 후 저장하는 사용자 단말; 및 상기 메인 서버로부터 상기 제2 블록을 수신하고, 상기 제2 블록에 포함된 분할키 및 분할 암호화 패스워드를 미리 결정된 수의 서브 블록으로 분산처리하여 하나 이상의 분산 서버에 저장하게 하는 분산 처리 서버를 포함할 수 있다.In an encryption distributed processing system according to an embodiment of the present invention, the system includes: a client server that generates a key, and transmits the generated key and password, and user identification information to a main server; receiving the key, the password, and the user identification information from the client server, encrypting the password with the received key using an encryption module, dividing each of the key and the encrypted password into at least two, at least one The first block including the split key, at least one split encryption password and the user identification information is transmitted to the user terminal, and the second block including the remaining split key, the remaining split encryption password and the user identification information is a distributed processing server the main server that transmits to; a user terminal that receives the first block from the main server, and stores the split key and split encryption password included in the first block after RSA (Rivest Shamir Adleman) encryption; and receiving the second block from the main server, and applying the division key and division encryption password included in the second block to a predetermined number of subs. It may include a distributed processing server that distributes processing in blocks and stores them in one or more distributed servers.

추가로 또는 대안으로, 상기 클라이언트 서버는 상기 키와 패스워드를 상기 메인 서버로 전송하고 나면, 상기 키 및 상기 패스워드를 삭제할 수 있다.Additionally or alternatively, the client server may delete the key and password after sending the key and password to the main server.

추가로 또는 대안으로, 상기 메인 서버는 상기 제1 블록 및 상기 제2 블록을 전송하고 나면, 상기 분할키 및 분할 암호화 패스워드를 제거할 수 있다.Additionally or alternatively, the main server may remove the partition key and the partition encryption password after transmitting the first block and the second block.

추가로 또는 대안으로, 상기 메인 서버는 미리 설정된 분할 방식 중 하나를 이용하여 상기 키와 상기 암호화 패스워드를 분할할 수 있다.Additionally or alternatively, the main server may partition the key and the encryption password using one of preset partitioning schemes.

추가로 또는 대안으로, 상기 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정을 포함할 수 있다.Additionally or alternatively, the preset partitioning method may include setting for at least one of the number or size of partitions, a configuration of partitions, and an order between the partitioned key and the encryption password.

추가로 또는 대안으로, 상기 분산 처리 서버는 상기 제2 블록에 포함된 분할키 및 분할 암호화 패스워드 각각을 미리 결정된 수 또는 미리 결정된 크기로 분할할 수 있다.Additionally or alternatively, the distributed processing server may divide each of the division key and division encryption password included in the second block into a predetermined number or a predetermined size.

추가로 또는 대안으로, 상기 사용자 단말은 미리 결정된 함수를 이용하여 제1블록에 포함된 분할키와 분할 암호화 패스워드에 상기 사용자 식별정보에 기반한 제1 식별정보를 할당할 수 있다.Additionally or alternatively, the user terminal may allocate the first identification information based on the user identification information to the division key and division encryption password included in the first block by using a predetermined function.

추가로 또는 대안으로, 상기 분산 처리 서버는 미리 결정된 함수를 이용하여 제2 블록에 포함된 분할키와 분할 암호화 패스워드에 상기 사용자 식별정보에 기반한 제2 식별정보를 할당할 수 있다.Additionally or alternatively, the distributed processing server may allocate second identification information based on the user identification information to the division key and division encryption password included in the second block by using a predetermined function.

추가로 또는 대안으로, 상기 제2 식별정보는 상기 제1 식별정보와 상이할 수 있다.Additionally or alternatively, the second identification information may be different from the first identification information.

본 발명의 또다른 일 실시예에 따른 암호화 분산 처리 시스템에 있어서, 상기 시스템은 암호화 패스워드의 전달을 요청하는 클라이언트 서버; 상기 클라이언트 서버로부터 상기 암호화 패스워드의 전달 요청을 수신하여, 사용자 단말 및 복수의 분산 서버 또는 상기 복수의 분산 서버를 관리하는 분산 처리 서버로 암호화 패스워드의 전달을 요청하는 메인 서버; 상기 암호화 패스워드의 전달 요청에 따라, RSA 암호화된 제1 분할키 및 제1 분할 암호화 패스워드를 포함한 제1 블록을 상기 메인 서버로 전송하는 사용자 단말; 상기 암호화 패스워드의 전달 요청에 따라, 상기 복수의 분산 서버에 분산 처리된 제2 분할키 및 제2 분할 암호화 패스워드를 포함한 제2 블록의 서브 블록을 회수한 후 결합하여 제2 블록을 획득하고, 획득된 제2 블록을 상기 메인 서버로 전송하는 분산 처리 서버를 포함하고, 상기 메인 서버는 상기 RSA 암호화된 제1 블록을 RSA 복호화하여 제1 분할키 및 제1 분할 암호화 패스워드를 획득하고, 상기 제1 분할키 및 상기 제2 분할키를 결합하고, 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드를 결합하여, 키와 암호화 패스워드를 획득하고, 상기 획득된 키와 상기 획득된 암호화 패스워드를 상기 클라이언트 서버로 전송하고, 상기 클라이언트 서버는 복호화 모듈을 이용하여 상기 획득된 키로 상기 획득된 암호화 패스워드를 복호화할 수 있다.In an encryption distributed processing system according to another embodiment of the present invention, the system includes: a client server requesting delivery of an encryption password; a main server receiving a transmission request of the encrypted password from the client server and requesting transmission of the encrypted password to a user terminal and a plurality of distributed servers or a distributed processing server managing the plurality of distributed servers; a user terminal for transmitting a first block including an RSA-encrypted first division key and a first division encryption password to the main server in response to a transmission request of the encrypted password; According to the transmission request of the encryption password, the sub-blocks of the second block including the second division key and the second division encryption password distributed to the plurality of distributed servers are recovered and combined to obtain a second block and a distributed processing server that transmits the second block to the main server, wherein the main server RSA-decrypts the RSA-encrypted first block to obtain a first partition key and a first partition encryption password, and the first combining the division key and the second division key, combining the first division encryption password and the second division encryption password, to obtain a key and an encryption password, and using the obtained key and the obtained encryption password to the client transmitted to the server, and the client server may use a decryption module to decrypt the obtained encrypted password with the obtained key.

본 발명의 또다른 일 실시예에 따른 암호화 분산 처리 방법에 있어서, 상기 방법은 키(key)를 생성하고, 생성된 키와 패스워드(password), 그리고 사용자 식별정보를 수신하는 단계; 암호화 모듈을 이용하여 상기 수신된 키로 상기 패스워드를 암호화하며, 상기 키와 상기 암호화된 패스워드 각각을 둘로 분할하는 단계; 및 제1 분할키, 제1 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제1 블록은 사용자 단말로 전달하고, 제2 분할키, 제2 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제2 블록은 분산 처리 서버로 전달하는 단계를 포함하고, 상기 제1 블록에 포함된 제1 분할키 및 제1 분할 암호화 패스워드는 RSA(Rivest Shamir Adleman) 암호화된 후 상기 사용자 단말에 저장되며, 상기 제2 블록에 포함된 제2 분할키 및 제2 분할 암호화 패스워드는 미리 결정된 수의 서브 블록으로 분산처리되어 상기 분산 처리 서버가 관리하는 하나 이상의 분산 서버에 저장될 수 있다.In the encryption distribution processing method according to another embodiment of the present invention, the method comprises the steps of generating a key, receiving the generated key and password, and user identification information; encrypting the password with the received key using an encryption module, and dividing each of the key and the encrypted password into two; and a first block including the first partition key, the first partition encryption password and the user identification information is transmitted to the user terminal, and a second block including the second partition key, the second partition encryption password and the user identification information transmits to a distributed processing server, wherein the first partition key and the first partition encryption password included in the first block are stored in the user terminal after RSA (Rivest Shamir Adleman) encryption, and the second block The second division key and the second division encryption password included in a predetermined number of sub It may be distributed in blocks and stored in one or more distributed servers managed by the distributed processing server.

본 발명의 또다른 일 실시예에 따른 암호화 분산 처리 방법에 있어서, 클라이언트 서버로부터 암호화 패스워드의 전달 요청을 수신하는 단계; 사용자 단말 및 복수의 분산 서버 또는 상기 복수의 분산 서버를 관리하는 분산 처리 서버로 암호화 패스워드의 전달을 요청하는 단계; 상기 암호화 패스워드의 전달 요청에 대응하여, RSA 암호화된 제1 분할키 및 제1 분할 암호화 패스워드를 포함한 제1 블록을 수신하고, 상기 복수의 분산 서버에 분산 처리된 제2 분할키 및 제2 분할 암호화 패스워드를 포함한 제2 블록을 수신하는 단계; 및 상기 RSA 암호화된 제1 블록을 RSA 복호화하여 제1 분할키 및 제1 분할 암호화 패스워드를 획득하고, 상기 제1 분할키 및 상기 제2 분할키를 결합하고, 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드를 결합하여, 키와 암호화 패스워드를 획득하고, 상기 획득된 키와 상기 획득된 암호화 패스워드를 상기 클라이언트 서버로 전송하는 단계를 포함하고, 상기 클라이언트 서버로 전송된 암호화 패스워드는 복호화 모듈을 이용하여 상기 획득된 키로 복호화될 수 있다.In a distributed encryption processing method according to another embodiment of the present invention, the method comprising: receiving a transmission request of an encryption password from a client server; requesting delivery of an encryption password to a user terminal and a plurality of distributed servers or a distributed processing server managing the plurality of distributed servers; In response to the request for transmission of the encrypted password, a first block including the RSA-encrypted first division key and the first division encryption password is received, and the second division key and the second division encryption are distributed to the plurality of distributed servers. receiving a second block including a password; and RSA-decrypting the RSA-encrypted first block to obtain a first division key and a first division encryption password, combining the first division key and the second division key, the first division encryption password and the second division key combining the two-part encryption password to obtain a key and an encryption password, and transmitting the obtained key and the obtained encryption password to the client server, wherein the encrypted password transmitted to the client server is sent to a decryption module It can be decrypted using the obtained key.

또한, 본 발명의 또다른 실시예에 따라, 앞서 설명한 방법을 수행하기 위한 컴퓨터 판독가능한 매체에 저장되는 컴퓨터 프로그램이 제안된다. In addition, according to another embodiment of the present invention, a computer program stored in a computer readable medium for performing the above-described method is proposed.

상기 과제 해결방법들은 본 발명의 실시예들 중 일부에 불과하며, 본원 발명의 기술적 특징들이 반영된 다양한 실시예들이 당해 기술분야의 통상적인 지식을 가진 자에 의해 이하 상술할 본 발명의 상세한 설명을 기반으로 도출되고 이해될 수 있다.The above problem solving methods are only some of the embodiments of the present invention, and various embodiments in which the technical features of the present invention are reflected are based on the detailed description of the present invention to be described below by those of ordinary skill in the art can be derived and understood as

본 발명에 따르면 키와 패스워드를 안전하게 보관할 수 있는 효과가 있다. According to the present invention, there is an effect that the key and password can be safely stored.

좀더 상세하게는, 본 발명에 따르면 키와 패스워드를 분할하여 여러 곳에 나누어 보관하므로, 키와 패스워드가 분할되어 저장된 모든 곳에서 분할키 또는 분할 암호화 패스워드가 유출되지 않는 한, 완전한 키 또는 암호화 패스워드의 획득이 불가능하다. More specifically, according to the present invention, since the key and password are divided and stored in several places, the complete key or encrypted password is obtained as long as the divided key or divided encryption password is not leaked from all places where the key and password are divided and stored. This is impossible.

본 발명에서 얻은 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned may be clearly understood by those of ordinary skill in the art to which the present invention belongs from the following description. will be.

본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명에 따른 암호화 분산 처리 시스템의 구성도를 도시한다.
도 2는 본 발명에 따른 암호화 과정의 순서도를 도시한다.
도 3은 본 발명에 따른 복호화 과정의 순서도를 도시한다.
BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are included as a part of the detailed description to help the understanding of the present invention, provide embodiments of the present invention, and together with the detailed description, explain the technical spirit of the present invention.
1 is a block diagram of an encryption distributed processing system according to the present invention.
2 shows a flowchart of an encryption process according to the present invention.
3 is a flowchart of a decoding process according to the present invention.

이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be implemented in various other forms. The terminology used herein is for the purpose of helping the understanding of the embodiments, and is not intended to limit the scope of the present invention. Also, singular forms used hereinafter include plural forms unless the phrases clearly indicate the opposite.

도 1은 본 발명에 따른 암호화 분산 처리 시스템(1)의 구조도를 도시한다. 1 shows a structural diagram of a cryptographic distributed processing system 1 according to the present invention.

본 발명에 따른 암호화 분산 처리 시스템(1)은 클라이언트 서버(10), 메인 서버(20), 사용자 단말(30), 분산 처리 서버(40) 및 하나 이상의 분산 서버(50)를 포함할 수 있다. The encryption distributed processing system 1 according to the present invention may include a client server 10 , a main server 20 , a user terminal 30 , a distributed processing server 40 , and one or more distributed servers 50 .

먼저 암호화 과정에 대해 설명하도록 한다. 암호화 과정은 사용자의 패스워드 저장 시도를 통해 개시될 수 있다.First, the encryption process will be described. The encryption process may be initiated through the user's attempt to store the password.

클라이언트 서버(10)는 사용자의 패스워드 저장 시도를 검출할 수 있다. 이에, 클라이언트 서버(10)는 메인 서버(20)와 약속된 키(key)를 생성할 수 있다. 또는 메인 서버(20)와 약속된 키가 클라이언트 서버(10)에 사전에 주어질 수 있다. 약속된 키는 미리 결정된 크기를 가질 수 있으며, 난수 생성 함수를 통해 생성될 수 있다.The client server 10 may detect the user's attempt to store the password. Accordingly, the client server 10 may generate a key promised with the main server 20 . Alternatively, the key promised with the main server 20 may be given to the client server 10 in advance. The promised key may have a predetermined size and may be generated through a random number generation function.

클라이언트 서버(10)는 복호화 모듈을 이용하거나 보유할 수 있다. 복호화 모듈은 사용자 정보, 또는 그 중에서 암호화된 패스워드(이하, “암호화 패스워드”로 지창함)를 복호화하기 위한 것으로서, 약속된 키와 암호화 패스워드를 입력받으면 (암호가 해독된)패스워드를 출력할 수 있다. 여기서, 복호화 모듈은 메인 서버(20)가 이용하거나 보유하는 암호화 모듈과는 상응 또는 대칭적인 관계로서, 약속된 키와 암호화 모듈을 이용하여 암호화된 패스워드는 약속된 키와 복호화 모듈을 이용하여 복호화가 가능하다. The client server 10 may use or have a decryption module. The decryption module is for decrypting user information or an encrypted password among them (hereinafter referred to as “encrypted password”). When the promised key and encryption password are input, the (decrypted) password can be output. . Here, the decryption module has a corresponding or symmetric relationship with the encryption module used or possessed by the main server 20, and the password encrypted using the promised key and the encryption module is decrypted using the promised key and the decryption module. It is possible.

클라이언트 서버(10)와 메인 서버(20)는 API(application programming interface) 통신을 통해 정보, 데이터 또는 메시지를 송수신할 수 있다. 클라이언트 서버(10)와 메인 서버(20)가 API 통신을 하기 위해서는 1회성 토큰이 필요하다. 클라이언트 서버(10)는 미리 발급받은 키 값으로 메인 서버(20)로 토큰 값을 요청하고, 메인 서버(20)는 미리 발급한 키 값과 클라이언트 서버(10)의 서버 IP 주소를 비교하여, API 통신을 통제할 수 있다. The client server 10 and the main server 20 may transmit and receive information, data, or messages through application programming interface (API) communication. A one-time token is required for API communication between the client server 10 and the main server 20 . The client server 10 requests a token value from the main server 20 with the key value issued in advance, and the main server 20 compares the previously issued key value with the server IP address of the client server 10, You can control communication.

클라이언트 서버(10)는 약속된 키, (사용자) 패스워드, 그리고 사용자 식별정보(ID)를 메인 서버(20)로 전송할 수 있다. 이 때, 클라이언트 서버(10)는 약속된 키, 패스워드 및 사용자 식별정보를 저장하지 않는다. 즉, 클라이언트 서버(10)가 약속된 키, 패스워드 및 사용자 식별정보를 메인 서버(20)로 전송하고 나면, 약속된 키, 패스워드 및 사용자 식별정보는 클라이언트 서버(10) 혹은 클라이언트 서버(10) 내 저장소 등에서 삭제될 수 있다. 이는 클라이언트 서버(10)에서 키 또는 패스워드와 같은 정보 유출의 가능성을 제거하기 위함이고, 결국엔 키 및 패스워드의 보안성이 강화되는 효과가 있다.The client server 10 may transmit the promised key, (user) password, and user identification information (ID) to the main server 20 . At this time, the client server 10 does not store the promised key, password, and user identification information. That is, after the client server 10 transmits the promised key, password, and user identification information to the main server 20 , the promised key, password and user identification information are stored in the client server 10 or the client server 10 . It can be deleted from storage, etc. This is to remove the possibility of information leakage, such as a key or password, from the client server 10, and in the end, the security of the key and password is strengthened.

메인 서버(20)는 클라이언트 서버(10)로부터 약속된 키, (사용자) 패스워드, 그리고 사용자 식별정보를 수신할 수 있다. 메인 서버(20)는 클라이언트 서버(10)가 이용하거나 보유하는 복호화 모듈과 상응 또는 대칭적인 암호화 모듈을 이용하거나 보유할 수 있다. 메인 서버(20)는 암호화 모듈을 이용하여 약속된 키로 패스워드를 암호화할 수 있다. 이에 따라, 암호화 패스워드가 생성될 수 있다. 또한, 패스워드의 암호화가 완료되면, 메인 서버(20)에는 클라이언트 서버(10)로부터 수신된 패스워드가 더 이상 존재하지 않을 수 있다.The main server 20 may receive the promised key, (user) password, and user identification information from the client server 10 . The main server 20 may use or retain an encryption module corresponding to or symmetrical to a decryption module used or possessed by the client server 10 . The main server 20 may encrypt the password with the promised key using the encryption module. Accordingly, an encryption password can be generated. Also, when encryption of the password is completed, the password received from the client server 10 may no longer exist in the main server 20 .

그리고나서, 메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 미리 설정된 분할 방식 중 하나를 이용하여 분할할 수 있다. 약속된 키와 암호화 패스워드의 분할(암호화하기 전의 패스워드의 분할 포함)을 위한 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정 또는 정함 등을 포함할 수 있다. 분할의 수 또는 크기, 구성 및 순서 등에 따른 구체적인 분할 방식은 좀더 상세히 설명하도록 한다. Then, the main server 20 may divide each of the promised key and the encryption password using one of the preset division methods. The preset division method for division of the promised key and the encryption password (including division of the password prior to encryption) includes a setting or It may include setting and the like. A specific division method according to the number or size of division, configuration and order, etc. will be described in more detail.

메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 미리 결정된 수로 분할하거나, 또는 미리 결정된 크기를 갖도록 분할할 수 있다. 즉, 메인 서버(20)는 약속된 키를 N개로 분할, 그리고 암호화 패스워드를 M개로 분할할 수 있다(N과 M 각각은 2이상의 정수이고, 같을 수도 있고 다를 수도 있다).The main server 20 may divide each of the promised key and the encryption password into a predetermined number or divide to have a predetermined size. That is, the main server 20 can divide the promised key into N pieces and divide the encryption password into M pieces (N and M are each an integer of 2 or more, and may be the same or different).

예컨대, 메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 둘로 분할할 수 있다. 즉, 메인 서버(20)는 약속된 키를 제1 분할키 및 제2 분할키로 분할하고, 암호화 패스워드를 제1 분할 암호화 패스워드 및 제2 분할 암호화 패스워드로 분할할 수 있다. 암호화 패스워드의 분할은 본 발명의 시스템 내의 여러 구성에 나누어 보관 또는 저장하게끔 하여 시스템 구성 중 일부가 해킹이 되더라도, 약속된 키 또는 패스워드를 복구 또는 복호화하지 못하게 하기 위함이다.For example, the main server 20 may divide each of the promised key and the encryption password into two. That is, the main server 20 may divide the promised key into a first division key and a second division key, and divide the encryption password into a first division encryption password and a second division encryption password. The encryption password is divided into several components in the system of the present invention to be stored or stored, so that even if some of the system components are hacked, the promised key or password cannot be recovered or decrypted.

예컨대, 약속된 키가 64자리의 문자로 구성되고(즉, 문자열), 약속된 키가 둘로 분할되는 경우, 메인 서버(20)는 약속된 키의 가장 높은 자리(가장 좌측의 문자)부터 32개의 문자를 제1 분할키로, 나머지 32개의 문자를 제2 분할키로 분할할 수 있다. For example, when the promised key consists of 64 characters (ie, a character string) and the promised key is divided into two, the main server 20 stores 32 characters from the highest digit (leftmost character) of the promised key. The character may be divided by the first division key, and the remaining 32 characters may be divided by the second division key.

암호화 패스워드에 대한 분할 역시, 위에서 설명한 약속된 키에 대한 분할과 동일한 방식으로 수행될 수 있다. 예컨대, 암호화 패스워드가 200자리의 문자열로 구성되고 암호화 패스워드가 둘로 분할되는 경우, 메인 서버(20)는 암호화 패스워드의 가장 높은 자리부터 100개의 문자를 제1 분할 암호화 패스워드로, 나머지 100개의 문자를 제2 분할키로 분할할 수 있다.Partitioning for the encryption password may also be performed in the same manner as partitioning for the promised key described above. For example, if the encrypted password consists of a 200-digit character string and the encrypted password is divided into two, the main server 20 uses 100 characters from the highest digit of the encrypted password as the first divided encryption password and the remaining 100 characters. It can be divided into 2 division keys.

아래의 표는 키와 패스워드가 각각 18자리의 문자인 경우의 키와 패스워드의 분할을 동일한 방식으로 수행한 결과의 예시를 나타낸다.The table below shows an example of the result of dividing the key and password in the same way when the key and password each have 18 characters.

키와 패스워드key and password 키:abcdefghi123456789
암호화 패스워드:abcdefghi123456789
Key: abcdefghi123456789
Encryption password: abcdefghi123456789
제1 분할키first split key abcdefghiabcdefghi 제1 암호화 패스워드first encryption password abcdefghiabcdefghi 제2 분할키2nd split key 123456789123456789 제2 암호화 패스워드second encryption password 123456789123456789

또는, 약속된 키가 64자리의 문자열로 구성된 경우, 메인 서버(20)는 가장 높은 자리의 문자와, 그로부터 한 문자를 건너뛰어 선택된 32개의 문자를 제1 분할키로, 나머지 문자를 제2 분할키로 분할할 수 있다(즉, 64개의 문자 중 짝수 번째 문자의 조합 또는 결합을 하나의 분할키로, 홀수 번째 문자의 조합 또는 결합을 나머지 하나의 분할키로 분할함). Alternatively, when the promised key consists of a 64-digit character string, the main server 20 sets the highest digit character and 32 characters selected by skipping one character therefrom as the first division key and the remaining characters as the second division key. It can be split (that is, a combination or combination of even-numbered characters out of 64 characters is split with one split key, and a combination or combination of odd-numbered characters is split with the other split key).

암호화 패스워드가 200자리의 문자열로 구성된 경우, 메인 서버(20)는 가장 높은 자리의 문자와, 그로부터 한 문자를 건너뛰어 선택된 100개의 문자를 제1 분할 암호화 패스워드로, 나머지 100개의 문자를 제2 분할 암호화 패스워드로 분할할 수 있다(즉, 200개의 문자 중 짝수 번째 문자의 조합 또는 결합을 하나의 분할 암호화 패스워드로, 홀수 번째 문자의 조합 또는 결합을 나머지 하나의 분할 암호화 패스워드로 분할함). When the encrypted password consists of a 200-digit character string, the main server 20 divides the highest digit character and 100 characters selected by skipping one character therefrom as the first division encryption password, and divides the remaining 100 characters into the second division It can be divided into an encryption password (that is, a combination or combination of even-numbered characters among 200 characters is divided into one divided encryption password, and a combination or combination of odd-numbered characters is divided into the other divided encryption password).

아래의 표는 키와 패스워드가 각각 18자리의 문자인 경우의 키와 패스워드의 분할을 동일한 방식으로 수행한 결과의 예시를 나타낸다.The table below shows an example of the result of dividing the key and password in the same way when the key and password each have 18 characters.

키와 패스워드key and password 키:abcdefghi123456789
암호화 패스워드:abcdefghi123456789
Key: abcdefghi123456789
Encryption password: abcdefghi123456789
제1 분할키first split key acegi2468acegi2468 제1 암호화 패스워드first encryption password acegi2468acegi2468 제2 분할키2nd split key bdfh13579bdfh13579 제2 암호화 패스워드second encryption password bdfh13579bdfh13579

표 1과 2에서는, 키와 패스워드를 서로 동일한 방식으로 분할하는 예를 설명하였지만, 키와 패스워드는 서로 다른 방식으로 분할될 수 있을 것이다. 예컨대, 키는 표 1에서 예시한 방식대로 분할하고, 패스워드는 표 2에서 예시한 방식대로 분할할 수 있다. In Tables 1 and 2, examples in which the key and the password are partitioned in the same way are described, but the key and the password may be partitioned in different ways. For example, the key may be partitioned in the manner illustrated in Table 1, and the password may be partitioned in the manner illustrated in Table 2.

또한, 위에서 설명한 약속된 키와 암호화 패스워드가 분할되는 수 또는 정도(N, M)가 3 이상으로 설정되면, 분할 방식이 더욱 다양해질 수 있다. 예컨대, 약속된 키가 64자리의 문자열로 구성되고, 3개로 분할되어야 하는 경우, 64개 자리의 문자를 가장 높은 자리부터 하나씩을 순환적으로 이동(cyclic shift)하면서 선택하여 3개의 분할키로 분할하는 방법이 사용될 수 있다. 분할되는 수가 약속된 키 또는 암호화 패스워드의 전체 자리수의 약수가 아니면(즉, 나누어떨어지지 않으면), 각 분할키 또는 분할 암호화 패스워드의 길이 또는 크기는 서로 동일하지 않을 수 있다.In addition, if the number or degree (N, M) by which the promised key and the encryption password are divided is set to 3 or more, the division method may be further diversified. For example, if the promised key consists of a 64-character string and should be divided into three, select 64-digit characters while cyclically shifting one from the highest digit to divide it into three split keys. method can be used. If the number to be divided is not a divisor (ie, not divisible) of the total number of digits of the promised key or encryption password, the length or size of each division key or division encryption password may not be equal to each other.

또한, 위에서 설명한 약속된 키와 암호화 패스워드가 분할되는 수 또는 정도(N, M)가 서로 다를 수도 있다.Also, the number or degree (N, M) by which the promised key and the encryption password described above are divided may be different from each other.

예컨대, 약속된 키는 두 개로 분할되나(제1 분할키 및 제2 분할키), 암호화 패스워드는 세 개로 분할될 수 있다(제1 분할 암호화 패스워드, 제2 분할 암호화 패스워드 및 제3 분할 암호화 패스워드). 이 경우에도, 분할 방식은 상술한 바를 참조할 수 있다.For example, the promised key is divided into two (the first division key and the second division key), but the encryption password may be divided into three (the first division encryption password, the second division encryption password, and the third division encryption password) . Even in this case, the division method may refer to the above-mentioned bar.

이러한 분할 방식을 알 수 없으면, 분할키와 분할 암호화 패스워드를 획득하더라도, 완전한 약속된 키 및 암호화 패스워드를 복구할 수 없을 것이다.If this partitioning method is unknown, even if the partition key and partition encryption password are obtained, the complete promised key and encryption password cannot be recovered.

한편, 분할키 또는 분할 암호화 패스워드는 사용자 단말(30)과 분산 처리 서버(40)로 전달되므로, 분할키 또는 분할 암호화 패스워드 상호간의 순서 역시 중요할 수 있다. 예컨대, 약속된 키가 64자리의 문자열로 구성되는 경우, 사용자 단말(30)로 전달될 제1 분할키와 분산 처리 서버(40)로 전달될 제2 분할키의 상대적인 위치, 즉 순서는 메인 서버(20)의 분할 방식에 따라 달라질 수 있다. On the other hand, since the split key or split encryption password is transmitted to the user terminal 30 and the distributed processing server 40, the mutual order of the split key or split encryption password may also be important. For example, when the promised key consists of a 64-digit character string, the relative positions of the first split key to be delivered to the user terminal 30 and the second split key to be delivered to the distributed processing server 40, that is, the order is the main server It may vary according to the division method in (20).

앞서 설명한 표 1과 2의 예에서는, 약속된 키의 전체 문자열에서 가장 높은 자리(가장 좌측)의 문자부터 일정 개수의 문자들 또는 짝수 번째 문자들을 사용자 단말(30)로 전송하는 제1 분할키로 지칭하고, 그 나머지 문자들을 분산 처리 서버(40)로 전송하는 제2 분할키로 지칭하였으나, 이 순서는 반대로 구성될 수 있다. 즉, 약속된 키의 전체 문자열에서 가장 높은 자리(가장 좌측)의 문자부터 일정 개수의 문자들 또는 짝수 번째 문자들을 분산 처리 서버(40)로 전송하는 제1 분할키로 지칭하고, 그 나머지 문자들을 사용자 단말(30)로 전송하는 제2 분할키로 지칭할 수 있다.In the examples of Tables 1 and 2 described above, a predetermined number of characters or even-numbered characters from the highest (leftmost) character in the entire string of the promised key are referred to as the first split key for transmitting to the user terminal 30 . and referred to as the second split key for transmitting the remaining characters to the distributed processing server 40, this order may be reversed. That is, a predetermined number of characters or even-numbered characters from the highest (leftmost) character in the entire string of the promised key is referred to as a first split key that transmits to the distributed processing server 40, and the remaining characters are used by the user It may be referred to as a second split key transmitted to the terminal 30 .

이는 약속된 키 또는 암호화 패스워드의 분할되는 수 또는 정도가 커질수록 다양한 상호간의 순서가 가능하다. 약속된 키가 미리 설정된 수(예컨대, 3)로 분할되는 경우, 또는 사용자 단말(30)로 전송할 분할키의 크기가 약속된 키의 전체 문자열의 일부 비율(예컨대, 3분의 1)로 설정되는 경우, 제1 분할키, 제2 분할키 및 제3 분할키를 앞서 설명한 분할 구성에 따라 분할한 경우, 사용자 단말(30)이나 분산 처리 서버(40)로 어떤 분할키를 할당 또는 전송할 지가 결정될 수 있다. 예컨대, 사용자 단말(30)로 약속된 키의 전체 문자열의 3분의 1만을 전송해야 한다면, 메인 서버(20)는 3개의 분할키 중 어느 하나를 사용자 단말(30)로 전송할 것으로 결정하고, 나머지 분할키를 분산 처리 서버(40)로 전송할 것으로 결정할 수 있다. As the number or degree of division of the promised key or encryption password increases, various mutual orders are possible. When the promised key is divided into a preset number (eg, 3), or the size of the partition key to be transmitted to the user terminal 30 is set to a partial ratio (eg, 1/3) of the entire string of the promised key In this case, when the first partitioning key, the second partitioning key, and the third partitioning key are partitioned according to the partitioning configuration described above, it can be determined which partitioning key is assigned or transmitted to the user terminal 30 or the distributed processing server 40 . there is. For example, if only one third of the entire string of the promised key has to be transmitted to the user terminal 30 , the main server 20 determines to transmit any one of the three split keys to the user terminal 30 , and the rest It may be decided to transmit the split key to the distributed processing server 40 .

암호화 패스워드 또는 패스워드의 분할에 대해서도 분할키에 대해 설명한 순서에 대한 설명이 적용될 수 있다.The description of the order described for the split key may also be applied to the encryption password or the splitting of the password.

이러한 상호 간의 순서를 알 수 없으면, 분할키와 분할 암호화 패스워드를 획득하더라도, 완전한 약속된 키 및 암호화 패스워드를 복구할 수 없을 것이다. If this mutual order is unknown, even if the partition key and the partition encryption password are obtained, the complete promised key and encryption password cannot be recovered.

따라서, 메인 서버(20)는 선택된 분할의 수 또는 크기, 분할의 구성 또는 분할된 키 또는 암호화 패스워드(또는 패스워드) 상호 간의 순서를 저장 또는 인지하고 있어야 하며, 선택된 분할의 수 또는 크기, 분할의 구성 또는 분할된 키 또는 암호화 패스워드(또는 패스워드) 상호 간의 순서 역시 암호화되는 등 보안 수단이 필요하다. 암호화 과정에서 이용된, 분할의 수 또는 크기, 분할의 구성 또는 분할된 키 또는 암호화 패스워드(또는 패스워드) 상호 간의 순서는 추후 암호화 분산 처리된 패스워드가 호출되는 경우에, 메인 서버(20)가 각 분산 처리 또는 저장된 키와 암호화 패스워드를 수집하게 되는데, 그 때 완전한 키 그리고 암호화 패스워드를 구성 또는 결합하기 위해 필요하다. Accordingly, the main server 20 must store or recognize the number or size of the selected partitions, the configuration of partitions, or the order of the partitioned keys or encryption passwords (or passwords) to each other, and the number or size of the partitions selected and the configuration of partitions Alternatively, a security measure is required, such as the order of the partitioned key or encryption password (or password) is also encrypted. The number or size of partitions used in the encryption process, the configuration of partitions, or the sequence between the partitioned keys or encrypted passwords (or passwords) are determined by the main server 20 when the encrypted distributed password is called later. Processed or stored keys and cryptographic passwords are collected, which are then needed to construct or combine the complete key and cryptographic password.

요약하면, 약속된 키 또는 암호화 패스워드는 미리 설정된 방식 중 하나에 의해 분할될 수 있다. 즉, 약속된 키 또는 암호화 패스워드는 미리 결정된 크기 또는 수로 분할될 수 있으며, 미리 결정된 크기 또는 수는 약속된 키와 암호화 패스워드에 대해 서로 다를 수 있다. 또한, 약속된 키 또는 암호화 패스워드의 분할된 구성도 미리 결정된 구성에 따라 이루어 질 수 있으며, 분할키 또는 분할 암호화 패스워드 상호 간의 순서 역시 미리 결정된 순서에 따라 결정될 수 있다. In summary, the promised key or encryption password may be partitioned by one of the preset schemes. That is, the promised key or encryption password may be divided into a predetermined size or number, and the predetermined size or number may be different for the promised key and the encryption password. In addition, the divided configuration of the promised key or the encrypted password may also be made according to a predetermined configuration, and the mutual order of the divided key or the divided encryption password may also be determined according to the predetermined sequence.

한편, 메인 서버(20)는 암호화 모듈을 이용하여 패스워드를 암호화하기 전에, 미리 설정된 다양한 방식 중 하나를 이용하여 패스워드를 분할할 수 있다. 여기서, 미리 설정된 다양한 방식은 앞서 약속된 키 또는 암호화 패스워드를 분할하는 과정과 관련하여 설명한 방식(즉, 분할 수 또는 크기, 분할 구성, 상호간의 순서 등)을 모두 포함할 수 있다. Meanwhile, before encrypting the password using the encryption module, the main server 20 may divide the password using one of various preset methods. Here, the various preset methods may include all of the methods (ie, the number or size of divisions, division configuration, mutual order, etc.) described in relation to the process of dividing the previously promised key or encryption password.

그 후, 메인 서버(20)는 약속된 키로 분할된 패스워드를 암호화 모듈을 이용하여 암호화할 수 있다. 이렇게 되면, 암호화 과정이 패스워드가 분할된 수 또는 정도만큼 수행될 수 있다. 약속된 키 역시 분할될 수 있으므로, 패스워드의 분할과 동시에 또는 그 이전, 이후에 메인 서버(20)는 미리 설정된 다양한 방식 중 하나를 이용하여 약속된 키를 분할할 수 있다. 여기서, 미리 설정된 다양한 방식은 앞서 암호화 패스워드를 분할하는 과정과 관련하여 설명한 방식을 포함할 수 있다. 이 때에도, 분할된 패스워드의 암호화가 완료되면, 메인 서버(20)에는 클라이언트 서버(10)로부터 수신된 패스워드가 더 이상 존재하지 않을 수 있다.After that, the main server 20 may encrypt the password divided by the promised key using an encryption module. In this way, the encryption process can be performed by the number or degree to which the password is divided. Since the promised key may also be divided, the main server 20 may partition the promised key simultaneously with, before, or after the division of the password using one of various preset methods. Here, various preset methods may include the method described above in relation to the process of dividing the encrypted password. Even at this time, when the encryption of the divided password is completed, the password received from the client server 10 may no longer exist in the main server 20 .

메인 서버(20)는 분할된 약속된 키(즉, 분할키)와 분할된 암호화 패스워드(즉, 분할 암호화 패스워드)를 사용자 식별정보와 함께 사용자 단말(30)과 분산 처리 서버(40)로 전송할 수 있다. 메인 서버(20)가 약속된 키를 N개로 분할, 그리고 암호화 패스워드를 M개로 분할하거나 패스워드를 M개로 분할한 후 암호화한 경우, N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나를 사용자 단말(30)로 전송하고, 나머지 분할키 및 분할 암호화 패스워드를 분산 처리 서버(40)로 전송할 수 있다.The main server 20 may transmit the divided promised key (ie, divided key) and the divided encryption password (ie, divided encryption password) to the user terminal 30 and the distributed processing server 40 together with user identification information. there is. When the main server 20 divides the promised key into N and divides the encryption password into M pieces or divides the password into M pieces and then encrypts the password, at least one of the N split keys and at least one of the M split encryption passwords It may be transmitted to the user terminal 30 , and the remaining division key and division encryption password may be transmitted to the distributed processing server 40 .

이 때, 메인 서버(20)는 키, 패스워드, 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 저장하지 않는다. 즉, 메인 서버(20)가 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 사용자 단말(30)과 분산 처리 서버(40)로 전송하고 나면, 분할키(클라이언트 서버(10)로부터 수신된 키 포함), 분할 암호화 패스워드(클라이언트 서버(10)로부터 수신된 패스워드 포함) 및 사용자 식별정보를 제거 또는 삭제 등을 하여, 메인 서버(20) 혹은 메인 서버(20) 내의 저장소 등에 패스워드, 분할키(클라이언트 서버(10)로부터 수신된 키 포함), 분할 암호화 패스워드 및 사용자 식별정보가 더 이상 존재하지 않도록 할 수 있다. 이는 메인 서버(20)에서 키, 패스워드, 분할키 또는 분할 암호화 패스워드와 같은 정보 유출의 가능성을 제거하기 위함이고, 결국엔 키 및 패스워드의 보안성이 강화되는 효과가 있다.At this time, the main server 20 does not store the key, password, division key, division encryption password and user identification information. That is, after the main server 20 transmits the split key, the split encryption password, and the user identification information to the user terminal 30 and the distributed processing server 40 , the split key (including the key received from the client server 10 ) , by removing or deleting the split encryption password (including the password received from the client server 10) and user identification information, the password, split key (client server ( 10)), split encryption passwords, and user identification information can no longer exist. This is to remove the possibility of information leakage, such as a key, password, split key, or split encryption password, from the main server 20, and eventually, the security of the key and password is strengthened.

사용자 단말(30)은 메인 서버(20)로부터 N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나, 그리고 사용자 식별정보를 수신할 수 있다. 이하, 설명의 간단함을 위해, N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나, 그리고 사용자 식별정보를 포함하는 정보 단위를 “제1 블록”으로 지칭하도록 한다. 사용자 단말(30)은 RSA(Rivest Shamir Adleman) 암호화 모듈을 이용하거나 보유할 수 있다. 이와 대응하게, 메인 서버(20)는 RSA 복호화 모듈을 이용하거나 보유할 수 있다. 메인 서버(20)와 사용자 단말(30)은 RSA 암, 복호화를 위한 RSA 키를 서로 공유할 수 있다.The user terminal 30 may receive from the main server 20 at least one of N split keys, at least one of M split encryption passwords, and user identification information. Hereinafter, for simplicity of explanation, an information unit including at least one of N split keys, at least one of M split encryption passwords, and user identification information will be referred to as a “first block”. The user terminal 30 may use or have a Rivest Shamir Adleman (RSA) encryption module. Correspondingly, the main server 20 may use or have an RSA decryption module. The main server 20 and the user terminal 30 may share an RSA encryption key and an RSA key for decryption with each other.

사용자 단말(30)은 RSA 암호화 모듈을 이용하여 수신된 제1 블록을 RSA 암호화할 수 있다. RSA 암호화가 완료되면, 사용자 단말(30)에는 메인 서버(20)로부터 수신된 제1 블록이 더 이상 존재하지 않을 수 있다. 그리고나서, 사용자 단말(30)은 RSA 암호화된 제1 블록을 로컬에 저장할 수 있다. The user terminal 30 may RSA-encrypt the received first block using the RSA encryption module. When RSA encryption is completed, the first block received from the main server 20 may no longer exist in the user terminal 30 . Then, the user terminal 30 may store the RSA-encrypted first block locally.

RSA 암호화된 제1 블록은 사용자 식별정보를 직접 포함하지 않고, 사용자 식별정보를 지시하는 방식으로 사용자 식별정보가 포함될 수 있다. 예를 들어, 제1 블록 내의 분할키와 분할 암호화 패스워드를 RSA 암호화한 파일명으로서 사용자 식별정보가 포함될 수 있다. 이 때, 파일명은 메인 서버(20)로부터 수신된 사용자 식별정보와는 다른 정보 또는 다른 값으로 할당될 수 있다. 즉, 사용자 단말(30)은 사용자 식별정보를 인코딩하는 별도의 함수를 이용하여 제1 식별정보를 생성하여, 제1 식별정보를 제1 블록에 할당할 수 있다.The RSA-encrypted first block may not include user identification information directly, but may include user identification information in a manner indicating user identification information. For example, user identification information may be included as a file name obtained by RSA-encrypting the division key and division encryption password in the first block. In this case, the file name may be assigned with information different from the user identification information received from the main server 20 or a different value. That is, the user terminal 30 may generate the first identification information using a separate function for encoding the user identification information, and allocate the first identification information to the first block.

분산 처리 서버(40)는 메인 서버(20)로부터, 사용자 단말(30)로 전송되지 않은 나머지 분할키 및 나머지 분할 암호화 패스워드를 사용자 식별정보와 함께 수신할 수 있다. 이하, 설명의 간단함을 위해, 사용자 단말(30)로 전송되지 않은 나머지 분할키, 나머지 분할 암호화 패스워드 및 사용자 식별정보를 포함하는 정보 단위를 “제2 블록”으로 지칭하도록 한다. 분산 처리 서버(40)는 제2 블록을 수신하고 상기 제2 블록을 미리 결정된 수의 서브 블록으로 분산처리하여 하나 이상의 분산 서버(50)에 저장하게 할 수 있다. 분산 처리 과정을 통해, 제2 블록은 K개의 서브 블록으로 분할될 수 있으며(여기서 K는 2이상의 정수로서, 미리 설정될 수 있는 수이다), 또는 복수 개의 미리 설정된 크기의 서브 블록으로 분할될 수 있다. 각 서브 블록은 제2 블록에 포함된 분할키의 일부분 및 제2 블록에 포함된 분할 암호화 패스워드의 일부분을 포함하도록 구성될 수 있다. 이 때, 사용자 식별정보는 각 서브 블록의 파일명으로 저장될 수 있다. 즉, 분산 처리 서버(40) 는 메인 서버(20)로부터 수신된 사용자 식별정보를 인코딩하는 별도의 함수를 이용하여 제2 식별정보를 생성하여, 제2 식별정보를 제2 블록 또는 각 서브 블록에 할당할 수 있다. 각 서브 블록에 할당되는 제2 식별정보는 서로 다른 독립된 값을 가질 수 있다. 제2 식별정보와 사용자 식별정보 간의 연관관계에 대해서는, 분산 처리 서버(40)가 인식 또는 식별할 수 있도록 구성된다. 분산 처리가 되면, 분산 처리 서버(40)에는 메인 서버(20)로부터 수신된 제2 블록을 제거 또는 삭제 등을 하여, 제2 블록이 더 이상 존재하지 않도록 할 수 있다.The distributed processing server 40 may receive, from the main server 20 , the remaining division key and the remaining division encryption password that are not transmitted to the user terminal 30 together with user identification information. Hereinafter, for simplicity of explanation, an information unit including the remaining division key that is not transmitted to the user terminal 30, the remaining division encryption password, and user identification information will be referred to as a “second block”. The distributed processing server 40 receives the second block and sends the second block to a predetermined number of sub It can be stored in one or more distributed servers 50 by distributing processing in blocks. Through the distributed processing process, the second block can be divided into K sub-blocks (where K is an integer greater than or equal to 2, which is a preset number), or can be divided into a plurality of sub-blocks of preset sizes. there is. Each sub-block may be configured to include a part of the split key included in the second block and a part of the split encryption password included in the second block. In this case, the user identification information may be stored as a file name of each sub-block. That is, the distributed processing server 40 generates the second identification information using a separate function for encoding the user identification information received from the main server 20, and applies the second identification information to the second block or each sub-block. can be assigned The second identification information allocated to each sub-block may have different independent values. For the correlation between the second identification information and the user identification information, the distributed processing server 40 is configured to recognize or identify. When distributed processing is performed, the distributed processing server 40 may remove or delete the second block received from the main server 20 so that the second block no longer exists.

또한, 분산 처리를 위해 분산 처리 서버(40) 또는 분산 서버(50)는 하둡(Hadoop) 시스템을 이용할 수 있다. In addition, for distributed processing, the distributed processing server 40 or the distributed server 50 may use a Hadoop system.

앞서 설명한 대로, 키와 암호화 패스워드는 사용자 단말(30)과 분산 서버(50)에 분할되어 저장된다. 이에 따라 사용자 단말(30)과 분산 서버(50) 전부에서 해당 사용자의 분할키 및 분할 암호화 패스워드를 획득해야, 사용자의 완전한 키와 암호화 패스워드를 획득할 수 있다. 또한, 모든 분할키와 분할 암호화 패스워드를 획득하더라도, 전술한 다양한 분할 크기(수), 분할 구성, 분할키 또는 분할 암호화 패스워드의 상호간의 순서에 따라, 완전한 키와 암호화 패스워드를 재구성하는 것은 분할과 관련된 정보 없이는 불가능하다. 또한, 암호화 패스워드를 복호화하기 위한 복호화 모듈은 클라이언트 서버(10)에게만 있기 때문에, 클라이언트 서버(10)가 완전한 키와 암호화 패스워드를 가지고 있는 경우에만 복호화가 가능하다. 따라서, 클라이언트 서버(10)외의 다른 주체들은 완전한 키와 암호화 패스워드를 획득하여도, 복호화가 불가능하다. 따라서, 본 발명에 따르면 키의 패스워드와 관련하여 견고한 보안 체계를 구축할 수 있는 효과가 있다. As described above, the key and the encrypted password are divided and stored in the user terminal 30 and the distributed server 50 . Accordingly, both the user terminal 30 and the distributed server 50 must acquire the user's split key and split encryption password to obtain the user's complete key and encrypted password. In addition, even when all division keys and division encryption passwords are obtained, reconstructing the complete key and encryption password according to the above-described various division sizes (number), division configuration, and mutual order of division keys or division encryption passwords is related to division. Without information it is impossible. In addition, since the decryption module for decrypting the encrypted password exists only in the client server 10, decryption is possible only when the client server 10 has the complete key and the encrypted password. Therefore, even if subjects other than the client server 10 obtain the complete key and encryption password, decryption is impossible. Therefore, according to the present invention, there is an effect that a strong security system can be built in relation to the password of the key.

본 발명에 따른 복호화 과정에 대해서 설명하도록 한다. A decoding process according to the present invention will be described.

복호화 과정은 사용자의 패스워드 호출에 따라 개시될 수 있다. The decryption process may be initiated according to the user's password call.

클라이언트 서버(10)는 사용자의 패스워드 호출을 검출할 수 있다. 클라이언트 서버(10)는 암호화 과정에서 수신했던 키와 패스워드 및 사용자 식별정보를 모두 삭제했으므로, 더 이상 패스워드를 가지고 있지 않다. 이에, 클라이언트 서버(10)는 암호화 패스워드의 전달 요청을 메인 서버(20)에게 전송할 수 있다. 전달 요청에는 사용자 식별정보가 포함될 수 있고, 이에 누구를 위한 암호화 패스워드의 전달인지가 식별가능하다. The client server 10 may detect the user's password call. Since the client server 10 has deleted all of the key, password, and user identification information received in the encryption process, it no longer has the password. Accordingly, the client server 10 may transmit a transmission request of the encrypted password to the main server 20 . The transmission request may include user identification information, so that it is possible to identify whom the encrypted password is being transmitted for.

메인 서버(20)는 암호화 패스워드의 전달 요청을 수신할 수 있다. 메인 서버(20)는 암호화 과정에서 수신했던 키와 패스워드 및 사용자 식별정보, 또는 분할키와 분할 암호화 패스워드를 더 가지고 있지 않다. 이에, 메인 서버(20)는 사용자 단말(30)과 분산 처리 서버(40)에게 암호화 패스워드의 전달 요청을 전송할 수 있다. The main server 20 may receive the transmission request of the encrypted password. The main server 20 does not further have the key and password and user identification information received in the encryption process, or the split key and the split encryption password. Accordingly, the main server 20 may transmit a request for transmission of the encrypted password to the user terminal 30 and the distributed processing server 40 .

사용자 단말(30)은 수신된 암호화 패스워드의 전달 요청에 따라, 로컬에 저장하고 있던 RSA 암호화된 제1 블록을 메인 서버(20)로 전송할 수 있다. 이 때, 사용자 단말(30)은 RSA 암호화된 제1 블록에서 사용자 식별정보를 추출할 수 있으며, 메인 서버(20)로 RSA 암호화된 제1 블록을 전송할 때, 추출된 사용자 식별정보를 함께 전송할 수 있다. 또한, 사용자 단말(30)은 RSA 암호화된 제1 블록을 메인 서버(20)로 전송하고 난 후에, RSA 암호화된 제1 블록을 제거 또는 삭제 등을 하여, 사용자 단말(30) 또는 사용자 단말(30) 내의 저장소 등에 RSA 암호화된 제1 블록이 더 이상 존재하지 않도록 할 수 있다.The user terminal 30 may transmit the locally stored RSA-encrypted first block to the main server 20 according to the received encryption password transmission request. At this time, the user terminal 30 may extract user identification information from the RSA-encrypted first block, and when transmitting the RSA-encrypted first block to the main server 20, the extracted user identification information may be transmitted together. there is. In addition, after transmitting the RSA-encrypted first block to the main server 20, the user terminal 30 removes or deletes the RSA-encrypted first block, and the user terminal 30 or the user terminal 30 ) in the storage, etc., the RSA-encrypted first block may no longer exist.

분산 처리 서버(40)는 수신된 암호화 패스워드의 전달 요청에 따라, 하나 이상의 분산 서버(50)로 암호화 패스워드의 전달 요청을 전송할 수 있다. 이에 대응하여, 각 분산 서버(50)는 제2 블록의 서브 블록을 분산 처리 서버(40)로 전송할 수 있다. 그리고, 분산 처리 서버(40)는 회수한 제2 블록의 서브 블록을 결합하여 제2 블록을 다시 획득할 수 있고, 제2 블록을 메인 서버(20)로 전송할 수 있다. 이 때, 분산 처리 서버(40)는 제2 블록 또는 각 서브 블록에서 제2 식별정보에 기초하여 사용자 식별정보를 추출할 수 있으며, 메인 서버(20)로 제2 블록을 전송할 때, 추출된 사용자 식별정보를 함께 전송할 수 있다. 또한, 분산 처리 서버(40) 또는 각 분산 서버(50)는 제2 블록 또는 각 서브 블록을 전송하고 난 후에, 제2 블록 또는 각 서브 블록을 제거 또는 삭제 등을 하여 분산 처리 서버(40)와 각 분산 서버(50)에는 제2 블록 또는 각 서브 블록이 더 이상 존재하지 않도록 할 수 있다.The distributed processing server 40 may transmit an encryption password transmission request to one or more distributed servers 50 according to the received encryption password transmission request. Correspondingly, each distributed server 50 may transmit a sub-block of the second block to the distributed processing server 40 . Then, the distributed processing server 40 may obtain the second block again by combining the sub-blocks of the recovered second block, and may transmit the second block to the main server 20 . At this time, the distributed processing server 40 may extract user identification information based on the second identification information from the second block or each sub-block, and when transmitting the second block to the main server 20 , the extracted user Identification information can be transmitted together. In addition, after transmitting the second block or each sub-block, the distributed processing server 40 or each distributed server 50 removes or deletes the second block or each sub-block to communicate with the distributed processing server 40 The second block or each sub-block may no longer exist in each distributed server 50 .

또한, 메인 서버(20)는 사용자 단말(30)로부터 수신한 사용자 식별정보를 통해 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 일치하는지를 확인할 수 있다. 또한, 메인 서버(20)는 분산 처리 서버(40)로부터 수신한 사용자 식별정보를 통해 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 일치하는지를 확인할 수 있다. 당연하게도, 사용자 단말(30) 및 분산 처리 서버(40)로부터 수신된 사용자 식별정보가 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 동일함이 확인되어야, 후술하는 과정이 계속될 수 있다.Also, the main server 20 may check whether the user identification information included in the delivery request from the client server 10 matches the user identification information received from the user terminal 30 . Also, the main server 20 may check whether the user identification information included in the delivery request from the client server 10 matches the user identification information received from the distributed processing server 40 . Naturally, it must be confirmed that the user identification information received from the user terminal 30 and the distributed processing server 40 is the same as the user identification information included in the delivery request from the client server 10, so that the process to be described later will continue. can

메인 서버(20)는 사용자 단말(30)로부터 수신한 RSA 암호화된 제1 블록을 RSA 복호화 모듈을 이용하여 복호화할 수 있다. 이로써, 메인 서버(20)에서 제1 블록이 획득될 수 있다. RSA 암호화된 제1 블록의 복호화가 완료되면, 메인 서버(20)에는 더 이상 RSA 암호화된 제1 블록이 존재하지 않을 수 있다.The main server 20 may decrypt the RSA-encrypted first block received from the user terminal 30 using the RSA decryption module. Accordingly, the first block may be obtained from the main server 20 . When the decryption of the RSA-encrypted first block is completed, the RSA-encrypted first block may no longer exist in the main server 20 .

그 후, 메인 서버(20)는 제1 블록과 분산 처리 서버(40)로부터 수신된 제2 블록을 서로 결합할 수 있다. 제1 블록에는 적어도 하나의 분할키 및 적어도 하나의 분할 암호화 패스워드가 포함되어 있고, 제2 블록에는 나머지 분할키 및 나머지 분할 암호화 패스워드가 포함되어 있다. 다만, 앞서 상술한 바와 같이, 메인 서버(20)가 암호화 과정에서 제1 블록과 제2 블록을 다양한 방식 중 하나를 이용하여 분할하였으므로, 메인 서버(20)는 분할했던 방식을 이용하여 제1 블록과 제2 블록, 좀더 상세하게는 제1 블록에 포함된 분할키와 제2 블록에 포함된 분할키를 결합하고, 제1 블록에 포함된 분할 암호화 패스워드와 제2 블록에 포함된 분할 암호화 패스워드를 결합할 수 있다. 이에 따라, 메인 서버(20)에서 온전한 키와 암호화 패스워드가 획득된다. 그렇다 하여도, 메인 서버(20)는 암호화 모듈이 없으므로, 암호화 패스워드를 복호화할 수는 없다. 메인 서버(20)는 획득한 키와 암호화 패스워드를 클라이언트 서버(10)로 전송할 수 있다. 또한, 메인 서버(20)가 획득한 키와 암호화 패스워드를 클라이언트 서버(10)로 전송하고 난 후에는, 메인 서버(20)에는 키, 암호화 패스워드 그리고 제1 블록, 제2 블록은 더 이상 존재하지 않는다. 즉, 메인 서버(20)는 키와 암호화 패스워드 등을 제거하거나 삭제할 수 있다.Thereafter, the main server 20 may combine the first block and the second block received from the distributed processing server 40 with each other. The first block includes at least one partition key and at least one partition encryption password, and the second block includes the remaining partition key and the remainder partition encryption password. However, as described above, since the main server 20 divided the first block and the second block using one of various methods in the encryption process, the main server 20 uses the divided method to divide the first block. and the second block, more specifically, combining the partitioning key included in the first block and the partitioning key included in the second block, and generating the partitioned encryption password included in the first block and the partitioned encryption password included in the second block. can be combined Accordingly, the complete key and encryption password are obtained from the main server 20 . Even so, since the main server 20 does not have an encryption module, it cannot decrypt the encrypted password. The main server 20 may transmit the obtained key and encryption password to the client server 10 . In addition, after the main server 20 transmits the acquired key and the encrypted password to the client server 10, the key, the encrypted password, and the first block and the second block no longer exist in the main server 20. does not That is, the main server 20 may remove or delete the key and the encryption password.

클라이언트 서버(10)는 수신된 키를 이용하여 수신된 암호화 패스워드를 복호화할 수 있다. 이에 따라, 클라이언트 서버(10)에서 패스워드가 획득되며, 클라이언트 서버(10)는 사용자에게 패스워드를 반환할 수 있다. 또한, 클라이언트 서버(10)는 사용자에게 패스워드를 반환한 후에, 메인 서버(20)로부터 수신된 키와 암호화 패스워드를 삭제할 수 있다.The client server 10 may decrypt the received encrypted password using the received key. Accordingly, a password is obtained from the client server 10 , and the client server 10 may return the password to the user. Also, after returning the password to the user, the client server 10 may delete the key and the encryption password received from the main server 20 .

도 2는 본 발명에 따른 암호화 분산 처리에 관련된 암호화 과정에 대한 순서도를 도시한다. 도 2에 도시된 과정은 메인 서버(20)에 의해 수행될 수 있다.2 is a flowchart of an encryption process related to encryption distribution processing according to the present invention. The process shown in FIG. 2 may be performed by the main server 20 .

메인 서버(20)는 키, 패스워드, 사용자 식별정보를 클라이언트 서버(10)로부터 수신할 수 있다(S210). 이 단계는 사용자의 패스워드 저장 시도에 따라 개시될 수 있다. The main server 20 may receive the key, password, and user identification information from the client server 10 (S210). This step may be initiated upon the user's attempt to store the password.

메인 서버(20)는 수신된 키를 이용하여 패스워드를 암호화하는데(S220), 이때 암호화 모듈을 이용할 수 있다. 앞서 설명한 것처럼, 암호화 모듈은 클라이언트 서버(10)가 보유하거나 이용하는 복호화 모듈과 대응하는 것으로서, 암호화 모듈은 키를 이용하여 패스워드를 암호화할 수 있고, 복호화 모듈은 암호화 패스워드를 복호화할 수 있다. 암호화의 결과 암호화 패스워드가 획득될 수 있다.The main server 20 encrypts the password using the received key (S220), in which case an encryption module may be used. As described above, the encryption module corresponds to the decryption module possessed or used by the client server 10, and the encryption module may encrypt the password using the key, and the decryption module may decrypt the encrypted password. An encryption password may be obtained as a result of encryption.

메인 서버(20)는 키와 암호화 패스워드 각각을 분할할 수 있다(S230). 분할의 방식은 앞서 설명한 다양한 분할 방식 중 하나를 이용할 수 있다. 키의 분할 및 암호화 패스워드의 분할을 통해 복수의 분할키 및 복수의 분할 암호화 패스워드가 획득될 수 있다.The main server 20 may divide each of the key and the encryption password (S230). As the partitioning method, one of the various partitioning methods described above may be used. A plurality of split keys and a plurality of split encryption passwords can be obtained through the splitting of the key and the splitting of the encryption password.

메인 서버(20)는 분할키와 분할 암호화 패스워드 중 일부는 사용자 단말(30)로 전송할 수 있고, 나머지는 분산 처리 서버(40)로 전송할 수 있다(S240).The main server 20 may transmit some of the split key and the split encryption password to the user terminal 30 and the rest to the distributed processing server 40 (S240).

사용자 단말(30)로 전송된 일부 분할키와 일부 분할 암호화 패스워드(이하, “제1 블록”)는 사용자 단말(30)에서 RSA 암호화후 저장되며, 분산 처리 서버(40)로 전송된 나머지 분할키와 분할 암호화 패스워드(이하, “제2 블록”)는 분산 처리 서버(40)에서 분산처리된 후 하나 이상의 분산 서버(50)에 저장될 수 있다. The partial split key and part split encryption password (hereinafter, “first block”) transmitted to the user terminal 30 are stored after RSA encryption in the user terminal 30 , and the remaining split keys transmitted to the distributed processing server 40 . and the split encryption password (hereinafter, “second block”) may be stored in one or more distributed servers 50 after being distributed in the distributed processing server 40 .

이를 통해, 암호화 분산 처리 시스템(1)은 키 그리고 패스워드를 안전하게 암호화한 후 분산하여 저장할 수 있다. Through this, the encryption distributed processing system 1 can safely encrypt the key and password and then distribute and store the encrypted key and password.

다음의 표는 사용자 단말(30)에서 제1 블록이 RSA 암호화되어 저장된 상태를 예시한다.The following table illustrates a state in which the first block is RSA-encrypted and stored in the user terminal 30 .

평문plain text {
KEY:abcdefghi,
PASSWORD:abcdefghi
}
{
KEY:abcdefghi,
PASSWORD:abcdefghi
}
RSARSA 10011001 1010100 10101 10101010 1010101 101010 010110 101010 01011 010101 0101010011001 1010100 10101 10101010 1010101 101010 010110 101010 01011 010101 01010

아울러, 사용자 단말(30)은 로컬에 제1 블록은 다음과 같이 저장될 수 있다. 여기서, 사용자 식별정보는 test@tes.com이다.In addition, the user terminal 30 may locally store the first block as follows. Here, the user identification information is test@tes.com .

IDX: test@tes.comIDX: test@tes.com 10011001 1010100 10101 10101010 1010101 101010 010110 101010 01011 010101 0101010011001 1010100 10101 10101010 1010101 101010 010110 101010 01011 010101 01010

도 2를 참조하여 설명되지 않은 암호화 과정에 대해서는 도 1을 참조하여 설명한 설명을 참조하도록 한다. For an encryption process not described with reference to FIG. 2 , reference will be made to the description described with reference to FIG. 1 .

도 3은 본 발명에 따른 암호화 분산 처리에 관련된 복호화 과정에 대한 순서도를 도시한다. 도 3에 도시된 과정은 메인 서버(20)에 의해 수행될 수 있다.3 is a flowchart showing a decryption process related to encryption distributed processing according to the present invention. The process shown in FIG. 3 may be performed by the main server 20 .

메인 서버(20)는 클라이언트 서버(10)로부터 암호화 패스워드 전달 요청을 수신할 수 있다(S310). 이 단계는 사용자의 패스워드 호출 시도에 따라 개시될 수 있다.The main server 20 may receive an encrypted password transmission request from the client server 10 (S310). This step may be initiated according to the user's password recall attempt.

메인 서버(20)는 수신된 암호화 패스워드 전달 요청에 대응하여, 사용자 단말(30)과 분산 처리 서버(40)로 암호화 패스워드 전달 요청을 전송할 수 있다(S320). The main server 20 may transmit an encrypted password transmission request to the user terminal 30 and the distributed processing server 40 in response to the received encrypted password transmission request (S320).

메인 서버(20)는 암호화 패스워드 전달 요청에 대응하여, 사용자 단말(30) 및 분산 처리 서버(40)로부터 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 포함한 블록을 수신할 수 있다(S330).The main server 20 may receive a block including a split key, a split encryption password, and user identification information from the user terminal 30 and the distributed processing server 40 in response to the encrypted password transmission request (S330).

그 후, 메인 서버(20)는 수신된 암호화 블록을 처리하고, 처리된 암호화 블록에서 분할키들을 서로 결합하고, 분할 암호화 패스워드를 서로 결합하여, 키 및 암호화 패스워드를 획득할 수 있다(S340). 좀더 상세하게는, 메인 서버(20)는 사용자 단말(30)로부터 수신된 RSA 암호화 분할키 및 RSA 분할 암호화 패스워드로 구성된 RSA 암호화 제1 블록에 대해 RSA 복호화를 수행하여, 일부 분할키 및 일부 분할 암호화 패스워드로 구성된 제1 블록을 획득할 수 있다. 그리고 나서, 메인 서버(20)는 제1 블록의 일부 분할키 및 일부 분할 암호화 패스워드와, 분산 처리 서버(40)로부터 수신된 나머지 분할키 및 나머지 분할 암호화 패스워드, 즉 제2 블록을 결합하여, 키 및 암호화 패스워드를 획득할 수 있다. 분할키들의 결합, 그리고 분할 암호화 패스워드의 결합은 앞서 설명한 분할 방식에 대응하여 수행되어야 한다. After that, the main server 20 may process the received encryption block, combine the split keys in the processed encryption block with each other, and combine the split encryption password with each other to obtain a key and an encryption password (S340). In more detail, the main server 20 performs RSA decryption on the RSA encryption first block composed of the RSA encryption division key and the RSA division encryption password received from the user terminal 30, and performs RSA decryption with a partial key and partial division encryption. A first block composed of a password can be obtained. Then, the main server 20 combines the partial key and partial encryption password of the first block with the remaining division key and the remaining division encryption password received from the distributed processing server 40, that is, the second block, and an encryption password. The combination of the partition keys and the combination of the partition encryption password should be performed corresponding to the partitioning method described above.

메인 서버(20)는 획득된 키 및 암호화 패스워드를 클라이언트 서버(10)로 전송할 수 있다(S350). 클라이언트 서버(10)로 전송된 암호화 패스워드는 함께 전송된 키를 이용하여 복호화될 수 있다. 이를 통해, 클라이언트 서버(10)는 패스워드를 획득할 수 있고, 사용자에게 반환할 수 있다.The main server 20 may transmit the obtained key and encryption password to the client server 10 (S350). The encrypted password transmitted to the client server 10 may be decrypted using the transmitted key. Through this, the client server 10 may obtain the password and return it to the user.

도 3을 참조하여 설명되지 않은 복호화 과정에 대해서는 도 1을 참조하여 설명한 설명을 참조하도록 한다. For a decoding process not described with reference to FIG. 3 , reference will be made to the description described with reference to FIG. 1 .

이상의 명세서에서, “시스템”과 그에 속한 구성들(클라이언트 서버(10), 메인 서버(20), 사용자 단말(30), 분산 처리 서버(40), 분산 서버(50) 등)이 해당 방법 또는 절차 등을 수행하는 것으로 설명하였으나, "시스템"과 그에 속한 구성들은 명칭일 뿐 권리범위가 그에 종속되는 것은 아니다. 즉, 시스템 외에도 장치 등으로서도 해당 방법 또는 절차가 수행될 수 있으며, 그뿐만 아니라 분산 암호화 처리를 위한 소프트웨어 또는 컴퓨터 또는 그 밖의 기계, 장치 등으로 판독가능한 코드에 의해 상기 방법 또는 방식이 수행될 수 있다. In the above specification, the "system" and its components (client server 10, main server 20, user terminal 30, distributed processing server 40, distributed server 50, etc.) refer to the method or procedure Although it has been described as performing, etc., the "system" and components belonging thereto are only names, and the scope of rights is not subordinated thereto. That is, the method or procedure may be performed not only as a system but also as an apparatus, and the method or method may be performed by software for distributed encryption processing or a code readable by a computer or other machine, apparatus, etc. .

아울러, 본 발명의 또다른 양태(aspect)로서, 앞서 설명한 제안 또는 발명의 동작이 "컴퓨터"(시스템 온 칩(system on chip; SoC) 또는 (마이크로) 프로세서 등을 포함하는 포괄적인 개념)에 의해 구현, 실시 또는 실행될 수 있는 코드 또는 상기 코드를 저장 또는 포함한 컴퓨터-판독가능한 저장 매체 또는 컴퓨터 프로그램 제품(product) 등으로도 제공될 수 있고, 본 발명의 권리범위가 상기 코드 또는 상기 코드를 저장 또는 포함한 컴퓨터-판독가능한 저장 매체 또는 컴퓨터 프로그램 제품으로 확장가능하다. In addition, as another aspect of the present invention, the above-described proposal or operation of the invention is performed by a "computer" (a comprehensive concept including a system on chip (SoC) or (micro) processor, etc.) Code that can be implemented, implemented or executed, or a computer-readable storage medium storing or including the code, or a computer program product, etc. a computer-readable storage medium including a computer program product or a computer program product.

상술한 바와 같이 개시된 본 발명의 바람직한 실시예들에 대한 상세한 설명은 당업자가 본 발명을 구현하고 실시할 수 있도록 제공되었다. 상기에서는 본 발명의 바람직한 실시예들을 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명은 여기에 나타난 실시형태들에 제한되려는 것이 아니라, 여기서 개시된 원리들 및 신규한 특징들과 일치하는 최광의 범위를 부여하려는 것이다.The detailed description of the preferred embodiments of the present invention disclosed as described above is provided to enable any person skilled in the art to make and practice the present invention. Although the above has been described with reference to preferred embodiments of the present invention, it will be understood by those skilled in the art that various modifications and changes can be made to the present invention described in the claims below. Accordingly, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (14)

암호화 분산 처리 시스템에 있어서,
키(key)를 생성하고, 생성된 키와 패스워드(password), 그리고 사용자 식별정보를 메인 서버로 전송하고, 상기 키와 패스워드를 상기 메인 서버로 전송하고 나면, 상기 키 및 상기 패스워드를 삭제하는 클라이언트 서버;
상기 클라이언트 서버로부터 상기 키와 상기 패스워드, 그리고 상기 사용자 식별정보를 수신하고, 암호화 모듈을 이용하여 상기 수신된 키로 상기 패스워드를 암호화하며, 상기 키와 암호화된 패스워드 각각을 미리 설정된 분할 방식 중 하나를 이용하되, 상기 키를 분할하기 위한 방식과 상기 패스워드를 분할하기 위한 방식은 서로 다른 방식을 이용하여 적어도 둘로 분할하여, 적어도 하나의 분할키, 적어도 하나의 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제1 블록을 사용자 단말로 전달하고, 나머지 분할키, 나머지 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제2 블록을 분산 처리 서버로 전송하고, 상기 제1 블록 및 상기 제2 블록을 전송하고 나면, 상기 분할키 및 분할 암호화 패스워드를 제거하는 메인 서버;
상기 메인 서버로부터 상기 제1 블록을 수신하고, 상기 제1 블록에 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제1 식별정보를 할당하고, 상기 제1 블록에 포함된 분할키 및 분할 암호화 패스워드를 RSA(Rivest Shamir Adleman) 암호화한 후 저장하는 사용자 단말; 및
상기 메인 서버로부터 상기 제2 블록을 수신하고, 상기 제2 블록에 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 상기 제1 식별정보와 상이한 제2 식별정보를 할당하고, 상기 제2 블록에 포함된 분할키 및 분할 암호화 패스워드 각각을 미리 결정된 수 또는 미리 결정된 크기로 분할하고, 상기 분할된 분할키 및 분할 암호화 패스워드를 미리 결정된 수의 서브 블록으로 분산처리하여 하나 이상의 분산 서버에 저장하게 하는 분산 처리 서버를 포함하고,
상기 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정을 포함하고,
상기 미리 설정된 분할 방식에 따라 상기 사용자 단말 및 상기 분산 처리 서버로 전달된 분할키 및 분할 암호화 패스워드가 결정되고,
상기 미리 결정된 수의 서브 블록은 서로 다른 독립된 값의 식별정보를 할당받는, 시스템.
In the cryptographic distributed processing system,
A client that generates a key, transmits the generated key and password, and user identification information to the main server, and deletes the key and password after transmitting the key and password to the main server server;
Receives the key, the password, and the user identification information from the client server, encrypts the password with the received key using an encryption module, and divides each of the key and the encrypted password using one of a preset partitioning method However, the method for dividing the key and the method for dividing the password are divided into at least two using different methods, and the method includes at least one division key, at least one division encryption password, and the user identification information. After transmitting 1 block to the user terminal, transmitting the second block including the remaining division key, the remaining division encryption password and the user identification information to the distributed processing server, and transmitting the first block and the second block, a main server for removing the division key and division encryption password;
Receives the first block from the main server, assigns first identification information based on the user identification information to the first block using a predetermined function, and a division key and division encryption password included in the first block RSA (Rivest Shamir Adleman) encryption and then storing the user terminal; and
Receive the second block from the main server, assign second identification information different from the first identification information based on the user identification information to the second block using a predetermined function, and include in the second block Each of the divided key and division encryption password is divided into a predetermined number or a predetermined size, and the divided division key and division encryption password are divided into a predetermined number of subs. It includes a distributed processing server that distributes processing in blocks and stores them in one or more distributed servers,
The preset partitioning method includes setting at least one of the number or size of partitions, a configuration of partitions, and an order between a partitioned key and an encryption password,
The division key and division encryption password transmitted to the user terminal and the distributed processing server are determined according to the preset division method,
The system, wherein the predetermined number of sub-blocks are assigned different independent values of identification information.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 암호화 분산 처리 시스템에 있어서,
사용자 식별정보를 포함하는, 암호화 패스워드의 전달 요청을 전송하는 클라이언트 서버;
상기 클라이언트 서버로부터 상기 암호화 패스워드의 전달 요청을 수신하여, 사용자 단말 및 복수의 분산 서버 또는 상기 복수의 분산 서버를 관리하는 분산 처리 서버로 암호화 패스워드의 전달 요청을 전송하는 메인 서버;
상기 암호화 패스워드의 전달 요청에 따라, 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제1 식별정보가 할당된, RSA 암호화된 제1 분할키 및 제1 분할 암호화 패스워드를 포함한 제1 블록을 상기 메인 서버로 전송하고, 상기 제1 블록을 전송하고 나면 상기 제1 블록을 삭제하는 사용자 단말;
상기 암호화 패스워드의 전달 요청에 따라, 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 상기 제1 식별정보와 상이한 제2 식별정보가 할당된, 상기 복수의 분산 서버에 분산 처리된 제2 분할키 및 제2 분할 암호화 패스워드를 포함한 제2 블록의 미리 결정된 수의 서브 블록을 회수한 후 결합하여 제2 블록을 획득하고, 획득된 제2 블록을 상기 메인 서버로 전송하고, 상기 제2 블록을 전송하고 나면 상기 제2 블록을 삭제하는 분산 처리 서버를 포함하고,
여기서, 상기 제1 분할키와 상기 제2 분할키는 미리 설정된 분할 방식 중 제1 미리 설정된 분할 방식을 이용하여 키를 분할하여 획득되며, 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드는 상기 미리 설정된 분할 방식 중 제2 미리 설정된 분할 방식을 이용하여 패스워드를 분할하여 획득되며, 상기 제1 미리 설정된 분할 방식과 상기 제2 미리 설정된 분할 방식은 서로 다른 방식이고,
상기 메인 서버는:
상기 RSA 암호화된 제1 블록을 RSA 복호화하여 제1 분할키 및 제1 분할 암호화 패스워드를 획득하고, 상기 제1 미리 설정된 분할 방식에 기초하여 상기 제1 분할키 및 상기 제2 분할키를 결합하고, 상기 제2 미리 설정된 분할 방식에 기초하여 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드를 결합하여, 키와 암호화 패스워드를 획득하고, 상기 획득된 키와 상기 획득된 암호화 패스워드를 상기 클라이언트 서버로 전송하고 상기 획득된 키와 상기 획득된 암호화 패스워드를 전송하고 나면 상기 획득된 키와 상기 획득된 암호화 패스워드를 삭제하며,
상기 클라이언트 서버는 복호화 모듈을 이용하여 상기 획득된 키로 상기 획득된 암호화 패스워드를 복호화하고,
상기 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정을 포함하고,
상기 미리 설정된 분할 방식에 따라 상기 사용자 단말 및 상기 분산 처리 서버로 전달된 분할키 및 분할 암호화 패스워드가 결정되고,
상기 미리 결정된 수의 서브 블록은 서로 다른 독립된 값의 식별정보를 할당받는, 시스템.
In the cryptographic distributed processing system,
a client server that transmits a request for transmission of an encrypted password, including user identification information;
a main server that receives the transmission request of the encrypted password from the client server and transmits the transmission request of the encrypted password to a user terminal and a plurality of distributed servers or a distributed processing server managing the plurality of distributed servers;
In response to the request for transmission of the encrypted password, a first block including the RSA-encrypted first division key and the first division encryption password to which the first identification information based on the user identification information is allocated using a predetermined function is transferred to the main block a user terminal that transmits to a server and deletes the first block after transmitting the first block;
A second split key distributed and processed in the plurality of distributed servers to which second identification information different from the first identification information based on the user identification information is allocated using a predetermined function in response to a request for transmission of the encrypted password; and After recovering a predetermined number of sub-blocks of the second block including the second division encryption password, combining them to obtain a second block, transmitting the obtained second block to the main server, and transmitting the second block; After including a distributed processing server that deletes the second block,
Here, the first division key and the second division key are obtained by dividing a key using a first division method among preset division methods, and the first division encryption password and the second division encryption password are the The password is obtained by dividing the password by using a second preset partitioning method among the preset partitioning methods, wherein the first preset partitioning method and the second preset partitioning method are different from each other;
The main server is:
RSA-decrypts the RSA-encrypted first block to obtain a first division key and a first division encryption password, and combines the first division key and the second division key based on the first preset division method; By combining the first divided encryption password and the second divided encryption password based on the second preset division method, a key and an encryption password are obtained, and the obtained key and the obtained encryption password are transmitted to the client server. After transmitting and transmitting the obtained key and the obtained encrypted password, the obtained key and the obtained encrypted password are deleted;
The client server decrypts the obtained encrypted password with the obtained key using a decryption module,
The preset partitioning method includes setting at least one of the number or size of partitions, a configuration of partitions, and an order between the partitioned key and the encryption password,
The division key and division encryption password transmitted to the user terminal and the distributed processing server are determined according to the preset division method,
The system, wherein the predetermined number of sub-blocks are assigned different independent values of identification information.
암호화 분산 처리 방법에 있어서,
키(key)를 생성하고, 생성된 키와 패스워드(password), 그리고 사용자 식별정보를 수신하는 단계;
암호화 모듈을 이용하여 상기 수신된 키로 상기 패스워드를 암호화하며, 상기 키와 상기 암호화된 패스워드 각각을, 미리 설정된 분할 방식 중 하나를 이용하되 상기 키를 분할하기 위한 방식과 상기 패스워드를 분할하기 위한 방식은 서로 다른 방식을 이용하여, 적어도 둘로 분할하는 단계; 및
제1 분할키, 제1 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제1 블록을 사용자 단말로 전송하고, 나머지 분할키, 나머지 분할 암호화 패스워드 및 상기 사용자 식별정보를 포함하는 제2 블록을 분산 처리 서버로 전송하고, 상기 제1 블록 및 상기 제2 블록을 전송하고 나면, 상기 분할키 및 상기 암호화 패스워드를 삭제하는 단계를 포함하고,
상기 제1 블록은 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제1 식별정보를 할당받고, 상기 제1 블록에 포함된 제1 분할키 및 제1 분할 암호화 패스워드는 RSA(Rivest Shamir Adleman) 암호화된 후 상기 사용자 단말에 저장되며,
상기 제2 블록은 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제1 식별정보와 상이한 제2 식별정보를 할당받고, 상기 제2 블록에 포함된 나머지 분할키 및 나머지 분할 암호화 패스워드 각각은 미리 결정된 수 또는 미리 결정된 크기로 분할된 후, 상기 분할된 분할키 및 분할 암호화 패스워드를 미리 결정된 수의 서브 블록으로 분산처리되어 상기 분산 처리 서버가 관리하는 하나 이상의 분산 서버에 저장되고,
상기 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정을 포함하고,
상기 미리 설정된 분할 방식에 따라 상기 사용자 단말 및 상기 분산 처리 서버로 전달된 분할키 및 분할 암호화 패스워드가 결정되고,
상기 미리 결정된 수의 서브 블록은 서로 다른 독립된 값의 식별정보를 할당받는, 방법.
In the encryption distributed processing method,
generating a key, receiving the generated key and password, and user identification information;
encrypting the password with the received key using an encryption module, and using one of the preset division methods for each of the key and the encrypted password, a method for dividing the key and a method for dividing the password dividing into at least two using different methods; and
The first block including the first division key, the first division encryption password, and the user identification information is transmitted to the user terminal, and the second block including the remaining division key, the remaining division encryption password and the user identification information is distributed processing transmitting to a server, and after transmitting the first block and the second block, deleting the partition key and the encryption password;
The first block is allocated first identification information based on the user identification information using a predetermined function, and the first division key and the first division encryption password included in the first block are RSA (Rivest Shamir Adleman) encryption After being stored in the user terminal,
The second block is allocated second identification information different from the first identification information based on the user identification information using a predetermined function, and each of the remaining division keys and the remaining division encryption passwords included in the second block is determined in advance. After being divided into a number or a predetermined size, the divided division key and division encryption password are divided into a predetermined number of subs. It is distributed in blocks and stored in one or more distributed servers managed by the distributed processing server,
The preset partitioning method includes setting at least one of the number or size of partitions, a configuration of partitions, and an order between the partitioned key and the encryption password,
The division key and division encryption password transmitted to the user terminal and the distributed processing server are determined according to the preset division method,
The method, wherein the predetermined number of sub-blocks are allocated identification information of different independent values.
암호화 분산 처리 방법에 있어서,
사용자 식별정보를 포함하는 클라이언트 서버로부터 암호화 패스워드의 전달 요청을 수신하는 단계;
사용자 단말 및 복수의 분산 서버 또는 상기 복수의 분산 서버를 관리하는 분산 처리 서버로 암호화 패스워드의 전달 요청을 전송하는 단계;
상기 암호화 패스워드의 전달 요청에 대응하여, 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제1 식별정보가 할당된, RSA 암호화된 제1 분할키 및 제1 분할 암호화 패스워드를 포함한 제1 블록을 상기 사용자 단말로부터 수신하고, 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 상기 제1 식별정보와 상이한 제2 식별정보가 할당된, 상기 복수의 분산 서버에 분산 처리된 제2 분할키 및 제2 분할 암호화 패스워드를 포함한 제2 블록의 미리 결정된 수의 서브 블록을 회수한 후 결합하여 획득된 제2 블록을 상기 분산 처리 서버로부터 수신하는 단계, 상기 제1 블록은 상기 사용자 단말에서 전송되고 나면 상기 사용자 단말에서 삭제되고 상기 제2 블록은 상기 분산 처리 서버에서 전송되고 나면 상기 분산 처리 서버에서 삭제됨; 및
여기서, 상기 제1 분할키와 상기 제2 분할키는 미리 설정된 분할 방식 중 제1 미리 설정된 분할 방식을 이용하여 키를 분할하여 획득되며, 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드는 상기 미리 설정된 분할 방식 중 제2 미리 설정된 분할 방식을 이용하여 패스워드를 분할하여 획득되며, 상기 제1 미리 설정된 분할 방식과 상기 제2 미리 설정된 분할 방식은 서로 다른 방식이고,
상기 RSA 암호화된 제1 블록을 RSA 복호화하여 제1 분할키 및 제1 분할 암호화 패스워드를 획득하고, 상기 제1 미리 설정된 분할 방식에 기초하여 상기 제1 분할키 및 상기 제2 분할키를 결합하고, 상기 제2 미리 설정된 분할 방식에 기초하여 상기 제1 분할 암호화 패스워드 및 상기 제2 분할 암호화 패스워드를 결합하여, 키와 암호화 패스워드를 획득하고, 상기 획득된 키와 상기 획득된 암호화 패스워드를 상기 클라이언트 서버로 전송하고 상기 획득된 키와 상기 획득된 암호화 패스워드를 전송하고 나면 상기 획득된 키와 상기 획득된 암호화 패스워드를 삭제하는 단계를 포함하고,
상기 클라이언트 서버로 전송된 암호화 패스워드는 복호화 모듈을 이용하여 상기 획득된 키로 복호화되고,
상기 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정을 포함하고,
상기 미리 설정된 분할 방식에 따라 상기 사용자 단말 및 상기 분산 처리 서버로 전달된 분할키 및 분할 암호화 패스워드가 결정되고,
상기 미리 결정된 수의 서브 블록은 서로 다른 독립된 값의 식별정보를 할당받는, 방법.
In the encryption distributed processing method,
receiving a transmission request of an encrypted password from a client server including user identification information;
transmitting an encryption password transmission request to a user terminal and a plurality of distributed servers or a distributed processing server managing the plurality of distributed servers;
In response to the transmission request of the encrypted password, the first block including the RSA-encrypted first division key and the first division encryption password to which the first identification information based on the user identification information is allocated using a predetermined function, The second division key and the second division key received from the user terminal and distributed to the plurality of distributed servers to which second identification information different from the first identification information based on the user identification information is assigned using a predetermined function Receiving a second block obtained by combining and recovering a predetermined number of sub-blocks of a second block including an encryption password from the distributed processing server, After the first block is transmitted from the user terminal, the user terminal is deleted from and the second block is deleted from the distributed processing server after being transmitted from the distributed processing server; and
Here, the first division key and the second division key are obtained by dividing a key using a first division method among preset division methods, and the first division encryption password and the second division encryption password are the The password is obtained by dividing the password by using a second preset partitioning method among the preset partitioning methods, wherein the first preset partitioning method and the second preset partitioning method are different from each other;
RSA-decrypts the RSA-encrypted first block to obtain a first division key and a first division encryption password, and combines the first division key and the second division key based on the first preset division method; By combining the first divided encryption password and the second divided encryption password based on the second preset division method, a key and an encryption password are obtained, and the obtained key and the obtained encryption password are transmitted to the client server. and after transmitting the obtained key and the obtained encrypted password, deleting the obtained key and the obtained encrypted password,
The encrypted password transmitted to the client server is decrypted with the obtained key using a decryption module,
The preset partitioning method includes setting at least one of the number or size of partitions, a configuration of partitions, and an order between the partitioned key and the encryption password,
The division key and division encryption password transmitted to the user terminal and the distributed processing server are determined according to the preset division method,
The method, wherein the predetermined number of sub-blocks are allocated identification information of different independent values.
제11항에 따른 방법을 수행하기 위한 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램.A computer program stored on a computer readable medium for performing the method according to claim 11 . 제12항에 따른 방법을 수행하기 위한 컴퓨터 판독가능한 매체에 저장된 컴퓨터 프로그램.A computer program stored on a computer readable medium for performing the method according to claim 12 .
KR1020210074113A 2021-06-08 2021-06-08 System, device or method for encryption distributed processing KR102391952B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210074113A KR102391952B1 (en) 2021-06-08 2021-06-08 System, device or method for encryption distributed processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210074113A KR102391952B1 (en) 2021-06-08 2021-06-08 System, device or method for encryption distributed processing

Publications (1)

Publication Number Publication Date
KR102391952B1 true KR102391952B1 (en) 2022-04-29

Family

ID=81429016

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210074113A KR102391952B1 (en) 2021-06-08 2021-06-08 System, device or method for encryption distributed processing

Country Status (1)

Country Link
KR (1) KR102391952B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499121A (en) * 2022-09-15 2022-12-20 中国银行股份有限公司 Password storage method and device based on 5G
CN117879790A (en) * 2023-02-22 2024-04-12 上海金怪兽科技有限公司 Data encryption and decryption method based on block chain and mobile phone shell
KR20240054068A (en) 2022-10-18 2024-04-25 김봉겸 Apparatus for Blockchain-based Password Distributed Processing and Driving Method Thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249825A (en) * 1998-03-04 1999-09-17 Nec Corp Common key managing method, data reader using the same and ic card system
JP2007272583A (en) * 2006-03-31 2007-10-18 Univ Waseda Information sharing system, authentication method in information sharing system, management device, information processing device, etc.
KR101792220B1 (en) * 2016-08-19 2017-11-02 라온시큐어(주) Method, mobile terminal, device and program for providing user authentication service of combining biometric authentication
KR102010776B1 (en) * 2018-04-27 2019-10-21 현대카드 주식회사 Method for password processing based on blockchain, method for user login authentication and server using the same
KR20200134744A (en) * 2019-05-23 2020-12-02 연세대학교 산학협력단 Method and system for accessing information of medical treatment for patients

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11249825A (en) * 1998-03-04 1999-09-17 Nec Corp Common key managing method, data reader using the same and ic card system
JP2007272583A (en) * 2006-03-31 2007-10-18 Univ Waseda Information sharing system, authentication method in information sharing system, management device, information processing device, etc.
KR101792220B1 (en) * 2016-08-19 2017-11-02 라온시큐어(주) Method, mobile terminal, device and program for providing user authentication service of combining biometric authentication
KR102010776B1 (en) * 2018-04-27 2019-10-21 현대카드 주식회사 Method for password processing based on blockchain, method for user login authentication and server using the same
KR20200134744A (en) * 2019-05-23 2020-12-02 연세대학교 산학협력단 Method and system for accessing information of medical treatment for patients

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jong-Phil Yang 외 2명, "A Simplified Approach to User Controllable Threshold Signatures", IEEE (2004.)* *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499121A (en) * 2022-09-15 2022-12-20 中国银行股份有限公司 Password storage method and device based on 5G
KR20240054068A (en) 2022-10-18 2024-04-25 김봉겸 Apparatus for Blockchain-based Password Distributed Processing and Driving Method Thereof
CN117879790A (en) * 2023-02-22 2024-04-12 上海金怪兽科技有限公司 Data encryption and decryption method based on block chain and mobile phone shell

Similar Documents

Publication Publication Date Title
KR102391952B1 (en) System, device or method for encryption distributed processing
CN107302539B (en) Electronic identity registration and authentication login method and system
CN113691502B (en) Communication method, device, gateway server, client and storage medium
CN110324143A (en) Data transmission method, electronic equipment and storage medium
CN109981255B (en) Method and system for updating key pool
CN101965574B (en) Authentication information generation system, authentication information generation method and a client device
US20130028419A1 (en) System and a method for use in a symmetric key cryptographic communications
CN108833361B (en) Identity authentication method and device based on virtual account
US12047500B2 (en) Generating keys using controlled corruption in computer networks
CN107359998A (en) A kind of foundation of portable intelligent password management system and operating method
CN108199847B (en) Digital security processing method, computer device, and storage medium
CN115603907A (en) Method, device, equipment and storage medium for encrypting storage data
He et al. Provable data integrity of cloud storage service with enhanced security in the internet of things
CN112004201A (en) Short message sending method and device and computer system
JP2022093492A (en) Data extraction system, data extraction method, registration device, and program
JP6468567B2 (en) Key exchange method, key exchange system
CN116108410A (en) Identity credential generation method and device
JP4776378B2 (en) MULTI-KEY AUTHENTICATION TERMINAL DEVICE, MULTI-KEY AUTHENTICATION MANAGEMENT DEVICE, MULTI-KEY AUTHENTICATION SYSTEM, AND PROGRAM
Singamaneni et al. An improved dynamic polynomial integrity based QCP-ABE framework on large cloud data security
US20240338478A1 (en) Protecting membership for secure computation and communication
CN115955364B (en) User identity information confidentiality method and system of network bidding transaction system
JP2005227331A (en) Secret information management system, secret information management method, and secret information management program
CN114598478B (en) Data encryption method, device, electronic equipment and storage medium
KR20200000978A (en) Data security method and system
CN110830252B (en) Data encryption method, device, equipment and storage medium

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20210608

PA0201 Request for examination
PA0302 Request for accelerated examination

Patent event date: 20210609

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

Patent event date: 20210608

Patent event code: PA03021R01I

Comment text: Patent Application

PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20210726

Patent event code: PE09021S01D

AMND Amendment
PE0601 Decision on rejection of patent

Patent event date: 20220210

Comment text: Decision to Refuse Application

Patent event code: PE06012S01D

Patent event date: 20210726

Comment text: Notification of reason for refusal

Patent event code: PE06011S01I

X091 Application refused [patent]
AMND Amendment
PX0901 Re-examination

Patent event code: PX09011S01I

Patent event date: 20220210

Comment text: Decision to Refuse Application

Patent event code: PX09012R01I

Patent event date: 20211223

Comment text: Amendment to Specification, etc.

PX0701 Decision of registration after re-examination

Patent event date: 20220415

Comment text: Decision to Grant Registration

Patent event code: PX07013S01D

Patent event date: 20220314

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

Patent event date: 20220210

Comment text: Decision to Refuse Application

Patent event code: PX07011S01I

Patent event date: 20211223

Comment text: Amendment to Specification, etc.

Patent event code: PX07012R01I

X701 Decision to grant (after re-examination)
GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20220425

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20220426

End annual number: 3

Start annual number: 1

PG1601 Publication of registration