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

TítuloLinguagens de domínio específico para software criptográfico
Autor(es)Miranda, Luís Paulo Ferreira
Orientador(es)Almeida, José Bacelar
Data26-Abr-2012
Resumo(s)A criptografia desempenha um papel importante na nossa sociedade, visto que é utilizada em sistemas de computação designados como críticos, que têm que funcionar mesmo na presença de erros. Áreas como os sistemas bancários ou de saúde usam software e hardware, que têm que funcionar em todas as circunstâncias. O principal objetivo para o uso de criptografia nesses sistemas, é o de garantir a segurança da informação, que em muitos casos é sensível. Nos últimos anos, foram surgindo linguagens de programação que se focam num domínio específico, chamadas de linguagens de domínio específico (DSLs). No domínio da criptografia, apareceram as linguagens Cryptol e CAO, ambas ambicionando aumentar a produtividade dos programadores, mas também aumentar a comunicação entre estes e os especialistas do domínio. O Cryptol é uma linguagem funcional e tem um conjunto de ferramentas associadas, compostas por um conjunto de ferramentas de verificação e de compilação para linguagens como C ou VHDL, que é uma linguagem descritiva de hardware. O CAO é uma linguagem imperativa, com uma sintaxe idêntica à do C, e tem também um conjunto de ferramentas associado, que permite a introdução de operações de alto nível na linguagem, por exemplo. Neste trabalho, essas duas linguagens foram abordadas, em particular as suas funcionalidades, e como podem ser usadas para implementar um algoritmo através da sua especificação. Além disso, foi desenvolvida uma ferramenta de compilação que pretende transformar código fonte CAO em código Cryptol, de forma a compilá-lo para VHDL posteriormente. Por fim, um caso de estudo que foca curvas elípticas para criptografia, foi utilizado para comparar as duas DSLs e também para testar a ferramenta desenvolvida.
Cryptography plays an important role in our society, essentially because it is used in critical computer systems that must work properly, even in the face of errors or human mistakes. Banking or health care are examples of areas which use hardware and software that must work in every situation. The main goal of the use of cryptography in those systems is to achieve information security, which in most cases is sensitive. In the last few years, programming languages that focus on a particular domain emerged, denominated as Domain-specific Languages (DSLs). Two DSLs for cryptography appeared, Cryptol and CAO, both aiming to increase the productivity of developers, but also to improve the communication between them and domain experts. Cryptol is a functional language and has an associated toolkit composed by a verification suite and compilation back ends to languages such as C or VHDL (a hardware description language). CAO is an imperative language, with a syntax similar to C’s and also has an associated toolkit with tools that allows, for instance, the introduction of higher-order operations into the language. In this work, these two DSLs for cryptography will be analysed, focusing on its features and how they can re-target a published algorithm into a specific implementation. Furthermore, it was developed a compiler tool that aims to translate CAO source code into Cryptol, in order to compile it afterwards to VHDL. Finally, a case study focusing on elliptic curve cryptography, was used to compare the two DSLs and to test the developed tool.
TipoDissertação de mestrado
DescriçãoDissertação de mestrado em Engenharia de Informática
URIhttps://hdl.handle.net/1822/27795
AcessoAcesso aberto
Aparece nas coleções:BUM - Dissertações de Mestrado
DI - Dissertações de Mestrado

Ficheiros deste registo:
Ficheiro Descrição TamanhoFormato 
eeum_di_dissertacao_pg15534.pdf4,09 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