Страница 1 из 1

Расчет контрольной суммы ключей

Добавлено: 13 фев 2012, 21:45
krupt
Добрый день!
Может кто подскажет, как считается контрольная сумма ключей шифрования ПИН-блока. Они же ключи шифрования ПИН-пада.
После ввода ключей показываются контрольные суммы этих ключей для сверки правильности ввода.
Такой же алгоритм используется и в POS-терминалах. Спасибо.

Re: Расчет контрольной суммы ключей

Добавлено: 13 фев 2012, 22:24
Lucky
krupt писал(а):как считается контрольная сумма ключей шифрования
С какой целью интересуемся?

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 14:22
krupt
Приходится писать самописную фигню для генерации ключей. Для того, чтобы их сверять нужно знать их контрольные суммы.

Добавлено спустя 4 часа 22 минуты 16 секунд:
В документации VISA сказано, что для контроля ключей использются хэши (key check values, hashes or other similar unique values that are based upon the keys or key components) по стандарту ISO 11568. Не могу нигде найти описание этого стандарта. Везде только можно скачать за бабос :sad:
Помогите, пожалуйста.

Добавлено спустя 11 часов 25 минут 39 секунд:
После тяжелых полуночных поисков удалось таки найти эту фиготень. Если кому-то интересно, то могу сюда выложить описание.

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 15:05
Shoroh
krupt писал(а):Если кому-то интересно, то могу сюда выложить описание.
Тоже искал (по вашему запросу), но не нашел. Если не трудно — приложите к теме, пригодится :good:

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 15:54
krupt
Алгоритм следующий.
Берется 16 нулей в 16сс(шестнадцатиричная система счисления или же HEX). 16 hex нулей это 64 бита нулей, т.е. имееем 0000 0000 0000 0000.
В зависимости от длинны ключа делаем следующее:
- Если длина ключа одинарная (16 чисел hex), то нужно закриптовать нули по алгоритму DES (Data Encryption Standart).
- Если длина ключа двойная (32 числа hex), то нужно закриптовать нули по алгоритму 3DES (Triple DES). Первые 16 чисел - это ключи №1 и №3, последние 16 чисел - ключ №2. Криптуем нули DES'ом с ключом №1. Полученный результат раскриптовываем DES'ом с ключом №2. И полученный результат криптуем DES'ом с ключом №3.
- Если длина ключа тройная (48 чисел hex), то делается тоже самое, что в предыдущем, но ключ №1 не равен ключу №3. И ключ №2 - это средние 16 чисел.

Подробнее о криптовании по алгоритму 3DES можно почитать в инете. Я постарался написать понятно. :-)
Продолжим.
Первые 4 - 8 чисел полученного результата после криптования нулей и есть KCV(Key check value), а именно контрольная сумма. Как правило терминалы и банкоматы показывают 4 числа. Где-то бывает 6 чисел, но 8 я не встречал. :good:
Пример:
Ключ одинарной длины 0000 0000 0000 0000.
Результат после криптования DES'ом 16 hex нулей равен 8CA6 4DE9 C1B1 23A7.
Отсюда имеем KCV = 8CA6 или 8CA6 4DE9.
Удачи :hi:

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 16:16
Lucky
krupt а документик/ссылочка где?

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 17:15
AlexandrV
В интернете все есть, например:
http://www.emvlab.org/keyshares/
или поиском
http://www.google.ru/#sclient=psy-ab&hl ... 00&bih=707
первая ссылка
recommended_crypto_methods_071203.zip

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 18:04
duglass
все в принципе так и есть тока это одинарные ключи, а есть еще двойные!
и тут описан тока принцип генерации, потому как на хсм это выглядит по другому!

Re: Расчет контрольной суммы ключей

Добавлено: 14 фев 2012, 21:32
krupt
все в принципе так и есть тока это одинарные ключи, а есть еще двойные!
и тут описан тока принцип генерации, потому как на хсм это выглядит по другому!
Я описал три варианта :-)
recommended_crypto_methods
Именно его я и нашел, но искал я по ISO 11568 поэтому получилось долго. Там есть пункт №6 в нём есть схема расчета. Именно её я и описал выше.

Re: Расчет контрольной суммы ключей

Добавлено: 15 фев 2012, 06:23
Lucky
прикопаю еще пару полезных ссылок :)
1. https://www.pcisecuritystandards.org/pd ... poi_vq.pdf