Documentos de Académico
Documentos de Profesional
Documentos de Cultura
GENERALIDADES
Este capítulo está relacionado con la revisión de textos, libros y artículos tomando en cuenta
conceptos básicos importantes para aprender y encarar el problema del cual trata el presente
seguridad.
actos y negocios jurídicos del derecho privado, realizados voluntaria y bilateralmente en acuerdo
1.3. ORGANIZACIÓN
La Notaria se compone en cuatro entidades en forma general y cada una son independientes de
Las disposiciones legales referentes a la residencia de los Notarios están Contempladas en los
14
1.3.2. NOTARIAS Y NOTARIOS
Paz: ALP]
Título II
Notarias y notarios
Capítulo I
I. Es el profesional de derecho que cumple el servicio notarial por delegación del Estado y
Para la realización del presente trabajo ha sido necesaria la recolección de los datos, como la
entrevista al directo actor de la Notaria o Notario, responsable de los eventos y procesos que
suceden; también la observación de actividad Notarial, lo que permite cuantificar los problemas y
15
1.4.1 ACTIVIDAD NOTARIAL
Atención al Cliente
Archivo de Trámites
En la Normativas de Documentos y Trámites, los notarios tienes varios artículos los cuales se les
indica la manera de proceder y actuar, para evitar malos entendidos y/o errores. (Ver Anexo 3).
MODELO DE CONTRATOS
de contratos:
16
CONTRATOS DE ALQUILER Y ANTICRÉTICO:
Vientre.
DECLARACIÓN DE SOLVENCIA
ECONÓMICA: Trámite
detalla a continuación.
17
DESCRIPCIÓN DE REQUISITOS PARA DIFERENTES TRÁMITES QUE
REALIZA UN NOTARIO
ORIGINALES Y FOTOCOPIAS.
FOTOCOPIA DE LA MISMA.
18
COMPARECIENTES.
IDENTIDAD ORIGINALES.
MINUTA ORIGINAL.
ORIGINALES.
CODIGO DE COMERCIO.
SOCIEDAD.
19
PRESENCIA DE LAS PARTES CON SUS CEDULAS DE IDENTIDAD
ORIGINALES.
SOCIETARIOS)
DE IDENTIDAD ORIGINALES.
ORIGINALES.
20
REQUISITOS TESTAMENTOS
ORIGINAL Y FOTOCOPIAS.
INMUEBLES O ACCIONES
INVENTARIOS NOTARIALES
RECONOCIMIENTO DE FIRMAS
CODIGO DE COMERCIO.
21
TIPOS SOCIETARIOS)
TESTAMENTOS
1.6.1. HISTORIA
Approach) elaborada por Ivar Jacobson, una aproximación de desarrollo basada en componentes,
Entre los años de 1987 a 1995 Jacobson fundó la compañía Objectory AB y lanza el proceso de
22
Figura 1 – 1: Historia del RUP
Fuente: http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational
1995 y 1997 se desarrolla Rational Objectory Process (ROP) a partir de Objectory 3.8 y
del Enfoque Rational (Rational Approach) adoptando UML como lenguaje de modelado.
Desde ese entonces y a la cabeza de Grady Booch, Ivar Jacobson y James Rumbaugh, Rational
especialmente el flujo de trabajo conocido como modelado del negocio. En junio del 1998 se
Los autores de RUP destacan que el proceso de software propuesto por RUP tiene tres
características esenciales: está dirigido por los Casos de Uso, está centrado en la arquitectura, y es
23
1.6.3. PROCESO DIRIGIDO POR CASOS DE USO
Los Casos de Uso son una técnica de captura de requisitos que fuerza a pensar en términos de
importancia para el usuario y no sólo en términos de funciones que sería bueno contemplar. Se
define un Caso de Uso como un fragmento de funcionalidad del sistema que proporciona al
usuario un valor añadido. Los casos de uso representan los requisitos funcionales del sistema,
Como de muestra en la Figura 1 – 2, los casos de uso integran el trabajo mediante requisitos,
Como se muestra en la Figura 1 – 3, basándose en los casos de uso se crean los modelos de
análisis y diseño, luego la implementación que los lleva a cabo, y se verifica que
efectivamente el producto implemente adecuadamente cada caso de uso. Todos los modelos
24
Figura 1 – 3: Flujo a partir de los Casos de Uso
Fuente: http://es.wikipedia.org/wiki/Proceso_Unificado_de_Rational
permite tener una visión común entre todos los involucrados (desarrolladores y usuarios) y una
El equilibrio correcto entre los Casos de Uso y la arquitectura es algo muy parecido al
tiempo. Para esto, la estrategia que se propone en RUP es tener un proceso iterativo e
incremental en donde el trabajo se divide en partes más pequeñas o mini proyectos. Permitiendo
que el equilibrio entre Casos de Uso y arquitectura se vaya logrando durante cada mini
proyecto, así durante todo el proceso de desarrollo. Cada mini proyecto se puede ver como una
iteración (un recorrido más o menos completo a lo largo de todos los flujos de trabajo
Una iteración puede realizarse por medio de una cascada de etapas como se muestra en la
25
iteración y algunas actividades específicas de la iteración. Al finalizar se realiza una integración
RUP se repite a lo largo de una serie de ciclos que constituyen la vida de un producto. Cada ciclo
concluye con una generación del producto para los clientes. Cada ciclo consta de cuatro fases:
Cada fase se concluye con un hito bien definido, un punto en el tiempo en el cual se deben tomar
ciertas decisiones críticas y alcanzar las metas clave antes de pasar a la siguiente fase, ese hito
principal de cada fase se compone de hitos menores que podrían ser los criterios aplicables a
cada iteración. Los hitos para cada una de las fases son: Inicio - Lifecycle Objectives,
Product Release.
26
Inicio
Durante la fase de inicio se define el modelo del negocio y el alcance del proyecto. Se identifican
todos los actores y Casos de Uso, y se diseñan los Casos de Uso más esenciales.
[KRUCHENTEN, P. 2000]
Encontrar los Casos de Uso críticos del sistema, los escenarios básicos que
definen la funcionalidad.
Elaboración
cimientos de la arquitectura, desarrollar el plan del proyecto y eliminar los mayores riesgos.
sucesivas hasta convertirse en el sistema final. Este prototipo debe contener los Casos de Uso
críticos identificados en la fase de inicio. También debe demostrarse que se han evitado los
Completar la visión.
Crear un plan fiable para la fase de construcción. Este plan puede evolucionar
27
razonable y en un tiempo razonable.
Construcción
La finalidad principal de esta fase es alcanzar la capacidad operacional del producto de forma
incremental a través de las sucesivas iteraciones. Durante esta fase todos los componentes,
Transición
La finalidad de la fase de transición es poner el producto en manos de los usuarios finales, para lo
con el ajuste, configuración, instalación y facilidad de uso del producto. [KRUCHENTEN, et al.,
2000]
Un producto final que cumpla los requisitos esperados, que funcione y satisfaga
suficientemente al usuario.
28
1.8. MODELADO DE APLICACIONES UML
A partir del año 1994, Grady Booch [BOOCH, GRANDY. 1996]. (precursor de Booch '93) y Jim
Rumbaugh (creador de OMT) se unen en una empresa común, Rational Software Corporation, y
comienzan a unificar sus dos métodos. Un año más tarde, en octubre de 1995, aparece UML
(Unified Modeling Language) 0.8, la que se considera como la primera versión del UML. A
finales de ese mismo año, Ivan Jacobson, creador de OOSE (Object Oriented Software Engineer).
UML se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los
componentes del proceso de desarrollo de aplicaciones. Sin embargo, hay que tener en cuenta un
aspecto importante del modelo, no pretende definir un modelo estándar de desarrollo, sino
El UML está compuesto por diversos elementos gráficos que se combinan para conformar
diagramas. Debido a que el UML es un lenguaje, cuenta con reglas para combinar tales
elementos.
La finalidad de los diagramas es presentar diversas perspectivas de un sistema, a las cuales se les
realidad; el modelo UML describe lo que supuestamente hará un sistema, pero no dice cómo
29
1.9.1. DIAGRAMA DE CLASES
Los diagramas de clases muestran las diferentes clases que componen un sistema y cómo se
relacionan unas con otras. Se dice que los diagramas de clases son diagramas «estáticos» porque
muestran las clases, junto con sus métodos y atributos, así como las relaciones estáticas entre
ellas: qué clases «conocen» a qué otras clases o qué clases «son parte» de otras clases, pero no
Una clase define los atributos y los métodos de una serie de objetos. Todos los objetos de esta
clase (instancias de esa clase) tienen el mismo comportamiento y el mismo conjunto de atributos
(cada objetos tiene el suyo propio). En ocasiones se utiliza el término «tipo» en lugar de clase,
pero recuerde que no son lo mismo, y que el término tipo tiene un significado más general.
En, las clases están representadas por rectángulos, con el nombre de la clase, y también pueden
mostrar atributos y operaciones de la clase en otros dos «compartimentos» dentro del rectángulo.
Los diagramas de casos de uso describen las relaciones y las dependencias entre un grupo de
Es importante resaltar que los diagramas de casos de uso no están pensados para representar el
diseño y no puede describir los elementos internos de un sistema. Los diagramas de casos de uso
sirven para facilitar la comunicación con los futuros usuarios del sistema, y con el cliente, y
resultan especialmente útiles para determinar las características necesarias que tendrá el sistema.
En otras palabras, los diagramas de casos de uso describen qué es lo que debe hacer el sistema,
30
1.9.3. DIAGRAMA DE ESTADOS
Los diagramas de estado muestran los diferentes estados de un objeto durante su vida, y los
Los diagramas de estado ven a los objetos como máquinas de estado o autómatas finitos que
pueden estar en un conjunto de estados finitos y que pueden cambiar su estado a través de un
diagramas de actividad son una forma especial de los diagramas de estado, que únicamente (o
Los diagramas de actividad son similares a los diagramas de flujo procesales, con la diferencia de
Los diagramas de actividad siempre están asociados a una clase, a una operación o a un caso de
uso.
Los diagramas de actividad soportan actividades tanto secuenciales como paralelas. La ejecución
paralelas, no importa en qué orden sean invocadas (pueden ser ejecutadas simultáneamente o una
Los diagramas de colaboración muestran las interacciones que ocurren entre los objetos que
participan en una situación determinada. Esta es más o menos la misma información que la
mostrada por los diagramas de secuencia, pero destacando la forma en que las operaciones se
31
producen en el tiempo, mientras que los diagramas de colaboración fijan el interés en las
mediante flechas, mostrando el nombre del mensaje, los parámetros y la secuencia del mensaje.
Los diagramas de colaboración están indicados para mostrar una situación o flujo programa
específicos y son unos de los mejores tipos de diagramas para demostrar o explicar rápidamente
componentes y muestra las dependencias entre estos componentes. Los componentes físicos
Debido a que los diagramas de componentes son más parecidos a los diagramas de casos de usos,
éstos son utilizados para modelar la vista estática y dinámica de un sistema. Muestra la
diagrama incluya todos los componentes del sistema, normalmente se realizan por partes. Cada
En él se situarán librerías, tablas, archivos, ejecutables y documentos que formen parte del
sistema.
Uno de los usos principales es que puede servir para ver qué componentes pueden compartirse
entre sistemas o entre diferentes partes de un sistema. [GESVIN ROMERO MORENO, 2004]
32
1.9.7. DIAGRAMA DE DISTRIBUCIÓN
representar a los equipos, a los dispositivos y mostrar sus interconexiones y el software que se
Muestra cómo un sistema está dividido en agrupaciones lógicas mostrando las dependencias entre
esas agrupaciones.
Dado que normalmente un paquete está pensado como un directorio, los diagramas de paquetes
Los Paquetes están normalmente organizados para maximizar la coherencia interna dentro de
cada paquete y minimizar el acoplamiento externo entre los paquetes. Con estas líneas maestras
sobre la mesa, los paquetes son buenos elementos de gestión. Cada paquete puede asignarse a un
individuo o a un equipo, y las dependencias entre ellos pueden indicar el orden de desarrollo
quiere. Para realizar la determinación de requerimientos, primeramente se debe listar todas las
necesidades que tiene la institución, esto nos sirve como punto de partida para comprender los
requerimientos del sistema, que deben evolucionar por medio del Modelo de Caso de Uso, con el
33
1.11. VORD
perspectivas orientado a servicios, Donde cada perspectiva se caracteriza por solicitar una serie
de servicios1.
Entre las aportaciones del método destacan la clasificación de las perspectivas en directas e
indirectas. Las perspectivas directas son aquellas que interactúan directamente con el sistema
(todo tipo de usuarios), mientras que las perspectivas indirectas un interés en algunos o todos los
perspectiva organizativa, etc.) Las perspectivas indirectas son, por lo tanto, las que dictan las
Identificación de perspectivas: Para ello proponen una serie de guías y una jerarquía
(con herencia) de clases de perspectivas, tanto directas como indirectas, y que puede
extenderse, si es necesario. Esta jerarquía resulta muy útil durante las primeras
las interacciones entre la perspectiva y el futuro sistema, del tipo evento (de la
1
Obsérvese la diferencia con la orientación a objetos, donde cada objeto es el que provee los servicios
34
Análisis inter-perspectivas: Tras comprobar la corrección interna de cada perspectiva
manuales.
perspectivas. Por otro lado, resulta muy natural, incluso para los usuarios, la descripción de las
Otro punto fuerte es que la utilización de un concepto como el de las perspectivas indirectas
resulta de gran ayuda a la hora de determinar los requisitos no funcionales. La mayor limitación
de VORD es que no resulta útil para el tratamiento de interacciones entre distintas perspectivas,
Así, no establece una diferencia entre lo que es inconsistencia (entre descripciones) o lo que es
da a los contenidos de las perspectivas. De hecho, las perspectivas. De hecho, las perspectivas
(subjetivas) que puedan existir sobre un futuro sistema y su entorno. Más bien, las perspectivas
describen objetos que existen fuera del sistema y que interactúan con él.
Los autores, con buen criterio, muestran su escepticismo respecto a la posible automatización
necesidad de realizar ambos procesos ni la utilidad e contar con guías para realizarlos, cosa que
VORD o proporciona.
35
Esto tendría como posible ventaja concentrar el esfuerzo en la resolución de las discrepancias
más importantes (o que afecten a los requisitos más prioritarios). No obstante, sigue sin aclararse
Las aplicaciones web ofrecen servicios a los usuarios de Internet que acceden utilizando un
navegador web como Explorer, Firefox o Safari entre otros, dirigiéndose a una dirección de
Las aplicaciones web pueden ser de acceso público como tiendas virtuales, diarios digitales,
portales de Internet o de acceso restringido como son las intranets para mejorar las gestiones
control de presencia, gestores documentales o el uso de extra nets para aumentar y mejorar el
Una de las principales características va a ser su alto grado de interacción con el usuario, y el
diseño de su interfaz debes ser claro, simple y debe estar estructurado de tal manera que sea
Los principales problemas que nos encontramos es la falta de fiabilidad, seguridad, escalabilidad,
falta de estándares.
36
Se desea controlar procesos creativos de desarrollo con el fin de proporcionar un proceso
sistemático orientado a mejorar la calidad de la aplicación final. Esta disciplina es parte de la base
Para todo esto se desarrollada metodologías que permiten estructurar comunicar, entender
simplificar y formalizar tanto el dominio como las decisiones de diseño, así como las decisiones
de diseño, así como disponer de Documentación detallada para posibles cambios del software.
UWE (UML - Based Web Engineering) es una herramienta para modelar aplicaciones web,
(sistemas adaptativos).
KRAUS, ROLF HENNICKER, 2002] pero adaptados a la web. En requisitos separa las fases de
Otras características relevantes del proceso y método de autoría de UWE son el uso de paradigma
referencia) que da soporte al método y el grado de formalismo que alcanza debido al soporte que
(Ingeniería Web basada en UML) la aproximación UWE (UML – Based Web Engineering),
37
TRAZO
TRAZO
TRAZO
TRAZO TRAZO
TRAZO
Los principales aspectos en los que se fundamenta UWE son los siguientes:
Definición de métodos
Especificación de Restricciones
38
1.15. MODELO DE ESPACIO DE NAVEGACIÓN
Este modelo indica como el sistema de páginas web del sitio está relacionado internamente. Es
Para ello se utilizan unidades de navegación llamadas "nodos" conectadas por enlaces de
navegación. Estos nodos pueden ser mostrados en la misma página web, no tienen por qué estar
en páginas diferentes.
Al mismo tiempo que explicamos este modelo con el ejemplo de la agenda de contactos,
podemos ir viendo los distintos elementos que introduce la metodología UWE, los elementos
Clase de Navegación
Menú
Índice
Pregunta
Visita Guiada
Clase de Proceso
Nodo Externo
de acceso. Técnicamente, los caminos de navegación junto con los elementos de acceso son
39
- El primer paso consiste en realzar el modelo de espacio de navegación con índices,
- El segundo consiste en derivar menús directamente del modelo realzado. Los menús
El resultado es un diagrama de clases UML construido con estereotipos UML, los cuales están
estructura de los nodos simples, es decir cómo cada nodo es presentado al usuario puede
Grupo de Presentación
Página de Presentación
Texto
Entrada de Texto
Ancla
Carga de Archivos
Botón
Imagen
40
Formulario
Componente de Cliente
Alternativas de Presentación
Selección
La estimación del costo y del esfuerzo de la elaboración del software nunca será una ciencia
exacta. Son distintas variables que deben tomarse en cuenta como ser: aspectos técnicos, de
proyecto software. Sin embargo la estimación puede dejar de ser un arte obscuro para convertirse
en una serie de pasos sistemáticos que proporcionen estimaciones con un grado de riesgo
Este método de estimación de proyectos de software fue desarrollado en 1993 por Gustav Karner
de Rational Software y está basado en una metodología orientada a objetos, dándole el nombre de
“estimación de esfuerzos con casos de uso”. Surgió como una mejora al método de puntos de
función pero basando las estimaciones en el modelo de casos de uso, producto del análisis de
requerimientos. Según su autor, la funcionalidad vista por el usuario (modelo de casos de uso) es
41
Un caso de uso por sí solo no permite efectuar una estimación de esfuerzos ni de tiempos, los
casos de uso son solamente herramientas para el análisis. La idea fundamental es predecir el
El objetivo fundamental de esta técnica es: Estimar las horas necesarias para ejecutar un conjunto
de casos de uso. Es decir, necesitamos predecir cuánto tiempo llevará el desarrollo de software y
cuántas personas se requieren para realizarlo. Para ello, es necesario cuantificar la complejidad
del sistema y el tiempo necesario para producir una unidad de complejidad. [LIANNY
http://www.monografias.com/trabajos87/estimacion-software-basada-puntos.shtml]
DE USO
Ventajas Desventajas
Trabaja bien con diferentes tipos No existe un estándar para escribir casos de
método.
grandes.
42
Vale la pena aclarar que un caso de uso por sí solo no permite efectuar una estimación de
esfuerzos ni de tiempos, solamente son una herramienta para el análisis. La idea central es
estimar el tamaño (cuantificar) del software a partir de los requerimientos de los casos de uso.
Los pasos para el desarrollo de método de puntos de casos de uso son los siguientes:
(UUCP)
Consiste en la evaluación de la complejidad de los actores con los que tendrán que interactuar el
sistema. Este puntaje se calcula determinando si cada actor es una persona u otro sistema, además
evalúa la forma en la que este interactúa con el caso de uso y la cantidad de actores de cada tipo.
43
PUNTOS DE CASOS DE USO, EJEMPLO PRÁCTICO, consultado el 14 de Enero 2013, página
http://www.monografias.com/trabajos87/estimacion-software-basada-puntos.shtml]
Este punto funciona muy similar al anterior, pero para determinar el nivel de complejidad se
puede realizar mediante dos métodos: basado en transacciones o basado en clases de análisis.
Basado en las transacciones por caso de uso, se toma en cuenta el número de transacciones por
El UUCP son los puntos de casos de uso sin ajustar, esto nos puede servir para tener una idea un
poco más precisa de la dificultad de los casos de uso e interfaces, tomando en cuenta los pesos de
los actores (UAW) y los pesos de los casos de uso (UUCW). [CARMEN GARCIA, JAVIER
GARZAS, C.G y J. G. (n.d.), EL MÉTODO DE LOS PUNTOS CASO DE USO (UCP) página:
http://projectqualitymanagement.files.wordpress.com/2011/05/estimacionpuntoscasouso.pdf]
Este se compone de 13 puntos que evalúan la complejidad de los módulos del sistema que se
desarrolla, cada uno de estos factores tienen un peso definido con los cuales se obtendrá puntos
ponderados por cada uno de ellos, según la valoración que se asigne. Para una mejor
comprensión, a continuación se mostrara una tabla con los ítems. [CARMEN GARCIA, JAVIER
44
GARZAS, C.G y J. G. (n.d.), EL MÉTODO DE LOS PUNTOS CASO DE USO (UCP) página:
http://projectqualitymanagement.files.wordpress.com/2011/05/estimacionpuntoscasouso.pdf]
TÉCNICO
T1 Sistema Distribuido 2
T7 Facilidad de Uso 2
T8 Portabilidad 1
T9 Facilidad de Cambio 1
T10 Concurrencia 1
entrenamiento a usuarios
45
1.18.6. EVALUAR FACTORES AMBIENTALES (EF)
Los factores sobre los cuales se realiza la evaluación son 8 puntos, que están relacionados con las
página: http://www.monografias.com/trabajos87/estimacion-software-basada-puntos.shtml]
Este cálculo se realiza con el fin de tener una aproximación del esfuerzo, penado solo en el
desarrollo según las funcionalidades de los casos de uso. [LIANNY O’FARILL FDEZ, L. O. F.,
http://www.monografias.com/trabajos87/estimacion-software-basada-puntos.shtml]
La tercera forma normal (3NF) es una forma normal usada en la normalización de bases de datos.
La 3NF fue definida originalmente por E.F. Codd en 1971. La definición de Codd. indica que una
primaria.
La base de datos del Proyecto cumplen con la dos condiciones establecidas por lo tanto se
Las pruebas de caja blanca (también conocidas como pruebas de caja de cristal o pruebas
estructurales) se centran en los detalles procedimentales de software, por lo que su diseño está
fuertemente ligado al código fuente. El testador escoge distintos valores de entrada para examinar
cada uno de los posibles flujos de ejecución del programa y cerciorarse de que se devuelven los
Existen varios tipos de pruebas estructurales, como son aquellas que ejercitan todas las
proposiciones del software bajo análisis, las que ejercitan todas las condiciones y las ejercitan los
En teoría de sistemas y físicas, se denomina caja negra aquel elemento que es estudiado desde el
punto de vista de las entradas que recibe y las salidas o respuestas que produce, si tener en
cuenta su funcionamiento interno. En otras palabras, de una caja nos interesará su forma de
interactuar con el medio que le rodea, entendiendo qué es lo que hace, pero sin dar importancia a
como lo hace. Por tanto, de un caja negra deben estar muy bien definidas sus entradas y salidas,
funcionamiento.
1.22.1. RSA
47
El algoritmo fue descrito en 1977 por Ron Rivest, Adi Shamir y Leonard Adleman, del Instituto
Tecnológico de Massachusetts (MIT); las letras RSA son las iniciales de sus apellidos. Clifford
Cocks, un matemático británico que trabajaba para la agencia de inteligencia británica GCHQ,
había descrito un sistema equivalente en un documento interno en 1973. Debido al elevado coste
descubrimiento, sin embargo, no fue revelado hasta 1997 ya que era confidencial, por lo que
El ALGORITMO RSA
Generación de claves
deben tener una longitud en bits parecida. Se pueden hallar primos fácilmente
2. Se calcula .
Si se escoge un con una suma encadenada corta, el cifrado será más efectivo. Un
seguridad.2
2
Boneh, Dan (1999). «Twenty Years of attacks on the RSA Cryptosystem» (en inglés). Notices of the
American Mathematical Society (AMS) 46 (2): pp. 203–213.
48
5. Se determina un (mediante aritmética modular) que satisfaga la congruencia
inverso de .
secreto.
Nota:
y ,
.
Cifrado
Alicia comunica su clave pública a Bob y guarda la clave privada en secreto. Ahora Bob
49
Primero, Bob convierte en un número entero menor que mediante un protocolo
Esto puede hacerse rápido mediante el método de exponenciación binaria. Ahora Bob transmite
a Alicia.
Descifrado
siguiente cálculo:
Ahora que tiene en su poder, puede recuperar el mensaje original invirtiendo el padding
scheme.
La última congruencia se sigue directamente del teorema de Euler cuando es coprimo con .
Puede demostrarse que las ecuaciones se cumplen para todo usando congruencias y el teorema
50
Seguridad
La seguridad del criptosistema RSA está basado en dos problemas matemáticos: el problema de
factorizar números grandes y el problema RSA. El descifrado completo de un texto cifrado con
ambos problemas. Proveyendo la seguridad contra el descifrado parcial podría requerir la adición
El problema del RSA se define como la tarea de tomar raíces e-ésimas módulo a componer n:
recuperando un valor m tal que me ≡ c (mod n), donde (e, n) es una clave pública RSA y c es el
La factorización de números grandes por lo general proponen métodos teniendo 663 bits de
longitud usando métodos distribuidos avanzados. Las claves RSA son normalmente de entre
1.22.2. MD5
criptográfico de 128 bits ampliamente usado. El código MD5 fue diseñado por Ronald Rivest.
El algoritmo MD5 es una función de cifrado tipo hash que acepta una cadena de texto como
entrada, y devuelve un número de 128 bits. Las ventajas de este tipo de algoritmos son la
Esto nos permite usar el algoritmo para transmitir contraseñas a través de un medio inseguro.
51
comprobar si el password es correcto, se cifra de la misma manera y se comparan las formas
cifradas.
ALGORITMO MD5
El mensaje es rellenado o ampliado para que su longitud en bits sea congruente a 448 módulo
512. Esto debe ser así puesto que hay que reservar 64 bits para la adición de la longitud del
relleno, consistente en un bit ‘1’ seguido de tantos bits ‘0’ como se precisen.
La razón de porqué un uno seguido de ceros se debe que si se emplea sólo relleno con un valor
(por ejemplo todo ceros) el proceso no sería reversible a la hora de eliminar dicho relleno.
del mensaje antes de ser rellenado. Dicha representación tendrá una longitud de 64 bits (16
palabras de 32 bits, es decir, dos enteros de 4 octetos cada uno). En el caso de que el mensaje sea
mayor de bits, sólo se tendrán en cuenta los 64 bits menos representativos, que es lo mismo que
decir que esta representación de la longitud del mensaje está realizada en módulo.
El mensaje tiene ahora un número de bits múltiplo de 512, por lo que habrá un número entero de
concluir que si hay b bloques de 512 bits cada uno que forman el mensaje, entonces el mensaje
52
3. Inicializar buffer MD:
Para poder calcular el valor hash o resumen se necesita tener un buffer de 4 palabras de 32 bits
(A, B, C, D), pero antes de comenzar con el proceso se los ha de inicializar con algún valor
Palabra A = 01 23 45 67 67 45 23 01
Palabra B = 89 ab cd ef ef cd ab 89
Palabra C = fe dc ba 98 98 ba dc fe
Palabra D = 76 54 32 10 10 32 54 76
En la primera columna los valores hexadecimales están ordenados de modo que los valores
La razón de ver estas formas de representar los mismos valores se debe a intentar evitar
confusiones, pues en función del tipo y arquitectura de la máquina sobre la que ha de trabajar el
debido a las distintas formas en que se almacenan los datos en memoria en las distintas
Esta es la parte central del algoritmo. Aquí se definen las cuatro funciones que se emplearán en
Estas cuatro funciones reciben como parámetros de entrada tres palabras de 32 bits cada una (tres
enteros de 4 bytes de longitud) y devuelven como salida una. Son las siguientes:
53
G(X, Y, Z) = (X and Z) or (Y and (not Z))
H(X, Y, Z) = X Y Z
Dónde:
será 1.
Por otro lado MD5 no utiliza las constantes (‘magic’ constants) que se empleaban en MD4. En su
lugar se emplea una tabla de 64 elementos construida a partir de la función trigonométrica seno.
Sea T el elemento i-ésimo de dicha tabla, que será igual a la parte entera de 4294967296 veces
abs (sen(i)), donde i está expresada en radianes. Puesto que hay que realizar 16 pasos en cada una
de las cuatro vueltas, es decir, 64 operaciones, la idea es usar una constante de la anterior tabla
El valor hash de salida se obtiene de los registros A, B, C y D donde el octeto más representativo
bits.
¿QUE ES UN HASH?
Una función hash es un algoritmo matemático que nos da un resultado B al aplicarlo a un valor
inicial A. Es como cualquier función matemática, por ejemplo la función raíz cuadrada nos daría
54
como resultado 2 si se la aplicamos al número 4. E igual que cualquier función matemática tiene
que actuar de tal forma y tiene que cumplir con ciertos criterios. No nos puede devolver cualquier
cosa, lo que nos devuelva requiere que tenga ciertas propiedades para que podamos usarlo.
1. Sea cual sea la longitud del texto base A, la longitud de su hash resultante B siempre va a
ser la misma. Por ejemplo, si la longitud de la salida B esta definida en 128 bits, si aplicamos una
2. Para cada entrada A, la función generará una salida B única. O lo que es lo mismo, es
Según estas dos primeras propiedades, nos damos cuenta enseguida de la utilidad de las funciones
de hash.
3. Dado un texto base, es fácil y rápido (para un ordenador) calcular su número resumen.
Esto es lo que se conoce como One-Way hash functions. A partir del hash es imposible
Este es un punto que muchos no tiene muy claro. Solo hay que leer bien, a partir del hash B es
imposible sacar el texto A, quiere decir no existe forma o es computacionalmente imposible, que
mediante operaciones matemáticas inversas o no a las del algoritmo de hash, se llegue desde B al
texto base.
55
Esto es muy distinto que usar fuerza bruta. No tiene nada que ver. Con fuerza bruta le aplicamos
la función de hash a diferentes textos hasta que obtenemos un hash similar al hash del texto que
APLICACIONES
Los resúmenes MD5 se utilizan extensamente en el mundo del software para proporcionar la
MD5 publicada con la suma de comprobación del archivo descargado, un usuario puede tener la
confianza suficiente de que el archivo es igual que el publicado por los desarrolladores. Esto
protege al usuario contra los 'Caballos de Troya' o 'Troyanos' y virus que algún otro usuario
archivos alterados de una manera maliciosa, también reconoce una descarga corrupta o
incompleta.
herramienta MD5 para comparar la suma MD5 de dicho archivo con un archivo MD5SUM con el
resumen MD5 del primer archivo. En los sistemas UNIX, el comando de md5sum es un ejemplo
de tal herramienta. Además, también está implementado en el lenguaje de scripting PHP como
En sistemas UNIX y GNU/Linux se utiliza el algoritmo MD5 para calcular el hash de las claves
de los usuarios.
En el disco se guarda el resultado del MD5 de la clave que se introduce al dar de alta un usuario,
y cuando éste quiere entrar en el sistema se compara el hash MD5 de la clave introducida con el
hash que hay guardado en el disco duro. Si coinciden, es la misma clave y el usuario será
56
autenticado. Los sistemas actuales GNU/Linux utilizan funciones de hash más seguras, como
El MD5 también se puede usar para comprobar que los correos electrónicos no han sido alterados
1.22.3 QR
Un código QR (quick response code, «código de respuesta rápida») es un módulo útil para
1994 por la compañía japonesa Denso Wave, subsidiaria de Toyota. Se caracteriza por los tres
cuadrados que se encuentran en las esquinas y que permiten detectar la posición del código al
lector. La sigla «QR» viene de la frase inglesa «Quick Response» («Respuesta Rápida» en
español), pues los creadores (un equipo de dos personas en Denso Wave, dirigido por Masahiro
Hara)3 tenían como objetivo que el código permitiera que su contenido se leyera a alta velocidad.
CARACTERISTICAS GENERALES
Aunque inicialmente se usó para registrar repuestos en el área de la fabricación de vehículos, hoy
los códigos QR se usan para administración de inventarios en una gran variedad de industrias. La
inclusión de software que lee códigos QR en teléfonos móviles, ha permitido nuevos usos
introducir datos de forma manual en los teléfonos. Las direcciones y los URL’s se están
volviendo cada vez más comunes en revistas y anuncios. El agregado de códigos QR en tarjetas
3
Historia de los códigos QR en la página oficial de Denso Wave.
57
de presentación también se está haciendo común, simplificando en gran medida la tarea de
Los códigos QR también pueden leerse desde PC, smartphone o tableta mediante dispositivos de
captura de imagen, como puede ser un escáner o la cámara de fotos, programas que lean los datos
Respecto a los datos que puede manejar, te interesará saber que pueden contener hasta 4.200
El estándar japonés para códigos QR (JIS X 0510) fue publicado en enero de 1998 y su
barras bidimensionales como el BIDI, su código es abierto y sus derechos de patente (propiedad
web (URL). Por ejemplo al blog, a la web o incluso a tu perfil en Facebook, Twitter, Linkld,
Youtube, una dirección de email, un mensaje del tipo SMS, un número de teléfono para realizar
una llamada, parámetros de acceso a una red Wifi, datos de un evento para un calendario (día y
hora de comienzo/fin, nombre del evento...), una Geolocalización para verla en un mapa.
[computerhoy.com, (2014, Junio 29). ¿Qué son los códigos QR y cómo funcionan? Consultado:
22 de Agosto de 2014]
58
PRECAUCIÓN CON LOS CÓDIGOS QR
referencia. Sin embargo, por esto mismo, también son peligrosos ya que su inmediatez puede ser
aprovechada para enviarnos a un sitio web infectado con virus o para la instalación de programas
maliciosos en el dispositivo.
[computerhoy.com, (2014, Junio 29). ¿Qué son los códigos QR y cómo funcionan? Consultado:
22 de Agosto de 2014]
59