СПОСОБ ОПТИМИЗАЦИИ ВЫПОЛНЕНИЯ ФУНКЦИИ, КОТОРАЯ ГЕНЕРИРУЕТ, ПО МЕНЬШЕЙ МЕРЕ , ОДИН КЛЮЧ В УСТРОЙСТВЕ НА ИНТЕГРАЛЬНОЙ СХЕМЕ
METHOD FOR OPTIMIZING EXECUTION OF FUNCTION WHICH GENERATES AT LEAST ONE KEY IN DEVICE ON INTEGRATED CIRCUIT

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к способу оптимизации выполнения функции, причем упомянутая функция генерирует, по меньшей мере, один ключ и выполняется в устройстве на интегральной схеме, причем упомянутое устройство на интегральной схеме содержит буфер. Изобретение также относится к соответствующему устройству на интегральной схеме.
Такой способ может использоваться в неограничительном варианте осуществления в любом устройстве на интегральной схеме, которое предназначено для выполнения криптографических процессов.
УРОВЕНЬ ТЕХНИКИ
Устройству на интегральной схеме, которое использует низкопроизводительный процессорный блок, требуется длительное время обработки для выполнения операций, таких как встречающиеся у функции, генерирующей, по меньшей мере, один ключ, такой как криптографический процесс. Одним из общеизвестных криптографических процессов является, например, алгоритм с использованием открытых ключей, который генерирует пару открытого и закрытого ключей. Пара ключей генерируется на месте, то есть, в самом устройстве на интегральной схеме. Для генерирования такой пары ключей алгоритм с использованием открытых ключей содержит первый этап, который идентифицирует два уникальных простых числа. Указанный первый этап является наиболее времязатратным. В зависимости от производительности процессорного блока упомянутое время может варьироваться от 1 секунды до 60 секунд или более.
Одна из проблем данного уровня техники состоит в том, что, когда криптографический процесс занимает слишком длительное время, некоторые оконечные устройства, которые взаимодействуют с устройством на интегральной схеме и ожидают шифрованного сообщения в соответствии с упомянутым криптографическим процессом, могут рассматривать это как отсутствие отклика от упомянутого устройства на интегральной схеме и, следовательно, могут сбрасывать устройство на интегральной схеме в исходное состояние.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Целью изобретения является создание способа оптимизации выполнения функции, причем упомянутая функция генерирует, по меньшей мере, один ключ и выполняется в устройстве на интегральной схеме, что позволяет усовершенствовать временную обработку упомянутой функции и что вследствие этого предотвращает сброс устройства на интегральной схеме в исходное состояние.
С этой целью предлагается способ оптимизации выполнения функции, причем упомянутая функция генерирует, по меньшей мере, один ключ и выполняется в устройстве на интегральной схеме, причем упомянутое устройство на интегральной схеме содержит буфер, при этом упомянутый способ содержит:
- после приема команды упомянутым устройством на интегральной схеме:
- вычисление, по меньшей мере, одних данных, по которым будет генерироваться упомянутый, по меньшей мере, один ключ;
- сохранение упомянутых, по меньшей мере, одних данных в упомянутом буфере;
- выполнение упомянутой команды.
Поскольку частично или полностью данные, необходимые для генерирования ключа, реализуются во время команды, т.е., вне функции, время выполнения упомянутой функции будет уменьшаться, позволяя устройству на интегральной схеме своевременно отвечать терминалу.
В соответствии с неограничительными вариантами осуществления изобретения, способ в соответствии с изобретением дополнительно содержит нижеследующие характеристики.
В неограничительном варианте осуществления упомянутый способ дополнительно содержит:
- после приема команды упомянутым устройством на интегральной схеме:
- вычисление упомянутого, по меньшей мере, одного ключа по упомянутым, по меньшей мере, одним данным;
- сохранение упомянутого, по меньшей мере, одного ключа в упомянутом буфере до тех пор, пока не будет осуществлен запрос на выполнение функции (ОР1);
- выполнение упомянутой команды.
В неограничительном варианте осуществления упомянутый способ дополнительно содержит:
- когда упомянутая функция вызывается командой, принимаемой упомянутым устройством на интегральной схеме:
- проверку того, содержит ли упомянутый буфер упомянутые, по меньшей мере, одни данные;
- если упомянутый буфер содержит упомянутые, по меньшей мере, одни данные, получение упомянутых, по меньшей мере, одних данных из упомянутого буфера;
- выполнение упомянутой функции, причем упомянутое выполнение содержит генерирование упомянутого, по меньшей мере, одного ключа по упомянутым, по меньшей мере, одним данным.
В неограничительном варианте осуществления упомянутая команда является предварительно заданной командой.
В неограничительном варианте осуществления упомянутый способ дополнительно содержит вычисление, по меньшей мере, одних данных во время выполнения упомянутой функции, если:
- упомянутый буфер не содержит какие-либо данные, необходимые для упомянутого генерирования ключа; или
- упомянутый буфер не содержит все данные, необходимые для упомянутого генерирования ключа.
В неограничительном варианте осуществления упомянутый способ дополнительно содержит - после приема упомянутой команды - проверку того, является ли буфер полным.
В неограничительном варианте осуществления упомянутый способ дополнительно содержит сохранение в упомянутом буфере, по меньшей мере, одних данных, которые вычислены в течение фазы персонализации упомянутого устройства на интегральной схеме.
В неограничительном варианте осуществления упомянутое вычисление, по меньшей мере, одних данных содержит вычисление пары данных, по которым будет генерироваться пара ключей.
В неограничительном варианте осуществления упомянутая пара ключей содержит открытый ключ и закрытый ключ.
В неограничительном варианте осуществления упомянутая функция является алгоритмом с использованием открытых ключей.
В неограничительном варианте осуществления упомянутый алгоритм с использованием открытых ключей является алгоритмом генерирования RSA-ключей.
В неограничительном варианте осуществления упомянутые, по меньшей мере, одни данные представляют собой простое число.
В неограничительном варианте осуществления упомянутое вычисление, по меньшей мере, одного простого числа содержит:
- генерирование случайного числа;
- проверку того, является ли упомянутое случайное число простым числом, с использованием проверки простоты.
В неограничительном варианте осуществления упомянутое устройство на интегральной схеме является элементом безопасности.
В неограничительном варианте осуществления упомянутое устройство на интегральной схеме представляет собой карту на интегральной схеме, а упомянутая команда представляет собой APDU-команду (команду прикладного протокольного блока данных (APDU)).
Кроме того, предлагается устройство на интегральной схеме для оптимизации выполнения функции, которая генерирует, по меньшей мере, один ключ, причем упомянутое устройство на интегральной схеме содержит буфер и выполнено с возможностью:
- после приема команды:
- вычисления, по меньшей мере, одних данных, по которым будет генерироваться упомянутый, по меньшей мере, один ключ;
- сохранения упомянутых, по меньшей мере, одних данных в упомянутом буфере;
- выполнения упомянутой команды.
В неограничительном варианте осуществления, когда упомянутая функция вызывается командой, принимаемой упомянутым устройством на интегральной схеме, упомянутое устройство на интегральной схеме дополнительно выполнено с возможностью:
- проверки того, содержит ли упомянутый буфер упомянутые, по меньшей мере, одни данные;
- если упомянутый буфер содержит упомянутые, по меньшей мере, одни данные, получения упомянутых, по меньшей мере, одних данных из упомянутого буфера;
- выполнения упомянутой функции, причем упомянутое выполнение содержит генерирование упомянутого, по меньшей мере, одного ключа по упомянутым, по меньшей мере, одним данным.
В неограничительном варианте осуществления упомянутое устройство на интегральной схеме дополнительно выполнено с возможностью:
- вычисления, по меньшей мере, одних данных во время выполнения упомянутой функции, если:
- упомянутый буфер не содержит какие-либо данные, необходимые для упомянутой функции; или
- упомянутый буфер не содержит все данные, необходимые для упомянутой функции.
В неограничительном варианте осуществления упомянутое устройство на интегральной схеме дополнительно выполнено с возможностью:
- после приема команды:
- вычисления упомянутого, по меньшей мере, одного ключа по упомянутым, по меньшей мере, одним данным;
- сохранения упомянутого, по меньшей мере, одного ключа в упомянутом буфере;
- выполнения упомянутой команды.
Кроме того, предлагается компьютерный программный продукт, содержащий набор команд, которые при загрузке в устройство на интегральной схеме инициируют осуществление устройством на интегральной схеме способа в соответствии с любой из вышеописанных характеристик.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Некоторые варианты осуществления способов и/или устройства в соответствии с вариантами осуществления настоящего изобретения описываются далее исключительно для примера и со ссылкой на прилагаемые чертежи, на которых:
- фиг. 1 представляет собой первую схематическую диаграмму способа в соответствии с неограничительным вариантом осуществления изобретения;
- фиг. 2 представляет собой вторую схематическую диаграмму изображенного на фиг. 1 способа, который содержит дополнительные этапы в соответствии с неограничительным вариантом осуществления;
- фиг. 3 представляет собой вторую схематическую диаграмму изображенного на фиг. 1 способа, который содержит дополнительные этапы в соответствии с неограничительным вариантом осуществления;
- фиг. 4 схематически иллюстрирует неограничительный вариант осуществления устройства на интегральной схеме, которое выполнено с возможностью осуществления способа, изображенного на фиг. 1 - фиг. 3.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В нижеследующем описании общеизвестные специалистам в данной области техники функции или конструкции подробно не описываются, поскольку они будут загромождать изобретение ненужными деталями.
Настоящее изобретение относится к способу оптимизации выполнения функции OP1, причем упомянутая функция генерирует, по меньшей мере, один ключ k1 и выполняется в устройстве на интегральной схеме IC, причем упомянутое устройство на интегральной схеме IC содержит буфер BUFF и процессорный блок PR.
В дальнейшем термин «устройство на интегральной схеме IC» или «IC» используется взаимозаменяемо.
Упомянутый способ MTH иллюстрируется на фиг. 1 в неограничительном варианте осуществления.
Упомянутый способ MTH содержит:
- после приема команды CMD упомянутым устройством на интегральной схеме IC (показанный этап RX(IC, CMD)):
- вычисление, по меньшей мере, одних данных p1, по которым будет генерироваться упомянутый, по меньшей мере, один ключ k1 (показанный этап COMP(IC, CMD, p1(k1));
- сохранение упомянутых, по меньшей мере, одних данных p1 в упомянутом буфере BUFF (показанный этап STOR(IC, p1, BUFF));
- выполнение упомянутой команды CMD (показанный этап EXEC(IC, CMD)).
В неограничительном варианте осуществления упомянутые этапы выполняются с помощью процессорного блока PR устройства на интегральной схеме IC. В неограничительном варианте осуществления процессорный блок PR содержит один или множество процессоров.
Необходимо отметить, что указанные три этапа (вычисление, сохранение, выполнение) могут осуществляться в любом ином порядке или параллельно.
Поэтому, например, этап выполнения упомянутой команды может осуществляться до или после вычисления упомянутых, по меньшей мере, одних данных p1.
Необходимо отметить, что функция содержит одну или множество операций.
В неограничительном варианте осуществления функция OP1, которая генерирует, по меньшей мере, один ключ k1, содержит множество операций.
В неограничительном варианте осуществления функция OP1 является криптографическим процессом, который генерирует криптографические данные, такие как криптографический ключ (ключи).
В неограничительном варианте осуществления упомянутая функция OP1 является алгоритмом с использованием открытых ключей PK. Упомянутый алгоритм с использованием открытых ключей использует пару ключей k1, k2. Таким образом, упомянутая пара ключей k1, k2 содержит открытый ключ k1 и закрытый ключ k2, которые основаны на простых числах p1, p2.
В неограничительном варианте упомянутого варианта осуществления упомянутая функция OP1 является алгоритмом Диффи-Хеллмана.
Еще в одном неограничительном варианте упомянутого варианта осуществления упомянутая функция OP1 является алгоритмом генерирования RSA-ключа.
Поскольку алгоритм генерирования RSA-ключа и алгоритм Диффи-Хеллмана общеизвестны специалистам в данной области техники, они не описываются в настоящем документе.
В неограничительных примерах упомянутая функция OP1 используется алгоритмом RSA.
Поскольку алгоритм RSA общеизвестен специалистам в данной области техники, он не описывается в настоящем документе.
В других неограничительных примерах упомянутая функция OP1 используется алгоритмом на эллиптических кривых или алгоритмом DSA («Алгоритмом Построения Электронной Цифровой Подписи»).
Поскольку алгоритм на эллиптических кривых и алгоритм DSA общеизвестны специалистам в данной области техники, они не описываются в настоящем документе.
Как описывается ниже, когда выполняется вычисление указанных, по меньшей мере, одних данных p1 перед функцией OP1 (которой необходимы упомянутые данные p1), оно позволяет предварительно вычислять упомянутые данные p1 и держать их наготове для использования упомянутой функцией OP1. Причем упомянутые данные p1 являются сложными и времязатратными для вычисления, это позволяет избежать функции OP1 для реализации упомянутого вычисления упомянутых данных p1 и, следовательно, сократить ее собственное время выполнения. Предварительно вычисленные данные p1 хранятся в буфере BUFF до тех пор, пока не будет запрошена функция OP1.
В неограничительном варианте осуществления упомянутая команда CMD является предварительно заданной командой CMD, поскольку она выбирается из списка команд, которые позволяют IC отправлять обратно отклик RSP через некоторое время запаздывания, которое обеспечивает выполнение упомянутого вычисления упомянутых, по меньшей мере, одних данных p1. Она выбирается разработчиком, который разрабатывает функцию OP1 и иные различные функции IC. Следовательно, в неограничительном варианте осуществления данная команда (по которой будет запускаться вычисление упомянутых, по меньшей мере, одних данных p1) выбирается до фазы Ph персонализации упомянутой IC.
Упомянутая команда CMD отправляется в оконечное устройство Т.
Оконечное устройство Т представляет собой любой тип устройства - компьютер или считывающее устройство, которое выполнено с возможностью связи посредством команд CMD либо в контактном, либо в бесконтактном режиме.
Как описывается ниже, в первом неограничительном варианте осуществления устройство на интегральной схеме IC представляет собой карту на интегральной схеме (ICC).
В данном варианте осуществления команда CMD представляет собой APDU-команду APDU_C, которая является прикладным протокольным блоком данных, используемым картой на интегральной схеме (ICC) для связи с оконечным устройством. APDU-команда APDU_C отправляется оконечным устройством на упомянутую карту на интегральной схеме (ICC), которая отвечает APDU-откликом APDU_R.
В неограничительном варианте осуществления APDU-команда APDU_C является командой СОСТОЯНИЕ, задаваемой в неограничительном примере в стандарте ETSI102221. Указанная команда возвращает информацию, касающуюся текущего каталога или текущего приложения в IC.
Еще в одном неограничительном варианте осуществления APDU-команда APDU_C является командой ВЫБОР MD/DF/EF, задаваемой в неограничительном примере в стандарте ETSI102221. Указанная команда выбирает файл или приложение в упомянутой карте на интегральной схеме (ICC).
Разумеется, могут использоваться различные APDU-команды APDU_C, такие как команды СОСТОЯНИЕ и ВЫБОР. Например, команда СОСТОЯНИЕ может использоваться для вычисления одних данных p1, а команда ВЫБОР может использоваться для вычисления других данных p1, причем и те, и другие данные p1, p2 используются для генерирования, по меньшей мере, одного ключа k1.
Во втором неограничительном варианте осуществления устройство на интегральной схеме IC представляет собой модуль HSM аппаратной защиты. В данном варианте осуществления - в неограничительном варианте - команда CMD представляет собой команду PKCS11.
В неограничительных примерах используются следующие команды PKSC11:
- команда KEYPAIRGEN, которая генерирует пару ключей модулем аппаратной защиты HSM;
- команда INIT-TOKEN, которая инициализирует модуль HSM аппаратной защиты;
- команда LOGIN, которая идентифицирует пользователя для модуля аппаратной защиты HSM;
- WRITE-OBJECT, который сохраняет данные в качестве сертификата для модуля аппаратной защиты HSM.
В неограничительном варианте осуществления упомянутый буфер BUFF представляет собой специализированный буфер для хранения упомянутых, по меньшей мере, одних данных p1. Вследствие этого он отличается от APDU-буфера, используемого для APDU-команд и APDU-откликов в варианте осуществления карты на интегральной схеме (ICC). В неограничительных вариантах осуществления упомянутый буфер BUFF находится в энергозависимой памяти, такой как оперативное запоминающее устройство (RAM), или в энергонезависимой памяти, такой как в неограничительном примере электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), флэш-память и т.д.
В неограничительном варианте осуществления (не показан) способ MTH дополнительно содержит:
- после приема команды CMD упомянутым устройством на интегральной схеме IC:
- вычисления упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1;
- сохранения упомянутого, по меньшей мере, одного ключа k1 в упомянутом буфере BUFF;
- выполнения упомянутой команды CMD.
Таким образом, в данном варианте осуществления и упомянутые, по меньшей мере, одни данные p1, и ключ k1 вычисляются вне функции OP1. Это позволяет избежать функции OP1 для реализации также упомянутого вычисления упомянутого ключа k1.
Упомянутая команда CMD является также предварительно заданной командой, поскольку она выбирается из списка команд, которые позволяют IC отправлять обратно отклик RSP через некоторое время запаздывания, которое обеспечивает выполнение упомянутого вычисления упомянутого, по меньшей мере, одного ключа k1. Так же, как и выше, она выбирается разработчиком, который разрабатывает функцию OP1 в упомянутой IC и иные различные функции IC.
Необходимо отметить, что в данном варианте осуществления вычисление ключа k1 и вычисление упомянутых, по меньшей мере, одних данных p1 может выполняться во время приема той же команды CMD или во время приема других команд CMD.
Таким образом, генерирование указанного, по меньшей мере, одного ключа k1 во время упомянутой функции OP1 означает:
- вычисление упомянутого, по меньшей мере, одного ключа k1; или
- получение упомянутого, по меньшей мере, одного ключа k1 из упомянутого буфера BUFF.
Следовательно, в неограничительном варианте осуществления способ MTH дополнительно содержит получение указанного, по меньшей мере, одного ключа k1 из упомянутого буфера BUFF. Упомянутое получение осуществляется во время выполнения функции OP1.
В неограничительном варианте осуществления способ MTH дополнительно содержит:
- после приема упомянутой команды CMD - проверку того, является ли буфер BUFF полным (показанный этап VERIF(IC, BUFF) на фиг. 2).
В неограничительном варианте осуществления способ MTH дополнительно содержит:
- когда упомянутая функция OP1 вызывается командой CMD, принимаемой упомянутым устройством на интегральной схеме IC (показанный этап RX(IC, CMD(OP1) на фиг. 3):
- проверку того, содержит ли упомянутый буфер BUFF упомянутые, по меньшей мере, одни данные p1, по которым будет генерироваться упомянутый, по меньшей мере, один ключ k1 (показанный этап VERIF(IC, BUFF, p1) на фиг. 2 и фиг. 3);
- если упомянутый буфер BUFF содержит упомянутые, по меньшей мере, одни данные p1, получение упомянутых, по меньшей мере, одних данных p1 из упомянутого буфера BUFF (показанный этап RETRV(IC, BUFF, p1) на фиг. 3);
- выполнение упомянутой функции OP1, причем упомянутое выполнение содержит генерирование упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1 (показанный этап EXEC(IC, OP1(k1)) на фиг. 2 и фиг. 3).
Необходимо отметить, что, когда указанный, по меньшей мере, один ключ k1 не вычисляется во время выполнения команды CMD (как описано выше в неограничительном варианте осуществления), упомянутая функция OP1 содержит вычисление упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1.
В неограничительном варианте осуществления способ MTH дополнительно содержит вычисление, по меньшей мере, одних данных p1 во время выполнения упомянутой функции OP1 (показанный этап COMP(IC, OP1, p1) на фиг. 2 и фиг. 3):
- если упомянутый буфер BUFF не содержит какие-либо данные p1, необходимые для упомянутого генерирования ключа; или
- если упомянутый буфер BUFF не содержит все данные p1, необходимые для упомянутого генерирования ключа.
В неограничительном варианте осуществления упомянутое вычисление, по меньшей мере, одних данных содержит вычисление пары данных p1, p2, по которым будет генерироваться пара ключей k1, k2.
В неограничительном варианте осуществления упомянутые, по меньшей мере, одни данные p1 представляют собой простое число.
Вычисление простого числа является сложным и времязатратным. Поэтому следует предварительно вычислять такое простое число.
Необходимо отметить, что для упрощения на фиг. 1-4 p1 представляет собой, по меньшей мере, одно простое число (либо первое простое число p1, либо второе простое число p2, либо оба простых числа p1, p2).
В неограничительном варианте осуществления (не показан) упомянутый способ MTH дополнительно содержит сохранение в упомянутом буфере BUFF, по меньшей мере, одних данных p1, которые вычислены в течение фазы Ph персонализации упомянутого устройства на интегральной схеме IC.
Таким образом, упомянутый буфер BUFF может содержать, по меньшей мере, одни данные p1, которые вычислены в течение фазы Ph персонализации упомянутого устройства на интегральной схеме IC. Таким образом, упомянутое простое число p1 может предварительно вычисляться либо на месте во время команды CMD, либо вне IC. В указанном последнем случае упомянутое простое число p1 загружается (не показано) в течение фазы Ph производства в безопасной среде.
В неограничительном варианте осуществления все указанные дополнительные неограничительные этапы, описанные выше, выполняются с помощью процессорного блока PR устройства на интегральной схеме IC.
Фиг. 2 и фиг. 3 иллюстрируют схематическую диаграмму, содержащую дополнительные неограничительные этапы, упомянутые выше.
В частности, фиг. 2 иллюстрирует этапы (1-6) после приема упомянутой команды CMD, а фиг. 3 иллюстрирует этапы (7-11) после запроса выполняемой функции OP1, т.е., после вызова упомянутой функции OP1 командой.
В неограничительном примере принимается следующее:
- устройство на интегральной схеме (IC) является картой на интегральной схеме (ICC);
- вычисляется пара простых чисел p1, p2, при этом пара ключей k1, k2 вычисляется на основе упомянутой пары простых чисел p1, p2;
- команда CMD, принимаемая устройством на интегральной схеме IC, является APDU-командой, при этом упомянутая APDU-команда APDU_C представляет собой команду СОСТОЯНИЕ;
- отклик RSP, отправляемый устройством на интегральной схеме IC, является APDU-откликом APDU_R;
- буфер не содержит никаких простых чисел, когда IC принимает упомянутую команду СОСТОЯНИЕ;
- вычисление ключа осуществляется во время выполнения упомянутой функции OP1.
Когда IC принимает команду СОСТОЯНИЕ, выполняются нижеследующие этапы.
Следует напомнить, что IC выполняет функцию ведомого в отношении оконечного устройства. Таким образом, до приема APDU-команды APDU_C она находится в режиме сна. Прием APDU-команды APDU_C позволяет упомянутой IC находиться в режиме пробуждения. Таким образом, она сможет выполнять некоторые задачи, такие как перечисленные ниже этапы.
После приема команды СОСТОЯНИЕ упомянутой IC на этапе 1) наэтапе 2) упомянутая IC проверяет, содержит ли упомянутый буфер BUFF все простые числа p1, p2 для генерирования пары ключей k1, k2.
Необходимо отметить, что, если упомянутый буфер BUFF содержит все простые числа p1, p2, упомянутая IC будет выполнять функцию OP1, а во время упомянутой функции OP1 - получать предварительно вычисленные простые числа p1, p2 из упомянутого буфера BUFF и вычислять оба ключа k1, k2 по упомянутым простым числам p1, p2 (см. ниже этап 8).
Поскольку это не так, на этапе 3) упомянутая IC проверяет, является ли упомянутый буфер полным.
Необходимо отметить, что данный этап 3) может выполняться до этапа 2).
Необходимо отметить, что, если упомянутый буфер является полным, вычисление обоих простых чисел p1, p2 осуществляется в обычном порядке во время выполнения функции OP1.
Поскольку в приведенном неограничительном примере остается еще много места в буфере BUFF, на этапе 4) упомянутая IC вычисляет первое простое число p1, по которому будут генерироваться упомянутые ключи k1, k2.
В данном неограничительном примере запаздывание для ответа IC на упомянутую команду СОСТОЯНИЕ является достаточно длительным для выполнения упомянутой команды СОСТОЯНИЕ и одного вычисления одного простого числа p1, но недостаточно длительным для вычисления двух простых чисел p1, p2.
Разумеется, когда запаздывание является достаточно длительным, выполняется вычисление двух простых чисел.
В неограничительном варианте осуществления (не показан) вычисление простого числа p1 содержит:
- генерирование случайного числа Sd;
- проверку того, является ли упомянутое случайное число Sd простым числом p1, с использованием проверки PT простоты.
Если проверка простоты является отрицательной, генерирование случайного числа повторяется.
Поскольку данная проверка простоты общеизвестна специалистам в данной области техники, она не описывается в настоящем документе.
На этапе 5) упомянутая IC сохраняет помянутое простое число p1 в упомянутом буфере BUFF.
Таким образом, указанные предварительно вычисленные данные p1 хранятся в упомянутом буфере BUFF до тех ор, пока не будет запрошена функция OP1, которой необходимы упомянутые данные p1.
На этапе 6) упомянутая IC выполняет упомянутую команду СОСТОЯНИЕ.
Таким образом, IC будет отправлять в оконечное устройство APDU-отклик APDU_R, который содержит свое состояние.
Необходимо отметить, что команда СОСТОЯНИЕ часто отправляется на IC оконечным устройством T. Благодаря использованию команды СОСТОЯНИЕ можно часто предварительно вычислять необходимые простые числа p1, p2, в результате чего указанный времязатратный процесс вычисления будет частично выполняться или совсем не выполняться функцией OP1.
С целью увеличения времени на предварительное вычисление упомянутых простых чисел p1, p2 в неограничительном варианте осуществления частота приема упомянутой команды СОСТОЯНИЕ упомянутой IC увеличена. С этой целью упреждающая команда ИНТЕРВАЛ ОПРОСА, определяемая в стандарте ETSI102223, используется для настройки частоты приема упомянутой команды СОСТОЯНИЕ с помощью IC. Таким образом, время, необходимое для предварительного вычисления простых чисел p1, p2, может быть разбито на несколько команд СОСТОЯНИЕ.
Таким образом, в неограничительных вариантах осуществления это обеспечивает:
- вычисление одного простого числа в команде СОСТОЯНИЕ и вычисление другого простого числа в другой команде СОСТОЯНИЕ; или
- вычисление одного простого числа, разбиваемого на несколько команд СОСТОЯНИЕ: различные операции (генерирования случайного числа, проверки простоты), необходимые для вычисления простого числа, выполняются в нескольких командах СОСТОЯНИЕ. В этом случае вычисленные указанные, по меньшей мере, одни данные (по которым будет генерироваться упомянутый, по меньшей мере, один ключ k1) будут в действительности один раз случайно генерироваться, а в другой раз будут представлять собой различные результаты проверки простоты.
Когда функция OP1, которой необходимы упомянутые простые числа p1, p2, вызывается APDU-командой APDU_C, принимаемой упомянутым устройством на интегральной схеме IC на этапе 7), наэтапе 8) упомянутая IC проверяет, содержит ли упомянутый буфер BUFF два простых числа p1, p2, по которым будут генерироваться упомянутые ключи k1, k2.
Необходимо отметить, что в приведенном неограничительном примере генерирование одного ключа (k1 или k2) основано на обоих простых числах p1, p2.
Поскольку в неограничительном примере упомянутый буфер BUFF не содержит все простые числа, необходимые для генерирования обоих ключей k1, k2 (поскольку он содержит только первое простое число p1), упомянутая IC вычисляет второе простое число p2 во время выполнения упомянутой функции OP1 (см. этап 10').
Необходимо отметить, что, если упомянутый буфер BUFF не содержит ни одного из двух простых чисел p1, p2, аналогичным образом упомянутая IC вычисляет первое и второе простые числа p1, p2 во время выполнения упомянутой функции OP1.
На этапе 9) упомянутая IC получает простое число, которое находится в упомянутом буфере BUFF, т.е., в данном случае первое простое число p1 из упомянутого буфера BUFF.
Разумеется, когда упомянутый буфер BUFF содержит два простых числа p1, p2, упомянутая IC будет получать оба простых числа из упомянутого буфера BUFF (этап 10', изображенный на фиг. 3).
На этапе 10) упомянутая IC выполняет упомянутую функцию OP1, которая содержит генерирование упомянутой пары ключей k1, k2.
Во время выполнения упомянутой функции OP1 упомянутая IC вычисляет второе простое число p2, как описано выше (этап 10') и вычисляет упомянутую пару ключей k1, k2 по упомянутому полученному простому числу p1 и по упомянутому вычисленному простому числу p2 (этап 10''). Генерирование пары ключей k1, k2 вследствие этого выполняется путем вычисления упомянутой пары ключей k1, k2 во время упомянутой функции OP1.
Таким образом, вышеописанный способ MTH осуществляется устройством на интегральной схеме IC (изображенной на фиг. 4), содержащим процессорный блок PR и буфер BUFF, причем упомянутое устройство на интегральной схеме IC выполнено с возможностью оптимизации выполнения функции OP1, которая генерирует, по меньшей мере, один ключ k1.
В неограничительном примере, изображенном на фиг. 4, буфер содержит только первое простое число p1, а второе простое число p2 вычисляется во время функции OP1 в описанном неограничительном примере.
Упомянутое устройство на интегральной схеме IC является элементом безопасности.
Элемент безопасности является безопасным компонентом, который содержит безопасный чип и может выполнять криптографические функции и быть выполненным с возможностью хранения секретной информации.
В первом неограничительном варианте упомянутый элемент безопасности представляет собой карту на интегральной схеме (ICC), называемую также ICC-картой. ICC-карта может быть контактной или бесконтактной.
В неограничительных примерах данного первого варианта элемент безопасности представляет собой небольшое устройство, припаянный элемент, межмашинный (М2М) модуль, eSE (встроенный элемент безопасности), карту памяти microSD и т.д.
В неограничительных примерах ICC-карта представляет собой банковскую карту, такую как EMV-карта, электронную идентификационную карту, медицинскую карту, водительское удостоверение, паспорт, банковскую карту физического лица, карту финансового обслуживания, карту доступа и т.д.
Во втором неограничительном варианте упомянутый элемент безопасности представляет собой модуль HSM аппаратной защиты. Упомянутый модуль аппаратной защиты выполнен с возможностью подключения к оконечному устройству Т.
Необходимо отметить, что ICC-карта может использоваться в качестве HSM.
Упомянутое IC выполнено с возможностью:
- приема команды CMD (показанная функция RX(IC, CMD) на фиг. 4).
- после приема упомянутой команды CMD:
- вычисления, по меньшей мере, одних данных p1, по которым будет генерироваться упомянутый, по меньшей мере, один ключ k1 (показанная функция COMP(IC, CMD, p1(k1)) на фиг. 4);
- сохранения упомянутых, по меньшей мере, одних данных p1 в упомянутом буфере BUFF (показанная функция STOR(IC, p1, BUFF) на фиг. 4);
- выполнения упомянутой команды CMD (показанная функция EXEC(IC, CMD) на фиг. 4).
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью:
- приема команды CMD, которая вызывает функцию OP1 (показанная функция RX(IC, CMD(OP1) на фиг. 4);
- когда упомянутая функция OP1 вызывается командой CMD, принимаемой упомянутым устройством на интегральной схеме IC:
- проверки того, содержит ли упомянутый буфер BUFF упомянутые, по меньшей мере, одни данные p1 (показанная функция VERIF(IC, BUFF, p1) на фиг. 4);
- если упомянутый буфер BUFF содержит упомянутые, по меньшей мере, одни данные p1, получения упомянутых, по меньшей мере, одних данных p1 из упомянутого буфера BUFF (показанная функция RETRV(IC, BUFF, p1) на фиг. 4);
- выполнения упомянутой функции OP1, причем упомянутое выполнение содержит генерирование упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1 (показанная функция EXEC(IC, OP1(k1)) на фиг. 4).
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью:
- после приема упомянутой команды CMD - проверки того, является ли буфер полным (показанная функция VERIF(IC, BUFF) на фиг. 4).
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью сохранения в упомянутом буфере BUFF, по меньшей мере, одних данных p1, которые вычислены в течение фазы ph персонализации упомянутого устройства на интегральной схеме IC (показанная функция STOR(IC, p1, ph, BUFF) на фиг. 4).
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью вычисления по меньшей мере, одних данных p1 во время выполнения упомянутой функции OP1 (показанная функция COMP(IC, OP1, p1) на фиг. 4).
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью:
- после приема упомянутой команды CMD:
- вычисления упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1 (показанная функция COMP(IC, CMD, k1(p1)) на фиг. 4);
- сохранения упомянутого, по меньшей мере, одного ключа k1 в упомянутом буфере BUFF (показанная функция STOR(IC, k1, BUFF) на фиг. 4); и
- выполнения упомянутой команды CMD.
В неограничительном варианте осуществления упомянутое IC дополнительно выполнено с возможностью:
- получения упомянутого, по меньшей мере, одного ключа k1 из упомянутого буфера BUFF (показанная функция RETRV(IC, BUFF, k1) на фиг. 4); и
- вычисления упомянутого, по меньшей мере, одного ключа k1 по упомянутым, по меньшей мере, одним данным p1 во время выполнения упомянутой функции OP1 (показанная функция COMP(IC, OP1, k1(p1)) на фиг. 4).
В неограничительном варианте осуществления процессорный блок PR упомянутой IC выполнен с возможностью выполнения всех вышеописанных функций.
Следует понимать, что настоящее изобретение не ограничено вышеупомянутыми вариантами осуществления.
В IC может содержаться один компьютерный программный продукт PG или их множество, как показано на фиг. 4. Компьютерный программный продукт содержит набор команд. При этом упомянутый набор команд, содержащихся, например, в памяти IC, может инициировать осуществление IC различных этапов способа MTH.
Таким образом, некоторые варианты осуществления изобретения могут иметь одно или множество из следующих преимуществ:
- его легко реализовать;
- оно позволяет избежать ошибочного сброса устройства на интегральной схеме IC в исходное состояние;
- оно позволяет избежать замены процессорного блока PR устройства на интегральной схеме IC более быстродействующим, что предполагает более высокую стоимость;
- оно позволяет избежать поиска оптимизированной функции OP1, что предполагало бы высокие расходы на исследования;
- при использовании предварительно вычисленных данных p1 длительность выполнения функции OP1 значительно уменьшается до целесообразного интервала времени;
- оно позволяет предварительно вычислять данные p1, которые являются сложными и времязатратными для вычисления.