Недавно я переписывал цикл предотвращения столкновений ISO 14443-3 и обнаружил, что на самом деле он неправильно определен в стандарте.
Пример: две карты в поле войдут в цикл предотвращения столкновений:
uid карты = AB CD EF GH IJ KL xx xx xx (10 байт / UID тройного размера)
uid карты = AB CD EF 88 GH IJ KL (7 байт/UID двойного размера)
Они оба попадут на уровень каскада предотвращения столкновений 2, где:
будет передавать: UID CL2 = 88 GH IJ KL - поскольку 88 является тегом каскада, указывающим, что его UID длиннее
будет передавать: UID CL2 = 88 GH IJ KL - как его фактический UID
=› нет коллизии.
PCB отправит SELECT, и обе карты ответят SAK, где будет коллизия во втором бите.
Стандарт ISO/IEC 14443-3 ничего не говорит о запрете uid[3] быть 0x88, только uid[0] запрещено иметь 0x88.
Я прав или я что-то пропустил? Я знаю, что очень мала вероятность (1 : 2^56) того, что две такие карты появятся на поле одновременно. Но все же это неправильно (и гендиректор компании, в которой я работаю, обязательно придет посмотреть, что мы делаем с двумя такими карточками в кошельке).
Ответ 1 · рейтинг 6 · Michael Roland
Вы явно не имеете в виду последнюю версию стандарта ISO/IEC 14443-3. Эта проблема существовала в версии стандарта 2001 г. и была исправлена в Поправке 1 (в 2005 г.) путем добавления пункта:
Значение '88' каскадного тега CT не должно использоваться для uid3 в UID двойного размера.
Я ожидаю (хотя и не проверял), что это относится и к версии стандарта 2011 года.
Ответ 2 · рейтинг 2 · Marcus Müller
Как то, что происходит с p = 2 ^ -56, не подходит для использования в стандарте беспроводной связи? Вероятность возникновения шума, нарушающего любую коммуникацию, вероятно, намного выше!
Следовательно: Практические стандарты имеют практические последствия. Посмотрите, например, на хеш-функции. Очевидно, что ни один хэш не свободен от коллизий, пока хэш короче хэшированных данных, но вероятность того, что что-то случайно изменит хешированные данные на ложные данные с тем же хешем, настолько мала, что на практике ею можно пренебречь. Криптография зависит от злоумышленника, а не от чистой удачи, находящей правильный ключ с первой попытки; машиностроение - это все "о, все эти атомы железа расположены в аккуратной металлической сетке, поэтому вероятность разрушения кристалла, проходящего через всю стальную балку, поддерживающую этот небоскреб, действительно очень мала".
2^-56 действительно очень мало.