On Sep 19, 2005, at 3:12 PM, Hawaii Linux Institute wrote:
Brian Chee wrote:
The PODS project . . . now going to a Mini-ITX motherboard to
create embedded
systems with no moving parts.
Interesting info. The mini-itx always fascinates me.
Recently, VIA has begun selling its C7- and C7-M series CPUs, each
of which comprises an x86 processor and an encryption-coprocessor.
This new family of CPUs may greatly tip the balance b/t FreeNX and
LTSP, more in favor of the former (in that the coprocessor relieves
the main CPU from doing the encryption chores required by FreeNX).
With VMWare, the main Linux box can actually double as a Windows
server. (Or ???) Wayne
The VIA encryption instructions (its really not a co-processor, per-
se), which VIA has named "Padlock ACE", have been available for quite
a while now.
Padlock ACE contains several sub-systems, not all of which are
available on every processor (or stepping of a given processor.)
VIA introduced the Nehemiah processor core in January 2003. This CPU
included a hardware random number generator (RNG). The subsystem was
simply
known as "Padlock" (no ACE).
VIA processors featuring cores from the C5P Nehemiah core onwards
integrate VIA's Advanced Cryptography Engine (this is the ACE part)
that can encrypt or decrypt data at a sustained rate of 12.8 gigabits
per second (Gb/s). The downside is that only AES (The FIPS-standard
"Advanced Encryption Standard", which replaces DES) is supported an
only at three key lengths (128-bits, 196-bits, and 256-bits).
This is faster than any known commercial AES hardware implementation,
and several times faster than software implementations running on P4
or Athlon/Opteron CPUs.
One popular C5P based part is the Eden N.
VIA processors based on the ‘Esther' core include a Montgomery
Multiplier, supporting key sizes up to 32K in length, used to
accelerate the computational throughput of public key cryptography,
such as RSA algorithms. The Esther core can also accelerate SHA-1
and SHA-256 "secure hash" algorithms.
As far as I'm aware, the only additional security function found in
the C7 and C7-M processors is VIA's "NX Execute Protection", a
hardware memory protection scheme used to prevent some "buffer
overflow" attacks.
Back to the "its not a co-processor" bit. These enhancements are
provided by new, VIA-specific instructions, with the exception of the
h/w RNG which provides a set of on-die 'buffers' into which the CPU
constantly stuffs new random bits. Software can come along and
'harvest' a bunch of bits as it needs, with zero impact to the
executing program, by running the 'xstore' instruction.
For a more technical bent (and support my assertions above) quoting
http://www.logix.cz/michal/doc/article.xp/padlock-en
If the model is 9, your CPU has a Nehemiah core; if the model is
10, it has an Esther core. The stepping denotes a revision of each
model. You can find your processor's version in /proc/cpuinfo.
Nehemiah stepping 3 and higher offers an electrical noise-based
random number generator (RNG) that produces good random numbers for
different purposes. The instruction for accessing the RNG is called
xstore. As in Intel and AMD processors, the random number generator
in VIA processors is supported by the hw_random device driver.
Nehemiah stepping 8 and higher contains two independent RNGs and
the Advanced Cryptography Engine (ACE). The ACE can encrypt and
decrypt data using the Advanced Encryption Standard (AES) algorithm
with three standard key lengths-128, 192 and 256 bytes-in four
different modes of operation: electronic codebook (ECB), cipher
block chaining (CBC), cipher feedback (CFB) and output feedback
(OFB) modes (see the on-line Resources). The appropriate
instructions are called xcryptecb, xcryptcbc and so on. Later in
this article, I predominately use their common group name, xcrypt,
instead of the mode-specific instruction names.
Esther stepping 0 and higher inherited two RNG units from Nehemiah.
ACE was extended with counter (CTR) mode support and MAC (Message
Authentication Code) computation. And there are two new acronyms,
PHE and PMM. PadLock Hash Engine (PHE) is used for computing a
cryptographic hash, also known as a digest, of a given input block,
using the SHA1 or SHA256 algorithm. The proposed instruction name
is xsha.
The PadLock Montgomery Multiplier (PMM) is responsible for speeding
up one of the most time-consuming computations used in asymmetric,
or public-key, cryptography: AB mod M, where A, B and M are huge
numbers, usually 1,024 or 2,048 bits. This instruction is called
montmul..
The 2.6.11 kernel provides support for most of Padlock/ACE out of the
box. I think most modern OpenSSL libraries also have support for
Padlock/ACE. Most modern ssh implementations will support a Padlock/
ACE engine, if present, and I can't think of any reason why LTSP
couldn't run over an SSH tunnel, providing most, if not all of the
benefits of FreeNX's SSL-based encryption.
But all of this is moot until the DOE decides to start putting VIA
powered boxes in front of students, instead of the Intel-powered,
Windows laden crapfest now "approved", possibly because the days of
the power-hungry desktop are numbered and few. The cost of non-
renewable energy isn't going down anytime soon, and conservation is
almost always less expensive than any viable 'alternative energy'
plan. (Solar cells, wind power, and wave energy all require energy
'inputs' to build and maintain the generation and distribution
facilities.)
The Land Cruiser (which will eventually be a hybrid) has a mini-itx
computer mounted in it. Its the box on the right in this (warning:
quite large) photo
http://www.smallworks.com/~jim/LandCruiser/P8280034.JPG
Jim