• Nenhum resultado encontrado

Implementação em Software de Criptografia Baseada em Emparelhamentos para Redes de Sensores Usando o Microcontrolador MSP430

N/A
N/A
Protected

Academic year: 2021

Share "Implementação em Software de Criptografia Baseada em Emparelhamentos para Redes de Sensores Usando o Microcontrolador MSP430"

Copied!
8
0
0

Texto

(1)

1

Instituto de Computação, Universidade Estadual de Campinas (Unicamp)

{conradoplg,jlopez}@ic.unicamp.br

Abstract. We describe an efficient software implementation of Elliptic Curve Cryptography (ECC) and Pairing-Based Cryptography (PBC) for wireless sen- sor networks. Our implementation targets the MSP430 microcontroller, which is used in some sensors including the Tmote Sky and TelosB. For the PBC, we have implemented the pairing computation on MNT and BN curves over prime fields; for the ECC, the signature scheme ECDSA over prime fields for the 80-bit and 128-bit security levels. The main contributions of this work are an in-depth study of bilinear pairings algorithms and new optimizations for the prime field arithmetic in the MSP430.

Resumo. Descreve-se uma implementação eficiente em software de Criptogra- fia de Curvas Elípticas (CCE) e de Criptografia Baseada em Emparelhamentos (CBE) para redes de sensores sem fio. Nossa implementação foca a família de microcontroladores MSP430 de 16 bits, utilizada em sensores como o Tmote Sky e TelosB. Para a CBE, foram implementados emparelhamentos nas curvas MNT e BN sobre corpos primos; para a CCE, foi implementado o esquema de assinatura digital ECDSA sobre corpos primos para os níveis de segurança de 80 e 128 bits. As principais contribuições deste trabalho são um estudo apro- fundado dos algoritmos de emparelhamentos bilineares e novas otimizações na aritmética de corpos primos para a MSP430.

1. Introdução

Redes de sensores sem fio são compostas por inúmeros dispositivos posicionados em uma área de interesse, cuja finalidade é coletar dados sobre o ambiente e enviá-los para uma estação base próxima. Idealmente, tais sensores devem ter baixo custo (muitas vezes, são descartáveis) e por esta razão normalmente têm capacidade extremamente limitada. As- sim, proteger a sua comunicação, que é facilmente interceptável, consiste em um desafio que tem motivado muitos trabalhos. Como a fonte de energia de tais sensores é restrita, é importante que as primitivas criptográficas sejam implementadas da forma mais eficiente possível, aumentando a vida útil do sensor.

A abordagem mais simples para garantir a segurança em redes de sensores é o uso de criptografia simétrica. Nela, contudo, o problema de distribuição de chaves se torna um obstáculo. Pode-se utilizar uma mesma chave para todos os sensores, porém, se um atacante comprometer um dos sensores, toda a rede é comprometida. Pode-se utilizar uma chave para cada par de sensores, porém, torna-se inviável armazenar todas as chaves necessárias em cada sensor. Assim, foi bem estabelecida na literatura recente as vantagens

531

(2)

da criptografia assimétrica sobre a simétrica neste cenário. Na assimétrica, dois sistemas de chave pública se sobressaem: a Criptografia de Curvas Elípticas (CCE) e a Criptografia Baseada em Emparelhamentos (CBE).

Na CCE, para enviar uma mensagem cifrada, por exemplo, basta que o sensor obtenha a chave pública do destinatário e ele a utiliza para cifrar a mensagem. Contudo, ainda existe o problema de como autenticar chaves públicas, o que requer uma infra- estrutura de chaves públicas muitas vezes cara (ressalta-se, porém, a existência de técni- cas para reduzir tal custo, como certificados implícitos). Neste contexto, surgiu a Crip- tografia Baseada em Identidades (CBI), onde a chave pública consiste na identidade do participante (como seu e-mail ou número de série) e assim tais chaves são implicitamente autenticadas. A sua desvantagem é requerer um Centro de Geração de Chaves (CGC) responsável por gerar as chaves privadas dos participantes do sistema e que portanto pode se fazer passar por qualquer um deles. Porém, no cenário de redes de sensores sem fio, tal centro é aceitável porque os sensores confiam implicitamente no CGC, que consiste nos próprios administradores da rede. A CBI foi instanciada concretamente em 2000–2001 através da Criptografia Baseada em Emparelhamentos (CBE) com os trabalhos de Sakai, Ohgishi e Kasahara e de Boneh e Franklin.

Neste artigo, apresentam-se as contribuições da dissertação de mestrado

1

de mesmo título defendida no programa de Mestrado em Ciência da Computação do Ins- tituto de Computação da Universidade Estadual de Campinas. O objetivo de tal trabalho consiste em uma implementação eficiente em software de CCE e CBE para redes de sen- sores sem fio. A plataforma alvo é o microcontrolador de 16 bits MSP430 da Texas Ins- truments utilizada em sensores como Tmote Sky, TelosB e TinyNode. Tal plataforma foi escolhida por possuir um ambiente de simulação de fácil acesso que permite a implemen- tação mesmo sem o hardware subjacente; ser uma plataforma com grandes limitações de espaço e memória e portanto servindo como exemplo de cenário restrito; e por se acreditar que plataformas de 16 bits possam se tornar mais populares com o avanço da tecnologia de sensores.

2. A Família MSP430

Os microcontroladores da família MSP430 possuem várias características em comum como serem de 16 bits e possuírem o mesmo conjunto de 27 instruções e 12 registra- dores de propósito geral. A frequência de clock e tamanhos de ROM e RAM variam para cada membro — o MSP430F1611, utilizado pelo Tmote Sky e TelosB, possui clock de 8 MHz, 48 KB de ROM e 10 KB de RAM.

O conjunto de instruções da família MSP430 inclui adições, subtrações e shifts de apenas um bit. Não há instrução de divisão. Operandos podem ser referenciados através de quatro modos de endereçamento. Multiplicações de números inteiros são realizadas através de um multiplicador em hardware, um periférico mapeado em memória presente nos dois modelos citados. Tal multiplicador suporta quatro operações: multiplicar com ou sem sinal (MPY/MPYS), e multiplicar e acumular com ou sem sinal (MAC/MACS).

Para utilizar tal periférico, escreve-se os dois operandos de 16 bits em certas posições da memória, e após dois ciclos, tem-se o resultado de 32 bits em duas posições de memória de 16 bits (RESLO e RESHI). Caso seja utilizada a operação MAC ou MACS, o carry

1

disponível em http://www.lca.ic.unicamp.br/~conradoplg/dissertacao.pdf

(3)

da acumulação é disponibilizado em uma terceira posição da memória (SUMEXT). As- sim, esta plataforma apresenta a peculiaridade de serem necessárias leituras e escritas da memória para se realizar multiplicações.

O número de ciclos tomado na execução de uma instrução é calculado de forma re- lativamente simples, salvo algumas exceções. Primeiramente, é necessário um ciclo para se ler a instrução propriamente dita. Adiciona-se um ciclo para cada origem em memória (leitura) e dois ciclos para cada destino em memória (escrita). Finalmente, adiciona-se um ciclo para cada palavra de offset utilizada.

3. Contribuições

Em última instância, protocolos de CCE e CBE são construídos sobre a aritmética de corpos finitos. Neste trabalho, focou-se em corpos finitos primos, isto é, F

p

onde p é um primo grande. Para o nível de segurança de 80 bits, foi utilizado um primo de 160 bits, e para o nível de 128 bits, um primo de 256 bits.

Um corpo finito primo contém os números entre 0 e p − 1, inclusive, onde p é o módulo primo utilizado. Em software, tais números são representados por vetores de dígi- tos nativos da plataforma subjacente; seja n o número de dígitos necessários (no MSP430, n = 10 para primos de 160 bits e n = 16 para primos de 256 bits). A multiplicação de dois elementos de um corpo primo consiste na multiplicação inteira de precisão múltipla dos dois elementos de forma a obter um resultado de 2n dígitos, e a posterior redução módulo p de forma a obter um resultado de n dígitos. Tal operação de multiplicação no corpo compõe cerca de 75% do tempo de execução de protocolos de CCE e CBE. Por esse motivo, é de grande importância que ela seja otimizada o máximo possível, pois qualquer ganho em seu tempo de execução acarretará em ganhos significativos de desempenho no protocolo criptográfico sobrejacente.

3.1. Multiplicação de Precisão Múltipla

A multiplicação de inteiros de precisão múltipla geralmente é realizada com o algoritmo Comba, uma variação orientada a colunas do algoritmo usual de multiplicação que se aprende na escola. Em tal algoritmo, o dígito k do resultado (0 ≤ k < 2n) é calculado multiplicando os pares de dígitos cujos índices somam k e somando o resultado de cada multiplicação. Por exemplo, o dígito de índice k = 2 de c = ab é calculado com c

2

= a

0

b

2

+ a

1

b

1

+ a

2

b

0

. Também pode-se utilizar a multiplicação Híbrida [Gura et al. 2004], que combina o Comba com a técnica usual de forma a utilizar mais registradores.

A implementação mais rápida de multiplicação para a MSP430 conhecida até en-

tão era a descrita em [Scott and Szczechowiak 2007, Szczechowiak et al. 2009], onde é

utilizada a multiplicação Híbrida com grupos de tamanho 2. Tal método parece ser o

mais adequado sempre que existem registradores o suficiente na plataforma, como é o

caso da MSP430. Porém, tal abordagem não considera todos os recursos disponíveis da

plataforma. Estudando-se a multiplicação Comba, pode-se observar que cada coluna do

resultado é computada através de múltiplos passos de multiplicar e acumular. A observa-

ção chave para se melhorar o desempenho da multiplicação é que tal passo de multiplicar

e acumular é precisamente o que é fornecido pela operação MAC do multiplicador em

hardware da MSP430.

(4)

Figura 1. Passo na multiplicação Comba normal à esquerda e usando MAC à direita, computando a

0

b

1

Suponha que o ponteiro para o operando a esteja em r15 e o ponteiro do operando b esteja em r14, e os acumuladores sejam r4, r5 e r6, do menos para o mais signifi- cativo. Considere o passo de multiplicar e acumular de a

0

b

1

. Tal passo, na multiplicação Comba normal, está ilustrado na Figura 1 e consiste no seguinte código assembly:

mov 0(r14),&__MPY mov 2(r15),&__OP2 add &__RESLO,r4 addc &__RESHI,r5 adc r6

O mesmo passo, utilizando MAC, está ilustrado na Figura 1 e consiste no seguinte código:

mov 0(r14),&__MAC mov 2(r15),&__OP2 addc &__SUMEXT,r6

A versão utilizando MAC possui duas instruções, uma leitura e um endereço em palavra de offset a menos em relação à versão comum, utilizando portanto 4 ciclos a me- nos. Como cada passo é executado n

2

vezes, com n sendo o número de inteiros dos operandos, então tal ganho se torna considerável. Naturalmente, nota-se que tal compa- ração é com a multiplicação Comba normal, e não com a multiplicação Híbrida, que não possui um conceito de “passo” tão bem definido, dificultando comparações diretas. Con- tudo, resultados experimentais confirmam que o uso de Comba com MAC fornece um desempenho melhor do que o uso de Híbrida.

3.2. Redução

Para a redução modular, selecionou-se a redução Montgomery [Montgomery 1985] por

não necessitar de divisões, que não estão disponíveis no MSP430. Ao examinar tal algo-

ritmo, pode-se verificar que ele tem estrutura idêntica à multiplicação Comba. As únicas

(5)

diferenças são que os operandos consistem no módulo primo e em um número que é gerado no percorrer do algoritmo; e que o resultado é acrescentado ao número sendo reduzido. Por esse motivo, pode-se utilizar a mesma otimização com a operação MAC.

No contexto de CBE, encontrou-se uma otimização bastante eficaz para a redução modular. Foram utilizadas curvas elípticas BN [Barreto and Naehrig 2006], e nelas o módulo primo é dado pelo polinômio p(x) = 36x

4

+ 36x

3

+ 24x

2

+ 6x + 1, onde x é o parâmetro que define a curva sendo utilizada. Considere as curvas geradas pelos valores x = 2

38

+ 2

5

+ 2

4

+ 1 (adequada para o nível de segurança de 80 bits) e x = −2

62

− 2

55

− 1 (sugerida em [Nogami et al. 2008], adequada para 128 bits). Os módulos primos, nesses casos, são

p

1

= 0x2400 0000 6ED0 0000 7FE9 C000 419F EC80 0CA0 35C7, p

2

= 0x2523 6482 4000 0001 BA34 4D80 0000 0008

6121 0000 0000 0013 A700 0000 0000 0013,

respectivamente, na base 16. Pode-se observar que p

1

possui dois dígitos de 16 bits va- lendo zero enquanto p

2

possui cinco dígitos valendo zero e um dígito valendo um. Como a redução Montgomery é análoga a uma multiplicação, pode-se descartar os passos envol- vendo multiplicações por dígitos zero e otimizar passos envolvendo multiplicações por dígitos um. Por exemplo, para p

2

, antes eram necessários 16

2

= 256 passos de multi- plicar e acumular durante a redução Montgomery. Ignorando-se os passos envolvendo multiplicações por zero, são necessários 256 − 16 · 5 = 176 passos, uma redução de 31%.

4. Implementação

O código de nossa implementação foi escrito na linguagem C, com operações críticas da aritmética de corpo finito escritas na linguagem assembly. Tal implementação foi integrada com o toolkit criptográfico RELIC

2

. Utilizou-se o compilador MSPGCC 3.2.3.

Para a CCE, foi implementado o protocolo Elliptic Curve Digital Signa- ture Algorithm (ECDSA) [National Institute of Standards and Technology 2009] de as- sinatura digital, por ser extremamente popular e padronizado. Também dando ênfase em padrões, escolheu-se as curvas secp160r1 [Certicom Research 2010] e P-256 [National Institute of Standards and Technology 2009]. Para a CBE foi implemen- tado o protocolo de acordo de chaves não interativo proposto por [Sakai et al. 2000]

e generalizado por [Dupont and Enge 2006], onde ele é denominado Non-Interactive Key Distribution Protocol (NIKDP). Tal protocolo permite duas entidades combina- rem uma chave mútua sem se comunicarem, somente possuindo a identidade um do ou- tro. Por esse motivo, ele é bastante interessante para redes de sensores sem fio, pois nos sensores a comunicação geralmente consome muito mais energia do que a com- putação. Os emparelhamentos escolhidos para se implementar o NIKDP foram o Tate sobre curvas MNT [Miyaji et al. 2001] e o R-ate, Optimal Ate e Xate sobre curvas BN [Barreto and Naehrig 2006].

5. Resultados

Utilizando o simulador MSPsim [Eriksson et al. 2007], foi realizada a medição dos ciclos de cada operação implementada. Os tempos em segundos são derivados do número de

2

http://code.google.com/p/relic-toolkit/

(6)

Tabela 1. Tempos do ECDSA

secp160r1 P-256 Algoritmo Tempo (ms) Tempo (ms)

Geração de chave 231 710

Assinar 270 746

Verificar 686 2 017

Tabela 2. Tempos do cálculo de emparelhamento

Curva Corpo (bits) Emparelhamento Segurança (bits) Tempo (s)

MNT, k = 4 160 Tate 64 3,240

MNT, k = 6 160 Tate 70 5,000

BN 160 R-ate 80 5,057

BN 256 Xate 128 12,887

ciclos presumindo um clock de 8 milhões de Hertz. O clock exato depende do modelo e da voltagem fornecida. Naturalmente, para modelos de 16 MHz, pode-se obter uma estimativa dos tempos finais dividindo por dois os tempos fornecidos.

Verificou-se que o Comba MAC fornece, de fato, um desempenho melhor em relação à multiplicação Híbrida; em particular, há um ganho de 9,2% em relação a [Scott and Szczechowiak 2007]. Também verificou-se que o Montgomery MAC é real- mente eficiente e fornece um ganho de 44,5% em relação a [Szczechowiak et al. 2009].

Usando-se os primos esparsos para curvas BN descritos previamente obtém-se uma eco- nomia de 236 ciclos em 160 bits e 926 ciclos em 256 bits, gerando um ganho de 14,2%

e 25,7% respectivamente em relação ao Montgomery MAC genérico. Combinando as duas técnicas, obteve-se uma multiplicação no corpo 36% mais rápida em relação a [Szczechowiak et al. 2009].

A Tabela 1 apresenta os tempos obtidos na CCE. Destaca-se que foi obtida uma multiplicação de ponto fixo 68% mais rápida em relação a [Szczechowiak et al. 2008] e uma multiplicação de ponto aleatório 31% mais rápida em relação a [Wang and Li 2006].

A Tabela 2 apresenta os tempos obtidos na CBE. Obteve-se um emparelhamento Tate 22% mais rápido em relação a [Szczechowiak et al. 2009] sobre curva MNT de grau de mergulho 4. Um resultado interessante é o fato da curva BN fornecer desempenho equi- valente à curva MNT de grau de mergulho 6, sendo que ela garante 80 bits de segurança contra 70 bits da MNT. Assim, conclui-se que nesta plataforma a curva MNT somente é adequada com grau de mergulho 4, para o nível de segurança de 64 bits. A Figura 5 condensa os resultados obtidos.

6. Conclusões

Na dissertação foi apresentada uma implementação em software de Criptografia de Cur- vas Elípticas e Criptografia Baseada em Emparelhamentos para a plataforma MSP430, utilizada em redes de sensores sem fio. Suas principais contribuições consistem em:

• um estudo dos fundamentos, algoritmos e otimizações utilizados em emparelha-

mentos, que na sua maior parte está bastante fragmentada na literatura;

(7)

Figura 2. Tempos dos diversos algoritmos implementados

• uma nova técnica específica para a MSP430 que acelera a multiplicação e redução modular (e consequentemente acelera o cálculo de emparelhamentos), explorando o multiplicador em hardware presente em múltiplos membros da família MSP430;

• uma nova técnica para certas curvas BN para acelerar a redução modular, explo- rando o formato esparso do primo do corpo base da curva, que pode ser adaptada para outras plataformas de 8 e 16 bits e outros níveis de segurança;

• uma implementação eficiente do estado da arte de CBE para a MSP430.

7. Trabalhos Publicados

Parte das contribuições citadas foram detalhadas no seguinte artigo aceito na conferên- cia internacional 10th International Conference on Cryptology in India (INDOCRYPT 2009): Gouvêa, C. P. L. and López, J. (2009). Software implementation of pairing-based cryptography on sensor networks using the MSP430 microcontroller. In Progress in Cryptology — INDOCRYPT 2009, volume 5922 of Lecture Notes in Computer Science.

Também estendeu-se a implementação para corpos binários; parte de tal trabalho foi detalhada no seguinte artigo aceito na revista Computer Communications: Oliveira, L. B., Aranha, D. F., Gouvêa, C. P. L., Scott, M., Câmara, D. F., López, J., and Dahab, R.

(2010). TinyPBC: Pairings for authenticated identity-based non-interactive key distribu- tion in sensor networks. Computer Communications.

Recentemente, novos resultados sobre o tema da dissertação foram detalhados no seguinte artigo aceito no X Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais (SBSeg 2010): Gouvêa, C. P. L. and López, J. (2010). Im- plementação em Software de Criptografia Assimétrica para Redes de Sensores com o Microcontrolador MSP430. In X Simpósio Brasileiro em Segurança da Informação e de Sistemas Computacionais.

Agradecimentos

Ao CNPq pela bolsa de produtividade em pesquisa ao segundo autor.

(8)

Referências

Barreto, P. S. L. M. and Naehrig, M. (2006). Pairing-friendly elliptic curves of prime order. In Selected Areas in Cryptography, volume 3897 of Lecture Notes in Computer Science, pages 319–331. Springer Berlin / Heidelberg.

Certicom Research (2010). SEC 2: Recommended elliptic curve domain parameters.

http://www.secg.org/.

Dupont, R. and Enge, A. (2006). Provably secure non-interactive key distribution based on pairings. Discrete Applied Mathematics, 154(2):270–276.

Eriksson, J., Dunkels, A., Finne, N., Österlind, F., and Voigt, T. (2007). MSPsim – an extensible simulator for MSP430-equipped sensor boards. In Proceedings of the European Conference on Wireless Sensor Networks (EWSN), Poster/Demo session.

Gura, N., Patel, A., Wander, A., Eberle, H., and Shantz, S. C. (2004). Comparing elliptic curve cryptography and RSA on 8-bit CPUs. In Cryptographic Hardware and Em- bedded Systems — CHES 2004, volume 3156 of Lecture Notes in Computer Science, pages 925–943. Springer Berlin / Heidelberg.

Miyaji, A., Nakabayashi, M., and Takano, S. (2001). New explicit conditions of elliptic curve traces for FR-reduction. IEICE TRANSACTIONS on Fundamentals of Electro- nics, Communications and Computer Sciences, 84(5):1234–1243.

Montgomery, P. L. (1985). Modular multiplication without trial division. Mathematics of Computation, 44(170):519–521.

National Institute of Standards and Technology (2009). FIPS 186-3: Digital signature standard (DSS). http://www.itl.nist.gov.

Nogami, Y., Akane, M., Sakemi, Y., Kato, H., and Morikawa, Y. (2008). Integer variable χ-based Ate pairing. In Pairing-Based Cryptography — Pairing 2008, volume 5209 of Lecture Notes in Computer Science, pages 178–191. Springer Berlin / Heidelberg.

Sakai, R., Ohgishi, K., and Kasahara, M. (2000). Cryptosystems based on pairing. In The 2000 Symposium on Cryptography and Information Security, Okinawa, Japan.

Scott, M. and Szczechowiak, P. (2007). Optimizing multiprecision multiplication for public key cryptography. Cryptology ePrint Archive, Report 2007/299. http://

eprint.iacr.org/.

Szczechowiak, P., Kargl, A., Scott, M., and Collier, M. (2009). On the application of pairing based cryptography to wireless sensor networks. In Proceedings of the second ACM conference on Wireless network security, pages 1–12. ACM New York.

Szczechowiak, P., Oliveira, L. B., Scott, M., Collier, M., and Dahab, R. (2008). Nano- ECC: Testing the limits of elliptic curve cryptography in sensor networks. In Wireless Sensor Networks, volume 4913 of Lecture Notes in Computer Science. Springer Berlin / Heidelberg.

Wang, H. and Li, Q. (2006). Efficient implementation of public key cryptosystems on

mote sensors (short paper). In Information and Communications Security, volume

4307 of Lecture Notes in Computer Science, pages 519–528. Springer Berlin / Heidel-

berg.

Referências

Documentos relacionados

O DIRETOR DO LABORATÓRIO NACIONAL DE COMPUTAÇÃO CIENTÍFICA DO MINISTÉRIO DA CIÊNCIA, TECNOLOGIA, INOVAÇÕES E COMUNICAÇÕES, no uso da competência que lhe foi

Por último, temos o vídeo que está sendo exibido dentro do celular, que é segurado e comentado por alguém, e compartilhado e comentado no perfil de BolsoWoman no Twitter. No

Esta pesquisa tem como objetivo geral identificar o perfil de uso de medicamentos em gestantes durante o acompanhamento pré-natal realizado em unidades básicas de

Processamento Técnico da Legislação (normas do MPSP) ... Desativação da Biblioteca dos Procuradores ... Correções da Transferência do Acervo ... Doação do Acervo de Duplicatas

Para tanto, padronizamos um protocolo de EA de 8 semanas de duração e avaliamos seu efeito sobre a formação de memória declarativa de curto e longo prazo, assim como também a

When the 10 th percentile of the Alexander stan- dard growth curve for twins was used, a birth weight below the 10 th percentile was observed in 4.9% of newborn of

 Alta taxa de fluxo com baixa perda de carga  Abertura e fechamento fácil da válvula  Regulação precisa e estável.  Baixa pressão de abertura e acionamento 