SlideShare una empresa de Scribd logo
1 de 9
ESCUELA POLITECNICA DEL EJERCITO

Nombre: David Sulca
Curso: 1ª Comercial
Fecha: 2009-11-10

1._ Metodos de encriptación.
Clave publica._

Modelo EncryptionString._
EncryptionString, es un clásico sistema el cual toma el mensaje y una clave del usuario, y a través de una
combinación de estos dos parámetros se produce una cadena codificada. Mantengo la explicación original
del método:

Texto a codificar:                       ENCRYPTION
Caracteres del Texto:                    E   N   C         R      Y      P      T      I      O     N
Códigos ASCII:                           69 78 67          82     89     80     84     73     79    78
Contraseña KEY:                          K   E   Y         K      E      Y      K      E      Y     K
Caracteres de KEY:                       75 69 89          75     69     89     75     69     89    75
Suma de Códigos ASCII:                   144 147 156       157    158    169    159    142    168   153
En caracteres:                           ミ “ œ   ン ?          ©      Ÿ      ?      ¨      ™

Texto codificado:                        1“œ?©Ÿ?¨™

El modo para usar la función EncryptionString es el siguiente:

'//Codifica
TextoCodificado = EncryptString(TextoOriginal, Contraseña, ENCRYPT)

'//Decodifica
TextoOriginal = EncryptString(TextoCodificado, Contraseña, DECRYPT)

La ventaja de esta técnica es que es muy flexible de usar e intuitiva. Sin tener la máxima seguridad, es
muy segura. Escribir un programa para encriptar archivos resulta bastante simple por aquello de la
contraseña. No ocurre lo mismo con el siguiente procedimiento: ChrTran.

El código de EncryptionString es el siguiente:

DefInt A-Z
Option Explicit

'//For Action parameter in EncryptString
Public Const ENCRYPT = 1, DECRYPT = 2

'---------------------------------------------------------------------
' EncryptString
' Modificado por Harvey T.
'---------------------------------------------------------------------
Public Function EncryptString( _
    UserKey As String, Text As String, Action As Single _
    ) As String
    Dim UserKeyX As String
    Dim Temp     As Integer
    Dim Times    As Integer
    Dim i        As Integer
    Dim j        As Integer
Dim n              As Integer
      Dim rtn            As String

      '//Get UserKey characters
      n = Len(UserKey)
      ReDim UserKeyASCIIS(1 To n)
      For i = 1 To n
           UserKeyASCIIS(i) = Asc(Mid$(UserKey, i, 1))
      Next

      '//Get Text characters
      ReDim TextASCIIS(Len(Text)) As Integer
      For i = 1 To Len(Text)
           TextASCIIS(i) = Asc(Mid$(Text, i, 1))
      Next

      '//Encryption/Decryption
      If Action = ENCRYPT Then
         For i = 1 To Len(Text)
              j = IIf(j + 1 >= n, 1,               j + 1)
              Temp = TextASCIIS(i) +               UserKeyASCIIS(j)
              If Temp > 255 Then
                 Temp = Temp - 255
              End If
              rtn = rtn + Chr$(Temp)
         Next
      ElseIf Action = DECRYPT Then
         For i = 1 To Len(Text)
              j = IIf(j + 1 >= n, 1,               j + 1)
              Temp = TextASCIIS(i) -               UserKeyASCIIS(j)
              If Temp < 0 Then
                 Temp = Temp + 255
              End If
              rtn = rtn + Chr$(Temp)
         Next
      End If

    '//Return
    EncryptString = rtn
End Function




Modelo ChrTran._
ChrTran es violentamente complicado de violar, de hecho imposible. Virtualmente las probabilidades de
descifrar un mensaje son del orden de 255! (255 factorial), un numero sin fin en la práctica (por ejemplo
las calculadoras comunes soportan solo hasta 69!).

Tengo que confesar que tuve que reescribir ChrTran porque presentaba errores de programación y mucho
código para optimizar, el resultado es sorprendente. Ni que decir que no tenía en cuenta que en español
usamos tildes y eñes.

Como su abreviación lo dice ChrTran transpone caracteres, usa dos claves de 255 caracteres (la carta
ASCII) y produce un texto codificado de origen aleatorio. Toma cada carácter del texto, encuentra su
posición en la primera clave, e intercambia este carácter por el carácter en la misma posición de la
segunda clave. Es complicado de asimilar.
Lo más difícil de ChrTran es el manejo de las claves. La primera clave (la sarta de búsqueda) podría ser
publica (mejor debiera decir debe ser publica). Mientras que la segunda clave es una sarta aleatoria de la
carta ASCII.

El modo de manejar ChrTran es el siguiente:

ClaveAleatoria = RandomChart()

'//   Se podría usar la sarta de búsqueda, ClaveDeBúsqueda, como
'//   otra cadena aleatoria con ClaveDeBúsqueda = RandomChart()
'//   aqui se mantiene un nivel de Encriptación flexible, más no
'//   inseguro, al hacer ClaveDeBúsqueda como la secuencia 0 a 255
'//   de la carta ASCII:
For   i = 0 To 255
      ClaveDeBúsqueda = ClaveDeBúsqueda + Chr$(i)
Next

'//Codifica
TextoCodificado = ChrTran(TextoOriginal, ClaveDeBúsqueda,
ClaveAleatoria)

'//Decodifica
TextoOriginal= ChrTran(TextoCodificado, ClaveAleatoria,
ClaveDeBúsqueda)

En la primera línea se usa RandonChart, la cual es una función que retorna la carta ASCII en un orden
aleatorio.

Como posiblemente se deduce, usar ChrTran para escribir un programa que trabaje encriptación,
representa una labor bastante especializada, pero por supuesto nada del otro mundo.

El código de ChrTran es el siguiente:

DefInt A-Z
Option Explicit

'//---------------------------------------------
'// Return a random string of ASCII Chart.
'// Used by ChrTran. By Harvey T.
'//---------------------------------------------
Public Function RandomChart() As String
    Dim Char    As String
    Dim RndStr As String
    Dim n       As Integer

      Randomize Timer
      Do
         Char = Chr$(Int(Rnd * 256))
         If InStr(RndStr, Char) = 0 Then
            n = n + 1
            RndStr = RndStr + Char
         End If
      Loop Until n = 256

    RandomChart = RndStr
End Function

'---------------------------------------------------------------------
' ChrTran
' Optimizing by Harvey T.
'---------------------------------------------------------------------
Public Function ChrTran(Text As String, SStr As String, EStr As
String) As String
    Dim i   As Integer
    Dim rtn As String

    For i = 1 To Len(Text)
         rtn = rtn + Mid$(EStr, InStr(SStr, Mid$(Text, i, 1)), 1)
    Next
    ChrTran = rtn
End Function



Diffie-Hellman._

El protocolo Diffie-Hellman[1] (debido a Whitfield Diffie y Martin Hellman) permite el
intercambio secreto de claves entre dos partes que no han tenido contacto previo,
utilizando un canal inseguro, y de manera anónima (no autenticada).

Se emplea generalmente como medio para acordar claves simétricas que serán
empleadas para el cifrado de una sesión.

Siendo no autenticado, sin embargo provee las bases para varios protocolos
autenticados.

Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular
logaritmos discretos en un campo finito.

Versión básica




Diffie-Hellman

Para dos partes A y B que intentan establecer una clave secreta y un adversario E, la
versión básica es como sigue:

   •   Se establecen un primo p y un generador           ([2] ). Estos son públicos,
       conocidos no sólo por las partes A y B sino también por el adversario E.
   •   A escoge              al azar, calcula X = gxmod p, y envía X a B
•    B escoge              al azar, calcula Y = gymod p, y envía Y a A

Nótese que Xy = (gx)y = gxy = (gy)x = Yx, con todas las operaciones en el grupo .
Llamemos K a esta cantidad común: el hecho destacable es que ambas partes pueden
calcularla, y por lo tanto obtener una clave compartida.

Un adversario E que poseyera p, g, X e Y, podría calcular el secreto compartido si
tuviera también uno de los valores privados (x o y) o lograse invertir la función. Pero
calcular x dado X es el problema del logaritmo discreto en      , un problema que se cree
intratable computacionalmente. El mismo protocolo, y otros basados en este, pueden
llevarse a cabo en cualquier grupo en que a la vez la exponenciación sea simple y el
logaritmo discreto difícil, como el grupo multiplicativo análogo de los campos de
Galois      o el grupo de puntos definidos por una curva elíptica sobre un campo finito.

Sin embargo, el protocolo es sensible a ataques activos del tipo "hombre en el medio"
(mitm, man-in-the-middle). Si la comunicación es interceptada por un tercero, éste se
puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de
ningún mecanismo para validar la identidad de los participantes en la comunicación.
Así, el "hombre en el medio" podría acordar una clave con cada participante y
retransmitir los datos entre ellos, escuchando la conversación en ambos sentidos.

Ejemplo del protocolo

                                                            1. A y B acuerdan usar el
                                           B                   número primo p=23 y la
             A                                                 base g=5.
                                 Calc              Sec      2. A elige un número secreto
Sec                  Calc
                                                               a=6, luego envía a B (ga
                                           p, g                mod p)
          p, g
                                                                   o 56 mod 23 = 8.
                                                    b
 a                                                          3. B elige un número secreto
                                           …                   b=15, luego envía a A (gb
                    ga                                         mod p)
                   mod p          gb                               o 515 mod 23 = 19.
                                 mod                        4. A calcula (gb mod p)a mod
           …
                                  p                            p
         (gb mod                                                   o 196 mod 23 = 2.
                                         (ga mod            5. B calcula (ga mod p)b mod
         p)a mod
                                         p)b mod               p
             p
                                             p
                            =                                       o   815 mod 23 = 2.

Valores mucho más grandes de a,b y p se necesitarían para hacer este ejemplo seguro.
Dado que es muy sencillo probar todos los valores posibles de gab mod 23 (habrá, como
máximo, 22 valores, inclusive si a y b son números grandes). Si p fuera un primo de
más de 300 dígitos, y a y b fueran por lo menos de 100 dígitos, entonces hasta el mejor
algoritmo para encontrar a dado g, p, y ga mod p tomaría más tiempo que la vida del
universo para resolverse. g no necesita ser grande, y en la práctica es usualmente 2 o 5.
Clave privada._

Triple DES._

En criptografía el Triple DES se llama al algoritmo que hace triple cifrado del DES.
También es conocido como TDES o 3DES, fue desarrollado por IBM en 1978.

Algoritmo




No llega a ser un cifrado múltiple, porque no son independientes todas las subclases.
Este hecho se basa en que DES tiene la característica matemática de no ser un grupo, lo
que implica que si se cifra el mismo bloque dos veces con dos claves diferentes se
aumenta el tamaño efectivo de la clave.

La variante más simple del Triple DES funciona de la siguiente manera:




Donde M es el mensaje a cifrar y k1, k2 y k3 las respectivas claves DES. En la variante
3TDES las tres claves son diferentes; en la variante 2TDES, la primera y tercera clave
son iguales.

Seguridad

Cuando se descubrió que una clave de 56 bits no era suficiente para evitar un ataque de
fuerza bruta, TDES fue elegido como forma de agrandar el largo de la clave sin
necesidad de cambiar de algoritmo de cifrado. Este método de cifrado es inmune al
ataque por encuentro a medio camino, doblando la longitud efectiva de la clave (112
bits), pero en cambio es preciso triplicar el número de operaciones de cifrado, haciendo
este método de cifrado muchísimo más seguro que el DES. Por tanto, la longitud de la
clave usada será de 192 bits, aunque como se ha dicho su eficacia solo sea de 112 bits.
Blowfish._

En criptografía, Blowfish es un codificador de bloques simétricos, diseñado por Bruce
Schneier en 1993 e incluido en un gran número de conjuntos de codificadores y
productos de cifrado. Mientras que ningún analizador de cifrados de Blowfish efectivo
ha sido encontrado hoy en día, se ha dado más atención de la decodificación de bloques
con bloques más grandes, como AES y Twofish.

Schneier diseñó Blowfish como un algoritmo de uso general, que intentaba reemplazar
al antiguo DES y evitar los problemas asociados con otros algoritmos. Al mismo
tiempo, muchos otros diseños eran propiedad privada, patentados o los guardaba el
gobierno. Schneier declaró “Blowfish no tiene patente, y así se quedará en los demás
continentes. El algoritmo está a disposición del público, y puede ser usado libremente
por cualquiera”.

El Algoritmo




Diagrama de Blowfish

Blowfish usa bloques de 64 bits y claves que van desde los 32 bits hasta 448 bits. Es un
codificador de 16 rondas Feistel y usa llaves que dependen de las Cajas-S. Tiene una
estructura similar a CAST-128, el cual usa Cajas-S fijas.

El diagrama muestra la acción de Blowfish. Cada línea representa 32 bits. El algoritmo
guarda 2 arrays de subclaves: El array P de 18 entradas y 4 cajas-S de 256 entradas. Una
entrada del array P es usada cada ronda, después de la ronda final, a cada mitad del
bloque de datos se le aplica un XOR con uno de las 2 entradas del array P que no han
sido utilizadas.
La función divide las entrada de 32 bits en 4 bloques de 8 bits, y usa los bloques como
entradas para las cajas-S. Las salidas deben estar en módulo 232 y se les aplica un XOR
para producir la salida final de 32 bits.




Diagrama de la función F de Blowfish

Debido a que Blowfish está en la red Feistel, puede ser invertido aplicando un XOR
entre P17 y P18 al bloque texto codificado, y así sucesivamente se usan las P-entradas en
orden reversivo.

La generación de claves comienza inicializando los P-arrays y las cajas-S con los
valores derivados de los dígitos hexadecimales de pi, los cuales no contienen patrones
obvios. A la clave secreta se le aplica un XOR con las P-entradas en orden (ciclando la
clave si es necesario). Un bloque de 64 bits de puros ceros es cifrado con el algoritmo
como se indica. El texto codificado resultante reemplaza a P1 y P2. Entonces el texto
codificado es cifrado de nuevo con la nuevas subclaves, P3 y P4 son reemplazados por el
nuevo texto codificado. Esto continúa, reemplazando todas las entradas del P-array y
todas las entradas de las cajas-S. En total, el algoritmo de cifrado Blowfish correrá 521
veces para generar todas las subclaves, cerca de 4KB de datos son procesados.

International Data Encryption Algorithm._

En criptografía, International Data Encryption Algorithm o IDEA (del inglés,
Algoritmo Internacional de Cifrado de Datos) es un cifrador por bloques diseñado por
Xuejia Lai (?) y James L. Massey de la Escuela Politécnica Federal de Zúrich y descrito
por primera vez en 1991. Fue un algoritmo propuesto como reemplazo del DES (Data
Encryption Standard) . IDEA fue una revisión menor de PES (Proposed Encryption
Standard, del inglés Estándar de Cifrado Propuesto), un algoritmo de cifrado anterior.
Originalmente IDEA había sido llamado IPES (Improved PES, del inglés PES
Mejorado). IDEA fue diseñado en contrato con la Fundación Hasler, la cual se hizo
parte de Ascom-Tech AG. IDEA es libre para uso no comercial, aunque fue patentado y
sus patentes se vencerán en 2010 y 2011. El nombre "IDEA" es una marca registrada y
está licenciado mundialmente por MediaCrypt.

IDEA fue utilizado como el cifrador simétrico en las primeras versiones de PGP (PGP
v2.0) y se lo incorporó luego de que el cifrador original usado en la v1.0 ("Bass-O-
Matic") se demostró insegura. Es un algoritmo óptimo en OpenPGP.
Funcionamiento

IDEA opera con bloques de 64 bits usando una clave de 128 bits y consiste de ocho
transformaciones idénticas (cada una llamada un ronda) y una transformación de salida
(llamada media ronda). El proceso para cifrar y descifrar es similar. Gran parte de la
seguridad de IDEA deriva del intercalado de operaciones de distintos grupos — adición
y multiplicación modular y O-exclusivo (XOR) bit a bit — que son algebraicamente
"incompatibles" en cierta forma.

IDEA utiliza tres operaciones en su proceso con las cuales logra la confusión, se
realizan con grupos de 16 bits y son:

   •   Operación O-exclusiva (XOR) bit a bit (indicada con un ⊕ azul)
   •   Suma módulo 216 (indicada con un verde)
   •   Multiplicación módulo 216+1, donde la palabra nula (0x0000) se interpreta como
       216 (indicada con un rojo)

(216 = 65536; 216+1 = 65537, que es primo)

Después de realizar 8 rondas completas se realiza la mitad, obteniendo el resultado en
este paso de la ronda:

Este algoritmo presenta, a primera vista, diferencias notables con el DES, que lo hacen
más atractivo:

   •   El espacio de claves es mucho más grande: 2128 ≈ 3.4 x 1038
   •   Todas las operaciones son algebraicas
   •   No hay operaciones a nivel bit, facilitando su programación en alto nivel
   •   Es más eficiente que los algoritmos de tipo Feistel, porque a cada vuelta se
       modifican todos los bits de bloque y no solamente la mitad.
   •   Se pueden utilizar todos los modos de operación definidos para el DES

Seguridad

En primer lugar, el ataque por fuerza bruta resulta impracticable, ya que sería necesario
probar 1038 claves, cantidad imposible de manejar con los medios informáticos actuales.

Los diseñadores analizaron IDEA para medir su fortaleza frente al criptoanálisis
diferencial y concluyeron que es inmune bajo ciertos supuestos. No se han reportado
debilidades frente criptoanálisis lineal o algebraico. Se han encontrado algunas claves
débiles, las cuales en la práctica son poco usadas siendo necesario evitarlas
explícitamente. Es considerado por muchos como uno de los cifrados en bloque más
seguros que existen.

Más contenido relacionado

La actualidad más candente

Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
Amador Aparicio
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
brobelo
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
Diana Yánez
 
Firma elgamal
Firma elgamalFirma elgamal
Firma elgamal
G Hoyos A
 
Eduardo ruiz seguridad y redes
Eduardo ruiz seguridad y redesEduardo ruiz seguridad y redes
Eduardo ruiz seguridad y redes
Futura Networks
 

La actualidad más candente (20)

Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
Algorimos básicos para cifrar y descifrar en C# (encriptar y desencriptar)
 
Leccion01 rsa crypt4you
Leccion01 rsa crypt4youLeccion01 rsa crypt4you
Leccion01 rsa crypt4you
 
Conferencia n° 8
Conferencia n° 8Conferencia n° 8
Conferencia n° 8
 
Floyd
FloydFloyd
Floyd
 
Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2Leccion01 rsa crypt4you -V2
Leccion01 rsa crypt4you -V2
 
Common Scrambling Algorithm al descubierto
Common Scrambling Algorithm  al descubiertoCommon Scrambling Algorithm  al descubierto
Common Scrambling Algorithm al descubierto
 
Poo4
Poo4Poo4
Poo4
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
 
Examanesplf
ExamanesplfExamanesplf
Examanesplf
 
Estructuras de Lenguaje .NET
Estructuras de Lenguaje .NETEstructuras de Lenguaje .NET
Estructuras de Lenguaje .NET
 
Algoritmos Para Encriptar Claves
Algoritmos Para Encriptar ClavesAlgoritmos Para Encriptar Claves
Algoritmos Para Encriptar Claves
 
Diapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en JavaDiapositivas curso programación orientada a objetos en Java
Diapositivas curso programación orientada a objetos en Java
 
Comunicaciones
ComunicacionesComunicaciones
Comunicaciones
 
Capítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave públicaCapítulo 6: Criptografía de clave pública
Capítulo 6: Criptografía de clave pública
 
Fund Java
Fund JavaFund Java
Fund Java
 
Firma elgamal
Firma elgamalFirma elgamal
Firma elgamal
 
Up encriptacion publica v1.2
Up encriptacion publica v1.2Up encriptacion publica v1.2
Up encriptacion publica v1.2
 
Eduardo ruiz seguridad y redes
Eduardo ruiz seguridad y redesEduardo ruiz seguridad y redes
Eduardo ruiz seguridad y redes
 
Capítulo 3: Cifrado en flujo
Capítulo 3: Cifrado en flujoCapítulo 3: Cifrado en flujo
Capítulo 3: Cifrado en flujo
 
Unidad 5 - Criptografía
Unidad 5 - CriptografíaUnidad 5 - Criptografía
Unidad 5 - Criptografía
 

Similar a Encriptacion

Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion Para
Andy Arevalo
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
danyro
 
ComputacióN BáSica
ComputacióN BáSicaComputacióN BáSica
ComputacióN BáSica
MAFER
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
Amador Aparicio
 

Similar a Encriptacion (20)

Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.pptCriptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
Criptografiafina xbsbxsbx bxsbxabhxhsbxsl.ppt
 
Algoritmos De Encriptacion Para
Algoritmos De Encriptacion ParaAlgoritmos De Encriptacion Para
Algoritmos De Encriptacion Para
 
Flores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 AFlores Carrera Jennifer 1 A
Flores Carrera Jennifer 1 A
 
CIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADACIFRADO DE CLAVE PUBLICA Y PRIVADA
CIFRADO DE CLAVE PUBLICA Y PRIVADA
 
Encriptacion
EncriptacionEncriptacion
Encriptacion
 
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
 
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
Paper de Criptografía sobre Ataque a la clave por la paradoja del cumpleaños ...
 
Criptosistemas
CriptosistemasCriptosistemas
Criptosistemas
 
RSA crypt4you
RSA crypt4youRSA crypt4you
RSA crypt4you
 
Encriptación
EncriptaciónEncriptación
Encriptación
 
cifrado de claves
cifrado de clavescifrado de claves
cifrado de claves
 
Leccion02 rsa v3 crypt4you
Leccion02 rsa v3 crypt4youLeccion02 rsa v3 crypt4you
Leccion02 rsa v3 crypt4you
 
Crypt4you. Leccion02 curso rsa
Crypt4you. Leccion02 curso rsa Crypt4you. Leccion02 curso rsa
Crypt4you. Leccion02 curso rsa
 
ComputacióN BáSica
ComputacióN BáSicaComputacióN BáSica
ComputacióN BáSica
 
Criptografia.pdf
Criptografia.pdfCriptografia.pdf
Criptografia.pdf
 
Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.Intercambio de claves Diffie-Hellman.
Intercambio de claves Diffie-Hellman.
 
Lenguaje c neo
Lenguaje c neoLenguaje c neo
Lenguaje c neo
 
Algoritmos criptograficos
Algoritmos criptograficosAlgoritmos criptograficos
Algoritmos criptograficos
 
Criptografia con curvas elipticas
Criptografia con curvas elipticasCriptografia con curvas elipticas
Criptografia con curvas elipticas
 
Medidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en NepcomMedidas seguridad implementadas en Nepcom
Medidas seguridad implementadas en Nepcom
 

Último

Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
NancyLoaa
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
patriciaines1993
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
JonathanCovena1
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
JonathanCovena1
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
UPTAIDELTACHIRA
 

Último (20)

PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Unidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la InvestigaciónUnidad 3 | Metodología de la Investigación
Unidad 3 | Metodología de la Investigación
 
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICABIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
BIOMETANO SÍ, PERO NO ASÍ. LA NUEVA BURBUJA ENERGÉTICA
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Proyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdfProyecto de aprendizaje dia de la madre MINT.pdf
Proyecto de aprendizaje dia de la madre MINT.pdf
 
Criterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficiosCriterios ESG: fundamentos, aplicaciones y beneficios
Criterios ESG: fundamentos, aplicaciones y beneficios
 
Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024Prueba libre de Geografía para obtención título Bachillerato - 2024
Prueba libre de Geografía para obtención título Bachillerato - 2024
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 

Encriptacion

  • 1. ESCUELA POLITECNICA DEL EJERCITO Nombre: David Sulca Curso: 1ª Comercial Fecha: 2009-11-10 1._ Metodos de encriptación. Clave publica._ Modelo EncryptionString._ EncryptionString, es un clásico sistema el cual toma el mensaje y una clave del usuario, y a través de una combinación de estos dos parámetros se produce una cadena codificada. Mantengo la explicación original del método: Texto a codificar: ENCRYPTION Caracteres del Texto: E N C R Y P T I O N Códigos ASCII: 69 78 67 82 89 80 84 73 79 78 Contraseña KEY: K E Y K E Y K E Y K Caracteres de KEY: 75 69 89 75 69 89 75 69 89 75 Suma de Códigos ASCII: 144 147 156 157 158 169 159 142 168 153 En caracteres: ミ “ œ ン ? © Ÿ ? ¨ ™ Texto codificado: 1“œ?©Ÿ?¨™ El modo para usar la función EncryptionString es el siguiente: '//Codifica TextoCodificado = EncryptString(TextoOriginal, Contraseña, ENCRYPT) '//Decodifica TextoOriginal = EncryptString(TextoCodificado, Contraseña, DECRYPT) La ventaja de esta técnica es que es muy flexible de usar e intuitiva. Sin tener la máxima seguridad, es muy segura. Escribir un programa para encriptar archivos resulta bastante simple por aquello de la contraseña. No ocurre lo mismo con el siguiente procedimiento: ChrTran. El código de EncryptionString es el siguiente: DefInt A-Z Option Explicit '//For Action parameter in EncryptString Public Const ENCRYPT = 1, DECRYPT = 2 '--------------------------------------------------------------------- ' EncryptString ' Modificado por Harvey T. '--------------------------------------------------------------------- Public Function EncryptString( _ UserKey As String, Text As String, Action As Single _ ) As String Dim UserKeyX As String Dim Temp As Integer Dim Times As Integer Dim i As Integer Dim j As Integer
  • 2. Dim n As Integer Dim rtn As String '//Get UserKey characters n = Len(UserKey) ReDim UserKeyASCIIS(1 To n) For i = 1 To n UserKeyASCIIS(i) = Asc(Mid$(UserKey, i, 1)) Next '//Get Text characters ReDim TextASCIIS(Len(Text)) As Integer For i = 1 To Len(Text) TextASCIIS(i) = Asc(Mid$(Text, i, 1)) Next '//Encryption/Decryption If Action = ENCRYPT Then For i = 1 To Len(Text) j = IIf(j + 1 >= n, 1, j + 1) Temp = TextASCIIS(i) + UserKeyASCIIS(j) If Temp > 255 Then Temp = Temp - 255 End If rtn = rtn + Chr$(Temp) Next ElseIf Action = DECRYPT Then For i = 1 To Len(Text) j = IIf(j + 1 >= n, 1, j + 1) Temp = TextASCIIS(i) - UserKeyASCIIS(j) If Temp < 0 Then Temp = Temp + 255 End If rtn = rtn + Chr$(Temp) Next End If '//Return EncryptString = rtn End Function Modelo ChrTran._ ChrTran es violentamente complicado de violar, de hecho imposible. Virtualmente las probabilidades de descifrar un mensaje son del orden de 255! (255 factorial), un numero sin fin en la práctica (por ejemplo las calculadoras comunes soportan solo hasta 69!). Tengo que confesar que tuve que reescribir ChrTran porque presentaba errores de programación y mucho código para optimizar, el resultado es sorprendente. Ni que decir que no tenía en cuenta que en español usamos tildes y eñes. Como su abreviación lo dice ChrTran transpone caracteres, usa dos claves de 255 caracteres (la carta ASCII) y produce un texto codificado de origen aleatorio. Toma cada carácter del texto, encuentra su posición en la primera clave, e intercambia este carácter por el carácter en la misma posición de la segunda clave. Es complicado de asimilar.
  • 3. Lo más difícil de ChrTran es el manejo de las claves. La primera clave (la sarta de búsqueda) podría ser publica (mejor debiera decir debe ser publica). Mientras que la segunda clave es una sarta aleatoria de la carta ASCII. El modo de manejar ChrTran es el siguiente: ClaveAleatoria = RandomChart() '// Se podría usar la sarta de búsqueda, ClaveDeBúsqueda, como '// otra cadena aleatoria con ClaveDeBúsqueda = RandomChart() '// aqui se mantiene un nivel de Encriptación flexible, más no '// inseguro, al hacer ClaveDeBúsqueda como la secuencia 0 a 255 '// de la carta ASCII: For i = 0 To 255 ClaveDeBúsqueda = ClaveDeBúsqueda + Chr$(i) Next '//Codifica TextoCodificado = ChrTran(TextoOriginal, ClaveDeBúsqueda, ClaveAleatoria) '//Decodifica TextoOriginal= ChrTran(TextoCodificado, ClaveAleatoria, ClaveDeBúsqueda) En la primera línea se usa RandonChart, la cual es una función que retorna la carta ASCII en un orden aleatorio. Como posiblemente se deduce, usar ChrTran para escribir un programa que trabaje encriptación, representa una labor bastante especializada, pero por supuesto nada del otro mundo. El código de ChrTran es el siguiente: DefInt A-Z Option Explicit '//--------------------------------------------- '// Return a random string of ASCII Chart. '// Used by ChrTran. By Harvey T. '//--------------------------------------------- Public Function RandomChart() As String Dim Char As String Dim RndStr As String Dim n As Integer Randomize Timer Do Char = Chr$(Int(Rnd * 256)) If InStr(RndStr, Char) = 0 Then n = n + 1 RndStr = RndStr + Char End If Loop Until n = 256 RandomChart = RndStr End Function '--------------------------------------------------------------------- ' ChrTran ' Optimizing by Harvey T.
  • 4. '--------------------------------------------------------------------- Public Function ChrTran(Text As String, SStr As String, EStr As String) As String Dim i As Integer Dim rtn As String For i = 1 To Len(Text) rtn = rtn + Mid$(EStr, InStr(SStr, Mid$(Text, i, 1)), 1) Next ChrTran = rtn End Function Diffie-Hellman._ El protocolo Diffie-Hellman[1] (debido a Whitfield Diffie y Martin Hellman) permite el intercambio secreto de claves entre dos partes que no han tenido contacto previo, utilizando un canal inseguro, y de manera anónima (no autenticada). Se emplea generalmente como medio para acordar claves simétricas que serán empleadas para el cifrado de una sesión. Siendo no autenticado, sin embargo provee las bases para varios protocolos autenticados. Su seguridad radica en la extrema dificultad (conjeturada, no demostrada) de calcular logaritmos discretos en un campo finito. Versión básica Diffie-Hellman Para dos partes A y B que intentan establecer una clave secreta y un adversario E, la versión básica es como sigue: • Se establecen un primo p y un generador ([2] ). Estos son públicos, conocidos no sólo por las partes A y B sino también por el adversario E. • A escoge al azar, calcula X = gxmod p, y envía X a B
  • 5. B escoge al azar, calcula Y = gymod p, y envía Y a A Nótese que Xy = (gx)y = gxy = (gy)x = Yx, con todas las operaciones en el grupo . Llamemos K a esta cantidad común: el hecho destacable es que ambas partes pueden calcularla, y por lo tanto obtener una clave compartida. Un adversario E que poseyera p, g, X e Y, podría calcular el secreto compartido si tuviera también uno de los valores privados (x o y) o lograse invertir la función. Pero calcular x dado X es el problema del logaritmo discreto en , un problema que se cree intratable computacionalmente. El mismo protocolo, y otros basados en este, pueden llevarse a cabo en cualquier grupo en que a la vez la exponenciación sea simple y el logaritmo discreto difícil, como el grupo multiplicativo análogo de los campos de Galois o el grupo de puntos definidos por una curva elíptica sobre un campo finito. Sin embargo, el protocolo es sensible a ataques activos del tipo "hombre en el medio" (mitm, man-in-the-middle). Si la comunicación es interceptada por un tercero, éste se puede hacer pasar por el emisor cara al destinatario y viceversa, ya que no se dispone de ningún mecanismo para validar la identidad de los participantes en la comunicación. Así, el "hombre en el medio" podría acordar una clave con cada participante y retransmitir los datos entre ellos, escuchando la conversación en ambos sentidos. Ejemplo del protocolo 1. A y B acuerdan usar el B número primo p=23 y la A base g=5. Calc Sec 2. A elige un número secreto Sec Calc a=6, luego envía a B (ga p, g mod p) p, g o 56 mod 23 = 8. b a 3. B elige un número secreto … b=15, luego envía a A (gb ga mod p) mod p gb o 515 mod 23 = 19. mod 4. A calcula (gb mod p)a mod … p p (gb mod o 196 mod 23 = 2. (ga mod 5. B calcula (ga mod p)b mod p)a mod p)b mod p p p = o 815 mod 23 = 2. Valores mucho más grandes de a,b y p se necesitarían para hacer este ejemplo seguro. Dado que es muy sencillo probar todos los valores posibles de gab mod 23 (habrá, como máximo, 22 valores, inclusive si a y b son números grandes). Si p fuera un primo de más de 300 dígitos, y a y b fueran por lo menos de 100 dígitos, entonces hasta el mejor algoritmo para encontrar a dado g, p, y ga mod p tomaría más tiempo que la vida del universo para resolverse. g no necesita ser grande, y en la práctica es usualmente 2 o 5.
  • 6. Clave privada._ Triple DES._ En criptografía el Triple DES se llama al algoritmo que hace triple cifrado del DES. También es conocido como TDES o 3DES, fue desarrollado por IBM en 1978. Algoritmo No llega a ser un cifrado múltiple, porque no son independientes todas las subclases. Este hecho se basa en que DES tiene la característica matemática de no ser un grupo, lo que implica que si se cifra el mismo bloque dos veces con dos claves diferentes se aumenta el tamaño efectivo de la clave. La variante más simple del Triple DES funciona de la siguiente manera: Donde M es el mensaje a cifrar y k1, k2 y k3 las respectivas claves DES. En la variante 3TDES las tres claves son diferentes; en la variante 2TDES, la primera y tercera clave son iguales. Seguridad Cuando se descubrió que una clave de 56 bits no era suficiente para evitar un ataque de fuerza bruta, TDES fue elegido como forma de agrandar el largo de la clave sin necesidad de cambiar de algoritmo de cifrado. Este método de cifrado es inmune al ataque por encuentro a medio camino, doblando la longitud efectiva de la clave (112 bits), pero en cambio es preciso triplicar el número de operaciones de cifrado, haciendo este método de cifrado muchísimo más seguro que el DES. Por tanto, la longitud de la clave usada será de 192 bits, aunque como se ha dicho su eficacia solo sea de 112 bits.
  • 7. Blowfish._ En criptografía, Blowfish es un codificador de bloques simétricos, diseñado por Bruce Schneier en 1993 e incluido en un gran número de conjuntos de codificadores y productos de cifrado. Mientras que ningún analizador de cifrados de Blowfish efectivo ha sido encontrado hoy en día, se ha dado más atención de la decodificación de bloques con bloques más grandes, como AES y Twofish. Schneier diseñó Blowfish como un algoritmo de uso general, que intentaba reemplazar al antiguo DES y evitar los problemas asociados con otros algoritmos. Al mismo tiempo, muchos otros diseños eran propiedad privada, patentados o los guardaba el gobierno. Schneier declaró “Blowfish no tiene patente, y así se quedará en los demás continentes. El algoritmo está a disposición del público, y puede ser usado libremente por cualquiera”. El Algoritmo Diagrama de Blowfish Blowfish usa bloques de 64 bits y claves que van desde los 32 bits hasta 448 bits. Es un codificador de 16 rondas Feistel y usa llaves que dependen de las Cajas-S. Tiene una estructura similar a CAST-128, el cual usa Cajas-S fijas. El diagrama muestra la acción de Blowfish. Cada línea representa 32 bits. El algoritmo guarda 2 arrays de subclaves: El array P de 18 entradas y 4 cajas-S de 256 entradas. Una entrada del array P es usada cada ronda, después de la ronda final, a cada mitad del bloque de datos se le aplica un XOR con uno de las 2 entradas del array P que no han sido utilizadas.
  • 8. La función divide las entrada de 32 bits en 4 bloques de 8 bits, y usa los bloques como entradas para las cajas-S. Las salidas deben estar en módulo 232 y se les aplica un XOR para producir la salida final de 32 bits. Diagrama de la función F de Blowfish Debido a que Blowfish está en la red Feistel, puede ser invertido aplicando un XOR entre P17 y P18 al bloque texto codificado, y así sucesivamente se usan las P-entradas en orden reversivo. La generación de claves comienza inicializando los P-arrays y las cajas-S con los valores derivados de los dígitos hexadecimales de pi, los cuales no contienen patrones obvios. A la clave secreta se le aplica un XOR con las P-entradas en orden (ciclando la clave si es necesario). Un bloque de 64 bits de puros ceros es cifrado con el algoritmo como se indica. El texto codificado resultante reemplaza a P1 y P2. Entonces el texto codificado es cifrado de nuevo con la nuevas subclaves, P3 y P4 son reemplazados por el nuevo texto codificado. Esto continúa, reemplazando todas las entradas del P-array y todas las entradas de las cajas-S. En total, el algoritmo de cifrado Blowfish correrá 521 veces para generar todas las subclaves, cerca de 4KB de datos son procesados. International Data Encryption Algorithm._ En criptografía, International Data Encryption Algorithm o IDEA (del inglés, Algoritmo Internacional de Cifrado de Datos) es un cifrador por bloques diseñado por Xuejia Lai (?) y James L. Massey de la Escuela Politécnica Federal de Zúrich y descrito por primera vez en 1991. Fue un algoritmo propuesto como reemplazo del DES (Data Encryption Standard) . IDEA fue una revisión menor de PES (Proposed Encryption Standard, del inglés Estándar de Cifrado Propuesto), un algoritmo de cifrado anterior. Originalmente IDEA había sido llamado IPES (Improved PES, del inglés PES Mejorado). IDEA fue diseñado en contrato con la Fundación Hasler, la cual se hizo parte de Ascom-Tech AG. IDEA es libre para uso no comercial, aunque fue patentado y sus patentes se vencerán en 2010 y 2011. El nombre "IDEA" es una marca registrada y está licenciado mundialmente por MediaCrypt. IDEA fue utilizado como el cifrador simétrico en las primeras versiones de PGP (PGP v2.0) y se lo incorporó luego de que el cifrador original usado en la v1.0 ("Bass-O- Matic") se demostró insegura. Es un algoritmo óptimo en OpenPGP.
  • 9. Funcionamiento IDEA opera con bloques de 64 bits usando una clave de 128 bits y consiste de ocho transformaciones idénticas (cada una llamada un ronda) y una transformación de salida (llamada media ronda). El proceso para cifrar y descifrar es similar. Gran parte de la seguridad de IDEA deriva del intercalado de operaciones de distintos grupos — adición y multiplicación modular y O-exclusivo (XOR) bit a bit — que son algebraicamente "incompatibles" en cierta forma. IDEA utiliza tres operaciones en su proceso con las cuales logra la confusión, se realizan con grupos de 16 bits y son: • Operación O-exclusiva (XOR) bit a bit (indicada con un ⊕ azul) • Suma módulo 216 (indicada con un verde) • Multiplicación módulo 216+1, donde la palabra nula (0x0000) se interpreta como 216 (indicada con un rojo) (216 = 65536; 216+1 = 65537, que es primo) Después de realizar 8 rondas completas se realiza la mitad, obteniendo el resultado en este paso de la ronda: Este algoritmo presenta, a primera vista, diferencias notables con el DES, que lo hacen más atractivo: • El espacio de claves es mucho más grande: 2128 ≈ 3.4 x 1038 • Todas las operaciones son algebraicas • No hay operaciones a nivel bit, facilitando su programación en alto nivel • Es más eficiente que los algoritmos de tipo Feistel, porque a cada vuelta se modifican todos los bits de bloque y no solamente la mitad. • Se pueden utilizar todos los modos de operación definidos para el DES Seguridad En primer lugar, el ataque por fuerza bruta resulta impracticable, ya que sería necesario probar 1038 claves, cantidad imposible de manejar con los medios informáticos actuales. Los diseñadores analizaron IDEA para medir su fortaleza frente al criptoanálisis diferencial y concluyeron que es inmune bajo ciertos supuestos. No se han reportado debilidades frente criptoanálisis lineal o algebraico. Se han encontrado algunas claves débiles, las cuales en la práctica son poco usadas siendo necesario evitarlas explícitamente. Es considerado por muchos como uno de los cifrados en bloque más seguros que existen.