1 / 70
Construindo hardware .
para criptografia ...
O que ´e preciso considerar?
Luckas Farias (Judocka)
luckas.judocka@gmail.com
luckas.farias@usp.br
Engenharia da Computa¸c˜ao - Escola Polit´ecnica
Universidade de S˜ao Paulo - USP
07 de Julho de 2016
Cronograma
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
3 / 70
Luckas, quem ´e vocˆe?
Formado em Ciˆencia da Computa¸c˜ao - UEL
Mestrando em Engenharia da Computa¸c˜ao - USP
Escoteiro
Fotografo
Membro IEEE
Young Professionals
Mentor para ramos estudantis
Geek em eventos:
RoadSec
Latinoware
CPBR
BSideSP
STEP
Hackathon
CryptoRave
Engenheiro de cora¸c˜ao
4 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
5 / 70
Custos da criptografia?
Tempo?
6 / 70
Custos da criptografia?
Tempo?
Processamento?
6 / 70
Custos da criptografia?
Tempo?
Processamento?
Conhecimento?
6 / 70
Custos da criptografia?
Tempo?
Processamento?
Conhecimento?
Otimiza¸c˜oes?
6 / 70
Custos da criptografia?
Tempo?
Processamento?
Conhecimento?
Otimiza¸c˜oes?
Um pouco mais real...
6 / 70
MICAz (ATMega128)
Artigo: “Implementa¸c˜ao eficiente de criptografia
de curvas elipticas em sensores sem fio”
7 / 70
ARM processor at 600MHz
Artigo: “A Performance Comparison of Elliptic Curve
Scalar Multiplication Algorithms on Smartphones”
8 / 70
Solu¸c˜oes da Literatura
Board Curve Cycles Time
8-bit processor Atmega 128 163-bit ECC 111.183.513 13.9 segundos
Dispositivos MICAz (ATMega128) sect163k1 7.022.289 0.95 segundos
Dispositivos MICAz (ATMega128) sect163k1 5.100.400 0.69 segundos
Texas Instrument MSP430 ECC 160-bit key 5.400.000
8-bit processor Atmega 128 ECC 163-bit key 3.930.000 (GLV)
8-bit processor Atmega 128 ECC 163-bit key 5.945.000 (Montgomery)
9 / 70
Criptografia em Hardware
10 / 70
Criptografia em Hardware
FPGA
10 / 70
Custo de opera¸c˜oes em ECC
Eberle
NIST curves Curvas gen´ericas
F163 F163
62% Multiplica¸c˜ao 81% Multiplica¸c˜ao
11 / 70
Visualmente
12 / 70
Paraleliza¸c˜ao da Arquitetura
Eberle
NIST curves Curvas gen´ericas
F163 F163
62% Multiplica¸c˜ao 81% Multiplica¸c˜ao
36% com Hardware 20% com Hardware
103.33ns 1,356.11ns
13 / 70
Visualmente
Eficiˆencia de 156,25% em curvas NIST
Eficiˆencia de 125,00% em curvas gen´ericas
14 / 70
Alguns resultados de hardware
15 / 70
Estudo de Paralelismo F512
16 / 70
Estudo de Paralelismo F512
17 / 70
Software
18 / 70
Hardware
19 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
20 / 70
O que ´e Criptografia?
Criptografia ´e o estudo de t´ecnicas matem´aticas que visam a
seguran¸ca da informa¸c˜ao, por meio das quais ´e poss´ıvel obter-se a
integridade dos dados, autenticidade das entidades e autenticidade
da informa¸c˜ao.
21 / 70
O que ´e Criptografia?
Criptografia ´e o estudo de t´ecnicas matem´aticas que visam a
seguran¸ca da informa¸c˜ao, por meio das quais ´e poss´ıvel obter-se a
integridade dos dados, autenticidade das entidades e autenticidade
da informa¸c˜ao.
OK.... Mas isso ´e muito formal, n˜ao?
21 / 70
Necessidade de comunica¸c˜ao!
22 / 70
Todos PRECISAM
se comunicar
1
1
Cinderela, Disney, 22 de Maio de 1950
23 / 70
H´a quem quer
ler a mensagem...
2
...Mesmo essa n˜ao sendo destinada a ele...
2
Mal´evola em “A bela adormecida”, Disney, 06 de Fevereiro de 1959
24 / 70
E com a perda
da informa¸c˜ao...
3
...As coisas geralmente n˜ao acabam bem.
3
“A bela adormecida”, Viktor Mikhailovich Vasnetsov
25 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
26 / 70
Tipos de criptografia
Existem 2 grandes grupos em que os algoritmos
criptogr´aficos s˜ao divididos.
27 / 70
Tipos de criptografia
Existem 2 grandes grupos em que os algoritmos
criptogr´aficos s˜ao divididos.
Criptografia Sim´etrica
Criptografia Assim´etrica
27 / 70
Cifras sim´etricas
28 / 70
A chave que fecha abre
29 / 70
Criptografia Assim´etrica
30 / 70
Quem fecha n˜ao abre
31 / 70
Exemplos
ElGamal
Diffie–Hellman
RSA
Curvas El´ıpticas Criptogr´aficas o/
P´os-quantica o/o/
32 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
33 / 70
Design Modular
Por exemplo, a implementa¸c˜ao de uma
assinatura feita totalmente em hardware deve
considerar que a ´unica entrada no dispositivo ´e a mensagem a
ser assinada e a ´unica sa´ıda ´e a assinatura desta mensagem.
O processo de implementa¸c˜ao pode ser representado como:
34 / 70
Escolha do hardware
35 / 70
Fabricantes
36 / 70
Placas legais
Altera DE0-nano
37 / 70
Placas legais
FPGA 101
38 / 70
Placas legais
Altera DE2
39 / 70
Placas legais
Altera DE2i-150
40 / 70
Placas legais
Parallella - Zynq Xilinx
41 / 70
Placas legais
Zedboard - Zynq Xilinx
42 / 70
N˜ao t˜ao embarcado assim...
Net FPGA
43 / 70
O FUTURO
44 / 70
O FUTURO
Intel Xeon FPGA
45 / 70
O FUTURO
Intel Xeon FPGA
46 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
47 / 70
O que ´e AES?
Advanced Encryption Standard
O AES ´e um algoritmo que usa criptografia sim´etrica, sendo
capaz de codificar e decodificar blocos de informa¸c˜ao de 128 bits.
Parˆametros
Data (bits) Rounds key size (bits)
128 10 128
128 12 192
128 14 256
48 / 70
Codificador e Decodificador
49 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
50 / 70
M´odulos para aritm´etica
Opera¸c˜oes em F2m s˜ao tipicamente f´aceis de se implementar em
hardware, se comparados a implementa¸c˜ao sobre Fp.
A adi¸c˜ao em F2m n˜ao possui uma propaga¸c˜ao de carry (vai um).
Al´em disso, o quadrado em Fp ´e semelhante a uma multiplica¸c˜ao,
entretanto em corpos bin´arios existem otimiza¸c˜oes para calcular-se
em 1 pulso de clock.
51 / 70
Exemplo no corpo F24
Em F24 o polinˆomio irredut´ıvel ´e f (z) = z4 + z1 + z0.
Exemplos de opera¸c˜oes aritm´eticas:
Adi¸c˜ao: (z3 + z2 + 1) ⊕ (z2 + z + 1) = z3 + z
Subtra¸c˜ao: (z3 + z2 + 1) ⊕ (z2 + z + 1) = z3 + z
Multiplica¸c˜ao: (z3 + z2 + 1).(z2 + z + 1) = z5 + z + 1
= z.z4 + z + 1 = z(z + 1) + z + 1 = z2 + z + z + 1 = z2 + 1
Invers˜ao: (z3 + z2 + 1)−1 = z2
Sabendo que (z3 + z2 + 1).z2mod(z4 + z + 1) = 1
52 / 70
Multiplica¸c˜ao esquem´atico
Caso a redu¸c˜ao polinomial f (z) seja fixa
pode-se projetar o multiplicador com um n´ıvel menor de
complexidade, isso pois a redu¸c˜ao precisa de um registrador menor.
53 / 70
Quadrado de um polinˆomio
A representa¸c˜ao bin´aria de a(z)2 ´e obtida inserindo 0 entre os
valores dos bits (posi¸c˜oes ´ımpares do polinˆomio).
54 / 70
Exemplo de Hardware
Se considerarmos o corpo F27 cujo
polinˆomio irredut´ıvel seja f (z) = z7 + z + 1, temos que:
c = a2
c = a6z12
+ a5z10
+ a4z8
+ a3z6
+ a2z4
+ a1z2
+ a0z0
c = (a6 +a3)z6
+a6z5
+(a5 +a2)z4
+a5z3
+(a4 +a1)z2
+a4z +a0
55 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
56 / 70
Retomando...
57 / 70
Paralelismo em F512
58 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
59 / 70
Como se proteger
de ataques?
Considerando protocolos sem backdors, os ataques sobre
maneiras de implementar recaem sobre:
Ataques de medida de tempo
Ataques de consumo de potˆencia
”Ladr˜oes de galinha”
60 / 70
Ataques de medida
O algoritmo depende dos elementos
Em busca de “otimiza¸c˜oes” como multiplicar por 0000...0010
Equa¸c˜oes n˜ao completas
Depende de “conferˆencias”
Solu¸c˜oes
Usar equa¸c˜oes completas
N˜ao usar sistemas que necessitam de checagem
Mesmo parecendo burro, fa¸ca com que sempre tenha o mesmo
tempo
61 / 70
Perspectivas futuras
Curvas El´ıpticas (mais) Robustas
P´os-quˆantica
62 / 70
Sum´ario
Motiva¸c˜ao
Contextualiza¸c˜ao
Criptografia
Hardware!
AES
M´odulos em Corpos Bin´arios
Custo de Opera¸c˜oes
Precau¸c˜oes
Ataques conhecidos e vulnerabilidades
63 / 70
Pollard Rho
64 / 70
Pollard Rho
65 / 70
Side channel attack
66 / 70
Side channel attack
67 / 70
Side channel attack
68 / 70
Interessou?
Ent˜ao m˜aos `a obra!
69 / 70
Obrigado pela aten¸c˜ao
Obrigado a CAPES pela bolsa que me permite realizar minha pesquisa;
Ao Prof. Paulo e ao Prof. Bruno por estar me orientando neste mestrado;
Obrigado a Karoline pelas revis˜oes.
E-mail: luckas.judocka@gmail.com
E-mail: luckas.farias@usp.br
Facebook: fb.com/luckas.judocka
Linkedin: br.linkedin.com/in/luckas
70 / 70

TDC2016SP - Trilha Embarcados