TEALEAF-USB HEXWAX, TEALEAF-USB Datasheet - Page 6

TEAleaf-USB Authentication System

TEALEAF-USB

Manufacturer Part Number
TEALEAF-USB
Description
TEAleaf-USB Authentication System
Manufacturer
HEXWAX
Datasheet

Specifications of TEALEAF-USB

Silicon Manufacturer
FirmWare Factory
Kit Application Type
Communication & Networking
Application Sub Type
USB
Lead Free Status / RoHS Status
Lead free / RoHS Compliant
Example:
Setup Pin
The identifier SETUPPIN (0x97) configures a VIO pin.
The command payload has two bytes, which indicate
the pin and the desired configuration, as shown in table
4.
Example:
Interrupt
The Interrupt response is an unprompted message from
the device that an interrupt input transitioned from the
inactive to the active state.
It consists of the identifier INTERRUPT (0x95) and one
payload byte, which is 0x09 if the interrupt occurred on
pin VIO9, or 0x0A if the interrupt occurred on pin VIO10.
It will not be sent while an Authenticate procedure is in
progress.
Get Firmware ID
The identifier GETFWID (0x94) retrieves a zero-
terminated ASCII text string identifying the firmware and
its version number. It will probably need to do so over
several response packets.
Example:
xTEA Algorithm
The xTEA algorithm is a robust Feistel network
proposed by Needham & Wheeler. For details refer to
RM Needham and DJ Wheeler, TEA extensions,
Technical report, Computer Laboratory, University of
Cambridge, October 1997.
The host-side algorithm is presented below as C code:
// unsigned long integers are 32-bit
// unsigned char integers are 8-bit
// Arg pVal is a 2-long array containing your
//
//
//
// Arg pKey is a 4-long array containing key
//
//
//
//
p6 of 8
96
96 02 36
97 18 01
94
94 54 45 41 6C 65 61 66
94 2D 55 53 42 20 30 31
94 2E 30 30 20 28 32 34
94 35 30 29 00 91 D5 7E
VIO10
VIO1
VIO7
VIO8
VIO9
Pin
randomly generated challenge
pVal[0] is challenge bits C31-C0
pVal[1] is challenge bits C63-C0
pKey[0] is the least significant 32 bits
pKey[1] is the next least significant 32 bits
pKey[2] is the next most significant 32 bits
pKey[3] is the most significant 32 bits
Table 4. Get Pin / Setup Pin Payload Structure*
Payload byte 1
0x1A
0x11
0x17
0x18
0x19
Command – Get Analog
Response – V = Vdd * (0x236/0x3FF)
Command – Set VIO8 pin high
Command – Get Firmware ID
26-Aug-10
0x02 = Digital or analog input
0x05 = Low-to-high interrupt
0x06 = High-to-low interrupt
0x01 = Output high
0x00 = Output low
Payload byte 2
“TEAleaf”
“-USB 01”
“.00 (24”
“50)”
TEAleaf-USB
void Encr(unsigned long *pVal, unsigned long * pKey)
{
}
// On exit the TEAleaf’s response must match pVal
//
//
//
The files to TEAleafHost.c and TEAleafHost.hex in the
development kit contain a complete code example for
host applications.
The application HIDconfig.exe in the development kit
pack can generate data for verifying implementations of
the algorithm.
Security
The xTEA algorithm has a very high avalanche effect
and is extremely robust against plaintext and related-key
differential attacks. Data is hashed with random number
values generated by both sides. The non-reversibility of
the random hashing step renders the key uncrackable
as far as is known.
Care should be taken that the host-side algorithm
executable code does not expose the key. It is strongly
recommended that you make unique modifications to
the example source code TealeafHost.c, for example by
obfuscating the key and inserting dummy calculations.
Customization
The product can be customized in one of three ways:
unsigned long sum = 0;
unsigned long delta = 0x9E3779B9;
unsigned char i;
for (i=0; i<32; i++)
{
}
unsigned sa = sum & 0x03;
unsigned long Key2;
Key2 = pKey[sa];
pVal[0] += (( (pVal[1] << 4) ^ (pVal[1] >> 5)) +
sum += delta;
sa =
Key2 = pKey[sa];
pVal[1] += (( (pVal[0] << 4) ^ (pVal[0] >> 5)) +
1.
HW146-8
pVal[0] is response bits R31-R0
pVal[1] is response bits R47-R32
( ignoring 16 highest bits of pVal[1] )
Using the HIDconfig.exe application in the
development kit. This application makes it very
easy to copy the configuration from an existing
product to a new product and is suitable for in-
factory use. (It cannot be used if you have
changed the Vendor ID and / Product ID.)
The 128-bit security key can be set using
HIDconfig.exe, but not read.
settings permanent, use the Write Lock feature.
(sum>>11) & 0x03;
pVal[1] ) ^ (sum + Key2);
pVal[0] ) ^ (sum + Key2);
www.firmwarefactory.com
To make new

Related parts for TEALEAF-USB