Домой Новости Радио Карточки Кодграберы Мобилки Телефония АТС Пейджинг Транки Жучки Форум |
|
Интеллектуальный 221-битный счетчик на ЭСППЗУ с объемом более 20000 тарифных единиц с секретной логикой и высокой степени защищенности механизмом аутентификации
104 бита пользовательской памяти полностью совместимой с м/с "IZ4406":
64 битовая область идентификации - 16 бит масочного ПЗУ и 48 бит ППЗУ области персонализации
40 бит область счетчика 133 бита дополнительной памяти
4 бита для функции восстановления при сбое счетчиков
1 бит для инициации второго секретного ключа
16 бит область для пользователя
48 бит первый секретный ключ
64 бит область пользователя или 48 бит для второго секретного ключа
Три функциональных области памяти (ПЗУ, ППЗУ, ЭСППЗУ)
Максимальная емкость счетчика > 20000 единиц
Функции защиты от потери информации в счетчике
Защита транспортным кодом для поставщика
Топология блоков микросхемы отвечающих за функции секретности защищена от физического и электронного анализа
Устройство аутентификации с высокой степенью секретности
случайная входная последовательность
индивидуальный секретный ключ
дополнительный секретный ключ
формирование ответа до 16 бит за 30 мс при тактовой частоте 100 Кгц
Напряжение питания 5 В
Ток потребления не более 5 мА
Время программирования ЭСППЗУ 5 мс
Более 100000 циклов записи/стирания
Хранение информации не менее 10 лет
Расположение контактов и протокол обмена в соответствии со стандартом ISO 7816-3 (синхронная передача)
БИС разработана для использования в телефонных картах с предоплатой. БИС состоит из ЭСППЗУ объемом 221 бит, ПЗУ 16 бит, устройства управления/защиты и специального вычислительного устройства для аутентификации БИС.
ЭСППЗУ/ПЗУ. Используется как счетчик тарифных единиц, а также для хранения данных идентификации, секретных ключей и пользовательских данных.
Адресный счетчик. При каждом фронте сигнала CLK (RST=0) адресный счетчик увеличивает свое состояние на 1. Содержимое соответствующего адреса выдвигается на вывод I/O по спаду сигнала CLK. Операция записи (программирование, бит устанавливается в "О") производится импульсом CLK после импульса RST, при этом адрес не инкрементируется. Установка адресного счетчика в "0"(сброс) производится в соответствии с IS07816-3 (Ответ На Сброс) для синхронного протокола.
Блок программирования. Формирует высокое напряжение для программирования/стирания ЭСППЗУ.
Блок восстановления данных. Соответствующий каждому счетчику бит указывает на возникновение прерывания процедуры формирования переноса в старшую ступень. Эта ситуация может возникать при работе карты с таксофонами не имеющими механического устройства фиксации карты. Этот бит индикатора позволяет восстановить содержимое счетчика при новом включении. Данный блок отсутствует в БИС "IZ4406".
Блок аутентификации. Выполняет секретную процедуру над последовательностью данных и формирует ответ при процедуре индивидуальной аутентификации карты.
Защитный интерфейс. Защищает от пониженной и повышенной рабочей частоты и недопустимых входных уровней сигналов.
Таблица 1. Краткое описание контактов микросхемы
Наименование |
Назначение |
I/O |
Двунаправленная линия данных (открытый сток). Используется как вход только при вводе транспортного кода. |
CLK |
Вход сигнала синхронизации. |
RST |
Вход. Устанавливается в « I» при сбросе микросхемы и при программировании бит. |
VCC |
Напряжение питания. |
Test |
Не используется. |
GND |
Общий. |
Дамп памяти микросхемы имеет организацию 237х1 бит. В соответствии с режимом память может быть использована как ППЗУ, однократно программируемое ПЗУ или как ЭСППЗУ (стирание и программирование). В режиме пользователя только область ключей аутентификации секретна и не может быть прочитана никаким образом. Изменение кода производителя возможно только при изготовлении и тестировании в процессе производства. Адреса 108, 109 и область с 176 адреса по 319 зарезервированы.
После стирания ячейки ЭСППЗУ читаются как логическая "I". Операция записи переводит ячейки в состояние читаемое как логический "0".
Области памяти могут работать в двух режимах: Режим Эмитента и Режим Пользователя. Переход из Режима Эмитента в Режим Пользователя происходит после программирования бита флага персонализации (адрес 64).
Таблица 2. Структура памяти микросхемы функционально разделена па следующие области
|
Адрес |
Режим |
|
Эмитент |
Пользователь |
||
Область идентификации |
|||
16 бит код производителя |
0..15 |
масочноеПЗУ |
|
48 бит данные персонализации |
16..63 |
ППЗУ |
ПЗУ |
Область счетчика |
|||
Пять 8-ми разрядных ступеней счетчика |
64.. 103 |
ЭСППЗУ/ ППЗУ |
|
Флаг персонализации |
64 |
ППЗУ |
ПЗУ("0") |
Защита счетчика от потери переноса |
|||
4 байта для старших ступеней счетчика |
104.. 107 |
ЭСППЗУ |
|
Включение механизма аутентификации с использованием первого ключа |
110 |
ПЗУ("0") |
ПЗУ("1") |
Управление областью данных 2 |
111 |
ППЗУ |
ПЗУ |
Область данных 1 (16 бит) |
112..127 |
ППЗУ |
|
Область первого ключа (48 бит) |
128..175 |
ППЗУ |
недоступна |
Зона для свободного доступа пользователя |
320..383 |
ППЗУ |
|
Область второго ключа (48 бит) |
320..367 |
ППЗУ |
недоступна |
После изготовления БИС защищена секретным Транспортным Кодом (24 бита), который находится в области младших ступеней счетчика. Четвертая ступень счетчика при этом используется как Счетчик Ошибок. Область идентификации и счетчик ошибок доступны по чтению, программирование возможно только счетчика ошибок. Только после корректной верификации Транспортного Кода вся область памяти БИС становится доступной для чтения и программирования. При этом область счетчиков функционально преобразуется в 5-ти ступенчатый счетчик тарифных единиц и становится возможным выполнение процедуры аутентификации.
БИС переходит в этот режим после программирования бита флага персонализации (адрес 64). Область идентификации защищена от дальнейшего программирования, ключи идентификации не могут быть изменены и прочитаны. Область данных 1 и область данных 2 (если не используется ключ аутентификации 2) могут содержать пользовательскую информацию (например, сертификат и телефонные номера).
Счетчик тарифных единиц (биты с 64 по 103) организован как 5-ступенчатый не сбрасываемый счетчик с декадной организацией (каждый бит в пределах одной ступени счетчика имеет одинаковый вес). Каждая ступень счетчика занимает в памяти 8 бит, т.е. может принимать значение от нуля до 8. Так как биты данных в счетчиках инвертированы, то минимальное значение счетчика 11111111, а максимальное - 00000000.
Таблица 3. Описание ступеней тарифного счетчика
Ступень счетчика |
Биты |
Вес одного разряда |
Примечание |
С5 |
64..71 |
4096 |
Старшая, 5-я ступень, очистка (стирание) невозможна. |
С4 |
72..79 |
512 |
4-я ступень, очищается при наличии переноса в 5-ю ступенью. |
С3 |
80..87 |
64 |
3-я ступень, очищается при наличии переноса в 4-ю ступенью. |
С2 |
88..95 |
8 |
2-я ступень, очищается при наличии переноса в 3-ю ступенью. |
С1 |
96..103 |
1 |
Младшая, 1-я ступень, очищается при наличии переноса во 2-ю ступенью. |
Таким образом, максимальная емкость счетчика может составлять:
7*4096 + 8*512 + 8*64 + 8*8 + 8 = 33352
Например, если актив микросхемы составляет 100 тарифных единиц, то значения ступеней счетчика составят:
С5 = 100/4096 = 0 = 00000000
С4 = 100/512 = 0 = 00000000
СЗ = 100/64 = 1 = 00000001
С2 = (100-64*СЗ)/8 = 4 = 00001111
С1 = 100-64*СЗ-8*С2 = 4 = 00001111
В режиме эмитента часть адресного счетчика используется для хранения транспортного кода (Таблица 4). Четвертая ступень счетчика выполняет функцию счетчика ошибок. После корректной верификации транспортного кода ступени счетчика 1..4 должны бать очищены путем выполнения операции переноса в старшую ступень.
Таблица 4. Назначение ячеек счетчика в разных режимах
Назначение |
Адрес |
Режим |
||
Режим эмитента |
Режим пользователя |
Эмитент |
Пользователь |
|
|
5 ступень счетчика |
64..71 |
ПЗУ |
ППЗУ |
Счетчик ошибок |
4 ступень счетчика |
72..79 |
ППЗУ |
ЭСППЗУ |
Транспортный код (байт 1) |
3 ступень счетчика |
80..87 |
недоступна |
ЭСППЗУ |
Транспортный код (байт 2) |
2 ступень счетчика |
88..95 |
недоступна |
ЭСППЗУ |
Транспортный код (байт 3) |
1 ступень счетчика |
96..103 |
недоступна |
ЭСППЗУ |
Подсчет (вычитание) выполняется путем программирования содержащих "1" разрядов счетчика в "О". Если в счетчике соответствующей ступени все разряды запрограммированы в "0" необходимо выполнить перенос в старшую ступень счетчика.
Рисунок 1. Структура счетчика
Процедура переноса состоит из двух выполненных друг за другом операций записи. Первый импульс записи производит программирование в "О" любого содержащего "1" разряда старшей ступени счетчика (перенос), второй импульс записи по этому же адресу очищает все 8 разрядов младшей, по отношению к программируемой, ступени счетчика в "1".
Таким образом, при программировании битов ступеней счетчика (кроме младшей) в микросхеме устанавливается бит переноса. Этот бит позволяет провести стирание младшей, по отношению к программируемой, ступени счетчика. Стирание происходит автоматически при проведении повторной операции записи, как показано на диаграмме 1.
Диаграмма 1
При извлечении карты из считывателя, не имеющего устройства механической фиксации карты, или при возникновении других нештатных ситуаций в момент выполнения операции переноса, может произойти потеря тарифных единиц для пользователя. То есть прерывание работы с карточкой между первым импульсом записи (программирование в "О" бита в одной из старших ступени счетчика) и вторым импульсом записи (стирание 8-ми бит младшей ступени счетчика). Пропуск стирания младшей по значению ступени счетчика приводит к потере числа тарифных единиц равной весу разряда старшей ступени, по отношению к стираемой, так как в старшей уже произведено программирование бита.
На рисунке 1 показано соответствие битов механизма восстановления старшим ступеням счетчика. Стирание и программирование соответствующего бита механизма восстановления возможно только при адресации соответствующей ему ступени счетчика.
Механизм восстановления при потере переноса необходимо включать каждый раз после выполнения адресного сброса путем фиктивного цикла программирования по любому адресу с 8 до 15. При этом бит механизма восстановления программируется всегда при записи в соответствующую ступень счетчика, а стирается всегда вместе с младшей, по отношению к ней, ступенью счетчика. Адресный сброс выключает данный механизм. В БИС "Друид-06" данный механизм отсутствует.
Ниже приведенная временная диаграмма показывает, как выполняется процедура переноса с программированием бита механизма восстановления содержимого счетчика.
Диаграмма 2
Установленный в "О" бит механизма восстановления (адреса 104..107) указывает на пропущенную операцию стирания младшей, по отношению к соответствующей биту ступени счетчика. Таким образом, при стирании ступени счетчика не происходит программирования разрядов старшей ступени.
Механизм восстановления необходимо отключить после выполнения операции перезагрузки путем выполнения адресного сброса. Это необходимо для исключения случайного программирования битов механизма восстановления (не при выполнении процедуры переноса).
Состояние бита механизма восстановления обозначает:
отсутствовал сбой при выполнении операции переноса или механизм восстановления не используется |
|
сбой при выполнении операции переноса, пропущена операция стирания или произошел сбой при программировании бита старшей ступени счетчика |
В зависимости от состояния карты считывателем может быть выполнена одна из следующих процедур:
Операция повторного стирания соответствующей младшей ступени:
выполнить адресный сброс
включить механизм восстановления
установить адрес на любой запрограммированный ("0") бит соответствующей ступени счетчика
выполнить процедуру переноса
В результате данной операции бит механизма восстановления и соответствующая ему младшая ступень счетчика очищаются (диаграмма 3).
Операция очистки бита механизма восстановления:
выполнить адресный сброс
включить механизм восстановления
установить адрес на любой незапрограммированный ("1") бит соответствующей ступени счетчика
выполнить процедуру переноса
В результате данной операции бит механизма восстановления очищаются. В независимости от разрешения работы механизма восстановления бит механизма восстановления очищается всегда при корректном выполнении процедуры переноса.
Диаграмма 3
Как правило, процедура перезагрузки очищает бит механизма восстановления и соответствующую ступень счетчика корректно. Потерянное значение (равное весу разряда старшей соответствующей ступени) восстанавливается для пользователя.
В случае некорректного выполнения операции перезагрузки необходимо убедится в соответствии выполняемых действий данному описанию. Считывающее устройство не должно работать с картой, не выполняющей процедуры очистки бита механизма восстановления.
После изготовления память микросхемы находится в исходном стертом состоянии (единицы). Для предотвращения несанкционированного использования микросхем при изготовлении микросхема защищается записью 24-х разрядного секретного транспортного кода (Режим Эмитента) Значения транспортного кода согласовывается с потребителем. Для его хранения используется область счетчика (ступени 3,2 и 1). 4-я ступень выполняет функцию счетчика ошибок.
В состоянии хранения транспортного кода доступны для чтения область идентификации и счетчик ошибок, для программирования доступен только счетчик ошибок. После корректной верификации транспортного кода вся область памяти становится доступной для чтения и микросхема готова для инициализации.
Ниже приводится процедура позволяющая провести верификацию транспортного кода (Диаграмма 4):
Произвести адресный сброс
Увеличить счетчик ошибок на единицу:
подать импульсы CLK до первого незапрограммированного (=1) бита счетчика ошибок (адрес 72..79)
выполнить операцию программирования этого бита. 3 Начиная с адреса 80 на каждый сигнал CLK подавать на вывод I/O соответствующий бит транспортного кода
подавая импульсы на вход CLK дойти до адреса 80, и установить на выводе I/O первый бит транспортного кода
подавать на каждый сигнал CLK соответствующий бит данных транспортного кода до адреса 103; изменение информации на выводе I/O производится при высоком уровне сигнала CLK
подать один импульс CLK для завершения процедуры
Диаграмма 4
После корректной верификации транспортного кода область счетчика функционирует как 5-ти ступенчатый счетчик. Ступени счетчика 1..4 должны быть очищены (установлены в «I») путем программирования бита в соответствующей старшей ступени. Для получения максимального объема счетчика при очистке 4-й ступени может быть использован, бит инициализации находящийся в 5-й ступени.
Доступ к микросхеме после ввода транспортного кода сохраняется до выключения питания. Механизм защиты транспортным кодом действует до программирования бита персонализации (адрес 64). Микросхема будет непригодна для дальнейшего использования при исчерпании ресурса счетчика ошибок.
Для выполнения персонализации микросхемы необходимо запрограммировать область персонализации, ключ аутентификации 1, при необходимости ключ аутентификации 2. Программирование бита персонализации находящегося в 5 ступени счетчика переводит БИС из Режима Эмитента в Режим Пользователя. После персонализации область идентификации защищена от перепрограммирования, а область ключей аутентификации становится недоступной для чтения.
Закрытая область |
1. Верификация транспортного кода. |
Область данных 2 или ключ аутентификации 2 |
Ключ аутентификации 1 | ||
Область данных 1 | ||
Биты защиты/управления | ||
Секретный транспортный код |
Область счетчика |
|
Р=1 ПЗУ |
Р=0 ППЗУ |
|
ПЗУ |
Область идентификации |
|
Код производителя |
Код производителя |
БИС содержит криптографическое устройство высокой степени защищенности (блок аутентификации) позволяющее производить аутентификацию БИС методом ответа на входную последовательность данных с использованием индивидуальных ключей. Ответ, генерируемый алгоритмом, заложенным в БИС, имеет характеристики случайного числа длинной до 16 бит, что снижает риск случайной некорректной аутентификации.
Данные используемые при аутентификации:
Значение области идентификации карта.
Изменяющееся значение счетчика тарифных единиц.
Значение секретного ключа 1 (или ключа 2).
48-разрядная водная последовательность данных (случайное число).
Область данных 1 (112-127).
Алгоритм аутентификации:
Различная структура устройства аутентификации получаемая путем масочного программирования.
Сложная функция формирования ответа требующая большого времени вычисления при симуляции.
Ответ длинной до 16 бит:
Случайный характер ответа
Высокая зависимость от исходных данных
Вычисление полного ответа за 30 мс при рабочей частоте 100 кГц
Возможность использования короткого ответа (4 бита за 10 мс)
Два независимых ключа содержатся в памяти БИС для предоставления возможности аутентификации карты в считывателях двух различных фирм предоставляющих услуги с использованием данной карты. Ключ аутентификации 2 является дополнительным и его использование определяется состоянием флага данного ключа (адрес 111). В зависимости от выбранного при запуске стартового адреса в процедуре аутентификации используется первый или второй ключ.
Для запуска процедуры аутентификации необходимо установить адресный счетчик на стартовый адрес процедуры 110 или 111 (для ключа 2). После выполнения фиктивной записи по стартовому адресу (110 для ключа аутентификации 1 и 111 для ключа 2) производится выполнение двух операций:
Загружаются исходные данные в блок вычисления :
Подается 177 импульсов тактовой частоты на БИС для загрузки в блок вычисления данных хранящихся в БИС (область идентификации, область счетчика, ключ аутентификации).
Подается 48 импульсов тактовой частоты на БИС для загрузки в блок вычисления входных данных подаваемых на вывод I/Q 2.
Производится вычисление ответа длинной до 16 бит:
Подается на вход CLK m*n+1 импульсов тактовой частоты.
m = 160..256 - число импульсов входной частоты на один бит выходной последовательности (определяется масочным программированием БИС).
n = 1..16 - число бит в выходной последовательности.
Таблица 5. Назначение стартовых адресов аутентификации
Назначение |
Адрес |
Режим |
|
Эмитент |
Пользователь |
||
Управление ключом 1. |
110 |
ПЗУ |
ПЗУ |
Управление ключом 1. |
111 |
ППЗУ |
ППЗУ "0" |
Вычисление ответа может быть приостановлено в любой момент путем подачи на БИС адресного сброса. Схема процедуры аутентификации защищена от попытки взлома с использованием подачи повышенной или пониженной тактовой частоты.
Выполнить адресный сброс.
Подачей импульсов тактовой частоты установить адрес 110 (для использования при аутентификации ключа 1) или адрес 111 (для использования при аутентификации ключа 2).
Выполнить фиктивную операцию записи.
Подать 177 импульсов тактовой частоты для загрузки данных БИС в блок вычисления.
Начиная с 178 импульса тактовой частоты подать на вход \/q 48 бит входных данных для формирования ответа. Каждый бит входных данных не должен изменятся в течение высокого уровня сигнала тактовой частоты. Защелкивание данных в БИС происходит по переходу в 0 сигнала тактовой частоты. Изменение данных должно происходить при низком уровне сигнала синхронизации.
Диаграмма 5. Запуск процедуры аутентификации и загрузка данных