Encriptar y Desencriptar Con PGP
Encriptar y Desencriptar Con PGP
Encriptar y Desencriptar Con PGP
Objetivos ............................................................................................................................................ 1
Objetivo general:........................................................................................................................... 1
Objetivos específicos: .................................................................................................................. 1
Introducción ....................................................................................................................................... 2
Como trabaja PGP ........................................................................................................................... 3
¿Qué haremos? ................................................................................................................................ 6
¿Cómo lo haremos?......................................................................................................................... 6
Objetivos
Objetivo general:
Desarrollar una aplicación java para cifrar y descifrar archivos utilizando el protocolo
PGP.
Objetivos específicos:
1
Introducción
Pretty Good Privacy (PGP), de Phil's Pretty Good Software, es una aplicación de
software de alta seguridad criptográfica para MsDos, Unix, VAX/VMS, y otras
computadoras.
Los canales no seguros son necesarios para intercambiar llaves entre usuarios, lo
cual hace a PGP más fácil de usar. Por esto es que PGP está basado en una
poderosa tecnología llamada "llave pública”.
2
Como trabaja PGP
En criptosistemas "llave pública", cada uno tiene dos llaves complementarias, una
llave pública revelada y una llave secreta (también frecuentemente llamada como
llave privada). Cada llave desasegura el código que la otra llave hace. Conociendo
la llave pública no te ayudará a deducir la correspondiente llave secreta. La llave
pública puede ser publicada y transmitida a través de la red de trabajo. Este
protocolo proporciona privacidad sin la necesidad de canales seguros que los
sistemas convencionales requieren.
3
Cualquier persona puede usar la llave pública del receptor para encriptar un
mensaje para esa persona, y el receptor usará su llave secreta para desencriptar el
mensaje. Nadie más que el receptor podrá desencriptarlo, porque nadie más tiene
acceso a la llave secreta. Ni siquiera la persona que encriptó el mensaje podrá
desencriptarlo.
Estos dos procesos pueden estar combinados para proveer tanto como privacidad
y autentificación; primero firmando un mensaje con tu llave secreta, y después
encriptando el mensaje firmado con la llave pública del receptor. El receptor cambia
estos pasos, primero, descodifica el mensaje con su llave secreta, después checa
la firma del mensaje con la llave pública del transmisor. Estos pasos están hechos
automáticamente por el software del receptor.
4
Las llaves públicas están guardadas en "certificados de llave" individual, que incluye
la identificación (ID) del dueño (la cual es el nombre de la persona), una marca de
tiempo de cuando el par de llaves fueron generadas, y el material de llave actual.
Los certificados de llave públicos contienen material de la llave pública, mientras
que los certificados de llave secreta contienen material de la llave secreta. Cada
llave secreta es también encriptada con su propio password, en caso de que sea
robada. Un archivo de llave , o "key ring" contiene uno o más de estos certificados
de llave. Key rings públicos contienen certificados de llave pública, y key rings
secretos contienen certificados de llave secreta.
Las llaves son también referenciadas internamente por una "key ID" (identificación
de llave), la cual es una "abreviación" de la llave pública.
PGP utiliza "message digests" para formar firmas. Un message digests es una
función de un sentido fuerte criptográficamente de 128-bits. Con esto PGP obtiene
una representación del mensaje y es usado para detectar cambios en el mensaje.
Los documentos son firmados anteponiéndolos con certificado de firma, los cuales
contienen la llave ID de la llave que fue usada para firmarlo, un mensaje clasificado
firmado con llave secreta del documento, y un "timestamp" de cuando la firma fue
hecha. La llave ID es usada por el receptor para buscar la llave pública del
transmisor para checar la firma. El software del receptor automáticamente busca la
llave pública del transmisor y la ID del usuario en el Key ring público del receptor.
5
¿Qué haremos?
¿Cómo lo haremos?
6
7
Con esta aplicación creamos el certificado y generamos la llave pública y la llave
privada.
8
Librerías necesarias para el funcionamiento de cifrar y descifrar archivos con java.
9
Paquetes utilizados para cifrar y descifrar de la biblioteca bouncycastle
10
Clase que realiza el cifrado y descifrado:
11
12
Codigo para procesar y generar archivos
13
14
15
16
Clase principal para ejecutar el encriptado
17
Clase principal para ejecutar el desencriptado
18