User's Manual

22
7 SmartKey's internal structure
The structure of SmartKey dongles entails the use of some internal registers, each with a particular protection function:
Id-Code register
Label register (16 bytes)
Password register (16 bytes)
Secure Data register (64 / 128 / 416 / 896 / 8192 bytes)
Fail Counter register (2 bytes)
7.1 Id-Code register: the personal code
Id-Code is a register programmed in the factory as each dongle is tested, and cannot be modified any more. Every
SmartKey user has a different Identification Code, and the total number of possible codes is 2
32
(equal to about
4,000,000,000).
Id-Code is present in all SmartKey models and ensures that the dongles of different users are securely different from
each other. In fact, it assigns a unique personal code to every owner of the protection dongles.
For reasons of security, the identification code indicated in the Id-Code register is not directly legible, but its value
influences the result of the algorithmic interrogation of the dongle. Different users have different Id-Codes and,
therefore, the relevant dongles provide different answers to the algorithmic interrogation by the protected software.
7.2 Label register: the identification and access label
The Label register contains one of the two codes for accessing the dongle and its function is to identify the correct
dongle for the particular program being executed. In fact, the label is an electronic identification label inside the dongle.
The function of the Label register is particularly important when several SmartKey Parallel dongles are stacked in a
daisy chain on the same parallel port. In fact, in this case, the Label is a kind of address, enabling the protected software
to interrogate the correct dongle. To check the presence of the searched for dongle, the protected software sends the
value of the Label to the parallel port: only the dongle with the coinciding Label will provide an answer.
It is therefore important to assign a different Label to each of your application programs, so that several SmartKey
dongles can be installed simultaneously.
The Label register measures16 bytes (2
128
combinations, equal to 3 10
38
). As the number of combinations is
enormous, it would be impossible for two different software-houses to decide to assign the same Label to their
programs.
By using the programmable dongles (PR, EP, SP, XM and NET), the Label can be programmed off-line with the SPC
utility, by selecting the programming mode, or on-line by means of the supplied software drivers.
For FX dongles, the Label register is fixed and coincides with the Id-Code.
FX
Non-programmable Label Id-Code
PR EP SP XM NET
Programmable Label 16 bytes
Table 4 Table of SmartKeys with non-programmable and programmable Label
7.3 Password register: the data access dongle
The Password
register is extremely important in the protection mechanism, because only if you know how it was
programmed, can you access the data contained in the dongle's non-volatile memory. Similarly to the combination of a
safe, knowing the correct Password will open the dongle and thus provide access to the safe's contents.
The Password register, which measures 16 bytes, can be programmed with the SPC utility, by selecting the
programming mode.
One can never directly read the contents of the Password set in the dongle: access to the Password is possible only in
writing mode during programming.