A Parallel LLL using POSIX Threads
نویسندگان
چکیده
In this paper we introduce a new parallel variant of the LLL lattice basis reduction algorithm. Lattice theory and in particular lattice basis reduction continues to play an integral role in cryptography. Not only does it provide effective cryptanalysis tools but it is also believed to bring about new cryptographic primitives that exhibit strong security even in the presence of quantum computers. In theory, many aspects of lattices are already well-understood. Yet, many practical aspects, like the performance of lattice basis reduction algorithms, are still under investigation. In this paper, we introduce a new parallel lattice basis reduction algorithm that overcomes shortcomings of previously introduced algorithms. First and foremost, our new algorithm is based on the Schnorr-Euchner algorithm and as such is the first—to the best of our knowledge—to provide a parallel implementation for the Schnorr-Euchner algorithm. Second, using POSIX threads allows us to make effective use of today’s multi-processor, multi-core computer architecture. Developing in a shared memory setting allows us to replace time consuming inter-process communication with synchronization points (barriers) and locks (mutexes). Our implementation of the parallel LLL is optimized for reducing high dimensional lattice bases with big entries that would require a multiprecision floating-point arithmetic to approximate the lattice basis if the original Schnorr-Euchner algorithm was used for the reduction. The reduction of these lattice bases is of great interest, e.g., for cryptanalyzing RSA. In experiments with sparse and dense lattice bases, experiments with our new parallel LLL show (compared to the non-parallel algorithm) a speed-up factor of about 1.75 for the 2-thread and close to factor 3 for the 4-thread version. The overhead of the parallel LLL decreases with increasing dimension of the lattice basis to less than 10% for the 2-thread and less than 15% for the 4-thread version.
منابع مشابه
Parallel Coset Enumeration Using Threads
Coset enumeration is one of the basic tools for investigating nitely presented groups. Many enumerations require signiicant resources, in terms of CPU time or memory space. We develop a fully functional parallel coset enumeration procedure and we discuss some of the issues involved in such parallelisation using the POSIX threads library. Our results can equally well be applied to any master-sla...
متن کاملComparative Study of Parallel Programming Models to Compute Complex Algorithm
The main goal of this research is to use OpenMP, Posix Threads and Microsoft Parallel Patterns libraries to design an algorithm to compute Matrix Multiplication effectively. By using the libraries of OpenMP, Posix Threads and Microsoft Parallel Patterns Libraries, one can optimize the speedup of the algorithm. First step is to write simple program which calculates a predetermined Matrix and giv...
متن کاملThe Application of POSIX Threads and OpenMP to the U.S. NRC Neutron Kinetics Code PARCS
POSIX Threads and OpenMP were used to implement parallelism in the nuclear reactor transient analysis code PARCS on multiprocessor SUN and SGI workstations. The achievable parallel performance for practical applications is compared for each of the code modules using POSIX threads and OpenMP. A detailed analysis of the cache misses was performed on the SGI to explain the observed performance. Co...
متن کاملPEACE Threads Interface On Microkernel
Recently, thread libraries have become powerful entities to support parallel programming on shared memory multiprocessors and multicomputers. However, the disparity between the primitives offered by the operating systems and thread’s interface creates a challenge for those who wish to create portable threads library. The implementation of PEACE (POSIX Extensions to an Advanced Computing Environ...
متن کاملHBTM: A Heartbeat-based Behavior Detection Mechanism for POSIX Threads and OpenMP Applications
Extreme-scale computing involves hundreds of millions of threads with multi-level parallelism running on largescale hierarchical and heterogeneous hardware. In POSIX threads and OpenMP applications, some key behaviors occurring in runtime such as thread failure, busy waiting, and exit need to be accurately and timely detected. However, for the most of these applications, there are lack of unifi...
متن کامل