{'fraction_non_alphanumeric': 0.025142857142857144, 'fraction_numerical': 0.001142857142857143, 'mean_word_length': 5.488888888888889, '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}}
SIMD acceleration of modular arithmetic on contemporary embedded platforms

Elliptic curve cryptography (ECC) is a public key crypto system popular for embedded implementations because of its shorter key sizes. ECC computations are complex; they involve point additions and doublings on elliptic curves over finite fields. The execution time of ECC is completely dominated by modular multiplications in these fields. In this contribution, we propose vector processing techniques to accelerate modular multiplications in prime fields. We demonstrate implementations for the Venom (NEON) coprocessor in Qualcomm's Scorpion (ARM) CPU, as well as for the SSE2 instruction-set extensions in Intel's Atom CPU. Our implementations, which use NIST-standard prime-field curves, run more than two times faster than the OpenSSL versions of the same ECC operations on the same processor.