Distributed rainbow table cracking method, system, device and medium

By decomposing the ciphertext cracking task into multiple jobs and executing it in parallel, the problem of excessively long or high-complex password ciphertexts is solved, and more efficient resource utilization and task success rate is achieved.

CN119829240APending Publication Date: 2025-04-15SHANGHAI HONGZHEN INFORMATION SCI & TECH CO LTD +1
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202411880401.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-19
Publication Date
2025-04-15

AI Technical Summary

Technical Problem

When the prior art uses rainbow table to crack ciphertexts of ultra-long or high-complexity passwords, the generation and cracking process takes too long and it is difficult to meet the practical application needs.

Method used

By decomposing the ciphertext cracking task into multiple jobs and performing multiple jobs in parallel after the performance evaluation of the cracking task, the cracking process of the rainbow table is optimized using a distributed system.

Benefits of technology

It improves the task success rate, avoids unnecessary waste of computing resources, and improves the resource utilization rate of ciphertext cracking.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119829240A_ABST
    Figure CN119829240A_ABST
Patent Text Reader

Abstract

The invention provides a distributed rainbow table cracking method, system and device and a medium, and the method comprises the steps: decomposing a cracking task of a ciphertext into a plurality of jobs in a ciphertext cracking scene of a super-long or high-complexity password through employing a rainbow table, and carrying out the plurality of jobs in parallel after a performance evaluation link of the cracking task, thereby improving the performance of the cracking task; the task success rate can be improved; in view of concurrent execution of a plurality of jobs, once a part of jobs successfully break the ciphertext, the other jobs are stopped immediately, so that unnecessary computing resource waste is effectively avoided, and the resource utilization rate of ciphertext breaking is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of information security technology, and in particular to a method, system, device and medium for cracking a distributed rainbow table. Background Art

[0002] In the field of information security, data security usually relies on data encryption processing. As a commonly used decryption technology, the rainbow table is a table that pre-calculates the correspondence between hash values ​​and original data, and can quickly restore the plaintext (original data) based on the ciphertext (hash value). The cracking process is: first build a set of rainbow tables, each of which is adapted to specific password rules, such as 6 digits; then select the ciphertext and the appropriate rainbow table, and the cracking program will collide and match the ciphertext with the rainbow table to obtain the plaintext. In actual scenarios, for passwords with long lengths or high complexity, the corresponding rainbow table generation and password cracking processes are extremely time-consuming. When the password length exceeds 10 characters, the size of the rainbow table file can even reach TB level, which greatly increases the time cost of generation and cracking, making it difficult to meet actual application needs.

[0003] There are three main optimization approaches in the current existing technologies: first, improving the computing speed of the device, such as using GPUs and FPGAs that have higher computing speeds than CPUs; second, using parallel processing technology, such as big data parallel frameworks such as MapReduce / Spark; third, using a distributed architecture to use the system to control multiple devices to work together. However, from the comprehensive perspective of the above optimization measures, in the scenario of using rainbow tables to crack passwords for extremely long or highly complex passwords, there is still a lack of systematic and efficient optimization measures. Therefore, an effective distributed rainbow table cracking method is urgently needed to solve the above problems. Summary of the invention

[0004] In view of the above problems, the present invention is proposed to provide a distributed rainbow table cracking method, system, device and medium that overcome the above problems or at least partially solve the above problems.

[0005] To achieve the above-mentioned purpose and other related purposes, the present invention provides a distributed rainbow table cracking method, which is applied to a distributed rainbow table cracking system. The distributed rainbow table cracking system includes a task module, a scheduling module, a device module and an agent module. The method includes:

[0006] When the task module receives the ciphertext, it selects a preconfigured rainbow table from the rainbow table module, creates a cracking task for the ciphertext, and assigns the cracking task to the scheduling module;

[0007] When the scheduling module determines that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, the scheduling module splits the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selects the target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and allocates the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to the respective target devices;

[0008] Each proxy module respectively executes the pre-calculation generation operation and the cracking performance evaluation operation, obtains the pre-calculation result file and the cracking rate of the rainbow table, and reports the pre-calculation result file and the cracking rate to the scheduling module;

[0009] The scheduling module decomposes the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, selects idle devices for each cracking operation from the device module, and sends each cracking operation to the proxy module corresponding to the idle device in parallel;

[0010] Each of the proxy modules concurrently executes a corresponding cracking operation. When an proxy module obtains a cracking result of the cracking operation, the cracking result is reported to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking operation.

[0011] Optionally, selecting a preconfigured rainbow table from a rainbow table module includes:

[0012] According to the character type, length and hash algorithm contained in the ciphertext, a corresponding rainbow table is selected from the rainbow table module.

[0013] Optionally, the scheduling module decomposes the cracking task into multiple cracking jobs according to the pre-calculated result file and the cracking rate, including:

[0014] The scheduling module calculates the request parameters that need to be processed within a specified time according to the cracking rate, and decomposes the cracking task into multiple cracking jobs in conjunction with the pre-calculated result file.

[0015] Optionally, when the task module receives the ciphertext to be cracked, after selecting a preconfigured rainbow table from the rainbow table module, creating a cracking task for the ciphertext to be cracked, and assigning the cracking task to the scheduling module, the method further includes:

[0016] When the scheduling module determines that the rainbow table module contains the cracking performance evaluation data of the rainbow table, the scheduling module splits the pre-calculation generation job from the cracking task, selects the target device of the pre-calculation generation job from the device module, and sends the pre-calculation generation job to the proxy module corresponding to the target device, so that the proxy module executes the pre-calculation generation job and generates a pre-calculation result file;

[0017] When the scheduling module receives the pre-calculated result file reported by the proxy module, it calls the cracking performance evaluation data from the rainbow table module, and decomposes the cracking task into multiple cracking jobs based on the cracking performance evaluation data and the pre-calculated result file; selects idle devices for each cracking job from the device module, and sends each cracking job to the proxy module corresponding to the idle device in parallel.

[0018] Optionally, before the step of selecting a preconfigured rainbow table from the rainbow table module when the task module receives the ciphertext, the step further includes:

[0019] The task module receives input parameters, constructs a rainbow table generation task according to the input parameters, and assigns the rainbow table generation task to the scheduling module; wherein the input parameters include input algorithm, chain length, character set, password length and hit rate;

[0020] When the scheduling module determines that the generation rate of the input algorithm does not exist in the rainbow table module, the scheduling module splits the generation performance evaluation job from the rainbow table generation task, selects the evaluation device of the generation performance evaluation job from the device module, and sends the generation performance evaluation job to the proxy module corresponding to the evaluation device for execution, so as to generate the generation rate of the generation performance evaluation job;

[0021] The scheduling module splits the rainbow table generation task into multiple temporary table file jobs according to the generation rate reported by the proxy module, selects a temporary device for each temporary table file job from the device module, and sends each temporary table file job to the proxy module corresponding to the temporary device for parallel execution, so as to generate temporary table information for each temporary table file job;

[0022] The scheduling module generates a rainbow table merge job based on the temporary table information of each temporary table file job reported by the proxy module, selects a merging device for the rainbow table merging job from the device module, and sends the rainbow table merging job to the proxy module corresponding to the merging device for execution, so as to generate a rainbow table in the target format.

[0023] Optionally, after the step in which the task module receives input parameters, constructs a rainbow table generation task according to the input parameters, and assigns the rainbow table generation task to a scheduling module, the method further includes:

[0024] When the scheduling module determines that the generation rate of the input algorithm exists in the rainbow table module, the generation rate is called from the rainbow table module, and according to the generation rate, the rainbow table generation task is split into multiple temporary table file jobs, a temporary device for each temporary table file job is selected from the device module, and each temporary table file job is sent to the proxy module corresponding to the temporary device for parallel execution, so as to generate temporary table information for each temporary table file job.

[0025] Optionally, after the step of sending the rainbow table merging operation to the proxy module corresponding to the merging device for execution to generate a rainbow table in a target format, the step further includes:

[0026] The scheduling module records the rainbow table to the rainbow table module, and sends the task completion information of the rainbow table generated task to the task module

[0027] In a second aspect, the present invention further provides a distributed rainbow table cracking system, the distributed rainbow table cracking system comprising a task module, a scheduling module, a device module and an agent module, wherein:

[0028] The task module is used for selecting a pre-configured rainbow table from the rainbow table module when receiving a ciphertext, creating a cracking task for the ciphertext, and assigning the cracking task to the scheduling module;

[0029] A scheduling module, for, when it is determined that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, splitting the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selecting target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and allocating the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to the respective target devices;

[0030] An agent module, used to respectively execute the pre-calculation generation operation and the cracking performance evaluation operation, obtain the pre-calculation result file and the cracking rate of the rainbow table, and report the pre-calculation result file and the cracking rate to the scheduling module;

[0031] The scheduling module is further used to decompose the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, select idle devices for each cracking operation from the device module, and send each cracking operation to the proxy module corresponding to the idle device in parallel;

[0032] The proxy module is also used to concurrently execute corresponding cracking operations. When an proxy module obtains the cracking result of the cracking operation, it reports the cracking result to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking operation.

[0033] In a third aspect, the present invention provides an electronic device, comprising: a memory and a processor; the memory is used to store a computer program; the processor is used to execute the computer program stored in the memory, so that the electronic device performs the steps of the distributed rainbow table cracking method as described above.

[0034] In a fourth aspect, the present invention provides a computer-readable storage medium having a computer program stored thereon, which, when executed by an electronic device, implements the steps of the method for cracking the distributed rainbow table as described above.

[0035] The above one or more technical solutions provided by the present invention may have the following advantages or at least achieve the following technical effects:

[0036] The distributed rainbow table cracking method, system, device and medium of the present invention can improve the task success rate by decomposing the ciphertext cracking task into multiple jobs and executing the multiple jobs in parallel after the performance evaluation phase of the cracking task in the ciphertext cracking scenario of using rainbow tables for extremely long or highly complex passwords; since multiple jobs can be executed concurrently, once some jobs successfully crack the ciphertext, the remaining jobs are immediately terminated, thereby effectively avoiding unnecessary waste of computing resources and improving resource utilization of ciphertext cracking. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] Figure 1 Shown is a schematic flow chart of a method for cracking a distributed rainbow table in one embodiment of the present invention;

[0038] Figure 2 Shown is a schematic flow chart of a method for generating a distributed rainbow table in one embodiment of the present invention;

[0039] Figure 3 Shown is a schematic diagram of functional modules of a distributed rainbow table cracking system in one embodiment of the present invention;

[0040] Figure 4 Shown is a schematic diagram of an electronic device according to an embodiment of the present invention. DETAILED DESCRIPTION

[0041] The following describes the embodiments of the present invention by specific examples, and those skilled in the art can easily understand other advantages and effects of the present invention from the contents disclosed in this specification. The present invention can also be implemented or applied through other different specific embodiments, and the details in this specification can also be modified or changed in various ways based on different viewpoints and applications without departing from the spirit of the present invention. It should be noted that the following embodiments and features in the embodiments can be combined with each other without conflict.

[0042] It should be noted that the illustrations provided in the following embodiments are only schematic illustrations of the basic concept of the present invention, and thus the drawings only show components related to the present invention rather than being drawn according to the number, shape and size of components in actual implementation. In actual implementation, the type, quantity and proportion of each component may be changed arbitrarily, and the component layout may also be more complicated.

[0043] In the following description, numerous details are discussed to provide a more thorough explanation of the embodiments of the present invention. However, it is obvious to those skilled in the art that the embodiments of the present invention can be implemented without these specific details. In other embodiments, well-known structures and devices are shown in the form of block diagrams rather than in detail to avoid making the embodiments of the present invention difficult to understand.

[0044] The terms "first", "second", etc. in the specification and claims of the disclosed embodiments and the above-mentioned drawings are used to distinguish similar objects, and are not necessarily used to describe a specific order or sequence. It should be understood that the terms used in this way can be interchanged where appropriate, so that the embodiments of the disclosed embodiments described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions.

[0045] Unless otherwise stated, the term "plurality" means two or more.

[0046] In the embodiment of the present disclosure, the character " / " indicates that the preceding and following objects are in an "or" relationship. For example, A / B indicates: A or B.

[0047] The term "and / or" is a description of the association relationship between objects, indicating that three relationships can exist. For example, A and / or B means: A or B, or, A and B.

[0048] The technical solutions in the embodiments of the present invention will be described in detail below in conjunction with the accompanying drawings in the embodiments of the present invention.

[0049] See also Figure 1An embodiment of the present invention provides a distributed rainbow table cracking method, which is applied to a distributed rainbow table cracking system. The distributed rainbow table cracking system includes a task module, a scheduling module, a device module and an agent module. The method may include the following steps S10 to S50:

[0050] Step S10, when the task module receives the ciphertext, it selects a preconfigured rainbow table from the rainbow table module, creates a cracking task for the ciphertext, and assigns the cracking task to the scheduling module.

[0051] Among them, the distributed rainbow table cracking system can include a task module, a scheduling module, a device module and an agent module.

[0052] The task module is used for task management, such as creation (such as rainbow table generation tasks, cracking tasks), priority sorting, pause, resume, progress and result display, etc. Task types include rainbow table generation and ciphertext cracking; record the operation log of task management; obtain the task cracking progress log from the scheduling module and record it.

[0053] As an example, tasks can be created, prioritized, paused, resumed, etc. in the task module, and the execution results can be displayed.

[0054] The scheduling module is used for task scheduling and resource scheduling (such as allocating equipment for rainbow table performance evaluation jobs based on the resource conditions recorded by the equipment module).

[0055] The scheduling module can obtain tasks from the task module and split them into one or more jobs according to different task types. Task types can include rainbow table generation and ciphertext cracking. A job is the smallest unit of scheduling, which contains request instructions and parameters. Job types include rainbow table generation performance evaluation, rainbow table generation temporary table file, rainbow table merging, pre-calculation generation, cracking performance evaluation, and ciphertext cracking; their execution order can be sorted by different task types.

[0056] The device module is used for device management, registration, enabling, and disabling; it records device resource information and status monitoring reported by the agent module, such as device host name, process, GPU usage, and temperature.

[0057] The rainbow table module is used for rainbow table management, recording rainbow table file information (such as hash algorithm name, password length, chain length, etc.) and benchmark performance (such as rainbow table generation rate and cracking rate); it records rainbow table information, generation performance evaluation data, and cracking performance evaluation data during the task.

[0058] The proxy module is used to report the device status (such as whether the device is idle and the currently occupied job) to the device module; receive the jobs issued by the scheduling module and execute the jobs (rainbow table generation performance evaluation, rainbow table generation temporary table file, rainbow table merging, pre-calculation generation, cracking performance evaluation, ciphertext cracking), and report the job progress information and execution results to the scheduling module.

[0059] A rainbow table can be a table of one or more pre-calculated hash values ​​and original ciphertexts. The rainbow table is usually constructed for passwords within a certain length range, so a rainbow table of appropriate length must be selected when cracking. For example, if the ciphertext is 6 bits long, then a rainbow table constructed for 6-bit passwords is preferred.

[0060] As an example, if the ciphertext is "d40dc261069d6ffe494cdd8e582243e6" and the expected plaintext is a combination of 10 uppercase letters and numbers, one or more "10 uppercase letters + numbers" rainbow tables can be selected from the rainbow table module.

[0061] In a specific implementation, when the task module receives the ciphertext to be cracked input by the user, it can recommend and select one or more preconfigured rainbow tables from the rainbow table module based on the characteristics of the ciphertext (such as character type, length, etc.); then create a cracking task for the ciphertext, and assign the cracking task for the ciphertext to the scheduling module.

[0062] Step S20, when the scheduling module determines that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, it splits the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selects the target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and assigns the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to each target device.

[0063] Among them, the cracking performance evaluation data may include but is not limited to success rate, resource consumption, time cost, and rainbow table related indicators (such as cracking rate, character type, password length, etc.).

[0064] The cracking rate can be the number of passwords processed by the rainbow table in unit time. It is a key indicator to measure the efficiency of rainbow table cracking, usually expressed as the number of passwords / unit time.

[0065] As an example, if a rainbow table can process 1 billion passwords in one second, then the cracking rate is 1 billion / second.

[0066] Pre-computation generation jobs can refer to a series of task operations that calculate and process a large number of possible password combinations in advance according to specific rules, parameters and algorithms, and organize and store the relevant results. Its main purpose is to generate reference data that can be used in subsequent password cracking or security testing scenarios by completing complex and time-consuming calculation processes in advance, so that in actual applications, matching information can be quickly found from existing calculation results, thereby improving work efficiency, reducing real-time calculations and immediate dependence on computing resources.

[0067] The cracking performance evaluation task can be a standardized task used to evaluate and measure the performance of (distributed rainbow table cracking system); its main purpose is to evaluate the number of passwords that can be processed by the rainbow table per unit time (such as per second, per minute or per hour), that is, the cracking rate.

[0068] In the specific implementation, first, the scheduling module can query whether there is cracking performance evaluation data of the rainbow table (such as cracking rate) in the rainbow table module; then, when the scheduling module determines that there is no cracking performance evaluation data in the rainbow table module, the cracking task can be decomposed into a pre-calculation generation job and a cracking performance evaluation job; then, according to the resource situation recorded by the device module, an idle target device can be allocated to the pre-calculation generation job and the cracking performance evaluation job respectively, and the pre-calculation generation job and the cracking performance evaluation job are sent to the proxy modules corresponding to each target device (wherein each target device corresponds to a proxy module).

[0069] Step S30, each proxy module respectively executes the pre-calculation generation operation and the cracking performance evaluation operation, obtains the pre-calculation result file and the cracking rate of the rainbow table, and reports the pre-calculation result file and the cracking rate to the scheduling module.

[0070] Among them, the pre-calculation result file can be a data index file that calculates the ciphertext (the secret string to be cracked) and the rainbow table through specific algorithms and rules and records the relevant results; the pre-calculation result file is the embodiment of the results of the pre-calculation generation job.

[0071] In the specific implementation, each proxy module executes the pre-calculation generation job and the cracking performance evaluation job respectively, obtains the pre-calculation result file corresponding to the pre-calculation generation job, and the cracking rate corresponding to the cracking performance evaluation job (for example, processing 1G chains per second); then each proxy module reports the pre-calculation result file and the cracking rate to the scheduling module respectively.

[0072] Step S40, the scheduling module decomposes the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, selects idle devices for each cracking operation from the device module, and sends each cracking operation to the proxy module corresponding to the idle device in parallel.

[0073] The cracking operation may be a task unit that performs corresponding operations on a specific password to be cracked or a password hash value in an attempt to restore the password in the ciphertext cracking process.

[0074] In the specific implementation, after receiving the pre-calculated result file and the cracking rate, the scheduling module can split the cracking task into one or more cracking jobs according to the pre-calculated result file and the cracking rate; then, it can select multiple idle devices from the device module, assign an idle device to each cracking job, and send each cracking job to the proxy module corresponding to each device in parallel.

[0075] Step S50, each of the agent modules concurrently executes the corresponding cracking operation. When an agent module obtains the cracking result of the cracking operation, it reports the cracking result to the scheduling module, and the remaining agent modules stop executing the corresponding cracking operation.

[0076] The cracking result may be the original text content that can be directly viewed or used after processing a given ciphertext using a rainbow table password cracking method.

[0077] As an example, suppose a password hash value is "d40dc261069d6ffe494cdd8e582243e6" after a ciphertext is encrypted by the MD5 hash algorithm. Through the cracking operation, the corresponding original password is finally obtained as "ABC1234567", and this "ABC1234567" is the cracking result (plain text).

[0078] In the specific implementation, when each agent module receives the corresponding cracking job, it can execute the cracking job concurrently; if a certain agent module cracks successfully, it can report the cracking result of the cracking job to the scheduling module, and the remaining agent modules will terminate the cracking job. Then, when the scheduling module receives the cracking result, it can send the task end information of the cracking task to the task module; then, the task module can record the status of the cracking task as completed.

[0079] In addition, when each agent module executes the cracking operation concurrently, if the scheduling module finds that all the cracking operations have been completed (that is, all agent modules have not cracked successfully), the task completion information of the cracking task can be sent to the task module; then, the task module can record the status of the cracking task as completed.

[0080] It should be noted that when each proxy module executes the cracking operation concurrently, each proxy module can synchronize the operation status to the scheduling module at a regular interval; and then the scheduling module can simultaneously update the progress information of the task module. If it is detected that the cracking operation of a certain proxy module fails due to hardware reasons, the scheduling module will re-send the proxy module, and the new proxy module will execute the cracking operation.

[0081] Furthermore, in one embodiment, step S10 may include the following sub-step S101:

[0082] Sub-step S101, selecting a corresponding rainbow table from the rainbow table module according to the character type, length and hash algorithm contained in the ciphertext.

[0083] In the specific implementation, when the task module receives the ciphertext, it can select the corresponding rainbow table from the rainbow table module according to the character type (such as pure numbers, or a mixture of letters and numbers, or special characters) and length (such as 10 bits or 18 bits) and hash algorithm (such as MD5, SHA-1, SHA-256, etc.) contained in the ciphertext to improve the cracking efficiency.

[0084] As an example, if the ciphertext is hashed using the MD5 algorithm, you must select the hash value in the rainbow table that is also constructed using the MD5 algorithm for comparison in order to find the matching ciphertext. This is because the hash value in the rainbow table is calculated using the same hash value as the target password, and only in this way can an effective hash value collision be performed in the cracking task.

[0085] Further, in one embodiment, step S40 may include the following sub-step S401:

[0086] In sub-step S401, the scheduling module calculates the request parameters that need to be processed within a specified time according to the cracking rate, and decomposes the cracking task into multiple cracking jobs in conjunction with the pre-calculated result file.

[0087] Among them, request parameters can be used to pass key information to a specific cracking job to accurately control the execution of the job and obtain various set values ​​of the expected results; such as a file name group.

[0088] In the specific implementation, after receiving the cracking rate and pre-calculated result file, the scheduling module can calculate the request parameters required for the specified time (such as half an hour) based on the cracking rate (such as specifying multiple file name groups), and generate one or more cracking jobs in conjunction with the pre-calculated result file (such as specifying multiple file name groups, cooperating with the pre-calculated result file, and generating a cracking job for each file name group); thereby achieving more accurate resource scheduling.

[0089] In this embodiment, in the ciphertext cracking scenario for extremely long or highly complex passwords using a rainbow table, the task success rate can be improved by decomposing the ciphertext cracking task into multiple jobs and executing the multiple jobs in parallel after the performance evaluation phase of the cracking task; given that multiple jobs can be executed concurrently, once some jobs successfully crack the ciphertext, the remaining jobs are terminated immediately, thereby effectively avoiding unnecessary waste of computing resources and improving resource utilization of ciphertext cracking.

[0090] Based on the above embodiments, a second embodiment of the method for cracking a distributed rainbow table of the present invention is proposed. In this embodiment, after step S10, the method may further include the following sub-steps S60 to S70:

[0091] Step S60, when the scheduling module determines that the rainbow table module contains the cracking performance evaluation data of the rainbow table, the scheduling module splits the pre-calculation generation job from the cracking task, selects the target device of the pre-calculation generation job from the device module, and sends the pre-calculation generation job to the proxy module corresponding to the target device, so that the proxy module executes the pre-calculation generation job and generates a pre-calculation result file.

[0092] In a specific implementation, when the scheduling module determines that the cracking performance evaluation data (i.e., cracking rate) of the rainbow table already exists in the rainbow table module, the scheduling module does not need to split out a cracking performance evaluation job to generate the cracking rate of the rainbow table, and can directly call the cracking rate of the rainbow table from the rainbow table module; then the scheduling module can split the cracking task into a pre-calculation generation job, and according to the resource situation recorded by the device module, allocate an idle target device to the pre-calculation generation job, and send the pre-calculation generation job to the proxy module corresponding to the target device; then the proxy module executes the pre-calculation generation job, generates a pre-calculation result file, and reports the pre-calculation result file to the scheduling module.

[0093] Step S70, when the scheduling module receives the pre-calculated result file reported by the proxy module, it calls the cracking performance evaluation data from the rainbow table module, and decomposes the cracking task into multiple cracking jobs according to the cracking performance evaluation data and the pre-calculated result file; selects idle devices for each cracking job from the device module, and sends each cracking job to the proxy module corresponding to the idle device in parallel.

[0094] In the specific implementation, when the scheduling module receives the pre-calculated result file reported by the proxy module, it can split the cracking task into one or more cracking jobs according to the cracking performance evaluation data and the pre-calculated result file; then, it can select multiple idle devices from the device module, assign an idle device to each cracking job, and send each cracking job in parallel to the proxy module corresponding to each device, so that each proxy module executes the corresponding cracking job in parallel, and obtains the cracking result after a certain processing module is successfully cracked; then, the proxy module can report the cracking result to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking jobs.

[0095] In this embodiment, when the scheduling module does not generate a rainbow table cracking performance evaluation job for the first time, the cracking rate of the rainbow table can be directly called from the rainbow table module, and the cracking task can be decomposed according to the existing cracking rate and the pre-calculation result file of the pre-calculation generation job; thereby reducing the waste of computing resources and improving the task success rate.

[0096] Based on the above embodiments, a third embodiment of the distributed rainbow table cracking method of the present invention is proposed. Please refer to Figure 2 In this embodiment, before step S10, the method may further include the following sub-steps A10 to A40:

[0097] Step A10, the task module receives input parameters, constructs a rainbow table generation task according to the input parameters, and assigns the rainbow table generation task to the scheduling module; wherein the input parameters include input algorithm, chain length, character set, password length and hit rate.

[0098] The input parameters may include, but are not limited to, input algorithm, chain length, character set, password length, and hit rate.

[0099] As an example, enter the algorithm (MD5 hash), chain length (500000), character set (letters + numbers), password length (10) and hit rate (99%) and other parameters in the task module to create a rainbow table generation task "10 characters + numbers".

[0100] In a specific implementation, the task module can create a rainbow table generation task for the input parameters according to the received input algorithm, chain length, character set, password length, hit rate and other input parameters; and then assign the rainbow table generation task to the scheduling module.

[0101] Step A20, when the scheduling module determines that the generation rate of the input algorithm does not exist in the rainbow table module, it splits the generation performance evaluation job from the rainbow table generation task, selects the evaluation device of the generation performance evaluation job from the device module, and sends the generation performance evaluation job to the agent module corresponding to the evaluation device for execution, so as to generate the generation rate of the generation performance evaluation job.

[0102] The generation rate may refer to the number of rainbow watch chains that can be generated per unit time (such as per second, per minute, or per hour). For example, 2.35G chains are generated per second.

[0103] Generate performance evaluation jobs, which can be used to evaluate various performance indicators in the rainbow table generation process (work efficiency under different conditions, resource consumption, quality of generated results, etc.); it can optimize and improve the rainbow table generation job, improve the generation efficiency, and ensure that the generated rainbow table can meet the needs of subsequent application scenarios such as password cracking and security testing.

[0104] In the specific implementation, first, the scheduling module queries the rainbow table module whether there is a generation rate of the input algorithm; when it is found that it does not exist, the scheduling module can decompose a generation performance evaluation job from the rainbow table generation task, and select an idle device (i.e., evaluation device) from the device module, and send the generation performance evaluation job to the agent module corresponding to the evaluation device; then the agent module executes the generation performance evaluation job, obtains the generation rate of the generation performance evaluation job, and reports the generation rate of the generation performance evaluation job to the scheduling module.

[0105] In addition, the scheduling module can also record the generation performance evaluation data in the process of executing the generation performance evaluation job to the rainbow table module.

[0106] Step A30, the scheduling module splits the rainbow table generation task into multiple temporary table file jobs according to the generation rate reported by the proxy module, selects the temporary device of each temporary table file job from the device module, and sends each temporary table file job to the proxy module corresponding to the temporary device for parallel execution to generate temporary table information of each temporary table file job.

[0107] The temporary table file job may refer to decomposing the overall rainbow table generation task into multiple phased subtasks during the rainbow table generation process, and storing the intermediate results of each subtask by generating a temporary table file.

[0108] Its purposes may include: 1. It is convenient to deal with possible system failures or interruptions during the generation process; 2. It can realize the flexible allocation and collaboration of generation tasks on different computing resources; 3. It is conducive to the optimization and debugging of the rainbow table construction process. By analyzing the content of the temporary table file and the relevant data in the generation process, possible problems in the construction process can be discovered and the strategy can be adjusted in time.

[0109] The temporary table information can be used to accurately identify the temporary table during the rainbow table generation process; it may include but is not limited to: the temporary table name, the directory where the temporary table file is located, and the associated data features (such as the password character set involved in the temporary table).

[0110] In a specific implementation, the scheduling module can split the rainbow table generation task into one or more temporary table file jobs according to the generation rate; then, it can select multiple idle devices (i.e., temporary devices) from the device module, assign a temporary device to each temporary table file job, and send each temporary table file job in parallel to the proxy module corresponding to each device; when each proxy module receives a temporary table file job, it can execute the temporary table file job in parallel, generate temporary table information of each temporary table file job, and report the temporary table information of each temporary table file job to the scheduling module.

[0111] As an example, based on the generation rate (e.g., 2.35G chains are generated per second), a single job is processed for 30 minutes, and 311,476 temporary table file jobs are generated. Each job selects an idle device from the device module in a queue manner and sends the job to the proxy module corresponding to the device. After the proxy module is executed, the directory where the temporary table file is located (i.e., the temporary table information) is reported to the scheduling module.

[0112] Step A40, the scheduling module generates a rainbow table merge job based on the temporary table information of each temporary table file job reported by the proxy module, selects a merging device for the rainbow table merging job from the device module, and sends the rainbow table merging job to the proxy module corresponding to the merging device for execution, so as to generate a rainbow table in the target format.

[0113] Among them, the rainbow table merging operation can refer to integrating multiple temporary table files into a complete, fully functional and efficient rainbow table. Through merging, the password hash chain information generated from different sources or at different stages can be concentrated, the coverage of the rainbow table can be expanded, and its effectiveness and success rate in application scenarios such as password cracking can be improved. At the same time, the merging process can also optimize and organize the data, remove duplicate hash chains, and build a more reasonable index structure, thereby improving the overall performance and query efficiency of the rainbow table.

[0114] In a specific implementation, after discovering that all temporary table file jobs have been successfully executed, the scheduling module can generate a rainbow table merge job based on the temporary table information of each temporary table file reported by the proxy module; then, an idle device (i.e., a merge device) can be selected from the device module for the rainbow table merge job, and the rainbow table merge job can be sent to the proxy module corresponding to the merge device; then, when the proxy module receives the rainbow table merge job, all temporary table files can be merged one by one according to a predetermined merge rule (e.g., temporary table files with the same name are grouped together), and redundant data that may exist in the entire rainbow table structure needs to be deduplicated to generate a rainbow table in the target format (e.g., a group of standard files with the suffix RT), and report it to the scheduling module.

[0115] Furthermore, in one embodiment, after step A10, the method may further include the following step A50:

[0116] Step A50, when the scheduling module determines that the generation rate of the input algorithm exists in the rainbow table module, the generation rate is called from the rainbow table module, and according to the generation rate, the rainbow table generation task is split into multiple temporary table file jobs, and the temporary device of each temporary table file job is selected from the device module, and each temporary table file job is sent to the proxy module corresponding to the temporary device for parallel execution to generate temporary table information of each temporary table file job.

[0117] In a specific implementation, when the scheduling module finds that there is a generation rate of the input algorithm in the rainbow table module, the generation rate of the input algorithm can be called from the rainbow table module; then the scheduling module can split the rainbow table generation task into multiple temporary table file jobs according to the generation rate, and select multiple idle devices (i.e., temporary devices) from the device module, respectively assign a temporary device to each temporary table file job, and send each temporary table file job in parallel to the proxy module corresponding to each device; when each proxy module receives a temporary table file job, it can execute the temporary table file job in parallel, generate temporary table information of each temporary table file job, and report the temporary table information of each temporary table file job to the scheduling module.

[0118] Furthermore, in one embodiment, after step A40, the method may further include the following step A60:

[0119] Step A60: the scheduling module records the rainbow table to the rainbow table module, and sends task completion information of the task generated by the rainbow table to the task module.

[0120] In a specific implementation, after receiving the rainbow table reported by the proxy module, the scheduling module can record the rainbow table to the rainbow table module and send the task completion information of the rainbow table generation task to the task module; then, the task module can record the status of the rainbow table generation task as completed.

[0121] In this embodiment, in the process of generating a rainbow table, the overall rainbow table generation task can be effectively decomposed into multiple temporary table file jobs; by generating, managing and maintaining temporary table file jobs, the reliability, flexibility and efficiency of rainbow table generation can be improved.

[0122] Based on the same inventive concept, the fourth embodiment of the present invention also provides a distributed rainbow table cracking system corresponding to the distributed rainbow table cracking method of the previous embodiment. Since the principle of solving the problem by the system in the fourth embodiment of the present invention is similar to the distributed rainbow table cracking method of the previous embodiment of the present invention, the implementation of the system can refer to the implementation of the method, and the repeated parts will not be repeated. Figure 3 The distributed rainbow table cracking system of the present invention may include a task module, a scheduling module, a device module and an agent module, wherein:

[0123] The task module is used for selecting a pre-configured rainbow table from the rainbow table module when receiving a ciphertext, creating a cracking task for the ciphertext, and assigning the cracking task to the scheduling module;

[0124] A scheduling module, for, when it is determined that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, splitting the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selecting target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and allocating the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to the respective target devices;

[0125] An agent module, used to respectively execute the pre-calculation generation operation and the cracking performance evaluation operation, obtain the pre-calculation result file and the cracking rate of the rainbow table, and report the pre-calculation result file and the cracking rate to the scheduling module;

[0126] The scheduling module is further used to decompose the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, select idle devices for each cracking operation from the device module, and send each cracking operation to the proxy module corresponding to the idle device in parallel;

[0127] The proxy module is also used to concurrently execute corresponding cracking operations. When an proxy module obtains the cracking result of the cracking operation, it reports the cracking result to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking operation.

[0128] In addition, the present invention also provides a computer-readable storage medium on which a computer program is stored, and when the program is executed by a processor, the above-mentioned distributed rainbow table cracking method is implemented.

[0129] Figure 4 is a schematic block diagram of an electronic device provided in an embodiment of the present application. Figure 4 As shown, the electronic device includes: at least one processor 401, a memory 402, at least one network interface 403 and a user interface 405. The various components in the electronic device are coupled together through a bus system 404. It can be understood that the bus system 404 is used to realize the connection and communication between these components. In addition to the data bus, the bus system 404 also includes a power bus, a control bus and a status signal bus. However, for the sake of clarity, Figure 4 In the specification, various buses are labeled as bus systems.

[0130] The user interface 405 may include a display, a keyboard, a mouse, a trackball, a click gun, keys, buttons, a touch pad or a touch screen.

[0131] It is understood that the memory 402 can be a volatile memory or a non-volatile memory, and can also include both volatile and non-volatile memories. Among them, the non-volatile memory can be a read-only memory (ROM), a programmable read-only memory (PROM), which is used as an external cache. By way of example but not limitation, many forms of RAM are available, such as static random access memory (SRAM), synchronous static random access memory (SSRAM). The memory described in the embodiments of the present invention is intended to include but is not limited to these and any other suitable categories of memory.

[0132] The memory 402 in the embodiment of the present invention is used to store various categories of data to support the operation of the electronic device 400. Examples of these data include: any executable program for operating on the electronic device 400, such as an operating system 4021 and an application 4022; the operating system 4021 includes various system programs, such as a framework layer, a core library layer, a driver layer, etc., for implementing various basic services and processing hardware-based tasks. The application 4022 may include various applications, such as a media player (Media Player), a browser (Browser), etc., for implementing various application services. The method for cracking the distributed rainbow table provided in the embodiment of the present invention may be included in the application 4022.

[0133] The method disclosed in the above embodiment of the present invention can be applied to the processor 401, or implemented by the processor 401. The processor 401 may be an integrated circuit chip with signal processing capabilities. In the implementation process, each step of the above method can be completed by the hardware integrated logic circuit in the processor 401 or the instruction in the form of software. The above processor 401 may be a general processor, a digital signal processor (DSP, Digital Signal Processor), or other programmable logic devices, discrete gates or transistor logic devices, discrete hardware components, etc. The processor 401 can implement or execute the methods, steps and logic block diagrams disclosed in the embodiment of the present invention. The general processor 401 may be a microprocessor or any conventional processor, etc. The steps of the cracking method of the distributed rainbow table provided in combination with the embodiment of the present invention can be directly embodied as a hardware decoding processor to execute, or a combination of hardware and software modules in the decoding processor to execute. The software module can be located in a storage medium, which is located in a memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.

[0134] In an exemplary embodiment, the electronic device 400 may be implemented by one or more application specific integrated circuits (ASIC), DSP, programmable logic device (PLD), complex programmable logic device (CPLD) to execute the aforementioned method.

[0135] To summarize, in the ciphertext cracking scenario using rainbow tables for extremely long or highly complex passwords, the present invention can improve the task success rate by decomposing the ciphertext cracking task into multiple jobs and executing the multiple jobs in parallel after the performance evaluation phase of the cracking task; given that multiple jobs can be executed concurrently, once some jobs successfully crack the ciphertext, the remaining jobs are terminated immediately, thereby effectively avoiding unnecessary waste of computing resources and improving resource utilization of ciphertext cracking.

[0136] The above embodiments are merely illustrative of the principles and effects of the present invention, and are not intended to limit the present invention. Anyone familiar with the art may modify or alter the above embodiments without departing from the spirit and scope of the present invention. Therefore, all equivalent modifications or alterations made by a person of ordinary skill in the art without departing from the spirit and technical concept disclosed by the present invention shall still be covered by the claims of the present invention.

Claims

1. A method for cracking a distributed rainbow table, characterized in that: A cracking system applied to a distributed rainbow table, the cracking system of the distributed rainbow table includes a task module, a scheduling module, a device module and an agent module, and the method includes: When the task module receives the ciphertext, it selects a preconfigured rainbow table from the rainbow table module, creates a cracking task for the ciphertext, and assigns the cracking task to the scheduling module; When the scheduling module determines that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, the scheduling module splits the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selects the target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and allocates the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to the respective target devices; Each proxy module respectively executes the pre-calculation generation operation and the cracking performance evaluation operation, obtains the pre-calculation result file and the cracking rate of the rainbow table, and reports the pre-calculation result file and the cracking rate to the scheduling module; The scheduling module decomposes the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, selects idle devices for each cracking operation from the device module, and sends each cracking operation to the proxy module corresponding to the idle device in parallel; Each of the proxy modules concurrently executes a corresponding cracking operation. When an proxy module obtains a cracking result of the cracking operation, the cracking result is reported to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking operation.

2. The method according to claim 1, characterized in that The selecting a preconfigured rainbow table from the rainbow table module comprises: According to the character type, length and hash algorithm contained in the ciphertext, a corresponding rainbow table is selected from the rainbow table module.

3. The method according to claim 1, characterized in that The scheduling module decomposes the cracking task into multiple cracking jobs according to the pre-calculated result file and the cracking rate, including: The scheduling module calculates the request parameters that need to be processed within a specified time according to the cracking rate, and decomposes the cracking task into multiple cracking jobs in conjunction with the pre-calculated result file.

4. The method according to claim 1, characterized in that: When the task module receives the ciphertext, the preconfigured rainbow table is selected from the rainbow table module, and a cracking task of the ciphertext is created, and after the step of assigning the cracking task to the scheduling module, the method further includes: When the scheduling module determines that the rainbow table module contains the cracking performance evaluation data of the rainbow table, the scheduling module splits the pre-calculation generation job from the cracking task, selects the target device of the pre-calculation generation job from the device module, and sends the pre-calculation generation job to the proxy module corresponding to the target device, so that the proxy module executes the pre-calculation generation job and generates a pre-calculation result file; When the scheduling module receives the pre-calculated result file reported by the proxy module, it calls the cracking performance evaluation data from the rainbow table module, and decomposes the cracking task into multiple cracking jobs based on the cracking performance evaluation data and the pre-calculated result file; selects idle devices for each cracking job from the device module, and sends each cracking job to the proxy module corresponding to the idle device in parallel.

5. The method according to claim 1, characterized in that Before the step of selecting a pre-configured rainbow table from the rainbow table module when the task module receives the ciphertext, the method further includes: The task module receives input parameters, constructs a rainbow table generation task according to the input parameters, and assigns the rainbow table generation task to the scheduling module; wherein the input parameters include input algorithm, chain length, character set, password length and hit rate; When the scheduling module determines that the generation rate of the input algorithm does not exist in the rainbow table module, the scheduling module splits the generation performance evaluation job from the rainbow table generation task, selects the evaluation device of the generation performance evaluation job from the device module, and sends the generation performance evaluation job to the proxy module corresponding to the evaluation device for execution, so as to generate the generation rate of the generation performance evaluation job; The scheduling module splits the rainbow table generation task into multiple temporary table file jobs according to the generation rate reported by the proxy module, selects a temporary device for each temporary table file job from the device module, and sends each temporary table file job to the proxy module corresponding to the temporary device for parallel execution, so as to generate temporary table information for each temporary table file job; The scheduling module generates a rainbow table merge job based on the temporary table information of each temporary table file job reported by the proxy module, selects a merging device for the rainbow table merging job from the device module, and sends the rainbow table merging job to the proxy module corresponding to the merging device for execution, so as to generate a rainbow table in the target format.

6. The method according to claim 5, characterized in that After the step in which the task module receives input parameters, constructs a rainbow table generation task according to the input parameters, and assigns the rainbow table generation task to the scheduling module, the step further includes: When the scheduling module determines that the generation rate of the input algorithm exists in the rainbow table module, the generation rate is called from the rainbow table module, and according to the generation rate, the rainbow table generation task is split into multiple temporary table file jobs, a temporary device for each temporary table file job is selected from the device module, and each temporary table file job is sent to the proxy module corresponding to the temporary device for parallel execution, so as to generate temporary table information for each temporary table file job.

7. The method according to claim 5, characterized in that After the step of sending the rainbow table merging operation to the proxy module corresponding to the merging device for execution to generate a rainbow table in a target format, the method further includes: The scheduling module records the rainbow table to the rainbow table module, and sends task completion information of the task generated by the rainbow table to the task module.

8. A distributed rainbow table cracking system, characterized in that: The distributed rainbow table cracking system includes a task module, a scheduling module, a device module and an agent module, wherein: The task module is used for selecting a pre-configured rainbow table from the rainbow table module when receiving a ciphertext, creating a cracking task for the ciphertext, and assigning the cracking task to the scheduling module; A scheduling module, for, when it is determined that the cracking performance evaluation data of the rainbow table does not exist in the rainbow table module, splitting the cracking task into a pre-calculation generation job and a cracking performance evaluation job, selecting target devices of the pre-calculation generation job and the cracking performance evaluation job from the device module respectively, and allocating the pre-calculation generation job and the cracking performance evaluation job to the proxy modules corresponding to the respective target devices; An agent module, used to respectively execute the pre-calculation generation operation and the cracking performance evaluation operation, obtain the pre-calculation result file and the cracking rate of the rainbow table, and report the pre-calculation result file and the cracking rate to the scheduling module; The scheduling module is further used to decompose the cracking task into multiple cracking operations according to the pre-calculated result file and the cracking rate, select idle devices for each cracking operation from the device module, and send each cracking operation to the proxy module corresponding to the idle device in parallel; The proxy module is also used for each of the proxy modules to concurrently execute corresponding cracking operations. When an proxy module obtains a cracking result of the cracking operation, the cracking result is reported to the scheduling module, and the remaining proxy modules stop executing the corresponding cracking operations.

9. An electronic device, characterized in that: The electronic device comprises: a memory and a processor, wherein the memory is used to store a computer program, and the processor is used to execute the computer program stored in the memory, so that the electronic device performs the steps of the method as claimed in any one of claims 1 to 7.

10. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a program, and when the program is run, it is used to implement the steps of the method according to any one of claims 1 to 7.

Citation Information

Cited By

  • Distributed rainbow table decryption task scheduling system based on deep learning optimization

    CN120353555A