CMC (Cipher-based Message authentication Code) is a tweakable block cipher mode that provides strong pseudorandom permutation properties. It processes messages by using two keys and a universal hash function, providing security even for variable-length inputs without padding.
| Property | Value |
|---|---|
| Category | Cipher Modes |
| Sub-category | Tweakable Block Cipher Mode |
| Security status | π§ͺ Experimental |
| Complexity | Research |
| Inventor | Shai Halevi, Phillip Rogaway |
| Year | 2003 |
| Origin | πΊπΈ United States |
| Source | algorithms/modes/cmc.js |
| Flag | Value |
|---|---|
RequiresIV |
No |
Status: π§ͺ Experimental
| Issue | Description | Mitigation |
|---|---|---|
| Research Status | CMC mode is primarily of academic interest and has not seen widespread deployment. Implementation complexity is high compared to standard modes. | β |
| Key Management | Requires careful management of two independent keys and secure universal hash function implementation. | β |
1 vector ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 β CMC test - single block (AES-128)
| Field | Value |
|---|---|
cipher |
AES |
key |
2b7e151628aed2a6abf7158809cf4f3c |
key2 |
603deb1015ca71be2b73aef0857d7781 |
tweak |
000102030405060708090a0b0c0d0e0f |
input |
6bc1bee22e409f96e93d7e117393172a |
expected |
43de4eab2b81981eda9088dd9807829a |