Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones...

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

Transcript of Aritmética Computacional invierno 2005 Francisco Rodríguez Henríquez Implementaciones...

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Implementaciones Aritméticasen Dispositivos de Hardware

Reconfigurable

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Antecedentes y Motivación

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

Aritmética Computacional

invierno 2005Francisco 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

Aritmética Computacional : Suma, Elevar al cuadrado, multiplicación, inversión y Exponenciación

Algoritmos de Llave Pública: RSA, ECCAlgoritmos de llave Simétrica: AES, DES, RC4, etc..

Algoritmos de Llave Pública: RSA, ECCAlgoritmos 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

Servicios de Seguridad: Confidencialidad, Integridad de Datos, Autenticación, No-Repudio

Protocolos de Comunicación: SSL/TLS/WTLS, IPSEC, IEEE 802.11, etc.

Protocolos de Comunicación: SSL/TLS/WTLS, IPSEC, IEEE 802.11, etc.

Aplicaciones: correo electrónico seguro, monedero digital, elecciones electrónicas, cortafuegos, etc.

Aplicaciones: correo electrónico seguro, monedero digital, elecciones electrónicas, cortafuegos, etc.

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Servicios de Seguridad

• Confidencialidad

• Autenticación

• Identificación

• Integridad

• No-repudio

• Control de acceso

• Disponibilidad

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

Aritmética Computacional

invierno 2005Francisco 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.

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Plataformas de implementación para algoritmos criptográficos

Software

Procs de prop. Gen. yProcs empotrados

Procs de prop. Gen. yProcs empotrados

Algoritmos Criptográficos

Hardware clásico Hardware Reconfigurable

FPGAsFPGAsVLSIVLSI

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

Aritmética Computacional

invierno 2005Francisco 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.

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Virtex-II Platform FPGA

SwitchMatrix

SwitchMatrix

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

SwitchMatrix

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

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Tarjeta Spartan-3

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Virtex-II Pro

Feature/ProductXC

2VP2XC

2VP4XC

2VP7XC

2VP20XC

2VP30XC

2VP40XC

2VP50XC

2VP70XC

2VP100XC

2VP125

EasyPath cost reduction - - - -XCE

2VP30XCE

2VP40 XCE

2VP50 XCE

2VP70XCE

2VP100 XCE

2VP125

Logic Cells 3,168 6,768 11,088 20,880 30,816 43,632 53,136 74,448 99,216 125,136

Slices 1,408 3,008 4,928 9,280 13,696 19,392 23,616 33,088 44,096 55,616

BRAM (Kbits) 216 504 792 1,584 2,448 3,456 4,176 5,904 7,992 10,008

18x18 Multipliers 12 28 44 88 136 192 232 328 444 556

Digital Clock Management Blocks

4 4 4 8 8 8 8 8 12 12

Config (Mbits) 1.31 3.01 4.49 8.21 11.36 15.56 19.02 25.6 33.65 42.78

PowerPC Processors

0 1 1 2 2 2 2 2 2 4

Max Available Multi-Gigabit Transceivers*

4 4 8 8 8 12* 16* 20 20* 24*

Max Available User I/O* 204 348 396 564 644 804 852 996 1164 1200

http://www.xilinx.com/products/tables/fpga.htm#v2p

1 Logic Cell = (1) 4-input LUT + (1) FF + (1) Carry Logic1 CLB = (4) Slices

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Cómputo Reconfigurable

ASIC ProcesadorHardwareReconfigurable

Desempeño

Flexibilidad

Costo por Unidad

Costo de Desarrollo

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

Aritmética Computacional

invierno 2005Francisco 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

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

Aritmética Computacional

invierno 2005Francisco 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)

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

Aritmética Computacional

invierno 2005Francisco 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

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Operaciones a nivel bit (XOR, AND, OR, etc.)

LUT4 x 1LUT4 x 1

X = a + bY = 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

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Substitución

a. Valores precalculados almacenados en memoria ahorra tiempo de cómputob. Valores calculados en tiempo de cómputo consume tiempoc. Misma idea que en (a) pero uso de memorias dedicadas solución rápida

Propiedades útiles de FPGAs

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

Aritmética Computacional

invierno 2005Francisco 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

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

Aritmética Computacional

invierno 2005Francisco 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

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

1st

Round2nd

Roundnth

RoundLatch Latch Latch

CE CLK CE CLK CE CLK

IN Out

OneRound

CE CLK

INSelect

OutLatch

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

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

X = a + bY = X + cZ = Y + d

X = a + bY = a + b + cZ = a + b + c + d

Un cicloTres ciclos

Y espera a X y Z espera a Y X, Y, y Z son independientes

bloques de 128-bitbloques

de 128-bit

88 88

1616 1616

3232 3232

...

...

...

procesadoresDe 8 bits

procesadoresde 16 bitsprocesadoresde 32 bits

Software

bloques de 128 bits

bloques de 128 bits

bloques de 128 bits

bloques de 128 bits

FPGAs

Propiedades útiles de FPGAs: Paralelismo

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Case of Study 1: GF(2m) Squaring

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Squaring: Example

• Let A be an element of the finite field F=GF(25). Then, the square of A is given as,

a4 0 a3 0 a2 0 a1 0 a0

In general, for an arbitrary element A in the field F=GF(25), we have,

1

0

21

0

1

0

2m

i

ii

m

i

ii

m

i

ii xaxaxaxAxAxAxC

a4a3a2a1a0 * a4a3a2a1a0

a4a0 a3a0 a2a0 a1a0 a0a0

a4a1 a3a1 a2a1 a1a1 a0a1a4a2 a3a2 a2a2 a1a2 a0a2

a4a3 a3a3 a2a3 a1a3 a0a3

a4a4 a3a4 a2a4 a1a4 a0a4

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

Aritmética Computacional

invierno 2005Francisco 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};

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

Squaring: Software Implementationvoid 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];}

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

Aritmética Computacional

invierno 2005Francisco Rodríguez Henríquez

0

2

2

4

4

6

6

2

01

2

2

3

3

axaxaxaA

axaxaxaA

A = 1111A2= 1010101

Squaring: Polynomial Multiplication Step FPGA Implementation [by Nazar Saqib]