Не получается расшифровать ключ для навигационной морской карты s63.

Вопросы общего характера по ГИС и дистанционному зондированию, не связанные с конкретным ПО.
Ответить
pavelpasha
Новоприбывший
Сообщения: 2
Зарегистрирован: 13 авг 2019, 23:20
Репутация: 2
Откуда: Новороссийск

Не получается расшифровать ключ для навигационной морской карты s63.

Сообщение pavelpasha » 14 авг 2019, 14:41

Скачал официальный тестовый набор карт (s63) от IHO. К картам прилагается вся необходимая информация для расшифровки. Алгоритм шифрования: blowfish cbc (согласно спецификации S63).

Вводные таковы: НW_ID = "12345", М_КЕY = "10121", USЕRРЕRМIT = "66B5CBFDF7E4139D5B6086C23130 (где первые 16 символов - зашифрованный НW_ID ключем М_КЕY)"

Для проверки алгоритма расшифровал обратно НW_ID из юзерпермита получив "12345", как должно было быть.

Но при попытке расшифровать сам ключ от карты (F81AC653B0AB63B0), который зашифрован HW_ІD(12345) получаю непонятные символы в онлайн сервисе для расшифровки и пустую строку в с++ библиотеке (видимо принимает все данные за padding).
Хотя в итоге должен был получить ключ из 5 символов. Согласно спецификации s63 везде используется одинаковый алгоритм шифрования.
Вырезка из спецификации S63Show
3.2.2 Encryption of Other Protection Scheme Information
The Userpermit and the Cell permit contents are encrypted using a 48-bit key.
3.2.3 Encryption Algorithm – Blowfish
The scheme encrypts all information referenced in 3.1 using the Blowfish algorithm [9]. The algorithm is
unpatented and available in the public domain (___). Blowfish is a block cipher
algorithm that operates on 64 bit (8 byte) quantities. It requires that the data sources must be padded if
they are not a multiple of 8 bytes. The protection scheme uses the “DES in CBC Mode” padding algorithm
defined in [8] whenever any data sources must be padded. This complies with the ECB (Electronic Code
Book) mode of DES [7].
* К сожалению многие ссылки из документа не открываются и что там за padding algoritm defined in [8] посмотреть не удалось. Но исходя из того, что мне удалось расшифровать НW_ID из USЕRРЕRМIT, думаю что как онлайн сервис так и с++ библиотека используют верный pading алгоритм.
Возможно кто-то из форумчан уже имел дело с картами такого стандарта?
Очень удивляет полное отсутствие open-source кода для работы с S63 на различных репозиториях. Нет ни единого примера в сети.

pavelpasha
Новоприбывший
Сообщения: 2
Зарегистрирован: 13 авг 2019, 23:20
Репутация: 2
Откуда: Новороссийск

Re: Не получается расшифровать ключ для навигационной морской карты s63.

Сообщение pavelpasha » 14 авг 2019, 17:39

Сам разобрался. Необходимо было первый байт HW_ID добавить в конец, чтобы получить 48 битный ключ.

Ответить

Вернуться в «Общие вопросы»

Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot] и 1 гость