# Public Key Cryptography and RSA

• Asymmetric encryption is a form of cryptosystem in which encryption and decryption are performed using the different keys one a public key and one a private key. It is also known as public-key encryption.
• Asymmetric encryption can be used for confidentiality, authentication, or both.
• The difficulty of attacking RSA is based on the difficulty of finding the prime factors of a composite number.
• In fact, the security of any encryption scheme depends on the length of the key and the computational work involved in breaking a cipher.
• Public-Key encryption techniques suffer from the computational overhead. This supports the need for using Private-Key encryption.

Principles of Public-Key Cryptosystems

• The concept of public-key cryptography evolved from an attempt to attack two of the most difficult problems associated with symmetric encryption:
• Key distribution.
• That was done using either:
• Two communicants already share a key, which somehow has been distributed to them.
• The use of a key distribution center.
• Need for digital signature.
• That is, could a method be devised that would stipulate, to the satisfaction of all parties, that a digital message had been sent by a particular person? (authentication purpose).
• Characteristics of public-key cryptosystem:
• It is computationally infeasible to determine the decryption key given only knowledge of the cryptographic algorithm and the encryption key.
• In RSA, either of the two related keys can be used for encryption, with the other used for decryption. • 261-Essential steps for the encryption process.    • The disadvantage of this last approach is that the public-key algorithm, which is complex, must be exercised four times rather than two in each communication.
• Classification of public key cryptosystem:
• Encryption/Decryption.
• Digital Signature.
• Key Exchange. • Requirements for public-key cryptography:
• It is computationally easy for a party B to generate a pair (public key PUb, private key PRb).
• It is computationally easy for a sender A, knowing the public key and the message to be encrypted, M, to generate the corresponding ciphertext: C = E(PUb, M).
• It is computationally easy for the receiver B to decrypt the resulting ciphertext using the private key to recover the original message: M = D(PRb, C) = D[PRb, E(PUb, M)].
• It is computationally infeasible for an adversary, knowing the public key, PUb, to determine the private key, PRb.
• It is computationally infeasible for an adversary, knowing the public key, PUb, and a ciphertext, C, to recover the original message, M.
• The two keys can be applied in either order: M = D[PUb, E(PRb, M)] = D[PRb, E(PUb, M)].
• A