Patent ID: 12236436

DETAILED DESCRIPTION OF THE DRAWINGS

It is to be understood that the disclosure is not limited to the details of construction and the arrangement of components set forth in the following description or illustrated in the drawings. The disclosure is capable of other examples and of being practiced or of being carried out in various ways. For example, other examples may incorporate structural, chronological, process, and other changes. Examples merely typify possible variations. Individual components and functions are optional unless explicitly required, and the sequence of operations may vary. Portions and features of some examples may be included in or substituted for those of others. The scope of the disclosure encompasses the appended claims and all available equivalents. The following description is, therefore, not to be taken in a limited sense, and the scope of the present disclosure is defined by the appended claims.

Also, it is to be understood that the phraseology and terminology used herein is for the purpose of description and should not be regarded as limiting. The use herein of “including,” “comprising,” or “having” and variations thereof is meant to encompass the items listed thereafter and equivalents thereof as well as additional items. Further, the use of the terms “a” and “an” herein do not denote a limitation of quantity but rather denote the presence of at least one of the referenced item.

In addition, it should be understood that examples of the disclosure include both hardware and electronic components or modules that, for purposes of discussion, may be illustrated and described as if the majority of the components were implemented solely in hardware.

It will be further understood that each block of the diagrams, and combinations of blocks in the diagrams, respectively, may be implemented by computer program instructions. These computer program instructions may be loaded onto a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions which execute on the computer or other programmable data processing apparatus may create means for implementing the functionality of each block or combinations of blocks in the diagrams discussed in detail in the description below.

These computer program instructions may also be stored in a non-transitory computer-readable medium that may direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium may produce an article of manufacture, including an instruction means that implements the function specified in the block or blocks. The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus implement the functions specified in the block or blocks.

Accordingly, blocks of the diagrams support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block of the diagrams, and combinations of blocks in the diagrams, can be implemented by special purpose hardware-based computer systems that perform the specified functions or steps or combinations of special purpose hardware and computer instructions.

Disclosed are example systems and methods for determining the authenticity of a component in an electronic system, such as an imaging/printer system.

Referring toFIG.1, there is shown a diagrammatic view of an imaging system100used in association with the present disclosure. Imaging system100includes an imaging device105used for printing images on sheets of media. Image data of the image to be printed on a media sheet may be supplied to imaging device105from a variety of sources such as a computer110, laptop115, mobile device120, scanner125of the imaging device105, or like computing device. The sources directly or indirectly communicate with imaging device105via wired and/or wireless connections.

Imaging device105includes an imaging device leader component130and a user interface135. Imaging device leader component130may include a processor and associated memory. In some examples, imaging device leader component130may be formed as one or more Application Specific Integrated Circuits (ASICs) or System-on-Chip (SoCs). Memory may be any memory device which stores data and may be used with or capable of communicating with processor. For example, memory may be any volatile or non-volatile memory or combination thereof such as, for example, random access memory (RAM), read-only memory (ROM), flash memory and/or non-volatile RAM (NVRAM) for storing data. Optionally, imaging device leader component130may control the processing of print data. Optionally, imaging device leader component130may also control the operation of a print engine during printing of an image onto a sheet of media.

In one example, imaging device105may employ an electronic authentication scheme to authenticate consumable supply items and/or replaceable units installed in imaging device105. InFIG.1, a representative consumable supply item/replaceable item, such as a toner cartridge150, is shown (other consumable/replaceable supply items can equally be used in addition or instead, such as imaging units and fusers). Supply item150may be installed in a corresponding storage area in imaging device105. To perform authentication of supply item150, imaging device105may utilize an imaging device follower component160incorporated in imaging device105and a supply item follower component165of supply item150.

Both imaging device follower component160in imaging device105and supply item follower component165in supply item150may be configured as follower devices that connect to imaging device leader component130, the imaging device leader component130being configured to act as a leader device. In one example, imaging device follower component160in imaging device105may be similar to or the same as supply item follower component165in consumable supply item150. Optionally, the imaging device follower component160may be programmed differently from supply item follower component165. Imaging device follower component160and supply item follower component165may operate in conjunction with imaging device leader component130to perform authentication functions, as will be explained in greater detail below.

FIG.2is a block diagram depicting imaging device105and supply item150. In this example, a shared bus system200may be employed to control various subassemblies and components (such as supply item150) and/or obtain status reports thereof. The shared bus system200may be an Inter-Integrated Circuit (I2C) interface comprising a serial clock line (SCL) and serial data line (SDA). Various components such as an imaging unit, a toner cartridge150, and other follower or supply devices and/or addressable components and subassemblies capable of receiving and/or handling data such as a fuser, a laser scan unit, and a media feed mechanism, may be connected to shared bus system200(for simplicityFIG.2only shows supply item150connected to the shared bus system200). Imaging device leader component130may be generally configured to control a bus leader, which acts as the leader of the shared bus system200. The bus leader may be implemented as firmware of the imaging device leader component130.

Imaging device follower component160may operate in conjunction with bus leader to facilitate establishing connections between imaging device leader component130and various components and subassemblies (such as supply item150) connected to shared bus system200. For example, imaging device follower component160may be configured to provide authentication functions, safety and operational interlocks, and/or address change functions related to supply item150and other addressable components.

In general, both the imaging device follower component160and supply item follower component165are configured to perform the same cryptographic function F and the results of the calculation of the cryptographic function F are compared to determine the authenticity of the supply item follower component165and therefore the supply item150. This is described further below.

The supply item follower component165may comprise non-volatile memory (NVM). The non-volatile memory may include a block of memory allocated to the calculation of the cryptographic function F.

The imaging device follower component160may also comprise non-volatile memory (NVM). The non-volatile memory may include a block of memory allocated to the calculation of the cryptographic function F.

The NVM of the supply item follower component165and the NVM of the imaging device follower component160may have the same total size. Additionally/alternatively, the block of NVM of the supply item follower component165and the block of NVM of the imaging device follower component160may have the same total size.

The imaging device105may attempt to authenticate the supply item150at any point, for example, at fixed time intervals. Additionally/alternatively, the imaging device105may attempt to authenticate the supply item150shortly after a Power On Reset (POR) or shortly after the supply item150is installed in the imaging device. The below describes a method/system for verifying the authenticity of supply item150upon request from the imaging device105.

Specifically, a method300of verifying the authenticity of the supply item150is detailed below with reference toFIG.3. The method300may be implemented using the arrangement/configuration described in relation toFIG.1and/orFIG.2.

In block310, the supply item follower component165receives a seed. The seed may be stored in the imaging device follower component160and/or generated dynamically by the imaging device follower component160. The seed may be received by the supply item follower component165from the imaging device follower component160.

In block320, the supply item follower component165may store the seed in its block of NVM allocated to the calculation of the cryptographic function F. The seed may be stored at the top/bottom of the block of NVM, or at any other location. The block of NVM is representatively shown below, where, in this example, the block has been filled starting from the top of the block of NVM:

Memory AddressMemory Data0. . .Aseedseed

In block330, the supply item follower component165calculates the output of cryptographic function F with the input of the seed, and in block340stores the calculated output in the block of NVM, together with the stored seed (e.g. without overwriting/deleting the stored seed from the block of NVM). The block of NVM after this step is representatively shown below, where D0=F(seed) and L is the output length of cryptographic function F:

Memory AddressMemory Data0. . .Aseed− LD0Aseedseed

In block350, the supply item follower component165iteratively calculates further outputs of cryptographic function F. For each iteration, the output of cryptographic function F is stored in the block of NVM, together with the stored seed and all previous stored outputs of cryptographic function F (e.g. without overwriting/deleting the stored seed/previous stored outputs from the block of NVM). For each iteration of the calculation of cryptographic function F the input is based on the seed and all previous stored outputs of cryptographic function F. The block of NVM after an iteration i is representatively shown below, where, in this example, Di=F(Di-1∥Di-2∥ . . . D0∥ seed), and where ∥ represents a concatenation:

Memory AddressMemory Data0. . .Aseed− (i + 1)LDi. . .. . .Aseed− 3LD2Aseed− 2LD1Aseed− LD0Aseedseed

In this example, the seed and previous outputs are concatenated in reverse order (i.e. the latest output is the first part of the concatenation and the seed is the last part). With such a reverse order, it becomes more difficult for a non-genuine component to replicate the desired result as every iteration includes an entirely new input string as opposed to the new string being simply extended form the previous string. This ultimately results in the non-genuine component needing to have higher processing power and larger memory (both volatile and non-volatile).

The iterative calculations in block350may continue until the block of NVM is full, or for a predetermined amount of time.

In block360, the authenticity of supply item follower component165is determined based on a selected output or selected outputs of the cryptographic function F of the supply item follower component165, the selected output(s) being from the outputs stored in the block of NVM. The authentication of supply item follower component165based on the output(s) of the cryptographic function F can be carried out in different ways. For example, the stored selected output(s) of the supply item follower component165may be compared with corresponding output(s) from the imaging device leader component130and/or the imaging device follower component160. These corresponding output(s) may be stored upon manufacturing (e.g. when a fixed seed is used) or may be calculated by the imaging device follower component160upon request (e.g. when a changing seed is used).

Specifically, in the situation where the corresponding output(s) are calculated, the imaging device follower component160may contain the same or similar hardware and software as the supply item follower component165and may be configured to generally follow the same steps as the supply item follower component165. Specifically, the imaging device follower component160may: store the seed in its block of NVM allocated to the calculation of the cryptographic function F; calculate the output of cryptographic function F with the input of the seed; store the calculated output in the block of NVM, together with the stored seed (e.g. without overwriting/deleting the stored seed from the block of NVM); iteratively calculate outputs of cryptographic function F, where, for each iteration, the output of cryptographic function F is stored in the block of NVM, together with the stored seed and all previous stored outputs of cryptographic function F (e.g. without overwriting/deleting the stored seed/previous stored outputs from the block of NVM), and for each iteration of the calculation of cryptographic function F, the input is based on the seed and all previous stored outputs of cryptographic function F.

In this manner, the supply item follower component165and the imaging device follower component160perform that same set of calculations using the same cryptographic function F. The results of the imaging device follower component160are assumed to be genuine (as this component is part of the imaging device105) and therefore the stored outputs of the supply item follower component165can be compared with the corresponding outputs of the imaging device follower component160to determine whether they match. If the compared output(s) matches, the supply item follower component165(and therefore the supply item150) may be considered authentic. If the compared output(s) does not match, the supply item follower component165(and therefore the supply item150) may be considered non-authentic.

Additionally/alternatively to comparing selected output(s) for a match, in block360, the method may compare a predetermined threshold time (e.g. stored within the imaging device leader component130and/or the imaging device follower component160) with the total time taken to determine all iterations up to and including a selected iteration of the calculation of the cryptographic function F performed by the supply item follower component165. Upon a determination that the total time is less than or equal to the threshold time, the supply item follower component165may be identified as an authentic component. Upon a determination that the total time is greater than the threshold time, the supply item follower component165may be identified as a non-authentic component.

Additionally/alternatively to comparing selected output(s) for a match, in block360, the method may compare a predetermined threshold time (e.g. stored within the imaging device leader component130and/or the imaging device follower component160) with the total time taken to retrieve a selected stored output or selected stored outputs from the NVM of the supply item follower component165. For example, block360may include the supply item follower component165receiving a request to transmit a selected output (or outputs), the supply item follower component165transmitting the requested selected output(s), and the imaging device follower component160measuring the time taken to receive the result from the supply item follower component165.

Upon a determination that the total time is less than or equal to the threshold time, the supply item follower component165may be identified as an authentic component. Upon a determination that the total time is greater than the threshold time, the supply item follower component165may be identified as a non-authentic component.

With the imaging device follower component160checking the time taken for the supply item follower component165to return the requested selected output(s), the threshold time may be set such that calculating the selected output(s) would mean that the threshold time would be exceeded (and therefore the supply item follower component165being identified as non-authentic), whereas if the selected output(s) were retrieved from NVM of the supply item follower component165the threshold time may be satisfied (and therefore the supply item follower component165can be identified as authentic). In this manner, if counterfeiters are to replicate satisfy the time threshold, they must include a large NVM which increases complexity of the counterfeit component (and cost).

With such configurations/implementations, the cryptographic function F is calculated on increasing amounts of input data as each successive calculation/iteration has an input based on all previous outputs of the cryptographic function F. Accordingly, the supply item follower component165(and the imaging device follower component160) require greater amounts of processing power and writeable memory (both volatile and non-volatile memory). These features make it more complicated (and expensive) to produce a counterfeit component.

The above has been described in relation to a specific implementation/embodiment. However, modifications can be implemented within the scope of the application, some of which are detailed below.

For example, in the above, the imaging device105includes an imaging device leader component130and an imaging device follower component160, where the imaging device follower component160is configured to carry out the same calculations as the supply item follower component165. In a modification, the imaging device follower component160may be omitted and the imaging device leader component130instead carries out all of the authentication steps (i.e. calculates the same calculations as the supply item follower component165and compares the calculations of the supply item follower component165with its own calculations to determine the authenticity of the supply item follower component165).

In the above implementations/embodiments, the various components are configured as leader/follower components. This is purely optional and other communication busses may be used.

Relatively apparent advantages of the many embodiments include, but are not limited to, providing an authentication system/method which is more difficult to satisfy/replicate due to the increased required processing power and writeable memory (both volatile and non-volatile).

It will be understood that the example applications described herein are illustrative and should not be considered limiting. It will be appreciated that the actions described and shown in the example flowcharts may be carried out or performed in any suitable order. It will also be appreciated that not all of the actions described inFIG.3need to be performed in accordance with the example embodiments of the disclosure and/or additional actions may be performed in accordance with other example embodiments of the disclosure.

Many modifications and other embodiments of the disclosure set forth herein will come to mind to one skilled in the art to which these disclosures pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the disclosure is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

Further disclosure is provided below:

Statement 1: A method for determining the authenticity of a supply item in an imaging device, the method comprising of receiving, by a supply item follower component in the supply item communicatively connected to an imaging device leader component in the imaging device, a seed; storing the seed in a block of non-volatile memory in the supply item follower component; calculating, by the supply item follower component, an output of a cryptographic function with the input based on the seed and storing the output in the block of non-volatile memory; iteratively calculating, by the supply item follower component, the outputs of the cryptographic function wherein for each iteration the input for the cryptographic function is based on the seed and all previous outputs, and for each iteration storing the output in the block of non-volatile memory; and determining the authenticity of the supply item based on a selected output of the cryptographic function of the supply item follower component, the selected output being one of the outputs stored in the block of non-volatile memory.

Statement 2: The method of statement 1, further comprising of calculating, by an imaging device component in the imaging device, the output of the cryptographic function based on the seed in the same manner as the calculation by the supply item follower component, and storing the output in a block of non-volatile memory in the imaging device component; and iteratively calculating, by the imaging device component, the outputs of the cryptographic function wherein for each iteration the input for the cryptographic function is based on the seed and all previous outputs in the same manner as the calculation by the supply item follower component, and for each iteration storing the output in the block of non-volatile memory of the imaging device component, wherein the number of iterations of the calculation of the cryptographic function performed by the supply item follower component is the same as the number of iterations of the calculation of the cryptographic function performed by the imaging device component, and wherein determining the authenticity of the supply item comprises comparing the selected output of the cryptographic function of the supply item follower component with the corresponding output of the cryptographic function of the imaging device component to determine if they are the same.

Statement 3: The method of statement 2, wherein the imaging device component is an imaging device follower component in the imaging device communicatively connected to the imaging device leader component.

Statement 4: The method of statement 2, wherein the imaging device component is the imaging device leader component.

Statement 5: The method of statement 2, wherein upon a determination that the selected output of the cryptographic function of the supply item follower component is the same as the corresponding output of the cryptographic function of the imaging device component, the supply item is identified as an authentic supply item, and wherein upon a determination that the selected output of the cryptographic function of the supply item follower component is different from the corresponding output of the cryptographic function of the imaging device component, the supply item is identified as a non-authentic supply item.

Statement 6: The method of statement 2, wherein determining the authenticity of the supply item comprises of the imaging device component requesting the selected output from the supply item follower component; upon receiving the request from the imaging device component, the supply item follower component transmitting the selected output to the imaging device component; and the imaging device component comparing a threshold time with the total time taken to receive the selected output from the supply item follower component after the request from the imaging device component, wherein upon a determination that the total time is less than or equal to the threshold time, the supply item is identified as an authentic supply item, and wherein upon a determination that the total time is greater than the threshold time, the supply item is identified as a non-authentic supply item.

Statement 7: The method of statement 6, wherein upon the supply item follower component receiving the request from the imaging device component the supply item follower component retrieves the existing stored selected output which is stored in the block of non-volatile memory of the supply item follower component.

Statement 8: The method of statement 1, wherein iteratively calculating, by the supply item follower component, the outputs of the cryptographic function stops when the block of non-volatile memory in the supply item follower component is full.

Statement 9: The method of statement 1, wherein iteratively calculating, by the supply item follower component, the outputs of the cryptographic function comprises looping around to start a new chain when the block of non-volatile memory in the supply item follower component is full.

Statement 10: The method of statement 1, wherein the cryptographic function is one of a hash function, a salted hash function, a keyed-hash message authentication code, and an encryption function.

Statement 11: The method of statement 1, wherein the imaging device leader component sends an authentication request to the supply item follower component triggering it to perform the calculations.

Statement 12: The method of statement 1, wherein the supply item follower component sends an encryption of the selected output of the cryptographic function to the imaging device leader component.

Statement 13: The method of statement 1, further comprising the supply item follower component changing the size of the block of non-volatile memory in the supply item follower component.

Statement 14: The method of statement 2, wherein the imaging device component generates a new seed periodically.

Statement 15: The method of statement 2, wherein the imaging device component generates a new seed when the supply item is detected in the imaging device.

Statement 16: The method of statement 1, wherein the imaging device leader component generates a new seed periodically.

Statement 17: The method of statement 1, wherein the imaging device leader component generates a new seed when the supply item is detected in the imaging device.

Statement 18: The method of statement 1, wherein the calculations of cryptographic function are hardware accelerated in the supply item follower component.

Statement 19: An imaging system comprising of: an imaging device having an imaging device leader component; and a supply item having a supply item follower component communicatively connectable to the imaging device leader component, the supply item follower component being configured to receive a seed; store the seed in a block of non-volatile memory in the supply item follower component; calculate the output of a cryptographic function with the input of the seed and store the output in the block of non-volatile memory; and iteratively calculate the outputs of the cryptographic function wherein for each iteration the input for the cryptographic function is the seed and all previous outputs, and for each iteration store the output in the block of non-volatile memory, wherein the imaging device is configured to determine the authenticity of the supply item based on a selected output of the cryptographic function of the supply item follower component, the selected output being one of the outputs stored in the block of non-volatile memory.

Statement 20: The imaging system of statement 16, wherein the imaging device further comprises an imaging device component, the imaging device component being configured to: calculate the output of the cryptographic function with the input of the seed and store the output in a block of non-volatile memory in the imaging device component; and iteratively calculate the outputs of the cryptographic function wherein for each iteration the input for the cryptographic function is the seed and all previous outputs, and for each iteration store the output in the block of non-volatile memory of the imaging device component, wherein the number of iterations of the calculation of the cryptographic function performed by the supply item follower component is the same as the number of iterations of the calculation of the cryptographic function performed by the imaging device component, and wherein determining the authenticity of the supply item comprises comparing the selected output of the cryptographic function of the supply item follower component with the corresponding output of the cryptographic function of the imaging device component to determine if they are the same.