Hermes: A reversible language for lightweight encryption

Research output: Contribution to journalJournal articleResearchpeer-review

Documents

  • Fulltext

    Accepted author manuscript, 392 KB, PDF document

Hermes is a domain-specific language for writing lightweight encryption algorithms: It is reversible, so it is not necessary to write separate encryption and decryption procedures. Hermes uses a type system that avoids several types of side-channel attacks, by ensuring no secret values are left in memory and that operations on secret data spend time independent of the value of this data, thus preventing timing-based attacks. We show a complete formal specification of Hermes, argue absence of timing-based attacks (under reasonable assumptions), and compare implementations of well-known lightweight encryption algorithms in Hermes and C.

Original languageEnglish
Article number102746
JournalScience of Computer Programming
Volume215
Number of pages26
ISSN0167-6423
DOIs
Publication statusPublished - 2022

Bibliographical note

Publisher Copyright:
© 2021 Elsevier B.V.

    Research areas

  • Domain-specific languages, Lightweight encryption, Reversible programming languages, Side-channel attacks

ID: 307004207