Parallel algorithms for modular multi-exponentiation

Modular exponentiation is a time-consuming operation widely used in cryptography. Modular multi-exponentiation, a generalization of modular exponentiation also used in cryptography, deserves further analysis from the algorithmic point of view. The parallelization of modular multi-exponentiation can be obtained by generalizing methods used to parallelize modular exponentiation. In this paper, we present a new parallelization method for the modular multi-exponentiation operation with two optimizations. The first one searches for the fastest solution without taking into account the number of processors. The second one balances the load among the processors and finds the smallest number of processors that achieves the fastest solution. In detail, our algorithms compute the product of i modular exponentiations. They split up each exponent in j blocks and start j threads. Each thread processes together i blocks from different exponents. Thus, each block of an exponent is processed in a different thread, but the blocks of different exponents are processed together in the same thread. Using addition chains, we show the minimum number of threads with load balance and optimal running time. Therefore, the algorithms are optimized to run with the minimum time and the minimum number of processors.

[1]  Der-Chyuan Lou,et al.  An efficient Montgomery exponentiation algorithm by using signed-digit-recoding and folding techniques , 2007, Appl. Math. Comput..

[2]  Pascal Paillier,et al.  Public-Key Cryptosystems Based on Composite Degree Residuosity Classes , 1999, EUROCRYPT.

[3]  Nicholas Pippenger,et al.  On the Evaluation of Powers and Monomials , 1980, SIAM J. Comput..

[4]  D. Wong,et al.  A Fast Modular Multiexponentiation Algorithm Revisited , 2009, 2009 International Conference on Computational Intelligence and Software Engineering.

[5]  Max Mühlhäuser,et al.  EPPP4SMS: Efficient Privacy-Preserving Protocol for Smart Metering Systems and Its Simulation Using Real-World Data , 2014, IEEE Transactions on Smart Grid.

[6]  Der-Chyuan Lou,et al.  Fast Parallel Exponentiation Algorithm for RSA Public-Key Cryptosystem , 2006, Informatica.

[7]  Bodo Möller,et al.  Faster Multi-exponentiation through Caching: Accelerating (EC)DSA Signature Verification , 2008, SCN.

[8]  A. K. Lenstra,et al.  Multi-exponentiation (cryptographic protocols) , 1994 .

[9]  T. Elgamal A public key cryptosystem and a signature scheme based on discrete logarithms , 1984, CRYPTO 1984.

[10]  Nadia Nedjah,et al.  Parallel modular exponentiation using load balancing without precomputation , 2012, J. Comput. Syst. Sci..

[11]  Torben P. Pedersen Non-Interactive and Information-Theoretic Secure Verifiable Secret Sharing , 1991, CRYPTO.

[12]  Chin-Chen Chang,et al.  Parallel computation of the multi-exponentiation for cryptosystems , 1997, Int. J. Comput. Math..

[13]  Adi Shamir,et al.  A method for obtaining digital signatures and public-key cryptosystems , 1978, CACM.

[14]  Whitfield Diffie,et al.  New Directions in Cryptography , 1976, IEEE Trans. Inf. Theory.

[15]  Bart Preneel,et al.  Flexible Design of a Modular Simultaneous Exponentiation Core for Embedded Platforms , 2013, ARC.

[16]  Ahmet Tekcan,et al.  Solving some parametric quadratic Diophantine equation over Z and Fp , 2011, Appl. Math. Comput..