Abstract: Code of at least one software program is executed in a multi-processor computer environment. Each software program includes a first portion of software code to be executed in a computer, and a second portion of software code that includes one or more fragments of code of the software program. The second portion of code is executed in one or more external devices which are in communication with the computer. The second portion of code is encrypted, transferred to a secure computer environment, such as a smart card, and decrypted in the one or more external devices prior to execution. The fragments of code may be interspersed within the first portion of code.
Type:
Application
Filed:
January 6, 2004
Publication date:
September 30, 2004
Applicant:
SOSPITA AS
Inventors:
Sigurd Sigbjornsen, Magne Arild Haglund, Vladimir A. Oleshchuk
Abstract: An arrangement to protect software, particularly freely distributed application software, against utilization without permission of the copyright holder. By encrypting the software employing a key (k1) which is different from that key (k2) which is employed in the decryption, better protection is obtained against unauthorized utilization when the decryption key is kept secret to the user. Further improved security is achieved by additionally executing scrambling-descrambling of the communication between the computer in which the software is utilized and the external unit in which the decryption key is stored. Also, the external unit is arranged such that it returns to the host computer, the result from its processing of data received from the host, the result then being utilized in the further execution of the respective program.
Type:
Application
Filed:
June 5, 2001
Publication date:
October 9, 2003
Applicant:
Sospita AS
Inventors:
Sigurd Sigbjornsen, Magne A. Haglund, Vladimir A. Oleschuk
Abstract: Software code of a software program is executed in a multi-processor computer environment. The software code includes a first portion and a second portion. The first portion is executed in a computer. The second portion is executed in one or more tamper-resistant external devices which are in communication with the computer. The second portion includes a plurality of different blocks of code. At least some of the blocks have sequence data associated therewith. If sequence data exists in the current block of code to be executed in the one or more external devices, then the sequence data is used to determine if execution of the block of code is permissible or should be inhibited. The sequence data includes predecessor data and successor data.