WO2022249553A1 - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
WO2022249553A1
WO2022249553A1 PCT/JP2022/004217 JP2022004217W WO2022249553A1 WO 2022249553 A1 WO2022249553 A1 WO 2022249553A1 JP 2022004217 W JP2022004217 W JP 2022004217W WO 2022249553 A1 WO2022249553 A1 WO 2022249553A1
Authority
WO
WIPO (PCT)
Prior art keywords
signature
certificate
video
public key
frame
Prior art date
Application number
PCT/JP2022/004217
Other languages
English (en)
French (fr)
Inventor
義行 小林
卓也 五十嵐
Original Assignee
ソニーグループ株式会社
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 ソニーグループ株式会社 filed Critical ソニーグループ株式会社
Priority to JP2023523976A priority Critical patent/JPWO2022249553A1/ja
Publication of WO2022249553A1 publication Critical patent/WO2022249553A1/ja

Links

Images

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/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates

Definitions

  • the present technology relates to an information processing device, method, and program, and particularly relates to an information processing device, method, and program that can guarantee the authenticity of video.
  • the camera itself generates an electronic signature for each frame of video using public key cryptography, and the receiver of the video verifies the electronic signature for each frame.
  • Patent Document 1 a technique for generating and verifying signatures using public key cryptography has been proposed (see Patent Document 1, for example).
  • the digital data M is compressed by the hash function H on the transmitting side, and the resulting constant-length output h is encrypted with the encryption key (secret key) Ke to obtain the digital signature data s. . Then, the digital data M and the digital signature data s are output as a set.
  • the digital signature data s is decrypted with the decryption key (public key) Kd corresponding to the encryption key (private key) Ke, and the output h' ' is generated. Furthermore, the digital data M is compressed by the hash function H to obtain the output h', and the obtained output h' and the output h'' are compared.
  • the digital data M is considered to be legitimate data that has not been illegally processed, and if the outputs h' and h'' do not match, , the digital data M is regarded as data that has undergone illegal processing.
  • the digital signature data s generated by the hash function H and the encryption key (private key) Ke is used to detect any modification, falsification, forgery, synthesis, etc. of the digital data M.
  • signatures are generated and verified on a frame-by-frame basis. Therefore, if tampering occurs, such as by extracting frames from a video or changing the order of frames, such tampering can be detected. can't
  • This technology has been developed in view of this situation, and enables the authenticity of video to be guaranteed.
  • An information processing device provides a a signature generation unit for generating a first signature for each frame; a certificate generation unit for generating a certificate including the identification information; and outputting the certificate, the video, and the first signature. and an output unit.
  • An information processing method or program according to the first aspect of the present technology is an information processing method or program corresponding to the information processing apparatus according to the first aspect of the present technology.
  • the A first signature for each frame is generated, a certificate is generated containing the identification information, and the certificate, the video and the first signature are output.
  • An information processing device includes a certificate for each time block including identification information given to a time block composed of a plurality of frames of video, the video, the identification information, the video, a first public key corresponding to a first secret key of a public key cryptosystem, and a first signature for each frame generated based on the first secret key; , a signature verification unit that verifies the first signature based on the certificate, the video, and the first public key.
  • An information processing method or program according to the second aspect of the present technology is an information processing method or program corresponding to the information processing apparatus according to the second aspect of the present technology.
  • a certificate for each time block including identification information given to a time block composed of a plurality of frames of video, the video, the identification information, and the frame of the video , a first public key corresponding to a first private key of a public key cryptosystem, and a first signature for each frame generated based on the first private key, the certificate, the The first signature is verified based on the video and the first public key.
  • FIG. 10 is a diagram showing an output example of a video image of a camera in verification method 1;
  • FIG. 10 is a diagram showing an output example of a video image of a camera in verification method 2;
  • FIG. 10 is a diagram showing an output example of a transcoder image in verification method 2;
  • FIG. 11 is a diagram showing an output example of a video image of a camera in verification method 3;
  • FIG. 11 is a diagram showing an output example of a transcoder image in verification method 3;
  • 1 is a diagram showing a configuration example of a video delivery system;
  • FIG. 2 is a diagram showing a configuration example of a transcoder;
  • 9 is a flowchart for explaining verification processing; 4 is a flowchart for explaining video output processing; It is a figure which shows the structural example of a client. 9 is a flowchart for explaining verification processing; It is a figure which shows the structural example of a computer.
  • This technology is for ensuring that, for example, video (continuous still images) captured and transmitted by a camera is not tampered with on a communication channel.
  • the present technology is to ensure the authenticity of the video captured and transmitted by the camera.
  • the present technology relates to a method of generating an electronic signature and a public key certificate that can track the original video even when the video is transcoded on a communication channel and transmitted to the client.
  • the camera attaches an electronic signature (hereinafter also simply referred to as a signature) to each frame of the video before transmission.
  • the receiver of the video can verify the authenticity of each frame by verifying the electronic signature for each frame of the received video (hereinafter also referred to as video frame).
  • hash function SHA256 Secure Hash Algorithm 256-bit function
  • Equation (2) is calculated based on the message m[i] and the secret key K dev_pri of the public key cryptosystem securely held by the camera, and the signature Signature[i ] is generated.
  • Equation (2) the signature Signature[i] is obtained by encrypting the message m[i] with the private key K dev_pri using Elliptic Curve Digital Signature Algorithm (ECDSA).
  • EDSA Elliptic Curve Digital Signature Algorithm
  • Equation (3) is calculated based on the secret key K dev_pri and the generator G on the elliptic curve, and the public key K dev_pub corresponding to the secret key K dev_pri of the public key cryptosystem is generated.
  • a device on the side of shooting and transmitting video (device on the transmitting side) simultaneously publishes the public key K dev_pub , the signature Signature[i], and the frame Frame[i] of the video obtained as described above.
  • the device on the transmitting side generates a public key certificate Certificate[i] by concatenating the public key K dev_pub and the signature Signature[i] as shown in the following equation (4). Certificate[i] and video frame Frame[i] are sequentially transmitted.
  • the public key K dev_pub and the signature Signature[i] are extracted from the received public key certificate Certificate[i], and the signature Signature[i] is verified by elliptic curve cryptography.
  • signature Signature[i] is verified with message m[i] obtained from frame Frame[i] and public key K dev_pub in the device on the receiving side using elliptic curve cryptography. This makes it possible to verify the authenticity of the i-th frame Frame[i] of the video.
  • the video is divided into time blocks (Time-Blocks), which are time intervals of a predetermined length, and a session ID corresponding to the video identifier is assigned (generated) to each time block to be signed. stored in the data.
  • This session ID is identification information that can uniquely identify each time block. Also, for example, a video frame group for 10 seconds can be set as one time block.
  • Frame[j][i] be the i-th frame (video frame) from the beginning of the j-th time block from the beginning of the video.
  • session-id[j] be the session ID that identifies the j-th time block from the beginning of the video.
  • the size of session-id[j] can be 16 bytes.
  • information indicating the position of the i-th frame Frame[j][i] from the beginning of the j-th time block in the entire video that is, information indicating the position relative to the beginning of the video is frame position information.
  • the frame position information t[i] can be the frame number from the beginning of the video of frame Frame[j][i], or the time code of frame Frame[j][i].
  • the size of the frame position information t[i] can be 16 bytes.
  • verification method 1 the following verification is performed for each frame Frame[j][i] by referring to session-id[j] and t[i].
  • the message m[j][i] for the frame Frame[j][i] is obtained.
  • the signature Signature[j][i] is obtained by encrypting the message m[j][i] with the private key K dev_pri using elliptic curve cryptography (ECDSA).
  • the public key K dev_pub corresponding to the private key K dev_pri is generated (calculated) by the above equation (3), and the public key K dev_pub and the signature Signature[j][i] are published at the same time.
  • public key certificate Certificate[ j][i] is generated.
  • each frame of video is represented as Frame[1][1], Certificate[1][1], Frame[1][2], Certificate[1][2], .
  • the frame Frame[j][i] and the public key certificate Certificate[j][i] are sent in order to the receiving device.
  • one time block consists of n frames.
  • the video receiver side that is, the device on the video receiving side, receives the signature Signature[j]. Verification of [i] is performed.
  • the receiving device extracts the public key K dev_pub , session-id[j], and signature Signature[j][i] from the received public key certificate Certificate[j][i].
  • frame position information t[i] for each frame is generated.
  • the message m[j][i] is obtained for the received video frame Frame[j][i].
  • each frame Frame[j][i] can be verified on a frame-by-frame basis.
  • the message m[j][i] includes session-id[j] and frame position information t[i], it is possible to detect tampering such as removal of frames or rearrangement of frames.
  • session-id[j] in message m[j][i]
  • session-id[j] in message m[j][i]
  • frame position information t[i] in the message m[j][i] it is possible to detect frame extraction, order change, and the like.
  • verification method 2 of this technology which enables chaining of public key certificates before and after video transcoding, will be described. That is, a method of generating a public key certificate for verifying the relationship between a video before transcoding and a video after transcoding will be described below.
  • a private key K trans_pri of public key cryptography is added to the video before transcoding, and the transcoder uses the private key K trans_pri to convert the public key certificate of the video after transcoding.
  • signature generation By generating a signature using the private key K trans_pri added to the pre-transcoded video, the relationship between the pre-transcoded video and the post-transcoded video can be verified.
  • the secret key K trans_pri is discarded after signature generation, and a new secret key K′ trans_pri of the public key cryptosystem is generated and added to the transcoded video.
  • Still another transcoder that has received the transcoded video uses the private key K' trans_pri to further generate a signature for the public key certificate of the transcoded video.
  • the relationship between the received video and the original video shot by the camera can be verified by a chain of signatures based on the private key K trans_pri attached to the video before transcoding.
  • a new key pair is generated each time video is transcoded here.
  • K trans_pub K trans_pri G
  • K' trans_pub K' trans_pri G
  • K'' trans_pub K' trans_pri G
  • Verification method 2 will be described in more detail below.
  • the following processing is performed as signature generation at the time of shooting and distribution of the original video with the camera, which is not video transcoding.
  • a session-id [j], which is a session ID, is assigned to each time block of the image obtained by shooting, and a secret key K, which is a key pair of the public key cryptosystem for the original image.
  • trans_pri and public key K trans_pub are generated.
  • frame position information t[i] for each frame is generated.
  • frame Frame[j][i] signature target data c[j][i]
  • frame position information t[i] are concatenated based on hash function SHA256 as shown in the following equation (11).
  • message m[j][i] for frame Frame[j][i] is obtained.
  • the signature Signature[j][i] is obtained by encrypting the message m[j][i] with the secret key K dev_pri using elliptic curve cryptography.
  • the public key certificate Certificate[j][i] and the private key K trans_pri are concatenated to form data to be added to the video frame Frame[j][i]. be.
  • the video frame Frame[j][i], the public key certificate Certificate[j][i], and the private key K trans_pri are sequentially transmitted.
  • images are represented as Frame[1][1], Certificate[1][1], K trans_pri , Frame[1][2], Certificate[1][2], K trans_pri , . , the frame Frame[j][i], the public key certificate Certificate[j][i] and the private key K trans_pri are sent to the receiving device in turn.
  • one time block consists of n frames.
  • the video receiver side that is, the device on the receiving side of the video
  • the original video captured and distributed by the camera is directly received, that is, if no transcoding occurs, the video frame Frame[j][i ], Signature[j][i] is verified.
  • the transcoder receives the original video frame Frame[j][i], the public key certificate Certificate[j][i], and the private key K trans_pri from the camera.
  • the transcoder extracts the data to be signed c[j][i] and the signature Signature[j][i] from the received public key certificate Certificate[j][i].
  • frame position information t[i] for each frame is generated.
  • the message m[j][i] is obtained for the received video frame Frame[j][i].
  • the frame Frame[j][i] the data to be signed c[j][i]
  • the frame position information t[i] are concatenated to calculate a hash value, and the message m [j][i] are required.
  • the signature Signature[j][i] is verified with the message m[j][i] obtained from the frame Frame[j][i] by the transcoder and the public key K dev_pub using elliptic curve cryptography. be done.
  • each frame Frame[j][i] can be verified on a frame-by-frame basis.
  • the message m[j][i] contains session-id[j] and frame position information t[i], as in the case of verification method 1, it is possible to extract frames, change the order, etc. Tampering can be detected.
  • the transcoder After verifying such a signature Signature[j][i], the transcoder performs transcoding on the video received from the camera, resulting in a corresponding frame Frame[j][i] of the original video. , each frame Frame'[j][i] of the video after transcoding is obtained.
  • the transcoder generates a signature for each Frame'[j][i] after transcoding in the same way that the camera generates a signature for the original video frame Frame[j][i].
  • a session-id [j] which is a session ID
  • K'trans_pri and a public key K'trans_pub which are a pair of keys, are generated.
  • This signature target data c'[j][i] is data common to each video frame Frame'[j][i] in one time block.
  • the video after transcoding and the public key certificate Certificate'[j][i] described later are received.
  • a third party can verify the signature using the public key K'trans_pub in the signature target data c'[j][i] included in the public key certificate Certificate'[j][i].
  • the public key certificate attached to the transcoded video frame contains the signature generated by the private key K' trans_pri attached to the transcoded video frame Frame'[j][i]. It is possible to verify that
  • the frame Frame'[j][i] the data to be signed c'[j][i] obtained by the equation (16)
  • the message m'[j][i] for the frame Frame'[j][i] is obtained by calculating the hash value of the data obtained by concatenating the frame position information t[i].
  • the signature Signature[j][i] is obtained by encrypting the message m'[j][i] with the private key K transcoder_pri using elliptic curve cryptography.
  • the secret key K trans_pri received together with the video frame Frame[j][i] from the camera is generated. signature generation is also performed.
  • equation (20) is calculated based on the signature target data c'[j][i] obtained by equation (19) and the private key K trans_pri received from the camera, and the public key certificate Certificate[ A signature Signature'[j][i] is generated for signature target data c'[j][i] including j][i].
  • the signature Signature'[j][i] is obtained by encrypting the signature target data c'[j][i] with the private key K trans_pri using elliptic curve cryptography.
  • the public key certificate Certificate'[j][i] is generated by the following equation (21). generated.
  • the public key certificate Certificate'[j][i] and the private key K'trans_pri are concatenated and added to the video frame Frame'[j][i]. data.
  • one time block consists of n frames.
  • the video frame Frame'[j ][i] signature verification is performed.
  • the client receives a transcoded video frame Frame'[j][i], a public key certificate Certificate'[j][i], and a private key K' trans_pri from the transcoder.
  • the client receives public key certificate Certificate'[j][i], public key certificate Certificate[j][i], public key K transcoder_pub , public key K' trans_pub , signature Signature[j] [i], and Signature'[j][i] are extracted. Furthermore, a session ID (session-id[j]) and a public key K trans_pub are also extracted from the extracted public key certificate Certificate[j][i].
  • frame position information t[i] for each video frame Frame'[j][i] is generated.
  • the client also verifies the signature Signature'[j][i].
  • the public key certificate Certificate[j][i], the public key K transcoder_pub , and the public key K' trans_pub are concatenated to obtain the data to be signed c'[j][i] shown in Equation (19) above. is generated.
  • the signature Signature'[j][i] is obtained by the following equation (24). Verification is done.
  • verification method 2 it is possible to guarantee the authenticity of the video after transcoding, and also to guarantee the authenticity of the video before transcoding, that is, to track the original video.
  • verification method 2 it is necessary to perform signature verification twice for each video frame Frame'[j][i]. That is, it is necessary to verify signature Signature'[j][i] and signature Signature[j][i] for each video frame Frame'[j][i].
  • verification method 3 it is possible to separate the common value within the time block from the public key certificate Certificate[j][i] and place the separated value at the beginning of the time block.
  • verification method 3 Such a method is hereinafter referred to as verification method 3.
  • verification method 3 redundancy in the structure of the public key certificate Certificate[j][i] can be eliminated and the number of signature verifications can be reduced. That is, in verification method 3, signature verification is performed once for each video frame, and signature verification is performed once for each time block.
  • Verification method 3 will be described in more detail below.
  • the following processing is performed as signature generation at the time of shooting and distribution of the original video with the camera, which is not video transcoding.
  • a session-id [j], which is a session ID, is assigned to each time block of the image obtained by shooting, and a secret key K, which is a key pair of the public key cryptosystem for the original image.
  • trans_pri and public key K trans_pub are generated.
  • equation (26) is calculated based on the data to be signed c[j] obtained by equation (25) and the secret key K dev_pri of the public key cryptosystem that is securely held by the camera.
  • a signature Sig[j] for each block is generated.
  • the signature Sig[j] is obtained by encrypting the signature target data c[j] with the private key K dev_pri using elliptic curve cryptography.
  • the data to be signed c[j] and the signature Sig[j] are concatenated to generate a public key certificate Certificate[j] for each time block.
  • the public key certificate Certificate[j] and the private key K trans_pri are concatenated to form data to be added to the beginning of the time block indicated by session-id[j]. .
  • Equation (30) is calculated based on the message m[j][i] obtained by equation (29) and the secret key K dev_pri of the public key cryptosystem that is securely held by the camera.
  • a signature Signature[j][i] of frame Frame[j][i] is generated.
  • the signature Signature[j][i] is obtained by encrypting the message m[j][i] with the private key K dev_pri using elliptic curve cryptography.
  • the signature Signature[j][i] thus obtained is used as data to be added to the frame Frame[j][i] as shown in the following equation (31).
  • a public key certificate Certificate[j], a private key K trans_pri , a video frame Frame[j][i], and a signature Signature added to the video frame Frame[j][i] [j][i] are transmitted in sequence.
  • a public key certificate Certificate[j] and a private key K trans_pri are transmitted at the beginning of a time block, and after that, for each frame of video, a frame Frame[j][i] and a signature Signature[j][i] are transmitted. Sent to the receiving device in order.
  • one time block consists of n frames.
  • the video receiver side that is, the device on the video receiving side
  • the original video captured and distributed by the camera is directly received, that is, if transcoding has not occurred, the following verification is performed.
  • the transcoder has received a public key certificate Certificate[j], a private key Ktrans_pri , an original video frame Frame[j][i], and a signature Signature[j][i] from the camera.
  • the transcoder extracts public key Kdev_pub , session-id[j], public key Ktrans_pub , and signature Sig[j] from the received public key certificate Certificate[j].
  • the data c[j] to be signed in Equation (25) consisting of the public key K dev_pub , session-id[j], and the public key K trans_pub , and the signature Sig[j] are the public key certificate Certificate[ j].
  • signature Sig[j] is signed with signature target data c[j] extracted (read) from public key certificate Certificate[j] by a transcoder and public key K dev_pub using elliptic curve cryptography. is verified. This makes it possible to verify the authenticity of the public key certificate Certificate[j].
  • the transcoder counts frames Frame[j][i] from the beginning of the received video and stores the count result to obtain frame position information t[i] for each frame Frame[j][i]. ] is generated.
  • Equation (33) based on the message m[j][i], the public key K dev_pub and the signature Signature[j][i], the signature Signature[j][i] is verified by Equation (33) below.
  • the signature Signature[j][i] is verified with the message m[j][i] obtained from the frame Frame[j][i] by the transcoder and the public key K dev_pub using elliptic curve cryptography. be done.
  • message m[j][i] also includes session-id[j] and frame position information t[i], so similar to verification method 1, frame extraction and It is possible to detect changes in the order of images, tampering with images in which multiple different images are spliced together, and the like.
  • the transcoder After verifying the signature Sig[j] for each time block and the signature Signature[j][i] for each frame as described above, the transcoder transcodes the video received from the camera, resulting in the original Assume that each frame Frame'[j][i] of the transcoded video corresponding to each frame Frame[j][i] of the video is obtained.
  • the transcoder generates a signature when distributing the transcoded video as follows.
  • the transcoder generates a private key K'trans_pri and a public key K'trans_pub , which are a key pair of public key cryptography for transcoded video.
  • the public key certificate Certificate[j] the public key K transcoder_pub corresponding to the private key K transcoder_pri securely held by the transcoder, and the public key K′ trans_pub are obtained as shown in the following equation (34).
  • the data to be signed c'[j] is generated (configured) by concatenation.
  • the signature Sig1'[j] is obtained by encrypting the signature target data c'[j] with the private key K transcoder_pri using elliptic curve cryptography.
  • equation (36) is calculated based on the signature target data c′[j] obtained by equation (34) and the private key K trans_pri received from the camera, and the public key certificate Certificate[j ], a signature Sig2'[j] for each time block is generated.
  • the signature Sig2'[j] is obtained by encrypting the signature target data c'[j] with the private key K trans_pri using elliptic curve cryptography.
  • signature target data c'[j], signature Sig1'[j], and signature Sig2'[j] are concatenated to obtain a public key certificate for each time block. Certificate'[j] is generated.
  • the public key certificate Certificate'[j] and the private key K' trans_pri are concatenated and used as data to be added to the beginning of the time block indicated by session-id[j]. be.
  • the generated secret key K' trans_pri is added to the video frame Frame'[j][i] and the video is transmitted.
  • the public key certificate Certificate'[j ] can be encrypted with the private key K' trans_pri to generate the signature Sig2''[j].
  • frame Frame'[j][i] signature target data c'[j]
  • frame position information t[i] are concatenated based on the hash function SHA256 as shown in the following equation (40).
  • Message m'[j][i] for frame Frame'[j][i] is obtained by calculating the hash value of the obtained data.
  • Equation (41) is calculated based on the message m′[j][i] obtained by equation (40) and the secret key K transcoder_pri of the public key cryptosystem securely held by the transcoder. , a signature'[j][i] of the video frame Frame'[j][i] is generated.
  • the signature Signature'[j][i] is obtained by encrypting the message m'[j][i] with the secret key K transcoder_pri using elliptic curve cryptography.
  • the signature Signature'[j][i] is data to be added to the video frame Frame'[j][i].
  • a public key certificate Certificate'[j] and a private key K'trans_pri are added to a video frame Frame'[j][i] and a video frame Frame'[j][i].
  • signatures Signature'[j][i] are sent in sequence.
  • the public key certificate Certificate'[j] and the private key K'trans_pri are transmitted at the beginning of the time block, and after that, for each frame of the video, the frame Frame'[j][i] and the signature Signature'[j] [i] is sent to the receiving device (client) in order.
  • one time block consists of n frames.
  • the private key K trans_pri received from the camera is discarded after the signature Sig2′[j] is generated and is not sent to the client.
  • the following verification is performed when the transcoded video is received, that is, when transcoding occurs.
  • the client receives from the transcoder a public key certificate Certificate'[j], a private key K' trans_pri , a transcoded video frame Frame'[j][i], and a signature Signature'[j][i] is received.
  • Frame position information t[i] for each frame Frame'[j][i] is generated by counting frames Frame'[j][i] from the beginning of the received video and holding the count results. be done.
  • the signature Sig[j] for each time block is verified by the above equation (32) based on the data c[j] to be signed, the public key K dev_pub and the signature Sig[j].
  • the signature target data c'[j] is generated by concatenating the public key certificate Certificate[j], the public key K transcoder_pub , and the public key K'trans_pub . be.
  • the signature Sig1'[j] is verified with the signature target data c'[j] generated from the public key certificate Certificate[j] by the transcoder and the public key K transcoder_pub by elliptic curve cryptography. .
  • signature Sig2'[j] for each time block can be verified by the following equation (44). done.
  • the signature Sig2'[j] is verified with the signature target data c'[j] generated from the public key certificate Certificate[j] by the transcoder and the public key K trans_pub by elliptic curve cryptography. .
  • the client After that, the client also verifies the signature Signature'[j][i].
  • the frame Frame'[j][i] the data to be signed c'[j]
  • the frame position information t[i] are concatenated to obtain
  • the message m'[j][i] is obtained by calculating the hash value of the data obtained.
  • Equation (45) the message m'[j][i] obtained from the frame Frame'[j][i] at the client by the elliptic curve cryptography and the signature Signature'[j][i] with the public key K transcoder_pub is verified.
  • the authenticity of the video frame Frame'[j][i] is verified on a video frame basis.
  • the message m'[j][i] contains session-id[j] and frame position information t[i]
  • verification method 3 it is possible to guarantee the authenticity of the video after transcoding, and also to guarantee the authenticity of the video before transcoding, that is, to track the original video.
  • a public key certificate Certificate'[j] containing data common to time blocks such as signature target data c[j] is generated for each time block.
  • K transcoder_pub can be linked.
  • a public key certificate signed by an appropriate certification authority should be distributed to the video receiver.
  • the client can dynamically obtain the public key K dev_pub based on the ID information.
  • the signature generation method may be any other method such as RSA encryption.
  • FIG. 6 is a diagram showing a configuration example of an embodiment of a video distribution system to which this technology is applied.
  • the video distribution system shown in FIG. 6 has a camera 11, a transcoder 12, and a client 13.
  • the camera 11 captures a video to be distributed and transmits the obtained video to the transcoder 12. For example, video is transmitted (distributed) from the camera 11 to the transcoder 12 in the format shown in FIG.
  • the transcoder 12 verifies the video received from the camera 11 , transcodes the received video, and transmits the transcoded video to the client 13 .
  • video is transmitted (distributed) from the transcoder 12 to the client 13 in the format shown in FIG.
  • the client 13 receives the video from the transcoder 12, verifies the received video, and displays or records the received video.
  • FIG. 7 is a diagram showing a configuration example of the camera 11. As shown in FIG. 7
  • the camera 11 is a device such as a camera having a photographing function, and has a photographing unit 41, a certificate generation unit 42, a signature generation unit 43, and an output unit 44.
  • the photographing unit 41 is composed of, for example, an image sensor, etc., photographs a predetermined subject, and supplies the resulting video (successive still images) to the certificate generating unit 42, the signature generating unit 43, and the output unit 44. .
  • the certificate generation unit 42 generates a public key certificate for each time block obtained by dividing the video supplied from the imaging unit 41 and supplies it to the output unit 44, and also generates a signature. Various necessary information (data) is supplied to the signature generation unit 43 .
  • the signature generation unit 43 generates a signature for the video based on the video supplied from the imaging unit 41 and the information supplied from the certificate generation unit 42, and supplies the signature to the output unit 44.
  • the output unit 44 outputs (transmits) the public key certificate supplied from the certificate generation unit 42 , the video supplied from the imaging unit 41 , and the signature supplied from the signature generation unit 43 to the transcoder 12 .
  • step S11 the photographing unit 41 photographs a subject, and sequentially supplies the resulting video frame Frame[j][i] to the certificate generating unit 42, the signature generating unit 43, and the output unit 44.
  • step S ⁇ b>12 the certificate generation unit 42 generates a signature Sig[j] for each time block based on the video frame Frame[j][i] supplied from the imaging unit 41 .
  • the certificate generation unit 42 divides the video supplied from the imaging unit 41 into time blocks and assigns session-id[j] to each time block.
  • the certificate generation unit 42 also reads out the private key K dev_pri and the public key K dev_pub of the camera 11 , which are securely held in a recording unit (not shown) of the camera 11 .
  • the public key K dev_pub may be recorded in advance, or may be derived by the certificate generating unit 42 based on the private key K dev_pri using the above equation (3).
  • the certificate generating unit 42 generates a random number to generate a secret key K trans_pri for the video frame Frame[j][i], and based on the secret key K trans_pri , the above equation (3) is calculated. is calculated to derive (generate) the public key K trans_pub .
  • the certificate generator 42 then concatenates public key K dev_pub , session-id[j], and public key K trans_pub according to equation (25) to generate signature target data c[j] for each time block.
  • the certificate generating unit 42 calculates Equation (26) based on signature target data c[j] of Equation (25) and private key K dev_pri to generate signature Sig[j] for each time block.
  • the certificate generation unit 42 generates a public key certificate Certificate[j] including the signature Sig[j] for each time block obtained at step S12.
  • the certificate generation unit 42 concatenates the signature target data c[j] obtained by Equation (25) and the signature Sig[j] to generate a time block Generate a public key certificate Certificate[j] for each.
  • the certificate generation unit 42 concatenates the public key certificate Certificate[j] thus obtained and the private key K trans_pri as shown in Equation (28), and supplies the result to the output unit 44 .
  • the certificate generating unit 42 transmits the private key K dev_pri and signature target data c[j] required for the signature Signature[j][i] for each video frame Frame[j][i] to the signature generating unit 43. supply.
  • step S14 the signature generation unit 43 combines the video frame Frame[j][i] supplied from the imaging unit 41 with the private key K dev_pri and signature target data c[j] supplied from the certificate generation unit 42. Based on this, a signature Signature[j][i] for each video frame Frame[j][i] is generated.
  • the signature generation unit 43 counts the number of frames from the beginning of the video supplied from the imaging unit 41, generates frame position information t[i] for each frame Frame[j][i], and generates the formula ( 29) to calculate the message m[j][i].
  • the signature generation unit 43 concatenates the frame Frame[j][i], the data to be signed c[j] of Equation (25), and the frame position information t[i] based on the hash function SHA256.
  • the message m[j][i] for the frame Frame[j][i] is calculated by calculating the hash value of the obtained data.
  • the signature generation unit 43 calculates the above-described expression (30) based on the message m[j][i] obtained by the calculation of expression (29) and the secret key K dev_pri to obtain the video frame A signature Signature[j][i] for each Frame[j][i] is generated and supplied to the output unit 44 .
  • step S15 the output unit 44 outputs the video supplied from the imaging unit 41 to the transcoder 12 via a wired or wireless network, cable, or the like, and the video output processing ends.
  • the output unit 44 outputs the public key certificate Certificate[j] and the private key K trans_pri supplied from the certificate generation unit 42 at the beginning of the time block, as shown in FIG. 4, for example. Also, the output unit 44 outputs the video frame Frame[j][i] supplied from the imaging unit 41 and the signature Signature[j][i] supplied from the signature generation unit 43 for each video frame. do.
  • the camera 11 generates a signature Sig[j] including session-id[j] for each time block, and for each frame Frame[j][i], session-id[j] and A signature Signature[j][i] containing frame position information t[i] and frame Frame[j][i] is generated.
  • FIG. 9 is a diagram showing a configuration example of the transcoder 12. As shown in FIG.
  • the transcoder 12 is composed of an information processing device such as a computer having a transcoding function, and includes an acquisition unit 71, a verification unit 72, a conversion unit 73, a certificate generation unit 74, a signature generation unit 75, and an output unit 76. ing.
  • the acquisition unit 71 acquires the public key certificate Certificate[j], the private key K trans_pri , the video frame Frame[j][i], and the signature Signature[j][i] output from the output unit 44 of the camera 11. (received) and supplied to the verification unit 72 .
  • the verification unit 72 verifies the public key certificate Certificate[j] and the signature Signature[j][i] supplied from the acquisition unit 71, and converts the video frame Frame[j][i] according to the verification result. 73.
  • the verification unit 72 also supplies the public key certificate Certificate[j] and the private key K trans_pri to the certificate generation unit 74 , and supplies the public key certificate Certificate[j] to the signature generation unit 75 .
  • the verification unit 72 has a certificate verification unit 81 that verifies the public key certificate Certificate[j] and a signature verification unit 82 that verifies the signature Signature[j][i].
  • the conversion unit 73 transcodes the video frame Frame[j][i] supplied from the verification unit 72 to transform the video frame Frame[j][i] into the video frame Frame'[j][i ]. Since the conversion unit 73 performs transcoding in which the time code does not change, the video frame Frame[j][i] and the video frame Frame'[j][i] have session-id[j] and frame position information. t[i] does not change (is the same).
  • the conversion unit 73 supplies the video frame Frame'[j][i] obtained by transcoding to the certificate generation unit 74, the signature generation unit 75, and the output unit 76.
  • the certificate generation unit 74 Based on the public key certificate Certificate[j] and the private key K trans_pri supplied from the verification unit 72 and the video frame Frame'[j][i] supplied from the conversion unit 73, the certificate generation unit 74 generates A public key certificate Certificate'[j] for each time block is generated and supplied to the output unit 76 .
  • the certificate generation unit 74 supplies the signature generation unit 75 with various information (data) necessary for generating the signature Signature'[j][i].
  • the signature generation unit 75 receives the public key certificate Certificate[j] supplied from the verification unit 72, the video frame Frame'[j][i] supplied from the conversion unit 73, and the certificate supplied from the certificate generation unit 74. Based on the information, a signature Signature'[j][i] is generated for each video frame Frame'[j][i] and supplied to the output unit 76 .
  • the output unit 76 receives the public key certificate Certificate'[j] supplied from the certificate generation unit 74, the video frame Frame'[j][i] supplied from the conversion unit 73, and the image frame Frame'[j][i] supplied from the signature generation unit 75. Signature'[j][i] and the like are output (transmitted) to the client 13 .
  • the transcoder 12 starts verification processing when a video or the like is transmitted from the camera 11 . Verification processing by the transcoder 12 will be described below with reference to the flowchart of FIG.
  • step S41 the acquisition unit 71 acquires the public key certificate Certificate[j], the private key K trans_pri , the video frame Frame[j][i], and the signature Signature[j][i] transmitted from the camera 11. (received) and supplied to the verification unit 72 .
  • step S42 the certificate verification unit 81 verifies the public key certificate Certificate[j] supplied from the acquisition unit 71 for each time block.
  • the certificate verifying unit 81 obtains signature target data c[j] consisting of public key K dev_pub , session-id[j], and public key K trans_pub from public key certificate Certificate[j], signature Sig[j ] and extract.
  • the certificate verifying unit 81 calculates the above-described formula (32) based on the extracted data to be signed c[j], the public key K dev_pub and the signature Sig[j], thereby disclosing the data for each time block. Verify the key certificate Certificate[j], that is, the signature Sig[j].
  • step S43 the signature verification unit 82 verifies the signature Signature[j][i] supplied from the acquisition unit 71 for each video frame Frame[j][i].
  • the signature verification unit 82 counts the number of frames from the beginning of the received video to generate frame position information t[i] for each frame Frame[j][i].
  • the signature verification unit 82 concatenates the frame Frame[j][i], the data to be signed c[j] extracted by the certificate verification unit 81, and the frame position information t[i]. Based on the data and the hash function SHA256, the message m[j][i] is obtained by the above equation (29).
  • the signature verifying unit 82 calculates the above equation (33) to verify Signature[j][i].
  • the authenticity of the video frame Frame[j][i] is verified for each video frame.
  • the verification unit 72 verifies the public key certificate Certificate[j] and the signature Signature[j][i], and supplies the video frame Frame[j][i] to the conversion unit 73 when the authenticity is confirmed. .
  • the verification unit 72 supplies the public key certificate Certificate[j] and the private key K trans_pri to the certificate generation unit 74, and supplies the public key certificate Certificate[j] to the signature generation unit 75 to perform verification processing. ends.
  • the transcoder 12 verifies the public key certificate Certificate[j] and the signature Signature[j][i] of the video received from the camera 11 . By doing so, it is possible to detect image falsification or the like.
  • step S71 the conversion unit 73 transcodes the video frame Frame[j][i] supplied from the verification unit 72, and converts the resulting video frame Frame'[j][i] to a certificate. It is supplied to the generation unit 74 , signature generation unit 75 and output unit 76 .
  • step S72 the certificate generating unit 74 converts the public key certificate Certificate[j] and the private key K trans_pri supplied from the verifying unit 72 and the video frame Frame'[j][i] supplied from the converting unit 73 into Based on this, a signature for each time block is generated.
  • the certificate generation unit 74 reads out the private key K transcoder_pri and the public key K transcoder_pub of the transcoder 12 , which are securely held in a recording unit (not shown) of the transcoder 12 .
  • the public key K transcoder_pub may be recorded in advance, or may be derived by the certificate generation unit 74 based on the private key K transcoder_pri by calculation similar to the above equation (3).
  • the certificate generating unit 74 generates a random number to generate a private key K' trans_pri for the video frame Frame'[j][i], and also uses the above equation (3) based on the private key K' trans_pri . ) to derive (generate) the public key K′ trans_pub .
  • the certificate generating unit 74 connects the public key certificate Certificate[j], the public key K transcoder_pub , and the public key K'trans_pub by Equation (34) to generate signature target data c'[j]. .
  • the certificate generation unit 74 calculates the time block for the public key certificate Certificate[j] by performing the calculation of the above equation (35) based on the obtained signature target data c'[j] and the private key K transcoder_pri . Generate a signature Sig1'[j] for each.
  • the certificate generating unit 74 performs the calculation of the above-described formula (36) based on the obtained data to be signed c'[j] and the private key K trans_pri to generate a public key certificate Certificate[j]. Generate a signature Sig2'[j] for each time block for .
  • the certificate generator 74 discards the private key K trans_pri . That is, the private key K trans_pri is not stored in the public key certificate Certificate'[j] generated by the transcoder 12 . By doing so, it becomes possible to detect tampering with the public key certificate Certificate[j].
  • step S73 the certificate generation unit 74 generates a public key certificate Certificate'[j] based on the signature target data c'[j], the signature Sig1'[j], and the signature Sig2'[j] generated in step S72. to generate
  • the certificate generating unit 74 concatenates the data to be signed c'[j], the signature Sig1'[j], and the signature Sig2'[j] according to the above equation (37), thereby generating Generate a public key certificate Certificate'[j] for
  • the certificate generation unit 74 also concatenates the public key certificate Certificate'[j] and the private key K'trans_pri according to the equation (38) to obtain data to be added to the beginning of the time block, and supplies the data to the output unit 76. do.
  • the certificate generation unit 74 supplies the signature generation unit 75 with a private key K transcoder_pri , a public key K transcoder_pub , and a public key K′ trans_pub necessary for generation of the signature Signature'[j][i].
  • step S74 the signature generation unit 75 generates a signature Signature'[j][i] for each video frame Frame'[j][i] and supplies it to the output unit 76.
  • the signature generation unit 75 extracts session-id[j] from the public key certificate Certificate[j] of each time block supplied from the verification unit 72 .
  • the signature generation unit 75 counts the number of frames from the beginning of the video supplied from the conversion unit 73 to generate frame position information t[i] for each frame Frame'[j][i].
  • the signature generation unit 75 converts the public key K transcoder_pub supplied from the certificate generation unit 74, session-id[j], and the public key K' supplied from the certificate generation unit 74 according to the above equation (39). By concatenating with trans_pub , signature target data c'[j] is generated.
  • the signature generation unit 75 generates the frame Frame'[j][i], the signature target data c'[j] obtained by the expression (39), the frame position
  • the hash value of the data obtained by concatenating the information t[i] is calculated to obtain the message m'[j][i].
  • the signature generation unit 75 performs the calculation of the above equation (41) based on the obtained message m'[j][i] and the private key K transcoder_pri supplied from the certificate generation unit 74, A signature Signature'[j][i] for each video frame Frame'[j][i] is generated and supplied to the output unit 76 .
  • step S75 the output unit 76 outputs the video supplied from the conversion unit 73 to the client 13 via a wired or wireless network, cable, or the like, and the video output processing ends.
  • the output unit 76 outputs the public key certificate Certificate'[j] and the private key K' trans_pri supplied from the certificate generation unit 74 at the beginning of the time block, as shown in FIG. 5, for example. Further, the output unit 76 outputs the video frame Frame'[j][i] supplied from the conversion unit 73 and the signature Signature'[j][i] supplied from the signature generation unit 75 for each video frame. to output
  • the transcoder 12 generates a public key certificate Certificate'[j] including the original public key certificate Certificate[j] for each time block, and also generates a video frame Frame'[j][ Generate Signature'[j][i] for each i].
  • FIG. 12 is a diagram showing a configuration example of the client 13. As shown in FIG. 12
  • the client 13 is made up of an information processing device such as a computer, and has an acquisition unit 111 and a verification unit 112 .
  • the acquisition unit 111 receives the public key certificate Certificate'[j], the private key K' trans_pri , the video frame Frame'[j][i], and the signature Signature' output (transmitted) from the output unit 76 of the transcoder 12 .
  • [j][i] is acquired (received) and supplied to the verification unit 112 .
  • the verification unit 112 verifies the public key certificate Certificate'[j] and the signature Signature'[j][i] supplied from the acquisition unit 111.
  • the verification unit 112 has a certificate verification unit 121 that verifies the public key certificate Certificate'[j] and a signature verification unit 122 that verifies the signature Signature'[j][i].
  • the client 13 starts verification processing when the video or the like is transmitted from the transcoder 12 . Verification processing by the client 13 will be described below with reference to the flowchart of FIG. 13 .
  • step S101 the acquisition unit 111 obtains the public key certificate Certificate'[j] transmitted from the transcoder 12, the private key K'trans_pri , the video frame Frame'[j][i], and the signature Signature'[j]. [i] is acquired (received) and supplied to the verification unit 112 .
  • step S ⁇ b>102 the certificate verification unit 121 verifies the public key certificate Certificate′[j] for each time block supplied from the acquisition unit 111 .
  • the certificate verification unit 121 extracts public key certificate Certificate'[j] from public key certificate Certificate[j], public key K transcoder_pub , public key K' trans_pub , signature Sig1'[j], and signature Extract Sig2'[j]. Further, the certificate verification unit 121 obtains signature target data c[j], that is, public key K dev_pub , session-id[j], public key K trans_pub , and signature Sig[] from public key certificate Certificate[j]. j].
  • the certificate verification unit 121 calculates the signature Sig[ j] is verified. Next, the certificate verification unit 121 concatenates the public key certificate Certificate[j], the public key K transcoder_pub , and the public key K'trans_pub according to the above equation (34), and converts the signature target data c'[j] to Generate.
  • the certificate verification unit 121 calculates the time block by performing the calculation of the above equation (43) based on the generated data to be signed c'[j], the public key K transcoder_pub , and the signature Sig1'[j]. verifies each signature Sig1'[j].
  • the certificate verification unit 121 performs the calculation of the above equation (44) based on the generated data to be signed c'[j], the public key K trans_pub , and the signature Sig2'[j]. Verifies the signature Sig2'[j] for each time block.
  • the camera 11 that is the output source of the original video frame Frame[j][i] is specified from the public key K dev_pub , and the transcoded video frame Frame'[j][i] is output from the public key K transcoder_pub .
  • the originating transcoder 12 is also identified.
  • step S103 the signature verification unit 122 verifies the signature Signature'[j][i] supplied from the acquisition unit 111 for each video frame Frame'[j][i].
  • the signature verification unit 122 counts the number of frames from the beginning of the video supplied from the acquisition unit 111 to generate frame position information t[i] for each frame Frame'[j][i].
  • the signature verification unit 122 connects the public key K transcoder_pub extracted by the certificate verification unit 121, session-id[j], and the public key K' trans_pub , according to the above equation (39), to obtain a signature.
  • the signature verification unit 122 determines the frame Frame'[j][i], the signature target data c'[j] obtained by the expression (39), and the frame
  • the message m'[j][i] is calculated by obtaining the hash value of the data obtained by concatenating the position information t[i].
  • the signature verification unit 122 calculates the above-described formula (45 ) to verify the signature Signature'[j][i]. As a result, the authenticity of the video frame Frame'[j][i] is verified on a video frame basis.
  • the client 13 verifies the public key certificate Certificate'[j] and the signature Signature'[j][i] for the video received from the transcoder 12.
  • the series of processes described above can be executed by hardware or by software.
  • a program that constitutes the software is installed in the computer.
  • the computer includes, for example, a computer built into dedicated hardware and a general-purpose personal computer capable of executing various functions by installing various programs.
  • FIG. 14 is a block diagram showing an example hardware configuration of a computer that executes the series of processes described above by a program.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • An input/output interface 505 is further connected to the bus 504 .
  • An input unit 506 , an output unit 507 , a recording unit 508 , a communication unit 509 and a drive 510 are connected to the input/output interface 505 .
  • the input unit 506 consists of a keyboard, mouse, microphone, imaging device, and the like.
  • the output unit 507 includes a display, a speaker, and the like.
  • a recording unit 508 is composed of a hard disk, a nonvolatile memory, or the like.
  • a communication unit 509 includes a network interface and the like.
  • a drive 510 drives a removable recording medium 511 such as a magnetic disk, optical disk, magneto-optical disk, or semiconductor memory.
  • the CPU 501 loads the program recorded in the recording unit 508 into the RAM 503 via the input/output interface 505 and the bus 504 and executes the above-described series of programs. is processed.
  • the program executed by the computer (CPU 501) can be provided by being recorded on a removable recording medium 511 such as package media, for example. Also, the program can be provided via a wired or wireless transmission medium such as a local area network, the Internet, or digital satellite broadcasting.
  • the program can be installed in the recording unit 508 via the input/output interface 505 by loading the removable recording medium 511 into the drive 510 . Also, the program can be received by the communication unit 509 and installed in the recording unit 508 via a wired or wireless transmission medium. In addition, the program can be installed in the ROM 502 or the recording unit 508 in advance.
  • the program executed by the computer may be a program that is processed in chronological order according to the order described in this specification, or may be executed in parallel or at a necessary timing such as when a call is made. It may be a program in which processing is performed.
  • this technology can take the configuration of cloud computing in which one function is shared by multiple devices via a network and processed jointly.
  • each step described in the flowchart above can be executed by a single device, or can be shared by a plurality of devices.
  • one step includes multiple processes
  • the multiple processes included in the one step can be executed by one device or shared by multiple devices.
  • this technology can also be configured as follows.
  • the signature generation unit generates the first signature based on a first public key corresponding to the first private key, the identification information, the frame, and the first private key (1)
  • the information processing device described.
  • the signature generation unit generates a second public key corresponding to a second secret key in public key cryptography generated for the video, the first public key, the identification information, the frame, and the second public key. generating the first signature based on a private key of 1; the certificate generation unit generates the certificate including the identification information and the second public key; The information processing apparatus according to (2), wherein the output unit outputs the certificate, the second private key, the video, and the first signature. (5) The information processing apparatus according to (4), wherein the certificate generation unit generates the certificate for each time block.
  • the certificate generation unit generating a second signature for each time block based on the first public key, the second public key, and the first private key;
  • the information processing apparatus according to (5), wherein the certificate including the second signature, the identification information, and the second public key is generated.
  • the certificate generation unit generating the second signature based on the certificate of the original video containing the identification information, the first public key, the second public key, and the first private key; generating a third signature based on the certificate of the original video, the first public key, the second public key, and the second private key of the original video;
  • the information processing apparatus according to (6), wherein the certificate including the certificate of the original video, the second signature, the third signature, and the second public key is generated.
  • the information processing device generating a signature for each frame based on identification information attached to a time block consisting of a plurality of frames of video, the frames of the video, and a secret key of a public key cryptosystem; generating a certificate containing said identifying information; An information processing method for outputting the certificate, the video, and the signature. (9) generating a signature for each frame based on identification information attached to a time block consisting of a plurality of frames of video, the frames of the video, and a secret key of a public key cryptosystem; generating a certificate containing said identifying information; A program that causes a computer to execute processing including a step of outputting the certificate, the video, and the signature.
  • a certificate for each time block including identification information given to a time block consisting of a plurality of frames of video, the video, the identification information, the frames of the video, and a first secret of public key cryptography.
  • an obtaining unit for obtaining a first public key corresponding to the key and a first signature for each frame generated based on the first private key; and a signature verification unit that verifies the first signature based on the certificate, the video, and the first public key.
  • the first signature is generated based on position information indicating the position of the frame in the video, the identification information, the frame of the video, the first public key, and the first private key (10 ).
  • the first signature includes a second public key corresponding to a second secret key in public key cryptography generated for the video, the identification information, the frame of the video, and the first public key. , and generated based on the first private key, the certificate includes the identification information and the second public key;
  • the information processing apparatus according to (10) or (11), wherein the acquisition unit acquires the certificate, the second private key, the video, and the first signature.
  • the certificate includes a second signature generated based on the first public key, the second public key, and the first private key; (12), further comprising a certificate verification unit that verifies the second signature based on the first public key and the second public key.
  • Said certificate shall include: the certificate of the original video, comprising the identification information and the second public key of the original video; the second public key; said second signature generated based on said certificate of said original video, said first public key, said second public key, and said first private key; and a third signature generated based on the certificate of the original video, the first public key, the second public key, and the second private key of the original video. cage, The information processing apparatus according to (13), wherein the certificate verification unit verifies the third signature based on the certificate of the original video, the first public key, and the second public key. .
  • the information processing device Corresponding to a certificate for each time block including identification information given to a time block consisting of a plurality of frames of video, the video, the identification information, the frame of the video, and a secret key of public key cryptography and a signature for each frame generated based on the private key; An information processing method for verifying the signature based on the certificate, the video, and the public key.

Abstract

本技術は、映像の真正性を保証することができるようにする情報処理装置および方法、並びにプログラムに関する。 情報処理装置は、映像の複数のフレームからなるタイムブロックに付与された識別情報と、映像のフレームと、公開鍵暗号方式の第1の秘密鍵とに基づいて、フレームごとの第1の署名を生成する署名生成部と、識別情報を含む証明書を生成する証明書生成部と、証明書、映像、および第1の署名を出力する出力部とを備える。本技術はトランスコーダに適用することができる。

Description

情報処理装置および方法、並びにプログラム
 本技術は、情報処理装置および方法、並びにプログラムに関し、特に、映像の真正性を保証することができるようにした情報処理装置および方法、並びにプログラムに関する。
 例えばカメラにより撮影されて送信される映像、すなわち連続する静止画像が通信路上で改竄されていないことを保証するための技術が提案されている。
 そのような技術においては、カメラ自身により映像の各フレームに対する公開鍵暗号方式による電子署名が生成され、映像の受信者によりフレームごとに電子署名が検証される。
 例えば、共通鍵暗号方式による署名の生成および検証の方式も数多く提案されているが、そのような方式は、当事者間で事前にセキュアに共通鍵を共有する必要があるため、実用的であるとはいえない。
 そこで、公開鍵暗号方式により署名の生成および検証を行う方式の技術が提案されている(例えば、特許文献1参照)。
 例えば、公開鍵暗号方式により署名の生成および検証を行う方式として、ハッシュ関数と公開鍵暗号方式とを組み合わせたものも提案されている。
 具体的には、送信側においてデジタルデータMがハッシュ関数Hにより圧縮され、その結果として得られた一定長の出力hが暗号鍵(秘密鍵)Keにより暗号化されてデジタル署名データsが求められる。そして、デジタルデータMとデジタル署名データsとが一組とされて出力される。
 また、受信側では、デジタルデータMとデジタル署名データsとが受信されると、デジタル署名データsが暗号鍵(秘密鍵)Keに対応する復号鍵(公開鍵)Kdで復号され、出力h’’が生成される。さらに、デジタルデータMがハッシュ関数Hにより圧縮されて出力h’が求められ、得られた出力h’と出力h’’とが比較される。
 そして、それらの出力h’と出力h’’が一致した場合、デジタルデータMは不正な処理のされていない正当なデータであるとされ、出力h’と出力h’’が一致しない場合には、デジタルデータMは不正な処理が施されたデータとされる。
 以上の例では、ハッシュ関数Hと暗号鍵(秘密鍵)Keにより生成されたデジタル署名データsが用いられて、デジタルデータMに対する修正、改竄、偽造、合成等が検出される。
特許第4261724号公報
 しかしながら、上述した技術では、十分に映像の真正性が保証されているとはいえなかった。
 例えば、上述した技術では、フレーム単位で署名の生成および検証が行われるため、映像のフレームの抜き取りやフレームの順番の入れ替えなどの改竄が行われた場合には、そのような改竄を検知することができない。
 本技術は、このような状況に鑑みてなされたものであり、映像の真正性を保証することができるようにするものである。
 本技術の第1の側面の情報処理装置は、映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の第1の秘密鍵とに基づいて、前記フレームごとの第1の署名を生成する署名生成部と、前記識別情報を含む証明書を生成する証明書生成部と、前記証明書、前記映像、および前記第1の署名を出力する出力部とを備える。
 本技術の第1の側面の情報処理方法またはプログラムは、本技術の第1の側面の情報処理装置に対応する情報処理方法またはプログラムである。
 本技術の第1の側面においては、映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の第1の秘密鍵とに基づいて、前記フレームごとの第1の署名が生成され、前記識別情報を含む証明書が生成され、前記証明書、前記映像、および前記第1の署名が出力される。
 本技術の第2の側面の情報処理装置は、映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の第1の秘密鍵に対応する第1の公開鍵、および前記第1の秘密鍵に基づき生成された前記フレームごとの第1の署名とを取得する取得部と、前記証明書、前記映像、および前記第1の公開鍵に基づいて、前記第1の署名を検証する署名検証部とを備える。
 本技術の第2の側面の情報処理方法またはプログラムは、本技術の第2の側面の情報処理装置に対応する情報処理方法またはプログラムである。
 本技術の第2の側面においては、映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の第1の秘密鍵に対応する第1の公開鍵、および前記第1の秘密鍵に基づき生成された前記フレームごとの第1の署名とが取得され、前記証明書、前記映像、および前記第1の公開鍵に基づいて、前記第1の署名が検証される。
検証手法1におけるカメラの映像の出力例を示す図である。 検証手法2におけるカメラの映像の出力例を示す図である。 検証手法2におけるトランスコーダの映像の出力例を示す図である。 検証手法3におけるカメラの映像の出力例を示す図である。 検証手法3におけるトランスコーダの映像の出力例を示す図である。 映像配信システムの構成例を示す図である。 カメラの構成例を示す図である。 映像出力処理を説明するフローチャートである。 トランスコーダの構成例を示す図である。 検証処理を説明するフローチャートである。 映像出力処理を説明するフローチャートである。 クライアントの構成例を示す図である。 検証処理を説明するフローチャートである。 コンピュータの構成例を示す図である。
 以下、図面を参照して、本技術を適用した実施の形態について説明する。
〈第1の実施の形態〉
〈検証手法1について〉
 本技術は、例えばカメラが撮影して送信する映像(連続する静止画像)が通信路上で改竄されていないことを保証するためのものである。すなわち、本技術は、カメラが撮影して送信する映像の真正性を保証することができるようにするものである。
 例えば報道用カメラやセキュリティカメラなどにおいては、どのカメラで撮影された映像であるのかを特定できることや、カメラ等から送信された映像が改竄されていないことを保証すること、つまり映像の真正性を保証することは重要である。
 そこで、本技術では、映像のタイムブロックごとの識別子を用いることで、フレームの抜き取りやフレームの順番の入れ替えなどの改竄を検知できるようにし、映像の真正性を保証することができるようにした。特に本技術は、通信路上で映像をトランスコードしてクライアントに送信する場合においても、元の映像を追跡できる電子署名および公開鍵証明書の生成方式に関するものである。
 それでは、以下、本技術について具体的に説明する。
 例えば、カメラが撮影して送信する映像の真正性を保証するために、カメラが映像に対してフレームごとに電子署名(以下、単に署名とも称する)を付加して送信を行うとする。この場合、映像の受信者は、受信した映像のフレーム(以下、映像フレームとも称する)ごとに電子署名を検証することで、フレーム単位の真正性を検証できる。
 具体的には、例えば映像の先頭からi番目のフレームをFrame[i]とする。
 このとき、例えば次式(1)に示すようにハッシュ関数であるSHA256(Secure Hash Algorithm 256-bit)関数(以下、単にハッシュ関数SHA256とも称する)によりFrame[i]のハッシュ値を求めることで、メッセージm[i]が求められる。
Figure JPOXMLDOC01-appb-M000001
 また、メッセージm[i]と、カメラによりセキュアに保持される公開鍵暗号方式の秘密鍵Kdev_priとに基づいて次式(2)が計算され、映像のフレームFrame[i]の署名Signature[i]が生成される。
Figure JPOXMLDOC01-appb-M000002
 すなわち、式(2)では、楕円曲線暗号(ECDSA(Elliptic Curve Digital Signature Algorithm))により、秘密鍵Kdev_priでメッセージm[i]を暗号化することで、署名Signature[i]が得られる。
 さらに、秘密鍵Kdev_priと、楕円曲線上の生成元Gとに基づいて次式(3)が計算され、公開鍵暗号方式の秘密鍵Kdev_priに対応する公開鍵Kdev_pubが生成される。
Figure JPOXMLDOC01-appb-M000003
 映像の撮影および送信を行う側の装置(送信側の装置)は、以上のようにして得られた公開鍵Kdev_pubと署名Signature[i]と映像のフレームFrame[i]とを同時に公開する。
 すなわち、送信側の装置は、以下の式(4)に示すように公開鍵Kdev_pubと署名Signature[i]とを連結することで公開鍵証明書Certificate[i]を生成し、公開鍵証明書Certificate[i]と映像のフレームFrame[i]とを順次、送信する。
Figure JPOXMLDOC01-appb-M000004
 これにより、例えばFrame[1],Certificate[1],Frame[2],Certificate[2],・・・のように、映像の各フレームについて、公開鍵証明書Certificate[i]と映像のフレームFrame[i]が受信側の装置へと送信される。
 なお、式(4)において、「Kdev_pub||Signature[i]」は、公開鍵Kdev_pubと署名Signature[i]を、公開鍵Kdev_pubと署名Signature[i]の順番に連結すること、つまり公開鍵Kdev_pubの後ろに署名Signature[i]を連結することを示している。この連結を示す「||」については、以下において説明する式においても同様である。
 また、受信側の装置では、受信した公開鍵証明書Certificate[i]から公開鍵Kdev_pubと署名Signature[i]が取り出され、楕円曲線暗号による署名Signature[i]の検証が行われる。
 すなわち、受信した映像のフレームFrame[i]に基づいて、上述した式(1)と同様の計算が行われてメッセージm[i]が生成される。
 そして、メッセージm[i]、公開鍵Kdev_pub、および署名Signature[i]に基づいて、以下の式(5)により署名Signature[i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000005
 すなわち、式(5)では、楕円曲線暗号により、受信側の装置でフレームFrame[i]から求められたメッセージm[i]と公開鍵Kdev_pubで署名Signature[i]が検証される。これにより、映像のi番目のフレームFrame[i]の真正性を検証することができる。
 しかしながら、以上において説明した手法では、映像のフレーム(Frame[i])が抜き取られた場合や、フレームの順番が入れ替えられた場合、すなわちフレームの抜き取りや順番入れ替えといった改竄がなされたときには、そのような改竄を検知できない。
 そこで、例えば、以下で説明する本技術の検証手法1により公開鍵証明書および電子署名を生成すれば、フレームの抜き取りや順番入れ替えといった改竄を検知することができる。
 検証手法1では、映像が所定時間長の時間区間であるタイムブロック(Time-Block)に分割されるとともに、タイムブロックごとに、映像の識別子に相当するセッションIDが付与(生成)されて署名対象データに格納される。このセッションIDは、各タイムブロックを一意に識別可能な識別情報である。また、例えば10秒分の映像フレーム群を1つのタイムブロックとすることができる。
 いま、映像における先頭からj番目のタイムブロックの中で、そのタイムブロックの先頭からi番目のフレーム(映像フレーム)をFrame[j][i]とする。
 また、映像における先頭からj番目のタイムブロックを識別するセッションIDをsession-id[j]とする。例えばsession-id[j]のサイズは、16バイトなどとすることができる。
 さらに、例えばj番目のタイムブロックの先頭からi番目にある上述のフレームFrame[j][i]の映像全体における位置を示す情報、つまり映像の先頭を基準とする位置を示す情報をフレーム位置情報t[i]とする。
 例えばフレーム位置情報t[i]は、フレームFrame[j][i]の映像先頭からのフレーム番号、またはフレームFrame[j][i]のタイムコードなどとすることができる。また、例えばフレーム位置情報t[i]のサイズは、16バイトなどとすることができる。
 検証手法1では、session-id[j]とt[i]を参照して、フレームFrame[j][i]ごとに以下の検証が行われる。
 次式(6)に示すようにハッシュ関数SHA256に基づき、フレームFrame[j][i]と、session-id[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出することで、フレームFrame[j][i]についてのメッセージm[j][i]が求められる。
Figure JPOXMLDOC01-appb-M000006
 そして、メッセージm[j][i]と、カメラによりセキュアに保持される公開鍵暗号方式の秘密鍵Kdev_priとに基づいて次式(7)が計算され、映像のフレームFrame[j][i]の署名Signature[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000007
 すなわち、式(7)では、楕円曲線暗号(ECDSA)により、秘密鍵Kdev_priでメッセージm[j][i]を暗号化することで、署名Signature[j][i]が得られる。
 さらに、上述の式(3)により秘密鍵Kdev_priに対応する公開鍵Kdev_pubが生成(計算)され、公開鍵Kdev_pubと署名Signature[j][i]が同時に公開される。
 具体的には、例えば以下の式(8)に示すように、公開鍵Kdev_pubと、session-id[j]と、署名Signature[j][i]とが連結されて公開鍵証明書Certificate[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000008
 そして、例えば図1に示すように、映像のフレームFrame[j][i]と、公開鍵証明書Certificate[j][i]とが順次、送信される。
 図1に示す例では、Frame[1][1],Certificate[1][1],Frame[1][2],Certificate[1][2],・・・のように、映像の各フレームについて、フレームFrame[j][i]と、公開鍵証明書Certificate[j][i]とが受信側の装置へと順番に送信される。特に、この例では、1つのタイムブロックがn個のフレームにより構成されていることが分かる。
 一方、映像の受信者側、つまり映像の受信側の装置では、映像のフレームFrame[j][i]と公開鍵証明書Certificate[j][i]が受信されると、署名Signature[j][i]の検証が行われる。
 すなわち、受信側の装置では、受信した公開鍵証明書Certificate[j][i]から公開鍵Kdev_pub、session-id[j]、および署名Signature[j][i]が抽出される。
 また、受信した映像の先頭からフレームをカウントし、そのカウント結果を保持することで、各フレームについてのフレーム位置情報t[i]が生成される。
 次に、ハッシュ関数SHA256に基づき、受信した映像のフレームFrame[j][i]についてメッセージm[j][i]が求められる。
 すなわち、上述した式(6)により、フレームFrame[j][i]、session-id[j]、およびフレーム位置情報t[i]が連結されて得られるデータのハッシュ値が算出され、フレームFrame[j][i]についてのメッセージm[j][i]が求められる。
 そして、メッセージm[j][i]、公開鍵Kdev_pub、および署名Signature[j][i]に基づいて、以下の式(9)により署名Signature[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000009
 すなわち、式(9)では、楕円曲線暗号により、受信側の装置でフレームFrame[j][i]から求められたメッセージm[j][i]と公開鍵Kdev_pubで署名Signature[j][i]が検証される。
 これにより、映像のフレーム単位で各フレームFrame[j][i]の真正性を検証することができる。特に、メッセージm[j][i]にはsession-id[j]およびフレーム位置情報t[i]が含まれているため、フレームの抜き取りや順番入れ替えといった改竄を検知することができる。
 具体的には、例えばメッセージm[j][i]に、session-id[j]を含めることで、フレームの抜き取りや、タイムブロックを跨ぐフレームの順番入れ替え、複数の異なる映像を繋ぎ合わせた映像の改竄などを検知することができる。また、メッセージm[j][i]にフレーム位置情報t[i]を含めることで、フレームの抜き取りや順番入れ替えなどを検知することができる。
〈検証手法2について〉
 ところで、検証手法1では、フレームの抜き取りや順番入れ替えなどの改竄を検知することはできるが、映像に対するトランスコード時に元映像へのリンクがなくなる。
 そのため、映像受信者側では、トランスコード後の映像に関する真正性は検証できるが、トランスコードするにあたり映像差し替えや改竄などが行われていないことを検証することができない。すなわち、トランスコード前の映像に関する証跡が全くなくなってしまう。
 これは、トランスコード後には、トランスコード前の映像フレームFrame[j][i]の署名Signature[j][i]を保持し続けていても、その署名Signature[j][i]の検証に必要となるトランスコード前の映像フレームFrame[j][i]そのものが消失しており、検証が不可能となるからである。
 そこで、映像のトランスコード前後で公開鍵証明書を連鎖できるようにする本技術の検証手法2について説明する。すなわち、以下、トランスコードされる前の映像とトランスコードされた後の映像の関係性を検証できるようにするための公開鍵証明書の生成手法について説明する。
 検証手法2では、トランスコード前の映像には公開鍵暗号方式の秘密鍵Ktrans_priが付加されており、トランスコーダは、その秘密鍵Ktrans_priを用いたトランスコード後の映像の公開鍵証明書への署名生成を行う。トランスコード前の映像に付加されていた秘密鍵Ktrans_priを用いて署名を生成することで、トランスコード前の映像とトランスコード後の映像の関係性が検証可能になる。
 また、署名生成後には秘密鍵Ktrans_priは廃棄され、トランスコード後の映像に対して新規に公開鍵暗号方式の秘密鍵K’trans_priが生成されて付加される。トランスコード後の映像を受信したさらに別のトランスコーダは秘密鍵K’trans_priを用いてさらにトランスコード後の映像の公開鍵証明書への署名生成を行う。このトランスコード前の映像に付与された秘密鍵Ktrans_priによる署名の連鎖により、受信した映像からカメラで撮影されたオリジナル映像までの関係性が検証可能となる。
 特に、ここでは、公開鍵証明書Certificate[j][i]を連鎖させるための公開鍵暗号方式の秘密鍵と公開鍵のペア(鍵ペア)である{Ktrans_pri,Ktrans_pub},{K’trans_pri,K’trans_pub},{K’’trans_pri,K’’trans_pub},・・・を導入することとする。特に、ここでは映像がトランスコードされるたびに新たな鍵ペアが生成されていく。
 なお、秘密鍵に対応する公開鍵は、上述の式(3)と同様の計算で得ることができる。すなわち、Ktrans_pub=Ktrans_priG,K’trans_pub=K’trans_priG,K’’trans_pub=K’’trans_priG,・・・である。
 以下、検証手法2について、より具体的に説明する。
 まず、映像トランスコードではない、カメラでのオリジナルの映像の撮影および配信時における署名生成として、以下の処理が行われる。
 すなわち、カメラでは、撮影により得られた映像に対してタイムブロックごとにセッションIDであるsession-id[j]が付与されるとともに、オリジナルの映像に対する公開鍵暗号方式の鍵ペアである秘密鍵Ktrans_priと公開鍵Ktrans_pubが生成される。
 そして、次式(10)に示すように、カメラによりセキュアに保持される秘密鍵Kdev_priに対応する公開鍵Kdev_pubと、session-id[j]と、公開鍵Ktrans_pubとが連結されて、映像のフレームFrame[j][i]についての署名対象データc[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000010
 また、映像の先頭からフレームをカウントし、そのカウント結果を保持することで、各フレームについてのフレーム位置情報t[i]が生成される。
 さらに、次式(11)に示すようにハッシュ関数SHA256に基づき、フレームFrame[j][i]と、署名対象データc[j][i]と、フレーム位置情報t[i]とが連結されて、フレームFrame[j][i]についてのメッセージm[j][i]が求められる。
Figure JPOXMLDOC01-appb-M000011
 次に、メッセージm[j][i]と、カメラによりセキュアに保持される公開鍵暗号方式の秘密鍵Kdev_priとに基づいて次式(12)が計算され、映像のフレームFrame[j][i]の署名Signature[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000012
 すなわち、式(12)では、楕円曲線暗号により、秘密鍵Kdev_priでメッセージm[j][i]を暗号化することで、署名Signature[j][i]が得られる。
 次に、次式(13)に示すように、署名対象データc[j][i]と、署名Signature[j][i]とが連結されて公開鍵証明書Certificate[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000013
 さらに、次式(14)に示すように公開鍵証明書Certificate[j][i]と、秘密鍵Ktrans_priとが連結されて、映像のフレームFrame[j][i]に付加するデータとされる。
Figure JPOXMLDOC01-appb-M000014
 そして、例えば図2に示すように、映像のフレームFrame[j][i]と、公開鍵証明書Certificate[j][i]および秘密鍵Ktrans_priとが順次、送信される。
 図2では、Frame[1][1],Certificate[1][1],Ktrans_pri,Frame[1][2],Certificate[1][2],Ktrans_pri,・・・のように、映像の各フレームについて、フレームFrame[j][i]と公開鍵証明書Certificate[j][i]と秘密鍵Ktrans_priとが受信側の装置へと順番に送信される。この例では1つのタイムブロックがn個のフレームにより構成されている。
 映像受信者側、つまり映像の受信側の装置では、カメラが撮影および配信したオリジナルの映像を直接受信した場合、つまりトランスコードが発生しなかった場合には、映像のフレームFrame[j][i]ごとに署名Signature[j][i]の検証が行われる。
 ここでは、トランスコーダがカメラからオリジナルの映像のフレームFrame[j][i]、公開鍵証明書Certificate[j][i]、および秘密鍵Ktrans_priを受信したとする。
 この場合、トランスコーダでは、受信した公開鍵証明書Certificate[j][i]から署名対象データc[j][i]および署名Signature[j][i]が抽出される。
 また、受信した映像の先頭からフレームをカウントし、そのカウント結果を保持することで、各フレームについてのフレーム位置情報t[i]が生成される。
 次に、ハッシュ関数SHA256に基づき、受信した映像のフレームFrame[j][i]についてメッセージm[j][i]が求められる。
 すなわち、上述した式(11)により、フレームFrame[j][i]、署名対象データc[j][i]、およびフレーム位置情報t[i]が連結されてハッシュ値が算出され、メッセージm[j][i]が求められる。
 そして、メッセージm[j][i]、署名対象データc[j][i]に含まれている公開鍵Kdev_pub、および署名Signature[j][i]に基づいて、以下の式(15)により署名Signature[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000015
 式(15)では、楕円曲線暗号により、トランスコーダでフレームFrame[j][i]から求められたメッセージm[j][i]と公開鍵Kdev_pubで署名Signature[j][i]が検証される。
 これにより、映像のフレーム単位で各フレームFrame[j][i]の真正性を検証することができる。特に、メッセージm[j][i]にはsession-id[j]およびフレーム位置情報t[i]が含まれているため、検証手法1における場合と同様に、フレームの抜き取りや順番入れ替え等の改竄を検知することができる。
 このような署名Signature[j][i]の検証後、トランスコーダがカメラから受信した映像に対してトランスコードを行い、その結果としてオリジナルの映像の各フレームFrame[j][i]に対応する、トランスコード後の映像の各フレームFrame’[j][i]が得られたとする。
 なお、ここでは、トランスコード時において、フレームレート変換や2:3pull-downなど、タイムコードが変わってしまうような変換は行われないものとする。
 また、トランスコーダでは、公開鍵暗号方式の秘密鍵Ktranscoder_priがセキュアに保持されており、その秘密鍵Ktranscoder_priに対応する公開鍵がKtranscoder_pub=Ktranscoder_priGであるとする。
 この場合、トランスコーダは、カメラでのオリジナルの映像フレームFrame[j][i]に対する署名生成と同様にして、トランスコード後の各Frame’[j][i]に対する署名を生成する。
 すなわち、トランスコーダでは、トランスコード後の映像に対してタイムブロックごとにセッションIDであるsession-id[j]が付与されるとともに、さらに別のトランスコーダが署名生成を行うための公開鍵暗号方式の鍵ペアである秘密鍵K’trans_priと公開鍵K’trans_pubが生成される。
 そして、次式(16)に示すように、トランスコーダによりセキュアに保持される秘密鍵Ktranscoder_priに対応する公開鍵Ktranscoder_pubと、session-id[j]と、公開鍵K’trans_pubとが連結されて署名対象データc’[j][i]が生成(構成)される。
Figure JPOXMLDOC01-appb-M000016
 この署名対象データc’[j][i]は、1つのタイムブロック内の各映像フレームFrame’[j][i]で共通なデータである。
 署名対象データc’[j][i]に公開鍵K’trans_pubが含まれるようにすることで、トランスコード後の映像と、後述する公開鍵証明書Certificate’[j][i]を受信した第三者は、公開鍵証明書Certificate’[j][i]に含まれる署名対象データc’[j][i]中の公開鍵K’trans_pubを用いた署名検証をすることができる。これにより、トランスコード後の映像フレームに付加される公開鍵証明書が、トランスコード後の映像フレームFrame’[j][i]に付加された秘密鍵K’trans_priにより生成された署名を含んでいることを検証することが可能となる。
 また、次式(17)に示すように、ハッシュ関数SHA256に基づき、フレームFrame’[j][i]と、式(16)で得られた署名対象データc’[j][i]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出することで、フレームFrame’[j][i]についてのメッセージm’[j][i]が求められる。
Figure JPOXMLDOC01-appb-M000017
 その後、メッセージm’[j][i]と、トランスコーダによりセキュアに保持される公開鍵暗号方式の秘密鍵Ktranscoder_priとに基づいて次式(18)が計算され、映像フレームFrame’[j][i]の署名Signature[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000018
 すなわち、式(18)では、楕円曲線暗号により、秘密鍵Ktranscoder_priでメッセージm’[j][i]を暗号化することで、署名Signature[j][i]が得られる。
 さらに、トランスコード後の映像フレームFrame’[j][i]に対しては、秘密鍵Ktranscoder_priによる署名生成に加えて、カメラから映像フレームFrame[j][i]とともに受信した秘密鍵Ktrans_priによる署名生成も行われる。
 すなわち、次式(19)に示すように、カメラから受信した公開鍵証明書Certificate[j][i]と、秘密鍵Ktranscoder_priに対応する公開鍵Ktranscoder_pubと、公開鍵K’trans_pubとが連結されて署名対象データc’[j][i]が生成(構成)される。この署名対象データc’[j][i]は、式(16)で得られるものとは異なるものである。
Figure JPOXMLDOC01-appb-M000019
 さらに、式(19)で得られた署名対象データc’[j][i]と、カメラから受信した秘密鍵Ktrans_priとに基づいて次式(20)が計算され、公開鍵証明書Certificate[j][i]を含む署名対象データc’[j][i]に対する署名Signature’[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000020
 すなわち、式(20)では、楕円曲線暗号により、秘密鍵Ktrans_priで署名対象データc’[j][i]を暗号化することで、署名Signature’[j][i]が得られる。
 このようにして得られた署名Signature’[j][i]を、フレームFrame’[j][i]の公開鍵証明書Certificate’[j][i]に格納することで、公開鍵証明書Certificate[j][i]と秘密鍵Ktrans_priとを連結して得られた上述の式(14)に示したデータが付加されたフレームFrame[j][i]を変換してフレームFrame’[j][i]を生成したことが検証可能となる。すなわち、フレームFrame[j][i]がフレームFrame’[j][i]の元映像であることを特定(追跡)することができる。
 以上のようにして署名Signature[j][i]および署名Signature’[j][i]が生成されると、その後、次式(21)により公開鍵証明書Certificate’[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000021
 すなわち、式(21)では、式(19)で得られた署名対象データc’[j][i]と、式(18)で得られた署名Signature[j][i]と、式(20)で得られた署名Signature’[j][i]とが連結されて公開鍵証明書Certificate’[j][i]が生成される。
 さらに、次式(22)に示すように公開鍵証明書Certificate’[j][i]と、秘密鍵K’trans_priとが連結されて、映像のフレームFrame’[j][i]に付加するデータとされる。
Figure JPOXMLDOC01-appb-M000022
 そして、例えば図3に示すように、映像のフレームFrame’[j][i]と、公開鍵証明書Certificate’[j][i]および秘密鍵K’trans_priとが順次、送信される。
 図3では、Frame’[1][1],Certificate’[1][1],K’trans_pri,Frame’[1][2],Certificate’[1][2],K’trans_pri,・・・のように、映像の各フレームについて、フレームFrame’[j][i]と公開鍵証明書Certificate’[j][i]と秘密鍵K’trans_priとが受信側の装置へと順番に送信される。この例では1つのタイムブロックがn個のフレームにより構成されている。
 また、上述したように映像フレームFrame’[j][i]の生成時には、フレームレート変換や2:3pull-downなど、タイムコードが変化する変換は行われないものとする。トランスコード前後で映像フレームのタイムコードが変化すると、トランスコード前後の映像でタイムブロックやフレーム位置情報t[i]が1対1対応ではなくなってしまうからである。
 また、トランスコーダからの映像の受信者側、つまり映像の受信側の装置(クライアント)では、トランスコード後の映像を受信した場合、つまりトランスコードが発生した場合には、映像フレームFrame’[j][i]ごとに署名の検証が行われる。
 ここでは、クライアントがトランスコーダからトランスコード後の映像のフレームFrame’[j][i]、公開鍵証明書Certificate’[j][i]、および秘密鍵K’trans_priを受信したとする。
 この場合、クライアントでは、受信した公開鍵証明書Certificate’[j][i]から、公開鍵証明書Certificate[j][i]、公開鍵Ktranscoder_pub、公開鍵K’trans_pub、署名Signature[j][i]、および署名Signature’[j][i]が抽出される。さらに、抽出した公開鍵証明書Certificate[j][i]から、セッションID(session-id[j])と公開鍵Ktrans_pubも抽出される。
 また、受信した映像の先頭からフレームをカウントし、そのカウント結果を保持することで、各映像フレームFrame’[j][i]についてのフレーム位置情報t[i]が生成される。
 次に、上述した式(16)により、公開鍵Ktranscoder_pubと、session-id[j]と、公開鍵K’trans_pubとが連結されて、タイムブロック内で共通な署名対象データc’[j][i]が生成(構成)され、フレームFrame’[j][i]ごとに以下の検証が行われる。
 すなわち、フレームFrame’[j][i]、式(16)により得られた署名対象データc’[j][i]、およびフレーム位置情報t[i]を連結して得られるデータと、ハッシュ関数SHA256とに基づいて上述した式(17)によりメッセージm’[j][i]が求められる。
 そして、メッセージm’[j][i]、公開鍵Ktranscoder_pub、および署名Signature[j][i]に基づいて、以下の式(23)により署名Signature[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000023
 式(23)では、楕円曲線暗号により、クライアントでフレームFrame’[j][i]から求められたメッセージm’[j][i]と公開鍵Ktranscoder_pubで署名Signature[j][i]が検証される。
 これにより、映像のフレーム単位で、映像フレームFrame’[j][i]の真正性が検証されたことになる。特に、メッセージm’[j][i]には、session-id[j]およびフレーム位置情報t[i]が含まれているため、検証手法1における場合と同様に、フレームの抜き取りや順番入れ替え等の改竄を検知することができる。
 さらに、クライアントでは、署名Signature’[j][i]の検証も行われる。
 すなわち、公開鍵証明書Certificate[j][i]、公開鍵Ktranscoder_pub、および公開鍵K’trans_pubが連結されて、上述の式(19)に示した署名対象データc’[j][i]が生成される。
 そして、署名対象データc’[j][i]、公開鍵Ktrans_pub、および署名Signature’[j][i]に基づいて、以下の式(24)により署名Signature’[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000024
 式(24)では、楕円曲線暗号により、クライアントにおいて公開鍵証明書Certificate[j][i]から求められた署名対象データc’[j][i]と公開鍵Ktrans_pubで署名Signature’[j][i]が検証される。
 これにより、映像のフレーム単位で、映像フレームFrame’[j][i]に付加された公開鍵証明書Certificate[j][i]の真正性が検証されたことになる。換言すれば、フレームFrame[j][i]を変換してフレームFrame’[j][i]を生成したこと、つまりフレームFrame[j][i]がフレームFrame’[j][i]の元映像であることが検証されたことになる。
 以上のように、検証手法2によれば、トランスコード後の映像に関する真正性を保証するとともに、トランスコード前の映像に関する真正性の保証、すなわち元映像の追跡も実現することができる。
〈検証手法3について〉
 ところで、検証手法2では、同じタイムブロック内において、各映像フレームFrame’[j][i]に付加される公開鍵証明書Certificate’[j][i]内にある公開鍵証明書Certificate[j][i]については、署名Signature[j][i]以外の署名対象データc[j][i]は共通となっている。換言すれば、公開鍵証明書Certificate’[j][i]は冗長性を有する構造となっている。
 また、検証手法2では、映像フレームFrame’[j][i]ごとに署名検証を2回行う必要がある。すなわち、映像フレームFrame’[j][i]ごとに、署名Signature’[j][i]と署名Signature[j][i]の検証を行う必要がある。
 そこで、公開鍵証明書Certificate[j][i]からタイムブロック内で共通の値を分離し、分離した値をタイムブロックの先頭に配置するようにしてもよい。以下では、そのような手法を検証手法3と呼ぶこととする。
 検証手法3によれば、公開鍵証明書Certificate[j][i]の構造の冗長性を排除し、かつ署名検証の回数を低減させることができる。すなわち、検証手法3では、映像フレームごとに1回の署名検証を行い、タイムブロックごとに1回の署名検証を行えばよい。
 以下、検証手法3について、より具体的に説明する。
 まず、映像トランスコードではない、カメラでのオリジナルの映像の撮影および配信時における署名生成として、以下の処理が行われる。
 すなわち、カメラでは、撮影により得られた映像に対してタイムブロックごとにセッションIDであるsession-id[j]が付与されるとともに、オリジナルの映像に対する公開鍵暗号方式の鍵ペアである秘密鍵Ktrans_priと公開鍵Ktrans_pubが生成される。
 そして、次式(25)に示すように、カメラによりセキュアに保持される秘密鍵Kdev_priに対応する公開鍵Kdev_pubと、session-id[j]と、公開鍵Ktrans_pubとが連結されて、session-id[j]により示されるタイムブロックについての署名対象データc[j]が生成される。
Figure JPOXMLDOC01-appb-M000025
 次に、式(25)により得られた署名対象データc[j]と、カメラによりセキュアに保持される公開鍵暗号方式の秘密鍵Kdev_priとに基づいて次式(26)が計算され、タイムブロックごとの署名Sig[j]が生成される。
Figure JPOXMLDOC01-appb-M000026
 すなわち、式(26)では、楕円曲線暗号により、秘密鍵Kdev_priで署名対象データc[j]を暗号化することで、署名Sig[j]が得られる。
 また、次式(27)に示すように、署名対象データc[j]と署名Sig[j]とが連結されて、タイムブロックごとの公開鍵証明書Certificate[j]が生成される。
Figure JPOXMLDOC01-appb-M000027
 さらに、次式(28)に示すように公開鍵証明書Certificate[j]と秘密鍵Ktrans_priとが連結されて、session-id[j]により示されるタイムブロックの先頭に付加するデータとされる。
Figure JPOXMLDOC01-appb-M000028
 次に、映像フレームFrame[j][i]ごとに署名Signature[j][i]が生成される。
 すなわち、次式(29)に示すように、ハッシュ関数SHA256に基づき、フレームFrame[j][i]と、署名対象データc[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出することで、フレームFrame[j][i]についてのメッセージm[j][i]が求められる。
Figure JPOXMLDOC01-appb-M000029
 そして、式(29)により得られたメッセージm[j][i]と、カメラによりセキュアに保持される公開鍵暗号方式の秘密鍵Kdev_priとに基づいて次式(30)が計算され、映像フレームFrame[j][i]の署名Signature[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000030
 すなわち、式(30)では、楕円曲線暗号により、秘密鍵Kdev_priでメッセージm[j][i]を暗号化することで、署名Signature[j][i]が得られる。
 このようにして得られた署名Signature[j][i]が、次式(31)に示すように、フレームFrame[j][i]に付加されるデータとされる。
Figure JPOXMLDOC01-appb-M000031
 そして、例えば図4に示すように公開鍵証明書Certificate[j]および秘密鍵Ktrans_priと、映像フレームFrame[j][i]と、映像フレームFrame[j][i]に付加された署名Signature[j][i]とが順次、送信される。
 図4では、Certificate[1],Ktrans_pri,Frame[1][1],Signature[1][1],Frame[1][2],Signature[1][2],・・・,Certificate[2],Ktrans_pri,Frame[2][1],Signature[2][1],Frame[2][2],Signature[2][2],・・・のように各データが送信される。
 すなわち、タイムブロックの先頭で公開鍵証明書Certificate[j]および秘密鍵Ktrans_priが送信され、その後、映像の各フレームについて、フレームFrame[j][i]と署名Signature[j][i]が受信側の装置へと順番に送信される。この例では1つのタイムブロックがn個のフレームにより構成されている。
 映像受信者側、つまり映像の受信側の装置では、カメラが撮影および配信したオリジナルの映像を直接受信した場合、つまりトランスコードが発生しなかった場合には、以下の検証が行われる。
 ここでは、トランスコーダがカメラから公開鍵証明書Certificate[j]、秘密鍵Ktrans_pri、オリジナルの映像のフレームFrame[j][i]、および署名Signature[j][i]を受信したとする。
 この場合、トランスコーダでは、受信した公開鍵証明書Certificate[j]から公開鍵Kdev_pub、session-id[j]、公開鍵Ktrans_pub、および署名Sig[j]が抽出される。
 換言すれば、公開鍵Kdev_pub、session-id[j]、および公開鍵Ktrans_pubからなる式(25)の署名対象データc[j]と、署名Sig[j]とが公開鍵証明書Certificate[j]から抽出される。
 そして、署名対象データc[j]、公開鍵Kdev_pub、および署名Sig[j]に基づいて、次式(32)によりタイムブロックごとの署名Sig[j]の検証が行われる。
Figure JPOXMLDOC01-appb-M000032
 式(32)では、楕円曲線暗号により、トランスコーダで公開鍵証明書Certificate[j]から抽出された(読み出された)署名対象データc[j]と公開鍵Kdev_pubで署名Sig[j]が検証される。これにより、公開鍵証明書Certificate[j]の真正性を検証することができる。
 また、トランスコーダでは、受信した映像の先頭からフレームFrame[j][i]をカウントし、そのカウント結果を保持することで、各フレームFrame[j][i]についてのフレーム位置情報t[i]が生成される。
 さらに、フレームFrame[j][i]、署名対象データc[j]、およびフレーム位置情報t[i]を連結して得られるデータと、ハッシュ関数SHA256とに基づいて上述した式(29)によりメッセージm[j][i]が求められる。
 そして、メッセージm[j][i]、公開鍵Kdev_pub、および署名Signature[j][i]に基づいて、以下の式(33)により署名Signature[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000033
 式(33)では、楕円曲線暗号により、トランスコーダでフレームFrame[j][i]から求められたメッセージm[j][i]と公開鍵Kdev_pubで署名Signature[j][i]が検証される。
 これにより、映像のフレーム単位で、映像フレームFrame[j][i]の真正性が検証されたことになる。特に、この例では、メッセージm[j][i]にはsession-id[j]やフレーム位置情報t[i]も含まれているため、検証手法1における場合と同様に、フレームの抜き取りや順番入れ替え、複数の異なる映像を繋ぎ合わせた映像の改竄などを検知することができる。
 以上のようなタイムブロックごとの署名Sig[j]とフレームごとの署名Signature[j][i]の検証後、トランスコーダがカメラから受信した映像に対してトランスコードを行い、その結果としてオリジナルの映像の各フレームFrame[j][i]に対応する、トランスコード後の映像の各フレームFrame’[j][i]が得られたとする。
 なお、検証手法3においてもトランスコード時において、フレームレート変換や2:3pull-downなど、タイムコードが変化する変換は行われないものとする。すなわち、タイムコードが変化しないトランスコードが行われるとする。
 また、トランスコーダでは、検証手法2における場合と同様に、公開鍵暗号方式の秘密鍵Ktranscoder_priがセキュアに保持されているとする。
 この場合、トランスコーダは、以下のようにして、トランスコード後の映像配信時における署名生成を行う。
 すなわち、トランスコーダでは、トランスコード後の映像に対する公開鍵暗号方式の鍵ペアである秘密鍵K’trans_priと公開鍵K’trans_pubが生成される。
 次に、次式(34)に示すように公開鍵証明書Certificate[j]と、トランスコーダによりセキュアに保持される秘密鍵Ktranscoder_priに対応する公開鍵Ktranscoder_pubと、公開鍵K’trans_pubとが連結されて署名対象データc’[j]が生成(構成)される。
Figure JPOXMLDOC01-appb-M000034
 そして、式(34)により得られた署名対象データc’[j]と、トランスコーダによりセキュアに保持される秘密鍵Ktranscoder_priとに基づいて次式(35)が計算され、公開鍵証明書Certificate[j]に対するタイムブロックごとの署名Sig1’[j]が生成される。
Figure JPOXMLDOC01-appb-M000035
 すなわち、式(35)では、楕円曲線暗号により、秘密鍵Ktranscoder_priで署名対象データc’[j]を暗号化することで、署名Sig1’[j]が得られる。
 同様にして、式(34)により得られた署名対象データc’[j]と、カメラから受信した秘密鍵Ktrans_priとに基づいて次式(36)が計算され、公開鍵証明書Certificate[j]に対するタイムブロックごとの署名Sig2’[j]が生成される。
Figure JPOXMLDOC01-appb-M000036
 すなわち、式(36)では、楕円曲線暗号により、秘密鍵Ktrans_priで署名対象データc’[j]を暗号化することで、署名Sig2’[j]が得られる。
 また、次式(37)に示すように、署名対象データc’[j]と、署名Sig1’[j]と、署名Sig2’[j]とが連結されて、タイムブロックごとの公開鍵証明書Certificate’[j]が生成される。
Figure JPOXMLDOC01-appb-M000037
 さらに、次式(38)に示すように公開鍵証明書Certificate’[j]と秘密鍵K’trans_priとが連結され、session-id[j]により示されるタイムブロックの先頭に付加するデータとされる。
Figure JPOXMLDOC01-appb-M000038
 このように、検証手法3では、映像のフレームFrame’[j][i]に対して生成された秘密鍵K’trans_priが付加されて映像の送信が行われる。
 このようにすることで、受信側において映像フレームFrame’[j][i]をさらにトランスコードし、フレームFrame’’[j][i]を生成する場合に、公開鍵証明書Certificate’[j]を含む署名対象データを秘密鍵K’trans_priで暗号化し、署名Sig2’’[j]を生成することができる。
 これにより、公開鍵証明書Certificate’[j]と、フレームFrame’’[j][i]についての公開鍵証明書Certificate’’[j]との関係性、すなわちトランスコード前後の映像の関係性を検証することができる。
 タイムブロックの先頭に付加するデータが得られると、次に、映像フレームFrame’[j][i]ごとに署名Signature’[j][i]が生成される。
 すなわち、次式(39)に示すように公開鍵Ktranscoder_pubと、session-id[j]と、公開鍵K’trans_pubとが連結されて署名対象データc’[j]が生成(構成)される。この署名対象データc’[j]は、式(34)で得られるものとは異なるものである。
Figure JPOXMLDOC01-appb-M000039
 また、次式(40)に示すようにハッシュ関数SHA256に基づき、フレームFrame’[j][i]と、署名対象データc’[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出することで、フレームFrame’[j][i]についてのメッセージm’[j][i]が求められる。
Figure JPOXMLDOC01-appb-M000040
 そして、式(40)により得られたメッセージm’[j][i]と、トランスコーダによりセキュアに保持される公開鍵暗号方式の秘密鍵Ktranscoder_priとに基づいて次式(41)が計算され、映像フレームFrame’[j][i]の署名Signature’[j][i]が生成される。
Figure JPOXMLDOC01-appb-M000041
 すなわち、式(41)では、楕円曲線暗号により、秘密鍵Ktranscoder_priでメッセージm’[j][i]を暗号化することで、署名Signature’[j][i]が得られる。
 さらに、次式(42)に示すように署名Signature’[j][i]が映像のフレームFrame’[j][i]に付加するデータとされる。
Figure JPOXMLDOC01-appb-M000042
 そして、例えば図5に示すように公開鍵証明書Certificate’[j]および秘密鍵K’trans_priと、映像フレームFrame’[j][i]と、映像フレームFrame’[j][i]に付加された署名Signature’[j][i]とが順次、送信される。
 図5では、Certificate’[1],K’trans_pri,Frame’[1][1],Signature’[1][1],Frame’[1][2],Signature’[1][2],・・・,Certificate’[2],K’trans_pri,Frame’[2][1],Signature’[2][1],Frame’[2][2],Signature’[2][2],・・・のように各データが送信される。
 すなわち、タイムブロックの先頭で公開鍵証明書Certificate’[j]および秘密鍵K’trans_priが送信され、その後、映像の各フレームについて、フレームFrame’[j][i]と署名Signature’[j][i]が受信側の装置(クライアント)へと順番に送信される。この例では1つのタイムブロックがn個のフレームにより構成されている。
 また、この例では、カメラから受信した秘密鍵Ktrans_priは、署名Sig2’[j]の生成後に破棄され、クライアントへは送信されない。
 トランスコーダからの映像の受信者側、つまり映像の受信側の装置(クライアント)では、トランスコード後の映像を受信した場合、つまりトランスコードが発生した場合には、以下の検証が行われる。
 ここでは、クライアントがトランスコーダから公開鍵証明書Certificate’[j]、秘密鍵K’trans_pri、トランスコード後の映像のフレームFrame’[j][i]、および署名Signature’[j][i]を受信したとする。
 この場合、クライアントでは、受信した公開鍵証明書Certificate’[j]から、公開鍵証明書Certificate[j]、公開鍵Ktranscoder_pub、公開鍵K’trans_pub、署名Sig1’[j]、および署名Sig2’[j]が抽出される。さらに、抽出した公開鍵証明書Certificate[j]から、署名対象データc[j]、すなわち公開鍵Kdev_pub、session-id[j]、および公開鍵Ktrans_pubと、署名Sig[j]とが抽出される。
 また、受信した映像の先頭からフレームFrame’[j][i]がカウントされ、そのカウント結果が保持されて、各フレームFrame’[j][i]についてのフレーム位置情報t[i]が生成される。
 クライアントでは、まず署名対象データc[j]、公開鍵Kdev_pub、および署名Sig[j]に基づいて、上述した式(32)によりタイムブロックごとの署名Sig[j]の検証が行われる。
 続いて、上述の式(34)のように、公開鍵証明書Certificate[j]、公開鍵Ktranscoder_pub、および公開鍵K’trans_pubを連結することで、署名対象データc’[j]が生成される。
 そして、生成された署名対象データc’[j]、公開鍵Ktranscoder_pub、および署名Sig1’[j]に基づいて、次式(43)によりタイムブロックごとの署名Sig1’[j]の検証が行われる。
Figure JPOXMLDOC01-appb-M000043
 式(43)では、楕円曲線暗号により、トランスコーダで公開鍵証明書Certificate[j]から生成された署名対象データc’[j]と公開鍵Ktranscoder_pubで署名Sig1’[j]が検証される。
 同様に、生成された署名対象データc’[j]、公開鍵Ktrans_pub、および署名Sig2’[j]に基づいて、次式(44)によりタイムブロックごとの署名Sig2’[j]の検証が行われる。
Figure JPOXMLDOC01-appb-M000044
 式(44)では、楕円曲線暗号により、トランスコーダで公開鍵証明書Certificate[j]から生成された署名対象データc’[j]と公開鍵Ktrans_pubで署名Sig2’[j]が検証される。
 以上の署名Sig1’[j]および署名Sig2’[j]の検証によって、公開鍵証明書Certificate[j]の真正性、および公開鍵証明書Certificate’[j]の真正性が検証されるとともに、公開鍵証明書Certificate[j]と公開鍵証明書Certificate’[j]の関係性、すなわちトランスコード前後の映像の関係性も検証されたことになる。
 また、公開鍵証明書Certificate[j]に含まれている公開鍵Kdev_pubから、その公開鍵Kdev_pubに対応するカメラによって、トランスコード前のオリジナルの映像が出力されたことを特定することができる。
 同様に、公開鍵証明書Certificate’[j]に含まれている公開鍵Ktranscoder_pubから、その公開鍵Ktranscoder_pubに対応するトランスコーダによって、トランスコード後の映像が出力されたことを特定することができる。
 さらに、その後、クライアントでは、署名Signature’[j][i]の検証も行われる。
 すなわち、上述の式(39)により公開鍵Ktranscoder_pubと、session-id[j]と、公開鍵K’trans_pubとが連結されて署名対象データc’[j]が生成される。
 また、上述の式(40)により、ハッシュ関数SHA256に基づき、フレームFrame’[j][i]と、署名対象データc’[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値が算出されてメッセージm’[j][i]が求められる。
 そして、式(40)により得られたメッセージm’[j][i]、公開鍵Ktranscoder_pub、および署名Signature’[j][i]に基づいて、以下の式(45)により署名Signature’[j][i]の検証が行われる。
Figure JPOXMLDOC01-appb-M000045
 式(45)では、楕円曲線暗号により、クライアントでフレームFrame’[j][i]から求められたメッセージm’[j][i]と公開鍵Ktranscoder_pubで署名Signature’[j][i]が検証される。
 これにより、映像のフレーム単位で、映像フレームFrame’[j][i]の真正性が検証されたことになる。特に、メッセージm’[j][i]には、session-id[j]やフレーム位置情報t[i]が含まれているため、検証手法1における場合と同様に、フレームの抜き取りや順番入れ替え等の改竄を検知することができる。
 以上のように、検証手法3によれば、トランスコード後の映像に関する真正性を保証するとともに、トランスコード前の映像に関する真正性の保証、すなわち元映像の追跡も実現することができる。
 しかも検証手法3では、署名対象データc[j]等のタイムブロックで共通するデータを含む公開鍵証明書Certificate’[j]がタイムブロックごとに生成される。これにより、検証手法2における場合よりも送信するデータの冗長性を低減させるとともに、行うべき署名検証の回数、つまり検証のための処理量も低減させることができる。
 なお、秘密鍵Kdev_priや秘密鍵Ktranscoder_priに対応する公開鍵Kdev_pubや公開鍵Ktranscoder_pubに関しては、公開鍵管理基盤での運用を採用することが考えられる。
 そうすれば、カメラ等のデバイスについて、メーカとデバイス個体をワールドワイドに識別可能なデバイス識別子と公開鍵Kdev_pubとを紐づけ、メーカとトランスコーダ個体をワールドワイドに識別可能なソフトウェア識別子と公開鍵Ktranscoder_pubを紐づけすることができる。
 また、秘密鍵Kdev_priや秘密鍵Ktranscoder_priに対応する公開鍵Kdev_pubや公開鍵Ktranscoder_pubに対して、しかるべき認証機関による署名を付けた公開鍵証明書を映像受信者に配布しておくこともできる。
 そのような場合、公開鍵証明書Certificate[j]内に公開鍵Kdev_pubを格納する必要がなくなり、公開鍵Kdev_pubの所有者を示すID情報を格納することで運用可能となる。この場合、クライアントは、ID情報に基づいて公開鍵Kdev_pubを動的に取得することができる。
 同様に、公開鍵証明書Certificate’[j]内に公開鍵Ktranscoder_pubを格納する必要がなくなり、公開鍵Ktranscoder_pubの所有者を示すID情報を格納することで運用可能となる。
 その他、以上においては楕円曲線暗号(ECDSA)により署名を生成する例について説明したが、署名の生成方式はRSA暗号方式など、他のどのような方式であってもよい。
〈映像配信システムの構成例〉
 続いて、以上において説明した本技術を適用した、より具体的な実施の形態について説明する。特に、以下においては、上述した検証手法3を適用した例について説明する。
 図6は、本技術を適用した映像配信システムの一実施の形態の構成例を示す図である。
 図6に示す映像配信システムは、カメラ11、トランスコーダ12、およびクライアント13を有している。
 カメラ11は、配信対象となる映像を撮影し、得られた映像をトランスコーダ12に送信する。例えばカメラ11からトランスコーダ12には、図4に示した形式で映像が送信(配信)される。
 トランスコーダ12は、カメラ11から受信した映像に関する検証を行うとともに、受信した映像をトランスコードし、トランスコード後の映像をクライアント13へと送信する。例えばトランスコーダ12からクライアント13には、図5に示した形式で映像が送信(配信)される。
 クライアント13は、トランスコーダ12から映像を受信し、受信した映像に関する検証を行うとともに、受信した映像を表示したり記録したりする。
〈カメラの構成例〉
 図7は、カメラ11の構成例を示す図である。
 カメラ11は、例えば撮影機能を有するカメラ等のデバイスであり、撮影部41、証明書生成部42、署名生成部43、および出力部44を有している。
 撮影部41は、例えばイメージセンサなどからなり、所定の被写体を撮影し、その結果得られた映像(連続する静止画像)を証明書生成部42、署名生成部43、および出力部44に供給する。
 証明書生成部42は、撮影部41から供給された映像に対して、映像を分割して得られるタイムブロックごとに公開鍵証明書を生成して出力部44に供給するとともに、署名の生成に必要な各種の情報(データ)を署名生成部43に供給する。
 署名生成部43は、撮影部41から供給された映像と、証明書生成部42から供給された情報とに基づいて、映像に対する署名を生成し、出力部44に供給する。
 出力部44は、証明書生成部42から供給された公開鍵証明書、撮影部41から供給された映像、および署名生成部43から供給された署名をトランスコーダ12に出力(送信)する。
〈映像出力処理の説明〉
 次に、カメラ11の動作について説明する。すなわち、以下、図8のフローチャートを参照して、カメラ11により行われる映像出力処理について説明する。
 ステップS11において撮影部41は被写体を撮影し、その結果得られた映像のフレームFrame[j][i]を順次、証明書生成部42、署名生成部43、および出力部44に供給する。
 ステップS12において証明書生成部42は、撮影部41から供給された映像のフレームFrame[j][i]に基づいて、タイムブロックごとの署名Sig[j]を生成する。
 すなわち、証明書生成部42は、撮影部41から供給された映像をタイムブロックに分割し、各タイムブロックに対してsession-id[j]を付与する。
 また、証明書生成部42は、カメラ11の図示せぬ記録部にセキュアに保持されている、カメラ11の秘密鍵Kdev_priと公開鍵Kdev_pubを読み出す。なお、公開鍵Kdev_pubは、予め記録されていてもよいし、証明書生成部42によって、秘密鍵Kdev_priに基づいて上述の式(3)により導出されるようにしてもよい。
 さらに、証明書生成部42は、乱数を生成することで、映像フレームFrame[j][i]に対する秘密鍵Ktrans_priを生成するとともに、秘密鍵Ktrans_priに基づいて上述の式(3)と同様の計算を行って公開鍵Ktrans_pubを導出(生成)する。
 そして証明書生成部42は、式(25)により公開鍵Kdev_pub、session-id[j]、および公開鍵Ktrans_pubを連結してタイムブロックごとの署名対象データc[j]を生成する。
 さらに、証明書生成部42は、式(25)の署名対象データc[j]と秘密鍵Kdev_priに基づいて式(26)を計算し、タイムブロックごとの署名Sig[j]を生成する。
 ステップS13において証明書生成部42は、ステップS12で得られたタイムブロックごとの署名Sig[j]を含む公開鍵証明書Certificate[j]を生成する。
 すなわち、証明書生成部42は、式(27)に示したように、式(25)により得られた署名対象データc[j]と、署名Sig[j]とを連結することで、タイムブロックごとの公開鍵証明書Certificate[j]を生成する。
 証明書生成部42は、このようにして得られた公開鍵証明書Certificate[j]と、秘密鍵Ktrans_priとを式(28)に示したように連結し、出力部44へと供給する。
 また、証明書生成部42は、映像フレームFrame[j][i]ごとの署名Signature[j][i]に必要となる秘密鍵Kdev_priおよび署名対象データc[j]を署名生成部43に供給する。
 ステップS14において署名生成部43は、撮影部41から供給された映像フレームFrame[j][i]と、証明書生成部42から供給された秘密鍵Kdev_priおよび署名対象データc[j]とに基づいて、映像フレームFrame[j][i]ごとの署名Signature[j][i]を生成する。
 例えば署名生成部43は、撮影部41から供給された映像について、その映像先頭からフレーム数をカウントし、フレームFrame[j][i]ごとにフレーム位置情報t[i]を生成するとともに式(29)を計算することでメッセージm[j][i]を算出する。
 すなわち、署名生成部43は、ハッシュ関数SHA256に基づき、フレームFrame[j][i]と、式(25)の署名対象データc[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出することで、フレームFrame[j][i]についてのメッセージm[j][i]を算出する。
 また、署名生成部43は、式(29)の計算により得られたメッセージm[j][i]と、秘密鍵Kdev_priとに基づいて上述の式(30)を計算することで、映像フレームFrame[j][i]ごとの署名Signature[j][i]を生成し、出力部44に供給する。
 ステップS15において出力部44は、撮影部41から供給された映像を、有線または無線のネットワークやケーブル等を介してトランスコーダ12へと出力し、映像出力処理は終了する。
 すなわち、出力部44は、例えば図4に示したように、タイムブロックの先頭において、証明書生成部42から供給された公開鍵証明書Certificate[j]と秘密鍵Ktrans_priを出力する。また、出力部44は、映像のフレームごとに、撮影部41から供給された映像フレームFrame[j][i]と、署名生成部43から供給された署名Signature[j][i]とを出力する。
 以上のようにしてカメラ11は、タイムブロックごとにsession-id[j]が含まれる署名Sig[j]を生成するとともに、フレームFrame[j][i]ごとに、session-id[j]やフレーム位置情報t[i]、フレームFrame[j][i]が含まれる署名Signature[j][i]を生成する。
 このようにすることで、映像に関する真正性を保証するとともに、カメラ11の後段において、元映像の追跡を行うことができるようになるだけでなく、検証のための処理量も低減させることができるようになる。
〈トランスコーダの構成例〉
 次に、図6に示したトランスコーダ12の構成と動作について説明する。
 図9は、トランスコーダ12の構成例を示す図である。
 トランスコーダ12は、例えばトランスコード機能を有するコンピュータ等の情報処理装置からなり、取得部71、検証部72、変換部73、証明書生成部74、署名生成部75、および出力部76を有している。
 取得部71は、カメラ11の出力部44から出力された公開鍵証明書Certificate[j]、秘密鍵Ktrans_pri、映像フレームFrame[j][i]、および署名Signature[j][i]を取得(受信)し、検証部72に供給する。
 検証部72は、取得部71から供給された公開鍵証明書Certificate[j]および署名Signature[j][i]を検証し、その検証結果に応じて映像フレームFrame[j][i]を変換部73に供給する。また、検証部72は、公開鍵証明書Certificate[j]と秘密鍵Ktrans_priを証明書生成部74に供給するとともに、公開鍵証明書Certificate[j]を署名生成部75に供給する。
 検証部72は、公開鍵証明書Certificate[j]の検証を行う証明書検証部81と、署名Signature[j][i]の検証を行う署名検証部82とを有している。
 変換部73は、検証部72から供給された映像フレームFrame[j][i]に対してトランスコードを行うことで、映像フレームFrame[j][i]を映像フレームFrame’[j][i]に変換する。変換部73では、タイムコードが変化しないトランスコードが行われるため、映像フレームFrame[j][i]と映像フレームFrame’[j][i]とで、session-id[j]およびフレーム位置情報t[i]は変化しない(同じである)。
 変換部73は、トランスコードにより得られた映像フレームFrame’[j][i]を証明書生成部74、署名生成部75、および出力部76に供給する。
 証明書生成部74は、検証部72から供給された公開鍵証明書Certificate[j]と秘密鍵Ktrans_pri、および変換部73から供給された映像フレームFrame’[j][i]に基づいて、タイムブロックごとの公開鍵証明書Certificate’[j]を生成し、出力部76に供給する。
 また、証明書生成部74は、署名Signature’[j][i]の生成に必要な各種の情報(データ)を署名生成部75に供給する。
 署名生成部75は、検証部72から供給された公開鍵証明書Certificate[j]、変換部73から供給された映像フレームFrame’[j][i]、および証明書生成部74から供給された情報に基づいて、映像フレームFrame’[j][i]ごとに署名Signature’[j][i]を生成し、出力部76に供給する。
 出力部76は、証明書生成部74から供給された公開鍵証明書Certificate’[j]、変換部73から供給された映像フレームFrame’[j][i]、および署名生成部75から供給された署名Signature’[j][i]等をクライアント13に出力(送信)する。
〈検証処理の説明〉
 トランスコーダ12は、カメラ11から映像等が送信されてくると、検証処理を開始する。以下、図10のフローチャートを参照して、トランスコーダ12による検証処理について説明する。
 ステップS41において取得部71は、カメラ11から送信されてきた公開鍵証明書Certificate[j]、秘密鍵Ktrans_pri、映像フレームFrame[j][i]、および署名Signature[j][i]を取得(受信)し、検証部72に供給する。
 ステップS42において証明書検証部81は、取得部71から供給された、タイムブロックごとの公開鍵証明書Certificate[j]を検証する。
 例えば証明書検証部81は、公開鍵証明書Certificate[j]から、公開鍵Kdev_pub、session-id[j]、および公開鍵Ktrans_pubからなる署名対象データc[j]と、署名Sig[j]とを抽出する。
 そして証明書検証部81は、抽出した署名対象データc[j]、公開鍵Kdev_pub、および署名Sig[j]に基づいて上述した式(32)の演算を行うことで、タイムブロックごとの公開鍵証明書Certificate[j]、すなわち署名Sig[j]の検証を行う。
 ステップS43において署名検証部82は、取得部71から供給された、映像フレームFrame[j][i]ごとの署名Signature[j][i]を検証する。
 すなわち、署名検証部82は、受信した映像の先頭からフレーム数をカウントすることで、フレームFrame[j][i]ごとにフレーム位置情報t[i]を生成する。
 また、署名検証部82は、フレームFrame[j][i]と、証明書検証部81で抽出された署名対象データc[j]と、フレーム位置情報t[i]とを連結して得られるデータと、ハッシュ関数SHA256とに基づいて上述した式(29)によりメッセージm[j][i]を求める。
 そして、署名検証部82は、メッセージm[j][i]、証明書検証部81で抽出された公開鍵Kdev_pub、および署名Signature[j][i]に基づいて、上述の式(33)により署名Signature[j][i]を検証する。これにより、映像のフレーム単位で、映像フレームFrame[j][i]の真正性が検証されたことになる。特に、この例では、フレームの抜き取りや順番入れ替え、複数の異なる映像を繋ぎ合わせた映像の改竄などを検知することができる。
 検証部72は、公開鍵証明書Certificate[j]と署名Signature[j][i]が検証され、真正性が確認されると、映像フレームFrame[j][i]を変換部73に供給する。
 また、検証部72は、公開鍵証明書Certificate[j]と秘密鍵Ktrans_priを証明書生成部74に供給するとともに、公開鍵証明書Certificate[j]を署名生成部75に供給し、検証処理は終了する。
 以上のようにしてトランスコーダ12は、カメラ11から受信した映像について、公開鍵証明書Certificate[j]と署名Signature[j][i]を検証する。このようにすることで、映像の改竄等を検知することができる。
〈映像出力処理の説明〉
 また、トランスコーダ12は、公開鍵証明書Certificate[j]と署名Signature[j][i]が検証されると、その後、任意のタイミングで、映像をトランスコードして出力する映像出力処理を開始する。以下、図11のフローチャートを参照して、トランスコーダ12による映像出力処理について説明する。
 ステップS71において変換部73は、検証部72から供給された映像フレームFrame[j][i]に対してトランスコードを行い、その結果得られた映像フレームFrame’[j][i]を証明書生成部74、署名生成部75、および出力部76に供給する。
 ステップS72において証明書生成部74は、検証部72から供給された公開鍵証明書Certificate[j]と秘密鍵Ktrans_pri、および変換部73から供給された映像フレームFrame’[j][i]に基づいて、タイムブロックごとの署名を生成する。
 すなわち、証明書生成部74は、トランスコーダ12の図示せぬ記録部にセキュアに保持されている、トランスコーダ12の秘密鍵Ktranscoder_priおよび公開鍵Ktranscoder_pubを読み出す。なお、公開鍵Ktranscoder_pubは、予め記録されていてもよいし、証明書生成部74によって、秘密鍵Ktranscoder_priに基づき上述の式(3)と同様の演算により導出されるようにしてもよい。
 また、証明書生成部74は、乱数を生成することで、映像フレームFrame’[j][i]に対する秘密鍵K’trans_priを生成するとともに、秘密鍵K’trans_priに基づいて上述の式(3)と同様の計算を行って公開鍵K’trans_pubを導出(生成)する。
 そして証明書生成部74は、式(34)により公開鍵証明書Certificate[j]と、公開鍵Ktranscoder_pubと、公開鍵K’trans_pubとを連結して署名対象データc’[j]を生成する。
 証明書生成部74は、得られた署名対象データc’[j]と秘密鍵Ktranscoder_priに基づいて上述の式(35)の演算を行うことで、公開鍵証明書Certificate[j]に対するタイムブロックごとの署名Sig1’[j]を生成する。
 さらに証明書生成部74は、得られた署名対象データc’[j]と、秘密鍵Ktrans_priとに基づいて上述の式(36)の演算を行うことで、公開鍵証明書Certificate[j]に対するタイムブロックごとの署名Sig2’[j]を生成する。
 署名Sig2’[j]が生成されると、その後、証明書生成部74は秘密鍵Ktrans_priを破棄する。すなわち、トランスコーダ12で生成される公開鍵証明書Certificate’[j]には秘密鍵Ktrans_priは格納されない。このようにすることで、公開鍵証明書Certificate[j]に対する改竄を検知することができるようになる。
 ステップS73において証明書生成部74は、ステップS72で生成した署名対象データc’[j]、署名Sig1’[j]、および署名Sig2’[j]に基づいて公開鍵証明書Certificate’[j]を生成する。
 例えば証明書生成部74は、上述の式(37)により、署名対象データc’[j]と、署名Sig1’[j]と、署名Sig2’[j]とを連結することで、タイムブロックごとの公開鍵証明書Certificate’[j]を生成する。
 また、証明書生成部74は、式(38)により公開鍵証明書Certificate’[j]と秘密鍵K’trans_priとを連結して、タイムブロックの先頭に付加するデータとし、出力部76に供給する。
 さらに証明書生成部74は、署名Signature’[j][i]の生成に必要な秘密鍵Ktranscoder_pri、公開鍵Ktranscoder_pub、および公開鍵K’trans_pubを署名生成部75に供給する。
 ステップS74において署名生成部75は、映像フレームFrame’[j][i]ごとの署名Signature’[j][i]を生成し、出力部76に供給する。
 例えば署名生成部75は、検証部72から供給された各タイムブロックの公開鍵証明書Certificate[j]からsession-id[j]を抽出する。
 また、署名生成部75は、変換部73から供給された映像の先頭からフレーム数をカウントすることで、フレームFrame’[j][i]ごとにフレーム位置情報t[i]を生成する。
 そして署名生成部75は、上述の式(39)により証明書生成部74から供給された公開鍵Ktranscoder_pubと、session-id[j]と、証明書生成部74から供給された公開鍵K’trans_pubとを連結することで署名対象データc’[j]を生成する。
 さらに署名生成部75は、式(40)により、ハッシュ関数SHA256に基づき、フレームFrame’[j][i]と、式(39)により得られた署名対象データc’[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を算出し、メッセージm’[j][i]を求める。
 署名生成部75は、得られたメッセージm’[j][i]と、証明書生成部74から供給された秘密鍵Ktranscoder_priとに基づいて上述の式(41)の演算を行うことで、映像フレームFrame’[j][i]ごとの署名Signature’[j][i]を生成し、出力部76に供給する。
 ステップS75において出力部76は、変換部73から供給された映像を、有線または無線のネットワークやケーブル等を介してクライアント13へと出力し、映像出力処理は終了する。
 すなわち、出力部76は、例えば図5に示したように、タイムブロックの先頭において、証明書生成部74から供給された公開鍵証明書Certificate’[j]と秘密鍵K’trans_priを出力する。また、出力部76は、映像のフレームごとに、変換部73から供給された映像フレームFrame’[j][i]と、署名生成部75から供給された署名Signature’[j][i]とを出力する。
 以上のようにしてトランスコーダ12は、タイムブロックごとに、もとの公開鍵証明書Certificate[j]を含む公開鍵証明書Certificate’[j]を生成するとともに、映像フレームFrame’[j][i]ごとに署名Signature’[j][i]を生成する。
 このようにすることで、トランスコード後の映像に関する真正性を保証するとともに、トランスコード前の映像に関する真正性の保証、すなわち元映像の追跡を行うことができるだけでなく、検証のための処理量も低減させることができる。
〈クライアントの構成例〉
 次に、図6に示したクライアント13の構成と動作について説明する。
 図12は、クライアント13の構成例を示す図である。
 クライアント13は、例えばコンピュータ等の情報処理装置からなり、取得部111および検証部112を有している。
 取得部111は、トランスコーダ12の出力部76から出力(送信)された公開鍵証明書Certificate’[j]、秘密鍵K’trans_pri、映像フレームFrame’[j][i]、および署名Signature’[j][i]を取得(受信)し、検証部112に供給する。
 検証部112は、取得部111から供給された公開鍵証明書Certificate’[j]および署名Signature’[j][i]を検証する。
 検証部112は、公開鍵証明書Certificate’[j]の検証を行う証明書検証部121と、署名Signature’[j][i]の検証を行う署名検証部122とを有している。
〈検証処理の説明〉
 クライアント13は、トランスコーダ12から映像等が送信されてくると、検証処理を開始する。以下、図13のフローチャートを参照して、クライアント13による検証処理について説明する。
 ステップS101において取得部111は、トランスコーダ12から送信されてきた公開鍵証明書Certificate’[j]、秘密鍵K’trans_pri、映像フレームFrame’[j][i]、および署名Signature’[j][i]を取得(受信)し、検証部112に供給する。
 ステップS102において証明書検証部121は、取得部111から供給された、タイムブロックごとの公開鍵証明書Certificate’[j]を検証する。
 すなわち、例えば証明書検証部121は、公開鍵証明書Certificate’[j]から、公開鍵証明書Certificate[j]、公開鍵Ktranscoder_pub、公開鍵K’trans_pub、署名Sig1’[j]、および署名Sig2’[j]を抽出する。また、証明書検証部121は、公開鍵証明書Certificate[j]から、署名対象データc[j]、すなわち公開鍵Kdev_pub、session-id[j]、および公開鍵Ktrans_pubと、署名Sig[j]とを抽出する。
 証明書検証部121は、署名対象データc[j]、公開鍵Kdev_pub、および署名Sig[j]に基づいて、上述の式(32)の演算を行うことで、タイムブロックごとの署名Sig[j]の検証を行う。次に、証明書検証部121は、上述の式(34)により公開鍵証明書Certificate[j]、公開鍵Ktranscoder_pub、および公開鍵K’trans_pubを連結し、署名対象データc’[j]を生成する。
 そして証明書検証部121は、生成された署名対象データc’[j]、公開鍵Ktranscoder_pub、および署名Sig1’[j]に基づいて上述の式(43)の演算を行うことで、タイムブロックごとの署名Sig1’[j]の検証を行う。
 同様に、証明書検証部121は、生成された署名対象データc’[j]、公開鍵Ktrans_pub、および署名Sig2’[j]に基づいて上述の式(44)の演算を行うことで、タイムブロックごとの署名Sig2’[j]の検証を行う。
 これらの署名Sig1’[j]や署名Sig2’[j]の検証により、公開鍵証明書Certificate[j]と公開鍵証明書Certificate’[j]の真正性が検証されるとともに、公開鍵証明書Certificate[j]と公開鍵証明書Certificate’[j]の関係性、すなわちトランスコード前後の映像の関係性も検証されたことになる。
 また、公開鍵Kdev_pubから元の映像フレームFrame[j][i]の出力元であるカメラ11が特定され、公開鍵Ktranscoder_pubからトランスコード後の映像フレームFrame’[j][i]の出力元であるトランスコーダ12も特定される。
 ステップS103において署名検証部122は、取得部111から供給された、映像フレームFrame’[j][i]ごとの署名Signature’[j][i]を検証する。
 すなわち、署名検証部122は、取得部111から供給された映像の先頭からフレーム数をカウントすることで、フレームFrame’[j][i]ごとにフレーム位置情報t[i]を生成する。
 また、署名検証部122は、上述の式(39)により、証明書検証部121で抽出された公開鍵Ktranscoder_pubと、session-id[j]と、公開鍵K’trans_pubとを連結して署名対象データc’[j]を生成する。
 署名検証部122は、上述の式(40)により、ハッシュ関数SHA256に基づき、フレームFrame’[j][i]と、式(39)により得られた署名対象データc’[j]と、フレーム位置情報t[i]とを連結して得られるデータのハッシュ値を求めてメッセージm’[j][i]を算出する。
 さらに署名検証部122は、式(40)により得られたメッセージm’[j][i]と、公開鍵Ktranscoder_pubと、署名Signature’[j][i]とに基づいて上述の式(45)の演算を行うことで、署名Signature’[j][i]の検証を行う。これにより、映像のフレーム単位で、映像フレームFrame’[j][i]の真正性が検証されたことになる。
 署名Signature’[j][i]の検証が行われると、検証処理は終了する。
 以上のようにしてクライアント13は、トランスコーダ12から受信した映像について、公開鍵証明書Certificate’[j]と署名Signature’[j][i]を検証する。
 このようにすることで、トランスコード後の映像に関する真正性を検証するとともに、トランスコード前の映像に関する真正性の検証、すなわち元映像の追跡を行うことができるだけでなく、検証のための処理量も低減させることができる。
〈コンピュータの構成例〉
 ところで、上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
 図14は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
 コンピュータにおいて、CPU(Central Processing Unit)501,ROM(Read Only Memory)502,RAM(Random Access Memory)503は、バス504により相互に接続されている。
 バス504には、さらに、入出力インターフェース505が接続されている。入出力インターフェース505には、入力部506、出力部507、記録部508、通信部509、及びドライブ510が接続されている。
 入力部506は、キーボード、マウス、マイクロフォン、撮像素子などよりなる。出力部507は、ディスプレイ、スピーカなどよりなる。記録部508は、ハードディスクや不揮発性のメモリなどよりなる。通信部509は、ネットワークインターフェースなどよりなる。ドライブ510は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブル記録媒体511を駆動する。
 以上のように構成されるコンピュータでは、CPU501が、例えば、記録部508に記録されているプログラムを、入出力インターフェース505及びバス504を介して、RAM503にロードして実行することにより、上述した一連の処理が行われる。
 コンピュータ(CPU501)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブル記録媒体511に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
 コンピュータでは、プログラムは、リムーバブル記録媒体511をドライブ510に装着することにより、入出力インターフェース505を介して、記録部508にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部509で受信し、記録部508にインストールすることができる。その他、プログラムは、ROM502や記録部508に、あらかじめインストールしておくことができる。
 なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
 また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
 例えば、本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
 また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
 さらに、本技術は、以下の構成とすることも可能である。
(1)
 映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の第1の秘密鍵とに基づいて、前記フレームごとの第1の署名を生成する署名生成部と、
 前記識別情報を含む証明書を生成する証明書生成部と、
 前記証明書、前記映像、および前記第1の署名を出力する出力部と
 を備える情報処理装置。
(2)
 前記署名生成部は、前記第1の秘密鍵に対応する第1の公開鍵、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成する
 (1)に記載の情報処理装置。
(3)
 前記署名生成部は、前記映像における前記フレームの位置を示す位置情報、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成する
 (1)または(2)に記載の情報処理装置。
(4)
 前記署名生成部は、前記映像に対して生成された公開鍵暗号方式の第2の秘密鍵に対応する第2の公開鍵、前記第1の公開鍵、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成し、
 前記証明書生成部は、前記識別情報および前記第2の公開鍵を含む前記証明書を生成し、
 前記出力部は、前記証明書、前記第2の秘密鍵、前記映像、および前記第1の署名を出力する
 (2)に記載の情報処理装置。
(5)
 前記証明書生成部は、前記タイムブロックごとに前記証明書を生成する
 (4)に記載の情報処理装置。
(6)
 前記証明書生成部は、
  前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて、前記タイムブロックごとの第2の署名を生成し、
  前記第2の署名、前記識別情報、および前記第2の公開鍵を含む前記証明書を生成する
 (5)に記載の情報処理装置。
(7)
 前記映像が元の映像に対するトランスコードにより生成された場合、
 前記証明書生成部は、
  前記識別情報が含まれる前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて前記第2の署名を生成し、
  前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記元の映像の前記第2の秘密鍵に基づいて第3の署名を生成し、
  前記元の映像の前記証明書、前記第2の署名、前記第3の署名、および前記第2の公開鍵を含む前記証明書を生成する
 (6)に記載の情報処理装置。
(8)
 情報処理装置が、
 映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の秘密鍵とに基づいて、前記フレームごとの署名を生成し、
 前記識別情報を含む証明書を生成し、
 前記証明書、前記映像、および前記署名を出力する
 情報処理方法。
(9)
 映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の秘密鍵とに基づいて、前記フレームごとの署名を生成し、
 前記識別情報を含む証明書を生成し、
 前記証明書、前記映像、および前記署名を出力する
 ステップを含む処理をコンピュータに実行させるプログラム。
(10)
 映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の第1の秘密鍵に対応する第1の公開鍵、および前記第1の秘密鍵に基づき生成された前記フレームごとの第1の署名とを取得する取得部と、
 前記証明書、前記映像、および前記第1の公開鍵に基づいて、前記第1の署名を検証する署名検証部と
 を備える情報処理装置。
(11)
 前記第1の署名は、前記映像における前記フレームの位置を示す位置情報、前記識別情報、前記映像の前記フレーム、前記第1の公開鍵、および前記第1の秘密鍵に基づき生成される
 (10)に記載の情報処理装置。
(12)
 前記第1の署名は、前記映像に対して生成された公開鍵暗号方式の第2の秘密鍵に対応する第2の公開鍵、前記識別情報、前記映像の前記フレーム、前記第1の公開鍵、および前記第1の秘密鍵に基づき生成され、
 前記証明書には、前記識別情報および前記第2の公開鍵が含まれており、
 前記取得部は、前記証明書、前記第2の秘密鍵、前記映像、および前記第1の署名を取得する
 (10)または(11)に記載の情報処理装置。
(13)
 前記証明書には、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて生成された第2の署名が含まれており、
 前記第1の公開鍵、および前記第2の公開鍵に基づいて前記第2の署名を検証する証明書検証部をさらに備える
 (12)に記載の情報処理装置。
(14)
 前記映像が元の映像に対するトランスコードにより生成された場合、
 前記証明書には、
  前記識別情報と、前記元の映像の前記第2の公開鍵とを含む、前記元の映像の前記証明書と、
  前記第2の公開鍵と、
  前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて生成された前記第2の署名と、
  前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記元の映像の前記第2の秘密鍵に基づいて生成された第3の署名と
 が含まれており、
 前記証明書検証部は、前記元の映像の前記証明書、前記第1の公開鍵、および前記第2の公開鍵に基づいて前記第3の署名を検証する
 (13)に記載の情報処理装置。
(15)
 情報処理装置が、
 映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の秘密鍵に対応する公開鍵、および前記秘密鍵に基づき生成された前記フレームごとの署名とを取得し、
 前記証明書、前記映像、および前記公開鍵に基づいて、前記署名を検証する
 情報処理方法。
(16)
 映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の秘密鍵に対応する公開鍵、および前記秘密鍵に基づき生成された前記フレームごとの署名とを取得し、
 前記証明書、前記映像、および前記公開鍵に基づいて、前記署名を検証する
 ステップを含む処理をコンピュータに実行させるプログラム。
 11 カメラ, 12 トランスコーダ, 13 クライアント, 42 証明書生成部, 43 署名生成部, 44 出力部, 74 証明書生成部, 75 署名生成部, 76 出力部, 81 証明書検証部, 82 署名検証部, 111 取得部, 121 証明書検証部, 122 署名検証部

Claims (16)

  1.  映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の第1の秘密鍵とに基づいて、前記フレームごとの第1の署名を生成する署名生成部と、
     前記識別情報を含む証明書を生成する証明書生成部と、
     前記証明書、前記映像、および前記第1の署名を出力する出力部と
     を備える情報処理装置。
  2.  前記署名生成部は、前記第1の秘密鍵に対応する第1の公開鍵、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成する
     請求項1に記載の情報処理装置。
  3.  前記署名生成部は、前記映像における前記フレームの位置を示す位置情報、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成する
     請求項1に記載の情報処理装置。
  4.  前記署名生成部は、前記映像に対して生成された公開鍵暗号方式の第2の秘密鍵に対応する第2の公開鍵、前記第1の公開鍵、前記識別情報、前記フレーム、および前記第1の秘密鍵に基づいて前記第1の署名を生成し、
     前記証明書生成部は、前記識別情報および前記第2の公開鍵を含む前記証明書を生成し、
     前記出力部は、前記証明書、前記第2の秘密鍵、前記映像、および前記第1の署名を出力する
     請求項2に記載の情報処理装置。
  5.  前記証明書生成部は、前記タイムブロックごとに前記証明書を生成する
     請求項4に記載の情報処理装置。
  6.  前記証明書生成部は、
      前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて、前記タイムブロックごとの第2の署名を生成し、
      前記第2の署名、前記識別情報、および前記第2の公開鍵を含む前記証明書を生成する
     請求項5に記載の情報処理装置。
  7.  前記映像が元の映像に対するトランスコードにより生成された場合、
     前記証明書生成部は、
      前記識別情報が含まれる前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて前記第2の署名を生成し、
      前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記元の映像の前記第2の秘密鍵に基づいて第3の署名を生成し、
      前記元の映像の前記証明書、前記第2の署名、前記第3の署名、および前記第2の公開鍵を含む前記証明書を生成する
     請求項6に記載の情報処理装置。
  8.  情報処理装置が、
     映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の秘密鍵とに基づいて、前記フレームごとの署名を生成し、
     前記識別情報を含む証明書を生成し、
     前記証明書、前記映像、および前記署名を出力する
     情報処理方法。
  9.  映像の複数のフレームからなるタイムブロックに付与された識別情報と、前記映像の前記フレームと、公開鍵暗号方式の秘密鍵とに基づいて、前記フレームごとの署名を生成し、
     前記識別情報を含む証明書を生成し、
     前記証明書、前記映像、および前記署名を出力する
     ステップを含む処理をコンピュータに実行させるプログラム。
  10.  映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の第1の秘密鍵に対応する第1の公開鍵、および前記第1の秘密鍵に基づき生成された前記フレームごとの第1の署名とを取得する取得部と、
     前記証明書、前記映像、および前記第1の公開鍵に基づいて、前記第1の署名を検証する署名検証部と
     を備える情報処理装置。
  11.  前記第1の署名は、前記映像における前記フレームの位置を示す位置情報、前記識別情報、前記映像の前記フレーム、前記第1の公開鍵、および前記第1の秘密鍵に基づき生成される
     請求項10に記載の情報処理装置。
  12.  前記第1の署名は、前記映像に対して生成された公開鍵暗号方式の第2の秘密鍵に対応する第2の公開鍵、前記識別情報、前記映像の前記フレーム、前記第1の公開鍵、および前記第1の秘密鍵に基づき生成され、
     前記証明書には、前記識別情報および前記第2の公開鍵が含まれており、
     前記取得部は、前記証明書、前記第2の秘密鍵、前記映像、および前記第1の署名を取得する
     請求項10に記載の情報処理装置。
  13.  前記証明書には、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて生成された第2の署名が含まれており、
     前記第1の公開鍵、および前記第2の公開鍵に基づいて前記第2の署名を検証する証明書検証部をさらに備える
     請求項12に記載の情報処理装置。
  14.  前記映像が元の映像に対するトランスコードにより生成された場合、
     前記証明書には、
      前記識別情報と、前記元の映像の前記第2の公開鍵とを含む、前記元の映像の前記証明書と、
      前記第2の公開鍵と、
      前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記第1の秘密鍵に基づいて生成された前記第2の署名と、
      前記元の映像の前記証明書、前記第1の公開鍵、前記第2の公開鍵、および前記元の映像の前記第2の秘密鍵に基づいて生成された第3の署名と
     が含まれており、
     前記証明書検証部は、前記元の映像の前記証明書、前記第1の公開鍵、および前記第2の公開鍵に基づいて前記第3の署名を検証する
     請求項13に記載の情報処理装置。
  15.  情報処理装置が、
     映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の秘密鍵に対応する公開鍵、および前記秘密鍵に基づき生成された前記フレームごとの署名とを取得し、
     前記証明書、前記映像、および前記公開鍵に基づいて、前記署名を検証する
     情報処理方法。
  16.  映像の複数のフレームからなるタイムブロックに付与された識別情報を含む、前記タイムブロックごとの証明書と、前記映像と、前記識別情報、前記映像の前記フレーム、公開鍵暗号方式の秘密鍵に対応する公開鍵、および前記秘密鍵に基づき生成された前記フレームごとの署名とを取得し、
     前記証明書、前記映像、および前記公開鍵に基づいて、前記署名を検証する
     ステップを含む処理をコンピュータに実行させるプログラム。
PCT/JP2022/004217 2021-05-25 2022-02-03 情報処理装置および方法、並びにプログラム WO2022249553A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2023523976A JPWO2022249553A1 (ja) 2021-05-25 2022-02-03

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-087316 2021-05-25
JP2021087316 2021-05-25

Publications (1)

Publication Number Publication Date
WO2022249553A1 true WO2022249553A1 (ja) 2022-12-01

Family

ID=84229770

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/004217 WO2022249553A1 (ja) 2021-05-25 2022-02-03 情報処理装置および方法、並びにプログラム

Country Status (2)

Country Link
JP (1) JPWO2022249553A1 (ja)
WO (1) WO2022249553A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005318068A (ja) * 2004-04-27 2005-11-10 Kddi Corp コンテンツ認証データの電子透かし埋め込み方式および認証方式
JP2015088855A (ja) * 2013-10-29 2015-05-07 セコム株式会社 画像管理システム
JP2017041841A (ja) * 2015-08-21 2017-02-23 パナソニックIpマネジメント株式会社 署名生成システム、署名生成装置及び署名生成方法
WO2021015169A1 (ja) * 2019-07-23 2021-01-28 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像改ざん判定方法、及び動画像改ざん判定プログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005318068A (ja) * 2004-04-27 2005-11-10 Kddi Corp コンテンツ認証データの電子透かし埋め込み方式および認証方式
JP2015088855A (ja) * 2013-10-29 2015-05-07 セコム株式会社 画像管理システム
JP2017041841A (ja) * 2015-08-21 2017-02-23 パナソニックIpマネジメント株式会社 署名生成システム、署名生成装置及び署名生成方法
WO2021015169A1 (ja) * 2019-07-23 2021-01-28 株式会社Jvcケンウッド 動画像符号化装置、動画像符号化方法、動画像改ざん判定方法、及び動画像改ざん判定プログラム

Also Published As

Publication number Publication date
JPWO2022249553A1 (ja) 2022-12-01

Similar Documents

Publication Publication Date Title
US7958361B2 (en) Information processing apparatus and method
TWI624795B (zh) Electronic signature generation method and system
JP3154325B2 (ja) 認証情報を画像に隠し込むシステム及び画像認証システム
JP3884955B2 (ja) 画像検証システムおよび画像検証装置
US8146157B2 (en) Method and apparatus for secure transport and storage of surveillance video
JP2007500464A (ja) 放送メディアのコンテンツ識別表示
US20070248226A1 (en) System and method for fast and scalable multimedia authentication in real time environment
US8230216B2 (en) Information processing apparatus, control method therefor, information processing system, and program
JP4650267B2 (ja) 送信装置および方法、受信装置および方法、ならびに、データ伝送システムおよびデータ伝送方法
JP4776906B2 (ja) 署名生成方法及び情報処理装置
JP2007028014A (ja) デジタル署名プログラム、デジタル署名システム、デジタル署名方法、署名検証方法
US7930544B2 (en) Data processing apparatus and its method
WO2017033348A1 (ja) 署名生成システム、署名生成装置及び署名生成方法
JP4193380B2 (ja) ストリーム転送における電子署名システム
RU2010105036A (ru) Проверка кода мас без его раскрытия
CN115412696A (zh) 数字取证图像验证系统
US10783278B2 (en) Signature generation device, signature verification device, signature generation method, and signature verification method
WO2020255575A1 (ja) 暗号鍵生成装置、暗号鍵生成方法
WO2022249553A1 (ja) 情報処理装置および方法、並びにプログラム
KR102406252B1 (ko) 데이터의 보안 통신 방법
JP2019205140A (ja) 撮像装置、情報処理装置、生成方法、及び検証方法
Bouslimi et al. A teleassistance protocol based on joint watermarking–encryption evidence for identification of liabilities in case of litigation
Bouslimi et al. A telemedicine protocol based on watermarking evidence for identification of liabilities in case of litigation
CN111757062A (zh) 一种视频流的高效安全传输方法和系统
CN111639937A (zh) 数字货币风险管控方法和系统

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22810839

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 18287266

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2023523976

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE