secure erasure code based cloud storage system with secure data forwarding

43
AMC Engineering College, Bangalore Dept of Information Science and Engineering A Project on A Secure Erasure Code-based Cloud Storage System with Secure Data Forwarding Presentation By Rupera Priyank Anilkumar 1AM09IS052 Vineet Kumar 1AM09IS074 Ajay Kumar Yadav 1AM09IS004 Krishna Kumar Under the Guidance of Mrs. V . Rose Priyanka Asst.Prof, Dept of ISE

Upload: priyank-rupera

Post on 15-Jan-2015

3.233 views

Category:

Education


2 download

DESCRIPTION

2013 IEEE Paper ppt for Secure Erasure code based cloud storage system with secure data forwarding

TRANSCRIPT

  • 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