What is PAX?
PAX is a datapath-scalable, minimalist cryptographic
processor architecture for mobile and wireless information appliances. The
chief design goal of PAX is to enable security processing at high enough
throughputs to fully utilize the high bandwidth connections offered by the
existing and emerging wireless technologies. The next-generation cellular and
WLAN technologies are expected to have data rates as high as 100 Mbps.
PAX is based on a simple RISC instruction set that is
extended with few low-cost instructions and other novel features such as
on-chip tables that allow fast parallel table lookups. Prior to PAX, studies in
this area belonged to one of three distinct classes (see the Bibliography page
for a listing of the works cited). The first of these are the stand-alone
crypto-processors with limited programmability, extending only to a select
group of cryptographic algorithms. CryptoManiac [WWA01] and Cryptonite [OBH03]
are two examples. The second group includes cryptographic accelerators; for
example, a very large multiplier [STK00] to accelerate the integer
exponentiation operations used in RSA. Studies in the third group extend the
instruction set of a general-purpose processor with few new instructions
[BMA00, GK03, FL01]. Ideally, the new instructions should have minimal datapath
impact and low-cost implementations. PAX differs from these approaches because
it is a general-purpose processor designed from scratch and extended with both
low-cost ISA-extensions and more advanced features normally used in
crypto-processors. In this respect, PAX is a combination of the approaches in
the first and third groups above.
Another distinguishing feature of PAX is that it is designed
for low-cost, high-performance security processing in constrained environments.
In contrast with PAX, most of the previous hardware designs are not evaluated
in the context of a complete embedded processor design for wireless appliances,
or they have energy requirements that limit their usefulness in battery-powered
devices. We address both of these concerns in the design and verification of
PAX.
PAX is similar to PLX
in that it is a minimalist RISC-like instruction set with few low-cost
architectural features that provide huge speedups in the target application
set. PAX also has the datapath scalability feature, which was first
introduced in PLX. Datapath scalability allows PAX to exploit more parallelism
than is possible with the more common microarchitectural methods such as
superscalar, VLIW, or subword parallelism. This leads to additional speedups of
4x for symmetric-key ciphers and 10x for public-key ciphers.
We use the mCrypt cipher suite to test and verify the performance of PAX. mCrypt is made up of 25 commonly-used cryptography algorithms; in particular it includes algorithms that are
desirable in mobile and wireless environments such as Elliptic Curve Cryptography.
Algorithm descriptions and links to source codes are also given on the mCrypt page.
In addition to architecture definition and performance verification,
we also aim is to provide the source code and the software tools to allow
others to evaluate and improve the PAX architecture. These include an
assembler, a simulator, benchmark applications (mCrypt), and the
hardware definition files for the functional units of a PAX processor. When
these tools are ready for distribution, we will make them available for
download on this page.
We foresee two major application of our work. Due to its low
cost and high-performance, PAX can be directly employed in mobile information
appliances as a small stand-alone RISC processor. Alternatively, PAX extensions
can be added to the base instruction sets of existing general-purpose
processors for higher performance security processing.
PAX is a project of the Princeton Architecture Laboratory for Multimedia and Security (PALMS) at the Department of Electrical Engineering at
Princeton University.