Design and implementation of an ecc public key system to


There are two parts:

Part 1 (mark: 25% of the total assignment) - You are required to design and implement the ECC public key system using C or C++ or Java or any programming language you are familiar with.

Part 2 (mark: 15% of the total assignment) - You are required to apply your ECC system in three network services:

a.    apply your ECC system  in Telnet service, SSL and IPSec, or

b.    you can apply your ECC system in your own socket based service, and RPC based service and DCOM or CORBA service.

 Part 1: Design and implementation of an ECC public key system to provide encryption/decryption and digital signature sign and verification in C or C ++ or Java.  You can use Diffie-Hellman key exchange protocol and the underlying field Fp or other key exchange protocol and a Binary Field for your curve. 

 Your assignment is based on the following standard curve:

y^2 = x^3 + A*x + B mod p 

with domain parameters (for 160-Bit curves):  

p = E95E4A5F737059DC60DFC7AD95B3D8139515620F

A =   340E7BE2A280EB74E2BE61BADA745D97E8F7C300

B = 1E589A8595423412134FAA2DBDEC95C8D8675E58

x = BED5AF16EA3F6A4F62938C4631EB5AF7BDBCDBC3

y = 1667CB477A1A8EC338F94741669C976316DA6321

q = E95E4A5F737059DC60DF5991D45029409E60FC09

h = 1 

(See section Domain Parameters Specification of 

   https://tools.ietf.org/html/rfc5639 for the meaning of the parameters)

 You can work on the underlying field Zp, where p is a prime number and not less than 160 bits or Binary Field with the same population. You can also choose any hash function which is available as free source for the digital signature implementation. You do not have to implement a hash function and a random number generator. You will have to implement all other operations (you can use my sample java code as a guide).

To represent a message on an EC, you can use any free source code or write your own one if you wish to do so. If you cannot implement this part, then you can assume “a message is represented as an integer” for the pass mark. 

The Diffie-Hellman protocol is loosely described as follows (refer to the lecture for The Diffie-Hellman and ECC):

Let’s assume that Alice wants to encrypt and send a message to Bob and Bob wants 

to decrypt the encrypted message.

(Assume that we are working with (Zp, modulo) and p is a large prime number.)

a.       Alice chooses a random integer x and sends Bob   a = gx mod p

b.      Similarly Bob chooses a random integer y and sends Alice b = gy mod p

c.       Alice then computes k from b that Bob sent: k = bx mod p

d.      Similarly Bob then computes k’ = ay mod p

Both k and k’ are equal to gxy mod p. Alice or Bob can now use either k or k’ as their shared secret key.

Important note – What you can and What you cannot:

 You are only allowed to use the basic libraries of BigInteger and BigDecimal numbers and Hash functions (MD5, SHA-1, SHA-256, or SHA-512).

 You have to implement all operations: 

a.      addition, subtraction, multiplication of points on your ECC, 

b.      encryption, decryption, signing and verifying functions. 

hi,

I have this assignment below which should be hand on Wednesday. I'm beginner  in java so that so difficult for me. have a look to the assignment specification and I 'm waiting to hear from you. 

Assignment:   

You are not allowed to use any crypto library. If you borrow code from anywhere, you will get ZERO.

 Submission - Due date: Week 8, Friday 4pm (Use Assignment Box)

You have to submit a hard copy of your work with the standard assignment format and a soft copy on a CD/DVD (submission via email is not acceptable).

For Part 1: Your submission must include your source code and a report which include the following tasks: 

1. You have to list and explain the steps you follow to complete your work that includes the design and implementation considerations; any suggestions for code improvement; any security and efficiency improvements, etc.

2. You have to provide the logic of your programs in pseudo code. 

The pseudo code should be detailed enough so that the mapping between the pseudo code and the C or Java program is trivial. (Look up the Web for the information about pseudo code).

If you want to include an additional structure chart or flow chart, it is O.K. However, it does not replace the “logic of your programs in pseudo code”

3. You have to provide a user document and programmer document for your code (please look up the Web for the description of user and programmer documentation). 

4. You have to explain the security of your implementation. This is the most important part of your report.

This includes a discussion of the strength and weaknesses of your implementation, limitations and possible attacks on it.

 For part 2: 

 You must write a report to describe in detail how you apply your ECC system in the three network services and demonstrate your work to your tutor.

 

Request for Solution File

Ask an Expert for Answer!!
Basic Computer Science: Design and implementation of an ecc public key system to
Reference No:- TGS01199498

Expected delivery within 24 Hours