{'fraction_non_alphanumeric': 0.025385312783318223, 'fraction_numerical': 0.001813236627379873, 'mean_word_length': 5.4186046511627906, '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}}
Performance Scaling of Cryptography Operations in Servers and Mobile Clients

Cryptography algorithms are essential building blocks used to provide security on public communication networks such as the Internet. Concurrent with the increases in wireless connectivity and data rates, security protocols have been expanded over the past years to include more resource-friendly cryptography algorithms such as Elliptic Curve Cryptography (ECC). In this paper, we first describe and characterize these newer security algorithms suitable for mobile environments. We consider symmetric-key, hash, public-key, ECC, and digital signature algorithms. Next, we describe new architectural techniques to accelerate these algorithms. We focus on the table lookup operations used in the symmetric-key ciphers and the multi-precision arithmetic operations used in the public-key ciphers. Our third contribution is to show how: (1) the performance of a server can be scaled to support a growing number of mobile clients, and (2) the performance of a client can be scaled to meet particular wireless data transfer rates.