In this project you need to write a program called "ECC.java"to implement Elliptic Curve encryption/decryption.
Specifically, your program will read parameters, plaintext and ciphertextfrom a file named "input.txt" (under the same directory).Then your program needs tocreate a file named "output.txt" (under the same directory) and prints the public key, private key, encryption and decryption results to "output.txt". (Please check the attached sample files "input.txt" and "output.txt".)
In "input.txt":
1. First line is aprime number q. Thus GF(q) is the ground field.
2. Second line are two integers a and b,separated by one blank space. Thus the elliptic curve Eq(a, b) is: y2 = x3 + ax + b.
3. Thirdline are two integers x1 and y1,separated by one blank space. Thus the base point is: G = (x1, y1).
4. Fourth line is an integer nA. Thus private key is nA.
5. Fifth line are two integers m1 and m2,separated by one blank space. Thus the point of the plaintext is Pm = (m1, m2).
6. Sixth line is the randomly generated positive integer k.
7. Seventh line arefour integers c11, c12,c21, and c22, separated by one blank space. Thus the point of the ciphertext is Cm = (c1=(c11, c12),c2=(c21,c22)).
In "output.txt":
1. First line (two integers) is the public key.
2. Second line (one integer) is the private key.
3. Third line (four integers)is the point of the ciphertextencrypted fromPmusing public key and k in input.txt. Suppose the point of the ciphertext Cm = (kG, Pm+kPB), then the first two integers are the coordinates ofkG and the latter two integers are the coordinates ofPm+kPB.
4. Fourth line (two integers)is the point of the plaintext decrypted fromCmusing private key in input.txt.
Download:- Ecc.rar