Intel® EP80579 Software for
Security Applications on Intel
QuickAssist Technology
Programmer’s Guide
August 2009
®
Order Number: 320183-004US
Legal Lines and Disclaimers
INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH INTEL® PRODUCTS. NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR
OTHERWISE, TO ANY IN TELLEC TUA L PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN INTEL ’S TERMS AND CONDITIONS
OF SALE FOR SUCH PRODUCTS, INTEL ASSUMES NO LIABILITY WHATSOEVER, AND INTEL DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING
TO SALE AND/OR USE OF INTEL PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE,
MERCHANTABILITY, OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. Intel products are not intended for
use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.
Intel may make changes to specifications and product descriptions at any time, without notice. Designers must not rely on the absence or characteristics
of any features or instructions marked “reserv ed” or “undefined.” Intel reserves these for fut ure definition and shall ha ve no responsibility whatsoever for
conflicts or incompatibilities arising from future changes to them. The information here is subject to change without notice. Do not finalize a design with
this information.
The products described in this document may contain design defects or errors known as errata which may cause the product to deviate from published
specifications. Current characterized errata are available on request.
Contact your local Intel sales office or your distributor to obtain the latest specifications and before placing your product order.
Copies of documents which have an order number and are referenced in this document, or other Intel literature, may be obtained by calling 1-800-548-
4725, or by visiting Intel’s Web Site.
Any software source code reprinted in this document is furnished under a software license and may only be used or copied in accordance with the terms
of that license.
Intel processor numbers are not a measure of performance. Processor numbers differentiate features within each processor family, not across different
processor families. See http://www.intel.com/products/processor_number for details.
Code Names are only for use by Intel to identify products, platforms, programs, services, etc. (“products”) in development by Intel that have not been
made commercially available to the public, i.e., announced, launched or shipped. They are never to be used as “commercial” names for products. Also,
they are not intended to function as trademarks.
BunnyPeople, Celeron, Celeron Inside, Centrino, Centrino logo, Core Inside, FlashFile, i960, InstantIP, Intel, Intel logo, Intel386, Intel486, Inte l7 40 ,
IntelDX2, IntelDX4, IntelSX2, Intel Core, Intel Inside, Intel Inside logo, Intel. Leap ahead., Intel. Leap ahead. logo, Intel NetBurst, Intel NetMerge, In tel
NetStructure, Intel SingleDriver, Intel SpeedStep, Intel StrataFlash, Intel Viiv, Intel vPro, Intel XScale, Itanium, Itanium Inside, MCS, MMX, Oplus,
OverDrive, PDCharm, Pentium, Pentium Inside, skoool, Sound Mark, The Journey Inside, VTune, Xeon, and Xeon Inside are trademarks of Intel
Corporation in the U.S. and other countries.
• Deleted Resource Manager text from Section 3.6 and Section 8.3.1 (no change bars).
• Removed Software Error Notification section in Chapter 6 (no change bars).
• Other updates noted in “What’s New” sections of chapters and with change bars.
The following sections were updated and noted with change bars:
• Section 12.8.2.6: added details on key generation
• Other updates noted in “What’s New” sections of chapters and with change bars.
§ §
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
6Order Number: 320183-004US
Introduction—Security Software
1.0Introduction
1.1What’s New in this Chapter
Section 1.6: New Note explaining cryptographic framework “shim” support.
1.2About this Document
The API Reference Manuals listed in Table 1 describe how the user can interface to the
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology.
Intel
This document provides more information on how the APIs can be effectively used,
including an overview of the silicon, an overview of the software architecture, and
information on using the API to build an accelerated security appliance.
The following chapters are included in this document:
Note: See Appendix A, “NPF Copyri ght Notice” for more information.
®
64 and IA-32 Architectures Software Developer's Manuals
Intel
http://www.intel.com/products/processor/manuals/
Document
Number
320184
320182
320703
320185
N/A
N/A
1.5Glossary
Table 3 lists the terms and acronyms used in this document.
Table 3.Terms and Definitions (Sheet 1 of 2)
TermDescription
(A)RC4Alleged RC4. A stream cipher, used in popular protocols such as SSL
ACPIAdvanced Configuration and Power Interface
AESAdvanced Encryption Standard
AIOCAcceleration and I/O Complex
APMAdvanced Power Management
ASDAcceleration System Driver
ASUAcceleration Services Unit
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
8Order Number: 320183-004US
Introduction—Security Software
Table 3.Terms and Definitions (Sheet 2 of 2)
TermDescription
CBC
CDRAMCoherent DRAM
CTR
DESData Encryption Standard
DRAMDynamic Random Access Memory
DSADigital Signature Algorithm
DSSDigital Signature Standard
ECBElectronic Code Book
GbEGigabit Ethernet
GCMGalois Counter Mode
HMACHashed Message Authenticate Code
IICHIntegrated I/O Controller Hub
IMCHIntegrated Memory Controller Hub
IPSecInternet Protocol Security
IVInitialization Vector
LALookaside, also called Cryptographic API
LACLookaside Crypto, also called Cryptographic API
MACMe dia Access Control
MD5Message Digest 5
MGFMask Generation Function
NCDRAMNon-Coherent DRAM
NVRAMNon-Volatile Random Access memory
OCFOpenBSD Cryptographic Framework
OIFOptical Internetworking Forum, standards body for networking specifications
OSDRAMOperating System DRAM
PKCSPublic Key Cryptography Standards
PKEPublic Key Encryption
PKIPublic Key Infrastructure
PRGAPseudo-Random Generation Algorithm
QAT-ALIntel
RC4See (A)RC4
RFCRequest for Comments
RSAA public key encryption algorithm created by Rivest, Shamir, and Adleman
SHASecure Hash Algorithm
SOCSystem on a chip
SSLSecure Sockets Layer
SSUSecurity Services Unit
TDMTime-Division Multiplexing
TLSTransport Layer Security (SSL successor)
Cipher Block Chaining mode. This is a mode of operation of a block cipher that
combines the ciphertext of one block with the plaintext of the next block.
Counter mode. This is a mode of operation of a block cipher that generates a
keystream block by encrypting successive values of a counter.
®
QuickAssist Technology Access Layer
August 2009PG
Order Number: 320183-004US9
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
1.6Features Supported in this Release
The features provided by this software in this release are as follows:
• Acceleration of cryptographic operations using the “lookaside” model, via the
Cryptographic API. For more details, see Chapter 4.0, “Intel® QuickAssist
Technology Cryptographic API Architecture Overview.”
— Symmetric cryptographic operations supported include ciphers [AES, 3DES,
DES, (A)RC4] and message digest/hash for authentication (MD5, SHA-1, SHA-2
as well as HMAC).
— Asymmetric (public key) cryptographic operations such as modular
exponentiation to support RSA, Diffie-Hellman, DSA.
— “True” random number generation.
This allows for cryptographic protocols such as IPSec and SSL to offload computeintensive cryptographic operations, freeing up the IA core to execute higher-value
application code.
• Software is provided which adapts between the Cryptographic API and that
expected by the industry-standard OpenBSD Cryptographic Framework (OCF). This
OCF “shim” allows applications — such as Openswan* and OpenSSL* —which are
written to use the OCF APIs, to seamlessly take advantage of the cryptographic
acceleration engine.
Note: The EP80579 security software release package version 1.0.3 does not
support OpenBSD/FreeBSD Cryptographi c Framework (OCF), OCF-Linux, or
any open source projects such as Openswan*, OpenSSL*, or Racoon*. If
your application requires OCF, you must use security software package
version 1.0.2 which includes shim software to enable OCF support.
Security Software—Introduction
§ §
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
QuickAssist Technology Cryptographic API Architecture Overview”
§ §
August 2009PG
Order Number: 320183-004US11
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
2.0Silicon Overview
2.1What’s New in this Chapter
No updates in this release.
2.2High Level Overview
The Intel® EP80579 Integrated Processor is a System On a Chip (SOC), integrating the
®
Architecture core processor, the Integrated Memory Controller Hub (IMCH) and
Intel
the Integrated I/O Controller Hub (IICH) all on the same die. In addition, it has
integrated Intel
and packet processing. It also includes three gigabit Ethernet MACs, TDM interfaces,
and PCI Express. See Figure 1 for details.
• As an SOC, the EP80579 integrates the processor and chipset as follows:
— The IA-32 core is based on the Intel
1200MHz, with a 256 Kilobyte 2-way level 2 (L2) cache.
— The IMCH provides the main path to memory for the IA core and all peripher als
that perform coherent I/O (for example, the PCI express, the IICH, as well as
transactions from the Acceleration and I/O Complex to coherent memory).
— The IICH provides a set of PC platform-compatible I/O devices that include two
SATA 1.0/2.0, two USB 1.1/2.0 host controller supporting two USB ports, and
two serial 16550 compatible UART interfaces.
•The Intel
Complex (AIOC), are as follows:
— The Security Services Unit (SSU) provides acceleration of cryptographic
processing for most common symmetric cryptography (cipher algorithms such
as AES, 3DES, DES, (A)RC4, and messages digest/hash functions such as MD5,
SHA-1, SHA-2, HMAC, etc.); asymmetric cryptography (modular
exponentiation to support public key encryption such as RSA, Diffie-Hellman,
DSA); and true random number generation.
— The Acceleration Services Unit (ASU) includes packet processing acceleration
engines.
• Other components within the AIOC include:
— Three Gigabit Ethernet (GbE) media access controllers (MACs).
— Three High Speed Serial (HSS) interfaces that support up to 12 T1/E1 TDM
interfaces. These interfaces are driven by a Programmable I/O Unit (PIU). The
PIU is not part of the ASU. In Figure 1 on page 13, the PIU is shown as the TDM
Interface block.
— Although not shown explicitly in Figure 1, the AIOC also contains logic to allow
agents to access on-chip SRAM and external DRAM. Based on registers which
can be configured in the BIOS, this logic routes requests to external DRAM
either directly to the memory controller (to access non-coherent DRAM, or
NCDRAM); or through the IMCH for coherency with the IA processor’s L2 cache
(to access Coherent DRAM, or CDRAM). There is also a ring controller, which
®
QuickAssist Technology, which provides acceleration of cryptographic
®
QuickAssist T echnology components, housed in the Acceleration and I/O
Security Software—Silicon Overview
®
Pentium® M processor, and runs at 600-
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
12Order Number: 320183-004US
Silicon Overview—Security Software
provides 64 rings (circular buffers) that can be used for message passing
between software running on the IA core and firmware running on the ASU.
These features are described in detail in later sections of this document.
Figure 1.Intel® EP80579 Integrated Processor with Intel® QuickAssist Technology
Block Diagram
Acceleration
Ser v ic e s Un it
Security
Ser v ic e s Un it
(3DES, AES, (A)RC4,
MD5, SHA-x, PKE,
TRNG)
‡
‡
Local
Expansion
Bus
(16b @
80 MHz)
MDIO
(x1)
CAN
(x2)
SSP
(x1)
IEEE-1588
TDM
Interface
(12 E1/ T1)
GigE
‡
MAC
GigE
MAC
#2
#1
256 KB
ASU SRAM
Acceleration and I/O Compl ex ‡ Enabling software required.
IA Complex
IA-32 core
L2 Cache
IMCH
Transparent
PCI -to-P CI Br idge
(256 KB)
Memor y Controller HubFSB
EDMA
IICH
APIC, DMA, Timers, Watch Dog
Timer, RTC, HPET (x3)
PCI
Express
SPI
LPC1.1
SATA 2.0
(x2)
USB 2.0
(x2)
UART
GPIO
SMBus
(x2)
(x36)
(x2)
Interface
(x1)
(Gen1,
1x8, 2x4 or
2x1 root
complex)
Memor y Controller
(DDR-2 400/ 533/667/800 ,
64b with EC C)
GigE
MAC
#0
§ §
August 2009PG
Order Number: 320183-004US13
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
3.0Software Overview
This chapter presents the high-level architecture of the Software for Intel® EP80579
Integrated Processor product line, using concepts from the "4+1 view model" of
software architecture, as described in [4+1]. These views are interpreted as follows:
• Section 3.3, “Logical View” on page 15 describes the collection of software
components in terms of their key responsibilities, interfaces, and dependencies.
• Section 3.4, “Development View” on page 17 describes the static organization of
the software in its development environment (that is, folders and files).
• Section 3.5, “Process View” on page 18 captures concurrency and synchronization
aspects of the architecture. This includes the mapping of software onto hardware,
reflecting the distributed aspect of the architecture; this is sometimes considered
part of the Physical or Deployment View.
• Section 3.6, “Deployment View” on page 18 describes the mapping of the software
into kernel modules.
• The architecture is illustrated with a few selected use cases or scenarios which
become a fifth view, the Scenario View. In this document, the Scenario View is
described in Part 2, “Using the API” on page 41.
Security Software—Software Overview
Before looking at these views, however, other concepts relevant to the architecture are
introduced:
• Section 3.2, “Shared Memory Allocation” on page 14 describes the concepts of
coherent and non-coherent DRAM.
3.1What’s New in this Chapter
• Section 3.3.5: New Note explaining cryptographic framework “shim” support.
3.2Shared Memory Allocation
Two regions of memory exist outside of the normal operating system DRAM, to
facilitate communications between the IA core and the EP80579 with QuickAssist
hardware. These are referred to as the coherent and non-coherent shared memory
regions.
These shared memory regions will be allocated from the available system memory,
starting at the address specified by the Top Of Low Memory (TOLM) register of the
Memory Controller Hub (MCH) downwards. The pre-boot firmware (BIOS) informs the
operating system of the location of the regions, and also configures the hardware to
properly decode the non-coherent memory space by writing the MENCBASE and
MENCLIMIT registers.
The base addresses for each of these regions will be determined by the firmware based
on available memory. Two EFI NVRAM (non-volatile RAM) v ariables are available for the
user to request a specific amount of space for each of these shared memory regions.
The firmware will make a best effort to accommodate the user’s request, but in the
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
14Order Number: 320183-004US
Software Overview—Security Software
event this is not possible, the firmware will determine the sizes of these regions and set
them accordingly. See Chapter 8.0, “ASD Hardware Services” for details on how this is
configured.
3.3Logical View
At the highest level, the software components fall into the following “layers”, as
illustrated in Figure 2.
In this document, and for this release, only those layers highlighted in bold are
described in more detail.
Figure 2.Software for Intel
®
EP80579 Integrated Processor product line
Customer Application
OS Stack or Ecosystem Middleware Layer
Standard OS
Drivers and
PreBoot
Firmw a re
Custom Drivers
Hardw a re
Access A PIs
Hardw a re
Access
Libraries
Acceleration APIs
Acceleration Access Layer
Acceleration Firmw are La yer
Platform h ard w are
Shim Layers
Acceleration Su bsy stem
3.3.1Acceleration Firmware Layer
This layer of the architecture is for firmware which runs on the ASU.
The only firmware running at this layer in this software release is the firmware driver
for the SSU, which runs on the ASU. This firmware is provided in binary format.
3.3.2Acceleration Access Layer and Acceleration APIs
This layer of software runs on the IA core. It implements the configuration and control
of the Acceleration Firmware layer running on the ASU, and provides an Application
Programming Interface (API) for the rest of the system to interface with the
acceleration firmware.
Acceleration
System Driver
Infrastructure
Figure 3 shows the different components at this layer. The APIs are also shown to
highlight the mapping between APIs and the corresponding acceleration libraries.
August 2009PG
Order Number: 320183-004US15
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
Figure 3.Acceleration Access Layer and Acceleration APIs
Security Software—Software Overview
Cryptographic
(LAC) API
Lookaside
Crypto Access
Layer
QAT- AL
Infra stru ctu re
DCC
API
Debug
Infrastructure
The software components at this layer in the current release are as follows:
• Lookaside Crypto Access Layer: This component implements the Cryptographic API
(shown as LAC API in Figure 3). It manages the exchange of data and messages
between the Cryptographic API and the SSU driver firmware running on the ASU.
See Chapter 4.0, “Intel® QuickAssist Technology Cryptographic API Architecture
Overview” for more details.
• QAT Access Layer: This component implements the configuration and control of the
SSU driver firmware running on the ASU. It also provides an interface for the
Lookaside Crypto Access Layer to communicate with the SSU driver firmware. See
Chapter 5.0, “QAT Access Layer Architecture Overview” for more details.
• Debug Infrastructure: This component provides access to data which can be used
to help debug an application running on EP80579 with QuickAssist. It allows
version information to be queried, “liveness” of components to be polled, data
dumps to be generated which can be analyzed offline, and other debug-related
features. See Chapter 6.0, “Debug Component Architecture Overview” for more
details.
Note: The Data Dump feature is not supported in the current software release.
Most of the layers above also provide APIs. These are described in more detail in the
chapters which comprise Par t 2:“Using the API” on page 41.
3.3.3Infrastructure
This layer consists of the following components:
• The Hardware Services Layer (HSL) component manages the low-level hardware
blocks required for communication with the ASU. This also provides an interface for
exchanging messages with the ASU via rings.
• The Operating System Abstraction Layer (OSAL) component provides OS-specific
services. It is used by many of the components to remove their dependency on a
particular OS and allow for easier porting to new OSes.
3.3.4Acceleration System Driver (ASD)
The ASD is a system device driver which is responsible for loading firmware and
configuring all the components that comprise the EP80579 security software. It
initializes the Cryptographic API Library, providing it with all necessary information
about the enumeration of the Acceleration Services Unit and any Access libr ary specific
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
16Order Number: 320183-004US
Software Overview—Security Software
configuration parameters for example number of sessions to be supported, buffer pool
sizes, and so on. See Chapter 7.0, “ASD Module Architecture Overview” for more
details.
3.3.5Shim Layers
Note:The EP80579 security software release package version 1.0.3 does not support
OpenBSD/FreeBSD Cryptographic Framework (OCF), OCF-Linux, or any open source
projects such as Openswan*, OpenSSL*, or Racoon*. If your application requires OCF,
you must use security software package version 1.0.2 which includes shim software to
enable OCF support.
This layer is intended for components which adapt, or “shim”, between the API pro vided
by EP80579 security software’s Acceleration API and that expected by industrystandard frameworks.
In this release, the only component in this layer is the OCF shim, which allows the
lookaside crypto acceleration engine to be plugged in underneath the OpenBSD*/
FreeBSD* Cryptographic Framework (OCF). OCF is a service virtualization layer that
facilitates asynchronous access to cryptographic hardware accelerators. OCF-Linux is a
port of this framework to Linux. It enables cryptographic acceleration in the
Openswan* and OpenSSL* software suites.
A driver has been created which enables the Cryptographic API features to be accessed
via OCF. All operations supported by OCF today are accelerated. Specifically, the
following operations provided by OCF are accelerated by the OCF shim:
See the [GET_STARTED_GD] for your operating system for detailed information.
Further information on OCF-Linux can be found here: http://ocf-linux.sourceforge.net
3.4Development View
Table 4 describ es the mapping between the software components described in
Section 3.3, “Logical View” on page 15, and the files and directories (folders) in which
they can be found.
August 2009PG
Order Number: 320183-004US17
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
(part of Hardware Services Layer)
Operating System Abstraction LayerAcceleration/library/icp_utils/OSAL
Firmware Driver for SSUAcceleration/firmware
3.5Process View
This section describes the context in which the EP80579 security software code is
executed, which is important in terms of understanding concurrency, or where locking
may be required, for example.
Code which implements the Acceleration APIs is library code, and is executed in the
context of whatever thread or interrupt context from which it is called. All of the
EP80579 security software APIs document the context in which they can be called,
specifically whether they may sleep and therefore are suitable for calling in a context
which may not sleep, such as ISRs or certain types of "bottom halves" including softirq
and tasklet. They also document whether they are thread-safe. Table 1, “Related
Documents and Sample Code” on page 8 lists the API documentation supported in this
release.
The remainder of EP80579 security software code runs in a well-defined context,
whether it is process context or some form of interrupt context as described below.
• Interrupt handlers are registered for all interrupts from devices managed by
EP80579 security software, specifically the GbE MACs, and the ring controller on
the ASU. This code runs in the ISR (interrupt top half) context.
• Many of the Acceleration APIs support one or both of asynchronous and
synchronous modes.
— In asynchronous mode: when the request has been carried out on the SSU, a
“function completion callback” is typically invoked in a non-sleeping bottom half
context (specifically, a tasklet, on Linux). For more on this topic, see
Section 10.0, “Programming Model” on page 43.
— In synchronous mode: when the request has been sent to the SSU, the calling
thread is blocked, pending on a wait queue. When the response is received
from the SSU, the calling thread is de-queued, and thereby unbocked.
3.6Deployment View
Table 5 describes the mapping between the software components described in
Section 3.3, “Logical View” on page 15, and the kernel modules that are created by the
build system.
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Management Interface Module
Note: This is an optional kernel module, needed only if you are using the
debugmgr command line utility described in Chapter 11.0,
“Debugging Applications.”
§ §
August 2009PG
Order Number: 320183-004US19
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
Security Software—Intel® QuickAssist Technology Cryptographic API Architecture Overview
4.0Intel® QuickAssist Technology Cryptographic API
Architecture Overview
4.1What’s New in this Chapter
No updates in this release.
4.2Feature List
The Intel® QuickAssist Technology Cryptographic API comprises two broad feature
areas in its API, they are the symmetric operations API and the public key cryptography
API.
4.2.1Symmetric Operations
4.2.1.1Cipher
EP80579 security software supports the following Cipher algorithms:
• AES (128-bit/192-bit/256-bit key size) in ECB, CBC and CTR modes. Block size for
data is 16 byte blocks.
• 3DES (192-bit key size) in ECB and CBC and CTR mode. Block size for data is
8bytes.
• DES (64-bit key size) in ECB and CBC mode. Block size for data is 8 bytes.
• ARC4 (stream cipher)
• NULL cipher with a minimum block size of 8 bytes
4.2.1.2Hash/Authentication
EP80579 security software supports the following Hash/Authentication algorithms:
• Authentication algorithms for Secure Hash supported HMAC-SHA-1, HMAC-SHA224/256/384/512
• Message Digest 5 (MD5) and HMAC-MD5
• Advanced Encryption Standard (AES) using 96-bit key in AES-XCBC mode to
produce AES-XCBC-MAC-96.
4.2.1.3Partial Packets for Cipher and Hash/Authentication Commands
A partial packet is defined as a portion of a full packet. The caller issues a separate
request for each portion (partial packet) of the full packet. The size of data sent must
be a multiple of the underlying algorithm block size for cipher and hash requests except
for the final hash partial packet in which padding will be applied if it is not a block size.
The final result following completion of all the portions is equivalent to the case where
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
20Order Number: 320183-004US
®
Intel
QuickAssist Technology Cryptographic API Architecture Overview—Security Software
the operation is performed over the full packet in a single request. Partial-packet
support is provided for Lookaside Cipher and Hash/Authentication commands only.
Partial-packet support is not provided for any other commands.
The authentication result is not available until after the “final” operation has completed.
The user provided callback will be called in all the cases.
From a user’s perspective, partial packets allow the client to send data to be processed
when they receive it instead of buffering up an entire message. For example, consider
the scenario where a digest needs to be created across gigabytes of data which is being
accessed over a network interface. Rather than copying the entire data set to the
platform, then performing a hash operation across all of the data, the client application
could optimize this process by transferring blocks which are optimal for the network
interface, then sending these chunks to the Lookaside security service for processing as
they are received. This results in higher performance as the acceleration is being
utilized while the transfers are being processed.
4.2.1.4Out-Of-Place Operation Support
An Out-of-Place operation is when the result of a symmetric operation is written to the
destination buffer. The destination buffer is a different physical location than the source
buffer.
Note:In the current release, Out-of-Place operations are supported for full packets only.
Chained commands perform a cipher and a hash/authentication operation on the same
input data. These commands are provided to allow more-optimal overall performance
by minimizing the number of memory reads/writes for applications that require both
cipher and hash/authentication operations on the same data. Only standard Cipher and
Standard Hash/Authentication can be chained.
The algorithms mentioned in the Cipher and Hash/Authentication sections can be
placed in any combination of one standard cipher and one standard hash / authenticate
command. Combined Cipher and Hash Commands do not support partial packets.
When performing an authentication/hash prior to a cipher operation using the
combined Cipher-Hash feature, the resultant MAC/digest produced by the
authentication/hash cannot be included in the same cipher operation. The result of the
authentication/hash operation will not be available for the cipher portion of the
operation. This makes this feature unsuitable for SSL type authenticate-then-encrypt
operations, where the MAC is included in the encryption.
4.2.1.6Authenticated-Enc ryption Commands
Authenticated-Encryption commands perform chained cipher-and-authenticate
operations. As in the case of other chained operations, these commands are provided
to allow more-optimal overall performance by minimizing the number of memory
reads/writes for applications that require both cipher and authentication operations on
the same data.
The following Authenticated-Encryption algorithms are supported:
• AES algorithm in Galois/Counter mode (GCM)
• AES algorithm in Counter with CBC-MAC mode (CCM)
No partial packet support is provided for authentication encryption commands.
August 2009PG
Order Number: 320183-004US21
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
Security Software—Intel® QuickAssist Technology Cryptographic API Architecture Overview
4.2.1.7Key Generation
EP80579 security software supports the following Key Generation operations:
•SSL/TLS Key Generation
•MGF Mask Generation
4.2.2Random Number
EP80579 security software supports the following Random Number operations:
• Random Data Generation
• Random Data Generator Seed (performed automatically by the hardware)
4.2.3Public Key Operations
4.2.3.1Diffie-Hellman
EP80579 security software supports the following Diffie-Hellman operations:
EP80579 security software supports the following RSA operations:
•RSA Key Generation
•RSA Encryption/Decryption
• RSA Signature Generation/Verification
4.2.3.3DSA
EP80579 security software supports the following DSA operations:
• DSA P, G and Y parameter generation.
• DSA Signature Generation/Verification
4.2.3.4Prime Number
EP80579 security software supports the following prime number operations:
• Prime Number Tests (using GCD, Miller-Rabin, Lucas and Fermat)
4.2.3.5Large Number
EP80579 security software supports the following large number operations:
• Modular Exponentiation
•Modular Inversion
4.3Intel® QuickAssist Technology Cryptographic API
Documentation
Refer to [CRYPTO_API] for more information about the Intel® QuickAssist Technology
Cryptographic API.
®
EP80579 Software for Security Applications on Intel® QuickAssist Technology
Intel
PGAugust 2009
22Order Number: 320183-004US
®
Intel
QuickAssist Technology Cryptographic API Architecture Overview—Security Software
4.4Lookaside Security Algorithms High Level Overview
The following sections provide a high level overview of the algorithms supported by the
Cryptographic API library. It details the algorithms and tries to pull out key details of
the computations. For the reader who wants to get further details or specifics, it is
recommended to reference the relevant RFC.
4.4.1Lookaside Symmetric Overview
A block cipher is a symmetric key cipher that operates on fixed-length groups of bits,
termed blocks, with an unvarying transformation. When encrypting, a block cipher
might take a (for example) 128-bit block of plaintext as input, and output a
corresponding 128-bit block of ciphertext. The exact transformation is controlled using
a second input — the secret key . Decryption is similar; the decryption algorithm takes a
128-bit block of ciphertext together with the secret key, and yields the original 128-bit
block of plaintext.
To encrypt messages longer than the block size (128 bits in the above example), a
mode of operation is used.
The simplest of the encryption modes is the electronic codebook (ECB) mode, in
which the message is split into blocks and each is encrypted separately, as shown in
Figure 4. The disadvantage of this method is that identical plaintext blocks are
encrypted to identical cipher text blocks; it does not hide data patterns. Thus, in some
senses it doesn't provide message confidentiality at all, and is not recommended for
cryptographic protocols.
Figure 4.Electronic Codebook (ECB) Mode
Plaintext block [0]
(64/128 bits)
Key
(64 bits for DE S
128, 192 and
256 bits for
AES)
Encryption
Ciphertext block
[0]
(64/128 bits)
In cipher-block chaining (CBC) mode, each block of plaintext is XORed with the
previous ciphertext block before being encrypted, as shown in Figure 5. This way, each
ciphertext block is dependent on all plaintext blocks up to that point.
Key
(64 bits for DES
128, 192 and
256 bits for
AES)
Plaintext blo ck [1]
(64/128 bits)
Encryption
Ciphertext block
[1]
(64/128 bits)
August 2009PG
Order Number: 320183-004US23
Intel® EP80579 Software for Security Applications on Intel® QuickAssist Technology
Loading...
+ 53 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.