Closed

Cryptography/Python: Derive the secret using Quadratic Residue knowledge

This is straightforward assignment to derive secret using Quadratic Residue knowledge.

Formula: c = (s ^ r) mod p

- s is the secret (an integer) to be encrypted using above formula

- r is a random 500-bit number

- p is a random 500-bit prime number

- c is the ciphertext computed using this formula

Above design is vulnerable, because attacker can calculate the value of s if he/she got enough pairs of <c, p> values.

There are 3 tasks:

Part 1:

Later, I will provide a text file of 30 groups of <c, p> values. We only know s is an integer in the interval of [2410, 2459], but do not know which value is it. The mission is to write a Python program to derive the value of s, using those 30 groups of <c, p> values as inputs.

Remarks:

1. Hint: you MUST use the knowledge of Quadratic residue. I can provide some reference to explain Quadratic residue if you need.

2. I can provide a short and simple Python code that how c, r, and p are generated.

3. This is not a brute force mission. You cannot simply compute the values from 2410 to 2459 and compare the outputs.

4. After last, write a concise and clear summary of algorithm at comment or in a separate file.

Part 2:

In part 1, the 30 random r’s were chosen so that s can be identified. Actually, if the 30 r’s are chosen uniformly and randomly, then there is a chance that we cannot uniquely identify s using 30 tuples.

The probability of successful identification increases with large number of <c, p> tuples.

Based on part 1, the mission is to give the least number of tuples required in order to achieve 99% of success, and explain it.

You can write down the answer analytically without writing a new code.

Part 3:

Same as part 2, but the interval size of s increases into 10^6.

The mission is still to write down the answer analytically.

Skills: C Programming, C++ Programming, CUDA, Machine Learning, Python

See more: kaggle competition in python using prediction knowledge, Python & OpenCV project using Xbox Kinect sensor, python web scraper using keywords, python build apk using ant, python auto login using pycurl, python search facebook using, dial number using asterisk python, extracting data webpages using python, calculus using derive, using xcode ruby python php perl development, visio automation using python, web bots using python, parse xml file python using java, integration database testing tools using python, read csv file using python script

About the Employer:
( 14 reviews ) Sargodha, Pakistan

Project ID: #15545014

4 freelancers are bidding on average $42 for this job

hbxfnzwpf

I am very proficient in c and c++. I have 16 years c++ developing experience now, and have worked for more than 6 years. My work is online game developing, and mainly focus on client side, using c++ under windows envir More

$100 AUD in 2 days
(120 Reviews)
6.9
anuragbharadwaj

I have done a course on Cryptography and Number Theory. I am doing my Bachelor's thesis in the same field. I am already familiar with quadratic residues as well as the RSA Cryptosystem. Relevant Skills and Experienc More

$30 AUD in 3 days
(6 Reviews)
2.8
$11 AUD in 1 day
(0 Reviews)
0.0
$25 AUD in 1 day
(1 Review)
0.0