2
ALGORITMO DE ENCRIPTACIÓN PARA EL SISTEMA DE MENSAJERIA DE LA UNIVERSIDAD PRIVADA DEL NORTE
AUTORES:
Julca Huyhua, Paolo David
Ramirez Ludeña, José
Guevara Castillo, David
Parra Aliaga Diego, Jesús
Vega Calderón, Pedro
Clase : 8759
DOCENTE:
Karla Pérez Colán De Bardales
2016
Contenido
1. RESUMEN 3
2. INTRODUCCION 3
3. PROBLEMÁTICA 4
4. OBJETIVOS 4
4.1. GENERAL 4
4.2. ESPECIFICOS 4
5. FUNDAMENTO TEORICO 4
5.1. CONCEPTO Y DEFINICIONES BASICAS 4
5.2. MARCO TEORICO 6
6. SOLUCIÓN DEL PROBLEMA 6
6.1 TOMA DE DATOS 6
6.2 ELABORACION DE GRAFICOS(DE DISPERCION O TABLAS) 6
6.3 PLANTEAMIENTO MATEMATICO DEL PROBLEMA 9
7. Resultados 16
8. Conclusiones 17
9. Recomendaciones 18
10. BIBLIOGRAFIA 19
RESUMEN
El presente proyecto, consiste en encriptar un mensaje de texto con la finalidad de preservar la privacidad en el sistema de mensajería de la Universidad privada del Norte, nos apoyaremos mediante conocimientos del algebra línea, así poder dar una seguridad y respaldo de que el mensaje del remitente sea leído exclusivamente por la persona receptora, además de construir una buena forma para conservar la integridad del mensaje, aplicado en forma directa en físico y implementándolo en el programa Matlab además de crear un algoritmo. Para ello tendremos que apoyarnos en la criptografía, conceptos de matrices, operaciones, entre otros que nos ayudara a poder generar el encriptado y por ultimo realizar el proceso también en Matlab.
INTRODUCCION
El álgebra lineal es una materia que es aplicada en varios aspectos de nuestra vida, sus conocimientos de matrices entre otros son fundamentales en el desarrollo y solución de problemas que se presentan en el día a día, además de darnos un abanico de posibilidades para poder implementarlo de diferentes formas. La generación y emisión de un mensaje el cual se desea mantener su privacidad, también se quiere que el dato sea exclusivo solo para el receptor. Estas dos definiciones se pueden relacionar con la criptografía tradicionalmente definido como el ámbito de la criptología el que se ocupa de las técnicas de cifrado o codificado destinado a transformar textos de ciertos mensajes con el fin de hacerlos inentendibles a receptores no autorizados, por ultimo todo este proceso a querer desarrollar se puede implementar también en Matlab que es un entorno de computación técnica que posibilita la ejecución del cálculo numérico y simbólico de forma rápida y precisa. Además es un entorno interactivo para el análisis y el modelado que implementa más de 600 funciones para el trabajo en distintos campos de la ciencia. Por otra parte, Matlab presenta un lenguaje de programación de muy alto nivel basado en vectores, arrays y matrices. En la presente investigación, se pretende implementar la criptografía en la encriptación de un mensaje para la seguridad de ella, además de aplicarlo en Matlab inclusive creando un sencillo algoritmo. A continuación se mencionara el propósito del proyecto.
PROBLEMÁTICA
Actualmente se es difícil de emitir un mensaje de forma virtual o física sin que se tenga una seguridad de que el mensaje sea exclusivo del receptor sin que nadie viole la privacidad de ella, por lo cual se pierde la integridad del mensaje antes que llegue al destinatario, nos platearemos el caso que se desea crear un chat privado en la Universidad Privada del Norte y se desea encriptar el mensaje para así conservar la privacidad de ella.
OBJETIVOS
GENERAL
Mejorar la seguridad de un mensaje al ser emitido en el sistema de mensajería de la Universidad Privada del Norte.
.
ESPECIFICOS
Encriptar un mensaje de forma fácil para poder conservar su integridad mediante las operaciones con matrices
FUNDAMENTO TEORICO
CONCEPTO Y DEFINICIONES BASICAS
Algoritmos
Conjunto ordenado de operaciones sistemáticas que permite hacer un cálculo y hallar la solución de un tipo de problemas.
Matlab
Es un lenguaje de programación desarrollado por The Mathworks, Matlab nace como el resultado de tratar de satisfacer las necesidades computacionales de científicos, ingenieros y matemáticos, por lo que el desarrollo de Matlab comprende un potente lenguaje de alto nivel y la incorporación de funciones gráficas más allá de los lenguajes de programación C y Fortran.
Definición de matriz
Los arreglos rectangulares de números como el siguiente:
801324843
reciben el nombre de matrices. Más formalmente, dado un conjunto X, se denomina matriz de n filas y m columnas a un conjunto de n×m elementos de X, dispuestos en un arreglo rectangular de n filas y m columnas. Las características de los elementos del conjunto X dependerán, en cada caso, de la naturaleza del problema que se esté estudiando. X puede ser un conjunto de funciones, de palabras de un alfabeto, de números, etc. De aquí en adelante, salvo que se especifique lo contrario, los elementos del conjunto X serán números reales y denotaremos el conjunto de todas las matrices de orden n×m (n filas y m columnas) por. M n×m En general, para representar una matriz A de orden n×m se escribe
para indicar que A es la matriz de orden n×m que tiene elementos ir a. Las matrices se denotan con letras mayúsculas y sus elementos con la misma letra minúscula acompañada de dos subíndices que indican su posición en la matriz; el primer subíndice indica la fila y el segundo la columna. Es decir, el elemento ir a es aquel que se encuentra en la fila i y la columna j de la matriz A.
Transformaciones elementales.
Llamamos transformaciones elementales de matrices a cualquiera de las siguientes operaciones que podemos realizar sobre la matriz:
Intercambiar dos filas (o columnas) de la matriz.
Multiplicar una fila (o columna) de la matriz por un número real no nulo.
Sumar a una fila (o columna) de la matriz el resultado de multiplicar otra fila (o columna) por un número real no nulo.
Archivo de texto
Un archivo de texto llano, texto simple, texto plano, texto sencillo o texto pelado es un archivo informático compuesto únicamente por texto sin formato, sólo caracteres, lo que lo hace también legible por humanos.
Criptosistema
Metodología utilizada para poder cifrar y decodificar un mensaje, el cual se divide en elementos {A, K, E, D}
Corresponde a la parte del mensaje sin codificar, el cual se dese cifrar
K. Conjunto finito del espacio de posibles claves, tanto de cifrado como el descrifrado
E. Parte donde se codifica la información.
D. decodificación del mensaje
Difusión
busca difundir el texto en todo el criptograma, ocultando así la relación del mensaje y el texto cifrado
confusión
pretende confundir al atacante, de forma que no sea sencillo establecer la relación entre el criptograma y la clave
MARCO TEORICO
ENCRIPTACIÓN
la encriptación por definición propiamente dicha no existe, ya que es un término anglicismo es "encryption", también es conocido como cifrar.
la criptografía proviene del griego "kyptos" que es oculto y "graphia", escritura; aparte de ello, segun la RAE lo define como el arte de escribir con clave secreta o de modo enigmatico. el cual la criptografia es una tecnica, o mas bien un conjunto de técnicas, cuyo origen radica básicamente en tratar problemas relacionados a la seguridad de intercambio de mensajes en clave entre emisor y receptor a través de un medio de comunicación.
A su vez se divide la criptografía, en el ciframiento de mensajes y diseño de criptosistema que es llevarlo a un sistema sistemático; así como también criptoanálisis que busca encontrar el método usado de encriptación el mensaje en clave.
los fundamentos de la criptografía partes siguientes teorías:
teoría de la información
la teoría de la información o teoría matemática de la comunicación, surgió por la necesidad de determinar con precisión la capacidad de diferentes sistemas de trasmisión de información.
este teorema se realizada por hartlet(1928), quien desarrollo el primer radio- receptor transatlántico; y formulo una ley en el cual señala que la cantidad total de información que se puede trasmitirse es proporcional al rango de la frecuencia transmitida y al tiempo de transmisión; cuyas ideas son considerados génesis de la teoría de la información; y así como también Shannon y weaver(1949), que definieron las bases definitivas de teoría de información; donde el cual su trabajo se centró en problemas que surgen en sistemas destinados a la manipulación de datos, es decir la forma más eficaz de trasmitir información, del cual buscar el mejor método de separar el ruido y los limites posibles de la transmisión por un canal.
actualmente se utiliza este sistema para trasmitir ideas, palabras escritas o por otro medio de comunicación (teléfono, radio, telégrafo, gesto, música, etc)
el proceso de comunicación se divide en tres partes:
Técnico
Analiza los problemas entorno a la exactitud de transmisión de la información
Semántico
Relacionado al mensaje y su interceptación
Pragmático
Examina las influencias o efectos del mensaje en el lugar de transmisión
Modelo de comunicación
Según Shannon y weaver se basaron en un sistema general de comunicación que se presenta de la siguiente forma:
FUENTE DE INFORMACION: selecciona el mensaje deseado de un conjunto de mensajes posibles.
TRANSMISOR: transforma o codifica esta información en una forma apropiada al canal.
SEÑAL: mensaje codificado por el transmisor.
CANAL: medio a través del cual las señales son transmitidas al punto de recepción.
FUENTE DE RUIDO: conjunto de distorsiones o adiciones no deseadas por la fuente de información que afectan a la señal.
Sistema de criptografía simétrico
Este sistema se caracteriza por que tanto como el emisor y receptor conocen la clave, la cual les permite encriptar y desencriptar los mensajes.
Este tipo de criptografía garantiza que solo quienes posean la clave podrán ser capaz de ver el mensaje.
Categorías:
CIFRADO CESAR
Funcionamiento:
Reemplaza cada letra del alfabeto por otra más adelante en el alfabeto. Siempre a la misma distancia y la clave especifica la distancia.
Ejemplo:
Saludos jóvenes => vdñxgev meyepav
Normal
a
b
c
d
e
f
g
h
i
j
k
l
m
n
ñ
o
p
q
r
s
t
u
v
w
x
y
Z
cifrado
d
e
f
g
a
i
j
k
l
m
n
ñ
o
p
q
e
s
t
u
v
w
x
y
z
a
b
c
Donde para saber en qué letra estará cesar modelo una función lineal para ello:
E(x)=x+4(mod 27)
CODIGO POR SUSTITUCION DE LETRAS
Funcionamiento:
Reemplaza cada letra del alfabeto por otra y la clave especifica el tipo de sustitución.
Ejemplo:
Hola a todos =>iwra a kwhwu
Normal
a
b
c
d
e
f
g
h
i
j
k
l
m
n
ñ
o
p
q
r
s
t
u
v
w
x
y
Z
cifrado
l
c
ñ
h
o
m
t
l
b
s
a
r
q
p
e
w
j
f
v
u
k
x
d
y
n
z
g
CÓDIGO POR TRANSPOSICIÓN
Para aplicarlo, se considera el texto en filas de L
(7 por ejemplo) letras cada una, y se envía el texto columna a columna:
A=Esto es una frase cifrada
Esto es
Una fra
Se citr
Da
B=EUSDsneata o c fi ert sar
SOLUCIÓN DEL PROBLEMA
6.1 TOMA DE DATOS
Temaremos de mensaje : CLAVE UPN 374931
La codificación de los términos literarios serán en una codificación amañada
El alfabeto a utiliza será de 26 letras
La numeración será tomado del 0 hasta el 9
6.2 ELABORACION DE GRAFICOS (DE DISPERCION O TABLAS)
Selección de la matriz clave: requisitos para ser la matriz clave son las siguientes:
Debe ser cuadrada.
Debe tener una inversa de tal forma que todos los elementos de ella sean números enteros.
Debe tener un determinante que debe ser múltiplo de todos los elementos de la matriz de cofactores (adjunta) para así evitar que al sacar la inversa no aparezca números fraccionales si no enteros.
B=B=
B=
B=
0-110-20010-210-3001
Esta matriz es cuadrada
Su determinante es -1 por consiguiente es múltiplo de cualquier elemento de su matriz de cofactores además gracias a eso tiene una inversa que contiene números enteros.
Codificación de los dígitos literales:
A
1
B
2
C
3
D
4
E
5
F
6
G
7
H
8
I
9
J
10
K
11
L
12
M
13
N
14
O
15
P
16
Q
17
R
18
S
19
T
20
U
21
V
22
W
23
X
24
Y
25
Z
26
0
27
1
28
2
29
3
30
4
32
5
33
6
34
7
35
8
36
9
37
ESPACIO
38
Esta es la codificación amañada que se ha hecho de los dígitos literarios.
Codificación de los términos literarios:
Codificaremos una palabra apoyándonos en la Codificación de los dígitos literales que se propuso anterior mente
Palabra:
CLAVE UPN 374931
La codificación de los términos literarios de esta palabra seria
C
L
A
V
E
U
P
N
3
7
4
9
3
1
3
12
1
22
5
38
21
16
14
38
30
35
32
37
30
28
Esta es la codificación de los términos literarios.
Creación de la matriz del mensaje:
Tomaremos la codificación de los términos literarios y lo depositaremos en una matriz cuadrada que tiene el mismo orden que la matriz clave.
A=A=
31212253821161438303532373028
A=
A=
Los elementos de esta matriz han sido depositados de la forma como esta codificado los términos literarios para sí conservar la coherencia e entendible el mensaje.
6.3 PLANTEAMIENTO MATEMATICO DEL PROBLEMA
Planteamiento de la encriptación:
Tomaremos la matriz del mensaje y lo multiplicaremos con la matriz clave de tal forma que nos quedara una matriz que la llamaremos "M" matriz encriptada.
La selección de las operaciones o la creación de la matriz encriptada es a criterio propio en este caso se tomó la multiplicación de la matriz.
M=ABM=AB
M=AB
M=AB
0-110-20010-210-30010-110-20010-210-3001
0-110-20010-210-3001
0-110-20010-210-3001
XX3121225382116143830353237302831212253821161438303532373028M=
X
X
31212253821161438303532373028
31212253821161438303532373028
M=M=
M=
M=
-90-5434-124-472654-181-744473-158-926265-90-5434-124-472654-181-744473-158-926265
-90-5434-124-472654-181-744473-158-926265
-90-5434-124-472654-181-744473-158-926265
La matriz M es la matriz encriptada.
Desencriptar el mensaje:
Desarrollaremos la ecuación de la matriz encriptado despejando la matriz del mensaje:
M=ABAB=MABB-1=MB-1A=MB-1M=ABAB=MABB-1=MB-1A=MB-1
M=AB
AB=M
ABB-1=MB-1
A=MB-1
M=AB
AB=M
ABB-1=MB-1
A=MB-1
Hallamos lo requerido para saber el mensaje:
010-110-1020-10030-2010-110-1020-10030-2B-1=B-1=
010-110-1020-10030-2
010-110-1020-10030-2
B-1=
B-1=
A=MB-1MB-1A=MB-1MB-1
A=MB-1
MB-1
A=MB-1
MB-1
A=A=
A=
A=
-90-5434-124-472654-181-744473-158-926265-90-5434-124-472654-181-744473-158-926265010-110-1020-10030-2010-110-1020-10030-2
-90-5434-124-472654-181-744473-158-926265
-90-5434-124-472654-181-744473-158-926265
010-110-1020-10030-2
010-110-1020-10030-2
xx
x
x
3121225382116143830353237302831212253821161438303532373028A=A=
31212253821161438303532373028
31212253821161438303532373028
A=
A=
Decodificando la matriz A:
C
L
A
V
E
U
P
N
3
7
4
9
3
1
3
12
1
22
5
38
21
16
14
38
30
35
32
37
30
28
La palabra es: CLAVE UPN 374931
Algoritmo a implementar:
Codificar el mensaje con la codificación de los dígitos literarios previamente elegido por el programador
Generar la matriz del mensaje
Asignar la matriz clave respectiva
Generar la matriz encriptada
Generar la ecuación del mensaje
Generar la solución de la ecuación del mensaje
Enviar el mensaje con la codificación de los dígitos literarios además de la la solución de la ecuación del mensaje
El receptor tendrá la codificación de los dígitos literarios además de la solución de la ecuación del mensaje virtualmente en el almacenamiento del correo en su cuenta está virtualmente guardado y automáticamente cada vez que quiera leerlo la ecuación se solucionara desencriptando el mensaje y generar el texto todo esto se da de forma no detectable para el usuario es un proceso interno entonces cuando una persona quiera violar la integridad de sus mensaje al querer entrar mediante una cuenta falsa y querer sincronizar sus mensaje no se podrá ya que la solución para leer el mensaje está en la cuenta verdadera cabe resaltar la solución es propia de la cuenta del usuario, se queda almacenado y es accesible si solo si el sistema reconoce que el usuario ingreso cuenta óptimamente.
La implementación en Matlab:
function varargout = pp(varargin)
% PP MATLAB code for pp.fig
% PP, by itself, creates a new PP or raises the existing
% singleton*.
% H = PP returns the handle to a new PP or the handle to
% the existing singleton*.
% PP('CALLBACK',hObject,eventData,handles,...) calls the local
% function named CALLBACK in PP.M with the given input arguments.
% PP('Property','Value',...) creates a new PP or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before pp_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to pp_OpeningFcn via varargin.
% *See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
% instance to run (singleton)".
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help pp
% Last Modified by GUIDE v2.5 21-Jun-2016 18:57:22
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct ('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @pp_OpeningFcn, ...
'gui_OutputFcn', @pp_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before pp is made visible.
function pp_OpeningFcn(hObject, eventdata, handles, varargin)
a=imread('luna.jpg');
image(a);
axis off;
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to pp (see VARARGIN)
% Choose default command line output for pp
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes pp wait for user response (see UIRESUME)
% uiwait(handles.figure1);
% --- Outputs from this function are returned to the command line.
function varargout = pp_OutputFcn (hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;
% --- Executes on button press in encriptar.
function encriptar_Callback(hObject, eventdata, handles)
% hObject handle to encriptar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global a;
n = double(a)+5;
set(handles.text2 , 'string' , char(n) );
% --- Executes on button press in desencriptar.
function desencriptar_Callback(hObject, eventdata, handles)
% hObject handle to desencriptar (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global a;
n= double(a)-5;
set(handles.text2 , 'string' , char(n) );
function text1_Callback(hObject, eventdata, handles)
% hObject handle to text1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
global a;
a=(get(hObject,'String'));
% Hints: get(hObject,'String') returns contents of text1 as text
% str2double(get(hObject,'String')) returns contents of text1 as a double
% --- Executes during object creation, after setting all properties.
function text1_CreateFcn(hObject, eventdata, handles)
% hObject handle to text1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function text2_Callback(hObject, eventdata, handles)
% hObject handle to text2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of text2 as text
% str2double(get(hObject,'String')) returns contents of text2 as a double
% --- Executes during object creation, after setting all properties.
function text2_CreateFcn(hObject, eventdata, handles)
% hObject handle to text2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
% See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
Resultados
La codificación del mensaje se distribuye de la siguiente forma:
C
L
A
V
E
U
P
N
3
7
4
9
3
1
3
12
1
22
5
38
21
16
14
38
30
35
32
37
30
28
La matriz del mensaje es la siguiente:
A=A=
A=
A=
31212253821161438303532373028
La ecuación del mensaje es :
M=ABM=AB
M=AB
M=AB
La solución de la ecuación del mensaje es :
A=MB-1A=MB-1
A=MB-1
A=MB-1
Conclusiones
La Encriptación mediante matrices es una forma de poder conservar la integridad de los datos
El proceso de encriptación desarrollado en el informe es aplicable en el área de programación
Se puede un algoritmo siguiendo los pasos del proceso de como encriptar un mensaje
Es aplicable en Matlab el proceso de encriptación desarrollado en el informe haciéndolo aplicable y maleable al querer implementarlo en forma virtual
El proceso de encriptación se puede implementar en tiempo real, en un chat, un mensaje, en un sistema de base de datos entre otros.
Los teoremas de algebra lineal y numérica son la base de la encriptación de mensajes.
La encriptación es utilizada actualmente para poder transmitir información de forma segura y confiable
Recomendaciones
Para aplicar el modelo de encriptación desarrollado en este informe se tiene que tener un conocimiento del algebra lineal así como definir una matriz, hallar su inversa entre otras operaciones.
Crear el algoritmo de encriptación es necesario comprender los procesos internos como es la infección del mensaje de forma virtual.
Implementarlo en Matlab es importante tener un conocimiento avanzado de ella ya que el proceso implica programar.
Un conocimiento de programación es preferible al momento de querer generar tanto en Matlab y hacer funcionar el algoritmo.
Un entendimiento de la palabra encriptación nos ayudara a comprender mejor el proceso que ella conlleva, así como saber que significa codificar entre otras terminologías que se requiere para comprender el proceso.
Se van a escoger un método de encriptación háganlo en función al entorno de trabajo
Siempre busque implementar métodos eficaces para la confusión de su clave de encriptación y decodificación
BIBLIOGRAFIA
Kevin. (2014). La criptografía y el álgebra lineal. 2016, de Nibcode Solutions. Recuperado de: http://www.nibcode.com/es/blog/7/criptografia-y-algebra-linealPascual, Velázquez & Pérez. (2006). ÁLGEBRA DE MATRICES. 2016, de Universidad Oberta de Catalunya Sitio web: http://www.uoc.edu/in3/emath/docs/Algebra_Matrices.pdfanónimo. (2011). Encriptación y desencriptación. 2016, de CCIA. Recuperado de: http://ccia.ei.uvigo.es/docencia/SSI/practicas/cifrado-jce.pdf
Hartley, Ralph. (1928). Transmission of Information. En bell labs technical journal (535-563). Italia: Campana Technical Journal System.
celi, Jorge. (2012). implementación hardware del estándar de encriptación avanzada(AES) en una FPGA. Ecuador.
López, parada & Simonetti. (1995). Teoría de la Información. 2016, de universidad nacional del sur. Recuperado de: http://cs.uns.edu.ar/~ldm/mypage/data/ss/info/teoria_de_la_informacion2.pdf
Real academia española. (s.f). criptografía. 2016, de RAE. Recuperado de: http://dle.rae.es/?id=BHcfHjo
anónimo. (s.f). Introducción a la criptografía. 2016, de Universidad Politécnica de Madrid. Recuperado de: http://www.dma.fi.upm.es/recursos/aplicaciones/matematica_discreta/web/aritmetica_modular/criptografia.html