US20090161863A1 - Hardware implementation of the secure hash standard - Google Patents
Hardware implementation of the secure hash standard Download PDFInfo
- Publication number
- US20090161863A1 US20090161863A1 US12/353,267 US35326709A US2009161863A1 US 20090161863 A1 US20090161863 A1 US 20090161863A1 US 35326709 A US35326709 A US 35326709A US 2009161863 A1 US2009161863 A1 US 2009161863A1
- Authority
- US
- United States
- Prior art keywords
- data path
- multiplexor
- bits
- coupled
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 230000003044 adaptive effect Effects 0.000 description 6
- 101100457843 Schizosaccharomyces pombe (strain 972 / ATCC 24843) tit1 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001391944 Commicarpus scandens Species 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
- G06F9/3879—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3893—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
- G06F9/3895—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Definitions
- the present invention generally relates to the secure hash standard. More specifically, the present invention relates to a method and system for implementing a secure hash algorithm (SHA- 1 ) specified by the secure hash standard with hardware resources.
- SHA- 1 secure hash algorithm
- the SHA- 1 generally operates as follows.
- the SHA- 1 takes as input a message of maximum length which is less than 2 64 bits.
- the message is padded, if necessary, to render the total message length a multiple of 512.
- the message is then converted into 512-bit blocks.
- the 512-bit blocks are processed sequentially and the cumulative results represent a 160-bit message digest.
- the SHA- 1 performs eighty rounds of processing for each 512-bit block. For each of four groups of twenty rounds, the SHA- 1 uses one of four Boolean functions and one of four constant values, to be further described below. Once all eighty processing rounds are completed, five 32-bit intermediate variables are updated. The process is then repeated for the next 512-bit block. Once all the 512-bit blocks are processed, the final, cumulative values of the five intermediate variables represent the 160-bit message digest. The details with respect to the processing of the 512-bit blocks will be further described below.
- the SHA- 1 converts the message into 512-bit blocks and then processes the 512-bit blocks one at a time. More specifically, each 512-bit block to be processed is divided into sixteen (16) longwords W 0 , W 1 , . . . , W 15 , where W 0 is the leftmost longword. Each longword is thirty-two (32) bits in length.
- the SHA- 1 uses a five longword circular buffer to maintain the five 32-bit intermediate variables, a, b, c, d and e.
- the intermediate variables Prior to processing the first 512-bit block, the intermediate variables are initialized with the constant values H 0 through H 4 (in hex) respectively as follows:
- the message digest is the 160-bit string represented by the five (5) longwords, a, b, c, d and e.
- the foregoing is a brief description of the SHA- 1 . Details with respect to the operations of the SHA- 1 are well understood.
- the SHA- 1 is typically implemented using software.
- a person of ordinary skill in the art will know how to implement the SHA- 1 using software.
- Using software to implement the SHA- 1 has a number of shortcomings. For example, it is relatively easy to break into a software program designed to implement the SHA- 1 thereby revealing that the SHA- 1 is used for encrypting messages. By ascertaining the type of encryption algorithm that is being used to encrypt messages, a hacker may then successfully decrypt the message digests to obtain the messages.
- an integrated circuit for implementing the secure hash algorithm includes a data path and a controller controlling operation of the data path.
- the data path is capable of handling each round of processing reiteratively.
- the data path includes a data multiplexor, an address multiplexor, a memory, a first processing multiplexor, a second processing multiplexor, a first register, a second register, a shifter and an arithmetic logic unit.
- the controller includes an address control module and a finite state machine.
- the address control module further includes a pico code ROM and a number of counters.
- the address control module uses a pico code memory address, the state of the finite state machine and various counter bits to generate a physical memory address and appropriate control bits to control the operation of the data path.
- FIG. 1 is a simplified block diagram illustrating an exemplary embodiment of a data path for data processed pursuant to the SHA- 1 in accordance with the present invention
- FIG. 2 is a simplified block diagram illustrating an exemplary embodiment of a controller used to control operation of the data path shown in FIG. 1 in accordance with the present invention
- FIG. 3 is an illustrative diagram showing an exemplar embodiment of a data structure used to store data for controlling operation of the controller and the data path in accordance with the present invention
- FIG. 4 is an illustrative diagram showing an exemplary embodiment of a memory map in accordance with the present invention.
- FIG. 5 is an illustrative diagram showing an exemplary embodiment of pico code for memory address generation in accordance with the present invention.
- FIGS. 6 a - c are selected illustrative timing diagrams showing operations of the respective components of the data path in accordance with the present invention.
- an integrated circuit is provided to implement the Secure Hash Algorithm (SHA- 1 ) specified by the Secure Hash Standard as promulgated by the National Institute of Standards and Technology.
- SHA- 1 Secure Hash Algorithm
- f max represents the maximum clock frequency
- 81 represents 80 processing rounds plus one update round
- m represents the number of clock periods required for each processing round.
- the resulting performance is calculated to be 39.5 Mb/s or 4.94 MB/s, or approximately five (5) kilobytes per millisecond.
- the 5 MB/s implementation requires approximately 1500 gates, 128 bytes of RAM and 132 bytes of ROM.
- a performance of 79 MB/s, or 79 kilobytes per millisecond is achieved.
- FIG. 1 is a simplified block diagram illustrating the data path of data processed pursuant to the SHA- 1 in accordance with the present invention.
- the data path 10 includes a data multiplexor 12 , an address multiplexor 14 , a memory 16 , a first processing multiplexor 18 , a first register 20 , a second register 22 , a shifter 24 , a second processing multiplexor 26 and an arithmetic logic unit 28 .
- the data multiplexor 12 and the address multiplexor 14 are coupled to the memory 16 to control the output of the memory 16 .
- the output from the memory 16 is coupled to the first and second processing multiplexors 18 , 26 .
- the first processing multiplexor 18 also receives the output of the arithmetic logic unit 28 .
- the output of the first processing multiplexor 18 is coupled to the first register 20 .
- the output of the first register 20 is coupled to the shifter 24 .
- the output of the shifter 24 is provided to both the arithmetic logic unit 28 and the data multiplexor 12 .
- the output of the arithmetic logic unit 28 is also fed to the second register 22 .
- the output of the second register 22 is coupled to the second processing multiplexor 26 .
- the output of the second processing multiplexor 26 is provided to the arithmetic logic unit 28 .
- the data path 10 does not address issues such as messaging padding, endianness, input/output etc. A person of ordinary skill in the art will be able to address these issues.
- the data path 10 shown in FIG. 1 is controlled by a controller.
- An exemplary embodiment of the controller is shown in FIG. 2 .
- the controller 30 includes a finite state machine 32 and an address control module 34 .
- the finite state machine 32 functions in cooperation with the address control module 34 to control the data path 10 .
- the address control module 34 is comprised of a number of components, including a first mod-16 counter 36 , a second mod-16 counter 38 , a third mod-16 counter 40 , a mod-5 counter 42 , a ROM 44 and a memory address generator 46 .
- the output of the second mod-16 counter 38 is coupled to the third mod-16 counter 40 , the mod-5 counter 42 and the ROM 44 .
- the output of the mod-5 counter 42 is provided to the first mod-16 counter 36 .
- the ROM 44 is coupled to the memory address generator 46 .
- the respective outputs of the ROM 44 and the memory address generator 46 are provided to the data path 10 .
- the finite state machine 32 is capable of assuming a number of states. In the exemplary embodiment shown in FIG. 2 , the finite state machine 32 can assume one of four (4) different states. The inputs, outputs and respective logic conditions that produce the different states for the finite state machine 32 are shown in FIG. 2 .
- the data stored within the ROM 44 is organized in a pico code format.
- FIG. 3 shows an exemplary embodiment of the Pico code format.
- the data stored within the ROM 44 is used to control operation of the controller and the data path 10 . More specifically, the ROM 44 contains a number of pico codes. Each pico code is designed to direct the controller and the data path 10 to perform a specific operation. As shown in FIG. 3 , each Pico code has a length of sixteen (16) bits. Bits ( 0 - 7 ) and ( 13 ) are used to control the operation of the various components of the data path 10 .
- bits ( 0 ) and ( 1 ) are respectively used to control the first and second registers 20 , 22
- bits ( 2 ) and ( 3 ) are respectively used to control the first and second processing multiplexor 18 , 26
- bits ( 4 ) and ( 5 ) are used to control the arithmetic logic unit 28
- bits ( 6 ) and ( 7 ) are used to control the shifter ( 24 )
- bits ( 8 - 12 ) are used to represent the pico code memory address which is then used to generate the physical memory address for accessing the memory 16
- bit ( 13 ) is used to control the type of operation to be performed in the memory 16 .
- the memory 16 is organized based on a memory map.
- FIG. 4 shows an exemplary embodiment of the memory map.
- the physical memory address, A[4:0] is five (5) bits in length
- the use of the 5-bit physical memory address means that there are thirty-two (32) addressable words in the memory 16 . Each word is preferably sixteen (16) bits in length.
- the thirty-two (32) words are used to represent the variables that are needed to carry out the SHA- 1 .
- the pico code memory address is used to generate the physical memory address for accessing the memory 16 .
- the physical memory address is generated from the pico code memory address, the state of the finite state machine 32 , and various counter bits from the second mod-16 counter 38 .
- FIG. 5 shows an exemplary embodiment of the pico code memory address used for generating the physical memory address to access the memory 16 .
- the physical memory address, A[4:0], used to access the memory 16 is generated from the pico code memory address in the following manner.
- A[4] is set to “0” and A[3:0] is determined as follows: (constant+t (mod 16)) mod 16, where the constant is:
- A[4], A[2] and A[4] are set to “1”.
- A[4] is set to “1” and A[3] is set to “0”.
- A[2:0] are set as follows using the state of the finite state machine 32 and the pico code memory address bits [ 10 - 8 ]:
- the data path 10 and the controller including the finite state machine 32 and the address control module 34 are implemented as part of an integrated circuit using hardware.
- the integrated circuit can be embedded in a mobile communication device, such as a mobile phone, where encryption and decryption functions are desired for security purposes.
- the data path 10 and the controller can be implemented using reconfigurable hardware resources within an adaptive computing architecture. Details relating to the adaptive computing architecture and how reconfigurable hardware resources are used to implement functions on an on-demand basis are disclosed in U.S. patent application Ser. No.
Abstract
An integrated circuit for implementing the secure hash algorithm is provided, According to one aspect of the integrated circuit, the integrated circuit includes a data path and a controller controlling operation of the data path. According to another aspect of the integrated circuit, the data path is capable of handling each round of processing reiteratively. The controller flirter includes an address control module and a finite state machine.
Description
- The present application is a continuation-in-part application of U.S. patent application Ser. No. 09/815,122 entitled “ADAPTIVE INTEGRATED CIRCUITRY WITH HETEROGENEOUS AND RECONFIGURABLE MATRICES OF DIVERSE AND ADAPTIVE COMPUTATIONAL UNITS HAVING FIXED, APPLICATION SPECIFIC COMPUTATIONAL ELEMENTS,” filed on Mar. 22, 2001, the disclosure of which is hereby incorporated by reference in their entirety as if set forth in fill herein for all purposes.
- The present invention generally relates to the secure hash standard. More specifically, the present invention relates to a method and system for implementing a secure hash algorithm (SHA-1) specified by the secure hash standard with hardware resources.
- The SHA-1 generally operates as follows. The SHA-1 takes as input a message of maximum length which is less than 264 bits. The message is padded, if necessary, to render the total message length a multiple of 512. The message is then converted into 512-bit blocks. The 512-bit blocks are processed sequentially and the cumulative results represent a 160-bit message digest.
- The SHA-1 performs eighty rounds of processing for each 512-bit block. For each of four groups of twenty rounds, the SHA-1 uses one of four Boolean functions and one of four constant values, to be further described below. Once all eighty processing rounds are completed, five 32-bit intermediate variables are updated. The process is then repeated for the next 512-bit block. Once all the 512-bit blocks are processed, the final, cumulative values of the five intermediate variables represent the 160-bit message digest. The details with respect to the processing of the 512-bit blocks will be further described below.
- As mentioned above, the SHA-1 converts the message into 512-bit blocks and then processes the 512-bit blocks one at a time. More specifically, each 512-bit block to be processed is divided into sixteen (16) longwords W0, W1, . . . , W15, where W0 is the leftmost longword. Each longword is thirty-two (32) bits in length. The SHA-1 uses a five longword circular buffer to maintain the five 32-bit intermediate variables, a, b, c, d and e.
- Prior to processing the first 512-bit block, the intermediate variables are initialized with the constant values H0 through H4 (in hex) respectively as follows:
-
a=H0=0×67452301 -
b=H1=0×EFCDAB89 -
c=H2=0×98BADCFE -
d=H3=0×10325476 -
e=H4=0×C3D2E1F0 - After the intermediate variables are initialized, the processing of the 512-bit blocks takes place as follows:
- For t=16 to 79, let Wt=S1(Wt-3 XOR Wt-8 XOR Wt-14 XOR Wt-16), where Sk ( ) represents a k-bit circular left shift.
- The eighty (80) rounds of processing for each 512-bit block are executed according to the following equations:
-
Fort32 0 to 79 do -
a=TEMP=S 5(a)+f t(b, c, d)+e+W t +K t -
b=a -
c=S 30(b) -
d=c -
e=d - where “+” represents
addition modulo 232. - The function ft(b, c, d) and the constant Kt vary during the eighty (80) rounds of processing as follows:
-
f t(b, c, d)=(b AND c) OR (NOT b AND d), for (t=0 to 19); -
f t(b, c, d)=b XOR c XOR d, for (t=20 to 39); -
f t(b, c, d)=(b AND c) OR (b AND d) OR (c AND d), for (t=40 to 59); -
f t(b, c, d)=b XOR c XOR d, for (t=60 to 79) -
K t=232×(21/2/4)=0×A827999 for (t=0 to 19); -
K t=232×(31/2/4)=0×6ED9EBA1 for (t=20 to 39); -
K t=232×(51/2/4)=0×8F1BBCDC for (t=40 to 59); -
K t=232×(101/2/4)=0×CA62C1D6 for (t=60 to 79) - After the eighty (80) rounds of processing (t=0 to 79) are completed, i.e., after a 512-bit block is processed, the intermediate variables a, b, c, d and c are updated as follows:
-
a=a+H 0 -
b=b+H 1 -
c=c+H 2 -
d=d+H 3 -
e=e+H 4 - After processing the last 512-bit block, the message digest is the 160-bit string represented by the five (5) longwords, a, b, c, d and e. The foregoing is a brief description of the SHA-1. Details with respect to the operations of the SHA-1 are well understood.
- The SHA-1 is typically implemented using software. A person of ordinary skill in the art will know how to implement the SHA-1 using software. Using software to implement the SHA-1, however, has a number of shortcomings. For example, it is relatively easy to break into a software program designed to implement the SHA-1 thereby revealing that the SHA-1 is used for encrypting messages. By ascertaining the type of encryption algorithm that is being used to encrypt messages, a hacker may then successfully decrypt the message digests to obtain the messages. Hence, it would be desirable to provide a method and system that is capable of offering more secure implementation of the SHA-1.
- According to one exemplary embodiment of the present invention, an integrated circuit for implementing the secure hash algorithm is provided. According to this exemplary embodiment, the integrated circuit includes a data path and a controller controlling operation of the data path. The data path is capable of handling each round of processing reiteratively. In one implementation, the data path includes a data multiplexor, an address multiplexor, a memory, a first processing multiplexor, a second processing multiplexor, a first register, a second register, a shifter and an arithmetic logic unit. By coupling these various components of the data path, as further described below, the data path can be used to execute the secure hash algorithm in a reiterative manner.
- In another implementation, the controller includes an address control module and a finite state machine. The address control module further includes a pico code ROM and a number of counters. The address control module uses a pico code memory address, the state of the finite state machine and various counter bits to generate a physical memory address and appropriate control bits to control the operation of the data path.
- Reference to the remaining portions of the specification, including the drawings and claims, will realize other features and advantages of the present invention. Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to accompanying drawings, like reference numbers indicate identical or functionally similar elements.
-
FIG. 1 is a simplified block diagram illustrating an exemplary embodiment of a data path for data processed pursuant to the SHA-1 in accordance with the present invention; -
FIG. 2 is a simplified block diagram illustrating an exemplary embodiment of a controller used to control operation of the data path shown inFIG. 1 in accordance with the present invention; -
FIG. 3 is an illustrative diagram showing an exemplar embodiment of a data structure used to store data for controlling operation of the controller and the data path in accordance with the present invention; -
FIG. 4 is an illustrative diagram showing an exemplary embodiment of a memory map in accordance with the present invention; -
FIG. 5 is an illustrative diagram showing an exemplary embodiment of pico code for memory address generation in accordance with the present invention; and -
FIGS. 6 a-c are selected illustrative timing diagrams showing operations of the respective components of the data path in accordance with the present invention. - The present invention in the form of one or more exemplary embodiments is now described. According to an exemplary embodiment of the present invention, an integrated circuit is provided to implement the Secure Hash Algorithm (SHA-1) specified by the Secure Hash Standard as promulgated by the National Institute of Standards and Technology.
- The parallelizability of the SHA-1 allows a continuum of hardware implementations that trade performance and hardware complexity. Assume that performance/throughout is represented by the following equation:
-
Throughout=(512×f max)/(81×m) bits per second - where fmax represents the maximum clock frequency, 81 represents 80 processing rounds plus one update round, and m represents the number of clock periods required for each processing round.
- In one implementation where m=16 and fmax100 MHZ, the resulting performance is calculated to be 39.5 Mb/s or 4.94 MB/s, or approximately five (5) kilobytes per millisecond. Experimentally, it has been determined that the 5 MB/s implementation requires approximately 1500 gates, 128 bytes of RAM and 132 bytes of ROM. In another implementation having an approximate order of magnitude increase in hardware for an m=1 and fmax=100 MHz, a performance of 79 MB/s, or 79 kilobytes per millisecond is achieved.
-
FIG. 1 is a simplified block diagram illustrating the data path of data processed pursuant to the SHA-1 in accordance with the present invention. As shown inFIG. 1 , thedata path 10 includes adata multiplexor 12, anaddress multiplexor 14, amemory 16, afirst processing multiplexor 18, afirst register 20, asecond register 22, ashifter 24, asecond processing multiplexor 26 and anarithmetic logic unit 28. More specifically, the data multiplexor 12 and theaddress multiplexor 14 are coupled to thememory 16 to control the output of thememory 16. The output from thememory 16, in turn, is coupled to the first andsecond processing multiplexors first processing multiplexor 18 also receives the output of thearithmetic logic unit 28. The output of thefirst processing multiplexor 18 is coupled to thefirst register 20. The output of thefirst register 20 is coupled to theshifter 24. The output of theshifter 24 is provided to both thearithmetic logic unit 28 and thedata multiplexor 12. Furthermore, the output of thearithmetic logic unit 28 is also fed to thesecond register 22. The output of thesecond register 22 is coupled to thesecond processing multiplexor 26. The output of thesecond processing multiplexor 26 is provided to thearithmetic logic unit 28. It should be noted that thedata path 10 does not address issues such as messaging padding, endianness, input/output etc. A person of ordinary skill in the art will be able to address these issues. - In an exemplary embodiment the
data path 10 shown inFIG. 1 is controlled by a controller. An exemplary embodiment of the controller is shown inFIG. 2 . As shown inFIG. 2 , thecontroller 30 includes afinite state machine 32 and anaddress control module 34. Thefinite state machine 32 functions in cooperation with theaddress control module 34 to control thedata path 10. Furthermore, in one exemplary embodiment, theaddress control module 34 is comprised of a number of components, including a first mod-16counter 36, a second mod-16counter 38, a third mod-16counter 40, a mod-5counter 42, aROM 44 and amemory address generator 46. The output of the second mod-16counter 38 is coupled to the third mod-16counter 40, the mod-5counter 42 and theROM 44. The output of the mod-5counter 42 is provided to the first mod-16counter 36. TheROM 44 is coupled to thememory address generator 46. Finally, the respective outputs of theROM 44 and thememory address generator 46 are provided to thedata path 10. - The
finite state machine 32 is capable of assuming a number of states. In the exemplary embodiment shown inFIG. 2 , thefinite state machine 32 can assume one of four (4) different states. The inputs, outputs and respective logic conditions that produce the different states for thefinite state machine 32 are shown inFIG. 2 . - According to an exemplary embodiment, the data stored within the
ROM 44 is organized in a pico code format.FIG. 3 shows an exemplary embodiment of the Pico code format. The data stored within theROM 44 is used to control operation of the controller and thedata path 10. More specifically, theROM 44 contains a number of pico codes. Each pico code is designed to direct the controller and thedata path 10 to perform a specific operation. As shown inFIG. 3 , each Pico code has a length of sixteen (16) bits. Bits (0-7) and (13) are used to control the operation of the various components of thedata path 10. For example, bits (0) and (1) are respectively used to control the first andsecond registers second processing multiplexor arithmetic logic unit 28; bits (6) and (7) are used to control the shifter (24); bits (8-12) are used to represent the pico code memory address which is then used to generate the physical memory address for accessing thememory 16; and bit (13) is used to control the type of operation to be performed in thememory 16. - The
memory 16 is organized based on a memory map.FIG. 4 shows an exemplary embodiment of the memory map. Referring toFIG. 4 , the physical memory address, A[4:0], is five (5) bits in length The use of the 5-bit physical memory address means that there are thirty-two (32) addressable words in thememory 16. Each word is preferably sixteen (16) bits in length. The thirty-two (32) words are used to represent the variables that are needed to carry out the SHA-1. For example, some of the thirty-two (32) available words may be used to represent the sixteen (16) longwords that are used for each of the eighty (80) rounds of SHA-1 processing, the five (5) intermediate variables (a, b, c, d and e), the five (5) initialization values (H0-H4), and the four (4) processing constants Kt=0-19, Kt=20-39, Kt=40-59 and Kt=60-79). - As mentioned above, the pico code memory address is used to generate the physical memory address for accessing the
memory 16. Generally, the physical memory address is generated from the pico code memory address, the state of thefinite state machine 32, and various counter bits from the second mod-16counter 38.FIG. 5 shows an exemplary embodiment of the pico code memory address used for generating the physical memory address to access thememory 16. - The physical memory address, A[4:0], used to access the
memory 16 is generated from the pico code memory address in the following manner. When the pico code memory address bits [12-11] are “00”, A[4] is set to “0” and A[3:0] is determined as follows: (constant+t (mod 16))mod 16, where the constant is: -
pico code memory address bits [8] [9] constant 0 0 0x0 0 1 0x8 1 0 0x2 1 1 0xD - When the pico code memory address bits [12-11] are “01”, A[4], A[2] and A[4] are set to “1”. A[3] is set as follows: if [t>=40], then A[3] is set to “1”, else A[3] is set to “0”. A[0] is set as follows: if ([20<=t<=39] OR [t>=60]), then A[0] is set to “1”, else A[0] is set to “0”.
- When the pico code memory address bits [12-11] are “10”, A[4] is set to “1” and A[3] is set to “0”. A[2:0] are set as follows using the state of the
finite state machine 32 and the pico code memory address bits [10-8]: -
if ([FSM_STATE=INIT] OR [FSM_STATE=UPDATE]) then A[2:0] bits [10-8] else -
if([bits[10-8]=“101”] AND [t<20]) then A[2:0]=(“001”−t[mod5])mod 5 -
else if ([bits[10-8]=“101”] AND [t>=20]) then A[2:0]=(“011”−t[mod5])mod 5 -
else if([bits[10-8]=“111”] AND [t<20]) then A[2:0]=(“011”−t[mod5])mod 5 -
else if ([bits[10-8]=“111”] AND [t>=20]) then A[2:0]=(“001”−t[mod5])mod 5 -
else A[2:0]=(bits[10-8]−t[mod5])mod 5 - When the pico code memory address bits [12-11] are “11” then A[4:0] are set to the pico code memory address bits [12-8].
- Operations of the
data path 10 are illustrated by a number of selected ting diagrams.FIGS. 6 a-c are selected illustrative timing diagrams showing operations of the respective components of thedata path 10. More specifically,FIG. 6 a is a timing diagram illustrating the operation of various components of thedata path 10 when initializing the intermediate variables (a, b, c, d and e) with the initialization constants (H0-H4);FIG. 6 b is a timing diagram illustrating the operation of various components of thedata path 10 for one round (round t=57) of SHA-1 processing; andFIG. 6 c is a timing diagram illustrating the operation of various components of thedata path 10 for the intermediate variable update round. - In an exemplary embodiment, the
data path 10 and the controller including thefinite state machine 32 and theaddress control module 34 are implemented as part of an integrated circuit using hardware. The integrated circuit can be embedded in a mobile communication device, such as a mobile phone, where encryption and decryption functions are desired for security purposes. Furthermore, thedata path 10 and the controller can be implemented using reconfigurable hardware resources within an adaptive computing architecture. Details relating to the adaptive computing architecture and how reconfigurable hardware resources are used to implement functions on an on-demand basis are disclosed in U.S. patent application Ser. No. 09/815,122 entitled “ADAPTIVE INTEGRATED CIRCUITRY WITH HETEROGENEOUS AND RECONFIGURABLE MATRICES OF DIVERSE AND ADAPTIVE COMPUTATIONAL UNITS HAVING FIXED, APPLICATION SPECIFIC COMPUTATIONAL ELEMENTS,” filed on Mar. 22, 2001, the disclosure of which is hereby incorporated by reference in their entirety as if set forth in full herein for all purposes. Based on the disclosure provided herein, it will be appreciated by a person of ordinary skill in the art that the present invention can be implemented using hardware in various different manners. - It should also be understood that based on the disclosure provided herein, it will be appreciated by a person of ordinary skill in the art that minor modifications can be made to the present invention to accommodate and implement a number of other encryption/decryption algorithms.
- It is understood that the examples and embodiments described herein are for illustrative purposes only and that various modifications or changes in light thereof will be suggested to persons skilled in the art and are to be included within the spirit and purview of this application and scope of the appended claims. All publications, patents, and patent applications cited herein are hereby incorporated by reference for all purposes in their entirety.
Claims (2)
1. An integrated circuit for implementing a secure hash algorithm, comprising:
a data path configured to process an input message pursuant to the secure algorithm; and
a controller configured to control operation of the data path;
wherein the data path and the controller are implemented using hardware components.
2. An integrated circuit for implementing the secure hash algorithm, comprising:
a data path circuit comprising:
a memory configured to store a plurality of variables that are used to carry out the secure hash algorithm;
a first multiplexor coupled to the memory;
a first register coupled to the first multiplexor;
a shifter coupled to the first register;
an arithmetic logic unit coupled to the shifter and the first multiplexor;
a second register coupled to the arithmetic logic unit; and
a second multiplexor coupled to the second register, the memory and the arithmetic logic unit; and
a controller configured to control operation of the data path circuit, comprising:
an address control module; and
a finite state machine operable in conjunction with the address control module to generate a physical memory address for accessing the memory and a plurality of control bits, the physical memory address and the plurality of control bits are used to control operation of the data path circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/353,267 US20090161863A1 (en) | 2001-03-22 | 2009-01-14 | Hardware implementation of the secure hash standard |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/815,122 US6836839B2 (en) | 2001-03-22 | 2001-03-22 | Adaptive integrated circuitry with heterogeneous and reconfigurable matrices of diverse and adaptive computational units having fixed, application specific computational elements |
US10/093,156 US7489779B2 (en) | 2001-03-22 | 2002-03-05 | Hardware implementation of the secure hash standard |
US12/353,267 US20090161863A1 (en) | 2001-03-22 | 2009-01-14 | Hardware implementation of the secure hash standard |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/093,156 Continuation US7489779B2 (en) | 2001-03-22 | 2002-03-05 | Hardware implementation of the secure hash standard |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090161863A1 true US20090161863A1 (en) | 2009-06-25 |
Family
ID=27804197
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/093,156 Expired - Lifetime US7489779B2 (en) | 2001-03-22 | 2002-03-05 | Hardware implementation of the secure hash standard |
US12/353,267 Abandoned US20090161863A1 (en) | 2001-03-22 | 2009-01-14 | Hardware implementation of the secure hash standard |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/093,156 Expired - Lifetime US7489779B2 (en) | 2001-03-22 | 2002-03-05 | Hardware implementation of the secure hash standard |
Country Status (3)
Country | Link |
---|---|
US (2) | US7489779B2 (en) |
AU (1) | AU2003217991A1 (en) |
WO (1) | WO2003077119A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779051B2 (en) | 2013-05-01 | 2017-10-03 | Jonathan Glickman | Computer system and a computer device |
US10599365B2 (en) | 2018-03-20 | 2020-03-24 | Toshiba Memory Corporation | Storage system |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10254320A1 (en) * | 2002-11-21 | 2004-06-03 | Philips Intellectual Property & Standards Gmbh | Circuit arrangement with non-volatile memory module and method for encrypting / decrypting data of the non-volatile memory module |
TWI238636B (en) * | 2003-06-19 | 2005-08-21 | Yen-Fu Liu | Operation device and method of fast secure hash algorithm |
US7972221B2 (en) * | 2004-03-10 | 2011-07-05 | Acushnet Company | Method of spherical object orientation and orienter for the same |
US9652637B2 (en) | 2005-05-23 | 2017-05-16 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for allowing no code download in a code download scheme |
US8914618B2 (en) | 2005-12-29 | 2014-12-16 | Intel Corporation | Instruction set architecture-based inter-sequencer communications with a heterogeneous resource |
US9177176B2 (en) * | 2006-02-27 | 2015-11-03 | Broadcom Corporation | Method and system for secure system-on-a-chip architecture for multimedia data processing |
US9904809B2 (en) | 2006-02-27 | 2018-02-27 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for multi-level security initialization and configuration |
US7779099B2 (en) * | 2006-03-16 | 2010-08-17 | Us Beverage Net Inc. | Distributed intelligent systems and methods therefor |
US9489318B2 (en) | 2006-06-19 | 2016-11-08 | Broadcom Corporation | Method and system for accessing protected memory |
KR100901697B1 (en) * | 2007-07-09 | 2009-06-08 | 한국전자통신연구원 | Apparatus for low power ???-1 hash operation and Apparatus for low power ???? cryptographic using this |
US8755515B1 (en) | 2008-09-29 | 2014-06-17 | Wai Wu | Parallel signal processing system and method |
US9680637B2 (en) * | 2009-05-01 | 2017-06-13 | Harris Corporation | Secure hashing device using multiple different SHA variants and related methods |
JP6238774B2 (en) | 2013-02-21 | 2017-11-29 | キヤノン株式会社 | Hash value generator |
JP6113091B2 (en) * | 2013-03-07 | 2017-04-12 | キヤノン株式会社 | Hash value generator |
US10095631B2 (en) * | 2015-12-10 | 2018-10-09 | Arm Limited | System address map for hashing within a chip and between chips |
US10454670B2 (en) | 2016-06-10 | 2019-10-22 | Cryptography Research, Inc. | Memory optimization for nested hash operations |
Citations (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3938639A (en) * | 1973-11-28 | 1976-02-17 | The Cornelius Company | Portable dispenser for mixed beverages |
US4076145A (en) * | 1976-08-09 | 1978-02-28 | The Cornelius Company | Method and apparatus for dispensing a beverage |
US4143793A (en) * | 1977-06-13 | 1979-03-13 | The Cornelius Company | Apparatus and method for dispensing a carbonated beverage |
US4181242A (en) * | 1978-05-30 | 1980-01-01 | The Cornelius Company | Method and apparatus for dispensing a beverage |
US4252253A (en) * | 1978-02-21 | 1981-02-24 | Mcneil Corporation | Drink dispenser having central control of plural dispensing stations |
US4377246A (en) * | 1977-06-13 | 1983-03-22 | The Cornelius Company | Apparatus for dispensing a carbonated beverage |
US4578799A (en) * | 1983-10-05 | 1986-03-25 | Codenoll Technology Corporation | Method and apparatus for recovering data and clock information from a self-clocking data stream |
US4577782A (en) * | 1983-05-02 | 1986-03-25 | The Cornelius Company | Beverage dispensing station |
US4719056A (en) * | 1984-06-25 | 1988-01-12 | Isoworth Limited | Fluid treatment |
US4726494A (en) * | 1986-02-10 | 1988-02-23 | Isoworth Limited | Beverage dipensing apparatus |
US4800492A (en) * | 1987-05-13 | 1989-01-24 | The Coca-Cola Company | Data logger for a post-mix beverage dispensing system |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US4901887A (en) * | 1988-08-08 | 1990-02-20 | Burton John W | Beverage dispensing system |
US4982876A (en) * | 1986-02-10 | 1991-01-08 | Isoworth Limited | Carbonation apparatus |
US4993604A (en) * | 1985-09-13 | 1991-02-19 | The Coca-Cola Company | Low-cost post-mix beverage dispenser and syrup supply system therefor |
US5090015A (en) * | 1989-02-06 | 1992-02-18 | Motorola, Inc. | Programmable array logic self-checking system |
US5190083A (en) * | 1990-02-27 | 1993-03-02 | The Coca-Cola Company | Multiple fluid space dispenser and monitor |
US5190189A (en) * | 1990-10-30 | 1993-03-02 | Imi Cornelius Inc. | Low height beverage dispensing apparatus |
US5193151A (en) * | 1989-08-30 | 1993-03-09 | Digital Equipment Corporation | Delay-based congestion avoidance in computer networks |
US5193718A (en) * | 1991-06-25 | 1993-03-16 | Imi Cornelius Inc. | Quick electronic disconnect for a beverage dispensing valve |
US5280711A (en) * | 1993-02-25 | 1994-01-25 | Imi Cornelius Inc. | Low cost beverage dispensing apparatus |
US5297400A (en) * | 1993-02-17 | 1994-03-29 | Maytag Corporation | Liquid dispensing assembly for a refrigerator |
US5379343A (en) * | 1993-02-26 | 1995-01-03 | Motorola, Inc. | Detection of unauthorized use of software applications in communication units |
US5381550A (en) * | 1991-12-13 | 1995-01-10 | Thinking Machines Corporation | System and method for compiling a source code supporting data parallel variables |
US5381546A (en) * | 1987-04-13 | 1995-01-10 | Gte Laboratories Incorporated | Control process for allocating services in communications systems |
US5388212A (en) * | 1993-02-26 | 1995-02-07 | Motorola Inc. | Detecting unauthorized modification of communication unit based on comparison between stored hardware identification code and hardware identification code generated from operational platform identification code |
US5392960A (en) * | 1992-11-13 | 1995-02-28 | Wilshire Partners | Postmix beverage dispenser and a method for making a beverage dispenser |
US5490165A (en) * | 1993-10-28 | 1996-02-06 | Qualcomm Incorporated | Demodulation element assignment in a system capable of receiving multiple signals |
US5491823A (en) * | 1994-01-25 | 1996-02-13 | Silicon Graphics, Inc. | Loop scheduler |
US5594657A (en) * | 1993-09-27 | 1997-01-14 | Lucent Technologies Inc. | System for synthesizing field programmable gate array implementations from high level circuit descriptions |
US5600810A (en) * | 1994-12-09 | 1997-02-04 | Mitsubishi Electric Information Technology Center America, Inc. | Scaleable very long instruction word processor with parallelism matching |
US5600844A (en) * | 1991-09-20 | 1997-02-04 | Shaw; Venson M. | Single chip integrated circuit system architecture for document installation set computing |
US5603043A (en) * | 1992-11-05 | 1997-02-11 | Giga Operations Corporation | System for compiling algorithmic language source code for implementation in programmable hardware |
US5602833A (en) * | 1994-12-19 | 1997-02-11 | Qualcomm Incorporated | Method and apparatus for using Walsh shift keying in a spread spectrum communication system |
US5607083A (en) * | 1992-05-22 | 1997-03-04 | Imi Cornelius Inc. | Beverage dispensing valve |
US5608643A (en) * | 1994-09-01 | 1997-03-04 | General Programming Holdings, Inc. | System for managing multiple dispensing units and method of operation |
US5611867A (en) * | 1995-04-12 | 1997-03-18 | Maytag Corporation | Method of selecting a wash cycle for an appliance |
US5706191A (en) * | 1995-01-19 | 1998-01-06 | Gas Research Institute | Appliance interface apparatus and automated residence management system |
US5706976A (en) * | 1995-12-21 | 1998-01-13 | Purkey; Jay Floyd | Vending machine inventory control device |
US5712996A (en) * | 1993-03-15 | 1998-01-27 | Siemens Aktiengesellschaft | Process for dividing instructions of a computer program into instruction groups for parallel processing |
US5720002A (en) * | 1993-06-14 | 1998-02-17 | Motorola Inc. | Neural network and method of using same |
US5721854A (en) * | 1993-11-02 | 1998-02-24 | International Business Machines Corporation | Method and apparatus for dynamic conversion of computer instructions |
US5721693A (en) * | 1995-01-07 | 1998-02-24 | Lg Electronics Inc. | Electric home appliance real use state information collection and analysis apparatus |
US5734808A (en) * | 1993-09-28 | 1998-03-31 | Namco Ltd. | Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method |
US5732563A (en) * | 1993-09-22 | 1998-03-31 | Imi Cornelius Inc. | Electronically controlled beverage dispenser |
US5860021A (en) * | 1997-04-24 | 1999-01-12 | Klingman; Edwin E. | Single chip microcontroller having down-loadable memory organization supporting "shadow" personality, optimized for bi-directional data transfers over a communication channel |
US5862961A (en) * | 1993-10-26 | 1999-01-26 | Imi Cornelius Inc. | Connection device for dispensing fluid from a bottle |
US5870427A (en) * | 1993-04-14 | 1999-02-09 | Qualcomm Incorporated | Method for multi-mode handoff using preliminary time alignment of a mobile station operating in analog mode |
US5873045A (en) * | 1997-10-29 | 1999-02-16 | International Business Machines Corporation | Mobile client computer with radio frequency transceiver |
US5881106A (en) * | 1994-09-05 | 1999-03-09 | Sgs-Thomson Microelectronics S.A. | Signal processing circuit to implement a Viterbi algorithm |
US5884284A (en) * | 1995-03-09 | 1999-03-16 | Continental Cablevision, Inc. | Telecommunication user account management system and method |
US5887174A (en) * | 1996-06-18 | 1999-03-23 | International Business Machines Corporation | System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots |
US5886537A (en) * | 1997-05-05 | 1999-03-23 | Macias; Nicholas J. | Self-reconfigurable parallel processor made from regularly-connected self-dual code/data processing cells |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US6021186A (en) * | 1995-04-17 | 2000-02-01 | Ricoh Company Ltd. | Automatic capture and processing of facsimile transmissions |
US6021492A (en) * | 1996-10-09 | 2000-02-01 | Hewlett-Packard Company | Software metering management of remote computing devices |
US6023755A (en) * | 1992-07-29 | 2000-02-08 | Virtual Computer Corporation | Computer with programmable arrays which are reconfigurable in response to instructions to be executed |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US6028610A (en) * | 1995-08-04 | 2000-02-22 | Sun Microsystems, Inc. | Geometry instructions for decompression of three-dimensional graphics data |
US6175854B1 (en) * | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
US6175892B1 (en) * | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
US6181981B1 (en) * | 1996-05-15 | 2001-01-30 | Marconi Communications Limited | Apparatus and method for improved vending machine inventory maintenance |
US6185418B1 (en) * | 1997-11-07 | 2001-02-06 | Lucent Technologies Inc. | Adaptive digital radio communication system |
US6192255B1 (en) * | 1992-12-15 | 2001-02-20 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
US6192388B1 (en) * | 1996-06-20 | 2001-02-20 | Avid Technology, Inc. | Detecting available computers to participate in computationally complex distributed processing problem |
US6192070B1 (en) * | 1998-01-02 | 2001-02-20 | Mitsubishi Electric Research Laboratories, Inc. | Universal modem for digital video, audio and data communications |
US6195788B1 (en) * | 1997-10-17 | 2001-02-27 | Altera Corporation | Mapping heterogeneous logic elements in a programmable logic device |
US20020001384A1 (en) * | 2000-04-13 | 2002-01-03 | Broadcom Corporation | Authentication engine architecture and method |
US20020010848A1 (en) * | 2000-05-29 | 2002-01-24 | Shoichi Kamano | Data processing system |
US20020013799A1 (en) * | 2000-05-11 | 2002-01-31 | Blaker David M. | Accelerated montgomery multiplication using plural multipliers |
US20020013937A1 (en) * | 1999-02-17 | 2002-01-31 | Ostanevich Alexander Y. | Register economy heuristic for a cycle driven multiple issue instruction scheduler |
US20020015439A1 (en) * | 1996-04-25 | 2002-02-07 | Sanjai Kohli | GPS system for navigating a vehicle |
US20020015435A1 (en) * | 2000-07-31 | 2002-02-07 | Keith Rieken | Apparatus and method for configurable multi-dwell search engine for spread spectrum applications |
US6347346B1 (en) * | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6346824B1 (en) * | 1996-04-09 | 2002-02-12 | Xilinx, Inc. | Dedicated function fabric for use in field programmable gate arrays |
US6349394B1 (en) * | 1999-03-31 | 2002-02-19 | International Business Machines Corporation | Performance monitoring in a NUMA computer |
US20020023210A1 (en) * | 2000-04-12 | 2002-02-21 | Mark Tuomenoksa | Method and system for managing and configuring virtual private networks |
US20020024942A1 (en) * | 2000-08-30 | 2002-02-28 | Nec Corporation | Cell search method and circuit in W-CDMA system |
US20020024993A1 (en) * | 1999-12-30 | 2002-02-28 | Ravi Subramanian | Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks |
US20030007606A1 (en) * | 2001-02-01 | 2003-01-09 | Estech Systems, Inc. | Service observing in a voice over IP telephone system |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US20030012270A1 (en) * | 2000-10-06 | 2003-01-16 | Changming Zhou | Receiver |
US6510510B1 (en) * | 1996-01-25 | 2003-01-21 | Analog Devices, Inc. | Digital signal processor having distributed register file |
US6510138B1 (en) * | 1999-02-25 | 2003-01-21 | Fairchild Semiconductor Corporation | Network switch with head of line input buffer queue clearing |
US20030018700A1 (en) * | 2001-03-26 | 2003-01-23 | Giroti Sudhir K. | Unified XML voice and data media converging switch and application delivery system |
US20030018446A1 (en) * | 2001-06-29 | 2003-01-23 | National Instruments Corporation | Graphical program node for generating a measurement program |
US20030023830A1 (en) * | 2001-07-25 | 2003-01-30 | Hogenauer Eugene B. | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements |
US20030026242A1 (en) * | 1997-06-18 | 2003-02-06 | Harri Jokinen | Method for identifying base stations of a time division cellular network in a mobile station and mobile station |
US20030030004A1 (en) * | 2001-01-31 | 2003-02-13 | General Electric Company | Shared memory control between detector framing node and processor |
US6675265B2 (en) * | 2000-06-10 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants |
US20040006584A1 (en) * | 2000-08-08 | 2004-01-08 | Ivo Vandeweerd | Array of parallel programmable processing engines and deterministic method of operating the same |
US20040010645A1 (en) * | 2002-06-25 | 2004-01-15 | Quicksilver Technology, Inc. | Uniform interface for a functional node in an adaptive computing engine |
US6681148B2 (en) * | 1999-12-02 | 2004-01-20 | Logitex Reinstmedientechnik Gmbh | Monitoring system for a conveying device for flat articles, especially wafers |
US20040015970A1 (en) * | 2002-03-06 | 2004-01-22 | Scheuermann W. James | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) |
US20040025159A1 (en) * | 2002-06-25 | 2004-02-05 | Quicksilver Technology, Inc. | Hardware task manager |
US6985517B2 (en) * | 2000-11-09 | 2006-01-10 | Matsushita Electric Industrial Co., Ltd. | Matched filter and correlation detection method |
US6986021B2 (en) * | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US6988139B1 (en) * | 2002-04-26 | 2006-01-17 | Microsoft Corporation | Distributed computing of a job corresponding to a plurality of predefined tasks |
Family Cites Families (88)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3409175A (en) | 1966-11-10 | 1968-11-05 | Thomas M. Byrne | Liquid dispensing device |
US3666143A (en) | 1970-06-22 | 1972-05-30 | Murray Weston | Automatic fluid dispensing apparatus with manual override |
USRE30301E (en) | 1972-03-10 | 1980-06-10 | The Cornelius Company | Beverage mixing and dispensing apparatus |
US3960298A (en) | 1972-10-25 | 1976-06-01 | The Cornelius Company | Container assembly for use with a separator dispenser |
US3995441A (en) | 1973-08-20 | 1976-12-07 | The Cornelius Company | Beverage dispensing system |
US3991911A (en) | 1973-09-07 | 1976-11-16 | American Beverage Control | Automatic drink dispensing apparatus having programming means |
US3949903A (en) | 1973-11-07 | 1976-04-13 | General Motors Corporation | Water and beverage concentrate dispenser |
US3967062A (en) | 1975-03-05 | 1976-06-29 | Ncr Corporation | Method and apparatus for encoding data and clock information in a self-clocking data stream |
US4174872A (en) | 1978-04-10 | 1979-11-20 | The Cornelius Company | Beverage dispensing machine and cabinet therefor |
US4172669A (en) | 1978-07-27 | 1979-10-30 | The Cornelius Company | Mixing and dispensing machine |
US4237536A (en) | 1978-10-12 | 1980-12-02 | M.R.E. Enterprises, Inc. | System for indicating and controlling dispensing of beverages |
US4302775A (en) | 1978-12-15 | 1981-11-24 | Compression Labs, Inc. | Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback |
US4413752A (en) | 1979-01-04 | 1983-11-08 | The Cornelius Company | Apparatus for dispensing a carbonated beverage |
US4222972A (en) | 1979-01-29 | 1980-09-16 | Caldwell Michael C | Method and means for carbonating liquids in situ |
US4218014A (en) | 1979-02-21 | 1980-08-19 | The Cornelius Company | Multiple flavor post-mix beverage dispensing head |
US4523697A (en) | 1979-07-11 | 1985-06-18 | Cadbury Schweppes Limited | Liquid dispensing package |
USRE32179E (en) | 1979-10-12 | 1986-06-10 | The Coca-Cola Company | Post-mix beverage dispensing system syrup package, valving system, and carbonator therefor |
US4333587A (en) | 1980-01-31 | 1982-06-08 | The Coca-Cola Company | Beverage dispenser |
US4354613A (en) | 1980-05-15 | 1982-10-19 | Trafalgar Industries, Inc. | Microprocessor based vending apparatus |
US4393468A (en) | 1981-03-26 | 1983-07-12 | Advanced Micro Devices, Inc. | Bit slice microprogrammable processor for signal processing applications |
US4560089A (en) | 1981-05-11 | 1985-12-24 | The Cornelius Company | Apparatus for dispensing a carbonated beverage |
US4549675A (en) | 1982-09-07 | 1985-10-29 | The Cornelius Co. | Beverage dispensing valve |
US5129549A (en) | 1982-09-07 | 1992-07-14 | Imi Cornelius Inc. | Beverage dispensing valve |
US4936488A (en) | 1982-09-07 | 1990-06-26 | The Cornelius Company | Beverage dispensing valve |
US4509690A (en) | 1982-12-06 | 1985-04-09 | The Cornelius Company | Carbonated beverage mixing nozzle for a dispenser |
US4458584A (en) | 1983-02-22 | 1984-07-10 | General Foods Corporation | Beverage carbonation device |
US4466342A (en) | 1983-02-22 | 1984-08-21 | General Foods Corporation | Carbonation chamber with sparger for beverage carbonation |
US4475448A (en) | 1983-02-22 | 1984-10-09 | General Foods Corporation | Reactant/gas separation means for beverage carbonation device |
GB2137839B (en) | 1983-04-09 | 1986-06-04 | Schlumberger Measurement | Digital signal processors |
US4553573A (en) | 1983-10-20 | 1985-11-19 | Pepsico Inc. | Bulk syrup delivery system |
US4824075A (en) | 1984-02-14 | 1989-04-25 | Walter Holzboog | Tilt action dispensing valve assembly |
US4658988A (en) | 1984-04-02 | 1987-04-21 | The Cornelius Company | Multiple flavor post-mix beverage dispensing apparatus |
US4694416A (en) | 1985-02-25 | 1987-09-15 | General Electric Company | VLSI programmable digital signal processor |
US4967340A (en) | 1985-06-12 | 1990-10-30 | E-Systems, Inc. | Adaptive processing system having an array of individually configurable processing components |
US4713755A (en) | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
US4765513A (en) | 1985-08-26 | 1988-08-23 | The Cornelius Company | Post-mix beverage dispenser with nozzle |
US4711374A (en) | 1985-09-13 | 1987-12-08 | The Coca-Cola Company | Low-cost post-mix beverage dispenser and syrup supply system therefor |
US4747516A (en) | 1985-12-23 | 1988-05-31 | Liquid Motion Industries, Co. | Soft drink maker |
US4748585A (en) | 1985-12-26 | 1988-05-31 | Chiarulli Donald M | Processor utilizing reconfigurable process segments to accomodate data word length |
US4974643A (en) | 1986-01-31 | 1990-12-04 | The Cornelius Company | Method of and apparatus for dispensing beverage into a tilted receptacle with automatic level responsive shut off |
US4960261A (en) | 1986-03-17 | 1990-10-02 | Isoworth Limited | Gas cylinder connector |
US5021947A (en) | 1986-03-31 | 1991-06-04 | Hughes Aircraft Company | Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing |
US4760525A (en) | 1986-06-10 | 1988-07-26 | The United States Of America As Represented By The Secretary Of The Air Force | Complex arithmetic vector processor for performing control function, scalar operation, and set-up of vector signal processing instruction |
US4760544A (en) | 1986-06-20 | 1988-07-26 | Plessey Overseas Limited | Arithmetic logic and shift device |
US4766548A (en) | 1987-01-02 | 1988-08-23 | Pepsico Inc. | Telelink monitoring and reporting system |
US4781309A (en) | 1987-02-19 | 1988-11-01 | The Cornelius Company | Dispenser with improved carbonated water manifold |
US4856684A (en) | 1987-04-06 | 1989-08-15 | William Gerstung | Valve for a pressurized dispensing can containing flowable materials |
US4827426A (en) | 1987-05-18 | 1989-05-02 | The Coca-Cola Company | Data acquisition and processing system for post-mix beverage dispensers |
US4850269A (en) | 1987-06-26 | 1989-07-25 | Aquatec, Inc. | Low pressure, high efficiency carbonator and method |
GB2210441B (en) | 1987-10-01 | 1992-03-04 | Isoworth Ltd | Pressure vessel |
US4921315A (en) | 1987-12-21 | 1990-05-01 | Whirlpool Corporation | Refrigerator door structure |
US4932564A (en) | 1988-05-20 | 1990-06-12 | The Cornelius Company | Multiple flavor post-mix beverage dispensing head |
DE3829831A1 (en) | 1988-09-02 | 1990-03-15 | Hansa Metallwerke Ag | DEVICE FOR TAPING A SELECTABLE QUANTITY OF LIQUID, IN PARTICULAR QUANTITY OF WATER |
US4930666A (en) | 1988-10-28 | 1990-06-05 | The Coca-Cola Company | Juice dispensing system for a refrigerator door |
US5240144A (en) | 1989-01-06 | 1993-08-31 | Joseph Feldman | Beverage dispensing apparatus |
ES2104580T3 (en) | 1989-02-24 | 1997-10-16 | At & T Corp | ADAPTIVE PLANNING OF TASKS FOR MULTIPROCESS SYSTEMS. |
US5007560A (en) | 1989-03-01 | 1991-04-16 | Sassak John J | Beer dispensing and monitoring method and apparatus |
US5261099A (en) | 1989-08-24 | 1993-11-09 | International Business Machines Corp. | Synchronous communications scheduler allowing transient computing overloads using a request buffer |
GB2236736A (en) | 1989-09-27 | 1991-04-17 | Isoworth Ltd | Carbonation apparatus for dispensing drinks, with plural carbonation chambers |
US4961533A (en) | 1989-09-27 | 1990-10-09 | Viac Inc. | Inventory control system |
US5044171A (en) | 1989-11-06 | 1991-09-03 | Eli Farkas | Counter with integral carbonated beverage dispenser |
US5450557A (en) * | 1989-11-07 | 1995-09-12 | Loral Aerospace Corp. | Single-chip self-configurable parallel processor |
US5203474A (en) | 1990-06-16 | 1993-04-20 | Alco Standard Corporation | Beverage dispensing nozzle |
US5303846A (en) | 1990-09-17 | 1994-04-19 | Abcc/Techcorp. | Method and apparatus for generating and dispensing flavoring syrup in a post mix system |
US5156301A (en) | 1990-12-17 | 1992-10-20 | Imi Cornelius Inc. | Constant ratio post-mix beverage dispensing valve |
US5202993A (en) | 1991-02-27 | 1993-04-13 | Sun Microsystems, Inc. | Method and apparatus for cost-based heuristic instruction scheduling |
US5301100A (en) | 1991-04-29 | 1994-04-05 | Wagner Ferdinand H | Method of and apparatus for constructing a control system and control system created thereby |
US5156871A (en) | 1991-05-01 | 1992-10-20 | Imi Cornelius Inc. | Low cost beverage carbonating apparatus and method |
US5339428A (en) | 1991-09-04 | 1994-08-16 | Digital Equipment Corporation | Compiler allocating a register to a data item used between a use and store of another data item previously allocated to the register |
US5368198A (en) | 1992-08-26 | 1994-11-29 | Imi Cornelius Inc. | Beverage dispenser |
US5263509A (en) | 1992-11-12 | 1993-11-23 | General Electric Company | Refrigerator with door mounted dispenser supply mechanism |
US5335276A (en) | 1992-12-16 | 1994-08-02 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
US5343716A (en) | 1993-06-29 | 1994-09-06 | Imi Cornelius Inc. | Beverage dispenser with improved cold plate |
US5892961A (en) * | 1995-02-17 | 1999-04-06 | Xilinx, Inc. | Field programmable gate array having programming instructions in the configuration bitstream |
US5646544A (en) * | 1995-06-05 | 1997-07-08 | International Business Machines Corporation | System and method for dynamically reconfiguring a programmable gate array |
US5623545A (en) * | 1995-08-31 | 1997-04-22 | National Semiconductor Corporation | Automatic data generation for self-test of cryptographic hash algorithms in personal security devices |
US6247036B1 (en) * | 1996-01-22 | 2001-06-12 | Infinite Technology Corp. | Processor with reconfigurable arithmetic data path |
US6237029B1 (en) * | 1996-02-26 | 2001-05-22 | Argosystems, Inc. | Method and apparatus for adaptable digital protocol processing |
US5956518A (en) * | 1996-04-11 | 1999-09-21 | Massachusetts Institute Of Technology | Intermediate-grain reconfigurable processing device |
US5784636A (en) * | 1996-05-28 | 1998-07-21 | National Semiconductor Corporation | Reconfigurable computer architecture for use in signal processing applications |
US5966534A (en) * | 1997-06-27 | 1999-10-12 | Cooke; Laurence H. | Method for compiling high level programming languages into an integrated processor with reconfigurable logic |
DE69827589T2 (en) * | 1997-12-17 | 2005-11-03 | Elixent Ltd. | Configurable processing assembly and method of using this assembly to build a central processing unit |
US6230307B1 (en) * | 1998-01-26 | 2001-05-08 | Xilinx, Inc. | System and method for programming the hardware of field programmable gate arrays (FPGAs) and related reconfiguration resources as if they were software by creating hardware objects |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
AU5297201A (en) * | 2000-03-31 | 2001-10-15 | General Dynamics Decision Systems, Inc. | Scalable cryptographic engine |
US20020032551A1 (en) * | 2000-08-07 | 2002-03-14 | Jabari Zakiya | Systems and methods for implementing hash algorithms |
EP1360795B1 (en) * | 2001-01-12 | 2006-08-09 | Broadcom Corporation | Implentation of the SHA1 algorithm |
US7146500B2 (en) * | 2001-11-14 | 2006-12-05 | Compass Technology Management, Inc. | System for obtaining signatures on a single authoritative copy of an electronic record |
-
2002
- 2002-03-05 US US10/093,156 patent/US7489779B2/en not_active Expired - Lifetime
-
2003
- 2003-03-05 WO PCT/US2003/007000 patent/WO2003077119A1/en not_active Application Discontinuation
- 2003-03-05 AU AU2003217991A patent/AU2003217991A1/en not_active Abandoned
-
2009
- 2009-01-14 US US12/353,267 patent/US20090161863A1/en not_active Abandoned
Patent Citations (99)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3938639A (en) * | 1973-11-28 | 1976-02-17 | The Cornelius Company | Portable dispenser for mixed beverages |
US4076145A (en) * | 1976-08-09 | 1978-02-28 | The Cornelius Company | Method and apparatus for dispensing a beverage |
US4143793A (en) * | 1977-06-13 | 1979-03-13 | The Cornelius Company | Apparatus and method for dispensing a carbonated beverage |
US4377246A (en) * | 1977-06-13 | 1983-03-22 | The Cornelius Company | Apparatus for dispensing a carbonated beverage |
US4252253A (en) * | 1978-02-21 | 1981-02-24 | Mcneil Corporation | Drink dispenser having central control of plural dispensing stations |
US4181242A (en) * | 1978-05-30 | 1980-01-01 | The Cornelius Company | Method and apparatus for dispensing a beverage |
US4577782A (en) * | 1983-05-02 | 1986-03-25 | The Cornelius Company | Beverage dispensing station |
US4578799A (en) * | 1983-10-05 | 1986-03-25 | Codenoll Technology Corporation | Method and apparatus for recovering data and clock information from a self-clocking data stream |
US4719056A (en) * | 1984-06-25 | 1988-01-12 | Isoworth Limited | Fluid treatment |
US4993604A (en) * | 1985-09-13 | 1991-02-19 | The Coca-Cola Company | Low-cost post-mix beverage dispenser and syrup supply system therefor |
US4726494A (en) * | 1986-02-10 | 1988-02-23 | Isoworth Limited | Beverage dipensing apparatus |
US4982876A (en) * | 1986-02-10 | 1991-01-08 | Isoworth Limited | Carbonation apparatus |
US4811214A (en) * | 1986-11-14 | 1989-03-07 | Princeton University | Multinode reconfigurable pipeline computer |
US5381546A (en) * | 1987-04-13 | 1995-01-10 | Gte Laboratories Incorporated | Control process for allocating services in communications systems |
US4800492A (en) * | 1987-05-13 | 1989-01-24 | The Coca-Cola Company | Data logger for a post-mix beverage dispensing system |
US4901887A (en) * | 1988-08-08 | 1990-02-20 | Burton John W | Beverage dispensing system |
US5090015A (en) * | 1989-02-06 | 1992-02-18 | Motorola, Inc. | Programmable array logic self-checking system |
US5193151A (en) * | 1989-08-30 | 1993-03-09 | Digital Equipment Corporation | Delay-based congestion avoidance in computer networks |
US5190083A (en) * | 1990-02-27 | 1993-03-02 | The Coca-Cola Company | Multiple fluid space dispenser and monitor |
US5190189A (en) * | 1990-10-30 | 1993-03-02 | Imi Cornelius Inc. | Low height beverage dispensing apparatus |
US5193718A (en) * | 1991-06-25 | 1993-03-16 | Imi Cornelius Inc. | Quick electronic disconnect for a beverage dispensing valve |
US5600844A (en) * | 1991-09-20 | 1997-02-04 | Shaw; Venson M. | Single chip integrated circuit system architecture for document installation set computing |
US5381550A (en) * | 1991-12-13 | 1995-01-10 | Thinking Machines Corporation | System and method for compiling a source code supporting data parallel variables |
US5607083A (en) * | 1992-05-22 | 1997-03-04 | Imi Cornelius Inc. | Beverage dispensing valve |
US6023755A (en) * | 1992-07-29 | 2000-02-08 | Virtual Computer Corporation | Computer with programmable arrays which are reconfigurable in response to instructions to be executed |
US5603043A (en) * | 1992-11-05 | 1997-02-11 | Giga Operations Corporation | System for compiling algorithmic language source code for implementation in programmable hardware |
US5392960A (en) * | 1992-11-13 | 1995-02-28 | Wilshire Partners | Postmix beverage dispenser and a method for making a beverage dispenser |
US6192255B1 (en) * | 1992-12-15 | 2001-02-20 | Texas Instruments Incorporated | Communication system and methods for enhanced information transfer |
US5297400A (en) * | 1993-02-17 | 1994-03-29 | Maytag Corporation | Liquid dispensing assembly for a refrigerator |
US5280711A (en) * | 1993-02-25 | 1994-01-25 | Imi Cornelius Inc. | Low cost beverage dispensing apparatus |
US5379343A (en) * | 1993-02-26 | 1995-01-03 | Motorola, Inc. | Detection of unauthorized use of software applications in communication units |
US5388212A (en) * | 1993-02-26 | 1995-02-07 | Motorola Inc. | Detecting unauthorized modification of communication unit based on comparison between stored hardware identification code and hardware identification code generated from operational platform identification code |
US5712996A (en) * | 1993-03-15 | 1998-01-27 | Siemens Aktiengesellschaft | Process for dividing instructions of a computer program into instruction groups for parallel processing |
US5870427A (en) * | 1993-04-14 | 1999-02-09 | Qualcomm Incorporated | Method for multi-mode handoff using preliminary time alignment of a mobile station operating in analog mode |
US5720002A (en) * | 1993-06-14 | 1998-02-17 | Motorola Inc. | Neural network and method of using same |
US5732563A (en) * | 1993-09-22 | 1998-03-31 | Imi Cornelius Inc. | Electronically controlled beverage dispenser |
US5594657A (en) * | 1993-09-27 | 1997-01-14 | Lucent Technologies Inc. | System for synthesizing field programmable gate array implementations from high level circuit descriptions |
US5734808A (en) * | 1993-09-28 | 1998-03-31 | Namco Ltd. | Pipeline processing device, clipping processing device, three-dimensional simulator device and pipeline processing method |
US5862961A (en) * | 1993-10-26 | 1999-01-26 | Imi Cornelius Inc. | Connection device for dispensing fluid from a bottle |
US5490165A (en) * | 1993-10-28 | 1996-02-06 | Qualcomm Incorporated | Demodulation element assignment in a system capable of receiving multiple signals |
US5721854A (en) * | 1993-11-02 | 1998-02-24 | International Business Machines Corporation | Method and apparatus for dynamic conversion of computer instructions |
US5491823A (en) * | 1994-01-25 | 1996-02-13 | Silicon Graphics, Inc. | Loop scheduler |
US5608643A (en) * | 1994-09-01 | 1997-03-04 | General Programming Holdings, Inc. | System for managing multiple dispensing units and method of operation |
US5881106A (en) * | 1994-09-05 | 1999-03-09 | Sgs-Thomson Microelectronics S.A. | Signal processing circuit to implement a Viterbi algorithm |
US5600810A (en) * | 1994-12-09 | 1997-02-04 | Mitsubishi Electric Information Technology Center America, Inc. | Scaleable very long instruction word processor with parallelism matching |
US5602833A (en) * | 1994-12-19 | 1997-02-11 | Qualcomm Incorporated | Method and apparatus for using Walsh shift keying in a spread spectrum communication system |
US5721693A (en) * | 1995-01-07 | 1998-02-24 | Lg Electronics Inc. | Electric home appliance real use state information collection and analysis apparatus |
US5706191A (en) * | 1995-01-19 | 1998-01-06 | Gas Research Institute | Appliance interface apparatus and automated residence management system |
US5884284A (en) * | 1995-03-09 | 1999-03-16 | Continental Cablevision, Inc. | Telecommunication user account management system and method |
US5611867A (en) * | 1995-04-12 | 1997-03-18 | Maytag Corporation | Method of selecting a wash cycle for an appliance |
US6021186A (en) * | 1995-04-17 | 2000-02-01 | Ricoh Company Ltd. | Automatic capture and processing of facsimile transmissions |
US6028610A (en) * | 1995-08-04 | 2000-02-22 | Sun Microsystems, Inc. | Geometry instructions for decompression of three-dimensional graphics data |
US5706976A (en) * | 1995-12-21 | 1998-01-13 | Purkey; Jay Floyd | Vending machine inventory control device |
US6510510B1 (en) * | 1996-01-25 | 2003-01-21 | Analog Devices, Inc. | Digital signal processor having distributed register file |
US6346824B1 (en) * | 1996-04-09 | 2002-02-12 | Xilinx, Inc. | Dedicated function fabric for use in field programmable gate arrays |
US20020015439A1 (en) * | 1996-04-25 | 2002-02-07 | Sanjai Kohli | GPS system for navigating a vehicle |
US6181981B1 (en) * | 1996-05-15 | 2001-01-30 | Marconi Communications Limited | Apparatus and method for improved vending machine inventory maintenance |
US6175854B1 (en) * | 1996-06-11 | 2001-01-16 | Ameritech Services, Inc. | Computer system architecture and method for multi-user, real-time applications |
US5887174A (en) * | 1996-06-18 | 1999-03-23 | International Business Machines Corporation | System, method, and program product for instruction scheduling in the presence of hardware lookahead accomplished by the rescheduling of idle slots |
US6192388B1 (en) * | 1996-06-20 | 2001-02-20 | Avid Technology, Inc. | Detecting available computers to participate in computationally complex distributed processing problem |
US6023742A (en) * | 1996-07-18 | 2000-02-08 | University Of Washington | Reconfigurable computing architecture for providing pipelined data paths |
US6021492A (en) * | 1996-10-09 | 2000-02-01 | Hewlett-Packard Company | Software metering management of remote computing devices |
US6016395A (en) * | 1996-10-18 | 2000-01-18 | Samsung Electronics Co., Ltd. | Programming a vector processor and parallel programming of an asymmetric dual multiprocessor comprised of a vector processor and a risc processor |
US5860021A (en) * | 1997-04-24 | 1999-01-12 | Klingman; Edwin E. | Single chip microcontroller having down-loadable memory organization supporting "shadow" personality, optimized for bi-directional data transfers over a communication channel |
US5886537A (en) * | 1997-05-05 | 1999-03-23 | Macias; Nicholas J. | Self-reconfigurable parallel processor made from regularly-connected self-dual code/data processing cells |
US20030026242A1 (en) * | 1997-06-18 | 2003-02-06 | Harri Jokinen | Method for identifying base stations of a time division cellular network in a mobile station and mobile station |
US6195788B1 (en) * | 1997-10-17 | 2001-02-27 | Altera Corporation | Mapping heterogeneous logic elements in a programmable logic device |
US5873045A (en) * | 1997-10-29 | 1999-02-16 | International Business Machines Corporation | Mobile client computer with radio frequency transceiver |
US6185418B1 (en) * | 1997-11-07 | 2001-02-06 | Lucent Technologies Inc. | Adaptive digital radio communication system |
US6192070B1 (en) * | 1998-01-02 | 2001-02-20 | Mitsubishi Electric Research Laboratories, Inc. | Universal modem for digital video, audio and data communications |
US6175892B1 (en) * | 1998-06-19 | 2001-01-16 | Hitachi America. Ltd. | Registers and methods for accessing registers for use in a single instruction multiple data system |
US20020013937A1 (en) * | 1999-02-17 | 2002-01-31 | Ostanevich Alexander Y. | Register economy heuristic for a cycle driven multiple issue instruction scheduler |
US6510138B1 (en) * | 1999-02-25 | 2003-01-21 | Fairchild Semiconductor Corporation | Network switch with head of line input buffer queue clearing |
US6349394B1 (en) * | 1999-03-31 | 2002-02-19 | International Business Machines Corporation | Performance monitoring in a NUMA computer |
US6347346B1 (en) * | 1999-06-30 | 2002-02-12 | Chameleon Systems, Inc. | Local memory unit system with global access for use on reconfigurable chips |
US6507947B1 (en) * | 1999-08-20 | 2003-01-14 | Hewlett-Packard Company | Programmatic synthesis of processor element arrays |
US6681148B2 (en) * | 1999-12-02 | 2004-01-20 | Logitex Reinstmedientechnik Gmbh | Monitoring system for a conveying device for flat articles, especially wafers |
US20020024993A1 (en) * | 1999-12-30 | 2002-02-28 | Ravi Subramanian | Method and apparatus to support multi standard, multi service base-stations for wireless voice and data networks |
US20020023210A1 (en) * | 2000-04-12 | 2002-02-21 | Mark Tuomenoksa | Method and system for managing and configuring virtual private networks |
US20020001384A1 (en) * | 2000-04-13 | 2002-01-03 | Broadcom Corporation | Authentication engine architecture and method |
US20020013799A1 (en) * | 2000-05-11 | 2002-01-31 | Blaker David M. | Accelerated montgomery multiplication using plural multipliers |
US20020010848A1 (en) * | 2000-05-29 | 2002-01-24 | Shoichi Kamano | Data processing system |
US6675265B2 (en) * | 2000-06-10 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Multiprocessor cache coherence system and method in which processor nodes and input/output nodes are equal participants |
US20020015435A1 (en) * | 2000-07-31 | 2002-02-07 | Keith Rieken | Apparatus and method for configurable multi-dwell search engine for spread spectrum applications |
US20040006584A1 (en) * | 2000-08-08 | 2004-01-08 | Ivo Vandeweerd | Array of parallel programmable processing engines and deterministic method of operating the same |
US20020024942A1 (en) * | 2000-08-30 | 2002-02-28 | Nec Corporation | Cell search method and circuit in W-CDMA system |
US20030012270A1 (en) * | 2000-10-06 | 2003-01-16 | Changming Zhou | Receiver |
US6985517B2 (en) * | 2000-11-09 | 2006-01-10 | Matsushita Electric Industrial Co., Ltd. | Matched filter and correlation detection method |
US20030030004A1 (en) * | 2001-01-31 | 2003-02-13 | General Electric Company | Shared memory control between detector framing node and processor |
US20030007606A1 (en) * | 2001-02-01 | 2003-01-09 | Estech Systems, Inc. | Service observing in a voice over IP telephone system |
US20030018700A1 (en) * | 2001-03-26 | 2003-01-23 | Giroti Sudhir K. | Unified XML voice and data media converging switch and application delivery system |
US20030018446A1 (en) * | 2001-06-29 | 2003-01-23 | National Instruments Corporation | Graphical program node for generating a measurement program |
US20030023830A1 (en) * | 2001-07-25 | 2003-01-30 | Hogenauer Eugene B. | Method and system for encoding instructions for a VLIW that reduces instruction memory requirements |
US20060031660A1 (en) * | 2001-11-30 | 2006-02-09 | Master Paul L | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US6986021B2 (en) * | 2001-11-30 | 2006-01-10 | Quick Silver Technology, Inc. | Apparatus, method, system and executable module for configuration and operation of adaptive integrated circuitry having fixed, application specific computational elements |
US20040015970A1 (en) * | 2002-03-06 | 2004-01-22 | Scheuermann W. James | Method and system for data flow control of execution nodes of an adaptive computing engine (ACE) |
US6988139B1 (en) * | 2002-04-26 | 2006-01-17 | Microsoft Corporation | Distributed computing of a job corresponding to a plurality of predefined tasks |
US20040010645A1 (en) * | 2002-06-25 | 2004-01-15 | Quicksilver Technology, Inc. | Uniform interface for a functional node in an adaptive computing engine |
US20040025159A1 (en) * | 2002-06-25 | 2004-02-05 | Quicksilver Technology, Inc. | Hardware task manager |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9779051B2 (en) | 2013-05-01 | 2017-10-03 | Jonathan Glickman | Computer system and a computer device |
US10002097B2 (en) | 2013-05-01 | 2018-06-19 | Jonathan Glickman | Computer system and a computer device |
US10776301B2 (en) | 2013-05-01 | 2020-09-15 | Jonathan Glickman | Computer system and a computer device |
US11775464B2 (en) | 2013-05-01 | 2023-10-03 | Jonathan Glickman | Computer system and a computer device |
US10599365B2 (en) | 2018-03-20 | 2020-03-24 | Toshiba Memory Corporation | Storage system |
Also Published As
Publication number | Publication date |
---|---|
US7489779B2 (en) | 2009-02-10 |
AU2003217991A1 (en) | 2003-09-22 |
US20030135743A1 (en) | 2003-07-17 |
WO2003077119A1 (en) | 2003-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20090161863A1 (en) | Hardware implementation of the secure hash standard | |
US7508937B2 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
US7295671B2 (en) | Advanced encryption standard (AES) hardware cryptographic engine | |
US5623548A (en) | Transformation pattern generating device and encryption function device | |
US7043017B2 (en) | Key stream cipher device | |
EP1583278B1 (en) | Stream Cipher Design with Revolving Buffers | |
US8301905B2 (en) | System and method for encrypting data | |
US7280659B2 (en) | Pseudorandom number generating apparatus or encryption or decryption apparatus using the same | |
US8094816B2 (en) | System and method for stream/block cipher with internal random states | |
EP3839788B1 (en) | Bit-length parameterizable cipher | |
US7657757B2 (en) | Semiconductor device and method utilizing variable mode control with block ciphers | |
EP2200215A1 (en) | Method and apparatus for key expansion to encode data | |
US7796752B2 (en) | Cipher implementation | |
US10891110B2 (en) | AES/CRC engine based on resource shared galois field computation | |
US20050232416A1 (en) | Method and device for determining a result | |
US6931127B2 (en) | Encryption device using data encryption standard algorithm | |
US9065631B2 (en) | Integrated cryptographic module providing confidentiality and integrity | |
KR20050087271A (en) | Key schedule apparatus for generating an encryption round key and a decryption round key selectively corresponding to initial round key having variable key length | |
EP1456994B1 (en) | Programmable data encryption engine for advanced encryption standard algorithm | |
WO2019238790A1 (en) | Hardware accelerator for feistel block ciphers | |
KR20050092698A (en) | A small hardware implementation of the subbyte function of rijndael | |
US20220416996A1 (en) | Block Cipher Encryption Pipeline | |
Zigiotto et al. | A low-cost FPGA implementation of the Advanced Encryption Standard algorithm | |
WO2004105306A1 (en) | Method and apparatus for a low memory hardware implementation of the key expansion function | |
Abbas et al. | Dictionary Attack on TRUECRYPT with RIVYERA S3-5000 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |