Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by HASLab

2009

A perspective on service orchestration

Authors
Barbosa, MA; Barbosa, LS;

Publication
SCIENCE OF COMPUTER PROGRAMMING

Abstract
Service-oriented computing is an emerging paradigm with increasing impact on the way modern software systems are designed and developed. Services are autonomous, loosely coupled and heterogeneous computational entities able to cooperate to achieve common goals. This paper introduces a model for service orchestration, which combines a exogenous coordination model, with services' interfaces annotated with behavioural patterns specified in a process algebra which is parametric on the interaction discipline. The coordination model is a variant of REO for which a new semantic model is proposed. (C) 2009 Published by Elsevier B.V.

2009

Implementation of an Orchestration Language as a Haskell Domain Specific Language

Authors
Campos, MD; Barbosa, LS;

Publication
Electronic Notes in Theoretical Computer Science

Abstract
Even though concurrent programming has been a hot topic of discussion in Computer Science for the past 30 years, the community has yet to settle on a, or a few standard approaches to implement concurrent programs. But as more and more cores inhabit our CPUs and more and more services are made available on the web the problem of coordinating different tasks becomes increasingly relevant. The present paper addresses this problem with an implementation of the orchestration language Orc as a domain specific language in Haskell. Orc was, therefore, realized as a combinator library using the lightweight threads and the communication and synchronization primitives of the Concurrent Haskell library. With this implementation it becomes possible to create orchestrations that re-use existing Haskell code and, conversely, re-use orchestrations inside other Haskell programs. The complexity inherent to distributed computation, entails the need for the classification of efficient, reusable, concurrent programming patterns. The paper discusses how the calculus of recursive schemes used in the derivation of functional programs, scales up to a distributed setting. It is shown, in particular, how to parallelize the entire class of binary tree hylomorphisms.

2009

Using Compilers to Enhance Cryptographic Product Development

Authors
Bangerter, E; Barbosa, M; Bernstein, D; Damgård, I; Page, D; Pagter, JI; Sadeghi, AR; Sovio, S;

Publication
ISSE 2009 - Securing Electronic Business Processes, Highlights of the Information Security Solutions Europe 2009 Conference, The Hague, The Netherlands, October 6-8, 2009

Abstract

2009

Constructive and Destructive Use of Compilers in Elliptic Curve Cryptography

Authors
Barbosa, M; Moss, A; Page, D;

Publication
JOURNAL OF CRYPTOLOGY

Abstract
Although cryptographic software implementation is often performed by expert programmers, the range of performance and security driven options, as well as more mundane software engineering issues, still make it a challenge. The use of domain specific language and compiler techniques to assist in description and optimisation of cryptographic software is an interesting research challenge. In this paper we investigate two aspects of such techniques, focusing on Elliptic Curve Cryptography (ECC) in particular. Our constructive results show that a suitable language allows description of ECC based software in a manner close to the original mathematics; the corresponding compiler allows automatic production of an executable whose performance is competitive with that of a hand-optimised implementation. In contrast, we study the worrying potential for na < ve compiler driven optimisation to render cryptographic software insecure. Both aspects of our work are set within the context of CACE, an ongoing EU funded project on this general topic.

2009

Security Analysis of Standard Authentication and Key Agreement Protocols Utilising Timestamps

Authors
Barbosa, M; Farshim, P;

Publication
PROGRESS IN CRYPTOLOGY - AFRICACRYPT 2009

Abstract
We propose a generic modelling technique that can be used to extend existing frameworks for theoretical security analysis in order to capture the use of timestamps. We apply this technique to two of the most popular models adopted in literature (Bellare-Rogaway and Canetti-Krawczyk). We analyse previous results obtained using these models in light of the proposed extensions, and demonstrate their application to a new class of protocols. In the timed CK model we concentrate on modular design and analysis of protocols, and propose a more efficient timed authenticator relying on timestamps. The structure of this new authenticator implies that an authentication mechanism standardised in ISO-9798 is secure. Finally, we use our timed extension to the BR model to establish the security of an efficient ISO protocol for key transport and unilateral entity authentication.

2009

Bidirectional data-flow analyses, type-systematically

Authors
Frade, MJ; Saabas, A; Uustalu, T;

Publication
Proceedings of the 2009 ACM SIGPLAN Symposium on Partial Evaluation and Program Manipulation, PEPM'09

Abstract
We show that a wide class of bidirectional data-flow analyses and program optimizations based on them admit declarative descriptions in the form of type systems. The salient feature is a clear separation between what constitutes a valid analysis and how the strongest one can be computed (via the type checking versus principal type inference distinction). The approach also facilitates elegant relational semantic soundness definitions and proofs for analyses and optimizations, with an application to mechanical transformation of program proofs, useful in proof-carrying code. Unidirectional forward and backward analyses are covered as special cases; the technicalities in the general bidirectional case arise from more subtle notions of valid and principal types. To demonstrate the viability of the approach we consider two examples that are inherently bidirectional: type inference (seen as a data-flow problem) for a structured language where the type of a variable may change over a program's run and the analysis underlying a stack usage optimization for a stack-based low-level language. ©2009 ACM.

  • 217
  • 261