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

Contenido

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:

 Realizar una aplicación para cifrar y descifrar archivos.


 Crear llaves y contraseñas para la encriptación y desencriptación de
archivos.
 Enviar por medio de correos diferentes las llaves y archivos encriptados .

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.

PGP permite a la gente a intercambiar archivos o mensajes con privacidad,


autentificación y conveniencia. Privacidad significa que únicamente a los que se les
envió un mensaje podrán leerlo. Autentificación significa que un mensaje que
aparece ser enviado por una persona, únicamente pudo ser originado por esa
persona. Conveniencia significa que la privacidad y autentificación son proveídos
sin el manejo de llaves asociadas con el software convencional de criptografía.

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

Esto puede ayudar si tú ya estás familiarizado con el concepto de criptografía en


general y de criptografía de llaves públicas en particular. Sin embargo, aquí hay una
pequeña introducción sobre la criptografía de llaves públicas.

Primero, alguna terminología elementaría. Supongamos yo quiero enviarte un


mensaje, pero yo no quiero que nadie más que tú la pueda leer. Yo puedo "encriptar"
el mensaje, el cual significa que yo puedo enviar el mensaje y hacerlo imposible de
leer para cualquier persona, excepto tú, el principal receptor del mensaje. Yo te
envío una "llave" criptográfica para encriptar el mensaje, y tú tienes que usar la
misma llave para "desencriptarlo". Simplemente así es como trabaja en
criptosistemas convencionales "llave simple".

En los criptosistemas convencionales, tales como el estándar estadounidense


federal de encriptación de datos, una llave simple es usada tanto para encriptar o
desencriptar. Esto significa que una llave inicialmente necesita ser transmitida por
medio de canales seguros, antes de poder encriptar el mensaje, una vez encriptado
estos pueden ser enviados por medio de canales no tan seguros. Esto puede ser
inconveniente. Si tú tienes un canal seguro para intercambiar llaves, entonces por
qué necesitas criptografía.

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.

La autentificación del mensaje también es proporcionada. La llave secreta del dueño


puede ser usada para encriptar un mensaje, con esto "fírmalo". Esto crea una firma
digital al mensaje, el cual el receptor puede checar usando la llave pública del
transmisor para desencriptarlo. Esto muestra que el transmisor fue el verdadero
creador del mensaje, y que consecuentemente no ha sido alterado por nadie más,
porque él únicamente posee la llave secreta para crear esa firma. La falsificación de
un mensaje firmado es imposible, y el transmisor no podrá denegar esa firma.

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.

Ya que el algoritmo de encriptación de la llave pública es mucho más lenta que la


encriptación convencional de una llave simple, la encriptación es mejor lograda
usando un algoritmo convencional de alta calidad rápido de encriptación de llave
simple para encriptar el mensaje. El mensaje original sin encriptar es llamado
"plaintext". En un proceso invisible para el usuario, una llave random temporal
encripta el archivo plaintext. Entonces la llave pública del receptor es usada para
encriptar esta llave random convencional. Esta llave pública encriptada llave de
"sesión" convencional es enviada junto con el texto encriptado (llamado "ciphertext")
al receptor. El receptor usa su propia llave secreta para recuperar esa llave de
sesión convencional, y después usa esa llave para correr el algoritmo convencional
rápido de llave simple para desencriptar el mensaje "ciphertext".

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?

Nuestra aplicación consiste basicamente en un programa desarrollado en java que


permitirá a un receptor descifrar mensajes que anteriormente han sido cifrados por
un emisor.

¿Cómo lo haremos?

Para el desarrollo de nuestro ejercicio necesitamos un par de llaves para cifrar y


descifrar nuestros archivos, en nuestro caso para generar el par de llaves
utilizamos la herramienta llamada kleopatra.

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

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