{'fraction_non_alphanumeric': 0.03128491620111732, 'fraction_numerical': 0.01452513966480447, 'mean_word_length': 5.265734265734266, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Parallel modular multiplication with table look-up

Modular exponentiation with a large modulus (usually longer than 512 bits) is the main operation in most number-theoretic cryptosystems. A modular exponentiation can be carried out by iteration of modular multiplications. Therefore, design of a fast modular multiplication algorithm is the key to developing a high performance encryption/decryption circuit for such cryptosystems. Most existing algorithms are focused on the serial implementation of modular multiplication [1–7]. In this paper, we present a new parallel algorithm which takes only (2.75k + 1.25) n-bit additions if the n-bit operands are divided into k blocks and look-up table implemented with commercially available memory chips are employed. The parallel algorithm can provide a speedup of (0.5 n/k) as compared with conventional iterative modular multiplication algorithm.