elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ejemplo de rsa en c o c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejemplo de rsa en c o c++  (Leído 2,706 veces)
davidweb12

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Ejemplo de rsa en c o c++
« en: 19 Julio 2013, 20:54 pm »

Hola amigos estoy buscando ejemplos en c o c++ sobre rsa, he mirado su funcionamiento pero me gustaria saber si ya existe algun ejemplo que sea funcional, he encontrado algunos por la red pero no me son funcionales, como por ejemplo este, a ver si me podeis pasar algun ejemplo sencillo que sea funcional.

Saludos.

#include <math.h>
#include <stdio.h>
#include <string.h>

unsigned int pick_e ( unsigned int phi );
unsigned int inv ( unsigned int num, unsigned int phi );
unsigned int encrypt ( unsigned int num, unsigned int key, unsigned int n );

int main ( void )
{
    char msg[] = "HELLO WORLD 21";
    unsigned int cyphertext[sizeof(msg)];

    unsigned int p = 3;   // Too small for real security!
    unsigned int q = 11;  // Too small for real security!

    unsigned int i, n, phi, e, d, result;

    n = p * q;  // This is the step that is hard to reverse!

    phi = (p-1) * (q-1);  // Euler's "totient" function.

    e = pick_e( phi );  // pick one of the pair of keys, ...
    d = inv( e, phi );  // ... and calculate the other.

    printf( "p=%u, q=%u, n=%u, phi(n)=%u, e=%u, d=%u\n", p, q, n, phi, e, d );

    // Encrypting the message:

    printf( "\n\tEncrypt msg \"%s\" using key (%u,%u):\n", msg, e, n );
    for ( i=0; i < strlen(msg); ++i )
    {   cyphertext = encrypt( msg-64, e, n );
        printf( "\t%c (%2u) --> %c (%2u)\n", msg, msg-64,
           (char)(cyphertext+64), cyphertext );
    }

    // Decrypt that message:

    printf( "\n\tDecrypt cyphertext using key (%u,%u):\n", d, n );
    for ( i=0; i < strlen(msg); ++i )
    {   
        result = encrypt( cyphertext, d, n );
        printf( "\t%c (%2u)--> %c (%2u)\n", (char)(cyphertext+64),
            cyphertext, (char)(result+64), result );
    }

   const char c = 0;
   scanf(c);

    return 0;
}


/* Return some integer relatively prime to phi
   (should pick a random one, not the first one found! */

unsigned int pick_e ( unsigned int phi )
{
    return 7;  // The gcd code isn't worth implementing for this demo!
}


/* Compute the inverse of num modulus phi (Note there is a better way!) */
unsigned int inv ( unsigned int num, unsigned int phi )
{
    unsigned int i = 0;

    while ( (num * i ) % phi != 1 )
        ++i;
    return i;
}


/* Compute the encryption of some num using key (key, n) */

unsigned int encrypt ( unsigned int num, unsigned int key, unsigned int n )
{
    int result = (int) (fmodl( powl(num, key), n ) + 0.5);
    if ( result < 0 )   result += n;
    return (unsigned int) result;
}


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejemplo de rsa en c o c++
« Respuesta #1 en: 19 Julio 2013, 21:03 pm »

cuidado!
Citar
unsigned int pick_e ( unsigned int phi )
{
    return 7;  // The gcd code isn't worth implementing for this demo!
}

XD si usas eso bueno... ya entiendes

revisa el articulo de rsa en wiki y busca que te falta


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
davidweb12

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Ejemplo de rsa en c o c++
« Respuesta #2 en: 19 Julio 2013, 21:20 pm »

engelx se que ese codigo es de ejemplo, pero de todas formas deberia de funcionar y no es asi, he mirado la wiki pero no encuentro un ejemplo simple funcional, y muchos de los ejemplos que existen se basan openssl, si puedes mandar un ejemplo o un link te lo agradezco.
Saludos.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Ejemplo de rsa en c o c++
« Respuesta #3 en: 20 Julio 2013, 05:49 am »

dudo que funcione jejeje ya ese "return 7" te arruina el punto real del algoritmo... no decia buscar en la wiki ejeplos de codigo, era que vieras como funciona y hagas el codigo que te falta
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejemplo de animacion
Diseño Gráfico
albertoco25 3 1,788 Último mensaje 12 Noviembre 2004, 00:50 am
por Morris
Un ejemplo del Script
Scripting
Meta 2 2,198 Último mensaje 13 Julio 2007, 02:07 am
por Meta
Ejemplo Led de PIC
Electrónica
Meta 0 2,706 Último mensaje 14 Agosto 2007, 23:04 pm
por Meta
problema con ejemplo de mvc
PHP
Drewermerc 0 1,999 Último mensaje 24 Abril 2016, 00:19 am
por Drewermerc
contribucion ejemplo de eventbus
Java
sapito169 6 4,220 Último mensaje 19 Enero 2021, 05:20 am
por sapito169
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines