<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Solving Weakened Cryptanalysis Problems for the Bivium Keystream Generator in the Volunteer Computing Project SAT@home</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oleg Zaikin</string-name>
          <email>zaikin.icc@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Semenov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ilya Otpuschennikov</string-name>
          <email>otilya@yandex.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute for System Dynamics and Control Theory SB RAS</institution>
          ,
          <addr-line>Irkutsk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper, a cryptanalysis of the Bivium keystream generator in the SAT form is considered. For encoding the initial cryptanalysis problem into SAT a special program system TRANSALG was used. For an obtained SAT instance we use Monte Carlo method to search for a partitioning with good time estimation. Several weakened cryptanalysis instances of the Bivium generator were successfully solved in the volunteer computing project SAT@home using corresponding partitionings found on a computing cluster.</p>
      </abstract>
      <kwd-group>
        <kwd>SAT</kwd>
        <kwd>logical cryptanalysis</kwd>
        <kwd>Monte Carlo method</kwd>
        <kwd>volunteer computing</kwd>
        <kwd>Bivium</kwd>
        <kwd>SAT@home</kwd>
        <kwd>Transalg</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Volunteer computing [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] is a type of distributed computing which uses computational
resources of PCs of private persons called volunteers. Each volunteer computing project
is designed to solve one or several hard problems. When PC is connected to the project,
all the calculations are performed automatically and do not inconvenience user since
only idle resources of PC are used. Nowadays the most popular platform for organizing
volunteer computing projects is BOINC [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that was developed in Berkeley in 2002.
Today there are about 70 active volunteer projects, the majority of them based on BOINC.
      </p>
      <p>A volunteer computing project consists of the following basic parts: server
daemons, database, web site and client application. The daemons include work generator
(generates tasks to be processed), validator (checks the correctness of the results
received from volunteer’s PCs) and assimilator (processes correct results). Client
application should have versions for the widespread computing platforms.</p>
      <p>One of the attractive features of volunteer computing is its low cost — to maintatin
a project one needs only a dedicated server working 24/7. Main difficulty here lies in
the development of software and in database administration. In addition, it is crucial to
provide the feedback to volunteers using the web site of the project and special forums.
Another attractive feature of this type of computing is that volunteer project can solve
some particular hard problem for months or even years with good average performance.</p>
      <p>
        Wide class of problems from modern computer science can be effectively reduced
to Boolean satisfiability problem (SAT) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. SAT problems are usually considered as
the problems of search for solutions of Boolean equations in the form of CNF=1, where
CNF is a conjunctive normal form. There are many works in which various
combinatorial problems are reduced to SAT and solved in this form. For example, such problems
can be found in areas of verification, cryptography, combinatorics and bioinformatics.
Usually if the cryptanalysis is considered as a SAT problem then it is called a logical
cryptanalysis [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. In this case to find a secret key it is sufficient to find a solution of
corresponding satisfiable SAT instance. For solving corresponding SAT instance one
usually needs large computational resources. A volunteer computing project can
provide such resources.
      </p>
      <p>Below we present a brief outline of our paper. In the second section, we describe
how we utilize the TRANSALG tool for reduction of the cryptanalysis problem of the
Bivium generator to SAT. In the third section various decomposition techniques for SAT
are discussed. In the fourth section experimental results on solving weakened
cryptanalysis problems for the Bivium generator in the volunteer computing project SAT@home
are presented.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Propositional Encoding of Cryptanalysis Problem for Bivium</title>
      <p>
        The Bivium generator [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] uses two shift registers of a special kind (see Fig. 1). The first
register contains 93 cells and the second contains 84 cells. To initialize the generator, a
secret key of length 80 bit is put to the first register, and a fixed (known) initialization
vector of length 80 bit is put to the second register. All remaining cells are filled with
zeros. An initialization phase consists of 708 rounds during which keystream output is
not released.
keystream bit
qt
pt
      </p>
      <p>
        In accordance with [
        <xref ref-type="bibr" rid="ref16 ref25">16, 25</xref>
        ] we considered cryptanalysis problem for Bivium in
the following formulation. Based on the known fragment of keystream we search for
the values of all registers cells at the end of the initialization phase. Therefore, in our
experiments we used CNF encodings where initialization phase was omitted. Usually it
is believed that to uniquely identify the secret key it is sufficient to consider keystream
fragment of length comparable to the total length of shift registers. Here we followed
[
        <xref ref-type="bibr" rid="ref25 ref8">8, 25</xref>
        ] and set the keystream fragment length for Bivium cryptanalysis to 200 bits.
      </p>
      <p>
        To encode algorithm of the Bivium generator into CNF we used TRANSALG tool
[
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. As an input TRANSALG takes a source code of a program in the domain specific
language named TA language. TA language is a procedural programming language with
C-like syntax. This source code must describe an algorithm of computing of a discrete
function. Output of TRANSALG is a CNF which encodes the considered algorithm.
      </p>
      <p>
        Translation of a TA-program consists of two main stages. On the first stage a source
code of a TA-program is parsed, and concrete syntax tree is constructed. On the second
stage of translation, the symbolic execution of TA-program is performed. According to
the concept of the symbolic execution, interpreter operates not with concrete data, but
with symbols which encode this data — Boolean variables and Boolean vectors
(arrays). The symbolic execution of a TA-program results in a set of Boolean formulas,
which is called propositional encoding of the algorithm. We will consider
constructing of propositional encoding by TRANSALG on the example of TA-program which
describes algorithm of the Bivium keystream generator [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>The TA-program for the Bivium generator starts from the declaration of integer
constants (see Listing 1.1). Here constant len is equal to total length of the shift
registers (177 bits); constants lenA and lenB define the lengths of each register (93 and
84 bits respectively); stream len defines the number of bits of a keystream produced
by the generator (200 bits). After this, arrays of variables of type bit are declared.
Main data type in the TA-language is the bit type. TRANSALG uses this type to
establish links between variables used in a TA-program and Boolean variables included into
corresponding propositional encoding. It is important to distinguish between these two
sets of variables. Below we will refer to variables that appear in a TA-program as
program variables. All variables included in a propositional encoding are called encoding
variables.</p>
      <p>Global variables of type bit can be declared with attribute in or out. Attribute
in marks program variables associated with Boolean variables that encode input of an
algorithm. In fact, in such a way we declare a set of variables with the following feature:
any assignment of these variables derives values of all other variables in the
propositional encoding. It should be noted that in every TA-program that describes some
algorithm there must be declared variables which encode input of the considered algorithm.
Attribute out marks variables which, after TA-program is executed, contain an output
of the algorithm.</p>
      <p>Listing 1.1. Declarations of global variables and constants
d e f i n e l e n 1 7 7 ;
d e f i n e l e n A 9 3 ;
d e f i n e l e n B 8 4 ;
d e f i n e s t r e a m l e n 2 0 0 ;
i n b i t r e g [ l e n ] ;
o u t b i t s t r e a m [ s t r e a m l e n ] ;</p>
      <p>In the Listing 1.1 the bit array reg with attribute in is declared. This array
contains a state of the shift registers of the generator. Attribute in reports to the translator
that initial state of the registers is unknown. Encoding variables, linked with program
variables marked with attribute in, get first len numbers in a propositional encoding.
{
}
{
Also in Listing 1.1 the bit array stream with attribute out is declared. This array
contains the keystream produced by the generator. Encoding variables, linked with program
variables marked with attribute out, get last stream len numbers in a propositional
encoding. Thus by using attributes in and out we uniquely identify the sets of
Boolean variables in a propositional encoding, which encode input and output of an
algorithm respectively.</p>
      <p>
        In the considered TA-program shifting of the registers is implemented in the form
of the procedure shift regs (see Listing 1.2). This procedure updates the state of the
global bit array reg, according to the Bivium algorithm [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Note that as a result of
interpretation of the procedure shift regs, new encoding variables are created only
to represent the result of feedback functions calculation. Operations of copying data
between cells add nothing to a propositional encoding — only links between program
variables and corresponding Boolean encoding variables are changed.
      </p>
      <p>Listing 1.2. Function that implements one shift of the Bivium registers
v o i d s h i f t r e g s ( )
b i t t 1 = r e g [ 6 5 ] ˆ r e g [ 9 0 ] &amp; r e g [ 9 1 ] ˆ r e g [ 9 2 ] ˆ r e g [ 1 7 0 ] ;
b i t t 2 = r e g [ 1 6 1 ] ˆ r e g [ 1 7 4 ] &amp; r e g [ 1 7 5 ] ˆ r e g [ 1 7 6 ] ˆ r e g [ 6 8 ] ;
i n t i ;
f o r ( i = l e n A − 1 ; i &gt; 0 ; i = i − 1 ) {</p>
      <p>r e g [ i ] = r e g [ i − 1 ] ;
}
r e g [ 0 ] = t 2 ;
f o r ( i = l e n A + l e n B − 1 ; i &gt; l e n A ; i = i − 1 ) {</p>
      <p>r e g [ i ] = r e g [ i − 1 ] ;
}
r e g [ l e n A ] = t 1 ;</p>
      <p>Interpretation of a TA-program starts from executing the function main. This
function is the entry of any TA-program. Presented in the Listing 1.3 function main
implements the base loop of the Bivium generator. One iteration of this loop outputs one
bit of keystream. For this purpose the current state of the four registers cells are taken
— their sum mod 2 gives next keystream bit. After this, the shifting of the registers is
performed by calling function shift regs.</p>
      <p>Listing 1.3. Implementation of the base work loop of the Bivium generator
v o i d main ( )
f o r ( i n t i = 0 ; i &lt; s t r e a m l e n ; i = i + 1 ) {
b i t t 1 = r e g [ 6 5 ] ˆ r e g [ 9 2 ] ;
b i t t 2 = r e g [ 1 6 1 ] ˆ r e g [ 1 7 6 ] ;
s t r e a m [ i ] = t 1 ˆ t 2 ;
}</p>
      <p>
        The considered TA-program describes the generation of 200 keystream bits by the
Bivium generator. The translation of this program results in the system of 465 Boolean
equations. The transition from this system to the CNF is performed using the Tseitin
transformations [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ] and procedures of Boolean minimization. During this transition to
minimize Boolean formulas, the ESPRESSO library1, which is integrated to TRANSALG
in the form of separate program module, is used. Procedures of Boolean minimization,
implemented in Espresso, operate with truth tables. If the size of a constructed formula
does not allow to effectively work with its truth table, then to decompose such formulas
into subformulas the Tseitin transformations are used. The final CNF which encodes
generating of 200 keystream bits by Bivium is constructed over the set of 642 Boolean
variables, and consists of 9560 clauses and 49920 literals.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>SAT partitioning</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14">11–14</xref>
        ] various approaches to partitioning SAT were studied. Below we will use
the terminology from [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Consider a satisfiability problem for an arbitrary CNF C.
Partitioning of C is a set of formulas
      </p>
      <p>C ∧ Gi, i ∈ {1, . . . , S}
such that for any i, j : i ̸= j formula C ∧ Gi ∧ Gj is unsatisfiable and</p>
      <p>C ≡ C ∧ G1 ∨ . . . ∨ C ∧ GS .</p>
      <p>When one has a partitioning of an original SAT instance, satisfiability problems for
C ∧ Gj , j ∈ {1, . . . , S} can be solved independently in parallel.</p>
      <p>
        There exist various partitioning techniques. For example one can construct {Gj }jS=1
using a scattering procedure [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], a guiding path solver [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] or a lookahead solver [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Unfortunately, for these partitioning methods it is hard in general case to estimate the
time required to solve an original problem. From the other hand in a number of papers
about logical cryptanalysis of several keystream generators there was used a partitioning
method that makes it possible to construct such estimations in quite a natural way. In
particular, in [
        <xref ref-type="bibr" rid="ref17 ref25 ref26 ref8">17, 8, 26, 25</xref>
        ] for this purpose the information about the time to solve small
number of subproblems randomly chosen from the partitioning of an original problem
was used. In the paper [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] strict formal description of this idea within the borders of
the Monte Carlo method in its classical form [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] was given.
      </p>
      <p>Consider a satisfiability problem for an arbitrary CNF C over a set of Boolean
variables X = {x1, . . . , xn}. We call an arbitrary set X~ = {xi1 , . . . , xid }, X~ ⊆ X a
decomposition set. Consider a partitioning of C that consists of a set of 2d formulae</p>
      <p>C ∧ Gj , j ∈ {1, . . . , 2d}
1 http://embedded.eecs.berkeley.edu/pubs/downloads/Espresso/index.htm
where Gj , j ∈ {1, . . . , 2d} are all possible minterms over X~ . Note that an arbitrary
formula Gj takes a value of true on a single truth assignment (α1j, . . . , αdj) ∈ {0, 1}d.
Therefore, an arbitrary formula C∧Gj is satisfiable if and only if C [X~ / (α1j, . . . , αdj)]
is satisfiable. Here C [X~ / (α1j, . . . , αdj)] is produced by setting values of variables xik
to corresponding αkj, k ∈ {1, . . . , d} : xi1 = α1j, . . . , xid = αdj. A set of CNFs
∆(C, X~ ) = {C [X~ / (α1j, . . . , αdj)]}
( j1;:::; jd)2f0;1gd
is called a decomposition family produced by X~ .</p>
      <p>The number of CNFs in ∆(C, X~ ) is 2d. It is possible to estimate the total time
required for processing this family based on the time of solving of SAT problems for k,
k &lt;&lt; 2d randomly chosen CNFs from the family. This estimation can be used to plan
a computational experiment.</p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] the Monte Carlo algorithm based on tabu search heuristics to search for
decomposition sets with good time estimations was suggested. This algorithm was
implemented as the parallel MPI program PDSAT. We used PDSAT running on a computing
cluster to obtain decomposition sets for logical cryptanalysis instances for the Bivium
generator. As a result we found the set of of 47 variables for Bivium (see Fig. 2). On
this figure cells corresponding to variables from decompositions sets are marked with
gray color. Time estimation for this set is 1.3391e+11 seconds for 1 processor core.
keystream bit
qt
pt
SAT@home2 [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] is a volunteer computing BOINC-based project aimed at solving
hard combinatorial problems that can be effectively reduced to SAT. It was launched
2 http://sat.isa.ru/pdsat/
on September 29, 2011 by ISDCT SB RAS and IITP RAS. On February 7, 2012
SAT@home was added to the official list of BOINC projects3 with alpha status.
Recently its status was improved to beta.
      </p>
      <p>
        The SAT@home server uses a number of standard BOINC daemons responsible
for sending and processing tasks (transitioner, feeder, scheduler, etc.). Such daemons
as work generator, validator and assimilator were implemented taking into account the
specificity of the project. The work generator decomposes the original SAT problem to
subproblems according to partitioning found by PDSAT (see section 3). The validator
checks the correctness of the results, and the assimilator processes correct results. The
client application is based on the CDCL SAT solver MINISAT [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>The characteristics of the SAT@home project as of 22 of February 2015 are
(according to BOINCstats4):
– 2948 active PCs (active PC in volunteer computing is a PC that sent at least one
result in last 30 days) about 80% of them use Microsoft Windows OS;
– 1432 active users (active user is a user that has at least one active PC);
– versions of the client application for CPU: Windows x86, Windows x86-64, Linux
x86, Linux x86-64;
– average real performance: 6 teraflops, maximal performance: 10 teraflops.</p>
      <p>The dynamics of the real performance of SAT@home can be seen at the SAT@home
performance page5.</p>
      <p>
        With respect to the estimation obtained by PDSAT the solving of one instance of
cryptanalysis of the Bivium ciper in the SAT@home project with its current
performance would take about 3 years (using decomposition set of 47 variables [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]). That
is why we decided to solve weakened cryptanalysis problems for this generator. Below
we use the notation BiviumK to denote a weakened cryptanalysis problem for Bivium
with known values of K variables (in corresponding SAT instance) encoding last K
cells of the second shift register. In particular we considered the Bivium9 problem.
We used PDSAT to find a decomposition set with good time estimation for Bivium9.
As a result we obtained the decomposition set of 43 variables with time estimation
4.2873e+09 seconds. From September 2014 to December 2014 with the help of this
decomposition set, 5 Bivium9 instances were solved in SAT@home. During the
corresponding experiment for each cryptanalysis instance the search space was divided
into 146602 equal tasks, each containing 60 millions subproblems. For processing one
such task about 2 hours of modern CPU core is needed. The client application was
based on a modified version of MINISAT 2.2. Time estimation by PDSAT shows good
consistency with real solving time of these cryptanalysis instances. As far as we know
there are no other available experimental results on solving such problems.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Related Work</title>
      <p>
        The first work that used SAT-solvers for cryptanalysis was [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. The authors of [
        <xref ref-type="bibr" rid="ref17 ref26 ref8">8, 17,
26</xref>
        ] presented some estimations of the time required for logical cryptanalysis of the
3 http://boinc.berkeley.edu/projects.php
4 http://boincstats.com/
5 http://sat.isa.ru/pdsat/performance.php
Bivium cipher. Topics related to organization of SAT solving in distributed
environments were considered in many papers, for example in [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref28 ref4 ref6">4, 6, 10–12, 28</xref>
        ]. In [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] a
desktop grid for solving SAT which used conflict clauses exchange via peer-to-peer protocol
was described. Apparently, [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] became the first paper about the use of a desktop grid
based on the BOINC platform for solving SAT, but it did not evolve into a full-fledged
volunteer computing project. The predecessor of the SAT@home was the BNB-Grid
system [
        <xref ref-type="bibr" rid="ref24 ref9">9, 24</xref>
        ], that was used to solve first large scale cryptographic problems in 2009.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions</title>
      <p>Obtained results show that SAT@home can be successfully used for solving hard
logical cryptanalysis problems. We plan to use SAT@home for solving non-weakened
cryptanalysis problem of the Bivium generator. Also we plan to solve in SAT@home
cryptanalysis problems for other keystream generators.
7</p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>We thank Mikhail Posypkin and Nickolay Khrapov for their help in maintaining the
SAT@home project, Stepan Kochemazov for valuable comments and discussions, and
all the SAT@home volunteers for their participation. This work was partly supported
by Russian Foundation for Basic Research (grants 14-07-00403-a, 14-07-31172-mol-a,
15-07-07891-a) and by the President of Russian Federation grants for young scientists
(grant SP-3667.2013.5).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>D. P.</given-names>
            <surname>Anderson</surname>
          </string-name>
          and
          <string-name>
            <surname>G. Fedak.</surname>
          </string-name>
          <article-title>The computational and storage potential of volunteer computing</article-title>
          .
          <source>In Sixth IEEE International Symposium on Cluster Computing and the Grid (CCGrid</source>
          <year>2006</year>
          ),
          <fpage>16</fpage>
          -
          <lpage>19</lpage>
          May
          <year>2006</year>
          , Singapore, pages
          <fpage>73</fpage>
          -
          <lpage>80</lpage>
          . IEEE Computer Society,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Heule</surname>
          </string-name>
          ,
          <string-name>
            <surname>H. van Maaren</surname>
          </string-name>
          , and T. Walsh, editors.
          <source>Handbook of Satisfiability</source>
          , volume
          <volume>185</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          . IOS Press,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>M.</given-names>
            <surname>Black</surname>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Bard. SAT Over</surname>
          </string-name>
          <string-name>
            <surname>BOINC</surname>
          </string-name>
          :
          <article-title>An Application-Independent Volunteer Grid Project</article-title>
          . In S. Jha, N. gentschen
          <string-name>
            <surname>Felde</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Buyya</surname>
          </string-name>
          , and G. Fedak, editors,
          <source>GRID</source>
          , pages
          <fpage>226</fpage>
          -
          <lpage>227</lpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>W.</given-names>
            <surname>Blochinger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Sinz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Ku</surname>
          </string-name>
          <article-title>¨chlin. Parallel propositional satisfiability checking with distributed dynamic learning</article-title>
          .
          <source>Parallel Computing</source>
          ,
          <volume>29</volume>
          (
          <issue>7</issue>
          ):
          <fpage>969</fpage>
          -
          <lpage>994</lpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. C. D. Cannie`re. Trivium:
          <article-title>A stream cipher construction inspired by block cipher design principles</article-title>
          . In S. K. Katsikas,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lopez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Backes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gritzalis</surname>
          </string-name>
          , and B. Preneel, editors,
          <source>ISC</source>
          , volume
          <volume>4176</volume>
          <source>of LNCS</source>
          , pages
          <fpage>171</fpage>
          -
          <lpage>186</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>W.</given-names>
            <surname>Chrabakh</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Wolski</surname>
          </string-name>
          .
          <article-title>GridSAT: a system for solving satisfiability problems using a computational grid</article-title>
          .
          <source>Parallel Computing</source>
          ,
          <volume>32</volume>
          (
          <issue>9</issue>
          ):
          <fpage>660</fpage>
          -
          <lpage>687</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>N.</surname>
          </string-name>
          <article-title>Ee´n and N. So¨rensson. An Extensible SAT-solver</article-title>
          . In E. Giunchiglia and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Tacchella, editors,
          <source>SAT</source>
          , volume
          <volume>2919</volume>
          <source>of LNCS</source>
          , pages
          <fpage>502</fpage>
          -
          <lpage>518</lpage>
          . Springer,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>T.</given-names>
            <surname>Eibach</surname>
          </string-name>
          , E. Pilz, and
          <string-name>
            <surname>G.</surname>
          </string-name>
          <article-title>Vo¨lkel. Attacking Bivium Using SAT Solvers</article-title>
          . In H. K. Bu¨ning and X. Zhao, editors,
          <source>SAT</source>
          , volume
          <volume>4996</volume>
          <source>of LNCS</source>
          , pages
          <fpage>63</fpage>
          -
          <lpage>76</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Y.</given-names>
            <surname>Evtushenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Posypkin</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Sigal.</surname>
          </string-name>
          <article-title>A framework for parallel large-scale global optimization</article-title>
          . Computer Science - R&amp;D,
          <volume>23</volume>
          (
          <issue>3-4</issue>
          ):
          <fpage>211</fpage>
          -
          <lpage>215</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Heule</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Kullmann</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Wieringa</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          .
          <article-title>Cube and Conquer: Guiding CDCL SAT Solvers by Lookaheads</article-title>
          . In K. Eder, J. Lourenc¸o, and O. Shehory, editors,
          <source>Haifa Verification Conference</source>
          , volume
          <volume>7261</volume>
          <source>of LNCS</source>
          , pages
          <fpage>50</fpage>
          -
          <lpage>65</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>A. E. J. Hyva</surname>
          </string-name>
          <article-title>¨rinen. Grid Based Propositional Satisfiability Solving</article-title>
          .
          <source>PhD thesis</source>
          , Aalto University,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>A. E. J. Hyva</surname>
          </string-name>
          ¨rinen, T. A.
          <string-name>
            <surname>Junttila</surname>
            ,
            <given-names>and I.</given-names>
          </string-name>
          <article-title>Niemela¨. A Distribution Method for Solving SAT in Grids</article-title>
          . In A. Biere and
          <string-name>
            <surname>C. P.</surname>
          </string-name>
          Gomes, editors,
          <source>SAT</source>
          , volume
          <volume>4121</volume>
          <source>of LNCS</source>
          , pages
          <fpage>430</fpage>
          -
          <lpage>435</lpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>A. E. J. Hyva</surname>
          </string-name>
          ¨rinen, T. A.
          <string-name>
            <surname>Junttila</surname>
            ,
            <given-names>and I.</given-names>
          </string-name>
          <article-title>Niemela¨. Partitioning SAT Instances for Distributed Solving</article-title>
          . In C. G.
          <article-title>Fermu¨ller and A</article-title>
          . Voronkov, editors,
          <source>LPAR (Yogyakarta)</source>
          , volume
          <volume>6397</volume>
          <source>of LNCS</source>
          , pages
          <fpage>372</fpage>
          -
          <lpage>386</lpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>A. E. J. Hyva</surname>
          </string-name>
          ¨rinen, T. A.
          <string-name>
            <surname>Junttila</surname>
            ,
            <given-names>and I.</given-names>
          </string-name>
          <article-title>Niemela¨. Grid-Based SAT Solving with Iterative Partitioning and Clause Learning</article-title>
          . In J. H.
          <string-name>
            <surname>-M. Lee</surname>
          </string-name>
          , editor,
          <source>CP</source>
          , volume
          <volume>6876</volume>
          <source>of LNCS</source>
          , pages
          <fpage>385</fpage>
          -
          <lpage>399</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <given-names>F.</given-names>
            <surname>Massacci</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Marraro</surname>
          </string-name>
          .
          <article-title>Logical Cryptanalysis as a SAT Problem</article-title>
          .
          <source>J. Autom. Reasoning</source>
          ,
          <volume>24</volume>
          (
          <issue>1</issue>
          /2):
          <fpage>165</fpage>
          -
          <lpage>203</lpage>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>A.</given-names>
            <surname>Maximov</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Biryukov</surname>
          </string-name>
          .
          <article-title>Two trivial attacks on trivium</article-title>
          . In
          <string-name>
            <surname>C. M. Adams</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Miri</surname>
          </string-name>
          , and M. J. Wiener, editors,
          <source>Selected Areas in Cryptography</source>
          , volume
          <volume>4876</volume>
          of Lecture Notes in Computer Science, pages
          <fpage>36</fpage>
          -
          <lpage>55</lpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>C.</given-names>
            <surname>Mcdonald</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Charnes</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Pieprzyk</surname>
          </string-name>
          .
          <article-title>Attacking Bivium with MiniSat</article-title>
          .
          <source>Technical Report</source>
          <year>2007</year>
          /040,
          <string-name>
            <given-names>ECRYPT</given-names>
            <surname>Stream Cipher</surname>
          </string-name>
          <string-name>
            <surname>Project</surname>
          </string-name>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>N.</given-names>
            <surname>Metropolis</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Ulam</surname>
          </string-name>
          .
          <source>The Monte Carlo Method. J. Amer. statistical assoc.</source>
          ,
          <volume>44</volume>
          (
          <issue>247</issue>
          ):
          <fpage>335</fpage>
          -
          <lpage>341</lpage>
          ,
          <year>1949</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. Nouman Durrani</surname>
            and
            <given-names>J. A.</given-names>
          </string-name>
          <string-name>
            <surname>Shamsi</surname>
          </string-name>
          . Review:
          <article-title>Volunteer computing: Requirements, challenges, and solutions</article-title>
          .
          <source>J. Netw. Comput. Appl.</source>
          ,
          <volume>39</volume>
          :
          <fpage>369</fpage>
          -
          <lpage>380</lpage>
          , Mar.
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20. I.
          <string-name>
            <surname>Otpuschennikov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Semenov</surname>
            , and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Kochemazov</surname>
          </string-name>
          .
          <article-title>Transalg: a tool for translating procedural descriptions of discrete functions to sat (tool paper)</article-title>
          .
          <source>CoRR, abs/1405.1544</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>M. Posypkin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Semenov</surname>
            , and
            <given-names>O.</given-names>
          </string-name>
          <string-name>
            <surname>Zaikin</surname>
          </string-name>
          .
          <article-title>Using BOINC desktop grid to solve large scale SAT problems</article-title>
          . Computer Science Journal,
          <volume>13</volume>
          (
          <issue>1</issue>
          ):
          <fpage>25</fpage>
          -
          <lpage>34</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>S.</given-names>
            <surname>Schulz</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Blochinger</surname>
          </string-name>
          .
          <article-title>Parallel SAT Solving on Peer-to-Peer Desktop Grids</article-title>
          .
          <source>J. Grid Comput.</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <fpage>443</fpage>
          -
          <lpage>471</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>A.</given-names>
            <surname>Semenov</surname>
          </string-name>
          and
          <string-name>
            <given-names>O.</given-names>
            <surname>Zaikin</surname>
          </string-name>
          .
          <article-title>On estimating total time to solve SAT in distributed computing environments: Application to the SAT@home project</article-title>
          .
          <source>CoRR, abs/1308.0761</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <given-names>A.</given-names>
            <surname>Semenov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Zaikin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Bespalov</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Posypkin</surname>
          </string-name>
          .
          <article-title>Parallel Logical Cryptanalysis of the Generator A5/1 in BNB-Grid System</article-title>
          . In V. Malyshkin, editor,
          <source>PaCT</source>
          , volume
          <volume>6873</volume>
          <source>of LNCS</source>
          , pages
          <fpage>473</fpage>
          -
          <lpage>483</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>M.</given-names>
            <surname>Soos</surname>
          </string-name>
          .
          <article-title>Grain of Salt - an Automated Way to Test Stream Ciphers through SAT Solvers</article-title>
          .
          <source>In Tools'10: Proceedings of the Workshop on Tools for Cryptanalysis</source>
          , pages
          <fpage>131</fpage>
          -
          <lpage>144</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>M. Soos</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Nohl</surname>
            , and
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Castelluccia</surname>
          </string-name>
          .
          <article-title>Extending SAT Solvers to Cryptographic Problems</article-title>
          . In O. Kullmann, editor,
          <source>SAT</source>
          , volume
          <volume>5584</volume>
          <source>of LNCS</source>
          , pages
          <fpage>244</fpage>
          -
          <lpage>257</lpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>G. S.</given-names>
            <surname>Tseitin</surname>
          </string-name>
          .
          <article-title>On the complexity of derivation in propositional calculus</article-title>
          . In J. Siekmann and G. Wrightson, editors,
          <source>Automation of Reasoning 2: Classical Papers on Computational Logic</source>
          <year>1967</year>
          -1970, pages
          <fpage>466</fpage>
          -
          <lpage>483</lpage>
          . Springer, Berlin, Heidelberg,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Bonacina</surname>
          </string-name>
          , and
          <string-name>
            <surname>J. Hsiang.</surname>
          </string-name>
          <article-title>PSATO: a Distributed Propositional Prover and its Application to Quasigroup Problems</article-title>
          . J.
          <string-name>
            <surname>Symb</surname>
          </string-name>
          . Comput.,
          <volume>21</volume>
          (
          <issue>4</issue>
          ):
          <fpage>543</fpage>
          -
          <lpage>560</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>