Please use this identifier to cite or link to this item:
https://hdl.handle.net/1822/62428
Title: | Desenvolvimento e optimização de back-end de compilador criptográfico para plataformas ARM |
Other titles: | Development and optimization of a cryptographic compiler Back-end devised for ARM platforms |
Author(s): | Boas, Rui Pedro Araújo Vilas |
Advisor(s): | Barbosa, Manuel |
Issue date: | 2017 |
Abstract(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. |
Type: | Master thesis |
Description: | Dissertação de mestrado em Engenharia Informática |
URI: | https://hdl.handle.net/1822/62428 |
Access: | Open access |
Appears in Collections: | BUM - Dissertações de Mestrado DI - Dissertações de Mestrado |
Files in This Item:
File | Description | Size | Format | |
---|---|---|---|---|
Rui-Pedro-Araújo-Vilas-Boas-dissertação.pdf | 1,44 MB | Adobe PDF | View/Open |