Вы находитесь на странице: 1из 6

UNIVERSIDAD DE GUAYAQUIL

FACULTAD DE INGENIERÍA INDUSTRIAL


CARRERA DE INGENIERIA EN TELEINFORMÁTICA

PROYECTO:
EXPLICACIÓN DEL CÓDIGO REFRENTE A CIFRADO DE RSA CON CLAVE
PÚBLICA Y PRIVADA

INTEGRANTES:
MURILLO ALVARIO ANTHONY NELSON
TUMBACO BARAVO JOSELYN DENISSE

DOCENTE: ING. HARRY ZURITA


MATERIA: TÉCNICAS CRIPTOGRÁFICAS
CURSO: 8 “1”

GUAYAQUIL – ECUADOR

2019 - CII
CIFRADO RSA CON CLAVE PÚBLICA Y PRIVADA
El desarrollo del código se explica a través de los siguientes procesos:

1) Valores Iniciales
En primer lugar se deben ingresar los valores de p, q, n y Φ(n), para ello se debe ir en
el orden dispuesto a continuación:

PYQ

Al momento de declarar las


variables, tanto en p como q, se
implementa un “int(input())”,
para que después del respectivo
print, podamos ingresar los
números pertinentes. Para que el
cifrado sea más seguro, es mejor
utilizar números primos.

Determinar si un número es
primo o no
 Se coloca un contador
 El contador solo aumentara,
en caso de que la división
entre cualquier número, de
cómo residuo 0
 Nos interesa que el
contador llegue a 2, uno
señala que el número se
dividió para sí mismo, y el
otro que el número se
dividió para 1
 Después se indica se indica
que si el número es
divisible, tres o más veces,
el ciclo debe romperse, y el
número no es primo.
 Se utiliza una variable
booleana, la cual
determinará que, si es False,
el número es primo, y si es
True, el número no es primo
n Y Φn

Este tipo de configuración del print, permite imprimir


de forma instantánea una valor numérico, determinado
por una variable ya establecida y sus cálculos. En este
caso, se realiza el mismo proceso para n y Φn

2) Proceso de selección de e y d
Como se aprendió en la teoría, para poder encontrar d y generar las claves, se debe
implementar una tabla que posee una columna A y B; al inicio de la columna A, se
ubicará el valor de e, y al final de la columna B, estará el resultada correspondiente a d,
a continuación se explicará esto más detalladamente.

Se aplica el mismo proceso


anteriormente explicado para
ingresar números enteros, al
momento de escribir el valor de e,
este número también debe ser
primo y es el que definirá el valor
de d, y de las claves

También se utiliza la misma


configuración, para saber si e, es
primo o no.

CALCULOS DE LA TABLA

En esta sección se procede a


realizar los cálculos de la columna
A, para encontrar d, de forma
manual, se declara cada variable,
y así mismo se realiza cada uno de
los cálculos.

En los cálculos de la columna A,


constan las variables Φn y e,
incluyendo también la realización
de los pasos ya conocidos de
multiplicación , división y resta.
CONDICIONALES
Se pueden utilizar otros
condicionales como el if, no
obstante, para estos casos, el
while es más efectivo y
directo.

El primer condicional while


indica que si la respuesta de la
tabla es diferente de 1, el
proceso para ingresar e, se
repetirá infinitamente, hasta
encontrar el valor correcto de
número primo, para que la
respuesta final sí sea 1.

Cabe recalcar que, no solo


basta con que se establezca el
while, es importante indicarle
al while, que proceso debe
realizar repetidamente.

El continue le dice al while


que le proceso se repetirá si
se cumple esa condición

El segundo condicional while


señala que, si la respuesta de
toda la columna A es igual 1,
el resultado se imprimirá
instantáneamente

El break le dice al while, que


de cumplirse la condición, el
condicional termina.

Así como se realizaron los cálculos para la fila A, también


se hacen de forma mecánica, los cálculos para la
columna B. En este caso, aparece se utiliza el número 1,
en lugar de la e.

Después, se aplica nuevamente el condicional while,


este indicará que si un numero del arreglo es menor que
0, o negativo, a este se le multiplicara con módulo de
Φn.

Finalmente, se implementa un print, para imprimir el


valor de d, de forma automática.
3) Comprobación

Esta sección del código, nos


permite visualizar los resultados de
Φn, e, d y n, por medio del print. Y
posteriormente, se declara la
variable del Algoritmo de Euclides,
cuya operación, utilizando todos
las datos antes mostrados, debe
ser igual a 1.

4) Configuración de claves

Esta parte del código, nos permite, por medio de un “str(input())”, el nombre exacto del
emisor. Además, se utiliza dos while, con su break correspondiente, para terminar la
condición al ser cumplida.
Uno indica que si el emisor es igual a BOB, se imprimirá que el receptor es ALICE, y las
claves públicas y privadas esta última. El mismo proceso se cumple en caso de que el
emisor sea ALICE.
Cabe recalcar que dentro de las llaves, los valores van invertidos dentro del código, para
que en la ejecución del mismo, salgan normales.
5) Envío de mensajes
En esta sección del código,
por medio, de un print, se
indica que, el número que
comprende el mensaje m, no
puede ser mayor a n.

Por lo tanto, para poder


ingresar el valor de m, se
vuelve a aplicar el código
int(input()), correspondiente
a enteros.

CONFIDENCIALIDAD
La confidencialidad explica
que, para cifrar el mensaje,
se utiliza la clave pública del
receptor “e”, y para descifrar
el mensaje se utiliza la clave
privada “d”. Cif1 será el
cifrado y Desc1 el descifrado.

AUTENTICIDAD
Por el contrario, la
autenticidad, indica, para
cifrar el mensaje, se utiliza la
clave privada del receptor
“d”, y para descifrar el
mensaje se utiliza la clave
privada “e”. Cif2 será el
cifrado y Desc2 el descifrado.

Вам также может понравиться