Plant propagation: Sexual and Asexual propapagation.pptx
RSA - ENCRYPTION ALGORITHM CRYPTOGRAPHY
1. PUBLIC KEY CRYPTOGRAPHY-RSA ENCRYPTION
ALGORITHM
Meenakshi Shetti
GENESYS Receipt No:79
Department Of Computer Science And Engineering
K.L.S.Gogte Institute Of Technology
Belgaum, Karnataka, India.
meenakshishetti_11@yahoo.com
Muthu Gomathy V
GENESYS Receipt No:130
Department Of Computer Science And Engineering
K.L.S.Gogte Institute Of Technology
Belgaum, Karnataka, India.
muthugomathy1003@gmail.com
2. Abstract—Practice and study of techniques for secure
communication in the presence of third parties is the
cryptography. In this paper we are explaining about
public key cryptography also called as asymmetric key
cryptography where two different keys are used. No
other key can decrypt the message – not even the
original (i.e. the first) key used for encryption. The
beauty of this scheme is that every communicating
party needs just a key pair for communicating with any
number of other communicating parties. Once some one
obtains a key pair, he /she can communicate with any
one else. Here we explain about the wide used
encryption algorithm the RSA algorithm developed in
1977. Which is developed on the basis of Diffie Hellman
key exchange algorithm due to its shortcoming in one
sender and many receiver. In this paper we discuss
about working of RSA algotithm , its application in
various sectors and its weekness and limitations.
I. INTRODUCTION
Cryptography (from Greek means "hidden, secret"
and ,graphein, "writing",respectively) is the practice
and study of techniques for secure communication in
the presence of third parties (called adversaries).
Cryptography is heavily based on mathematical
theory and computer science practice; cryptographic
algorithms are designed around computational
hardness assumptions , making such algorithms hard
to break in practice by any adversary. It is
theoretically possible to break such a system but it is
infeasible to do so by any known practical means.
These schemes are therefore termed computationally
secure; theoretical advances, e.g., improvements
in integer factorization algorithms, and faster
computing technology require these solutions to be
continually adapted. There exist information-theoretically
secure schemes that provably cannot be
broken even with unlimited computing power—an
example is the one-time pad—but these schemes are
more difficult to implement than the best
theoretically breakable but computationally secure
mechanisms. More generally, it is about constructing
and analyzing protocols that overcome the influence
of adversaries[3] and which are related to various
aspects in information security such as
data confidentiality, data integrity, authentication,
and non-repudiation.[4] Modern cryptography
intersects the disciplines of mathematics, computer
science, and electrical engineering. Applications of
cryptography include ATM cards, computer
passwords, and electronic commerce.
fig 1. cryptography
II. PUBLIC KEY CRYPTOGRAPHY(PKC)
Public-key cryptography is used where each user has
a pair of keys, one called the public key and the other
private key. Each user’s public key is published while
the private key is kept secret and thereby the need for
the sender and the receiver to share secret
information (key) is eliminated. The only
requirement is that public keys are associated with
the users in a trusted (authenticated) manner using a
public key infrastructure (PKI) . The public key
cryptosystems are the most popular, due to both
confidentiality and authentication facilities. PKC
depends upon the existence of one-way functions, or
mathematical functions that are easy to compute
whereas their inverse function is relatively difficult to
compute. Generic PKC employs two keys that are
mathematically related although knowledge of one
key does not allow someone to easily determine the
other key. One key is used to encrypt the plaintext
and the other key is used to decrypt the ciphertext.
The important point here is that it does not matter
which key is applied first, but that both keys are
required for the process to work . Because pair of
keys are required, this approach is also called
asymmetric cryptography
fig 2. publickey cryptography
3. III. RSA ALGORITHM
The Rivest-Shamir-Adleman (RSA) cryptosystem is
one of the best known publickey cryptosystems for
key exchange or digital signatures or encryption of
blocks of data. RSA uses a variable size encryption
block and a variable size key. The key-pair is derived
from a very large number, n, that is the product of
two prime numbers chosen according to special rules;
these primes may be 100 or more digits in length
each, yielding an n with roughly twice as many digits
as the prime factors. The public key information
includes n and a derivative of one of the factors of n;
an attacker cannot determine the prime factors of n
(and, therefore, the private key) from this information
alone and that is what makes the RSA algorithm so
secure. RSA's safety is due to the difficulty in
factoring large prime numbers. The main arithmetic
operation in the RSA Cryptosystem is modular
exponentiation defined as
C = Me mod n for encryption and
M = Cd mod n for decryption,
where C is the cipher,
M is the message,
e is the public key,
d is the private key and
n is the modulus.
RSA algorithm has some important parameters
affecting its level of security and speed. By
increasing the modulus length plays an important role
in increasing the complexity of decomposing it into
its factors.This will increase the length of private key
and hence difficult to be decrypted without knowing
the decryption key.When the length of message is
changed then the length of encrypted message will
proportionally change, hence larger chunks are
selected to obtained larger encrypted message to
increase the security of the data in use[5]. RSA -1024
bits is good for last 20 years but now Bernstain
described circuitry for fast factorization. It is entirely
possible that an organization with suffientely deep
pockets can build a large scale version of his circuits
and effectively crack an RSA 1024 bit message in a
relatively short period of time, which could range any
where from a number of minutes to some days [7,8].
Time analysis of RSA algorithm performed by varing
its parametes[9].We use natural numbers in pair of
keys in addition to existing parametes of RSA.Then
after simulations of results on basis of speed and
security we compare the RSA and new algorithm .
We use fast modulation method in RSA for big
exponential calculation.
The RSA algorithm is described here
fig 3. how RSA works
fig 4.encrypt ion and decrypt ion
When n is a product of two primes, in arithmetic
operations modulo n, the exponents behave modulo
the totient φ(n) of n.
For example, consider arithmetic modulo
15. since 15 = 3 × 5,
for the totient of 15, we have φ(15) = 2 × 4 = 8. We
can easily verify the following:
57 . 54푚표푑 15 = 5(7+4)푚표푑 8푚표푑 15 = 53푚표푑 15
= 125 푚표푑 5
(43 )5푚표푑 15 = 4(3∗5)푚표푑 8푚표푑 15 = 47mod 15=4
Considering arithmetic modulo n, let’s say that e is
an integer that is coprime to the totient φ(n) of n.
Further, say that d is the multiplicative inverse of e
4. modulo φ(n). These definitions of the various
symbols are listed below for convenience:
n = a modulus for modular arithmetic
φ(n) = the totient of n
e = an integer that is relatively prime to φ(n)
[T his guarantees that e will possess a
multiplicative inverse modulo φ(n)]
d = an integer that is the multiplicative
inverse of e modulo φ(n)
Now suppose we are given an integer M, M < n, that
represents our message, then we can transform M
into another integer C that will represent our cipher
text by the following modulo exponentiation:
C = 푀푒 mod n
At this point, it may seem rather strange that we
would want to represent any arbitrary plaintext
message by an integer. But, it is really not that
strange. Let’s say you want a block cipher that
encrypts 1024 bit blocks at a time. Every plaintext
block can now be thought of as an integer M of value
0 ≤ M ≤ 2102 4 − 1.
We can recover back M from C by the following
modulo operation
M = 퐶 푑 mod n
since
(푀푒 )푑 (mod n) = 푀푒푑(푚표푑 φ (푛)) ≡ M (mod n)
1. The RSA Algorithm — Putting To Use The
Basic Idea
The basic idea described in the previous subsection
can be used to create a confidential communication
channel in the manner described here.
An individual A who wishes to receive messages
confidentially will use the pair of integers {e, n} as
his/her public key. At the same time, this individual
can use the pair of integers {d, n} as the private key.
The definitions of n, e, and d are as in the previous
subsection.
Another party B wishing to send a message M to A
confidentially will encrypt M using A’s public key
{e, n} to create cipher text C. Subsequently, only A
will be able to decrypt C using his/her
private key {d, n}.
If the plaintext message M is too long, B may choose
to use RSA as a block cipher for encrypting the
message meant for A. When RSA is used as a block
cipher, the block size is likely to be half the number
of bits required to represent the modulus n. If the
modulus required, say, 1024 bits for its
representation, message encryption would be
based on 512-bit blocks. [While, in principle, RSA
can certainly be used as a block cipher, in practice it
is more likely to be used just for exchanging a secret
session key and, subsequently, the session key used
for content encryption using symmetric-key
cryptography based on, say, AES.]
2. How To Choose The Modulus For The Rsa
Algorithm?
With the definitions of d and e, the modulus n must
be selected in such a manner that the following
is guaranteed:
(푀푒 )푑 ≡ 푀푒푑 ≡ M (mod n)
We want this guarantee because C = 푀푒mod m is the
encrypted form of the message integer M and
decryption is carried out by
퐶 푑mod n.
It was shown by Rivest, Shamir, and Adleman that
we have this guarantee when n is a product of two
prime numbers:
n = p × q for some prime p and prime q
(1)
The above factorization is needed because the proof
of the algorithm, presented in the next subsection,
depends on the following two properties of primes
and coprimes:
1. If two integers p and q are coprimes (meaning,
relatively prime to each other), the following
equivalence holds for any two integers a and b:
{a ≡ b (mod p) and a ≡ b (mod q)} ⇔ {a ≡ b (mod
pq)} (2)
This equivalence follows from the fact a ≡ b (mod p)
implies a − b = k1p for some integer푘1 . But since we
also have a ≡ b (mod q) implying a−b = 푘2푞 , it must
be the case that 푘1= 푘3× q for some 푘3. Therefore,
we can write
a−b = 푘3×p×q, which establishes the equivalence.
(Note that this argument breaks down if p and q have
common factors other than 1.)
2. In addition to needing p and q to be coprimes, we
also want p and q to be individually primes. It is only
when p and q are individually prime that we can
5. decompose the totient of n into the product of the
totients of p and q. That is
φ (n) = φ (p) × φ (q) = (p − 1) × (q − 1)
(3)
So that the cipher cannot be broken by an exhaustive
search for the prime factors of the modulus n, it is
important that both p and q be very large primes.
Finding the prime factors of a large integer is
computationally harder than determining its
primality.
We also need to ensure that n is not factorizable by
one of the modern integer factorization algorithms.
IV. APPLICATIONS
When it comes to assymetric cryptography the most
popular and widely used application that comes to
anyone's mind is PGP. PGP stands for “Pretty Good
Privacy” and is the standard public key cryptography
application used today. In the examples of this
project we chose to use PGP Desktop. The reason for
this choice is that PGP Desktop is easier to use than
other text-based versions of PGP such as gnuPGP.
PGP Desktop provides us with a very intuitive GUI
accessible from the Windows Start Menu ,the PGP
taskbar icon and from Windows explorer (shell
integration). So from now on, every time we mention
PGP, we will be referring to the PGP Desktop
version.
V. ADVANTAGES
1. Convenience: It solves the problem of
distributing the key for encryption.Everyone
publishes their public keys and private keys
are kept secret.
2. Provides for message authentication: Public
key encryption allows the use of digital
signatures which enables the recipient of a
message to verify that the message is truly
from a particular sender.
3. Detection of tampering: The use of digital
signatures in public key encryption allows
the receiver to detect if the message was
altered in transit. A digitally signed message
cannot be modified without invalidating the
signature.
4. Provide for non-repudiation: Digitally
signing a message is akin to physically
signing a document. It is an
acknowledgement of the message and thus,
the sender cannot deny it.
VI. Disadvantages
1. Public keys should/must be
authenticated: No one can be absolutely
sure that a public key belongs to the person
it specifies and so everyone must verify that
their public keys belong to them.
2. Slow: Public key encryption is slow
compared to symmetric encryption. Not
feasible for use in decrypting bulk messages.
3. Uses up more computer resources: It
requires a lot more computer supplies
compared to single-key encryption.
4. Widespread security compromise is
possible: If an attacker determines a person's
private key, his or her entire messages can
be read.
5. Loss of private key may be irreparable: The
loss of a private key means that all received
messages cannot be decrypted.
VII. CONCLUSION
We have proposed a method for implementing a
public-key cryptosystem whose security rests in part
on the difficulty of factoring large numbers. If the
security of our method proves to be adequate, it
permits secure communications to be established
without the use of couriers to carry keys.
The security of this system needs to be examined in
more detail. In particular, the difficulty of factoring
large numbers should be examined very closely.
Once the method has withstood all attacks for a
sufficient length of time it may be used with a
reasonable amount of confidence.
VIII. REFERENCES
1. Frederick J. Hirsch. "SSL/TLS Strong
Encryption: An Introduction". Apache HTTP
Server. Retrieved 2013-04-17.. The first two
sections contain a very good introduction to
public-key cryptography.
2. N. Ferguson; B. Schneier (2003). Practical
Cryptography. Wiley. ISBN 0-471-22357-3.
6. 3. J. Katz; Y. Lindell (2007). Introduction to
Modern Cryptography. CRC Press. ISBN 1-
58488-551-3.
4. A. J. Menezes; P. C. van Oorschot; S. A.
Vanstone (1997). Handbook of Applied
Cryptography. ISBN 0-8493-8523-7.
5. IEEE 1363: Standard Specifications for
Public-Key Cryptography