Please use this identifier to cite or link to this item: https://hdl.handle.net/1822/62428

Full metadata record
DC FieldValueLanguage
dc.contributor.advisorBarbosa, Manuelpor
dc.contributor.authorBoas, Rui Pedro Araújo Vilaspor
dc.date.accessioned2019-11-27T11:43:54Z-
dc.date.available2019-11-27T11:43:54Z-
dc.date.issued2017-
dc.date.submitted2017-
dc.identifier.urihttps://hdl.handle.net/1822/62428-
dc.descriptionDissertação de mestrado em Engenharia Informáticapor
dc.description.abstractDevido à 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.por
dc.description.abstractWith 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.por
dc.description.sponsorshipEste trabalho foi apoiado pela seguinte bolsa de investigação: Network Sensing for Critical Systems Monitoring (NORTE -01 -0124 -FEDER- 000058). No âmbito do ON.2 IC&DT Programa Integrado “BEST CASE – Better Science Through Cooperative Advanced Synergetic Efforts” Refª BI 2014_BestCase_RL3.2_UMINHOpor
dc.language.isoporpor
dc.rightsopenAccesspor
dc.titleDesenvolvimento e optimização de back-end de compilador criptográfico para plataformas ARMpor
dc.title.alternativeDevelopment and optimization of a cryptographic compiler Back-end devised for ARM platformspor
dc.typemasterThesiseng
dc.identifier.tid202312496por
thesis.degree.grantorUniversidade do Minhopor
sdum.degree.grade16 valorespor
sdum.uoeiEscola de Engenhariapor
dc.subject.fosEngenharia e Tecnologia::Engenharia Eletrotécnica, Eletrónica e Informáticapor
Appears in Collections:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
Rui-Pedro-Araújo-Vilas-Boas-dissertação.pdf1,44 MBAdobe PDFView/Open

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