Adaptive loops with kaapi on multicore and grid: applications in symmetric cryptography

The parallelization of two applications in symmetric cryptography is considered: block ciphering and a new method based on random sampling for the selection of basic substitution boxes (S-box) with good algebraic properties. While both consists mainly in loops with independent computations and possibly early termination, they are subject to changing computation loads and processor speeds which can be managed by distributed workstealing. To take benefit of workstealing, we propose in this paper a generic way to rewrite loops in a recursive way, involving three complementary levels of parallelism. Dealing with early termination is performed by an amortized control, original to our knowledge. Those schemes have been embedded in STL-like parallel algorithms implemented on top of Kaapi library that provides distributed workstealing on a wide range of platforms. Experiments and performances are reported on SMP (up to 16 processors) and grid architectures (up to 2120 processors) for benchmarks (e.g. STL find if) and for the two target cryptography applications. These experiments exhibit the stability of the library and its usability by external users for effective applications.

[1]  David Thomas,et al.  The Art in Computer Programming , 2001 .

[2]  Helger Lipmaa,et al.  Comments to NIST concerning AES Modes of Operations: CTR-Mode Encryption , 2000 .

[3]  Morris J. Dworkin,et al.  Report on the Second Modes of Operation Workshop | NIST , 2001 .

[4]  Alex Biryukov,et al.  A Toolbox for Cryptanalysis: Linear and Affine Equivalence Algorithms , 2003, EUROCRYPT.

[5]  Nancy M. Amato,et al.  STAPL: An Adaptive, Generic Parallel C++ Library , 2001, LCPC.

[6]  Takuji Nishimura,et al.  Mersenne twister: a 623-dimensionally equidistributed uniform pseudo-random number generator , 1998, TOMC.

[7]  Pierre Manneback,et al.  Tradeoff to minimize extra-computations and stopping criterion tests for parallel iterative schemes , 2004 .

[8]  Kaisa Nyberg,et al.  Differentially Uniform Mappings for Cryptography , 1994, EUROCRYPT.

[9]  Josef Pieprzyk,et al.  Cryptanalysis of Block Ciphers with Overdefined Systems of Equations , 2002, ASIACRYPT.

[10]  Bruce Schneier,et al.  Applied cryptography (2nd ed.): protocols, algorithms, and source code in C , 1995 .

[11]  D. Chaum,et al.  Di(cid:11)erential Cryptanalysis of the full 16-round DES , 1977 .

[12]  J. WISHART,et al.  Statistical Tables , 2021, Nature.

[13]  David R. Musser,et al.  STL tutorial and reference guide, second edition: C++ programming with the standard template library , 2001 .

[14]  Julien Bernard,et al.  On-Line Adaptive Parallel Prefix Computation , 2006, Euro-Par.

[15]  C. Greg Plaxton,et al.  Thread Scheduling for Multiprogrammed Multiprocessors , 1998, SPAA '98.

[16]  Thierry Gautier,et al.  Fine Grain Distributed Implementation of a Dataflow Language with Provable Performances , 2007, International Conference on Computational Science.

[17]  Gerson G. H. Cavalheiro,et al.  Athapascan-1: On-line building data flow graph in a parallel language , 1998, Proceedings. 1998 International Conference on Parallel Architectures and Compilation Techniques (Cat. No.98EX192).

[18]  S. Jafar,et al.  Theft-induced checkpointing for reconfigurable dataflow applications , 2005, 2005 IEEE International Conference on Electro Information Technology.

[19]  Eli Biham,et al.  Differential cryptanalysis of DES-like cryptosystems , 1990, Journal of Cryptology.

[20]  Peter Sanders,et al.  MCSTL: the multi-core standard template library , 2007, PPOPP.

[21]  Michael A. Bender,et al.  Online Scheduling of Parallel Programs on Heterogeneous Systems with Applications to Cilk , 2002, SPAA '00.

[22]  Olivier Richard,et al.  Déploiement adaptatif d'applications parallèles. Algorithme de vol de travail appliqué au déploiement d'applications parallèles sur des grappes de grande taille , 2005, Tech. Sci. Informatiques.

[23]  Vincent Rijmen,et al.  The Block Cipher Square , 1997, FSE.

[24]  Bernard P. Zajac Applied cryptography: Protocols, algorithms, and source code in C , 1994 .

[25]  Thomas Gschwind PSTL-A C++ Persistent Standard Template Library , 2001, COOTS.

[26]  Matteo Frigo,et al.  The implementation of the Cilk-5 multithreaded language , 1998, PLDI.

[27]  Guy E. Blelloch,et al.  The Data Locality of Work Stealing , 2002, SPAA '00.