Patent EA-001598-B1 (EA)
Title: Portable, secure transaction system for programmable, intelligent devices
Inventor: HEYNS GUIDO
IPC: G06F9/445
Filed: 1997-06-26
Abstract: 1. A transaction management system for executing transactions between a first device and a second device, said first and second devices being adapted for communication with each other and at least one of said first and second devices being an integrated circuit card, said system comprising: at least one input/output device; a portable virtual machine for interpreting a computer program on said first device, said virtual machine comprising a virtual microprocessor and a driver for said at least one input/output device; and execution means responsive to said interpreted program for executing said program. 2. A terminal comprising a first device for carrying out a transaction with a second device, at least one of said first and second devices being an integrated circuit card, comprising: a portable virtual machine interpreting a computer program on said first device, said portable virtual machine comprising a virtual microprocessor and a driver for at least one input/output device, and execution means responsive to said interpreted program for executing said program. 3. A self-contained portable intelligent card including a first device for carrying out a transaction with a second device, said intelligent card comprising: a portable virtual machine comprising a virtual microprocessor and a driver for at least one input/output device. 4. A system according to claim 1 or a terminal according to claim 2 or an intelligent card according to claim 3, wherein the machine instructions of said virtual machine are a set of tokens, said tokens being customized byte code. 5. An intelligent card according to claim 3 or 4, further comprising a computer program stored on said intelligent card, said virtual machine interpreting said computer program and execution means responsive to said interpreted program for executing said program. 6. System or terminal according to claim 4 or intelligent card according to 5, wherein said computer program is written as a stream of tokens selected from said set of tokens and corresponding in-line data. 7. System or terminal or intelligent card according to claim 6, wherein said stream of tokens is transported in a module, a module including the stream of tokens together with the corresponding in-line data required for execution of the module. 8. System or terminal or intelligent card according to claim 7 wherein said module also includes an indication of the memory requirements for execution of said module. 9. System or terminal or intelligent card according to claim 8, wherein the virtual machine also includes a means for loading said module and interpreting the tokens therein. 10. System or terminal or intelligent card according to claim 9, wherein said means for token loading and interpreting reads said tokens in said module and an exception is thrown if a token is read which does not belong to said set. 11. System or terminal or intelligent card according to any of claims 7 to 10, wherein said virtual machine includes read/writable logical address space having a repository for at least said module, said module includes an indication of the amount of read/writable logical address space needed for its execution; and said virtual machine also includes means for allocating, on loading of said module, an amount of read/writable logical address space in accordance with said indication, said allocated readlwritable logical address space has defined and protected boundaries. 12. System or terminal or intelligent card according to claim 11, further comprising means for deallocating said allocated amount of read/writable logical address space on termination of said module. 13. System or terminal or intelligent card according to any of claims 9 to 12, wherein said second device includes means for providing at least one program instruction capable of at least modifying the execution time behavior of said computer program; and, after said means for loading and interpreting has loaded said module and while said module is running, said means for loading and interpreting loads and interprets said at least one program instruction dependent upon a pre-defined security condition; and said execution means responds to said loaded program instruction as interpreted by said virtual machine and executes said computer program with said modified behavior. 14. System or terminal or intelligent card according to claim 13, wherein said security condition is provided by a function. 15. System or terminal or intelligent card according to any of claims 9 to 14, further comprising: read/writable logical address space including at least one database including at least one record, said module includes an indication of the amount of uninitialised read/writable logical address space necessary for execution of said module; said loader allocating the required amount of uninitialised logical address space in accordance with said indication; and means for accessing a record in said database, said record in said database only being accessible through said module, and said accessing means providing a window onto a current record of said database and copying said record into a portion of said uninitialised read/writable logical address space addressable by said application program. 16. A transaction management system comprising: a first device and a second device, said first and second devices being adapted for communication with each other, at least one of said first and second devices being an integrated circuit card; said second device including means for providing at least one program instruction capable of at least modifying the execution time behavior of a computer program on said first device; said first device including a virtual machine, said virtual machine comprising means for loading and interpreting said computer program, said means for loading and interpreting being further adapted to load and interpret said at least one program instruction dependent upon a pre-defined security condition after said means for loading and interpreting has loaded said computer program and while said computer program is running; and execution means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction. 17. A terminal comprising: a first device for carrying out a transaction with a second device and at least one of said first and second devices being an integrated circuit card, said second device including means for providing at least one program instruction capable of at least modifying the execution time behavior of a computer program on said first device; said terminal comprising: said first device including a virtual machine, said virtual machine comprising means for loading and interpreting said computer program, said means for loading and interpreting being further adapted to load and interpret said at least one program instruction dependent upon a pre-defined security condition after said means for loading and interpreting has loaded said computer program and while said computer program is running; and execution means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction. 18. A self-contained portable intelligent card including: a first device for carrying out a transaction with a second device, said second device including means for providing at least one program instruction capable of at least modifying the execution time behavior of a computer program on said first device, said intelligent card comprising: said first device including a virtual machine, said virtual machine comprising means for loading and interpreting said computer program, said means for loading and interpreting being further adapted to load and interpret said at least one program instruction dependent upon a pre-defined security condition after said means for loading and interpreting has loaded said computer program and while said computer program is running; and execution means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction. 19. A system according to claim 16 or a terminal according to claim 17 or an intelligent card according to claim 18, wherein said security condition is provided by a function. 20. System or terminal or intelligent card according to claim 19, wherein said at least one program instruction is a first program instruction and said first device includes a second program instruction capable of at least modifying the execution time behavior of said computer program, said first program instruction including a reference to said second program instruction; and said means for loading and interpreting are responsive to said reference to load said second program instruction, said execution means executing said computer program with said modified behavior as determined by said second program instruction. 21. System or terminal or intelligent card according to claim 20, wherein said computer program and said first and second program instructions are written in terms of a stream of tokens and corresponding in-line data, each token being a customized byte code selected from a set of customized byte codes. 22. System or terminal or intelligent card according to claim 21, said virtual machine vectors said stream of tokens and said in4ine data of said first and second program instructions into said stream of tokens of said computer program. 23. System or terminal or intelligent card according to claim 21 or 22, wherein at least the streams of tokens of said computer program and at least said second program instruction are each transported in a module, each module including the relevant stream of tokens together with the corresponding in-line data required for execution of said module. 24. System or terminal or intelligent card according to claim 23, wherein said module a