Write a secure peer-to- peer file-sharing system

Assignment Help Programming Languages
Reference no: EM132292277

Overview

For your final project you may choose to do one of the following: (1) a programming project; or (2) a practical skills project; or (3) propose your own project. If you choose to do a pro- gramming project, please choose one topic in the section titled Programming Projects, below. In completing this project, you may use any existing cryptographic libraries, tools, programming languages or platforms.

Programming Projects

Please complete one of the following programming projects.

1. Secure File Sharing

In this project, you are going to use the concepts of concurrent server to write a secure peer-to- peer file-sharing system. Concurrent server can service multiple clients at the same time.

There are 3 peers (hosts) connected to a network; each stores a number of files. Each file is associated a keyword that can be used to search for the file. There may be duplicates of the same file stored at multiple peers; these duplicates are associated with the same keyword. Different files can be associated with the same keyword. The goal of this project is to build a mechanism that enables these peers to securely share their files with each other. The overall structure of the file sharing system is given below.

An indexing server keeps track of which files are stored at which peers. Each peer has an account with the server. When a peer connects to the server, server prompts the peer to provide ID and password. The peer then sends its domain name and port number to the server. The peer also sends names of files it has and the corresponding keyword to the server; the server then updates its index database. A peer that wants a specific file queries the server with keyword. Server searches for the keyword in its index database and returns the <domain name, port number> where domain name and port number are the domain name and the port number of the peer who has the file.

Requesting peer then chooses one peer from the list returned by the indexing server and initi- ates a file transfer operation. Each peer contains a list of public keys of other peers of the form <name, publickey>. Files need to be transferred securely and should not be modifiable by unauthorized users during transmission.

Your implementation must provide both confidentiality and digital signature. For digital sig- nature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both digital signature schemes must be supported.

2. Secure Chat

In this project you are to implement a system which enables a group of users to chat securely. All users are registered with the chat server. When the user wants to chat with another reg- istered user, he first connects to the chat server and enters his/her user name and password. The server verifies the user name and password, and if correct, the user's status is changed to "online". Next, the user may enter the user ids of users with whom he wishes to chat (could be more then one). At any given time the user should be able to check what other users are online and invite them to the ongoing conversation.

Once the user specifies the users with whom he wishes to chat, the server generates a symmetric key, and securely distributes it to all the specified users and the user who initiated the chat. To achieve secure key distribution you must encrypt the symmetric key using the public keys of the respective users (you may assume that server knows the public keys of all users). If one of the specified users is not online, the requesting user is notified about this.

After the encrypted symmetric key has been distributed to all users, the users decrypt the sym- metric key using their private keys, and the chat session may begin. All messages exchanged during the chat must be encrypted using the symmetric key provided by the server and must be delivered to all users participating in the chat. Any user may choose to leave the conversation. If the user disconnects from the chat server, his status should be changed to "offline". All users who are connected to the server, must have a way to check whether a given user is online.

You do not need to support multiple chat sessions.

Your implementation must provide both confidentiality and digital signature. For digital sig- nature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both must digital signature schemes must be supported.

3. Secure Purchase Order

Implement a secure purchase order system that allows the user to enter a purchase request and routes it to Order Processing Department (OPD) for signature. Each customer has an account with the online purchasing system. The online purchasing system has the public-key of every customer.

First, the customer enters his/her ID and password. The system verifies his/her ID and pass- word. Next, the customer sends the order as well as a timestamp to the OPD - confidentiality and digital signature must be provided. OPD verifies the signature of the customer and checks

if the product is available. If the customer's signature is verified and the product is available, OPD prepares the order. After OPD processes the order, OPD retrieves the customers email address and sends an email to the customer, indicating that the order has been shipped. OPD should be implemented as a concurrent server.

Your implementation must provide both confidentiality and digital signature. For digital sig- nature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both digital signature schemes must be supported.

4. Secure Internet Poker

This project implements poker on the Internet. It will accept two players. The house has each players public key.

1. Each player generates a session key and distributes the session key to the house securely.
The session key is used to encrypt message sent between the house and the players.

2. The house randomly generates three numbers between 1 and 15 and sends the numbers to player.
3. The house randomly generates three numbers between 1 and 15 and sends the numbers to player.
4. There are three rounds. In each round, each player chooses a number out of the three numbers and sends the number to the server. The server compares the number. The player who chose larger numbers than the other for at least two rounds wins. At the end of the 3rd round, the house announces the winner.
5. The session key will be destroyed after a player leaves a current session.

Your implementation must provide both confidentiality and digital signature. For digital sig- nature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both digital signature schemes must be supported.

5. Secure Banking

Implement the authentication and secure communications protocols for a distributed system consisting of a bank server and a number of automatic teller machines (ATMs). Assume one bank server and 2 ATMs. The bank should be implemented as a concurrent server.

Public key cryptography is employed for secrecy, integrity-protection, and authentication. The bank server's public key is stored by the ATM, with the corresponding private key stored by server the connected to that ATM. You may also assume that the bank has the public keys of the two ATMs.

ATM would work like this:

1. The customer enters his/her 6-digit ID (e.g. 124356) and password.

2. The ATM contacts the bank server to verify the customers ID and password.

3. The customer selects an action to be performed, and that action is performed by the bank server.
There are five actions: display the amount of money in the account, deposit money, withdrawals, account activities (time and date when the user performed transactions and what transactions the user performs), and quit. Assume that the bank knows the ATMs public key and the ATM knows the banks public key. The ATM communicates with the bank by running a protocol that satisfies the following requirements:

1. It authenticates the customer to the bank server (ID, passwd).

2. It authenticates the ATM to the bank server through public-key encryption. 3.It preserves the confidentiality of communications between the bank and ATM. 4.The bank server takes actions in response to customer uses of an ATM.

Your implementation must provide both confidentiality and digital signature. For digital sig- nature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both digital signature schemes must be supported.

6. Secure Blockchain

Blockchain is the uderlying technology of Bitcoin, Etherium, and other cryptocurrencies. Its power comes from the idea of distributed ledger which has many applications beyond cryptocur- rencies.

If you choose to do this project, please take some time to read and learn about the basics of the blockchain. The following links provide good resources that will get you started:

• Blockchain high-level overview
• Blockchain tutorial
• Blockchain implementation tutorial
• Blockchain implementation tutorial

Cryptographic concepts, including public key cryptography and hashing, play central roles in the blockchain. The goal of this project to implement a simulation of the public blockchain similar to Bitcoin. Your implementation should include the following key parts of the blockchain:

1. Individual users should be able to broadcast transactions to the miners i.e., parties re- sponsible for verifying the blocks.

2. All transactions within a block must be digitally signed by the user initiating a transaction. 3.Miners verify the transaction within a block by solving a computationally hard problem.

For the purpose of this project you can simplify the difficulty of the problem in order to be able to test and demo your project. For example, finding a number that results in the block's hash containing a hexadecimal number "0x0a".

4. The miner who solves the problem first, gets a reward according to the rules of blockchain.

5. When the block is verified, the miner broadcasts the verified block to the users.

6. In order to deal with the issues associated with spoofed blocks (e.g., if the attacker beats the miners) the users must use the longest chain rule.

Your implementation should support at least three users and three miners and must provide both confidentiality and digital signature. For digital signature you must provide the user with a choice of using RSA or Digital Signature Algorithm. Both digital signature schemes must be supported.

Presentation Guideline

If time permits, each group will give an in-class presentation. If the time does not permit, then please submit a video of your presentation or demo your project to the instructor. When making your video, demo, or in-class presentation, please adhere to the following guidelines:
• Give 5-10min presentation.
• Show and explain how your code runs.
• Discuss the design (how do you provide confidentiality, authentication, digital signature, integrity etc)
• Implementation (language, libraries, implementation issues).
• What you have learned by doing the project.

Propose Your Own Project

Propose your own project idea! Be creative! The proposed idea should be at least as challenging as the projects listed above and require application of principles and practices of cryptography. Please make sure you get your idea approved by the instructor. All proposed projects must include a presentation, demo, or a video component and a written document similar to that required in programming and practical skills projects.

Attachment:- Projects.rar

Verified Expert

The solution file is implemented in netbeans on secure chat program in java. In this program client can send request to server to chat other user and server keeps track of which files are stored at which peers. Each peer has an account with the server. When a peer connects to the server, server prompts the peer to provide ID and password. The peer then sends its domain name and port number to the server. The peer also sends names of files it has and the corresponding keyword to the server; the server then updates its index database. The program code and outputs are attached in the solution file

Reference no: EM132292277

Questions Cloud

Analyze the provided memory file for malicious activity : Analyze the provided memory file for malicious activity - What operating system is the computer using? What version - How much RAM is included in the analysis
Review article - cybercrime : Review this article - In the recent cybercrime background, many hackers are using advanced and progressively advanced methods of penetrating systems
Review the article - cybersecurity : You need to review the article - Many organizations have stepped up their games when it comes to securing their network, and many have invested in cybersecurity
How do the rhetorical techniques used : Discuss the rhetorical techniques-voicing, tone, imagery, symbolism, rhetorical appeals, etc.-that the authors of the two works use
Write a secure peer-to- peer file-sharing system : CS-452 - Project - implement a system which enables a group of users to chat securely. All users are registered with the chat server. When the user wants
Examine the process of assessing resource : In this assignment, you examine the process of assessing resource needs for a proposed change and allocating the required resources appropriately
Benefits and limitations of different database technologies : SEC4205 - Database Design Development - Cardiff Metropolitan University - Explain what is data model, Critically compare different data models and explain why
Is normal healthy : Is normal healthy? For example, in our culture obesity has become "normal" yet unhealthy - Which aspects of the textbook readings do you agree with
Article critique - missed nursing care in hospitals : You need to do an article critique - The article is based on missed nursing care in hospitals - 1000 words, Article Critique, APA 6th edition

Reviews

len2292277

4/24/2019 5:24:56 AM

Each project shall be done by a group of 1-5 students. Project descriptions below do not provide complete designs. Any reasonable design is acceptable. At the end of the semester, you must submit your project. Also, if time permits, each group shall give a 10 min presentation at the end of the semester, describing the design and implementation of the project. If the time does not permit, then each group shall submit a video of their presentation, or demo the project to the instructor. Each project shall be assigned to at most 4 groups. If your project includes features that go above and beyond the requirements, you may earn up to 10 points of extra credit. Please consult the instructor to find out if feature XYZ will result in extra credit.

Write a Review

Programming Languages Questions & Answers

  Write a haskell program to calculates a balanced partition

Write a program in Haskell which calculates a balanced partition of N items where each item has a value between 0 and K such that the difference b/w the sum of the values of first partition,

  Create an application to run in the amazon ec2 service

In this project you will create an application to run in the Amazon EC2 service and you will also create a client that can run on local machine and access your application.

  Explain the process to develop a web page locally

Explain the process to develop a Web page locally

  Write functions

These 14 questions covers java class, Array, link list , generic class.

  Programming assignment

If the user wants to read the input from a file, then the output will also go into a different file . If the user wants to read the input interactively, then the output will go to the screen .

  Write a prolog program using swi proglog

Write a Prolog program using swi proglog

  Create a custom application using eclipse

Create a custom Application Using Eclipse Android Development

  Create a application using the mvc architecture

create a application using the MVC architecture. No scripting elements are allowed in JSP pages.

  Develops bespoke solutions for the rubber industry

Develops bespoke solutions for the rubber industry

  Design a program that models the worms behavior

Design a program that models the worm's behavior.

  Writing a class

Build a class for a type called Fraction

  Design a program that assigns seats on an airplane

Write a program that allows an instructor to keep a grade book and also design and implement a program that assigns seats on an airplane.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd