Протоколы Internet


Смарт-карты EMV - часть 13


/p>

Рис. 4.6.4.9. Структура блока

Кодирование PCB зависит от его типа, оно представлено в таблицах 4.6.4.13-15.

Таблица

4.6.4.13. Кодирование PCB I-блоков

b8

0

b7

Номер по порядку

b6

Цепочка (есть еще данные)

b5-b1

Зарезервировано на будущее

Таблица 4.6.4.14

. Кодирование PCB R-блоков

b8

1

b7

0

b6

0

b5

Номер по порядку

b4-b1

0 – Отсутствие ошибки

1 – EDC и/или ошибка четности

2 – другие ошибки

остальные коды зарезервированы

Таблица 4.6.4.15

. Кодирование PCB S-блоков

b8

1

b7

1

b6

0 – запрос

1 - отклик

b5-b1

0 – запрос повторной синхронизации

1 – запрос размера поля данных

2 – запрос абортирования

3 – расширение BWT-запроса

4 – VPP-ошибка

остальные коды зарезервированы

Поле LEN определяет размер информационного поля и может равняться 0-254. R-блоки не имеют поля данных. Блоки I- и S-типов нумеруются по модулю 2, их число может равняться 0 или 1 (первый блок имеет номер 0). Счетчик нумерации сбрасывается в 0 после ресинхронизации.

Поле EDC представляет собой объединение всех байт блока, начиная с NAD и кончая последним байтом поля INF (если это поле присутствует), с помощью операции исключающее ИЛИ.

Максимальный размер поля данных ICC (IFSC) блока определяется параметром ТА3, присылаемым ICC в отклике на сброс. IFSI может принимать значения 10-FE, что означает для IFSC диапазон 16-254 байта. Максимальный размер поля данных терминала (IFSD) составляет 254 байта.

Время ожидания блока BWT (Block Waiting Time) в общем случае вычисляется согласно следующей формуле. Реально BWT может лежать в диапазоне (971-15371)t.

Когда отправитель намерен передать объем данных больше, чем это определено параметрами IFSC или IFSD, он должен разбить эту последовательность байтов на несколько I-блоков. Передача этих блоков осуществляется с привлечением механизма цепочек. Для объединения I-блоков в цепочку используется бит b6 в PCB (смотри табл. 4.6.4.13). Если b6=0, то это последний блок в цепочке. Если же b6=1, далее следует как минимум еще один блок. Получение любого I-блок с b6=1 должно быть подтверждено R-блоком. Последний блок цепочки, посланный терминалом, подтверждается I-блоком, если получен безошибочно, или R-блоком, при обнаружении ошибки. В случае ICC получение последнего блока цепочки подтверждается R-блоком при обнаружении ошибки. Если ошибки не было, терминал просто посылает очередной I-блок, если должна обрабатываться очередная команда. Передача цепочки возможна в одно и тоже время только в одном направлении. Когда терминал является получателем, он воспринимает цепочки I-блоков, передаваемых ICC, если длина блоков ? IFSD. Если получателем является ICC, карта воспринимает цепочку I-блоков, посланных терминалом и имеющих длину LEN=IFSC, за исключением последнего блока, длина которого может лежать в диапазоне (1-IFSC). Если длина блока > IFSC, ICC такой блок отвергает, послав R-блок с битами b4-b1 в PCB, равными 2.




Начало  Назад  Вперед