Browse Prior Art Database

Method for efficiently offloading cryptographic processing of receive traffic

IP.com Disclosure Number: IPCOM000012719D
Publication Date: 2003-May-21
Document File: 4 page(s) / 91K

Publishing Venue

The IP.com Prior Art Database

Abstract

Disclosed is a method for efficiently offloading cryptographic processing of receive traffic. Benefits include improved performance and improved cost effectiveness.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 29% of the total text.

Method for efficiently offloading cryptographic processing of receive traffic

Disclosed is a method for efficiently offloading cryptographic processing of receive traffic. Benefits include improved performance and improved cost effectiveness.

Background

              Internet Protocol (IP) security (IPSec) is one way to protect both the confidentiality and integrity of data that is transferred on a network. Because IPSec provides a way to encrypt and decrypt data below the transmission control protocol/user datagram protocol (TCP/UDP) layer, the protection is transparent to applications that transfer data. No changes are required at the application level to utilize IPSec. However, the algorithms used for encryption, decryption, and authentication require many CPU cycles to execute. The cycles spent on cryptography operations decrease the CPU cycles available to applications and other parts of the protocol stack, decreasing system throughput.

              One conventional solution to this problem is to offload the cryptography operations to an external piece of hardware, such as a network interface card (NIC). The most efficient way to offload the crypto operations is to encrypt the data immediately before transmitting a packet and to decrypt the data directly during reception before the packet is direct memory access (DMA) transferred to host memory. The process of decrypting and authenticating incoming data before it is transferred to host memory is called inline receive.

              One alternative to inline receive is the secondary use model. It uses an out-of-band acceleration method to decrypt receive packets. In this scenario, all receive packets are DMA transferred into host memory. The network driver then parses each received packet to match it with its corresponding security association (SA). It is a data structure that contains all of the information required to encrypt/decrypt and/or authenticate a packet.

              Assuming that the cryptographic (crypto) accelerator is on the NIC, the driver instructs the NIC to transfer the packet across the bus. The NIC performs the crypto operation on the packet and transfers it back to host memory. The result is that the packet is transferred across the bus three times. This procedure uses the available bandwidth inefficiently. The latency introduced by this method can degrade the throughput of protocols that are sensitive to the round trip time, such as TCP. Additionally, an extra interrupt is often required to perform the extra transfers across the bus. Extra interrupts increase the amount of system processing and increase CPU utilization. From a performance perspective (both CPU utilization and throughput), inline receive is more efficient than secondary use.

              However, inline receive can be expensive to implement in hardware, especially if support for a large number of secure connections is required. For each secure connection, approximately 100 bytes of data are required. A 3-tuple of inf...