Add AES-128/192/256 support to secured packet builder (v1.6.0)
- Bundle aes-js as aes-bundle.js (standalone aesjs global), precache in SW (v7) - Add AES-CBC (zero IV, 16/24/32B) + AES-CMAC (SP 800-38B, 8-octet) helpers - genSp(): algorithm dispatch, AES counter hard-block (b5b4 = 10/11 per Rel-18) - Cross-checked AES vectors against pySim OtaDialectSms.encode_cmd - Docs: AES + 3DES deprecation, fix stale SPI1 value table
This commit is contained in:
+22
-14
@@ -267,18 +267,23 @@ CLA = `80` (GlobalPlatform v2.3.1). Команды удалённого упра
|
||||
|
||||
### SPI1 (Уровень безопасности)
|
||||
|
||||
| Значение | Безопасность | Шифрование | Счётчик |
|
||||
Битовое поле SPI1 (TS 102 225 §5.1.1): `b8–b6` — паддинг, `b5–b4` — счётчик, `b3` — шифрование, `b2–b1` — RC/CC/DS.
|
||||
|
||||
| Значение | Безопасность | Шифрование | Счётчик (b5 b4) |
|
||||
|---|---|---|---|
|
||||
| 00 | Нет | Нет | Нет |
|
||||
| 01 | RC | Нет | Нет |
|
||||
| 02 | CC/MAC | Нет | Нет |
|
||||
| 06 | CC/MAC | Да | Нет |
|
||||
| 12 | CC/MAC | Нет | Available |
|
||||
| 16 | CC/MAC | Да | Available |
|
||||
| 22 | CC/MAC | Нет | Check higher |
|
||||
| 26 | CC/MAC | Да | Check higher |
|
||||
| 32 | CC/MAC | Нет | Check +1 |
|
||||
| 36 | CC/MAC | Да | Check +1 |
|
||||
| 00 | Нет | Нет | 00 нет |
|
||||
| 01 | RC | Нет | 00 нет |
|
||||
| 02 | CC/MAC | Нет | 00 нет |
|
||||
| 06 | CC/MAC | Да | 00 нет |
|
||||
| 0A | CC/MAC | Нет | 01 available |
|
||||
| 0E | CC/MAC | Да | 01 available |
|
||||
| 12 | CC/MAC | Нет | 10 higher |
|
||||
| 16 | CC/MAC | Да | 10 higher |
|
||||
| 1A | CC/MAC | Нет | 11 +1 |
|
||||
| 1E | CC/MAC | Да | 11 +1 |
|
||||
|
||||
> **AES требует `b5 b4 = 10` (higher) или `11` (+1)** согласно TS 102 225 §5.1.2 и §5.1.3.1.
|
||||
> Значения `00/01/02/06` (без счётчика) допустимы только для 3DES.
|
||||
|
||||
### SPI2 (PoR)
|
||||
|
||||
@@ -295,15 +300,18 @@ CLA = `80` (GlobalPlatform v2.3.1). Команды удалённого упра
|
||||
|
||||
### Крипто
|
||||
|
||||
- **3DES-CBC** шифрование, ключи 8/16/24 байт
|
||||
- **Retail MAC** (ISO 9797-1 MAC algorithm 3)
|
||||
- **3DES-CBC** шифрование, ключи 8/16/24 байт — устарело с Rel-18, но поддерживается для обратной совместимости
|
||||
- **AES-CBC** шифрование (нулевой ICV, дополнение нулями до 16), ключи 16/24/32 байта (TS 102 225 §5.1.2, KIc `x2`)
|
||||
- **Retail MAC** (ISO 9797-1 MAC algorithm 3) для DES/3DES
|
||||
- **AES-CMAC** (NIST SP 800-38B, усечённый до 8 октетов) для AES (TS 102 225 §5.1.3.1, KID `x2`)
|
||||
- Padding byte: `00` (по умолчанию) или `FF`
|
||||
|
||||
### Ссылки
|
||||
|
||||
- ETSI TS 102 225 V13.0.0
|
||||
- ETSI TS 102 225 V18.1.0
|
||||
- ETSI TS 102 226
|
||||
- ISO 9797-1
|
||||
- NIST SP 800-38B (CMAC)
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user