АУТЕНТИФИКАЦИЯ ЗАМЕНЯЕМЫХ ЭЛЕМЕНТОВ
REPLACEABLE ITEM AUTHENTICATION

Уровень техники
[0001] Устройства, которые используют заменяемые элементы, включают в себя печатающие устройства, в том числе автономные принтеры, копировальные аппараты и многофункциональные (AIO) устройства, которые могут выполнять несколько функций, таких как печать, копирование, сканирование и/или отправка факсов. Примерные заменяемые элементы для таких печатающих устройств включают в себя чернила, тонер и/или другие типы красящих веществ, включая красящее вещество для двухмерной (2D) печати. Другие примерные заменяемые элементы, в частности, для устройства трехмерной (3D) печати, включают в себя средство для 3D-печати и модельный материал для 3D-печати.
Краткое описание чертежей
[0002] Фиг. 1 является схемой примерного картриджа с веществом печати для печатающего устройства.
[0003] Фиг. 2 является блок-схемой последовательности операций примерного способа, который могут осуществлять картридж с веществом печати или другой заменяемый элемент для устройства.
[0004] Фиг. 3 является блок-схемой последовательности операций примерного способа, который могут осуществлять картридж с веществом печати или другой заменяемый элемент для устройства, чтобы реализовывать этап способа по фиг. 2.
[0005] Фиг. 4 является блок-схемой последовательности операций другого примерного способа, который могут осуществлять картридж с веществом печати или другой заменяемый элемент для устройства, чтобы реализовывать этап способа по фиг. 2.
[0006] Фиг. 5 является блок-схемой последовательности операций третьего примерного способа, который могут осуществлять картридж с веществом печати или другой заменяемый элемент для устройства, чтобы реализовывать этап способа по фиг. 2.
[0007] Фиг. 6 является блок-схемой последовательности операций четвертого примерного способа, который могут осуществлять картридж с веществом печати или другой заменяемый элемент для устройства, чтобы реализовывать этап способа по фиг. 2.
Подробное описание изобретения
[0008] Как отмечено в разделе "Уровень техники", устройства, которые используют заменяемые элементы, включают в себя печатающие устройства. Запас вещества печати, такого как красящее вещество или другой тип вещества печати, хранится в картридже, который может вставляться в печатающее устройство. Когда запас расходуется, данный картридж может заменяться картриджем, имеющим свежий запас рассматриваемого вещества печати. Картриджи, имеющие различные типы веществ печати, также могут переключаться при необходимости. В качестве примера, имеющий универсальные чернила картридж при необходимости может переключаться на имеющий чернила с качеством фотопечати картридж в струйном печатающем устройстве.
[0009] Изготовители печатающих устройств также как правило создают или иным образом поставляют вещество печати, используемое в печатающих устройствах. С точки зрения конечного пользователя, использование поставляемых изготовителем или одобренных изготовителем картриджей с веществом печати может способствовать требуемому выводу печатающими устройствами и/или препятствовать повреждению печатающих устройств. Для изготовителя комплектного оборудования (OEM) может быть затруднительным гарантировать вывод печатающим устройством или функционирование печатающего устройства, если печатающее устройство использует картриджи третьей стороны. Вещество печати третьей стороны находится за рамками контроля со стороны OEM. Например, оно может обеспечивать различный вывод печати или повлечь за собой риск патентования в силу сокращения срока службы устройства печати. В некоторых случаях, например, для 3D-принтеров, может иметь место даже риск для безопасности пользователя, когда вещество печати является не одобренным к применению веществом печати. В некоторых случаях использование не одобренного к применению вещества печати может влиять на гарантию, связанную с печатающим устройством.
[0010] Поэтому изготовители могут внедрять картриджи с аутентификационной защитой. Печатающее устройство может опрашивать картридж, чтобы определить, является ли он аутентичным. Если картридж не является аутентичным (например, не одобренным к применению OEM), то печатающее устройство, например, может инициировать определенную процедуру, такую как информирование конечного пользователя, к примеру, немедленно или сразу после установки.
[0011] Технологии, раскрытые здесь, предоставляют новую, инновационную схему аутентификации для картриджа с веществом печати для печатающего устройства и, более обобщенно, для заменяемого элемента для (хост-)устройства, в котором может устанавливаться этот элемент (т.е., более обобщенно, для устройства, к которому этот элемент может быть подсоединен). Картридж с веществом печати хранит ряд аутентификационных значений или паролей. Картридж включает в себя логику (такую как схемы, подобные процессору и запоминающему устройству (памяти), хранящему код, который выполняет процессор) с тем, чтобы разрешать извлечение только поднабора этих аутентификационных значений. По мере того, как от картриджа запрашиваются различные аутентификационные значения, картридж может отслеживать число различных значений, которые были возвращены. Как только картридж предоставил максимальное число таких уникальных аутентификационных значений, он не будет предоставлять каких-либо других аутентификационных значений, которые первоначально хранились в картридже. Однако, картридж продолжает предоставлять предыдущие аутентификационные значения, которые запрошены и возвращены.
[0012] В качестве примера, картридж с веществом печати может хранить шестьдесят четыре различных пароля или аутентификационные значения. Из этих шестидесяти четырех картридж может выводить не более шестнадцати различных паролей. Как только картридж предоставил шестнадцать различных паролей, он не будет предоставлять никаких из других сорока восьми паролей, которые хранились в картридже. Однако, картридж может продолжать отвечать на запросы для шестнадцати различных паролей, которые уже были предоставлены.
[0013] Картридж с веществом печати также может хранить хэш-значения аутентификационных значений или паролей. Хэш-значения обеспечивают способ определения того, является ли корректным данное аутентификационное значение, которое предоставлено картриджем. Картридж может предоставлять хэш-значения аутентификационных значений по запросу, даже для значений, которые картридж не будет выводить. В примере по предыдущему абзацу, например, картридж может предоставлять хэш-значения для всех шестидесяти четырех паролей, хотя картридж будет предоставлять не более шестнадцати из шестидесяти четырех паролей.
[0014] Схема аутентификации с использованием такого картриджа с веществом печати может включать в себя печатающее хост-устройство, которое может запрашивать четыре различных пароля или аутентификационных значения, хранимых в картридже. Различные печатающие устройства могут и с большой вероятностью будет запрашивать различные пароли от данного картриджа. Аналогично, данное печатающее устройство может и с большой вероятностью будет запрашивать различные пароли от различных картриджей.
[0015] Возвращение картриджем с веществом печати меньшего числа аутентификационных значений, чем общее число аутентификационных значений, первоначально хранимых в картридже, существенно затрудняет для третьей стороны нарушение такой схемы аутентификации. Даже если третья сторона преодолевает другие меры безопасности для получения шестнадцати аутентификационных значений, которые картридж будет "сдавать" или выводить, или предоставлять, вероятность того, что картридж третьей стороны, хранящий только эти шестнадцать значений, будет аутентифицирован печатающим устройством, является низкой. В примерной схеме аутентификации, которая представлена выше, печатающее устройство может и с большой вероятностью будет запрашивать по меньшей мере одно аутентификационное значение, которое не является ни одним из шестнадцати значений, которые совместно использует картридж третьей стороны, делая маловероятным, что любое данное печатающее устройство будет успешно аутентифицировать такой картридж.
[0016] Фиг. 1 показывает примерный картридж 100 с веществом печати для печатающего устройства. Картридж 100 включает в себя запас 102 вещества печати. Картридж 100 может содержать любой объем вещества печати, такой как от нескольких миллилитров до десятков литров. Различные примеры вещества печати включают в себя чернила для струйного печатающего устройства и жидкий или порошковый тонер для лазерного печатающего устройства. Такие чернила или тонер сами по себе являются примерами красящего вещества для двухмерной печати, которое представляет собой красящее вещество, используемое соответствующим печатающим устройством для формирования изображений на носителе, таком как бумага, который минимально, если это вообще имеет место, продолжается в третьем измерении, перпендикулярном двум измерениям, задающим плоскость поверхности носителя, на котором сформированы изображения. Другие примеры вещества печати включают в себя средство для 3D-печати и модельный (строительный) материал для 3D-печати, которые используются соответствующим 3D-печатающим устройством для формирования трехмерного объекта, который как правило является удаляемым с некоторой подложки, на которой создается объект. Некоторые вещества печати, такие как чернила, могут использоваться как для 2D-, так и 3D-печати.
[0017] Картридж 100 с веществом печати включает в себя логику 104. Логика 104 может быть реализована как схемы в картридже 100. Например, логика 104 может включать в себя процессор и невременный считываемый компьютером носитель данных, хранящий исполняемый компьютером код, который выполняется процессором. Тогда, в этом отношении, в одной реализации логика 104 может включать в себя микропроцессор и встроенное программное обеспечение, хранимое в самом микропроцессоре, причем невременный считываемый компьютером носитель данных интегрирован в микропроцессоре. В другой реализации логика 104 может включать в себя микропроцессор и программное обеспечение, встроенное в невременный носитель, отдельный от микропроцессора.
[0018] В качестве другого примера, логика 104 может представлять собой или включать в себя специализированную интегральную схему (ASIC) либо программируемую вентильную матрицу (FPGA). Более обобщенно, в этом отношении логика 104 может реализовываться с использованием логических вентилей (схем). В качестве третьего примера, логика 104 может реализовываться как любая комбинация процессора, программного обеспечения, сохраненного в процессоре или на носителе, отдельном от процессора, и логических вентилей.
[0019] Картридж 100 с веществом печати включает в себя энергонезависимое запоминающее устройство 106. Запоминающее устройство 106 может представлять собой полупроводниковое запоминающее устройство и является энергонезависимым в том смысле, что, когда питание снимается с картриджа 100, запоминающее устройство 106 все еще сохраняет свое содержимое. Запоминающее устройство 106 хранит пароли 108, которые также упоминаются здесь как аутентификационные значения. Запоминающее устройство 106 может хранить хэш-значения 110 паролей 108 и эти хэш-значения могут отдельно соответствовать паролям. Запоминающее устройство 106 может хранить криптографический ключ 112, из которого могут формироваться пароли 108.
[0020] Запоминающее устройство 106 хранит число паролей 108, которое упоминается в качестве общего числа паролей 108. Пароли 108 или аутентификационные значения хранятся картриджем 100, так что картридж 100 может подтверждать печатающему хост-устройству, что он является подлинным. Иначе говоря, пароли 108 используются для аутентификации картриджа 100 в печатающем устройстве. Пароли 108 могут защищаться зашифрованным криптографическим способом так, что пароли 108 по существу являются неизвлекаемыми из картриджа 100 за рамками описанных здесь подходов. Пароли 108 могут представлять собой последовательность битов, такой как 256 битов.
[0021] Запоминающее устройство 106 может хранить одно хэш-значение 110 для каждого пароля 108. Хэш-значения 110 хранятся картриджем 100, так что картридж 100 может подтверждать печатающему хост-устройству, что пароли 108 являются корректными. Иначе говоря, хэш-значения 110 используются для верификации паролей 108, предоставленных картриджем 100 в печатающем устройстве. Хэш-значения 110 могут не защищаться криптографически в том, что они являются свободно извлекаемыми из картриджа 100, но могут криптографически защищаться в том, что хэш-значения 110 не могут модифицироваться. Хэш-значения 110 могут быть однонаправленными хэш-значениями 110 паролей 108, что означает то, что пароль 108 не может определяться только посредством знания его соответствующего хэш-значения 110, даже если известна однонаправленная хэш-функция, используемая для формирования хэш-значения 110 из пароля 108.
[0022] Хэш-значения 110 могут предоставляться картриджем 100 в одной реализации таким образом, что хост-устройство способно признавать хэш-значения 110 как сформированные юридическим лицом (т.е. изготовителем или поставщиком картриджа 100), которому доверяет хост-устройство. В качестве одного примера, хэш-значения 110 могут криптографически подписываться закрытым криптографическим ключом до сохранения в картридже 100. Хост-устройство может использовать соответствующий общедоступный криптографический ключ, чтобы признавать хэш-значения 110 допустимыми. Закрытый ключ не может храниться на картридже 100 и не является общедоступным.
[0023] Логика 104 разрешает извлечение заданного максимального числа паролей 108, которое меньше общего числа паролей 108, хранимых в энергонезависимом запоминающем устройстве 106. Однако, логика 104 может разрешать извлечение этого меньшего числа паролей 108 (т.е. заданного максимального числа паролей 108) неограниченное число раз из запоминающего устройства 106. Для сравнения, логика 104 запрещает извлечение любого пароля 108, за исключением заданного максимального числа паролей, даже один раз из запоминающего устройства 106.
[0024] То, какие из паролей 108 выбираются в качестве заданного максимального числа паролей 108, извлечение которых разрешает логика 104, может быть не указано априори. Например, когда любое печатающее хост-устройство, в котором в данный момент установлен картридж 100, или с которым картридж 100 соединен иным способом, запрашивает конкретные пароли 108, логика 104 может возвращать запрашиваемые пароли 108 до тех пор, пока не будет достигнуто заданное максимальное число. После этого, логика 104 будет возвращать только пароли 108, которые уже были запрошены, и не возвращать какие-либо из остальных паролей 108, когда выбрано заданное число паролей 108. Иначе говоря, логика 104 может выбирать конкретное заданное максимальное число паролей 108 по мере того, как любое печатающее хост-устройство запрашивает их, до тех пор, пока не будет достигнуто максимальное число.
[0025] В качестве примера, энергонезависимое запоминающее устройство 106 может хранить шестнадцать паролей 108, пронумерованных от одного до шестнадцати, и логика 104 может возвращать только четыре из этих паролей 108. Картридж 100 может вставляться в первое печатающее хост-устройство, которое может запрашивать и принимать пароли, имеющие номера один и тринадцать. Следовательно, логика 104 фактически выбирает два из четырех паролей 108, которые картридж 100 будет раскрывать, которые пронумерованы как один и тринадцать. Картридж затем может удаляться из этого печатающего хост-устройства и вставляться в другое печатающее хост-устройство, которое запрашивает и принимает пароли, имеющие номера шесть и тринадцать. Следовательно, логика 104 теперь фактически выбирает три из четырех паролей 108, которые картридж 100 будет раскрывать, которые пронумерованы как один, шесть и тринадцать.
[0026] Картридж может удаляться из печатающего хост-устройства, в которое он в данный момент установлен, и вставляться в третье печатающее хост-устройство, которое может запрашивать и принимать пароли, имеющие номера семь и тринадцать. Следовательно, логика 104 теперь фактически выбрала все четыре из четырех паролей 108, которые картридж 100 будет раскрывать, которые пронумерованы как один, шесть, семь и тринадцать. Логика 104 может продолжать возвращать эти четыре пароля 108, но не будет возвращать любой другой пароль 108. Таким образом, логика 104 не будет возвращать любой пароль 108, если он не имеет номер один, шесть, семь или тринадцать.
[0027] Энергонезависимое запоминающее устройство 106, используемое для сохранения паролей 108, может представлять собой неперезаписываемое запоминающее устройство с ограничением по считыванию. Пароли 108 записываются в запоминающее устройство 106 только однократно, к примеру, в ходе защищенного процесса изготовления. Заданное максимальное число общего числа паролей 108 может считываться неограниченное число раз. Пароли 108, за исключением этого заданного максимального числа, становятся нечитаемыми, как только конкретно было выбрано заданное максимальное число паролей 108. Таким образом, каждый пароль 108 может быть извлекаемым неограниченное число раз либо может быть неизвлекаемым, но логика 104 не определяет раньше времени, какие пароли 108 какими являются.
[0028] Следовательно, пароли 108, за исключением заданного максимального числа паролей 108, по меньшей мере функционально стираются, как только конкретно было выбрано заданное максимальное число паролей 108. Они могут полностью и безвозвратно стираться из запоминающего устройства 108 логикой 104, например, таким образом, что "отмена стирания" или восстановление стертых паролей 108 считается невозможным. Рассматриваемые пароли 108 могут функционально стираться, так что эти пароли 108 остаются сохраненными в запоминающем устройстве 108, но являются неизвлекаемыми. Например, плавкие вставки в физические части запоминающего устройства 108, в котором хранятся рассматриваемые пароли 108, могут быть разъединены, что делает пароли 108 неизвлекаемыми и в силу этого функционально стертыми, даже если фактически пароли 108 остаются в запоминающем устройстве.
[0029] Запоминающее устройство 106 может сохранять криптографический ключ 112 вместо паролей 108, когда изготавливается картридж 100. В этой реализации, до первого использования картриджа 100, никакие пароли 108 могут не храниться в картридже 108. Наоборот, когда запрашивается пароль 108, картридж 100 формирует пароль 108 "на лету", если заданное максимальное число уникальных паролей 108 еще не было сформировано и предоставлено картриджем 100. Как только заданное максимальное число уникальных паролей 108 было сформировано, криптографический ключ 112 может по меньшей мере функционально стираться способом, описанным в предыдущем абзаце.
[0030] Фиг. 2 показывает примерный способ 200, который может выполнять заменяемый элемент для такого устройства, как картридж 100 с веществом печати для печатающего устройства. Способ 200 может реализовываться как считываемый компьютером код, хранимый на невременном машиночитаемом носителе данных и выполняемый процессором. Таким образом, логика 104 картриджа 100 может осуществлять, например, способ 200. Заменяемый элемент осуществляет способ 200, как только он установлен в хост-устройстве.
[0031] Заменяемый элемент принимает запрос от хост-устройства на конкретное аутентификационное значение из числа аутентификационных значений, которые может хранить элемент (202). Запрос может подписываться цифровым криптографическим ключом или может защищаться другим способом. Заменяемый элемент определяет, отправил ли он ранее рассматриваемое аутентификационное значение в любое хост-устройство (203), в том числе хост-устройство, в котором элемент в данный момент установлен, а также любое другое хост-устройство. Если заменяемый элемент ранее отправил запрашиваемое аутентификационное значение (204), элемент возвращает запрашиваемое значение в хост-устройство (206).
[0032] Однако, если заменяемый элемент ранее не отправил запрашиваемое аутентификационное значение (206), элемент определяет, отправил ли он уже максимальное число уникальных аутентификационных значений (208). Например, из шестидесяти четырех аутентификационных значений, которые может хранить заменяемый элемент, элемент может отправлять не более шестнадцати из этих значений. Если заменяемый элемент уже отправил максимальное число уникальных аутентификационных значений (210), элемент не отправляет аутентификационное значение, которое запросило хост-устройство, в котором установлен этот элемент (212).
[0033] Однако, если заменяемый элемент еще не отправил максимальное число уникальных аутентификационных значений, то элемент отправляет запрашиваемое аутентификационное значение в хост-устройство (214). Заменяемый элемент затем может снова определить, отправлено ли теперь максимальное число аутентификационных значений (216), включая аутентификационное значение, которое элемент только что отправил на этапе 214. Например, если элементу разрешается отправлять только шестнадцать из своих шестидесяти четырех аутентификационных значений, если пятнадцать значений отправлены до выполнения этапа 214, то другое, шестнадцатое аутентификационное значение отправляется на этапе 214, так что теперь отправлено максимальное число из шестнадцати различных аутентификационных значений.
[0034] Если максимальное число уникальных аутентификационных значений теперь отправлено (218), то заменяемый элемент может по меньшей мере функционально стирать аутентификационные значения, которые он хранит и которые не были отправлены (220). Таким образом, в текущем примере, как только шестнадцать различных аутентификационных значений отправлены, другие сорок восемь аутентификационных значений стираются. Следует отметить, что каждый раз тогда, когда осуществляется способ 200 по фиг. 2, заменяемый элемент может отправлять любое аутентификационное значение, которое он отправил ранее, и может отправлять любое аутентификационное значение, которое он не отправил ранее, при условии, что еще не достигнуто максимальное число различных аутентификационных значений, которые будет отправлять элемент.
[0035] Из этапов 206, 212 и 220 и из этапа 218, когда максимальное число уникальных отправленных аутентификационных значений еще не было достигнуто, либо в качестве точки входа в способ 200, заменяемый элемент может принимать от хост-устройства запрос на одно или более хэш-значений, соответствующих одному или более аутентификационных значений (222). Например, заменяемый элемент может принимать запрос на все хэш-значения, соответствующие всем значениям аутентификации, только на одно из хэш-значений, соответствующих только одному из аутентификационных значений, и т.д. Заменяемый элемент может принимать запрос на одно или более хэш-значений даже после того, как аутентификационные значения, которые вообще не были отправлены, стираются на этапе 220, как только на этапе 218 достигнуто максимальное число уникальных аутентификационных значений, которые будет отправлять элемент. Таким образом, заменяемый элемент может не стирать, например, хэш-значения аутентификационных значений, которые он стирает. Этап 222 может рассматриваться как точка входа в способ 200 в том, что запрос на хэш-значения может приниматься до приема запроса аутентификационного значения.
[0036] Фиг. 3 показывает примерный способ 300, который представляет собой пример конкретной реализации этапов 202-220 способа 200. Этапы с идентичными номерами на фиг. 2 и 3 выполняются в способе 300, по меньшей мере в значительной степени, как описано выше относительно способа 200. Числа в круглых скобках указывают, что данный этап способа 300 реализует соответствующий этап способа 200. Таким образом, Y(X) на фиг. 3 означает, что этап Y способа 300 реализует этап X способа 200.
[0037] На фиг. 3 аутентификационные значения могут иметь идентификаторы, такие как соответствующие уникальные идентификаторы, которые также могут упоминаться в качестве адресов. Например, если заменяемый элемент хранит шестьдесят четыре аутентификационные значения, идентификаторы могут составлять один, два, три и т.д., до шестидесяти четырех. Заменяемый элемент принимает от хост-устройства, в котором он устанавливается, запрос аутентификационного значения посредством идентификатора (302). Например, хост-устройство может запрашивать аутентификационное значение, имеющее идентификатор ABCD, может запрашивать шестое аутентификационное значение, такое, что идентификатор запрашиваемого аутентификационные значения составляет шесть и т.д.
[0038] На фиг. 3 заменяемый элемент может иметь две таблицы. Первая таблица имеет число записей, равное максимальному числу различных аутентификационных значений, которые заменяемый элемент будет возвращать в любое хост-устройство. Если заменяемый элемент еще не был использован в каком-либо хост-устройстве, все записи могут быть пустыми. Таким образом, записи первой таблицы первоначально являются пустыми. Первая таблица хранит по меньшей мере идентификаторы аутентификационных значений, которые заменяемый элемент отправляет в любое хост-устройство. Первая таблица также может хранить сами аутентификационные значения. Заменяемый элемент может хранить первую таблицу криптографически защищенным способом.
[0039] Вторая таблица имеет такое число записей, равное числу аутентификационных значений, которые хранит заменяемый элемент, как до того, как заменяемый элемент все еще должен использоваться в каком-либо хост-устройстве. Каждая запись включает в себя по меньшей мере аутентификационное значение. Каждая запись дополнительно может хранить идентификатор аутентификационного значения. Если идентификаторы не сохраняются во второй таблице, то они могут быть определимыми по ссылке. Например, если имеется шестьдесят четыре записи, первая запись может хранить аутентификационное значение с наименьшим идентификатором, вторая запись может хранить аутентификационное значение с идентификатором, равным наименьшему идентификатору плюс значение приращения, и третья запись может хранить аутентификационное значение с идентификатором, равным наименьшему идентификатору плюс два, умноженное на значение приращения, и т.д. Таким образом, шестьдесят четвертая запись может хранить аутентификационное значение, имеющее идентификатор, равный наименьшему идентификатору плюс шестьдесят три, умноженное на значение приращения. Если наименьший идентификатор представляет собой BASE, а значение приращения представляет собой INC, идентификатор n-ого аутентификационного значения, где n является значением от единицы (первое аутентификационное значение) до N (последнее аутентификационное значение), представляет собой BASE+INC×(n-1).
[0040] Таким образом, заменяемый элемент выполняет поиск запрашиваемого идентификатора в первой таблице (303). Таким образом, если заменяемый элемент принял от хост-устройства на этапе 302 запрос аутентификационного значения, имеющего данный идентификатор, заменяемый элемент выполняет поиск данного идентификатора в первой таблице. Если заменяемый элемент принял на этапе 302 запрос пятого аутентификационного значения, идентификатор этого аутентификационные значения может составлять пять, либо может определяться, как описано выше, причем элемент затем выполняет его поиск в первой таблице. Если запрашиваемый идентификатор находится в первой таблице, то это означает, что заменяемый элемент ранее отправил аутентификационное значение, имеющее этот идентификатор. Если запрашиваемый идентификатор не находится в первой таблице, то это означает, что элемент ранее не отправил аутентификационное значение, имеющее этот идентификатор.
[0041] Если идентификатор находится в первой таблице, то заменяемый элемент отправляет аутентификационное значение, имеющее этот идентификатор (206). Например, если первая таблица хранит аутентификационные значения, а также их идентификаторы, то заменяемый элемент может извлекать рассматриваемое аутентификационное значение из первой таблицы. Если первая таблица хранит только идентификаторы, а не сами аутентификационные значения, то заменяемый элемент может извлекать аутентификационное значение, имеющее рассматриваемый идентификатор, из второй таблицы, для возврата в хост-устройство.
[0042] Если идентификатор не находится в первой таблице, то заменяемый элемент определяет, имеются ли пустые записи в первой таблице (306). Если в первой таблице имеются пустые записи, то это означает, что заменяемый элемент еще не отправил максимальное число различных аутентификационных значений. Если в первой таблице нет пустых записей, то это означает, что заменяемый элемент уже отправил максимальное число различных аутентификационных значений. Следовательно, если нет пустых записей (308), заменяемый элемент отказывается отправлять запрашиваемое аутентификационное значение (212).
[0043] Однако, если имеются пустые записи в первой таблице (308), то заменяемый элемент извлекает аутентификационное значение, имеющее запрашиваемый идентификатор, из второй таблицы (310). Элемент находит пустой идентификатор в первой таблице (312) и сохраняет по меньшей мере идентификатор извлеченного аутентификационные значения в пределах этой пустой записи (314). Например, элемент может хранить аутентификационное значение в пределах записи, а также идентификатор этого значения. Заменяемый элемент затем отправляет аутентификационное значение обратно в хост-устройство, которое запросило это значение (214).
[0044] Заменяемый элемент затем определяет, имеет ли первая таблица теперь пустые записи (316). Если больше нет пустых записей после того, как пустая запись, чье местоположение найдено на этапе 312, заполнена на этапе 314, то это означает, что максимальное число различных аутентификационных значений, которые может предоставлять заменяемый элемент, достигнуто. Если все еще имеется по меньшей мере одна пустая запись в первой таблице после того, как пустая запись, чье местоположение найдено на этапе 312, заполнена на этапе 314, то это означает, что максимальное число различных аутентификационных значений, которые может предоставлять заменяемый элемент, еще не достигнуто. Следовательно, если остаются какие-либо пустые записи в первой таблице (318), способ 300 завершается (320).
[0045] Если не остается никаких пустых записей в первой таблице (318), то заменяемый элемент стирает аутентификационные значения из второй таблицы (220). Заменяемый элемент может стирать из второй таблицы только аутентификационные значения, которые он не предоставил, которые являются теми значениями аутентификации, имеющими идентификаторы, которые не сохраняются в первой таблице. Если первая таблица хранит как идентификаторы, так и аутентификационные значения, в отличие от только идентификаторов, то заменяемый элемент может стирать все аутентификационные значения из второй таблицы. Например, заменяемый элемент может полностью удалять вторую таблицу. Заменяемый элемент может стирать вторую таблицу, поскольку элемент хранит аутентификационные значения, которые он все еще будет возвращать в ответ на надлежащие запросы от хост-устройств, в первой таблице. В другой реализации заменяемый элемент отвечает на запросы аутентификационных значений из первой таблицы, и если запрашиваемое аутентификационное значение не хранится в первой таблице, способен извлекать значение из второй таблицы для хранения в первой таблице только в том случае, если имеется доступная пустая запись в первой таблице, в которой следует хранить запрашиваемое значение.
[0046] Фиг. 4 показывает примерный способ 400, который представляет собой другой пример конкретной реализации этапов 202-220 способа 200. Этапы с идентичными номерами на фиг. 2 и 4 выполняются в способе 400 по меньшей мере как описано относительно способа 200. Числа в круглых скобках указывают, что данный этап способа 400 реализует соответствующий этап способа 200. Таким образом, Y(X) на фиг. 4 означает, что этап Y способа 400 реализует этап X способа 200.
[0047] Заменяемый элемент принимает запрос аутентификационного значения от хост-устройства, в котором он устанавливается (202). Заменяемый элемент определяет, было ли отправлено ранее аутентификационное значение (203). Если аутентификационное значение было отправлено (204) ранее, то заменяемый элемент отправляет аутентификационное значение, которое было запрошено, обратно в хост-устройство (206).
[0048] Заменяемый элемент поддерживает счетчик числа уникальных аутентификационных значений, которые элемент предоставляет в любое хост-устройство в реализации по фиг. 4. Счетчик может представлять собой счетчик только для приращения, который может увеличиваться, но не уменьшаться. Счетчик хранится в таком энергонезависимом запоминающем устройстве, как энергонезависимое запоминающее устройство 106, и может криптографически защищаться.
[0049] Заменяемый элемент определяет, равен ли счетчик максимальному числу уникальных аутентификационных значений, которые элемент будет предоставлять в любое хост-устройство, если надлежащим образом запрашивается (402). Если счетчик равен этому максимальному числу уникальных аутентификационных значений, то это означает, что заменяемый элемент уже предоставил максимальное число различных аутентификационных значений, которые он будет предоставлять в любое хост-устройство. Следовательно, если счетчик равен максимальному числу уникальных аутентификационных значений (404), то заменяемый элемент не отправляет запрашиваемое аутентификационное значение в хост-устройство (212).
[0050] Если счетчик не равен максимальному числу уникальных аутентификационных значений (т.е. счетчик меньше этого числа), то это означает, что заменяемый элемент еще не предоставил максимальное число различных аутентификационных значений, которые он будет предоставлять в любое хост-устройство. Следовательно, заменяемый элемент отправляет запрашиваемое аутентификационное значение обратно в хост-устройство (214). Заменяемый элемент также приращивает счетчик (406).
[0051] Заменяемый элемент определяет, равен ли теперь счетчик максимальному числу уникальных аутентификационных значений, которые он будет предоставлять в любое хост-устройство (408). Если счетчик еще не равен максимальному числу уникальных аутентификационных значений (410), то способ 400 завершается (412). Однако, если счетчик теперь равен этому числу (410), то это означает, что заменяемый элемент теперь отправил максимальное число различных аутентификационных значений, которые он будет предоставлять, и таким образом может стирать аутентификационные значения, которые не были предоставлены или не были отправлены в любое хост-устройство (220).
[0052] Фиг. 5 показывает примерный способ 500, который представляет собой третий пример конкретной реализации этапов 202-220 способа 200. Этапы с идентичными номерами на фиг. 2 и 5 выполняются в способе 500 по меньшей мере как описано относительно способа 200. Числа в круглых скобках указывают, что данный этап способа 500 реализует соответствующий этап способа 200. Таким образом, Y(X) на фиг. 5 означает, что этап Y способа 500 реализует этап X способа 200.
[0053] Заменяемый элемент принимает запрос аутентификационного значения от хост-устройства, в котором он устанавливается (202). Заменяемый элемент определяет, было ли отправлено ранее аутентификационное значение (203). Если аутентификационное значение ранее было отправлено в любое хост-устройство (204), то заменяемый элемент отправляет аутентификационное значение обратно в хост-устройство, в котором он устанавливается (206).
[0054] Заменяемый элемент поддерживает флаг, соответствующий тому, предоставил ли элемент максимальное число уникальных аутентификационных значений в любое хост-устройство в реализации по фиг. 5. Флаг может представлять собой только задаваемый флаг, который может задаваться, но который не может сбрасываться. Флаг хранится в таком энергонезависимом запоминающем устройстве, как энергонезависимое запоминающее устройство 106, и может криптографически защищаться.
[0055] Заменяемый элемент определяет, задан ли флаг (502). Если флаг задан, это означает, что заменяемый элемент уже предоставил максимальное число различных аутентификационных значений, которые он будет предоставлять в любое хост-устройство. Следовательно, если флаг задан (504), то заменяемый элемент не отправляет запрашиваемое аутентификационное значение в хост-устройство (212). Если флаг не задан, то это означает, что заменяемый элемент еще не предоставил максимальное число различных аутентификационных значений, которые он будет предоставлять в любой хост. Следовательно, заменяемый элемент отправляет запрашиваемое аутентификационное значение обратно в хост-устройство (214).
[0056] Заменяемый элемент определяет, отправлено ли теперь максимальное число уникальных аутентификационных значений (216). Если максимальное число различных аутентификационных значений все еще не отправлено (218), то способ 500 завершается. Однако, если максимальное число различных аутентификационных значений теперь отправлено (218), то заменяемый элемент задает флаг (508) и может стирать аутентификационные значения, которые еще не были предоставлены или не были отправлены в любое хост-устройство (220).
[0057] В другой реализации флаг задается до отправки аутентификационного значения. Таким образом, в этой реализации определяется, будет ли теперь отправлено максимальное число аутентификаций с отправкой аутентификационного значения, и если так, то флаг задается, и как только флаг задан, отправляется аутентификационное значение. Аутентификационные значения, которые не будут отправлены, также могут стираться в этой реализации до отправки рассматриваемого аутентификационные значения. Боле обобщенно, любое действие, которое выполняется вследствие отправки последнего уникального аутентификационного значения, которое будет предоставлено заменяемым элементом, такое как приращение счетчика, задание флага, сохранение значения в таблице и т.д., может выполняться до отправки этого последнего уникального аутентификационного значения. В этом отношении следует отметить, что, более обобщенно, любое такое действие, которое выполняется в сочетании с отправкой аутентификационного значения (а не последнего аутентификационного значения), может выполняться до фактической отправки аутентификационного значения.
[0058] Фиг. 6 показывает примерный способ 600, который представляет собой четвертый пример конкретной реализации этапов 202-220 способа 200. Этапы с идентичными номерами на фиг. 2 и 6 выполняются в способе 600 по меньшей мере как описано относительно способа 200. Числа в круглых скобках указывают, что данный этап способа 600 реализует соответствующий этап способа 200. Таким образом, Y(X) на фиг. 6 означает, что этап Y способа 600 реализует этап X способа 200.
[0059] Заменяемый элемент принимает запрос аутентификационного значения от хост-устройства (202). Заменяемый элемент определяет, было ли отправлено ранее аутентификационное значение (203). Если аутентификационное значение ранее было отправлено в любое хост-устройство (204), то заменяемый элемент отправляет аутентификационное значение обратно в запрашивающее хост-устройство (206).
[0060] Если заменяемый элемент ранее не отправлял запрашиваемое аутентификационное значение (206), то элемент определяет, отправил ли он уже максимальное число уникальных аутентификационных значений (208). Если заменяемый элемент уже отправил максимальное число уникальных аутентификационных значений (210), то элемент не отправляет аутентификационное значение, которое запрашивает рассматриваемое хост-устройство (212). Способ 600 таким образом завершается.
[0061] Однако, если заменяемый элемент еще не отправил максимальное число уникальных аутентификационных значений (210), то элемент формирует аутентификационное значение из криптографического ключа (602), такого как криптографический ключ 112 картриджа 100 с веществом печати по фиг. 1. Затем в реализации по фиг. 6 пароли 108 не могут формироваться и априори храниться в картридже 100 во время изготовления картриджа 100. Ни разу неиспользованный картридж 100 печати может не иметь каких-либо хранимых на нем паролей 108, а вместо этого хранит только криптографический ключ 112, из которого способны формироваться пароли 108. Таким образом, заменяемый элемент отправляет аутентификационное значение, которое было запрошено и которое элемент только что сформировал, в хост-устройство (214). В этом отношении следует отметить, что реализация по фиг. 6 может использоваться в сочетании с по меньшей мере этапом реализации по фиг. 3, в котором отправленные значения сохраняются в первой таблице. Таким образом, как только аутентификационное значение сформировано, оно может быть сохранено в первой таблице, так что значение не должно формироваться впоследствии, и, если/или когда криптографический ключ по меньшей мере функционально стирается, аутентификационное значение все еще может возвращаться.
[0062] Заменяемый элемент может снова определять, отправлено ли теперь максимальное число аутентификационных значений (216), включая аутентификационное значение, которое элемент только отправил на этапе 214. Если максимальное число аутентификационных значений еще не было отправлено (218), то способ 600 завершается. Однако, если максимальное число аутентификационных значений теперь отправлено (218), то заменяемый элемент может по меньшей мере функционально стирать криптографический ключ (606), так что дополнительные аутентификационные значения не могут формироваться. Криптографический ключ может быть по меньшей мере функционально стерт, как только аутентификационное значение сформировано на этапе 602, и до фактической отправки аутентификационного значения на этапе 214 в одной реализации.
[0063] Различные реализации этапов способа 200, которые описаны относительно способов 300, 400, 500 и 600, могут комбинироваться или модифицироваться различными способами. Например, может применяться только первая таблица способа 300. Одна или более таблиц способа 300 могут применяться в сочетании со счетчиком способа 400 и/или флагом способа 500. Счетчик способа 400 также может использоваться в сочетании с флагом способа 500 без таблицы способа 300. Первая таблица способа 300, счетчик способа 400 и/или флаг способа 500 могут использоваться в сочетании с подходом способа 600.
[0064] Раскрытые здесь технологии могут улучшать или предоставлять другую схему для криптографической защити заменяемого элемента для такого устройства, как картридж с запасом вещества печати для печатающего устройства. Заменяемый элемент предоставляет ограниченное число значений или паролей авторизации, которые он хранит. Как только максимальное число различных значений авторизации предоставлено, запросы других значений авторизации не удовлетворяются, даже если они остаются сохраненными в заменяемом элементе. Такой подход может снижать вероятность того, что попытка третьей стороны извлечь все значения авторизации из заменяемого элемента будет успешной. Кроме того, вероятность того, что обладание только максимальным числом уникальных значений авторизации будет приводить к успешной аутентификации, является очень низкой.