A cryptographic system, method, and device for implementing cryptographic
functions designed to protect data is provided. The method includes (a)
providing an algorithm processing unit, (b) executing a cryptographic
algorithm at the algorithm processing unit using a first cryptographic
datum and input data to form output data, (c) determining if a context
switch command is received from a controller, (d) receiving a second
cryptographic datum from a memory if the context switch command is
received, (e) replacing the second cryptographic datum with the first
cryptographic datum if the context switch command is received, and (f)
repeating (b)-(e). The controller switches the processing state of the
algorithm processing unit from one channel to another channel without
leaking data between channels through execution of the operations each
time a channel switch is selected. As a result, a single algorithm
processing unit used with a controller can provide multiple independent
levels of security.