Laboratorio 2 - Dudas

Laboratorio 2 - Dudas

de Jose Maria Aguerre Oliver -
Número de respuestas: 9

Buenas, tenemos algunas dudas,

En primer lugar, queríamos saber qué parametros reciben las funciones pseudo aleatorias, y cómo llamarlas.

También tenemos una duda sobre la función hallar_primo. El k que le pasamos como parámetro, es para usar en es_primo, o también en hallar_primo. Porque podría pasar que de entrada esa función no encuentre un número primo, y tendría que probar nuevamente. Tenemos que definir un criterio para parar después de un número de iteraciones, sino el algoritmo podría no terminar nunca.

La función rsaep(m, n) está definida con una firma diferente en las especificaciones. Aparece como RSAEP (( n , e ), m ). Consideramos el primer parámetro como un par ordenado en nuestro caso?

La función rsadp(c,m) acepta dos tipos de parámetros en la especificación. Nosotros también deberíamos hacer eso o ausmimos que va a ser el par ordenado (n, d)?

Gracias.

En respuesta a Jose Maria Aguerre Oliver

Re: Laboratorio 2 - Dudas

de Nathan Ryan -

Buenas, tenemos algunas dudas,

En primer lugar, queríamos saber qué parametros reciben las funciones pseudo aleatorias, y cómo llamarlas.

Si hacen

import random
default_crypto_random = random.SystemRandom()
default_pseudo_random = random.Random()

y asignan rnd a cualquiera de los dos hay un método

randint(1,10) # devuelve un entero i aleatorio 1<= i < 10

y otro

rnd.getrandbits(n) # devuelve n bits aleatorios

El random.Random() no es seguro pero el otro sí.

 

También tenemos una duda sobre la función hallar_primo. El k que le pasamos como parámetro, es para usar en es_primo, o también en hallar_primo. Porque podría pasar que de entrada esa función no encuentre un número primo, y tendría que probar nuevamente. Tenemos que definir un criterio para parar después de un número de iteraciones, sino el algoritmo podría no terminar nunca.

Yo lo había pensado para usa el mismo k en las dos funciones (en particular el k que recibe hallar primo se pasa a es_primo).

La función rsaep(m, n) está definida con una firma diferente en las especificaciones. Aparece como RSAEP (( n , e ), m ). Consideramos el primer parámetro como un par ordenado en nuestro caso?

La función rsadp(c,m) acepta dos tipos de parámetros en la especificación. Nosotros también deberíamos hacer eso o ausmimos que va a ser el par ordenado (n, d)?

Tendrán que implementar las dos (pero en una sola función -- el primer parámetro puede ser o un par o un 5-tupla).

Saludos,
Nathan

 

Gracias.

En respuesta a Nathan Ryan

Re: Laboratorio 2 - Dudas

de Javier Agustin Farias Gonzalez -

Deberíamos usar getrandbits(n) para obtener un número de n bits aleatorios? Nosotros implementamos un loop y colocamos en cada paso de a un bit. Usando esa funcion nos queda lo mismo pero en una línea. No sé si la idea es que construyamos el número más "a mano". 

Saludos

En respuesta a Nathan Ryan

Re: Laboratorio 2 - Dudas

de Alejandro Rodriguez Reche -

Hola, yo también tengo una duda de esa parte... Según la opción b) del procedimiento RSADP, ¿qué vendría a ser esa "posible secuencia vacía de tripletes (ri, di, ti), i=3, ..., u"? ¿Cómo viene pasado en el parámetro? ¿Vendría a ser una sola tupla de 8 elementos (los 5 de la primera más estos 3), o son dos tuplas por separado, o cómo es?

Gracias.

En respuesta a Alejandro Rodriguez Reche

Re: Laboratorio 2 - Dudas

de Nathan Ryan -

Se puede pasar como un lista y con el parámetro default una lista vacía.

 

En respuesta a Nathan Ryan

Re: Laboratorio 2 - Dudas

de Alejandro Rodriguez Reche -
En respuesta a Alejandro Rodriguez Reche

Re: Laboratorio 2 - Dudas

de Alejandro Rodriguez Reche -

FINALMENTE un amigo me dijo que entendió que se puede asumir como que la clave privada viene como una dupla, donde su primer término es la quíntupla y la segunda es la lista de 3-uplas. Ahora sí le encuentro sentido a la respuesta de tomar la secuencia de tripletes como una lista y asumir que viene vacía por defecto.