1. A system for providing processor-based security, comprising: a processor having a processor core, a cache memory, a plurality of registers for storing at least one hash value, and a memory interface; and at least one on-chip instruction for performing a secure launch of a hypervisor program, the at least one on-chip instruction, when executed by the processor, causing the processor to: compute a first storage hash value over a current state of a first hypervisor program; compare the first storage hash value to a second storage hash value stored in the plurality of registers; if the first storage hash value matches the second storage hash value in response to the comparison, (i) allow the first hypervisor program corresponding to the first storage hash value to access contents of a first secure storage area in a non-volatile memory previously stored by a second hypervisor program corresponding to the second storage hash value, and (ii) encrypt and hash data written to and decrypt and verify hashes of data read from the first secure storage area using a first on-chip encryption key and a first on-chip storage hash value; if the first storage hash value does not match the second storage hash value in response to the comparison, (i) prevent access to the contents stored in the first secure storage area and allocate a second secure storage area for the first hypervisor, (ii) copy the first storage hash value into a register containing the second storage hash value, and (iii) encrypt and hash data written to, and decrypt and verify hashes of data read from, the second secure storage area using a first on-chip encryption key and a first on-chip storage hash value; the at least one on-chip instruction, when executed by the processor, further causing the processor to: encrypt and hash data written to and decrypt and verify hashes of data read from a third secure storage area corresponding to a first trusted software module program using a second encryption key and a third storage hash value, and define the third secure storage area corresponding to the first trusted software module program by a module identity, an encryption key, and the third storage hash value or a pre-defined storage hash value.