SlideShare a Scribd company logo
1 of 11
Download to read offline
Tecnologías de la Información y Comunicación. Área Sistemas Informáticos




               Trabajo: “Investigación de mecanismos de seguridad”




                  Materia: Desarrollo de Aplicaciones III




                 Docente: Lic. Luis Octavio Alpizar Garrido




                               PRESENTA:




                           Abraham Gerardo Flores Guevara




                            Fecha de entrega: 17/03/2012
MECANISMOS DE SEGURIDAD EN EL DESARROLLO
                      DE APLICACIONES MÓVILES.

RSA        (Rivest, Shamir y Adleman) es un sistema criptográfico de clave pública
desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido
tanto para cifrar como para firmar digitalmente.

La seguridad de este algoritmo radica en el problema de la factorización de
números enteros. Los mensajes enviados se representan mediante números, y el
funcionamiento se basa en el producto, conocido, de dos números primos grandes
elegidos al azar y mantenidos en secreto. Actualmente estos primos son del orden
de       , y se prevé que su tamaño aumente con el aumento de la capacidad de
cálculo de los ordenadores.

Como en todo sistema de clave pública, cada usuario posee dos claves de cifrado:
una pública y otra privada. Cuando se quiere enviar un mensaje, el emisor busca la
clave pública del receptor, cifra su mensaje con esa clave, y una vez que el mensaje
cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada.

Se cree que RSA será seguro mientras no se conozcan formas rápidas de
descomponer un número grande en producto de primos. La computación cuántica
podría proveer de una solución a este problema de factorización.



El algoritmo consta de tres pasos: generación de claves, cifrado y descifrado.

Idea del algoritmo.

Supongamos que Bob quiere enviar a Alicia un mensaje secreto que solo ella
pueda leer.

Alicia envía a Bob una caja con una cerradura abierta, de la que solo Alicia tiene la
llave. Bob recibe la caja, escribe el mensaje, lo pone en la caja y la cierra con su
cerradura (ahora Bob no puede leer el mensaje). Bob envía la caja a Alicia y ella la
abre con su llave. En este ejemplo, la caja con la cerradura es la «clave pública» de
Alicia, y la llave de la cerradura es su «clave privada».
Técnicamente, Bob envía a Alicia un «mensaje llano»   en forma de un número
menor que otro número , mediante un protocolo reversible conocido como
padding scheme («patrón de relleno»). A continuación genera el «mensaje cifrado»
 mediante la siguiente operación:

                               ,

donde es la clave pública de Alicia.

Ahora Alicia descifra el mensaje en clave mediante la operación inversa dada por

                               ,

donde es la clave privada que solo Alicia conoce.

Generación de claves

   1. Cada usuario elige dos números primos distintos y .
          o Por motivos de seguridad, estos números deben escogerse de forma
             aleatoria y deben tener una longitud en bits parecida. Se pueden hallar
             primos fácilmente mediante test de primalidad.
   2. Se calcula         .
          o     se usa como el módulo para ambas claves, pública y privada.
   3. Se calcula                                , donde   es la función φ de Euler.
   4. Se escoge un entero positivo menor que         , que sea coprimo con      .
          o    se da a conocer como el exponente de la clave pública.
          o Si se escoge un con una suma encadenada corta, el cifrado será más
             efectivo. Un exponente muy pequeño (p. ej.            ) podría suponer un
                                      1
             riesgo para la seguridad.
   5. Se determina un (mediante aritmética modular) que satisfaga la congruencia
                                   , es decir, que   sea el multiplicador modular inverso de

          o   Expresado   de       otra   manera,          es   dividido   exactamente   por
                                          .
          o   Esto suele calcularse mediante el algoritmo de Euclides extendido.
          o     se guarda como el exponente de la clave privada.

La clave pública es         , esto es, el módulo y el exponente de cifrado. La clave
privada es       , esto es, el módulo y el exponente de descifrado, que debe
mantenerse en secreto.
Nota:

       PKCS#1 v2.0 y PKCS#1 v2.1 se especifican mediante la función de Carmichael
                                          en vez de la función de Euler, donde
        indica el mínimo común múltiplo.
       Para una mayor eficiencia los siguientes valores se calculan de antemano y se
        almacenan como parte de la clave privada:
            o     y : los primos para la generación de las claves,
           o                         y               ,
           o                     .

Cifrado

Alicia comunica su clave pública         a Bob y guarda la clave privada en secreto.
Ahora Bob desea enviar un mensaje        a Alicia.

Primero, Bob convierte     en un número entero   menor que mediante un
protocolo reversible acordado de antemano. Luego calcula el texto cifrado
mediante la operación

                             .

Esto puede hacerse rápido mediante el método de exponenciación binaria. Ahora
Bob transmite a Alicia.

Descifrado

Alicia puede recuperar    a partir de    usando su exponente     de la clave privada
mediante el siguiente cálculo:

                             .

Ahora que tiene en su poder, puede recuperar el mensaje original          invirtiendo
el padding scheme.

El procedimiento anterior funciona porque

                                          .
Esto es así porque, como hemos elegido         y de forma que                    , se
cumple


                                                                .

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 chino del resto.

Esto muestra que se obtiene el mensaje original:

                              .


Ejemplo

Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los parámetros usados
aquí son pequeños y orientativos con respecto a los que maneja el algoritmo, pero
podemos usar también OpenSSL para generar y examinar un par de claves reales.

p=61        1º nº primo Privado

q=53        2º nº primo Privado

n=pq=3233 producto p*q

e=17        exponente Público

d=2753      exponente Privado


La clave pública (e, n). La clave privada es (d, n). La función de cifrado es:




Donde m es el texto sin cifrar. La función de descifrado es:




Donde c es el texto cifrado. Para cifrar el valor del texto sin cifrar 123, nosotros
calculamos:
Para descifrar el valor del texto cifrado, nosotros calculamos:




Ambos de estos cálculos pueden ser eficientemente usados por el algoritmo de
multiplicación cuadrática para exponenciación modular.




MD5           (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen
del Mensaje 5) es uno de los algoritmos de reducción criptográficos diseñados por
el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto
Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del
algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad.

La codificación del MD5 de 128 bits es representada típicamente como un número
de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con
MD5 y veremos su correspondiente hash de salida:

   MD5("Esto sí es una prueba de MD5") = 02306f485f385f6ed9ab6626052a633d

Un simple cambio en el mensaje nos da un cambio total en la codificación hash, en
este caso cambiamos dos letras, el «sí» por un «no».

   MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034

Otro ejemplo sería la codificación de un campo vacío:

   MD5("") = d41d8cd98f00b204e9800998ecf8427e

Algoritmo

En este documento "palabra" es una entidad de 4 bytes y un byte es una entidad
de 8 bits. Una secuencia de bytes puede ser interpretada de manera natural como
una secuencia de bits, donde cada grupo consecutivo de ocho bits se interpreta
como un byte con el bit más significativo al principio. Similarmente, una secuencia
de bytes puede ser interpretada como una secuencia de 32 bits (palabra), donde
cada grupo consecutivo de cuatro bytes se interpreta como una palabra en la que
el byte menos significativo está al principio.

   El símbolo "+" significa suma de palabras.
   X <<< s se interpreta por un desplazamiento             a   la   izquierda   's'
posiciones
   not(x) se entiende como el complemento de x




Feistel es un método de cifrado en bloque con una estructura particular.
Debe su nombre al criptógrafo de IBM Horst Feistel. También es conocida
comúnmente como Red de Feistel. Un gran número de algoritmos de cifrado por
bloques lo utilizan, siendo el más conocido el algoritmo Data Encryption Standard
(DES). Las redes de Feistel presentan la ventaja de ser reversibles por lo que las
operaciones de cifrado y descifrado son idénticas, requiriendo únicamente invertir
el orden de las subclaves utilizadas.

Este algoritmo se denomina simétrico por rondas, es decir, realiza siempre las
mismas operaciones un número determinado de veces (denominadas rondas). Los
pasos de la red de Feistel son entre algunos mas:

   1. Se selecciona una cadena, N, normalmente de 64 o 128 bits, y se la divide en
      dos subcadenas, L y R, de igual longitud (N/2)
   2. Se toma una función, F, y una clave Ki
   3. Se realizan una serie de operaciones complejas con F y Ki y con L o R (solo
      uno de ellas)
   4. La cadena obtenida se cambia por la cadena con la que no se han realizado
      operaciones, y se siguen haciendo las rondas.

Las operaciones básicas de una red de Feistel son las siguientes: se descompone el
texto plano en dos piezas iguales, ( ,    ). Para realizar el cifrado en cada ronda
                , se calcula




Donde es una función y            son cada una de las subclaves aplicadas a cada
iteración. El texto cifrado viene dado por la concatenación de y    .
Para el descifrado las operaciones que hay que realizar son:




Una ventaja de este modelo es que la función usada no tiene por qué ser
reversible, pudiendo ser todo lo complicada que se desee, esta cualidad permite a
los criptógrafos concentrarse en la seguridad de dicha función sabiendo que el
proceso de descifrado está garantizado ya que la propia estructura de la red de
Feistel es reversible. Para ello únicamente requiere que se invierta el orden de las
subclaves utilizadas.

Una variación del esquema de Feistel son las redes de Feistel no balanceadas en
las que las mitades del texto en plano L0 y R0 son de diferente longitud. Un
algoritmo de cifrado que utiliza esta variación es el algoritmo Skipjack.




KASUMI, también llamado A5/3, es una unidad de cifrado por bloques
utilizada en algoritmos de confidencialidad (f8) e integridad (f9) para Telefonía
móvil 3GPP. KASUMI fue diseñado por el grupo SAGE (Security Algorithms Group
of Experts en inglés), que forma parte del organismo de estándares europeos ETSI.
En lugar de inventar un cifrado desce cero, SAGE seleccionó un algoritmo existente
llamado MISTY1. Para su implementación en hardware, se le realizaron algunas
optimizaciones. De allí que MISTY1 y KASUMI sean muy similares, de manera que
los análisis disponibles sobre uno se adaptan fácilmente al otro (kasumi en japonés
es neblina, "misty" en inglés).

KASUMI tiene un tamaño de bloque de 64 bits y un tamaño de clave de 128 bits. Es
una unidad de cifrado por bloque de tipo Cifrado Feistel con ocho vueltas y, al
igual que MISTY1 y MISTY2, tiene una estructura recursiva, con subcomponentes
de tipo similar a Feistel.

En 2001, Kühn presentó un ataque diferencial imposible en seis vueltas de KASUMI.
MECANISMOS DE SEGURIDAD EN EL DESARROLLO
                      DE APLICACIONES WEB.

SHA-1            ha sido examinado muy de cerca por la comunidad criptográfica
pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año
2004, un número de ataques significativos fueron divulgados sobre funciones
criptográficas de hash con una estructura similar a SHA-1; lo que ha planteado
dudas sobre la seguridad a largo plazo de SHA-1.

SHA-0 y SHA-1 producen una salida resumen de 160 bits (20 bytes) de un mensaje
que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a
los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos
de resumen de mensaje MD4 y MD5.

La codificación hash vacía para SHA-1 corresponde a:

   SHA1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709




WHIRLPOOL                       es una función de hash diseñada por Vincent
Rijmen y Paulo S. L. M. Barreto. WHIRLPOOL fue desarrollado después del
algoritmo de cifrado por bloques Square. WHIRLPOOL es una construcción
Miyaguchi-Preneel basada en una modificación del Advanced Encryption Standard.
Dado un mensaje de un tamaño menor de 2256 bits, devuelve un hash de 512 bits.

Los autores han declarado que WHIRLPOOL no está patentado (ni lo estará). Puede
ser usado libremente para cualquier propósito y las implementaciones de
referencia son de dominio público.

El nombre del algoritmo es en referencia a la Galaxia Whirlpool en la constelación
Canes Venatici.

En lo siguientes ejemplos, versión original de WHIRLPOOL será llamada
WHIRLPOOL-0 y la primera revision WHIRLPOOL-1.
Los hashes de 512 bits (64 bytes) se representan como 128 caracteres
hexadecimales. En estos ejemplos se muestran entradas de 43 bytes ASCII y su
correpondiente hash de WHIRLPOOL:

WHIRLPOOL-0("The quick brown fox jumps over the lazy dog") =
4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C
3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D
WHIRLPOOL-1("The quick brown fox jumps over the lazy dog") =
3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183
AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1
WHIRLPOOL("The quick brown fox jumps over the lazy dog") =
B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F
D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35

Incluso un pequeño cambio hará que (con una probabilidad de 1-10-154) el
resultado de la función sea completamente distinto, por ejemplo, cambiando d por
c:

WHIRLPOOL-0("The quick brown fox jumps over the lazy cog") =
CB2CB5F1697A6D8C6609998965F97C243B53A29EB973AEC8D388E893C0E7DD9B
6CCA934FE67151300120D409C6F0982923B9D15AA5CA8356BDAF2F97F50351BC
WHIRLPOOL-1("The quick brown fox jumps over the lazy cog") =
64D675832795AED30DCD926DBA32F4E0ED95B067D1C563400C4B600721EA100F
5BC5EBFB9DAB55AA159CB5C52DFF57CF54443D031EF7F38268E0A059450BB9D1
WHIRLPOOL("The quick brown fox jumps over the lazy cog") =
DCE81FC695CFEA3D7E1446509238DAF89F24CC61896F2D265927DAA70F2108F8
902F0DFD68BE085D5ABB9FCD2E482C1DC24F2FABF81F40B73495CAD44D7360D3

El hash de la cadena vacía es:

WHIRLPOOL-0("") =
B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473
39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8
WHIRLPOOL-1("") =
470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F
EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A
WHIRLPOOL("") =
19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7
3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3




RIPEMD-160                       (RACE Integrity Primitives Evaluation Message
Digest, primitivas de integridad del resumen del mensaje) es un algoritmo del
resumen del mensaje de 160 bits (y función criptográfica de hash) desarrollado en
Europa por Hans Dobbertin, Antoon Bosselaers y Bart Preneel. Es una versión
mejorada de RIPEMD, que estaba basado sobre los principios del diseño del
algoritmo MD4, y es similar en seguridad y funcionamiento al más popular SHA-1.

También existen versiones de 128, 256 y 320 bits de este algoritmo, llamadas
RIPEMD-128, RIPEMD-256 y RIPEMD-320 respectivamente. La versión 128 bits
fue pensada solamente como un remplazo para el RIPEMD original, que eran
también de 128 bits, y en la que habían sido encontradas razones para cuestionar
su seguridad. Las versiones de 256 y 320 bits solamente disminuyen la posibilidad
de colisiones hash accidentales, y no tienen niveles más altos de seguridad con
respecto a RIPEMD-128 y RIPEMD-160.

RIPEMD-160 fue diseñado en la comunidad académica abierta, en contraste con el
algoritmo SHA-1, diseñado por la Agencia de Seguridad Nacional estadounidense
(NSA). Por otra parte, RIPEMD-160 es un diseño menos popular y
correspondientemente está peor estudiado.

Ninguna patente está asociada al RIPEMD-160.

En agosto del año 2004, una colisión hash fue divulgada para el algoritmo RIPEMD
original que no afecta al resto de algoritmos.

Los hashes de 160 bits RIPEMD (también llamados resúmenes RIPE del mensaje) se
representan típicamente como números en hexadecimal 40 dígitos. El resultado de
usar RIPEMD-160 con una cadena vacía es este:

   RIPEMD-160("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31

More Related Content

What's hot

Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadasalejandro
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaDaniel Pecos Martínez
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficosIsrra AguiMor
 
Cifrado elgamal
Cifrado elgamalCifrado elgamal
Cifrado elgamalG Hoyos A
 
Algoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadasAlgoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadasJohanna
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasDaniel Yánez
 
Métodos de encriptación en vpn s
Métodos de encriptación en vpn sMétodos de encriptación en vpn s
Métodos de encriptación en vpn sespe
 
Encriptacion
EncriptacionEncriptacion
Encriptacionmenamigue
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...Ángel Leonardo Torres
 
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...Ángel Leonardo Torres
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasJorge
 
Cifrado vpn
Cifrado vpnCifrado vpn
Cifrado vpnIng Jaab
 
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...Ángel Leonardo Torres
 
Criptografia II
Criptografia IICriptografia II
Criptografia IITensor
 

What's hot (19)

Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para Claves PúBlicas Y Privadas
 
Cifrado por RSA.
Cifrado por RSA.Cifrado por RSA.
Cifrado por RSA.
 
Tema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la CriptografíaTema 2 - Introducción a la Criptografía
Tema 2 - Introducción a la Criptografía
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficos
 
Cifrado elgamal
Cifrado elgamalCifrado elgamal
Cifrado elgamal
 
Algoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadasAlgoritmos de claves públicas y privadas
Algoritmos de claves públicas y privadas
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y Privadas
 
Rsa eddy montalvan
Rsa eddy montalvanRsa eddy montalvan
Rsa eddy montalvan
 
cifrado de claves
cifrado de clavescifrado de claves
cifrado de claves
 
Métodos de encriptación en vpn s
Métodos de encriptación en vpn sMétodos de encriptación en vpn s
Métodos de encriptación en vpn s
 
Rsa
RsaRsa
Rsa
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 3: Stallings William: Fundamentos de seguridad e...
 
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...
Preguntas de Repaso Capitulo 2: Stallings William (2004) Fundamentos de segur...
 
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y PrivadasAlgoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
Algoritmos De Cifrado Para El Encriptamiento De Claves PúBlicas Y Privadas
 
Cifrado vpn
Cifrado vpnCifrado vpn
Cifrado vpn
 
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...
Preguntas de Repaso Capitulo 4: Stallings William: Fundamentos de seguridad e...
 
Criptografia II
Criptografia IICriptografia II
Criptografia II
 

Similar to Mecanismos de seguridad en el desarrollo de aplicaciones

Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadaschristian
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNDavid Puga
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasDaniel Yánez
 
Metod de Encriptacion
Metod de EncriptacionMetod de Encriptacion
Metod de Encriptaciontehagounhueco
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNevelyn
 
Criptografia y encriptacion II
Criptografia y encriptacion IICriptografia y encriptacion II
Criptografia y encriptacion IITensor
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1IRIS
 
Caranqui Rodriguez Eduardo 1 C
Caranqui Rodriguez Eduardo 1 CCaranqui Rodriguez Eduardo 1 C
Caranqui Rodriguez Eduardo 1 CESPE
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAndy Arevalo
 
EncriptacióN Para El Cifrado De Claves PúBlicas Y Privadas
EncriptacióN Para El Cifrado De Claves PúBlicas Y PrivadasEncriptacióN Para El Cifrado De Claves PúBlicas Y Privadas
EncriptacióN Para El Cifrado De Claves PúBlicas Y PrivadasEvy
 
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y PrivadasMéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y PrivadasSebastian
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptaciondnisse
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2Meme delaTower
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióNRaque Pérez
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdfAndresTini
 
Unidad 5 - Criptografía
Unidad 5 - CriptografíaUnidad 5 - Criptografía
Unidad 5 - Criptografíavverdu
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesDiana Yánez
 

Similar to Mecanismos de seguridad en el desarrollo de aplicaciones (20)

Encriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves PrivadasEncriptacion De Claves Publicas Y Claves Privadas
Encriptacion De Claves Publicas Y Claves Privadas
 
Flores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 AFlores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 A
 
Diffie hellman
Diffie hellmanDiffie hellman
Diffie hellman
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Encriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y PrivadasEncriptacion De Claves Publicas Y Privadas
Encriptacion De Claves Publicas Y Privadas
 
Metod de Encriptacion
Metod de EncriptacionMetod de Encriptacion
Metod de Encriptacion
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Unidad 4 trabajo 6
Unidad 4 trabajo 6Unidad 4 trabajo 6
Unidad 4 trabajo 6
 
Criptografia y encriptacion II
Criptografia y encriptacion IICriptografia y encriptacion II
Criptografia y encriptacion II
 
Metodos De Encriptacion 1
Metodos De Encriptacion 1Metodos De Encriptacion 1
Metodos De Encriptacion 1
 
Caranqui Rodriguez Eduardo 1 C
Caranqui Rodriguez Eduardo 1 CCaranqui Rodriguez Eduardo 1 C
Caranqui Rodriguez Eduardo 1 C
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion Para
 
EncriptacióN Para El Cifrado De Claves PúBlicas Y Privadas
EncriptacióN Para El Cifrado De Claves PúBlicas Y PrivadasEncriptacióN Para El Cifrado De Claves PúBlicas Y Privadas
EncriptacióN Para El Cifrado De Claves PúBlicas Y Privadas
 
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y PrivadasMéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
MéTodos De EncriptacióN Para Cifrado De Claves PúBlicas Y Privadas
 
Algoritmos De Encriptacion
Algoritmos De EncriptacionAlgoritmos De Encriptacion
Algoritmos De Encriptacion
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
MéTodos De EncriptacióN
MéTodos De EncriptacióNMéTodos De EncriptacióN
MéTodos De EncriptacióN
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdf
 
Unidad 5 - Criptografía
Unidad 5 - CriptografíaUnidad 5 - Criptografía
Unidad 5 - Criptografía
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 

Recently uploaded

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleJonathanCovena1
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...JAVIER SOLIS NOYOLA
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfluisantoniocruzcorte1
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFAROJosé Luis Palma
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfCESARMALAGA4
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfDannyTola1
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfManuel Molina
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 

Recently uploaded (20)

SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Introducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo SostenibleIntroducción:Los objetivos de Desarrollo Sostenible
Introducción:Los objetivos de Desarrollo Sostenible
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
LA ECUACIÓN DEL NÚMERO PI EN LOS JUEGOS OLÍMPICOS DE PARÍS. Por JAVIER SOLIS ...
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdfÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
ÉTICA, NATURALEZA Y SOCIEDADES_3RO_3ER TRIMESTRE.pdf
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
PPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptxPPTX: La luz brilla en la oscuridad.pptx
PPTX: La luz brilla en la oscuridad.pptx
 
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARONARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
NARRACIONES SOBRE LA VIDA DEL GENERAL ELOY ALFARO
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdfBIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
BIOLOGIA_banco de preguntas_editorial icfes examen de estado .pdf
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
TEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdfTEST DE RAVEN es un test conocido para la personalidad.pdf
TEST DE RAVEN es un test conocido para la personalidad.pdf
 
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdfTarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
Tarea 5_ Foro _Selección de herramientas digitales_Manuel.pdf
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 

Mecanismos de seguridad en el desarrollo de aplicaciones

  • 1. Tecnologías de la Información y Comunicación. Área Sistemas Informáticos Trabajo: “Investigación de mecanismos de seguridad” Materia: Desarrollo de Aplicaciones III Docente: Lic. Luis Octavio Alpizar Garrido PRESENTA: Abraham Gerardo Flores Guevara Fecha de entrega: 17/03/2012
  • 2. MECANISMOS DE SEGURIDAD EN EL DESARROLLO DE APLICACIONES MÓVILES. RSA (Rivest, Shamir y Adleman) es un sistema criptográfico de clave pública desarrollado en 1977. Es el primer y más utilizado algoritmo de este tipo y es válido tanto para cifrar como para firmar digitalmente. La seguridad de este algoritmo radica en el problema de la factorización de números enteros. Los mensajes enviados se representan mediante números, y el funcionamiento se basa en el producto, conocido, de dos números primos grandes elegidos al azar y mantenidos en secreto. Actualmente estos primos son del orden de , y se prevé que su tamaño aumente con el aumento de la capacidad de cálculo de los ordenadores. Como en todo sistema de clave pública, cada usuario posee dos claves de cifrado: una pública y otra privada. Cuando se quiere enviar un mensaje, el emisor busca la clave pública del receptor, cifra su mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, este se ocupa de descifrarlo usando su clave privada. Se cree que RSA será seguro mientras no se conozcan formas rápidas de descomponer un número grande en producto de primos. La computación cuántica podría proveer de una solución a este problema de factorización. El algoritmo consta de tres pasos: generación de claves, cifrado y descifrado. Idea del algoritmo. Supongamos que Bob quiere enviar a Alicia un mensaje secreto que solo ella pueda leer. Alicia envía a Bob una caja con una cerradura abierta, de la que solo Alicia tiene la llave. Bob recibe la caja, escribe el mensaje, lo pone en la caja y la cierra con su cerradura (ahora Bob no puede leer el mensaje). Bob envía la caja a Alicia y ella la abre con su llave. En este ejemplo, la caja con la cerradura es la «clave pública» de Alicia, y la llave de la cerradura es su «clave privada».
  • 3. Técnicamente, Bob envía a Alicia un «mensaje llano» en forma de un número menor que otro número , mediante un protocolo reversible conocido como padding scheme («patrón de relleno»). A continuación genera el «mensaje cifrado» mediante la siguiente operación: , donde es la clave pública de Alicia. Ahora Alicia descifra el mensaje en clave mediante la operación inversa dada por , donde es la clave privada que solo Alicia conoce. Generación de claves 1. Cada usuario elige dos números primos distintos y . o Por motivos de seguridad, estos números deben escogerse de forma aleatoria y deben tener una longitud en bits parecida. Se pueden hallar primos fácilmente mediante test de primalidad. 2. Se calcula . o se usa como el módulo para ambas claves, pública y privada. 3. Se calcula , donde es la función φ de Euler. 4. Se escoge un entero positivo menor que , que sea coprimo con . o se da a conocer como el exponente de la clave pública. o Si se escoge un con una suma encadenada corta, el cifrado será más efectivo. Un exponente muy pequeño (p. ej. ) podría suponer un 1 riesgo para la seguridad. 5. Se determina un (mediante aritmética modular) que satisfaga la congruencia , es decir, que sea el multiplicador modular inverso de o Expresado de otra manera, es dividido exactamente por . o Esto suele calcularse mediante el algoritmo de Euclides extendido. o se guarda como el exponente de la clave privada. La clave pública es , esto es, el módulo y el exponente de cifrado. La clave privada es , esto es, el módulo y el exponente de descifrado, que debe mantenerse en secreto.
  • 4. Nota:  PKCS#1 v2.0 y PKCS#1 v2.1 se especifican mediante la función de Carmichael en vez de la función de Euler, donde indica el mínimo común múltiplo.  Para una mayor eficiencia los siguientes valores se calculan de antemano y se almacenan como parte de la clave privada: o y : los primos para la generación de las claves, o y , o . Cifrado Alicia comunica su clave pública a Bob y guarda la clave privada en secreto. Ahora Bob desea enviar un mensaje a Alicia. Primero, Bob convierte en un número entero menor que mediante un protocolo reversible acordado de antemano. Luego calcula el texto cifrado mediante la operación . Esto puede hacerse rápido mediante el método de exponenciación binaria. Ahora Bob transmite a Alicia. Descifrado Alicia puede recuperar a partir de usando su exponente de la clave privada mediante el siguiente cálculo: . Ahora que tiene en su poder, puede recuperar el mensaje original invirtiendo el padding scheme. El procedimiento anterior funciona porque .
  • 5. Esto es así porque, como hemos elegido y de forma que , se cumple . 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 chino del resto. Esto muestra que se obtiene el mensaje original: . Ejemplo Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los parámetros usados aquí son pequeños y orientativos con respecto a los que maneja el algoritmo, pero podemos usar también OpenSSL para generar y examinar un par de claves reales. p=61 1º nº primo Privado q=53 2º nº primo Privado n=pq=3233 producto p*q e=17 exponente Público d=2753 exponente Privado La clave pública (e, n). La clave privada es (d, n). La función de cifrado es: Donde m es el texto sin cifrar. La función de descifrado es: Donde c es el texto cifrado. Para cifrar el valor del texto sin cifrar 123, nosotros calculamos:
  • 6. Para descifrar el valor del texto cifrado, nosotros calculamos: Ambos de estos cálculos pueden ser eficientemente usados por el algoritmo de multiplicación cuadrática para exponenciación modular. MD5 (abreviatura de Message-Digest Algorithm 5, Algoritmo de Resumen del Mensaje 5) es uno de los algoritmos de reducción criptográficos diseñados por el profesor Ronald Rivest del MIT (Massachusetts Institute of Technology, Instituto Tecnológico de Massachusetts). Fue desarrollado en 1991 como reemplazo del algoritmo MD4 después de que Hans Dobbertin descubriese su debilidad. La codificación del MD5 de 128 bits es representada típicamente como un número de 32 dígitos hexadecimal. El siguiente código de 28 bytes ASCII será tratado con MD5 y veremos su correspondiente hash de salida: MD5("Esto sí es una prueba de MD5") = 02306f485f385f6ed9ab6626052a633d Un simple cambio en el mensaje nos da un cambio total en la codificación hash, en este caso cambiamos dos letras, el «sí» por un «no». MD5("Esto no es una prueba de MD5") = dd21d99a468f3bb52a136ef5beef5034 Otro ejemplo sería la codificación de un campo vacío: MD5("") = d41d8cd98f00b204e9800998ecf8427e Algoritmo En este documento "palabra" es una entidad de 4 bytes y un byte es una entidad de 8 bits. Una secuencia de bytes puede ser interpretada de manera natural como una secuencia de bits, donde cada grupo consecutivo de ocho bits se interpreta como un byte con el bit más significativo al principio. Similarmente, una secuencia de bytes puede ser interpretada como una secuencia de 32 bits (palabra), donde
  • 7. cada grupo consecutivo de cuatro bytes se interpreta como una palabra en la que el byte menos significativo está al principio. El símbolo "+" significa suma de palabras. X <<< s se interpreta por un desplazamiento a la izquierda 's' posiciones not(x) se entiende como el complemento de x Feistel es un método de cifrado en bloque con una estructura particular. Debe su nombre al criptógrafo de IBM Horst Feistel. También es conocida comúnmente como Red de Feistel. Un gran número de algoritmos de cifrado por bloques lo utilizan, siendo el más conocido el algoritmo Data Encryption Standard (DES). Las redes de Feistel presentan la ventaja de ser reversibles por lo que las operaciones de cifrado y descifrado son idénticas, requiriendo únicamente invertir el orden de las subclaves utilizadas. Este algoritmo se denomina simétrico por rondas, es decir, realiza siempre las mismas operaciones un número determinado de veces (denominadas rondas). Los pasos de la red de Feistel son entre algunos mas: 1. Se selecciona una cadena, N, normalmente de 64 o 128 bits, y se la divide en dos subcadenas, L y R, de igual longitud (N/2) 2. Se toma una función, F, y una clave Ki 3. Se realizan una serie de operaciones complejas con F y Ki y con L o R (solo uno de ellas) 4. La cadena obtenida se cambia por la cadena con la que no se han realizado operaciones, y se siguen haciendo las rondas. Las operaciones básicas de una red de Feistel son las siguientes: se descompone el texto plano en dos piezas iguales, ( , ). Para realizar el cifrado en cada ronda , se calcula Donde es una función y son cada una de las subclaves aplicadas a cada iteración. El texto cifrado viene dado por la concatenación de y .
  • 8. Para el descifrado las operaciones que hay que realizar son: Una ventaja de este modelo es que la función usada no tiene por qué ser reversible, pudiendo ser todo lo complicada que se desee, esta cualidad permite a los criptógrafos concentrarse en la seguridad de dicha función sabiendo que el proceso de descifrado está garantizado ya que la propia estructura de la red de Feistel es reversible. Para ello únicamente requiere que se invierta el orden de las subclaves utilizadas. Una variación del esquema de Feistel son las redes de Feistel no balanceadas en las que las mitades del texto en plano L0 y R0 son de diferente longitud. Un algoritmo de cifrado que utiliza esta variación es el algoritmo Skipjack. KASUMI, también llamado A5/3, es una unidad de cifrado por bloques utilizada en algoritmos de confidencialidad (f8) e integridad (f9) para Telefonía móvil 3GPP. KASUMI fue diseñado por el grupo SAGE (Security Algorithms Group of Experts en inglés), que forma parte del organismo de estándares europeos ETSI. En lugar de inventar un cifrado desce cero, SAGE seleccionó un algoritmo existente llamado MISTY1. Para su implementación en hardware, se le realizaron algunas optimizaciones. De allí que MISTY1 y KASUMI sean muy similares, de manera que los análisis disponibles sobre uno se adaptan fácilmente al otro (kasumi en japonés es neblina, "misty" en inglés). KASUMI tiene un tamaño de bloque de 64 bits y un tamaño de clave de 128 bits. Es una unidad de cifrado por bloque de tipo Cifrado Feistel con ocho vueltas y, al igual que MISTY1 y MISTY2, tiene una estructura recursiva, con subcomponentes de tipo similar a Feistel. En 2001, Kühn presentó un ataque diferencial imposible en seis vueltas de KASUMI.
  • 9. MECANISMOS DE SEGURIDAD EN EL DESARROLLO DE APLICACIONES WEB. SHA-1 ha sido examinado muy de cerca por la comunidad criptográfica pública, y no se ha encontrado ningún ataque efectivo. No obstante, en el año 2004, un número de ataques significativos fueron divulgados sobre funciones criptográficas de hash con una estructura similar a SHA-1; lo que ha planteado dudas sobre la seguridad a largo plazo de SHA-1. SHA-0 y SHA-1 producen una salida resumen de 160 bits (20 bytes) de un mensaje que puede tener un tamaño máximo de 264 bits, y se basa en principios similares a los usados por el profesor Ronald L. Rivest del MIT en el diseño de los algoritmos de resumen de mensaje MD4 y MD5. La codificación hash vacía para SHA-1 corresponde a: SHA1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709 WHIRLPOOL es una función de hash diseñada por Vincent Rijmen y Paulo S. L. M. Barreto. WHIRLPOOL fue desarrollado después del algoritmo de cifrado por bloques Square. WHIRLPOOL es una construcción Miyaguchi-Preneel basada en una modificación del Advanced Encryption Standard. Dado un mensaje de un tamaño menor de 2256 bits, devuelve un hash de 512 bits. Los autores han declarado que WHIRLPOOL no está patentado (ni lo estará). Puede ser usado libremente para cualquier propósito y las implementaciones de referencia son de dominio público. El nombre del algoritmo es en referencia a la Galaxia Whirlpool en la constelación Canes Venatici. En lo siguientes ejemplos, versión original de WHIRLPOOL será llamada WHIRLPOOL-0 y la primera revision WHIRLPOOL-1.
  • 10. Los hashes de 512 bits (64 bytes) se representan como 128 caracteres hexadecimales. En estos ejemplos se muestran entradas de 43 bytes ASCII y su correpondiente hash de WHIRLPOOL: WHIRLPOOL-0("The quick brown fox jumps over the lazy dog") = 4F8F5CB531E3D49A61CF417CD133792CCFA501FD8DA53EE368FED20E5FE0248C 3A0B64F98A6533CEE1DA614C3A8DDEC791FF05FEE6D971D57C1348320F4EB42D WHIRLPOOL-1("The quick brown fox jumps over the lazy dog") = 3CCF8252D8BBB258460D9AA999C06EE38E67CB546CFFCF48E91F700F6FC7C183 AC8CC3D3096DD30A35B01F4620A1E3A20D79CD5168544D9E1B7CDF49970E87F1 WHIRLPOOL("The quick brown fox jumps over the lazy dog") = B97DE512E91E3828B40D2B0FDCE9CEB3C4A71F9BEA8D88E75C4FA854DF36725F D2B52EB6544EDCACD6F8BEDDFEA403CB55AE31F03AD62A5EF54E42EE82C3FB35 Incluso un pequeño cambio hará que (con una probabilidad de 1-10-154) el resultado de la función sea completamente distinto, por ejemplo, cambiando d por c: WHIRLPOOL-0("The quick brown fox jumps over the lazy cog") = CB2CB5F1697A6D8C6609998965F97C243B53A29EB973AEC8D388E893C0E7DD9B 6CCA934FE67151300120D409C6F0982923B9D15AA5CA8356BDAF2F97F50351BC WHIRLPOOL-1("The quick brown fox jumps over the lazy cog") = 64D675832795AED30DCD926DBA32F4E0ED95B067D1C563400C4B600721EA100F 5BC5EBFB9DAB55AA159CB5C52DFF57CF54443D031EF7F38268E0A059450BB9D1 WHIRLPOOL("The quick brown fox jumps over the lazy cog") = DCE81FC695CFEA3D7E1446509238DAF89F24CC61896F2D265927DAA70F2108F8 902F0DFD68BE085D5ABB9FCD2E482C1DC24F2FABF81F40B73495CAD44D7360D3 El hash de la cadena vacía es: WHIRLPOOL-0("") = B3E1AB6EAF640A34F784593F2074416ACCD3B8E62C620175FCA0997B1BA23473 39AA0D79E754C308209EA36811DFA40C1C32F1A2B9004725D987D3635165D3C8 WHIRLPOOL-1("") = 470F0409ABAA446E49667D4EBE12A14387CEDBD10DD17B8243CAD550A089DC0F EEA7AA40F6C2AAAB71C6EBD076E43C7CFCA0AD32567897DCB5969861049A0F5A WHIRLPOOL("") = 19FA61D75522A4669B44E39C1D2E1726C530232130D407F89AFEE0964997F7A7 3E83BE698B288FEBCF88E3E03C4F0757EA8964E59B63D93708B138CC42A66EB3 RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest, primitivas de integridad del resumen del mensaje) es un algoritmo del resumen del mensaje de 160 bits (y función criptográfica de hash) desarrollado en Europa por Hans Dobbertin, Antoon Bosselaers y Bart Preneel. Es una versión
  • 11. mejorada de RIPEMD, que estaba basado sobre los principios del diseño del algoritmo MD4, y es similar en seguridad y funcionamiento al más popular SHA-1. También existen versiones de 128, 256 y 320 bits de este algoritmo, llamadas RIPEMD-128, RIPEMD-256 y RIPEMD-320 respectivamente. La versión 128 bits fue pensada solamente como un remplazo para el RIPEMD original, que eran también de 128 bits, y en la que habían sido encontradas razones para cuestionar su seguridad. Las versiones de 256 y 320 bits solamente disminuyen la posibilidad de colisiones hash accidentales, y no tienen niveles más altos de seguridad con respecto a RIPEMD-128 y RIPEMD-160. RIPEMD-160 fue diseñado en la comunidad académica abierta, en contraste con el algoritmo SHA-1, diseñado por la Agencia de Seguridad Nacional estadounidense (NSA). Por otra parte, RIPEMD-160 es un diseño menos popular y correspondientemente está peor estudiado. Ninguna patente está asociada al RIPEMD-160. En agosto del año 2004, una colisión hash fue divulgada para el algoritmo RIPEMD original que no afecta al resto de algoritmos. Los hashes de 160 bits RIPEMD (también llamados resúmenes RIPE del mensaje) se representan típicamente como números en hexadecimal 40 dígitos. El resultado de usar RIPEMD-160 con una cadena vacía es este: RIPEMD-160("") = 9c1185a5c5e9fc54612808977ee8f548b2258d31