Ir para conteúdo
Fórum Script Brasil
  • 0

Criptografia rsa problema com o fmod resto


johncaravlho

Pergunta

Galera estou precisando muito de um help.

Não conheço muito bem a linguagem C então estou apanhando um pouco em um problema que encontrei pra fazer meu trabalho, estou fazendo uma criptografia rsa

e na decodificação usa a formula M = C^d mod (n), os meus valores são M = 131^23 mod (187) e tem que dar M=109 que seria refente a letra m na tabela ascii.

Mas eu não estou conseguindo retornar esse valor de forma alguma, fiz vários testes mas o resto não bate, se puderem da uma ajudinha, acredito ser coisa besta mas não consegui nem vendo em livros a biblioteca math.h.

 Nesse link  "http://www.calculadoraonline.com.br/divisao-polinomios" o valor bate corretamente então com isso sei que é possível o calculo, vou deixar também o video do youtube que eu estou validando os valores através dele pra ver se estão saindo corretos " https://www.youtube.com/watch?v=GAR1Ur_2IGk".

Tentei também com outros valores mas o resto sempre da problema.

Vou deixar parte do codigo aonde faço isso 

double decod;

int arr2[20];

 

meu "i" esta dentro de um loop;

 

             arr2=fmod((pow(arr,E)),N);//CRIPTOGRAFO E já ARMAZENO O VALOR DENTRO DO ARRAY2        109^7 mod 187                
            printf("atribuindo dentro do array2 = %d i = %d\n\r",arr2,i);
            if (arr2>=0)
            {
                decod = pow(arr2,D);  //131^23 mod 187           
                printf("Valor do resultado =%lf valor\n\n\r",decod);
                decod=fmod(decod,N);
                printf("Valor de D =%d valor do array %d valor do N =%d valor do resultado =%lf\n\n\n\r",D,arr2,N,decod);
                printf("i = %d\n\rdecodificado = %.d\n\e",i,decod);                
            }

     i++;

dentro do arr vou armazenando as letras em ascii, que no caso a primeira estava digitando o "m" .

Se puderem dar uma atenção, obrigado ^^

 

 

detalhe o meus arrays tem " colchetes " só que quando salvo o tópico não esta entrando mas estão assim: "arr"colchetes i colchetes o " arr2" também

 

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Eu não sou muito bom em matematicas não, mas se você usar o google vai até sair algumas "coisinhas" hihihi
https://stackoverflow.com/questions/8496182/calculating-powa-b-mod-n

#include<stdio.h>

int modulo(int a, int b, int n){
    long long x=1, y=a; 
    while (b > 0) {
        if (b%2 == 1) {
            x = (x*y) % n; // multiplying with base
        }
        y = (y*y) % n; // squaring the base
        b /= 2;
    }
    return x % n;
}

int main(){
    printf("%d", modulo(131, 23, 187));
    
    return 0;
}

 

Link para o comentário
Compartilhar em outros sites

  • 0
Em 22/10/2018 em 14:15, vangodp disse:

Eu não sou muito bom em matematicas não, mas se você usar o google vai até sair algumas "coisinhas" hihihi
https://stackoverflow.com/questions/8496182/calculating-powa-b-mod-n


#include<stdio.h>

int modulo(int a, int b, int n){
    long long x=1, y=a; 
    while (b > 0) {
        if (b%2 == 1) {
            x = (x*y) % n; // multiplying with base
        }
        y = (y*y) % n; // squaring the base
        b /= 2;
    }
    return x % n;
}

int main(){
    printf("%d", modulo(131, 23, 187));
    
    return 0;
}

 

Consegui resolver com sua ajuda e de um outro rapaz de outro forúm, essa função acima pra trabalhar com numeros grande é o que funciona realmente e tive de usar variaveis como unsigned long long int, que nem sabia que existiam porque nem em livros achei kkk, vlw vandogp agradeço ^^  Resolvido!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...