Utilize este identificador para referenciar este registo: https://hdl.handle.net/1822/62428

TítuloDesenvolvimento e optimização de back-end de compilador criptográfico para plataformas ARM
Outro(s) título(s)Development and optimization of a cryptographic compiler Back-end devised for ARM platforms
Autor(es)Boas, Rui Pedro Araújo Vilas
Orientador(es)Barbosa, Manuel
Data2017
Resumo(s)Devido à elevada proliferação tecnológica, existe software criptográfico implementado numa miríade de plataformas. Plataformas essas que podem ter características de computação bastante diferentes. No entanto, o software criptográfico deverá ser imperceptível ao utilizador final, uma vez que deve funcionar como uma camada de protecção às tarefas que o utilizador possa estar a realizar e não aumentar a sua pegada computacional. Essa exigência leva muitas vezes a que o software criptográfico tenha que ser re-implementado de acordo com as capacidades computacionais da plataforma/dispositivo-alvo (sendo até comum recorrer-se a assembly para atingir tal objectivo). O desenvolvimento de software criptográfico também exige que o programador seja versado em diversas áreas da ciência, devendo assim ser realizado por criptógrafos especializados. O CAO é uma DSL imperativa para a área da criptografia. Munido de um compilador, interpretador e uma ferramenta de verificação formal, o CAO permite a passagem de conhecimento criptográfico para um programador com menos experiência na área da criptografia através da automatização da validação formal das implementações. O compilador CAO possui um back-end altamente configurável que permite geração de executáveis dedicados às plataformas destino. Com a grande utilização actual de processadores ARM, torna-se interessante estudar formas de explorar as características destes processadores e desenvolver um back-end que as implemente com o objectivo de obter melhor desempenho do software criptográfico. Nesta dissertação explorou-se a utilização dos tipos de dados vectoriais e instruções do co-processador NEON de forma a obter paralelismo ao nível dos dados. Também foi estudada a possibilidade de inclusão de paralelismo nativo ao nível das tarefas no CAO, de forma a tirar partido das arquitecturas multi-core.
With the current technological proliferation, cryptography started to be incorporated in wide range of devices, from embedded processors to high-end servers. As cryptographic software needs to be as close to invisible as possible in terms of computational footprint, it must be highly optimised for each specific platform/device. It is not uncommon to see cryptographic code written in assembly to achieve such goal. Furthermore, the development of cryptographic software needs the programmer to be well-versed in various domains of science as mathematics, computer science and electrical engineering. With that in mind, the CAO language was developed. The CAO language is a imperative DSL tailored for the cryptographic domain. Backed-up by a compiler, interactive interpreter and a formal verification tool, the CAO language is able to help an inexperienced programmer in the development of cryptographic software with the automisation of the formal validation of the implementations. The CAO compiler has a highly-tunable back-end that can be optimized to deliver executables tailored for specific platforms/devices. Since the ARM architectures are one of the most common processor architectures used in embedded devices, the main goal of this dissertation is the development of a CAO back-end that takes advantage of the characteristics of these processors in order to generate executables of higher performance for cryptographic software. This dissertation explores the usage of the NEON co-processor’s instructions and datatypes as means to attain data-level parallelism. It also studies the possibility of enabling the use of task-level parallelism as a feature of the CAO language, in order to better explore multi-core architectures.
TipoDissertação de mestrado
DescriçãoDissertação de mestrado em Engenharia Informática
URIhttps://hdl.handle.net/1822/62428
AcessoAcesso aberto
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
Rui-Pedro-Araújo-Vilas-Boas-dissertação.pdf1,44 MBAdobe PDFVer/Abrir

Partilhe no FacebookPartilhe no TwitterPartilhe no DeliciousPartilhe no LinkedInPartilhe no DiggAdicionar ao Google BookmarksPartilhe no MySpacePartilhe no Orkut
Exporte no formato BibTex mendeley Exporte no formato Endnote Adicione ao seu ORCID