打印机以及打印系统、数据接收装置以及数据发送接收系统的制作方法

文档序号:6413041阅读:435来源:国知局
专利名称:打印机以及打印系统、数据接收装置以及数据发送接收系统的制作方法
技术领域
本发明涉及一种打印机以及打印系统、数据接收装置以及数据发送接收系统,特别是一种确保发送给打印机以及数据接收装置的数据的安全的打印机以及打印系统、数据接收装置以及数据发送接收系统。
背景技术
目前,通过网络共用打印机的打印系统使用越来越广泛。也即,通过在1个网络中,连接多个作为打印客户端的计算机,同时将例如1台打印机连接在该网络中,能够由1台打印机接收来自多个打印客户端的打印数据,进行打印。
这样的使用网络的打印系统中,各个不同的用户能够从各个打印客户端向打印机发送打印数据,进行打印。
然而,如果打印机无条件地对打印客户端所发送的打印数据进行打印,用户就会不管打印机是否设置在所期望的场所都照样进行打印。特别是,在打印机被从以前所使用的场所移动到其他场所的情况下,由于有时候作为网络上的地址的IP地址等并没有变更,因此就会由位于移动之后的场所的打印机,对所发送的打印数据进行打印。这种情况对于希望确保打印数据的安全的用户来说,是不希望发生的。
另外,如果打印机无条件地对打印客户端所发送的打印数据进行打印,对来自本来没有使用该打印机进行打印的权限的打印客户端的打印数据,打印机也会进行打印。这种情况下,无法对能够使用该打印机的打印客户端进行限制,当然不太理想。特别是,考虑到有些用户怀有不正当意图而发送大量的打印数据,因此有必要设置一些打印权限。
另外,例如有时候公司的某个部门所使用的打印机被移动到其他部门并使用。这种情况下,即使对以前具有使用该打印机进行打印的权限的打印客户端,有时候也不希望赋予它们通过该打印机进行打印的权限。这种情况下,人们认识到使打印机侧对来自打印客户端的打印数据,不进行打印的技术的必要性(参考特开平11-331144号公报)。
另外,通过操作网络上的路线信息,在其他位置上设置同样的打印机,并使用同样的网络地址,可以将其他打印机看作真正的打印机。
另外,有些打印机嵌入了用于认证打印机自身的证书,在废弃这样的打印机的情况下,必须将该打印机中所嵌入的证书可靠地删除。然而,如果只将打印机的设置场所变更就让打印机不能够进行打印,与打印机的毁弃相比,能够更安全地进行。

发明内容
本发明为了解决上述以前的问题,目的在于提供一种通过根据打印机所设置的位置信息,对能够打印的打印数据进行限制,确保打印数据以及打印机的安全的打印系统。另外,提供一种通过根据数据接收装置所设定的位置信息,限制能够处理的数据,确保发送数据以及数据接收装置的安全的数据发送接收系统。
为实现上述目的,本发明的相关打印机,处理打印数据,具有打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息;以及第1打印机位置信息取得部,从上述打印机位置信息取得部取得打印机位置信息,将其作为第1打印机位置信息;以及公开键生成部,使用至少包括上述第1打印机位置信息的口令,与给定的数,生成公开键;以及打印数据接收部,接收由上述公开键所加密的打印数据;以及第2打印机位置信息取得部,接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息;以及秘密键生成部,使用至少包括上述第2打印机位置信息的口令,与上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密。
本发明的另一形式,是一种处理打印数据的打印机的控制方法,包括从打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息,将其作为第1打印机位置信息的步骤;以及使用至少包括上述第1打印机位置信息的口令,与给定的数,生成公开键的步骤;以及从打印客户端接收打印数据的步骤;以及接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息的步骤;以及使用至少包括上述第2打印机位置信息的口令,与上述给定的数,生成秘密键的步骤;以及使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密的步骤。
本发明的另一形式,是一种具有至少1台打印机,以及通过网络与上述打印机相连接的至少1台打印客户端的打印系统,上述打印机具有打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息;以及第1打印机位置信息取得部,从上述打印机位置信息取得部取得打印机位置信息,将其作为第1打印机位置信息;以及公开键生成部,使用至少包括上述第1打印机位置信息的口令,与给定的数,生成公开键,上述打印客户端具有打印数据生成部,生成用来通过上述打印机进行打印的打印数据;以及打印数据发送部,通过上述公开键加密上述打印数据,将该被加密的打印数据发送给上述打印机,上述打印机还具有打印数据接收部,接收由上述打印客户端所发送的,通过上述公开键所加密的打印数据;以及第2打印机位置信息取得部,接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息;以及秘密键生成部,使用至少包括上述第2打印机位置信息的口令,与上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密。
本发明的另一形式,是一种处理数据的数据接收装置,包括数据接收装置位置信息取得部,取得用来特定该数据接收装置的设置场所的数据接收装置位置信息;以及第1数据接收装置位置信息取得部,从上述数据接收装置位置信息取得部取得数据接收装置位置信息,将其作为第1数据接收装置位置信息;以及公开键生成部,使用至少包括上述第1数据接收装置位置信息的口令,与随机数,生成公开键;以及数据接收部,接收通过上述公开键所加密的数据;以及第2数据接收装置位置信息取得部,接收上述数据时,从上述数据接收装置位置信息取得部取得数据接收装置位置信息,将其作为第2数据接收装置位置信息;以及秘密键生成部,使用至少包括上述第2数据接收装置位置信息的口令与,上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述数据进行解密。
本发明的另一形式,是一种具有至少1台数据接收装置,以及通过网络与上述数据接收装置相连接的至少1台数据发送装置的数据发送接收系统,上述数据接收装置具有数据接收装置位置信息取得部,取得用来特定该数据接收装置的设置场所的数据接收装置位置信息;以及第1数据接收装置位置信息取得部,从上述数据接收装置位置信息取得部取得数据接收装置位置信息,将其作为第1数据接收装置位置信息;以及公开键生成部,使用至少包括上述第1数据接收装置位置信息的口令,与随机数,生成公开键,上述数据发送装置具有数据生成部,生成用来通过上述数据接收装置进行处理的数据;以及数据发送部,通过上述公开键加密上述数据,将该被加密的数据发送给上述数据接收装置,上述数据接收装置还具有数据接收部,接收由上述数据发送装置所发送的,通过上述公开键所加密的数据;以及第2数据接收装置位置信息取得部,接收上述数据时,从上述数据接收装置位置信息取得部取得数据接收装置位置信息,将其作为第2数据接收装置位置信息;以及秘密键生成部,使用至少包括上述第2数据接收装置位置信息的口令与,上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述数据进行解密。


图1为说明本发明的实施方式1的相关打印系统的构成的一例示意图。
图2为说明本发明的实施方式1的相关打印机的硬件构成的一例示意图。
图3为说明本发明的实施方式1的相关打印客户端的构成的一例示意图。
图4为说明在本发明的实施方式1中,使用公开键与秘密键的打印数据的加密与解密的示意图。
图5为说明本发明的实施方式1的相关打印客户端所执行的公开键请求处理的流程图。
图6为说明本发明的实施方式1的相关打印客户端所具有的公开键表格的构成的一例示意图。
图7为说明本发明的实施方式1的相关打印机所执行的公开键发送处理流程图的一部分(其1)。
图8为说明本发明的实施方式1的相关打印机所执行的公开键发送处理流程图的一部分(其2)。
图9为说明本发明的实施方式1的相关打印客户端所执行的打印请求处理的流程图。
图10为说明本发明的实施方式1的相关打印机所执行的打印执行处理的流程图。
图11为说明本发明的实施方式2的相关打印客户端所执行的公开键发送处理的流程图。
图12为说明本发明的实施方式2的相关打印机所具有的随机数表格的构成的一例示意图。
图13为说明本发明的实施方式2的相关打印客户端所执行的打印请求处理的流程图。
图14为说明本发明的实施方式2中,打印客户端向打印机所发送的打印发送用数据的构成的一例示意图。
图15为说明本发明的实施方式2的相关打印机所执行的打印执行处理的流程图。
图16为说明本发明的实施方式3的相关打印客户端所执行的公开键请求处理的流程图。
图17为说明本发明的实施方式3的相关打印客户端所具有的公开键表格的构成的一例示意图。
图18为说明本发明的实施方式3的相关打印机所执行的公开键发送处理流程图的一部分(其1)。
图19为说明本发明的实施方式3的相关打印机所执行的公开键发送处理流程图的一部分(其2)。
图20为说明本发明的实施方式3的相关打印机所具有的随机数表格的构成的一例示意图。
图21为说明本发明的实施方式3的相关打印客户端所执行的打印请求处理的流程图。
图22为说明本发明的实施方式3中,打印客户端向打印机所发送的打印发送用数据的构成的一例示意图。
图23为说明本发明的实施方式3的相关打印机所执行的打印执行处理的流程图。
图24为说明实施方式4的相关打印客户端所执行的打印请求处理流程图的一部分(其1)。
图25为说明实施方式4的相关打印客户端所执行的打印请求处理流程图的一部分(其2)。
图26为说明实施方式4的相关打印机所执行的打印执行处理的流程图的一部分(其1)。
图27为说明实施方式4的相关打印机所执行的打印执行处理的流程图的一部分(其2)。
图28为说明实施方式4的相关打印机所执行的打印执行处理的流程图的一部分(其3)。
图29为说明在本发明的实施方式5中,使用公开键与秘密键的打印数据的加密与解密的示意图。
图30为说明本发明的实施方式5的相关打印客户端所执行的公开键请求处理的流程图。
图31为说明本发明的实施方式5的相关打印客户端所具有的公开键表格的构成的一例示意图。
图32为说明本发明的实施方式5的相关打印机所执行的公开键发送处理流程图的一部分(其1)。
图33为说明本发明的实施方式5的相关打印机所执行的公开键发送处理流程图的一部分(其2)。
图34为说明本发明的实施方式5的相关打印客户端所执行的打印请求处理的流程图。
图35为说明本发明的实施方式5的相关打印机所执行的打印执行处理的流程图。
图36为说明本发明的实施方式6的相关打印客户端所执行的公开键请求处理的流程图。
图37为说明本发明的实施方式6的相关打印客户端所具有的公开键表格的构成的一例示意图。
图38为说明本发明的实施方式6的相关打印客户端所执行的打印请求处理的流程图。
图39为说明本实施方式的相关打印客户端所执行的打印请求处理流程图的一部分(其1)。
图40为说明本实施方式的相关打印客户端所执行的打印请求处理流程图的一部分(其2)。
图41为说明本实施方式的相关打印机所执行的打印执行处理的流程图的一部分(其1)。
图42为说明本实施方式的相关打印机所执行的打印执行处理的流程图的一部分(其2)。
图43为说明本实施方式的相关打印机所执行的打印执行处理的流程图的一部分(其3)。
图44为说明代替随机数,从打印机向打印客户端发送算法与附加信息的例子的示意图(打印客户端向打印机发送给定的数的情况)。
图45为说明图44的变形例的示意图(打印客户端向打印机发送算法与附加信息的情况)。
图46为说明图44的另一个变形例的示意图(打印客户端不向打印机发送算法而发送附加信息的情况)。
具体实施例方式本发明的实施方式1的相关打印系统,至少使用表示打印机的设置位置的打印机位置信息生成公开键,当打印客户端事先取得该公开键,向该打印机发送打印数据时,发送使用该所取得的公开键对打印数据进行加密所生成的打印发送用数据。这样,接收该打印发送用数据的打印机,在接收时再次至少使用此时的打印机位置信息来生成秘密键,只在能够通过该秘密键对打印发送用数据进行解密的情况下才执行打印。另外,一般来说,在公开键加密法中,生成公开键以及秘密键时使用随机数,但本实施方式中,通过打印机预先登录随机数,使向打印客户端发送公开键时所使用的随机数,与为了解密打印发送用数据而生成秘密键时所使用的随机数相同,如果打印机位置信息不变就能够得到相同的秘密键。下面将进行详细说明。
首先,对照图1,对本实施方式的相关打印系统的构成进行说明。图1为说明本实施方式的相关打印系统的硬件构成的方框图。
如图1所示,本实施方式的相关打印系统,具有与网络10相连接的打印客户端20、22,以及与同一个网络10相连接的打印机30、32。本实施方式中,网络10由使用TCP/IP(transmission control protocol/internet protocol)的互联网构成。但网络10的方式并不仅限于互联网,例如还可以由以太网(注册商标)等的LAN,或以太网与LAN的混合所构成。打印客户端20、22由例如称作主机或个人计算机的各种计算机构成。本实施方式中,特别是,打印客户端20、22生成通过公开键将打印数据加密的打印发送用数据,通过网络10将该打印发送用数据发送给打印机30及/或打印机32。与该网络10相连接的打印客户端的台数是任意的,可以是1台,也可以是多台。另外,该打印客户端并不仅限于计算机,还可以是例如需要打印所拍摄的图像的数码照相机,或将打印图像数据作为内容而储存的内容服务器。
另外,本实施方式中,打印机30、32是所谓的网络打印机。本实施方式中,特别是,打印机30、32从打印客户端20及/或打印客户端22接收打印发送用数据,使用至少包括打印机位置信息的口令,以及保存在该打印机30、32中的随机数,生成秘密键,通过该秘密键对打印发送用数据进行解密。这样,在能够解密该打印发送用数据的情况下,根据该打印发送用数据进行打印,在不能够解密该打印发送用数据的情况下,不根据该打印发送用数据进行打印。
本实施方式中,打印机30、32与网络10直接相连接,各个打印机30、32具有固定网络地址。因此,打印客户端20、22能够通过指定该网络地址,将打印发送用数据发送给打印机30或打印机32。
但是,图1中打印机30、32是与网络10直接相连接的,但也可以通过打印服务器进行连接。另外,与该网络10相连接的打印机的台数是任意的,可以是1台,也可以是多台。
图2为说明打印机30的内部构成的方框图。另外,打印机32的内部构成与打印机30相同。
如图2所示,打印机30具有CPU(Central Processing Unit)40、RAM(Random Access Memory)42、ROM(Read Only Memory)44,它们之间通过内部总线46相连接。另外,该内部总线连接有通信用接口48,通过该通信用接口48与上述网络10相连接。另外,内部总线46连接有接口50,该接口50与打印引擎52相连接。
另外,内部总线46连接有位置检测部54。该位置检测部54具有特定打印机30的设置位置的功能。本实施方式中,例如由GPS(global positioningsystem)构成,能够特定该打印机30所设置的位置的经度、纬度、高度。目前的GPS的精度,在经度、纬度、高度中分别为±10m左右。
但该位置检测部54并不仅限于使用GPS的构成,例如在该打印机30通过无线LAN与网络10相连接的情况下,可以通过容纳该打印机30的无线基站,来特定打印机30的位置。或者,也可以利用PHS(Personal HandyphoneSystem)等移动通信技术,特定打印机30的位置。
另外,内部总线46通过接口56与硬盘58相连接。本实施方式中,该硬盘58具有作为可重写型非易失性记忆装置的功能。
图3为说明打印客户端20的内部构成的方框图。另外,本实施方式中,打印客户端22的构成也与打印客户端20相同。
如图3所示,本实施方式的相关打印客户端20,由计算机主机60与显示器62构成。
计算机主机60具有CPU64、RAM66以及ROM68,它们之间通过内部总线70互相连接。另外,该内部总线70连接有通信用接口72,通过该通信用接口70与上述网络10相连接。
另外,内部总线70连接有接口74,该接口74与大容量记忆装置—硬盘76相连接。本实施方式中,该硬盘76具有作为可重写型非易失性记忆装置的功能。另外,内部总线70连接有接口78,通过从该接口78延伸的电缆80与上述显示器62相连接。
接下来,对本实施方式的相关打印系统中,例如打印客户端20通过打印机30进行打印的情况下的处理,进行概要说明。
这种情况下,打印客户端20预先例如从打印机30得到该打印机30的公开键。本实施方式中,该公开键的取得是通过网络10进行的。也即,打印机30对请求发送公开键的打印客户端是否具有正当权限进行确认,只在具有正当的权限的情况下,向其通知自己的公开键。该公开键,由打印机30,使用至少包括表示打印机30的设置位置的位置信息的口令,以及该打印机30所生成并保存的随机数,通过公开键加密法生成。也即,打印机30具有保存通过公开键加密法所使用的随机数的功能。
但此时已生成的秘密键被废弃。也即,一般的公开键加密法中,公开键与秘密键是同时生成的。因此,本实施方式中,在生成公开键时伴随生成秘密键的情况下,也废弃该秘密键。这样,在该打印机30的设置场所被移动的情况下,通过移动前所生成的公开键所加密的打印发送用数据,不能够被移动后的打印机30解密。
但打印机30的公开键并不一定要通过网络10通知给打印客户端20。例如,打印客户端20的用户如果具有正当权限,就能够到打印机30的设置场所操作该打印机30,因此,可以由用户操作打印机30的控制面板,取得打印机30的公开键。这种情况下,用户可以将打印机30的公开键记录到软盘等记录媒体上,由打印客户端20对其进行读取。
接下来,打印客户端20的用户如图4所示,生成作为应当打印的数据的打印数据D05,命令打印客户端20指定打印机30进行打印。
打印客户端20,使用预先取得的打印机30的公开键,对打印数据D05进行加密,生成打印发送用数据D10。这里,打印数据D05,表示通过打印机30驱动打印引擎52进行打印所必须的原本的打印数据。另外,打印发送用数据D10可以含有如图4所示的打印数据D05之外的数据。
接收该打印发送用数据D10的打印机30,如图2所示,将所接收的打印发送用数据D10暂存在RAM42中。之后,打印机30使用秘密键解密该被加密的打印发送用数据D10。也即,打印机30,使用至少包括打印机位置信息的口令,以及该打印机30所生成并保存的随机数,通过公开键加密法生成秘密键。
接下来打印机30判断打印发送用数据D10是否能够被解密。在能够解密打印发送用数据D10的情况下,根据解密打印发送用数据D10所得到的打印数据D05进行打印,在不能够解密的情况下,不进行打印。
接下来,使用流程图对上述处理内容进行详细说明。首先对在打印客户端20、22取得公开键的情况下,打印客户端20、22与打印机30、32的处理进行说明。
图5为说明打印客户端20、22所执行的公开键请求处理的流程图。该公开键请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的公开键请求程序而实现的。另外,本实施方式中,在用户向打印客户端输入启动该公开键请求处理的命令时,该公开键请求处理被启动并执行。
另外,下面假设打印客户端20向打印机30请求公开键的情况,对处理进行说明。
如图5所示,该公开键请求处理中,首先打印客户端20与打印机30相连接(步骤S100)。本实施方式中,打印客户端20通过指定打印机30的网络地址,确立打印客户端20与打印机30之间的连接。另外,本实施方式中,通过SSL(Secure Socket Layer)通信等,在确保安全的基础上,确立打印客户端20与打印机30之间的连接。
接下来,打印客户端20向打印机30发送认证信息(步骤S102)。本实施方式中,使用用来特定打印客户端的打印客户端ID,与密码的组合作为该认证信息。因此,打印客户端20将打印客户端ID与密码发送给打印机30。
之后,打印客户端20,从打印机30接收表示是否接受了该认证的认证结果,根据该认证结果,判断打印机30是否接受了该认证(步骤S104)。在认证未被接受的情况下(步骤S104否),返回上述步骤S102。
另外,在认证被接受的情况下(步骤S104是),打印客户端20向打印机30发送公开键取得请求(步骤S106)。之后,判断是否从打印机30接收到了公开键(步骤S108)。在没有从打印机30接收到公开键的情况下(步骤S108否),重复该步骤S108进行等待。
另外,在从打印机30接收到公开键的情况下(步骤S108是),保存该公开键(步骤S110)。本实施方式中,打印客户端20预先在硬盘76中设置有公开键表格TB10,将所取得的公开键保存在该公开键表格TB10中。
图6为说明该公开键表格TB10的构成的一例示意图。如图6所示,公开键表格TB10具有保存用来对打印机进行特定的信息的项目TD10,以及使所取得的公开键与打印机相对应而保存的项目TD11。这样,公开键表格TB10,能够将关于多个打印机的公开键,对每个打印机进行保存。另外,通过这样在硬盘78的公开键表格TB10中保存公开键,即使打印客户端20的电源被切断并被再次接通的情况下,也能够将以前所取得的公开键从硬盘78中原封不动地读出并使用。
如图5所示,接下来打印客户端20切断与打印机30之间的连接(步骤S112)。这样,图5中所示的公开键请求处理结束。
接下来对照图7以及图8,对与打印客户端20、22的公开键请求处理相对应,打印机30、32所执行的公开键发送处理进行说明。图7以及图8为说明打印机30、32所执行的公开键发送处理的流程图。该公开键发送处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的公开键发送程序而实现的。另外,该公开键发送处理,是对应于上述公开键请求处理而被启动的。
这里也和上述一样,假设打印客户端20向打印机30请求公开键的情况而进行说明。
如图7所示,打印机30等待来自打印客户端20的连接,在打印客户端20请求连接的情况下,确立与打印客户端20之间的连接(步骤S120)。这与上述打印客户端20侧的步骤S100相对应。也即,通过SSL通信等,在确保安全的基础上确立连接。接下来,打印机30判断是否接收到了来自打印客户端20的认证信息(步骤S122)。在没有接收到认证信息的情况下(步骤S122否),重复该步骤S122的处理进行等待。
另外,在从打印客户端20接收到了认证信息的情况下(步骤S122是),判断该认证信息与该打印机30中所预先登录的认证信息是否一致(步骤S124)。具体的说,如上所述,由于打印客户端20发送打印客户端ID与密码作为认证信息,因此判断该打印客户端ID以及密码是否与该打印机30中所预先登录的打印客户端ID以及密码相一致。
在认证信息不一致的情况下(步骤S124否),打印机30向打印客户端20发送表示不接受认证的认证结果(步骤S126),在后述的图8的步骤S154中,结束与该打印客户端20之间的连接。另外,在认证信息一致的情况下(步骤S124是),打印机30向打印客户端20发送表示接受认证的认证结果(步骤S128)。
接下来,打印机30判断是否从打印客户端20接收到公开键取得请求(步骤S130)。在没有接收到该公开键取得请求的情况下(步骤S130否),重复该步骤S130的处理进行等待。
另外,在从打印客户端20接收到公开键取得请求的情况下(步骤S130是),打印机30取得该打印机30的机器固有信息(步骤S132)。这里,机器固有信息是指,分配给该打印机30的识别信息,例如打印机30的制造序列号、MAC地址等。
接下来,如图8所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S140)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成公开键。
接下来,打印机30使用机器固有信息与打印机位置信息生成口令(步骤S142)。该口令的生成手法有多种,本实施方式中,通过单纯地在机器固有信息后添加打印机位置信息而生成口令。另外,口令还可以含有除了该机器固有信息与打印机位置信息之外的数据。
接下来,打印机30判断是否预先登录了该打印机30的随机数(步骤S144)。在没有登录随机数的情况下(步骤S144否),打印机30生成1个随机数,并登录到硬盘58中(步骤S146)。也即,本实施方式中,各个打印机只生成1次随机数,并将其登录到硬盘58中进行保存。该随机数的生成,是在打印机30首次进行该公开键发送处理时进行的。另外,由于硬盘58中保存有随机数,即使在打印机30的电源被关闭的情况下,也非易失性地进行保存。因此,即使在再次接通打印机30的电源的情况下,也能够将此前所使用的随机数有效地进行保存。另外,该打印机30的随机数的生成,并不一定要在公开键发送处理中进行,也可以在其他处理中进行。例如,可以在打印机30从工厂出库时,预先生成随机数并将其登录到硬盘58中进行保存。
另外,在随机数被保存在硬盘58中的情况下(步骤S144是),跳过该步骤S146的处理。
接下来,打印机30从硬盘58中读出从而取得该打印机30的随机数(步骤S148)。
接下来,打印机30使用步骤S142中所生成的口令,与步骤S148中所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S150)。公开键加密法中,如果所使用的口令与随机数相同,即使再次生成公开键与秘密键,也生成相同的公开键与秘密键。接下来,打印机30在该所生成的公开键与秘密键中,只将公开键发送给打印客户端20(步骤S152)。另外,并不保存秘密键而将其废弃。
接下来,打印机30结束与打印客户端20的连接(步骤S154)。这样,本实施方式的相关公开键发送处理结束。
接下来,对在打印客户端20、22希望进行打印时,向打印机30、32发送该打印请求的情况下的打印客户端20、22以及打印机30、32的处理,进行详细说明。
图9为说明打印客户端20、22所执行的打印请求处理的流程图。该打印请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的打印请求程序而实现的。本实施方式中,在用户向打印客户端输入打印命令时,该公开键请求处理被启动并执行。
这里假设打印客户端20向打印机30请求打印的场合进行说明。
如图9所示,打印客户端20根据用户的打印请求,生成打印数据D05(步骤S160)。该打印数据D05是在打印机30是通常的打印机的情况下,实际进行打印所必须的数据。
接下来,打印客户端20从硬盘76的公开键表格TB10中读出打印机30的公开键(步骤S162)。接下来,打印客户端20使用打印机30的公开键,对打印数据D05进行加密,生成打印发送用数据D10(步骤S164)。另外,打印发送用数据D10还可以含有打印数据以外的数据。
接下来,打印客户端20确立与该打印机30之间的连接(步骤S165)。接下来,打印客户端20将该被加密的打印发送用数据D10发送给打印机30(步骤S166)。具体的说,是指定打印机30的网络地址,向网络10发送打印发送用数据D10。
接下来,打印客户端20判断是否从打印机30接收到打印结果信息(步骤S168)。在没有接收到打印结果信息的情况下(步骤S168否),重复该步骤S168的处理进行等待。另外,在接收到打印结果信息的情况下(步骤S168是),判断该打印结果信息是否为打印完成通知(步骤S170)。
在该打印结果信息是打印完成通知的情况下(步骤S170是),表示在打印机30中正常结束了打印,因此,向用户通知在打印机30中完成了打印这一消息(步骤S172)。另外,在所接收到的打印结果信息不是打印完成通知的情况下(步骤S170否),判断该打印结果信息是否为无法解读通知(步骤S174)。
在该打印结果信息是无法解读通知的情况下(步骤S174是),向用户通知由于打印机30不能够对打印发送用数据D10进行解密,因此不能够进行打印(步骤S176)。另外,在该打印结果信息不是无法解读通知的情况下(步骤S174否),可以认为是其他某种错误,向用户发送对应于该错误种类的通知(步骤S178)。
在这些步骤S172、步骤S176以及步骤S178的通知之后,打印客户端20切断与打印机30的连接(步骤S179)。这样,就结束了该打印客户端20中的打印请求处理。
接下来,对照图10,对与打印客户端20、22的打印请求处理相对应,打印机30、32所执行的打印执行处理进行说明。图10为说明打印机30、32所执行的打印执行处理的流程图。该打印执行处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的打印执行程序而实现的。本实施方式中,该打印执行处理,以给定的时间间隔稳态执行。
这里也和上述一样,假设打印客户端20向打印机30请求打印的情况而进行说明。
如图10所示,打印机30等待来自打印客户端20的连接,在打印客户端20请求连接的情况下,打印机30通过网络10确立与打印客户端20之间的连接(步骤S180)。在确立了与打印客户端20的连接之后,打印机30判断是否从网络10接收到了打印发送用数据D10(步骤S181)。在没有接收到任何打印发送用数据D10的情况下(步骤S181否),重复该步骤S181的处理进行等待。
另外,在接收到打印发送用数据D10的情况下(步骤S181是),打印机30取得自己的机器固有信息(步骤S182)。接下来,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S184)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,由于该打印机30有可能被设置在用户所不期望的场所,在这种情况下使得通过打印机30的打印不能够进行。
接下来,打印机30根据机器固有信息与打印机位置信息,生成口令(步骤S186)。该口令的生成方法,必须与上述公开键发送处理中的步骤S142的方法相同。这是因为,如果口令不相同,就无法对通过发送给打印客户端的公开键所加密的打印发送用数据,通过秘密键进行解密。
接下来,打印机30从硬盘58中读出并取得上述步骤S146中所登录并保存的该打印机30的随机数(步骤S188)。接下来,打印机30使用所生成的口令与所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S190)。该步骤S190中所使用的口令与随机数,如果打印机30的设置位置没有被移动,就与上述公开键发送处理中的步骤S150所使用的口令与随机数相同。因此,生成与步骤S150中所生成的公开键和秘密键相同的公开键和秘密键。接下来,打印机30使用所生成的秘密键,解密所接收到的打印发送用数据D10,取得打印数据D05(步骤S192)。
接下来,打印机30使用秘密键判断是否能够解密打印发送用数据D10(步骤S194)。在能够解密的情况下(步骤S194是),根据所得到的打印数据D05,驱动打印引擎52执行打印(步骤S196)。具体的说,进行打印数据D05的语言解释,生成适用于打印引擎52的打印请求数据。之后,通过将该打印请求数据发送给打印引擎52,由打印引擎52在打印用纸上进行打印。
由此可以得知,本实施方式中,使用至少包括位置检测部所检测出的打印机位置信息的口令与打印机30中所登录的随机数,生成秘密键,在能够通过该秘密键解密打印发送用数据D10的情况下,判断打印发送用数据D10与打印机位置信息相匹配。
当该打印正常结束时,打印机30将表示打印正常结束的打印结束通知,作为打印结果信息,发送给打印客户端20(步骤S198)。
与此相对,在步骤S194中,判断无法解密打印发送用数据D10的情况下(步骤S194否),将无法解读通知作为打印结果信息,发送给打印客户端20(步骤S200)。也即,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令与打印机30中所登录的随机数,生成秘密键,在不能够通过该秘密键解密打印发送用数据D10的情况下,判断打印发送用数据D10与打印机位置信息不匹配。
在步骤S198或步骤S200之后,打印机30结束与打印客户端20的连接(步骤S202)。之后,返回上述步骤S181。
如上所述,本实施方式的相关打印系统中,由于打印客户端20、22能够根据打印机位置信息,对能够打印被加密了的打印发送用数据D10的打印机进行限定,因此,打印客户端20、22的用户能够避免在位于其不希望的位置上的打印机上进行打印。例如,在打印机30被移动到其他场所,但网络10内的打印机30的网络地址没有改变的情况下,即使从打印客户端20误向该打印机30发送打印发送用数据D10,由于打印机30中打印机位置信息发生了变更,因此步骤S186中所生成的口令与移动前的口令不同。这样,即使使用通过该口令所生成的秘密键,也无法解密打印发送用数据D10,不能够由打印机30进行打印。所以,能够提高打印数据D05的安全性。
另外,在打印机30、32侧也一样,能够避免本来没有使用该打印机30、32进行打印的权限的用户,向打印机30、32发送打印数据,使打印机30、32执行大量的打印。例如,因某种原因,即使打印机30的网络地址被第三者所得知,向该打印机30发送打印发送用数据D10,也无法取得该打印机30的公开键。即使如果该用户通过不同的公开键对打印数据D05进行加密生成打印发送用数据D10,或者不进行加密就生成打印发送用数据D10,并向打印机30发送打印发送用数据D10,由于在打印执行处理的步骤S194中判断无法解密,因此无法使打印机30执行打印。这样,能够提高打印机30自身的安全性。
另外,本实施方式中,由于口令中含有机器固有信息,因此,即使因某种原因让第三者知道了打印机30的位置,如果不知道打印机30的机器固有信息,也无法特定打印机30所使用的口令。因此,能够使第三者冒充该打印机30接收打印发送用数据D10,并解密该打印发送用数据D10变得非常困难。
另外,本实施方式中,由于除了口令之外还使用随机数,生成公开键以及秘密键,因此,能够使第三者冒充该打印机30接收打印发送用数据D10,并解密该打印发送用数据D10更加困难。
另外,由于该随机数由各个打印机分别生成,将所生成的随机数保存到硬盘等可重写型非易失性记忆装置中,因此,能够在生成秘密键时使用与生成公开键时所使用的随机数相同的随机数。这样,能够对通过使用该随机数所生成的公开键所加密的打印发送用数据D10,再次生成能够对其进行解密的秘密键。
本发明的实施方式2,通过使打印机30、32对每个打印客户端分别生成并保存生成公开键以及秘密键时所使用的随机数,使得第三者对随机数的推测更加困难。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。另外,本实施方式的相关打印客户端20、22所执行的公开键请求处理也和上述实施方式1相同。
图11为说明本实施方式的相关打印机30、32所执行的公开键发送处理的流程图的一部分,与上述实施方式1中的图8相对应。
如图11所示,本实施方式的相关公开键发送处理,一直到步骤S142中所示的口令生成,都与上述实施方式1的处理相同,之后的处理不同。也即,口令的生成结束之后,打印机30判断请求公开键的打印客户端的随机数,是否登录在该打印机30中(步骤S300)。
图12为说明本实施方式的相关打印机30所保存的,对每个打印客户端分别登录随机数的随机数表格TB20的构成的一例示意图。本实施方式中,该随机数表格TB20被保存在硬盘58中。
如图12所示,随机数表格TB20,由数据项目打印客户端ID TD20,与随机数TD21构成。打印客户端ID TD20中,保存有作为用于特定打印客户端的信息的打印客户端ID。随机数TD21中,保存有对应于打印客户端IDTD20的随机数。
本实施方式中,如上面的实施方式1中的步骤S122所述,从打印客户端20、22将打印客户端ID与口令作为识别信息发送给打印机30。因此,在该步骤S300中,判断从打印客户端20、22所接收到的打印客户端ID是否被登录在该随机数表格TB20中,且是否保存有随机数。
如图11所示,在该打印客户端的随机数没有登录在该打印机30中的情况下(步骤S300否),打印机30生成1个用于该打印客户端的随机数,登录到随机数表格TB20中(步骤S302)。具体的说,将该打印客户端的打印客户端ID与所生成的随机数登录到随机数表格TB20中。
另外,在随机数被登录到了打印机30中的情况下(步骤S300是),跳过该步骤S302的处理。
接下来,打印机30从随机数表格TB20中,读出并获取请求发送公开键的打印客户端的随机数(步骤S304)。
接下来,打印机30使用步骤S142中所生成的口令,与步骤S304中所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S306)。接下来,与上述实施方式1相同,打印机30在该所生成的公开键与秘密键中,只将公开键发送给打印客户端20(步骤S152)。另外,并不保存秘密键而将其废弃。
接下来,打印机30结束与打印客户端20的连接(步骤S154)。这样,本实施方式的相关公开键发送处理结束。
接下来对照图13,对本实施方式的相关打印客户端20、22所执行的打印请求处理进行说明。图13为说明打印客户端20、22所执行的打印请求处理的流程图。
如图13所示,本实施方式的相关打印请求处理中,用来生成打印发送用数据的处理与上述实施方式1不同。也即,在步骤S162读出了公开键之后,打印客户端20使用公开键,对打印数据D05进行加密(步骤S310)。
接下来,打印客户端20给该被加密的打印数据D05添加自己的打印客户端ID,生成打印发送用数据(步骤S312)。图14为说明本实施方式的相关打印发送用数据D20的格式的一例示意图。如图14所示,本实施方式的相关打印发送用数据D20,通过在被步骤S162所读出的公开键加密了的打印数据D05上,添加没有被步骤S162所读出的公开键加密的打印客户端IDD15而构成。
这里,打印客户端ID D15没有被在步骤S162所读出的公开键加密的原因是,打印机30对每个打印客户端保存有不同的随机数,因此,如果无法特定该打印客户端ID D15就无法生成秘密键。因此,可以不使用步骤S162所读出的公开键,而通过其他加密法对该打印客户端ID D15进行加密。另外,打印发送用数据D20还可以包括这些打印客户端ID D15与打印数据D05之外的数据。
另外,本实施方式中,将打印客户端ID D15与打印数据D05一起发送,但也可以将打印客户端ID D15与打印数据D05分别发送。这种情况下,如果保存与打印数据D05的关联性,打印客户端ID D15既可以在打印数据D05之前发送,又可以在之后发送。
该步骤S312之后的处理,与上述实施方式1相同。
接下来对照图15,对本实施方式的相关打印机30、32所执行的打印请求处理进行说明。图15为说明打印机30、32所执行的打印执行处理的流程图。
如图15所示,本实施方式的相关打印执行处理中,取得随机数时的处理与上述实施方式1不同。也即,打印机30,在步骤S186中生成了口令之后,从所接收到的打印发送用数据D20中,取得打印客户端ID D15(步骤S320)。
接下来,打印机30以打印客户端ID为检索关键字,检索随机数表格TB20,从随机数表格TB20中读取该打印客户端的随机数(步骤S322)。接下来,打印机30使用步骤S186中所生成的口令,与步骤S322中所取得的随机数,通过公开键加密法生成公开键与秘密键(步骤S324)。
该步骤S324之后的处理,与上述实施方式1相同。
如上所述,通过本实施方式的相关打印系统,也能够得到与上述实施方式1相同的效果。另外,本实施方式的相关打印系统,由于通过使打印机30、32对每个打印客户端分别生成并保存随机数,使得第三者对随机数的推测极为困难。
本发明的实施方式3,通过使打印机30、32对每个用户分别生成并保存生成公开键以及秘密键时所使用的随机数,使得第三者对随机数的推测更加困难。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。
图16为说明本实施方式的相关打印客户端20、22所执行的公开键请求处理的流程图的一部分,与上述实施方式1中的图5相对应。
如图16所示,本实施方式的相关公开键请求处理,从步骤S104中接受认证的情况下之后的处理,与上述实施方式1不同。也即,在步骤S104中接受了认证的情况下(步骤S104是),打印客户端20将请求该公开键的用户的用户ID与公开键取得请求,发送给打印机30(步骤S400)。本实施方式中,该用户ID由用户操作键盘等,输入到打印客户端中,将该所输入的用户ID发送给打印机30。
接下来,打印客户端20,判断是否从打印机30接收到了公开键(步骤S402)。在没有从打印机30接收到公开键的情况下(步骤S402否),重复该步骤S402进行等待。
另外,在从打印机30接收到公开键的情况下(步骤S402是),保存该公开键(步骤S402)。本实施方式中,打印客户端20预先在硬盘76中给每个打印机设置有公开键表格TB30,将所取得的公开键保存在该公开键表格TB30中。
图17为说明该公开键表格TB30的构成的一例示意图。如图17所示,公开键表格TB30为各个打印机30、32分别形成表格,各个表格具有保存用来对用户进行特定的信息的项目TD30,以及使所取得的公开键与各个用户相对应而保存的项目TD31。这样,公开键表格TB30,能够将关于多个用户的公开键,对每个用户且每个打印机进行保存。另外,通过这样在硬盘78的公开键表格TB30中保存公开键,即使打印客户端20的电源被切断并被再次接通的情况下,也能够将以前所取得的公开键从硬盘78中原封不动地读出并使用。
如图16所示,接下来打印客户端20切断与打印机30之间的连接(步骤S406)。这样,图16中所示的公开键请求处理结束。
接下来对照图18以及图19,对本实施方式的相关打印机30、32所执行的公开键发送处理进行说明。该图18以及图19为说明打印机30、32所执行的公开键发送处理的流程图,与上述实施方式1的图7以及图8相对应。
首先,如图18所示,本实施方式的相关打印机30从打印客户端20同时接收公开键取得请求以及用户ID,这一点与上述实施方式1以及实施方式2不同。也即,在步骤S128中发送表示接受认证的认证结果之后,打印机30判断是否接收到了用户ID与公开键取得请求(步骤S410)。在用户ID与公开键取得请求中的任一个都没有接收到的情况下(步骤S410否),重复该步骤S410进行等待。
另外,在用户ID与公开键取得请求都接收到了的情况下(步骤S410是),与上述实施方式1一样,执行步骤S132之后的处理。
另外,如图19所示,本实施方式的相关打印机在获取随机数时的处理,与上述实施方式1以及实施方式2不同。也即,口令的生成结束之后,打印机30判断该请求公开键的用户的随机数,是否通过该打印客户端20登录在该打印机30中(步骤S420)。
图20为说明本实施方式的相关打印机30所保存的,对各个用户分别登录随机数的随机数表格TB40的一例示意图。本实施方式中,该随机数表格TB40,为每个打印客户端分别形成表格。另外,该随机数表格TB40被保存在硬盘58中。
如图20所示,随机数表格TB40,由用户ID TD40与随机数TD41作为数据项目构成。用户ID TD40中,保存作为用来对用户进行特定的信息的用户ID。随机数TD41中,保存对应于用户ID TD40的随机数。
本实施方式中,如上面的步骤S122所述,从打印客户端20将打印客户端ID与口令作为识别信息发送给打印机30。另外,如步骤S410所述,从打印客户端20发送用户ID。因此,在该步骤S300中,能够根据从打印客户端20所接收到的打印客户端ID,在随机数表格TB40中特定打印客户端20的表格。这样,能够根据从打印客户端20所接收到的用户ID,判断对应于该用户的随机数,是否被登录在该打印客户端的表格中。
通过上述可以得知,本实施方式中,还假设了1个用户使用多个打印客户端的场合,这种情况下,即使是同一个用户,如果打印客户端不同,也使用不同的随机数,也即不同的公开键与秘密键。
如图19所示,在该打印客户端中,该用户的随机数没有被登录到该打印机30的情况下(步骤S420否),打印机30生成该打印客户端中的该用户的1个随机数,并登录到随机数表格TB40中(步骤S422)。具体的说,在随机数表格TB40中的打印客户端20的表格中,登录用户ID与所生成的随机数。
另外,在随机数被登录在打印机30中的情况下(步骤S420是),跳过该步骤S422的处理。
接下来,打印机30从随机数表格TB40中,读取对请求发送公开键的打印客户端所登录的用户的随机数(步骤S424)。
接下来,打印机30使用步骤S142中所生成的口令,与步骤S424中所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S426)。接下来,与实施方式1以及实施方式2一样,打印机30在该所生成的公开键与秘密键中,只将公开键发送给打印客户端20(步骤S152)。另外,并不保存秘密键而将其废弃。
接下来,打印机30结束与打印客户端20的连接(步骤S154)。这样,本实施方式的相关公开键发送处理结束。
接下来,对照图21,对本实施方式的相关打印客户端20、22所执行的打印请求处理进行说明。该图21为说明本实施方式的相关打印客户端20、22所执行的打印请求处理流程图。
如图21所示,本实施方式的相关打印请求处理中,用于生成打印发送用数据的处理,与上述实施方式1以及实施方式2不同。也即,在步骤S162中,从公开键表格TB30中读取与该打印机相对应的该用户的公开键之后,打印客户端20使用该公开键,对打印数据D05进行加密(步骤S430)。
接下来,打印客户端20给该被加密的打印数据D05添加自己的打印客户端ID与用户ID,生成打印发送用数据(步骤S432)。图22为说明本实施方式的相关打印发送用数据D30的格式的一例示意图。如图22所示,本实施方式的相关打印发送用数据D30,通过在被步骤S162所读出的公开键加密了的打印数据D05上,添加没有被在步骤S162中所读出的公开键加密的打印客户端ID D15,以及同样没有被在步骤S162中所读出的公开键加密的用户ID D25而构成。
这里,打印客户端ID D15与用户ID D25没有被在步骤S162所读出的公开键加密的原因是,打印机30对每个打印客户端,且每个用户保存有不同的随机数,因此,如果无法特定该打印客户端ID D15与用户ID D25就无法生成秘密键。因此,可以不使用步骤S162所读出的公开键,而通过其他加密法对该打印客户端ID D15与用户ID D25进行加密。另外,打印发送用数据D30还可以包括这些打印客户端ID D15与用户ID D25以及打印数据D05之外的数据。
另外,本实施方式中,将打印客户端ID D15以及用户ID D25与打印数据D05一起发送,但也可以将打印客户端ID D15以及用户ID D25与打印数据D05分别发送。这种情况下,如果保存与打印数据D05之间的关联性,打印客户端ID D15以及用户ID D25既可以在打印数据D05之前发送,又可以在之后发送。另外,打印客户端ID D15以及用户ID D25既可以分别发送,又可以同时发送。
该步骤S432之后的处理,与上述实施方式1以及实施方式2相同。
接下来对照图23,对本实施方式的相关打印机30、32所执行的打印请求处理进行说明。图23为说明打印机30、32所执行的打印执行处理的流程图。
如图23所示,本实施方式的相关打印执行处理中,取得随机数时的处理与上述实施方式1以及实施方式2不同。也即,打印机30,在步骤S186中生成了口令之后,从所接收到的打印发送用数据D20中,取得打印客户端ID D15与用户ID D25(步骤S320)。
接下来,打印机30以打印客户端ID和用户ID为检索关键字,检索随机数表格TB40,从随机数表格TB40中读取对该打印客户端所登录的用户的随机数(步骤S442)。接下来,打印机30使用步骤S186中所生成的口令,与步骤S442中所取得的随机数,通过公开键加密法生成公开键与秘密键(步骤S444)。
该步骤S444之后的处理,与上述实施方式1以及实施方式2相同。
如上所述,通过本实施方式的相关打印系统,也能够得到与上述实施方式1以及实施方式2相同的效果。另外,本实施方式的相关打印系统,由于通过使打印机30、32对每个用户分别生成并保存随机数,使得第三者对随机数的推测极为困难。
本发明的实施方式4的相关打印系统,对每个打印任务,使用至少含有表示打印机的设置位置的打印机位置信息的口令,生成公开键,发送给打印客户端。打印客户端,发送使用该公开键对打印任务数据进行加密所生成的打印发送用数据。这样,接收该打印发送用数据的打印机,在接收时再次使用至少含有此时的打印机位置信息的口令来生成秘密键,只在能够通过该秘密键对打印发送用数据进行解密的情况下才执行打印。另外,一般来说,在公开键加密法中,生成公开键以及秘密键时使用随机数,但本实施方式中,通过将生成发送给打印客户端的公开键时所使用的随机数进行保存,在为了解密打印发送用数据而生成秘密键时也使用相同的随机数,如果打印机位置信息不变就能够得到相同的秘密键。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。
接下来,对本实施方式的相关打印系统中,例如打印客户端20通过打印机30进行打印的情况下的处理,进行概要说明。
这种情况下,首先打印客户端20从打印机30得到该打印机30的公开键。本实施方式中,该公开键的取得是通过网络10对每个打印任务进行的。也即,打印机30对请求发送公开键的打印客户端20是否具有正当权限进行确认,只在具有正当的权限的情况下,将自己的公开键发送给打印客户端20。该公开键,由打印机30,使用至少包括表示打印机30的设置位置的位置信息的口令,以及该打印机30对每个打印任务所生成并保存的随机数,通过公开键加密法生成。打印机30保存生成该公开键时所使用的随机数。
但此时已生成的秘密键被废弃。也即,一般的公开键加密法中,公开键与秘密键是同时生成的。因此,本实施方式中,在生成公开键时伴随生成秘密键的情况下也一样,废弃该秘密键。这样,使得该打印机30所生成的秘密键被泄漏的可能性尽可能的低。
接下来,打印客户端20的用户,如图4所示,生成含有通过打印机30进行打印时所必须的数据的打印任务数据D05,命令打印客户端20指定打印机30进行打印。打印客户端20使用先前取得的打印机30的公开键,对打印数据D05进行加密,生成打印发送用数据D10。另外,打印发送用数据D10可以含有如图4所示的打印数据D05之外的数据。
接收该打印发送用数据D10的打印机30,如图2所示,将所接收的打印发送用数据D10暂存在RAM42中。之后,打印机30使用秘密键解密该被加密的打印发送用数据D10。也即,打印机30,使用至少包括打印机位置信息的口令,以及该打印机30所生成并保存的随机数,通过公开键加密法生成秘密键。之后,通过该秘密键对打印发送用数据D10进行解密。
接下来,打印机30判断打印发送用数据D10是否能够被解密。在能够解密打印发送用数据D10的情况下,根据解密打印发送用数据D10所得到的打印数据D05进行打印,在不能够解密的情况下,不进行打印。接着,打印机30删除所保存的随机数。
接下来,使用流程图对上述处理内容进行详细说明。首先对作为打印客户端20、22向打印机30、32请求打印的情况下的处理的打印请求处理进行说明。
图24以及图25为说明打印客户端20、22所执行的打印请求处理的流程图。该打印请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的打印请求程序而实现的。另外,本实施方式中,在用户向打印客户端输入执行打印的命令时,该打印请求处理被启动并执行。
另外,下面假设打印客户端20向打印机30请求打印的情况,对处理进行说明。
如图24所示,该打印请求处理中,首先打印客户端20通过网络10向打印机30发送连接请求(步骤S1100)。之后,确立打印客户端20与打印机30之间的连接(步骤S1102)。另外,本实施方式中,通过SSL(Secure SocketLayer)通信等,在确保安全的基础上,确立打印客户端20与打印机30之间的连接。
接下来,打印客户端20向打印机30发送认证信息(步骤S1104)。本实施方式中,使用用来特定打印客户端的打印客户端ID,与密码的组合作为该认证信息。因此,打印客户端20将打印客户端ID与密码发送给打印机30。
之后,打印客户端20,从打印机30接收表示是否接受了该认证的认证结果,根据该认证结果,判断打印机30是否接受了该认证(步骤S1106)。在认证未被接受的情况下(步骤S1106否),返回上述步骤S1104。
另外,在认证被接受的情况下(步骤S1106是),打印客户端20向打印机30发送公开键取得请求(步骤S1108)。之后,判断是否从打印机30接收到了公开键(步骤S1110)。在没有从打印机30接收到公开键的情况下(步骤S1110否),重复该步骤S1110进行等待。
另外,在从打印机30接收到公开键的情况下(步骤S1110是),保存该公开键(步骤S1112)。本实施方式中,打印客户端20将该公开键暂存在RAM66(参照图3)中。这样通过将公开键保存到RAM66中,在打印客户端20的电源被切断的情况下,自动将公开键清除,因此能够提高公开键的秘密性。
接下来,打印机30解除打印客户端与打印机的连接(步骤S1114)。也即,在通过SSL通信等确保安全性的状态下,解除该打印客户端20与打印机30之间所确立的连接。该连接的解除并非必不可少的处理,但由于下述的步骤S1126中所发送的打印发送用数据D10是通过公开键而被另行加密的,其以后的处理中缺乏确保连接自身的安全性的必要性,因此本实施方式中解除该连接。
接下来,如图25所示,打印客户端20根据用户的打印请求,生成打印任务数据D05(步骤S1120)。该打印任务数据D05,是通过打印机30执行打印所必须的,没有被加密的数据。
接下来,打印客户端20从RAM66中读出在步骤S1112中所保存的公开键(步骤S1122)。接下来,打印客户端20使用该公开键,对打印任务数据D05进行加密,生成打印发送用数据D10(步骤S1124)。另外,打印发送用数据D10还可以含有打印任务数据以外的数据。
接下来,打印客户端20重新确立与打印机30之间的连接(步骤S1125)。如上所述,该连接可以不是确保安全性的连接。
接下来,打印客户端20将该被加密的打印发送用数据D10发送给打印机30(步骤S1126)。具体的说,是指定打印机30的网络地址,向网络10发送打印发送用数据D10。
接下来,打印客户端20判断是否从打印机30接收到打印结果信息(步骤S1128)。在没有接收到打印结果信息的情况下(步骤S1128否),重复该步骤S1128的处理进行等待。另外,在接收到打印结果信息的情况下(步骤S1128是),判断该打印结果信息是否为打印完成通知(步骤S1130)。
在该打印结果信息是打印完成通知的情况下(步骤S1130是),表示在打印机30中正常结束了打印,因此,向用户通知在打印机30中完成了打印这一消息(步骤S1132)。另外,在所接收到的打印结果信息不是打印完成通知的情况下(步骤S1130否),判断该打印结果信息是否为无法解读通知(步骤S1134)。
在该打印结果信息是无法解读通知的情况下(步骤S1134是),向用户通知由于打印机30不能够对打印发送用数据D10进行解密,因此不能够进行打印(步骤S1136)。另外,在该打印结果信息不是无法解读通知的情况下(步骤S1134否),可以认为是其他某种错误,向用户发送对应于该错误种类的通知(步骤S1138)。
在这些步骤S1132、S1136、S1138的通知之后,打印客户端20将步骤S1112中保存在RAM66中的公开键删除(步骤S1140)。该步骤S1140的处理并不是必须的,但为了提高公开键的秘密性,本实施方式中,每当1个打印任务完成时,删除所取得的公开键。
接下来,打印客户端20解除与打印机30的连接(步骤S1142)。这样,就结束了该打印客户端20中的打印请求处理。
接下来,对照图26至图28,对与打印客户端20、22的打印请求处理相对应,打印机30、32所执行的打印执行处理进行说明。图26至图28为说明打印机30、32所执行的打印执行处理的流程图。该打印执行处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的打印执行程序而实现的。本实施方式中,该打印执行处理,以给定的时间间隔稳态执行。
这里也和上述一样,假设打印客户端20向打印机30请求打印的情况而进行说明。
如图26所示,打印机30判断是否经网络10从打印客户端20接收到连接请求(步骤S1200)。在没有从打印客户端20接收到连接请求的情况下(步骤S1200否),重复该步骤S1200的处理进行等待。另外,在从打印客户端20接收到连接请求的情况下(步骤S1200是),如上所述,通过SSL通信等在确保安全性的基础上,确立打印机30与打印客户端20之间的连接(步骤S1202)。
接下来,打印机30判断是否接收到了来自打印客户端20的认证信息(步骤S1204)。在没有接收到认证信息的情况下(步骤S1204否),重复该步骤S1204的处理进行等待。
另外,在接收到了认证信息的情况下(步骤S1204是),判断该认证信息与该打印机30中所预先登录的认证信息是否一致(步骤S1206)。具体的说,如上所述,由于打印客户端20发送打印客户端ID与密码作为认证信息,因此判断该打印客户端ID以及密码是否与该打印机30的硬盘58等中所预先登录的打印客户端ID以及密码相一致。
在认证信息不一致的情况下(步骤S1206否),打印机30向打印客户端20发送表示不接受认证的认证结果(步骤S1208),返回步骤S1204。另外,在认证一致的情况下(步骤S1206是),打印机30向打印客户端20发送表示接受认证的认证结果(步骤S1210)。
接下来,打印机30判断是否从打印客户端20接收到公开键取得请求(步骤S1212)。在没有接收到该公开键取得请求的情况下(步骤S1212否),重复该步骤S1212的处理进行等待。
另外,在接收到该公开键取得请求的情况下(步骤S1212是),打印机30取得该打印机30的机器固有信息(步骤S1214)。这里,机器固有信息是指,分配给该打印机30的识别信息,例如打印机30的制造序列号、MAC地址等。
接下来,如图27所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S1220)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成公开键。
接下来,打印机30使用机器固有信息与打印机位置信息生成口令(步骤S1222)。该口令的生成手法有多种,本实施方式中,通过单纯地在机器固有信息后添加打印机位置信息而生成口令。另外,口令还可以含有除了该机器固有信息与打印机位置信息之外的数据。
接下来,打印机30生成1个随机数并保存在打印机30中(步骤S1224)。本实施方式中,该所生成的随机数被保存在RAM42(参考图2)中。通过这样将随机数保存在RAM42中,在打印机30的电源被切断的情况下,能够自动将随机数清除,因此能够提高公开键与秘密键的秘密性。
接下来,打印机30使用步骤S1222中所生成的口令,与步骤S1224中所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S1226)。公开键加密法中,如果所使用的口令与随机数相同,即使再次生成公开键与秘密键,也生成相同的公开键与秘密键。接下来,打印机30在该所生成的公开键与秘密键中,只将公开键发送给打印客户端20(步骤S1228)。另外,并不保存秘密键而将其废弃。
接下来,打印机30解除与打印客户端20之间的连接(步骤S1230)。该处理是与上述打印请求处理的步骤S1114相对应的处理。另外,如上所述,该步骤S1230的处理并不是必不可少的处理。
接下来,打印机30判断是否经网络10从打印客户端20接收到连接请求(步骤S1232)。在没有从打印客户端20接收到连接请求的情况下(步骤S1232否),重复该步骤S1232的处理进行等待。另外,在从打印客户端20接收到连接请求的情况下(步骤S1232是),确立打印机30与打印客户端20之间的连接(步骤S1234)。该连接中可以不确保安全性。
接下来,打印机30判断是否从网络10接收到了打印发送用数据D10(步骤S1236)。在没有接收到任何打印发送用数据D10的情况下(步骤S1236否),重复该步骤S1236的处理进行等待。另外,在接收到打印发送用数据D10的情况下(步骤S1236是),打印机30取得自己的机器固有信息(步骤S1238)。
接下来,如图28所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S1240)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成秘密键。
接下来,打印机30根据机器固有信息与打印机位置信息,生成口令(步骤S1242)。该口令的生成方法,必须与上述步骤S1222的方法相同。这是因为,如果口令不相同,就无法对通过发送给打印客户端的公开键所加密的打印发送用数据D10,通过秘密键进行解密。
接下来,打印机30从RAM42中读取上述步骤S1224中生成的该打印机30的随机数(步骤S1244)。接下来,打印机30使用所生成的口令与所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S1246)。该步骤S1246中所使用的口令,如果打印机30的设置位置没有被移动,就与上述步骤S1226中所使用的口令相同。另外,随机数也与上述步骤S1226中的相同。因此,生成与步骤S1226中所生成的公开键和秘密键相同的公开键和秘密键。接下来,打印机30使用所生成的秘密键,解密所接收到的打印发送用数据D10(步骤S1248)。
接下来,打印机30使用秘密键判断是否能够解密打印发送用数据D10(步骤S1250)。在能够解密的情况下(步骤S250是),根据所得到的打印任务数据D05,驱动打印引擎52执行打印(步骤S1252)。具体的说,进行打印任务数据D05的语言解释,生成适用于打印引擎52的打印请求数据。之后,通过将该打印请求数据发送给打印引擎52,由打印引擎52在打印用纸上进行打印。
由此可以得知,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令与RAM42中所保存的随机数,生成秘密键,在能够通过该秘密键解密打印发送用数据D10的情况下,判断打印发送用数据D10与打印机位置信息相匹配。
当该打印正常结束时,打印机30将表示打印正常结束的打印结束通知,作为打印结果信息,发送给打印客户端20(步骤S1254)。
与此相对,在步骤S1250中,判断无法解密打印发送用数据D10的情况下(步骤S1250否),将无法解读通知作为打印结果信息,发送给打印客户端20(步骤S1256)。也即,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令与保存在RAM42中的随机数,生成秘密键,在不能够通过该秘密键解密打印发送用数据D10的情况下,判断打印发送用数据D10与打印机位置信息不匹配。
在步骤S1254或步骤S1256的处理之后,打印机30删除保存在RAM42中的随机数(步骤S1258)。从RAM42中删除随机数的处理并不是必须的处理,但通过在每次结束关于1个打印任务的处理时,从RAM42中删除随机数,能够提高随机数的秘密性。
接下来,打印机30解除与打印客户端20的连接(步骤S1260)。之后,返回上述图26的步骤S1200的处理。
如上所述,本实施方式的相关打印系统中,打印机30、32通过公开键加密法,对每个打印任务使用不同的随机数生成公开键与秘密键,向打印客户端20、22发送公开键,因此能够提高公开键与秘密键的安全性。
并且,由于保存将公开键发送给打印客户端20时所使用的随机数,并废弃秘密键,因此能够提高秘密键的安全性。另外,由于预先保存随机数,在对被通过该公开键所加密的打印发送用数据D10进行解密时,能够使用该所保存的随机数,再次通过公开键加密法,生成相同的秘密键,从而能够解密打印发送用数据D10。
另外,在打印机30、32无法通过该秘密键对打印发送用数据D10进行解密的情况下,不执行所接收到的打印发送用数据的打印,因此能够避免具有非法意图的第三者使用该打印机30、31进行打印。
本发明的实施方式5的相关打印系统,至少使用表示打印机的设置位置的打印机位置信息生成公开键,并使打印客户端事先取得该公开键,当打印客户端向该打印机发送打印数据时,发送含有使用该所取得的公开键对打印数据进行加密所生成的加密打印数据的打印发送用数据。这样,接收该打印发送用数据的打印机,在接收时再次至少使用此时的打印机位置信息来生成秘密键,只在能够通过该秘密键对打印发送用数据中所包括的加密打印数据进行解密的情况下才执行打印。另外,一般来说,在公开键加密法中,生成公开键以及秘密键时使用随机数,但本实施方式中,通过预先将生成公开键时所使用的随机数发送给打印客户端。在打印客户端中预先保存随机数。之后,在打印客户端向打印机发送加密打印数据时,将该随机数也包括在打印发送用数据中发送给打印机,接收到该打印发送用数据的打印机,使用打印发送用数据中所包括的随机数,再次生成秘密键。这样使得为了对加密打印数据进行解密而生成秘密键时所使用的随机数,与生成公开键时所使用的随机数相同,如果打印机位置不变,就能够得到相同的秘密键。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。
接下来,对在本实施方式的相关打印系统中,例如打印客户端20通过打印机30进行打印的情况下的处理进行概要说明。
这种情况下,打印客户端20实现例如从打印机30取得该打印机30的公开键,与生成该公开键时所使用的随机数。本实施方式中,该公开键与随机数的取得是通过网络10进行的。也即,打印机30,确认请求发送公开键与随机数的打印客户端20是否具有正当权限,只在具有正当权限的情况下,将自己的公开键与生成该公开键时所使用的随机数通知给该打印客户端。该公开键,是由打印机30使用至少包括表示打印机30的设置位置的打印机位置信息的口令以及所生成的随机数,通过公开键加密法生成的。打印客户端20具有保存公开键,以及通过公开键加密法在生成该公开键时所使用的随机数的功能。
但是,此时打印机30将所生成的秘密键废弃。也即,一般的公开键加密法中,公开键与秘密键是同时生成的。因此,本实施方式中,在生成公开键时伴随生成秘密键的情况下,也废弃该秘密键。这样,在该打印机30的设置场所被移动的情况下,通过移动前所生成的公开键所加密的加密打印数据,不能够被移动后的打印机30解密。
但打印机30的公开键并不一定要通过网络10通知给打印客户端20。例如,打印客户端20的用户如果具有正当权限,就能够到打印机30的设置场所操作该打印机30,因此,可以由用户操作打印机30的控制面板,取得打印机30的公开键与所使用的随机数。这种情况下,用户可以将打印机30的公开键与所使用的随机数记录到软盘等记录媒体上,由打印客户端20对其进行读取。
接下来,打印客户端20的用户,如图29所示,生成应当打印的数据,命令打印客户端20指定打印机30进行打印。打印客户端20根据应当打印的数据,生成打印数据D05。这里,打印数据D05,表示通过打印机30驱动打印引擎52进行打印所必须的原本的打印数据。
打印客户端20,使用从打印机30取得的公开键,对打印数据D05进行加密,生成加密打印数据。之后,打印客户端20在该加密打印数据上,添加同样从打印机30取得的随机数,生成打印发送用数据D10。另外,打印发送用数据D10可以含有如图29所示的加密打印数据与随机数之外的数据。
接收该打印发送用数据D10的打印机30,如图2所示,将所接收的打印发送用数据D10暂存在RAM42中。之后,打印机30使用秘密键解密该打印发送用数据D10中所包括的加密打印数据。也即,打印机30,使用至少包括打印机位置信息的口令,以及该打印发送用数据D10中所含有的随机数,通过公开键加密法生成秘密键。
接下来打印机30判断加密打印数据是否能够被解密。在加密打印数据能够被解密的情况下,根据对加密打印数据进行解密所得到的打印数据D05进行打印,在不能够解密的情况下,不进行打印。
接下来,使用流程图对上述处理内容进行详细说明。首先对在打印客户端20、22取得公开键与随机数的情况下,打印客户端20、22与打印机30、32的处理进行说明。
图30为说明打印客户端20、22所执行的公开键请求处理的流程图。该公开键请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的公开键请求程序而实现的。另外,本实施方式中,在用户向打印客户端输入启动该公开键请求处理的命令时,该公开键请求处理被启动并执行。
另外,下面假设打印客户端20向打印机30请求公开键的情况,对处理进行说明。
如图30所示,该公开键请求处理中,首先打印客户端20与打印机30相连接(步骤S2100)。本实施方式中,打印客户端20通过指定打印机30的网络地址,确立打印客户端20与打印机30之间的连接。另外,本实施方式中,通过SSL(Secure Socket Layer)通信等,在确保安全的基础上,确立打印客户端20与打印机30之间的连接。
接下来,打印客户端20向打印机30发送认证信息(步骤S2102)。本实施方式中,使用用来特定打印客户端的打印客户端ID与密码的组合,作为该认证信息。因此,打印客户端20将打印客户端ID与密码发送给打印机30。
之后,打印客户端20,从打印机30接收表示是否接受了该认证的认证结果,根据该认证结果,判断打印机30是否接受了该认证(步骤S2104)。在认证未被接受的情况下(步骤S2104否),返回上述步骤S2102。
另外,在认证被接受的情况下(步骤S2104是),打印客户端20向打印机30发送公开键取得请求(步骤S2106)。之后,判断是否从打印机30接收到了公开键与生成该公开键时所使用的随机数(步骤S2108)。在没有从打印机30接收到公开键与随机数的情况下(步骤S2108否),重复该步骤S2108进行等待。
另外,在从打印机30接收到公开键与随机数的情况下(步骤S2108是),保存该公开键与随机数(步骤S2110)。本实施方式中,打印客户端20预先在硬盘76中设置有公开键表格TB210,将所取得的公开键与随机数保存在该公开键表格TB210中。
图31为说明该公开键表格TB210的构成的一例示意图。如图31所示,公开键表格TB210具有保存用来对打印机进行特定的信息的项目TD10,以及使所取得的公开键与打印机相对应而保存的项目TD11,以及使所取得的随机数与打印机相对应而保存的项目TD12。这样,公开键表格TB210,能够将关于多个打印机的公开键以及随机数,对每个打印机进行保存。另外,通过这样在硬盘78的公开键表格TB10中保存公开键以及随机数,即使在打印客户端20的电源被切断并被再次接通的情况下,也能够将以前所取得的公开键与随机数从硬盘78中原封不动地读出并使用。
通过在该公开键表格TB210中保存所取得的公开键与随机数,结束图30所示的公开键请求处理。
接下来对照图32以及图33,对与打印客户端20、22的公开键请求处理相对应,打印机30、32所执行的公开键发送处理进行说明。图32以及图33为说明打印机30、32所执行的公开键发送处理的流程图。该公开键发送处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的公开键发送程序而实现的。另外,该公开键发送处理,是对应于上述公开键请求处理而被启动的。
这里也和上述一样,假设打印客户端20向打印机30请求公开键的情况而进行说明。
如图32所示,首先打印机30确立与打印客户端20之间的连接(步骤S2120)。这与上述打印客户端20侧的步骤S2100相对应。也即,通过SSL通信等,在确保安全的基础上确立连接。接下来,打印机30判断是否接收到了来自打印客户端20的认证信息(步骤S2122)。在没有接收到认证信息的情况下(步骤S2122否),重复该步骤S2122的处理进行等待。
另外,在从打印客户端20接收到了认证信息的情况下(步骤S2122是),判断该认证信息与该打印机30中所预先登录的认证信息是否一致(步骤S2124)。具体的说,如上所述,由于打印客户端20发送打印客户端ID与密码作为认证信息,因此判断该打印客户端ID以及密码是否与该打印机30中所预先登录的打印客户端ID以及密码相一致。
在认证信息不一致的情况下(步骤S2124否),打印机30向打印客户端20发送表示不接受认证的认证结果(步骤S2126),返回到步骤S2122的处理。另外,在认证信息一致的情况下(步骤S2124是),打印机30向打印客户端20发送表示接受认证的认证结果(步骤S2128)。
接下来,打印机30判断是否从打印客户端20接收到公开键取得请求(步骤S2130)。在没有接收到该公开键取得请求的情况下(步骤S2130否),重复该步骤S2130的处理进行等待。
另外,在从打印客户端20接收到公开键取得请求的情况下(步骤S2130是),打印机30取得该打印机30的机器固有信息(步骤S2132)。这里,机器固有信息是指,分配给该打印机30的识别信息,例如打印机30的制造序列号、MAC地址等。
接下来,如图33所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S2140)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成公开键。
接下来,打印机30使用机器固有信息与打印机位置信息生成口令(步骤S2142)。该口令的生成手法有多种,本实施方式中,通过单纯地在机器固有信息后添加打印机位置信息而生成口令。另外,口令还可以含有除了该机器固有信息与打印机位置信息之外的数据。
接下来,打印机30生成随机数(步骤S2144)。接下来,打印机30使用步骤S2142中所生成的口令,与步骤S2144中所生成的随机数,通过公开键加密法,生成公开键与秘密键(步骤S2146)。公开键加密法中,如果所使用的口令与随机数相同,即使再次生成公开键与秘密键,也生成相同的公开键与秘密键。接下来,打印机30将该所生成的公开键与秘密键中的公开键,与生成该公开键与随机数时所使用的随机数发送给打印客户端20(步骤S2148)。另外,并不保存秘密键而将其废弃。这样本实施方式的相关公开键发送处理就结束了。
接下来,对在打印客户端20、22希望进行打印时,向打印机30、32发送该打印请求的情况下的打印客户端20、22以及打印机30、32的处理,进行详细说明。
图34为说明打印客户端20、22所执行的打印请求处理的流程图。该打印请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的打印请求程序而实现的。本实施方式中,在用户向打印客户端输入打印命令时,该公开键请求处理被启动并执行。
这里假设打印客户端20向打印机30请求打印的场合进行说明。
如图34所示,打印客户端20根据用户的打印请求,生成打印数据D05(步骤S2160)。该打印数据D05是在打印机30是通常的打印机的情况下,实际进行打印所必须的数据。
接下来,打印客户端20从硬盘76中的公开键表格TB210中读出打印机30的公开键,与生成该公开键时所使用的随机数(步骤S2162)。接下来,打印客户端20使用打印机30的公开键,对打印数据D05进行加密,生成加密打印数据(步骤S2164)。
接下来,打印客户端20,在所生成的加密打印数据中,添加步骤S2162中所读出的随机数,生成打印发送用数据D10(步骤S2165)另外,打印发送用数据D10还可以含有该打印数据以及随机数以外的数据。
接下来,打印客户端20将该所生成的打印发送用数据D10发送给打印机30(步骤S2166)。具体的说,是指定打印机30的网络地址,向网络10发送打印发送用数据D10。
接下来,打印客户端20判断是否从打印机30接收到打印结果信息(步骤S2168)。在没有接收到打印结果信息的情况下(步骤S2168否),重复该步骤S2168的处理进行等待。另外,在接收到打印结果信息的情况下(步骤S2168是),判断该打印结果信息是否为打印完成通知(步骤S2170)。
在该打印结果信息是打印完成通知的情况下(步骤S2170是),表示在打印机30中正常结束了打印,因此,向用户通知在打印机30中完成了打印这一消息(步骤S2172)。另外,在所接收到的打印结果信息不是打印完成通知的情况下(步骤S2170否),判断该打印结果信息是否为无法解读通知(步骤S2174)。
在该打印结果信息是无法解读通知的情况下(步骤S2174是),向用户通知由于打印机30不能够对打印发送用数据D10进行解密,因此不能够进行打印(步骤S2176)。另外,在该打印结果信息不是无法解读通知的情况下(步骤S174否),可以认为是其他某种错误,向用户发送对应于该错误种类的通知(步骤S178)。
通过这些步骤S2172、步骤S2176以及步骤S2178的通知,结束了该打印客户端20中的打印请求处理。
接下来,对照图35,对与打印客户端20、22的打印请求处理相对应,打印机30、32所执行的打印执行处理进行说明。图35为说明打印机30、32所执行的打印执行处理的流程图。该打印执行处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的打印执行程序而实现的。本实施方式中,该打印执行处理,以给定的时间间隔稳态执行。
这里也和上述一样,假设为打印客户端20向打印机30请求打印的情况而进行说明。
如图35所示,打印机30判断是否从网络10接收到了打印发送用数据D10(步骤S2180)。在没有接收到任何打印发送用数据D10的情况下(步骤S2180否),重复该步骤S2180的处理进行等待。
另外,在接收到打印发送用数据D10的情况下(步骤S2180是),打印机30取得自己的机器固有信息(步骤S2182)。接下来,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S2184)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,由于该打印机30有可能被设置在用户所不期望的场所,在这种情况下使得通过打印机30的打印不能够进行。
接下来,打印机30根据机器固有信息与打印机位置信息,生成口令(步骤S2186)。该口令的生成方法,必须与上述公开键发送处理中的步骤S2142中的方法相同。这是因为,如果口令不相同,就无法对通过发送给打印客户端的公开键所加密的加密打印数据,通过秘密键进行解密。
接下来,打印机30取得打印发送用数据D10中所包括的随机数(步骤S2188)。接下来,打印机30使用所生成的口令与所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S2190)。该步骤S2190中所使用的口令,如果打印机30的设置位置没有被移动,就与上述公开键发送处理中的步骤S2146中所使用的口令相同。另外,步骤S2190中所使用的随机数,也和步骤S2146中所使用的随机数相同。因此,生成与步骤S2146中所生成的公开键和秘密键相同的公开键和秘密键。接下来,打印机30使用所生成的秘密键,解密包括在打印发送用数据D10中的加密打印数据,取得打印数据D05(步骤S2192)。
接下来,打印机30使用秘密键判断是否能够对加密打印数据进行解密(步骤S2194)。在能够解密的情况下(步骤S2194是),根据所得到的打印数据D05,驱动打印引擎52执行打印(步骤S2196)。具体的说,进行打印数据D05的语言解释,生成适用于打印引擎52的打印请求数据。之后,通过将该打印请求数据发送给打印引擎52,由打印引擎52在打印用纸上进行打印。
由此可以得知,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令,与随同加密打印数据被发送的随机数,生成秘密键,在能够通过该秘密键对加密打印数据进行解密的情况下,判断该加密打印数据与打印机位置信息相匹配。
当该打印正常结束时,打印机30将表示打印正常结束的打印结束通知,作为打印结果信息,发送给打印客户端20(步骤S2198)。之后,返回到上述步骤S2180的处理。
与此相对,在步骤S2194中,判断无法对加密打印数据进行解密的情况下(步骤S2194否),将无法解读通知作为打印结果信息,发送给打印客户端20(步骤S2200)。也即,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令,与随同加密打印数据被发送的随机数,生成秘密键,在不能够通过该秘密键对加密打印数据进行解密的情况下,判断该加密打印数据与打印机位置信息不匹配。之后,返回到上述步骤S2180的处理。
如上所述,本实施方式的相关打印系统中,由于打印客户端20、22能够根据打印机位置信息,对能够打印被加密发送的加密打印数据的打印机进行限定,因此,打印客户端20、22的用户能够避免在位于其不希望的位置上的打印机上进行打印。例如,在打印机30被移动到其他场所,但网络10内的打印机30的网络地址没有改变的情况下,即使从打印客户端20误向该打印机30发送含有加密打印数据的打印发送用数据D10,由于打印机30中打印机位置信息发生了变更,因此步骤S2186中所生成的口令与移动前的口令不同。这样,即使使用通过该口令所生成的秘密键,也无法解密打印发送用数据D10中所含有的加密打印数据,不能够由打印机30进行打印。所以,能够提高打印数据D05的安全性。
另外,在打印机30、32侧也一样,能够避免如果本来没有权限使用该打印机30、32进行打印的用户,向打印机30、32发送打印数据,使打印机30、32执行大量的打印这一事项。例如,因某种原因,即使打印机30的网络地址被第三者所得知,向该打印机30发送打印发送用数据D10,也无法取得该打印机30的公开键。即使如果该用户通过不同的公开键对打印数据D05进行加密,生成含有加密打印数据的打印发送用数据D10,或者生成含有未加密打印数据的打印发送用数据D10,并向打印机30发送打印发送用数据D10,由于在打印执行处理的步骤S2194中判断无法解密,因此无法使打印机30执行打印。这样,能够提高打印机30自身的安全性。
另外,本实施方式中,由于口令中含有机器固有信息,因此,即使因某种原因让第三者知道了打印机30的位置,如果不知道打印机30的机器固有信息,也无法特定打印机30所使用的口令。因此,能够使第三者冒充该打印机30接收打印发送用数据D10,并解密该打印发送用数据D10中所含有的加密打印数据变得非常困难。
另外,由于该随机数由各个打印客户端20、22分别生成,各个打印客户端20、22将该随机数与公开键一起保存到硬盘等可重写型非易失性记忆装置中。之后,打印客户端20、22,将该随机数与对打印数据进行加密所得到的加密打印数据一起发送给打印机30、32,因此,打印机30、32能够在生成秘密键时使用与生成公开键时所使用的随机数相同的随机数。这样,能够对通过使用该随机数所生成的公开键所加密的加密打印数据,再次生成能够对其进行解密的秘密键。
本发明的实施方式6中,打印客户端20、22对每个打印机以及每个用户分别生成并保存公开键以及生成该公开键时所使用的随机数。这样,使得第三者对随机数的推测更加困难。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。另外,本实施方式的相关打印机30、32所执行的公开键发送处理、打印执行处理也和上述实施方式5相同。
图36为说明本实施方式的相关打印客户端20、22所执行的公开键发送处理的流程图的一部分,与上述实施方式5中的图30相对应。
如图36所示,本实施方式的相关公开键请求处理,一直到步骤S2108中所示的公开键以及随机数的接收,都与上述实施方式5的处理相同,接下来的步骤S2300的处理不同。也即,本实施方式的相关打印客户端20,在接收到公开键与随机数的情况下(步骤S2108是),对每个打印机以及用户区分该公开键与随机数,并保存到公开键表格TB220中。
图37为说明本实施方式的相关公开键表格TB220的一例示意图。如图37所示,本实施方式的相关公开键表格TB220中,除了上述实施方式5中的公开键表格TB210中的项目之外,还具有用来保存用户ID的项目TD20作为数据项目。也即,本实施方式中,打印客户端20以每个用户ID分别保存公开键与随机数。另外,本实施方式的公开键表格TB220中,未每个打印机分别形成表格。因此,即使是同一个用户ID,如果打印机不同,也可能保存不同的公开键与随机数。
通过将该公开键与随机数保存到公开键表格TB220中,本实施方式的相关公开键请求处理就结束了。
接下来对照图38,对本实施方式的相关打印客户端20、22所执行的打印请求处理进行说明。该图38为说明本实施方式的相关打印客户端20、22所执行的打印请求处理的流程图。
如图38所示,本实施方式的相关打印请求处理中,公开键与随机数的读出处理与上述实施方式5中不同。也即,在步骤S2160中生成了打印数据D05之后,打印客户端20取得用户ID(步骤S2310)。也即,取得指示打印机30进行打印的用户的用户ID。该用户ID,例如可以在向打印客户端20输入打印命令时,请求用户输入,或者,在用户使用打印客户端20时,作为认证由用户输入。
接下来,打印客户端20,从图37中的公开键表格TB220中,在保存在被请求打印的打印机的表格中,读出以该用户ID保存的公开键与随机数(步骤S2312)。也即,本实施方式的公开键表格TB220中,由于以每个打印机构成表格,因此在对步骤S2160中所生成的打印数据D05进行打印的打印机的表格中,读出以该用户ID登录的公开键与随机数。之后的处理与上述实施方式5相同。
如上所述,通过本实施方式的相关打印系统,也能够得到与上述实施方式5相同的效果。另外,本实施方式的相关打印系统,由于通过使打印客户端20、22对每个打印机以及每个用户分别生成并保存公开键与随机数,因此能够使得第三者对该随机数的推测极为困难。
本发明的实施方式7的相关打印系统,对每个打印任务生成随机数,使用该所生成的随机数,与至少含有表示打印机的设置位置的打印机位置信息的口令,生成公开键,将该公开键与随机数从打印机发送给打印客户端。打印客户端,生成使用该公开键与随机数对打印任务数据进行加密所得到的加密打印任务数据,同时在该加密打印任务数据中,添加打印机所发送的随机数,生成打印发送用数据。之后,打印客户端将该打印发送用数据发送给打印机。这样,接收该打印发送用数据的打印机,在接收时再次使用至少含有此时的打印机位置信息的口令,与打印发送用数据中所包含的随机数,生成秘密键,只在能够通过该秘密键对加密打印任务数据进行解密的情况下才执行打印。下面将进行详细说明。
另外,本实施方式的相关打印系统的构成与上述实施方式1中的图1相同,打印机30、32的构成与上述图2相同,打印客户端20、22的构成与上述图3相同。
接下来,对本实施方式的相关打印系统中,例如打印客户端20通过打印机30进行打印的情况下的处理,进行概要说明。
这种情况下,首先打印客户端20从打印机30得到公开键与生成该公开键时所使用的随机数。本实施方式中,该公开键与随机数的取得是通过网络10对每个打印任务进行的。也即,打印机30对请求发送公开键的打印客户端20是否具有正当权限进行确认,只在具有正当的权限的情况下,将新生成的公开键与生成该公开键时所使用的随机数,发送给打印客户端20。也即,打印机30,使用至少包括表示打印机30的设置位置的位置信息的口令,以及该打印机30对每个打印任务所生成并保存的随机数,通过公开键加密法生成公开键。由于打印机30没有保存生成该公开键时所使用的随机数的必要,因此将其废弃。
另外,此时所生成的秘密键也被废弃。也即,一般的公开键加密法中,公开键与秘密键是同时生成的。因此,本实施方式中,在生成公开键时伴随生成秘密键的情况下也一样,废弃该秘密键。这样,使得该打印机30所生成的秘密键被泄漏的可能性尽可能的低。
接下来,打印客户端20的用户,如图29所示,生成应当打印的数据,命令打印客户端20指定打印机30进行打印。打印客户端20根据应当打印的数据,生成打印任务数据D05。这里,打印任务数据D05,表示通过打印机30驱动打印引擎52进行打印所必须的原本的打印数据。
打印客户端20,使用先前取得的打印机30的公开键,对打印任务数据D05进行加密,生成加密打印任务数据。之后,打印客户端20在该加密打印任务数据上,添加同样从打印机30取得的随机数,生成打印发送用数据D10。另外,打印发送用数据D10可以含有如图29所示的加密打印数据与随机数之外的数据。
接收该打印发送用数据D10的打印机30,如图2所示,将所接收的打印发送用数据D10暂存在RAM42中。之后,打印机30使用秘密键解密该打印发送用数据D10中所包括的加密打印任务数据。也即,打印机30,使用至少包括打印机位置信息的口令,以及该该打印发送用数据中所含有的随机数,通过公开键加密法生成秘密键。之后,通过该秘密键对打印发送用数据中所含有的加密打印任务数据进行解密。
接下来,打印机30判断加密打印任务数据是否能够被解密。在加密打印任务数据能够被解密的情况下,根据对加密打印任务数据进行解密所得到的打印任务数据D05进行打印,在不能够解密的情况下,不进行打印。
接下来,使用流程图对上述处理内容进行详细说明。首先对作为打印客户端20、22向打印机30、32请求打印的情况下的处理的打印请求处理进行说明。
图39以及图40为说明打印客户端20、22所执行的打印请求处理的流程图。该打印请求处理,是通过CPU64读取并执行保存在打印客户端的ROM68或硬盘76中的打印请求程序而实现的。另外,本实施方式中,在用户向打印客户端输入执行打印的命令时,该打印请求处理被启动并执行。
另外,下面假设打印客户端20向打印机30请求打印的情况,对处理进行说明。
如图39所示,该打印请求处理中,首先打印客户端20通过网络10向打印机30发送连接请求(步骤S3100)。之后,确立打印客户端20与打印机30之间的连接(步骤S3102)。另外,本实施方式中,通过SSL(Secure SocketLayer)通信等,在确保安全的基础上,确立打印客户端20与打印机30之间的连接。
接下来,打印客户端20向打印机30发送认证信息(步骤S3104)。本实施方式中,使用用来特定打印客户端的打印客户端ID与密码的组合,作为该认证信息。因此,打印客户端20将打印客户端ID与密码发送给打印机30。
之后,打印客户端20,从打印机30接收表示是否接受了该认证的认证结果,根据该认证结果,判断打印机30是否接受了该认证(步骤S3106)。在认证未被接受的情况下(步骤S3106否),返回上述步骤S3104。
另外,在认证被接受的情况下(步骤S3106是),打印客户端20向打印机30发送公开键取得请求(步骤S3108)。之后,判断是否从打印机30接收到了公开键以及生成该公开键时所使用的随机数(步骤S3110)。在没有从打印机30接收到公开键与随机数的情况下(步骤S3110否),重复该步骤S3110进行等待。
另外,在从打印机30接收到公开键与随机数的情况下(步骤S3110是),保存该公开键与随机数(步骤S3112)。本实施方式中,打印客户端20将该公开键与随机数暂存在RAM66(参照图3)中。这样通过将公开键保存到RAM66中,在打印客户端20的电源被切断的情况下,自动将公开键与随机数清除,因此能够提高公开键与随机数的秘密性。
接下来,打印机30解除打印客户端与打印机的连接(步骤S3114)。也即,在通过SSL通信等确保安全性的状态下,解除该打印客户端20与打印机30之间所确立的连接。该连接的解除并非必不可少的处理,但由于下述的步骤S3126中所发送的打印任务数据D05是通过公开键而被另行加密的,其以后的处理中缺乏确保连接自身的安全性的必要性,因此本实施方式中解除该连接。
接下来,如图40所示,打印客户端20根据用户的打印请求,生成打印任务数据D05(步骤S3120)。该打印任务数据D05,是通过打印机30执行打印所必须的,没有被加密的数据。
接下来,打印客户端20从RAM66中读出在步骤S3112中所保存的公开键与随机数(步骤S3122)。接下来,打印客户端20使用该公开键,对打印任务数据D05进行加密,生成加密打印任务数据(步骤S3124)。
接下来,打印客户端20,在步骤S3124中所生成的加密打印任务数据中,添加步骤S3122中所读取的随机数,生成打印发送用数据D10(步骤S3125)。另外,打印发送用数据D10还可以含有该加密打印任务数据与随机数以外的数据。
接下来,打印客户端20将该打印发送用数据D10发送给打印机30(步骤S3126)。具体的说,是指定打印机30的网络地址,向网络10发送打印发送用数据D10。
接下来,打印客户端20判断是否从打印机30接收到打印结果信息(步骤S3128)。在没有接收到打印结果信息的情况下(步骤S3128否),重复该步骤S3128的处理进行等待。另外,在接收到打印结果信息的情况下(步骤S3128是),判断该打印结果信息是否为打印完成通知(步骤S3130)。
在该打印结果信息是打印完成通知的情况下(步骤S3130是),表示在打印机30中正常结束了打印,因此,向用户通知在打印机30中完成了打印这一消息(步骤S3132)。另外,在所接收到的打印结果信息不是打印完成通知的情况下(步骤S3130否),判断该打印结果信息是否为无法解读通知(步骤S3134)。
在该打印结果信息是无法解读通知的情况下(步骤S3134是),向用户通知由于打印机30不能够对打印发送用数据D10进行解密,因此不能够进行打印(步骤S3136)。另外,在该打印结果信息不是无法解读通知的情况下(步骤S3134否),可以认为是其他某种错误,因此向用户发送对应于该错误种类的通知(步骤S3138)。
在这些步骤S3132、步骤S3136以及步骤S3138的通知之后,打印客户端20将步骤S3112中保存在RAM66中的公开键与随机数删除(步骤S3140)。该步骤S3140的处理并不是必须的,但为了提高公开键与随机数的秘密性,本实施方式中,每当1个打印任务完成时,删除所取得的公开键与随机数。这样,就结束了该打印客户端20中的打印请求处理。
接下来,对照图41至图43,对与打印客户端20、22的打印请求处理相对应,打印机30、32所执行的打印执行处理进行说明。图41至图43为说明打印机30、32所执行的打印执行处理的流程图。该打印执行处理,是通过CPU40读取并执行保存在打印机的ROM44或硬盘58中的打印执行程序而实现的。本实施方式中,该打印执行处理,以给定的时间间隔稳态执行。
这里也和上述一样,假设打印客户端20向打印机30请求打印的情况而进行说明。
如图41所示,打印机30判断是否经网络10从打印客户端20接收到连接请求(步骤S3200)。在没有从打印客户端20接收到连接请求的情况下(步骤S3200否),重复该步骤S3200的处理进行等待。之后,如上所述,通过SSL通信等在确保安全性的基础上,确立打印机30与打印客户端20之间的连接(步骤S3202)。
接下来,打印机30判断是否接收到了来自打印客户端20的认证信息(步骤S3204)。在没有接收到认证信息的情况下(步骤S3204否),重复该步骤S3204的处理进行等待。
另外,在接收到了认证信息的情况下(步骤S3204是),判断该认证信息与该打印机30中所预先登录的认证信息是否一致(步骤S3206)。具体的说,如上所述,由于打印客户端20发送打印客户端ID与密码作为认证信息,因此判断该打印客户端ID以及密码是否与该打印机30的硬盘58等中所预先登录的打印客户端ID以及密码相一致。
在认证信息不一致的情况下(步骤S3206否),打印机30向打印客户端20发送表示不接受认证的认证结果(步骤S3208),返回步骤S3204。另外,在认证一致的情况下(步骤S3206是),打印机30向打印客户端20发送表示接受认证的认证结果(步骤S3210)。
接下来,打印机30判断是否从打印客户端20接收到公开键取得请求(步骤S3212)。在没有接收到该公开键取得请求的情况下(步骤S3212否),重复该步骤S3212的处理进行等待。
另外,在接收到该公开键取得请求的情况下(步骤S3212是),打印机30取得该打印机30的机器固有信息(步骤S3214)。这里,机器固有信息是指,分配给该打印机30的识别信息,例如打印机30的制造序列号、MAC地址等。
接下来,如图42所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S3220)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成公开键。
接下来,打印机30使用机器固有信息与打印机位置信息生成口令(步骤S3222)。该口令的生成手法有多种,本实施方式中,通过单纯地在机器固有信息后添加打印机位置信息而生成口令。另外,口令还可以含有除了该机器固有信息与打印机位置信息之外的数据。
接下来,打印机30生成1个随机数(步骤S3224)。接下来,打印机30使用步骤S3222中所生成的口令,与步骤S3224中所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S3226)。公开键加密法中,如果所使用的口令与随机数相同,即使再次生成公开键与秘密键,也生成相同的公开键与秘密键。接下来,打印机30将公开键与生成该公开键时所使用的随机数发送给打印客户端20(步骤S3228)。另外,在将公开键与随机数发送给打印客户端20之后,并不保存该秘密键与随机数而将其废弃。
接下来,打印机30解除与打印客户端20之间的连接(步骤S3230)。该处理是与上述打印请求处理的步骤S3114相对应的处理。另外,如上所述,该步骤S3230的处理并不是必不可少的处理。
接下来,打印机30判断是否从网络10接收到了打印发送用数据D10(步骤S3232)。在没有接收到任何打印发送用数据D10的情况下(步骤S3232否),重复该步骤S3232的处理进行等待。另外,在接收到打印发送用数据D10的情况下(步骤S3232是),打印机30取得自己的机器固有信息(步骤S3234)。
接下来,如图43所示,打印机30从位置检测部54取得此时打印机30的打印机位置信息(步骤S3240)。这样通过此时从位置检测部54取得打印机位置信息,是为了在打印机30移动到了别的场所的情况下,使用该移动后的位置信息生成秘密键。
接下来,打印机30根据机器固有信息与打印机位置信息,生成口令(步骤S3242)。该口令的生成方法,必须与上述步骤S3222的方法相同。这是因为,如果口令不相同,就无法对通过发送给打印客户端的公开键所加密的打印发送用数据D10,通过秘密键进行解密。
接下来,打印机30取得所接收到的打印发送用树脂D10中所包含的随机数(步骤S3244)。接下来,打印机30使用所生成的口令与所取得的随机数,通过公开键加密法,生成公开键与秘密键(步骤S3246)。该步骤S3246中所使用的口令,如果其间打印机30的设置位置没有被移动,就与上述步骤S3226中所使用的口令相同。另外,对于随机数来说,如果是正当的打印客户端20所发送的打印发送用数据D10,那么就也与上述步骤S3226中的相同。因此,在步骤S3246中,生成与步骤S3226中所生成的公开键和秘密键相同的公开键和秘密键。接下来,打印机30使用所生成的秘密键,解密包含在所接收到的打印发送用数据D10中的加密打印任务数据(步骤S3248)。
接下来,打印机30使用秘密键判断是否能够对加密打印任务数据进行解密(步骤S3250)。在能够解密的情况下(步骤S250是),通过对加密打印任务数据进行解密所得到的打印任务数据D05,驱动打印引擎52执行打印(步骤S3252)。具体的说,进行打印任务数据D05的语言解释,生成适用于打印引擎52的打印请求数据。之后,通过将该打印请求数据发送给打印引擎52,由打印引擎52在打印用纸上进行打印。
由此可以得知,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令,与包括在打印发送用数据D10中的随机数,生成秘密键,在能够通过该秘密键对加密打印任务数据进行解密的情况下,判断加密打印任务数据与打印机位置信息相匹配。
当该打印正常结束时,打印机30将表示打印正常结束的打印结束通知,作为打印结果信息,发送给打印客户端20(步骤S3254)。
与此相对,在步骤S3250中,判断无法对加密打印任务数据进行解密的情况下(步骤S3250否),将无法解读通知作为打印结果信息,发送给打印客户端20(步骤S3256)。也即,本实施方式中,使用至少包括位置检测部54所检测出的打印机位置信息的口令,与包括在打印发送用数据D10中的随机数,生成秘密键,在不能够通过该秘密键对加密打印任务数据进行解密的情况下,判断加密打印任务数据与打印机位置信息不匹配。
在步骤S3254或步骤S3256的处理之后,打印机30返回到上述图41中的步骤S3200的处理。
如上所述,本实施方式的相关打印系统中,打印机30、32通过公开键加密法,对每个打印任务使用不同的随机数生成公开键与秘密键,向打印客户端20、22发送公开键与随机数,因此能够提高公开键、秘密键以及随机数的安全性。
并且,由于将公开键以及生成该公开键时所使用的随机数发送给打印客户端20,并在打印机30侧废弃秘密键与随机数,因此能够提高秘密键的安全性。另外,打印客户端20、22将随机数暂存,与加密打印任务数据一起回发给打印机30、32。因此,在打印机30、32对被通过该公开键所加密的加密打印任务数据进行解密时,能够使用与加密打印任务数据一同发送的随机数,再次通过公开键加密法,生成相同的秘密键,从而能够对加密打印任务数据进行解密。
另外,在打印机30、32无法通过该秘密键对加密打印任务数据进行解密的情况下,不执行所接收到的加密打印任务数据的打印,因此能够避免具有非法意图的第三者使用该打印机30、31进行打印。
另外,本发明并不仅限于上述实施方式,还能够进行各种变形。例如,在上述实施方式中,以生成公开键与秘密键时所使用“给定的数”为随机数的情况为例进行了说明,但该给定的数并不仅限于随机数。例如,可以在该打印机第1次生成公开键与秘密键的情况下,将给定的数设为“1”,在第2次生成公开键与秘密键的情况下,将给定的数设为“2”,在第3次生成公开键与秘密键的情况下,将给定的数设为“3”,这样使用升序的自然数作为给定的数。
另外,给定的数,还可以使用升序的偶数,或升序的奇数。换而言之,还可以使用给定的算法,生成给定的数。
另外,如图44至图46所示,可以代替打印机30、32向打印客户端20、22发送给定的数,而发送导出给定的数时所使用的算法(例如升序的偶数),以及使用该算法导出给定的数所需要的附加信息(例如第1次)。
这种情况下,如图44所示,打印客户端20、22请求打印时,可以将给定的数本身发送给打印机30、32。这种情况下,打印客户端20、22,可以将从打印机30、32所接收到的对算法进行特定的信息,以及必要的附加信息保存起来,或者也可以生成给定的数并将该给定的数保存起来。
另外,如图45所示,打印客户端20、22请求打印时,可以将算法与附加信息发送给打印机30、32。这种情况下,打印客户端20、22,将对算法进行特定的信息,以及必要的附加信息保存起来。
另外,如图46所示,打印客户端20、22请求打印时,可以不发送算法,而只将附加信息发送给打印机30、32。这是因为,有时生成公开键以及秘密键时所使用的算法,在打印机30、32中是固定的。
上述实施方式中,例示了打印客户端作为发送应当确保安全性的数据的数据发送装置,且例示了打印机作为接收该数据的数据接收装置,对本发明进行了说明,但数据发送接收系统中的数据发送装置与数据接收装置的组合,并不仅限于上述实施方式。
例如,数据发送接收系统中的数据发送装置可以是用来拍摄图像的数码相机,数据接收装置可以是储存数码相机所拍摄的图像数据的数据服务器。这种情况下,使用从数据服务器所接收到的公开键,对数码相机所发送的数据进行加密,接收到该数据的数据服务器,通过上述方法生成秘密键,进行对该数据的解密。之后,在能够解密所接收到的数据的情况下,储存该数据,在无法解密的情况下,不储存该数据。
另外,数据发送接收系统中的数据发送装置可以是个人计算机,数据接收装置可以是投影该个人计算机所发送的图像数据的投影仪。这种情况下,使用从投影仪所接收到的公开键,对个人计算机所发送的数据进行加密,接收到该数据的投影仪,通过上述方法生成秘密键,进行对该数据的解密。之后,在能够解密所接收到的数据的情况下,投影该数据,在无法解密的情况下,不投影该数据。
另外,数据发送接收系统中的数据发送装置可以是音乐等的内容服务器,数据接收装置可以是再生该内容服务器所发送的音乐等内容数据的再生装置。这种情况下,使用从再生装置所接收到的公开键,对内容服务器所发送的数据进行加密,接收到该数据的再生装置,通过上述方法生成秘密键,进行对该数据的解密。之后,在能够解密所接收到的数据的情况下,再生该数据,在无法解密的情况下,不再生该数据。
另外,上述实施方式中,以打印机30、32的打印媒体是打印用纸的情况为例进行了说明,但打印媒体并不仅限于此,例如OHP片等其他打印媒体也能够适用于本发明。
另外,关于上述实施方式中所说明的各个处理,用来执行这些处理的程序能够被记录在软盘、CD-ROM(Compact Disc-Read Only Memory)、ROM、存储卡等记录媒体中,以记录媒体形式发布。这种情况下,能够通过由打印客户端20、22及/或打印机30、32读取记录有该程序的记录媒体,实现上述实施方式。
另外,打印客户端20、22及/或打印机30、32,有时也具有操作系统或应用程序等其他程序。这种情况下,可以灵活运用打印客户端20、22及/或打印机30、32所具有的其他程序,在记录媒体中记录命令,用来从打印客户端20、22及/或打印机30、32所具有的程序中,调用实现与上述实施方式相同的处理的程序。
另外,上述程序可以不以记录媒体的形式,而通过网络作为载波发布。在网络上以载波的形式传输的程序,能够被打印客户端20、22及/或打印机30、32接收,通过执行该程序实现上述实施方式。
另外,在向记录媒体记录程序时,或在网络上作为载波传送时,有时会执行程序的加密或压缩处理。这种情况下,从这些记录媒体或载波中读取程序的打印客户端20、22及/或打印机30、32,必须在解密或解压缩该程序的基础上,再进行执行。
权利要求
1.一种打印机,处理打印数据,其特征在于,包括打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息;第1打印机位置信息取得部,从上述打印机位置信息取得部取得打印机位置信息,将其作为第1打印机位置信息;公开键生成部,使用至少包括上述第1打印机位置信息的口令,和给定的数,生成公开键;打印数据接收部,接收通过上述公开键所加密的打印数据;第2打印机位置信息取得部,接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息;秘密键生成部,使用至少包括上述第2打印机位置信息的口令,和上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密。
2.如权利要求1所述的打印机,其特征在于在上述公开键生成部生成公开键时,即使产生了秘密键,也将该秘密键废弃。
3.如权利要求2所述的打印机,其特征在于还包括打印执行部,在能够使用上述秘密键解密上述打印数据的情况下,根据上述打印数据执行打印,在不能够使用上述秘密键解密上述打印数据的情况下,不根据上述打印数据执行打印。
4.如权利要求3所述的打印机,其特征在于还包括保存上述公开键生成部所使用的上述给定的数的给定的数保存部。
5.如权利要求4所述的打印机,其特征在于,还包括公开键取得请求接收部,从打印客户端接收公开键取得请求;和公开键发送部,将上述公开键生成部所生成的上述公开键,发送给发送了上述公开键取得请求的打印客户端。
6.如权利要求5所述的打印机,其特征在于上述给定的数保存部中所保存的给定的数,在该打印机中为1个。
7.如权利要求5所述的打印机,其特征在于上述给定的数保存部中所保存的给定的数,对每个上述打印客户端分别有1个。
8.如权利要求7所述的打印机,其特征在于,还包括打印客户端识别信息接收部,除了通过上述公开键所加密的上述打印数据之外,还接收没有通过上述公开键所加密的打印客户端识别信息;和给定的数取得部,根据上述打印客户端识别信息,从上述给定的数保存部中,取得发送上述打印数据的打印客户端的给定的数。
9.如权利要求5所述的打印机,其特征在于上述给定的数保存部中所保存的给定的数,对每个用户分别有1个。
10.如权利要求9所述的打印机,其特征在于,还包括用户识别信息接收部,除了通过上述公开键所加密的上述打印数据之外,还接收没有通过上述公开键所加密的用户识别信息;和给定的数取得部,根据上述打印客户端识别信息,从上述给定的数保存部中,取得发送上述打印数据的用户的给定的数。
11.如权利要求4所述的打印机,其特征在于上述公开键生成部,根据每个打印任务中打印客户端所发送的公开键取得请求,生成给定的数,并生成上述公开键。
12.如权利要求11所述的打印机,其特征在于还包括给定的数删除部,在秘密键生成部中生成了上述秘密键之后,将上述给定的数保存部中所保存的给定的数删除。
13.如权利要求3所述的打印机,其特征在于还包括将上述公开键生成部所生成的公开键,与生成该公开键时所使用的上述给定的数,发送给打印客户端的公开键给定的数发送部;和从打印客户端接收给定的数的给定的数接收部,上述秘密键生成部,使用至少包括上述第2打印机位置信息的口令,和上述给定的数接收部所接收到的上述给定的数,生成秘密键。
14.如权利要求13所述的打印机,其特征在于在从打印客户端接收到公开键取得请求的情况下,上述公开键生成部生成上述公开键和上述给定的数;上述公开键给定的数发送部,将上述公开键和上述给定的数,发送给发送了该公开键取得请求的打印客户端。
15.如权利要求13所述的打印机,其特征在于上述公开键生成部,根据每个打印任务中打印客户端所发送的公开键取得请求,生成给定的数,并生成上述公开键。
16.如权利要求15所述的打印机,其特征在于上述公开键生成部生成公开键时所使用的给定的数,在上述公开键给定的数发送部将上述给定的数发送给打印客户端之后,被废弃。
17.如权利要求3所述的打印机,其特征在于还包括将上述公开键生成部所生成的公开键,和导出生成该公开键时所使用的上述给定的数所必须的信息,发送给打印客户端的公开键信息发送部;和从打印客户端接收给定的数的给定的数接收部,上述秘密键生成部,使用至少包括上述第2打印机位置信息的口令,和上述给定的数接收部所接收到的上述给定的数,生成秘密键。
18.如权利要求17所述的打印机,其特征在于导出上述给定的数所必须的信息,是导出给定的数的算法,和用于导出的附加信息。
19.如权利要求1至权利要求18中任一个所述的打印机,其特征在于上述给定的数为随机数。
20.一种打印机的控制方法,控制处理打印数据的打印机,其特征在于,包括从打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息,将其作为第1打印机位置信息的步骤;使用至少包括上述第1打印机位置信息的口令,和给定的数,生成公开键的步骤;从打印客户端接收打印数据的步骤;接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息的步骤;使用至少包括上述第2打印机位置信息的口令,和上述给定的数,生成秘密键的步骤;以及使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密的步骤。
21.如权利要求20所述的打印机的控制方法,其特征在于还包括将在生成上述公开键的步骤中所生成的秘密键废弃的步骤。
22.如权利要求21所述的打印机的控制方法,其特征在于还包括在能够使用上述秘密键解密上述打印数据的情况下,根据上述打印数据执行打印,在不能够使用上述秘密键解密上述打印数据的情况下,不根据上述打印数据执行打印的步骤。
23.如权利要求22所述的打印机的控制方法,其特征在于还包括将上述公开键生成部所使用的上述给定的数,保存在给定的数保存部中的步骤。
24.如权利要求23所述的打印机的控制方法,其特征在于,还包括从打印客户端接收公开键取得请求的步骤;和将上述所生成的上述公开键,发送给发送了上述公开键取得请求的打印客户端的步骤。
25.如权利要求24所述的打印机的控制方法,其特征在于上述给定的数保存部中所保存的给定的数,在该打印机中为1个。
26.如权利要求24所述的打印机的控制方法,其特征在于上述给定的数保存部中所保存的给定的数,对每个上述打印客户端分别有1个。
27.如权利要求26所述的打印机的控制方法,其特征在于,还包括除了被通过上述公开键所加密的上述打印数据之外,还接收没有被通过上述公开键所加密的打印客户端识别信息的步骤;和根据上述打印客户端识别信息,从上述给定的数保存部中,取得发送上述打印数据的打印客户端的给定的数的步骤。
28.如权利要求24所述的打印机的控制方法,其特征在于上述给定的数保存部中所保存的给定的数,对每个用户分别有1个。
29.如权利要求28所述的打印机的控制方法,其特征在于,还包括除了被通过上述公开键所加密的上述打印数据之外,还接收没有被通过上述公开键所加密的用户识别信息的步骤;和根据上述打印客户端识别信息,从上述给定的数保存部中,取得发送上述打印数据的用户的给定的数的步骤。
30.如权利要求23所述的打印机的控制方法,其特征在于上述公开键生成步骤中,根据每个打印任务中打印客户端所发送的公开键取得请求,生成给定的数,并生成上述公开键。
31.如权利要求30所述的打印机的控制方法,其特征在于还包括在生成了上述秘密键之后,将上述给定的数保存部中所保存的给定的数删除的步骤。
32.如权利要求22所述的打印机的控制方法,其特征在于还包括将上述所生成的公开键,与生成该公开键时所使用的上述给定的数,发送给打印客户端的步骤;和从打印客户端接收给定的数的步骤,上述秘密键生成步骤中,使用至少包括上述第2打印机位置信息的口令,和上述所接收到的上述给定的数,生成秘密键。
33.如权利要求32所述的打印机的控制方法,其特征在于上述公开键生成步骤中,在从打印客户端接收到公开键取得请求的情况下,生成上述公开键与上述给定的数;上述公开键发送步骤中,将上述公开键与上述给定的数,发送给发送了该公开键取得请求的打印客户端。
34.如权利要求32所述的打印机的控制方法,其特征在于上述公开键生成步骤中,根据每个打印任务中打印客户端所发送的公开键取得请求,生成给定的数,并生成上述公开键。
35.如权利要求34所述的打印机的控制方法,其特征在于还包括将生成公开键时所使用的给定的数,在将上述给定的数发送给打印客户端之后废弃的步骤。
36.如权利要求22所述的打印机的控制方法,其特征在于还包括将上述所生成的公开键,与导出生成该公开键时所使用的上述给定的数所必须的信息,发送给打印客户端的步骤;和从打印客户端接收给定的数的步骤,上述秘密键生成步骤中,使用至少包括上述第2打印机位置信息的口令,与上述所接收到的上述给定的数,生成秘密键。
37.如权利要求36所述的打印机的控制方法,其特征在于导出上述给定的数所必须的信息,是导出给定的数的算法,和用于导出的附加信息。
38.如权利要求20至权利要求37中任一个所述的打印机的控制方法,其特征在于上述给定的数为随机数。
39.一种打印系统,具有至少1台打印机,以及通过网络与上述打印机相连接的至少1台打印客户端,其特征在于上述打印机具有打印机位置信息取得部,取得用来特定该打印机的设置场所的打印机位置信息;第1打印机位置信息取得部,从上述打印机位置信息取得部取得打印机位置信息,将其作为第1打印机位置信息;以及公开键生成部,使用至少包括上述第1打印机位置信息的口令,与给定的数,生成公开键,上述打印客户端具有打印数据生成部,生成用来通过上述打印机进行打印的打印数据;和打印数据发送部,通过上述公开键加密上述打印数据,将该被加密的打印数据发送给上述打印机,上述打印机还具有打印数据接收部,接收由上述打印客户端所发送的,通过上述公开键所加密的打印数据;第2打印机位置信息取得部,接收上述打印数据时,从上述打印机位置信息取得部取得打印机位置信息,将其作为第2打印机位置信息;秘密键生成部,使用至少包括上述第2打印机位置信息的口令,与上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述打印数据进行解密。
40.一种数据接收装置,处理数据,其特征在于,包括数据接收装置位置信息取得部,取得用来特定该数据接收装置的设置场所的数据接收装置位置信息;第1数据接收装置位置信息取得部,从上述数据接收装置位置信息取得部获取数据接收装置位置信息,将其作为第1数据接收装置位置信息;公开键生成部,使用至少包括上述第1数据接收装置位置信息的口令,和随机数,生成公开键;数据接收部,接收通过上述公开键所加密的数据;第2数据接收装置位置信息取得部,接收上述数据时,从上述数据接收装置位置信息取得部获取数据接收装置位置信息,将其作为第2数据接收装置位置信息;秘密键生成部,使用至少包括上述第2数据接收装置位置信息的口令与,上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述数据进行解密。
41.一种数据发送接收系统,具有至少1台数据接收装置,以及通过网络与上述数据接收装置相连接的至少1台数据发送装置,其特征在于上述数据接收装置具有数据接收装置位置信息取得部,取得用来特定该数据接收装置的设置场所的数据接收装置位置信息;第1数据接收装置位置信息取得部,从上述数据接收装置位置信息取得部获取数据接收装置位置信息,将其作为第1数据接收装置位置信息;以及公开键生成部,使用至少包括上述第1数据接收装置位置信息的口令,与随机数,生成公开键,上述数据发送装置具有数据生成部,生成用来通过上述数据接收装置进行处理的数据;和数据发送部,通过上述公开键加密上述数据,将该被加密的数据发送给上述数据接收装置,上述数据接收装置还具有数据接收部,接收由上述数据发送装置所发送的,通过上述公开键所加密的数据;第2数据接收装置位置信息取得部,接收上述数据时,从上述数据接收装置位置信息取得部获取数据接收装置位置信息,将其作为第2数据接收装置位置信息;秘密键生成部,使用至少包括上述第2数据接收装置位置信息的口令与,上述给定的数,生成秘密键;以及解密部,使用上述秘密键,对上述打印数据接收部所接收到的上述数据进行解密。
全文摘要
打印机使用至少包括打印机位置信息的口令以及随机数,通过公开键加密法生成公开键,同时保存该随机数。打印客户端预先从打印机取得该公开键。之后,在打印客户端向打印机发送打印数据的情况下,使用预先所取得的公开键对打印数据进行加密,作为打印发送用数据发送。接收到该打印发送用数据的打印机,使用至少包括打印机位置信息的口令与所保存的随机数,通过公开键加密法生成秘密键。之后,使用该秘密键,解密所接收到的打印发送用数据。这样,能够确保打印客户端通过网络向打印机发送的打印数据的安全性。
文档编号G06F21/00GK1668471SQ0381639
公开日2005年9月14日 申请日期2003年7月22日 优先权日2002年8月30日
发明者岛敏博, 合掌和人, 小嶋辉人 申请人:精工爱普生株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1