Claims
- 1. A method for cryptography processing of data packets, the method comprising:
identifying a first fixed-sized cell at a cryptography accelerator, the first fixed-sized cell associated with a first packet; maintaining first context information corresponding to the first fixed-sized cell, the first context information identifying a first key and a first algorithm for cryptographically processing the first fixed-sized cell; identifying a second fixed-sized cell at a cryptography accelerator, the second fixed-sized cell associated with a second packet; and maintaining second context information associated with the second fixed-sized cell, the second context information identifying a second key and a second algorithm for cryptographically processing the second fixed-sized cell.
- 2. The method of claim 1, further comprising cryptographically processing the first and second fixed-sized cells using the first and second context information.
- 3. The method of claim 1, wherein the first and second packets are back-to-back packets.
- 4. The method of claim 1, further comprising recombining the first and second fixed-sized cell into first and second processed data packets.
- 5. A method for accelerating cryptography processing of data packets, the method comprising:
splitting an incoming packet into at least one fixed-sized cell; maintaining context information for the at least one fixed-sized cell, wherein context information comprises key and algorithm information for cryptographically processing the at least one fixed-sized cell; processing the at least one fixed-sized cell using context information; and recombining the at least one fixed-sized cell associated with the incoming packet into a processed data packet.
- 6. The method of claim 5, wherein if the incoming packet is larger than a single fixed-sized cell, the incoming packet is split into a plurality of fixed-sized cells, whereas if the incoming packet is smaller than a single fixed-sized cell, the packet is converted into a single fixed-sized cell.
- 7. The method of claim 6, further comprising reading an incoming packet from a system memory before splitting the packet into fixed-sized cells.
- 8. The method of claim 7, further comprising writing the processed data packet out to the system memory.
- 9. The method of claim 8, further comprising storing the fixed-sized cells in a buffer.
- 10. The method of claim 9, further comprising pre-fetching context information associated with the incoming packet and storing the context information in an on-chip context buffer.
- 11. The method of claim 10, wherein processing comprises performing at least one cryptographic operation on the fixed-sized cells.
- 12. The method of claim 11, wherein the processing comprises performing 3DES-CBC encryption/decryption and MD5/SHA1 authentication/digital signature processing on the fixed-sized cells.
- 13. The method of claim 11, wherein the processing comprises Diffie-Hellman/RSA/DSA public key processing.
- 14. The method of claim 12, wherein for in-bound packets, the cells are first authenticated and then decrypted in parallel fashion and for out-bound packets, the cells are first encrypted then authenticated, in pipelined fashion.
- 15. The method of claim 14,wherein the cryptographic processing operations are performed in parallel.
- 16. A method for accelerating IPSec cryptography processing of IP packets, the method comprising:
splitting an incoming IP packet into a plurality of fixed-sized cells, wherein if the incoming IP packet is smaller than a predetermined fixed size, the IP packet is converted into a single fixed-sized cell; placing the fixed-sized cells in a buffer; processing the fixed-sized cells with a 3DES-CBC encryption/decryption unit and an MD5/SHA1 authentication/digital signature unit; and recombining the fixed-sized cells into a processed IP packet.
- 17. The method of claim 16, further comprising reading an incoming IP packet from a system memory before splitting the packet into fixed-sized cells.
- 18. The method of claim 16, further comprising writing the processed IP packet out to the system memory.
- 19. The method of claim 18, wherein the buffer size is less than 512 kilobytes.
- 20. The method of claim 19, further comprising pre-fetching context information associated with the incoming packet and storing the context information in a context buffer.
- 21. The method of claim 20, wherein for in-bound packets, the cells are first authenticated and then decrypted in parallel fashion and for out-bound packets, the cells are first encrypted then authenticated, in pipelined fashion.
- 22. The method of claim 21,wherein the cryptographic processing operations are performed in parallel.
- 23. The method of claim 22, wherein multiple packets are combined into a single record and are sent for processing by a system controller with a single bus write command.
- 24. A method for sequencing fixed-sized cells in a cryptography acceleration chip, wherein incoming data packets are split into fixed-sized cells, the method comprising:
pre-fetching a next cell for processing; waiting until a previous cell has finished processing; loading the next cell into a cryptography processing unit; waiting until less than a predetermined number of system bus writes are pending; and starting the cryptography processing on a current cell and queuing up a write for the previous cell.
- 25. The method of claim 24, wherein the cryptography processing comprises performing both encryption/decryption and authentication in parallel.
- 26. The method of claim 25, further comprising writing an outer HMAC code, if the current cell is the last cell to be authenticated in a current packet.
- 27. The method of claim 26, further comprising writing an inner HMAC code, if the current cell is the first cell in a new packet.
- 28. The method of claim 27, further comprising pre-fetching a next cell, if the next cell is from a same packet as a current cell, otherwise, determining if a new packet is part of a same Master Command Record (MCR) as the current packet.
- 29. The method of claim 28, further comprising pre-fetching a new context and a new cell, if the new packet is part of the same MCR as the current packet, otherwise, draining the cryptography processing blocks, writing an output, updating status MCR status information, and then pre-fetching a new context and a new cell.
- 30. The method of claim 29, wherein the encryption/decryption is performed by a 3DES-CBC unit and the authentication is performed by a MD5/SHA1 unit in order to implement IPSec processing.
Parent Case Info
[0001] This application claims priority from U.S. patent application Ser. No. 09/510,486 entitled Security Chip Architecture And Implementations For Cryptography Acceleration filed on Feb. 23, 2000, which claims priority from both U.S. Provisional Application No. 60/142,870, entitled Networking Security Chip Architecture And Implementations For Cryptography Acceleration filed Jul. 8, 1999 and U.S. Provisional Application No. 60/159,012, entitled Ubiquitous Broadband Security Chip, filed Oct. 12, 1999, the disclosures of which are herein incorporated by reference.
Provisional Applications (2)
|
Number |
Date |
Country |
|
60142870 |
Jul 1999 |
US |
|
60159012 |
Oct 1999 |
US |
Continuations (1)
|
Number |
Date |
Country |
| Parent |
09510486 |
Feb 2000 |
US |
| Child |
10227491 |
Aug 2002 |
US |