It is asymmetric in the sense, that here public key distributed to all through which one can encrypt the message and private key which is used for decryption is kept secret and is not shared to everyone .
Here in order to accomplish the task we require following
1:-Modulus
2:-public key
3:-Private key
Algorithm
a ) For Encryption
First consider two random prime no, say p and q
Now find modulus which is equal to N=p * q
We have a message say M.we can generate cipher text through following equation
C=MKP Modulo N
Here C is encrypted text generated
b) For decryption
We will perform following calculation
M=Cks Modulo N
Here Kp and Ks are public and private key respectively
Limitation of RSA algorithm:-
1:-It is suitable for short messages only
The above description is just the basic introduction of RSA .I have developed this program by using some predefined classes provided by java.
So here ,is the implementation of RSA in java
/* Implementation of RSA algorithm in java Author name:-Manish Goyal System Name:-HCL Operating system used:-Window Vista Language used:-java This Program will take any string as input then encrypt it and finally decrypt the data */ import java.math.BigInteger; import java.security.*; import java.security.spec.*; import java.io.*; import javax.crypto.Cipher; public class RSA { public static void main(String args[]) { String srci=""; try{ BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); System.out.println("Please enter any string you want to encrypt"); srci=br.readLine(); } catch(IOException ioe) { System.out.println(ioe.getMessage()); } try{ KeyPairGenerator kpg=KeyPairGenerator.getInstance("RSA"); kpg.initialize(512);//initialize key pairs to 512 bits ,you can also take 1024 or 2048 bits KeyPair kp=kpg.genKeyPair(); PublicKey publi=kp.getPublic(); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publi); byte[]src=srci.getBytes();//converting source data into byte array byte[] cipherData = cipher.doFinal(src);//use this method to finally encrypt data String srco=new String(cipherData);//converting byte array into string System.out.println(); System.out.println("Encrypted data is:-"+srco); PrivateKey privatei=kp.getPrivate();//Generating private key Cipher cipheri=Cipher.getInstance("RSA");//Intializing 2nd instance of Cipher class cipheri.init(Cipher.DECRYPT_MODE, privatei);//Setting to decrypt_mode byte[] cipherDat = cipheri.doFinal(cipherData);//Finally decrypting data String decryptdata=new String(cipherDat); System.out.println("Decrypted data:-"+decryptdata); } catch(Exception e) { System.out.println(e.getMessage()); } } }If you have any query related to this then fire it here
Write more, thats all I have to say. Literally, it seems as though you relied on the video to make your point.
ReplyDeleteYou clearly know what youre talking about, why throw away your intelligence
on just posting videos to your weblog when you could be
giving us something enlightening to read?
Also visit my webpage ... best paid online Jobs