un enfoque paralelo para mejorarla seguridad de datos

Upload: alonso-tenorio

Post on 02-Jun-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    1/12

    1

    UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    Juan Emilio Saravia Tasayco

    Estudiante de Ciencias de la Computaci on

    Resumen Hoy en da, la seguridad de la informaci ontiene mucho inter es en el mundo acad emico, porque serealizan diversas operaciones en la red como transaccionesde dinero, acceso a informaci on, pago de facturas, etc.Esta informaci on requiere alg un tipo de mecanismos deseguridad durante su transmisi on a trav es de la Internet.Aqu es donde entra en juego el cifrado de criptograf apara transformar un mensaje de tal forma que seaincomprensible o, al menos, dif cil de comprender paratoda persona que no tenga la clave del algoritmo que seusa para poder descifrarlo. El cifrado es una buena manerade proteger los datos, pero si la cantidad de datos aumentapor ejemplo a un 1GB, podra tomar m as de 10 minutos.Seg un los est andares de hoy, es mucho tiempo y el tiempoes un recurso importante. El uso de procesamiento enparalelo mejora la velocidad y reduce el tiempo de cifradode datos. En este art culo, se desarrollar a la paralelizaci ondel algortimo AES que fue adoptado como un est andar decifrado por el gobierno de los Estados Unidos.

    Palabra Claves Criptograf a, Cifrado, MPI, AES.

    I. INTRODUCCI ON

    E L uso de la criptograf a para con lastransacciones de datos a trav es de la redes una t ecnica antigua pero muy potente para laseguridad de los datos. Muchos algoritmos fuerondesarrollados y utilizados, pero las ventajas ydesventajas de cada uno de los algoritmo var an.Esto hace que el sistema sea vulnerable con ataquesen un punto del tiempo. Este documento proponeuna de tales t ecnicas que utiliza un unico algoritmopara el cifrado de un archivo en el entorno paralelo.Las t ecnicas de criptograf a usan encriptaci on quecodica el texto plano utilizando algunos algoritmosque produce un texto que no puede ser interpretadapor los intrusos. Este texto codicado es llamadocomo texto cifrado. En el extremo de recepci on,el texto cifrado se convierte de nuevo para eltexto plano usando el mismo algoritmo. El texto enformato real se puede conseguir por aquellos queposeen una clave para el descifrado. Otros, que no

    tienen una clave s olo pueden obtener un mensajecodicado diferente.

    La criptograf a es el arte o ciencia de cifrary descifrar datos utilizando t ecnicas matem aticasque hagan posible el intercambio de mensajesde manera que s olo puedan ser le dos por laspersonas a quienes van dirigidos. Desde sus inicios

    la criptograf a lleg o a ser una herramienta muyusada en el ambiente militar, por ejemplo en lasegunda guerra tuvo un papel determinante, una delas m aquinas de cifrado que tuvo gran popularidadse llam o ENIGMA.La criptograf a involucra dos procesos :

    Cifrado(Encriptado): Transformar el textooriginal en un texto cifrado, no legible.

    Descifrado(Desencriptado): Transformar eltexto cifrado en el texto original.

    Fig. 1. Proceso de cifrado y descifrado

    De esta manera, por ejemplo, si dos personasse ponen de acuerdo en el valor de una clavesecreta, y la mantiene privadamente s olo entreambos, pueden intercambiar informaci on cifrada.Esto permite que si un agente externo interceptalas comunicaciones, no podr a conocer el contenidooriginal de los mensajes, pues s olo observara datosininteligibles o cifrados. Para descifrar se necesitaconocer la clave.Para encriptar se pueden usar 2 tipos de algortimos :

    Algortimo Secreto: La informaci on esencriptada por un algoritmo que no esconocido por todos, y que tiene que ser

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    2/12

    2

    utilizado en el destinatario, para poderdescriptar la informaci on.

    Algortimo P ublico: La informaci on esencriptada por un algoritmo, el cual esconocido. Pero la informaci on se protege atrav es de una clave secreta, la cual tiene queser usada por el destinatario, para descriptar lainformaci on.

    Los sistemas actuales utilizan algortimo p ublicoy claves secretas, debido a los siguientes motivos :

    El nivel de seguridad es el mismo. Los algortimos p ublicos se pueden fabricar

    en cadena, tanto chips de hardware comoaplicaciones software. De est a maneradesarrollo es m as barato.

    Es mas facil y m as seguro transmitir una claveque todo el funcionamientode un algoritmo.

    Las t ecnicas de criptograf a se pueden clasicarseg un el tipo de clave :

    La criptograf a de clave privada o s metrica. La criptografa de clave p ublica o asimetrica.Hay que considerar que no existen los sistemas

    completamente seguros, siempre se pueden violarprobando todas las claves posibles. Por lo tanto, encriptograf a se buscan sistemas que cumplan una delas siguientes condiciones :

    El precio para romperlo es m as caro que el

    valor de la informaci on. El tiempo necesario para romperlo es m as largoque el tiempo de vida de la informaci on.

    A. Criptograf a Sim etrica

    La criptografa sim etrica, usa una sola clave queposeen tanto el emisor como el destinatario. Estaclave(llamada tambi en clave secreta) es usada tantopara encriptar como para desencriptar. Este m etodoes eciente para encriptar grandes cantidades.Como este m etodo usa la misma clave para encriptary desencriptar, la seguridad del proceso depende dela facilidad de obtener la clave de una forma noautorizada. Los algortimos criptogr acos sim etricosemplean claves con un elevado n umero de bits, yusualmente se mide su calidad por la cantidad deesfuerzo que se necesita para romperlos.El tipo de ataque m as simple es la fuerza bruta,que simplemente trata de ir probando una a unatodas las claves. Basa su seguridad en la longitudde la clase. Los algortimos de clave secreta, que

    mas se utilizan son: DES, 3DES y AES. DES(DataEncryption Standard), es el esquema de cifrado m ascom un. Se basa en un sistemas monoalfab etico, conun algortimo de cifrado consistente en la aplicaci onsucesiva de varias permutaciones y sustituciones.En general, DES utiliza una clave sim etrica de64 bits, de los cuales 56 son usados para laencriptaci on, mientras que los 8 restantes son deparidad, y se usan para la detecci on de errores enel proceso. Por otra parte, algortimos de cifradode dise no m as reciente como 3DES(se lee tripleDES) usan todos claves de 128 bits, lo que signicaque existen 2 elevado a 128 claves posibles. Estorepresenta una mayor cantidad de combinaciones.

    Fig. 2. Comparaci on de algoritmos.

    Ante los problemas de poder detectar una clavede 56 bits a trav es de la fuerza bruta se dise noel 3DES que agrando el largo de la clave sinnecesidad de cambiar de algortimo de cifrado,dobla la longitud efectiva de la clave, pero encambio es preciso triplicar el n umero de operacionesde cifrado, haciendo este m etodo de cifrado m asseguro que el DES. Por el dise no DES y 3DESson algoritmos lentos. AES(Advanced EncryptionStandard), puede llegar a ser hasta 6 veces m as

    rapido.

    B. Criptograf a Asim etrica

    Usa dos claves, una p ublica y unaprivada(matem aticamente relacionada). La clavepublica puede ser ampliamente distribuida opublicada en sitios p ublicos para la obtenci on(deforma insegura), pero su correspondiente claveprivada debe permanecer segura. Los algoritmosde criptografa son ecuaciones complejas

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    3/12

    3

    matem aticamente que usan n umeros muy grandes.Su principal limitaci on es que proveen unforma relativamente lenta de encriptar. Algunosalgortimos asim etricos conocidos son: RSA, DSA yDife-Hellman. El RSA(Rivest-Shamir-Adleman),es algortimo asim etrico cifrador de bloques,que utiliza clave p ublica, la cual se distribuyey otra privada, la cual es guardada en secretopor su propietario. El algoritmo RSA es unicoentre los algortimos de claves p ublicas utilizadoshabitualmente ya que puede realizar operacionestanto rma digital como de intercambio de claves.El DSA(Digital Signature Algorithm), es unest andar del Gobierno Federal de los EstadosUnidos de America o FIPS para rmas digitales.Este algortimo sirve para rmar y para cifrarinformaci on. Una desventaja de este algoritmoes que requiere mucho m as tiempo de c omputoque RSA. El algoritmo Dife-Hellman, permite elintercambio secreto de claves entre dos partes queno han tenido contacto previo, utilizando un canalinseguro, y de manera an onima(no autenticada).

    II . IMPLEMENTACI ON AES

    AES proporciona la exibilidad, la simplicidady la sostenibilidad de hardware y software. Estealgoritmo se puede utilizar en una variedad deplataformas y aplicaciones. Esto tambi en puedeser utilizado como un cifrado de ujo, c odigo deautenticaci on de mensaje, la funci on de hash, elnumero pseudoaleatorio del generador.AES opera sobre bloques de datos de 128 bits,numero de rondas(Nr) y la clave que utiliza puedeser de 128, 192 o 256 bits. Esto proporcionauna mayor seguridad en comparaci on con otrosalgoritmos de mismo tama no de la clave(NK) yla longitud del bloque(Nb). La mayora de loscalculos del algoritmo AES se hacen en un camponito determinado. AES trabaja en una matriz de4x4 bytes, llamada estado, 1 palabra corresponde32 bits.

    Key Sizes versus RoundsNk (palabras) Nb (palabras) Nr

    AES-128 4 4 10AES-192 6 4 12AES-256 8 4 14

    Conceptos matem aticos

    El algortimo opera a nivel de bytes, interpretandoestos como elementos de un cuerpo de GaloisGF( 28 ), y a nivel de registros de 32 bits,consider andolos como polinomios de grados menorque 4 con coecientes que son a su vez polinomios

    en GF( 28

    ). En este apartado se van a denir lasoperaciones matem aticas b asicas que necesita elalgortimo.

    Cuerpos Finitos. GF( 28 )

    En este algortimo todos los bytes se interpretancomo elementos de un cuerpo nito. Concretamentese representan mediantes Campos de Galois que serepresentan como GF(k). Los campos de Galois sonmuy interesantes en criptograa gracias a que existeun inverso aditivo y multiplicativo que permite

    cifrar y descifrar en el mismo cuerpo Z k , eliminadoasi los problemas de redondeo o truncamiento devalores si tales operaciones de cifrado y descifradose hubiesen realizado en aritmetica real.

    En nuestro caso, interesa utilizar una aritm eticaen modulo p sobre polinomios de grado m, siendop un n umero primo. Este campo de Galois quedarepresentado como: GF( pm ), en donde los elementosde GF( pm ) se representan como polinomios concoecientes en Z p de grado menor que m, es decir:

    GF ( pm ) = { 0 + 1 x 1 + 2 x 2 + ... m 1 xm 1 }

    0 , 1 , 2 ,.. m 1 Z pCada elemento de GF( pm ) es un resto m odulop(x), donde p(x) es un polinomio irreductible degrado m, esto es, que no puede ser factorizado enpolinomios de grado menor que m. En el caso delalgortimo AES, ser a interesante que los campos deltipo GF( 2m ) puesto que los coecientes en este casoser an los restos del mod ulo 2, es decir, 0 y 1, loque permite una representaci on binaria. Por lo tanto,cada elemento del campo se representa com m bitsy e l numero de elementos ser a 2m . Por ejemplo,para el campo GF( 23 ) sus elementos son : 0, 1, x,x+1, x2 +1, x2 +x, x2 +x +1 que son precisamentetodos los restos de un polinomio de grado m-1. Enel caso del algortimo AES, se dene operaciones anivel de byte, encontr andonos en el campo GF( 28 ).Un byte B, se compone de los bits b7 b6 b5 b4 b3 b2b1 b0 , si lo consideramos como un polinomio concoecientes en 0,1 tenemos el polinomio :

    b7 x 7 + b6 x 6 + b5 x 5 + b4 x 4 + b3 x 3 + b2 x 2 + b1 x 1 + b0

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    4/12

    4

    Por ejemplo, un byte con el valor hexadecimal 57,en binario 0101 0111 corresponde al polinomio

    x 6 + x 4 + x 2 + x + 1

    Suma en GF( 28 )

    En GF( pm ) hay que considerar que lasoperaciones matem aticas sobre los coecientesse hacen en m odulo p con lo cual en GF( 2m ) sereducen los resultados de la suma de los coecientesmodulo 2. Este procedimiento tanto para la sumacomo para la resta se realiza simplemente con unaoperaci on Or-Exclusiva, ya que si los coecientesson iguales dar an como suma o resta un 0 ycoecientes distintos dar an un 1. Por lo tanto,para sumar dos polinomios, basta con aplicar laoperaci on Or-Exclusiva, a cada elemento de lospolinomios, dos a dos. La funci on Or-Exclusiva dedos bits, produce los siguientes resultados:

    1 1 = 0

    0 1 = 1

    1 0 = 1

    0 0 = 0

    Un ejemplo de suma de dos polinomios de tama nobyte expresados dentro de GF( 28 ) es:

    A = 5716 = 0101 01112 = x6

    + x4

    + x2

    + x + 1B = 8316 = 1000 00112 = x 7 + x + 1

    sumando :

    A + B = ( x 6 + x 4 + x 2 + x +1)+( x 7 + x +1) mod 2

    = 1101 0100 = D 416

    Y lo mismo se obtiene utilizando la operaci onOr-Exclusiva:

    0101 0111 1000 0011 = 1101 0100 = D 416

    Desarrollo Secuencial

    Como observamos en el gura 2 observamos queel cifrado del AES es mucho m as seguro que losdem as pero conforme incrementa el tama no tambi enaumenta el tiempo. El cifrado hace que el texto realpase por diferentes etapas, operaciones matem aticas.

    Etapa inicial: AddRoundKey

    Rondas: SubBytes: en este paso se realiza una

    sustituci on no lineal donde cada byte esreemplazado con otro de acuerdo a una

    tabla de b usqueda. ShiftRows: en este paso se realiza una

    transposici on donde cada la del estadoes rotada de manera c clica un n umerodeterminado de veces.

    MixColumns: operaci on de mezcladoque opera en las columnas del estado,combinando los cuatro bytes en cadacolumna usando una transformaci on lineal.

    AddRoundKey: cada byte del estado escombinado con la clave round; cada clave

    round se deriva de la clave de cifradousando una iteraci on de la clave.

    Etapa nal: SubBytes ShiftRows AddRoundKey

    Algorithm 1 AES SecuencialRequire: array in de 4 Nb bytes

    array out de 4 Nb bytesarray w de 4 Nb (Nr + 1) bytes

    1: byte[][]state newbyte [4][Nb]2: state in3: AddRoundKey (state )4: round 15: while round < Nr do6: SubBytes (state )7: ShiftRows (state )8: MixColumns (state )9: AddRoundKey (state )

    10: end while11: SubBytes (state )12: ShiftRows (state )13: AddRoundKey (state )14: out state

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    5/12

    5

    Para el cifrado el proceso comienza con unaronda agrega fase clave y seguido de 9,11 o13 rondas, cada ronda se compone de cuatroetapas mencionadas anteriormente. La ultima rondacontiene s olo 3 etapas excluyendo la ronda agregadaen la fase clave.

    Fig. 3. Proceso de cifrado

    Etapa SubBytes- Substituci on de bits

    La transformaci on SubBytes consiste en unasustituci on no lineal que se aplica a cada byte de lamatriz de estado de forma independiente, generandoun nuevo byte. Esta transformaci on consiste enla sustitucion de cada byte por el resultado de

    aplicarle la tabla de sustituci on caja-S. Esta tablalogicamente es invertible y se construye mediantedos transformaciones :

    Cada byte es considerado como un elemento enGF( 28 ) que genera el polinomio irreductible

    m (x) = x 8 + x 4 + x3 + x + 1

    siendo sustituido por su inverso multiplicativa,el valor cero queda inalterado ya que no tieneinversa.

    Al resultado de la primera transformaci on se leaplica la siguiente la siguiente transformaci onafn en GF(2), siendo x0 , x1 , x2 , x3 , x4 , x5 , x6 yx 8 los bits del byte de la primera tranformaci one y0 , y1 , y2 , y3 , y4 , y5 , y6 y y8 los bits delresultado nal de la transformaci on SubBytes.

    Por ejemplo, si el byte al cual se le aplicala funci on SubByte es A=11001011, deber amoscalcular su inversa multiplicativa. Cada byte serepresenta como un polinomio a(x), calcularla inversa multiplicativa consiste en buscar un

    polinomio b(x) (que es unico) que multiplicado pora(x) modulo m(x) es igual a1, es decir :

    a(x).b(x) mod x 8 + x4 + x 3 + x + 1 = 1

    El polinomio buscado en este caso es b(x)= x 2 quetiene una representaci on binaria de B=00000100.Se dice entonces que B es la inversa en GF( 28 )de A. Una vez que tenemos el resultado dela primera transformaci on, debemos aplicarle latransformaci on, debemos aplicarle la transformaci onafn denida:

    Obtenemos el valor nal de Y=0011111. Luego elbyte A=11001011 se convierte en Y al aplicar lafunci on SubByte.Utilizando estas dos transformaciones para todos losvalores posibles de entrada se calcula una tabla desustituci on denominada caja-S util para el procesode cifrado. Gracias a esta tabla aplicar la funci onSubByte resulta trivial, consiste en dividir el bytede la matriz de estado en dos partes de 4 bitsmenos signicativos de columna. El valor para esala y columna en la tabla es resultado es resultadode aplicar Caja-S a un byte. Siguiento con elejemplo anterior, si tenemos el byte A=11001011y le aplicamos la funci on SubByte el resultado

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    6/12

    6

    sera (x=1100[la c ] y=1011[columna b]) Y=0x1Fque en binario equivale a Y=0001111, valor que esidentico al calculado previamente.La implemetaci on en c hacemos uso directo de laCaja-S que tendra valores ya denidos.

    Implementaci on SubBytes C

    v o i d SubByt es (BYTE s t a t e [ ] , BYTE sbox [ ] ) {i n t i ;f o r ( i = 0 ; i < 1 6 ; i + +)

    s t a t e [ i ] = s b ox [ s t a t e [ i ] ] ;}

    La caja-S tambi en se elige para evitar puntosestables, y tambi en cualesquiera puntos establesopuestos.

    Etapa ShiftRows-Desplazar las

    Esta tranformaci on consiste en rotar a la izquierdalas las que conforman la matriz estado, es decir,rotar los bytes de las las de la matriz de estadoresultante de la transformaci on anterior(SubBytes)a la izquierda. Cada la f i se desplaza un n umerode posiciones C i diferente. Existen 4 C i , uno paracada una de las 4 las que siempre tiene la matrizde estado. C 0 (para la la 0), C 1 (para la la 1),C 2 (la 2) y C 3 (la 3). La la 0 siempre permaneceinalterada (siempre C 0 ). Los valores de C 1 ,C 2 yC 3 que indican el numero de rotaciones de las lasf 0 ,f 1 y f 2 dependen del tama no del bloque, y enconsecuencia de Nb(tama no bloque/32).

    Tama no del bloque C1 C2 C3128 bits(Nb=4) 1 2 3192 bits(Nb=6) 1 2 3256 bits(Nb=8) 1 3 4

    Por ejemplo, si el tama no del bloque fuera de128 bits(Nb=4) la la 0 no sera rotada, la la 1 se

    rotar a 1 byte( C 1 =1), la la ser a rotada 2 bytes( C 2 )y la la 3 ser a rotada bytes( C 3 ).

    La funci on inversa de shiftrow que permiteinvertir esta transformaci on consiste simplementeen rotar a la derecha los bytes de las las de lamatriz de estado actual. Para ello se desplaza elmismo n umero de posiciones C i que se desplazaronpara cifrar La estructura del algortimo fue dise nadapara permitir cualquier tama no de bloque que seamultiplo de 4 bytes, con un n umero m nimo de16 bytes. Las funciones AddRoundKey, SubBytesy MixColumn son independientes del tama no debloque. Sin embargo la transformaci on ShiftRownsi depende de la longitud del bloque, siendonecesarios denir valores C 1 ,C 2 y C 3 diferentespara distintos bloques. Los autores teniendo encuenta esto, han facilitado valores adicionales deC 1 ,C 2 y C 3 para otras longitudes comunes debloques :

    Tama no del bloque C1 C2 C3160 bits(Nb=5) 1 2 3224 bits(Nb=7) 1 2 4

    Para cualquiera otra longitud de bloque noestablecida en el est andar es conveniente contactarcon los dise nadores del algortimo.

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    7/12

    7

    Implementaci on ShiftRows C

    v o i d Shi f tR ows (BYTE s t a t e [ ] , BYTE s h i f t t a b [ ] ) {BYTE h [ 16 ] ;memcpy ( h , s t a t e , 1 6 ) ;i n t i ;f o r ( i = 0 ; i < 1 6 ; i + +)

    s t a t e [ i ] = h [ s h i f t t a b [ i ] ] ;

    }

    Etapa MixColumns- Mezclar columnas

    La transformaci on MixColumn act ua sobre bytesde una misma columna de la matriz de Estado quetiene a la entrada, es decir, el Estado intermedio 3.En esencia esta funci on permite una mezcla de losbytes de las columnas.

    Esta transformaci on considera las columnasde bytes como polinomios cuyos coecientes

    pertenecen a GF( 28

    ), es decir, son tambi enpolinomios.La funci on MixColumn consiste en multiplicar

    las columnas de bytes m odulo x4 + 1 por elpolinomio c(x).

    Matematicamente c(x) viene representado por:

    c(x) = 03 x 3 + 01 x 2 + 01x + 02

    Este polinomio c(x) es coprimo con x4 + 1 quepermite que sea invertible. En forma algebraica estafunci on se puede representar como :

    s (x) = c(x) s(x)

    Donde s(x) represnta la matriz de Estadoresultante de esta transformaci on(Estado intemedio4) y s(x) la matriz de Estado entrante(Estadointermedio 3).

    Esta f ormula queda mejor expresada de formamatricial, donde c represnta el ndice de lacolumna que se procesa :

    Desarrollando la matriz, observamos claramentecomo cada byte nuevo de la matriz de Estado es una

    combinacion de varios bytes de las distintas las queforman una columna especica :

    Por ejemplo dado el siguiente Estadointermedio3:

    D4 E0 B8 1eBf B4 41 275d 52 11 9830 Ae F1 E5

    Para calcular el byte de la la0 y columna0de la matriz de Estado resultante se calculara dela siguiente forma:

    s 0 ,0 = ( {02}.s 0 ,0 ) ({03}.s 1 ,0 ) s2 ,0 s3 ,0

    Se cogen los bytes de la matriz que hacen falta:

    s 0 ,0 = ( {02}.d4) ({03}.Bf ) 5d 30

    Y se calcula el resultado:

    {02}.{d4} = {b8}

    x. (x 7 + x 6 + x4 + x 2 ) mod x 4 + 1

    x 8 + x 7 + x5 + x 3 mod x 4 + 1

    x 7 + x 5 + x4 + x 3 = 10111000 = {b8}

    {03}.{Bf } = {d1}

    (x + 1) .(x 7 + x 5 + x 4 + x 3 + x 2 + x + 1) mod x 4 + 1

    x 8 + x 7 + x 6 + 1 = 11010001 = {d1}

    s 0 ,0 = b8 d1 5d 30 = 04Luego el byte D4 de la la y columna0 de la

    matriz de Estado Intermedia 3 se sustituir a por elbyte 04 en la matriz de Estado Intermedia 4. Parael resto de bytes se seguir a un desarrollo como elplanteado.

    Para descifrar o invertir esta transformaci on, sedebera realizar el mismo procedimiento descritopero con el polinomio d(x), que es el inverso de c(x).

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    8/12

    8

    v o i d AES MixColumns(BYTE s t a t e [ ] ) {i n t i ;f o r ( i = 0 ; i < 1 6 ; i + = 4 ) {

    BYTE s 0 = s t a t e [ i + 0 ] , s 1 = s t a t e [ i + 1 ] ;BYTE s 2 = s t a t e [ i + 2 ] , s 3 = s t a t e [ i + 3 ] ;

    BYTE h = s0 s1 s 2 s 3 ;s t a t e [ i + 0 ] = h AES xtime [ s 0 s 1 ] ;s t a t e [ i + 1 ] = h AES xtime [ s 1 s 2 ] ;s t a t e [ i + 2 ] = h AES xtime [ s 2 s 3 ] ;s t a t e [ i + 3 ] = h AES xtime [ s 3 s 0 ] ;

    }}

    Etapa AddRoundKey- C alculo de las subclaves

    Esta transformaci on consiste en aplicar unaoperaci on OR-Exclusiva entre la matriz de Estadoque proviene de la transformaci on anterior(Funci onMixcolumn) y una subclave que se genera a partirde la clave del sistema para esa vuelta(ronda).

    El bloque resultante de esta transformaci on, s erala nueva matriz de Estado para la siguiente ronda.Siendo el bloque de salida, si la vuelta es la ultima.

    Para aplicar esta transformaci on se debera cogeruna subclave para la vuelta actual, y formauna matriz con el mismo n umero de las ycolumnas que la matriz de Estado con la quese esta operando(impl citamente se puede observar

    como las subclaves dependen del tama no delbloque empleado) para poder aplicar la operaci onor-exclusiva.

    La esencia de esta funci on recae en las subclaves.El algortimo AES bas andose en el principio de lacriptograf a moderna, mediante el cual se estableceque la seguridad de un algortimo s olo debe dependerde la clave utilizada, utiliza diferentes subclaves K itanto en el cifrado como en el descifrado para queel resultado del algorimo dependa completamentede una informaci on externa al sistema: la clave deusuario.

    El numero total de bits necesarios para generartodas las subclaves, dependen del n umero de rondasque se aplique al algortimo y del tama no del bloqueempleado. El n umero total de bits de subclavesnecesarios se puede calcular como:

    # total bits Subclaves = 32 N b (N r + 1)

    Por lo tanto, se puede observar que el n umerototal de bits de subclaves es igual al tama no delbloque empleado por el n umero de vueltas delalgortimo( N r vueltas m as la ronda inicial).

    Se ha observado que el funcionamiento deesta transformaci on es sencillo, lo verdamenteinteresante es conocer el procedimento para generarlos bytes que forman las subclaves para cadavuelta(RoundKeys), bytes que se derivan de laclave principal K. Para ello el sistema utiliza dosfunciones auxiliares: una funci on de seleccion y unafunci on de expansi on.v o i d AES AddRoundKey(BYTE s t a t e [] , BYTE rk ey [ ] ){

    i n t i ;f o r ( i = 0 ; i < 1 6 ; i + +)s t a t e [ i ] = r k e y [ i ] ;

    }

    En sistemas de 32 bits o de mayor tama node palabra, es posible acelerar la ejecuci onde este algoritmo mediante la conversi on delas transformaciones SubBytes, ShiftRows yMixColumn en tablas. Se tienen cuatro tablas de256 entradas de 32 bits que utilizan un total de 4kilobytes (4096 bytes) de memoria, un Kb cada

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    9/12

    9

    tabla. De esta manera, una ronda del algoritmoconsiste en 16 b usquedas en una tabla seguidade 16 operaciones XOR de 32 bits en el pasoAddRoundKey. Si el tama no de 4 kilobytes de latabla es demasiado grande para una plataformadeterminada, la operaci on de b usqueda en la tablase puede realizar mediante una sola tabla de 256entradas de 32 bits mediante el uso de rotacionescirculares.

    Desarrollo Paralelo

    La necesidad de un procesamiento paralelo est aaumentando con la necesidad de un procesamientode alta velocidad. Message Passing Interface (MPI)es la especicacion estandar para el paso demensajes de la biblioteca.

    Los programas desarrollados usando MPI puedenser reutilizados en los equipos m as nuevos, m asrapidos paralelos. Utilizando el procesamiento enparalelo reduce la complejidad de tiempo y el costeque las computadoras paralelas se pueden construira partir de componentes baratos. Muchos de losproblemas grandes que son factibles de resolverutilizando un equipo con procesador solo se puedenresolver mediante el procesamiento en paralelo.

    Uso de las computadoras paralelas recursos nolocales, es decir, los recursos de una red de areaamplia o incluso de Internet cuando el recurso locales escasa. Nuestro objetivo es disear un sistemaque incorpora las ventajas de procesamiento enparalelo en los algoritmos criptogr acos. Apartede esto, tambi en se abre una nueva puerta en laforma en que un archivo est a cifrado. Dado que el

    proceso de cifrado se realiza en paralelo, es posibleutilizar claves diferentes para diferentes partes quemejorar a aun m as la seguridad de los datos.Hay dos componentes principales del dise no dealgoritmos paralelos. El primero es la identicaci ony especicaci on del problema general como unconjunto de tareas que se pueden realizar al mismotiempo. El segundo es la asignaci on de estas tareasen diferentes procesadores, de forma que se reduzcaal mnimo la sobrecarga de comunicaci on general.El primer componente especica concurrencia, yla segunda especica una localidad de datos. Elrendimiento de un algoritmo en una arquitecturaen paralelo depende de ambos. La concurrenciaes necesario mantener los procesadores ocupados.Localidad es importante debido a que minimizasobrecarga de comunicaci on. Idealmente, unalgoritmo paralelo debe tener la m aximaconcurrencia y localidad.Sin embargo, para la mayora de los algoritmos,hay un equilibrio. Un algoritmo que tiene m asconcurrencia a menudo tiene menos localidad.Para implementar el algoritmo AES de formaparalela, los bloques de datos y una clave sedistribuyen entre los procesadores disponibles .Cada procesador cifrar a diferentes bloques de datosutilizando la misma clave. Por ejemplo, con el nde cifrar un n umero n de bloques de datos conprocesadores p, bloques de datos de N/P se cifrar anpor cada procesador. Como cada procesadortiene sus propios bloques de datos y una clave(incrementos datos localidad), todas las rondas (10o 12 o 14 consta de cuatro transformaciones) ser anejecutadas por cada procesador para cifrar cadabloque de datos.Tras el cifrado de todos los bloques de datos decada procesador, los datos cifrados se fusionar anen la estructura de arbol y volver de nuevo alprocesador principal. Por ejemplo, si hay cuatroprocesadores trabajando en paralelo, el procesadorP1 enviar a sus datos cifrados a P0 y P0 fusionar asus datos cifrados con P1, P3 procesador enviar asus datos cifrados a P2 y P2 fusionar a sus datoscifrados con P3.Por ultimo procesador P2 enviar a sus (P2 y P3)datos cifrados a P0 y P0 se fusionar a sus (P0 yP1) datos cifrados con P2. Esta t ecnica de la fusi ony la devoluci on de datos al procesador principalaumentar a la concurrencia y reducir el tiempo deinactividad de cada procesador.

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    10/12

    10

    El archivo de texto y una clave se proporcionancomo entradas al sistema.

    El archivo de texto plano se divide ensegmentos de acuerdo al n umero deprocesadores, en funci on del tama no delarchivo para activar el procesamiento paralelo.

    Una nueva clave se genera utilizando la llavesuministrada como entrada.

    Cada parte del archivo se encripta por separadopara nalmente juntarse en un archivo solo.

    Fig. 4. Desarrollo para 2 procesadores

    v o i d C i p he r ( b y t e [ ] i n , b y t e [ ] o ut , b y t e [ ] w ) {n P r o c e ss o r s = 4 ;i n t n B l c k P e r P c r = t N um be r Of B lc k s / n P c r ;i n t r ank ;

    i f ( r a nk == p r o c e s s o r 0 ) {m y p o in t er [ 0 ] = n B lc k Pe r Pc r d a t a b l o ck ss en d n B lc kP er Pc r d a ta t o r e s t o f t h e p r o c es s o rss en d t h e same key t o o t h e r p r o c e ss o r s }e l s e {r e c e i v e t h e n B lc k Pe r Pc r b l o ck s f ro m p r o c e s s o r 0m y p o in t er [ 0 ] = n B lc k Pe r Pc r d a t a b l o ck sr e c e i v e t h e k ey from t h e p r o ce s so r 0 }E n c r y p t i o n ( m y p o i n t e r [ 0 ] ) ;

    III. R ESULTADOS

    Para los tiempos de ejecuci on solo se tuvo encuenta el tiempo de cifrado dado que el tiempo dedescifrado presenta resultados similares.Diferentes tama no de archivos se utilizan parael cifrado tanto en el ambiente secuencial y en

    paralelo y el tiempo necesario para su ejecuci onse calculan y las observaciones se muestran en laTabla1 utilizando un AES-128 para 4 procesadores.

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    11/12

    11

    Los resultados de la simulaci on muestran que elarchivo contiene texto cifrado del texto plano, perocifrado con dos claves diferentes. Esto hace quesea imposible para los criptoanalistas de adivinarlas claves, incluso un conjunto de texto cifradoy combinaciones de texto plano con el algoritmoimplementado se conoce como el mecanismo clavede generaci on solo es conocido por el remitente yel receptor. El duplicado de la llave no se puedeadivinar, aunque la llave proporciona es atrapado.

    Se present o el algortimo de cifrado sim etricoAES, se realiz o una implementaci on secuencialen lenguaje C, con clave de 128 bits, adaptandoluego esta implementaci on a herramientas deprogramacion paralela en MPI. Se realiz o unanalisis de los tiempos de ejecuci on resultantesde las distintas implementaciones para distintostama no de datos, observando la eciencia de laimplementaci on del algoritmo en MPI. En todoslos casos se logra un aceleraci on del tiempo decomputo importante con respecto al secuencial.Hoy en d a existen limitaciones en la velocidadde los procesadores debido a problemas t ermicosy de consumo, pero este trabajo mostro queutilizando herramientas de programaci on paralelase puede aprovechar el paralelismo que proveen lasarquitecturas multicores actuales, y de esta forma,poder acelerar el computo de los algortimos, enparticular AES, un algoritmo de cifrado est andarmuy utilizado.

    IV. C ONCLUSIONES Y D ISCUCIONES

    Se comprob o que se logra una buena aceleraci oncon las implementaciones paralelas al cifrardistintos tama nos de datos, en particular delalgortimo implementado con MPI, de esta formaes posible reducir el costo de cifrado de datos ya

    sea para almacenarlos o para hacer transferenciasimportante de datos sensibles sobre una red p ublica.

    V. T RABAJO A F UTURO

    Nuestra aplicaci on alcanza hasta 7 veces m asveloz sobre la implementaci on secuencial. Nuestraimplementaci on se puede aplicar para los an alisisinform atico que requiere alta velocidad de cifradode datos. En el futuro, vamos a centrarnos en lasimplementaciones ecientes de otros algoritmos decifrado comunes de clave sim etrica, como Blowsh,Serpent y Twosh. Adem as, el trabajo futuroincluir a tambi en implementaciones MPI de hashy algoritmos de clave p ublica(por ejemplo, MD5,SHA-1 y RSA).

  • 8/10/2019 UN ENFOQUE PARALELO PARA MEJORARLA SEGURIDAD DE DATOS

    12/12

    12

    R EFERENCES[1] G.Manikandan, N.Sairam, M.Kamarasan, A Hybrid Approach

    For Security Enhancement by Compressed Crypto-StegnoScheme in Research Journal of Applied Sciences, Engineeringand Technology,Vol 4(6) ,2012, 608-614.

    [2] Implementing Cryptographic Techniques in Message PassingInterface Systems. A.Brillia, D. Jagadiswary, R. Muthu VenkataKrishnan,2010

    [3] Parallelism of AES Algorithm via MPI. Ozgur Pekcagliyan,Computer Engineer, Nurdan Saran, Department of ComputerEngineering, Cankaya University, Ankara,2013.

    [4] J. John Raybin Jose and E. George Dharma Prakash Raj,A Survey on the Performance of Parallelized SymmetricCryptographic Algorithms,in International Journal of Researchand Reviews in Computer Science (IJRRCS) , June 2012.

    [5] Osvaldo Gervasi, Diego Russo, Flavio Vella, The AESImplementation based on OpenCL for Multi/Many Core.architecture, in International Conference on ComputationalScience and Its Applications, 2010.

    [6] Kahraman Akedmir et al, Breakthorugh AES performance withIntel AES new instructions, Intel, 2010.

    [7] Helger Lipmaa, Phillip Rogaway, David Wagner Comments

    to NIST concerning AES Modes of Operations: CTRModeEncryption.[8] Michael Kipper, Joshua Slavkin, Dmitry Denisenko

    Implementing AES on GPU Final Report University of Toronto, April 20, 2009.

    [9] National Institute of Standards and Technology FederalInformation - Processing Standards Publication 197 November26, 2001.

    [10] P. Hagerty and T. Draper, Entropy Bounds and Statistical Tests,Random Bit Generator Workshop, (2012) December.

    [11] J. Daemen, V. Rijmen. The Design of Rijndael: AES TheAdvanced Encryption Standard. New York, USA: SpringerVerlag, 2002.

    [12] P. Pal Chaudhuri, D. Roy Chowdhury, S. Nandi andS. Chattopadhyay, Additive Cellular Automata Theory and

    Applications, Vol-1, IEEE Computer Society Press, USA, 1997.[13] F. Standaert , G.Rouvroy , J. Quisquater, and J. Legat, A

    methodology to implement block ciphers in recongurablehardware and its application to rst and compact AESrijndael,FPGA-2003,pp-281-291, califonia, 2003.

    [14] M. Szaban, F. Seredynski, and Pascal Bouvry, EvolvingCollective Behaviour of Cellular Automata for Cryptography,IEEE MELECON 2006.

    [15] W. Gropp, E. Lusk, N. Doss, and A. Skjellum, A HighPerformance, Portable Implementation of the Mpi MessagePassing Interface Standard, Parallel Computing, vol. 22, no.6, pp. 789-828, 1996. Parallel Computing, vol. 22, no. 6, pp.789-828, 1996.

    [16] Darrel Hankerson, Julio Lopez Hernandez, Alfred Menezes,Software Implementation of Elliptic Curve Cryptography overBinary Fields, 2000.

    [17] Certicom, Standards for Efcient Cryptography, SEC 2:Recommended Elliptic Curve Domain Parameters, Version 1.0,September 2000.