Parallel algorithms for SAT in application to inversion problems of some discrete functions

In this article we consider the inversion problem for polynomially computable discrete functions. These functions describe behavior of many discrete systems and are used in model checking, hardware verification, cryptanalysis, computer biology and other domains. Quite often it is necessary to invert these functions, i.e. to find an unknown preimage if an image and algorithm of function computation are given. In general case this problem is computationally intractable. However, many of it's special cases are very important in practical applications. Thus development of algorithms that are applicable to these special cases is of importance. The practical applicability of such algorithms can be validated by their ability to solve the problems that are considered to be computationally hard (for example cryptanalysis problems). In this article we propose the technology of solving the inversion problem for polynomially computable discrete functions. This technology was implemented in distributed computing environments (parallel clusters and Grid-systems). It is based on reducing the inversion problem for the considered function to some SAT problem. We describe a general approach to coarse-grained parallelization for obtained SAT problems. Efficiency of each parallelization scheme is determined by the means of a special predictive function. The proposed technology was validated by successful solving of cryptanalysis problems for some keystream generators. The main practical result of this work is a complete cryptanalysis of keystream generator A5/1 which was performed in a Grid system specially built for this task.

[1]  Matti Järvisalo,et al.  Limitations of restricted branching in clause learning , 2008, Constraints.

[2]  Jean H. Gallier,et al.  Linear-Time Algorithms for Testing the Satisfiability of Propositional Horn Formulae , 1984, J. Log. Program..

[3]  Hilary Putnam,et al.  A Computing Procedure for Quantification Theory , 1960, JACM.

[4]  Salil P. Vadhan,et al.  Computational Complexity , 2005, Encyclopedia of Cryptography and Security.

[5]  David G. Mitchell,et al.  Finding hard instances of the satisfiability problem: A survey , 1996, Satisfiability Problem: Theory and Applications.

[6]  Jovan Dj. Golic,et al.  Cryptanalysis of Alleged A5 Stream Cipher , 1997, EUROCRYPT.

[7]  Alan T. Sherman,et al.  How to Break Gifford's Cipher , 1997, Cryptologia.

[8]  Bernd Becker,et al.  PaMiraXT: Parallel SAT Solving with Threads and Message Passing , 2009, J. Satisf. Boolean Model. Comput..

[9]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[10]  D. Gifford,et al.  The Application of Digital Broadcast Communication to Large Scale Information Systems , 1985, IEEE J. Sel. Areas Commun..

[11]  G. S. Tseitin On the Complexity of Derivation in Propositional Calculus , 1983 .

[12]  Oded Goldreich,et al.  Computational complexity: a conceptual perspective , 2008, SIGA.

[13]  Alex Biryukov,et al.  Real Time Cryptanalysis of A5/1 on a PC , 2000, FSE.

[14]  Michi Henning,et al.  A new approach to object-oriented middleware , 2004, IEEE Internet Computing.

[15]  Alfred Menezes,et al.  Handbook of Applied Cryptography , 2018 .

[16]  Rainer A. Rueppel,et al.  Correlation Immunity and the Summation Generator , 1985, CRYPTO.

[17]  Tim Güneysu,et al.  Cryptanalysis with COPACOBANA , 2008, IEEE Transactions on Computers.

[18]  Fabio Massacci,et al.  Logical Cryptanalysis as a SAT Problem , 2000, Journal of Automated Reasoning.

[19]  Ewald Speckenmeyer,et al.  A fast parallel SAT-solver — efficient workload balancing , 2005, Annals of Mathematics and Artificial Intelligence.

[20]  Mikhail Posypkin,et al.  A framework for parallel large-scale global optimization , 2009, Computer Science - Research and Development.

[21]  Janos Simon On some central problems in computational complexity , 1975 .

[22]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[23]  Paulo F. Flores,et al.  PMSat: a parallel version of MiniSAT , 2008, J. Satisf. Boolean Model. Comput..

[24]  Stephen A. Cook,et al.  The complexity of theorem-proving procedures , 1971, STOC.

[25]  Sergiu Rudeanu Boolean functions and equations , 1974 .

[26]  Joao Marques-Silva,et al.  GRASP: A Search Algorithm for Propositional Satisfiability , 1999, IEEE Trans. Computers.