- 1. Presentation ByRupera Priyank Anilkumar 1AM09IS052Vineet
Kumar 1AM09IS074Ajay Kumar Yadav 1AM09IS004Krishna Kumar
1AM06IS029Under the Guidance ofMrs. V . Rose PriyankaAsst.Prof,
Dept of ISE
2. Content Abstract Existing System Demerits Proposed System
Architecture Merits Functional Requirements Non Functional
Requirements System Design Screen Shots References 3. Abstract
Implementing threshold proxy re-encryption and decentralizederasure
code. Distributed storage System used for distribution purpose, and
itdepends on the secure storage system. Storage server and key
server are used. Parameters are more flexible adjustment
betweenservers(storage and key). 4. Existing System General
encryption scheme for storing data. DES algorithm is used for key
generation. For the storage data ,user has to manage his keys .
Single storage server for whole file. 5. Demerits Communication
traffic between the user and storage servers. Users device of
storing the keys is lost. Storing and retrieving, it is hard for
storage servers . Only one time encryption using general encryption
schemes. 6. Proposed System The method of threshold proxy
re-encryption. Decentralized erasure code method can be used for
distributedstorage system. Distributed storage system depends on
the secure cloudstorage. Storage server and key server those two
systems used forstorage system. Encryption using Blowfish
algorithm. 7. Architecture 8. Merits Data is more confidential.
Highly protected by an security mechanism of the Server Easy
distribution and data forwarding. Less Time consuming. 9.
Functional Requirement Encryption Re-encryption Storage Decryption
10. Non Functional Requirement Privacy Reliability Scalability
Performance Security 11. System Design Workflow DiagramA workflow
diagram visually represents the movement and transfer ofresources,
documents, data and tasks through the entire work process for
agiven product or service. Use case DiagramUse case diagrams are
used to describe a set of actions use cases thatsome system or
systems subject should or can perform in collaboration withone or
more external users of the system actors. Sequence DiagramA
sequence diagram is a kind of interaction diagram that shows
howprocesses operate with one another and in what order. 12.
Workflow Diagram 13. Use Case Diagram 14. Sequence DiagramLogin
Register Home File selectjButtonActionPerformedRegister to
cloudjButtonActionPerformedSelect file for
encryptionEncryptionjButtonActionPerformedjButtonActionPerformedjButtonActionPerformed
15. ContinueRe-encryptionSplittingSelect No. of
tokensjButtonActionPerformedUpload filejButtonActionPerformedSelect
VM1 and VM2RetrievejButtonActionPerformedReceiving fromVM1 and
VM2DecryptionjButtonActionPerformed 16. Modules Process Encryption
Threshold-Proxy Function Secure Cloud Storage Data Forwarding 17.
Login and Registration 18. Encryption Process 19. // Creation of
Secret keybyte key[] = "HUFEdcba".getBytes();String k =
key.toString();SecretKeySpec secretKey = new SecretKeySpec(key,
"Blowfish");// Creation of Cipher objectsCipher encrypt =
Cipher.getInstance("Blowfish");encrypt.init(Cipher.ENCRYPT_MODE,
secretKey);// Open the Plaintext filecis = new
CipherInputStream(fis, encrypt);// Write to the Encrypted
filebyte[] b = new byte[1024];int i = cis.read(b);while (i != -1)
{fos.write(b, 0, i);i = cis.read(b);
}fos.flush();fos.close();cis.close();fis.close();String fenc = "
File Encrypted ";JOptionPane.showMessageDialog(null,
fenc);count++;Coding 20. Splitting Process 21. Threshold Proxy
Re-encryption Scheme// Creation of Secret keybyte key[] =
"abcdEFUH".getBytes();SecretKeySpec secretKey =
newSecretKeySpec(key,"Blowfish");// Creation of Cipher
objectsCipher encrypt =
Cipher.getInstance("Blowfish");encrypt.init(Cipher.ENCRYPT_MODE,secretKey);
22. Selecting Servers For Files 23. Secure Cloud Storage 24. Server
Side File Receiving 25. int bytesRead;int current = 0;ServerSocket
serverSocket = null;serverSocket = new
ServerSocket(7777);while(true) {Socket clientSocket =
null;clientSocket = serverSocket.accept();InputStream in =
clientSocket.getInputStream();OutputStream output =
newFileOutputStream("C:/"+filename+".zip");byte[] buffer = new
byte[1024];while ((bytesRead = in.read(buffer)) != -1)
{output.write(buffer, 0, bytesRead);}Coding 26. try{Socket sock1 =
new Socket("192.168.0.154", 7777);// sendfileFile myFile =
zipFile1;System.out.println(zipFile1);byte[] mybytearray = new
byte[(int) myFile.length()];FileInputStream fis = new
FileInputStream(myFile);BufferedInputStream bis = new
BufferedInputStream(fis);bis.read(mybytearray, 0,
mybytearray.length);OutputStream os =
sock1.getOutputStream();os.write(mybytearray, 0,
mybytearray.length);os.flush();sock1.close();String sen="Files are
forwarded to cloud Storage server 1
!!!";JOptionPane.showMessageDialog(null,sen);jTextArea1.append("Sending
File:"+z1);jTextArea1.append("Files are forwarded to cloud Storage
server 1 !!!");}catch(Exception e){System.out.println("Exception :
"+e);}Coding 27. File Retrieval Process 28. try{int bytesRead;int
current = 0;ServerSocket serverSocket1 = new
ServerSocket(4000);while(true) {Socket clientSocket =
serverSocket1.accept();InputStream in =
clientSocket.getInputStream();String
op="D:/secure/server1/server1.zip";OutputStream output = new
FileOutputStream(op);//jTextArea1.append("Received File Location
fromServer1:"+output);byte[] buffer = new byte[1024];while
((bytesRead = in.read(buffer)) != -1) {output.write(buffer, 0,
bytesRead);}in.close();output.close();String
ip2="192.168.1.2";jTextArea1.append(" Server1 IP
Address:"+ip2);jTextArea1.append("Received File Location from
Server2:"+op);String fr=" File can be Received from
Server1.";JOptionPane.showConfirmDialog(null,fr);serverSocket1.close();}Client
Sending FilenameCipher 29. Cipher Cipher 30. try{Socket sock = new
Socket("192.168.1.2",4000); //client IP addressjTextArea1.append("n
Client IP :"+sock);// sendfileString fn= "D:"+reqfile1+".zip";File
myFile = new File(fn);jTextArea1.append("n File location
:"+myFile);byte[] mybytearray = new byte[(int)
myFile.length()];jTextArea1.append("n File Length
:"+mybytearray);FileInputStream fis = new
FileInputStream(myFile);BufferedInputStream bis = new
BufferedInputStream(fis);bis.read(mybytearray, 0,
mybytearray.length);OutputStream os =
sock.getOutputStream();os.write(mybytearray, 0,
mybytearray.length);os.flush();String sen="Files are forwarded to
Client
!!!";JOptionPane.showMessageDialog(null,sen);os.close();sock.close();}Coding
31. CipherServer Sending Files to Client 32. try{ Socket sock = new
Socket("192.168.1.2",4000); //client IP addressjTextArea1.append("n
Client IP :"+sock);// sendfileString fn= "D:"+reqfile1+".zip";File
myFile = new File(fn);jTextArea1.append("n File location
:"+myFile);byte[] mybytearray = new byte[(int)
myFile.length()];jTextArea1.append("n File Length
:"+mybytearray);FileInputStream fis = new
FileInputStream(myFile);BufferedInputStream bis = new
BufferedInputStream(fis);bis.read(mybytearray, 0,
mybytearray.length);OutputStream os =
sock.getOutputStream();os.write(mybytearray, 0,
mybytearray.length);os.flush();String sen="Files are forwarded to
Client
!!!";JOptionPane.showMessageDialog(null,sen);os.close();sock.close();}catch(Exception
e){System.out.println("Exception : "+e);}Coding 33. try {String
sourcefile = "D:/secure/server1/server1.zip";File sf=new
File(sourcefile);if (!sourcefile.endsWith(".zip"))
{System.out.println("Invalid file name!");System.exit(0);} else if
(!new File(sourcefile).exists()) {System.out.println("File not
exist!");System.exit(0);}ZipInputStream in =new ZipInputStream(new
FileInputStream(sourcefile));ZipFile zf = new
ZipFile(sourcefile);int a = 0;for (Enumeration em = zf.entries();
em.hasMoreElements();) {String targetfile =
em.nextElement().toString();ZipEntry ze = in.getNextEntry();out =
new FileOutputStream("D:/secure/EXTRACT/" + targetfile);byte[] buf
= new byte[1024];int len;while ((len = in.read(buf)) > 0)
{out.write(buf, 0, len);} a = a + 1;}if (a > 0)
{JOptionPane.showMessageDialog(null, "Files are unzipped, click
NEXT");jTextArea1.append("nServer1 Files can be
Extractedn");jTextArea1.append("ZipFile
Name:"+sf.getName()+"n");jTextArea1.append("ZipFile size
:"+sf.length()+"n");String fol="D:/secure/EXTRACT";File folder=new
File(fol);jTextArea1.append("n Files in the
Path:n"+folder.getAbsolutePath());}out.close();in.close();} 34. try
{ String p=a;String s11="plaintxt"+l;String s12="des"+l;String key1
="AbCd124"+l;l++;File kkk=new File(p);BufferedReader br=new
BufferedReader(new FileReader(kkk));jTextArea1.append("nnGiven File
Name is:"+kkk.getName()+"n");System.out.println("Given File Name
is:"+kkk.getName()+"n");jTextArea1.append("Given File size
is:"+kkk.length()+"n");System.out.println("Given File size
is:"+kkk.length()+"n");File dec= new
File("D:/secure/firstDEcryption/"+s11+".txt");FileInputStream fis =
new FileInputStream(p);FileOutputStream fos = new
FileOutputStream(dec);CipherOutputStream cos =
null;jTextArea1.append("Decrypted File Name
is:"+dec.getName()+"n");System.out.println("Decrypted File Name
is:"+dec.getName()+"n");jTextArea1.append("Decrypted File Path
is:"+dec.getAbsolutePath()+"n");jTextArea1.append("Key To Decrypt
the cipher Text:"+key1);System.out.println("Decrypted File Path
is:"+dec.getAbsolutePath()+"n");// Creation of Secret keybyte key[]
= "abcdEFUH".getBytes();SecretKeySpec secretKey = new
SecretKeySpec(key,Blowfish");// Creation of plain objectsCipher
decrypt =
Cipher.getInstance("DES");decrypt.init(Cipher.DECRYPT_MODE,
secretKey);// Open the ciphert fileCipherInputStream cis=new
CipherInputStream(fis, decrypt);// Write to the decrypted
filebyte[] b = new byte[1024];int i = cis.read(b);while (i != -1)
{fos.write(b, 0, i);i =
cis.read(b);}fos.flush();fos.close();cos.close();fis.close();} 35.
try{int j;/** Takes all files in a specified directory and merge
themtogether...*/File firstDEcryption = new
File("D:/secure/firstDEcryption/");listOfFiles =
firstDEcryption.listFiles();for( j=0; j