KR102391952B1 - System, device or method for encryption distributed processing - Google Patents
System, device or method for encryption distributed processing Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 238000012545 processing Methods 0.000 title claims abstract description 78
- 238000005192 partition Methods 0.000 claims description 40
- 238000000638 solvent extraction Methods 0.000 claims description 28
- 230000005540 biological transmission Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 6
- 238000003672 processing method Methods 0.000 claims description 4
- 230000000694 effects Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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.
Description
본 발명은 암호화 분산 처리 시스템, 장치 또는 이를 위한 방법에 관한 것으로서, 패스워드(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
먼저 암호화 과정에 대해 설명하도록 한다. 암호화 과정은 사용자의 패스워드 저장 시도를 통해 개시될 수 있다.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
클라이언트 서버(10)는 복호화 모듈을 이용하거나 보유할 수 있다. 복호화 모듈은 사용자 정보, 또는 그 중에서 암호화된 패스워드(이하, “암호화 패스워드”로 지창함)를 복호화하기 위한 것으로서, 약속된 키와 암호화 패스워드를 입력받으면 (암호가 해독된)패스워드를 출력할 수 있다. 여기서, 복호화 모듈은 메인 서버(20)가 이용하거나 보유하는 암호화 모듈과는 상응 또는 대칭적인 관계로서, 약속된 키와 암호화 모듈을 이용하여 암호화된 패스워드는 약속된 키와 복호화 모듈을 이용하여 복호화가 가능하다. The
클라이언트 서버(10)와 메인 서버(20)는 API(application programming interface) 통신을 통해 정보, 데이터 또는 메시지를 송수신할 수 있다. 클라이언트 서버(10)와 메인 서버(20)가 API 통신을 하기 위해서는 1회성 토큰이 필요하다. 클라이언트 서버(10)는 미리 발급받은 키 값으로 메인 서버(20)로 토큰 값을 요청하고, 메인 서버(20)는 미리 발급한 키 값과 클라이언트 서버(10)의 서버 IP 주소를 비교하여, API 통신을 통제할 수 있다. The
클라이언트 서버(10)는 약속된 키, (사용자) 패스워드, 그리고 사용자 식별정보(ID)를 메인 서버(20)로 전송할 수 있다. 이 때, 클라이언트 서버(10)는 약속된 키, 패스워드 및 사용자 식별정보를 저장하지 않는다. 즉, 클라이언트 서버(10)가 약속된 키, 패스워드 및 사용자 식별정보를 메인 서버(20)로 전송하고 나면, 약속된 키, 패스워드 및 사용자 식별정보는 클라이언트 서버(10) 혹은 클라이언트 서버(10) 내 저장소 등에서 삭제될 수 있다. 이는 클라이언트 서버(10)에서 키 또는 패스워드와 같은 정보 유출의 가능성을 제거하기 위함이고, 결국엔 키 및 패스워드의 보안성이 강화되는 효과가 있다.The
메인 서버(20)는 클라이언트 서버(10)로부터 약속된 키, (사용자) 패스워드, 그리고 사용자 식별정보를 수신할 수 있다. 메인 서버(20)는 클라이언트 서버(10)가 이용하거나 보유하는 복호화 모듈과 상응 또는 대칭적인 암호화 모듈을 이용하거나 보유할 수 있다. 메인 서버(20)는 암호화 모듈을 이용하여 약속된 키로 패스워드를 암호화할 수 있다. 이에 따라, 암호화 패스워드가 생성될 수 있다. 또한, 패스워드의 암호화가 완료되면, 메인 서버(20)에는 클라이언트 서버(10)로부터 수신된 패스워드가 더 이상 존재하지 않을 수 있다.The
그리고나서, 메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 미리 설정된 분할 방식 중 하나를 이용하여 분할할 수 있다. 약속된 키와 암호화 패스워드의 분할(암호화하기 전의 패스워드의 분할 포함)을 위한 미리 설정된 분할 방식은 분할의 수 또는 크기, 분할의 구성 및 분할된 키와 암호화 패스워드 상호 간의 순서 중 적어도 하나에 대한 설정 또는 정함 등을 포함할 수 있다. 분할의 수 또는 크기, 구성 및 순서 등에 따른 구체적인 분할 방식은 좀더 상세히 설명하도록 한다. Then, the
메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 미리 결정된 수로 분할하거나, 또는 미리 결정된 크기를 갖도록 분할할 수 있다. 즉, 메인 서버(20)는 약속된 키를 N개로 분할, 그리고 암호화 패스워드를 M개로 분할할 수 있다(N과 M 각각은 2이상의 정수이고, 같을 수도 있고 다를 수도 있다).The
예컨대, 메인 서버(20)는 약속된 키와 암호화 패스워드 각각을 둘로 분할할 수 있다. 즉, 메인 서버(20)는 약속된 키를 제1 분할키 및 제2 분할키로 분할하고, 암호화 패스워드를 제1 분할 암호화 패스워드 및 제2 분할 암호화 패스워드로 분할할 수 있다. 암호화 패스워드의 분할은 본 발명의 시스템 내의 여러 구성에 나누어 보관 또는 저장하게끔 하여 시스템 구성 중 일부가 해킹이 되더라도, 약속된 키 또는 패스워드를 복구 또는 복호화하지 못하게 하기 위함이다.For example, the
예컨대, 약속된 키가 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
암호화 패스워드에 대한 분할 역시, 위에서 설명한 약속된 키에 대한 분할과 동일한 방식으로 수행될 수 있다. 예컨대, 암호화 패스워드가 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
아래의 표는 키와 패스워드가 각각 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.
암호화 패스워드:abcdefghi123456789Key: abcdefghi123456789
Encryption password: abcdefghi123456789
또는, 약속된 키가 64자리의 문자열로 구성된 경우, 메인 서버(20)는 가장 높은 자리의 문자와, 그로부터 한 문자를 건너뛰어 선택된 32개의 문자를 제1 분할키로, 나머지 문자를 제2 분할키로 분할할 수 있다(즉, 64개의 문자 중 짝수 번째 문자의 조합 또는 결합을 하나의 분할키로, 홀수 번째 문자의 조합 또는 결합을 나머지 하나의 분할키로 분할함). Alternatively, when the promised key consists of a 64-digit character string, the
암호화 패스워드가 200자리의 문자열로 구성된 경우, 메인 서버(20)는 가장 높은 자리의 문자와, 그로부터 한 문자를 건너뛰어 선택된 100개의 문자를 제1 분할 암호화 패스워드로, 나머지 100개의 문자를 제2 분할 암호화 패스워드로 분할할 수 있다(즉, 200개의 문자 중 짝수 번째 문자의 조합 또는 결합을 하나의 분할 암호화 패스워드로, 홀수 번째 문자의 조합 또는 결합을 나머지 하나의 분할 암호화 패스워드로 분할함). When the encrypted password consists of a 200-digit character string, the
아래의 표는 키와 패스워드가 각각 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.
암호화 패스워드:abcdefghi123456789Key: abcdefghi123456789
Encryption password: abcdefghi123456789
표 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
앞서 설명한 표 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
이는 약속된 키 또는 암호화 패스워드의 분할되는 수 또는 정도가 커질수록 다양한 상호간의 순서가 가능하다. 약속된 키가 미리 설정된 수(예컨대, 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
암호화 패스워드 또는 패스워드의 분할에 대해서도 분할키에 대해 설명한 순서에 대한 설명이 적용될 수 있다.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
요약하면, 약속된 키 또는 암호화 패스워드는 미리 설정된 방식 중 하나에 의해 분할될 수 있다. 즉, 약속된 키 또는 암호화 패스워드는 미리 결정된 크기 또는 수로 분할될 수 있으며, 미리 결정된 크기 또는 수는 약속된 키와 암호화 패스워드에 대해 서로 다를 수 있다. 또한, 약속된 키 또는 암호화 패스워드의 분할된 구성도 미리 결정된 구성에 따라 이루어 질 수 있으며, 분할키 또는 분할 암호화 패스워드 상호 간의 순서 역시 미리 결정된 순서에 따라 결정될 수 있다. 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
그 후, 메인 서버(20)는 약속된 키로 분할된 패스워드를 암호화 모듈을 이용하여 암호화할 수 있다. 이렇게 되면, 암호화 과정이 패스워드가 분할된 수 또는 정도만큼 수행될 수 있다. 약속된 키 역시 분할될 수 있으므로, 패스워드의 분할과 동시에 또는 그 이전, 이후에 메인 서버(20)는 미리 설정된 다양한 방식 중 하나를 이용하여 약속된 키를 분할할 수 있다. 여기서, 미리 설정된 다양한 방식은 앞서 암호화 패스워드를 분할하는 과정과 관련하여 설명한 방식을 포함할 수 있다. 이 때에도, 분할된 패스워드의 암호화가 완료되면, 메인 서버(20)에는 클라이언트 서버(10)로부터 수신된 패스워드가 더 이상 존재하지 않을 수 있다.After that, the
메인 서버(20)는 분할된 약속된 키(즉, 분할키)와 분할된 암호화 패스워드(즉, 분할 암호화 패스워드)를 사용자 식별정보와 함께 사용자 단말(30)과 분산 처리 서버(40)로 전송할 수 있다. 메인 서버(20)가 약속된 키를 N개로 분할, 그리고 암호화 패스워드를 M개로 분할하거나 패스워드를 M개로 분할한 후 암호화한 경우, N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나를 사용자 단말(30)로 전송하고, 나머지 분할키 및 분할 암호화 패스워드를 분산 처리 서버(40)로 전송할 수 있다.The
이 때, 메인 서버(20)는 키, 패스워드, 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 저장하지 않는다. 즉, 메인 서버(20)가 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 사용자 단말(30)과 분산 처리 서버(40)로 전송하고 나면, 분할키(클라이언트 서버(10)로부터 수신된 키 포함), 분할 암호화 패스워드(클라이언트 서버(10)로부터 수신된 패스워드 포함) 및 사용자 식별정보를 제거 또는 삭제 등을 하여, 메인 서버(20) 혹은 메인 서버(20) 내의 저장소 등에 패스워드, 분할키(클라이언트 서버(10)로부터 수신된 키 포함), 분할 암호화 패스워드 및 사용자 식별정보가 더 이상 존재하지 않도록 할 수 있다. 이는 메인 서버(20)에서 키, 패스워드, 분할키 또는 분할 암호화 패스워드와 같은 정보 유출의 가능성을 제거하기 위함이고, 결국엔 키 및 패스워드의 보안성이 강화되는 효과가 있다.At this time, the
사용자 단말(30)은 메인 서버(20)로부터 N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나, 그리고 사용자 식별정보를 수신할 수 있다. 이하, 설명의 간단함을 위해, N개의 분할키 중 적어도 하나와 M개의 분할 암호화 패스워드 중 적어도 하나, 그리고 사용자 식별정보를 포함하는 정보 단위를 “제1 블록”으로 지칭하도록 한다. 사용자 단말(30)은 RSA(Rivest Shamir Adleman) 암호화 모듈을 이용하거나 보유할 수 있다. 이와 대응하게, 메인 서버(20)는 RSA 복호화 모듈을 이용하거나 보유할 수 있다. 메인 서버(20)와 사용자 단말(30)은 RSA 암, 복호화를 위한 RSA 키를 서로 공유할 수 있다.The
사용자 단말(30)은 RSA 암호화 모듈을 이용하여 수신된 제1 블록을 RSA 암호화할 수 있다. RSA 암호화가 완료되면, 사용자 단말(30)에는 메인 서버(20)로부터 수신된 제1 블록이 더 이상 존재하지 않을 수 있다. 그리고나서, 사용자 단말(30)은 RSA 암호화된 제1 블록을 로컬에 저장할 수 있다. The
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
분산 처리 서버(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
또한, 분산 처리를 위해 분산 처리 서버(40) 또는 분산 서버(50)는 하둡(Hadoop) 시스템을 이용할 수 있다. In addition, for distributed processing, the distributed
앞서 설명한 대로, 키와 암호화 패스워드는 사용자 단말(30)과 분산 서버(50)에 분할되어 저장된다. 이에 따라 사용자 단말(30)과 분산 서버(50) 전부에서 해당 사용자의 분할키 및 분할 암호화 패스워드를 획득해야, 사용자의 완전한 키와 암호화 패스워드를 획득할 수 있다. 또한, 모든 분할키와 분할 암호화 패스워드를 획득하더라도, 전술한 다양한 분할 크기(수), 분할 구성, 분할키 또는 분할 암호화 패스워드의 상호간의 순서에 따라, 완전한 키와 암호화 패스워드를 재구성하는 것은 분할과 관련된 정보 없이는 불가능하다. 또한, 암호화 패스워드를 복호화하기 위한 복호화 모듈은 클라이언트 서버(10)에게만 있기 때문에, 클라이언트 서버(10)가 완전한 키와 암호화 패스워드를 가지고 있는 경우에만 복호화가 가능하다. 따라서, 클라이언트 서버(10)외의 다른 주체들은 완전한 키와 암호화 패스워드를 획득하여도, 복호화가 불가능하다. 따라서, 본 발명에 따르면 키의 패스워드와 관련하여 견고한 보안 체계를 구축할 수 있는 효과가 있다. As described above, the key and the encrypted password are divided and stored in the
본 발명에 따른 복호화 과정에 대해서 설명하도록 한다. 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
메인 서버(20)는 암호화 패스워드의 전달 요청을 수신할 수 있다. 메인 서버(20)는 암호화 과정에서 수신했던 키와 패스워드 및 사용자 식별정보, 또는 분할키와 분할 암호화 패스워드를 더 가지고 있지 않다. 이에, 메인 서버(20)는 사용자 단말(30)과 분산 처리 서버(40)에게 암호화 패스워드의 전달 요청을 전송할 수 있다. The
사용자 단말(30)은 수신된 암호화 패스워드의 전달 요청에 따라, 로컬에 저장하고 있던 RSA 암호화된 제1 블록을 메인 서버(20)로 전송할 수 있다. 이 때, 사용자 단말(30)은 RSA 암호화된 제1 블록에서 사용자 식별정보를 추출할 수 있으며, 메인 서버(20)로 RSA 암호화된 제1 블록을 전송할 때, 추출된 사용자 식별정보를 함께 전송할 수 있다. 또한, 사용자 단말(30)은 RSA 암호화된 제1 블록을 메인 서버(20)로 전송하고 난 후에, RSA 암호화된 제1 블록을 제거 또는 삭제 등을 하여, 사용자 단말(30) 또는 사용자 단말(30) 내의 저장소 등에 RSA 암호화된 제1 블록이 더 이상 존재하지 않도록 할 수 있다.The
분산 처리 서버(40)는 수신된 암호화 패스워드의 전달 요청에 따라, 하나 이상의 분산 서버(50)로 암호화 패스워드의 전달 요청을 전송할 수 있다. 이에 대응하여, 각 분산 서버(50)는 제2 블록의 서브 블록을 분산 처리 서버(40)로 전송할 수 있다. 그리고, 분산 처리 서버(40)는 회수한 제2 블록의 서브 블록을 결합하여 제2 블록을 다시 획득할 수 있고, 제2 블록을 메인 서버(20)로 전송할 수 있다. 이 때, 분산 처리 서버(40)는 제2 블록 또는 각 서브 블록에서 제2 식별정보에 기초하여 사용자 식별정보를 추출할 수 있으며, 메인 서버(20)로 제2 블록을 전송할 때, 추출된 사용자 식별정보를 함께 전송할 수 있다. 또한, 분산 처리 서버(40) 또는 각 분산 서버(50)는 제2 블록 또는 각 서브 블록을 전송하고 난 후에, 제2 블록 또는 각 서브 블록을 제거 또는 삭제 등을 하여 분산 처리 서버(40)와 각 분산 서버(50)에는 제2 블록 또는 각 서브 블록이 더 이상 존재하지 않도록 할 수 있다.The distributed
또한, 메인 서버(20)는 사용자 단말(30)로부터 수신한 사용자 식별정보를 통해 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 일치하는지를 확인할 수 있다. 또한, 메인 서버(20)는 분산 처리 서버(40)로부터 수신한 사용자 식별정보를 통해 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 일치하는지를 확인할 수 있다. 당연하게도, 사용자 단말(30) 및 분산 처리 서버(40)로부터 수신된 사용자 식별정보가 클라이언트 서버(10)로부터의 전달 요청에 포함된 사용자 식별정보와 동일함이 확인되어야, 후술하는 과정이 계속될 수 있다.Also, the
메인 서버(20)는 사용자 단말(30)로부터 수신한 RSA 암호화된 제1 블록을 RSA 복호화 모듈을 이용하여 복호화할 수 있다. 이로써, 메인 서버(20)에서 제1 블록이 획득될 수 있다. RSA 암호화된 제1 블록의 복호화가 완료되면, 메인 서버(20)에는 더 이상 RSA 암호화된 제1 블록이 존재하지 않을 수 있다.The
그 후, 메인 서버(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
클라이언트 서버(10)는 수신된 키를 이용하여 수신된 암호화 패스워드를 복호화할 수 있다. 이에 따라, 클라이언트 서버(10)에서 패스워드가 획득되며, 클라이언트 서버(10)는 사용자에게 패스워드를 반환할 수 있다. 또한, 클라이언트 서버(10)는 사용자에게 패스워드를 반환한 후에, 메인 서버(20)로부터 수신된 키와 암호화 패스워드를 삭제할 수 있다.The
도 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
메인 서버(20)는 키, 패스워드, 사용자 식별정보를 클라이언트 서버(10)로부터 수신할 수 있다(S210). 이 단계는 사용자의 패스워드 저장 시도에 따라 개시될 수 있다. The
메인 서버(20)는 수신된 키를 이용하여 패스워드를 암호화하는데(S220), 이때 암호화 모듈을 이용할 수 있다. 앞서 설명한 것처럼, 암호화 모듈은 클라이언트 서버(10)가 보유하거나 이용하는 복호화 모듈과 대응하는 것으로서, 암호화 모듈은 키를 이용하여 패스워드를 암호화할 수 있고, 복호화 모듈은 암호화 패스워드를 복호화할 수 있다. 암호화의 결과 암호화 패스워드가 획득될 수 있다.The
메인 서버(20)는 키와 암호화 패스워드 각각을 분할할 수 있다(S230). 분할의 방식은 앞서 설명한 다양한 분할 방식 중 하나를 이용할 수 있다. 키의 분할 및 암호화 패스워드의 분할을 통해 복수의 분할키 및 복수의 분할 암호화 패스워드가 획득될 수 있다.The
메인 서버(20)는 분할키와 분할 암호화 패스워드 중 일부는 사용자 단말(30)로 전송할 수 있고, 나머지는 분산 처리 서버(40)로 전송할 수 있다(S240).The
사용자 단말(30)로 전송된 일부 분할키와 일부 분할 암호화 패스워드(이하, “제1 블록”)는 사용자 단말(30)에서 RSA 암호화후 저장되며, 분산 처리 서버(40)로 전송된 나머지 분할키와 분할 암호화 패스워드(이하, “제2 블록”)는 분산 처리 서버(40)에서 분산처리된 후 하나 이상의 분산 서버(50)에 저장될 수 있다. The partial split key and part split encryption password (hereinafter, “first block”) transmitted to the
이를 통해, 암호화 분산 처리 시스템(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
KEY:abcdefghi,
PASSWORD:abcdefghi
}{
KEY:abcdefghi,
PASSWORD:abcdefghi
}
아울러, 사용자 단말(30)은 로컬에 제1 블록은 다음과 같이 저장될 수 있다. 여기서, 사용자 식별정보는 test@tes.com이다.In addition, the
도 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
메인 서버(20)는 클라이언트 서버(10)로부터 암호화 패스워드 전달 요청을 수신할 수 있다(S310). 이 단계는 사용자의 패스워드 호출 시도에 따라 개시될 수 있다.The
메인 서버(20)는 수신된 암호화 패스워드 전달 요청에 대응하여, 사용자 단말(30)과 분산 처리 서버(40)로 암호화 패스워드 전달 요청을 전송할 수 있다(S320). The
메인 서버(20)는 암호화 패스워드 전달 요청에 대응하여, 사용자 단말(30) 및 분산 처리 서버(40)로부터 분할키, 분할 암호화 패스워드 및 사용자 식별정보를 포함한 블록을 수신할 수 있다(S330).The
그 후, 메인 서버(20)는 수신된 암호화 블록을 처리하고, 처리된 암호화 블록에서 분할키들을 서로 결합하고, 분할 암호화 패스워드를 서로 결합하여, 키 및 암호화 패스워드를 획득할 수 있다(S340). 좀더 상세하게는, 메인 서버(20)는 사용자 단말(30)로부터 수신된 RSA 암호화 분할키 및 RSA 분할 암호화 패스워드로 구성된 RSA 암호화 제1 블록에 대해 RSA 복호화를 수행하여, 일부 분할키 및 일부 분할 암호화 패스워드로 구성된 제1 블록을 획득할 수 있다. 그리고 나서, 메인 서버(20)는 제1 블록의 일부 분할키 및 일부 분할 암호화 패스워드와, 분산 처리 서버(40)로부터 수신된 나머지 분할키 및 나머지 분할 암호화 패스워드, 즉 제2 블록을 결합하여, 키 및 암호화 패스워드를 획득할 수 있다. 분할키들의 결합, 그리고 분할 암호화 패스워드의 결합은 앞서 설명한 분할 방식에 대응하여 수행되어야 한다. After that, the
메인 서버(20)는 획득된 키 및 암호화 패스워드를 클라이언트 서버(10)로 전송할 수 있다(S350). 클라이언트 서버(10)로 전송된 암호화 패스워드는 함께 전송된 키를 이용하여 복호화될 수 있다. 이를 통해, 클라이언트 서버(10)는 패스워드를 획득할 수 있고, 사용자에게 반환할 수 있다.The
도 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 (
아울러, 본 발명의 또다른 양태(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.
사용자 식별정보를 포함하는, 암호화 패스워드의 전달 요청을 전송하는 클라이언트 서버;
상기 클라이언트 서버로부터 상기 암호화 패스워드의 전달 요청을 수신하여, 사용자 단말 및 복수의 분산 서버 또는 상기 복수의 분산 서버를 관리하는 분산 처리 서버로 암호화 패스워드의 전달 요청을 전송하는 메인 서버;
상기 암호화 패스워드의 전달 요청에 따라, 미리 결정된 함수를 이용하여 상기 사용자 식별정보에 기반한 제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.
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)
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)
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 |
-
2021
- 2021-06-08 KR KR1020210074113A patent/KR102391952B1/en active IP Right Grant
Patent Citations (5)
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)
Title |
---|
Jong-Phil Yang 외 2명, "A Simplified Approach to User Controllable Threshold Signatures", IEEE (2004.)* * |
Cited By (3)
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 |