A method for execution by a processor of a hardware system for performing secure communication via a secure communication channel with an external device, the method comprising: determining a master key value for use in secure communications with the external device; both in the hardware system and in the external device, periodically deriving a first session key using the master key value , and periodically generating a new master key value based on the master key value ; and deleting the master key value , wherein the periodically deriving the first session key using the master key value and the periodically generating the new master key value based on the master key value comprises one of the following procedures a), b), and c): a) deriving a second session key using the master key value , and combining the derived first session key and the derived second session key to thereby generate the new master key value ; b) deriving a second session key using the master key value , combining the master key value and the derived first session key to yield a combined result, and combining the combined result and the derived second session key to thereby generate the new master key value ; and c) generating the new master key value using the master key value , and deriving the first or a second session key by combining the master key value and the new master key value , and wherein the method further comprises both parties to the secure communication, that is the processor and the external device, altering the master key in the same way. determining a master key value for use in secure communications with the external device; both in the hardware system and in the external device, periodically deriving a first session key using the master key value , and periodically generating a new master key value based on the master key value ; and deleting the master key value , wherein the periodically deriving the first session key using the master key value and the periodically generating the new master key value based on the master key value comprises one of the following procedures a), b), and c): a) deriving a second session key using the master key value , and combining the derived first session key and the derived second session key to thereby generate the new master key value ; b) deriving a second session key using the master key value , combining the master key value and the derived first session key to yield a combined result, and combining the combined result and the derived second session key to thereby generate the new master key value ; and c) generating the new master key value using the master key value , and deriving the first or a second session key by combining the master key value and the new master key value , a) deriving a second session key using the master key value , and combining the derived first session key and the derived second session key to thereby generate the new master key value ; b) deriving a second session key using the master key value , combining the master key value and the derived first session key to yield a combined result, and combining the combined result and the derived second session key to thereby generate the new master key value ; and c) generating the new master key value using the master key value , and deriving the first or a second session key by combining the master key value and the new master key value , and wherein the method further comprises both parties to the secure communication, that is the processor and the external device, altering the master key in the same way. <EOS>