|
As
shown in Figure 1. X-Wall Block Diagram, the cipher used is a synchronous
DES cipher (1
cycle) |
|
|
running
in ECB mode or a 3-cycle pipelined 3DES running in ECB mode with
Streaming FIFO design. |
|
|
3DES
concatenates 3 single DES into one cipher function. The Cipher Engine
has various |
|
|
configurations,
including key length, encryption and decryption, which will all
be specified in the |
|
|
Cipher
Mode Register. Those values should be loaded in through built-in
FLASH |
|
|
|
|
|
 |
|
|
|
|
|
|
Figure
1. X-Wall Block Diagram. |
|
|
|
|
|
Cipher
Key Register stores the Secret Key. The Secret Key is generated
through built-in True |
|
|
Random
Number Generator. The IDE Command Decoder and Interceptor load duplicates
of 1Fx and |
|
|
3F6.
They are then used to determine whether the cipher is in Encryption
(Write Command) or |
|
|
Decryption
(Read Command) mode. |
|
|
|
|
|
|
Flash |
|
|
Flash
has been used as the storage place for device "Secret Keys," encrypted
User's PIN, device |
|
|
Unlock_Key,"
and device operational states. |
|
|
|
|
|
|
CRC
Generator & Comparator |
|
|
Drive
CRC and Host CRC are temporary registers used to compute UltraDMA
data CRC. They should |
|
|
be
initialized at the beginning of the data transfer and be used for
CRC comparison at the end of |
|
|
data transfer. |
|
|
|
|
|
|
Controls
& Interceptor |
|
|
Cipher
Clock Speed Register records the cipher clock. The intent is to
use the PCI clock as the |
|
|
clock
source for the cipher. Hence the cipher clock can be any of the
following two clocks:33 MHz |
|
|
or
66 MHz. Since we do not have a way to dynamically determine the
PCI clock speed, X-Wall |
|
|
uses
one pin to determine the cipher clock speed which in term decides
two different wait states. |
|
|
|
|
|
|
True
Random Number Generator |
|
|
All
cryptographic protocols require the generation and use of secret
values that must be unknown to |
|
|
attackers.
Random Number Generators (RNG) serves as the fundamental building
block of all security |
|
|
operations
as it is required to generate "seeds" for public/private key pairs
for asymmetric algorithms |
|
|
such
as RSA, DSA, and Diffie-Hellman, and to generate secret keys for
symmetric and hybrid |
|
|
crypto-systems.
As security protocols rely on randomness of keys, RNG for cryptographic
|
|
|
applications
must meet very stringent requirements, of which the most essential
is that |
|
|
eavesdroppers
must not be able to make any meaningful predictions about the RNG
outputs. |
|