GPU Parallel Integer Math for Password Recovery Speed
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing password recovery methods are computationally demanding due to the need for tens of thousands of cryptographic transformations, which are typically handled by central processing units (CPUs) without efficient utilization of graphical processing units (GPUs) for integer calculations, limiting their performance in cryptographic tasks.
Innovation Solution
A system and method utilizing GPUs to parallelize password recovery by generating passwords on the CPU, calculating transformed values on the GPU, and testing them on the CPU, thereby leveraging the GPU's capabilities for integer operations and reducing data transfer overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If passwords are verified using traditional CPU-based cryptographic transformations, then the system maintains compatibility with standard hardware, but the computational speed and productivity are insufficient due to the heavy computational burden of testing hundreds of millions of passwords
Solution Approach 1:
The patent adapts GPUs, originally designed for floating-point graphics calculations, to perform integer-based cryptographic transformations. This multi-functional use of existing hardware accelerates password verification by 10-50 times without requiring specialized cryptographic hardware, thereby improving productivity while avoiding increased device complexity
Solution Approach 2:
The patent replaces traditional CPU-based sequential cryptographic verification with GPU-based parallel processing. By substituting the mechanical processing approach (CPU executing instructions sequentially) with a parallel computational system (GPU processing multiple password candidates simultaneously), the system achieves dramatic speed improvements without adding hardware complexity
2Productivity
If specialized cryptographic hardware is used to accelerate password recovery, then the computational speed improves, but the device complexity and cost increase due to rare and specialized hardware requirements
Solution Approach 1:
The patent makes standard GPUs perform cryptographic integer operations, eliminating the need for specialized cryptographic hardware. This approach achieves high-speed password recovery using universally available graphics cards, thereby improving productivity without increasing device complexity or requiring rare hardware components
Solution Approach 2:
The patent uses commodity GPUs that are inexpensive and widely available compared to specialized cryptographic hardware. By leveraging cheap, mass-produced graphics cards instead of expensive, rare cryptographic accelerators, the system achieves high productivity while keeping hardware complexity and cost low
3Productivity
If GPUs are used for cryptographic transformations, then the parallel processing capability and productivity improve, but the performance deteriorates when performing integer calculations due to GPU adaptation for floating point operations
Solution Approach 1:
The patent changes the operational parameters of GPUs by configuring them to perform integer arithmetic operations instead of their native floating-point calculations. Through parameter changes in the computational mode (using CUDA or similar technologies to enable integer math on GPUs), the system achieves both high parallel processing throughput and reliable cryptographic transformation performance
Data Source
AI summary
In a computer system having a central processing unit (CPU) and a graphics processing unit (GPU), a system, method and computer program product for recovering a password used to encrypt a plaintext, including (a) generating N passwords on the CPU; (b) providing the N passwords to the GPU; (c) for each of the N passwords, calculating a transformed value from the password on the GPU, wherein the calculating is performed in parallel for all the N passwords provided to the GPU; (d) providing the N transformed values to the CPU; (e) at the CPU, testing the N transformed values for correctness; and (f) if none of the N transformed values are correct, repeating steps (a)-(e) for the next set of N passwords; (g) informing the user of a correct password.


