본 개시는 암호 분석을 수행하기 위한 전자 장치 및 그 제어 방법에 관한 것이다.The present disclosure relates to an electronic device for performing cryptographic analysis and a method for controlling the same.
기존의 연구들에서는 전수 조사에 대한 시간을 단축하기 위해 CUDA 프로그래밍을 통한 전수 조사 암호 분석이 수행되었다. 또는, 해당 암호 분석 코드를 최적화 및 경량화하는 것에 집중하여 전수 조사의 전체 시간을 단축하기 위한 연구가 수행되었다. 더 나아가, HPC분야의 GPU 클러스터링 개념을 활용해 다량의 GPU를 병렬 연산 처리에 활용하여 전수 조사 암호 분석의 전체 시간을 단축하고자 하는 연구가 수행되었다.In previous studies, CUDA programming was used to perform cryptanalysis of the entire search in order to shorten the time for the entire search. Or, research was conducted to shorten the total time for the entire search by focusing on optimizing and lightening the corresponding cryptanalysis code. Furthermore, research was conducted to shorten the total time for the entire search cryptanalysis by utilizing a large number of GPUs for parallel processing using the concept of GPU clustering in the HPC field.
다만, 시스템에 따라 하나의 시스템에 장착될 수 있는 GPU의 수는 한정적일 뿐만 아니라, 최적화된 GPU 클러스터링 환경이 아닐 경우, 대용량의 데이터 전송 과정에서 전송 지연 문제를 발생시켜 하나의 GPU만을 활용해 암호 분석을 진행하는 것보다 더 긴 연산 시간이 소요되는 문제점이 존재한다.However, the number of GPUs that can be installed in a single system is limited depending on the system, and if the GPU clustering environment is not optimized, there is a problem that transmission delay issues occur during the large-scale data transfer process, resulting in a longer computation time than performing cryptographic analysis using only a single GPU.
본 실시 예가 해결하고자 하는 과제는, 암호 분석을 수행하는 전자 장치 및 그 제어 방법을 제공하는데 있다.The problem that this embodiment seeks to solve is to provide an electronic device that performs cryptographic analysis and a method for controlling the same.
구체적으로, 본 실시 예는 다량의 GPU를 활용해 대용량의 데이터 전송을 최적화된 상태로 송수신할 수 있는 GPU 클러스터링 환경을 구축하고, 해당 구축된 환경에 암호 분석 시스템을 설계 및 구현하여 이전 연구들에서 제한되었던 다량의 GPU를 활용한 최적화된 암호 분석 시스템을 제공할 수 있다.Specifically, the present embodiment constructs a GPU clustering environment capable of transmitting and receiving large amounts of data in an optimized state by utilizing a large number of GPUs, and designs and implements a cryptographic analysis system in the constructed environment, thereby providing an optimized cryptographic analysis system utilizing a large number of GPUs, which was limited in previous studies.
본 실시 예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시 예들로부터 또 다른 기술적 과제들이 유추될 수 있다.The technical problems to be solved by this embodiment are not limited to the technical problems described above, and other technical problems can be inferred from the following embodiments.
본 개시의 일 측면은 전자 장치의 암호 분석 방법에 있어서, 상기 전자 장치 및 하나 이상의 원격(remote) 서버 중 적어도 하나에 대응하는 하나 이상의 워커(worker) 노드를 확인하는 단계; 상기 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문(plain text)들을 분할하는 단계; 및 상기 분할된 복수의 후보 평문들 및 암호문(cypher text)을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계를 포함하고, 상기 복수의 후보 평문들은 상기 하나 이상의 워커 노드에 의해 하나 이상의 암호화 알고리즘에 따라 암호화되고, 암호화된 결과 값이 상기 암호문과 일치하는지 여부가 확인되는, 방법을 제공할 수 있다.One aspect of the present disclosure provides a method for analyzing cryptography of an electronic device, comprising: identifying one or more worker nodes corresponding to at least one of the electronic device and one or more remote servers; splitting a plurality of candidate plain texts based on the number of the one or more worker nodes; and transmitting the split plurality of candidate plain texts and cipher text to each of the one or more worker nodes, wherein the plurality of candidate plain texts are encrypted by the one or more worker nodes according to one or more encryption algorithms, and it is confirmed whether the encrypted result value matches the cipher text.
또한, 본 개시의 일 실시 예에서 상기 분할된 복수의 후보 평문들 및 상기 암호문을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계는, 상기 분할된 복수의 후보 평문들을 통합(unified) 메모리로 로드하는 단계; 및 메시지 전달 인터페이스(message passing interface, MPI)를 통해, 상기 분할된 복수의 후보 평문들이 로드된 상기 통합 메모리의 주소 값을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계를 포함하는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, the step of transmitting the plurality of divided candidate plaintexts and the ciphertext to each of the one or more worker nodes may provide a cipher analysis method including the step of loading the plurality of divided candidate plaintexts into a unified memory; and the step of transmitting an address value of the unified memory into which the plurality of divided candidate plaintexts are loaded to each of the one or more worker nodes through a message passing interface (MPI).
또한, 본 개시의 일 실시 예에서 상기 통합 메모리의 주소 값을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계는, MPI 송신 애플리케이션 프로그래밍 인터페이스(application programming interface, API)를 통해 상기 통합 메모리의 주소 값을 송신하는 단계를 포함하고, 상기 통합 메모리의 주소 값은, MPI 수신 API를 통해 상기 하나 이상의 워커 노드에 의해 수신되는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, the step of transmitting the address value of the unified memory to each of the one or more worker nodes may include the step of transmitting the address value of the unified memory via an MPI transmitting application programming interface (API), and the address value of the unified memory may be received by the one or more worker nodes via an MPI receiving API, thereby providing a method for analyzing cryptography.
또한, 본 개시의 일 실시 예에서 상기 분할된 복수의 후보 평문들 및 상기 암호문을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계는, MPI 브로드캐스팅 API를 통해, 상기 하나 이상의 워커 노드에게 상기 암호문을 브로드캐스팅하는 단계를 포함하는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, the step of transmitting the divided plurality of candidate plaintexts and the ciphertext to each of the one or more worker nodes may provide a cryptographic analysis method including the step of broadcasting the ciphertext to the one or more worker nodes via an MPI broadcasting API.
또한, 본 개시의 일 실시 예에서 상기 하나 이상의 워커 노드 중 하나의 워커 노드가 상기 암호문과 일치하는 결과 값을 확인한 경우, 상기 하나의 워커 노드로부터 나머지 워커 노드로 작업 중단 요청이 송신되는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, a method of analyzing cryptography may be provided, in which, if one of the one or more worker nodes confirms a result value matching the ciphertext, a request to stop work is transmitted from the one worker node to the remaining worker nodes.
또한, 본 개시의 일 실시 예에서 상기 작업 중단 요청은 MPI 중단 API를 통해 송신되는, 암호 분석 방법을 제공할 수 있다.Additionally, in one embodiment of the present disclosure, a method for analyzing cryptography may be provided in which the task abort request is transmitted via an MPI abort API.
또한, 본 개시의 일 실시 예에서 상기 하나 이상의 워커 노드를 확인하는 단계는, 상기 복수의 후보 평문들의 수, 하나 이상의 암호화 알고리즘의 수, 상기 하나 이상의 원격 서버의 수, 상기 전자 장치 내 GPU(graphics processing unit)의 수 및 상기 하나 이상의 원격 서버 내 GPU의 수 중 적어도 하나에 기초하여, 상기 하나 이상의 워커 노드의 수를 결정하는 단계를 포함하는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, the step of verifying the one or more worker nodes may provide a cryptographic analysis method, including the step of determining the number of the one or more worker nodes based on at least one of the number of the plurality of candidate plaintexts, the number of the one or more encryption algorithms, the number of the one or more remote servers, the number of GPUs (graphics processing units) in the electronic device, and the number of GPUs in the one or more remote servers.
또한, 본 개시의 일 실시 예에서 복수의 후보 평문들을 분할하는 단계는, 상기 하나 이상의 워커 노드에 대응하는 GPU의 수 및 성능 중 적어도 하나에 기초하여, 상기 하나의 워커 노드 각각에 상기 복수의 후보 평문들을 할당하는 단계를 포함하는, 암호 분석 방법을 제공할 수 있다.In addition, in one embodiment of the present disclosure, the step of dividing a plurality of candidate plaintexts may provide a cryptographic analysis method including the step of assigning the plurality of candidate plaintexts to each of the one or more worker nodes based on at least one of the number and performance of GPUs corresponding to the one or more worker nodes.
본 개시의 다른 측면은 메모리; 및 제어부(controller)를 포함하고, 상기 제어부는, 상기 전자 장치 및 하나 이상의 원격(remote) 서버 중 적어도 하나에 대응하는 하나 이상의 워커(worker) 노드를 확인하고, 상기 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문(plain text)들을 분할하고, 상기 분할된 복수의 후보 평문들 및 암호문(cypher text)을 상기 하나 이상의 워커 노드 각각으로 송신하고, 상기 복수의 후보 평문들은 상기 하나 이상의 워커 노드에 의해 하나 이상의 암호화 알고리즘에 따라 암호화되고, 암호화된 결과 값이 상기 암호문과 일치하는지 여부가 확인되는, 전자 장치를 제공할 수 있다.Another aspect of the present disclosure provides an electronic device, comprising: a memory; and a controller, wherein the controller identifies one or more worker nodes corresponding to at least one of the electronic device and one or more remote servers, divides a plurality of candidate plain texts based on the number of the one or more worker nodes, and transmits the divided plurality of candidate plain texts and cipher text to each of the one or more worker nodes, wherein the plurality of candidate plain texts are encrypted by the one or more worker nodes according to one or more encryption algorithms, and whether an encrypted result value matches the cipher text is verified.
본 개시의 또 다른 측면은 전자 장치의 암호 분석 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적 기록매체로서, 상기 암호 분석 방법은, 상기 전자 장치 및 하나 이상의 원격(remote) 서버 중 적어도 하나에 대응하는 하나 이상의 워커(worker) 노드를 확인하는 단계; 상기 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문(plain text)들을 분할하는 단계; 및 상기 분할된 복수의 후보 평문들 및 암호문(cypher text)을 상기 하나 이상의 워커 노드 각각으로 송신하는 단계를 포함하고, 상기 복수의 후보 평문들은 상기 하나 이상의 워커 노드에 의해 하나 이상의 암호화 알고리즘에 따라 암호화되고, 암호화된 결과 값이 상기 암호문과 일치하는지 여부가 확인되는, 비일시적 기록 매체를 제공할 수 있다.Another aspect of the present disclosure is a computer-readable, non-transitory recording medium having recorded thereon a program for executing a method for analyzing a cryptography of an electronic device on a computer, the method comprising: identifying one or more worker nodes corresponding to at least one of the electronic device and one or more remote servers; splitting a plurality of candidate plain texts based on the number of the one or more worker nodes; and transmitting the split plurality of candidate plain texts and cipher text to each of the one or more worker nodes, wherein the plurality of candidate plain texts are encrypted by the one or more worker nodes according to one or more encryption algorithms, and it is confirmed whether the encrypted result value matches the cipher text.
기타 실시 예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Specific details of other embodiments are included in the detailed description and drawings.
본 개시에 따르면, 전자 장치 및 그 제어 방법은, 다량의 GPU를 활용해 대용량의 데이터 전송을 최적화된 상태로 송수신할 수 있는 GPU 클러스터링 환경을 구축함으로써, 암호를 분석하는데 소요되는 시간을 줄일 수 있다.According to the present disclosure, an electronic device and a method for controlling the same can reduce the time required to analyze a password by establishing a GPU clustering environment capable of transmitting and receiving a large amount of data in an optimized state by utilizing a large number of GPUs.
발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당해 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The effects of the invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by a person skilled in the art from the description of the claims.
도 1은 일 실시 예에 따른 시스템을 나타낸다.
도 2는 일 실시 예에 따른 시스템의 동작 개요를 나타낸다.
도 3은 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다.
도 4는 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다.
도 5는 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다.
도 6a 내지 도 6c는 일 실시 예에 따른 전자 장치가 암호를 분석하는 과정을 설명하기 위한 도면이다.
도 7a 내지 도 7c는 전자 장치가 일 실시 예에 따라 암호 분석을 수행한 결과를 설명하기 위한 도면이다.
도 8은 일 실시 예에 따른 전자 장치의 암호 분석 방법의 흐름도를 나타낸다.
도 9는 일 실시 예에 따른 전자 장치의 블록도를 나타낸다.Figure 1 illustrates a system according to one embodiment.
 Figure 2 illustrates an overview of the operation of a system according to one embodiment.
 Figure 3 illustrates how a master-worker pattern system operates according to one embodiment.
 Figure 4 illustrates how a master-worker pattern system operates according to one embodiment.
 Figure 5 illustrates how a master-worker pattern system operates according to one embodiment.
 FIGS. 6A to 6C are diagrams for explaining a process of an electronic device analyzing a password according to one embodiment.
 FIGS. 7A to 7C are diagrams for explaining the results of a cryptographic analysis performed by an electronic device according to one embodiment.
 FIG. 8 illustrates a flowchart of a method for analyzing cryptography of an electronic device according to one embodiment.
 FIG. 9 illustrates a block diagram of an electronic device according to one embodiment.
실시 예들에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.The terms used in the embodiments are selected from the most widely used general terms possible while considering the functions of the present disclosure, but this may vary depending on the intention of a technician working in the field, precedents, the emergence of new technologies, etc. In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meanings thereof will be described in detail in the corresponding description section. Therefore, the terms used in the present disclosure should be defined based on the meanings of the terms and the overall contents of the present disclosure, rather than simply the names of the terms.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.When a part of a specification is said to "include" a component, this does not mean that it excludes other components, but rather that it may include other components, unless otherwise stated.
명세서 전체에서 기재된 "a, b, 및 c 중 적어도 하나"의 표현은, 'a 단독', 'b 단독', 'c 단독', 'a 및 b', 'a 및 c', 'b 및 c', 또는 'a, b, 및 c 모두'를 포괄할 수 있다.The expression "at least one of a, b, and c" as used throughout the specification can encompass 'a alone', 'b alone', 'c alone', 'a and b', 'a and c', 'b and c', or 'all of a, b, and c'.
이하에서 언급되는 "단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말은 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication), CDMA(Code Division Multiple Access), W-CDMA(W-Code Division Multiple Access), LTE(Long Term Evolution) 등의 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다.The "terminal" mentioned below may be implemented as a computer or portable terminal capable of connecting to a server or other terminal via a network. Here, the computer includes, for example, a notebook, desktop, laptop, etc. equipped with a WEB Browser, and the portable terminal may include, for example, a wireless communication device that ensures portability and mobility, such as a communication-based terminal such as IMT (International Mobile Telecommunication), CDMA (Code Division Multiple Access), W-CDMA (W-Code Division Multiple Access), LTE (Long Term Evolution), and all kinds of handheld-based wireless communication devices such as a smartphone, tablet PC, etc.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present disclosure are described in detail so that those skilled in the art can easily implement the present disclosure. However, the present disclosure may be implemented in various different forms and is not limited to the embodiments described herein.
이하에서는 도면을 참조하여 본 개시의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings.
도 1은 일 실시 예에 따른 시스템을 나타낸다.Figure 1 illustrates a system according to one embodiment.
도 1을 참조하면, 시스템은 전자 장치(100), 하나 이상의 원격 서버들(120, 140, 160) 및 네트워크(180) 중에서 적어도 하나를 포함할 수 있다. 한편, 도 1에 도시된 시스템은 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 1에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다.Referring to FIG. 1, the system may include at least one of an electronic device (100), one or more remote servers (120, 140, 160), and a network (180). Meanwhile, the system illustrated in FIG. 1 only illustrates components related to the present embodiment. Accordingly, a person having ordinary skill in the art related to the present embodiment will understand that other general-purpose components may be further included in addition to the components illustrated in FIG. 1.
전자 장치(100)는 전자 장치(100) 또는 하나 이상의 원격 서버들(120, 140, 160)에 대응하는 하나 이상의 워커 노드에게 데이터 및 수행할 일을 분배하여 암호를 분석할 수 있다. 예를 들어, 전자 장치(100)에서 생성된 마스터 노드는 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문들을 분할하고, 분할된 복수의 후보 평문들을 하나 이상의 워커 노드에게 송신하여 암호문에 대응하는 평문을 찾도록 할 수 있다. 한편, 전자 장치(100)는 원격 서버(120, 140, 160)와 구별되는 개념으로서 로컬 서버 등으로 혼용될 수 있으나, 이에 한정되는 것은 아니다.The electronic device (100) can analyze a cipher by distributing data and a task to be performed to one or more worker nodes corresponding to the electronic device (100) or one or more remote servers (120, 140, 160). For example, a master node generated in the electronic device (100) can divide a plurality of candidate plaintexts based on the number of one or more worker nodes, and transmit the divided plurality of candidate plaintexts to one or more worker nodes to find a plaintext corresponding to the ciphertext. Meanwhile, the electronic device (100) is a concept distinct from the remote server (120, 140, 160) and can be used interchangeably as a local server, etc., but is not limited thereto.
하나 이상의 원격(remote) 서버들(120, 140, 160)은 전자 장치(100)로부터 데이터 및 수행할 일을 할당 받아 암호를 분석할 수 있다. 예를 들어, 하나 이상의 원격 서버들(120, 140, 160)에서 생성된 워커 노드들은 복수의 후보 평문들 및 암호문을 수신할 수 있다. 이후, 워커 노드들은 각각 수신한 복수의 후보 평문들을 하나 이상의 암호화 알고리즘에 따라 암호화하고, 암호화된 결과 값들 중 암호문과 일치하는 결과 값을 확인할 수 있다.One or more remote servers (120, 140, 160) can receive data and tasks to be performed from the electronic device (100) and analyze the ciphertext. For example, worker nodes generated in one or more remote servers (120, 140, 160) can receive a plurality of candidate plaintexts and ciphertexts. Thereafter, the worker nodes can encrypt the plurality of candidate plaintexts received according to one or more encryption algorithms, and check a result value that matches the ciphertext among the encrypted result values.
하나 이상의 원격 서버들(120, 140, 160)과 전자 장치(100)는 네트워크(180) 내에서 서로 통신할 수 있다. 네트워크(180)는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 이동 통신망(mobile radio communication network), 위성 통신망 및 이들의 상호 조합을 포함하며, 도 1에 도시된 각 네트워크 구성 주체가 서로 원활하게 통신을 할 수 있도록 하는 포괄적인 의미의 데이터 통신망이며, 유선 인터넷, 무선 인터넷 및 모바일 무선 통신망을 포함할 수 있다. 무선 통신은 예를 들어, 무선 랜(Wi-Fi), 블루투스, 블루투스 저 에너지(Bluetooth low energy), 지그비, WFD(Wi-Fi Direct), UWB(ultra wideband), 적외선 통신(IrDA, infrared Data Association), NFC(Near Field Communication) 등이 있을 수 있다. 한편, 보다 높은 수율(throughput), 낮은 레이턴시(latency) 및 높은 안정성을 위하여, 인피니밴드(Infiniband) 또는 이더넷(Ethernet) 기술 등이 네트워크(180)로서 사용될 수 있으나, 이에 한정되는 것은 아니다.One or more remote servers (120, 140, 160) and the electronic device (100) can communicate with each other within a network (180). The network (180) includes a Local Area Network (LAN), a Wide Area Network (WAN), a Value Added Network (VAN), a mobile radio communication network, a satellite communication network, and a combination thereof, and is a comprehensive data communication network that allows each network component illustrated in FIG. 1 to communicate smoothly with each other, and may include wired Internet, wireless Internet, and a mobile radio communication network. The wireless communication may include, for example, wireless LAN (Wi-Fi), Bluetooth, Bluetooth low energy, Zigbee, WFD (Wi-Fi Direct), UWB (ultra wideband), infrared communication (IrDA, infrared Data Association), NFC (Near Field Communication), etc. Meanwhile, for higher throughput, lower latency and higher stability, Infiniband or Ethernet technology may be used as the network (180), but is not limited thereto.
도 2는 일 실시 예에 따른 시스템의 동작 개요를 나타낸다.Figure 2 illustrates an overview of the operation of a system according to one embodiment.
일 실시 예에 따르면, 시스템은 전자 장치(100) 및 원격 서버(200)를 비롯한 M개의 서버를 포함할 수 있고, 각각의 서버는 GPU(graphics processing unit)(235, 275)를 포함할 수 있다. 즉, 시스템은 다량의 GPU가 병렬 연산 처리에 활용되어 암호를 분석할 수 있도록, GPU 클러스터링(clustering) 환경으로 설계될 수 있다.According to one embodiment, the system may include M servers including an electronic device (100) and a remote server (200), and each server may include a GPU (graphics processing unit) (235, 275). That is, the system may be designed as a GPU clustering environment so that a large number of GPUs can be utilized for parallel computation processing to analyze a password.
일 실시 예에 따르면, GPU 클러스터링 환경에서 고성능의 데이터 전송 처리가 가능하도록, GPUDirect RDMA, Remote-MPI 클러스터링, Cuda-Aware MPI 등의 기술들이 사용될 수 있다.In one embodiment, technologies such as GPUDirect RDMA, Remote-MPI clustering, and Cuda-Aware MPI may be used to enable high-performance data transfer processing in a GPU clustering environment.
일 실시 예에 따르면, GPUDirect RDMA(remote direct memory access) 기술은 로컬 환경의 GPU 디바이스 메모리와 원격 환경의 GPU 디바이스 메모리 간의 직접적인 데이터 송수신을 가능케 하는 기술을 나타낼 수 있다. 보다 구체적으로, GPUDirect 기술은 GPU와 GPU 또는 GPU와 서드파티 디바이스들이 CPU의 호스트 메모리로의 복사 없이 직접적으로 통신할 수 있도록 하는 기술들의 집합을 나타내고, GPUDirect RDMA 기술은 GPUDirect 기술 중 네트워크 어댑터인 HCA(host channel adapter)(205, 250)를 활용해 원격 서버의 GPU 메모리에 직접적으로 접근할 수 있도록 하는 기술을 나타낼 수 있다.According to one embodiment, GPUDirect RDMA (remote direct memory access) technology may refer to a technology that enables direct data transmission and reception between a GPU device memory in a local environment and a GPU device memory in a remote environment. More specifically, the GPUDirect technology refers to a set of technologies that enable direct communication between GPUs or between a GPU and a third-party device without copying to the host memory of a CPU, and the GPUDirect RDMA technology may refer to a technology that enables direct access to the GPU memory of a remote server by utilizing a host channel adapter (HCA) (205, 250), which is a network adapter among the GPUDirect technologies.
일 실시 예에 따르면, GPU에서 연산 처리가 수행될 때 CUDA API를 사용하여 GPU 디바이스 메모리가 활용될 수 있다. 이때, GPUDirect RDMA 기술이 사용되지 않는 시스템의 경우, 로컬 환경의 디바이스 메모리에서 호스트 메모리로 데이터가 복사되고, HCA를 통해 로컬 환경의 호스트 메모리에서 원격 환경의 호스트 메모리로 복사된 후, 호스트 메모리에서 디바이스 메모리로 데이터가 복사되는 과정이 수행되어야 한다. 그러나, GPUDirect RDMA 기술이 지원되는 시스템의 경우, 로컬 환경의 디바이스 메모리에서 원격 환경의 디바이스 메모리로 데이터가 직접적으로 전달될 수 있다. 이에 따라, 호스트 메모리와 디바이스 메모리 간의 불필요한 복사가 감소됨으로써 하나 이상의 GPU 메모리들이 향상된 전송 속도로 데이터를 송·수신하여 병렬 연산 성능이 향상되는 기술적 효과를 얻을 수 있다. 그리고 이를 통해, 전체적인 암호 분석 시스템의 연산 시간이 단축되는 기술적 효과 얻을 수 있다.According to one embodiment, when computational processing is performed on a GPU, the GPU device memory may be utilized using the CUDA API. At this time, in the case of a system in which GPUDirect RDMA technology is not used, data must be copied from the device memory of a local environment to the host memory, copied from the host memory of the local environment to the host memory of a remote environment through the HCA, and then copied from the host memory to the device memory. However, in the case of a system in which GPUDirect RDMA technology is supported, data can be directly transferred from the device memory of a local environment to the device memory of a remote environment. Accordingly, unnecessary copying between the host memory and the device memory is reduced, so that one or more GPU memories can transmit and receive data at an improved transmission speed, thereby obtaining a technical effect of improving parallel computational performance. In addition, through this, a technical effect of shortening the computation time of the overall cryptographic analysis system can be obtained.
일 실시 예에 따르면, Remote MPI(message passing interface) 클러스터링 기술은 서버에게 프로세스를 할당하여 로컬 서버와 원격 서버가 병렬적으로 동시에 프로그램을 실행 가능케 하는 기술을 나타낼 수 있다. 보다 구체적으로, Remote MPI 클러스터링 기술은 서로 다른 프로세서 간 공유 메모리를 사용하지 않고, 별도의 메시지라는 메모리를 선언하여 태그 값을 프로세스의 고유값으로 활용해 프로세스들을 구분함으로써, MPI API를 활용하여 프로세서 간 데이터를 송수신하고 다수의 프로세스에 작업을 할당하여 병렬적으로 작업을 수행 가능케하는 기술을 나타낼 수 있다. 이에 따라, Remote MPI 클러스터링 기술이 사용됨으로써, 컴퓨터 자원이 보다 효율적으로 활용되는 기술적 효과를 얻을 수 있다.According to one embodiment, the Remote MPI (message passing interface) clustering technology may refer to a technology that allocates a process to a server so that a local server and a remote server can execute a program in parallel and at the same time. More specifically, the Remote MPI clustering technology may refer to a technology that does not use shared memory between different processors, but declares a separate memory called a message, and uses a tag value as a unique value of the process to distinguish the processes, thereby utilizing the MPI API to transmit and receive data between processors and allocates work to multiple processes so that work can be performed in parallel. Accordingly, by using the Remote MPI clustering technology, a technical effect of more efficient utilization of computer resources can be obtained.
일 실시 예에 따르면, Cuda-Aware MPI 기술은 하나의 MPI 데이터 전송 명령어를 통해 GPU의 디바이스 메모리 간의 데이터 송수신을 가능케 하는 기술을 나타낼 수 있다. 보다 구체적으로, Cuda-Aware MPI 기술은 통합(unified) 메모리 개념을 도입하여, 호스트 메모리 영역과 디바이스 메모리 영역을 하나의 가상 주소로 접근 가능하게 함으로써, GPU의 디바이스 메모리에서 CPU의 호스트 메모리로의 불필요한 데이터 복사 과정을 생략 가능케 하는 기술을 나타낼 수 있다.According to one embodiment, the Cuda-Aware MPI technology may refer to a technology that enables data transmission and reception between the device memories of a GPU through a single MPI data transfer command. More specifically, the Cuda-Aware MPI technology may refer to a technology that enables the host memory area and the device memory area to be accessed with a single virtual address by introducing the concept of unified memory, thereby omitting an unnecessary data copy process from the device memory of the GPU to the host memory of the CPU.
도 2를 참조하면, 전자 장치(100)의 제1 디바이스 메모리(245)에서 원격 서버(200)의 제m 디바이스 메모리(285)로 데이터가 전송될 때, 전술한 GPUDirect RDMA, Remote-MPI 클러스터링, Cuda-Aware MPI 등의 기술들이 사용될 수 있다.Referring to FIG. 2, when data is transmitted from the first device memory (245) of the electronic device (100) to the m device memory (285) of the remote server (200), technologies such as the aforementioned GPUDirect RDMA, Remote-MPI clustering, and Cuda-Aware MPI may be used.
보다 구체적으로, CUDA-Aware MPI 기술에 기초하여, 통합 메모리(225, 265)를 통해 디바이스 메모리(245, 285)의 주소에 대한 접근이 진행될 수 있다. 또한, GPUDirect RDMA 기술에 기초하여, 데이터는 제1 CPU(210)의 제1 호스트 메모리(230)에 복사되지 않고 전자 장치(100)의 HCA(205)를 통해 원격 서버(200)의 HCA(250)에게 직접적으로 전달될 수 있다. 이때, 원격 서버(200)가 수신한 데이터는 제m CPU(255)의 제m 호스트 메모리(270)에 복사되지 않고, 원격 서버의 통합 메모리(265) 내에 할당된 제m 디바이스 메모리(285)의 주소로 전달 될 수 있다. 또한, Remote MPI Clustering 기술에 기초하여, 전자 장치(100)와 원격 서버(200)에서 MPI 컴파일러로 컴파일된 동일한 프로그램이 병렬적으로 실행됨으로써, 해당 데이터 전송 과정이 진행될 수 있다.More specifically, based on the CUDA-Aware MPI technology, access to the address of the device memory (245, 285) can be performed through the unified memory (225, 265). In addition, based on the GPUDirect RDMA technology, data can be directly transferred to the HCA (250) of the remote server (200) through the HCA (205) of the electronic device (100) without being copied to the first host memory (230) of the first CPU (210). At this time, the data received by the remote server (200) can be transferred to the address of the m device memory (285) allocated within the unified memory (265) of the remote server without being copied to the m host memory (270) of the m CPU (255). In addition, based on the Remote MPI Clustering technology, the data transmission process can be performed by executing the same program compiled with the MPI compiler in the electronic device (100) and the remote server (200) in parallel.
일 실시 예에 따르면, 전자 장치(100)의 제1 CPU(210)는 CPU 마스터(215) 또는 하나 이상의 CPU 워커(220)를 포함할 수 있고, 제1 GPU(235)는 하나 이상의 GPU 워커(240)를 포함할 수 있다. 또한, 원격 서버(200)의 제m CPU(255)는 하나 이상의 CPU 워커(260)를 포함할 수 있고, 제m GPU(275)는 하나 이상의 GPU 워커(280)를 포함할 수 있다.According to one embodiment, the first CPU (210) of the electronic device (100) may include a CPU master (215) or one or more CPU workers (220), and the first GPU (235) may include one or more GPU workers (240). Additionally, the m CPU (255) of the remote server (200) may include one or more CPU workers (260), and the m GPU (275) may include one or more GPU workers (280).
이때, CPU 마스터(215)는 마스터 노드에 할당된 제1 CPU(210)의 부분 집합을 나타낼 수 있고, 하나 이상의 CPU 워커(220)는 워커 노드에 할당된 제1 CPU(210)의 부분 집합을 나타낼 수 있으며, 하나 이상의 GPU 워커(240)는 워커 노드에 할당된 제1 GPU(235)의 부분 집합을 나타낼 수 있다. 또한, 하나 이상의 CPU 워커(260)는 워커 노드에 할당된 제m CPU(255)의 부분 집합을 나타낼 수 있고, 하나 이상의 GPU 워커(280)는 워커 노드에 할당된 제m GPU(275)의 부분 집합을 나타낼 수 있다. 마스터 노드 및 워커 노드에 대한 보다 자세한 설명은 도 3 및 도 4를 참조하여 설명하기로 한다.At this time, the CPU master (215) may represent a subset of the first CPU (210) assigned to the master node, one or more CPU workers (220) may represent a subset of the first CPU (210) assigned to the worker node, and one or more GPU workers (240) may represent a subset of the first GPU (235) assigned to the worker node. In addition, one or more CPU workers (260) may represent a subset of the m CPU (255) assigned to the worker node, and one or more GPU workers (280) may represent a subset of the m GPU (275) assigned to the worker node. A more detailed description of the master node and the worker node will be described with reference to FIGS. 3 and 4.
도 3은 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다.Figure 3 illustrates how a master-worker pattern system operates according to one embodiment.
일 실시 예에 따르면, 전자 장치(100)에서 마스터 노드(320)가 생성될 수 있고, 원격 서버(300)에서 N개의 워커 노드들(340, 360, 380)이 생성될 수 있다. 이때, 노드는 논리적인 개념으로서, 노드는 각각에게 할당된 CPU 또는 GPU를 활용하여, 마스터 노드(320) 또는 워커 노드(340, 360, 380)의 역할을 수행할 수 있다.According to one embodiment, a master node (320) may be created in an electronic device (100), and N worker nodes (340, 360, 380) may be created in a remote server (300). At this time, the node is a logical concept, and each node may perform the role of a master node (320) or a worker node (340, 360, 380) by utilizing a CPU or GPU allocated to each node.
일 실시 예에 따르면, 전자 장치(100)는 데이터의 양, 수행될 역할의 양, 원격 서버(300) 내 GPU의 수 중 적어도 하나에 기초하여, 생성될 워커 노드의 수를 결정할 수 있다. 예를 들어, 데이터의 양이 많은 경우, 수행될 역할의 양이 많은 경우 또는 원격 서버(300) 내 GPU의 수가 많은 경우, 전자 장치(100)는 보다 많은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 또는, 데이터의 양이 적은 경우, 수행될 역할의 양이 적은 경우 또는 원격 서버(300) 내 GPU의 수가 적은 경우, 전자 장치(100)는 보다 적은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 다만, 이는 일 실시 예에 불과하며, 전자 장치(100)는 전술한 바와 상이한 방식으로 워커 노드의 수를 결정하거나, 다른 요인에 기초하여 워커 노드의 수를 결정할 수 있다.According to one embodiment, the electronic device (100) may determine the number of worker nodes to be created based on at least one of the amount of data, the amount of roles to be performed, and the number of GPUs in the remote server (300). For example, if the amount of data is large, if the amount of roles to be performed is large, or if the number of GPUs in the remote server (300) is large, the electronic device (100) may decide to create a larger number of worker nodes. Alternatively, if the amount of data is small, if the amount of roles to be performed is small, or if the number of GPUs in the remote server (300) is small, the electronic device (100) may decide to create a smaller number of worker nodes. However, this is only one embodiment, and the electronic device (100) may determine the number of worker nodes in a different manner than described above or based on other factors.
일 실시 예에 따르면, 마스터 노드(320)는 자신에게 할당된 CPU 및 호스트 메모리를 활용하여, 대용량 데이터와 수행할 역할을 분할하고, 분할된 데이터와 역할을 HCA를 통해 각각의 워커 노드들(340, 360, 380)에게 분배할 수 있다.According to one embodiment, the master node (320) can divide large amounts of data and roles to be performed by utilizing the CPU and host memory allocated to it, and distribute the divided data and roles to each worker node (340, 360, 380) through the HCA.
이때, 마스터 노드(320)는 워커 노드들(340, 360, 380) 각각에 대응하는 GPU의 수 및 성능 중 적어도 하나에 기초하여, 워커 노드들(340, 360, 380)에게 할당할 대용량 데이터와 수행할 역할을 분할할 수 있다. 예를 들어, 마스터 노드(320)는 보다 많은 수의 GPU가 할당된 워커 노드 또는 보다 높은 성능의 GPU가 할당된 워커 노드에게 많은 양의 데이터 및 역할을 분배할 수 있다. 또는, 마스터 노드(320)는 보다 적은 수의 GPU가 할당된 워커 노드 또는 보다 낮은 성능의 GPU가 할당된 워커 노드에게 적은 양의 데이터 및 역할을 분배할 수 있다.At this time, the master node (320) can divide the large amount of data to be allocated and the role to be performed to the worker nodes (340, 360, 380) based on at least one of the number and performance of the GPUs corresponding to each of the worker nodes (340, 360, 380). For example, the master node (320) can distribute a large amount of data and a role to a worker node to which a larger number of GPUs are allocated or a worker node to which a higher-performance GPU is allocated. Alternatively, the master node (320) can distribute a small amount of data and a role to a worker node to which a smaller number of GPUs are allocated or a worker node to which a lower-performance GPU is allocated.
일 실시 예에 따르면, 워커(worker) 노드들(340, 360, 380)은 HCA를 통해 마스터 노드(320)로부터 대용량 데이터 및 수행할 역할을 수신하고, 자신에게 할당된 CPU, GPU 및 디바이스 메모리를 활용하여 할당 받은 역할을 수행할 수 있다.According to one embodiment, worker nodes (340, 360, 380) can receive large amounts of data and roles to be performed from the master node (320) through the HCA, and perform the assigned roles by utilizing the CPU, GPU, and device memory assigned to them.
일 실시 예에 따르면, MPI 병렬 프로그래밍에서 실행되는 프로세스들은 Rank 0부터 병렬 수행되는 프로세스의 수까지 각각의 Rank 번호가 부여될 수 있다. 이에 따라, 마스터 노드(320)는 Rank 0의 프로세스를 수행하고, 제1 워커 노드(340)는 Rank 1의 프로세스를 수행하며, 제2 워커 노드(360)는 Rank 2의 프로세스를 수행하고, 제N 워커 노드(380)는 Rank N의 프로세스를 수행할 수 있다.According to one embodiment, processes executed in MPI parallel programming may be assigned a Rank number from Rank 0 to the number of processes being executed in parallel. Accordingly, the master node (320) may perform a process of Rank 0, the first worker node (340) may perform a process of Rank 1, the second worker node (360) may perform a process of Rank 2, and the Nth worker node (380) may perform a process of Rank N.
도 4는 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다. 도 3과 관련하여 전술한 내용과 중복되는 내용은 생략하거나 간략히 설명하기로 한다.Fig. 4 illustrates the operation of a master-worker pattern system according to one embodiment. Any content that overlaps with the content described above with respect to Fig. 3 will be omitted or briefly described.
일 실시 예에 따르면, 전자 장치(100)에서 마스터 노드(400) 및 (N-1)개의 워커 노드들(420, 440, 460)이 생성될 수 있다. 즉, 전자 장치(100)에서 마스터 노드(320)만이 생성되었던 도 3의 시스템과는 달리, 도 4의 시스템에서는 마스터 노드(400)뿐만 아니라 워커 노드들(420, 440, 460)도 전자 장치(100)에서 생성될 수 있다. 이를 통해, 마스터 노드가 데이터 및 역할을 분배하기 위해 사용된 전자 장치(100)의 하드웨어 자원이 워커 노드가 분배된 역할을 수행하기 위해서도 사용될 수 있다.According to one embodiment, a master node (400) and (N-1) worker nodes (420, 440, 460) may be created in the electronic device (100). That is, unlike the system of FIG. 3 in which only the master node (320) was created in the electronic device (100), in the system of FIG. 4, not only the master node (400) but also the worker nodes (420, 440, 460) may be created in the electronic device (100). Through this, the hardware resources of the electronic device (100) used by the master node to distribute data and roles may also be used by the worker nodes to perform the distributed roles.
일 실시 예에 따르면, 전자 장치(100)는 데이터의 양, 수행될 역할의 양, 전자 장치(100) 내 GPU의 수 중 적어도 하나에 기초하여, 생성될 워커 노드의 수를 결정할 수 있다. 예를 들어, 데이터의 양이 많은 경우, 수행될 역할의 양이 많은 경우 또는 전자 장치(100) 내 GPU의 수가 많은 경우, 전자 장치(100)는 보다 많은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 또는, 데이터의 양이 적은 경우, 수행될 역할의 양이 적은 경우 또는 전자 장치(100) 내 GPU의 수가 적은 경우, 전자 장치(100)는 보다 적은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 다만 이는 일 실시 예에 불과하며, 전자 장치(100)는 전술한 바와 상이한 방식으로 워커 노드의 수를 결정하거나, 다른 요인에 기초하여 워커 노드의 수를 결정할 수 있다.According to one embodiment, the electronic device (100) may determine the number of worker nodes to be generated based on at least one of the amount of data, the amount of roles to be performed, and the number of GPUs in the electronic device (100). For example, when the amount of data is large, the amount of roles to be performed is large, or the number of GPUs in the electronic device (100) is large, the electronic device (100) may decide to generate a larger number of worker nodes. Alternatively, when the amount of data is small, the amount of roles to be performed is small, or the number of GPUs in the electronic device (100) is small, the electronic device (100) may decide to generate a smaller number of worker nodes. However, this is only one embodiment, and the electronic device (100) may determine the number of worker nodes in a different manner than described above or based on other factors.
일 실시 예에 따르면, 마스터 노드(400)는 자신에게 할당된 CPU 및 호스트 메모리를 활용하여, 대용량 데이터와 수행할 역할을 분할하고, 분할된 데이터와 역할을 각각의 워커 노드들(420, 440, 460)에게 분배할 수 있다.According to one embodiment, the master node (400) can divide large amounts of data and roles to be performed by utilizing the CPU and host memory allocated to it, and distribute the divided data and roles to each of the worker nodes (420, 440, 460).
이때, 마스터 노드(400)는 워커 노드들(420, 440, 460) 각각에 대응하는 GPU의 수 및 성능 중 적어도 하나에 기초하여, 워커 노드들(420, 440, 460)에게 할당할 대용량 데이터와 수행할 역할을 분할할 수 있다. 예를 들어, 마스터 노드(400)는 보다 많은 수의 GPU가 할당된 워커 노드 또는 보다 높은 성능의 GPU가 할당된 워커 노드에게 많은 양의 데이터 및 역할을 분배할 수 있다. 또는, 마스터 노드(400)는 보다 적은 수의 GPU가 할당된 워커 노드 또는 보다 낮은 성능의 GPU가 할당된 워커 노드에게 적은 양의 데이터 및 역할을 분배할 수 있다.At this time, the master node (400) can divide the large amount of data to be allocated and the role to be performed to the worker nodes (420, 440, 460) based on at least one of the number and performance of the GPUs corresponding to each of the worker nodes (420, 440, 460). For example, the master node (400) can distribute a large amount of data and a role to a worker node to which a larger number of GPUs are allocated or a worker node to which a higher-performance GPU is allocated. Alternatively, the master node (400) can distribute a small amount of data and a role to a worker node to which a smaller number of GPUs are allocated or a worker node to which a lower-performance GPU is allocated.
일 실시 예에 따르면, 워커 노드들(420, 440, 460)은 마스터 노드(400)로부터 대용량 데이터 및 수행할 역할을 수신하고, 자신에게 할당된 CPU, GPU 및 디바이스 메모리를 활용하여 할당 받은 역할을 수행할 수 있다.According to one embodiment, worker nodes (420, 440, 460) can receive large amounts of data and roles to be performed from the master node (400) and perform the assigned roles by utilizing the CPU, GPU, and device memory assigned to them.
일 실시 예에 따르면, 시스템 내에 전자 장치(100)를 제외한 (M-1)개의 원격 서버들이 존재하고, 각각의 서버가 최대 N개의 워커 노드들을 생성할 수 있는 경우, 전자 장치(100)에서 최대 (N-1)개의 워커 노드들이 생성될 수 있고, (M-1)개의 원격 서버에서 최대 N*(M-1)개의 워커 노드들이 생성될 수 있다. 이에 따라, 시스템 내에서 최대 (N*M-1)개의 워커 노드들이 생성될 수 있고, 최대 (N*M-1)개의 워커 노드들은 각각 Rank 1의 프로세스부터 Rank N*M-1의 프로세스를 수행할 수 있다.According to one embodiment, if there are (M-1) remote servers excluding the electronic device (100) in the system, and each server can create at most N worker nodes, at most (N-1) worker nodes can be created in the electronic device (100), and at most N*(M-1) worker nodes can be created in the (M-1) remote servers. Accordingly, at most (N*M-1) worker nodes can be created in the system, and at most (N*M-1) worker nodes can perform processes of Rank 1 to Rank N*M-1, respectively.
일 실시 예에 따르면, 도 4와 같이 설계된 마스터-워커 패턴의 시스템에서 전수 조사(brute-force) 암호 분석이 수행될 수 있다. 보다 구체적으로, 마스터 노드(400)는 분석하고자 하는 대용량의 암호문을 최대 (N*M-1)개의 워커 노드들의 수로 분할하고 워커 노드들에게 분배할 수 있다. 각각의 워커 노드는 분배 받은 암호문을 병렬적으로 해독하여 목표하는 평문을 찾을 수 있다.According to one embodiment, brute-force ciphertext analysis can be performed in a system of a master-worker pattern designed as in FIG. 4. More specifically, the master node (400) can divide a large amount of ciphertext to be analyzed into a maximum number of (N*M-1) worker nodes and distribute it to the worker nodes. Each worker node can decrypt the distributed ciphertext in parallel to find the target plaintext.
도 5는 일 실시 예에 따른 마스터-워커 패턴 시스템의 작동 방식을 나타낸다. 도 3 및 도 4와 관련하여 전술한 내용과 중복되는 내용은 생략하거나 간략히 설명하기로 한다.Fig. 5 illustrates the operation of a master-worker pattern system according to one embodiment. Any content that overlaps with the content described above with respect to Figs. 3 and 4 will be omitted or briefly described.
일 실시 예에 따르면, 시스템 내에 전자 장치(100)를 제외한 (M-1)개의 원격 서버들이 존재하고, 각각의 서버가 최대 N개의 워커 노드를 생성할 수 있는 경우, 전자 장치(100)에서 1개의 마스터 노드와 최대 (N-1)개의 워커 노드들이 생성될 수 있고, (M-1)개의 원격 서버에서 최대 N*(M-1)개의 워커 노드들이 생성될 수 있다. 이에 따라, 시스템 내에서 1개의 마스터 노드와 최대 (N*M-1)개의 워커 노드들이 생성될 수 있고, 마스터 노드는 Rank 0의 프로세스를 수행하고, 최대 (N*M-1)개의 워커 노드들은 각각 Rank 1의 프로세스부터 Rank N*M-1의 프로세스를 수행할 수 있다.According to one embodiment, if there are (M-1) remote servers excluding the electronic device (100) in the system, and each server can create at most N worker nodes, one master node and at most (N-1) worker nodes can be created in the electronic device (100), and at most N*(M-1) worker nodes can be created in the (M-1) remote servers. Accordingly, one master node and at most (N*M-1) worker nodes can be created in the system, the master node can perform a process of Rank 0, and at most (N*M-1) worker nodes can perform processes of Rank 1 to Rank N*M-1, respectively.
일 실시 예에 따르면, 워커 노드들 간 상호 작용이 요구되는 경우, 시스템은 도 5에 도시된 바와 같이 설계될 수 있다. 예를 들어, 원격 서버(500)에서 생성된 N개의 워커 노드 각각에게 제m CPU의 일부가 할당될 수 있고, N개의 워커 노드 각각에게 할당된 제m CPU의 부분 집합 간에 또는 N개의 CPU 워커 간에 데이터가 송수신될 수 있다.In one embodiment, when interaction between worker nodes is required, the system may be designed as illustrated in FIG. 5. For example, a portion of the m CPU may be allocated to each of the N worker nodes generated in the remote server (500), and data may be transmitted and received between the subsets of the m CPU allocated to each of the N worker nodes or between the N CPU workers.
일 실시 예에 따르면, 전자 장치(100)에서 생성된 마스터 노드는 Rank 0의 프로세스를 수행하여, 최대 (N*M-1)개의 워커 노드들에게 대용량의 데이터와 일을 분배할 수 있다. 전자 장치(100) 및 원격 서버(500)를 포함한 최대 M개의 서버에서 생성된 최대 (N*M-1)개의 워커 노드들은 각각 Rank 1의 프로세스부터 Rank N*M-1의 프로세스를 수행하여, 특정 암호 분석 연산을 수행하고 해당 결과 값을 워커 노드들끼리 송·수신하여 최종적인 암호 분석을 수행할 수 있다. 이때, 다른 서버 내에 할당된 워커 노드들끼리 연산 결과 값을 송·수신하는 과정에서 HCA를 활용한 GPUDirect RDMA 기술이 활용되어, 보다 빠른 데이터 전송으로 고성능의 암호 분석이 수행될 수 있다.According to one embodiment, a master node generated in an electronic device (100) can perform a process of Rank 0 to distribute a large amount of data and work to a maximum of (N*M-1) worker nodes. A maximum of (N*M-1) worker nodes generated in a maximum of M servers including the electronic device (100) and a remote server (500) can perform processes of Rank 1 to Rank N*M-1, respectively, to perform specific cryptographic analysis operations and transmit and receive the corresponding result values between the worker nodes to perform the final cryptographic analysis. At this time, GPUDirect RDMA technology utilizing HCA is utilized in the process of transmitting and receiving the calculation result values between worker nodes allocated in different servers, so that high-performance cryptographic analysis can be performed with faster data transmission.
일 실시 예에 따르면, 도 5와 같이 설계된 마스터-워커 패턴의 시스템에서, 워커 노드들의 독립적인 연산 수행과 더불어 워커 노드들끼리의 상호 작용이 요구되는 행렬 곱 연산 고속화를 활용한 암호 분석이 수행될 수 있다. 보다 구체적으로, 마스터 노드는 큰 스케일의 행렬 연산을 최대 (N*M-1)개의 워커 노드의 수로 분할하여 각각의 워커들에게 분배할 수 있다. 워커 노드들은 분배된 작은 행렬 연산 문제를 해결하고, 그 결과 값을 사용해 더 큰 행렬 연산 문제를 해결하는 워커 노드에게 해당 결과 값을 송신할 수 있다. 이와 같은 연산 과정이 반복되어 최종적으로 목표하는 큰 스케일의 행렬 문제가 해결될 수 있다.According to one embodiment, in a system having a master-worker pattern designed as in FIG. 5, cryptographic analysis can be performed by utilizing acceleration of matrix multiplication operations that require interaction between worker nodes as well as independent computational performance of worker nodes. More specifically, the master node can divide a large-scale matrix operation into a maximum number of (N*M-1) worker nodes and distribute it to each worker. The worker nodes can solve the distributed small matrix operation problems and transmit the result values to the worker nodes that solve a larger matrix operation problem using the result values. This computational process is repeated so that the target large-scale matrix problem can be ultimately solved.
도 6a 내지 도 6c는 일 실시 예에 따른 전자 장치(100)가 암호를 분석하는 과정을 설명하기 위한 도면이다.FIGS. 6A to 6C are drawings for explaining a process in which an electronic device (100) analyzes a password according to one embodiment.
일 실시 예에 따르면, 시스템 내에 전자 장치(100)를 제외한 (M-1)개의 원격 서버들이 존재하고, 각각의 서버가 최대 N개의 워커 노드를 생성할 수 있는 경우, 전자 장치(100)에서 1개의 마스터 노드(600)와 최대 (N-1)개의 워커 노드들이 생성될 수 있고, (M-1)개의 원격 서버에서 최대 N*(M-1)개의 워커 노드들이 생성될 수 있다. 이에 따라, 시스템 내에서 1개의 마스터 노드(600)와 최대 (N*M-1)개의 워커 노드들(610, 620, 630, 640)이 생성될 수 있고, 마스터 노드(600)는 Rank 0의 프로세스를 수행하고, 최대 (N*M-1)개의 워커 노드들(610, 620, 630, 640)은 각각 Rank 1의 프로세스부터 Rank N*M-1의 프로세스를 수행할 수 있다.According to one embodiment, if there are (M-1) remote servers excluding the electronic device (100) in the system, and each server can create at most N worker nodes, one master node (600) and at most (N-1) worker nodes can be created in the electronic device (100), and at most N*(M-1) worker nodes can be created in the (M-1) remote servers. Accordingly, one master node (600) and at most (N*M-1) worker nodes (610, 620, 630, 640) can be created in the system, and the master node (600) can perform a process of Rank 0, and at most (N*M-1) worker nodes (610, 620, 630, 640) can perform processes of Rank 1 to Rank N*M-1, respectively.
일 실시 예에 따르면, 전술한 시스템에서 패스워드 크래킹(password cracking)의 암호 분석 기술이 수행될 수 있다. 패스워드 크래킹은 정답이 될 수 있는 모든 후보 평문에 대한 암호화를 진행하고, 순차적인 비교를 통해 목표하는 암호문과 동일한 암호 값을 탐색하여, 최종적으로 암호화가 되지 않는 정답 평문을 찾기 위한 암호 분석 기술을 나타낼 수 있다.According to one embodiment, a password cracking cryptographic analysis technique can be performed in the aforementioned system. Password cracking can be a cryptographic analysis technique that performs encryption on all candidate plaintexts that can be correct answers, searches for a password value that is identical to the target ciphertext through sequential comparison, and finally finds the correct plaintext that is not encrypted.
예를 들어, 전자 장치(100) 또는 마스터 노드(600)는 복수의 후보 평문들의 집합인 딕셔너리(dictionary) 파일, 해독하고자 하는 암호문 및 하나 이상의 암호화 알고리즘을 소유할 수 있다. 암호문을 복호화하여 얻어지는 평문을 획득하기 위하여, 전자 장치(100) 또는 마스터 노드(600)는 딕셔너리 파일을 워커 노드들(610, 620, 630, 640)의 수에 기초하여 분할하고, 분할된 딕셔너리 파일 및 암호문을 워커 노드들(610, 620, 630, 640)에게 분배할 수 있다. 워커 노드들(610, 620, 630, 640)은 수신한 딕셔너리 파일에 포함된 후보 평문들을 암호화 알고리즘에 따라 암호화하고, 암호화된 결과 값이 암호문과 동일한지 여부를 확인할 수 있다. 워커 노드들(610, 620, 630, 640)이 암호문과 동일한 결과 값을 확인하는 경우, 해당 결과 값에 대응하는 후보 평문이 출력됨으로써 암호 분석 작업이 중단될 수 있다.For example, the electronic device (100) or the master node (600) may possess a dictionary file which is a collection of a plurality of candidate plaintexts, a ciphertext to be decrypted, and one or more encryption algorithms. In order to obtain a plaintext obtained by decrypting the ciphertext, the electronic device (100) or the master node (600) may divide the dictionary file based on the number of worker nodes (610, 620, 630, 640) and distribute the divided dictionary file and ciphertext to the worker nodes (610, 620, 630, 640). The worker nodes (610, 620, 630, 640) may encrypt candidate plaintexts included in the received dictionary file according to an encryption algorithm and check whether the encrypted result value is identical to the ciphertext. If the worker nodes (610, 620, 630, 640) confirm that the result value is identical to the ciphertext, the cipher analysis task can be stopped by outputting the candidate plaintext corresponding to the result value.
전자 장치(100) 및 하나 이상의 원격 서버에 의해 패스워드 크래킹의 암호 분석 기술이 수행되는 보다 구체적인 과정은 다음과 같다.A more specific process of performing a cryptographic analysis technique for password cracking by an electronic device (100) and one or more remote servers is as follows.
일 실시 예에 따르면, 전자 장치(100) 또는 마스터 노드(600)는 전자 장치(100) 및 하나 이상의 원격 서버 중 적어도 하나에 대응하는 워커 노드들(610, 620, 630, 640)을 확인할 수 있다. 이때, 전자 장치(100) 또는 마스터 노드(600)는 복수의 후보 평문들의 수, 하나 이상의 암호화 알고리즘의 수, 하나 이상의 원격 서버의 수, 전자 장치 내 GPU의 수 및 하나 이상의 원격 서버 내 GPU의 수 중 적어도 하나에 기초하여, 하나 이상의 워커 노드의 수를 결정할 수 있다.According to one embodiment, the electronic device (100) or the master node (600) may identify worker nodes (610, 620, 630, 640) corresponding to at least one of the electronic device (100) and one or more remote servers. At this time, the electronic device (100) or the master node (600) may determine the number of one or more worker nodes based on at least one of the number of multiple candidate plaintexts, the number of one or more encryption algorithms, the number of one or more remote servers, the number of GPUs in the electronic device, and the number of GPUs in the one or more remote servers.
예를 들어, 후보 평문들의 수가 많은 경우, 암호화 알고리즘의 수가 많은 경우, 원격 서버의 수가 많은 경우, 전자 장치(100) 내 GPU의 수가 많은 경우 또는 원격 서버 내 GPU의 수가 많은 경우, 전자 장치(100) 또는 마스터 노드(600)는 보다 많은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 또는, 후보 평문들의 수가 적은 경우, 암호화 알고리즘의 수가 적은 경우, 원격 서버의 수가 적은 경우, 전자 장치(100) 내 GPU의 수가 적은 경우 또는 원격 서버 내 GPU의 수가 적은 경우, 전자 장치(100) 또는 마스터 노드(600)는 보다 적은 수의 워커 노드를 생성하는 것으로 결정할 수 있다. 다만, 이는 일 실시 예에 불과하며, 전자 장치(100) 또는 마스터 노드(600)는 전술한 바와 상이한 방식으로 워커 노드의 수를 결정하거나, 다른 요인에 기초하여 워커 노드의 수를 결정할 수 있다.For example, when the number of candidate plaintexts is large, when the number of encryption algorithms is large, when the number of remote servers is large, when the number of GPUs in the electronic device (100) is large, or when the number of GPUs in the remote servers is large, the electronic device (100) or the master node (600) may decide to generate a larger number of worker nodes. Alternatively, when the number of candidate plaintexts is small, when the number of encryption algorithms is small, when the number of remote servers is small, when the number of GPUs in the electronic device (100) is small, or when the number of GPUs in the remote servers is small, the electronic device (100) or the master node (600) may decide to generate a smaller number of worker nodes. However, this is only an example, and the electronic device (100) or the master node (600) may determine the number of worker nodes in a different manner than described above or based on other factors.
일 실시 예에 따르면, 전자 장치(100) 또는 마스터 노드(600)는 암호문을 워커 노드들(610, 620, 630, 640)에게 브로드캐스팅할 수 있다. 예를 들어, 도 6a를 참조하면, 전자 장치(100) 또는 마스터 노드(600)는 MPI 브로드캐스팅 API(MPI_Bcast())를 통해, 워커 노드들(610, 620, 630, 640)에게 암호문을 브로드캐스팅할 수 있다.According to one embodiment, the electronic device (100) or the master node (600) may broadcast a ciphertext to the worker nodes (610, 620, 630, 640). For example, referring to FIG. 6A, the electronic device (100) or the master node (600) may broadcast a ciphertext to the worker nodes (610, 620, 630, 640) through the MPI broadcasting API (MPI_Bcast()).
일 실시 예에 따르면, 전자 장치(100) 또는 마스터 노드(600)는 워커 노드들(610, 620, 630, 640)의 수에 기초하여, 복수의 후보 평문들을 분할할 수 있다. 예를 들어, (N*M-1)개의 워커 노드들이 존재하는 경우, 전자 장치(100) 또는 마스터 노드(600)는 전체 딕셔너리 파일을 통합 메모리로 로드한 후, 로드된 딕셔너리 파일을 (N*M-1)개로 분할할 수 있다.According to one embodiment, the electronic device (100) or the master node (600) may split a plurality of candidate plaintexts based on the number of worker nodes (610, 620, 630, 640). For example, when there are (N*M-1) worker nodes, the electronic device (100) or the master node (600) may load the entire dictionary file into the unified memory and then split the loaded dictionary file into (N*M-1).
일 실시 예에 따르면, 전자 장치(100) 또는 마스터 노드(600)는 워커 노드들(610, 620, 630, 640)에 대응하는 GPU의 수 및 성능 중 적어도 하나에 기초하여, 복수의 후보 평문들을 분할할 수 있다. 예를 들어, 전자 장치(100) 또는 마스터 노드(600)는 보다 많은 수의 GPU가 할당된 워커 노드 또는 보다 높은 성능의 GPU가 할당된 워커 노드에게 많은 양의 후보 평문을 할당할 수 있다. 또는, 전자 장치(100) 또는 마스터 노드(600)는 보다 적은 수의 GPU가 할당된 워커 노드 또는 보다 낮은 성능의 GPU가 할당된 워커 노드에게 적은 양의 후보 평문을 할당할 수 있다.According to one embodiment, the electronic device (100) or the master node (600) may split the plurality of candidate plaintexts based on at least one of the number and performance of GPUs corresponding to the worker nodes (610, 620, 630, 640). For example, the electronic device (100) or the master node (600) may allocate a large amount of candidate plaintexts to a worker node to which a larger number of GPUs are allocated or to a worker node to which a higher performance GPU is allocated. Alternatively, the electronic device (100) or the master node (600) may allocate a small amount of candidate plaintexts to a worker node to which a smaller number of GPUs are allocated or to a worker node to which a lower performance GPU is allocated.
일 실시 예에 따르면, 전자 장치(100) 또는 마스터 노드(600)는 분할된 딕셔너리 파일을 워커 노드들(610, 620, 630, 640)에게 송신할 수 있다. 예를 들어, 도 6b를 참조하면, 전자 장치(100) 또는 마스터 노드(600)는, MPI 송신 API(MPI_Isend())를 통해 분할된 딕셔너리 파일이 로드된 통합 메모리의 주소 값을 워커 노드들(610, 620, 630, 640)에게 각각으로 송신할 수 있다.According to one embodiment, the electronic device (100) or the master node (600) may transmit the segmented dictionary file to the worker nodes (610, 620, 630, 640). For example, referring to FIG. 6b, the electronic device (100) or the master node (600) may transmit the address value of the unified memory where the segmented dictionary file is loaded to each of the worker nodes (610, 620, 630, 640) through the MPI transmission API (MPI_Isend()).
S650 단계에서, 워커 노드들(610, 620, 630, 640)은 일 실시 예에 따라 전자 장치(100) 또는 마스터 노드(600)로부터 분할된 딕셔너리 파일을 수신할 수 있다. 예를 들어, 도 6b를 참조하면, 워커 노드들(610, 620, 630, 640)은 MPI 수신 API(MPI_Recv())를 통해 분할된 딕셔너리 파일이 로드된 통합 메모리의 주소 값을 수신할 수 있다.At step S650, worker nodes (610, 620, 630, 640) may receive a segmented dictionary file from the electronic device (100) or the master node (600) according to an embodiment. For example, referring to FIG. 6b, worker nodes (610, 620, 630, 640) may receive an address value of a unified memory into which a segmented dictionary file is loaded through an MPI receive API (MPI_Recv()).
S660 단계에서, 워커 노드들(610, 620, 630, 640)은 수신한 딕셔너리 파일, 암호문 및 하나 이상의 암호화 알고리즘에 수에 기초하여, 암호 분석을 수행할 수 있다. 예를 들어, 워커 노드들(610, 620, 630, 640)은 수신한 딕셔너리 파일에 포함된 후보 평문들을 하나 이상의 암호화 알고리즘에 따라 암호화하고, 암호화된 결과 값이 암호문과 일치하는지 여부를 확인할 수 있으며, 상기 과정은 일치하는 평문을 찾을 때까지 반복될 수 있다.At step S660, the worker nodes (610, 620, 630, 640) can perform cryptographic analysis based on the received dictionary file, ciphertext, and one or more encryption algorithms. For example, the worker nodes (610, 620, 630, 640) can encrypt candidate plaintexts included in the received dictionary file according to one or more encryption algorithms and check whether the encrypted result value matches the ciphertext, and the above process can be repeated until a matching plaintext is found.
S670 단계에서, 워커 노드들(610, 620, 630, 640) 중 하나의 워커 노드가 후보 평문들을 암호화한 결과 값들 중 암호문과 일치하는 결과 값을 확인한 경우, 하나의 워커 노드는 나머지 워커 노드로 작업 중단 요청을 송신하고, 모든 워커 노드의 작업이 중단될 수 있다. 예를 들어, 워커 노드들(610, 620, 630, 640) 중 하나의 워커 노드가 암호문을 복호화한 평문을 확인한 경우, 하나의 워커 노드는 MPI 중단 API(MPI_Abort())를 통해 나머지 워커 노드로 작업 중단 요청을 송신하고, 모든 워커 노드의 암호 분석 작업이 중단될 수 있다.At step S670, if one of the worker nodes (610, 620, 630, 640) verifies a result value that matches the ciphertext among the result values of encrypting the candidate plaintexts, the one worker node sends a task abort request to the remaining worker nodes, and the tasks of all worker nodes can be aborted. For example, if one of the worker nodes (610, 620, 630, 640) verifies a plaintext that is a decrypted ciphertext, the one worker node sends a task abort request to the remaining worker nodes through the MPI abort API (MPI_Abort()), and the cipher analysis tasks of all worker nodes can be aborted.
S680 단계에서, 전자 장치(100) 또는 마스터 노드(600)는 암호문과 일치하는 결과 값에 대응하는 후보 평문을 출력할 수 있다. 예를 들어, 전자 장치(100) 또는 마스터 노드(600)는 정답 평문을 확인한 워커 노드로부터 정답 평문에 관한 정보를 수신하고, 정답 평문을 출력할 수 있다.At step S680, the electronic device (100) or the master node (600) can output a candidate plaintext corresponding to a result value that matches the ciphertext. For example, the electronic device (100) or the master node (600) can receive information about the correct plaintext from a worker node that has confirmed the correct plaintext, and output the correct plaintext.
도 7a 내지 도 7c는 전자 장치(100)가 일 실시 예에 따라 암호 분석을 수행한 결과를 설명하기 위한 도면이다.FIGS. 7A to 7C are drawings for explaining the results of performing cryptographic analysis by an electronic device (100) according to one embodiment.
도 7a 내지 도 7c는 본 개시에 따라 설계된 시스템(700)을 이용하여 패스워드 크래킹의 암호 분석 기술이 수행되었을 때의 소요된 시간을 도시한다. 또한, 본 개시에 따라 설계된 시스템(700)의 암호 분석 결과의 성능을 검증하기 위하여, 기존의 시스템(750)을 이용하여 패스워드 크래킹의 암호 분석 기술이 수행되었을 때의 소요된 시간이 함께 도시된다.FIGS. 7A to 7C illustrate the time required when a cryptographic analysis technique for password cracking is performed using a system (700) designed according to the present disclosure. In addition, in order to verify the performance of the cryptographic analysis result of the system (700) designed according to the present disclosure, the time required when a cryptographic analysis technique for password cracking is performed using an existing system (750) is also illustrated.
도 7a를 참조하면, 마스터 노드가 워커 노드에게 분배하는 데이터의 크기에 따른, 암호 분석 시스템(700, 750)이 암호를 분석하는데 소요된 시간의 비교 결과가 도시된다. 보다 구체적으로, 시스템(700, 750)에서 사용되는 워커 노드의 수 및 작업해야 할 일의 수가 동일할 때, 마스터 노드가 워커 노드에게 분배하는 데이터의 크기에 따른 성능 비교 결과가 도시된다.Referring to FIG. 7a, a comparison result of the time taken by the cryptographic analysis system (700, 750) to analyze a password according to the size of data distributed from the master node to the worker nodes is illustrated. More specifically, when the number of worker nodes used in the system (700, 750) and the number of tasks to be performed are the same, a performance comparison result according to the size of data distributed from the master node to the worker nodes is illustrated.
분배되는 데이터의 양이 증가할수록 전송할 데이터의 양이 증가하므로, 본 개시에 따라 설계된 시스템(700)과 기존의 시스템(750)을 이용한 경우 모두 암호 분석 소요 시간이 증가한다. 다만, 본 개시에 따라 설계된 시스템(700)을 이용하는 경우, 최적화된 데이터 전송에 대한 효과를 통해 기존의 시스템(750)에 비해 최대 약 2배 이상 암호 분석 소요 시간이 감소하는 기술적 효과를 얻을 수 있다.As the amount of data to be distributed increases, the amount of data to be transmitted also increases, and thus the time required for cryptographic analysis increases in both the case of using the system (700) designed according to the present disclosure and the existing system (750). However, in the case of using the system (700) designed according to the present disclosure, the technical effect of reducing the cryptographic analysis time by up to about two times or more compared to the existing system (750) can be obtained through the effect of optimized data transmission.
도 7b를 참조하면, 시스템(700, 750)에서 사용되는 워커 노드의 수에 따른, 암호 분석 시스템(700, 750)이 암호를 분석하는데 소요된 시간의 비교 결과가 도시된다. 보다 구체적으로, 워커 노드 별 분배되는 데이터의 크기와 작업해야 할 일의 수가 동일할 때, 암호 분석 시스템(700, 750) 내에서 구성한 워커 노드의 수에 따른 성능 비교 결과가 도시된다.Referring to FIG. 7b, the results of comparing the time taken by the cipher analysis system (700, 750) to analyze a cipher according to the number of worker nodes used in the system (700, 750) are illustrated. More specifically, when the size of data distributed to each worker node and the number of tasks to be performed are the same, the results of comparing the performance according to the number of worker nodes configured in the cipher analysis system (700, 750) are illustrated.
시스템(700, 750)이 사용하는 워커 노드의 수가 증가할수록, 더 많은 수의 워커 노드들에게 대용량의 데이터를 분배하고, 그에 따른 프로세스를 처리해야 하므로, 암호 분석 소요 시간이 증가하는 양상을 확인할 수 있다. 다만, 본 개시에 따라 설계된 시스템(700)을 이용하는 경우, 약 9초에서 12초 내외의 암호 분석 시간이 소요되는 반면, 기존의 시스템(750)을 이용하는 경우 약 21초에서 27초 사이의 암호 분석 시간이 소요되는 것을 확인할 수 있다.As the number of worker nodes used by the system (700, 750) increases, a large amount of data must be distributed to a larger number of worker nodes and the corresponding process must be processed, so it can be confirmed that the time required for cryptographic analysis increases. However, when using the system (700) designed according to the present disclosure, it can be confirmed that the cryptographic analysis time is approximately 9 to 12 seconds, whereas when using the existing system (750), it can be confirmed that the cryptographic analysis time is approximately 21 to 27 seconds.
도 7c를 참조하면, 워커 노드가 작업해야 할 일에 따른, 암호 분석 시스템(700, 750)이 암호를 분석하는데 소요된 시간의 비교 결과가 도시된다. 보다 구체적으로, 마스터 노드가 워커 노드에게 분배하는 데이터의 크기와 시스템(700, 750)에서 사용되는 워커 노드의 수가 동일할 때, 워커 노드가 작업해야 할 일의 수에 따른 성능 비교 결과가 도시된다. 이때, 워커 노드가 작업해야 할 일의 수는 패스워드 크래킹의 암호 분석 기술이 수행될 때 필요한 후보 평문들의 수로 표현될 수 있다.Referring to FIG. 7c, the results of comparing the time taken by the cipher analysis system (700, 750) to analyze a password according to the work that the worker node has to do are illustrated. More specifically, when the size of data that the master node distributes to the worker node and the number of worker nodes used in the system (700, 750) are the same, the results of comparing the performance according to the number of work that the worker node has to do are illustrated. At this time, the number of work that the worker node has to do can be expressed as the number of candidate plaintexts required when the cipher analysis technique of password cracking is performed.
워커 노드 별 수행해야 할 작업의 수가 증가할수록 암호 분석 소요 시간이 더 많이 요구되므로, 전체적인 암호 분석 소요 시간은 워커 노드의 작업 수가 증가할수록 증가하는 양상을 확인할 수 있다. 다만, 본 개시에 따라 설계된 시스템(700)을 이용하는 경우, 최적화된 데이터 전송에 대한 효과를 통해 기존의 시스템(750)에 비해 최대 약 2배 이상 암호 분석 소요 시간이 감소하는 기술적 효과를 얻을 수 있다.As the number of tasks to be performed by worker nodes increases, more time is required for cryptographic analysis, so it can be confirmed that the overall cryptographic analysis time increases as the number of tasks of worker nodes increases. However, when using the system (700) designed according to the present disclosure, the technical effect of reducing the cryptographic analysis time by up to about two times or more compared to the existing system (750) can be obtained through the effect of optimized data transmission.
도 8은 일 실시 예에 따른 전자 장치의 암호 분석 방법의 흐름도를 나타낸다. 중복되는 내용에 대해서는 전술한 기재가 적용될 수 있다.Fig. 8 illustrates a flow chart of a cryptographic analysis method of an electronic device according to one embodiment. The above-described description may be applied to overlapping contents.
S800 단계에서, 전자 장치는 전자 장치 및 하나 이상의 원격 서버 중 적어도 하나에 대응하는 하나 이상의 워커 노드를 확인할 수 있다.At step S800, the electronic device can identify one or more worker nodes corresponding to the electronic device and at least one of the one or more remote servers.
일 실시 예에 따르면, 전자 장치는 하나 이상의 워커 노드를 확인할 때, 복수의 후보 평문들의 수, 하나 이상의 암호화 알고리즘의 수, 하나 이상의 원격 서버의 수, 전자 장치 내 GPU의 수 및 하나 이상의 원격 서버 내 GPU의 수 중 적어도 하나에 기초하여, 하나 이상의 워커 노드의 수를 결정할 수 있다.In one embodiment, when verifying one or more worker nodes, the electronic device can determine the number of one or more worker nodes based on at least one of a number of candidate plaintexts, a number of one or more encryption algorithms, a number of one or more remote servers, a number of GPUs within the electronic device, and a number of GPUs within the one or more remote servers.
S820 단계에서, 전자 장치는 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문들을 분할할 수 있다.At step S820, the electronic device can split the plurality of candidate plaintexts based on the number of one or more worker nodes.
일 실시 예에 따르면, 전자 장치는 복수의 후보 평문들을 분할할 때, 하나 이상의 워커 노드에 대응하는 GPU의 수 및 성능 중 적어도 하나에 기초하여, 하나의 워커 노드 각각에 복수의 후보 평문들을 할당할 수 있다.According to one embodiment, when splitting a plurality of candidate plaintexts, the electronic device can assign the plurality of candidate plaintexts to each of one or more worker nodes based on at least one of the number and performance of GPUs corresponding to the one or more worker nodes.
S840 단계에서, 전자 장치는 분할된 복수의 후보 평문들 및 암호문을 하나 이상의 워커 노드 각각으로 송신할 수 있다.At step S840, the electronic device can transmit the divided plurality of candidate plaintexts and ciphertexts to each of one or more worker nodes.
일 실시 예에 따르면, 복수의 후보 평문들은 하나 이상의 워커 노드에 의해 하나 이상의 암호화 알고리즘에 따라 암호화되어, 암호화된 결과 값이 암호문과 일치하는지 여부가 확인될 수 있다.In one embodiment, a plurality of candidate plaintexts may be encrypted by one or more worker nodes according to one or more encryption algorithms, and it may be verified whether the encrypted result matches the ciphertext.
일 실시 예에 따르면, 전자 장치는 분할된 복수의 후보 평문들 및 암호문을 하나 이상의 워커 노드 각각으로 송신할 때, 분할된 복수의 후보 평문들을 통합 메모리로 로드하고, 메시지 전달 인터페이스를 통해, 분할된 복수의 후보 평문들이 로드된 통합 메모리의 주소 값을 하나 이상의 워커 노드 각각으로 송신할 수 있다.According to one embodiment, when transmitting a plurality of divided candidate plaintexts and ciphertexts to each of one or more worker nodes, the electronic device may load the plurality of divided candidate plaintexts into a unified memory, and transmit, through a message passing interface, an address value of the unified memory into which the plurality of divided candidate plaintexts are loaded, to each of one or more worker nodes.
일 실시 예에 따르면, 전자 장치는 통합 메모리의 주소 값을 하나 이상의 워커 노드 각각으로 송신할 때, MPI 송신 애플리케이션 프로그래밍 인터페이스를 통해 통합 메모리의 주소 값을 송신할 수 있다. 이때, 통합 메모리의 주소 값은, MPI 수신 API를 통해 하나 이상의 워커 노드에 의해 수신될 수 있다.According to one embodiment, the electronic device may transmit the address value of the unified memory to each of one or more worker nodes via an MPI transmitting application programming interface, wherein the address value of the unified memory may be received by one or more worker nodes via an MPI receiving API.
일 실시 예에 따르면, 전자 장치는 분할된 복수의 후보 평문들 및 암호문을 하나 이상의 워커 노드 각각으로 송신할 때, MPI 브로드캐스팅 API를 통해, 하나 이상의 워커 노드에게 암호문을 브로드캐스팅할 수 있다.In one embodiment, the electronic device may broadcast the ciphertext to one or more worker nodes via the MPI broadcasting API when transmitting the plurality of split candidate plaintexts and ciphertexts to each of the one or more worker nodes.
일 실시 예에 따르면, 하나 이상의 워커 노드 중 하나의 워커 노드가 암호문과 일치하는 결과 값을 확인한 경우, 하나의 워커 노드로부터 나머지 워커 노드로 작업 중단 요청이 송신될 수 있다. 이때, 작업 중단 요청은 MPI 중단 API를 통해 송신될 수 있다.In one embodiment, if one of the worker nodes verifies that the result value matches the ciphertext, a task abort request may be sent from one of the worker nodes to the remaining worker nodes. In this case, the task abort request may be sent via the MPI abort API.
도 9는 일 실시 예에 따른 전자 장치(100)의 블록도를 나타낸다.FIG. 9 shows a block diagram of an electronic device (100) according to one embodiment.
전자 장치(100)는 일 실시 예에 따라, 메모리(900) 및 제어부(controller)(950)를 포함할 수 있다. 도 9에 도시된 전자 장치(100)는 본 실시 예와 관련된 구성요소들만이 도시되어 있다. 따라서, 도 9에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 본 실시 예와 관련된 기술분야에서 통상의 지식을 가진 자라면 이해할 수 있다. 예를 들어, 전자 장치(100)는 하나 이상의 트랜시버(transceiver)를 포함하는 통신부(communication device)(미도시)를 포함할 수 있다. 통신부는 유/무선 통신을 수행하기 위한 장치로서, 외부의 전자 장치와 통신할 수 있다. 외부의 전자 장치는 단말 또는 서버가 될 수 있다. 또한, 통신부가 이용하는 통신 기술에는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), LTE(Long Term Evolution), 5G, WLAN(Wireless LAN), Wi-Fi(Wireless-Fidelity), 블루투스(Bluetooth?), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association; IrDA), ZigBee, NFC(Near Field Communication) 등이 있을 수 있다.The electronic device (100) may include a memory (900) and a controller (950), according to an embodiment. The electronic device (100) illustrated in FIG. 9 illustrates only components related to the present embodiment. Therefore, it will be understood by those skilled in the art related to the present embodiment that other general components may be further included in addition to the components illustrated in FIG. 9. For example, the electronic device (100) may include a communication device (not illustrated) including one or more transceivers. The communication device is a device for performing wired/wireless communication and may communicate with an external electronic device. The external electronic device may be a terminal or a server. Additionally, communication technologies used by the Ministry of Communications may include GSM (Global System for Mobile communication), CDMA (Code Division Multi Access), LTE (Long Term Evolution), 5G, WLAN (Wireless LAN), Wi-Fi (Wireless-Fidelity), Bluetooth (Bluetooth?), RFID (Radio Frequency Identification), Infrared Data Association (IrDA), ZigBee, NFC (Near Field Communication), etc.
제어부(950)는 전자 장치(100)의 전반의 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 제어부(950)는 적어도 하나의 하드웨어 유닛으로 구성될 수 있다. 또한, 제어부(950)는 메모리(900)에 저장된 프로그램 코드를 실행하여 생성되는 하나 이상의 소프트웨어 모듈에 의해 동작할 수 있다. 제어부(950)는 프로세서 및 메모리를 포함할 수 있는 바, 프로세서는 메모리에 저장된 프로그램 코드를 실행하여 전자 장치(100)의 전반의 동작을 제어하고 데이터 및 신호를 처리할 수 있다. 또한 실시 예에서 제어부(950)는 적어도 하나의 프로세서를 포함할 수 있다.The control unit (950) can control the overall operation of the electronic device (100) and process data and signals. The control unit (950) can be composed of at least one hardware unit. In addition, the control unit (950) can operate by one or more software modules generated by executing a program code stored in the memory (900). The control unit (950) can include a processor and a memory, and the processor can control the overall operation of the electronic device (100) and process data and signals by executing a program code stored in the memory. In addition, in an embodiment, the control unit (950) can include at least one processor.
제어부(950)는 전자 장치 및 하나 이상의 원격(remote) 서버 중 적어도 하나에 대응하는 하나 이상의 워커(worker) 노드를 확인하고, 하나 이상의 워커 노드의 수에 기초하여, 복수의 후보 평문들을 분할하고, 분할된 복수의 후보 평문들 및 암호문을 하나 이상의 워커 노드 각각으로 송신할 수 있고, 복수의 후보 평문들은 하나 이상의 워커 노드에 의해 하나 이상의 암호화 알고리즘에 따라 암호화되어, 암호화된 결과 값이 암호문과 일치하는지 여부가 확인될 수 있다.The control unit (950) can identify one or more worker nodes corresponding to at least one of the electronic device and one or more remote servers, divide a plurality of candidate plaintexts based on the number of one or more worker nodes, and transmit the divided plurality of candidate plaintexts and ciphertext to each of the one or more worker nodes, and the plurality of candidate plaintexts can be encrypted by the one or more worker nodes according to one or more encryption algorithms, so that it can be verified whether the encrypted result value matches the ciphertext.
전술한 실시 예들에 따른 전자 장치는 프로세서, 프로그램 데이터를 저장하고 실행하는 메모리, 디스크 드라이브와 같은 영구 저장부(permanent storage), 외부 장치와 통신하는 통신 포트, 터치 패널, 키(key), 버튼 등과 같은 사용자 인터페이스 장치 등을 포함할 수 있다. 소프트웨어 모듈 또는 알고리즘으로 구현되는 방법들은 상기 프로세서상에서 실행 가능한 컴퓨터가 읽을 수 있는 코드들 또는 프로그램 명령들로서 컴퓨터가 읽을 수 있는 기록 매체 상에 저장될 수 있다. 여기서 컴퓨터가 읽을 수 있는 기록 매체로 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-Access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.The electronic device according to the above-described embodiments may include a processor, a memory for storing and executing program data, a permanent storage such as a disk drive, a communication port for communicating with an external device, a user interface device such as a touch panel, a key, a button, and the like. The methods implemented as software modules or algorithms may be stored on a computer-readable recording medium as computer-readable codes or program commands executable on the processor. Here, the computer-readable recording medium may include a magnetic storage medium (e.g., a read-only memory (ROM), a random-access memory (RAM), a floppy disk, a hard disk, etc.) and an optical reading medium (e.g., a CD-ROM, a Digital Versatile Disc (DVD)). The computer-readable recording medium may be distributed to computer systems connected to a network, so that the computer-readable code may be stored and executed in a distributed manner. The medium may be readable by a computer, stored in a memory, and executed by a processor.
본 실시 예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들은 특정 기능들을 실행하는 다양한 개수의 하드웨어 또는/및 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 실시 예는 하나 이상의 마이크로프로세서들의 제어 또는 다른 제어 장치들에 의해서 다양한 기능들을 실행할 수 있는, 메모리, 프로세싱, 로직(logic), 룩 업 테이블(look-up table) 등과 같은 직접 회로 구성들을 채용할 수 있다. 구성 요소들이 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있는 것과 유사하게, 본 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 실시 예는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단", "구성"과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 상기 용어는 프로세서 등과 연계하여 소프트웨어의 일련의 처리들(routines)의 의미를 포함할 수 있다.The present embodiment may be represented by functional block configurations and various processing steps. These functional blocks may be implemented by various numbers of hardware and/or software configurations that perform specific functions. For example, the embodiment may employ direct circuit configurations such as memory, processing, logic, look-up tables, etc., which may perform various functions under the control of one or more microprocessors or other control devices. Similarly to the fact that the components may be implemented as software programs or software elements, the present embodiment may be implemented in a programming or scripting language such as C, C++, Java, assembler, etc., including various algorithms implemented as a combination of data structures, processes, routines, or other programming configurations. The functional aspects may be implemented as algorithms that are executed on one or more processors. In addition, the present embodiment may employ conventional techniques for electronic environment setting, signal processing, and/or data processing. Terms such as "mechanism", "element", "means", and "configuration" may be used broadly and are not limited to mechanical and physical configurations. The terms may also include the meaning of a series of software processes (routines) in connection with a processor, etc.
전술한 실시 예들은 일 예시일 뿐 후술하는 청구항들의 범위 내에서 다른 실시 예들이 구현될 수 있다.The above-described embodiments are only examples, and other embodiments may be implemented within the scope of the claims set forth herein.
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020220134022AKR102835012B1 (en) | 2022-10-18 | 2022-10-18 | Electronic apparatus and cryptanalysis method thereof | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020220134022AKR102835012B1 (en) | 2022-10-18 | 2022-10-18 | Electronic apparatus and cryptanalysis method thereof | 
| Publication Number | Publication Date | 
|---|---|
| KR20240053910A KR20240053910A (en) | 2024-04-25 | 
| KR102835012B1true KR102835012B1 (en) | 2025-07-17 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| KR1020220134022AActiveKR102835012B1 (en) | 2022-10-18 | 2022-10-18 | Electronic apparatus and cryptanalysis method thereof | 
| Country | Link | 
|---|---|
| KR (1) | KR102835012B1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR100856007B1 (en)* | 2006-09-06 | 2008-09-02 | 성균관대학교산학협력단 | Operation verification method of encryption device and electronic voting verification system using same | 
| US20170220949A1 (en)* | 2016-01-29 | 2017-08-03 | Yahoo! Inc. | Method and system for distributed deep machine learning | 
| KR102150806B1 (en)* | 2019-11-15 | 2020-09-02 | (주)키프코프롬투 | Method for protecting data | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101573118B1 (en)* | 2013-12-13 | 2015-12-01 | 서울과학기술대학교 산학협력단 | Smart terminal for point of care | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR100856007B1 (en)* | 2006-09-06 | 2008-09-02 | 성균관대학교산학협력단 | Operation verification method of encryption device and electronic voting verification system using same | 
| US20170220949A1 (en)* | 2016-01-29 | 2017-08-03 | Yahoo! Inc. | Method and system for distributed deep machine learning | 
| KR102150806B1 (en)* | 2019-11-15 | 2020-09-02 | (주)키프코프롬투 | Method for protecting data | 
| Publication number | Publication date | 
|---|---|
| KR20240053910A (en) | 2024-04-25 | 
| Publication | Publication Date | Title | 
|---|---|---|
| US11656853B2 (en) | Techniques for distributed operation of secure controllers | |
| US20240283633A1 (en) | Sharing cryptographic session keys among a cluster of network security platforms monitoring network traffic flows | |
| CN109150499B (en) | Method and device for dynamically encrypting data, computer equipment and storage medium | |
| US10230529B2 (en) | Techniques to secure computation data in a computing environment | |
| US10686763B2 (en) | Techniques for load balancing in a packet distribution system | |
| EP2864925B1 (en) | Managing use of a field programmable gate array with reprogrammable cryptographic operations | |
| US9230091B2 (en) | Managing use of a field programmable gate array with isolated components | |
| JP6474367B2 (en) | File processing method and apparatus for distributed system | |
| GB2585170A (en) | Oblivious pseudorandom function in a key management system | |
| KR101465966B1 (en) | Data encryption processing apparatus and method in a cloud environment | |
| US20170249464A1 (en) | METHOD FOR ENABLING SIMULTANEOUS CONTROL OF A PLURALITY OF TPMs AND RELATED COMPONENTS | |
| US11323529B2 (en) | TCP fast open hardware support in proxy devices | |
| US11936635B2 (en) | Method, electronic device, and program product implemented at an edge switch for data encryption | |
| US20230153147A1 (en) | Ad-hoc proxy for batch processing task | |
| CN113489706A (en) | Data processing method, device, system, equipment and storage medium | |
| KR102835012B1 (en) | Electronic apparatus and cryptanalysis method thereof | |
| CN119293815A (en) | Data processing method, system, device, computer equipment and storage medium | |
| US9219712B2 (en) | WAN optimization without required user configuration for WAN secured VDI traffic | |
| US9288116B2 (en) | System and method for NAS server test load generation | |
| CN114244515B (en) | Hypervisor-based virtual machine communication method and device, readable storage medium and electronic equipment | |
| JP2021513712A (en) | Systems and methods for distributed data storage | |
| US10749899B1 (en) | Securely sharing a transport layer security session with one or more trusted devices | |
| Verma et al. | Security challenges for fog computing enabled internet of things from authentication perspective | |
| KR102058035B1 (en) | Security-enhanced wireless communication apparatus | |
| US20140310520A1 (en) | Method for communicating data and electronic device thereof | 
| Date | Code | Title | Description | 
|---|---|---|---|
| PA0109 | Patent application | St.27 status event code:A-0-1-A10-A12-nap-PA0109 | |
| PA0201 | Request for examination | St.27 status event code:A-1-2-D10-D11-exm-PA0201 | |
| D13-X000 | Search requested | St.27 status event code:A-1-2-D10-D13-srh-X000 | |
| PG1501 | Laying open of application | St.27 status event code:A-1-1-Q10-Q12-nap-PG1501 | |
| E902 | Notification of reason for refusal | ||
| PE0902 | Notice of grounds for rejection | St.27 status event code:A-1-2-D10-D21-exm-PE0902 | |
| E13-X000 | Pre-grant limitation requested | St.27 status event code:A-2-3-E10-E13-lim-X000 | |
| P11-X000 | Amendment of application requested | St.27 status event code:A-2-2-P10-P11-nap-X000 | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | St.27 status event code:A-1-2-D10-D22-exm-PE0701 | |
| PR0701 | Registration of establishment | St.27 status event code:A-2-4-F10-F11-exm-PR0701 | |
| PR1002 | Payment of registration fee | St.27 status event code:A-2-2-U10-U11-oth-PR1002 Fee payment year number:1 | |
| PG1601 | Publication of registration | St.27 status event code:A-4-4-Q10-Q13-nap-PG1601 |