IMPLEMENTACIÓN DE UNA API JAVA DE CRIPTOGRAFÍA RSA. Entidad Colaboradora: ICAI Universidad Pontificia de Comillas.



Documentos relacionados
Diseño ergonómico o diseño centrado en el usuario?

Learning Masters. Early: Force and Motion

Este proyecto tiene como finalidad la creación de una aplicación para la gestión y explotación de los teléfonos de los empleados de una gran compañía.

Agustiniano Ciudad Salitre School Computer Science Support Guide Second grade First term

Sistema basado en firma digital para enviar datos por Internet de forma segura mediante un navegador.

SISTEMA DE GESTIÓN DE RECIBOS

Sistemas de impresión y tamaños mínimos Printing Systems and minimum sizes

TOUCH MATH. Students will only use Touch Math on math facts that are not memorized.

MANUAL EASYCHAIR. A) Ingresar su nombre de usuario y password, si ya tiene una cuenta registrada Ó

ANÁLISIS ESTADÍSTICO DE PORQUE LO JÓVENES EN LA ACTUALIDAD CONSUMEN ALCOHOL

Título del Proyecto: Sistema Web de gestión de facturas electrónicas.

Kuapay, Inc. Seminario Internacional Modernización de los medios de pago en Chile

ADAPTACIÓN DE REAL TIME WORKSHOP AL SISTEMA OPERATIVO LINUX

Puede pagar facturas y gastos periódicos como el alquiler, el gas, la electricidad, el agua y el teléfono y también otros gastos del hogar.

Learning Masters. Fluent: Wind, Water, and Sunlight

Sistema de Control Domótico

ESCUELA SUPERIOR POLITÉCNICA DEL LITORAL Facultad de Ingeniera en Electricidad y Computación. Tema:

Francisca, yo te amo (Viento Joven) (Spanish Edition)

RESUMEN DE RESULTADOS

Learning Masters. Early: Food From Plants

Instructor: Do you remember how to say the verb "to speak"? Instructor: How do you ask a friend Do you speak Spanish?

PROYECTO INFORMÁTICO PARA LA CREACIÓN DE UN GESTOR DOCUMENTAL PARA LA ONG ENTRECULTURAS

Sierra Security System

manual de servicio nissan murano z51

Learning and Teaching Solutions. Changing learning, changing lives

Creating your Single Sign-On Account for the PowerSchool Parent Portal

Art Studio. Did you know...?

Welcome to lesson 2 of the The Spanish Cat Home learning Spanish course.

Learning Masters. Early: Animal Bodies

DISEÑO DEL EQUIPAMIENTO DE UN ESTUDIO DE GRABACIÓN DIGITAL RESUMEN. Sergio Herreros Carballo

Introducción a la Ingeniería de Software. Diseño Interfaz de Usuario

DUAL IMMERSION PROGRAM INFORMATION PRESCHOOL PRESENTATION SEPTEMBER 10, :30 P.M.

Los ensayos que se van a desarrollar son los siguientes:

Learning Spanish Like Crazy. Spoken Spanish Lección Uno. Listen to the following conversation. Male: Hola Hablas inglés? Female: Quién?

Instructor: She just said that she s Puerto Rican. Escucha y repite la palabra Puerto Rican -for a man-.

Comprehension Strategy: Summarizing

Summer Reading Program. June 1st - August 10th, 2015

CUESTIONARIO DISEÑADO PARA EVALUAR EL PRODUCTO DESCUBRE LAS PALMAS DE GC! QUE SERÁ ADMINISTRADO A TRAVÉS DE LA WEB CREADA PARA EL PRODUCTO.

Los nombres originales de los territorios, sitios y accidentes geograficos de Colombia (Spanish Edition)

Robert T. Kiyosaki. Click here if your download doesn"t start automatically

Cómo Enamorar a Alguien: Basado en la Psicología del Amor (Colección de Psicología del Amor de 2KnowMySelf y AdoroLeer) (Spanish Edition)

SISTEMA DE GESTIÓN Y ANÁLISIS DE PUBLICIDAD EN TELEVISIÓN

DISEÑO DE UN CRONOTERMOSTATO PARA CALEFACCIÓN SOBRE TELÉFONOS MÓVILES. Entidad Colaboradora: ICAI Universidad Pontificia Comillas.

programa. Hoy nuestros invitados son un camello y su cuidador. Cuál es el hábitat de este animal? no necesitan beber agua con frecuencia.

Lump Sum Final Check Contribution to Deferred Compensation

Impacto de la metodología de FINCA Costa Rica en las Empresas de Crédito Comunal

Registro de Semilla y Material de Plantación

BILINGUAL MUSIC I MÚSICA I BILINGÜE ACTIVITY BOOK UNIT 1. THE ART OF SOUND

Práctica 5. Curso

Ricard Meneu. Gestión privada de servicios sanitarios públicos: qué hemos aprendido en las dos últimas décadas?

COLEGIO COLOMBO BRITÁNICO SECCIÓN BACHILLERATO PLAN DE ESTUDIOS Technology. Asignatura. Grado Octavo Trimestre 1

EL ESTILO INDIRECTO (REPORTED SPEECH)

Learning for a Lifetime. Aprendiendo la vida entera

Sistema!de!iluminación!de!un!longboard!

NubaDat An Integral Cloud Big Data Platform. Ricardo Jimenez-Peris

Matemáticas Muestra Cuadernillo de Examen

Soccer and Scouting in Your Organization A Worthwhile Combination

SISTEMA CONTROL DE ACCESOS A EDIFICIOS MEDIANTE TARJETAS CRIPTOGRÁFICAS Y TARJETAS DE RADIOFRECUENCIA (RFID)

Students Pledge: Parents Pledge:


Volatilidad: Noviembre 2010 Futuros Frijol de Soya

Puedes descargar los archivos de instalación de Windows SteadyState en el Centro de descarga Microsoft.

LA FIRMA THE FIRM QUIENES SOMOS ABOUT US

SCADA BASADO EN LABVIEW PARA EL LABORATORIO DE CONTROL DE ICAI

Aprender español jugando : juegos y actividades para la enseñanza y aprendizaje del español. Click here if your download doesn"t start automatically

Final Project (academic investigation)

An explanation by Sr. Jordan

Aplicación web para el modelado de redes eléctricas

Tipos de publicaciones científicas. Sergio Luján

Como desarrollar una propuesta de éxito para el 7PM

SERVIDOR MTA ULTRA SEGURO

CUESTIONARIO Encuesta de prevalencia de autismo. Instituto de Estadísticas de Puerto Rico

DESARROLLO DE SITIO WEB CONSEJERIAS PARA PADRES

PRINTING INSTRUCTIONS

Ejercicios Input/Output 11 de Mayo, 2013

Criptografía. Por. Daniel Vazart P.

Tarifa. Gama energypack

REST BACK END Y APLICACIÓN PARA ios PARA OPTIMIZAR TIEMPO Y RECOMENDAR NUEVOS EVENTOS

Pages: 205. Authors: Dr. Carmen Bestué, Ph. D. Dr. Mariana Orozco Jutoran, Ph. D. Chapters: 6

Flashcards Series 4 El Hotel

Conectar Outlook con Exchange en local

Creando Cuentas Nuevas para Padres / Alumnos en el

CUANDO LA MUSA SE HACE VERBO VERSOS CORTOS POEMAS DE AMOR POEMAS DE DESAMOR Y POEMAS CORTOS SPANISH EDITION

INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS SISTEMA INTEGRAL DE GESTIÓN DE GRANDES SUPERFICIES

LAC Modificación DIRECT ALLOCATIONS TO ISPs DISTRIBUCIONES DIRECTAS A ISPs

FCC Information : Warning: RF warning statement:

Proyecto de Funciones Racionales

Anexo: PROGRAMACIÓN DIDÁCTICA

DONACION DE OLD TIME FOUNDATION A NIKAO MAORI SCHOOL RAROTONGA ISLAS COOK OCTUBRE 2007

Flashcards Series 3 El Aeropuerto

Diseño de un directorio Web de diseñadores gráficos, ilustradores y fotógrafos.

Tendencias educativas oficiales en México

La dieta de la muerte: soy anoréxica y esta es mi historia (Spanish Edition)

LAC Modificación DIRECT ALLOCATIONS TO ISPs DISTRIBUCIONES INICIALES A ISPs

Subject Pronouns. Compare these two sentences: o Carlos es mexicano. o Él es mexicano. Empecemos! Let s get started!

PROYECTOS DI V NORMALlZAClON DOCUMENTAL

NOTICE OF ERRATA MEDICARE Y USTED 2006 October 18, 2006

Universidad de Guadalajara

Como sabemos, en un Sistema de Comunicación de Datos, es de vital importancia

Transcripción:

IMPLEMENTACIÓN DE UNA API JAVA DE CRIPTOGRAFÍA RSA Autor: Ruiz de Ojeda Fernández, Javier. Director: Contreras Bárcena, David. Entidad Colaboradora: ICAI Universidad Pontificia de Comillas. RESUMEN DEL PROYECTO Desde hace más de 2000 años, la criptografía ha caminado de la mano del hombre, y desde las campañas romanas hasta la Segunda Guerra Mundial, se ha encargado de determinar los vencedores y los vencidos. Poder disponer de un sistema que permita enviar un mensaje que sólo pudiera ser leído por el destinatario objetivo ha sido y sigue siendo una necesidad crucial. La ciencia de la criptografía presenta múltiples problemas, pero por ser un sistema destinado a usarse por unos pocos, siempre se han podido paliar con soluciones rudimentarias y poco creativas. Sin embargo el mundo en el que vivimos hoy, la Era de la Información, lleva todos estos problemas a una nueva dimensión, y por tanto requiere soluciones innovadoras y revolucionarias en campos tan modernos como la informática, y tan antiguos como las matemáticas. Este proyecto pretende explicar los avances criptográficos de la última mitad del siglo XX, y plasmarlos en una implementación al alcance de todos, que permita un uso fácil de la criptografía en nuestras comunicaciones. Para ello proveerá una serie de funciones que faciliten el cifrado de información para su viaje por canales no seguros, así como algunas aplicaciones de ejemplo. El desarrollo de software conoce muchas metodologías, y es difícil que ningún proyecto, alcanzada una determinada envergadura, se ciña solamente por una de ellas. Así, para la consecución de este proyecto, se ha empleado una mezcla de varias. I

La metodología que ha gobernado todas las demás ha sido algo que aprendí estudiando en Estados Unidos, y que los americanos llaman scrum. El término deriva del mundo del deporte, en particular del fútbol americano, y pretende describir el proceso por el cual los jugadores se reúnen constantemente para analizar la situación, y seleccionar la estrategia adecuada a seguir hasta la próxima reunión. Se trata, pues, de una versión extrema del modelo en espiral (que pretendía solucionar los problemas ocasionados por la rigidez del modelo en cascada), en la que es difícil definir objetivos o prever problemas a largo plazo. La mayor fortaleza de esta metodología reside en que, dado el número de revisiones realizadas del proceso del proyecto, el avance de este es bastante rápido y optimizado, ya que en cada momento sólo se centra en las cuestiones pertinentes. La otra gran ventaja respecto a modelos tradicionales es la rapidez con la que empieza a generar resultados que, si bien en un principio no son ni de lejos los apropiados, permiten tener desde el principio una base sobre la que trabajar, incluso aunque se trate de un sistema nuevo. Al finalizar el proyecto, se dispondrá de una API Java que permita el cifrado y descifrado de texto, de manera que sólo pueda ser leído por sus destinatarios. Además se presentarán dos aplicaciones de demostración. Las características del proyecto serán las siguientes. La longitud del mensaje no influye en la aplicación, ya que la encriptación se realiza por bloques. La complejidad matemática de la criptografía empleada se mantendrá oculta del usuario, que podrá cifrar y descifrar mensajes con transparencia. Las claves empleadas serán distintas para comunicación, para aumentar la seguridad. A su vez, un usuario no podrá utilizar su juego de claves para descifrar mensajes de otros usuarios. II

El estándar criptográfico empleado es RSA, por ser el algoritmo matemático de encriptación más potente en la actualidad, y por tratarse de un estándar de criptografía de clave pública y asimétrica (ambas cualidades y su importancia serán explicadas más adelante). El código será público, con lo que cualquiera podrá utilizarlo o modificarlo para su uso particular. RSA CRYPTOGRAPHY INTERFACE FOR JAVA For more than 200 years cryptography and man have walked together, and from the first Roman campaigns to the Second World War, it has determined success. A system that allows sending a message only readable by its intended receiver has been and still is a crucial need. The science of cryptography has, however, many flaws, and generates many problems. Traditionally, these could be solved in rudimentary ways, for cryptography was only intended for a small group of people. But, in today s world, the Information Age, all these problems acquire a new dimension, and thus require new and revolutionary solutions that reside in fields as modern as programming, and as old as math. This project will try to explain the cryptographic advances since the middle 20th century, and implement them in a way that is easy for anyone to use, allowing a simple use of cryptography in our communications. With this in mind, it shall provide a series of functions that enable the encryption of information so it can travel through an open channel. There are many methodologies in software engineering, and it is complicated for any considerable project to use any single one of them. Thus, a mixture of several has been used in this one. III

The methodology that has governed the rest is one I learned while studying abroad in the US, something they call scrum. The word comes from the world of sports, football in particular, and attempts to describe the process in which the players will gather once and again to analyze the situation and choose the appropriate strategy to use until the next gathering. It is, therefore, an extreme version of the spiral model (which solved many of the problems caused by the strictness of the waterfall model), where it is difficult to define goals or predict problems long-term. The greatness of this methodology is that, because of the amount of revisions the project suffers, it progresses quite fast, since it only focuses in the questions at hand. The other great advantage is how fast it starts generating results, as opposed to other traditional methodologies. These results might not be the correct ones at first, but they provide a base which we can build upon, even when we are creating a new system. By the end of the project, a Java library will be available that will enable the encryption and decryption of messages sent between processes, so that only their intended readers can access them. The project specifications are the following. The length of the message does not affect the application, since the encryption will happen in blocks. The mathematical complexity of the existing cryptography will be hidden from the user, who can encrypt and decrypt messages transparently. The keys will vary from use to use, making it more difficult for an eavesdropper to break them. Also, one user will not be able to use his/her set of keys to decrypt another user s information. The cryptography used will be RSA, since it is the most powerful mathematical system available, and because it is an asymmetric, public key system (both these concepts will be further explained). The code will be public, so anyone can use it or modify it for their particular use. IV

V