State machines having a hierarchical arrangement of machines as between a parent state machine 10 and sibling state machines 11, 12, and 14. The parent state machine 10 generates a plurality of outputs constituting its output state as based upon its input state defined by inputs N and its internal state. Part of the input state is defined by a set of inputs 15 which include asynchronous signals such as reset and interrupts. The parent state machine 10 defines or partially defines input states as applied to the respective sibling state machines 11, 12, and 14 by producing a series of output states in response to input states as applied thereto and independent upon an existing internal state. This system enables machine design time to be reliably shortened by virtue of easier validation of tasks assigned to the sibling machines.
The present invention concerns a method and a system for operating state machines concurrently in a computing system. One or more state machine families are generated. Each family comprises one master state machine type for receiving service requests from outside its family and for forwarding the received service requests for servicing, and one or more slave state machine types for receiving and servicing the forwarded service requests. A thread pool is allocated to one or more state machine families. Each thread pool is specific to one state machine family and comprises one or more threads for executing the master instance and slave instances of the corresponding state machine family. State machine instances of one or more generated state machine families are assigned to corresponding threads of the allocated thread pools for execution.
An interface apparatus of the present invention includes an external state machine for controlling transmission of data and a control code from an own device to a counterpart device in accordance with an inputted control code, and an internal state machine for judging whether the own device is in a data transmission preparatory state or in a data transmission state, and notifies a result of the judgement to the external state machine. The external state machine invalidates the inputted control code during a period in which the internal state machine notifies that the own device is in the data transmission preparatory state.
A confusion data generator for the generation of non-linear confusion data utilizes a plurality of arrays acting as non-linear state machines to generate a stream of confusion data of a certain width. Each non-linear state machine contributes equally to the overall width of the confusion data. The output bit stream from the confusion data generator is then used with a combiner such as an XOR combiner to generate secure text from plaintext. The confusion data generator can be used to securely store data on a storage medium or transmit data over a communication medium. The confusion data generator is computationally inexpensive, scalable and provides good security when used with a combiner, such as an XOR combiner, to generate secure text.
A method and apparatus for the initialization of a class of non-linear confusion data generators is especially useful to enhance the security of non-linear confusion data generators that are restricted to short size secret keys or seeds. The initializer utilizes a user seed and a displacement distance to single or multiple secret key and cipher arrays to randomize confusion data generators such that their security is enhanced. The initializer provides the ability to design confusion data generators that are capable of securing large size data files as a collection of smaller size segments that can be independently decrypted for fast access and review. The initializer can be used to securely store data on a storage medium or transmit data over a communication medium.