The University of Southampton
University of Southampton Institutional Repository

Applying Formal Methods to the Design of Smart Card Software

Applying Formal Methods to the Design of Smart Card Software
Applying Formal Methods to the Design of Smart Card Software
The goal of this work is the design of a language for the implementation of smart card applications, specifically an operating system, as high integrity software. The integrity of a piece of software is demonstrated by proving various properties of the software. The language must therefore exclude any constructs that would make such proofs unreasonably difficult. An untyped language is not only very difficult to reason about formally but also allows many unchecked run-time errors that are eliminated in a, suitably, typed language. We would like the type system of the language to be strong, expressive and simple. Unfortunately the language is required to be able implement certain routines that might normally be part of the run-time system, notably the storage allocation routines. This requirement is likely to force the adoption of a weaker type system than we would ideally prefer. In order to understand the consequences of this requirement we first had to understand in more detail the storage allocation system required. To this end we prepared an initial Z specification of a memory manager for a smart card system. We then produced an executable specification and a Miranda implementation of the memory manager. These led to a modified Z specification for the existing implementation in both an abstract and refined form. The refined form of the modified Z specification was further refined to a detailed design. This was followed by some analysis about the general requirements and implications of a storage allocation function and an example implementation in Modula-3. Finally a proposal for a type system was prepared, describing the advantages of certain choices and the problems introduced by others.
Butler, Michael
54b9c2c7-2574-438e-9a36-6842a3d53ed0
Hartel, Pieter
49d22a9c-a26a-49f3-b805-8aa47c4cc299
Jong, Eduard de
288f75ba-afa4-40cd-a183-dc14659621bf
Longley, Mark
1fad4702-74f6-406f-b365-8afc4f766cf9
Butler, Michael
54b9c2c7-2574-438e-9a36-6842a3d53ed0
Hartel, Pieter
49d22a9c-a26a-49f3-b805-8aa47c4cc299
Jong, Eduard de
288f75ba-afa4-40cd-a183-dc14659621bf
Longley, Mark
1fad4702-74f6-406f-b365-8afc4f766cf9

Butler, Michael, Hartel, Pieter, Jong, Eduard de and Longley, Mark (1997) Applying Formal Methods to the Design of Smart Card Software

Record type: Monograph (Project Report)

Abstract

The goal of this work is the design of a language for the implementation of smart card applications, specifically an operating system, as high integrity software. The integrity of a piece of software is demonstrated by proving various properties of the software. The language must therefore exclude any constructs that would make such proofs unreasonably difficult. An untyped language is not only very difficult to reason about formally but also allows many unchecked run-time errors that are eliminated in a, suitably, typed language. We would like the type system of the language to be strong, expressive and simple. Unfortunately the language is required to be able implement certain routines that might normally be part of the run-time system, notably the storage allocation routines. This requirement is likely to force the adoption of a weaker type system than we would ideally prefer. In order to understand the consequences of this requirement we first had to understand in more detail the storage allocation system required. To this end we prepared an initial Z specification of a memory manager for a smart card system. We then produced an executable specification and a Miranda implementation of the memory manager. These led to a modified Z specification for the existing implementation in both an abstract and refined form. The refined form of the modified Z specification was further refined to a detailed design. This was followed by some analysis about the general requirements and implications of a storage allocation function and an example implementation in Modula-3. Finally a proposal for a type system was prepared, describing the advantages of certain choices and the problems introduced by others.

Other
dsse-tr-97-8.ps - Other
Download (394kB)

More information

Published date: July 1997
Additional Information: http://www.dsse.ecs.soton.ac.uk/techreports/97-8.html.
Organisations: Electronic & Software Systems

Identifiers

Local EPrints ID: 253690
URI: http://eprints.soton.ac.uk/id/eprint/253690
PURE UUID: 532104b9-5328-4792-b2ec-fbf49b8557f3
ORCID for Michael Butler: ORCID iD orcid.org/0000-0003-4642-5373

Catalogue record

Date deposited: 17 Jul 2000
Last modified: 15 Mar 2024 02:50

Export record

Contributors

Author: Michael Butler ORCID iD
Author: Pieter Hartel
Author: Eduard de Jong
Author: Mark Longley

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×