Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Simão Melo de Sousa is active.

Publication


Featured researches published by Simão Melo de Sousa.


european symposium on programming | 2001

A Formal Executable Semantics of the JavaCard Platform

Gilles Barthe; Guillaume Dufay; Line Jakubiec; Bernard Paul Serpette; Simão Melo de Sousa

We present a formal executable specification of two crucial JavaCard platform components, namely the Java Card Virtual Machine (JCVM) and the ByteCode Verifier (BCV). Moreover, we relate both components by giving a proof of correctness of the ByteCode Verifier. Both formalisations and proofs have been machined-checked using the proof assistant Coq.


australasian conference on information security and privacy | 2008

Secure Biometric Authentication with Improved Accuracy

Manuel Barbosa; Thierry Brouard; Stéphane Cauchie; Simão Melo de Sousa

We propose a new hybrid protocol for cryptographically secure biometric authentication. The main advantages of the proposed protocol over previous solutions can be summarised as follows: (1) potential for much better accuracy using different types of biometric signals, including behavioural ones; and (2) improved user privacy, since user identities are not transmitted at any point in the protocol execution. The new protocol takes advantage of state-of-the-art identification classifiers, which provide not only better accuracy, but also the possibility to perform authentication without knowing who the user claims to be. Cryptographic security is based on the Paillier public key encryption scheme.


verification model checking and abstract interpretation | 2002

A Formal Correspondence between Offensive and Defensive JavaCard Virtual Machines

Gilles Barthe; Guillaume Dufay; Line Jakubiec; Simão Melo de Sousa

Many formal specifications of the JavaCard Virtual Machine are defensive, in that they perform type-checking at run-time. In this paper, we show how to construct from such a defensive virtual machine an offensive one that does not perform type-checking at run-time. Further, we establish that the two machines coincide for the class of JavaCard programs that pass bytecode verification. Both the construction of the offensive virtual machine and its correctness proof are achieved using (non-standard) abstract interpretation techniques and have been fully formalized in the Coq proof assistant.


Archive | 2011

An Overview of Formal Methods Tools and Techniques

Jose B. Almeida; Maria João Frade; Jorge Sousa Pinto; Simão Melo de Sousa

The goal of this chapter is to give an overview of the different approaches and tools pertaining to formal methods. We do not attempt to be exhaustive, but focus instead on the main approaches (formal specification, formal verification and proofs, transformation, and formal development). A consise introduction to basic logic concepts and methods is also provided. After reading the chapter the reader will be familiar with the terminology of the area, as well as with the most important concepts and techniques.


Lecture Notes in Computer Science | 2001

Jakarta: A Toolset for Reasoning about JavaCard

Gilles Barthe; Guillaume Dufay; Marieke Huisman; Simão Melo de Sousa

JavaCard [22] is a dialect of Java that enables Java technology to run on new generation smart cards and other devices with limited memory. As JavaCard is becomingincr easingly popular, there has been a strong interest, both from academics and industrials, to reason formally about the JavaCard platform.


Archive | 2011

Rigorous Software Development

Jose B. Almeida; Maria João Frade; Jorge Sousa Pinto; Simão Melo de Sousa

The use of mathematical methods in the development of software is essential when reliable systems are sought; in particular they are now strongly recommended by the official norms adopted in the production of critical software. Program Verification is the area of computer science that studies mathematical methods for checking that a program conforms to its specification. This text is a self-contained introduction to program verification using logic-based methods, presented in the broader context of formal methods for software engineering.The idea of specifying the behaviour of individual software components by attaching contracts to them is now a widely followed approach in program development, which has given rise notably to the development of a number of behavioural interface specification languages and program verification tools. A foundation for the static verification of programs based on contract-annotated routines is laid out in the book. These can be independently verified, which provides a modular approach to the verification of software.The text assumes only basic knowledge of standard mathematical concepts that should be familiar to any computer science student. It includes a self-contained introduction to propositional logic and first-order reasoning with theories, followed by a study of program verification that combines theoretical and practical aspects - from a program logic (a variant of Hoare logic for programs containing user-provided annotations) to the use of a realistic tool for the verification of C programs (annotated using the ACSL specification language), through the generation of verification conditions and the static verification of runtime errors.


international conference on implementation and application of automata | 2010

Partial derivative automata formalized in Coq

Jose B. Almeida; Nelma Moreira; David Pereira; Simão Melo de Sousa

In this paper we present a computer assisted proof of the correctness of a partial derivative automata construction from a regular expression within the Coq proof assistant. This proof is part of a formalization of Kleene algebra and regular languages in Coq towards their usage in program certification.


RAMiCS'12 Proceedings of the 13th international conference on Relational and Algebraic Methods in Computer Science | 2012

Deciding regular expressions (in-)equivalence in coq

Nelma Moreira; David Pereira; Simão Melo de Sousa

This work presents a mechanically verified implementation of an algorithm for deciding regular expression (in-)equivalence within the Coq proof assistant. This algorithm decides regular expression equivalence through an iterated process of testing the equivalence of their partial derivatives and also does not construct the underlying automata. Our implementation has a refutation step that improves the general efficiency of the decision procedure by enforcing the in-equivalence of regular expressions at early stages of computation. Recent theoretical and experimental research provide evidence that this method is, on average, more efficient than the classical methods based in automata. We present some performance tests and comparisons with similar approaches.


algebraic methodology and software technology | 2002

Tool-Assisted Specification and Verification of the JavaCard Platform

Gilles Barthe; Pierre Courtieu; Guillaume Dufay; Simão Melo de Sousa

Bytecode verification is one of the key security functions of the JavaCard architecture. Its correctness is often cast relatively to a defensive virtual machine that performs checks at run-time, and an offensive one that does not, and can be summarized as stating that the two machines coincide on programs that pass bytecode verification. We review the process of establishing such a correctness statement in a proof assistant, and focus in particular on the problem of automating the construction of an offensive virtual machine and a bytecode verifier from a defensive machine.


ieee international conference on cloud computing technology and science | 2013

E-Id Authentication and Uniform Access to Cloud Storage Service Providers

Joao Gouveia; Paul Andrew Crocker; Simão Melo de Sousa; Ricardo Azevedo

This article describes an architecture for authentication and uniform access to protected data stored on popular Cloud Storage Service Providers. This architecture takes advantage of the OAuth authentication mechanism and the strong authentication mechanism of the National Electronic Identity (E-Id) Cards, in our case the Portuguese E-Id card or Cartao de Cidadao (CC). We shall present a comparison of authentication mechanisms and access to popular cloud storage providers, comparing the different authentication mechanisms OAuth 1.0, OAuth 1.0a and OAuth 2.0. Using the proposed architecture we have developed an implementation of this architecture that provides a uniform web based access to popular Cloud Storage Service Providers such as Drop box, Skydrive, Cloudpt and Google Drive using the authentication mechanism of the E-Id card as a unique access token. In order to provide a uniform access to these services we shall describe the differences in the various REST APIs for the targeted providers. Finally the web application that allows users that hold E-Id cards a single point of access to their various cloud storage services will be presented.

Collaboration


Dive into the Simão Melo de Sousa's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Pierre Courtieu

Conservatoire national des arts et métiers

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Nuno Gaspar

University of Beira Interior

View shared research outputs
Top Co-Authors

Avatar

Gilles Barthe

French Institute for Research in Computer Science and Automation

View shared research outputs
Researchain Logo
Decentralizing Knowledge