Вы находитесь на странице: 1из 4

XX Encontro Anual de Iniciao Cientfica EAIC X Encontro de Pesquisa - EPUEPG

ESTUDO E IMPLEMENTAO DE CRIPTOGRAFIA UTILIZANDO PROGRAMAO PARALELA Alessandro Dias Batista, Richard A. Gonalves (Orientador) e-mail: richardgoncalves@cpgei.cefetpr.br Universidade Estadual do Centro-Oeste, Setor de Cincias exatas e Tecnologia, Departamento de Cincia da Computao, Guarapuava-PR. rea: 1.03.00.00-7 Cincia da Computao Sub-rea: 1.03.03.00-6 Metodologia e Tcnicas da Computao Palavras-chave: Criptografia, OpenMP, Programao Paralela, RSA. Resumo: Algoritmos para criptografia podem demorar tempos excessivos para codificar/decodificar grandes volumes de dados. A fim de diminuir o tempo gasto nessas operaes ser analisada uma melhor forma de se implementar um algoritmo de criptografia utilizando programao paralela. O algoritmo RSA ser implementado de maneira sequencial e paralela utilizando OpenMP. Os resultados obtidos demonstram ganhos significativos de desempenho com a paralelizao do algoritmo. Introduo A criptografia o estudo dos princpios e tcnicas pelas quais a informao pode ser transformada da sua forma original para outra ilegvel, de maneira que possa ser conhecida apenas por seus destinatrios, tornando-a difcil de ser lida por algum no autorizado (KNUDSEN, 1998). A criptografia envolve algoritmos de encriptao (codificao da mensagem original) e descriptao (decodificao da mensagem encriptada) (HOOK, 2005; SCHNEIER, 1996). A criptografia utilizada em empresas, bancos, sistemas web para manter a segurana de dados sigilosos principalmente se os dados necessitem transitar por meios de comunicao. Algumas aplicaes de criptografia exigem respostas em tempo real, o que normalmente no possvel sem o uso de computao paralela. Computao paralela corresponde ao uso simultneo de mltiplos recursos computacionais (unidades de processamento, unidades funcionais, computadores, etc.) para a soluo de um problema (ANSHUL.; KARYPIS.; KUMAR, 2003). A programao paralela trata do desenvolvimento de algoritmos que exploram de maneira eficiente a computao paralela (BARNEY, 2010b; PARHAMI, 1999). Existem diversar maneiras de se programar paralelamente, dentre elas destaca-se a biblioteca OpenMP. O OpenMP uma API padro para escrever aplicaes paralelas em memria
Anais do XX EAIC 20 a 22 de outubro de 2011, UEPG, Ponta Grossa PR. ISSN:1676-0018 http://eventos.uepg.br/eaic/portal/

XX Encontro Anual de Iniciao Cientfica EAIC X Encontro de Pesquisa - EPUEPG

compartilhada nas linguagens C, C++ e Fortran (CHAPMAN; JOST; PAS, 2008; QUINN, 2004). Consiste de diretivas para o compilador, rotinas em tempo de execuo e variveis de ambiente. A especificao mantida pelo OpenMP Architecture Review Board (www.openmp.org). O OpenMP o padro de fato para o desenvolvimento de aplicaes paralelas em arquiteturas de memria compartilhada. O objetivo da pesquisa que com a implementao de um algoritmo de criptografia utilizando computao paralela o processo para codificar/decodificar um grande conjunto de dados seja feito em um tempo significativamente menor se comparado ao tempo que seria gasto se o conjunto de dados fosse tratado utilizando um algoritmo de criptografia sequencial. Materiais e mtodos O algoritmo de criptografia a ser paralelizado o RSA (RIVEST,SHAMIR e ADLEMAN, 1977), utilizando a linguagem programao C em conjunto com a API OpenMP. O algoritmo RSA, cujo nome uma homenagem aos seus criadores, foi uma das primeiras solues para a criptografia de chave pblica e continua sendo utilizado at hoje. O RSA envolve duas chaves: uma pblica e uma privada. A chave pblica compartilhada por todos os usurios enquanto a chave privada deve ser mantida em sigilo. Toda mensagem codificada utilizando uma chave pblica s pode ser decodificada utilizando a chave privada correspondente. A criptografia RSA ainda muito utilizada em aplicaes web, em particular em e-mails e sistemas de compra (SECURITY Inc., 2002). Algoritmo RSA O primeiro passo do algoritmo RSA a gerao do par de chaves. Para isso escolhe-se dois nmeros primos relativamente grandes (p e q, da ordem de centenas de dgitos). Computa-se ento o valor de n (que o produto de p por q). Ento calcula-se a funo totiente em n (que igual a (p 1)*(q 1)). Escolhe-se ento um inteiro e positivo menor que o valor da funo totiente de tal forma que e e o valor da funo sejam primos entre si. Finalmente, computa-se o valor d que o inverso multiplicativo de e em aritmtica modular (onde o mdulo utilizado o valor da funo totiente). A chave pblica composta pelo par n e e e a chave privada composta pelo par n e d. A codificao da mensagem c se d atravs do clculo m = ce mod n e a decodificao acontece pela frmula c = md mod n. Para fins prticos, como a exponenciao muito custosa, utilizam-se tcnicas que aceleram o processamento (MENEZES; van OORSCHOT e VANSTONE, 1996).

Anais do XX EAIC 20 a 22 de outubro de 2011, UEPG, Ponta Grossa PR. ISSN:1676-0018 http://eventos.uepg.br/eaic/portal/

XX Encontro Anual de Iniciao Cientfica EAIC X Encontro de Pesquisa - EPUEPG

Ferramentas As ferramentas utilizadas para o desenvolvimento do cdigo so descritas abaixo: C (linguagem de programao): uma linguagem de programao compilada baseada na linguagem B, inventada por Dennis Ritchie para desenvolver o sistema operacional Unix (KERNIGHAN; RITCHIE, 1988). OpenMP: uma API para programao paralela em memria compartilhada. O OpenMP no uma nova linguagem de programao. Em vez disso, a notao que pode ser adicionado a um programa sequencial em Fortran, C ou C++ para descrever como o trabalho deve ser compartilhado entre os segmentos que sero executados em diferentes processadores ou ncleos e ordenar os acessos aos dados compartilhados, conforme necessrio (BRESHEARS, 2009; CHAPMAN; JOST; PAS, 2008). Resultados e Discusso (Arial 12, Negrito, alinhado esquerda) Para se testar a eficincia da paralelizao foram codificados e decodificados 5 vetores de mensagens aleatrias, cada um com o tamanha descrito na Tabela 1. Os testes foram realizados em um AMD Dual Core. O speedup mdio alcanado foi de 1,79 e a eficincia mdia de 89,59 %, o que so valores bastante expressivos. Cabe destacar que tanto o speedup quanto a eficincia tenderam a aumentar com o tamanho da mensagem. Tabela 1 Resultado dos testes executados.
Unidades de processamento utilizadas tamanho da mensagem 21 100 200 400 800 Mdia 1 tempo serial (segundos) 92,64 445,87 895,70 1792,69 3575,47 1360,48 2 tempo paralelo (segundos) 52,25 258,67 499,79 976,18 1949,83 747,34 2 speedup 1,7730540836 1,7236925527 1,7921591225 1,8364338544 1,8337342230 1,7918147672 2 Eficincia (%) 88,6527041794 86,1846276365 89,6079561257 91,8216927206 91,6867111492 89,5907383623

Concluses (Arial 12, Negrito, alinhado esquerda) Os algoritmos de criptografia so importantes para garantir a segurana de sistemas computacionais. Eles costumam ser custosos do ponto de vista do
Anais do XX EAIC 20 a 22 de outubro de 2011, UEPG, Ponta Grossa PR. ISSN:1676-0018 http://eventos.uepg.br/eaic/portal/

XX Encontro Anual de Iniciao Cientfica EAIC X Encontro de Pesquisa - EPUEPG

consumo de recursos computacionais, portanto a paralelizao dos mesmos interessante. Este trabalho apresentou uma paralelizao para o algoritmo RSA. Os resultados obtidos incentivam trabalhos futuros em outros algoritmos. Agradecimentos (Arial 12, Negrito, alinhado esquerda) Referncias BRESHEARS, C. The Art of Concurrency. Ed. O'Reilly. 2009. CHAPMAN, B.; JOST, G.; PAS, V. R. Using OpenMP - Portable Shared Memory Parallel Programming. Ed. MIT Press. 2008. Gimenez, J. R. B. Implementao do Algoritmo http://www.unesp.br/~jroberto/rsa.pdf. Acessado em: 11/07/2011. HOOK, D. Beginning Cryptography with Java, Wrox, 2005. Katz J.; Lindell Y. Introduction to Modern Cryptography. Ed. Chapman & Hall/CRC Press. 2008. Kernighan, B. W.; Ritchie, D. M. The C Programming Language. 2 Edio, Prentice Hall, 1988. KNUDSEN, J. Java Cryptography, O'Reilly, 1998. Menezes, A. J.; van Oorschot, P. C. e Vanstone, S. A. Handbook of Applied Cryptography. CRC Press, 1996. QUINN, M. J. Parallel Programming in C with MPI and OpenMP. [S.l.]: McGraw-Hill Science/Engineering/Math, 2004. Rivest, R.; Shamir, A. e Adleman, L. On Digital Signatures and Public Key Criptosystems, MIT Laboratory for Computer Science Technical Memorandum 82, 1977. SECURITY Inc., RSA RSA Security Inc. Public-Key Cryptography Standards (PKCS), 2002. Schildt H. C Completo e Total 3 Edio. Ed. Makron Books. 1997 SCHNEIER, B. Applied Cryptography, John Wiley and Sons, 1996.
Anais do XX EAIC 20 a 22 de outubro de 2011, UEPG, Ponta Grossa PR. ISSN:1676-0018 http://eventos.uepg.br/eaic/portal/

RSA,