具体实施方式
现在将详细地参考实施例,在附图中图示出了其示例,其中,相同的附图标记在通篇中指代相同的要素。在以下对实施例进行描述以通过参考图来解释本发明。
以下参考附图来详细地讨论示例性实施例。
在以下描述中,相同的附图标记用于类似的要素。提供诸如详细构造和要素之类的在说明书中限定的事件,来帮助示例性实施例的全面的理解。
图1图示出根据示例性实施例的成像设备的配置。如图1所图示的,例如,成像设备包括主体100、在主体100中提供的控制器110和能够被安装在主体100上的可消耗单元200。成像设备能够被具体化为各种类型的设备,诸如打印机、扫描仪、多功能设备、传真机或复印机,其能够在纸张上或在其他各种记录介质上形成图像。根据示例性实施例,主体100可以是成像设备的主体,并且控制器110可以是主控制器。
控制器110可以被安装在成像设备的主体100上以控制成像设备的功能。根据示例性实施例,控制器110是控制成像设备的所有功能的主控制器。
可消耗单元200可以被安装在成像设备的主体100上,并且能够是在成像设备中直接地或间接地涉及的各种类型的单元之一。例如,在激光成像设备的情况下,充电单元、曝光单元、显影单元、转印单元、沉降单元、各种类型的辊、传动带,以及OPC鼓能够是可消耗单元。此外,在使用成像设备中必须更换的各种类型的单元能够被定义为可消耗单元200。
每个可消耗单元200可以具有预先确定的寿命。因此,可消耗单元200可以包括使得能够在适当时间进行更换的、诸如CRUM芯片(顾客可更换单元监视芯片)210之类的微处理器和/或电路。
CRUM芯片210可以被安装在可消耗单元200上并且记录各种信息。CRUM芯片210包括存储器。因此,可以以各种术语来指代CRUM芯片210,诸如存储单元或CRUM存储器(顾客可更换单元监视存储器),但是为了解释的方便起见,将使用术语“CRUM芯片”。
在CRUM芯片中所提供的存储器中,可以存储关于可消耗单元200、CRUM芯片本身,或成像设备的各种特性信息,以及还有关于进行成像作业的使用信息或程序。
存储在CRUM芯片中的各种程序可以不仅仅包括通用应用,而且包括O/S(操作***)程序和加密程序。可以在特性信息中包括关于可消耗单元200的制造商的信息、关于成像设备的制造商的信息、可安装的成像设备的名称、关于制造日期的信息、序列号、型号名、电子签名信息、加密密钥和加密密钥索引。使用信息可以包括以下信息:诸如迄今为止已经打印了多少张纸、从现在起能够打印多少张纸和剩下多少调色剂。特性信息也可以代替地被称为唯一信息。
根据示例性实施例,如以下在表1中所图示的信息能够被存储在CRUM芯片210中。
表1
在CRUM芯片210的存储器中,可以存储可消耗单元200的近似信息和关于寿命的信息、信息、以及可消耗单元200的设置菜单。除成像设备的主体之外,被提供以用于可消耗单元中的O/S可以被存储在存储器中。
CRUM芯片可以包括CPU(未图示),其能够管理存储器、执行存储在存储器中的各种程序,并且执行与成像设备的主体或其他设备的控制器的通信。
除成像设备的初始化外,CPU可以驱动存储在CRUM芯片的存储器中的O/S,并且执行可消耗单元200本身的初始化。当初始化已经完成时或在初始化期间,CPU可以执行成像设备的主体之间的认证。一旦初始化完成,则可以执行与成像设备的主体的加密数据通信。从成像设备的主体传送的各种命令和数据可以根据任意加密算法被加密并且被传送。
在特定事件中,例如,诸如当具有可消耗单元200的成像设备的电力被开启时,或当可消耗单元200被折卸并且然后被再次附接于成像设备的主体100时,除控制器100的初始化外,CPU可以执行本身的初始化。初始化包括各种处理,诸如初始驱动在可消耗单元200中使用的各种应用程序、计算在初始化之后的与控制器110的数据通信中所需要的保密信息、建立通信信道、初始化存储器值、检查何时更换其本身、设置可消耗单元200的内部寄存器值以及设置内部-外部时钟信号。
对寄存器值进行设置可以被定义为设置可消耗单元200内部的功能寄存器值使得可消耗单元200能够根据用户预先确定的各种功能状态来操作的操作。设置内部-外部时钟信号指的是将从成像设备的控制器110提供的外部时钟信号的频率调整为与可消耗单元200内部的CPU使用的内部时钟信号一致的操作。
检查何时更换其本身可以是识别迄今为止所使用的调色剂或墨水的剩余量、预期何时将用完墨水或调色剂并且通知控制器110的操作。一旦在初始化过程中确定调色剂量已经用完,则可消耗单元200可以被具体化为向控制器110通知其处于不可操作状态。因为可消耗单元200本身具有O/S,所以可以根据可消耗单元200的类型和特性来执行各种类型的初始化。
一旦CPU被安装并且提供O/S,则当成像设备被开启时,在控制器110请求与单元200通信之前,可以识别存储在存储单元210中的可消耗单元的剩余量或者再充填次数。因此,与之前相比,可以更早地进行通知可消耗单元的短缺的时间。例如,当调色剂缺乏时,用户可以开启电源,并且然后进行转换到调色剂节省模式的调整并且然后执行成像。这也适用于仅仅特定调色剂缺乏时的情况。
直到进行初始化并且然后被完成为止,CPU可以不对控制器110的命令进行响应。控制器110在周期性地传送命令的同时等待响应,直到存在响应为止。
因此,当接收到作为确认的响应时,可以在控制器110和CPU之间执行认证。在该情况下,由于O/S本身被安装在CRUM芯片210中,所以可以通过CRUM单元210和控制器110之间的交互来执行认证。
控制器110将用于认证的数据或命令加密并且将其传送到CRUM芯片210。在所传送的数据中,可以包括任意值R1。这里,R1可以是在每次认证时改变的随机值,或者可以是预先确定的固定值。接收到数据的CRUM芯片使用任意值R2和所接收的R1来生成部分密钥(section key),并且然后使用所生成的部分密钥来生成MAC(消息认证码)。
包括所生成的MAC和前述R2的信号被传送到控制器110。控制器110使用所接收的R2和R1来生成部分密钥、使用所生成的部分密钥来生成MAC,并且然后通过将所生成的MAC与所接收的信号中的MAC相比较来证明CRUM芯片210。根据各个示例性实施例,电子签名信息或密钥信息可以在此类认证处理中被传送并且在该认证中被使用。
一旦成功进行认证,则控制器110和CRUM芯片执行加密数据通信以用于数据管理。也就是说,当已经输入用户命令时或当成像作业已经被发起或完成时,控制器110使用加密算法来加密用于执行数据读取、写入或附加功能的命令或数据,并且然后将其传送给CRUM芯片210。
CRUM芯片210可以解码所接收的命令或数据,并且执行诸如与解码的命令相对应的数据读取或写入之类的操作。在CRUM芯片210或控制器110中使用的加密算法可以是标准化加密算法。当加密密钥已经泄漏时或当需要加强安全时,此类加密算法是可变的。可以使用诸如RSA非对称密钥算法、ARIA、TDES、SEED、AES对称密钥算法之类的各种加密算法。
照此,在CRUM芯片210和控制器110之间,可以多次执行用于认证和数据交换的通信。在每次通信中,从控制器110向CRUM芯片210传送信号或者反之亦然。在该情况下,所传送的信号包括用于检测包括在对应的信号中的数据的完整性的错误检测数据。这样的错误检测数据是通过对来自先前通信的所传送或接收的信号中所包括的错误检测数据的累积而生成的数据。
也就是说,在控制器110和CRUM芯片210之间,可以执行多个通信,诸如认证1、认证2、认证3、……、认证n、数据通信1、数据通信2、……、数据通信m。根据示例性实施例,在每次通信时或在通信的一些处理中传送的信号中,可以包括完整性检测数据。在这样的完整性检测数据中,累积地反映在先前的通信中使用的完整性检测数据。
接收到信号的一侧使用信号中的完整性检测数据来检测对应的信号的完整性。因此,当确定对应的数据是完整的时,执行下一操作或随后的通信。如果有必要记录所接收的数据,则可以暂时存储包括在该信号中的数据和完整性检测数据。可以使用将被传送到传送了信号的一侧的随后的数据和从先前通信接收的且被暂时存储的完整性检测数据来生成新的完整性检测数据。因此,可以向随后的数据传送已经添加有信号的新的完整性检测数据。在控制器110和CRUM芯片210之间,可以多次执行包括这样的完整性检测数据的此类通信。当执行了包括最后一个完整性检测数据的通信时,可以使用在所接收的最后一个信号中包括的完整性检测数据来执行最终的检测。如果最终的检测没有问题,则可以记录直到那时为止已经被暂时存储的所有数据。
图2图示出根据本公开的示例性实施例的在控制器110和CRUM芯片210之间的示例性通信过程。根据图2,控制器110传送包括数据1和完整性检测数据1的第一信号10。接收到第一信号10的CRUM芯片210使用包括在第一信号10中的完整性检测数据1、以及数据2来生成完整性检测数据2。CRUM芯片210向控制器110传送包括数据2和完整性数据2的第二信号。照此,多次执行包括使用来自先前通信的完整性检测数据所生成的完整性检测数据的信号(30,...,N)。
对将被传送的数据进行逻辑演算的结果值、通过对数据应用数学上预先确定的公式所生成的结果值或对数据进行加密的结果值(即,MAC)可以被用作完整性检测数据。
图3图示出使用完整性检测数据的检测方法。根据图3,当接收到包括数据a和完整性检测数据a的信号时(S310),CRUM芯片210将完整性检测数据a分离(S320)。
CRUM芯片210使用其余数据和在先前的通信期间已经传送的完整性检测数据来生成完整性检测数据a’(S330)。CRUM芯片210然后将因此而生成的完整性检测数据a’与分离的完整性检测数据a相比较(S340),并且如果它们是相同的,则确定是完整的(S350)。如果它们不是相同的,则CRUM芯片210确定数据处于错误状态中,并且停止通信(S360)。为了解释的方便起见,在下文,完整性检测数据a’将被称为经受比较的数据。
当确定对应的数据是完整的时,通过使用将被传送的数据b和检测数据a来生成完整性检测数据b(S370)。因此,向控制器110传送包括数据b和完整性检测数据b的信号(S380)。
图3图示出例如在CRUM芯片210中执行的示例性检测处理,但是也可以在控制器110中执行相同的处理。也就是说,当控制器110接收到包括数据b和完整性检测数据b的信号时,其分离完整性检测数据b,并且执行检测。该检测方法类似于S330至S370,并且因此将省略重复的解释和说明。
可以以各种类型来设计在控制器110和CRUM芯片210之间传送和接收的信号的配置。也就是说,在信号中包括的数据可以包括以下中的至少一个:命令、将被记录的信息、关于根据命令的操作的结果信息、关于涉及先前所接收的信号的完整性检测的结果信息、和通知完整性检测数据的位置的指示符信息。可以从在控制器110和CRUM芯片210之间最初传送和接收的信号中排除关于完整性检测的结果信息。用于检测完整性数据的方法可以用于上述通信过程中的每个通信操作,但是在必要时也可以仅仅应用于在全部通信过程期间的一些或重要的通信操作。
图4图示出使用具有不同的格式的(例如,不同于图2的那些格式)信号来检测完整性的处理的示例性实施例。根据图4,控制器110传送包括数据和完整性检测数据1的信号(S410)。这里,数据包括读取命令(CMD)数据1和指示符U1。读取命令(CMD)数据1不仅仅包括命令而且也包括读取目标或存储器地址。U1指的是取命令(CMD)数据1之后的指示符信息。指示符信息U1指的是通知信号中的完整性检测数据的解析的位置的符号。指示符信息可以被表示为固定数量的比特。例如,对于指示符信息可以使用五个字节。另一方面,读取命令(CMD)数据1根据数据的内容是可变的,并且因此完整性检测数据1的尺寸也是可变的。
当接收到信号时,CRUM芯片210使用包括在信号中的完整性检测数据1来执行完整性检测(S415)。CRUM芯片210能够使用将被传送的数据和完整性检测数据1来生成完整性检测数据2,并且传送包括这些的信号(S420)。如图4所图示的,在将被传送的信号中,包括有作为根据读取命令(CMD)数据1从提供在可消耗单元100中的存储器中读取的数据的读取数据1、指示根据读取命令(CMD)数据1而执行的操作的结果的结果数据2、指示符U2和完整性检测数据2。
控制器110将完整性检测数据2从所接收的信号分离并且执行完整性检测(S425)。然后,如果存在随后的读取命令(CMD)数据3,则控制器110使用读取命令(CMD)数据3和完整性检测数据2来生成完整性检测数据3,并且然后向CRUM芯片210传送包括读取命令(CMD)数据3、指示符U3和完整性检测数据3的信号(S430)。
如图4所图示的,例如,执行(S440、S450、S460、S470、S485)使用多个完整性检测数据4、5、6、T1和T2的通信,后面因此是完整性检测(S435、S445、S455、S465)。当从CRUM芯片210接收到最终的通信信号时(S470),CRUM芯片210使用在最终的通信信号中包括的完整性检测数据T1来检测已经在全部的通信过程中传送和接收的并且被暂时存储的数据的完整性(S475)。如果作为最终检测的结果确定数据是完整的,则将已经被暂时存储的数据存储在非易失性存储器(未图示)中(S480)。同样地,当从CRUM芯片210传送最终的通信信号时,控制器110也使用在最终的通信信号中包括的完整性检测数据T2来执行全部的完整性检测(S490)。因此,如果确定数据是完整的(S495),则将已经被暂时存储的数据存储在非易失性存储器中。
通过累积在先前的通信中使用的完整性检测数据来生成在这样的通信过程中使用的完整性检测数据。
根据示例性实施例,可以如下处理完整性检测数据:
完整性检测数据1=E(读取CMD数据1|U1)
完整性检测数据2=E(读取CMD数据2|结果数据2|U2|完整性检测数据1)
完整性检测数据3=E(读取CMD数据3|U3|完整性检测数据2)
完整性检测数据4=E(读取CMD数据4|结果数据4|U4|完整性检测数据3)
完整性检测数据5=E(写入CMD数据5|U5|完整性检测数据4)
完整性检测数据6=E(读出数据6|U6|完整性检测数据5)
完整性检测数据T1=E(写入CMD数据L1|U-T1|完整性检测数据T1-1)
完整性检测数据T2=E(结果数据L2|U-T2|完整性检测数据T1)。
在前述公式中,项“E()”指示应用预先确定的公式以获取结果值的函数。照此,可以根据将先前的完整性检测数据和将被传送的全部的数据相加、应用诸如XOR(异或)之类的各种逻辑计算、根据在控制器110和CRUM芯片210之间将数据带入其他已知的公式的结果得到的值,以及根据通过应用各种上述各种加密算法进行加密的结果得到的值来生成完整性检测数据。
图5图示出根据本公开的示例性实施例的、其中多个可消耗单元200200-1,200-2,...,200-n被提供在主体500内的示例性成像设备。
如图5中所图示的,成像设备包括控制器510、用户接口单元120、接口单元130、存储单元140和多个可消耗单元200-1,200-2,...200-n。
用户接口单元120执行从用户接收各种命令或者显示并通知各种信息的角色。用户接口单元120可以包括LCD或LED显示器、至少一个按钮,或者扬声器。其也可以根据环境而包括触摸屏。
接口单元130指的是可以与有线连接相连接和/或无线地与主PC或各种外部设备连接以执行通信的配置。接口单元130可以包括各种类型的接口,诸如本地接口、USB(通用串行总线)接口和无线网络接口。
存储单元140执行存储驱动成像设备所必需的各种程序或数据的角色。
控制器510执行控制成像设备的全部操作的角色。控制器510对通过接口单元130接收的数据进行处理,并且将经处理的数据转换为能够形成图像的格式。
控制器510使用多个可消耗单元200200-1,200-2,...,200-n对所转换的数据执行成像作业。取决于成像设备的类型,可以以各种方式提供可消耗单元。
在激光打印机的情况下,充电单元、曝光单元、显影单元、转印单元、沉降单元、各种类型的辊、传动带以及OPC鼓能够是可消耗单元。
在每个可消耗单元200-1,200-2,...,200-n中,可以包括第一CRUM芯片至第n CRUM芯片2210-1,210-2,...,210-n。
每个CRUM芯片可以包括存储器和CPU等等。可以包括密码模块、篡改检测器、接口单元、输出时钟信号的时钟单元(未图示)或生成用于认证的随机值的随机值生成单元(未图示)中的至少一个。
密码单元(未图示)支持加密算法,使得CPU(未图示)能够执行与控制器510的认证或加密通信。密码单元可以支持诸如RSA、ECC非对称密钥算法以及ARIA、TDES、SEED和AES对称密钥算法之类的多个加密算法之中的确定的算法。控制器510也可以支持多个加密算法之中的对应的算法。因此,控制器510可以识别在可消耗单元200中使用哪种加密算法、利用该加密算法继续进行,并且执行加密通信。
因此,即使当发布密钥时,不管应用于可消耗单元200的加密算法的种类如何,密钥可以被容易地安装在主体100上并且执行加密通信。
篡改检测器(未图示)是用于防御各种物理黑客行为尝试(即,篡改)的单元。篡改检测器监视诸如电压、温度、压力、光和频率之类的操作环境,并且当存在诸如decap之类的尝试时,擦除或物理地阻止数据。在该情况下,篡改检测器可以具有单独的电力。
提供在CRUM芯片210内部的存储器可以包括O/S存储器、非易失性存储器或易失性存储器。O/S存储器(未图示)可以存储用于驱动可消耗单元200的O/S。非易失性存储器(未图示)可以非易失地存储各种数据。在非易失性存储器中,可以存储各种信息,诸如电子签名信息、各种加密算法信息、关于可消耗单元200的状态的信息(例如,剩余调色剂量、何时调换调色剂、打印纸的剩余数量等等)、唯一信息(例如,制造商信息、制造日期信息、序列号、产品的型号名等等)和A/S信息。在与控制器通信的过程中所接收的数据可以被存储在非易失性存储器中。
易失性存储器(未图示)可以用作操作所需要的临时存储空间。在易失性存储器中,可以暂时存储在每次通信中被确定为完整的数据和在每次确定中使用的完整性检测数据。
接口单元(未图示)起到连接CPU与控制器的角色并且可以被具体化为串行接口或无线接口。因为与并行接口相比,串行接口使用较小数量的信号,所以其具有节省成本的效果,并且另外,在存在大量噪声的操作环境中——诸如在打印机中,其是适当的。
CRUM芯片可以被提供在每个可消耗单元中。每个CRUM芯片可以执行与控制器和其他CRUM芯片的通信。在通信期间,通过累积在先前的通信中使用的完整性检测数据所生成的新的完整性检测数据被传送。
图6图示出根据本发明的示例性实施例的成像设备。如图6中所图示的,例如,成像设备包括控制器610和接口单元630,并且控制器610包括数据处理单元111、生成单元112、检测单元113和控制单元114。
数据处理单元111生成将被传送到安装在能够被安装在成像设备上的可消耗单元上的CRUM芯片的数据。数据包括命令和将由命令处理的信息中的至少一个。也就是说,在读取命令的情况下,可以一起传送将被读取的存储器的地址或关于将被读取的对象的信息。在写入命令的情况下,可以一起传送将被记录的信息。数据处理单元111可以将数据按原样输出或可以加密数据并且然后输出。可以在数据处理单元111中生成诸如用于认证的命令之类的各种命令和与那些命令有关的信息。可以在执行成像作业之前、在其期间,或在其之后频繁地生成这些命令和信息。例如,当成像设备被开启时,或当可消耗单元200被拆卸并且然后被再次附接时,或当输入了关于成像作业的初始化命令时,控制器110可以传送用于可消耗单元200的认证的认证命令或读取命令。因此,控制器610可以识别在可消耗单元200本身中管理的各种信息,或可以将其存储在成像设备100的主体的存储单元140中。
在完成执行成像作业期间或在其之后,数据处理单元111可以对可消耗单元200生成写入命令和对应的信息来记录关于消耗项的信息,即,关于墨水或调色剂、已打印页数量、打印点数量的信息,以及关于执行打印的用户的历史信息。
生成单元112使用从数据处理单元111输出的数据来生成完整性检测数据。生成单元112可以简单地将从数据处理单元111输出的数据加起来、执行诸如XOR之类的逻辑计算、代入到预先确定的数学公式,或使用加密算法来加密数据,并且输出结果值来作为完整性检测数据。如果存在在先前的通信中使用的完整性检测数据,则生成单元112甚至一起累积和反映先前的完整性检测数据,并且生成完整性检测数据。
在生成单元112中生成的完整性检测数据被添加到在数据处理单元111中生成的数据并且被传送到接口单元630。在图6中,图示为好像数据处理单元111的输出仅仅被提供给生成单元112,但是数据处理单元111的输出可以被直接地提供给接口单元630或被提供给复用器(未图示)。在提供复用器的情况下,生成单元112的输出也被提供到复用器,并且可以以其中一起包括数据和完整性检测数据的信号形式将生成单元112的输出传送到接口单元630。
接口单元630向CRUM芯片210传送包括数据和第一完整性检测数据的信号。
接口单元630可以从CRUM芯片210接收响应信号。为了解释的方便起见,从接口单元传送的信号将被称为第一信号,并且从CRUM芯片传送的信号将被称为第二信号。
在第二信号中包括的第二完整性检测数据是其中第一完整性检测数据已经被累积并且被反映的数据。
检测单元113分离在通过接口单元630接收的第二信号中包括的第二完整性检测数据,并且检测在第二信号中包括的数据的完整性。更具体地,检测单元113在分离第二完整性检测数据和控制器610先前传送的完整性检测数据之后关于其余数据应用与CRUM芯片210之间已知的方法,并且生成完整性检测数据。
检测单元113将因此生成的完整性检测数据与从第二信号分离的第二完整性检测数据相比较,并且确定它们是否是相同的。如果它们是相同的,则检测单元113确定对应的数据是完整的,并且如果它们不是相同的,则检测单元113确定对应的数据处于错误状态中。
控制单元114根据由检测单元114作出的检测结果来执行随后的通信。也就是说,如果确定第二信号包括处于错误状态中的数据,则控制单元114可以停止随后的通信或进行另一尝试。如果确定第二信号处于正常状态——即,处于完整的状态,则控制单元114执行随后的通信。
根据示例性实施例,一旦确定对应的数据处于完整的状态,则控制单元114可以将对应的数据直接地存储到存储单元140。
根据示例性实施例,控制单元114可以暂时存储在每次通信获取的数据和完整性检测数据,并且一旦完成最终的通信,则在存储单元140中记录被暂时存储的数据。
图7图示出根据示例性实施例的成像设备。如图7中所图示的,除包括数据处理单元711、生成单元712和检测单元713和控制单元714的控制器710之外,主体700包括存储单元740以及接口单元730。存储单元740包括临时存贮单元741和存贮单元742。
因此,在临时存贮单元741中,可以暂时存储被确定为完整的数据和完整性检测数据。在随后的通信过程中的完整性检测期间可以使用被暂时存储的完整性检测数据。
也就是说,当在包括第一完整性检测数据的第一信号被传送到CRUM芯片210之后传送关于第一信号的第二信号时,检测单元713从第二信号分离第二完整性检测数据,并且使用剩余数据和存储在临时存贮单元741中的完整性检测数据生成新的完整性检测数据,即经受比较的数据。其后,检测单元713将新生成的完整性检测数据与临时存贮单元741中的第二完整性检测数据相比较,并且可以确定第二信号或在第二信号中包括的数据的完整性。
如果在第二信号是完整的状态中存在将被传送到CRUM芯片210的随后的数据,则生成单元712可以基于随后的数据和第二完整性检测数据来例如生成第三完整性检测数据。因此,接口单元730向CRUM芯片210传送第三完整性检测数据和包括随后的数据的第三信号。也就是说,如图2至图4中所图示的,控制器和CRUM芯片多次执行通信。
检测单元713可以使用在通信过程中接收的信号中所包括的最终的完整性检测数据来对在通信期间接收的全部信号的完整性执行最终的检测。也就是说,如前所述,通过累积和检查先前的完整性检测数据来生成在通信期间传送和接收的完整性检测数据,并且因此最终的完整性检测数据包括从最开始的第一完整性检测数据到恰在当前的完整性检测数据之前的所有数据。因此,如果使用最终的完整性检测数据确定数据是完整的,则基于所有通信内容是可靠的判断,当执行需要记录的通信时,暂时存储的所有数据被存储在存储单元740中的存贮单元742中。
在第一通信期间,控制器710和CRUM芯片210包括通知这是第一通信的指示符,并且然后传送信号,并且在最终的通信期间,包括通知这是最终通信的指示符,并且然后传送信号。因此,当从自对应方接收的信号确定这一点时,控制器710和CRUM芯片210执行前述的最终的检测,并且将数据存储到存贮单元742。
根据示例性实施例,当完成一个成像作业时,或以预先确定的时间段的每个单位,能够执行这样的最终的检测。也能够在输入用于数据存储的用户命令时、在输入关于成像设备的关闭命令时、或者在认证成像设备和可消耗单元的过程中执行。
图6和图7图示出在控制器中包括示例性数据处理单元、生成单元、检测单元和控制单元,但是其不一定局限于这样的实施例。也就是说,除控制器外,可以提供数据处理单元、生成单元、检测单元和控制单元中的至少一个。在该情况下,与图1至图4中所图示的不同,控制器可以仅仅执行原始功能,并且可以通过数据处理单元、生成单元、检测单元和控制单元来执行与CRUM芯片210的通信。
图8图示出根据本公开的示例性实施例的CRUM芯片810的配置。如图8中所图示出的,CRUM芯片810包括接口单元811、检测单元812、生成单元2813、数据处理单元814、控制单元815、临时存贮单元816和存贮单元817。
接口单元811从成像设备的主体(尤其是,安装在主体上的控制器)接收包括第一数据和第一完整性检测数据的第一信号。
检测单元812从第一信号分离第一完整性检测数据,并且检测第一信号的完整性。检测单元812的检测方法类似于在上面图示出的检测方法,并且因此将省略重复的解释。
当确定第一信号是完整的时,临时存贮单元816暂时存储第一数据和第一完整性检测数据。
当存在必须被传送到成像设备的主体的第二数据时,数据处理单元814生成第二数据。
生成单元813使用所生成的第二数据和第一完整性检测数据来生成第二完整性检测数据。
控制单元815控制接口单元向成像设备的主体传送包括第二数据和第二完整性检测数据的第二信号。此外,控制单元815控制CRUM芯片的全部操作。也就是说,如前所述,当CRUM芯片本身具有O/S时,控制单元815可以使用该O/S驱动CRUM芯片。一旦存储了初始化程序,则可以与成像设备的主体分开地执行初始化。
控制单元815执行与从成像设备的主体接收到的每个命令相对应的操作。也就是说,当接收到读取命令时,控制单元815根据该命令读取存储在存贮单元817中的数据,并且通过接口单元811将数据传送给成像设备。在该处理中,可以添加完整性检测数据。
同时,当第三信号包括通过累积和检查第二完整性检测数据所生成的第三完整性检测数据时,检测单元812对第三信号执行完整性检测。
当通信完成时,检测单元812使用在通信的过程中接收的信号中所包括的最终的完整性检测数据来检测在执行成像作业的过程中接收的全部信号。当在完整状态中完成通信时,如果必要,则临时存贮单元816将已经被暂时存储的数据存储在存贮单元817中。
也就是说,当通信完成时,控制单元815控制检测单元812使用最终的完整性检测数据来执行最终的检测。因此,当在检测单元812中作为最终的检测的结果确定对应的数据是完整的时,如果必要,控制单元815将已经暂时存储在临时存贮单元816中的数据存储在存贮单元817中。
图8中的CRUM芯片810的操作类似于图7中的成像设备的操作。也就是说,如在图1至图4中所图示的,成像设备的控制器和可消耗单元的CRUM芯片执行类似地对应于彼此的操作。因此,双方都应当生成完整性检测数据,并且应当具有使用所生成的完整性检测数据来执行检测的算法。
图9图示出根据本公开的示例性实施例的通信方法。可以在成像设备的主体中所提供的控制器中,或在可消耗单元中所提供的CRUM芯片中执行图9中图示出的通信方法。
如图9中所图示的,当生成将被传送的数据(S910)时,使用生成的数据来生成完整性检测数据(S920)。
其后,传送所生成的完整性检测数据和包括数据的信号(S930)。
因此,从对应方接收到与所传送的信号相对应的响应信号(S940)。在响应信号中,包括通过累积和检查从S930传送的完整性检测数据所生成的新的完整性检测数据。
使用响应信号中所包括的完整性检测数据来执行完整性检测(S950)。
因此,根据示例性实施例的,可以累积地使用先前的完整性检测数据来确定每次通信的完整性。
图10图示出根据示例性实施例的通信方法。如图10所图示的,当生成将被传送的数据(S1010)时,基于该数据来生成完整性检测数据(S1020)。其后,传送包括数据和完整性检测数据的信号(S1030)并且接收关于该信号的响应信号(S1040)。因此,从响应信号中分离完整性检测数据(S1050)。
可以使用已经从中分离完整性检测数据的剩余数据和现有的完整性检测数据来确定数据是否是完整的(S1060)。
如果作为确定的结果确定数据是完整的,则暂时存储数据(S1070),而如果确定该数据处于错误状态中,则停止通信(S1100)或可以执行另一尝试。
如果存在处于暂时存储状态中的随后的数据(S1080),则可以反复地执行前述阶段。如果不存在随后的数据,则根据所接收的信号的完整性检测结果来存储被暂时存储的数据(S1090)。
在前述的示例性实施例中,除了在数据通信的首次初始化期间从成像设备的控制器传送的完整性检测数据之外,通过累积和检查在先前的通信期间的完整性检测数据来生成完整性检测数据。结果,在最终的通信期间的完整性检测数据包括在一些(例如,重要的)通信过程中使用的所有完整性检数据。因此,能够记录精确的数据。
因此,可以安全地保护关于控制器和CRUM芯片的信息免遭诸如噪声、不良接触点、消耗品的异常改变、有意的修改和黑客行为之类的外部影响。
根据示例性实施例,可以基于成像设备和安装在成像设备中所使用的可消耗单元上的CRUM芯片,但是前述的通信方法也可以被应用于其他类型的设备。例如,示例性实施包括可以被应用于被制造用于与CRUM芯片而不是与成像设备进行通信的设备之间的通信的情况,并且还可以被应用于正常电子设备和安装在设备中使用的组件上的存储器之间的通信的情况。
例如,可以仅仅对于认证的一些处理使用完整性检测数据。也就是说,在各种事件中——诸如当安装有CRUM芯片的可消耗单元被更换时、当启动成像设备时、当数据更新是必需的时、当预定时间段到达时,等等,被提供在成像设备的主体中的主控制器可以执行与可消耗单元的CRUM芯片的认证。
CRUM芯片可以被设计为执行与成像装置的认证,并且仅仅当确认CRUM芯片适合于对应的成像装置时才执行诸如从CRUM芯片读取或写入数据之类的操作。可能存在能够根据环境被选择的各种类型的认证。例如,在由于可消耗单元的启动或更换而不能使用先前CRUM芯片的信息的情况下,可以使用具有高级别的加密、但是花费相对更长的时间执行的认证方法。在打印过程中为了更新一些数据而需要认证的情况下,可以执行更快且更简单的认证。尽管在打印过程中执行的认证相对简单,但其就加密而言是有力的认证方法,这是因为其基于在利用高级别的加密的先前的认证期间所生成的数据。
图11图示出成像设备的主体和安装在可消耗单元上的CRUM芯片之间的示例性认证处理。参考图11,成像设备的主体100和CRUM芯片210在经历多个认证处理(Auth-1~4)之后执行最终的认证。在各个示例性实施例中,认证处理(Auth-1~4)的数量和次序可以不同。成像设备的主体100和CRUM芯片210可以执行用于生成会话密钥的认证处理和用于检验CRUM芯片的兼容性的认证处理,并且可以在认证处理之前、在认证处理之后或在认证处理之间执行一个或多个认证处理。
如图11中所图示的,认证可以被划分为基本认证和附加认证。基本认证包括用于执行内部认证的第一认证处理(Auth-1),并且附加认证包括诸如Auth-2、Auth-3和Auth-4之类的多个操作。
第一认证处理(Auth-1)执行成像设备100和CRUM芯片210之间的认证,并且执行创建公共会话密钥的操作。成像设备100和CRUM芯片210通过使用诸如对称密钥或非对称密钥之类的加密算法对在通信期间在它们之间交换的所有或部分数据进行加密以使得不能从外面看见数据来与彼此进行通信。
成像设备100和CRUM芯片210使用在第一认证处理(Auth-1)期间交换的数据来创建公共会话密钥,并且使用该会话密钥来加密用于随后的通信的数据。
第二认证处理(Auth-2)指的是将成像设备100的组合表格(C-表格)与CRUM芯片210的组合表格(C-表格)同步的操作。C-表格是用于使成像设备100和CRUM芯片210认证彼此的信息。也就是说,C-表格指的其中记录有当发送查询代码时要操作的值的表格,并且也可以被称为第一表格。
当在成像设备100中执行启动时,或当确定成像设备100的C-表格与CRUM芯片210的C-表格不一致时,可以执行第二认证处理以将成像设备100和CRUM芯片210的C-表格同步。可以在成像设备100中确定成像设备100的C-表格是否与CRUM芯片210的C-表格一致。
图12是图示出示例性第二认证处理的时序视图。如图12中所图示的,成像设备100可以生成PRT数据和REQUEST_CMD(请求命令)(S1110),并且将其传送给CRUM芯片210。可以以各种格式提供REQUEST_CMD。例如,REQUEST_CMD可以是CMD?E(PRT数据)?MAC?CRC(循环冗余校验)或EDC(检错和纠错比特)。“E()”表示密码算法,并且“?”表示预先确定的运算符号,即,加法符号。
当接收到REQUEST_CMD时,CRUM芯片210生成CRUM数据(S1230),并且使用所生成的CRUM数据和所接收的PRT数据来生成C-表格(S1240)。CRUM芯片210可以通过对于CRUM数据和PRT数据应用预先确定的配置函数来生成C-表格。
CRUM芯片210可以生成包括所生成的CRUM数据的RESPONSE(S1250),并且向成像设备100传送所生成的RESPONSE(S1260)。可以使用E(CRUM数据)?MAC?CMD结果?CRC或EDC的方法来生成RESPONSE。
成像设备100使用所接收的CRUM数据和PRT数据来生成C-表格(S1270)。成像设备100也可以通过应用预先确定的配置函数来生成C-表格。因此,成像设备100和CRUM芯片210可以分别具有相同的C-表格。
当完成第二认证处理(Auth-2)时,可以执行第三认证处理(Auth-3)。第三认证处理(Auth-3)可以是其中成像设备100和CRUM芯片210同步查询表格(Q-表格)的处理。Q-表格指的其中记录有诸如查询代码之类的用于认证的数据的表格,并且也可以被称为第二表格。
图13图示出示例性第三认证处理。如图13中所图示的,当完成第二认证处理时,成像设备100的主体确定主体中的Q-表格的版本(即,PRT版本)是否大于CRUM芯片210中的Q-表格的版本(S1310)。如果确定PRT版本大于CRUM版本,则成像设备100的主体向CRUM芯片210提供关于Q-表格的信息。因此,CRUM芯片210更新CRUM版本以匹配成像设备的主体的Q-表格版本(S1320)。
另一方面,如果PRT版本小于CRUM版本(S1330),则CRUM芯片210向成像设备100的主体提供关于Q-表格的信息。因此,成像设备100更新PRT版本以匹配CRUM芯片210的Q-表格版本(S1340)。
照此,当双方的Q-表格通过更新已经变为一致时,或如果它们是一致的而无需更新,则执行检查查询代码、即记录在Q-表格中的值的操作(S1350)。检查查询代码的这样的操作可以是第四认证处理。
图14图示出利用成像装置的主体的Q-表格同步Q-表格的示例性处理。如图14中所图示的,成像设备100生成请求CRUM数据的REQUEST_CMD1(S1410),并且将REQUEST_CMD1传送给CRUM芯片210(S1415)。作为对REQUEST_CMD1的响应,CRUM芯片210生成RESPONSE 1(S1420),并且向成像设备100传送RESPONSE 1(S1425)。可以使用E1(E2(PRT QDATA索引)||CRUM数据)||MAC||CMD1结果||CRC或EDC的方法来生成RESPONSE 1。这里,E1指的是加密算法,并且E2(PRT Q DATA索引)可以被定义为通过向Q-表格应用Q-表格索引来获取Q数据并且使用任意的第一加密算法来加密Q数据。
当接收到RESPONSE 1时,成像设备100比较所接收的Q-数据(S1430)。也就是说,成像设备100从存储的Q-表格中检测与已经传送到CRUM芯片210的索引相对应的Q-数据并且将该Q-数据与从CRUM芯片210传送的Q-数据进行比较以确定它们是否彼此一致。如果确定它们不一致,则成像设备100生成REQUEST_CMD2(S1435),并且向CRUM芯片210传送REQUEST_CMD2(S1440)。可以使用E1(E5(PRT Q TBL)||MAC||CRC或EDC的方法来生成REQUEST_CMD2。这里,E5指的是不同于E1和E2的第二加密算法。
当接收到REQUEST_CMD2时,CRUM芯片210将成像设备的Q-表格版本与CRUM芯片210的Q-表格版本相比较,并且如果确定它们不一致(S1445)或应用了与CRUM芯片210的Q-表格的规则不同的规则(S1450),则生成错误响应。因此,CRUM芯片210更新其Q-表格以与PRT Q-表格匹配(S1455),生成RESPONSE 2(S1460),并且向成像设备100传送RESPONSE2(S1465)。可以使用CMD2结果||CRC或EDC的方法来生成RESPONSE 2。
图15是利用CRUM芯片210的Q-表格同步Q-表格的示例性处理的时序视图。如图15中所图示的,成像设备100生成REQUEST_CMD(S1510),并且将REQUEST_CMD传送给CRUM芯片210(S1520)。CRUM芯片210根据接收的命令生成RESPONSE(S1530),并且向成像设备100传送RESPONSE(S1540)。可以通过使用E1(E2(CRUM Q DATA)||E5(CRUMQTBL)||MAC||CMD结果||CRC或EDC的方法来生成RESPONSE。当接收到RESPONSE时,成像设备100检查所接收的RESPONSE的CRUM Q DATA,并且将CRUM Q DATA与RESPONSE CRUM Q DATA相比较(S1550)。如果确定它们彼此不一致,则确定其是错误状态。成像设备100检查所接收的CRUM Q表格是否符合用于Q-表格的规则,并且如果确定Q-表格不是有效的,则确定其是错误状态(S1560)。
如果确定Q-表格不一致,则成像设备100根据所接收的数据来更新Q-表格(S1570)。因此,双方的Q-表格彼此同步。
第二和第三认证处理(Auth-2、Auth-3)是将成像设备100和可消耗单元200的信息同步的处理以便分析在第四认证处理(Auth-4)期间交换的数据。如果现有数据已经是相同的,则可以不执行第三认证处理(Auth-3)。
第四认证处理(Auth-4)是确认兼容性的认证处理。在第四认证处理中,成像设备100和可消耗单元200使用由第一认证处理(Auth-1)生成的会话密钥以及在第二和第三认证处理(Auth-2、3)期间共享的信息来确认可消耗单元200或安装在可消耗单元200上的CRUM芯片210是否适合于成像设备100。
图16是图示出用于执行第四认证处理(Auth-4)的示例性方法的时序视图。如图16中所图示的,成像设备100选择Q索引、C索引等等,生成包括所选择的索引的REQUEST_CMD(S1610),并且向CRUM芯片210传送REQUEST_CMD(S1620)。CRUM芯片210使用所接收的REQUEST_CMD生成CRUM数据,生成包括CRUM数据的RESPONSE,并且向成像设备100传送该RESPONSE(S1640)。
当接收到RESPONSE时,成像设备100生成RPT Q数据(S1650)并且将PRT Q数据在RESPONSE中包括的CRUM数据相比较(S1660)。如果确定它们彼此一致,则确定CRUM芯片210是适当的并且认证完成。
成像设备100和可消耗单元200可以在创建会话密钥的第一认证处理(Auth-1)期间和在确认兼容性的第四认证处理(Auth-4)期间传送/接收包括完整性检测数据的信号。完整性检测数据指的是通过累积地反映在先前所接收的信号中包括的完整性检测数据而生成的数据。如果先前还未接收到包括完整性检测数据的信号——即,如果需要第一次生成完整性检测数据,则可以仅仅使用将被传送的数据来生成完整性检测数据。
在第二和第三认证处理(Auth-2、Auth-3)期间交换的通信数据影响作为第四认证处理(Auth-4)的下一通信过程。因此,即使在中间的认证处理中未使用完整性检测数据,当在第二和第三认证处理(Auth-2、Auth-3)中存在问题时,第四认证处理(Auth-4)也可能失败,由此最终导致认证的失败。因此,不必要在全部的认证处理中包括完整性检测数据,并且可以仅仅在作为重要的认证处理的Auth-1和Auth-4中包括完整性检测数据。然而,这仅仅是示例,并且可以在每次认证处理或在第二和第三认证处理中的至少一个中传送/接收完整性检测数据。
根据示例性实施例,可以在主体100和CRUM芯片210之间执行认证,但是可以在安装在主体100中的主控制器110和CRUM芯片210之间执行这样的认证操作。参考图17和图18来解释在主控制器110和CRUM芯片210之间的示例性认证处理。
图17图示出多个认证处理的过程中的生成会话密钥的示例性第一认证处理(Auth-1)。为了方便解释起见,生成会话密钥的认证处理可以在示例性实施例中被定义为第一认证,但是可以在用于生成会话密钥的认证处理之前执行其他认证处理。
如图17中所图示的,第一认证处理(Auth-1)可以被划分为com-1和com-2。com-1的处理是用于传送数据以使得主控制器100可以使用CRUM芯片210来执行认证操作的处理。在com-1的处理期间传送的信号包括CMD1、DATA1、CRC1、符号、VC1等等。CMD1表示命令,并且可以包括与认证有关的选项或关于将被传送的数据的尺寸的信息。DATA1包括认证所必需的随机数据、与用于认证的加密有关的数据值、在成像装置中存储的特定信息,等等。在第一认证处理的情况下,可以向DATA1传送不仅仅以上提及的随机数据(R1),而且还有诸如关于密钥尺寸的信息、在非对称密钥算法中使用的各种密钥等等的与会话密钥有关的数据,以及存储在成像设备100的主体中的其他信息。根据示例性实施例,可以省略一些以上提及的信息或将其替换为其他信息。
随机数据可以是主控制器110为了认证随机地生成的值。因此,随机数据对于每个认证可以变化,但是有时可以传送暂时地被设置的一个值而不是随机数据。CRC1表示错误检测码。传送CRC1来检查CMD1和DATA1中的错误。除CRC1之外或取代其,可以使用诸如检验和(Checksum)或MAC之类的其他错误检测方法。
com-1中的符号指定完整性检测数据。图17图示出SECU1被用作可以从其他数据中识别完整性检测数据并且显示完整性数据的操作类型的符号的情况。在图17中使用的SECU1是使用完整性检测数据函数表示第一通信的符号。VC1是第一次生成的完整性检测数据。VC1根据特定公式来生成由CMD1、DATA1、CRC1和SECU1串组成的内容。因为VC1是第一次生成的完整性检测数据,所以不是通过累积地反映先前接收的完整性检测数据而是仅仅使用剩余数据来生成VC1。公开了生成VC1的方法。
一旦CRUM芯片210接收到com-1,则CRUM芯片210就传送包括DATA2、SW2、CRC2、SECU2、VC2等等的com-2。如果第一认证处理指的是用于生成会话密钥的认证处理,则com-2的数据可以包括第一随机数据(R1)、第二随机数据(R2)、芯片序列号(CSN)、关于用于非对称密钥算法的密钥的信息、CRUM芯片的内部信息的一部分,等等。第一随机数据(R1)是在com-1接收的值,并且第二随机数据(R2)是从CRUM芯片210生成的值。可以省略在com-2中包括的信息或将其替换为其他信息。
此外,SW2表示结果数据,其示出根据com-1的命令在CRUM芯片210中执行的作业的结果。由于CRC2和SECU2以与com-1中的CRC1和SECU1相同的方式操作,所以将省略关于CRC2和SECU 2的描述。VC2是通过累积地反映作为com-1的完整性检测数据的VC1而生成的完整性检测数据。CRUM芯片210可以通过根据预先确定的方法组合将被传送到com-2的DATA2、SW2、CRC2和SECU2与VC1来生成VC2,在稍后将更详细地解释这一点。
如果如图17中图示地执行第一认证处理,则由主控制器110生成的第一随机数据(R1)和在CRUM芯片210中生成的第二随机数据(R2)可以彼此共享。主控制器110和CRUM芯片210可以分别地使用R1和R2来生成会话密钥。
如图11中所图示的,在经历多个认证处理之后执行最终的认证。在各处理之中,第四认证处理是检查CRUM芯片210或安装在CRUM芯片210中的可消耗单元200的兼容性。在第一认证和第四认证之间,可以添加至少再一个认证处理以为第四认证作准备。
图18图示出确认兼容性的示例性认证处理。在图11中,在多个认证处理当中,最后一次执行作为第四认证的确认兼容性的认证处理,但是次序不限于此。
如图18中所图示的,第四认证处理(Auth-4)包括com-3和com-4。Com-3指的是其中主控制器110向CRUM芯片210传送信号的处理,并且com-4指的是其中CRUM芯片210向主控制器110传送信号的处理。在com-3中,传送CMD3、DATA3、SECT1和VC3。CMD3是表示com-3的命令,并且DATA3表示执行Auth-4操作所必需的数据。
该主控制器110可以事先存储确认CRUM芯片210或可消耗单元200的兼容性的表格。例如,如果存储有多个表格,则DATA3可以包括表格1的任何第一索引信息(索引1)和表格2的任何第二索引信息(索引2)。主控制器110可以使用通过第一认证处理所生成的会话密钥来加密DATA3。SECT1是通知使用完整性检测数据的通信的最后一个操作的符号串,并且VC3是完整性检测数据。主控制器110可以使用CMD3、DATA3、CRC3、SECT1串以及作为迄今为止已经生成的完整性检测数据的VC1和VC2来生成VC3。接收到com-3的CRUM芯片210向主控制器110传送com-4。com-4可以包括DATA4、SW4、CRC4、SECT2、VC4等等。DATA4可以包括使用分别与从com-3接收的第一和第二索引信息相对应的第一值(值1)和第二值(值2)所生成的第三值。主控制器110可以通过将通过com-4确认的第一、第二和第三值与表格相比较来确认CRUM芯片210或可消耗单元200是否适合于成像设备100。公开了SW4、CRC4和SECT2的函数。VC4是通过累积地反映VC1、VC2和VC3所生成的完整性检测数据。
可以在多个认证处理的至少某部分期间传送/接收完整性检测数据。在该情况下,如果存在先前所使用的完整性检测数据,则可以累积地反映对应的完整性检测数据。也就是说,可以如在公式1中总结完整性检测数据:
[公式1]
SECU(n)的VCn=CMD(+)DATA(+)SW(+)CRC(+)符号(+)VC(n-1)
SECT(n)的VCn=CMD(+)DATA(+)SW(+)CRC(+)符号(+)VC(1)(+)VC(2)(+)...(+)VC(n-2)(+)VC(n-1)
在公式1中,(+)可以表示诸如XOR之类的逻辑运算公式或者其他加密算法公式。根据[公式1],可以通过组合将被传送的数据和作为先前接收的完整性检测数据的VC(n-1)中的每一个来生成作为在除最终的认证处理之外的认证处理中所使用的完整性检测数据的SECU(n)的VCn。另一方面,可以通过组合将被传送的数据和在先前的认证处理中传送或接收的全部的完整性检测数据中的每一个来生成作为用于最终的认证处理的完整性检测数据的SECT(n)的VCn。例如,在第n个完整性检测数据的情况下,可以反映1,2,...,n-1的完整性检测数据。因此,如果在认证的过程中存在错误,则可以在最终的认证处理中发现错误并且可以完成认证,或者可以确定认证失败。
图19图示出根据示例性实施例的、在认证处理中使用完整性检测数据的CRUM芯片的示例性配置。CRUM芯片1400可以被安装在各种可消耗单元中并且然后被使用。如图19中所图示的,CRUM芯片1400包括接口单元1410、测试单元1420、生成单元1430和控制器1440。接口单元1410是可以连接到成像装置的主体100的组件。接口单元1410可以采用各种接口方法。例如,可以使用交互集成电路(I2C)。
如果发生需要认证的事件,则接口单元1410可以接收各种信号。例如,接口单元1410可以从主体100接收包括用于认证的第一数据和关于第一数据的第一完整性检测数据的信号。第一数据表示所接收的信号之中的除了第一完整性检测数据之外的数据。图17的第一数据表示CMD1、DATA1、CRC1和SECU1。DATA1可以包括诸如第一随机数据之类的各种数据。
测试单元1420可以通过将第一完整性检测数据(即,VC1)从所接收的信号分离来测试信号的完整性。根据图17的第一认证处理,测试单元1420可以通过运算CMD1(+)DATA1(+)CRC1(+)SECU1来计算VC1。文本单元1420可以将从com-1分离的VC1与直接被计算的VC1相比较,并且如果它们彼此一致则确定com-1是完整的。
如果确定com-1是完整的,则控制器1440可以暂时存储包括VC1的一些必要的数据。控制器1440控制生成单元1430来执行第一认证处理。
生成单元1430使用用于与成像设备的主体认证的第二数据和第一完整性检测数据来生成第二完整性检测数据。生成单元1430可以使用随机值生成算法来生成第二随机数据。根据使用上面所述的公式1的示例性实施例,可以将第二完整性检测数据计算为DATA2(+)SW2(+)CRC2(+)SECU2(+)VC1的结果值。
控制器1440可以使用从主体100接收的数据来执行第一认证操作。控制器1440可以使用从主体100接收的第一随机数据(R1)和由生成单元1430生成的第二随机数据(R2)来生成会话密钥。
控制器1440通过接口单元1410向成像设备的主体100传送包括计算的第二完整性检测数据连同第二数据、即DATA2、SW2、CRC2和SECU2的信号。成像设备的主体100也可以从所接收的信号中检测第一和第二随机数据并且使用检测的数据来生成会话密钥。
认证包括多次认证。也就是说,控制器1440可以在使用第一和第二数据生成会话密钥之后执行多个随后的认证处理。
多个随后的认证处理可以包括如上关于第四认证处理所述的用于兼容性测试的认证处理。在该认证处理期间,可以传送和接收累积地反映已经被传送和接收的完整性检测数据的新的完整性检测数据。
接口单元1410可以从成像装置的主体100接收包括第三数据和第三完整性检测数据的信号。第三完整性检测数据表示使用迄今为止已经被成像设备的主体100和主控制器110使用的完整性检测数据和第三数据所生成的数据。如果第四认证处理是最终的认证处理,则可以反映所有第一和第二完整性检测数据以便生成第三完整性检测数据。
如果接收到第三数据和第三完整性数据,控制器1440控制测试单元1420来测试该数据。测试方法如上所述。
如果基于测试结果确定第三数据不存在问题,则控制器1440控制生成单元1430生成第四完整性检测数据。生成单元1430可以通过在以上描述的公式1中与第四数据一起反映第一、第二和第三完整性检测数据来生成第四完整性检测数据。
如果生成第四完整性检测数据,则控制器1440向成像装置的主体100传送包括第四数据和第四完整性检测数据的信号。
如果第四认证处理是测试兼容性的认证处理,则第三数据可以包括预存在成像装置中的表格的索引信息,并且第四数据可以被实现为包括与索引信息相对应的值的数据。
接口单元1410可以被实现为接触型单元或连接型单元。稍后将更详细地解释接口单元1410的接触类型或者通信方法。
如上所述,取决于示例性实施例,可以部分地或整体地在认证或数据通信过程中使用完整性检测数据。
图20图示出在成像设备或可消耗单元上的记录不是必需的通信情形中利用完整性检测数据的示例性方法。可以在认证处理的一部分中使用完整性检测数据。
如图20中所图示的,主控制器110和CRUM芯片210为了认证执行总共8次通信,并且在该处理期间传送和检查4次完整性检测数据。
在作为第8处理的最后的认证处理中完成最终的完整性测试,并且在作为数据读取写入处理的随后的处理中不进一步使用该最终的完整性测试。也就是说,仅仅在认证1、2、7和8中执行完整性测试处理,并且在认证7和8中进行总体完整性测试。在图20中,传送/接收信号的处理可以被称为一个认证处理。例如,S1510和S1530可以是第一认证处理、S1550和S1560可以是第二认证处理、S1570和S1580可以是第三认证处理,并且S1590和S1620可以是第四认证处理。
如图20中所图示的,主控制器110传送包括数据和完整性检测数据1的信号com-1(S1510)。数据包括认证开始命令数据1(认证命令(CMD)数据1)、认证DATA1和指示符SEC U1。认证开始命令数据1不仅仅包括命令,而且也包括执行认证所必需的数据。SEC U1表示在认证开始命令数据1之后的指示符信息。指示符信息SEC U1表示通知信号内的完整性检测数据的解析位置的符号。指示符信息可以被表示为固定数量的字节。例如,对于指示符信息可以使用5个字节。另一方面,认证数据1的尺寸可以根据数据的内容而变化,并且因此完整性检测数据1的尺寸也可以变化。
一旦接收到com-1,则CRUM芯片210使用在信号中包括的完整性检测数据1来执行完整性测试(S1520)。随后,CRUM芯片210使用将被传送的数据和完整性检测数据1来生成完整性检测数据2,并且然后,传送包括以上数据的信号com-2(S1530)。CRUM芯片210根据认证开始命令数据1来执行可消耗单元的功能并且通过收集因此而生成的随机数据和执行其他功能所必需的数据来配置认证数据2。CRUM芯片210配置表示根据认证开始命令数据1所执行的作业的结果的结果数据2。CRUM芯片210传送作为包括认证数据2、结果数据2、指示符SEC U2和完整性检测数据2的信号的com-2(S1530)。
一旦接收到com-2,主控制器110将完整性检测数据2从所接收的com-2分离并且执行完整性测试(S1540)。
如果确定在以上描述的完整性测试操作中的至少一个中存在错误(S1520、S1540),则主控制器110或CRUM芯片210可以停止认证处理并且确定认证失败。在该情况下,主控制器110可以通过形成在主控制器100上的用户接口单元120来通知认证的失败。
另一方面,如果证实了完整性,则主控制器110和CRUM芯片210顺序地执行随后的认证处理。
在图20中,在第二和第三认证处理中不使用完整性检测数据。在该情况下,即使存在随后的认证作业数据3,则主控制器110向CRUM芯片210传送作为包括认证命令3和认证数据3信号的com-3而不进一步生成完整性检测数据3(S1550)。
当接收到com-3时,CRUM芯片210执行作业而不执行完整性测试。具体地,CRUM芯片210向主控制器110传送作为包括认证数据4和认证结果数据4的信号的com-4(S1560)。
主控制器110也传送作为包括认证命令5和认证数据5的信号的com-5而不执行完整性测试(S1570),并且CRUM芯片210传送作为包括认证数据6和认证结果数据6的信号的com-6(S1580)。可以执行第二和第三认证处理而无需完整性检测数据。
主控制器110在最终的认证处理中再次执行完整性检测数据。也就是说,主控制器110使用作为所有现有的完整性检测数据的完整性检测数据1和2连同认证命令7、认证数据7和SECT 7来生成完整性检测数据7,并且向CRUM芯片210传送作为包括以上数据的信号的com-7(S1590)。
CRUM芯片210最终使用完整性检测数据7来测试贯穿全部的通信过程被传送/接收且被暂时存储的数据(S1600)。如果根据最终的测试结果证实了完整性,则CRUM芯片210确定认证是成功的(S1610)并且执行诸如生成将被传送到成像装置的数据之类的接下来的处理。如果在认证处理中不存在记录在存储器中的任何事物——这指示不存在暂时地被存储的数据,则可以省略在非易失性存储器(未示出)中存储数据的操作。
CRUM芯片210向主控制器110传送作为包括认证数据8、认证结果数据8、SEC T8和完整性检测数据8的信号的com-8(S1620)。为了生成完整性检测数据8,使用作为迄今为止已经被传送/接收的所有数据的完整性检测数据1、2和7。
主控制器110也使用在从CRUM芯片接收的认证8通信信号中包括的完整性检测数据SECT8来执行全部完整性测试(S1630)。如果根据完整性测试证实了完整性(S1640),则变为认证成功状态,并且主控制器110执行诸如生成会话密钥之类的后续操作。同样地,如果在认证处理中不存在记录在存储器中的任何事物——这指示不存在被暂时存储的数据,则可以省略在非易失性存储器(未示出)中存储数据的操作。
随着累积地反映先前所使用的完整性检测数据来生成在这样的通信过程中使用的完整性检测数据。
例如,可以如下处理完整性检测数据:
完整性检测数据1=E(认证CMD/认证数据1/SEC U1)
完整性检测数据2=E(认证数据2/认证结果2/SEC U2/完整性检测数据1)
完整性检测数据T1=E(认证CMD 7/认证数据7/完整性检测数据1/完整性检测数据2)
完整性检测数据T2=E(认证数据8/认证结果8/SEC T2/完整性检测数据1/完整性检测数据2/完整性检测数据T1)。
在上述公式中,E()表示通过应用预先确定的公式来获取结果值的函数。如图17和图18中所图示的,被表示为认证数据或认证结果的数据可以包括已经稳定地用于独立通信的诸如校验和或MAC之类的检验数据。
可以如图21-24中所图示出地配置用于一些认证处理的完整性检测数据。
图21图示出在第一认证处理期间主控制器110向CRUM芯片210传送的第一完整性检测数据。如图21中所图示的,主控制器110通过将通信数据的开始8字节和接下来的8字节应用到特定公式或加密算法来生成新的8字节值,并且通过使最近生成的8字节值与接下来的8字节进行运算来生成接下来的值。使用该方法,主控制器110可以通过直到SECU 1为止生成相同的公式或算法来生成完整性检测数据并且暂时存储所生成的完整性检测数据。如果最终的8字节的数据的数量总计未达8字节,则可以填补诸如0x00的特定值以完成8字节,并且可以省略不足的字节的运算。
当生成完整性检测数据(VC)时,如果完整性检测数据是SECU,则应当使用恰在之前所使用的完整性检测数据。然而,可以第一次传送图21中图示出的完整性检测数据,并且不存在先前的完整性检测数据。在该情况下,可以使用被初始化为诸如0x00之类的特定值的完整性初始数据,或可以执行运算而不包括先前的完整性数据。如果成像设备和CRUM芯片使用相同的方法生成完整性数据,则这样的情况可能不适用。
如果在第一认证处理期间接收到com-1,则CRUM芯片使用CRC来测试CMD和DATA值以检查是否存在问题。CRUM芯片使用包括SECU 1串的以上通信数据根据在图21中解释的用于生成完整性检测数据的方法来生成值并且将该值与在第一认证处理中所接收的信号中所包括的VC1相比较。也就是说,CRUM芯片210以与主控制器110相同的方式生成和比较完整性检测数据。
如果在检验完整性数据时存在问题,则CRUM芯片不执行下一认证处理。在该情况下,成像设备可以检查CRUM芯片的错误,并且因此可以停止或重新开始操作。如果在检验完整性数据时没有问题,则成像设备暂时存储VC1并且执行下一操作。
CRUM芯片210根据DATA的内容来执行用于加密认证的操作,并且生成具有将要在成像装置中使用的加密相关的数据、存储在CRUM芯片210中的特定数据、CRUM芯片的序列号、以及随机数据的com-2来作为DATA。可以使用DATA的所有或一部分作为对称的或非对称密钥、使用加密方法来加密CRUM芯片210。com-2的内容包括DATA、指示根据所接收的命令作业已经成功还是失败的SW、作为错误检测码的CRC、符号、VC1和VC2。在com-2情况下,符号被设置为SECU2串。可以使用图22中图示出的方法来生成完整性检测数据2(即,VC2)。
如图22中所图示的,通过8字节来对DATA2、SW2、CRC2、SECU2,和VC1进行分类,并且使用特定公式或加密算法来顺序地计算分类后的数据中的每一个。可以取决于数据的长度来使用填补,由此生成VC2。所生成的VC2被暂时存储在CRUM芯片210中。
图23和24图示出在第四认证处理中使用的用于生成完整性检测数据的示例性方法和配置。
例如,在图20中,主控制器10当传送com-7时使用完整性检测数据,并且CRUM芯片210当传送com-8时使用完整性检测数据。
Com-7包括表示com-7的CMD、Auth-4操作所必需的DATA、CRC和符号串以及利用完整性检测数据指示通信的结束的VC3。在该情况下,使用在Auth-1中生成的会话密钥来加密DATA。com-7的符号串是SECT1。
如图23中所图示的,使用CMD3、DATA3、CRC3、SECT1串,以及作为迄今为止已经生成的所有完整性检测数据的VC1和VC2来生成VC3。主控制器110暂时存储所生成的VC3。当接收到com-7时,CRUM芯片210以如图23中所图示相同的方式生成完整性检测数据。由于在Auth-1处理期间VC1和VC2被暂时存储在CRUM芯片110中,所以可以生成与VC3的相同完整性检测数据。如果在检验完整性数据时存在问题,则CRUM芯片不执行下一认证处理。在该情况下,成像设备可以检查CRUM芯片的错误,并且因此可以停止或重新开始操作。
如果检验完整性数据不存在没问题,则CRUM芯片210将DATA解密为会话密钥,执行Auth-4所必需的操作,并且生成com-8数据来对成像装置进行响应。Com-8包括DATA、SW、CRC、Auth-4所必需的SECT2串和作为最终的完整性数据的VC4。将DATA加密为会话密钥。
图24图示出用于生成VC4的示例性方法和配置。如图24中所图示的,CRUM芯片210可以通过按8字节顺序地计算DATA4、SW4、CRC4、SECT2串和VC1、VC2、VC3来生成VC4。
当接收到com-8时,成像设备的主控制器110使用暂时存储在成像设备的主体100中的DATA4、SW4、CRC4、SECT2串和VC1、VC2、VC3来生成VC4并且比较它们,以证实完整性。如果在完整性测试中没有问题,则DATA被解密为会话密钥以执行最终的认证操作。因此,当CRUM芯片210或其中安装有CRUM芯片210的可消耗单元200被确认与成像设备100兼容时,确定最终的认证是成功的并且可以执行随后的通信操作。
可消耗单元200可以是可从成像装置的主体100可拆卸的。当可消耗单元200被安装时,其可以被电连接到主体100。可以以接触型或连接型来实现这样的连接,并且可以使用I2C方法来执行可消耗单元200和主体100之间的通信。
图25图示出接触型的接口单元1410的外部配置的示例。如图25中所图示的,可消耗单元200包括用于通信的接触单元2010。成像设备的主体100包括接触单元。当可消耗单元100被安装在主体100上时,接口单元1410接触形成在成像设备的主体100上的接触单元2010以被电连接。
图26图示出接触型的可消耗单元200与成像装置的主体100之间的示例性连接状态。图26图示出接触单元2020、其中可以布置包括主控制器110的各种部件的主板2040以及将主板2040与接触单元2020连接的接线电缆2030。当可消耗单元200如图26中所图示地被安装在主体100上时,形成在可消耗单元200上的接触单元2010接触主体100以彼此电连接。
当如图25和图26中所图示的接触单元是接触型时,固定被接触的一方是没有关系的。因此,如果在成像装置中存在振动,则接触单元2010、2020可能暂时地彼此分离,引起通信的问题。也就是说,如果安装在成像设备上的可消耗单元的接触点分离,则可能交换不正确的数据。然而,如果如上所述在执行认证和数据通信时使用完整性检测数据,则可以解决这样的问题。也就是说,主控制器110或CRUM芯片210可以通过检查当接触点正常地附接于彼此时已经接收的先前的数据的完整性检测数据和在接触点不稳定地附接于彼此时所接收的数据来确定认证失败或通信错误。因此,可以不执行读取或写入数据的操作,以防止错误的信息被记录在可消耗单元200中。
图27图示出作为连接型的接口单元1410的示例性外部配置。参考图27,可消耗单元200包括用于通信的连接器2210。连接器2210被连接到可以位于成像装置的主体100上的端口2220。在连接型中,当接口单元1410是如图27中所图示的连接型时,例如,如果杂质进入连接器2210和端口2220之间或者如果固定单元损坏,则可能出现接触问题。在这种情况下,本发明的示例性实施例可以通过根据各个示例性实施例使用完整性检测数据执行认证或数据通信来阻止执行不正确的操作。
串行通信方法可以用于成像装置的可消耗单元200和主体100之间的通信。例如,可以使用I2C通信方法。
图28图示出根据I2C通信方法可以在可消耗单元200和成像设备的主体100之间传送和接收的信号的示例性各种波形。I2C通信方法包括向从设备供给电力的VCC和GND、用于提供主控制器110和CRUM芯片210之间的同步的时钟的SCL、作为I2C接口的数据线的SDA,等等。照此,I2C通信具有简单的结构并且可以将多个节点连接到一个总线。
可以为单板的电路中的IC之间的通信准备I2C通信方法,并且因此对于在通信期间检查错误不存在配置。然而,在可消耗单元和成像装置之间的通信过程期间,各种通信错误可能发生。
可能发生无法预测的阻力,例如,电噪声干扰可能发生在接触表面上,通信可能受灰尘、调色剂力,等等的影响,或接触表面的接触点可能由于振动而分离。此外,随着时钟(SCL)变为不一致可能在I2C通信方法中传送不正确的通信数据,并且传输数据(SDA)发生改变。
图29图示出图28的I2C信号中的放大的SDA和SCL。如图29中所图示的,SCL信号一次具有8个一致的高/低信号,并且因此当利用SDA来生成高/低信号时表示出1字节的数据。也就是说,一个高/低信号表示1比特SCL或SDA。
根据I2C方法,如果在通信期间出现问题,即,如果存在仅仅1比特的信号的失真,则不可以正常地传送数据。例如,如果在传送4字节数据00000000 00000000 00000000 00000000(十进制数的“0”)时存在问题,并且因此仅仅最开头数字的1比特改变,则可能存在相当大的差,因为其变为10000000 00000000 00000000 00000000(十进制数的“2147483648”)。
然而,根据本发明的示例性实施例,即使在通信期间出现这样的错误,也可以使用先前已经被传送或接收的完整性检测数据来立即测试数据,并且也可以使用完整性检测数据在最终的操作中检查全部数据的完整性。因此,即使接口单元1410以接触型或连接型被连接到主体,或根据I2C通信方法执行主体100和可消耗单元200之间的通信,也可以防止由于不正确的认证或不正确的通信所造成的记录错误的数据。
根据示例性实施例的用于认证和通信的方法可以被分别地编码为软件并且被记录在非暂时型可记录的媒介中。非暂时型可记录的媒介可以被安装在成像装置、可消耗单元中,或CRUM芯片中,和/或各种类型的装置中,并且因此,可以在各种装置装置中实现以上描述的认证和通信方法。
非暂时型可记录的媒介指的是可以半永久地存储数据而不是短时间存储数据的媒介,诸如寄存器、高速缓存和存储器,并且可以被装置读取。以上提及的各种应用或程序可以被存储在诸如CD、DVD、硬盘、蓝光磁盘、USB、存储卡,和ROM之类的非暂时的可记录的媒介中并且被设于其中。尽管已经示出和描述了本发明的一些实施例,但那些本领域技术人员将理解的是,可以在不背离本发明(其范围在权利要求和它们的等同物中被限定)的原理和精神的情况下在该实施例中进行改变。