Find Jobs
Hire Freelancers

Cryptography/Python: Derive the secret using Quadratic Residue knowledge

$10-30 AUD

Fechado
Publicado há mais de 6 anos

$10-30 AUD

Pago na entrega
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.
ID do Projeto: 15545014

Sobre o projeto

3 propostas
Projeto remoto
Ativo há 6 anos

Quer ganhar algum dinheiro?

Benefícios de ofertar no Freelancer

Defina seu orçamento e seu prazo
Seja pago pelo seu trabalho
Descreva sua proposta
É grátis para se inscrever e fazer ofertas em trabalhos
3 freelancers estão ofertando em média $52 AUD for esse trabalho
Avatar do Usuário
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 environment. I used c++ to make many great projects, for example, I made the tools which can convert java files into c++ scripts, of course garbage collection included, this job is very similar to a compiler, and is very complex. I also made our own mobile game using c++, I can show you the demo of client, if you like. I am very proficient in java also. I have a very good review on Freelancer.com, I never miss a project once I accept the job, you can check my review. Trust me, please let expert help you.
$100 AUD em 2 dias
4,9 (127 avaliações)
6,9
6,9
Avatar do Usuário
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 Experience Cryptography, python, Number Theory, Quadratic Residues, Algorithms Proposed Milestones $25 AUD - The whole project
$30 AUD em 3 dias
5,0 (8 avaliações)
3,7
3,7

Sobre o cliente

Bandeira do(a) PAKISTAN
Sargodha, Pakistan
4,1
14
Método de pagamento verificado
Membro desde jan. 30, 2017

Verificação do Cliente

Obrigado! Te enviamos um link por e-mail para que você possa reivindicar seu crédito gratuito.
Algo deu errado ao enviar seu e-mail. Por favor, tente novamente.
Usuários Registrados Total de Trabalhos Publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Carregando pré-visualização
Permissão concedida para Geolocalização.
Sua sessão expirou e você foi desconectado. Por favor, faça login novamente.