| Name: | Description: | Size: | Format: | |
|---|---|---|---|---|
| 2.72 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
Cryptography can be classified as secret-key and public-key cryptography. Both have distinct
features and differs in performance, complexity, flexibility and security. Secret-key
cryptography, considering its simplicity and performance, is commonly used for securing
communications. The invention of public-key cryptography made it possible to develop
more flexible cryptographic schemes and algorithms, such as key exchanges and digital
signatures, hence extending the possibilities and the field of cryptography. Cryptographic
implementations are primordial for securing the Internet, and as a consequence, correctness,
security and efficiency are more emphasized. In this sense, this work addresses the
evaluation and the implementation of Ed25519, an instance of the Edwards-curve Digital
Signature Algorithm for digital messages authentication. The implementation lies on
Rust: a safe, modern, high-level and strongly-typed programming language. This work
has two contributions: (i) an Ed25519 implementation in Rust that considers readability,
modularity and ease of use, and (ii) an evaluation of the Ed25519 implementation from a
security/performance perspective. The implementation was comprised by three modules:
field arithmetic, curve arithmetic and the interface. The security perspective presented
essential qualities of cryptographic implementations, such as functional correctness, memory
safety, constant-time operations and usability. The performance evaluation showed
low execution times and proved to be as fast as implementations written in C; Rust’s
RAM consumption showed similar results in comparison to implementations written in
C.
A criptografia pode ser classificada em simétrica e assimétrica. Ambos diferem-se com relação ao desempenho, complexidade, flexibilidade e segurança. A criptografia simétrica é comumente utilizada para estabelecer comunicações secretas. A criptografia assimétrica foi capaz de ampliar as primitivas criptográficas ao possibilitar primitivas para assinaturas digitais e acordo de chaves. Implementações criptográficas são primordiais na proteção de comunicações e informações. Nesse sentido, a segurança, corretude e eficiência são priorizadas. Este trabalho aborda a avaliação e implementação do algoritmo de assinaturas digitais Ed25519, uma instância do Edwards-curve Digital Signature Algorithm. Este trabalho tem como objetivo realizar a implementação do algoritmo Ed25519 em Rust, uma linguagem de programação de alto nível, moderna e fortemente tipada, com foco em memory safety. Dessa forma, as contribuições são: (i) uma implementação do Ed25519 em Rust que suporta legibilidade, modularidade e facilidade de uso e (ii) a avaliação da implementação em termos de desempenho e segurança. O desenvolvimento envolveu a implementação de três módulos: aritmética de corpos, aritmética de curvas e interface. Na perspectiva da segurança, foi possível apresentar atributos essenciais às implementações criptográficas, tais como correctness, memory safety, usabilidade e operações em tempo constante. A implementação apresentou tempos de execução aceitáveis e próximos das implementações em C; além disso, Rust apresentou consumo de memória RAM similar às implementações em C.
A criptografia pode ser classificada em simétrica e assimétrica. Ambos diferem-se com relação ao desempenho, complexidade, flexibilidade e segurança. A criptografia simétrica é comumente utilizada para estabelecer comunicações secretas. A criptografia assimétrica foi capaz de ampliar as primitivas criptográficas ao possibilitar primitivas para assinaturas digitais e acordo de chaves. Implementações criptográficas são primordiais na proteção de comunicações e informações. Nesse sentido, a segurança, corretude e eficiência são priorizadas. Este trabalho aborda a avaliação e implementação do algoritmo de assinaturas digitais Ed25519, uma instância do Edwards-curve Digital Signature Algorithm. Este trabalho tem como objetivo realizar a implementação do algoritmo Ed25519 em Rust, uma linguagem de programação de alto nível, moderna e fortemente tipada, com foco em memory safety. Dessa forma, as contribuições são: (i) uma implementação do Ed25519 em Rust que suporta legibilidade, modularidade e facilidade de uso e (ii) a avaliação da implementação em termos de desempenho e segurança. O desenvolvimento envolveu a implementação de três módulos: aritmética de corpos, aritmética de curvas e interface. Na perspectiva da segurança, foi possível apresentar atributos essenciais às implementações criptográficas, tais como correctness, memory safety, usabilidade e operações em tempo constante. A implementação apresentou tempos de execução aceitáveis e próximos das implementações em C; além disso, Rust apresentou consumo de memória RAM similar às implementações em C.
Description
Mestrado de dupla diplomação com a UTFPR - Universidade Tecnológica Federal do Paraná
Keywords
Edwards-curve digital signature algorithm Elliptic curve cryptography Cryptographic library Security analysis Performance evaluation
