DATA PROCESSING DEVICE AND METHOD FOR PROTECTING A DATA PROCESSING DEVICE AGAINST ATTACKS
First Claim
1. A data processing device, comprising:
- an instruction memory which is configured to store a computer program;
a processing unit which is configured to execute the computer program;
a program counter which is configured to specify a command of the computer program in the instruction memory as the next to be executed;
a call stack;
an encryption device which is configured to encrypt, when a subroutine is called in the computer program, a return address which specifies a command of the computer program in the instruction memory with which operations are to be continued after the execution of the subroutine, and to store the encrypted return address in the call stack;
a decryption device which is configured to read, after the execution of the subroutine, the encrypted return address from the call stack, to decrypt it and to set the program counter on the basis of the decrypted return address.
1 Assignment
0 Petitions
Accused Products
Abstract
A data processing device may have an instruction memory which is configured to store a computer program, a processing unit which is configured to execute the computer program, a program counter which is configured to specify a command of the computer program in the instruction memory as the next to be executed, a call stack, an encryption device which is configured to encrypt, when a subroutine is called in the computer program, a return address which specifies a command of the computer program in the instruction memory with which operations are to continue after the execution of the subroutine, and to store the encrypted return address in the call stack and a decryption device which is configured to read, after the execution of the subroutine, the encrypted return address from the call stack, to decrypt it and to set the program counter on the basis of the decrypted return address.
-
Citations
20 Claims
-
1. A data processing device, comprising:
-
an instruction memory which is configured to store a computer program; a processing unit which is configured to execute the computer program; a program counter which is configured to specify a command of the computer program in the instruction memory as the next to be executed; a call stack; an encryption device which is configured to encrypt, when a subroutine is called in the computer program, a return address which specifies a command of the computer program in the instruction memory with which operations are to be continued after the execution of the subroutine, and to store the encrypted return address in the call stack; a decryption device which is configured to read, after the execution of the subroutine, the encrypted return address from the call stack, to decrypt it and to set the program counter on the basis of the decrypted return address. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for protecting a data processing device against attacks, the method comprising:
-
executing a computer program from an instruction memory by means of a data processing device; encrypting, when a subroutine is called in the computer program, a return address which specifies a command of the computer program in the instruction memory with which operations are to be continued after the execution of the subroutine; storing the encrypted return address in a call stack; reading the encrypted return address from the call stack after the execution of the subroutine; decrypting the encrypted return address; setting a program counter of the data processing device which specifies a command of the computer program in the instruction memory as the next to be executed, on the basis of the decrypted return address. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20)
-
Specification