DES with key whitening by Ron Rivest (1984). Uses 64-bit pre/post-whitening keys with standard DES to increase resistance to brute-force attacks. Educational implementation showing key whitening techniques.
| Property | Value |
|---|---|
| Category | Block Ciphers |
| Sub-category | Block Cipher |
| Security status | β Broken |
| Complexity | Intermediate |
| Inventor | Ronald L. Rivest |
| Year | 1984 |
| Origin | πΊπΈ United States |
| Source | algorithms/block/des-x.js |
| Parameter | Supported values |
|---|---|
| Key sizes | 24 bytes (192 bits) |
| Block sizes | 8 bytes (64 bits) |
Status: β Broken
| Issue | Description | Mitigation |
|---|---|---|
| Based on DES | DES-X inherits all weaknesses of DES including small key size and susceptibility to differential cryptanalysis | Use modern block ciphers like AES instead of DES-X |
| Key whitening limitations | While key whitening increases security, it doesnβt address fundamental DES weaknesses | DES-X is obsolete - use AES or other modern ciphers |
5 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β DES-X all-zero key and block (degenerates to the DES all-zero known answer)
| Field | Value |
|---|---|
key |
000000000000000000000000000000000000000000000000 |
input |
0000000000000000 |
expected |
8ca64de9c1b123a7 |
Vector 2 β OpenSSL DES_xcbc_encrypt known answer, block 1
| Field | Value |
|---|---|
key |
f1e0d3c2b5a497860123456789abcdeffedcba9876543210 |
input |
c9ea8fac45660330 |
expected |
846b2914851e9a29 |
Vector 3 β OpenSSL DES_xcbc_encrypt known answer, block 2
| Field | Value |
|---|---|
key |
f1e0d3c2b5a497860123456789abcdeffedcba9876543210 |
input |
ca045e34ec6dba5d |
expected |
54732f8aa0a611c1 |
Vector 4 β OpenSSL DES_xcbc_encrypt known answer, block 3
| Field | Value |
|---|---|
key |
f1e0d3c2b5a497860123456789abcdeffedcba9876543210 |
input |
3c160ffec9cb74e1 |
expected |
15cdc2d7951b1053 |
Vector 5 β OpenSSL DES_xcbc_encrypt known answer, block 4
| Field | Value |
|---|---|
key |
f1e0d3c2b5a497860123456789abcdeffedcba9876543210 |
input |
73a2b0f7951b1053 |
expected |
a63c5e03b21aa3c4 |