# RSA Project in C

Budget $30-200 USD

- Freelancer
- Jobs
- C Programming
- RSA Project in C

1) The project should first generate 2 100 digit prime numbers. (Now the Unix environment in our school does not accept more than 32. The professor suggested that we could use an array but since u have used ur own data structures it would be fine as long as it works. 2) Then it should check if the generated number are prime numbers. 3) Encrypt the 2 prime numbers generated and then decryprt is back. 4) Factor - Implements a factoring heuristic to factor large (in excess of 50-digit) numbers. 5) Also I will need the proof on a question. ( is it possible to break the cipher and how much time will it take? ) 6) Then I am looking for the following documentation on which the grading depends on. Please read the following requirements and grading topics from the professor

## Deliverables

Requirements Implement RSA using C/C++. You will need to find two large (at least 100-digit) prime numbers p and q to generate the modulus for RSA. Also, show that a 50-digit (167-bit) key can be broken within a week. Since n is known to be the product of two prime numbers, factoring this is sufficient for cracking an RSA secret key. What are the average and worst-case times to factor large (e.g., 40-digit) integers? What makes the times better or worse? You will need to implement the following functions: § CreateKey - Generate RSA public and secret keys, using a 100-digit prime number generator. § Encrypt - Take a plaintext perform RSA encrypt on it § Decrypt - Take a ciphertext and perform RSA decrypt on it § Factor - Implements a factoring heuristic to factor large (in excess of 50-digit) numbers. Grading A perfect score depends on if you adequately implement the following: 1) Finding and multiplying two hundred-digit prime numbers to generate a 200-digit RSA public key and a corresponding secret key. 2) Encrypting, using the public key, and decrypting, using the secret key, a sample message. To show that the algorithm is implemented properly, it is sufficient to show that E(D(m)) = D(E(m)) = m. 3) Write a program for factoring large numbers using some factoring heuristic. Determine the average and worst-case times for factoring 40-digit keys. Tell what variables affected these times. 4) Show that a 50-digit (167-bit) key can be broken within a week. 5) Tell how secure the RSA public-key crypto-system is according to the results from 3). 6) Supply any other conclusions you can make from this exercise.

## Platform

Unix

## Deadline information

I have got the same project from the picking apples. But I am looking for another version as i had partnered with my friend. I would also be needing the documentation as specified in the grading part. The project should do all necessary as stated in the grading part.