WO2004022350A1 - プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム - Google Patents

プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム Download PDF

Info

Publication number
WO2004022350A1
WO2004022350A1 PCT/JP2003/009280 JP0309280W WO2004022350A1 WO 2004022350 A1 WO2004022350 A1 WO 2004022350A1 JP 0309280 W JP0309280 W JP 0309280W WO 2004022350 A1 WO2004022350 A1 WO 2004022350A1
Authority
WO
WIPO (PCT)
Prior art keywords
printer
print
public key
data
predetermined number
Prior art date
Application number
PCT/JP2003/009280
Other languages
English (en)
French (fr)
Inventor
Toshihiro Shima
Kazuhito Gassho
Teruhito Kojima
Original Assignee
Seiko Epson Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Seiko Epson Corporation filed Critical Seiko Epson Corporation
Priority to US10/512,235 priority Critical patent/US7552324B2/en
Priority to JP2004534094A priority patent/JP4045552B2/ja
Priority to EP03741540A priority patent/EP1493589A4/en
Publication of WO2004022350A1 publication Critical patent/WO2004022350A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • G06F21/608Secure printing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2111Location-sensitive, e.g. geographical location, GPS

Definitions

  • the present invention relates to a printer and a printing system, and a data receiving device and a data transmitting and receiving system. More particularly, the present invention relates to a printer and a printing system that ensure the security of data transmitted to the printer and the data receiving device, and a data receiving device and a data receiving device. It relates to a data transmission / reception system. Background technology
  • the printer unconditionally prints the print data sent from the print client, even if the printer is not installed in the place intended by the user, the print is performed as it is. It will be.
  • the IP address which is an address on the network, may not be changed. The transmitted print data will be printed. Such a situation is undesirable for a user who wants to secure print data.
  • the printer sends the print data sent from the print client If printing is performed by the printer, the printer will print even print data from a print client to which the printer does not originally have authority to print. In this case, it is not possible to limit the print clients that can print with the printer, which is also undesirable. In particular, given that there may be users who send large amounts of print data with improper intent, it is necessary to set some printing restrictions.
  • a printer used in one department of a company may be moved to another department and used again.
  • the necessity of a technique for preventing print data from a print client from being printed on the printer side has been recognized (see Japanese Patent Application Laid-Open No. H11-31314).
  • Some printers include a certificate for authenticating the printer itself. However, if such a printer is to be discarded, the certificate built into the printer must be securely deleted. However, if the printer cannot be printed just by changing the location of the printer, the printer can be destroyed more safely.
  • the present invention has been made in view of the above-mentioned problems, and a print system that secures print data and printer security by restricting print data that can be printed based on information on the location of the printer is provided.
  • the purpose is to provide.
  • a printer is a printer for processing print data, A printer position information obtaining unit for obtaining printer position information for specifying a place where the printer is installed,
  • a first printer position information acquisition unit that acquires printer position information from the printer position information acquisition unit and uses this as first printer position information
  • a public key generation unit that generates a public key using a passphrase including at least the first printer position information and a predetermined number
  • a print data receiving unit that receives the print data encrypted with the public key; and, upon receiving the print data, obtains printer position information from the printer position information obtaining unit.
  • a second printer position information acquisition section A second printer position information acquisition section
  • a secret key generation unit that generates a secret key using the passphrase including at least the second printer position information and the predetermined number
  • a method of controlling a printer that processes print data includes acquiring printer position information for specifying a location where the printer is installed from a printer position information acquisition unit, Using the first printer position information as
  • Using the private key comprises decrypting the print data received by the print data receiving section ( According to another aspect of the present invention, there is provided a printing system comprising at least one printer and at least one print client connected to the printer via a network.
  • the printer is
  • a first printer position information acquisition unit that acquires printer position information from the printer position information acquisition unit and uses this as first printer position information
  • a public key generation unit that generates a public key using a passphrase including at least the first printer position information and a predetermined number
  • the print client The print client,
  • a print data generation unit that generates print data for printing by the printer; a print data transmission unit that encrypts the print data with the public key, and transmits the encrypted print data to the printer.
  • the printer further comprises:
  • a print data receiving unit that receives print data transmitted from the print client and encrypted with the public key
  • a second printer position information obtaining unit that obtains printer position information from the printer position information obtaining unit when the print data is received, and uses the printer position information as second printer position information;
  • a secret key generation unit that generates a secret key using the passphrase including at least the second printer position information and the predetermined number
  • a data receiving device for processing data comprises:
  • Data receiving device position for specifying the location where the data receiving device is installed
  • a data receiving device position information acquisition unit for acquiring location information
  • a first data receiving device position information acquiring unit that acquires data receiving device position information from the data receiving device position information acquiring unit and uses this as first data receiving device position information;
  • a public key generation unit that generates a public key using a passphrase including at least
  • a data receiving unit that receives the data encrypted with the public key
  • a second data receiving device position information acquiring unit that, when receiving the data, acquires data receiving device position information from the data receiving device position information acquiring unit and uses the data receiving device position information as second data receiving device position information;
  • a secret key generation unit that generates a secret key using the passphrase including at least the second data receiving device position information and the predetermined number;
  • a data transmission / reception system comprising: at least one data reception device; and at least one data transmission device connected to the data reception device via a network.
  • the data receiving device receives the data from the base station.
  • a data receiving device position information obtaining unit for obtaining data receiving device position information for specifying a place where the data receiving device is installed
  • a first data receiving device position information acquiring unit that acquires data receiving device position information from the data receiving device position information acquiring unit and uses this as first data receiving device position information;
  • a public key generation unit that generates a public key using a passphrase including at least
  • the data transmission device includes
  • a data generating unit that generates data for performing processing in the data receiving device; a data transmitting unit that encrypts the data with the public key and transmits the encrypted data to the data receiving device;
  • the data receiving device further comprises:
  • a data receiving unit that receives data encrypted with the public key transmitted from the data transmitting device
  • a second data receiving device position information acquiring unit that, when receiving the data, acquires data receiving device position information from the data receiving device position information acquiring unit and uses the data receiving device position information as second data receiving device position information;
  • a secret key generation unit that generates a secret key using the passphrase including at least the second data receiving device position information and the predetermined number;
  • FIG. 1 is a diagram illustrating an example of a configuration of a printing system according to the first embodiment of the present invention
  • FIG. 2 is a diagram illustrating an example of a hardware configuration of a printer according to the first embodiment of the present invention
  • FIG. 3 is a diagram illustrating an example of a configuration of a print client according to the first embodiment of the present invention.
  • FIG. 4 is a diagram illustrating print data using a public key and a secret key according to the first embodiment of the present invention.
  • FIG. 5 is a flowchart illustrating a public key request process executed by the print client according to the first embodiment of the present invention.
  • FIG. 6 is a diagram showing an example of a configuration of a public key table provided in the print client according to the first embodiment of the present invention
  • FIG. 7 is a diagram (part 1) showing a part of a flowchart for explaining a public key transmission process executed by the printer according to the first embodiment of the present invention.
  • FIG. 8 is a view (part 2) showing a part of a flowchart for explaining a public key transmission process executed by the printer according to the first embodiment of the present invention.
  • FIG. 9 shows a print request process executed by the print client according to the first embodiment of the present invention. Diagram showing a flowchart explaining the process
  • FIG. 10 is a flowchart illustrating a print execution process executed by the printer according to the first embodiment of the present invention.
  • FIG. 11 is a diagram showing a part of a flowchart illustrating a public key transmission process executed by the printer according to the second embodiment of the present invention.
  • FIG. 12 is a diagram showing an example of a configuration of a random number table provided in the printer according to the second embodiment of the present invention.
  • FIG. 13 is a flowchart illustrating a print request process executed by the print client according to the second embodiment of the present invention.
  • FIG. 14 is a diagram illustrating an example of a configuration of print transmission data transmitted from a print client to a printer in the second embodiment of the present invention.
  • FIG. 15 is a flowchart illustrating a print execution process executed by the printer according to the second embodiment of the present invention.
  • FIG. 16 is a flowchart illustrating a public key request process executed by the print client according to the third embodiment of the present invention.
  • FIG. 17 is a diagram illustrating an example of a configuration of a public key table included in a print client according to the third embodiment of the present invention.
  • FIG. 18 is a view (part 1) showing a part of a flowchart for explaining a public key transmission process executed by the printer according to the third embodiment of the present invention.
  • FIG. 19 is a view (part 2) showing a part of a flowchart for explaining a public key transmission process executed by the printer according to the third embodiment of the present invention.
  • FIG. 20 is a diagram illustrating an example of a configuration of a random number table provided in the printer according to the third embodiment of the present invention.
  • FIG. 21 is a flowchart illustrating a print request process executed by the print client according to the third embodiment of the present invention.
  • FIG. 22 is a diagram illustrating an example of a configuration of print transmission data transmitted from a print client to a printer in the third embodiment of the present invention.
  • FIG. 23 is a flowchart illustrating a print execution process executed by the printer according to the third embodiment of the present invention.
  • FIG. 24 is a diagram (part 1) showing a part of a flowchart for explaining a print request process executed by a print client according to the fourth embodiment.
  • FIG. 25 is a diagram (part 2) showing a part of a flowchart for explaining a print request process executed by a print client according to the fourth embodiment.
  • FIG. 26 is a diagram (part 1) showing a part of a flow chart for explaining a print execution process executed by the printer according to the fourth embodiment.
  • FIG. 27 is a diagram (part 2) showing a part of a flow chart for explaining a print execution process executed by the printer according to the fourth embodiment.
  • FIG. 28 is a diagram (part 3) showing a part of a flowchart explaining the print execution process executed by the printer according to the fourth embodiment.
  • FIG. 29 is a conceptual diagram illustrating encryption and decryption of print data using a public key and a secret key in the fifth embodiment of the present invention.
  • FIG. 30 is a flowchart illustrating a public key request process executed by the print client according to the fifth embodiment of the present invention.
  • FIG. 31 is a diagram showing an example of a configuration of a public key table provided in a print client according to a fifth embodiment of the present invention.
  • FIG. 32 is a diagram (part 1) showing a part of a flowchart illustrating a public key transmission process executed by the printer according to the fifth embodiment of the present invention.
  • FIG. 33 is a diagram (part 2) showing a part of a flowchart for explaining a public key transmission process executed by the printer according to the fifth embodiment of the present invention.
  • FIG. 34 is a flowchart illustrating a print request process executed by the print client according to the fifth embodiment of the present invention.
  • FIG. 35 is a flowchart illustrating a print execution process performed by the printer according to the fifth embodiment of the present invention.
  • FIG. 36 is a flowchart illustrating a public key request process executed by the print client according to the sixth embodiment of the present invention.
  • FIG. 37 is a diagram illustrating an example of a configuration of a public key table included in a print client according to the sixth embodiment of the present invention.
  • FIG. 38 shows a print request executed by the print client according to the sixth embodiment of the present invention.
  • FIG. 6 is a diagram showing a flowchart for explaining processing.
  • FIG. 39 is a diagram (part 1) showing a part of a flowchart for explaining the print request processing executed by the print client according to the present embodiment.
  • FIG. 40 is a diagram (part 2) showing a part of a flowchart for explaining a print request process executed by the print client according to the present embodiment.
  • FIG. 41 is a diagram (part 1) showing a part of a flowchart for explaining print execution processing executed by the printer according to the present embodiment.
  • FIG. 42 is a diagram (part 2) showing a part of a flowchart for explaining the print execution process executed by the printer according to the present embodiment.
  • FIG. 43 is a view (part 3) showing a part of a flowchart for explaining the print execution processing executed by the printer according to the present embodiment.
  • FIG. 44 is a diagram illustrating an example in which an algorithm and additional information are transmitted from a printer to a print client instead of a random number (when a predetermined number is transmitted from a print client to a printer).
  • FIG. 45 is a diagram showing a modification of FIG. 44 (when an algorithm and additional information are transmitted from a print client to a printer).
  • FIG. 46 is a diagram showing another modification of FIG. 44 (when transmitting additional information without transmitting an algorithm from the print client to the printer). Preferred embodiment
  • the printing system generates a public key by using at least printer position information indicating a position where a printer is installed, causes the print client to acquire the public key, and allows the print client to perform printing.
  • the print data is encrypted using the obtained public key and transmitted as print transmission data generated.
  • the printer that has received the print transmission data generates a secret key using at least the printer position information at that time when receiving the print transmission data.
  • the printer When the print transmission data is decrypted with the secret key, the printer generates the secret key. Only printing is performed.
  • FIG. 1 is a block diagram illustrating a hardware configuration of a printing system according to the present embodiment.
  • the printing system includes print clients 20 and 22 connected to the network 10 and printers 30 and 32 also connected to the network 10.
  • the network 10 is configured by the Internet using a TCP / IP (transmission control protocol / internet protocol).
  • the mode of the network 10 is not limited to the Internet, and may be configured by, for example, a LAN such as an Ethernet network * or a mixture of the Internet and the LAN.
  • the print clients 20 and 22 are composed of, for example, various computers called host computers and personal computers.
  • the print clients 20 and 22 generate print transmission data obtained by encrypting the print data with the public key, and transmit the print transmission data to the printers 30 and 30 via the network 10.
  • the number of print clients connected to the network 10 is arbitrary, and may be one or more.
  • the print client is not limited to a computer, and may be, for example, a digital camera that needs to print a captured image, or a content server that stores print image data as content.
  • the printers 30 and 32 are so-called network printers.
  • the printers 30 and 32 receive print transmission data from the print client 20 and / or the print client 22 and include the print transmission data at least including printer position information.
  • Passphrase and this A secret key is generated by using the random numbers held in the printers 30 and 32, and the print transmission data is decrypted with the secret key. If the print transmission data can be decrypted, printing based on the print transmission data is performed. If the print transmission data cannot be decrypted, printing based on the print transmission data is performed. Absent.
  • the printers 30 and 32 are directly connected to the network 10, and each of the printers 30 and 32 has a unique network address. Therefore, the print clients 20 and 22 can transmit the print transmission data to the printer 30 or 32 by designating the network address.
  • printers 30 and 32 are directly connected to the network 10 in FIG. 1, the printers 30 and 32 may be connected via a printer server. Also, the number of printers connected to the network 10 is arbitrary, and may be one or more.
  • FIG. 2 is a block diagram for explaining the internal configuration of the printer 30.
  • the internal configuration of the printer 32 is the same as that of the printer 30.
  • the printer 30 includes a CPU (Central Processing Unit) 40, a RAM (Random Access Memory) 42, and a ROM (Read Only Memory) 44. These are connected to each other via an internal bus 46. Further, a communication interface 48 is connected to the internal bus 46, and the printer 30 is connected to the network 10 via the communication interface 48. Further, an interface 50 is connected to the internal bus 46, and a print engine 52 is connected to the interface 50.
  • a CPU Central Processing Unit
  • RAM Random Access Memory
  • ROM Read Only Memory
  • a position detecting section 54 is connected to the internal bus 46.
  • the position detecting section 54 has a function of specifying the position where the printer 30 is installed.
  • it is configured by a GPS (global positioning system), and the latitude, longitude, and altitude of the position where the printer 30 is installed can be specified.
  • the accuracy of GPS is said to be about ⁇ 10 m for latitude, longitude and altitude.
  • the position detecting section 54 is not limited to the configuration using the GPS.
  • the printer 30 when the printer 30 is connected to the network 10 by wireless and AN, the printer 30 is accommodated.
  • the position of the printer 30 may be specified based on the wireless base station in use.
  • the position of the printer 30 may be specified using a mobile communication technology such as a PHS (Personal Handyphone System).
  • a hard disk 58 is connected to the internal bus 46 via an interface 56.
  • the hard disk 58 functions as a rewritable nonvolatile storage device.
  • FIG. 3 is a block diagram for explaining the internal configuration of the print client 20.
  • the internal configuration of the print client 22 is the same as that of the print client 20.
  • the print client 20 includes a computer main body 60 and a display 62.
  • the computer main body 60 includes a CPU 64, a RAM 66, and a ROM 68, which are connected to each other via an internal bus 70. Further, a communication interface 72 is connected to the internal bus 70, and a print client 20 is connected to the network 10 via the communication interface 72. ⁇
  • an interface 74 is connected to the internal bus 70, and a hard disk 76 which is a mass storage device is connected to the interface 74.
  • the hard disk 76 functions as a rewritable nonvolatile storage device.
  • An interface 78 is connected to the internal bus 70, and the above-described display 62 is connected to the internal bus 70 via a cable 80 extending from the interface 78.
  • the print client 20 obtains the public key of the printer 30 from the printer 30 in advance, for example.
  • this public key It is performed via the network 10. That is, the printer 30 confirms whether or not the print client 20 that has requested the transmission of the public key has the right authority, and notifies the own public key only when the printer client 20 has the right authority.
  • This public key is released by the printer 30 using a passphrase including at least printer position information indicating the position where the printer 30 is installed, and a random number generated and held by the printer 30.
  • Generated by key cryptography That is, the printer 30 has a function of holding random numbers used by public key cryptography.
  • the generated private key is destroyed. That is, in general public key cryptography, a public key and a secret key are generated at the same time. For this reason, in the present embodiment, even when a private key is generated when a public key is generated, the private key is destroyed. Thus, when the installation location of the printer 30 is moved, the data for print transmission encrypted with the public key generated before the movement is set so that it cannot be decrypted by the printer 30 after the movement. It is.
  • the public key of the printer 30 need not necessarily be notified to the print client 20 via the network 10. For example, if the user of the print client 20 has a legitimate authority, the user can go to the place where the printer 30 is installed and operate the printer 30.
  • the public key of the printer 30 may be obtained by operating the mouth panel. In this case, the user may record the public key of the printer 30 on a recording medium such as a flexible disk and have the print client 20 read this.
  • the user of the print client 20 creates print data DO5, which is data to be printed, and designates the printer 30 to the print client 20 to perform printing. Instruct.
  • the print client 20 encrypts the print data D O5 using the public key of the printer 30 acquired in advance, and generates print transmission data D 10.
  • the print data D05 indicates the original print data necessary for performing printing by driving the print engine 52 by the printer 30.
  • the print transmission data D10 may include data other than the print data D05 shown in FIG.
  • the printer 30 that has received the print transmission data D10, as shown in FIG.
  • the received print transmission data D 10 is temporarily stored in RAM 42.
  • the printer 30 decrypts the encrypted print transmission data D10 using the secret key. That is, the printer 30 generates a secret key by public key cryptography using a passphrase including at least printer position information and a random number generated and held by the printer 30.
  • the printer 30 determines whether or not the print transmission data D10 has been successfully decrypted. If the print transmission data D 10 can be decrypted, printing is performed based on the print data D 05 obtained by decoding the print transmission data D 10, and if the decryption cannot be performed, Printing is not performed. '
  • FIG. 5 is a flowchart illustrating a public key request process executed by the print clients 20 and 22.
  • This public key request process is a process realized by the CPU 64 reading and executing a public key request program stored in the ROM 68 or the hard disk 76 of the print client.
  • the public key request process is started and executed when the user inputs an instruction to start a process for requesting a public key to the print client. In the following, the process will be described on the assumption that the print client 20 requests a public key from the printer 30.
  • the print client 20 connects to the printer 30 (step S100).
  • the print client 20 establishes a connection between the print client 20 and the printer 30 by designating the network address of the printer 30. Further, in the present embodiment, a connection between the print client 20 and the printer 30 is established after securing security by SSL (Secure Socket Layer) communication or the like.
  • SSL Secure Socket Layer
  • the print client 20 transmits the authentication information to the printer 30 (step S102).
  • a print client is used as the authentication information. It uses a combination of a print client ID and password to specify the password. Therefore, the print client 20 transmits the print client ID and the password to the printer 30.
  • the print client 20 receives an authentication result indicating whether the authentication has been accepted from the printer 30. Based on the authentication result, the print client 20 determines whether the printer 30 has been authenticated ( Step S104). If the authentication is not recognized (step S104: No), the above steps S102 to S102 are repeated.
  • Step S104 if the authentication is approved (Step S104: Yes), the print client 20 sends a public key acquisition request to the printer 30 (Step S106). Then, it is determined whether or not the public key has been received from the printer 30 (step S108). If the public key has not been received from the printer 30 (step S108: No), this step S108 is repeated to wait.
  • the print client 20 has a public key table TB10 provided on the hard disk 76, and the obtained public key is stored and held in the public key table TB10.
  • FIG. 6 is a diagram showing an example of the configuration of the public key table TB10. As shown in FIG. 6, the public key table TB10 includes an item TD10 for storing information for identifying the printer, and an item TD11 for storing the obtained public key in association with the printer. ing. As described above, the public key table TB10 can hold public keys for a plurality of printers for each printer.
  • FIG. 5 the print client 20 disconnects from the printer 30 (step S112).
  • the public key request processing shown in FIG. 5 ends.
  • FIG. FIGS. 7 and 8 are flowcharts for explaining the public key transmission processing executed by the printers 30 and 32.
  • This public key transmission processing is realized by the CPU 40 reading and executing a public key transmission program stored in the ROM 44 or the hard disk 58 of the printer. The public key transmission process is started in response to the above-described public key request process.
  • the printer 30 waits for a connection from the print client 20, and establishes a connection with the print client 20 when a connection is requested from the print client 20 (step S120). This corresponds to step S100 on the printing clients 1 and 20 described above. That is, the connection is established after securing the security by SSL communication or the like. Subsequently, the printer 30 determines whether authentication information has been received from the print client 20 (step S122). If the authentication information has not been received (step S122: No), the process of step S122 is repeated and the process stands by.
  • step S122 when the authentication information is received from the print client 20 (step S122: Yes), it is determined whether the authentication information matches the authentication information registered in advance in the printer 30 (step S122). 1 24). Specifically, as described above, since the print client ID and password are transmitted as authentication information from the print client 20, the print client ID and password are stored in the print client ID registered in advance in the printer 30. And password match.
  • step S124: No If the authentication information does not match (step S124: No), the printer 30 transmits an authentication result indicating that the authentication has not been accepted to the print client 20 (step S126), In step S154 of 8, the connection with the print client 20 is terminated. On the other hand, if the authentications match (step S124: Yes), the printer 30 notifies the print client 20 that the authentication is accepted. A B certificate result is transmitted (step S128).
  • step S130 determines whether a public key acquisition request has been received from the print client 20 (step S130). If the public key acquisition request has not been received (step S130: No), the process of step S130 is repeated to wait.
  • step S when a public key acquisition request is received from the print client 20 (step S
  • the printer 30 acquires the device-specific information of the printer 30 (step S132).
  • the device-specific information is identification information uniquely assigned to the printer 30, and includes, for example, a manufacturing serial number and a MAC address of the printer 30.
  • the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S140).
  • the printer position information is acquired from the position detection unit 54 each time when the printer 30 is moved to another place, the public key is obtained using the moved position information. This is to generate it.
  • the printer 30 creates a passphrase using the device-specific information and the printer position information (step S142).
  • the passphrase is created simply by connecting the printer position information to the device-specific information.
  • the passphrase may include data other than the device-specific information and the printer position information.
  • Step S144 the printer 30 determines whether or not the random number of the printer 30 is registered in advance.
  • step 144 the printer 30 generates one random number and registers it in the hard disk 58 (step S146). That is, in the present embodiment, each printer generates a random number only once, registers it in the hard disk 58, and holds it. This random number is generated when the printer 30 performs the public key transmission process for the first time. Also, since the hard disk 58 stores the random numbers, it is stored in a nonvolatile manner even when the power of the printer 30 is turned off. Therefore, even if the power of the printer 30 is turned on again, the random number used so far is effectively held. Note that the generation of the random number of the printer 30 is not necessarily performed in the public key transmission process, but may be performed in another process. For example, when the printer 30 is shipped from the factory, it may be generated in advance, registered in the hard disk 58, and held.
  • step S144 when the random number is stored in the hard disk 58 (step S144: Yes), the process of step S146 is bypassed.
  • the printer 30 reads out and obtains the random number of the printer 30 from the hard disk 58 (step S148).
  • the printer 30 generates a public key and a secret key by public key cryptography using the passphrase created in step S144 and the random number obtained in step S148. (Step S150).
  • Public key cryptography has the property that if the passphrase and random number used are the same, the same is generated even if the public key and secret key are generated again.
  • the printer 30 transmits only the public key of the generated public key and private key to the print client 20 (step S1522). The private key is destroyed without being saved.
  • the printer 30 terminates the connection with the print client 20 (step S154).
  • the public key transmission processing according to the present embodiment ends.
  • FIG. 9 is a flowchart illustrating a print request process executed by the print clients 20 and 22.
  • This print request processing is realized by the CPU 64 reading and executing a print request program stored in the ROM 68 or the hard disk 76 of the print client.
  • the print request processing is started and executed when the user inputs a print instruction to the print client.
  • the print client 20 creates print data D05 based on a user's print request (step S160).
  • the print data DO5 is data necessary for actually performing printing when the printer 30 is a normal printer.
  • the print client 20 reads the public key of the printer 30 from the public key table TB10 of the hard disk 76 (Step S162). Subsequently, the print client 20 encrypts the print data DO 5 using the public key of the printer 30 to generate print transmission data D 10 (step S 164).
  • the print transmission data D10 may include data other than the print data.
  • the print client 20 establishes a connection with the printer 30 (step S165). Subsequently, the print client 20 transmits the encrypted print transmission data D10 to the printer 30 (step S166). Specifically, the network address of the printer 30 is specified, and the print transmission data D10 is transmitted to the network 10.
  • step S168 determines whether or not print result information has been received from the printer 30 (step S168). If the print result information has not been received (step S168: No), the process of step S168 is repeated and the process waits. On the other hand, if the print result information has been received (step S168: Yes), it is determined whether or not the print result information is a print completion notification (step S170).
  • step S170 If the print result information is a print completion notification (step S170: Yes), it means that the printing has been completed normally by the printer 30, and the user has completed the printing with the printer 30. Is notified (step S172). On the other hand, if the received print result information is not a print completion notification (step S170: No), it is determined whether or not the print result information is a decipherable notification (step S174). If the print result information is a non-decipherable notification (step S174: Yes), the user is informed that printing was not performed because the printer 30 could not decode the print transmission data D10. Notify (step S176). On the other hand, if the print result information is not an indecipherable notification (step S 174: No), Since the error is considered to be an error, the user is notified according to the type of the error (step S178).
  • the print client 20 disconnects from the printer 30 (step S 179). Thus, the print request processing in the print client 20 ends.
  • FIG. 10 is a flowchart illustrating a print execution process executed by the printers 30 and 32.
  • This print execution process is realized by the CPU 40 reading and executing a print execution program stored in the ROM 44 or the hard disk 58 of the printers 30 and 32.
  • the print execution process is a process that is constantly executed at predetermined time intervals.
  • the printer 30 is waiting for a connection from the print client 20, and when the print client 20 requests a connection, the printer 30 connects to the print client 20 via the network 10.
  • Establish (Step S180). After the connection with the print client 20 is established, the printer 30 determines whether or not the print transmission data D10 has been received from the network 10 (step S181). If no print transmission data D10 has been received (step S181: No), the process of step S181 is repeated to wait.
  • the printer 30 acquires its own device-specific information (step S182). Subsequently, the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S184). As described above, the printer position information is acquired from the position detection unit 54 each time. When the printer 30 is moved to another location, the printer 30 is placed in an unintended location. In such a case, the printer 30 prints. This is to prevent them from being touched.
  • the printer 30 creates a passphrase based on the device-specific information and the printer position information (step S186).
  • the method for creating this passphrase must be the same as that in step S142 in the public key transmission process described above. This is because, if the passphrase is different, the print transmission data encrypted with the public key transmitted to the print client cannot be decrypted with the private key.
  • the printer 30 reads out and acquires the random number of the printer 30 registered and held in the above-described step S146 from the hard disk 58 (step S188). Subsequently, the printer 30 generates a public key and a secret key by public key cryptography using the generated passphrase and the obtained random number (step S190).
  • the printer 30 If the printer 30 is not moved, the passphrase and the random number used in step S190 in the above-described public key transmission process are used as the passphrase and the random number used in step S190. Is the same. Therefore, the same public key and secret key as those generated in step S150 are generated. Subsequently, the printer 30 decrypts the received print transmission data D10 using the generated secret key, and obtains the print data D05 (Step S192).
  • the printer 30 determines whether or not the print transmission data D10 has been successfully decrypted using the secret key (step S194). If the decryption is successful (step S194: Yes), printing is performed by driving the print engine 52 based on the obtained print data DO5 (step S196). Specifically, the language of print data DO 5 is interpreted, and print request data suitable for print engine 52 is generated. Then, by transmitting the print request data to the print engine 52, printing is performed on printing paper or the like by the print engine 52.
  • a secret key is generated using a passphrase including at least the printer position information detected by the position detection unit 54 and a random number registered in the printer 30. If the print transmission data D10 can be decrypted with this secret key, it is determined that the print transmission data D10 matches the printer position information.
  • step S 198 When this printing is completed normally, the printer 30 informs that printing has been completed normally. Is transmitted to the print client 20 as print result information (step S 198). -On the other hand, if it is determined in step S194 that the print transmission data D10 has not been decrypted (step S194: No), the indecipherable notification is used as the print result information. And sends it to the print client 20 (step S200). That is, in the present embodiment, a secret key is generated using a passphrase including at least the printer position information detected by the position detection unit 54 and a random number registered in the printer 30, and the secret key is used for printing and transmission. If the trust data D10 cannot be decrypted, it is determined that the print transmission data D10 did not match the printer position information.
  • step S 198 or S 200 the printer 30 ends the connection with the print client 20 (step S 202). Then, the process returns to step S181.
  • the print clients 20 and 22 send a printer capable of printing the encrypted print transmission data D10 based on the printer position information. Therefore, it is possible to prevent printing from being performed by a printer at a position not intended by the user of the print clients 20 and 22. For example, if the printer 30 has been moved to another location, but the network address of the printer 30 in the network 10 has not been changed, the print transmission data D 10 is erroneously transmitted from the print client 20. Even if the data is transmitted to the printer 30, the passphrase created in step S186 becomes different from that before the movement because the printer position information has been changed in the printer 30. For this reason, even if the secret chain generated using this passphrase is used, the print transmission data D10 cannot be decrypted, and the printer 30 does not perform printing. Therefore, the security of the print data DO5 can be enhanced.
  • printers 30 and 32 as well, those who normally do not have the authority to print on these printers 30 and 32 send print data to these printers 30 and 32 and print a large amount of data. Can be prevented from being executed by the printers 30 and 32. For example, for some reason, the network address of the printer 30 However, even if the user tries to transmit the print transmission data D10 to the printer 30, the public key of the printer 30 cannot be obtained.
  • the device specific information is also included in the passphrase, even if a third party knows the position of the printer 30 for some reason, the device specific information of the printer 30 cannot be determined. Without it, the passphrase used in Printer 30 cannot be identified. For this reason, it is extremely difficult for a third party to impersonate the printer 30 and receive the print transmission data D10, and to decrypt the print transmission data D10.
  • a public key and a secret key are generated using a random number in addition to a passphrase. Therefore, a third party can impersonate the printer 30 and copy the print transmission data D10. Receiving and decoding the print transmission data D10 can be made even more difficult.
  • This random number is generated for each printer, and the generated random number is stored in a rewritable nonvolatile storage device such as a hard disk, so the same random number used when the public key was generated is used. Can also be used to generate private keys. Therefore, a secret key capable of decrypting the print transmission data D10 encrypted with the public key generated using the random number can be generated again.
  • a random number used by the printers 30 and 32 to generate a public key and a secret key is generated and held for each print client. Is made even more difficult. This will be described in more detail below.
  • the configuration of the printing system according to this embodiment is the same as that of the first embodiment described above.
  • the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above, and the configuration of the print clients 20 and 22 is the same as that of FIG. 3 described above.
  • the public key request processing executed by the print clients 20 and 22 according to the present embodiment is the same as in the above-described first embodiment.
  • FIG. 11 is a flowchart illustrating a part of a public key transmission process executed by the printers 30 and 32 according to the present embodiment, and is a diagram corresponding to FIG. 8 in the first embodiment. is there.
  • the public key transmission processing according to this embodiment is the same as the processing of the first embodiment described above up to the generation of the passphrase shown in step S142. Subsequent processing is different. That is, after completing the generation of the passphrase, the printer 30 determines whether or not the random number of the print client requesting the public key is registered in the printer 30 (step S300).
  • FIG. 12 is a diagram illustrating an example of a configuration of a random number table TB 20 in which a random number is registered for each print client, which is held by the printer 30 according to the present embodiment.
  • the random number table TB20 is stored and held in the hard disk 58.
  • the random number table TB 20 includes a print client ID T D 20 and a random number T D 21 as data items.
  • the print client ID 20 stores the print client ID as information for specifying the print client.
  • the random number TD21 stores a random number corresponding to the print client IDTD20.
  • a print client ID and a password are transmitted from the print clients 20 and 22 as identification information to the printer 30. . Therefore, in this step S300, it is determined whether or not the print client ID received from the print clients 20 and 22 is registered in the random number table TB20 and a random number is held.
  • step S300 if the random number of the print client concerned is not registered in this printer 30 (step S300: No), the printer 30 One random number for the print client is generated and registered in the random number table TB20 (step S302). Specifically, the print client ID of the print client and the generated random number are registered in the random number table TB20.
  • step S300 Yes
  • the process of step S302 is bypassed.
  • the printer 30 reads and obtains the random number of the print client that has requested transmission of the public key from the random number table TB20 (step S304).
  • the printer 30 generates a public key and a secret key by public key cryptography using the passphrase created in step S142 and the random number acquired in step S304 (step S306).
  • the printer 30 transmits only the public key of the generated public key and secret key to the print client 20 (step S152). The private key is destroyed without being saved.
  • the printer 30 terminates the connection with the print client 20 (step S154).
  • the public key transmission processing according to the present embodiment ends.
  • FIG. 13 is a flowchart illustrating a print request process executed by the print clients 20 and 22 according to the present embodiment.
  • the print request processing according to the present embodiment is different from the above-described first embodiment in the processing for generating print transmission data. That is, after reading the public key in step S162, the print client 20 encrypts the print data D05 using the public key (step S310).
  • FIG. 14 is a diagram illustrating an example of a format of the print transmission data D20 according to the present embodiment.
  • the print transmission data D20 according to the present embodiment includes the print data DO5 encrypted with the public key read in step S162 and the print data DO5 read in step S162. It is configured by adding a print client IDD15 that is not encrypted with a chain.
  • the print client IDD 15 is not encrypted with the public key read out in step S 16 2 because the printer 30 holds a different random number for each print client. This is because a secret key cannot be generated unless 5 is specified. Therefore, the print client IDD 15 can be encrypted by another encryption method without using the public key read in step S 16 2.
  • the print transmission data D20 may include data other than the print client ID D15 and the print data D05.
  • the print client ID 15 is transmitted together with the print data DO 5, but the print client ID 15 may be transmitted separately from the print data D 05. In this case, if the association with the print data D05 is maintained, the print client ID D15 may be transmitted before or after the print data D05. .
  • FIG. 15 is a flowchart illustrating a print execution process executed by the printers 30 and 32 according to the present embodiment.
  • the print execution process according to the present embodiment differs from the first embodiment in the process of obtaining random numbers. That is, after generating the passphrase in step S186, the printer 30 extracts and acquires the print client ID D15 from the received print transmission data D20 (step S32). 0).
  • the printer 30 searches the random number table TB 20 using the print client ID as a search key, reads the random number of the corresponding print client from the random number table TB 20, and acquires it (step S 32). 2). Subsequently, the printer 30 generates a public key and a secret key by public key cryptography using the passphrase generated in step S186 and the random number obtained in step S322 ( Step S 3 2 4).
  • step S324 is the same as in the above-described first embodiment.
  • the printing system according to the present embodiment also performs the first embodiment described above. The same effect as in the embodiment can be obtained.
  • the printers 30 and 32 generate random numbers for each print client and hold the random numbers. Can be extremely difficult to do.
  • a random number used by the printers 30 and 32 when generating the public key and the private key is generated and held for each user, so that a third party can estimate the random number. Is made even more difficult. The details are described below.
  • the configuration of the printing system according to this embodiment is the same as that of FIG. 1 in the first embodiment described above, and the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above.
  • the configurations of 20 and 22 are the same as in FIG. 3 described above.
  • FIG. 16 is a diagram showing a flowchart describing a part of a public key request process executed by the print clients 20 and 22 according to the present embodiment.
  • FIG. 6 is a diagram corresponding to FIG.
  • step S 1 the public key request processing according to the present embodiment is performed in step S 1
  • step S104 Processing after the authentication is approved in 04 differs from the above-described first embodiment. That is, if the authentication is approved in step S104 (step S104: Yes), the print client 20 requests the user of the user requesting the public key.
  • the user ID is input to the print client by operating the keyboard or the like by the user, and the input user ID is transmitted to the printer 30.
  • step S402 determines whether a public key has been received from the printer 30 (step S402). If the public key has not been received from the printer 30 (step S402: No), the process repeats step S402 and waits.
  • Step S402 when the public link is received from the printer 30 (Step S402: Yes) This public key is stored in (step S402).
  • the print client 20 has a public key table TB30 for each printer on the hard disk 76, and the acquired printer position information is stored and held in the public key table TB30. Is done.
  • FIG. 17 is a diagram showing an example of the configuration of the public key table TB30.
  • a table is formed for each printer 30 and 32, and each table stores information for identifying a user. 30 and an item TD 31 for storing the obtained public key in association with each user.
  • the public key table TB 30 can hold public keys for a plurality of users for each user and for each printer. Also, by storing the public key in the public key table TB 30 of the hard disk 78 in this way, even if the power of the print client 20 is turned off and then turned on again, the public key obtained before that is obtained. Can be read from the hard disk 78 as it is and used.
  • the print client 20 disconnects from the printer 30 (step S406).
  • the public key request processing shown in FIG. 16 ends.
  • FIGS. 18 and 19 are flowcharts for explaining the public key transmission process executed by the printers 30 and 32, and correspond to FIGS. 7 and 8 in the first embodiment described above. I have.
  • the printer 30 receives the user ID from the print client 20 together with the public key acquisition request. Different from form. That is, after transmitting the authentication result indicating that the authentication is accepted in step S128, the printer 30 determines whether the user ID and the public key acquisition request have been received (step S41). 0). If the user ID and the public key acquisition request are not received at least one of them is received (step S410: No), this step S411 is repeated to wait.
  • step S 4 For 10: Yes the processing from step S132 is executed as in the first embodiment described above.
  • the printer 30 according to the present embodiment is different from the above-described first and second embodiments in the process of acquiring random numbers. That is, after completing the generation of the passphrase, the printer 30 determines whether or not the random number of the user who has requested the public key is registered in the printer 30 and the print client 20 (Step S). 4 2 0).
  • FIG. 20 is a diagram showing an example of a configuration of a random number table TB 40 in which a random number is registered for each user, which is held by the printer 30 according to the present embodiment.
  • the random number table TB40 is formed for each print client.
  • the random number table TB40 is stored and stored in the hard disk 58.
  • the random number table TB 40 includes a user ID T D 40 and a random number T D 41 as data items.
  • the user ID 40 stores the user ID as information for identifying the user.
  • the random number TD41 stores a random number corresponding to the user IDTD40.
  • the print client ID and password are transmitted from the print client 20 to the printer 30 as identification information. Further, as described in step S410, the user ID is transmitted from the print client 20. Therefore, in this step S300, the table of the print client 20 in the random number table TB40 can be specified based on the print client ID received from the print client 20. Then, based on the user ID received from the print client 20, it can be determined whether a random number corresponding to the user is registered in the table of the print client.
  • step S420 if the corresponding print client has not registered the random number of the corresponding user in this printer 30 (step S420: No), the printer 30 performs this printing.
  • One random number of the corresponding user in the client is generated and registered in the random number table TB40 (step S422). Specifically, the user ID and the generated random number are registered in the print client 20 table in the random number table TB40.
  • step S420: Yes if the random number is registered in the printer 30 (step S420: Yes), the process of step S422 is bypassed.
  • the printer 30 reads the random number of the user registered for the print client requesting the transmission of the public key from the random number table TB40 and obtains it (step S424).
  • the printer 30 generates a public key and a secret key by public key cryptography using the passphrase created in step S142 and the random number acquired in step S424. (Step S 4 26). Then, as in the first and second embodiments described above, the printer 30 transmits only the public key of the generated public key and private key to the print client 20 (step S15). 2). Note that the private key is destroyed without being stored.
  • the printer 30 terminates the connection with the print client 20 (step S154).
  • the public key transmission processing according to the present embodiment ends.
  • FIG. 21 is a flowchart illustrating a print request process executed by the print clients 20 and 22 according to the present embodiment.
  • the print request processing according to the present embodiment differs from the above-described first and second embodiments in the processing for generating print transmission data. That is, in step S 162, after reading the public key of the user corresponding to the printer from the public key table TB 30, the print client 20 uses this public key to print data D 0 5 is encrypted (step S430). Next, the print client 20 adds its own print client ID and user ID to the encrypted print data D05 to generate print transmission data. (Step S432).
  • FIG. 22 is a diagram showing an example of the format of the print transmission data D30 according to the present embodiment. As shown in FIG.
  • the print transmission data D30 includes the print data D05 encrypted with the public key read in step S162 and the public key read in step S162. It is configured by adding a print client IDD 15 that is not encrypted by the user and a user IDD 25 that is also not encrypted by the public key read out in step S162.
  • the reason that the print client IDD 15 and the user IDD 25 are not encrypted with the public key read out in step S162 is that the printer 30 uses a different random number for each print client and for each user. This is because the secret key cannot be generated unless the print client IDD 15 and the user IDD 25 can be specified. Therefore, without using the public key read in step S 162, the print client ID 15 and the user ID
  • the print transmission data D30 may include data other than the print client IDD15, the user IDD25, and the print data D05.
  • the print client IDD 15 and the user IDD 25 are transmitted together with the print data DO5, but the print client IDD 15 and the user IDD 25 are transmitted to the print data D05. May be transmitted separately. In this case, as long as the association with the print data D05 is maintained, the print client IDD15 and the user IDD25 may be transmitted before the print data D05 or may be transmitted later. Good. Further, the print client ID 15 and the user ID 25 may be transmitted separately or may be transmitted simultaneously.
  • step S432 is the same as in the above-described first and second embodiments.
  • FIG. 23 is a flowchart illustrating a print execution process executed by the printers 30 and 32 according to the present embodiment.
  • the print execution process according to the present embodiment differs from the above-described first and second embodiments in the process of obtaining random numbers. That is, after generating the passphrase in step S186, the printer 30 extracts the print client IDD15 and the user IDD25 from the received print transmission data D20 and acquires them ( Step S440).
  • the printer 30 searches the random number table TB40 using the obtained print client ID and user ID as search keys, and stores the random number of the user registered for the print client in question in the random number table. Read and acquire from TB40 (step S4442). Subsequently, the printer 30 uses the passphrase generated in step S186 and the random number obtained in step S444 to generate a public key and a secret key by public key cryptography (step S4 4 4).
  • step S444 is the same as in the above-described first and second embodiments.
  • the printing system according to the present embodiment can also achieve the same effects as those of the above-described first and second embodiments. Further, according to the printing system according to the present embodiment, the printers 30 and 32 generate random numbers for each user and hold the random numbers, so that a third party can guess the random numbers. Can be extremely difficult.
  • Fourth EmbodimentA printing system generates a public key for each print job using a passphrase including at least printer position information indicating a position where a printer is installed. And sends it to the print client.
  • the print client transmits print transmission data generated by encrypting the print job data using the public key.
  • the printer receiving the print transmission data again generated a secret key using a passphrase including at least the printer position information at the time of reception, and was able to decrypt the print transmission data with the secret key.
  • the printing is executed only in the case.
  • public key cryptography random numbers are used when generating a public key and a secret key. The random number used to generate the public key to be sent to the printer is stored, and the same random number is used to generate the private key to decrypt the print transmission data. If is not changed, the same secret key can be obtained. This will be described in more detail below.
  • the configuration of the printing system according to this embodiment is the same as that of FIG. 1 in the first embodiment described above, and the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above.
  • the configurations of 20 and 22 are the same as in FIG. 3 described above.
  • the print client 20 obtains the public key of the printer 30 from the printer 30.
  • this public key is obtained for each print job via the network 10. That is, the printer 30 checks whether or not the print client 20 that has requested the transmission of the public key has the right authority, and only when the printer client 20 has the right authority, the printer 30 prints its own public key. Send to 0.
  • This public key is disclosed by the printer 30 using a passphrase including at least printer position information indicating the location where the printer 30 is installed, and a random number generated for each print job by the printer 30. Generated by key cryptography. The printer 30 holds the random number used to generate the public key.
  • the generated private key is destroyed. That is, in general public key cryptography, a public key and a secret key are generated at the same time. For this reason, in the present embodiment, even when a private key is generated when a public key is generated, the private key is destroyed. As a result, the possibility that the secret key generated by the printer 30 is leaked is reduced as much as possible.
  • the user of the print client 20 creates print job data D 05 including data necessary for performing printing on the printer 30, and Specify printer 30 for 0 and instruct printing.
  • the print client 20 encrypts the print job data DO5 using the public key of the printer 30 previously obtained, and generates print transmission data D10.
  • the print transmission data D 10 is data other than the print job data D 05 shown in FIG. May be included.
  • the printer 30 that has received the print transmission data D 10 temporarily stores the received print transmission data D 10 in the RAM 42 as shown in FIG. Then, the printer 30 decrypts the encrypted print transmission data D10 using the secret key. That is, the printer 30 generates a secret key by public key cryptography using a passphrase including at least printer position information and a random number generated and held by the printer 30. Then, the print transmission data D 10 is decrypted with the secret key.
  • the printer 30 determines whether or not the print transmission data D10 has been successfully decrypted. If the print transmission data D10 can be decrypted, printing is performed based on the print job data D05 obtained by decrypting the print transmission data D10. Does not print. Subsequently, the printer 30 deletes the held random number.
  • FIGS. 24 and 25 are flowcharts illustrating the print request processing executed by the print clients 20 and 22.
  • This print request process is a process realized by the CPU 64 reading and executing a print request program stored in the ROM 68 or the hard disk 76 of the print client.
  • the print request process is started and executed when the user inputs an instruction to the print clients 20 and 22 to execute printing.
  • the processing will be described on the assumption that the print client 20 requests the printer 30 to perform printing.
  • the print client 20 transmits a connection request to the printer 30 via the network 10 (step S110). Then, a connection between the print client 20 and the printer 30 is established (step S1102).
  • SSL Secure Socket Layer
  • the security of the print client is ensured by SSL (Secure Socket Layer) communication or the like. Establish a connection between 20 and printer 30.
  • the print client 20 transmits the authentication information to the printer 30 (step S1104).
  • a combination of a print client ID for specifying a print client and a password is used as the authentication information. Therefore, the print client 20 transmits the print client ID and the password to the printer 30.
  • the print client 20 receives an authentication result from the printer 30 indicating whether or not the authentication has been accepted.
  • step S1106 It is determined whether the authentication has been approved in 30 (step S1106). If the authentication is not approved (step S1106: No), the above steps S1104 to S104 are repeated.
  • Step S1106 if the authentication is approved (Step S1106: Yes), the print client 20 sends a public key acquisition request to the printer 30 (Step S1108). Then, it is determined whether or not the public key has been received from the printer 30 (step S110). If the public key has not been received from the printer 30 (step S1110: No), this step S110 is repeated to wait.
  • step S111 when the public key is received from the printer 30 (step S111: Yes), the public key is stored (step S111).
  • the print client 20 temporarily stores and holds the public key in the RAM 66 (see FIG. 3). By storing the public key in the RAM 66 in this way, when the power of the print client 20 is turned off, the public key is automatically erased, so that the confidentiality of the public key can be enhanced. It is like that.
  • the printer 30 releases the connection with the printer (step S111). That is, the connection established between the print client 20 and the printer 30 is released while security is secured by SSL communication or the like. The release of this connection is not always necessary, but the print transmission data D10 transmitted in step S112 described later is separately encrypted with the public key, and the security of the connection itself is further processed in the subsequent processing. Since it is not necessary to secure the connection, the connection is released in this embodiment.
  • the print client 20 creates print job data DO5 based on the user's print request (step S11120). This print job data DO 5 is unencrypted data required to execute printing with the printer 30.
  • the print client 20 reads the public key stored in step S111 from the RAM 66 (step S112). Subsequently, the print client 20 encrypts the print job data DO5 using the public key to generate print transmission data D10 (step S1124). Note that the print transmission data D10 may include data other than the print job data.
  • the print client 20 newly establishes a connection with the printer 30 (step S112).
  • this connection does not necessarily have to be a secure connection.
  • the print client 20 transmits the encrypted print transmission data D10 to the printer 30 (Step S112). Specifically, the network address of the printer 30 is designated, and the print transmission data D 10 is transmitted to the network 10.
  • step S112 determines whether or not print result information has been received from the printer 30 (step S112). If the print result information has not been received (step S112: No), the process of step S112 is repeated and the process stands by. On the other hand, if the print result information is received (step S112: Yes), it is determined whether the print result information is a print completion notification (step S11130).
  • step S1130 If the print result information is a print completion notification (step S1130: Yes), it means that the printing has been completed normally on the printer 30, and the user is informed that the printing has been completed on the printer 30. Is notified (step S1 132). On the other hand, if the received print result information is not a print completion notification (step S1130: No), it is determined whether or not the print result information is a non-decipherable notification (step S1134).
  • step S1134 If the print result information is an indecipherable notice (step S1134: Yes), The user is notified that printing was not performed because the print transmission data D10 could not be decrypted by the printer 30 (step S113). On the other hand, if the print result information is not an indecipherable notification (step S1134: No), it is considered to be some other error, and the user is notified according to the type of the error. (Step S 1 1 38).
  • step S113 After the notification of step S1132, step S113, and step S118, the print client 20 deletes the public key stored in the RAM 66 in step S111 (step S1123). 140).
  • the process of step S 1140 is not always necessary, but in order to improve the confidentiality of the public key, in the present embodiment, the process is performed every time one print job is completed. The public key is to be deleted.
  • the print client 20 releases the connection with the printer 30 (step S1142).
  • the print request processing in the print client 20 ends.
  • FIGS. 26 to 28 are flowcharts for explaining the print execution processing executed by the printers 30 and 32.
  • This print execution process is a process realized by the CPU 40 reading and executing a print execution program stored in the ROM 44 or the hard disk 58 of the printer.
  • the print execution process is a process that is constantly executed at predetermined time intervals.
  • the printer 30 determines whether or not a connection request has been received from the print client 20 via the network 10 (step S1200). If a connection request has not been received from the print client 20 (step S 1200: No), the process of step S 1200 is repeated and the process waits. On the other hand, when a connection request is received from the print client 20 (step S 1200: Yes), security is secured by SSL communication or the like as described above. Above, a connection between the printer 30 and the print client 20 is established (step S1202).
  • step S1204 determines whether authentication information has been received from the print client 20 (step S1204). If the authentication information has not been received (step S1204: No), the process of step S1204 is repeated to wait.
  • Step S 1 20 4 Ye s
  • the authentication information to determine if it matches the pre-registered to Aru credentials to the printer 30 (Step S1206).
  • the print client ID and password are transmitted from the print client 20 as authentication information
  • the print client ID and password are registered in the hard disk 58 and the like of the printer 30 in advance. Print client ID and password.
  • step S1206 If the authentication information does not match (step S1206: No), the printer 30 sends an authentication result indicating that the authentication has not been accepted to the print client 20 (step S1208) and returns to step S1208. It returns to the process of 1204. On the other hand, if the authentications match (step S1206: Yes), the printer 30 transmits an authentication result indicating that the authentication has been accepted to the print client 20 (step S1 210).
  • step S1212 determines whether a public key acquisition request has been received from the print client 20 (step S1212). If the public key acquisition request has not been received (step S1212: No), the process of step S1222 is repeated and the process stands by.
  • the printer 30 acquires device-specific information of the printer 30 (step S1224).
  • the device-specific information is identification information uniquely assigned to the printer 30 and includes, for example, a manufacturing serial number and a MAC address of the printer 30.
  • the printer 30 sends the Then, the printer position information of the printer 30 is obtained (step S1220). As described above, the printer position information is acquired from the position detection unit 54 each time. When the printer 30 is moved to another location, the printer 30 is disclosed using the position information after the movement. This is to generate a key.
  • the printer 30 creates a passphrase using the device-specific information and the printer position information (step S1222).
  • the passphrase is generated simply by connecting the printer position information to the device-specific information.
  • the passphrase may include data other than the device-specific information and the printer position information.
  • the printer 30 generates one random number and stores it in the printer 30 (step S1224).
  • the generated random numbers are stored in RAM 42 (see FIG. 2).
  • the random numbers are automatically erased, thereby increasing the confidentiality of the public key and the secret key. You can do it.
  • the printer 30 uses the passphrase created in step S1222 and the random number generated in step S1222 to perform public key cryptography to determine the public key and the secret key. Is generated (step S 1 2 2 6).
  • Public key cryptography has the property that if the passphrase and random number used are the same, the same is generated even if the public key and secret key are generated again.
  • the printer 30 transmits only the public key of the generated public key and private key to the print client 20 (step S122). The private key is destroyed without being saved.
  • step S1230 This process is a process corresponding to step S111 of the print request process described above.
  • the processing in step S 1 230 is not necessarily required.
  • the printer 30 determines whether a connection request has been received from the print client 20 via the network 10 (step S1232). When a connection request has not been received from the print client 20 (step S1232: No) Repeats the process of step S 1232 and waits. On the other hand, when a connection request is received from the print client 20 (step S1232: Yes), a connection between the printer 30 and the print client 20 is established (step S1234). This connection does not have to be secured. Next, the printer 30 determines whether or not the print transmission data D10 has been received from the network 10 (step S1236). If no print transmission data D10 has been received (step S1236: No), the process of this step S1236 is repeated to wait. On the other hand, when the print transmission data D10 has been received (step S1236: Yes), the printer 30 acquires its own device-specific information (step S1238).
  • the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S1240).
  • the printer position information is acquired from the position detection unit 54 each time, when the printer 30 is moved to another place, the position information after the movement is used. This is to generate a secret key.
  • the printer 30 creates a passphrase based on the device-specific information and the printer position information (step S1242).
  • the method of creating this passphrase needs to be the same method as in step S1222 described above. This is because if the passphrase is different, the print transmission data D10 encrypted with the public key transmitted to the print client cannot be decrypted with the private key.
  • the printer 30 reads out and obtains the random number of the printer 30 generated in step S1224 and stored in the RAM 42 (step S1244). Subsequently, the printer 30 uses the generated passphrase and the obtained random number to generate a public key and a secret key by public key cryptography (step S1246).
  • the passphrase used in step S1246 is the same as the passphrase used in step S1226 described above, unless the installation position of printer 30 has been moved during that time. Also, the random numbers are the same as in step S 1226 described above. Therefore, the same public key and secret key as those generated in step S1226 are generated. Subsequently, the printer 30 uses the generated private key to The credit data D10 is decrypted (step S1248).
  • the printer 30 determines whether or not the print transmission data D10 has been decrypted using the secret key (step S1250). If the decryption is successful (step S1250: Yes), printing is performed by driving the printing engine 52 based on the obtained print job data DO5 (step S1252). Specifically, the language interpretation of the print job data D05 is performed, and print request data suitable for the print engine 52 is generated. Then, by transmitting the print request data to the print engine 52, the print engine 52 performs printing on printing paper or the like.
  • a secret key is generated using a passphrase including at least the printer position information detected by the position detection unit 54 and a random number held in the RAM 42, and this secret key is generated. If the print transmission data D10 can be decrypted with the key, it is determined that the print transmission data D10 matches the printer position information.
  • the printer 30 sends a print completion notice to the effect that the printing has been completed to the print client 20 as print result information (step S1254).
  • step S1250 determines whether the print transmission data D10 could not be decrypted (step S1250: No)
  • the print client 20 sends the indecipherable notification as print result information to the print client 20.
  • Send it step S1256-). That is, in the present embodiment, a secret key is generated using a passphrase including at least the printer position information detected by the position detection unit 54 and a random number held in the RAM 42, and the print transmission data is generated using the secret key. If D10 cannot be decrypted, it is determined that the print transmission data D10 did not match the printer position information.
  • the printer 30 deletes the random number held in the RAM 42 (step S1258).
  • the process of deleting random numbers from RA M42 is not always necessary, but the confidentiality of random numbers can be increased by deleting random numbers from RAM 42 each time processing for one print job is completed. .
  • the printer 30 releases the connection with the print client 20 (step S 1 260). Then, the process returns to the process of step S120 ° in FIG. 26 described above.
  • the printers 30 and 32 generate a public key and a secret key using a different random number for each print job by public key cryptography, and Since the public key is transmitted to 20 and 22, the security of the public key and the private key can be enhanced.
  • the security of the secret key can be improved. Also, since the random numbers are stored, when the print transmission data D 10 encrypted using the public key is decrypted, the stored random numbers are used to release the data again. The same secret key can be generated by key cryptography, and the print transmission data D10 can be decrypted.
  • the printers 30 and 32 if the print transmission data D10 cannot be decrypted with the secret key, the printing of the received print transmission data D10 is not executed. It is possible to prevent a third party having an unauthorized intention from performing printing on the printers 30 and 32.
  • the printing system generates a public key using at least printer position information indicating a position where a printer is installed, causes the print client to acquire the public key, and allows the print client to perform printing.
  • the print data is encrypted using the obtained public key and transmitted as print transmission data including encrypted print data generated.
  • the printer that has received the print transmission data generates a secret key again using at least the printer position information at that time at the time of reception, and uses the secret key to generate the encrypted print data included in the print transmission data. Printing is executed only when data can be decrypted.
  • a random number is used when generating a public key and a secret key.
  • the random number used for generating the public key is transmitted to the print client, and the print client To keep random numbers. Then, when the print client transmits the encrypted print data to the printer, the random number is also included in the print transmission data and transmitted to the printer, and the printer that has received the print transmission data includes the random number in the print transmission data.
  • the secret key is generated again by using the random number. This ensures that the random number used to generate the public key is the same as the random number used to generate the secret chain for decrypting the encrypted print data. In this case, the same secret key can be obtained. This will be described in more detail below.
  • the configuration of the printing system according to this embodiment is the same as that of FIG. 1 in the first embodiment described above, and the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above.
  • the configurations of 20 and 22 are the same as in FIG. 3 described above.
  • the print client 20 previously obtains, for example, the public key of the printer 30 and the random number used to generate the public key from the printer 30.
  • the acquisition of the public key and the random number is performed via the network 10. That is, the printer 30 checks whether the print client 20 that has requested the transmission of the public key and the random number has the proper authority, and only if the print client 20 has the proper authority, the printer 30 uses its own public key. And the random number used to generate this public key.
  • This open key is generated by the printer 30 by a public key cryptography using a passphrase including at least the printer position information indicating the position where the printer 30 is installed and the generated random number.
  • the print client 20 has a function of holding a public key and a random number used to generate the public key by public key cryptography.
  • the printer 30 discards the generated secret key. That is, in general public key cryptography, a public key and a secret key are generated simultaneously. For this reason, in the present embodiment, even when a private key is generated when a public key is generated, the private key is destroyed. As a result, when the installation location of the printer 30 is moved, the encrypted print data generated by encrypting with the public key generated before the movement cannot be decrypted by the printer 30 after the movement. Like that It is.
  • the public key of the printer 30 and the used random number need not always be notified to the print client 20 via the network 10.
  • the user of the print client 20 has the right authority, the user can go to the place where the printer 30 is installed and operate the printer 30.
  • the public key of the printer 30 and the used random number may be obtained.
  • the user may record the public key of the printer 30 and the used random number on a recording medium such as a flexible disk, and cause the printing client 20 to read this.
  • the user of the print client 20 creates data to be printed, specifies the printer 30 to the print client 20, and instructs the print client 20 to print.
  • the print client 20 generates print data DO5 based on the data to be printed.
  • the print data DO 5 indicates the original print data necessary for performing printing by driving the print engine 52 by the printer 30.
  • the print client 20 encrypts the print data DO5 using the public key obtained from the printer 30, and generates encrypted print data. Then, the print client 20 adds the random number acquired from the printer 30 to the encrypted print data to generate print transmission data D10.
  • the print transmission data D 10 may include data other than the encrypted print data and random numbers shown in FIG. 29.
  • the printer 30 that has received the print transmission data D 10 temporarily stores the received print transmission data D 10 in the RAM 42 as shown in FIG. Then, the printer 30 decrypts the encrypted print data included in the print transmission data D10 using the secret key. That is, the printer 30 generates a secret key by the public key cryptography using the passphrase including at least the printer position information and the random number included in the print transmission data D10.
  • FIG. 30 is a flowchart illustrating a public key request process executed by the print clients 20 and 22.
  • the public key request processing is realized by the CPU 64 reading and executing a public key request program stored in the ROM 6.8 or the hard disk 76 of the print client.
  • the public key request processing is started and executed when the user inputs an instruction to start processing for requesting a public key to the print client.
  • the process will be described on the assumption that the print client 20 requests a public key from the printer 30.
  • the print client 20 connects to the printer 30 (step S210).
  • the print client 20 establishes a connection between the print client 20 and the printer 3 by designating the network address of the printer 30. Further, in the present embodiment, the connection between the print client 20 and the printer 30 is established after securing security by SSL (Secure Socket Layer) communication or the like.
  • SSL Secure Socket Layer
  • the print client 20 transmits the authentication information to the printer 30 (step S2102).
  • a combination of a print client ID for specifying a print client and a password is used as the authentication information. Therefore, the print client 20 transmits the print client ID and the password to the printer 30.
  • the print client 20 receives an authentication result from the printer 30 indicating whether or not the authentication has been accepted.
  • step S210 It is determined whether or not the authentication has been approved in step 30 (step S210). If the authentication is not approved (step S210: No), the above-mentioned steps S2102 and thereafter are repeated.
  • step S210 if the authentication is approved (step S210: Yes), the printing The client 20 sends a public key acquisition request to the printer 30 (step S2106). Then, it is determined whether the public key and the random number used for generating the public key have been received from the printer 30 (step S2108). If the public key and the random number have not been received from the printer 30 (step S2108: No), this step S2108 is repeated to wait.
  • the print client 20 has a public key table TB 210 on the hard disk 76, and the acquired public key and random number are stored and held in the public key table TB 210.
  • FIG. 31 is a diagram showing an example of the configuration of the public key table TB 210.
  • the public key table TB 210 includes an item TD 10 for storing information for identifying a printer, an item TD 11 for storing the obtained public key in association with the printer, An item TD12 for storing the obtained random numbers in association with the printer is provided.
  • the public key table TB 210 can hold public and random numbers for a plurality of printers for each printer. Also, by storing the public key and the random number in the public key table TB 210 of the hard disk 78 in this way, even if the power of the print client 20 is turned off and then turned on again, the public key and the public key obtained before that are obtained. The random number can be read out from the hard disk 78 and used as it is.
  • FIGS. 32 and 33 are flowcharts illustrating a public key transmission process performed by the printers 30 and 32.
  • This public key transmission processing is realized by the CPU 40 reading and executing a public key transmission program stored in the ROM 44 or the hard disk 58 of the printer.
  • the public key transmission process is started in response to the above-described public key request process.
  • the description will be made on the assumption that a public key is requested from the print client 20 and the printer 30.
  • the printer 30 establishes a connection with the print client 20 (step S2120). This corresponds to step S2100 of the print client 20 described above. That is, the connection is established after ensuring security by SSL communication or the like. Subsequently, the printer 30 determines whether authentication information has been received from the print client 20 (step S2122). If the authentication information has not been received (step S2122: No), the process of step S2122 is repeated and the process stands by.
  • step S21 2 when the authentication information is received from the print client 20 (step S21 2
  • step S2124 it is determined whether the authentication information matches the authentication information registered in advance in the printer 30. Specifically, as described above, since the print client ID and password are transmitted as authentication information from the print client 20, the print client ID and password are registered in the printer 30 in advance. Judge whether the ID and password match.
  • step S2124 No
  • step S2126 the printer 30 transmits the authentication result indicating that the authentication has not been accepted to the print client 20 (step S2126), and returns to the process of step S2122.
  • step S2124 Yes
  • the printer 30 transmits an authentication result indicating that the authentication has been accepted to the print client 20 (step S21).
  • step S2130 determines whether a public key acquisition request has been received from the print client 20 (step S2130). If this public key acquisition request has not been received (step S2130: No), the process of step S2130 is repeated and the process stands by.
  • the printer 30 acquires the device-specific information of the printer 30 (step S2132).
  • the device-specific information is the printer 3 Regarding 0, it is identification information uniquely assigned, for example, a production serial number of the printer 30, a MAC address, and the like.
  • the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S2140). As described above, the printer position information is acquired from the position detection unit 54 each time. When the printer 30 is moved to another location, the printer 30 is disclosed using the position information after the movement. This is to generate a key.
  • the printer 30 creates a passphrase using the device-specific information and the printer position information (step S2142).
  • the passphrase is generated simply by connecting the printer position information to the device-specific information.
  • the passphrase may include data other than the device-specific information and the printer position information.
  • the printer 30 generates a random number (step S2144). Subsequently, the printer 30 uses the passphrase created in step S2124 and the random number generated in step S2144 to derive a public key and a secret key by public key cryptography. It is generated (step S2146). Public key cryptography has the property that if the passphrase used and the random number are the same, the same is generated even if the public key and secret key are generated again. Subsequently, the printer 30 transmits the public key of the generated public key and private key, and the random number used to generate the public key and the secret key to the print client 20 (step S2). 1 4 8). The private key is destroyed without being saved. Thus, the public key transmission processing according to the present embodiment ends. Next, the processing of the print clients 20 and 22 and the printers 30 and 32 when the print clients 20 and 22 want to perform printing and transmit the print request to the printers 30 and 32, respectively. , explain in detail.
  • FIG. 34 is a flowchart illustrating a print request process executed by the print clients 20 and 22.
  • This print request processing is realized by the CPU 64 reading and executing a print request program stored in the ROM 68 or the hard disk 76 of the print client.
  • the print request process is started and executed when the user inputs a print instruction to the print client.
  • the print client 20 creates print data DO5 based on a print request from the user (step S2160).
  • the print data D05 is data necessary for actually performing printing when the printer 30 is a normal printer.
  • the print client 20 reads the public key of the printer 30 and the random number used to generate the public key from the public key table TB 210 on the hard disk 76 (step S2162). Subsequently, the print client 20 encrypts the print data D05 using the public key of the printer 30, and generates encrypted print data (step S2164).
  • the print client 20 adds the random number read in step S2162 to the generated encrypted print data to generate print transmission data D10 (step S2165).
  • the print transmission data D 10 may include data other than the print data and the random number.
  • the print client 20 transmits the generated print transmission data D10 to the printer 30 (step S2166). Specifically, the network address of the printer 30 is specified, and the print transmission data D10 is transmitted to the network 10.
  • the print client 20 determines whether or not print result information has been received from the printer 30 (step S2168). When print result information has not been received
  • Step S2168 No
  • the process of Step S2168 is repeated and the process stands by.
  • step S2168: Yes it is determined whether the print result information is a print completion notification (step S2170).
  • step S2170 If the print result information is a print completion notification (step S2170: Yes), it means that the printing has been normally completed by the printer 30, so that the user is notified. The printer 30 is notified that printing has been completed (step S2172). On the other hand, if the received print result information is not a print completion notification (step S2170: No), it is determined whether or not the print result information is a decipherable notification (step S2174).
  • step S2174 If the print result information is a non-decipherable notification (step S2174 : Yes), the user is notified that printing was not performed because the print transmission data D10 could not be decrypted by the printer 30. (Step S2176). On the other hand, if the print result information is not an indecipherable notification (step S2174: No), it is considered to be some other error, and the user is notified according to the type of the error ( Step S21 78).
  • FIG. 35 is a flowchart for explaining the print execution processing executed by the printers 30 and 32.
  • This print execution process is realized by the CPU 40 reading and executing a print execution program stored in the ROM 44 or the hard disk 58 of the printers 30 and 32.
  • the print execution process is a process that is constantly executed at predetermined time intervals.
  • the printer 30 determines whether the print transmission data D10 has been received from the network 10 (step S2180). If no print transmission data D10 has been received (step S2180: No), the process of step S2180 is repeated to wait.
  • step S2180 if the print transmission data D10 has been received (step S2180: Yes), the printer 30 acquires its own device-specific information (step S2182). Subsequently, the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S2184). Like this Each time the printer 30 is moved to another location, the printer 30 is installed in a location not intended by the user. In such a case, printing is not performed by the printer 30.
  • the printer 30 creates a pass phrase based on the device-specific information and the printer position information (step S2186).
  • This passphrase creation method needs to be the same method as in step S2142 in the above-described public key transmission process. The reason is that if the passphrase is different, the encrypted print data encrypted with the public key transmitted to the print client cannot be decrypted with the private key. ⁇
  • the printer 30 obtains a random number included in the print transmission data D10 (step S2188). Subsequently, the printer 30 uses the generated passphrase and the obtained random number to generate a public key and a secret key by the public key ⁇ method (step S2190).
  • the passphrase used in step S2190 is the same as the passphrase used in step S2146 in the above-described public key transmission process unless the installation position of printer 30 has been moved.
  • the random numbers used in step S2190 should be the same as the random numbers used in step S2146. Therefore, the same public key and secret key as those generated in step S2146 are generated.
  • the printer 30 uses the generated secret key to decrypt the encrypted print data included in the print transmission data D10, and obtains the print data D05 (step S2192). .
  • the printer 30 determines whether or not the encrypted print data has been decrypted using the secret key (step S2194). If the decryption is successful (step S2194: Yes), printing is performed by driving the print engine 52 based on the obtained print data D05 (step S2196). Specifically, the language of print data DO 5 is interpreted, and print request data suitable for print engine 52 is generated. By transmitting the print request data to the print engine 52,
  • the position is detected by the position detecting unit 54.
  • a secret key is generated using a passphrase including at least the printer position information and a random number transmitted along with the encrypted print data, and if the encrypted print data can be decrypted with this secret key, It is determined that the encrypted print data matches the printer position information.
  • the printer 30 transmits a print completion notification to the effect that the printing has been completed to the print client 20 as print result information (step S2198). Then, the process returns to step S2180 described above.
  • step S2194 determines whether the encrypted print data has not been decrypted (step S2194: No).
  • the incomprehensible notification is given as the print result information.
  • the data is sent to the print client 20 (step S2200). That is, in the present embodiment, a secret key is generated using a passphrase including at least the printer position information detected by the f-standing detector 54 and a random number transmitted along with the encrypted print data, If the encrypted print data cannot be decrypted with this secret key, it is determined that the encrypted print data did not match the printer position information. Then, the process returns to step S2180 described above.
  • the print clients 20 and 22 limit the printers that can print the encrypted and transmitted encrypted print data based on the printer position information. Therefore, it is possible to prevent printing from being performed by a printer at a position not intended by the user of the print clients 20 and 22. For example, if the printer 30 is moved to another location, but the network address of the printer 30 in the network 10 has not been changed, the print client 20 erroneously prints the encrypted print data. Even if the transmission data D10 is transmitted to the printer 30, the printer location information has been changed in the printer 30, so the passphrase created in step S2186 is different from that before the movement. Will be different. For this reason, even if a secret key generated using this passphrase is used, the encrypted print data included in the print transmission data D10 cannot be decrypted, and the printer 30 does not perform printing. . Therefore, the security of the print data DO5 can be enhanced.
  • the printers 30 and 32 normally have the printers 30 and 3 as well. It is possible to prevent a person who does not have the authority to print on the printer 2 from sending print data to the printers 30 and 32 and causing the printers 30 and 32 to execute a large amount of printing. For example, if for some reason a third party knows the network address of the printer 30 and tries to send print data to the printer 30, the public key of the printer 30 cannot be obtained. If this user encrypts the print data D05 with a different public key, it generates print transmission data D10 containing encrypted print data, or print transmission data D10 containing unencrypted print data.
  • the device specific information is also included in the passphrase, even if a third party knows the position of the printer 30 for some reason, the device specific information of the printer 30 cannot be determined. Without it, the passphrase used in Printer 30 cannot be identified. Therefore, it is extremely difficult for a third party to impersonate the printer 30 and receive the print transmission data D 10, and to decrypt the encrypted print data included in the print transmission data D 10. It can be made something.
  • this random number is generated for each print client 20, 22, and each print client 20, 22 can rewrite the random number with a public key on a hard disk or other non-volatile storage device. It was decided to keep it. Then, the print clients 20 and 22 transmit the random numbers to the printers 30 and 32 together with the encrypted print data obtained by encrypting the print data. The same random number used when generating the public key can be used when generating the secret key. For this reason, a secret key capable of decrypting the encrypted print data encrypted with the public key generated using the random number can be generated again.
  • the print clients 20 and 22 are provided for each printer and A public key and a random number used to generate the public key are stored for each user. This makes it more difficult for a third party to guess the random number. This will be described in more detail below.
  • the configuration of the printing system according to this embodiment is the same as that of FIG. 1 in the first embodiment described above, and the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above.
  • the configurations of 20 and 22 are the same as in FIG. 3 described above.
  • the public key transmission process and the print execution process executed by the printers 30 and 32 according to the present embodiment are the same as those in the fifth embodiment.
  • FIG. 36 is a diagram illustrating a flowchart for explaining a part of the public key request processing executed by the print clients 20 and 22 according to the present embodiment, and corresponds to FIG. 30 in the fifth embodiment described above.
  • FIG. 36 is a diagram illustrating a flowchart for explaining a part of the public key request processing executed by the print clients 20 and 22 according to the present embodiment, and corresponds to FIG. 30 in the fifth embodiment described above.
  • the public key request processing according to the present embodiment is the same as the processing of the above-described fifth embodiment up to the processing of receiving the public key and the random number shown in step S2108.
  • the processing in the next step S2300 is different. That is, when the print client 20 according to the present embodiment receives the public key and the random number (Step S210: Yes), the print client 20 transmits the public key and the random number to each printer and to the user. Each is classified and stored in the public key table TB220.
  • FIG. 37 is a diagram illustrating an example of the public key table TB220 according to the present embodiment.
  • the public key table TB 220 in the present embodiment has a user ID as a data item in addition to the public key table TB 210 in the fifth embodiment described above.
  • Item TD 20 to be stored is provided. That is, in the present embodiment, the print client 20 stores a public key and a random number for each user ID.
  • the public key table TB220 of the present embodiment a table is formed for each printer. Thus, even if the same user ID is used, different printers can hold different public keys and random numbers.
  • the public key request processing ends.
  • FIG. 38 is a flowchart for describing a print request process executed by the print clients 20 and 22 according to the present embodiment.
  • the print request processing according to the present embodiment is different from the above-described fifth embodiment in the processing of reading a public key and a random number. That is, after generating the print data D05 in step S2160, the print client 20 acquires the user ID (step S2310). That is, the user ID of the user who instructed the printer 30 to perform printing is acquired. For example, the user ID may be required to be input to the user when the print client 20 receives a print instruction, or may be authenticated when the print client 20 is used by the user. The user may be required to input.
  • the print client 20 reads the public key and the random number stored in the table of the printer requesting printing from the public key table TB 220 in FIG. 37 (step S 2 3 1 2). That is, in the public key table TB 220 of the present embodiment, since a table is configured for each printer, the table of the printer that prints the print data D 05 generated in step S 216 is described. Reads the public key and random number registered with this user ID. Subsequent processing is the same as in the above-described fifth embodiment.
  • the printing system according to the present embodiment can also obtain the same effects as those of the above-described fifth embodiment. Further, according to the printing system according to the present embodiment, the print clients 20 and 22 store the public key and the random number for each printer and for each user, so that a third party can guess the random number. Can be very difficult to do.
  • a printing system generates a random number for each print job, and uses the generated random number and a passphrase including at least printer position information indicating a position where a printer is installed.
  • To generate a public key and transmit the public key and a random number from the printer to the print client.
  • the print client encrypts the print job data using the public key to generate encrypted print job data
  • a random number transmitted from the printer is added to the encrypted print job data to generate print transmission data.
  • the print client transmits the print transmission data to the printer.
  • the printer Upon receiving the print transmission data, the printer generates a secret key again using the passphrase including at least the printer position information at that time and the random number included in the print transmission data.
  • the printing is executed only when the encrypted print job data can be decrypted with the secret key. This will be described in more detail below.
  • the configuration of the printing system according to this embodiment is the same as that of FIG. 1 in the first embodiment described above, and the configuration of the printers 30 and 32 is the same as that of FIG. 2 described above.
  • the configurations of 20 and 22 are the same as in FIG. 3 described above.
  • the print client 20 obtains the public key and the random number used to generate the public key from the printer 30.
  • the acquisition of the public key and the random number is performed for each print job via the network 10. That is, the printer 30 checks whether or not the print client 20 that has requested the transmission of the public key has a valid right, and only when the print client 20 has the valid right, does the printer 30 generate the newly generated public key.
  • the random number used to generate the public link is transmitted to the print client 20. That is, the printer 30 is made public by using a passphrase including at least printer position information indicating the position where the printer 30 is installed, and a random number generated for each print job by the printer 30.
  • a public key is generated by key cryptography. The printer 30 discards the random number used for generating the public key because it is not necessary to hold the random number.
  • the generated secret key is also destroyed. That is, in general public key cryptography, a public key and a secret key are generated at the same time. For this reason, in the present embodiment, even when a private key is generated when a public key is generated, the private key is destroyed. Thus, the possibility that the secret key generated by the printer 30 is leaked is reduced as much as possible.
  • the print client 20 generates print job data DO5 based on the data to be printed.
  • the print job data DO 5 indicates the original print data required to perform printing by driving the print engine 52 with the printer 30.
  • the print client 20 encrypts the print job data DO5 using the public key of the printer 30 previously obtained, and generates encrypted print job data. Then, the print client 20 adds the random number obtained from the printer 30 to the encrypted print job data to generate print transmission data D10. Note that the print transmission data D 10 may include data other than the encrypted print data and the random numbers shown in FIG. 29.
  • the printer 30 that has received the print transmission data D 1 ⁇ temporarily stores the received print transmission data D 10 in the RAM 42 as shown in FIG. Then, the printer 30 decrypts the encrypted print job data included in the print transmission data D10 using the secret key. That is, the printer 30 generates a secret key by the public key cryptography using the passphrase including at least the printer position information and the random number included in the print transmission data D10. Then, the encrypted print job data included in the print transmission data D10 is decrypted with this secret. Subsequently, the printer 30 determines whether or not the encrypted print job data has been successfully decrypted. If the encrypted print job data can be decrypted, printing is performed based on the print job data D05 obtained by decrypting the encrypted print job data.If the encrypted print job data cannot be decrypted, No printing is performed.
  • FIG. 39 and FIG. 40 are flowcharts illustrating the print request processing executed by the print clients 20 and 22.
  • This print request process is a process realized by the CPU 64 reading and executing a print request program stored in the ROM 68 or the hard disk 76 of the print client. Also, the present embodiment In, the print request process is started and executed when the user inputs an instruction to the print clients 20 and 22 to execute printing. In the following, the process will be described on the assumption that the print client 20 requests the printer 30 to perform printing.
  • the print client 20 transmits a connection request to the printer 30 via the network 10 (step S3100). Then, a connection between the print client 20 and the printer 30 is established (step S3102). In the present embodiment, a connection between the print client 20 and the printer 30 is established with security ensured by Secure Socket Layer (SSL) communication or the like.
  • SSL Secure Socket Layer
  • the print client 20 transmits the authentication information to the printer 30 (step S3104).
  • a combination of a print client ID for specifying a print client and a password is used as the authentication information. Therefore, the print client 20 transmits the print client ID and the password to the printer 30.
  • the print client 20 receives an authentication result indicating whether the authentication has been accepted from the printer 30. Based on the authentication result, the print client 20 determines whether the printer 30 has been authenticated ( Step S3 106). If the authentication is not approved (step S3106: No), the above steps S3104 to S104 are repeated.
  • step S3106 when the authentication is approved (step S3106: Yes), the print client 20 transmits a public key acquisition request to the printer 30 (step S3108). Then, it is determined whether or not the public key and the random number used to generate the public key have been received from the printer 30 (step S3110). If the public key and the random number have not been received from the printer 30 (step S3110: No), this step S3110 is repeated to wait.
  • step S3110 when the public key and the random number are received from the printer 30 (step S3110: Yes), the public key and the random number are stored (step S3112).
  • the print client 20 stores this public key in RAM 66 (see FIG. 3). And a random number are temporarily stored and held. By storing the public key and the random number in the RAM 66 in this way, when the power of the print client 20 is turned off, the public key and the random number are automatically erased. It can be raised.
  • the printer 30 releases the connection with the printer (step S3114). That is, the connection established between the print client 20 and the printer 30 is released while security is secured by SSL communication or the like. Although the release of this connection is not necessarily required, the print job data D05 transmitted in step S3126 described later is separately encrypted with the public key, and the connection itself is not processed in the subsequent processing. Since it is not necessary to ensure security, the connection is released in this embodiment.
  • the print client 20 creates print job data D05 based on the user's print request (step S3120). This print job data D05 is non-encrypted data required to execute printing on the printer 30.
  • the print client 20 reads the public key and the random number stored in step S3112 from the RAM 66 (step S3122). Subsequently, the print client 20 uses the public key to encrypt the print job data D05 to generate encrypted print job data (step S3124).
  • the print client .20 adds the random number read in step S3122 to the encrypted print job data generated in step S3124 to generate print transmission data D10 (step S 3 125).
  • the print transmission data D10 may include data other than the encrypted print job data and the random numbers.
  • the print client 20 transmits the print transmission data D10 to the printer 30 (step S3126). Specifically, the network address of the printer 30 is specified, and the print transmission data D10 is transmitted to the network 10.
  • the print client 20 determines whether or not print result information has been received from the printer 30 (step S3128). If the print result information has not been received (step S3128: No), the process of step S3128 is repeated. Wait. On the other hand, if the print result information has been received (step S3128: Yes), it is determined whether the print result information is a print completion notification (step S3130).
  • step S3130 If the print result information is a print completion notification (step S3130: Yes), it means that the printing has been completed normally on the printer 30, and the user is informed that the printing has been completed on the printer 30. Is notified (step S3132). On the other hand, if the received print result information is not a print completion notification (step S3130: No), it is determined whether or not the print result information is a non-decipherable notification (step S3134).
  • step S3134 If the print result information is an indecipherable notification (step S3134: Yes), the user is informed that printing was not performed because the printer 30 could not decode the print transmission data D10. Notify (step S3136). On the other hand, if the print result information is not an indecipherable notification (step S3134: No), it is considered to be some other error, and the user is notified according to the type of the error. (Step S3138).
  • step S3140 is not always necessary, but in order to improve the confidentiality of the public key and the random number, in the present embodiment, the process is acquired every time one print job process is completed. The public key and random number are deleted and destroyed. Thus, the print request processing in the print client 20 ends.
  • FIGS. 41 to 43 are flowcharts for explaining the print execution processing executed by the printers 30 and 32.
  • This print execution process is realized by the CPU 40 reading and executing a print execution program stored in the ROM 44 or the hard disk 58 of the printer.
  • the print execution process is a process that is constantly executed at predetermined time intervals.
  • the description will be made on the assumption that the print client 20 requests the printer 30 to perform printing.
  • the printer 30 determines whether or not a connection request has been received from the print client 20 via the network 10 (step S3).
  • step S3200 If a connection request has not been received from the print client 20 (step S3200: No), the process of step S3200 is repeated and the process waits. Then, as described above, the connection between the printer 30 and the print client 20 is established after ensuring security by SSL communication or the like (step S3202).
  • step S3204 determines whether authentication information has been received from the print client 20 (step S3204). If the authentication information has not been received (step S3204: No), the process of step S3204 is repeated to wait.
  • step S3204 when the authentication information is received from the print client 20 (step S3204: Yes), it is determined whether the authentication information matches the authentication information registered in advance in the printer 30 (step S3204).
  • step S3204 since the print client ID and password are transmitted as authentication information from the print client 20, the print client ID and password are registered in the hard disk 58 or the like of the printer 30 in advance. Print client ID and password match.
  • step S3206 No
  • step S3208 the printer 30 transmits the authentication result indicating that the authentication has not been accepted to the print client 20 (step S3208), and returns to the process of step S3204.
  • step S3206: Yes the printer 30 transmits an authentication result indicating that the authentication has been accepted to the print client 20 (step S3210).
  • step S3212 determines whether a public key acquisition request has been received from the print client 20 (step S3212). If this public key acquisition request has not been received (step S3212: No), the process of step S3212 is performed. Wait repeatedly.
  • the printer 30 acquires device-specific information of the printer 30 (step S32). 14 ) .
  • the device-specific information is identification information uniquely assigned to the printer 30 and includes, for example, a manufacturing serial number of the printer 30 and a MAC address.
  • the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S3220). As described above, the printer position information is acquired from the position detection unit 54 each time. When the printer 30 is moved to another location, the printer 30 is disclosed using the position information after the movement. This is to generate a key.
  • the printer 30 creates a passphrase using the device-specific information and the printer position information (Step S3222).
  • the passphrase is generated by simply connecting the printer position information to the device-specific information.
  • the passphrase may include data other than the device-specific information and the printer position information.
  • the printer 30 generates one random number (step S3224). Subsequently, the printer 30 transmits the passphrase created in step S3222 to step S322.
  • a public key and a secret key are generated by the public key cryptography using the random number generated in step 2 32 (step S 3226).
  • Public key cryptography has the property that if the passphrase and random number used are the same, the same is generated even if the public key and secret key are generated again.
  • the printer 30 transmits the public key and the random number used to generate the public key to the print client 20 (Step S).
  • step S3230 This process is a process corresponding to step S3114 of the print request process described above. Also, as described above, this step S 3 230 Is not always necessary.
  • the printer 30 determines whether or not the print transmission data D10 has been received from the network 10 (step S3322). If no print transmission data D10 has been received (step S3322: No), the process of step S3322 is repeated to wait. On the other hand, when the print transmission data D10 has been received (step S3232: Yes), the printer 30 acquires its own device-specific information (step S3324).
  • the printer 30 acquires the printer position information of the printer 30 at that time from the position detection unit 54 (step S3240).
  • the printer position information is acquired from the position detection unit 54 each time when the printer 30 is moved to another place, the position information after the movement is obtained. This is to generate a secret key using the secret key.
  • the printer 30 creates a passphrase based on the device-specific information and the printer position information (step S3242).
  • the method of creating this passphrase needs to be the same method as in step S3222 described above. This is because if the passphrase is different, the print transmission data D10 encrypted with the public key transmitted to the print client cannot be decrypted with the private key.
  • the printer 30 obtains a random number included in the received print transmission data D10 (step S3244). Subsequently, the printer 30 generates a public key and a secret key by public key cryptography using the generated passphrase and the obtained random numbers (step S3246).
  • the passphrase used in step S3246 is the same as the passphrase used in step S3226 described above unless the installation position of printer 30 is moved during that time.
  • the random number should be the same as that in step S 3 226 described above if the print transmission data D 10 is transmitted from the legitimate print client 20. For this reason, in this step S3246, the same public key and secret key as those generated in step S3226 are generated.
  • the printer 30 uses the generated secret key to decrypt the encrypted print job data included in the received print transmission data D10 (step S3248).
  • the printer 30 determines whether or not the encrypted print job data has been successfully decrypted using the secret key (step S325). If the decryption is successful (step S325: Yes), the print engine 52 is driven based on the print job data D05 obtained by decrypting the encrypted print job data. Is executed (step S3252). Specifically, the language interpretation of the print job data D 05 is performed, and print request data suitable for the print engine 52 is generated. Then, by transmitting the print request data to the print engine 52, the print engine 52 prints on printing paper or the like.
  • the secret is determined using the passphrase including at least the printer position information detected by the position detection unit 54 and the random number included in the print transmission data D10. If a key is generated and encrypted print job data can be decrypted with this secret key, it is determined that the encrypted print job data matches the printer position information.
  • the printer 30 transmits a print completion notification to the effect that the printing has been completed to the print client 20 as print result information (step S3254).
  • step S325 if it is determined in step S325 that the encrypted print job data could not be decrypted (step S325: No), the indecipherable notification is used as the print result information. Then, the data is transmitted to the print client 20 (step S3256). That is, in the present embodiment, a secret key is generated using a passphrase including at least the printer position information detected by the position detection unit 54 and a random number included in the print transmission data D10, If the encrypted print job data cannot be decrypted with this secret key, it is determined that the encrypted print job data does not match the printer position information.
  • step S3254 or step S3256 the printer 30 returns to the processing in step S3200 in FIG. 41 described above.
  • the printers 30 and 32 generate a public key and a secret key using a different random number for each print job by public key cryptography, and Since we decided to send the public key and random number to 20 and 22, It can increase the security of public keys, private keys, and random numbers.
  • the public key and the random number used to generate the public key are transmitted to the print client 20, and the printer 30 discards the secret key and the random number. Can be enhanced. Further, the print clients 20 and 22 temporarily hold the random numbers, and transmit the random numbers to the printers 30 and 32 together with the encrypted print job data. For this reason, when the printers 30 and 32 decrypt the encrypted print job data encrypted using this public key, the printer 30 and 32 again use the random number transmitted together with the encrypted print job data, and The same private key can be generated by public key cryptography, and encrypted print job data can be decrypted.
  • the printers 30 and 32 if the encrypted print job data could not be decrypted with the secret key, the printing of the received encrypted print job data was not executed. It is possible to prevent a third party having the printer from executing printing with the printers 30 and 32.
  • the present invention is not limited to the above embodiment, and can be variously modified.
  • the predetermined number used for generating the public key and the secret key is a random number
  • the predetermined number is not limited to the random number.
  • the predetermined number is set to “1”
  • the predetermined number is set in the case of the second generation of the public key and the secret key in the printer
  • the predetermined number is set in the case of the second generation of the public key and the secret key.
  • natural numbers in ascending order may be used as the predetermined number so that the predetermined number is set to “3”.
  • the predetermined number may be an even number in ascending order or an odd number in ascending order.
  • a predetermined algorithm may be used to generate a predetermined number.
  • an algorithm used when deriving the predetermined number is used. (For example, even numbers in ascending order) and additional information (for example, the first time) necessary to derive a predetermined number using the algorithm may be transmitted.
  • print clients 20 and 22 request printing.
  • the predetermined number itself may be transmitted to the printers 30 and 32.
  • the print clients 20 and 22 may hold the information specifying the algorithm received from the printers 30 and 32 and the necessary additional information, or a predetermined number. May be generated to hold a predetermined number.
  • the print clients 20 and 22 may transmit an algorithm and additional information to the printers 30 and 32 when requesting printing.
  • the print clients 20 and 22 hold the information specifying the algorithm and the necessary additional information.
  • the print clients 20 and 22 send only additional information to the printers 30 and 32 without sending an algorithm when requesting printing. Is also good. This is because the algorithm used when generating the public key and the secret key may be fixedly determined in the printers 30 and 32 in some cases.
  • the present invention has been described by exemplifying a print client as a data transmission device for transmitting data to be secured and a printer as a data reception device for receiving the data. Combination of a data transmission device and a data reception device in a data transmission / reception system.
  • the present invention is not limited to the above embodiment.
  • the data transmission device in the data transmission / reception system may be a digital camera for capturing images
  • the data reception device may be a data server that stores image data captured by a digital camera.
  • the data transmitted from the digital camera is encrypted using the public key received from the data server, and the data server receiving the data generates a secret key by the above-described method and generates the secret key. Will be decrypted. Then, if the received data can be decoded, the data is accumulated, and if the data cannot be decoded, the data is not accumulated.
  • the data transmitting device in the data transmitting / receiving system may be a personal computer, and the data receiving device may be a projector for projecting image data transmitted from the personal computer.
  • the personal convenience The data transmitted from the data is encrypted using the public key received from the projector, and the projector receiving the data generates a secret chain by the above-described method and decrypts the data. . If the received data can be decoded, the data is projected. If the data cannot be decoded, the data is not projected.
  • the data transmission device in the data transmission / reception system may be a content server for music and the like, and the data reception device may be a device for reproducing content data such as music transmitted from the content server.
  • the data transmitted from the content server is encrypted using the public key received from the playback device, and the playback device receiving this data generates the secret key by the above-described method, and Will be decrypted. Then, if the received data can be decoded, the data is reproduced, and if not, the data is not reproduced.
  • the print medium of the printers 30 and 32 is the print paper
  • the print medium is not limited to this, and other print media such as an OHP sheet may be used.
  • the present invention can be applied to a medium.
  • a program for executing each of the processing is provided by a flexible disk, a compact disc-read only memory (CD-ROM), a ROM, a memory card, or the like. It can be recorded on a recording medium and distributed in the form of a recording medium. In this case, the recording medium on which this program is recorded is read into the print clients 20, 22, and Z or the printers 30, 32, and executed, whereby the above-described embodiment can be realized.
  • CD-ROM compact disc-read only memory
  • ROM read only memory
  • memory card or the like.
  • the print clients 20, 22 and / or the printers 30, 32 may have other programs, such as an operating system or another application program.
  • the recording medium includes the print clients 20 and 22 and / or the printers 30 and 32.
  • an instruction for calling a program for realizing the same processing as the above-described embodiment may be recorded.
  • such a program can be distributed not as a recording medium but as a carrier through a network.
  • the program transmitted in the form of a carrier wave on the network is taken into the print clients 20, 22, and Z or the printers 30, 32, and the above-described embodiment is realized by executing the program. Can be.
  • the program when a program is recorded on a recording medium or transmitted as a carrier wave over a network, the program may be encrypted or compressed.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

プリンタは、少なくともプリンタ位置情報を含むパスフレーズと乱数とを用いて、公開鍵暗号法により、公開鍵を生成するとともに、この乱数を保持しておく。印刷クライアントは、プリンタからその公開鍵を予め取得しておく。そして、印刷クライアントがプリンタに印刷データを送信する場合には、印刷データを予め取得した公開鍵を用いて暗号化して、印刷送信用データとして送信する。この印刷送信用データを受信したプリンタは、少なくともプリンタ位置情報を含むパスフレーズと保持している乱数とを用いて、公開鍵暗号法により、秘密鍵を生成する。そして、この秘密鍵を用いて、受信した印刷送信用データを復号する。これにより、印刷クライアントからプリンタにネットワークを介して送信する印刷データのセキュリティを確保する。

Description

明 細 書 プリンタ及ぴ印刷システム、 並びに、
データ受信装置及ぴデータ送受信システム 技 術 分 野
本発明は、 プリンタ及び印刷システム、 並びに、 データ受信装置及びデータ送 受信システムに関し、 特に、 プリンタ及びデータ受信装置に送信されるデータの セキュリティを確保したプリンタ及び印刷システム、 並びに、 データ受信装置及 びデータ送受信システムに関する。 背 景 技 術
今日、 ネットワークを用いてプリンタを共有する印刷システムが、 盛んに使用 されるようになってきている。 すなわち、 1つのネットワークに、 印刷クライァ ントとしてコンピュータを複数接続するとともに、 例えば 1台のプリンタをこの ネットワークに接続することにより、 複数の印刷クライアントからの印刷データ を 1台のプリンタが受け付けて、 印刷を行うことができるようになってきている。 このようなネットワークを用いた印刷システムにおいては、 様々なユーザが、 各印刷クライアントから印刷データをプリンタに送信し、 印刷を行うことができ る。
しカゝしながら、 印刷クライアントから送信された印刷データを、 プリンタが無 条件に印刷してしまうこととすると、 ユーザが意図した場所に設置されていない プリンタであってもそのまま印刷がなされてしまうこととなる。 特に、 以前使用 されていた場所から別な場所に移動されたプリンタの場合、 ネットワーク上のァ ドレスである I Pァドレス等は変更されていないこともあることから、 移動後の 場所にあるプリンタで、 送信した印刷データの印刷が行われてしまうこととなる。 このような事態は、 印刷データのセキュリティを確保したいユーザにとっては、 望ましくない。
さらには、 印刷クライアントから送信された印刷データを、 プリンタが無条件 で印刷してしまうこととすると、 本来そのプリンタで印刷する権限のない印刷ク ライアントからの印刷データまで、 プリンタが印刷をしてしまうこととなる。 こ の場合、 そのプリンタで印刷できる印刷クライアントを制限できないこととなり、 やはり好ましくない。 特に、 不正な意図をもって大量の印刷データを送信するュ 一ザも存在し得ることを考えると、 何らかの印刷制限を設ける必要がある。
また例えば、 会社のある部署で使用していたプリンタを別の部署に移動させて、 さらに使用する場合もある。 このような場合、 これまでそのプリンタで印刷する 権限を有していた印刷クライアントであっても、 プリンタの移動をした後には、 このプリンタで印刷する権限を与えたくないことがある。 このような状況におい て、 印刷クライアントからの印刷データを、 プリンタ側で印刷しないようにする 技術の必要性が認められる (特開平 1 1— 3 3 1 1 4 4号公報参照) 。
さらには、 ネットワーク上の経路情報を操作して、 別の位置に同じプリンタを 設置し、 同じネットワークアドレスを使用することにより、 別のプリンタがあた かも真正なプリンタになりすますことも想定できる。 ·
また、 プリンタ自体を認証するための証明書を組み込んだプリンタも存在する が、 このようなプリンタを廃棄する場合には、 このプリンタに組み込まれている 証明書を確実に削除する必要がある。 しカゝし、 プリンタの設置場所を変更するだ けで、 プリンタの印刷ができなくなるのであれば、 プリンタの破棄をより安全に 行うことが可能になる。
そこで本発明は、 前記課題に鑑みてなされたものであり、 プリンタの設置され ている位置情報に基づいて、 印刷できる印刷データを制限することにより、 印刷 データ及びプリンタのセキュリティを確保した印刷システムを提供することを目 的とする。 また、 データ受信装置の設置されている位置情報に基づいて、 処理で きるデータを制限することにより、 送信するデータ及びデータ受信装置のセキュ リティを確保したデータ送受信システムを提供することを目的とする。 発 明 の 開 示
'上記及び他の目的を達成するため、 本発明に係るプリンタは、 印刷データを処 理するプリンタであって、 当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得 する、 プリンタ位置情報取得部と、
前記プリンタ位置情報取得部からプリンタ位置情報を取得し、 これを第 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実施形態に係る印刷クライァントが実行する印刷要求処 理を説明するフローチャートを示す図、
図 1 0は、 本発明の第 1実施形態に係るプリンタが実行する印刷実行処理を説 明するフローチャートを示す図、
図 1 1は、 本発明の第 2実施形態に係るプリンタが実行する公開鍵送信処理を 説明するフローチャートの一部を示す図、
図 1 2は、 本発明の第 2実施形態に係るプリンタが備える乱数テーブルの構成 の一例を示す図、
図 1 3は、 本発明の第 2実施形態に係る印刷クライアントが実行する印刷要求 処理を説明するフローチャートを示す図、
図 1 4は、 本発明の第 2実施形態において、 印刷クライアントからプリンタに 送信される印刷送信用データの構成の一例を示す図、
図 1 5は、 本発明の第 2実施形態に係るプリンタが実行する印刷実行処理を説 明するフローチャートを示す図、
図 1 6は、 本発明の第 3実施形態に係る印刷クライアントが実行する公開鍵要 求処理を説明するフローチャートを示す図、
図 1 7は、 本発明の第 3実施形態に係る印刷クライアントが備える公開鍵テー ブルの構成の一例を示す図、
図 1 8は、 本発明の第 3実施形態に係るプリンタが実行する公開鍵送信処理を 説明するフローチャートの一部を示す図 (その 1 ) 、
図 1 9は、 本発明の第 3実施形態に係るプリンタが実行する公開鍵送信処理を 説明するフローチャートの一部を示す図 (その 2 ) 、
図 2 0は、 本発明の第 3実施形態に係るプリンタが備える乱数テーブルの構成 の一例を示す図、
図 2 1は、 本発明の第 3実施形態に係る印刷クライアントが実行する印刷要求 処理を説明するフローチャートを示す図、
図 2 2は、 本発明の第 3実施形態において、 印刷クライアントからプリンタに 送信される印刷送信用データの構成の一例を示す図、
図 2 3は、 本発明の第 3実施形態に係るプリンタが実行する印刷実行処理を説 明するフローチャートを示す図、 図 2 4は、 第 4実施形態に係る印刷クライアントが実行する印刷要求処理を説 明するフローチャートの一部を示す図 (その 1 ) 、
図 2 5は、 第 4実施形態に係る印刷クライアントが実行する印刷要求処理を説 明するフローチャートの一部を示す図 (その 2 ) 、
図 2 6は、 第 4実施形態に係るプリンタが実行する印刷実行処理を説明するフ ローチャートの一部を示す図 (その 1 ) 、
図 2 7は、 第 4実施形態に係るプリンタが実行する印刷実行処理を説明するフ ローチャートの一部を示す図 (その 2 ) 、
図 2 8は、 第 4実施形態に係るプリンタが実行する印刷実行処理を説明するフ ローチャートの一部を示す図 (その 3 ) 、
図 2 9は、 本発明の第 5実施形態において、 公開鍵と秘密鍵とを用いた、 印刷 データの暗号化と復号を説明するための概念図、
図 3 0は、 本発明の第 5実施形態に係る印刷クライアントが実行する公開鍵要 求処理を説明するフローチャートを示す図、
図 3 1は、 本発明の第 5実施形態に係る印刷クライアントが備える公開鍵テー ブルの構成の一例を示す図、
図 3 2は、'本発明の第 5実施形態に係るプリンタが実行する公開鍵送信処理を 説明するフローチャートの一部を示す図 (その 1 ) 、
図 3 3は、 本発明の第 5実施形態に係るプリンタが実行する公開鍵送信処理を 説明するフローチャートの一部を示す図 (その 2 ) 、
図 3 4は、 本発明の第 5実施形態に係る印刷クライアントが実行する印刷要求 処理を説明するフローチャートを示す図、
図 3 5は、 本発明の第 5実施形態に係るプリンタが実行する印刷実行処理を説 明するフローチャートを示す図、
図 3 6は、 本発明の第 6実施形態に係る印刷クライアントが実行する公開鍵要 求処理を説明するフローチャートを示す図、
図 3 7は、 本発明の第 6実施形態に係る印刷クライアントが備える公開鍵テー ブルの構成の一例を示す図、
図 3 8は、 本発明の第 6実施形態に係る印刷クライアントが実行する印刷要求 処理を説明するフローチヤ一トを示す図、
図 3 9は、 本実施形態に係る印刷クライアントが実行する印刷要求処理を説明 するフローチャートの一部を示す図 (その 1 ) 、
図 4 0は、 本実施形態に係る印刷クライアントが実行する印刷要求処理を説明 するフローチャートの一部を示す図 (その 2 ) 、
図 4 1は、 本実施形態に係るプリンタが実行する印刷実行処理を説明するフロ 一チャートの一部を示す図 (その 1 ) 、
図 4 2は、 本実施形態に係るプリンタが実行する印刷実行処理を説明するフロ 一チャートの一部を示す図 (その 2 ) 、
図 4 3は、 本実施形態に係るプリンタが実行する印刷実行処理を説明するフロ 一チヤ一トの一部を示す図 (その 3 ) 、
図 4 4は、 乱数の代わりに、'プリンタから印刷クライアントにアルゴリズムと 付加情報とを送信する例を説明する図 (印刷クライアントからプリンタには所定 の数を送信する場合) 、
図 4 5は、 図 4 4の変形例を示す図 (印刷クライアントからプリンタにはアル ゴリズムと付加情報とを送信する場合) 、
図 4 6は、 図 4 4の別の変形例を示す図である (印刷クライアントからプリン タにはアルゴリズムは送信せずに、 付加情報を送信する場合) 。 好適な実施例
〔第 1実施形態〕
本発明の第 1実施形態に係る印刷システムは、 プリンタが設置されている位置 を表すプリンタ位置情報を少なくとも用いて公開鍵を生成し、 これを印刷クライ アントに取得させておき、 印刷クライアントが印刷データをこのプリンタに送信 する際には、 この取得した公開鍵を用いて印刷データを暗号化して生成した印刷 送信用データとして送信することとしたものである。 そして、 この印刷送信用デ ータを受信したプリンタでは、 受信時に再度、 その時点におけるプリンタ位置情 報を少なくとも用いて秘密鍵を生成し、 この秘密鍵で印刷送信用データが復号で きた場合にのみ印刷を実行するようにしたものである。 また、 一般に、 公開鍵暗 号法においては、 公開鍵及び秘密鍵を生成する際に、 乱数を使用するが、 本実施 形態においては、 プリンタに予め乱数を登録しておき、 印刷クライアントに送信 する公開鍵を生成する際に使用する乱数と、 印刷送信用データを復号するために 秘密鍵を生成する際に使用する乱数とが、 同じものになるようにすることにより、 プリンタ位置情報が不変であれば同じ秘密鍵が得られるようにしたものである。 より詳しくを、 以下に説明する。 ' . まず、 図 1に基づいて、 本実施形態に係る印刷システムの構成を説明する。 図 1は、 本実施形態に係る印刷システムのハードウエア構成を示すプロック図であ る。
この図 1に示すように、 本実施形態に係る印刷システムは、 ネットワーク 1 0 に接続された印刷クライアント 2 0、 2 2と、 同じくネットワーク 1 0に接続さ れたプリンタ 3 0、 3 2とを備えている。 本実施形態においては、 ネットワーク 1 0は、 T C P / I P (transmission control protocol/internet protocol) を用いたインターネットにより構成されている。 伹し、 ネットワーク 1 0の態様 は、 インターネットに限るものではなく、 例えば、 イーサ一ネット *商舉) 等の L A Nや、 インターネットと L A Nとの混在により構成されていてもよい。 印刷クライアント 2 0、 2 2は、 例えば、 ホストコンピュータやパーソナルコ ンピュータと呼ばれる各種のコンピュータにより構成されている。 本実施形態で は、 特に印刷クライアント 2 0、 2 2は、 印刷データを公開鍵で暗号化した印刷 送信用データを生成し、 この印刷送信用データをネットワーク 1 0を介してプリ ンタ 3 0及び/又はプリンタ 3 2に送信する。 このネットワーク 1 0に接続され る印刷クライアントの台数は任意であり、 1台でもよく、 複数台でもよい。 また、 この印刷クライアントは、 コンピュータに限られるものではなく、 例えば、 撮影 した画像を印刷する必要のあるデジタルカメラや、 印刷画像データをコンテンツ として蓄積してあるコンテンツサーバ等でもよい。
また本実施形態においては、 プリンタ 3 0、 3 2はいわゆるネットワークプリ ンタである。 本実施形態においては、 特にプリンタ 3 0、 3 2は、 印刷送信用デ ータを印刷クライアント 2 0及び/又は印刷クライアント 2 2から受信し、 この 印刷送信用データを、 少なくともプリンタ位置情報を含むパスフレーズと、 この プリンタ 3 0、 3 2に保持されている乱数とを用いて、 秘密鍵を生成し、 この秘 密鍵で印刷送信用データを復号する。 そして、 印刷送信用データの復号ができた 場合には、 その印刷送信用データに基づく印刷を行い、 印刷送信用データの復号 ができなかった場合には、 その印刷送信用データに基づく印刷は行わない。
本実施形態においては、 プリンタ 3 0、 3 2は、 ネットワーク 1 0に直接接続 されており、 各プリンタ 3 0、 3 2は固有のネットワークア ドレスを有している。 したがって、 印刷クライアント 2 0、 2 2は、 このネットワークアドレスを指定 することにより、 印刷送信用データをプリンタ 3 0又はプリンタ 3 2に送信する ことができる。
但し、 この図 1においては、 プリンタ 3 0、 3 2をネットワーク 1 0に直接接 続しているが、 プリンタサーバを介して接続するようにしてもよい。 また、 この ネットワーク 1 0に接続されるプリンタの台数は任意であり、 1台でもよく、 複 数台でもよい。
図 2は、 プリンタ 3 0の内部構成を説明するためのブロック図である。 なお、 プリンタ 3 2の内部構成もプリンタ 3 0と同様である。
この図 2に示すように、 プリンタ 3 0は、 C P U (Centra l Processing Uni t) 4 0と、 R AM (Random Access Memory) 4 2と、 R OM (Read Only Memor y) 4 4とを備えており、 これらは互いに内部バス 4 6を介して接続されている。 また、 この内部バス 4 6には、 通信用のインターフェース 4 8が接続されており、 この通信用のインターフェース 4 8を介して、 上述したネットワーク 1 0にプリ ンタ 3 0が接続されている。 さらに、 内部バス 4 6には、 ィンターフェース 5 0 が接続されており、 このインターフェース 5 0には印刷エンジン 5 2が接続され ている。
また、 内部バス 4 6には、 位置検出部 5 4が接続されている。 この位置検出部 5 4は、 プリンタ 3 0が設置されている位置を特定する機能を有する。 本実施形 態においては、 例えば、 G P S (global positioning system) により構成され ており、 このプリンタ 3 0が設置されている位置の緯度、 経度、 高度が特定でき るようになっている。 現時点における G P Sの精度は、 緯度、 経度、 高度におい て、 それぞれ ± 1 0 m程度であると言われている。 但し、 この位置検出部 5 4は、 G P Sを用いた構成に限らず、 例えば、 無線し ANによりこのプリンタ 3 0がネットワーク 1 0に接続されている場合には、 こ のプリンタ 3 0が収容されている無線基地局に基づいて、 プリンタ 3 0の位置を 特定するようにしてもよい。 或いは、 P H S (Personal Handyphone System) な どの移動体通信技術を利用して、 プリンタ 3 0の位置を特定するようにしてもよ レ、。
さらに、 内部バス 4 6には、 ィンターフェース 5 6を介して、 ハードディスク 5 8が接続されている。 本実施形態においては、 このハードディスク 5 8は、 書 き換え可能な不揮発性記憶装置として機能する。
図 3は、 印刷クライアント 2 0の内部構成を説明するためのブロック図である。 なお、 本実施形態においては、 印刷クライアント 2 2の内部構成も印刷クライァ ント 2 0と同様である。
この図 3に示すように、 本実施形態に係る印刷クライアント 2 0は、 コンビュ ータ本体 6 0とディスプレイ 6 2とを備えて構成されている。
コンピュータ本体 6 0は、 C P U 6 4と、 R AM 6 6と、 R OM 6 8とを備え ており、 これらは互いに内部バス 7 0を介して接続されている。 また、 この内部 バス 7 0には、 通信用のインターフェース 7 2が接続されており、 この通信用の インターフェース 7 2を介して、 上述したネットワーク 1 0に印刷クライアント 2 0が接続されている。 ■
さらに、 内部バス 7 0には、 インターフェース 7 4が接続されており、 このィ ンターフェース 7 4には大容量記憶装置であるハードディスク 7 6が接続されて いる。 本実施形態においては、 このハードディスク 7 6は、 書き換え可能な不揮 発性記憶装置として機能する。 また、 内部バス 7 0には、 インターフェース 7 8 が接続されており、 このィンターフェース 7 8から延びるケーブル 8 0を介して、 上述したディスプレイ 6 2が接続されている。
次に、 本実施形態に係る印刷システムにおいて、 例えば、 印刷クライアント 2 0がプリンタ 3 0で印刷を行う場合の処理を、 概略的に説明する。
この場合、 印刷クライアント 2 0は、 予め、 例えばプリンタ 3 0からこのプリ ンタ 3 0の公開鍵を取得しておく。 本実施形態においては、 この公開鍵の取獰は、 ネットワーク 1 0を介して行われる。 すなわち、 プリンタ 3 0は、 公開鍵の送信 を要求してきた印刷クライアント 2 0が正当な権限を有しているかどうかを確認 し、 正当な権限を有する場合にのみ、 自らの公開鍵を通知する。 この公開鍵は、 プリンタ 3 0が、 プリンタ 3 0の設置されている位置を示すプリンタ位置情報を 少なくとも含むパスフレーズと、 このプリンタ 3 0で生成されて保持されている 乱数とを用いて、 公開鍵暗号法により生成する。 つまり、 プリンタ 3 0では、 公 開鍵暗号法により使用する乱数を保持しておく機能を有している。
但し、 この際、 生成された秘密鍵は破棄する。 すなわち、 一般的な公開鍵暗号 法では、 公開鍵と秘密鍵は、 同時に生成される。 このため、 本実施形態において は、 公開鍵を生成する際に付随して秘密鍵が生成された場合でも、 この秘密鍵を 破棄することとしている。 そしてこれにより、 このプリンタ 3 0の設置場所が移 動された場合には、 移動前に生成された公開鍵で暗号化された印刷送信用データ 力 移動後のプリンタ 3 0で復号できないようにしているのである。
伹し、 プリンタ 3 0の公開鍵は、 必ずしもネットワーク 1 0を介して印刷クラ イアント 2 0に通知する必要はない。 例えば、 印刷クライアント 2 0のユーザが、 正当な権限を有する者であれば、 プリンタ 3 0の設置場所に出向いて、 プリンタ 3 0を操作することができるのであるから、 ユーザがプリンタ 3 0のコント口一 ルパネルを操作して、 プリンタ 3 0の公開鍵を取得するようにしてもよい。 この 場合、 ユーザはプリンタ 3 0の公開鍵をフレキシブルディスク等の記録媒体に記 録し、 これを印刷クライアント 2 0に読み込ませてもよい。
次に、 印刷クライアント 2 0のユーザは、 図 4に示すように、 印刷するべきデ ータである印刷データ D O 5を作成し、 印刷クライアント 2◦に対してプリンタ 3 0を指定して印刷を指示する。
印刷クライアント 2 0は、 印刷データ D O 5を、 予め取得しておいたプリンタ 3 0の公開鍵を用いて暗号化し、 印刷送信用データ D 1 0を生成する。 ここで、 印刷データ D 0 5は、 プリンタ 3 0で印刷エンジン 5 2を駆動した印刷を行うの に必要となる本来の印刷データを示している。 なお、 印刷送信用データ D 1 0は、 この図 4に示した印刷データ D 0 5以外のデータを含んでいてもよい。
この印刷送信用データ D 1 0を受信したプリンタ 3 0は、 図 2に示すように、 この受信した印刷送信用データ D 1 0を R AM 4 2に一旦格納する。 そして、 プ リンタ 3 0は、 この暗号化された印刷送信用データ D 1 0を、 秘密鍵を用いて復 号する。 すなわち、 プリンタ 3 0は、 プリンタ位置情報を少なくとも含むパスフ レーズと、 このプリンタ 3 0で生成されて保持されている乱数とを用いて、 公開 鍵暗号法により、 秘密鍵を生成する。
続いて、 プリンタ 3 0は、 印刷送信用データ D 1 0が復号できたかどうかを判 断する。 印刷送信用データ D 1 0の復号ができた場合には、 印刷送信用データ D 1 0を復号することにより取得した印刷データ D 0 5に基づいて印刷を行い、 復 号できなかった場合には、 印刷は行わない。 '
次に、 上述した処理の内容について、 フローチャートを用いて詳しく説明する。 まず、 公開鍵を印刷クライアント 2 0、 2 2が取得する場合における、 印刷クラ イアント 2 0、 2 2及びプリンタ 3 0、 3 2の処理について、 説明する。
図 5は、 印刷クライアント 2 0、 2 2で実行される公開鍵要求処理を説明する フローチャートである。 この公開鍵要求処理は、 印刷クライアントの R OM 6 8 又はハードディスク 7 6に格納されている公開鍵要求プログラムを C P U 6 4が 読み込んで実行することにより実現される処理である。 また、 本実施形態におい ては、 この公開鍵要求処理は、 ユーザが印刷クライアントに公開鍵を要求する処 理を起動するように指示入力した場合に、 起動され、 実行される処理である。 なお、 以下においては、 印刷クライアント 2 0からプリンタ 3 0に公開鍵を要 求する場合を想定して、 処理を説明する。
図 5に示すように、 この公開鍵要求処理においては、 まず印刷クライアント 2 0は、 プリンタ 3 0に接続する (ステップ S 1 0 0 ) 。 本実施形態においては、 印刷クライアント 2 0は、 プリンタ 3 0のネットワークァドレスを指定すること により、 印刷クライアント 2 0とプリンタ 3 0との間の接続を確立する。 また、 本実施形態においては、 S S L (Secure Socket Layer) 通信などにより、 セキ ユリティーを確保した上で、 印刷クライアント 2 0とプリンタ 3 0との間の接続 を確立する。
次に、 印刷クライアント 2 0は、 プリンタ 3 0へ認証情報を送信する (ステッ プ S 1 0 2 ) 。 本実施形態においては、 この認証情報として、 印刷クライアント を特定するための印刷クライアント I Dと、 パスワードとの組み合わせを用いて いる。 したがって、 印刷クライアント 20は、 印刷クライアント I Dとパスヮー ドとを、 プリンタ 30へ送信する。
これに続いて、 印刷クライアント 20は、 プリンタ 30から認証が受け入れら れたか否かを示す認証結果を受信するので、 この認証結果に基づいて、 プリンタ 30で認証が認められたかどうかを判断する (ステップ S 104) 。 認証が認め られなかった場合 (ステップ S 104 : N o) には、 上述したステップ S 102 からを繰り返す。
—方、 認証が認められた場合 (ステップ S 104 : Ye s) には、 印刷クライ アント 20は、 公開鍵取得要求をプリンタ 30へ送信する (ステップ S 106) 。 そして、 プリンタ 30から公開鍵を受信したかどうかを判断する (ステ.ップ S 1 08) 。 プリンタ 30から公開鍵を受信していない場合 (ステップ S 108 : N o) には、 このステップ S 108を繰り返して待機する。
一方、 プリンタ 30から公開鍵を受信した場合 (ステップ S 108 : Ye s) には、 この公開鍵を格納する (ステップ S 1 10) 。 本実施形態においては、 印 刷クライアント 20は、 ハードディスク 76に公開鍵テーブル TB 10を設けて おり、 取得した公開鍵は、 この公開鍵テーブル TB 1 0に格納され保持される。 図 6は、 この公開鍵テーブル TB 10の構成の一例を示す図である。 この図 6 に示すように、 公開鍵テーブル TB 10は、 プリンタを特定するための情報を格 納する項目 TD 10と、 取得した公開鍵をプリンタに対応させて格納する項目 T D 1 1とを備えている。 このように、 公開鍵テーブル TB 10は、 複数のプリン タに関する公開鍵を、 各プリンタ毎に保持することができるようになっている。 また、 このようにハードディスク 78の公開鍵テーブル TB 10に公開鍵を格納 することにより、 印刷クライアント 20の電源がオフされて再び電源が投入され た場合でも、 それ以前に取得した公開鍵をそのままハードディスク Ί 8から読み 出して使用することができるようになっている。
図 5に示すように、 次に、 印刷クライアント 20は、 プリンタ 30との接続を 切断する (ステップ S 1 12) 。 これにより、 図 5に示した公開鍵要求処理は終 了する。 次に、 図 7及び図 8に基づいて、 印刷クライアント 20、 22の公開鍵要求処 理に対応して、 プリンタ 30、 32で実行される公開鍵送信処理について説明す る。 この図 7及び図 8は、 プリンタ 30、 32で実行される公開鍵送信処理を説 明するフローチャートである。 この公開鍵送信処理は、 プリンタの ROM44又 はハードディスク 58に格納されている公開鍵送信プログラムを CPU40が読 み込んで実行することにより実現される処理である。 また、 この公開鍵送信処理 は、 上述した公開鍵要求処理に対応して、 起動される処理である。
ここでも上述と同様に、 印刷クライアント 20からプリンタ 30に公開鍵が要 求された場合を想定して説明する。
図 7に示すように、 プリンタ 30は、 印刷クライアント 20からの接続を待つ ており、 印刷クライアント 20から接続を要求された場合に、 印刷クライアント 20と接続を確立する (ステップ S 1 20) 。 これは上述した印刷クライアン 1、 20側のステップ S 100に対応している。 すなわち、 S S L通信などでセキュ リティーを確保した上で、 接続を確立する。 続いて、 プリンタ 30は、 印刷クラ イアント 20から認証情報を受信したかどうかを判断する (ステップ S 1 22) 。 認証情報を受信していない場合 (ステップ S 1 22 : No) には、 このステップ S 1 22の処理を繰り返して待機する。
一方、 認証情報を印刷クライアント 20から受信した場合 (ステップ S 1 22 : Y e s ) には、 その認証情報がこのプリンタ 30に予め登録してある認証情報 と一致するかどうかを判断する (ステップ S 1 24) 。 具体的には、 上述したよ うに、 印刷クライアント 20から印刷クライアント I Dとパスワードが認証情報 として送信されてくるので、 この印刷クライアント I Dとパスワードが、 このプ リンタ 30に予め登録されている印刷クライアント I Dとパスワードと一致する かどうかを判断する。
認証情報が一致しなかった場合 (ステップ S 1 24 : No) には、 プリンタ 3 0は印刷クライアント 20に、 認証が受け入れられなかった旨の認証結果を送信 し (ステップ S 126) 、 後述する図 8のステップ S 1 54において、 印刷クラ イアント 20との接続を終了する。 一方、 認証が一致した場合 (ステップ S 12 4 : Ye s) には、 プリンタ 30は印刷クライアント 20に、 認証が受け入れら れた旨の B証結果を送信する (ステップ S 1 28) 。
次に、 プリンタ 30は、 印刷クライアント 20から公開鍵取得要求を受信した かどうかを判断する (ステップ S 1 30) 。 この公開鍵取得要求を受信していな い場合 (ステップ S 1 30 : No) には、 このステップ S 1 30の処理を繰り返 して待機する。
一方、 印刷クライアント 20から公開鍵取得要求を受信した場合 (ステップ S
130 : Ye s) には、 プリンタ 30は、 このプリンタ 30の機器固有情報を取 得する (ステップ S 132) 。 ここで、 機器固有情報とは、 このプリンタ 30に 関して、 固有に割り当てられている識別情報であり、 例えば、 プリンタ 30の製 造シリアルナンバー、 MACアドレス等がある。
次に、 図 8に示すように、 プリンタ 30は、 位置検出部 54から、 その時点に おけるプリンタ 30のプリンタ位置情報を取得する (ステップ S 140) 。 この ようにプリンタ位置情報をその都度、 位置検出部 54から取得することとしてい るのは、 プリンタ 30が別の場所に移動された場合には、 その移動後の位置情報 を用いて公開鍵を生成するようにするためである。
次に、 プリンタ 30は、 機器固有情報とプリンタ位置情報とを用いてパスフレ ーズを作成する (ステップ S 142) 。 このパスフレーズの作成手法は種々のも のが考えられるが、 本実施形態においては、 単純に機器固有情報の後ろにプリン タ位置情報をつなげることにより、 パスフレーズを作成する。 なお、 パスフレー ズは、 これら機器固有情報及びプリンタ位置情報以外のデータを含んでいてもよ レ、。
次に、 プリンタ 30は、 このプリンタ 30の乱数が予め登録されているかどう かを判断する (ステップ S 144) 。 乱数が登録されていない場合 (ステップ S
144 : No) には、 プリンタ 30は、 乱数を 1つ生成して、 ハードディスク 5 8に登録する (ステップ S 146) 。 すなわち、 本実施形態においては、 各プリ ンタは、 それぞれ乱数を 1度だけ生成して、 ハードディスク 58に登録して保持 しておくこととしている。 この乱数の生成は、 プリンタ 30が初めてこの公開鍵 送信処理をした際に行われるものである。 また、 ハードディスク 58に乱数を保 持するので、 プリンタ 30の電源をオフにした場合でも、 不揮発的に保持される。 このため、 再びプリンタ 3 0の電源をオンにした場合でも、 それまで使用した乱 数が有効に保持されていることとなる。 なお、 このプリンタ 3 0の乱数の生成は、 必ずしも公開鍵送信処理で行う必要はなく、 他の処理で行うようにしてもよい。 例えば、 プリンタ 3 0を工場から出荷する際に、 予め生成してハードディスク 5 8に登録して保持するようにしてもよい。
一方、 乱数がハードディスク 5 8に保持されている場合 (ステップ S 1 4 4 : Y e s ) には、 このステップ S 1 4 6の処理をバイパスする。
次に、 プリンタ 3 0は、 ハードディスク 5 8から、 このプリンタ 3 0の乱数を 読み出して、 取得する (ステップ S 1 4 8 ) 。
次に、 プリンタ 3 0は、 ステップ S 1 4 2で作成したパスフレーズと、 ステツ プ S 1 4 8で取得した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密鍵と を生成する (ステップ S 1 5 0 ) 。 公開鍵暗号法では、 使用するパスフレーズと 乱数が同じであれば、 再び、 公開鍵と秘密鍵とを生成しても、 同じものが生成さ れるという性質を有している。 続いて、 プリンタ 3 0は、 この生成した公開鍵と 秘密鍵のうち、 公開鍵のみを印刷クライアント 2 0に送信する (ステップ S 1 5 2 ) 。 なお、 秘密鍵は保存されることなく破棄される。
次に、 プリンタ 3 0は、 印刷クライアント 2 0との接続を終了する (ステップ S 1 5 4 ) 。 これにより、 本実施形態に係る公開鍵送信処理が終了する。
次に、 印刷クライアント 2 0、 2 2が印刷を行いたいときに、 その印刷要求を プリンタ 3 0、 3 2に送信する場合の印刷クライアント 2 0、 2 2及びプリンタ 3 0、 3 2の処理について、 詳しく説明する。
図 9は、 印刷クライアント 2 0、 2 2で実行される印刷要求処理を説明するフ ローチャートである。 この印刷要求処理は、 印刷クライアントの R OM 6 8又は ハードディスク 7 6に格納されている印刷要求プログラムを C P U 6 4が読み込 んで実行することにより実現される処理である。 本実施形態においては、 この印 刷要求処理は、 ユーザが印刷クライアントに印刷指示を入力した場合に、 起動さ れ、 実行される処理である。
ここでは、 印刷クライアント 2 0からプリンタ 3 0に印刷を要求する場合を想 定して説明する。 この図 9に示すように、 印刷クライアント 20は、 ユーザの印刷要求に基づい て、 印刷データ D 05を作成する (ステップ S 1 60) 。 この印刷データ DO 5 は、 プリンタ 30が通常のプリンタである場合に、 印刷を実際に行うのに必要と なるデータである。
次に、 印刷クライアント 20は、 ハードディスク 76の公開鍵テーブル TB 1 0力 ら、 プリンタ 30の公開鍵を読み出す (ステップ S 1 62) 。 続いて、 印刷 クライアント 20は、 プリンタ 30の公開鍵を用いて、 .印刷データ DO 5を暗号 化して、 印刷送信用データ D 10を生成する (ステップ S 1 64) 。 なお、 印刷 送信用データ D 10は、 印刷データ以外のデータを含んでいてもよい。
次に、 印刷クライアント 20は、 プリンタ 30との接続を確立する (ステップ S 1 65) 。 続いて、 印刷クライアント 20は、 この暗号化した印刷送信用デー タ D 10を、 プリンタ 30に送信する (ステップ S 166) 。 具体的には、 プリ ンタ 30のネットワークアドレスを指定して、 ネットワーク 10に印刷送信用デ ータ D 10を送出する。
次に、 印刷クライアント 20は、 プリンタ 30から印刷結果情報を受信したか どうかを判断する (ステップ S 1 68) 。 印刷結果情報を受信していない場合 (ステップ S 168 : N o) には、 このステップ S 1 68の処理を繰り返して待 機する。 一方、 印刷結果情報を受信した場合 (ステップ S 1 68 : Ye s) には、 その印刷結果情報が印刷完了通知であるかどうかを判断する (ステップ S 1 7 0) 。
この印刷結果情報が印刷完了通知である場合 (ステップ S 1 70 : Ye s) に は、 プリンタ 30で印刷が正常に終了したことを意味しているので、 ユーザにプ リンタ 30で印刷が完了した旨を通知する (ステップ S 1 72) 。 一方、 受信し た印刷結果情報が印刷完了通知でない場合 (ステップ S 1 70 : No) には、 そ の印刷結果情報が解読不能通知であるかどうかを判断する (ステップ S 1 74) 。 印刷結果情報が解読不能通知である場合 (ステップ S 1 74 : Ye s) には、 ユーザに、 プリンタ 30で印刷送信用データ D 1 0の復号ができなかったため、 印刷が行われなかった旨を通知する (ステップ S 1 76) 。 一方、 印刷結果情報 が解読不能通知でない場合 (ステップ S 1 74 : No) には、 その他の何らかの エラーであると考えられるので、 ユーザに、 そのエラーの種類に応じた通知を行 う (ステップ S 1 78) 。
これらステップ S 1 72、 ステップ S 1 76、 及び、 ステップ S 1 78の通知 の後、 印刷クライアント 20は、 プリンタ 30との接続を切断する (ステップ S 1 79) 。 これにより、 この印刷クライアント 20における印刷要求処理は終了 する。
次に、 図 10に基づいて、 印刷クライアント 20、 22の印刷要求処理に対応 して、 プリンタ 30、 32で実行される印刷実行処理について説明する。 図 10 は、 プリンタ 30、 32で実行される印刷実行処理を説明するフローチャートで ある。 この印刷実行処理は、 プリンタ 30、 32の ROM44又はハードデイス ク 58に格納されている印刷実行プログラムを C PU 40が読み込んで実行する ことにより実現される処理である。 本実施形態においては、 この印刷実行処理は、 所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、 印刷クライアント 20からプリンタ 30に印刷が要求 された場合を想定して説明する。
図 10に示すように、 プリンタ 30は、 印刷クライアント 20からの接続を待 つており、 印刷クライアント 20から接続を要求された場合には、 プリンタ 30 は、 ネットワーク 10を介した印刷クライアント 20と接続を確立する (ステツ プ S 180) 。 印刷クライアント 20と接続が確立した後、 プリンタ 30は、 印 刷送信用データ D 10をネットワーク 10から受信したかどうかを判断する (ス テツプ S 18 1) 。 何ら印刷送信用データ D 10を受信していない場合 (ステツ プ S 18 1 : No) には、 このステップ S 18 1の処理を繰り返して待機する。
—方、 印刷送信用データ D 10を受信した場合 (ステップ S 18 1 : Y e s ) には、 プリンタ 30は自らの機器固有情報を取得する (ステップ S 182) 。 続 いて、 プリンタ 30は、 位置検出部 54から、 その時点におけるプリンタ 30の プリンタ位置情報を取得する (ステップ S 1 84) 。 このようにプリンタ位置情 報を、 その都度、 位置検出部 54から取得することとしているのは、 プリンタ 3 0が別の場所に移動された場合には、 このプリンタ 30がユーザの意図しない場 所に設置されている可能性があり、 このような場合にはプリンタ 30で印刷が行 われないようにするためである。
次に、 プリンタ 3 0は、 機器固有情報とプリンタ位置情報とに基づいて、 パス フレーズを作成する (ステップ S 1 8 6 ) 。 このパスフレーズの作成手法は、 上 述した公開鍵送信処理におけるステップ S 1 4 2と同じ手法である必要がある。 なぜなら、 パスフレーズが異なると、 印刷クライアントに送信した公開鍵で暗号 化された印刷送信用データを、 秘密鍵で復号できなくなってしまうからである。 次に、 プリンタ 3 0は、 ハードディスク 5 8から、 上述したステップ S 1 4 6 で登録されて保持されているこのプリンタ 3 0の乱数を読み出して、 取得する (ステップ S 1 8 8 ) 。 続いて、 プリンタ 3 0は、 生成したパスフレーズと取得 した乱数とを用いて、 公開鍵暗号法により公開鍵と秘密鍵とを生成する (ステツ プ S 1 9 0 ) 。 このステップ S 1 9 0で使用するパスフレーズと乱数は、 プリン タ 3 0の設置位置が移動されていなければ、 上述した公開鍵送信処理におけるス テツプ S 1 5 0で使用したパスフレーズと乱数と同じである。 このため、 ステツ プ S 1 5 0で生成したものと同じ公開鍵と秘密鍵が生成される。 続いて、 プリン タ 3 0は、 生成された秘密鍵を用いて、 受信した印刷送信用データ D 1 0を復号 して、 印刷データ D O 5を取得する (ステップ S 1 9 2 ) 。
次に、 プリンタ 3 0は、 秘密鍵を用いて印刷送信用データ D 1 0の復号ができ たかどうかを判断する (ステップ S 1 9 4 ) 。 復号ができた場合 (ステップ S 1 9 4 : Y e s ) には、 得られた印刷データ D O 5に基づいて、 印刷エンジン 5 2 を駆動した印刷を実行する (ステップ S 1 9 6 ) 。 具体的には、 印刷データ D O 5の言語解釈を行い、 印刷エンジン 5 2に適合した印刷要求データを生成する。 そして、 この印刷要求データを印刷エンジン 5 2に送信することにより、 印刷工 ンジン 5 2で印刷用紙等に印刷が行われる。
このことから分かるように、 本実施形態においては、 位置検出部 5 4で検出し たプリンタ位置情報を少なくとも含むパスフレーズとプリンタ 3 0に登録されて いる乱数とを用いて秘密鍵を生成し、 この秘密鍵で印刷送信用データ D 1 0が復 号できた場合には、 印刷送信用データ D 1 0がプリンタ位置情報と合致したと判 断することとなる。
この印刷が正常に完了した時点で、 プリンタ 3 0は、 印刷が正常に終了した旨 の印刷完了通知を、 印刷結果情報として、 印刷クライアント 2 0に送信する (ス テツプ S 1 9 8 ) 。 - これに対して、 ステップ S 1 9 4において、 印刷送信用データ D 1 0の復号が できなかったと判断した場合 (ステップ S 1 9 4 : N o ) には、 解読不能通知を 印刷結果情報として、 印刷クライアント 2 0に送信する (ステップ S 2 0 0 ) 。 すなわち、 本実施形態においては、 位置検出部 5 4で検出したプリンタ位置情報 を少なくとも含むパスフレーズとプリンタ 3 0に登録されている乱数とを用いて 秘密鍵を生成し、 この秘密鍵で印刷送信用データ D 1 0が復号できなかった場合 には、 印刷送信用データ D 1 0がプリンタ位置情報と合致しなかった判断するこ ととなる。
これらステップ S 1 9 8又はステップ S 2 0 0の後、 プリンタ 3 0は、 印刷ク ライアント 2 0との接続を終了する (ステップ S 2 0 2 ) 。 そして、 上述したス テツプ S 1 8 1の処理に戻る。
以上のように、 本実施形態に係る印刷システムによれば、 印刷クライアント 2 0、 2 2は、 暗号化して送信した印刷送信用データ D 1 0の印刷をできるプリン タを、 プリンタ位置情報に基づいて限定することができるので、 印刷クライアン ト 2 0、 2 2のユーザが意図していない位置にあるプリンタで印刷が行われしま うのを回避することができる。 例えば、 プリンタ 3 0が別の場所に移動されたが、 ネットワーク 1 0内におけるプリンタ 3 0のネットワークァドレスは変更されて いない場合に、 印刷クライアント 2 0から誤って印刷送信用データ D 1 0をこの プリンタ 3 0に送信してしまっても、 プリンタ 3 0ではプリンタ位置情報が変更 されているため、 ステップ S 1 8 6で作成されるパスフレーズが移動前と異なつ たものになる。 このため、 このパスフレーズを用いて生成された秘密鏈を用いて も、 印刷送信用データ D 1 0の復号はできず、 プリンタ 3 0では印刷が行われな い。 このため、 印刷データ D O 5のセキュリティを高めることができる。
一方、 プリンタ 3 0、 3 2側においても、 本来であればこのプリンタ 3 0、 3 2で印刷する権限のない者が、 印刷データをこれらプリンタ 3 0、 3 2に送信し て、 大量の印刷をプリンタ 3 0、 3 2に実行させてしまうのを回避することがで きる。 例えば、 何らかの理由で、 プリンタ 3 0のネットワークアドレスを第三者 が知得して、 このプリンタ 3 0に印刷送信用データ D 1 0を送信しようとしても、 このプリンタ 3 0の公開鍵を取得することができない。 もし、 このユーザが異な る公開鍵で印刷データ D 0 5を暗号化して印刷送信用データ D 1 0を生成したり、 暗号化しないで印刷送信用データ D 1 0を生成したりして、 プリンタ 3 0に印刷 送信用データ D 1 0を送信したとしても、 印刷実行処理のステップ S 1 9 4で復 号できないと判断されるので、 プリンタ 3 0に印刷を実行させることができなく なる。 このため、 プリンタ 3 0自体のセキュリティを高めることができる。
また、 本実施形態においては、 パスフレーズに機器固有情報も含めることとし たので、 何らかの理由により第三者が、 プリンタ 3 0の位置を知得したとしても、 プリンタ 3 0の機器固有情報が分からなければ、 プリンタ 3 0で使用されている パスフレーズを特定することができない。 このため、 第三者がこのプリンタ 3 0 になりすまして印刷送信用データ D 1 0を受信し、 この印刷送信用データ D 1 0 を復号することを、 極めて困難なものにすることができる。
さらに、 本実施形態においては、 パスフレーズに加えて乱数も用いて、 公開鍵 及び秘密鍵を生成することとしたので、 第三者がこのプリンタ 3 0になりすまし て印刷送信用データ D 1 0を受信し、 この印刷送信用データ D 1 0を復号するこ とを、 より一層困難なものにすることができる。
また、 この乱数は、 各プリンタ毎に生成して、 生成した乱数をハードディスク などの書き換え可能な不揮発性記憶装置に保持しておくこととしたので、 公開鍵 を生成した際に使用した乱数と同じものを、 秘密鍵を生成する際にも使用するこ とができる。 このため、 この乱数を使用して生成した公開鍵で暗号化された印刷 送信用データ D 1 0を復号できる秘密鍵を、 再び生成することができる。
〔第 2実施形態〕
本発明の第 2実施形態は、 プリンタ 3 0 、 3 2が、 公開鍵及び秘密鍵を生成す る際に用いる乱数を、 印刷クライアント毎に生成し保持することにより、 第三者 による乱数の推測がより一層困難になるようにしたものである。 より詳しくを、 以下に説明する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。 また、 本実 施形態に係る印刷クライアント 2 0、 2 2が実行する公開鍵要求処理も、 上述し た第 1実施形態と同様である。
図 1 1は、 本実施形態に係るプリンタ 3 0、 3 2が実行する公開鍵送信処理の 一部を説明するフローチャートを示す図であり、 上述した第 1実施形態における 図 8に対応する図である。
この図 1 1に示すように、 本実施形態に係る公開鍵送信処理は、 ステップ S 1 4 2に示すパスフレーズの生成までは、 上述した第 1実施形態の処理と同様であ るが、 これ以降の処理が異なる。 すなわち、 パスフレーズの生成を終えた後、 プ リンタ 3 0は、 公開鍵を要求してきた印刷クライアントの乱数が、 このプリンタ 3 0に登録されているかどうかを判断する (ステップ S 3 0 0 ) 。
図 1 2は、 本実施形態に係るプリンタ 3 0が保持している、 各印刷クライアン ト毎に乱数が登録されている乱数テーブル T B 2 0の構成の一例を示す図である。 本実施形態においては、 この乱数テーブル T B 2 0は、 ハードディスク 5 8に格 納され、 保持されている。
この図 1 2に示すように、 乱数テーブル T B 2 0は、 データ項目として、 印刷 クライアント I D T D 2 0と、 乱数 T D 2 1とを備えて構成されている。 印刷 クライアント I D T D 2 0には、 印刷クライアントを特定するための情報とし て、 印刷クライアント I Dが格納される。 乱数 T D 2 1には、 印刷クライアント I D T D 2 0に対応する乱数が格納される。
本実施形態においては、 先の第 1実施形態におけるステップ S 1 2 2で述べた ように、 印刷クライアント 2 0、 2 2から識別情報として印刷クライアント I D とパスワードが、 プリンタ 3 0に送信されてくる。 このため、 このステップ S 3 0 0では、 印刷クライアント 2 0、 2 2から受信した印刷クライアント I Dが、 この乱数テーブル T B 2 0に登録されており、 乱数が保持されているかどうかを 判断する。
図 1 1に示すように、 該当する印刷クライアントの乱数がこのプリンタ 3 0に 登録されていない場合 (ステップ S 3 0 0 : N o ) には、 プリンタ 3 0は、 この 印刷クライアント用の乱数を 1つ生成して 乱数テーブル TB 20に登録する (ステップ S 302) 。 具体的には、 その印刷クライアントの印刷クライアント I Dと、 生成した乱数とを、 乱数テーブル TB 20に登録する。
一方、 乱数がプリンタ 30に登録されている場合 (ステップ S 300 : Y e s ) には、 このステップ S 302の処理をバイパスする。
次に、 プリンタ 30は、 公開鍵の送信を要求してきた印刷クライアントの乱数 を、 乱数テーブル TB 20から読み出して、 取得する (ステップ S 304) 。 次に、 プリンタ 30は、 ステップ S 142で作成したパスフレーズと、 ステツ プ S 304で取得した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密鍵と を生成する (ステップ S 306) 。 そして、 上述した第 1実施形態と同様に、 プ リンタ 30は、 この生成した公開鍵と秘密鍵のうち、 公開鍵のみを印刷クライァ ント 20に送信する (ステップ S 1 52) 。 なお、 秘密鍵は保存されることなく 破棄される。
次に、 プリンタ 30は、 印刷クライアント 20との接続を終了する (ステップ S 1 54) 。 これにより、 本実施形態に係る公開鍵送信処理が終了する。
次に、 図 1 3に基づいて、 本実施形態に係る印刷クライアント 20、 22が実 行する印刷要求処理を説明する。 この図 13は、 本実施形態に係る印刷クライァ ント 20、 22が実行する印刷要求処理を説明するフローチャートである。
この図 1 3に示すように、 本実施形態に係る印刷要求処理は、 印刷送信用デー タを生成するための処理が、 上述した第 1実施形態と異なる。 すなわち、 ステツ プ S 162で公開鍵を読み出した後、 印刷クライアント 20は、 公開鍵を用いて、 印刷データ D 05を暗号化する (ステップ S 3 10) 。
次に、 印刷クライアント 20は、 この暗号化した印刷データ D 05に、 自らの 印刷クライアント I Dを付加して、 印刷送信用データを生成する (ステップ S 3 1 2) 。 図 14は、 本実施形態に係る印刷送信用データ D 20のフォーマットの 一例を示す図である。 この図 14に示すように、 本実施形態に係る印刷送信用デ ータ D 20は、 ステップ S 162で読み出した公開鍵で暗号化された印刷データ DO 5に、 ステップ S 1 62で読み出した公開鏈で暗号化されていない印刷クラ イアント I D D 1 5を付加することにより、 構成されている。 ここで、 印刷クライアント I D D 1 5を、 ステップ S 1 6 2で読み出した公 開鍵で暗号化しないのは、 プリンタ 3 0では印刷クライアント毎に異なる乱数を 保持しているので、 この印刷クライアント I D D 1 5が特定できないと秘密鍵 を生成することができないからである。 このため、 ステップ S 1 6 2で読み出し た公開鍵を用いずに、 別な暗号法で、 この印刷クライアント I D D 1 5を暗号 化することはできる。 なお、 印刷送信用データ D 2 0は、 これら印刷クライアン ト I D D 1 5と印刷データ D 0 5以外のデータを含んでいてもよい。
また、 本実施形態においては、 印刷データ D O 5とともに、 印刷クライアント I D D 1 5を送信することとしているが、 印刷クライアント I D D 1 5を、 印刷データ D 0 5とは別に送信するようにしてもよい。 この場合、 印刷データ D 0 5との関連性が維持されていれば、 印刷クライアント I D D 1 5は、 印刷デ ータ D 0 5よりも先に送信してもよいし、 後に送信してもよい。
このステップ S 3 1 2以降の処理は、 上述した第 1実施形態と同様である。 次に、 図 1 5に基づいて、 本実施形態に係るプリンタ 3 0、 3 2が実行する印 刷実行処理を説明する。 この図 1 5は、 本実施形態に係るプリンタ 3 0、 3 2が 実行する印刷実行処理を説明するフローチャートである。
この図 1 5に示すように、 本実施形態に係る印刷実行処理は、 乱数を取得する 際の処理が、 上述した第 1実施形態と異なる。 すなわち、 プリンタ 3 0は、 ステ ップ S 1 8 6でパスフレーズを生成した後、 受信した印刷送信用データ D 2 0か ら、 印刷クライアント I D D 1 5を取り出して、 取得する (ステップ S 3 2 0 ) 。
次に、 プリンタ 3 0は、 印刷クライアント I Dを検索キーとして、 乱数テープ' ル T B 2 0を検索し、 該当する印刷クライアントの乱数を乱数テーブル T B 2 0 から読み出して、 取得する (ステップ S 3 2 2 ) 。 続いて、 プリンタ 3 0は、 ス テツプ S 1 8 6で生成したパスフレーズと、 ステップ S 3 2 2で取得した乱数と を用いて、 公開鍵暗号法により公開鍵と秘密鍵とを生成する (ステップ S 3 2 4 ) 。
このステップ S 3 2 4以降の処理は、 上述した第 1実施形態と同様である。 以上のように、 本実施形態に係る印刷システムによっても、 上述した第 1実施 形態と同様の効果を得ることができる。 さらに、 本実施形態に係る印刷システム によれば、 プリンタ 3 0、 3 2は、 各印刷クライアント毎に乱数を生成して、 こ れを保持することとしたので、 第三者がこの乱数を推測することを極めて困難な ものにすることができる。
〔第 3実施形態〕
本発明の第 3実施形態は、 プリンタ 3 0、 3 2が、 公開鍵及ぴ秘密鍵を生成す る際に用いる乱数を、 ユーザ毎に生成し保持することにより、 第三者による乱数 の推測がより一層困難になるようにしたものである。 より詳しくを、 以下に説明 する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。
図 1 6は、 本実施形態に係る印刷クライアント 2 0、 2 2が実行する公開鍵要 求処理の一部を説明するフ口一チヤ一トを示す図であり、 上述した第 1実施形態 における図 5に対応する図である。
この図 1 6に示すように、 本実施形態に係る公開鍵要求処理は、 ステップ S 1
0 4で認証が認められた場合以降の処理が、 上述した第 1実施形態と異なる。 す なわち、 ステップ S 1 0 4で認証が認められた場合 (ステップ S 1 0 4 : Y e s ) には、 印刷クライアント 2 0は、 この公開鍵を要求しているユーザのユーザ
1 Dと、 公開鍵取得要求とを、 プリンタ 3 0に送信する (ステップ S 4 0 0 ) 。 本実施形態においては、 このユーザ I Dは、 ユーザがキーボード等を操作して、 印刷クライアントに入力し、 この入力されたユーザ I Dをプリンタ 3 0に送信す ることとしている。
次に、 印刷クライアント 2 0は、 プリンタ 3 0から公開鍵を受信したかどうか を判断する (ステップ S 4 0 2 ) 。 プリンタ 3 0から公開鍵を受信していない場 合 (ステップ S 4 0 2: N o ) には、 このステップ S 4 0 2を繰り返して待機す る。
一方、 プリンタ 3 0から公開鏈を受信した場合 (ステップ S 4 0 2: Y e s ) には、 この公開鍵を格納する (ステップ S 4 0 2 ) 。 本実施形態においては、 印 刷クライアント 2 0は、 ハードディスク 7 6に公開鍵テーブル T B 3 0をプリン タ毎に設けており、 取得したプリンタ位置情報は、 この公開鍵テーブル T B 3 0 に格納され保持される。
図 1 7は、 この公開鍵テーブル T B 3 0の構成の一例を示す図である。 この図 1 7に示すように、 公開鍵テーブル T B 3 0は、 各プリンタ 3 0、 3 2毎にテー ブルが形成されており、 各テーブルは、 ユーザを特定するための情報を格納する 項目 T D 3 0と、 取得した公開鍵を各ユーザに対応させて格納する項目 T D 3 1 とを備えている。 このように、 公開鍵テーブル T B 3 0は、 複数のユーザに関す る公開鍵を、 各ユーザ毎に且つ各プリンタ毎に保持することができるようになつ ている。 また、 このようにハードディスク 7 8の公開鍵テーブル T B 3 0に公開 鍵を格納することにより、 印刷クライアント 2 0の電源がオフされて再び電源が 投入された場合でも、 それ以前に取得した公開鍵をそのままハードディスク 7 8 から読み出して使用することができるようになつている。
図 1 6に示すように、 次に、 印刷クライアント 2 0は、 プリンタ 3 0との接続 を切断する (ステップ S 4 0 6 ) 。 これにより、 図 1 6に示した公開鍵要求処理 は終了する。
次に、 図 1 8及び図 1 9に基づいて、 本実施形態に係るプリンタ 3 0、 3 2で 実行される公開鍵送信処理について説明する。 この図 1 8及ぴ図 1 9は、 プリン タ 3 0、 3 2で実行される公開鍵送信処理を説明するフローチャートであり、 上 述した第 1実施形態における図 7及び図 8に対応している。
まず、 図 1 8に示すように、 本実施形態に係るプリンタ 3 0は、 公開鍵取得要 求とともに、 ユーザ I Dを印刷クライアント 2 0から受信する点が、 上述した第 1実施形態及び第 2実施形態と異なる。 すなわち、 ステップ S 1 2 8で認証が受 け入れられた旨の認証結果を送信した後、 プリンタ 3 0は、 ユーザ I Dと公開鍵 取得要求とを受信したかどうかを判断する (ステップ S 4 1 0 ) 。 そして、 ユー ザ I Dと公開鍵取得要求とのレ、ずれか一方でも受信していなレ、場合 (ステップ S 4 1 0 : N o ) には、 このステップ S 4 1◦を繰り返して待機する。
一方、 ユーザ I Dと公開鍵取得要求との双方とも受信した場合 (ステップ S 4 1 0 : Y e s ) には、 上述した第 1実施形態と同様に、 ステップ S 1 3 2からの 処理を実行する。
さらに、 図 1 9に示すように、 本実施形態に係るプリンタ 3 0は、 乱数を取得 する際の処理が、 上述した第 1実施形態及び第 2実施形態と異なる。 すなわち、 パスフレーズの生成を終えた後、 プリンタ 3 0は、 公開鍵を要求してきたユーザ の乱数が、 このプリンタ 3 0で、 この印刷クライアント 2 0で登録されているか どうかを判断する (ステップ S 4 2 0 ) 。
図 2 0は、 本実施形態に係るプリンタ 3 0が保持している、 各ユーザ毎に乱数 が登録されている乱数テーブル T B 4 0の構成の一例を示す図である。 本実施形 態においては、 この乱数テーブル T B 4 0は、 印刷クライアント毎にテーブルが 形成されている。 また、 この乱数テーブル T B 4 0は、 ハードディスク 5 8に格 納され、 保持されている。
この図 2 0に示すように、 乱数テーブル T B 4 0は、 データ項目として、 ユー ザ I D T D 4 0と、 乱数 T D 4 1とを備えて構成されている。 ユーザ I D T D 4 0には、 ユーザを特定するための情報として、 ユーザ I Dが格納される。 乱 数 T D 4 1には、 ユーザ I D T D 4 0に対応する乱数が格納される。
本実施形態においては、 先のステップ S 1 2 2で述べたように、 印刷クライァ ント 2 0から識別情報として印刷クライアント I Dとパスヮードが、 プリンタ 3 0に送信されてくる。 また、 ステップ S 4 1 0で述べたように、 印刷クライアン ト 2 0からユーザ I Dが送信されてくる。 このため、 このステップ S 3 0 0では、 印刷クライアント 2 0から受信した印刷クライアント I Dに基づいて、 乱数テー ブル T B 4 0における印刷クライアント 2 0のテーブルを特定することができる。 そして、 印刷クライアント 2 0から受信したユーザ I Dに基づいて、 そのユーザ に対応する乱数が、 該当する印刷クライアントのテーブルに登録されているかど うかを判断することができる。
このことから分かるように、 本実施形態においては、 1人のユーザが複数の印 刷クライアントを使用する場合も想定しており、 この場合は、 同じユーザであつ ても、 印刷クライアントが異なれば、 異なる乱数、 つまり、 異なる公開鍵と秘密 鍵とを使用することとしている。 図 1 9に示すように、 該当する印刷クライアントにおいて、 該当するユーザの 乱数がこのプリンタ 3 0に登録されていない場合 (ステップ S 4 2 0 : N o ) に は、 プリンタ 3 0は、 この印刷クライアントにおける該当ユーザの乱数を 1つ生 成して、 乱数テーブル T B 4 0に登録する (ステップ S 4 2 2 ) 。 具体的には、 乱数テーブル T B 4 0の中の印刷クライアント 2 0のテーブルに、 ユーザ I Dと、 生成した乱数とを登録する。
一方、 乱数がプリンタ 3 0に登録されている場合 (ステップ S 4 2 0 : Y e s ) には、 このステップ S 4 2 2の処理をバイパスする。
次に、 プリンタ 3 0は、 公開鍵の送信を要求してきた印刷クライアントに対し て登録されているユーザの乱数を、 乱数テーブル T B 4 0から読み出して、 取得 する (ステップ S 4 2 4 ) 。
次に、 プリンタ 3 0は、 ステップ S 1 4 2で作成したパスフレーズと、 ステツ プ S 4 2 4で取得した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密鍵と を生成する (ステップ S 4 2 6 ) 。 そして、 上述した第 1実施形態及び第 2実施 形態と同様に、 プリンタ 3 0は、 この生成した公開鍵と秘密鍵のうち、 公開鍵の みを印刷クライアント 2 0に送信する (ステップ S 1 5 2 ) 。 なお、 秘密鍵は保 存されることなく破棄される。
次に、 プリンタ 3 0は、 印刷クライアント 2 0との接続を終了する (ステップ S 1 5 4 ) 。 これにより、 本実施形態に係る公開鍵送信処理が終了する。
次に、 図 2 1に基づいて、 本実施形態に係る印刷クライアント 2 0、 2 2が実 行する印刷要求処理を説明する。 この図 2 1は、 本実施形態に係る印刷クライァ ント 2 0、 2 2が実行する印刷要求処理を説明するフローチャートである。
この図 2 1に示すように、 本実施形態に係る印刷要求処理は、 印刷送信用デー タを生成するための処理が、 上述した第 1実施形態及び第 2実施形態と異なる。 すなわち、 ステップ S 1 6 2で、 公開鍵テーブル T B 3 0から該当するプリンタ に対応した該当するユーザの公開鍵を読み出した後、 印刷クライアント 2 0は、 この公開鍵を用いて、 印刷データ D 0 5を暗号化する (ステップ S 4 3 0 ) 。 次に、 印刷クライアント 2 0は、 この暗号化した印刷データ D 0 5に、 自らの 印刷クライアント I Dとユーザ I Dとを付加して、 印刷送信用データを生成する (ステップ S 432) 。 図 22は、 本実施形態に係る印刷送信用データ D 30の フォーマツトの一例を示す図である。 この図 22に示すように、 本実施形態に係 る印刷送信用データ D 30は、 ステップ S 162で読み出した公開鍵で暗号化さ れた印刷データ D 05に、 ステップ S 162で読み出した公開鍵で暗号化されて いない印刷クライアント I D D 1 5と、 同じくステップ S 162で読み出した 公開鍵で暗号化されていないユーザ I D D 25とを付加することにより、 構成 されている。
ここで、 印刷クライアント I D D 1 5とユーザ I D D 25とを、 ステップ S 16 2で読み出した公開鍵で暗号化しないのは、 プリンタ 30では、 印刷クラ イアント毎に、 且つ、 ユーザ毎に、 異なる乱数を保持しているので、 この印刷ク ライアント I D D 1 5とユーザ I D D 25とが特定できないと秘密鍵を生成 することができないからである。 このため、 ステ.ップ S 1 62で読み出した公開 鍵を用いずに、 別な暗号法で、 この印刷クライアント I D D 1 5とユーザ I D
D 25とを暗号化することはできる。 なお、 印刷送信用データ D 30は、 これ ら印刷クライアント I D D 15とユーザ I D D 25と印刷データ D 05以外 のデータを含んでいてもよい。
また、 本実施形態においては、 印刷データ DO 5とともに、 印刷クライアント I D D 1 5とユーザ I D D 25とを送信することとしているが、 印刷クライ アント I D D 1 5とユーザ I D D 25とを、 印刷データ D 05とは別に送信 するようにしてもよい。 この場合、 印刷データ D 05との関連性が維持されてい れば、 印刷クライアント I D D 1 5とユーザ I D D 25とは、 印刷データ D 05よりも先に送信してもよいし、 後に送信してもよい。 さらには、 印刷クライ アント I D D 1 5とユーザ I D D 25とは、 別々に送信してもよいし、 同時 に送信してもよい。
このステップ S 43 2以降の処理は、 上述した第 1実施形態及び第 2実施形態 と同様である。
次に、 図 23に基づいて、 本実施? ί態に係るプリンタ 30、 32が実行する印 刷実行処理を説明する。 この図 23は、 本実施形態に係るプリンタ 30、 32が 実行する印刷実行処理を説明するフローチャートである。 この図 2 3に示すように、 本実施形態に係る印刷実行処理は、 乱数を取得する 際の処理が、 上述した第 1実施形態及び第 2実施形態と異なる。 すなわち、 プリ ンタ 3 0は、 ステップ S 1 8 6でパスフレーズを生成した後、 受信した印刷送信 用データ D 2 0から、 印刷クライアント I D D 1 5とユーザ I D D 2 5とを 取り出して、 取得する (ステップ S 4 4 0 ) 。
次に、 プリンタ 3 0は、 この取得した印刷クライアント I Dとユーザ I Dとを 検索キーとして、 乱数テーブル T B 4 0を検索し、 該当する印刷クライアントに 対して登録されているユーザの乱数を、 乱数テーブル T B 4 0から読み出して、 取得する (ステップ S 4 4 2 ) 。 続いて、 プリンタ 3 0は、 ステップ S 1 8 6で 生成したパスフレーズと、 ステップ S 4 4 2で取得した乱数とを用いて、 公開鍵 暗号法により公開鍵と秘密鍵とを生成する (ステップ S 4 4 4 ) 。
このステップ S 4 4 4以降の処理は、 上述した第 1実施形態及び第 2実施形態 と同様である。
以上のように、 本実施形態に係る印刷システムによっても、 上述した第 1実施 形態及び第 2実施形態と同様の効果を得ることができる。 さらに、 本実施形態に 係る印刷システムによれば、 プリンタ 3 0、 3 2は、 各ユーザ毎に乱数を生成し て、 これを保持することとしたので、 第三者がこの乱数を推測することを極めて 困難なものにすることができる。
〔第 4実施形態〕 · 本発明の第 4実施形態に係る印刷システムは、 印刷ジョブ毎に、 プリンタが設 置されている位置を表すプリンタ位置情報を少なくとも含むパスフレーズを用い て公開鍵を生成し、 これを印刷クライアントに送信する。 印刷クライアントは、 この公開鍵を用いて印刷ジョブデータを暗号化して生成した印刷送信用データを 送信する。 そして、 この印刷送信用データを受信したプリンタでは、 受信時に再 度、 その時点におけるプリンタ位置情報を少なくとも含むパスフレーズを用いて 秘密鍵を生成し、 この秘密鍵で印刷送信用データが復号できた場合にのみ印刷を 実行するようにしたものである。 また、 一般に、 公開鍵暗号法においては、 公開 鍵及び秘密鍵を生成する際に、 乱数を使用するが、 本実施形態においては、 印刷 トに送信する公開鍵を生成する際に使用した乱数を保持しておき、 印 刷送信用データを復号するために秘密鍵を生成する際にも、 同じ乱数を使用する ことにより、 プリンタ位置情報が不変であれば同じ秘密鍵が得られるようにした ものである。 より詳しくを、 以下に説明する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。
次に、 本実施形態に係る印刷システムにおいて、 例えば、 印刷クライアント 2 0がプリンタ 3 0で印刷を行う場合の処理を、 概略的に説明する。
この場合、 まず印刷クライアント 2 0は、 プリンタ 3 0からこのプリンタ 3 0 の公開鍵を取得する。 本実施形態においては、 この公開鍵の取得は、 ネットヮー ク 1 0を介して印刷ジョブ毎に行われる。 すなわち、 プリンタ 3 0は、 公開鍵の 送信を要求してきた印刷クライアント 2 0が正当な権限を有しているかどうかを 確認し、 正当な権限を有する場合にのみ、 自らの公開鍵を印刷クライアント 2 0 に送信する。 この公開鍵は、 プリンタ 3 0が、 プリンタ 3 0の設置されている位 置を示すプリンタ位置情報を少なくとも含むパスフレーズと、 このプリンタ 3 0 が印刷ジョブ毎に生成した乱数とを用いて、 公開鍵暗号法により生成する。 プリ ンタ 3 0では、 この公開鍵を生成する際に使用した乱数を保持しておく。
但し、 この際、 生成された秘密鍵は破棄する。 すなわち、 一般的な公開鍵暗号 法では、 公開鍵と秘密鍵は、 同時に生成される。 このため、 本実施形態において は、 公開鍵を生成する際に付随して秘密鍵が生成された場合でも、 この秘密鍵を 破棄することとしている。 そしてこれにより、 このプリンタ 3 0の生成した秘密 鍵が漏洩する可能性を可及的に低く している。
次に、 印刷クライアント 2 0のユーザは、 図 4に示すように、 プリンタ 3 0で 印刷を実行するのに必要となるデータを含んでいる印刷ジョブデータ D 0 5を作 成し、 印刷クライアント 2 0に対してプリンタ 3 0を指定して印刷を指示する。 印刷クライアント 2 0は、 印刷ジョブデータ D O 5を、 先に取得したプリンタ 3 0の公開鍵を用いて暗号化し、 印刷送信用データ D 1 0を生成する。 なお、 印刷 送信用データ D 1 0は、 この図 4に示した印刷ジョブデータ D 0 5以外のデータ を含んでいてもよい。
この印刷送信用データ D 1 0を受信したプリンタ 3 0は、 図 2に示すように、 この受信した印刷送信用データ D 1 0を R AM 4 2に一旦格納する。 そして、 プ リンタ 3 0は、 この暗号化された印刷送信用データ D 1 0を、 秘密鍵を用いて復 号する。 すなわち、 プリンタ 3 0は、 プリンタ位置情報を少なくとも含むパスフ レーズと、 このプリンタ 3 0で生成されて保持されている乱数とを用いて、 公開 鍵暗号法により、 秘密鍵を生成する。 そして、 この秘密鍵で印刷送信用データ D 1 0を復号する。
続いて、 プリンタ 3 0は、 印刷送信用データ D 1 0が復号できたかどうかを判 断する。 印刷送信用データ D 1 0の復号ができた場合には、 印刷送信用データ D 1 0を復号することにより取得した印刷ジョブデータ D 0 5に基づいて印刷を行 い、 復号できなかった場合には、 印刷は行わない。 続いて、 プリンタ 3 0は、 保 持している乱数を削除する。
次に、 上述した処理の内容について、 フローチャートを用いて詳しく説明する。 まず、 印刷クライアント 2 0 、 2 2がプリンタ 3 0 、 3 2に印刷を要求する場合 の処理である印刷要求処理を説明する。
図 2 4及び図 2 5は、 印刷クライアント 2 0 、 2 2で実行される印刷要求処理 を説明するフローチャートである。 この印刷要求処理は、 印刷クライアントの R OM 6 8又はハードディスク 7 6に格納されている印刷要求プログラムを C P U 6 4が読み込んで実行することにより実現される処理である。 また、 本実施形態 においては、 この印刷要求処理は、 ユーザが印刷クライアント 2 0 、 2 2に、 印 刷を実行するように指示入力した場合に、 起動され、 実行される処理である。 なお、 以下においては、 印刷クライアント 2 0からプリンタ 3 0に印刷を要求 する場合を想定して、 処理を説明する。
図 2 4に示すように、 この印刷要求処理においては、 まず印刷クライアント 2 0は、 プリンタ 3 0にネットワーク 1 0を介して接続要求を送信する (ステップ S 1 1 0 0 ) 。 そして、 印刷クライアント 2 0とプリンタ 3 0との間の接続を確 立する (ステップ S 1 1 0 2 ) 。 本実施形態においては、 S S L (Secure Socke t Layer) 通信などにより、 セキュリティーを確保した上で、 印刷クライアント 20とプリンタ 30との間の接続を確立する。
次に、 印刷クライアント 20は、 プリンタ 30へ認証情報を送信する (ステツ プ S 1 104) 。 本実施形態においては、 この認証情報として、 印刷クライアン トを特定するための印刷クライアント I Dと、 パスワードとの組み合わせを用い ている。 したがって、 印刷クライアント 20は、 印刷クライアント I Dとパスヮ ードとを、 プリンタ 30へ送信する。
これに続いて、 印刷クライアント 20は、 プリンタ 30から認証が受け入れら れたか否かを示す認証結果を受信するので、 この認証結果に基づいて、 プリンタ
30で認証が認められたかどうかを判断する (ステップ S 1 106) 。 認証が認 められなかった場合 (ステップ S 1 106 : N o) には、 上述したステップ S 1 104からを繰り返す。
—方、 認証が認められた場合 (ステップ S 1 106 : Ye s) には、 印刷クラ イアント 20は、 公開鍵取得要求をプリンタ 30へ送信する (ステップ S 1 10 8) 。 そして、 プリンタ 30から公開鍵を受信したかどうかを判断する (ステツ プ S 1 1 10) 。 プリンタ 30から公開鍵を受信していない場合 (ステップ S 1 1 10 : N o) には、 このステップ S 1 1 10を繰り返して待機する。
一方、 プリンタ 30から公開鍵を受信した場合 (ステップ S 1 1 1 0 : Y e s) には、 この公開鍵を格納する (ステップ S 1 1 1 2) 。 本実施形態において は、 印刷クライアント 20は、 RAM 66 (図 3参照) にこの公開鍵を一時的に 格納し保持する。 このように RAM66に公開鍵を格納することにより、 印刷ク ライアント 20の電源がオフされた場合には、 自動的に、 公開鍵が消去されるの で、 公開鍵の秘密性を高めることができるようになつている。
次に、 プリンタ 30は、 プリンタとの接続を解放する (ステップ S 1 1 14) 。 すなわち、 S S L通信等によりセキュリティを確保した状態で、 この印刷クライ アント 20とプリンタ 30との間に確立されている接続を、 解放する。 この接続 の解放は、 必ずしも必要な処理ではないが、 後述するステップ S 1 1 26で送信 する印刷送信用データ D 10は公開鍵により別途暗号化されており、 これ以降の 処理でコネクション自体のセキュリティを確保する必要性に乏しいため、 本実施 形態では接続を解放することとしている。 次に、 図 25に示すように、 印刷クライアント 20は、 ユーザの印刷要求に基 づいて、 印刷ジョブデータ DO 5を作成する (ステップ S 1 1 20) 。 この印刷 ジョブデータ DO 5は、 プリンタ 30で印刷を実行するのに必要となる、 暗号化 されていないデータである。
次に、 印刷クライアント 20は、 RAM 66から、 ステップ S 1 1 1 2で格納 した公開鍵を読み出す (ステップ S 1 1 22) 。 続いて、 印刷クライアント 20 は、 この公開鍵を用いて、 印刷ジョブデータ DO 5を暗号化して、 印刷送信用デ ータ D 10を生成する (ステップ S 1 124) 。 なお、 印刷送信用データ D 10 は、 印刷ジョブデータ以外のデータを含んでいてもよい。
次に、 印刷クライアント 20は、 新たにプリンタ 30との接続を確立する (ス テツプ S 1 1 25) 。 上述したように、 この接続は、 必ずしもセキュリティの確 保された接続でなくてもよい。
次に、 印刷クライアント 20は、 この暗号化した印刷送信用データ D 10を、 プリンタ 30に送信する (ステップ S 1 1 26) 。 具体的には、 プリンタ 30の ネットワークアドレスを指定して、 ネットワーク 10に印刷送信用データ D 10 を送出する。
次に、 印刷クライアント 20は、 プリンタ 30から印刷結果情報を受信したか どうかを判断する (ステップ S 1 1 28) 。 印刷結果情報を受信していない場合 (ステップ S 1 1 28 : No) には、 このステップ S 1 1 28の処理を繰り返し て待機する。 一方、 印刷結果情報を受信した場合 (ステップ S 1 1 2 8 : Y e s) には、 その印刷結果情報が印刷完了通知であるかどうかを判断する (ステツ プ S 1 1 30) 。
この印刷結果情報が印刷完了通知である場合 (ステップ S 1 130 : Ye s) には、 プリンタ 30で印刷が正常に終了したことを意味しているので、 ユーザに プリンタ 30で印刷が完了した旨を通知する (ステップ S 1 1 32) 。 一方、 受 信した印刷結果情報が印刷完了通知でない場合 (ステップ S 1 1 30 : No) に は、 その印刷結果情報が解読不能通知であるかどうかを判断する (ステップ S 1 134) 。
印刷結果情報が解読不能通知である場合 (ステップ S 1 1 34 : Ye s) には、 ユーザに、 プリンタ 30で印刷送信用データ D 10の復号ができなかったため、 印刷が行われなかった旨を通知する (ステップ S 1 1 36) 。 一方、 印刷結果情 報が解読不能通知でない場合 (ステップ S 1 1 34 : No) には、 その他の何ら かのエラーであると考えられるので、 ユーザに、 そのエラーの種類に応じた通知 を行う (ステップ S 1 1 38) 。
これらステップ S 1 1 32、 ステップ S 1 1 36、 及び、 ステップ S 1 1 38 の通知の後、 印刷クライアント 20は、 ステップ S 1 1 1 2で RAM66に格納 した公開鍵を削除する (ステップ S 1 140) 。 このステップ S 1 140の処理 は、 必ずしも必要な処理ではないが、 公開鍵の秘^性を向上させるために、 本実 施形態においては、 1つの印刷ジョブの処理が終了する度に、 取得した公開鍵を 削除することとしている。
次に、 印刷クライアント 20は、 プリンタ 30との接続を解放する (ステップ S 1 142) 。 これにより、 この印刷クライアント 20における印刷要求処理は 終了する。
次に、 図 26乃至図 28に基づいて、 印刷クライアント 20、 22の印刷要求 処理に対応して、 プリンタ 30、 32で実行される印刷実行処理について説明す る。 この図 26乃至図 28は、 プリンタ 30、 32で実行される印刷実行処理を 説明するフローチャートである。 この印刷実行処理は、 プリンタの ROM44又 はハードディスク 58に格納されている印刷実行プログラムを CPU 40が読み 込んで実行することにより実現される処理である。 また、 この印刷実行処理は、 所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、 印刷クライアント 20からプリンタ 30に印刷が要求 された場合を想定して説明する。
図 26に示すように、 まず、 プリンタ 30は、 印刷クライアント 20から、 ネ ットワーク 10を介して接続要求を受信したかどうかを判断する (ステップ S 1 200) 。 印刷クライアント 20から接続要求を受信していない場合 (ステップ S 1 200 : No) には、 このステップ S 1 200の処理を繰り返して待機する。 一方、 印刷クライアント 20から接続要求を受信した場合 (ステップ S 1 200 : Ye s) には、 上述したように、 S S L通信等によりセキュリティを確保した 上で、 プリンタ 30と印刷クライアント 20との間の接続を確立する (ステップ S 1 202) 。
次に、 プリンタ 30は、 印刷クライアント 20から認証情報を受信したかどう かを判断する (ステップ S 1 204) 。 認証情報を受信していない場合 (ステツ プ S 1 204 : N o) には、 このステップ S 1204の処理を繰り返して待機す る。
一方、 認証情報を印刷クライアント 20から受信した場合 (ステップ S 1 20 4 : Ye s) には、 その認証情報がこのプリンタ 30に予め登録してある認証情 報と一致するかどうかを判断する (ステップ S 1 206) 。 具体的には、 上述し たように、 印刷クライアント 20から印刷クライアント I Dとパスヮードが認証 情報として送信されてくるので、 この印刷クライアント I Dとパスワードが、 予 めプリンタ 30のハードディスク 58等に登録されている印刷クライアント I D とパスヮードと一致するかどうかを判断する。
認証情報が一致しなかった場合 (ステップ S 1 206 : No) には、 プリンタ 30は印刷クライアント 20に、 認証が受け入れられなかった旨の認証結果を送 信し (ステップ S 1 208) 、 ステップ S 1204の処理に戻る。 一方、 認証が 一致した場合 (ステップ S 1206 : Y e s) には、 プリンタ 30は印刷クライ アント 20に、 認証が受け入れられた旨の認証結果を送信する (ステップ S 1 2 10) 。
次に、 プリンタ 30は、 印刷クライアント 20から公開鍵取得要求を受信した かどうかを判断する (ステップ S 1 212) 。 この公開鍵取得要求を受信してい ない場合 (ステップ S 1 212 : No) には、 このステップ S 1 21 2の処理を 繰り返して待機する。
一方、 印刷クライアント 20から公開鍵取得要求を受信した場合 (ステップ S 1 21 2 : Y e s) には、 プリンタ 30は、 このプリンタ 30の機器固有情報を 取得する (ステップ S 1 214) 。 ここで、 機器固有情報とは、 このプリンタ 3 0に関して、 固有に割り当てられている識別情報であり、 例えば、 プリンタ 30 の製造シリアルナンバー、 MACアドレス等がある。
次に、 図 27に示すように、 プリンタ 30は、 位置検出部 54から、 その時点 におけるプリンタ 3 0のプリンタ位置情報を取得する (ステップ S 1 2 2 0 ) 。 このようにプリンタ位置情報をその都度、 位置検出部 5 4から取得することとし ているのは、 プリンタ 3 0が別の場所に移動された場合には、 その移動後の位置 情報を用いて公開鍵を生成するようにするためである。
次に、 プリンタ 3 0は、 機器固有情報とプリンタ位置情報とを用いてパスフレ ーズを作成する (ステップ S 1 2 2 2 ) 。 このパスフレーズの作成手法は種々の ものが考えられるが、 本実施形態においては、 単純に機器固有情報の後ろにプリ ンタ位置情報をつなげることにより、 パスフレーズを作成する。 なお、 パスフレ ーズは、 これら機器固有情報及びプリンタ位置情報以外のデータを含んでいても よい。
次に、 プリンタ 3 0は、 乱数を 1つ生成してプリンタ 3 0に格納する (ステツ プ S 1 2 2 4 ) 。 本実施形態においては、 この生成した乱数は、 R AM 4 2 (図 2参照) に格納する。 このように R AM 4 2に乱数を格納することにより、 プリ ンタ 3 0の電源がオフされた場合には、 自動的に、 乱数が消去されるので、 公開 鍵及び秘密鍵の秘密性を高めることができるようになつている。
次に、 プリンタ 3 0は、 ステップ S 1 2 2 2で作成したパスフレーズと、 ステ ップ S 1 2 2 4で生成した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密 鍵とを生成する (ステップ S 1 2 2 6 ) 。 公開鍵暗号法では、 使用するパスフレ ーズと乱数とが同じであれば、 再び、 公開鍵と秘密鍵とを生成しても、 同じもの が生成されるという性質を有している。 続いて、 プリンタ 3 0は、' この生成した 公開鍵と秘密鍵のうち、 公開鍵のみを印刷クライアント 2 0に送信する (ステツ プ S 1 2 2 8 ) 。 なお、 秘密鍵は保存されることなく破棄される。
次に、 プリンタ 3 0は、 印刷クライアント 2 0との間の接続を解放する (ステ ップ S 1 2 3 0 ) 。 この処理は、 上述した印刷要求処理のステップ S 1 1 1 4に 対応する処理である。 また、 上述したように、 このステップ S 1 2 3 0の処理は、 必ずしも必要な処理ではなレ、。
次に、 プリンタ 3 0は、 印刷クライアント 2 0から、 ネットワーク 1 0を介し て接続要求を受信したかどうかを判断する (ステップ S 1 2 3 2 ) 。 印刷クライ アント 2 0から接続要求を受信していない場合 (ステップ S 1 2 3 2 : N o ) に は、 このステップ S 1232の処理を繰り返して待機する。 一方、 印刷クライァ ント 20から接続要求を受信した場合 (ステップ S 1232 : Ye s) には、 プ リンタ 30と印刷クライアント 20との間の接続を確立する (ステップ S 1 23 4) 。 この接続においては、 必ずしもセキュリティが確保されていなくともよい。 次に、 プリンタ 30は、 印刷送信用データ D 10をネットワーク 1 0から受信 したかどうかを判断する (ステップ S 1 236) 。 何ら印刷送信用データ D 10 を受信していない場合 (ステップ S 1236 : No) には、 このステップ S 1 2 36の処理を繰り返して待機する。 一方、 印刷送信用データ D 10を受信した場 合 (ステップ S 1 236 : Ye s) には、 プリンタ 30は自らの機器固有情報を 取得する (ステップ S 1 238) 。
次に、 図 28に示すように、 プリンタ 30は、 位置検出部 54から、 その時点 におけるプリンタ 30のプリンタ位置情報を取得する (ステップ S 1 240) 。 このようにプリンタ位置情報を、 その都度、 位置検出部 54から取得することと しているのは、 プリンタ 30が別の場所に移動された場合には、 その移動後の位 置情報を用いて秘密鍵を生成するようにするためである。
次に、 プリンタ 30は、 機器固有情報とプリンタ位置情報とに基づいて、 パス フレーズを作成する (ステップ S 1 242) 。 このパスフレーズの作成手法は、 上述したステップ S 1 222と同じ手法である必要がある。 なぜなら、 パスフレ ーズが異なると、 印刷クライアントに送信した公開鍵で暗号化された印刷送信用 データ D 10を、 秘密鍵で復号できなくなってしまうからである。
次に、 プリンタ 30は、 ステップ S 1 224で生成し、 RAM 42に保持され ているこのプリンタ 30の乱数を読み出して、 取得する (ステップ S 1 244) 。 続いて、 プリンタ 30は、 生成したパスフレーズと取得した乱数とを用いて、 公 開鍵暗号法により公開鍵と秘密鍵とを生成する (ステップ S 1246) 。 このス テツプ S 1 246で使用するパスフレーズは、 その間にプリンタ 30の設置位置 が移動されていなければ、 上述したステップ S 1 226で使用したパスフレーズ と同じである。 また、 乱数についても、 上述したステップ S 1 226と同じであ る。 このため、 ステップ S 1226で生成したものと同じ公開鍵と秘密鍵が生成 される。 続いて、 プリンタ 30は、 生成された秘密鍵を用いて、 受信した印刷送 信用データ D 10を復号する (ステップ S 1248) 。
次に、 プリンタ 30は、 秘密鍵を用いて印刷送信用データ D 10の復号ができ たかどうかを判断する (ステップ S 1 250) 。 復号ができた場合 (ステップ S 1250 : Ye s) には、 得られた印刷ジョブデータ DO 5に基づいて、 印刷工 ンジン 52を駆動した印刷を実行する (ステップ S 1 252) 。 具体的には、 印 刷ジョブデータ D 05の言語解釈を行い、 印刷エンジン 52に適合した印刷要求 データを生成する。 そして、 この印刷要求データを印刷エンジン 52に送信する ことにより、 印刷エンジン 52で印刷用紙等に印刷が行われる。
このことから分かるように、 本実施形態においては、 位置検出部 54で検出し たプリンタ位置情報を少なくとも含むパスフレーズと RAM 42に保持されてい る乱数とを用いて秘密鍵を生成し、 この秘密鍵で印刷送信用データ D 10が復号 できた場合には、 印刷送信用データ D 10がプリンタ位置情報と合致したと判断 することとなる。
この印刷が正常に完了した時点で、 プリンタ 30は、 印刷が正常に終了した旨 の印刷完了通知を、 印刷結果情報として、 印刷クライアント 20に送信する (ス テツプ S 1 254) 。
これに対して、 ステップ S 1 250において、 印刷送信用データ D 10の復号 ができなかったと判断した場合 (ステップ S 1250 : No) には、 解読不能通 知を印刷結果情報として、 印刷クライアント 20に送信する (ステップ S 1 25 6) 。 すなわち、 本実施形態においては、 位置検出部 54で検出したプリンタ位 置情報を少なくとも含むパスフレーズと RAM42に保持されている乱数とを用 いて秘密鍵を生成し、 この秘密鍵で印刷送信用データ D 10が復号できなかつた 場合には、 印刷送信用データ D 10がプリンタ位置情報と合致しなかった判断す ることとなる。
これらステップ S 1 254又はステップ S 1 256の処理の後、 プリンタ 30 は、 RAM 42に保持されている乱数を削除する (ステップ S 1258) 。 RA M42から乱数を削除する処理は必ずしも必要な処理ではないが、 1つの印刷ジ ヨブに関する処理が終了する度に、 R AM 42から乱数を削除することにより、 乱数の秘密性を高めることができる。 次に、 プリンタ 3 0は、 印刷クライアント 2 0との接続を解放する (ステップ S 1 2 6 0 ) 。 そして、 上述した図 2 6のステップ S 1 2 0◦の処理に戻る。 以上のように、 本実施形態に係る印刷システムによれば、 プリンタ 3 0、 3 2 は、 公開鍵暗号法により、 印刷ジョブ毎に異なる乱数を用いて公開鍵と秘密鍵を 生成し、 印刷クライアント 2 0、 2 2に公開鍵を送信することとしたので、 公開 鍵及び秘密鍵のセキュリティを高めることができる。
しかも、 公開鍵を印刷クライアント 2 0に送信する際に使用した乱数を保持し ておき、 秘密鍵を破棄することとしたので、 秘密鍵のセキュリティも高めること ができる。 また、 乱数を保持しておくこととしたので、 この公開鍵を用いて暗号 化された印刷送信用データ D 1 0を復号する際には、 この保持している乱数を用 いて、 再び、 公開鍵暗号法により、 同じ秘密鍵を生成することができ、 印刷送信 用データ D 1 0を復号することができる。
さらに、 プリンタ 3 0、 3 2においては、 この秘密鍵で印刷送信用データ D 1 0が復号できなかった場合には、 受信した印刷送信用データ D 1 0の印刷を実行 しないようにしたので、 不正な意図を有する第三者が、 このプリンタ 3 0、 3 2 で印刷を実行するのを回避することができる。
〔第 5実施形態〕
本発明の第 5実施形態に係る印刷システムは、 プリンタが設置されている位置 を表すプリンタ位置情報を少なくとも用いて公開鍵を生成し、 これを印刷クライ アントに取得させておき、 印刷クライアントが印刷データをこのプリンタに送信 する際には、 この取得した公開鍵を用いて印刷データを暗号化して生成した暗号 化印刷データを含んでいる印刷送信用データとして送信することとしたものであ る。 そして、 この印刷送信用データを受信したプリンタでは、 受信時に再度、 そ の時点におけるプリンタ位置情報を少なくとも用いて秘密鍵を生成し、 この秘密 鍵で印刷送信用データに含まれている暗号化印刷データが復号できた場合にのみ 印刷を実行するようにしたものである。 また、 一般に、 公開鍵喑号法においては、 公開鍵及び秘密鍵を生成する際に、 乱数を使用する。 本実施形態においては、 公 開鍵生成時に使用した乱数を印刷クライアントに送信しておき、 印刷クライアン トに乱数を保持させておく。 そして、 印刷クライアントが暗号化印刷データをプ リンタに送信する際に、 この乱数も印刷送信用データに含めてプリンタに送信し、 この印刷送信用データを受信したプリンタは、 印刷送信用データに含まれている 乱数を用いて、 再び秘密鍵を生成する。 これにより、 公開鍵を生成する際に使用 する乱数と、 暗号化印刷データを復号するために秘密鏈を生成する際に使用する 乱数と力 同じものになるようにし、 プリンタ位置情報が不変であれば同じ秘密 鍵が得られるようにしたものである。 より詳しくを、 以下に説明する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。
次に、 本実施形態に係る印刷システムにおいて、 例えば、 印刷クライアント 2 0がプリンタ 3 0で印刷を行う場合の処理を、.概略的に説明する。
この場合、 印刷クライアント 2 0は、 予め、 例えばプリンタ 3 0からこのプリ ンタ 3 0の公開鍵と、 この公開鍵を生成する際に使用した乱数とを取得しておく。 本実施形態においては、 この公開鍵と乱数の取得は、 ネットワーク 1 0を介して 行われる。 すなわち、 プリンタ 3 0は、 公開鍵と乱数の送信を要求してきた印刷 クライアント 2 0が正当な権限を有しているかどうかを確認し、 正当な権限を有 する場合にのみ、 自らの公開鍵と、 この公開鍵を生成する際に使用した乱数とを 通知する。 この 開鍵は、 プリンタ 3 0が、 プリンタ 3 0の設置されている位置 を示すプリンタ位置情報を少なくとも含むパスフレーズと、 生成した乱数とを用 いて、 公開鍵暗号法により生成する。 そして、 印刷クライアント 2 0は、 公開鍵 と、 公開鍵暗号法によりこの公開鍵を生成する際に使用した乱数とを保持してお く機能を有している。
伹し、 この際、 プリンタ 3 0は、 生成された秘密鍵は破棄する。 すなわち、 一 般的な公開鍵暗号法では、 公開鍵と秘密鍵は、 同時に生成される。 このため、 本 実施形態においては、 公開鍵を生成する際に付随して秘密鍵が生成された場合で も、 この秘密鍵を破棄することとしている。 そしてこれにより、 このプリンタ 3 0の設置場所が移動された場合には、 移動前に生成された公開鍵で暗号化して生 成された暗号化印刷データが、 移動後のプリンタ 3 0で復号できないようにして いるのである。
但し、 プリンタ 3 0の公開鍵と使用した乱数とは、 必ずしもネットワーク 1 0 を介して印刷クライアント 2 0に通知する必要はない。 例えば、 印刷クライアン ト 2 0のユーザが、 正当な権限を有する者であれば、 プリンタ 3 0の設置場所に 出向いて、 プリンタ 3 0を操作することができるのであるから、 ユーザがプリン タ 3 0のコントロールパネルを操作して、 プリンタ 3 0の公開鍵と使用した乱数 とを取得するようにしてもよい。 この場合、 ユーザはプリンタ 3 0の公開鍵と使 用した乱数とをフレキシブルディスク等の記録媒体に記録し、 これを印刷クラィ アント 2 0に読み込ませてもよい。
次に、 印刷クライアント 2 0のユーザは、 図 2 9に示すように、 印刷するべき データを作成し、 印刷クライアント 2 0に対してプリンタ 3 0を指定して印刷を 指示する。 印刷クライアント 2 0は、 印刷すべきデータに基づいて、 印刷データ D O 5を生成する。 ここで、 印刷データ D O 5は、 プリンタ 3 0で印刷エンジン 5 2を駆動した印刷を行うのに必要となる本来の印刷データを示している。
印刷クライアント 2 0は、 印刷データ D O 5をプリンタ 3 0から取得した公開 鍵を用いて暗号化して、 暗号化印刷データを生成する。 そして、 印刷クライアン ト 2 0は、 この暗号化印刷データに、 同じくプリンタ 3 0から取得した乱数を付 加して、 印刷送信用データ D 1 0を生成する。 なお、 印刷送信用データ D 1 0は、 この図 2 9に示した暗号化印刷データと乱数以外のデータを含んでいてもよい。 この印刷送信用データ D 1 0を受信したプリンタ 3 0は、 図 2に示すように、 この受信した印刷送信用データ D 1 0を R AM 4 2に一旦格納する。 そして、 プ リンタ 3 0は、 この印刷送信用データ D 1 0に含まれている暗号化印刷データを、 秘密鍵を用いて復号する。 すなわち、 プリンタ 3 0は、 プリンタ位置情報を少な くとも含むパスフレーズと、 この印刷送信用データ D 1 0に含まれている乱数と を用いて、 公開鍵暗号法により、 秘密鍵を生成する。
続いて、 プリンタ 3 0は、 暗号化印刷データが復号できたかどうかを判断する。 暗号化印刷データの復号ができた場合には、 暗号化印刷データを復号することに より取得した印刷データ D O 5に基づいて印刷を行い、 復号できなかった場合に は、 印刷は行わない。 次に、 上述した処理の内容について、 フローチャートを用いて詳しく説明する。 まず、 公開鍵と乱数と,を印刷クライアント 2 0、 2 2が取得する場合における、 印刷クライアント 2 0、 2 2及ぴプリンタ 3 0、 3 2の処理について、 説明する。 図 3 0は、 印刷クライアント 2 0、 2 2で実行される公開鍵要求処理を説明す るフローチャートである。 この公開鍵要求処理は、 印刷クライアントの R OM 6 8又はハードディスク 7 6に格納されている公開鍵要求プログラムを C P U 6 4 が読み込んで実行することにより実現される処理である。 また、 本実施形態にお いては、 この公開鍵要求処理は、 ユーザが印刷クライアントに公開鍵を要求する 処理を起動するように指示入力した場合に、 起動され、 実行される処理である。 なお、 以下においては、 印刷クライアント 2 0からプリンタ 3 0に公開鍵を要 求する場合を想定して、 処理を説明する。
図 3 0に示すように、 この公開鍵要求処理においては、 まず印刷クライアント
2 0は、 プリンタ 3 0に接続する (ステップ S 2 1 0 0 ) 。 本実施形態において は、 印刷クライアント 2 0は、 プリンタ 3 0のネットワークアドレスを指定する ことにより、 印刷クライアント 2 0とプリンタ 3◦との間の接続を確立する。 ま た、 本実施形態においては、 S S L (Secure Socket Layer) 通信などにより、 セキュリティーを確保した上で、 印刷クライアント 2 0とプリンタ 3 0との間の 接続を確立する。
次に、 印刷クライアント 2 0は、 プリンタ 3 0へ認証情報を送信する (ステツ プ S 2 1 0 2 ) 。 本実施形態においては、 この認証情報として、 印刷クライアン' トを特定するための印刷クライアント I Dと、 パスヮードとの組み合わせを用い ている。 したがって、 印刷クライアント 2 0は、 印刷クライアント I Dとパスヮ ードとを、 プリンタ 3 0へ送信する。
これに続いて、 印刷クライアント 2 0は、 プリンタ 3 0から認証が受け入れら れたか否かを示す認証結果を受信するので、 この認証結果に基づいて、 プリンタ
3 0で認証が認められたかどうかを判断する (ステップ S 2 1 0 4 ) 。 認証が認 められなかった場合 (ステップ S 2 1 0 4 : N o ) には、 上述したステップ S 2 1 0 2からを繰り返す。
一方、 認証が認められた場合 (ステップ S 2 1 0 4 : Y e s ) には、 印刷クラ イアント 20は、 公開鍵取得要求をプリンタ 30へ送信する (ステップ S 210 6) 。 そして、 プリンタ 30から公開鍵とこの公開鍵を生成する際に使用した乱 数とを受信したかどうかを判断する (ステップ S 2108) 。 プリンタ 30から 公開鍵と乱数とを受信していない場合 (ステップ S 2108 : No) には、 この ステップ S 2 108を繰り返して待機する。
一方、 プリンタ 30から公開鍵と乱数とを受信した場合 (ステップ S 2108 •• Ye s) には、 この公開鍵と乱数とを格納する (ステップ S 21 10) 。 本 '実 施形態においては、 印刷クライアント 20は、 ハードディスク 76に公開鍵テー プル TB 210を設けており、 取得した公開鍵と乱数とは、 この公開鍵テーブル TB 210に格納され保持される。
図 31は、 この公開鍵テープル TB 210の構成の一例を示す図である。 この 図 3 1に示すように、 公開鍵テーブル TB 210は、 プリンタを特定するための 情報を格納する項目 TD 10と、 取得した公開鍵をプリンタに対応させて格納す る項目 TD 1 1と、 取得した乱数をプリンタに対応させて格納する項目 TD 1 2 とを備えている。 このように、 公開鍵テーブル TB 210は、 複数のプリンタに 関する公開键及ぴ乱数を、 各プリンタ毎に保持することができるようになつてい る。 また、 このようにハードディスク 78の公開鍵テーブル TB 210に公開鍵 及び乱数を格納することにより、 印刷クライアント 20の電源がオフされて再び 電源が投入された場合でも、 それ以前に取得した公開鍵及び乱数をそのままハー ドディスク 78から読み出して使用することができるようになつている。
この公開鍵テーブル TB 210に、 取得した公開鍵と乱数とを格納することに より、 図 30に示した公開鍵要求処理は終了する。
次に、 図 32及び図 3 3に基づいて、 印刷クライアント 20、 22の公開鍵要 求処理に対応して、 プリンタ 30、 32で実行される公開鍵送信処理について説 明する。 この図 32及び図 33は、 プリンタ 30、 32で実行される公開鍵送信 処理を説明するフローチャートである。 この公開鍵送信処理は、 プリンタの RO M44又はハードディスク 58に格納されている公開鍵送信プログラムを CPU 40が読み込んで実行することにより実現される処理である。 また、 この公開鍵 送信処理は、 上述した公開鍵要求処理に対応して、 起動される処理である。 ここでも上述と同様に、 印刷クライアント 20力、らプリンタ 30に公開鍵が要 求された場合を想定して説明する。
図 32に示すように、 まず、 プリンタ 30は、 印刷クライアント 20と接続を ¾立する (ステップ S 21 20) 。 これは上述した印刷クライアント 20側のス テツプ S 2100に対応している。 すなわち、 S S L通信などでセキュリティー を確保した上で、 接続を確立する。 続いて、 プリンタ 30は、 印刷クライアント 20から認証情報を受信したかどうかを判断する (ステップ S 2122) 。 認証 情報を受信していない場合 (ステップ S 2122 : No) には、 このステップ S 21 22の処理を繰り返して待機する。
一方、 認証情報を印刷クライアント 20から受信した場合 (ステップ S 21 2
2 : Ye s) には、 その認証情報がこのプリンタ 30に予め登録してある認証情 報と一致するかどうかを判断する (ステップ S 2 1 24) 。 具体的には、 上述し たように、 印刷クライアント 20から印刷クライアント I Dとパスヮードが認証 情報として送信されてくるので、 この印刷クライアント IDとパスワードが、 こ のプリンタ 30に予め登録されている印刷クライアント I Dとパスヮードと一致 するかどうかを判断する。
認証情報が一致しなかった場合 (ステップ S 2 1 24 : No) には、 プリンタ
30は印刷クライアント 20に、 認証が受け入れられなかった旨の認証結果を送 信し (ステップ S 21 26) 、 ステップ S 21 22の処理に戻る。 一方、 認証が 一致した場合 (ステップ S 21 24 : Y e s ) には、 プリンタ 30は印刷クライ アント 20に、 認証が受け入れられた旨の認証結果を送信する (ステップ S 21
28)
次に、 プリンタ 30は、 印刷クライアント 20から公開鍵取得要求を受信した かどうかを判断する (ステップ S 2 1 30) 。 この公開鍵取得要求を受信してい ない場合 (ステップ S 2 130 : No) には、 このステップ S 2130の処理を 繰り返して待機する。
—方、 印刷クライアント 20から公開鍵取得要求を受信した場合 (ステップ S 21 30 : Ye s) には、 プリンタ 30は、 このプリンタ 30の機器固有情報を 取得する (ステップ S 2132) 。 ここで、 機器固有情報とは、 このプリンタ 3 0に関して、 固有に割り当てられている識別情報であり、 例えば、 プリンタ 3 0 の製造シリアルナンバー、 MA Cアドレス等がある。
次に、 図 3 3に示すように、 プリンタ 3 0は、 位置検出部 5 4から、 その時点 におけるプリンタ 3 0のプリンタ位置情報を取得する (ステップ S 2 1 4 0 ) 。 このようにプリンタ位置情報をその都度、 位置検出部 5 4から取得することとし ているのは、 プリンタ 3 0が別の場所に移動された場合には、 その移動後の位置 情報を用いて公開鍵を生成するようにするためである。
次に、 プリンタ 3 0は、 機器固有情報とプリンタ位置情報とを用いてパスフレ ーズを作成する (ステップ S 2 1 4 2 ) 。 このパスフレーズの作成手法は種々の ものが考えられるが、 本実施形態においては、 単純に機器固有情報の後ろにプリ ンタ位置情報をつなげることにより、 パスフレーズを作成する。 なお、 パスフレ ーズは、 これら機器固有情報及びプリンタ位置情報以外のデータを含んでいても よい。
次に、 プリンタ 3 0は、 乱数を生成する (ステップ S 2 1 4 4 ) 。 続いて、 プ リンタ 3 0は、 ステップ S 2 1 4 2で作成したパスフレーズと、 ステップ S 2 1 4 4で生成した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密鍵とを生成 する (ステップ S 2 1 4 6 ) 。 公開鍵暗号法では、 使用するパスフレーズと乱数 が同じであれば、 再び、 公開鍵と秘密鍵とを生成しても、 同じものが生成される という性質を有している。 続いて、 プリンタ 3 0は、 この生成した公開鍵と秘密 鍵のうち公開鍵と、 この公開鍵と秘密鍵を生成する際に使用した乱数とを印刷ク ライアント 2 0に送信する (ステップ S 2 1 4 8 ) 。 なお、 秘密鍵は保存される ことなく破棄される。 これにより、 本実施形態に係る公開鍵送信処理が終了する。 次に、 印刷クライアント 2 0、 2 2が印刷を行いたいときに、 その印刷要求を プリンタ 3 0、 3 2に送信する場合の印刷クライアント 2 0、 2 2及びプリンタ 3 0、 3 2の処理について、 詳しく説明する。
図 3 4は、 印刷クライアント 2 0、 2 2で実行される印刷要求処理を説明する フローチャートである。 この印刷要求処理は、 印刷クライアントの R OM 6 8又 はハードディスク 7 6に格納されている印刷要求プログラムを C P U 6 4が読み 込んで実行することにより実現される処理である。 本実施形態においては、 この 印刷要求処理は、 ユーザが印刷クライアントに印刷指示を入力した場合に、 起動 され、 実行される処理である。
ここでは、 印刷クライアント 20からプリンタ 30に印刷を要求する場合を想 定して説明する。
この図 34に示すように、 印刷クライアント 20は、 ユーザの印刷要求に基づ いて、 印刷データ DO 5を作成する (ステップ S 2160) 。 この印刷データ D 05は、 プリンタ 30が通常のプリンタである場合に、 印刷を実際に行うのに必 要となるデータである。
次に、 印刷クライアント 20は、 ハードディスク 76の公開鍵テーブル TB 2 10力ゝら、 プリンタ 30の公開鍵と、 この公開鍵を生成する際に使用した乱数を 読み出す (ステップ S 2162) 。 続いて、 印刷クライアント 20は、 プリンタ 30の公開鍵を用いて、 印刷データ D 05を暗号化して、 暗号化印刷データを生 成する (ステップ S 2164) 。
次に、 印刷クライアント 20は、 生成した暗号化印刷データに、 ステップ S 2 1 62で読み出した乱数を付加して、 印刷送信用データ D 10を生成する (ステ ップ S 216 5) 。 なお、 印刷送信用データ D 1 0は、 これら印刷データ及び乱 数以外のデータを含んでいてもよい。
次に、 印刷クライアント 20は、 この生成した印刷送信用データ D 10を、 プ リンタ 30に送信する (ステップ S 2166) 。 具体的には、 プリンタ 30のネ ットワークァドレスを指定して、 ネットワーク 1 0に印刷送信用データ D 10を 送出する。
次に、 印刷クライアント 20は、 プリンタ 30から印刷結果情報を受信したか どうかを判断する (ステップ S 21 68) 。 印刷結果情報を受信していない場合
(ステップ S 2168 : N o) には、 このステップ S 2168の処理を繰り返し て待機する。 一方、 印刷結果情報を受信した場合 (ステップ S 21 6 8 : Y e s) には、 その印刷結果情報が印刷完了通知であるかどうかを判断する (ステツ プ S 21 70) 。
この印刷結果情報が印刷完了通知である場合 (ステップ S 2170 : Y e s) には、 プリンタ 30で印刷が正常に終了したことを意味しているので、 ユーザに プリンタ 30で印刷が完了した旨を通知する (ステップ S 21 72) 。 一方、 受 信した印刷結果情報が印刷完了通知でない場合 (ステップ S 21 70 : No) に は、 その印刷結果情報が解読不能通知であるかどうかを判断する.(ステップ S 2 174) 。
印刷結果情報が解読不能通知である場合 (ステップ S 21 74 : Ye s) には、 ユーザに、 プリンタ 30で印刷送信用データ D 10の復号ができなかったため、 印刷が行われなかった旨を通知する (ステップ S 21 76) 。 一方、 印刷結果情 報が解読不能通知でない場合 (ステップ S 21 74 : No) には、 その他の何ら かのエラーであると考えられるので、 ユーザに、 そのエラーの種類に応じた通知 を行う (ステップ S 21 78) 。
これらステップ S 21 72、 ステップ S 2 1 76、 及び、 ステップ S 2 1 78 の通知により、 この印刷クライアント 20における印刷要求処理は終了する。 次に、 図 35に基づいて、 印刷クライアント 20、 22の印刷要求処理に対応 して、 プリンタ 30、 32で実行される印刷実行処理について説明する。 図 35 は、 プリンタ 30、 32で実行される印刷実行処理を説明するフローチヤ一トで ある。 この印刷実行処理は、 プリンタ 30、 32の ROM 44又はハードデイス ク 58に格納されている印刷実行プログラムを C PU 40が読み込んで実行する ことにより実現される処理である。 本実施形態においては、 この印刷実行処理は、 所定の時間間隔で定常的に実行されている処理である。
ここでも上述と同様に、 印刷クライアント 20からプリンタ 30に印刷が要求 された場合を想定して説明する。 .
図 35に示すように、 プリンタ 30は、 印刷送信用データ D 10をネットヮー ク 10から受信したかどうかを判断する (ステップ S 2180) 。 何ら印刷送信 用データ D 1 0を受信していない場合 (ステップ S 2 180 : No) には、 この ステップ S 2180の処理を繰り返して待機する。
一方、 印刷送信用データ D 1 0を受信した場合 (ステップ S 21 80 : Y e s) には、 プリンタ 30は自らの機器固有情報を取得する (ステップ S 21 8 2) 。 続いて、 プリンタ 30は、 位置検出部 54から、 その時点におけるプリン タ 30のプリンタ位置情報を取得する (ステップ S 2184) 。 このようにプリ ンタ位置情報を、 その都度、 位置検出部 54から取得することとしているのは、 プリンタ 30が別の場所に移動された場合には、 このプリンタ 30がユーザの意 図しない場所に設置されている可能性があり、 このような場合にはプリンタ 30 で印刷が行われないようにするためである。
次に、 プリンタ 30は、 機器固有情報とプリンタ位置情報とに基づいて、 パス フレーズを作成する (ステップ S 2 186) 。 このパスフレーズの作成手法は、 上述した公開鍵送信処理におけるステップ S 2142と同じ手法である必要があ る。 なぜなら、 パスフレーズが異なると、 印刷クライアントに送信した公開鍵で 暗号化された暗号化印刷データを、 秘密键で復号できなくなつてしまうからであ る。 ·
次に、 プリンタ 30は、 印刷送信用データ D 1 0に含まれている乱数を取得す る (ステップ S 2188) 。 続いて、 プリンタ 30は、 生成したパスフレーズと 取得した乱数とを用いて、 公開鍵喑号法により公開鍵と秘密鍵とを生成する (ス テツプ S 21 90) 。 このステップ S 21 90で使用するパスフレーズは、 プリ ンタ 30の設置位置が移動されていなければ、 上述した公開鍵送信処理における ステップ S 2146で使用したパスフレーズと同じである。 また、 ステップ S 2 1 90で使用する乱数も、 ステップ S 2146で使用した乱数と同じはずである。 このため、 ステップ S 2 146で生成したものと同じ公開鍵と秘密鍵が生成され る。 続いて、 プリンタ 30は、 生成された秘密鍵を用いて、 印刷送信用データ D 10に含まれている暗号化印刷データを復号して、 印刷データ D 05を取得する (ステップ S 2 1 92) 。
次に、 プリンタ 30は、 秘密鍵を用いて暗号化印刷データの復号ができたかど うかを判断する (ステップ S 21 94) 。 復号ができた場合 (ステップ S 21 9 4 : Y e s ) には、 得られた印刷データ D 05に基づいて、 印刷エンジン 52を 駆動した印刷を実行する (ステップ S 21 96) 。 具体的には、 印刷データ DO 5の言語解釈を行い、 印刷エンジン 52に適合した印刷要求データを生成する。 そして、 この印刷要求データを印刷エンジン 52に送信することにより、 印刷工
2で印刷用紙等に印刷が行われる。
.のことから分かるように、 本実施形態においては、 位置検出部 54で検出し たプリンタ位置情報を少なくとも含むパスフレーズと、 暗号化印刷データに付随 して送信された乱数とを用いて秘密鍵を生成し、 この秘密鍵で暗号化印刷データ が復号できた場合には、 この暗号化印刷データがプリンタ位置情報と合致したと 判断することとなる。
この印刷が正常に完了した時点で、 プリンタ 3 0は、 印刷が正常に終了した旨 の印刷完了通知を、 印刷結果情報として、 印刷クライアント 2 0に送信する (ス テツプ S 2 1 9 8 ) 。 そして、 上述したステップ S 2 1 8 0の処理に戻る。
これに対して、 ステップ S 2 1 9 4において、 暗号化印刷データの復号ができ なかったと判断した場合 (ステップ S 2 1 9 4 : N o ) には、 解読不能通知を印 刷結果情報として、 印刷クライアント 2 0に送信する (ステップ S 2 2 0 0 ) 。 すなわち、 本実施形態においては、 f立置検出部 5 4で検出したプリンタ位置情報 を少なくとも含むパスフレーズと、 暗号化印刷データに付随して送信された乱数 とを用いて秘密鍵を生成し、 この秘密鍵で暗号化印刷データが復号できなかった 場合には、 この暗号化印刷データがプリンタ位置情報と合致しなかった判断する こととなる。 そして、 上述したステップ S 2 1 8 0の処理に戻る。
以上のように、 本実施形態に係る印刷システムによれば、 印刷クライアント 2 0、 2 2は、 暗号化して送信した暗号化印刷データの印刷をできるプリンタを、 プリンタ位置情報に基づいて限定することができるので、 印刷クライアント 2 0、 2 2のユーザが意図していない位置にあるプリンタで印刷が行われしまうのを回 避することができる。 例えば、 プリンタ 3 0が別の場所に移動されたが、 ネット ワーク 1 0内におけるプリンタ 3 0のトワークァドレスは変更されていなレヽ場合 に、 印刷クライアント 2 0から誤って暗号化印刷データを含む印刷送信用データ D 1 0をこのプリンタ 3 0に送信してしまっても、 プリンタ 3 0ではプリンタ位 置情報が変更されているため、 ステップ S 2 1 8 6で作成されるパスフレーズが 移動前と異なったものになる。 このため、 このパスフレーズを用いて生成された 秘密鍵を用いても、 印刷送信用データ D 1 0に含まれている暗号化印刷データの 復号はできず、 プリンタ 3 0では印刷が行われない。 このため、 印刷データ D O 5のセキュリティを高めることができる。
一方、 プリンタ 3 0、 3 2側においても、 本来であればこのプリンタ 3 0、 3 2で印刷する権限のない者が、 印刷データをこれらプリンタ 3 0、 3 2に送信し て、 大量の印刷をプリンタ 3 0、 3 2に実行させてしまうのを回避することがで きる。 例えば、 何らかの理由で、 プリンタ 3 0のネットワークアドレスを第三者 が知得して、 このプリンタ 3 0に印刷データを送信しょうとしても、 このプリン タ 3 0の公開鍵を取得することができない。 もし、 このュ ザが異なる公開鍵で 印刷データ D 0 5を暗号化して、 暗号化印刷データを含む印刷送信用データ D 1 0を生成したり、 暗号化していない印刷データを含む印刷送信用データ D 1 0を 生成したりして、 プリンタ 3 0に印刷送信用データ D 1 0を送信したとしても、 印刷実行処理のステップ S 2 1 9 4で復号できないと判断されるので、 プリンタ 3 0に印刷を実行させることができなくなる。 このため、 プリンタ 3 0自体のセ キユリティを高めることができる。
また、 本実施形態においては、 パスフレーズに機器固有情報も含めることとし たので、 何らかの理由により第三者が、 プリンタ 3 0の位置を知得したとしても、 プリンタ 3 0の機器固有情報が分からなければ、 プリンタ 3 0で使用されている パスフレーズを特定することができない。 このため、 第三者がこのプリンタ 3 0 になりすまして印刷送信用データ D 1 0を受信し、 この印刷送信用データ D 1 0 に含まれている暗号化印刷データを復号することを、 極めて困難なものにするこ とができる。
また、 この乱数は、 各印刷クライアント 2 0、 2 2毎に生成して、 各印刷クラ イアント 2 0、 2 2が、 この乱数を公開鍵とともにハードディスクなどの書き換, え可能な不揮発性記憶装置に保持しておくこととした。 そして、 印刷クライアン ト 2 0、 2 2は、 印刷データを暗号化した暗号化印刷データとともに、 この乱数 をプリンタ 3 0、 3 2に送信することとしたので、 プリンタ 3 0、 3 2は、 その 公開鍵を生成した際に使用した乱数と同じものを、 秘密鍵を生成する際にも使用 することができる。 このため、 この乱数を使用して生成した公開鍵で暗号化され た暗号化印刷データを復号できる秘密鍵を、 再び生成することができる。
〔第 6実施形態〕
本発明の第 6実施形態は、 印刷クライアント 2 0、 2 2が、 プリンタ毎、 且つ、 ユーザ毎に、 公開鍵とこの公開鍵を生成する際に使用した乱数とを保持するよう にしたものである。 そして、 これにより、 第三者による乱数の推測がより一層困 難になるようにしたものである。 より詳しくを、 以下に説明する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。 また、 本実 施形態に係るプリンタ 3 0、 3 2が実行する公開鍵送信処理、 印刷実行処理も、 上述した第 5実施形態と同様である。
図 3 6は、 本実施形態に係る印刷クライアント 2 0、 2 2が実行する公開鍵要 求処理の一部を説明するフローチャートを示す図であり、 上述した第 5実施形態 における図 3 0に対応する図である。
この図 3 6に示すように、 本実施形態に係る公開鍵要求処理は、 ステップ S 2 1 0 8に示す公開鍵及び乱数の受信処理までは、 上述した第 5実施形態の処理と 同様であるが、 次のステップ S 2 3 0 0の処理が異なる。 すなわち、 本実施形態 に係る印刷クライアント 2 0は、 公開鍵と乱数とを受信した場合 (ステップ S 2 1 0 8 : Y e s ) には、 この公開鍵と乱数を、 プリンタ毎に、 且つ、 ユーザ毎に 区分して、 公開鍵テーブル T B 2 2 0に格納する。
図 3 7は、 本実施形態に係る公開鍵テーブル T B 2 2 0の一例を示す図である。 この図 3 7に示すように、 本実施形態における公開鍵テーブル T B 2 2 0は、 上 述した第 5実施形態における公開鍵テーブル T B 2 1 0に加えて、 データ項目と して、 ユーザ I Dを格納する項目 T D 2 0を備えている。 すなわち、 本実施形態 においては、 印刷クライアント 2 0は、 ユーザ I D毎に、 公開鍵と乱数を格納す ることとしている。 また、 本実施形態の公開鍵テーブル T B 2 2 0においては、 プリンタ毎にテーブルが形成されている。 このため、 同一のユーザ I Dであって も、 プリンタが異なれば、 異なる公開鍵と乱数とを保持することができるように なる。
これら公開鍵と乱数とを、 公開鍵テーブル T B 2 2 0に格納することにより、 本実施形態に係る公開鍵要求処理は、 終了する。
次に、 図 3 8に基づいて、 本実施形態に係る印刷クライアント 2 0、 2 2が実 行する印刷要求処理を説明する。 この図 3 8は、 本実施形態に係る印刷クライア ント 2 0、 2 2が実行する印刷要求処理を説明するフローチャートである。
この図 3 8に示すように、 本実施形態に係る印刷要求処理は、 公開鍵と乱数と を読み出す処理が、 上述した第 5実施形態と異なる。 すなわち、 ステップ S 2 1 6 0で印刷データ D 0 5を生成した後、 印刷クライアント 2 0は、 ユーザ I Dを 取得する (ステップ S 2 3 1 0 ) 。 すなわち、 プリンタ 3 0に印刷を指示したュ 一ザのユーザ I Dを取得する。 このユーザ I Dは、 例えば、 印刷クライアント 2 0が印刷指示を入力された際に、 ユーザに対して入力を要求してもよいし、 或い は、 印刷クライアント 2 0をユーザが使用する際に認証としてユーザに入力を要 求してもよい。
次に、 印刷クライアント 2 0は、 図 3 7の公開鍵テーブル T B 2 2 0から、 印 刷を要求するプリンタのテーブルに、 そのユーザ I Dで格納されている公開鍵と 乱数とを読み出す (ステップ S 2 3 1 2 ) 。 すなわち、 本実施形態の公開鍵テー ブル T B 2 2 0においては、 プリンタ毎にテーブルが構成されているので、 ステ ップ S 2 1 6 0で生成した印刷データ D 0 5を印刷するプリンタのテーブルにお いて、 このユーザ I Dで登録されている公開鍵と乱数とを読み出す。 これ以降の 処理は、 上述した第 5実施形態と同様である。
以上のように、 本実施形態に係る印刷システムによっても、 上述した第 5実施 形態と同様の効果を得ることができる。 さらに、 本実施形態に係る印刷システム によれば、 印刷クライアント 2 0、 2 2は、 プリンタ毎、 且つ、 ユーザ毎に公開 鍵と乱数を保持することとしたので、 第三者がこの乱数を推測することを極めて 困難なものにすることができる。
〔第 7実施形態〕
本発明の一実施形態に係る印刷システムは、 印刷ジョブ毎に乱数を生成し、 こ の生成した乱数と、 プリンタが設置されている位置を表すプリンタ位置情報を少 なくとも含むパスフレーズとを用いて公開鍵を生成し、 この公開鍵と乱数とをプ リンタから印刷クライアントに送信する。 印刷クライアントは、 この公開鍵を用 いて印刷ジョブデータを暗号化して暗号化印刷ジョブデータを生成するとともに、 この暗号化印刷ジョブデータに、 プリンタから送信された乱数を付加して、 印刷 送信用データを生成する。 そして、 印刷クライアントは、 この印刷送信用データ をプリンタに送信する。 この印刷送信用データを受信したプリンタでは、 受信時 に再度、 その時点におけるプリンタ位置情報を少なくとも含むパスフレーズと、 印刷送信用データに含まれていた乱数とを用いて秘密鍵を生成し、 この秘密鍵で 暗号化印刷ジョブデータが復号できた場合にのみ印刷を実行するようにしたもの である。 より詳し'くを、 以下に説明する。
なお、 本実施形態に係る印刷システムの構成は、 上述した第 1実施形態におけ る図 1と同様であり、 プリンタ 3 0、 3 2の構成は、 上述した図 2と同様であり、 印刷クライアント 2 0、 2 2の構成は、 上述した図 3と同様である。
次に、 本実施形態に係る印刷システムにおいて、 例えば、 印刷クライアント 2 0がプリンタ 3 0で印刷を行う場合の処理を、 概略的に説明する。
この場合、 まず印刷クライアント 2 0は、 プリンタ 3 0から公開鍵とこの公開 鍵を生成する際に使用した乱数を取得する。 本実施形態においては、 この公開鍵 と乱数の取得は、 ネットワーク 1 0を介して印刷ジョブ毎に行われる。 すなわち、 プリンタ 3 0は、 公開鍵の送信を要求してきた印刷クライアント 2 0が正当な権 限を有しているかどうかを確認し、 正当な権限を有する場合にのみ、 新たに生成 した公開鍵と、 この公開鏈を生成する際に使用した乱数とを、 印刷クライアント 2 0に送信する。 す.なわち、 プリンタ 3 0は、 プリンタ 3 0の設置されている位 置を示すプリンタ位置情報を少なくとも含むパスフレーズと、 このプリンタ 3 0 が印刷ジョブ毎に生成した乱数とを用いて、 公開鍵暗号法により、 公開鍵を生成 する。 プリンタ 3 0では、 この公開鍵を生成する際に使用した乱数を保持してお く必要はないので、 破棄する。
また、 この際、 生成された秘密鍵も破棄する。 すなわち、 一般的な公開鍵暗号 法では、 公開鍵と秘密鍵は、 同時に生成される。 このため、 本実施形態において は、 公開鍵を生成する際に付随して秘密鍵が生成された場合でも、 この秘密鍵を 破棄することとしている。 そしてこれにより、 このプリンタ 3 0の生成した秘密 鍵が漏洩する可能性を可及的に低くしている。
次に、 印刷クライアント 2 0のユーザは、 図 2 9に示すように、 印刷するべき データを作成し、 印刷クライアント 2 0に対してプリンタ 3 0を指定して印刷を
I
指示する。 印刷クライアント 2 0は、 印刷すべきデータに基づいて、 印刷ジョブ データ D O 5を生成する。 ここで、 印刷ジョブデータ D O 5は、 プリンタ 3 0で 印刷エンジン 5 2を駆動した印刷を行うのに必要となる本来の印刷データを示し ている。
印刷クライアント 2 0は、 印刷ジョ データ D O 5を、 先に取得したプリンタ 3 0の公開鍵を用いて暗号化し、 暗号化印刷ジョブデータを生成する。 そして、 印刷クライアント 2 0は、 この暗号化印刷ジョブデータに、 同じくプリンタ 3 0 から取得した乱数を付加して、 印刷送信用データ D 1 0を生成する。 なお、 印刷 送信用データ D 1 0は、 この図 2 9に示した暗号化印刷データと乱数以外のデー タを含んでいてもよい。
この印刷送信用データ D 1◦を受信したプリンタ 3 0は、 図 2に示すように、 この受信した印刷送信用データ D 1 0を R AM 4 2に一旦格納する。 そして、 プ リンタ 3 0は、 この印刷送信用データ D 1 0に含まれている暗号化印刷ジョブデ ータを、 秘密鍵を用いて復号する。 すなわち、 プリンタ 3 0は、 プリンタ位置情 報を少なくとも含むパスフレーズと、 この印刷送信用データ D 1 0に含まれてい る乱数とを用いて、 公開鍵暗号法により、 秘密鍵を生成する。 そして、 この秘密 で印刷送信用データ D 1 0に含まれている暗号化印刷ジョブデータを復号する。 続いて、 プリンタ 3 0は、 暗号化印刷ジョブデータが復号できたかどうかを判 断する。 暗号化印刷ジョブデータの復号ができた場合には、 暗号化印刷ジョブデ ータを復号することにより取得した印刷ジョブデータ D 0 5に基づいて印刷を行 レ、、 復号できなかった場合には、 印刷は行わない。
次に、 上述した処理の内容について、 フローチャートを用いて詳しく説明する。 まず、 印刷クライアント 2 0、 2 2がプリンタ 3 0、 3 2に印刷を要求する場合 の処理である印刷要求処理を説明する。
図 3 9及ぴ図 4 0は、 印刷クライアント 2 0、 2 2で実行される印刷要求処理 を説明するフローチャートである。 この印刷要求処理は、 印刷クライアントの R OM 6 8又はハードディスク 7 6に格納されている印刷要求プログラムを C P U 6 4が読み込んで実行することにより実現される処理である。 また、 本実施形態 においては、 この印刷要求処理は、 ユーザが印刷クライアント 20、 22に、 印 刷を実行するように指示入力した場合に、 起動され、 実行される処理である。 なお、 以下においては、 印刷クライアント 20からプリンタ 30に印刷を要求 する場合を想定して、 処理を説明する。
図 39に示すように、 この印刷要求処理においては、 まず印刷クライアント 2 0は、 プリンタ 30にネットワーク 10を介して接続要求を送信する (ステップ S 3100) 。 そして、 印刷クライアント 20とプリンタ 30との間のコネクシ ョンを確立する (ステップ S 3 102) 。 本実施形態においては、 S S L (Secu re Socket Layer) 通信などにより、 セキュリティーを確保した上で、 印刷クラ イアント 20とプリンタ 30との間のコネクションを確立する。
次に、 印刷クライアント 20は、 プリンタ 30へ認証情報を送信する (ステツ プ S 3 104) 。 本実施形態においては、 この認証情報として、 印刷クライアン トを特定するための印刷クライアント I Dと、 パスヮードとの組み合わせを用い ている。 したがって、 印刷クライアント 20は、 印刷クライアント I Dとパスヮ ードとを、 プリンタ 30へ送信する。
これに続いて、 印刷クライアント 20は、 プリンタ 30から認証が受け入れら れたか否かを示す認証結果を受信するので、 この認証結果に基づいて、 プリンタ 30で認証が認められたかどうかを判断する (ステップ S 3 106) 。 認証が認 められなかった場合 (ステップ S 3 106 : No) には、 上述したステップ S 3 104からを繰り返す。
一方、 認証が認められた場合 (ステップ S 3 106 : Y e s ) には、 印刷クラ イアント 20は、 公開鍵取得要求をプリンタ 30へ送信する (ステップ S 310 8) 。 そして、 プリンタ 30から公開鍵と、 この公開鍵を生成する際に使用した 乱数とを受信したかどうかを判断する (ステップ S 3 1 10) 。 プリンタ 30か ら公開鍵と乱数とを受信していない場合 (ステップ S 31 10 : No) には、 こ のステップ S 3 1 10を繰り返して待機する。
一方、 プリンタ 30から公開鍵と乱数を受信した場合 (ステップ S 3 1 10 : Ye s) には、 この公開鍵と乱数を格納する (ステップ S 3 1 12) 。 本実施形 態においては、 印刷クライアント 20は、 RAM66 (図 3参照) にこの公開鍵 と乱数を一時的に格納し保持する。 このように RAM66に公開鍵と乱数を格納 することにより、 印刷クライアント 20の電源がオフされた場合には、 自動的に、 公開鍵と乱数が消去されるので、 公開鍵と乱数の秘密性を高めることができるよ うになっている。
次に、 プリンタ 30は、 プリンタとのコネクションを解放する (ステップ S 3 1 14) 。 すなわち、 S S L通信等によりセキュリティを確保した状態で、 この 印刷クライアント 20とプリンタ 30との間に確立されているコネクションを、 解放する。 このコネクションの解放は、 必ずしも必要な処理ではないが、 後述す るステップ S 3 1 26で送信する印刷ジョブデータ D 05は公開鍵により別途暗 号化されており、 これ以降の処理でコネクション自体のセキュリティを確保する 必要性に乏しいため、 本実施形態ではコネクションを解放することとしている。 次に、 図 40に示すように、 印刷クライアント 20は、 ユーザの印刷要求に基 づいて、 印刷ジョブデータ D 05を作成する (ステップ S 3 1 20) 。 この印刷 ジョプデータ D 05は、 プリンタ 30で印刷を実行するのに必要となる、 暗号化 されていないデータである。
次に、 印刷クライアント 20は、 RAM66から、 ステップ S 31 1 2で格納 した公開鍵と乱数とを読み出す (ステップ S 3 1 22) 。 続いて、 印刷クライァ ント 20は、 この公開鍵を用いて、 印刷ジョブデータ D 05を暗号化して、 暗号 化印刷ジョブデータを生成する (ステップ S 3 1 24) 。
次に、 印刷クライアント.20は、 ステップ S 3 1 24で生成した暗号化印刷ジ ヨブデータに、 ステップ S 31 22で読み出した乱数を付加して、 印刷送信用デ ータ D 10を生成する (ステップ S 3 125) 。 なお、 印刷送信用データ D 10 は、 これら暗号化印刷ジョブデータ及び乱数以外のデータを含んでいてもよい。 次に、 印刷クライアント 20は、 この印刷送信用データ D 10を、 プリンタ 3 0に送信する (ステップ S 31 26) 。 具体的には、 プリンタ 30のネットヮー クア ドレスを指定して、 ネットワーク 10に印刷送信用データ D 10を送出する。 次に、 印刷クライアント 20は、 プリンタ 30から印刷結果情報を受信したか どうかを判断する (ステップ S 3 1 28) 。 印刷結果情報を受信していない場合 (ステップ S 3128 : No) には、 このステップ S 31 28の処理を繰り返し て待機する。 一方、 印刷結果情報を受信した場合 (ステップ S 31 28 : Y e s) には、 その印刷結果情報が印刷完了通知であるかどうかを判断する (ステツ プ S 31 30) 。
この印刷結果情報が印刷完了通知である場合 (ステップ S 31 30 : Y e s) には、 プリンタ 30で印刷が正常に終了したことを意味しているので、 ユーザに プリンタ 30で印刷が完了した旨を通知する (ステップ S 3 132) 。 一方、 受 信した印刷結果情報が印刷完了通知でない場合 (ステップ S 31 30 : N o ) に は、 その印刷結果情報が解読不能通知であるかどうかを判断する (ステップ S 3 134) 。
印刷結果情報が解読不能通知である場合 (ステップ S 31 34 : Ye s) には、 ユーザに、 プリンタ 30で印刷送信用データ D 1 0の復号ができなかったため、 印刷が行われなかった旨を通知する (ステップ S 3 1 36) 。 一方、 印刷結果情 報が解読不能通知でない場合 (ステップ S 3 1 34 : No) には、 その他の何ら かのエラーであると考えられるので、 ユーザに、 そのエラーの種類に応じた通知 を行う (ステップ S 31 38) 。
これらステップ S 3 1 32、 ステップ S 3 1 36、 及び、 ステップ S 3 1 38 の通知の後、 印刷クライアント 20は、 ステップ S 3 1 12で RAM 66に格納 した公開鍵と乱数を削除する (ステップ S 3 140) 。 このステップ S 3 140 の処理は、 必ずしも必要な処理ではないが、 公開鍵と乱数の秘密性を向上させる ために、 本実施形態においては、 1つの印刷ジョブの処理が終了する度に、 取得 した公開鍵と乱数とを削除して破棄することとしている。 これにより、 この印刷 クライアント 20における印刷要求処理は終了する。
次に、 図 4 1乃至図 43に基づいて、 印刷クライアント 20、 22の印刷要求 処理に対応して、 プリンタ 30、 32で実行される印刷実行処理について説明す る。 この図 41乃至図 43は、 プリンタ 30、 32で実行される印刷実行処理を 説明するフローチャートである。 この印刷実行処理は、 プリンタの ROM44又 はハードディスク 58に格納されている印刷実行プログラムを CPU40が読み 込んで実行することにより実現される処理である。 また、 この印刷実行処理は、 所定の時間間隔で定常的に実行されている処理である。 ここでも上述と同様に、 印刷クライアント 20からプリンタ 30に印刷が要求 された場合を想定して説明する。
図 41に示すように、 まず、 プリンタ 30は、 印刷クライアント 20から、 ネ ットワーク 10を介して接続要求を受信したかどうかを判断する (ステップ S 3
200) 。 印刷クライアント 20から接続要求を受信していない場合 (ステップ S 3200 : N o) には、 このステップ S 3200の処理を繰り返して待機する。 そして、 上述したように、 S S L通信等によりセキュリティを確保した上で、 プ リンタ 30と印刷クライアント 20との間のコネクションを確立する (ステップ S 3202) 。
次に、 プリンタ 30は、 印刷クライアント 20から認証情報を受信したかどう かを判断する (ステップ S 3204) 。 認証情報を受信していない場合 (ステツ プ S 3204 : No) には、 このステップ S 3204の処理を繰り返して待機す る。
一方、 認証情報を印刷クライアント 20から受信した場合 (ステップ S 320 4 : Ye s) には、 その認証情報がこのプリンタ 30に予め登録してある認証情 報と一致するかどうかを判断する (ステップ S 3 206) 。 具体的には、 上述し たように、 印刷クライアント 20から印刷クライアント I Dとパスヮードが認証 情報として送信されてくるので、 この印刷クライアント I Dとパスヮードが、 予 めプリンタ 30のハードディスク 5 8等に登録されている印刷クライアント I D とパスヮードと一致するかどうかを判断する。
認証情報が一致しなかった場合 (ステップ S 3 206 : No) には、 プリンタ
30は印刷クライアント 20に、 認証が受け入れられなかった旨の認証結果を送 信し (ステップ S 3208) 、 ステップ S 3204の処理に戻る。 一方、 認証が 一致した場合 (ステップ S 3206 : Ye s) には、 プリンタ 30は印刷クライ アント 20に、 認証が受け入れられた旨の認証結果を送信する (ステップ S 32 10) 。
次に、 プリンタ 30は、 印刷クライアント 20から公開鍵取得要求を受信した かどうかを判断する (ステップ S 3 212) 。 この公開鍵取得要求を受信してい ない場合 (ステップ S 321 2 : N o) には、 このステップ S 321 2の処理を 繰り返して待機する。
一方、 印刷クライアント 2 0から公開鍵取得要求を受信した場合 (ステップ S 3 2 1 2 : Y e s ) には、 プリンタ 3 0は、 このプリンタ 3 0の機器固有情報を 取得する (ステップ S 3 2 1 4 ) 。 ここで、 機器固有情報とは、 このプリンタ 3 0に関して、 固有に割り当てられている識別情報であり、 例えば、 プリンタ 3 0 の製造シリアルナンバー、 MA Cァドレス等がある。
次に、 図 4 2に示すように、 プリンタ 3 0は、 位置検出部 5 4から、 その時点 におけるプリンタ 3 0のプリンタ位置情報を取得する (ステップ S 3 2 2 0 ) 。 このようにプリンタ位置情報をその都度、 位置検出部 5 4から取得することとし ているのは、 プリンタ 3 0が別の場所に移動された場合には、 その移動後の位置 情報を用いて公開鍵を生成するようにするためである。
次に、 プリンタ 3 0は、 機器固有情報とプリンタ位置情報とを用いてパスフレ ーズを作成する (ステップ S 3 2 2 2 ) 。 このパスフレーズの作成手法は種.々の ものが考えられるが、 本実施形態においては、 単純に機器固有情報の後ろにプリ ンタ位置情報をつなげることにより、 パスフレーズを作成する。 なお、 パスフレ ーズは、 これら機器固有情報及びプリンタ位置情報以外のデータを含んでいても よい。
次に、 プリンタ 3 0は、 乱数を 1つ生成する (ステップ S 3 2 2 4 ) 。 続いて、 プリンタ 3 0は、 ステップ S 3 2 2 2で作成したパスフレーズと、 ステップ S 3
2 2 4で生成した乱数とを用いて、 公開鍵暗号法により、 公開鍵と秘密鍵とを生 成する (ステップ S 3 2 2 6 ) 。 公開鍵暗号法では、 使用するパスフレーズと乱 数とが同じであれば、 再び、 公開鍵と秘密鍵とを生成しても、 同じものが生成さ れるという性質を有している。 続いて、 プリンタ 3 0は、 公開鍵と、 この公開鍵 を生成する際に使用した乱数とを印刷クライアント 2 0に送信する (ステップ S
3 2 2 8 ) 。 なお、 公開鍵と乱数とを印刷クライアント 2 0に送信した後に、 こ れら秘密鍵と乱数は保存されることなく破棄される。
次に、 プリンタ 3 0は、 印刷クライアント 2 0との間のコネクションを解放す る (ステップ S 3 2 3 0 ) 。 この処理は、 上述した印刷要求処理のステップ S 3 1 1 4に対応する処理である。 また、 上述したように、 このステップ S 3 2 3 0 の処理は、 必ずしも必要な処理ではない。
次に、 プリンタ 3 0は、 印刷送信用データ D 1 0をネットワーク 1 0から受信 したかどうかを判断する (ステップ S 3 2 3 2 ) 。 何ら印刷送信用データ D 1 0 を受信していない場合 (ステップ S 3 2 3 2 : N o ) には、 このステップ S 3 2 3 2の処理を繰り返して待機する。 一方、 印刷送信用データ D 1 0を受信した場 合 (ステップ S 3 2 3 2 : Y e s ) には、 プリンタ 3 0は自らの機器固有情報を 取得する (ステップ S 3 2 3 4 ) 。
次に、 図 4 3に示すように、 プリンタ 3 0は、 位置検出部 5 4から、 その時点 におけるプリンタ 3 0のプリンタ位置情報を取得する (ステップ S 3 2 4 0 ) 。 このようにプリンタ位置情報を、 その都度、 位置検出部 5 4から取得することと しているのは、 プリンタ 3 0が別の場所に移動された場合には、 その移動後の位 置情報を用いて秘密鍵を生成するようにするためである。
次に、 プリンタ 3 0は、 機器固有情報とプリンタ位置情報とに基づいて、 パス フレーズを作成する (ステップ S 3 2 4 2 ) 。 このパスフレーズの作成手法は、 上述したステップ S 3 2 2 2と同じ手法である必要がある。 なぜなら、 パスフレ ーズが異なると、 印刷クライアントに送信した公開鍵で暗号化された印刷送信用 データ D 1 0を、 秘密鍵で復号できなくなってしまうからである。
次に、 プリンタ 3 0は、 受信した印刷送信用データ D 1 0に含まれている乱数 を取得する (ステップ S 3 2 4 4 ) 。 続いて、 プリンタ 3 0は、 生成したパスフ レーズと取得した乱数とを用いて、 公開鍵暗号法により公開鍵と秘密鍵とを生成 する (ステップ S 3 2 4 6 ) 。 このステップ S 3 2 4 6で使用するパスフレーズ は、 その間にプリンタ 3 0の設置位置が移動されていなければ、 上述したステツ プ S 3 2 2 6で使用したパスフレーズと同じである。 また、 乱数についても、 正 当な印刷クライアント 2 0から送信された印刷送信用データ D 1 0であれば、 上 述したステップ S 3 2 2 6と同じになるはずである。 このため、 このステップ S 3 2 4 6では、 ステップ S 3 2 2 6で生成したものと同じ公開鍵と秘密鍵が生成 される。 続いて、 プリンタ 3 0は、 生成された秘密鍵を用いて、 受信した印刷送 信用データ D 1 0に含まれている暗号化印刷ジョブデータを復号する (ステップ S 3 2 4 8 ) 。 次に、 プリンタ 3 0は、 秘密鍵を用いて暗号化印刷ジョブデータの復号ができ たかどうかを判断する (ステップ S 3 2 5 0 ) 。 復号ができた場合 (ステップ S 3 2 5 0 : Y e s ) には、 暗号化印刷ジョブデータを復号することにより得られ た印刷ジョブデータ D 0 5に基づいて、 印刷エンジン 5 2を駆動した印刷を実行 する (ステップ S 3 2 5 2 ) 。 具体的には、 印刷ジョブデータ D 0 5の言語解釈 を行い、 印刷エンジン 5 2に適合した印刷要求データを生成する。 そして、 この 印刷要求データを印刷エンジン 5 2に送信することにより、 印刷エンジン 5 2で 印刷用紙等に印刷が行われる。
このことから分かるように、 本実施形態においては、 位置検出部 5 4で検出し たプリンタ位置情報を少なくとも含むパスフレーズと、 印刷送信用データ D 1 0 に含まれている乱数とを用いて秘密鍵を生成し、 この秘密鍵で暗号化印刷ジョブ データが復号できた場合には、 暗号化印刷ジョブデータがプリンタ位置情報と合 致したと判断することとなる。
この印刷が正常に完了した時点で、 プリンタ 3 0は、 印刷が正常に終了した旨 の印刷完了通知を、 印刷結果情報として、 印刷クライアント 2 0に送信する (ス テツプ S 3 2 5 4 ) 。
これに対して、 ステップ S 3 2 5 0において、 暗号化印刷ジョブデータの復号 ができなかったと判断した場合 (ステップ S 3 2 5 0 : N o ) には、 解読不能通 知を印刷結果情報として、 印刷クライアント 2 0に送信する (ステップ S 3 2 5 6 ) 。 すなわち、 本実施形態においては、 位置検出部 5 4で検出したプリンタ位 置情報を少なくとも含むパスフレーズと、 印刷送信用データ D 1 0に含まれてい る乱数とを用いて秘密鍵を生成し、 この秘密鍵で暗号化印刷ジョブデータが復号 できなかった場合には、 暗号化印刷ジョブデータがプリンタ位置情報と合致しな かった判断することとなる。
これらステップ S 3 2 5 4又はステップ S 3 2 5 6の処理の後、 プリンタ 3 0 は、 上述した図 4 1のステップ S 3 2 0 0の処理に戻る。
以上のように、 本実施形態に係る印刷システムによれば、 プリンタ 3 0、 3 2 は、 公開鍵暗号法により、 印刷ジョブ毎に異なる乱数を用いて公開鍵と秘密鍵を 生成し、 印刷クライアント 2 0、 2 2に公開鍵と乱数を送信することとしたので、 公開鍵、 秘密鍵、 及び、 乱数のセキュリティを高めることができる。
しかも、 公開鍵と、 この公開鍵を生成する際に使用した乱数とを印刷クライァ ント 2 0に送信し、 プリンタ 3 0側では秘密鍵と乱数を破棄することとしたので、 秘密鍵のセキュリティも高めることができる。 また、 印刷クライアント 2 0、 2 2が乱数を一時的に保持しておき、 暗号化印刷ジョブデータとともにプリンタ 3 0、 3 2にこの乱数をプリンタ 3 0、 3 2に送り返すこととした。 このため、 こ の公開鍵を用いて暗号化された暗号化印刷ジョブデータをプリンタ 3 0、 3 2が 復号する際には、 暗号化印刷ジョブデータとともに送信された乱数を用いて、 再 び、 公開鍵暗号法により、 同じ秘密鍵を生成することができ、 暗号化印刷ジョブ データを復号することができる。
さらに、 プリンタ 3 0、 3 2においては、 この秘密鍵で暗号化印刷ジョブデー タが復号できなかった場合には、 受信した暗号化印刷ジョブデータの印刷を実行 しないようにしたので、 不正な意図を有する第三者が、 このプリンタ 3 0、 3 2 で印刷を実行するのを回避することができる。
なお本発明は上記実施形態に限定されずに種々に変形可能である。 例えば、 上 述した実施形態においては、 公開鍵及び秘密鍵を生成する際に用いる 「所定の 数」 が乱数である場合を例に説明したが、 この所定の数は乱数に限るものではな い。 例えば、 そのプリンタでの第 1回目の公開鍵及び秘密鍵の生成の場合には、 所定の数を 「1」 とし、 第 2回目の公開鍵及び秘密鍵の生成の場合には、 所定の 数を 「2」 とし、 第 3回目の公開鍵及び秘密鍵の生成の場合には、 所定の数を 「3」 とするように、 所定の数に昇順の自然数を用いるようにしてもよい。
また、 所定の数に、 昇順の偶数を用いるようにしてもよいし、 昇順の奇数を用 いるようにしてもよレ、。 換言すれば、 所定のアルゴリズムを用いて、 所定の数を 生成するようにしてもよレ、。
また、 図 4 4乃至図 4 6に示すように、 プリンタ 3 0、 3 2から印刷クライァ ント 2 0、 2 2に所定の数を送信する代わりに、 所定の数を導出する際に用いた アルゴリズム (例えば、 昇順の偶数) と、 そのアルゴリズムを用いて所定の数を 導出するのに必要な付加情報 (例えば、 第 1回目) を送信するようにしてもよレ、。 この場合、 図 4 4に示すように、 印刷クライアント 2 0、 2 2は、 印刷を要求 する際には、 所定の数そのものをプリンタ 3 0、 3 2に送信するようにしてもよ レ、。 この場合、 印刷クライァ.ント 2 0、 2 2は、 プリンタ 3 0、 3 2から受信し たアルゴリズムを特定する情報と、 必要な付加情報とを保持していてもよいし、 或いは、 所定の数を生成して所定の数を保持するようにしてもよい。
また、 図 4 5に示すように、 印刷クライアント 2 0、 2 2は、 印刷を要求する 際に、 アルゴリズムと付加情報と.をプリンタ 3 0、 3 2に送信するようにしても よい。 この場合、 印刷クライアント 2 0、 2 2は、 アルゴリズムを特定する情報 と、 必要な付加情報とを保持することとなる。
さらに、 図 4 6に示すように、 印刷クライアント 2 0、 2 2は、 印刷を要求す る際に、 アルゴリズムを送信せずに、 付加情報だけをプリンタ 3 0、 3 2に送信 するようにしてもよい。 なぜなら、 公開鍵及ぴ秘密鍵を生成する際に用いるアル ゴリズムは、 プリンタ 3 0、 3 2において固定的に定まっている場合もあるから である。
上述した実施形態においては、 セキュリティを確保すべきデータを送信するデ ータ送信装置として印刷クライアントを例示し、 そのデータを受信するデータ受 信装置としてプリンタを例示して、 本発明を説明したが、 データ送受信システム におけるデータ送信装置とデータ受信装置の組み合。わせは、 上記実施形態に限定 されるものではなレ、。
例えば、 データ送受信システムにおけるデータ送信装置が画像撮影用のデジタ ルカメラであり、 データ受信装置がデジタルカメラで撮影した画像データを蓄積 するデータサーバであってもよい。 この場合、 デジタルカメラから送信されるデ ータはデータサーバから受信した公開鍵を用いて暗号化されており、 このデータ を受信したデータサーバでは、 上述した手法により秘密鍵を生成し、 このデータ の復号を行うこととなる。 そして、 受信したデータの復号ができた場合には、 そ のデータを蓄積し、 復号できなかった場合には、 そのデータを蓄積しないことと なる。
また、 データ送受信システムにおけるデータ送信装置がパーソナルコンビユー タであり、 データ受信装置がそのパーソナルコンピュータから送信された画像デ ータを投影するプロジェクタであってもよい。 この場合、 パーソナルコンビユー タから送信されるデータはプロジェクタから受信した公開鍵を用 ヽて暗号化され ており、 このデータを受信したプロジェクタでは、 上述した手法により秘密鏈を 生成し、 このデータの復号を行うこととなる。 そして、 受信したデータの復号が できた場合には、 そのデータを投影し、 復号できなかった場合には、 そのデータ を投影しないこととなる。
さらには、 データ送受信システムにおけるデータ送信装置が音楽等のコンテン ッサーバであり、 データ受信装置がコンテンツサーバから送信された音楽等のコ ンテンッデータの再生装置であってもよい。 この場合、 コンテンツサーバから送 信されるデータは再生装置から受信した公開鍵を用いて暗号化されており、 この データを受信した再生装置では、 上述した手法により秘密鍵を生成し、 このデー タの復号を行うこととなる。 そして、 受信したデータの復号ができた場合には、 そのデータを再生し、 復号できなかった場合には、 そのデータを再生しないこと となる。
また、 上述した実施形態では、 プリンタ 3 0、 3 2の印刷媒体が印刷用紙であ る場合を例に説明したが、 印刷媒体はこれに限るものではなく、 例えば、 O H P シート等の他の印刷媒体であっても本発明を適用することができる。
さらに、 上述の実施形態で説明した各処理については、 これら各処理を実行す るためのプログラムをフレキシブノレディスク、 C D - R OM (Compact Disc-Rea d Only Memory) 、 R OM, メモリカード等の記録媒体に記録して、 記録媒体の 形で頒布することが可能である。 この場合、 このプログラムが記録された記録媒 体を印刷クライアント 2 0、 2 2及び Z又はプリンタ 3 0、 3 2に読み込ませ、 実行させることにより、 上述した実施形態を実現することができる。
また、 印刷クライアント 2 0、 2 2及び/又はプリンタ 3 0、 3 2は、 ォペレ 一ティングシステムや別のアプリケーションプログラム等の他のプログラムを備 える場合がある。 この場合、 印刷クライアント 2 0、 2 2及び/又はプリンタ 3 0、 3 2の備える他のプログラムを活用し、 記録媒体には印刷クライアント 2 0、 2 2及び/又はプリンタ 3 0、 3 2が備えるプログラムの中から、 上述した実施 形態と同等の処理を実現するプログラムを呼び出すような命令を記録するように してもよい。 さらに、 このようなプログラムは、 記録媒体の形ではなく、 ネットワークを通 じて搬送波として頒布することも可能である。 ネットワーク上を搬送波の形で伝 送されたプログラムは、 印刷クライアント 2 0、 2 2及び Z又はプリンタ 3 0、 3 2に取り込まれて、 このプログラムを実行することにより上述した実施形態を 実現することができる。
また、 記録媒体にプログラムを記録する際や、 ネットワーク上を搬送波として 伝送される際に、 プログラムの暗号化や圧縮化がなされている場合がある。 この 場合には、 これら記録媒体や搬送波からプログラムを読み込んだ印刷クライアン ト 2 0、 2 2及び Z又はプリンタ 3 0、 3 2は、 そのプログラムの復号ゃ伸張を 行った上で、 実行する必要がある。

Claims

請 求 の 範 囲
1 . 印刷データを処理するプリンタであって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を取得 する、 プリンタ位置情報取得部と、
前記プリンタ位置情報取得部からプリンタ位置情報を取得し、 これを第 1プリ ンタ位置情報とする、 第 1プリンタ位置情報取得部と、
前記第 1プリンタ位置情報を少なくとも含むパスフレーズと、 所定の数とを用 いて、 公開鍵を生成する、 公開鍵生成部と、
前記公開鍵で暗号化された印刷データを受信する、 印刷データ受信部と、 前記印刷データを受信した際に、 前記プリンタ位置情報取得部からプリンタ位 置情報を取得し、 これを第 2プリンタ位置情報とする、 第 2プリンタ位置情報取 得部と、
前記第 2プリンタ位置情報を少なくとも含むパスフレーズと、 前記所定の数と を用いて、 秘密鏈を生成する、 秘密鍵生成部と、
前記秘密鍵を用いて、 前記印刷データ受信部で受信した前記印刷データを復号 する、 復号部と、
を備えることを特徴とするプリンタ。
2 . 前記公開鍵生成部が公開鍵を生成する際に、 秘密鍵が生成された場合でも、 この秘密鍵は破棄する、 ことを特徴とする請求項 1に記載のプリンタ。
3 . 前記秘密鍵を用いて前記印刷データが復号できた場合には、 前記印刷デー タに基づく印刷を実行し、 前記秘密鍵を用いて前記印刷データが復号できなかつ た場合には、 前記印刷データに基づく印刷を実行しない、 印刷実行部を、 さらに 備えることを特徴とする請求項 2に記載のプリンタ。
4 . 前記公開鍵生成部で用いた前記所定の数を保持する、 所定の数保持部を、 さらに備えることを特徴とする請求項 3に記載のプリンタ。
5 . 印刷クライアントから公開鍵取得要求を受信する、.公開鍵取得要求受信部 と、
前記公開鍵生成部で生成された前記公開鍵を、 前記公開鍵取得要求を送信した 印刷クライアントに送信する、 公開鍵送信部と、
をさらに備えることを特徴とする請求項 4に記載のプリンタ。
6 . 前記所定の数保持部に保持されている所定の数は、 当該プリンタに 1つで ある、 ことを特徴とする請求項 5に記載のプリンタ。
7 . 前記所定の数保持部に保持されている所定の数は、 前記印刷クライアント 毎に 1つである、 ことを特徴とする請求項 5に記載のプリンタ。
8 . 前記公開鍵で暗号化された前記印刷データに加えて、 前記公開鍵で暗号化 されていない印刷クライアント識別情報を受信する、 印刷クライアント識別情報 受信部と、
前記所定の数保持部から、 前記印刷クライアント識別情報に基づいて、 前記印 刷データを送信した印刷クライアントの所定の数を取得する、 所定の数取得部と、 をさらに備えることを特徴とする、 請求項 7に記載のプリンタ。
9 . 前記所定の数保持部に保持されている所定の数は、 ユーザ毎に 1つである、 ことを特徴とする請求項 5に記載のプリンタ。
1 0 . 前記公開鍵で暗号化された前記印刷データに加えて、 前記公開鍵で暗号 化されていないユーザ識別情報を受信する、 ユーザ識別情報受信部と、
前記所定の数保持部から、 前記ユーザ識別情報に基づいて、 前記印刷データを 送信したユーザの所定の数を取得する、 所定の数取得部と、
をさらに備えることを特徴とする、 請求項 9に記載のプリンタ。
1 1 . 前記公開鍵生成部は、 印刷ジョブ毎に印刷クライアントから送信される 公開鍵.取得要求に基づいて所定の数を生成し、 前記公開鍵を生成することを特徴 とする請求項 4に記載のプリンタ。
1 2 . 秘密鏈生成部で前記秘密鍵を生成した後に、 前記所定の数保持部に保持 されている所定の数を削除する、 所定の数削除部を、 さらに備えることを特徴と する請求項 1 1に記載のプリンタ。
1 3 . 前記公開鍵生成部で生成された公開鍵と、 この公開鍵を生成する際に用 いた前記所定の数を印刷クライアントに送信する、 公開鍵所定の数送信部と、 所定の数を印刷クライアントから受信する、 所定の数受信部と、
をさらに備えるとともに、
前記秘密鍵生成部は、 前記第 2プリンタ位置情報を少なくとも含むパスフレー ズと、 前記所定の数受信部で受信した前記所定の数とを用いて、 秘密鍵を生成す る、
ことを特徴とする請求項 3に記載のプリンタ。
1 4 . 印刷クライアントから公開鍵取得要求を受信した場合に、 前記公開鍵生 成部は、 前記公開鍵と前記所定の数とを生成し、 前記公開鍵所定の数送信部は、 前記公開鍵と前記所定の数とを、 この公開鍵取得要求を送信した印刷クライアン トに送信する、 ことを特徴とする請求項 1 3に記載のプリンタ。
1 5 . 前記公開鍵生成部は、 印刷ジョブ毎に印刷クライアントから送信される 公開鍵取得要求に基づいて所定の数を生成し、 前記公開鍵を生成することを特徴 とする請求項 1 3に記載のプリンタ。
1 6: 前記公開鍵生成部が公開鍵を生成する際に用いられた所定の数は、 前記 公開鍵所定の数送信部が前記所定の数を印刷クライアントに送信した後に破棄す る、 ことを特徴とする請求項 1 5に記載のプリンタ。
1 7 . 前記公開鍵生成部で生成された公開鍵と、 この公開鍵を生成する際に用 いた前記所定の数を導出するのに必要な情報とを、 印刷クライアントに送信する、 公開鍵情報送信部と、
所定の数を印刷クライアントから受信する、 所定の数受信部と、
をさらに備えるとともに、
前記秘密鍵生成部は、 前記第 2プリンタ位置情報を少なくとも含むパスフレー ズと、 前記所定の数受信部で受信した前記所定の数とを用いて、 秘密鍵を生成す る、
ことを特徴とする請求項 3に記載のプリンタ。
1 8 . 前記所定の数を導出するのに必要な情報は、 所定の数を導出するァルゴ リズムと、 導出のための付加情報である、 ことを特徴とする請求項 1 7に記載の プリンタ。
1 9 . 前記所定の数は乱数である、 ことを特徴とする請求項 1乃至請求項 1 8 のいずれかに記載のプリンタ。
2 0 . 印刷データを処理するプリンタの制御方法であって、
当該プリンタの設置されている場所を特定するためのプリンタ位置情報を、 プ リンタ位置情報取得部から取得し、 これを第 1プリンタ位置情報とするステップ と、
前記第 1プリンタ位置情報を少なくとも含むパスフレーズと、 所定の数とを用 いて、 公開鍵を生成するステップと、
印刷クライアントから印刷データを受信するステップと、
前記印刷データを受信した際に、 前記プリンタ位置情報取得部からプリンタ位 置情報を取得し、 これを第 2プリンタ位置情報とするステップと、
前記第 2プリンタ位置情報を少なくとも含むパスフレーズと、 前記所定の数と を用いて、 秘密鍵を生成するステップと、
前記秘密鍵を用いて、 前記印刷データ受信部で受信した前記印刷データを復号 するステップと、 +
を備えることを特徴とするプリンタの制御方法。
2 1 . 前記公開鍵を生成するステップで生成された秘密鍵を破棄するステップ を、 さらに備えることを特徴とする請求項 2 0に記載のプリンタの制御方法。
2 2 . 前記秘密鏈を用いて前記印刷データが復号できた場合には、 前記印刷デ ータに基づく印刷を実行し、 前記秘密鍵を用いて前記印刷データが復号できなか つた場合には、 前記印刷データに基づく印刷を実行しないステップを、 さらに備 えることを特徴とする請求項 2 1に記載のプリンタの制御方法。
2 3 . 前記公開鍵生成部で用いた前記所定の数を、 所定の数保持部に保持する ステップを、 さらに備えることを特徴とする請求項 2 2に記載のプリンタの制御 方法。
2 4 . 印刷クライアントから公開鍵取得要求を受信するス'
前記生成された前記公開鍵を、 前記公開鍵取得要求を送信した印刷クライアン トに送信するステップと、
をさらに備えることを特徴とする請求項 2 3に記載のプリンタの制御方法。
2 5 . 前記所定の数保持部に保持されている所定の数は、 当該プリンタに 1つ である、 ことを特徴とする請求項 2 4に記載のプリンタの制御方法。
2 6 . 前記所定の数保持部に保持されている所定の数は、 前記印刷クライアン ト毎に 1つである、 ことを特徴とする請求項 2 4に記載のプリンタの制御方法。
2 7 . 前記公開鍵で暗号化された前記印刷データに加えて、 前記公開鍵で暗号 化されていない印刷クライアント識別情報を受信するステップと、
前記所定の数保持部から、 前記印刷クライアント識別情報に基づいて、 前記印 刷データを送信した印刷クライァントの所定の数を取得- をさらに備えることを特徴とする、 請求項 2 6に記載のプリンタの制御方法。
2 8 . 前記所定の数保持部に保持されている所定の数は、 ユーザ毎に 1つであ る、 ことを特徴とする請求項 2 4に記載のプリンタの制御方法。
2 9 . 前記公開鍵で暗号化された前記印刷データに加えて、 前記公開鍵で暗号 化されていないユーザ識別情報を受信するステップと、
前記所定の数保持部から、 前記ユーザ識別情報に基づいて、 前記印刷データを 送信したユーザの所定の数を取得するステップと、
をさらに備えることを特徴とする、 請求項 2 8に記載のプリンタの制御方法。
3 0 . 前記公開鍵を生成するステップでは、 印刷ジョブ毎に印刷クライアント から送信される公開鍵取得要求に基づいて所定の数を生成し、 前記公開鍵を生成 することを特徴とする請求項 2 3に記載のプリンタの制御方法。
3 1 . 前記秘密鍵を生成した後に、 前記所定の数保持部に保持されている所定 の数を削除するステップを、 さらに備えることを特徴とする請求項 3 0に記載の プリンタの制御方法。
3 2 . 前記生成された公開鍵と、 この公開鍵を生成する際に用いた前記所定の 数を印刷クライアントに送信するステップと、
所定の数を印刷クライアントから受信するステップと、
をさらに備えるとともに、
前記秘密鍵を生成するステップでは、 前記第 2プリンタ位置情報を少なくとも 含むパスフレーズと、 前記受信した前記所定の数とを用いて、 秘密鍵を生成する、 ことを特徴とする請求項 2 2に記載のプリンタの制御方法。
3 3 . 前記公開鍵を生成するステップでは、 印刷クライアントから公開鍵取得 要求を受信した場合に、 前記公開鍵と前記所定の数とを生成し、
前記公開鍵を送信するステップでは、 前記公開鍵と前記所定の数とを、 この公 開鍵取得要求を送信した印刷クライアントに送信する、
ことを特徴とする請求項 3 2に記載のプリンタの制御方法。
3 4 . 前記公開鍵を生成するステップでは、 印刷ジョブ毎に印刷クライアント から送信される公開鍵取得要求に基づいて所定の数を生成し、 前記公開鏈を生成 することを特徴とする請求項 3 2に記載のプリンタの制御方法。
3 5 . 前記公開鍵を生成する際に用いられた所定の数を、 前記所定の数を印刷 クライアントに送信した後に破棄するステップを、 さらに備えることを特徴とす る請求項 3 4に記載のプリンタの制御方法。
3 6 . 前記生成された公開鍵と、 この公開鍵を生成する際に用いた前記所定の 数を導出するのに必要な情報とを、 印刷クライアントに送信するステップと、 所定の数を印刷クライアントから受信するステップと、
をさらに備えるとともに、
前記秘密鍵を生成するステップでは、 前記第 2プリンタ位置情報を少なくとも 含むパスフレーズと、 前記受信した前記所定の数とを用いて、 秘密鍵を生成する、 ことを特徴とする請求項 2 2に記載のプリンタの制御方法。
3 7 . 前記所定の数を導出するのに必要な情報は、 所定の数を導出、
リズムと、 導出のための付加情報である、 ことを特徴とする請求項 3 6に記載の プリンタの制御方法。
3 8 . 前記所定の数は乱数である、 ことを特徴とする請求項 2 0乃至請求項 3 7のいずれかに記載のプリンタの制御方法。
3 9 . 少なくとも 1台のプリンタと、 前記プリンタにネッ 1、ワークを介して接 続される少なくとも 1台の印刷クライアントとを有する、 印刷システムであって、 前記プリンタは、
前記プリンタの設置されている場所を特定するためのプリンタ位置情報を取得 する、 プリンタ位置情報取得部と、
前記プリンタ位置情報取得部からプリンタ位置情報を取得し、 これを第 1プリ ンタ位置情報とする、 第 1プリンタ位置情報取得部と、
前記第 1プリンタ位置情報を少なくとも含むパスフレーズと、 所定の数とを用 いて、 公開鍵を生成する、 公開鍵生成部と、
を備えており、
前記印刷クライアントは、
前記プリンタで印刷を行うための印刷データを生成する、 印刷データ生成部と、 前記公開鍵で前記印刷データを暗号化し、 この暗号化した印刷データを、 前記 プリンタに送信する、 印刷データ送信部と、
を備えており、
前記プリンタは、 さらに、
前記印刷クライアントから送信された、 前記公開鍵で暗号化された印刷データ を受信する、 印刷データ受信部と、
前記印刷データを受信した際に、 前記プリンタ位置情報取得部からプリンタ位 置情報を取得し、 これを第 2プリンタ位置情報とする、 第 2プリンタ位置情報取 得部と、
前記第 2プリンタ位置情報を少なくとも含むパスフレーズと、 前記所定の数と を用いて、 秘密鍵を生成する、 秘密鍵生成部と、
前記秘密鍵を用いて、 前記印刷データ受信部で受信した前記印刷データを復号 する、 復号部と、
を備えることを特徴とする印刷システム。
4 0 . データを処理するデータ受信装置であって、
当該データ受信装置の設置されている場所を特定するためのデータ受信装置位 置情報を取得する、 データ受信装置位置情報取得部と、 前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、 こ れを第 1データ受信装置位置情報とする、 第 1データ受信装置位置情報取得部と、 前記第 1データ受信装置位置情報を少なくとも含むパスフレーズと、 乱数とを 用いて、 公開鍵を生成する、 公開鍵生成部と、
前記公開鍵で暗号化されたデ一タを受信する、 データ受信部と、
前記データを受信した際に、 前記データ受信装置位置情報取得部からデータ受 信装置位置情報を取得し、 これを第 2データ受信装置位置情報とする、 第 2デー タ受信装置位置情報取得部と、
前記第 2データ受信装置位置情報を少なくとも含むパスフレーズと、 前記所定 の数とを用いて、 秘密鍵を生成する、 秘密鍵生成部と、
前記秘密鍵を用いて、 前記印刷データ受信部で受信した前記データを復号する、 復号部と、
を備えることを特徴とするデータ受信装置。
4 1 . 少なくとも 1台のデータ受信装置と、 前記データ受信装置にネットヮー クを介して接続される少なくとも 1台のデータ送信装置とを有する、 データ送受 信システムであって、
前記データ受信装置は、
前記データ受信装置の設置されている場所を特定するためのデータ受信装置位 置情報を取得する、 データ受信装置位置情報取得部と、
前記データ受信装置位置情報取得部からデータ受信装置位置情報を取得し、 こ れを第 1データ受信装置位置情報とする、 第 1データ受信装置位置情報取得部と、 前記第 1データ受信装置位置情報を少なくとも含むパスフレーズと、 乱数とを 用いて、 公開鍵を生成する、 公開鍵生成部と、
を備えており、
前記データ送信装置は、
前記データ受信装置で処理を行うためのデータを生成する、 データ生成部と、 前記公開鍵で前記データを暗号化し、 この暗号化したデータを、 前記データ受 信装置に送信する、 データ送信部と、 を備えており、
前記データ受信装置は、 さらに、
前記データ送信装置から送信された、 前記公開鍵で暗号化されたデ一タを受信 する、 データ受信部と、
前記データを受信した際に、 前記データ受信装置位置情報取得部からデータ受 信装置位置情報を取得し、 これを第 2データ受信装置位置情報とする、 第 2デー タ受信装置位置情報取得部と、
前記第 2データ受信装置位置情報を少なくとも含むパスフレーズと、 前記所定 の数とを用いて、 秘密鍵を生成する、 秘密鍵生成部と、
前記秘密鍵を用いて、 前記印刷データ受信部で受信した前記データを復号する、 復号部と、
を備えることを特徴とするデータ送受信システム。
PCT/JP2003/009280 2002-08-30 2003-07-22 プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム WO2004022350A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US10/512,235 US7552324B2 (en) 2002-08-30 2003-07-22 Printer and print system, and data receiving device and data transmitting and receiving system
JP2004534094A JP4045552B2 (ja) 2002-08-30 2003-07-22 プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム
EP03741540A EP1493589A4 (en) 2002-08-30 2003-07-22 PRINTER AND PRINTING SYSTEM, DATA RECEPTION DEVICE AND DATA END / RECEIVING SYSTEM

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2002-253410 2002-08-30
JP2002253410 2002-08-30
JP2002253378 2002-08-30
JP2002-253378 2002-08-30
JP2002277384 2002-09-24
JP2002277499 2002-09-24
JP2002-277499 2002-09-24
JP2002-277384 2002-09-24

Publications (1)

Publication Number Publication Date
WO2004022350A1 true WO2004022350A1 (ja) 2004-03-18

Family

ID=31982504

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/009280 WO2004022350A1 (ja) 2002-08-30 2003-07-22 プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム

Country Status (5)

Country Link
US (1) US7552324B2 (ja)
EP (1) EP1493589A4 (ja)
JP (1) JP4045552B2 (ja)
CN (1) CN100361823C (ja)
WO (1) WO2004022350A1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006014182A (ja) * 2004-06-29 2006-01-12 Canon Inc データ処理装置、暗号通信方法及びコンピュータプログラム
JP2007317118A (ja) * 2006-05-29 2007-12-06 Kyocera Mita Corp 印刷システム、情報処理装置、及び、印刷装置
JP2008165368A (ja) * 2006-12-27 2008-07-17 Konica Minolta Business Technologies Inc サービス制限方法、画像処理制限方法、および画像処理システム
CN100541414C (zh) * 2005-06-28 2009-09-16 三星电子株式会社 数据管理方法和装置
JP2010508576A (ja) * 2006-10-31 2010-03-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 装置間でのデータオブジェクトの転送
WO2020022353A1 (ja) * 2018-07-23 2020-01-30 株式会社AndGo 秘密情報を管理するための機器、方法及びそのためのプログラム

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3707407B2 (ja) 2001-08-28 2005-10-19 セイコーエプソン株式会社 パスワードを投写するプロジェクタ
US7293071B2 (en) 2002-05-27 2007-11-06 Seiko Epson Corporation Image data transmission system, process and program, image data output device and image display device
US6901863B2 (en) * 2002-11-27 2005-06-07 Seiko Epson Corporation Printer and print system for executing a proper print operation only in a place registered in advance
JP2004287160A (ja) 2003-03-24 2004-10-14 Seiko Epson Corp 画像表示システム、プロジェクタ、画像表示方法、プロジェクタ制御方法、画像表示プログラムおよびプロジェクタ制御プログラム
US20050152543A1 (en) * 2003-11-04 2005-07-14 Toshihiro Shima Printer and print system
JP2005151459A (ja) * 2003-11-19 2005-06-09 Canon Inc 画像処理システムおよびその画像データ処理方法
KR100757456B1 (ko) * 2004-01-20 2007-09-11 삼성전자주식회사 인쇄의 보안이 가능한 프린터 및 그 인쇄의 보안방법
JP4290036B2 (ja) * 2004-02-27 2009-07-01 キヤノン株式会社 情報処理装置及び印刷制御装置
US20050246803A1 (en) * 2004-04-30 2005-11-03 Spencer Andrew M Peripheral device for processing data from a computing device
US7788482B2 (en) * 2004-05-10 2010-08-31 Scientific Games International, Inc. System and method for securing on-line documents using authentication codes
US8037307B2 (en) * 2004-05-10 2011-10-11 Scientific Games International Inc. System and method for securing on-line documents using authentication codes
US7823169B1 (en) 2004-10-28 2010-10-26 Wheeler Thomas T Performing operations by a first functionality within a second functionality in a same or in a different programming language
US7774789B1 (en) 2004-10-28 2010-08-10 Wheeler Thomas T Creating a proxy object and providing information related to a proxy object
US8266631B1 (en) 2004-10-28 2012-09-11 Curen Software Enterprises, L.L.C. Calling a second functionality by a first functionality
US7861212B1 (en) 2005-03-22 2010-12-28 Dubagunta Saikumar V System, method, and computer readable medium for integrating an original application with a remote application
US8578349B1 (en) 2005-03-23 2013-11-05 Curen Software Enterprises, L.L.C. System, method, and computer readable medium for integrating an original language application with a target language application
JP4604847B2 (ja) * 2005-06-01 2011-01-05 コニカミノルタビジネステクノロジーズ株式会社 画像処理システム、画像処理装置および画像処理プログラム
JP5040341B2 (ja) * 2006-04-04 2012-10-03 セイコーエプソン株式会社 プロジェクタシステム
US7810140B1 (en) 2006-05-23 2010-10-05 Lipari Paul A System, method, and computer readable medium for processing a message in a transport
US7844759B1 (en) 2006-07-28 2010-11-30 Cowin Gregory L System, method, and computer readable medium for processing a message queue
US8200603B1 (en) 2006-12-22 2012-06-12 Curen Software Enterprises, L.L.C. Construction of an agent that utilizes as-needed canonical rules
US7660777B1 (en) 2006-12-22 2010-02-09 Hauser Robert R Using data narrowing rule for data packaging requirement of an agent
US7702604B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes supplied rules and rules resident in an execution environment
US9311141B2 (en) 2006-12-22 2016-04-12 Callahan Cellular L.L.C. Survival rule usage by software agents
US8132179B1 (en) 2006-12-22 2012-03-06 Curen Software Enterprises, L.L.C. Web service interface for mobile agents
US7698243B1 (en) 2006-12-22 2010-04-13 Hauser Robert R Constructing an agent in a first execution environment using canonical rules
US8423496B1 (en) 2006-12-22 2013-04-16 Curen Software Enterprises, L.L.C. Dynamic determination of needed agent rules
US7702603B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Constructing an agent that utilizes a compiled set of canonical rules
US7949626B1 (en) 2006-12-22 2011-05-24 Curen Software Enterprises, L.L.C. Movement of an agent that utilizes a compiled set of canonical rules
US7660780B1 (en) 2006-12-22 2010-02-09 Patoskie John P Moving an agent from a first execution environment to a second execution environment
US7860517B1 (en) 2006-12-22 2010-12-28 Patoskie John P Mobile device tracking using mobile agent location breadcrumbs
US7702602B1 (en) 2006-12-22 2010-04-20 Hauser Robert R Moving and agent with a canonical rule from one device to a second device
US7970724B1 (en) 2006-12-22 2011-06-28 Curen Software Enterprises, L.L.C. Execution of a canonical rules based agent
US7664721B1 (en) 2006-12-22 2010-02-16 Hauser Robert R Moving an agent from a first execution environment to a second execution environment using supplied and resident rules
JP4798172B2 (ja) * 2008-05-20 2011-10-19 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、画像出力方法および画像出力プログラム
KR20100059450A (ko) * 2008-11-26 2010-06-04 삼성전자주식회사 화상형성장치, 호스트 장치 및 작업대상 문서 암호화 방법
US20100293095A1 (en) * 2009-05-18 2010-11-18 Christopher Alan Adkins Method for Secure Identification of a Device
EP2348447B1 (en) 2009-12-18 2014-07-16 CompuGroup Medical AG A computer implemented method for generating a set of identifiers from a private key, computer implemented method and computing device
EP2348452B1 (en) 2009-12-18 2014-07-02 CompuGroup Medical AG A computer implemented method for sending a message to a recipient user, receiving a message by a recipient user, a computer readable storage medium and a computer system
US8719587B2 (en) * 2009-12-18 2014-05-06 CompuGroup Medical AG Computer implemented method for generating a pseudonym, computer readable storage medium and computer system
EP2348449A3 (en) * 2009-12-18 2013-07-10 CompuGroup Medical AG A computer implemented method for performing cloud computing on data being stored pseudonymously in a database
EP2365456B1 (en) * 2010-03-11 2016-07-20 CompuGroup Medical SE Data structure, method and system for predicting medical conditions
US8914851B2 (en) * 2010-12-06 2014-12-16 Golba Llc Method and system for improved security
US8924713B2 (en) 2012-03-30 2014-12-30 Golba Llc Method and system for state machine security device
FR3032540B1 (fr) * 2015-02-06 2018-09-07 Dover Europe Sarl Systeme de protection avancee d'elements consommables ou detachables
CN106761853B (zh) * 2017-01-09 2019-03-29 北京新能正源智能装备有限公司 用于拱架台车的夹具机构和拱架台车
JP7115027B2 (ja) * 2018-05-22 2022-08-09 ブラザー工業株式会社 通信装置と通信装置のためのコンピュータプログラム
JP7195803B2 (ja) 2018-07-31 2022-12-26 キヤノン株式会社 情報処理方法、情報処理システム、およびプログラム
JP7195802B2 (ja) * 2018-07-31 2022-12-26 キヤノン株式会社 情報処理方法、情報処理システム、および通信装置
WO2020091763A1 (en) * 2018-10-31 2020-05-07 Hewlett-Packard Development Company, L.P. Group printing
CN111959139B (zh) * 2020-08-31 2022-05-13 湖南鼎一致远科技发展有限公司 一种热转印打印机的加密系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10341212A (ja) * 1997-06-10 1998-12-22 Matsushita Electric Ind Co Ltd 暗号文伝送システム
JP2002334255A (ja) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> 電子コンテンツ流通システム及びその実施装置並びにその処理プログラムと記録媒体
JP2002359806A (ja) * 2001-05-31 2002-12-13 Toshiba Corp 認証方法および情報再生機器

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3697871B2 (ja) * 1997-12-12 2005-09-21 セイコーエプソン株式会社 ネットワークシステム、情報処理装置及び情報記憶媒体
US6362893B1 (en) * 1998-03-06 2002-03-26 Fargo Electronics, Inc. Security printing and unlocking mechanism for high security printers
JP3451929B2 (ja) 1998-05-14 2003-09-29 セイコーエプソン株式会社 暗号化サーバおよび該暗号化サーバを用いた通信方法
US6760119B1 (en) * 1999-05-25 2004-07-06 Silverbrook Research Pty Ltd Relay device
US6681214B1 (en) * 1999-06-29 2004-01-20 Assure Systems, Inc. Secure system for printing authenticating digital signatures
US7003667B1 (en) * 1999-10-04 2006-02-21 Canon Kabushiki Kaisha Targeted secure printing
US6952780B2 (en) * 2000-01-28 2005-10-04 Safecom A/S System and method for ensuring secure transfer of a document from a client of a network to a printer
US7136486B2 (en) * 2000-09-11 2006-11-14 Seiko Epson Corporation Print system and printer capable of prevention of unjust copy print
US7231044B2 (en) * 2000-10-11 2007-06-12 Digital Authentication Technologies, Inc. Method and apparatus for real-time digital certification of electronic files and transactions using entropy factors
US7177426B1 (en) * 2000-10-11 2007-02-13 Digital Authentication Technologies, Inc. Electronic file protection using location
DE60134565D1 (de) 2000-11-03 2008-08-07 Digital Authentication Technol Schutz einer elektronischen datei unter verwendung des standorts
JP2002245267A (ja) 2001-02-20 2002-08-30 Konica Corp プリントシステム、プリンタクライアント、サービス側システム
US6725051B2 (en) * 2001-04-30 2004-04-20 Hewlett-Packard Development Company, L.P. Method for obtaining location data
WO2002093826A1 (fr) * 2001-05-14 2002-11-21 Matsushita Electric Industrial Co., Ltd. Appareil de commande d'un dispositif electronique
US20030044009A1 (en) * 2001-08-31 2003-03-06 Sridhar Dathathraya System and method for secure communications with network printers
US20030065923A1 (en) * 2001-09-28 2003-04-03 Parry Travis J. Systems and methods for converting physical signatures to electronic signatures
US6772945B2 (en) * 2001-10-09 2004-08-10 Hewlett-Packard Development Company, L.P. Printed card to control printer
US7305556B2 (en) * 2001-12-05 2007-12-04 Canon Kabushiki Kaisha Secure printing with authenticated printer key
JP3701249B2 (ja) * 2002-03-05 2005-09-28 京セラミタ株式会社 画像形成装置
JP3979192B2 (ja) * 2002-06-21 2007-09-19 セイコーエプソン株式会社 プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム
US6901863B2 (en) * 2002-11-27 2005-06-07 Seiko Epson Corporation Printer and print system for executing a proper print operation only in a place registered in advance

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10341212A (ja) * 1997-06-10 1998-12-22 Matsushita Electric Ind Co Ltd 暗号文伝送システム
JP2002334255A (ja) * 2001-05-10 2002-11-22 Nippon Telegr & Teleph Corp <Ntt> 電子コンテンツ流通システム及びその実施装置並びにその処理プログラムと記録媒体
JP2002359806A (ja) * 2001-05-31 2002-12-13 Toshiba Corp 認証方法および情報再生機器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1493589A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006014182A (ja) * 2004-06-29 2006-01-12 Canon Inc データ処理装置、暗号通信方法及びコンピュータプログラム
CN100541414C (zh) * 2005-06-28 2009-09-16 三星电子株式会社 数据管理方法和装置
JP2007317118A (ja) * 2006-05-29 2007-12-06 Kyocera Mita Corp 印刷システム、情報処理装置、及び、印刷装置
JP4504950B2 (ja) * 2006-05-29 2010-07-14 京セラミタ株式会社 印刷システム、情報処理装置、及び、印刷装置
JP2010508576A (ja) * 2006-10-31 2010-03-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. 装置間でのデータオブジェクトの転送
JP2008165368A (ja) * 2006-12-27 2008-07-17 Konica Minolta Business Technologies Inc サービス制限方法、画像処理制限方法、および画像処理システム
US8489891B2 (en) 2006-12-27 2013-07-16 Konica Minolta Business Technologies, Inc. Method for limiting service, method for limiting image processing and image processing system
WO2020022353A1 (ja) * 2018-07-23 2020-01-30 株式会社AndGo 秘密情報を管理するための機器、方法及びそのためのプログラム

Also Published As

Publication number Publication date
CN1668471A (zh) 2005-09-14
US7552324B2 (en) 2009-06-23
EP1493589A4 (en) 2007-12-05
JP4045552B2 (ja) 2008-02-13
JPWO2004022350A1 (ja) 2005-12-22
US20050163549A1 (en) 2005-07-28
EP1493589A1 (en) 2005-01-05
CN100361823C (zh) 2008-01-16

Similar Documents

Publication Publication Date Title
JP4045552B2 (ja) プリンタ及び印刷システム、並びに、データ受信装置及びデータ送受信システム
JP4349281B2 (ja) プリンタ、サーバ及び印刷システム、並びに、データ受信装置及びデータ送受信システム
JP2007110703A (ja) 電子ドキュメント伝達システム、方法およびプログラム
JP2007336556A (ja) セキュリティ面で安全なファクシミリ通信システムおよび方法
JP2006191626A (ja) 電子文書をセキュアに通信するシステム、方法およびプログラム
JP2007288747A (ja) 画像処理システムおよび画像処理システムの制御方法および画像形成装置および画像再生装置
JP2007104660A (ja) 電子ドキュメントデータをセキュリティ面で安全に伝達するシステム、方法およびプログラム
JP2007082208A (ja) 電子ドキュメントをセキュリティ面で安全にドメイン間で伝送するシステム、方法、およびプログラム
JP2006139784A (ja) ドキュメント処理装置とその装置にデータ暗号化サービスを追加する方法およびプログラム
JP2007038674A (ja) 機密保持機能を有する画像形成方法及び機密保持機能を有する画像形成装置
JP4046876B2 (ja) 通信装置及び通信方法
JP4923582B2 (ja) 機器バインドコンテンツの受渡方法、コンテンツ保存装置及びプログラム
JP2007295167A (ja) 画像処理装置、画像処理方法及び画像処理用プログラム
JP2007235716A (ja) 画像読み取り装置、画像読み取り方法およびコンピュータプログラム
JP2007181945A (ja) 画像形成装置、出力判断プログラムおよび出力判断方法
JP4345056B2 (ja) プリンタ及び印刷システム
JP4370564B2 (ja) プリンタ、印刷システム、及び、位置情報による暗号化データ処理システム
JP4337474B2 (ja) プリンタ及び印刷システム
JP3659148B2 (ja) 印刷システム、及び、コンテンツデータ再現システム
JP4337473B2 (ja) プリンタ及び印刷システム
JP4168394B2 (ja) プリンタ及び印刷システム
JPH10276335A (ja) 画像形成装置、方法および記憶媒体
CN115859255A (zh) 一种主机端与办公设备执行认证的控制方法、控制系统
JP4232510B2 (ja) プリンタ、及び、印刷システム
JP2004306263A (ja) プリンタ、及び、印刷システム

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2003741540

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10512235

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003741540

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 20038163926

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2004534094

Country of ref document: JP