La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones Aritméticas en Dispositivos de Hardware Reconfigurable.

Presentaciones similares


Presentación del tema: "Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones Aritméticas en Dispositivos de Hardware Reconfigurable."— Transcripción de la presentación:

1 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones Aritméticas en Dispositivos de Hardware Reconfigurable

2 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Antecedentes y Motivación

3 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Modelo de Capas para Sistemas de Seguridad Aritmética Computacional : Suma, Elevar al cuadrado, multiplicación, inversión y Exponenciación Algoritmos de Llave Pública: RSA, ECC Algoritmos de llave Simétrica: AES, DES, RC4, etc.. Algoritmos de Llave Pública: RSA, ECC Algoritmos de llave Simétrica: AES, DES, RC4, etc.. Funciones Criptográficas: Cifrar/Descifrar, Firmar/Verificar Funciones Criptográficas: Cifrar/Descifrar, Firmar/Verificar Servicios de Seguridad: Confidencialidad, Integridad de Datos, Autenticación, No-Repudio Protocolos de Comunicación: SSL/TLS/WTLS, IPSEC, IEEE 802.11, etc. Aplicaciones: correo electrónico seguro, monedero digital, elecciones electrónicas, cortafuegos, etc.

4 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Servicios de Seguridad Confidencialidad Autenticación Identificación Integridad No-repudio Control de acceso Disponibilidad

5 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Seguridad: Bloques Básicos Cifrado/descifrado provee: –confidencialidad, puede proveer autenticación e integridad de datos. Funciones hash proveen: –Protección de integridad, puede proveer autenticación Firmas Digitales proveen: –autenticación, protección de integridad, y no- repudio.

6 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Plataformas de implementación para algoritmos criptográficos Software  Procs de prop. Gen. y  Procs empotrados  Procs de prop. Gen. y  Procs empotrados Algoritmos Criptográficos Hardware clásicoHardware Reconfigurable FPGAs VLSI

7 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Pero: ¿Para qué implementar algoritmos Criptográficos en hardware? Dos razones principales: 1.Implementaciones en software son demasiado lentas (alg. simétricos: vel. de cifrado100 Mbit/sec alg. De llave pública: del orden de mili segundos) 2.Las implementaciones en Hardware son intrínsicamente más seguras: Acceso a las llaves y modificaciones algorítmicas son considerablemente más difíciles.

8 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Virtex-II Platform FPGA Switch Matrix Switch Matrix CLB, IOB, DCM CLB, IOB, DCM Active Interconnect™ Fully buffered Fast, predictable 18b x 18b multiplier 200+ MHz pipelined Multipliers BRAM 18KBit True Dual Port Up to 3 Mbits / device Block RAM Switch Matrix Slice S0 Slice S1 Slice S2 Slice S3 Powerful CLB 8 LUTs 128b distributed RAM Wide input functions (32:1) Support for slices based multipliers

9 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Tarjeta Spartan-3

10 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Virtex-II Pro Feature/Product XC 2VP2 XC 2VP4 XC 2VP7 XC 2VP20 XC 2VP30 XC 2VP40 XC 2VP50 XC 2VP70 XC 2VP100 XC 2VP125 EasyPath cost reduction---- XCE 2VP30 XCE 2VP40 XCE 2VP50 XCE 2VP70 XCE 2VP100 XCE 2VP125 Logic Cells3,1686,76811,08820,88030,81643,63253,13674,44899,216 125,136 Slices1,4083,0084,9289,28013,69619,39223,61633,08844,096 55,616 BRAM (Kbits)2165047921,5842,4483,4564,1765,9047,992 10,008 18x18 Multipliers12284488136192232328444 556 Digital Clock Management Blocks 4448888812 Config (Mbits)1.313.014.498.2111.3615.5619.0225.633.6542.78 PowerPC Processors 011222222 4 Max Available Multi-Gigabit Transceivers* 4488812*16*2020*24* Max Available User I/O*2043483965646448048529961164 1200 http://www.xilinx.com/products/tables/fpga.htm#v2p 1 Logic Cell = (1) 4-input LUT + (1) FF + (1) Carry Logic 1 CLB = (4) Slices

11 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Cómputo Reconfigurable ASIC Procesador Hardware Reconfigurable Desempeño Flexibilidad Costo por Unidad Costo de Desarrollo

12 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Cómo se escoge la plataforma de Implementación Algunos factores que determinan esta elección son: Desempeño deseado Costo [por unidad, costo de desarrollo] Consumo de energía Flexibilidad –Cambio de parámetros –Agilidad algorítmica Seguridad Física

13 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Ventajas del hardware Reconfigurable 1.Agilidad Algorítmica 2.Algoritmos actualizables [upgrading] 3.Eficiencia Arquitectural 4.Eficiencia en disposición de recursos 5.Modificación algorítimica 6.Aceleración (speedup) con respecto al software 7.Eficiencia de costo (con respecto a ASIC)

14 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Ventajas algorítmicas  Operaciones lógicas simples (a nivel de bit)  Replicación de Bloques  Alta longitud de bloque FPGAs  FPGAs funcionan a nivel bit  Los bloques pueden ser replicados  Es posible obtener paralelismo real  (Alto número de puertos Entrada/Salida)  Mayor Seguridad Física  Flexibilidad  Alta Densidad Algoritmos aritméticos en FPGAs

15 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Operaciones a nivel bit (XOR, AND, OR, etc.) LUT 4 x 1 X = a + b Y = X + c Z = Y + d Z = a + b + c + d Uso de lógica 4-input/1-output usa menos espacio Propiedades útiles de FPGAs

16 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Substitución a.Valores precalculados almacenados en memoria  ahorra tiempo de cómputo b.Valores calculados en tiempo de cómputo  consume tiempo c.Misma idea que en (a) pero uso de memorias dedicadas  solución rápida Propiedades útiles de FPGAs

17 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Permutación Permutación = [1, 5, 4, 3, 2, 6] Rearreglo de bits (realambrado)  operación gratuita Propiedades útiles de FPGAs

18 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Corrimientos y rotación Shift left IN[31:0] 8-bit A[31:24] B[23:16] C[15:8] D[7:0] (rotación a la izquierda 8 bit) B[23:16] C[15:8] D[7:0] A[31:24] IN[24:0] OUT[31:0] 8-bit A[31:24] B[23:16] C[15:8] D[7:0] A[31:24] B[23:16] C[15:8] D[7:0] Propiedades útiles de FPGAs

19 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Estrategia Iterativa: ejecuta n ciclos de reloj para una operación. Utiliza menos hardware. baja velocidad. Estrategia Pipeline: La salida es producida en cada ciclo de reloj. Utiliza mucho hardware. Alta velocidad. Iterative Pipeline Propiedades útiles de FPGAs

20 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez X = a + b Y = X + c Z = Y + d X = a + b Y = a + b + c Z = a + b + c + d Un ciclo Tres ciclos Y espera a X y Z espera a Y X, Y, y Z son independientes bloques de 128-bit 88 16 32... procesadores De 8 bits procesadores de 16 bits procesadores de 32 bits Software bloques de 128 bits bloques de 128 bits FPGAs Propiedades útiles de FPGAs: Paralelismo

21 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Case of Study 1: GF(2 m ) Squaring

22 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Squaring: Example Let A be an element of the finite field F=GF(2 5 ). Then, the square of A is given as, a 4 0 a 3 0 a 2 0 a 1 0 a 0 In general, for an arbitrary element A in the field F=GF(2 5 ), we have, a 4 a 3 a 2 a 1 a 0 * a 4 a 3 a 2 a 1 a 0

23 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Squaring: Software Solution rct_word sqr_table_low[256] = { 0, 1, 4, 5, 16, 17, 20, 21, 64 65, 68, 69, 80, 81, 84, 85, 256, 257, 260, 261, 272, 273, 276, 277, 320, 321, 324, 325, 336, 337, 340, 341, 1024, 1025, 1028, 1029, 1040, 1041, 1044, 1045, 1088, 1089, 1092, 1093, 1104, 1105, 1108, 1109, 1280, 1281, 1284, 1285, 1296, 1297, 1300, 1301, 1344, 1345, 1348, 1349, 1360, 1361, 1364, 1365, 4096, 4097, 4100, 4101, 4112, 4113, 4116, 4117, 4160, 4161, 4164, 4165, 4176, 4177, 4180, 4181, 4352, 4353, 4356, 4357, 4368, 4369, 4372, 4373, 4416, 4417, 4420, 4421, 4432, 4433, 4436, 4437, 5120, 5121, 5124, 5125, 5136, 5137, 5140, 5141, 5184, 5185, 5188, 5189, 5200, 5201, 5204, 5205, 5376, 5377, 5380, 5381, 5392, 5393, 5396, 5397, 5440, 5441, 5444, 5445, 5456, 5457, 5460, 5461, 16384, 16385, 16388, 16389, 16400, 16401, 16404, 16405, 16448, 16449, 16452, 16453, 16464, 16465, 16468, 16469, 16640, 16641, 16644, 16645, 16656, 16657, 16660, 16661, 16704, 16705, 16708, 16709, 16720, 16721, 16724, 16725, 17408, 17409, 17412, 17413, 17424, 17425, 17428, 17429, 17472, 17473, 17476, 17477, 17488, 17489, 17492, 17493, 17664, 17665, 17668, 17669, 17680, 17681, 17684, 17685, 17728, 17729, 17732, 17733, 17744, 17745, 17748, 17749, 20480, 20481, 20484, 20485, 20496, 20497, 20500, 20501, 20544, 20545, 20548, 20549, 20560, 20561, 20564, 20565, 20736, 20737, 20740, 20741, 20752, 20753, 20756, 20757, 20800, 20801, 20804, 20805, 20816, 20817, 20820, 20821, 21504, 21505, 21508, 21509, 21520, 21521, 21524, 21525, 21568, 21569, 21572, 21573, 21584, 21585, 21588, 21589, 21760, 21761, 21764, 21765, 21776, 21777, 21780, 21781, 21824, 21825, 21828, 21829, 21840, 21841, 21844, 21845 };

24 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Squaring: Software Implementation void rce_FieldSqr2k_Random(rct_word *ax, rct_word *tx, rce_context *cntxt, rct_octet *offsetptr) { rct_index i; rct_word C, S; rct_index wlen, blen_p; rct_word *tmp; wlen = cntxt->ecp->wlen; blen_p = cntxt->ecp->blen_p; tmp = (rct_word *) offsetptr; tmp[0]=0; tmp[1]=0; for (i=0; i<wlen; i++) { S = sqr_table_low[(ax[i]&0xff)]; S ^= (sqr_table_low[(ax[i]>>8)&0xff]<<16); C = sqr_table_low[(ax[i]>>16)&0xff]; C ^= (sqr_table_low[(ax[i]>>24)&0xff]<<16); tmp[i*2] = S; tmp[i*2+1] = C; } RCE_FIELD_REDUC2K(cntxt) (tmp, blen_p, cntxt->ecp->poly); //rce_residue2k(tmp, blen_p, cntxt->ecp->poly); for (i=0; i<wlen; i++) tx[i] = tmp[i]; }

25 Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez A = 1111 A 2 = 1010101 Squaring: Polynomial Multiplication Step FPGA Implementation [by Nazar Saqib]


Descargar ppt "Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones Aritméticas en Dispositivos de Hardware Reconfigurable."

Presentaciones similares


Anuncios Google