Strategies to address an immutable key in a symmetric cryptosystem I have a power constrained environment where I do not have enough power to update an encryption key.  For this reason, the symmetric key will be programmed before the devices are distributed, and this key is used to encrypt a payload.  I have two different things that I could possibly change, one is a nonce, and the other is a modification to the base key.  I don't have a way to generate a nonce locally; however, in the system, you have a &quot;host&quot; and a &quot;client&quot; and the host polls the client. The encrypted packed goes from the client to host.  For the sake of scope, let's assume AES-128.  I have a very small, non-volatile memory of 128 bytes.  Here is a list of things that I could possibly do within the current framework:

I could send a random number and XOR that with key that is already stored in the &quot;client&quot;.  The problem there is that I have 128-bit key but only the ability to send a 32-bit value to the device (currently that is, I possibly could get 128-bits, but I need to look into the channel bandwidth)
The device creates a 16-bit pseudorandom number that is generated by the client is known by both the host and client, and I could use that a nonce in some way.  This approach is easiest because it becomes a host-side software issue because the key is not modified.

Above is basically a nuance to the problem, so the question is:
Is there a standard method to deal with the problem of an immutable key structure in a system which uses a symmetric cipher?
I'm not sure if this is precisely what you are asking, but developing single-session keys from a long term hard-wired key is something that mobile phones and SIM cards do. Hard-wired keys on the SIM and known to the service provider kick off key derivation process augmented with a random nonce value from the service provider's base station. The 3GPP MILENAGE suite is such a method, is standardised via ETSI, and only uses symmetric primitives (block ciphers).