Uma API criptográfica para aplicações embarcadas
Autor(a) principal: | |
---|---|
Data de Publicação: | 2016 |
Tipo de documento: | Dissertação |
Idioma: | por |
Título da fonte: | Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
Texto Completo: | http://repositorio.utfpr.edu.br/jspui/handle/1/1813 |
Resumo: | Neste documento, está apresentada a GEmSysC, uma API criptográfica unificada para aplicações embarcadas. Camadas de abstração compatíveis com esta API podem ser construídas sobre bibliotecas existentes, de forma que as funcionalidades criptográficas podem ser acessadas pelo software de alto nível de forma consistente e independente da implementação. As características da API foram definidas com base em boas práticas de construção de APIs, práticas indicadas em software embarcado e também com base em outras bibliotecas e padrões criptográficos existentes. A principal inspiração para este projeto foi o padrão CMSIS-RTOS, que também busca unificar interfaces para software embarcado de forma independente da implementação, mas é voltado a sistemas operacionais, não a funcionalidades criptográficas. A estrutura da GEmSysC é modular, sendo composta de um core genérico e módulos acopláveis, um para cada algoritmo criptográfico. Nesta dissertação, está apresentada a especificação do core e de três módulos: AES, RSA e SHA-256. Ainda que a GEmSysC tenha sido elaborada para utilização em sistemas embarcados, ela também poderia ser utilizada em computadores computacionais, já que, em última instância, sistemas embarcados são sistemas computacionais. Como provas de conceito, foram feitas duas implementações da GEmSysC: uma sobre a biblioteca wolfSSL, que é de código aberto e voltada a sistemas embarcados, e outra sobre a OpenSSL, que é amplamente utilizada e de código aberto, mas não é voltada especificamente a sistemas embarcados. A primeira implementação foi testada em um processador Cortex-M3 sem sistema operacional, enquanto a segunda foi testada em um PC com sistema operacional Windows 10. Mostrou-se que a GEmSysC é, sob alguns aspectos, mais simples que outras bibliotecas. Mostrou-se também que o overhead da camada de abstração é pequeno, ficando entre pouco mais de 0% e 0,17% na implementação voltada a sistemas embarcados e entre 0,03% e 1,40% na implementação para PC. Apresentaram-se ainda os valores dos custos de memória de programa e de RAM de cada uma das implementações. |
id |
UTFPR-12_93cd11df673f694dc782d4df1dcee272 |
---|---|
oai_identifier_str |
oai:repositorio.utfpr.edu.br:1/1813 |
network_acronym_str |
UTFPR-12 |
network_name_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
repository_id_str |
|
spelling |
2016-10-25T20:31:02Z2016-10-25T20:31:02Z2016-08-31FONTOURA, Felipe Michels. Uma API criptográfica para aplicações embarcadas. 2016. 155 f. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2016.http://repositorio.utfpr.edu.br/jspui/handle/1/1813Neste documento, está apresentada a GEmSysC, uma API criptográfica unificada para aplicações embarcadas. Camadas de abstração compatíveis com esta API podem ser construídas sobre bibliotecas existentes, de forma que as funcionalidades criptográficas podem ser acessadas pelo software de alto nível de forma consistente e independente da implementação. As características da API foram definidas com base em boas práticas de construção de APIs, práticas indicadas em software embarcado e também com base em outras bibliotecas e padrões criptográficos existentes. A principal inspiração para este projeto foi o padrão CMSIS-RTOS, que também busca unificar interfaces para software embarcado de forma independente da implementação, mas é voltado a sistemas operacionais, não a funcionalidades criptográficas. A estrutura da GEmSysC é modular, sendo composta de um core genérico e módulos acopláveis, um para cada algoritmo criptográfico. Nesta dissertação, está apresentada a especificação do core e de três módulos: AES, RSA e SHA-256. Ainda que a GEmSysC tenha sido elaborada para utilização em sistemas embarcados, ela também poderia ser utilizada em computadores computacionais, já que, em última instância, sistemas embarcados são sistemas computacionais. Como provas de conceito, foram feitas duas implementações da GEmSysC: uma sobre a biblioteca wolfSSL, que é de código aberto e voltada a sistemas embarcados, e outra sobre a OpenSSL, que é amplamente utilizada e de código aberto, mas não é voltada especificamente a sistemas embarcados. A primeira implementação foi testada em um processador Cortex-M3 sem sistema operacional, enquanto a segunda foi testada em um PC com sistema operacional Windows 10. Mostrou-se que a GEmSysC é, sob alguns aspectos, mais simples que outras bibliotecas. Mostrou-se também que o overhead da camada de abstração é pequeno, ficando entre pouco mais de 0% e 0,17% na implementação voltada a sistemas embarcados e entre 0,03% e 1,40% na implementação para PC. Apresentaram-se ainda os valores dos custos de memória de programa e de RAM de cada uma das implementações.This document presents GEmSysC, an unified cryptographic API for embedded systems. Software layers implementing this API can be built over existing libraries, allowing embedded software to access cryptographic functions in a consistent way that does not depend on the underlying library. The API complies to good practices for API design and good practices for embedded software development and took its inspiration from other cryptographic libraries and standards. The main inspiration for creating GEmSysC was the CMSIS-RTOS standard, which defines an unified API for embedded software in an implementation-independent way, but targets operating systems instead of cryptographic functions. GEmSysC is made of a generic core and attachable modules, one for each cryptographic algorithm. This document contains the specification of the core of GEmSysC and three of its modules: AES, RSA and SHA-256. GEmSysC was built targeting embedded systems, but this does not restrict its use only in such systems – after all, embedded systems are just very limited computing devices. As a proof of concept, two implementations of GEmSysC were made. One of them was built over wolfSSL, which is an open source library for embedded systems. The other was built over OpenSSL, which is open source and a de facto standard. Unlike wolfSSL, OpenSSL does not specifically target embedded systems. The implementation built over wolfSSL was evaluated in a Cortex- M3 processor with no operating system while the implementation built over OpenSSL was evaluated on a personal computer with Windows 10 operating system. This document displays test results showing GEmSysC to be simpler than other libraries in some aspects. These results have shown that both implementations incur in little overhead in computation time compared to the cryptographic libraries themselves. The overhead of the implementation has been measured for each cryptographic algorithm and is between around 0% and 0.17% for the implementation over wolfSSL and between 0.03% and 1.40% for the one over OpenSSL. This document also presents the memory costs for each implementation.porUniversidade Tecnológica Federal do ParanáCuritibaPrograma de Pós-Graduação em Computação AplicadaUTFPRBrasilCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARECriptografiaCriptografia de dados (Computação)Sistemas embarcados (Computadores)ComputaçãoCryptographyData encryption (Computer science)Embedded computer systemsComputer scienceUma API criptográfica para aplicações embarcadasA cryptographic API for embedded applicationsinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisCuritibaMaziero, Carlos Albertohttp://lattes.cnpq.br/5659788852261811Wehrmeister, Marco Auréliohttp://lattes.cnpq.br/5548205054206839Maziero, Carlos AlbertoRenaux, Douglas Paulo BertrandAranha, Diego de Freitashttp://lattes.cnpq.br/7126288844442538Fontoura, Felipe Michelsinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT))instname:Universidade Tecnológica Federal do Paraná (UTFPR)instacron:UTFPRTHUMBNAILCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdf.jpgCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdf.jpgGenerated Thumbnailimage/jpeg1215http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/4/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdf.jpg12026f9a693d9b2a0d4949c8c10c8137MD54TEXTCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdf.txtCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdf.txtExtracted texttext/plain439318http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/3/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdf.txtdb2bc99ffbd1314b794303d159b9c99fMD53ORIGINALCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdfCT_PPGCA_M_Fontoura, Felipe Michels_2016.pdfapplication/pdf1355994http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/1/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdfecde767d5a3dc8780f87a99904117d7aMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-81290http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/2/license.txtb9d82215ab23456fa2d8b49c5df1b95bMD521/18132016-10-26 03:02:00.383oai:repositorio.utfpr.edu.br:1/1813TmEgcXVhbGlkYWRlIGRlIHRpdHVsYXIgZG9zIGRpcmVpdG9zIGRlIGF1dG9yIGRhIHB1YmxpY2HDp8OjbywgYXV0b3Jpem8gYSBVVEZQUiBhIHZlaWN1bGFyLCAKYXRyYXbDqXMgZG8gUG9ydGFsIGRlIEluZm9ybWHDp8OjbyBlbSBBY2Vzc28gQWJlcnRvIChQSUFBKSBlIGRvcyBDYXTDoWxvZ29zIGRhcyBCaWJsaW90ZWNhcyAKZGVzdGEgSW5zdGl0dWnDp8Ojbywgc2VtIHJlc3NhcmNpbWVudG8gZG9zIGRpcmVpdG9zIGF1dG9yYWlzLCBkZSBhY29yZG8gY29tIGEgTGVpIG5vIDkuNjEwLzk4LCAKbyB0ZXh0byBkZXN0YSBvYnJhLCBvYnNlcnZhbmRvIGFzIGNvbmRpw6fDtWVzIGRlIGRpc3BvbmliaWxpemHDp8OjbyByZWdpc3RyYWRhcyBubyBpdGVtIDQgZG8gCuKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgVHJhYmFsaG9zIGRlIENvbmNsdXPDo28gZGUgQ3Vyc28gZGUgR3JhZHVhw6fDo28gZSAKRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgZGUgSW5mb3JtYcOnw6NvIGUgbm9zIENhdMOhbG9nb3MgRWxldHLDtG5pY29zIGRvIApTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdLCBwYXJhIGZpbnMgZGUgbGVpdHVyYSwgaW1wcmVzc8OjbyBlL291IGRvd25sb2FkLCB2aXNhbmRvIGEgCmRpdnVsZ2HDp8OjbyBkYSBwcm9kdcOnw6NvIGNpZW50w61maWNhIGJyYXNpbGVpcmEuCgogIEFzIHZpYXMgb3JpZ2luYWlzIGUgYXNzaW5hZGFzIHBlbG8ocykgYXV0b3IoZXMpIGRvIOKAnFRlcm1vIGRlIEF1dG9yaXphw6fDo28gcGFyYSBQdWJsaWNhw6fDo28gZGUgClRyYWJhbGhvcyBkZSBDb25jbHVzw6NvIGRlIEN1cnNvIGRlIEdyYWR1YcOnw6NvIGUgRXNwZWNpYWxpemHDp8OjbywgRGlzc2VydGHDp8O1ZXMgZSBUZXNlcyBubyBQb3J0YWwgCmRlIEluZm9ybWHDp8OjbyBlIG5vcyBDYXTDoWxvZ29zIEVsZXRyw7RuaWNvcyBkbyBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIGRhIFVURlBS4oCdIGUgZGEg4oCcRGVjbGFyYcOnw6NvIApkZSBBdXRvcmlh4oCdIGVuY29udHJhbS1zZSBhcnF1aXZhZGFzIG5hIEJpYmxpb3RlY2EgZG8gQ8OibXB1cyBubyBxdWFsIG8gdHJhYmFsaG8gZm9pIGRlZmVuZGlkby4gCk5vIGNhc28gZGUgcHVibGljYcOnw7VlcyBkZSBhdXRvcmlhIGNvbGV0aXZhIGUgbXVsdGljw6JtcHVzLCBvcyBkb2N1bWVudG9zIGZpY2Fyw6NvIHNvYiBndWFyZGEgZGEgCkJpYmxpb3RlY2EgY29tIGEgcXVhbCBvIOKAnHByaW1laXJvIGF1dG9y4oCdIHBvc3N1YSB2w61uY3Vsby4KRepositório de PublicaçõesPUBhttp://repositorio.utfpr.edu.br:8080/oai/requestopendoar:2016-10-26T05:02Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR)false |
dc.title.pt_BR.fl_str_mv |
Uma API criptográfica para aplicações embarcadas |
dc.title.alternative.pt_BR.fl_str_mv |
A cryptographic API for embedded applications |
title |
Uma API criptográfica para aplicações embarcadas |
spellingShingle |
Uma API criptográfica para aplicações embarcadas Fontoura, Felipe Michels CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Criptografia Criptografia de dados (Computação) Sistemas embarcados (Computadores) Computação Cryptography Data encryption (Computer science) Embedded computer systems Computer science |
title_short |
Uma API criptográfica para aplicações embarcadas |
title_full |
Uma API criptográfica para aplicações embarcadas |
title_fullStr |
Uma API criptográfica para aplicações embarcadas |
title_full_unstemmed |
Uma API criptográfica para aplicações embarcadas |
title_sort |
Uma API criptográfica para aplicações embarcadas |
author |
Fontoura, Felipe Michels |
author_facet |
Fontoura, Felipe Michels |
author_role |
author |
dc.contributor.advisor1.fl_str_mv |
Maziero, Carlos Alberto |
dc.contributor.advisor1Lattes.fl_str_mv |
http://lattes.cnpq.br/5659788852261811 |
dc.contributor.advisor-co1.fl_str_mv |
Wehrmeister, Marco Aurélio |
dc.contributor.advisor-co1Lattes.fl_str_mv |
http://lattes.cnpq.br/5548205054206839 |
dc.contributor.referee1.fl_str_mv |
Maziero, Carlos Alberto |
dc.contributor.referee2.fl_str_mv |
Renaux, Douglas Paulo Bertrand |
dc.contributor.referee3.fl_str_mv |
Aranha, Diego de Freitas |
dc.contributor.authorLattes.fl_str_mv |
http://lattes.cnpq.br/7126288844442538 |
dc.contributor.author.fl_str_mv |
Fontoura, Felipe Michels |
contributor_str_mv |
Maziero, Carlos Alberto Wehrmeister, Marco Aurélio Maziero, Carlos Alberto Renaux, Douglas Paulo Bertrand Aranha, Diego de Freitas |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO::ENGENHARIA DE SOFTWARE Criptografia Criptografia de dados (Computação) Sistemas embarcados (Computadores) Computação Cryptography Data encryption (Computer science) Embedded computer systems Computer science |
dc.subject.por.fl_str_mv |
Criptografia Criptografia de dados (Computação) Sistemas embarcados (Computadores) Computação Cryptography Data encryption (Computer science) Embedded computer systems Computer science |
description |
Neste documento, está apresentada a GEmSysC, uma API criptográfica unificada para aplicações embarcadas. Camadas de abstração compatíveis com esta API podem ser construídas sobre bibliotecas existentes, de forma que as funcionalidades criptográficas podem ser acessadas pelo software de alto nível de forma consistente e independente da implementação. As características da API foram definidas com base em boas práticas de construção de APIs, práticas indicadas em software embarcado e também com base em outras bibliotecas e padrões criptográficos existentes. A principal inspiração para este projeto foi o padrão CMSIS-RTOS, que também busca unificar interfaces para software embarcado de forma independente da implementação, mas é voltado a sistemas operacionais, não a funcionalidades criptográficas. A estrutura da GEmSysC é modular, sendo composta de um core genérico e módulos acopláveis, um para cada algoritmo criptográfico. Nesta dissertação, está apresentada a especificação do core e de três módulos: AES, RSA e SHA-256. Ainda que a GEmSysC tenha sido elaborada para utilização em sistemas embarcados, ela também poderia ser utilizada em computadores computacionais, já que, em última instância, sistemas embarcados são sistemas computacionais. Como provas de conceito, foram feitas duas implementações da GEmSysC: uma sobre a biblioteca wolfSSL, que é de código aberto e voltada a sistemas embarcados, e outra sobre a OpenSSL, que é amplamente utilizada e de código aberto, mas não é voltada especificamente a sistemas embarcados. A primeira implementação foi testada em um processador Cortex-M3 sem sistema operacional, enquanto a segunda foi testada em um PC com sistema operacional Windows 10. Mostrou-se que a GEmSysC é, sob alguns aspectos, mais simples que outras bibliotecas. Mostrou-se também que o overhead da camada de abstração é pequeno, ficando entre pouco mais de 0% e 0,17% na implementação voltada a sistemas embarcados e entre 0,03% e 1,40% na implementação para PC. Apresentaram-se ainda os valores dos custos de memória de programa e de RAM de cada uma das implementações. |
publishDate |
2016 |
dc.date.accessioned.fl_str_mv |
2016-10-25T20:31:02Z |
dc.date.available.fl_str_mv |
2016-10-25T20:31:02Z |
dc.date.issued.fl_str_mv |
2016-08-31 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
FONTOURA, Felipe Michels. Uma API criptográfica para aplicações embarcadas. 2016. 155 f. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2016. |
dc.identifier.uri.fl_str_mv |
http://repositorio.utfpr.edu.br/jspui/handle/1/1813 |
identifier_str_mv |
FONTOURA, Felipe Michels. Uma API criptográfica para aplicações embarcadas. 2016. 155 f. Dissertação (Mestrado em Computação Aplicada) - Universidade Tecnológica Federal do Paraná, Curitiba, 2016. |
url |
http://repositorio.utfpr.edu.br/jspui/handle/1/1813 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.none.fl_str_mv |
Universidade Tecnológica Federal do Paraná Curitiba |
dc.publisher.program.fl_str_mv |
Programa de Pós-Graduação em Computação Aplicada |
dc.publisher.initials.fl_str_mv |
UTFPR |
dc.publisher.country.fl_str_mv |
Brasil |
publisher.none.fl_str_mv |
Universidade Tecnológica Federal do Paraná Curitiba |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) instname:Universidade Tecnológica Federal do Paraná (UTFPR) instacron:UTFPR |
instname_str |
Universidade Tecnológica Federal do Paraná (UTFPR) |
instacron_str |
UTFPR |
institution |
UTFPR |
reponame_str |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
collection |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) |
bitstream.url.fl_str_mv |
http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/4/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdf.jpg http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/3/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdf.txt http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/1/CT_PPGCA_M_Fontoura%2c%20Felipe%20Michels_2016.pdf http://repositorio.utfpr.edu.br:8080/jspui/bitstream/1/1813/2/license.txt |
bitstream.checksum.fl_str_mv |
12026f9a693d9b2a0d4949c8c10c8137 db2bc99ffbd1314b794303d159b9c99f ecde767d5a3dc8780f87a99904117d7a b9d82215ab23456fa2d8b49c5df1b95b |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UTFPR (da Universidade Tecnológica Federal do Paraná (RIUT)) - Universidade Tecnológica Federal do Paraná (UTFPR) |
repository.mail.fl_str_mv |
|
_version_ |
1805923167802228736 |