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
July 1997
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
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
Catalogue record
Date deposited: 17 Jul 2000
Last modified: 15 Mar 2024 02:50
Export record
Contributors
Author:
Michael Butler
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