Image verification system, image verification apparatus, and image verification method

An image verification system includes an image generation apparatus and a first verification apparatus. The image generation apparatus (a) generates image data, (b) generates a hash value from the image data, and (c) generates first verification data from the hash value using a common key cryptography and not using a public key cryptography. The first verification apparatus (a) receives the hash value and the first verification data, (b) verifies, using the received hash value, the received first verification data and the common key cryptography, whether the image data is altered, and (c) generates second verification data from the hash value using the public key cryptography, if the first verification apparatus verifies that the image data is not altered.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a system, apparatus, method, etc. which verify whether image data generated by an image generation apparatus such as a digital camera has been altered.

2. Related Background Art

Recently, digital cameras which store optical images of subjects by digitizing them have been put into practical use.

Image data created by a digital camera can be captured easily into a personal computer, but at the same time there is the problem that it can be altered easily on the personal computer. Consequently, image data created by a digital camera has the problem that it has lower reliability than silver halide photographs and is not very admissible as evidence. Therefore, digital camera systems have recently been proposed which have a capability to attach a digital signature to image data created by a digital camera. Conventional digital camera systems are disclosed, for example, in U.S. Pat. No. 5,499,294 and Japanese Patent Laid-Open No. 9-200730.

Normally, public-key cryptography such as RSA encryption is used to generate digital signatures. However, the public-key cryptography such as RSA encryption, which involves exponent operations and multiplication/division operations, is not good at high-speed processing and requires hundreds to thousands of times as much processing time as common-key cryptography such as DES. Thus, there is the problem that conventional digital cameras with their limited computational resources have great difficulty in generating digital signatures. Although there is a way to improve the performance of the computational resources of digital signatures extensively so that digital signatures can be generated easily, this is not desirable because such a method will greatly increase the costs of the digital cameras themselves.

SUMMARY OF THE INVENTION

The present invention can solve the above-described problems and can provide a capability to verify whether image data generated by an image generation apparatus such as a digital camera has been altered while reducing the costs of the apparatus.

An image verification system according to a preferred embodiment of the present invention includes an image generation apparatus, information processor, and first image verification apparatus, wherein: the image generation apparatus comprises image generation means for generating image data, hash value generation means for generating a hash value of the image data, and first verification data generation means for generating first verification data using the hash value and common information; the image generation apparatus sends the hash value and the above described first verification data to the first image verification apparatus; and the first image verification apparatus comprises first verification means for verifying whether the image data has been altered, by using the hash value, the first verification data, and the common information, and second verification data generation means for generating second verification data for the image data using the hash value and secret information if the image data has not been altered.

An image verification apparatus according to a preferred embodiment of the present invention includes: verification means for verifying whether image data generated by an image generation apparatus has been altered, by using a hash value of the image data, first verification data, and common information; and verification data generation means for generating second verification data for the image data using the hash value and secret information if the image data has not been altered.

An image verification method according to a preferred embodiment of the present invention includes: a verification step of verifying whether image data generated by an image generation apparatus has been altered, by using a hash value of the image data, first verification data, and common information; and a verification data generation step of generating second verification data for the image data using the hash value and secret information if the image data has not been altered.

Still other objects of the present invention, and the advantages thereof, will become fully apparent from the following detailed description of the embodiments.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

FIG. 1is a diagram illustrating a configuration example of an image verification system according to this embodiment.

An image generation apparatus10has a capability to generate image data of subjects and a capability to generate an image file with first verification data. The image file with first verification data contains image data, first verification data for the image data, additional information about the image data, a unique ID of the image generation apparatus10, and other data. The image generation apparatus10may be an imaging apparatus such as a digital camera, digital video camera, or scanner or an apparatus equipped with a camera unit. Also, the image generation apparatus10may be a facsimile machine, copier, or similar machine equipped with an image reading unit.

An information processor20has a capability to make a first verification apparatus30verify the image file with first verification data as well as a capability to generate an image file with second verification data. The image file with second verification data contains image data, second verification data for the image data, additional information about the image data, a unique ID of the image generation apparatus10, and other data. The information processor20may be a personal computer or other information processor.

The first verification apparatus30has a capability to verify whether image data has been altered, by using the first verification data. Also the first verification apparatus30has a capability to generate second verification data for the image data if the image data has not been altered. The first verification apparatus30needs only to be capable of making common information Kc and secret information Ks (described later) difficult to be analyzed or leaked. Thus, the first verification apparatus30may be, for example, an IC card (or a storage medium with a microprocessor) or a server computer with the information processor20operating as a client. If the information processor20is a server computer, the first verification apparatus30and information processor20are connected via a network such as a LAN, a wireless LAN, a WAN, or the Internet.

The second verification apparatus40has a capability to verify whether image data has been altered, by using the second verification data. The second verification apparatus40may be a personal computer or other information processor.

FIG. 2is a block diagram illustrating main functional components of the image generation apparatus10according to this embodiment.

Reference numeral201denotes an image generation unit which comprises a photosensor—such as a CCD (charge-coupled device)—and microprocessor and generates image data I of a subject.

Reference numeral203denotes a memory which stores the common information Kc. The common information Kc corresponds to a common key in common-key cryptography (DES, Rinjdael, etc.).

Reference numeral204denotes a calculation unit which performs first and second calculation processes. The first calculation process generates a hash value (also called a message digest or digest data) H11of the image data I using a hash function HF1. The second calculation process converts the hash value H11generated in the first calculation process into first verification data V11using the common information Kc obtained from the memory203. The first verification data V11is equivalent to MAC (Message Authentication Code) in the image data I. Incidentally, the hash function HF1may be an MD-2, MD-5, SHA-1, RIPEMD-128, RIPEMD-160, or other hash function.

Reference numeral205denotes a memory which stores a unique ID unique to the image generation apparatus10(e.g., the production number or serial number of the image generation apparatus10). The unique ID is attached to the image file with first verification data.

Reference numeral206denotes an image file-generating unit which generates the image file IF1with first verification data. The image file IF1with first verification data contains the image data I in its data section and contains the hash value H11of the image data I, first verification data V11of the image data I, additional information about the image data I, the unique ID of the image generation apparatus10, and other data in its header section. The file type of the image file IF1with first verification data may be JFIF (JPEG File Interchange Format), TIFF (Tagged Image File Format), or GIF (Graphics Interchange Format), or any of their extended versions, or other file format.

Reference numeral207denotes a removable medium (removable recording medium) such as a magnetic disk, optical disk, or memory card, which stores the image file IF1with first verification data.

Reference numeral208denotes a media control unit which has a capability to write the image file IF1with first verification data into the removable medium207and a capability to read the image file IF1with first verification data from the removable medium207.

Reference numeral209denotes an interface unit which sends the image file IF1with first verification data from the removable medium207to the information processor20.

Reference numeral210denotes an operation unit which is equipped with switches and the like for giving instructions to photograph a subject (object), generate its image data, or read the image data.

Reference numeral211denotes a control unit which comprises a memory and microcomputer for executing control programs stored in the memory and controls operation of various parts of the image generation apparatus10. In particular, the memory in the control unit211stores a program which controls procedures of the image generation apparatus10described later with reference toFIGS. 6A and 6B.

FIG. 3is a block diagram illustrating main functional components of the information processor20according to this embodiment;

Reference numeral301denotes a media control unit which reads the image file IF1with first verification data from the removable medium207.

Reference numeral309denotes an interface unit which receives the image file IF1with first verification data sent from the image generation apparatus10.

Reference numeral302denotes a storage unit which stores the image file IF1with first verification data and the image file IF2with second verification data.

Reference numeral304denotes an interface unit which has a capability to send the hash value H11, first verification data V11, and unique ID obtained from the image file IF1with first verification data to the first verification apparatus30, a capability to receive second verification data V2sent from the first verification apparatus30, and a capability to receive a verification result of the first verification apparatus30. The second verification data V2received by the interface unit304is attached to the image file IF2with second verification data.

Reference numeral305denotes an image file-generating unit which generates the image file IF2with second verification data. The image file IF2with second verification data contains the image data I in its data section and contains the hash value H11 of the image data I, second verification data V2of the image data I, additional information about the image data I, the unique ID of the image generation apparatus10, and other data in its header section.

Reference numeral306denotes an interface unit which has a capability to send the image file IF2with second verification data generated by the information processor20to an external apparatus.

Reference numeral307denotes a display unit which displays information about the verification result produced by the first verification apparatus30.

Reference numeral308denotes a control unit which comprises a memory and microcomputer for executing control programs stored in the memory and controls various functions of the information processor20. In particular, the memory in the control unit308stores a program which controls procedures of the information processor20described later with reference toFIGS. 6A and 6B.

FIG. 4is a block diagram illustrating main functional components of the first verification apparatus30according to this embodiment.

Reference numeral401denotes an interface unit which has a capability to receive the hash value H11, first verification data V11, and unique ID sent from the information processor20, a capability to send the verification result of the first verification apparatus30to the information processor20, and a capability to send the second verification data V2generated by the first verification apparatus30to the information processor20.

Reference numeral402denotes a storage unit which stores the hash value H11, first verification data V11, unique ID, and second verification data V2.

Reference numeral403denotes a memory which stores a table T1. An example of the table T1is shown inFIG. 7A. The table T1is a management table which manages a plurality of unique IDs, common information Kc corresponding to each of the unique IDs, and secret information Ks corresponding to each piece of common information Kc. For a unique ID of “001”, for example, the common information Kc corresponding to the unique ID is “0×1111” and secret information Ks is “0×2222”. The common information Kc and secret information Ks are kept secret by the first verification apparatus30and are not made open to the public. The secret information Ks is equivalent to a secret key in public-key cryptography (such as RSA encryption).

Reference numeral404denotes a first calculation unit which performs a calculation process to convert the hash value H11into first verification data V12using the common information Kc.

Reference numeral405denotes an image verification unit which verifies whether the image data I has been altered, by using the first verification data V11and first verification data V12.

Reference numeral406denotes a second calculation unit which performs a calculation process to convert the hash value H11into the second verification data V2using the secret information Ks obtained from the memory403. The second verification data V2is equivalent to a digital signature in the image data I.

Reference numeral407denotes a control unit which comprises a memory and microcomputer for executing control programs stored in the memory and controls various functions of the first verification apparatus30. In particular, the memory in the control unit308stores a program which controls procedures of the first verification apparatus30described later with reference toFIGS. 6A and 6B.

FIG. 5is a block diagram illustrating main functional components of the second verification apparatus40according to this embodiment.

Reference numeral501denotes an interface unit which has a capability to receive the image file IF2with second verification data from an external apparatus.

Reference numeral502denotes a storage unit which stores the image file IF2with second verification data.

Reference numeral503denotes a memory which stores a table T2. An example of the table T2is shown inFIG. 7B. The table T2is a management table which manages a plurality of unique IDs and public information Kp corresponding to each of the unique IDs. For a unique ID of “001”, for example, the public information Kp corresponding to the unique ID is “0×3333”. The public information Kp is associated with the secret information Ks and is equivalent to a public key in public-key cryptography (such as RSA encryption).

Reference numeral504denotes a calculation unit which performs first and second calculation processes. The first calculation process converts the second verification data V2into a hash value H12using the public information Kp. The second calculation process generates a hash value H13of the image data I using the hash function HF1.

Reference numeral506denotes an image verification unit which verifies whether the image data I has been altered, by using the hash value H12and hash value H13generated by the calculation unit504.

Reference numeral507denotes a display unit which displays information about the verification result produced by the image verification unit506.

Reference numeral508denotes a control unit which comprises a memory and microcomputer for executing control programs stored in the memory and controls various functions of the second verification apparatus40. In particular, the memory in the control unit508stores a program which controls procedures of the first verification apparatus30described later with reference toFIG. 6.

FIG. 6is a diagram illustrating procedures of the image verification system according to this embodiment.

Step S601: The image generation unit201generates the image data I of a subject according to instructions from the user.

Step S602: The calculation unit204generates the hash value H11of the image data I using the hash function HF1.

Step S603: The calculation unit204converts the hash value H11into the first verification data V11using the common information Kc obtained from the memory203. The first verification data V11is equivalent to MAC in the image data I.

Step S604: The image file-generating unit206generates the image file IF1with first verification data, containing the image data I, the hash value H11, first verification data V11, additional information about the image data I, unique ID of the image generation apparatus10, and other data. The media control unit208writes the image file IF1into the removable medium207.

Step S605: The user loads the image file IF1stored on the removable medium207into the information processor20either directly from the removable medium207or via the interface unit209. When loaded directly from the removable medium207, the image file IF1is read from the removable medium207and stored in the storage unit302by the media control unit301. On the other hand, when loaded via the interface unit209, the image file IF1sent from the image generation apparatus10to the information processor20is received and stored in the storage unit302by the interface unit309.

Step S606: To make the image file with first verification data verified by the first verification apparatus30, the interface unit304sends the hash value H11, first verification data V11, and unique ID to the first verification apparatus30. The interface unit401receives these data and stores them in the storage unit402.

Step S607: With reference to the table T1in the memory403, the first calculation unit404acquires the common information Kc which corresponds to the unique ID obtained from the image file IF1.

Step S608: The first calculation unit404converts the hash value H11into the first verification data V12using the common information Kc obtained from the memory403.

Step S609: The image verification unit405verifies whether the image data I has been altered, by comparing the first verification data V11and first verification data V12.

If the two versions of the first verification data match (i.e., if integrity of the image data is verified), the image verification unit405detects that the image data I has not been altered. Also, the image verification unit405detects that the image data I has been generated by the image generation apparatus10. Then, the first verification apparatus30informs the information processor20that the image data I has not been altered and starts generating second verification data.

On the other hand, if the two versions of the first verification data do not match (i.e., if integrity of the image data is not verified), the image verification unit405detects that the image data I has been altered. Then, the first verification apparatus30informs the information processor20that the image data I has been altered and prohibits generation of second verification data. In other words, the first verification apparatus30prohibits Step S610and subsequent steps.

Step S610: If it is found that the image data I has not been altered, the second calculation unit406acquires the secret information Ks which corresponds to the unique ID, with reference to the table T1in the memory403.

Step S611: The second calculation unit406converts the hash value H11into the second verification data V2using the secret information Ks obtained from the memory403. The second verification data V2is equivalent to a digital signature in the image data I. The second verification data V2generated by the second calculation unit406is stored in the storage unit402.

Step S612: The interface unit401sends the second verification data V2to the information processor20. The interface unit304receives the second verification data V2and supplies it to the file-generating unit305.

Step S613: The image file-generating unit305generates the image file IF2with second verification data, containing the image data I, second verification data V2, additional information about the image data I, unique ID and other data. The image file IF2generated by the image file-generating unit305is stored in the storage unit302.

Step S614: The interface unit306outputs the image file IF2generated by the file-generating unit305to an external apparatus. On the other hand, the interface unit501receives the image file IF2from the external apparatus and stores it in the storage unit502.

Step S615: With reference to the table T2in the memory503, the calculation unit504acquires the public information Kp which corresponds to the unique ID obtained from the image file IF2.

Step S616: The calculation unit504converts the second verification data V2into the hash value H12using the public information Kp obtained from the memory503.

Step S617: By using the hash function HF1, the calculation unit504generates the hash value H13of the image data I obtained from the storage unit502.

Step S618: By comparing the hash value H12obtained in Step S616and hash value H13obtained in Step S617, the image verification unit506verifies whether the image data I has been altered.

If the two hash values match (i.e., if integrity of the image data is verified), the image verification unit506detects that the image data I has not been altered. Also, the image verification unit506detects that the image data I has been generated by the image generation apparatus10. Then, the second verification apparatus40displays information that the image data I has not been altered, in the display unit507.

On the other hand, if the two hash values do not match (i.e., if integrity of the image data is not verified), the image verification unit506detects that the image data I has been altered. Then, the second verification apparatus40displays information that the image data I has been altered, in the display unit507.

As described above, the image verification system according to this embodiment can detect reliably whether or not the image data generated by the image generation apparatus10has been altered.

Also, since the image verification system according to this embodiment does not need to extensively improve the performance of the computational resources of the image generation apparatus10, it can reduce the costs of the image generation apparatus10.

Also, since the first verification apparatus30of the image verification system according to this embodiment verifies whether image data has been altered, by using the common information Kc obtained from the unique ID of the image generation apparatus10, it can confirm whether or not the image data has been generated by the image generation apparatus10.

Also, since the second verification apparatus40of the image verification system according to this embodiment verifies whether image data has been altered, by using the secret information Ks and public information Kp obtained from the unique ID of the image generation apparatus10, it can confirm whether or not the image data has been generated by the image generation apparatus10.

Also, the image verification system according to this embodiment implements the first verification apparatus30using an IC card (or a storage medium with a microprocessor) or a server computer with the information processor20operating as a client, it can thereby make the common information Kc and secret information Ks difficult to be analyzed or leaked and improve the security of the information.

Also, since the image verification system according to this embodiment sends a hash value (far smaller in data amount than image data) of image data rather than the image data itself from the information processor20to the first verification apparatus30, it can decrease traffic between the information processor20and first verification apparatus30, reduce memory requirements of the first verification apparatus30, and radically slash processing time of the first verification apparatus30.

Also, since the image verification system according to this embodiment generates image files with second verification data in the information processor20rather than in the first verification apparatus30, it can reduce loads on the first verification apparatus30and costs of the first verification apparatus30.

This embodiment can be implemented when a computer executes programs. Also, a recording medium, such as a CD-ROM, which contains the programs, a transmission medium, such as the Internet, which transmits the programs, or other means of supplying the programs to the computer can also constitute an embodiment of the present invention. The programs, recording media, and transmission media described above are also included in the scope of the present invention. As the storage medium, for example, a flexible disk, hard disk, optical disk, magneto-optical disk, CD-ROM, magnetic tape, non-volatile memory card, ROM, or the like may be used.

The above-described embodiments are merely exemplary of this invention, and are not to be construed to limit the scope of the present invention.

The scope of the present invention is defined by the scope of the appended claims, and is not limited to only the specific descriptions in this specification. Furthermore, all the modifications and changes belonging to equivalents of the claims are considered to fall within the scope of the present invention.