IMPLEMENTATION OF AES, RSA, ECC
In this world of increasing electronic connectivity of viruses, hackers, eaves-dropping and electronic fraud, electronic security is necessary always for transmitting secure electronic-data across insecure networks such as the internet. So, in order to ensure this electronic security, cryptography evolved leading to the development of various cryptosystems.
The main objective of this project is to develop three such cryptosystems- Advanced Encryption Standard (AES), Rivest Shamir Adleman (RSA) Cryptosystem and Elliptic Curve cryptosystem (ECC). All these three cryptosystems are implemented in a sender-receiver environment simulating how the cryptography is used for real-world applications. Also, another aim is to design an API to implement encryption /decryption algorithms for all these three cryptosystems.
AES algorithm is implemented for all three key sizes ie., 128 bit, 192 bit, 256 bits. RSA is implemented for a key size of 1024 bits. ECC is implemented using elliptic curves over GF(P) in contrary to most ECC implementations which uses GF(2^n).
The idea behind the implementation of all these three cryptosystems is to provide a stream-based environment where encryption and decryption is essentially done by crypto-streams that can be plugged in right away where needed. Various properties of elliptic curves (GF (p)) like point addition, point subtraction, point doubling and point multiplication are also presented. As of now the ECC package does not support constructions of arbitrary elliptic curves and corresponding generators. This means that it is based on predefined curves, namely 112, 160 or 256 bit curves taken from Standards of Efficient Cryptography (SEC) are described.