He obtained a degree in Electrical and Computer Engineering from the University of Porto in 1996, an MSc degree from University Newcastle in 1997 and a PhD degree in Electric and Electronic Engineering from the University of Newcastle upon Tyne in 2000. In 2005 he was a visiting researcher at the Cryptography and Information Security group at the University of Bristol. His more recent research contributions lie in the fields of provable security of cryptographic algorithms and domain-specific languages for the implementation and formal verification of cryptographic software.