Complete Communications Engineering

The RSA algorithm was developed by Ron Rivest, Adi Shamir, and Len Adleman and first published in 1977. RSA is a public-key algorithm used ubiquitously in Internet and electronic communication security, as an important part of document verification and user authentication. It is present as a key component of many e-commerce and email security systems, VPNs, security suites, as well as in most popular security protocols. These include SSL/TLS (to secure web traffic between servers and clients), as well as SSH, SET, MIME, PGP, and DNSSEC.

Consider users Alice and Bob, where Alice wishes to send a secure message m to Bob. Alice can encrypt the message m using a private-key cryptosystem to generate m’ and then encrypt the private key p to p’ using the RSA algorithm. The encrypted message m’ and key p’ can then be safely sent to Bob. If it is intercepted, the message m’ cannot be decrypted without knowledge of the private key p. Once Bob has received the message, he may decrypt the encrypted private key p’ using RSA in order to obtain p. The private key may then be used to decrypt the message m’ to obtain the original message m.

The RSA cryptosystem is based upon the difficulty of factoring large integers. It is considered that the RSA algorithm and the large integer factorization problem are computationally equivalent. If an efficient factoring algorithm for the large integer factorization problem does exist, RSA could no longer be considered secure. As such, key size selection is important for the level of security necessary to protect the message contents.

VOCAL’s embedded software libraries include a complete range of ETSI / ITU / IEEE compliant algorithms, in addition to many other standard and proprietary algorithms. Our software is optimized for execution on ANSI C and leading DSP architectures (TI, ADI, AMD, ARM, MIPS, CEVA, LSI Logic ZSP, etc.). These libraries are modular and can be executed as a single task under a variety of operating systems or standalone with its own microkernel.