Systems 1, (1987), Guan teaches the use of invertible cellular automata for encryption. The forward evolution of the automaton is the encryption phase, and decryption is obtained by running the inverse of the cellular automaton. In "Les Automates", J-P. Delahaye, Pour La Science, pp 126-134, 1991, Kari describes an encryption technique that uses reversible cellular automata.
U.S. Patent No. 5,365,589 to Gutowitz describes a system using irreversible cellular automata, involving forward and backward iteration to perform encryption and decryption of data.
A preferred embodiment of the present invention is based on a dynamical system concept that makes use of cellular automata. It is different from the above methods in many ways including, but not limited to, (1) the way the rules governing the evolution of the process is derived; (2) the method by which plaintext is used as the initial configuration of the dynamical system; (3) the number of evolutionary steps required to encrypt/decrypt the message; and (4) the method by which the conditions at the extremities of the dynamical system are specified.
In accordance with a preferred embodiment of the present invention, a multi-state dynamical system (MDS) is used to encrypt information. The data can be derived from any source, including digital files on computational devices and messages sent across communication networks. The dynamical system has as many states as the magnitude of the largest character in the message, as will be explained below. Moreover, the encryption/decryption key "length" or "size" can be selected to meet specified security criteria. In this regard, the key size can be arbitrarily increased to meet the security requirement of the encryption process (e.g., increasing the number of elements within each defined neighborhood of the dynamical system). In addition, the present invention uses a particular rule set to perform dynamical operation of a plaintext, and utilizes a fast method for selecting the coefficients required for operating the rule sets.
Summary of the Invention According to the present invention there is provided a method of encrypting data comprising: determining a first dynamical rule set; receiving a data message; establishing a multi-state dynamical system using the data message as the initial configuration; and evolving the received data message in the dynamical system
in accordance with a first dynamical rule set for T0 time steps, to generate a cyphertext. According to another aspect of the present invention there is provided a method of encrypting and decrypting data comprising the steps of: receiving a data message; establishing a multi-state dynamical system using the data message as the initial configuration; evolving the received data message in the dynamical system in accordance with a first dynamical rule set with preselected coefficients for T0 time steps to generate a cyphertext; transmitting the cyphertext; receiving the cyphertext; and further evolving the received cyphertext in the dynamical system with a second dynamical rule set with preselected coefficients for Td = Tf - T0 time steps, wherein said data message is recovered at Tf time steps. According to still another aspect of the present invention there is provided a system for encrypting data comprising a means for determining a first dynamical rule set; means for receiving a data message; means for establishing a multi-state dynamical system using the data message as the initial configuration; and means for evolving the received data message in the dynamical system in accordance with a first dynamical rule set for T0 time steps, to generate a cyphertext.
According to yet another aspect of the present invention, there is provided a system for encrypting and decrypting data comprising: means for receiving a data message; means for establishing a multi-state dynamical system using the data message as the initial configuration; means for evolving the received data message in the dynamical system in accordance with a first dynamical rule set with preselected coefficients for T0 time steps to generate a cyphertext, transmission means for transmitting the cyphertext; reception means for receiving the cyphertext; and means for further evolving the received cyphertext in the dynamical system with a second dynamical rule set with preselected coefficients for Td = Tf - T0 time steps, wherein said data message is recovered at Tf time steps.
An advantage of the present invention is the provision of a data encryption/decryption system that uses a unique process for deriving the rules governing the evolution of a process. Another advantage of the present invention is the provision of a data encryption/decryption system wherein there is a unique method by which the plaintext is used as the initial configuration of the dynamical system.
-3-
Still another advantage of the present invention is the provision of a data encryption/decryption system wherein there is a unique method by which the conditions at the extremities of the dynamical system are specified.
Still another advantage of the present invention is the provision of a data encryption/decryption system wherein a multi-state dynamical system (MDS) is utilized to encrypt/decrypt information.
Yet another advantage of the present invention is the provision of a data encryption/decryption system wherein data can be derived from any source, including digital files on computational devices and messages sent across communication networks.
Yet another advantage of the present invention is the provision of a data encryption/decryption system wherein the dynamical system will have a maximum state K equal to the largest character in the message (plaintext) plus one.
Yet another advantage of the present invention is the provision of a data encryption/decryption system wherein encryption/decryption key length or size can be selected to meet specified security criteria.
Yet another advantage of the present invention is the provision of a data encryption/decryption system which utilizes a faster method for selecting the coefficients of the rule set required for operating the dynamical system. Still other advantages of the invention will become apparent to those skilled in the art upon a reading and understanding of the following detailed description, accompanying drawings and appended claims.
Brief Description of the Drawings The invention may take physical form in certain parts and arrangements of parts, a preferred embodiment and method of which will be described in detail in this specification and illustrated in the accompanying drawings which form a part hereof, and wherein:
Fig. 1 shows a one-dimensional multi-state dynamical system; Fig. 2 is a flow chart illustrating the steps for obtaining suitable rule set coefficients for a symmetric encryption/decryption process;
-4-
Figs. 3 A and 3B are flow diagrams of the steps involved in encrypting and decrypting a message using a symmetric encryption/decryption process, in accordance with a first embodiment of the present invention;
Fig. 4 is a flow chart illustrating the steps for obtaining suitable rule set coefficients for an asymmetric encryption/decryption process;
Figs. 5 A and 5B are flow diagrams of the steps involved in encrypting and decrypting a message using an asymmetric encryption/decryption process, in accordance with another embodiment of the present invention;
Fig. 6 is a block diagram of an exemplary apparatus for a dynamical system.
Detailed Description of the Preferred Embodiment
Referring now to the drawings wherein the showings are for the purposes of illustrating a preferred embodiment of the invention only and not for purposes of limiting same, a multi-state dynamical method and apparatus will now be described.
In summary, the present invention provides a system for data encryption/decryption using cellular multi-state dynamical systems, wherein plaintext (i.e., a message that is not encrypted) is used as the initial configuration of the multi- state dynamical system. The data message is evolved according to a dynamical rule set including pre-selected rule set coefficients. Evolution is stopped at a time step T0 , to obtain cyphertext (i.e., the encrypted data), wherein the state of the N cells of the dynamical system are preferably at a maximal disorderliness. The cyphertext is subsequently decrypted by using the cyphertext as the initial configuration of the multi-state dynamical system, and further evolving the dynamical system for additional time steps Td. Accordingly, the plaintext (i.e., original message) is recovered after a fixed number of time steps Tf, where Tf = T0 + Td and 0 < T0 < Tf . For symmetric encryption, the same rule set is used for encryption and decryption, whereas for non-symmetric encryption a different rule set is used to evolve the dynamical system from time step T0 to time step Tf .
Cellular Automata (CA) are dynamical systems in which space and time are discrete. The cells are arranged in the form of a regular lattice structure and
must each have a finite number of states, wherein the state of each cell is typically given by the Boolean variable a. These states are updated synchronously according to a specified local rule of interaction. For example, a simple 2-state 1 -dimensional cellular automaton will have of a line of cells or sites, each of which can take a value 0 or 1. Using a specified rule (usually deterministic), the values are updated synchronously in discrete time steps for all cells. With a K-state automaton, each cell can take any of the integer values between 0 and K - 1. In general, the rule governing the evolution of the cellular automaton will encompass m sites (i.e., neighborhood) up to a finite distance r (radius) away. The cellular automaton is typically referred to as a K-state, m-site neighborhood CA. A multi-state one-dimensional cellular automaton with a radius r and a neighborhood size of m = 2r + 1, is shown in Fig. 1.
In accordance with the present invention, the number of dynamical system rules available for a given encryption problem can be astronomical even for a modest lattice space, neighborhood size, and CA state. Therefore, in order to develop practical applications, a system must be developed for addressing the pertinent CA rules. Consider, for example, a K-state N-node cellular automaton with m = 2r + 1 points per neighborhood. Hence in each neighborhood, if a numbering system is chosen that is localized to each neighborhood, the following will represent the states of the cells at time t: a^ (i=0,l,2,3,...m-1). It should be understood that a^ represents the state of the i-th cell, at discrete time t. The rule of evolution of a cellular automaton is defined by using a vector of integers Wj (j=0,l,2,3,...,2m) referred to herein as coefficients of the rule set, such that
α(r)(. + l) «J + w„ 2". vaodK
where 0 <W j < K and ocj are made up of the permutations of the states of the cells in the neighborhood. To illustrate these permutations consider a 3 -neighborhood one- dimensional CA. Since m = 3, there are 2^ = 8 integer W values. The states of the cells are (from left-to-rig °ht) ' a 0t ,' a It ,' a 2t at time t. The state of the middle cell at time t +
1 is:
-6-
&.(_+!) = (W t + wιaι, +W,a2t +W3aotalt + W4a„a2l + W^a,,, + W^a.-a,, + W7)W8 mod K
Hence, each set of coefficients Wj results in a given rule of evolution. The chief advantage of the above rule-numbering scheme is that the number of integers is a function of the neighborhood size; it is independent of the maximum state, K, and the shape/size of the lattice. A sample C code is shown below for evolving one- dimensional cellular automata using a reduced set (Wz = 1) of the W-set coefficients:
int EvolveCellularAutomata(int *a)
{ int i,j ,seed,p,D=0,Nz=NeighborhoodSize- 1 ,Residual; for (i=0;i<RuleSize;i++)
{ seed=l;p=l « Nz;Residual=i; for (j=Nz;j>=0;j-)
{ if (Residual >= p)
{ seed *= a[j];
Residual -= p;
} if (seed = 0) break; p »= l; }
D += (seed*W[i]);
} return (D % STATE);
}
The foregoing C-code is for evolving one-dimensional CA for a given STATE and
NeighborhoodSize. Vector {a} represents the states of the cells in the neighborhood.
NeighborhoodSize
RuleSize = 2
The steps for obtaining suitable rule set coefficients for a symmetric encryption/decryption process will now be described in detail with reference to flow chart 200 of Fig. 2:
1. Select the following parameters of the dynamical system rule set (step
204):
-7-
(a) Size, m, of the neighborhood (in the example below m = 3);
(b) Maximum state K of the dynamical system, which must be equal to the largest character in the message (plaintext) plus one (1). For instance, if a message is read one character (8-bits) at a time, the "largest character" in the message will have a value of 255 (2 8 -1); if a message is read two characters (16-bits) at a time, the "largest character" will have a value of 65,535 (216 -1), and if a message is read as binary digits, the "largest character" will have a value of 1 (2' -1).
(c) Lattice size N (i.e., the number of nodes in the cellular automaton);
(d) Boundary conditions (BC) to be imposed. It will be appreciated that the dynamical system is a finite system, and therefore has extremities (i.e., end points). Thus, the nodes of the dynamical system in proximity to the boundaries must be dealt with. One approach is to create artificial neighbors for the "end point" nodes, and impose a state thereupon. Another common approach is to apply cyclic conditions that are imposed on both "end point" boundaries. Accordingly, the last data point is an immediate neighbor of the first. In many cases, the boundary conditions are fixed. Those skilled in the art understand other suitable variations of the boundary conditions.
(e) Maximum time steps T for which the automaton must be evolved. This time step value is a function of the rule set coefficients Wj (j=0,l,2,... 2m). T is preferably selected such that data may be recovered (i.e., decrypted) in a reasonable number of time steps.
It should be appreciated that other rule set parameters, i.e., the rule set coefficients Wj, time steps T0 and time steps Tf ,will be determined in the manner described below.
2. Generate random rule set coefficients W (j = 0,1,2,... 2m) for evolving the automaton (step 206).
3. Generate a random string of N characters to be used as the initial configuration of the dynamical system (step 208). This random string of N characters will serve as test data.
4. Evolve the dynamical system for a maximum of T time steps (step 210).
5. Determine whether the initial configuration (i.e., string of N characters) has been recovered at time step Tf , where Tf < T (step 212). If so, then the rule set coefficients W. are valid for symmetric encryption/decryption (step 214). If the initial configuration has not been recovered at time step Tf , then return to step 206. It should be appreciated that suitable rule set parameters will recover the original message at or before time step T.
6. When valid rule set coefficients have been found, the lattice size N, neighborhood size m, maximum state K, time step T0, time step Tf - T0, coefficients
W. and boundary conditions BC can be stored or transmitted for evolving a dynamical system in symmetric encryption/decryption (step 216), as will be explained below. In effect, these rule set parameters act as an encryption key for encryption/decryption. Moreover, it should be appreciated that the encryption/decryption key "length" or "size" can be selected to meet specified security criteria. In this regard, arbitrarily increasing the value of one or more of the rule set parameters will increase the encryption/decryption key "size." (e.g., increasing the number of elements within each defined neighborhood of the dynamical system).
In a preferred embodiment, when suitable rule set coefficients are found, they are verified by applying the rule set coefficients to a different random string N, to determine if recovery is attained after the same Tf time steps. It should be noted that time step T0 is the preferably the time step at which the states of the N cells achieve maximal entropy or disorderliness as measured against the initial configuration. Moreover, as indicated above, time step Tf is the time step at which the initial configuration has been recovered. Therefore, Tf = T0 + Td , where 0 < T0 < Tf . Using the foregoing "guess and check" approach it takes about 40 random searches to find a valid 8-value coefficient set W., when m = 3. In accordance with a preferred embodiment of the present invention, a faster way of generating valid rule set coefficients W. is provided. In this regard, the term W m (which may be referred to as the "constant term" because it does not multiply the states of the cells as the rest of the coefficients) can always be selected arbitrarily. All the set of
-9-
coefficients W m (i=l,2,..m), except one, must be even. The odd coefficient can be selected arbitrarily from the set. This approach usually produces a coefficient set that is valid for encryption and decryption. It should be appreciated that not all valid coefficient sets are limited by the enumerated odd/even conditions. Symmetric encryption/decryption, according to a preferred embodiment of the present invention will now be described in detail with reference to flow diagram 300 shown in Figs. 3A and 3B. First, the "original message" or plaintext f. (i=0,l,2,...L-l), where L is the size of the "original message" (e.g., page of a book), is broken into data chunks of size N characters (step 302). Each data chunk is used as the initial configuration of the dynamical system (step 304). The dynamical system is then evolved for T0 time steps (step 306), in accordance with the rule set parameters (i.e., the lattice size N, neighborhood size m, maximum state K, time step T0, time step Tf - T0, coefficients W, and boundary conditions BC). The state of the dynamical system at time step T0 is used as the cyphertext (i=0,l ,2,.. . L-l) (i.e., the encrypted message). As described above, the state of the N cells of the dynamical system are preferably at a maximal disorderliness at time step T0. The cyphertext is stored or transmitted (step 308) prior to decryption.
The decryption process begins by breaking the cyphertext c, into data chunks of size N characters (step 312). Each data chunk is used as the initial configuration of a dynamical system (step 314). The dynamical system is then evolved for Td = Tf - T0 time steps, in accordance with the rule set parameters (step 316). The state of the dynamical system after evolution for Td time steps is the recovered plaintext f,. The recovered plaintext may be stored or transmitted (step 318).
It should be appreciated that one or more of the rule set parameters may be known at the decryption location. Accordingly, only those rule set parameters which are unknown need to be communicated to the decryption location. For example, all of the rule set parameters may be known at the decryption location except for rule set coefficients W. and time steps Tf-T0. In such a case, the rule set coefficients and time step Tf- T0 effectively act as encryption/decryption keys.
-10-
The steps for obtaining suitable rule set coefficients for a asymmetric encryption/decryption process will now be described in detail with reference to flow chart 400 of Fig. 4:
1. Select the following parameters of the dynamical system rule set (step 404):
(a) Size, m, of the neighborhood (in the example below m = 3);
(b) Maximum state K of the dynamical system, which must be equal to the number of bits required to represent each character of f. As noted above, the maximum state K will be as large as the size of the "largest character" in a message plus one (1).
(c) Lattice size N (i.e., the number of nodes in the cellular automaton);
(d) Boundary conditions (BC) to be imposed. The boundary conditions are described above in connection with Fig. 2.
(e) Maximum time steps T, and T2 for which the respective automaton must be evolved. This time is a respective function of the rule set coefficients W. (j =
0,1,2,... 2m) and U. (j = 0,1,2,... 2m). T, and T, are preferably selected such that data may be recovered (i.e., decrypted) in a reasonable number of time steps.
It should be appreciated that other rule set parameters, i.e., the rule set coefficients W., U., and time steps T0 and Tf ,will be determined in the manner described below.
2. Generate random rule set coefficients W (j = 0,1,2,... 2m) and U, (j = 0,1,2,... 2m) for evolving the respective automaton (step 406).
3. Generate a random string of N characters to be used as the initial configuration of the dynamical system (step 408). This random string of N characters will serve as test data.
4. Evolve the dynamical system for a maximum of T, time steps using coefficients W. , then change to coefficients U. and evolve for T2 time steps (step 410).
-11-
5. Determine whether the initial configuration (i.e., string of N characters) has been recovered at time step T, + T, (step 412). If so, then the rule set coefficients W. and U. are valid for asymmetric encryption/decryption (step 414). If the initial configuration has not been recovered at time step T, + T2 , then return to step 406.
6. When valid rule set coefficients have been found, the lattice size N, neighborhood size m, maximum state K, time step T0 (where T0 = T,), time step Tf - T0 (where Tf = T, + T2), coefficients W., coefficients Ur and boundary conditions BC can be stored or transmitted for evolving a dynamical system in asymmetric encryption/decryption (step 416), as will be explained below. In effect, these rule set parameters act as an encryption/decryption key for the asymmetric encryption/decryption.
Asymmetric encryption/decryption, according to a preferred embodiment of the present invention will now be described in detail with reference to flow diagram 500 shown in Figs. 5A and 5B. First, the plaintext f. (i=0,l,2,...L-l) ("original message") is broken into data chunks of size N characters (step 502). Each data chunk is used as the initial configuration of the dynamical system (step 504). The dynamical system is then evolved for T0 = T, time steps using coefficients Wj (step 506). The state of the dynamical system at time step T0 = T, is used as the cyphertext (i=0,l,2,... L-l). The cyphertext is stored or transmitted (step 508) prior to decryption.
The decryption process begins by breaking the cyphertext c, into data chunks of size N characters (step 512). Each data chunk is used as the initial configuration of a dynamical system (step 514). The dynamical system is then evolved for Td = Tf - T0 = T2 time steps using coefficients XJ} (step 516). The state of the dynamical system after evolution for Td = Tf - T0 = T2 time steps is the recovered plaintext fr The recovered plaintext may be stored or transmitted (step 518).
As indicated above, one or more of the rule set parameters may be known at the decryption location. Accordingly, only those rule set parameters which are unknown need to be communicated to the decryption location. For example, all of the rule set parameters may be known at the decryption location except for time steps Tf-T0 = T2. In such a case, the time step Tf-T0 = T, effectively acts as the
-12-
encryption/decryption key. In the case of a public/private key implementation, the W- set coefficients are publicly known, while the U-set coefficients and T: are private or secret.
An illustrative example of operation of the present invention will now be described. Consider the plaintext: This is a test of cellular automata encryption. This message consists of 47 5-bit characters. To encrypt this message, a 256-state cellular automaton is searched, a pre-select time step T = 64 is selected, and cyclic conditions at the boundaries are assumed. Accordingly, it is assumed that the one- dimensional cells are arranged in a circle, thus making the cell 0 to be a neighbor of cell N-l . A neighborhood size of 3 is chosen. With Wg = 1 , we have 8 integer coefficients Wj, which define the rule set coefficients. The coefficients are shown in the Table I below.
Table I: Encryption W-set coefficients
The original message was recovered after Tf = 64 time steps (i.e., evolutions) of the dynamical system. The cyphertext is:
@_7iNC!_IZL_A~xgd,Y_B\_Ul_CS_-U_!VyhS_M2,w_@N
which was obtained from the states of the cells at time t = 63 time steps. Hence, Td = 1 time step . To decrypt the message, we use the above cyphertext as the initial configuration and evolve the dynamical system for Td = 1 time step.
In accordance with the above example of the present invention, the encryption process operates on bytes, not bits. While this may suggest that redundancies in the plaintext would be more apparent in the cyphertext, there are several ways to alleviate this concern. Like all block ciphers, the strength of multi- state dynamic system (MDS) encryption can be significantly increased when used in cipher-block-chaining (CBC) mode. To use CBC, each subsequent block of plaintext
-13-
is XORed with the previous block of cyphertext before it is encrypted. Thus, for a plaintext block P; and corresponding cyphertext block C[,
/> = cM ® ,_τέ (ς.)
where E^ is the MDS encryption process using the coefficient set k. CBC helps alleviate the redundancy problems in the plaintext. However, this requires the transmission of an additional block, the initialization vector (VQ), during secure communications. The large block size of MDS encryption means that VQ might be a sizeable portion of the complete cyphertext.
It should be appreciated that there is nothing that theoretically limits the encryption method to bytes. The method of the present invention is suitable for use with any word length in which the plaintext is presented. Therefore, a bit-based implementation will use a dual-state rule system and receive the plaintext in binary form.
A good cryptosystem provides both confusion and diffusion. The evolution of the dynamical system serves to confuse the plaintext into an unrecognizable form. This evolution also provides diffusion. Information stored in a cell is spread to the entire neighborhood at every time step. Using a three-site neighborhood (m = 3) dynamical system, a 256-byte block, and time steps of Tf = 256, information in a cell will have spread to every other cell in the dynamical system at encryption time.
One interesting question is the characteristics of the dynamical system rule set. For a given rule set to be acceptable for encryption it must be capable of repeating the initial configuration after a finite (and practicable) time. For example, consider a 256-block dynamical system. Theoretically, it may take 2562S6 = 2204S time steps for the initial configuration to repeat. That will be too long to make encryption feasible. Fortunately, it has been found that the W-set coefficients gives us a dynamical system with small cycles (of the order of the block size).
-14-
The weakest rule set is the one using a three-site neighborhood in the linear mode (W8 = 1). A large class of these groups produces a dynamical system, which require the block size to be an integral power of two to be cyclic. Fortunately, there exists a large family, which will be cyclic with any size of block. It is observed that rule sets with period 128 have the highest probability of bringing back the initial configuration at any block width. The period 256 rules tend to work with blocks of integral powers of two less than or equal to 256. A side benefit of this is that a plaintext does not have to be padded to a full block width, thus a dwindling block size method can be used that keeps halving the block size until what is left of the plaintext fits. The plaintext and cyphertext are exactly the same size.
The coincidence index is a tool that is used to determine the language of an encrypted text. It is also a handy tool for deciphering certain cryptosystems. The coincidence index, Cj, is defined as the chance that if any two random characters are taken from a text, they are the same. It takes into account the frequency of occurrence of letters in a language, and combines that into a single number that very clearly defines a language. Every language has a distinct coincidence index. It is easy to tell English from German from French with just this measure. For English Cj is about 0.065 (letters only, no spaces, returns or punctuation). This means that if two random characters are taken from a text, there is a 6.5% chance that they will be the same. This is because letters are used with different frequencies, the letter "e" being the most frequently used character, followed by the letter "r", etc. If a distribution of character frequencies is already known, then C j is simply the sum of the squares of each character frequency, since the probability of choosing the same character twice is the probability of choosing it once, squared. In a random text of bytes, where each character appears with equal frequency, C is 256*1/(2562), or 0.0039 (In a random text of English letters, it is 26*1/(262), or 0.038). In MDS, it is desired to make sure that the encrypted data looks indistinguishable from random bytes, or else it might be fairly easy to crack by statistical means.
A simple test was constructed, with English text data of length 512 (all uppercase, some punctuation, no spaces). The data is summarized in Table II below. For a given length of data, the table shows the coincidence index for the original data, for random data of the same length, for some weak steps in the encryption (Steps 16,
-15-
32, 64, and 128), and a range of values for steps that are not divisible by 8. The values are fairly typical for many runs of these lengths. The coefficient W used for this table all have an odd number for the constant term. When the constant term is even, the values at the named steps are larger, but the "other steps" values stay about the same.
TABLE II:
It can be observed that MDS encrypted data is reasonably close to a random value, and that with a large enough sample size, the coincidence index of certain steps of the MDS encryption may approximate random data with this measure.
Fig. 3 is a block diagram of a preferred dynamical system apparatus 600 in which a dynamical system is evolved. Other apparatus types, such as a general purpose computers, may be used to implement the dynamical system.
Apparatus 600 is comprised of a receiver 602, an input device 605, a programmed control interface 604, control read only memory ("ROM") 608, control random access memory ("RAM") 606, process parameter memory 610, processing unit PU 616, cell state RAM 614, coefficient RAM 620, disk storage 622, and transmitter 624. Receiver 602 receives data from a transmitting data source for realtime (or batch) processing of information such as satellite imagery or encrypted transmissions. Alternatively, data awaiting processing by the present invention (e.g., archived images) are stored in disk storage 622.
The present invention performs information processing according to programmed control instructions stored in control ROM 608 and/or control RAM 606. Information processing steps that are not fully specified by instructions loaded into control ROM 608 may be dynamically specified by a user using an input device 605
-16-
such as a keyboard. In place of, or in order to supplement direct user control of programmed control instructions, a programmed control interface 604 provides a means to load additional instructions into control RAM 606. Process parameters received from input device 605 and programmed control interface 604 that are needed for the execution of the programmed control instructions are stored in process parameter memory 610. In addition, rule set parameters needed to evolve the dynamical system and any default process parameters can be preloaded into process parameter memory 610. Transmitter 624 provides a means to transmit the results of computations performed by apparatus 600 and process parameters used during computation.
The preferred apparatus 600 consists of at least one module 612 comprising a processing unit (PU) 616 and a cell state RAM 614. Module 612 is a physical manifestation of the CA cell. In an alternate embodiment more than one cell state RAM may share a PU. The apparatus 600 shown in FIG. 6 can be readily implemented in parallel processing computer architectures. In a parallel processing implementation, processing units and cell state RAM pairs, or clusters of processing units and cell state RAMs, are distributed to individual processors in a distributed memory multiprocessor parallel architecture. The invention has been described with reference to a preferred embodiment.
Obviously, modifications and alterations will occur to others upon a reading and understanding of this specification. It is intended that all such modifications and alterations be included insofar as they come within the scope of the appended claims or the equivalents thereof.
-17-