Every component of our PC, from the CPU to the GPU to the Network Adapter, has a unique serial number. Windows runs a mathematical formula on each serial number and creates a hash, in a way that it is impossible to find the original serial number from the hash (a one-way hash).
Between four and ten bits are used from each component's hash, depending on the part.
Component Name |
Example Hash Value (#o of bits) |
Display Adapter |
00010 (5) |
SCSI Adapter / SAS adapter |
00011 (5) |
IDE Adapter / SATA Adapter |
0011 (4) |
Network Adapter MAC Address |
1001011000 (10) |
RAM Amount Range (i.e. 0-64mb, 64-128mb, etc) |
101 (3) |
Processor Type |
011 (3) |
Processor Serial Number |
000000 (6) |
Hard Drive Device |
1101100 (7) |
Hard Drive Volume Serial Number |
1001000001 (10) |
CD—ROM / CD-RW / DVD-ROM / DVD-RW |
010111 (6) |
"Dockable" |
0 (1) |
Hardware Hash version (version of algorithm used) |
001 (3) |
Only internal PC components count, not peripherals, such as the monitor, keyboard/mouse, USB devices, etc.
From all the above Hash values, through an algorithm, an 8bit HWID is created.
On Windows activation through the Internet, a "handshake request" is sent to Microsoft. This request contains the product ID, the HWID, the activation technology version, and the request header data, with a request ID that ties all the information together.
Through the Windows activation, the product ID (which represents the unique product key) is tied to the particular hardware ID on Microsoft's servers. This prevents the product key to be reused for Windows activation on a different PC.
The one-way hashing for the HWID guarantees our anonymity. It is impossible to identify our hardware components' serial numbers from the information that is sent to Microsoft.
If the Windows activation is successful, the confirmation is sent back to our PC as a digital certificate, signed by Microsoft.