A programmable crypto processing system (10) includes several processing
resources (14, 16, 26) implemented on a single ULSI die. The processing
system is both key and algorithm agile allowing for simultaneous execution
of a variety of cryptographic programs through the use of background
staging of the next program and context (key and state) during execution
of a current program. The programmable crypto processing system includes a
programmable crypto processor (17) for processing data units in accordance
with a channel program, a crypto controller (11) for identifying a channel
program, two interface processors (13, 15) for asynchronously receiving
and transferring data units from and from an external host. Data units
identify a particular channel program, and are processed in a selected
processing engine in accordance the identified channel program. The
interface processors are capable of full duplex operation and provide full
physical data interface isolation for processing plain-text and
cipher-text data.