Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/08/2008, 09:40
Masane
 
Fecha de Ingreso: marzo-2008
Mensajes: 207
Antigüedad: 16 años, 2 meses
Puntos: 0
Sistema de encriptación RSA

Hola de nuevo.
Esta vez, y para variar, no soy yo la que tiene el problema, sino el pobre de mi novio. Explico:
Está desarrolando un sistema de encriptación de datos usando el método RSA, pero está teniendo problemas con algunas operaciones a la hora de cifrar los datos...

Os dejo lo que me ha dicho que os escriba, a ver si alguno le podeis echar una manita con esto...

Cita:
Estoy desarrollando una codificación mediante RSA para aplicarlo a una base de datos. Obtener las claves es fácil, el problema viene a la hora de desarrollar la encriptación: he creado una función para obtener directamente los restos enteros, y por tanto la palabra codificada, en lugar de crear una función para obtener los módulos [aritmética modular, u operación mod].

La función para obtener los módulos es:
Código PHP:
  function encriptar($cifra,$e,$n)
  {
    
$op pow($cifra,$e);
    
$c $op $n;
    return 
$c;
  } 
Cita:
Según lo que tengo entendido, hay que realizar c congruente con cifra elevado a e (mod n), donde c es el mensaje [o una parte] ya cifrado, cifra es el mensaje original pasando sus letras a números de 2 dígitos, e es el exponente público y n el valor obtenido de multiplicar los dos primos de clave pública [en mi notación, p y q]

La función pow me da resultados satisfactorios [aunque a veces masivos, con resultados de hasta 16 dígitos a veces], pero falla al intentar obtener el resto entero mediante el operando %, dándome 0 o números negativos, cosa que no me sirve de mucho, la verdad...

Me gustaría que me ayudárais explicándome dónde puede estar mi error, o, aun mejor, explicarme cómo realizar una función que haga la operación mod.

Gracias
Gracias de antemano por la ayuda ;)