Secureerasurecodebasedcloudstoragesystemwithsecuredataforwarding

768
-1

Published on

by srihari.kadali

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
768
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
91
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Secureerasurecodebasedcloudstoragesystemwithsecuredataforwarding

  1. 1. Netaji Institute of Engineering & Technology Dept of Computer Science and Engineering A Project on A Secure Erasure Code-based Cloud Storage System with Secure Data Forwarding By Under The Guidance of SRIHARI KADALI Mr.P.Darshan (H.O.D & professor)
  2. 2. Content Abstract Existing System Demerits Proposed System Architecture Merits Functional Requirements Non Functional Requirements System Design Screen Shots References
  3. 3. Abstract The main technical contribution is that the proxy re-encryption scheme supports encoding operations over encrypted messages as well as forwarding operations over encoded and encrypted messages. Our method fully integrates encrypting, encoding, and forwarding. Implementing threshold proxy re-encryption and decentralized erasure code. Distributed storage System used for distribution purpose, and it depends on the secure storage system. Storage server and key server are used. Parameters are more flexible adjustment between servers(storage and key).
  4. 4. Existing System General encryption schemes protect data confidentiality, but also limit the functionality of the storage system because a few operations are supported over encrypted data. Storing data in a third party’s cloud system causes serious concern on data confidentiality. 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. 5. Existing System
  6. 6. Disadvantages Of Existing System There are three problems in the above straightforward integration of encryption and encoding. First, the user has to do most computation and the communication traffic between the user and storage servers is high. Second, the user has to manage his cryptographic keys. Communication traffic between the user and storage servers. User’s device of storing the keys is lost. Storing and retrieving, it is hard for storage servers . Only one time encryption using general encryption schemes.
  7. 7. Proposed System The method of threshold proxy re-encryption. Decentralized erasure code method can be used for distributed storage system. Distributed storage system depends on the secure cloud storage. Storage server and key server those two systems used for storage system. Encryption using Blowfish algorithm.
  8. 8. Architecture
  9. 9. Advantages Of Proposed System By using the threshold proxy re-encryption scheme, we present a secure cloud storage system that provides secure data storage and secure data forwarding functionality in a decentralized structure Data is more confidential. Highly protected by an security mechanism of the Server Easy distribution and data forwarding. Less Time consuming.
  10. 10. Functional Requirement Encryption Re-encryption Storage Decryption
  11. 11. Non Functional Requirement Privacy Reliability Scalability Performance Security
  12. 12. System Design Workflow Diagram A workflow diagram visually represents the movement and transfer of resources, documents, data and tasks through the entire work process for a given product or service. Use case Diagram Use case diagrams are used to describe a set of actions use cases that some system or systems subject should or can perform in collaboration with one or more external users of the system actors. Sequence Diagram A sequence diagram is a kind of interaction diagram that shows how processes operate with one another and in what order.
  13. 13. Workflow Diagram
  14. 14. Use Case Diagram
  15. 15. Sequence Diagram Login Register Home File select jButtonActionPerformed Register to cloud jButtonActionPerformed Select file for encryption Encryption jButtonActionPerformed jButtonActionPerformed jButtonActionPerformed
  16. 16. Continue… Re-encryptionSplitting Select No. of tokens jButtonActionPerformed Upload file jButtonActionPerformed Select VM1 and VM2 Retrieve jButtonActionPerformed Receiving from VM1 and VM2 Decryption jButtonActionPerformed
  17. 17. Modules Process Encryption Threshold-Proxy Function Secure Cloud Storage Data Forwarding Data Retrieval
  18. 18. Login and Registration
  19. 19. Encryption Process
  20. 20. // Creation of Secret key byte key[] = "HUFEdcba".getBytes(); String k = key.toString(); SecretKeySpec secretKey = new SecretKeySpec(key, "Blowfish"); // Creation of Cipher objects Cipher encrypt = Cipher.getInstance("Blowfish"); encrypt.init(Cipher.ENCRYPT_MODE, secretKey); // Open the Plaintext file cis = new CipherInputStream(fis, encrypt); // Write to the Encrypted file byte[] 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
  21. 21. Splitting Process
  22. 22. Threshold Proxy Re-encryption Scheme // Creation of Secret key byte key[] = "abcdEFUH".getBytes(); SecretKeySpec secretKey = new SecretKeySpec(key,"Blowfish"); // Creation of Cipher objects Cipher encrypt = Cipher.getInstance("Blowfish"); encrypt.init(Cipher.ENCRYPT_MODE, secretKey);
  23. 23. Selecting Servers For Files
  24. 24. Secure Cloud Storage
  25. 25. Server Side File Receiving
  26. 26. 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 = new FileOutputStream("C:/"+filename+".zip"); byte[] buffer = new byte[1024]; while ((bytesRead = in.read(buffer)) != -1) { output.write(buffer, 0, bytesRead); } Coding
  27. 27. try { Socket sock1 = new Socket("192.168.0.154", 7777); // sendfile File 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
  28. 28. File Retrieval Process
  29. 29. 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 from Server1:"+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 Server 2:"+op); String fr=" File can be Received from Server1."; JOptionPane.showConfirmDialog(null,fr); serverSocket1.close(); } Client Sending Filename Cipher
  30. 30. Cipher Cipher
  31. 31. try { Socket sock = new Socket("192.168.1.2",4000); //client IP address jTextArea1.append("n Client IP :"+sock); // sendfile String 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
  32. 32. Cipher Server Sending Files to Client
  33. 33. try { Socket sock = new Socket("192.168.1.2",4000); //client IP address jTextArea1.append("n Client IP :"+sock); // sendfile String 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
  34. 34. 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();
  35. 35. 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()+" 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()+" jTextArea1.append("Key To Decrypt the cipher Text:"+key1); System.out.println("Decrypted File Path is:"+dec.getAbsolutePath()+"n" // Creation of Secret key byte key[] = "abcdEFUH".getBytes(); SecretKeySpec secretKey = new SecretKeySpec(key,”Blowfish"); // Creation of plain objects Cipher decrypt = Cipher.getInstance("DES"); decrypt.init(Cipher.DECRYPT_MODE, secretKey); // Open the ciphert file CipherInputStream cis=new CipherInputStream(fis, decrypt); // Write to the decrypted file byte[] 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(); }
  36. 36. try{ int j; /** Takes all files in a specified directory and merge them together...*/ File firstDEcryption = new File("D:/secure/firstDEcryption/"); listOfFiles = firstDEcryption.listFiles(); for( j=0; j<listOfFiles.length; j++){ String lines; String srcFile = listOfFiles[j].getPath(); outFile = "D:/secure/merging.txt"; of=new File(outFile); BufferedReader inFile=new BufferedReader(new FileReader(new File(srcFile))); BufferedWriter outPut=new BufferedWriter(new FileWriter(outFile, true)); String fil=listOfFiles.toString(); jTextArea1.append("Files to be Merged:"+fil); jTextArea1.append("Merged File Path:"+outFile); while((lines=inFile.readLine()) != null) { outPut.write(lines); outPut.newLine(); } String fenc=" Files can be Merged "; JOptionPane.showMessageDialog(null, fenc); outPut.flush(); outPut.close(); inFile.close(); } }
  37. 37. Re-Decryption Process
  38. 38. Integrated a newly proposed threshold proxy re-encryption scheme and erasure codes over exponents. The threshold proxy Re-encryption scheme supports encoding, forwarding, and partial decryption operations in a distributed way. By using the threshold proxy re-encryption scheme, we present a secure cloud storage system that provides secure data storage and secure data forwarding functionality in a decentralized structure. key servers act as access nodes for providing a front-end layer such as a traditional file system interface. Conclusion
  39. 39. References IEEE 2012 paper on Distributed and Parallel systems, “A secure Erasure code based Cloud storage System with Secure Data forwarding”. Swings (second Edition) By Matthew robinson and Pavel vorobiev. www.youtube.com Fast Software Encryption, Cambridge Security Workshop Proceedings (December 1993), Springer-Verlag, 1994, pp. 191- 204. IEEE Paper.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×