Patent ID: 7962746

Claim:
A computer system, comprising: a processor configured to obtain and decode instructions included in a basic program, a normal program and a secure program, and operate according to the decoded instructions; and a memory unit configured to include a controlled area and an uncontrollable area, the uncontrolled area being different from the controlled area and storing therein the secure program, wherein the basic program configures an operating system and includes an instruction to mediate access of the normal program to the controlled area as an access space only for access by the normal program, the controlled area storing therein the basic program and the normal program, the normal program including an instruction to access the controlled area via the basic program, and the secure program being independent of the operating system and including an instruction to access the uncontrollable area as an access space only for access by the secure program, the secure program including an instruction to perform a confidentiality process relating to confidential information stored in the uncontrollable area, wherein the controlled area further stores therein a switch program including an instruction to switch from execution of the basic program to execution of the secure program in response to a direction of the basic program, the processor being configured obtain and decode the instruction included in the switch program and operate according to the decoded instruction, and the basic program further includes an instruction to switch to execution of the secure program and the secure program further includes an instruction to switch from execution of the secure program to execution of the basic program after the confidentiality process is finished, and wherein the switch program includes (i) an instruction to change settings of a stack pointer back to a stack pointer used b the basic program at a time of switching from execution of the secure program to execution of the basic program and (ii) an instruction to change the settings of the stack pointer back to a stack pointer used by the secure program at a time of switching from execution of the basic program to execution of the secure program.